GNU bug report logs - #80740
31.0.50; Improve 'markdown-ts-mode'

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

Package: emacs; Reported by: Rahul Martim Juliato <rahuljuliato@HIDDEN>; Keywords: patch; merged with #80555; dated Sat, 4 Apr 2026 03:08:03 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

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


Received: (at 80740) by debbugs.gnu.org; 9 May 2026 03:33:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 08 23:33:22 2026
Received: from localhost ([127.0.0.1]:47542 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wLYRM-0004Nt-Km
	for submit <at> debbugs.gnu.org; Fri, 08 May 2026 23:33:21 -0400
Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]:61677)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wLYRI-0004LO-Bo
 for 80740 <at> debbugs.gnu.org; Fri, 08 May 2026 23:33:17 -0400
Received: by mail-pj1-x102b.google.com with SMTP id
 98e67ed59e1d1-36608b2f2dcso1717429a91.2
 for <80740 <at> debbugs.gnu.org>; Fri, 08 May 2026 20:33:16 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1778297595; cv=none;
 d=google.com; s=arc-20240605;
 b=HtOAtyYj44gT6CQyPB7nKhK8UhobPwZM7tR9mkkaXTFWL4d0GE+wzSs8tz0T8dRUly
 u2xxUUnFc/c4wAWKCs+ChoLvVqFl9fpjKNxfmKPoV92QnXTEq9mIppaO+75lojQxQLaM
 lh9CaG2iVggG3qWQHsRInEpTy7J7xsZ4Lkqt/dhzYWMAKZLVQrXasmi/2K0mZvmdeJWv
 WZ5ZWCKgxw5OZgzUIanbCXyiM1Q2lEMIJHPV2IGxbhUVhnPdwNBO7sKZbD7sideHCNXG
 0Kg26MY1CL1In/PGiB//drmS29o0ZclWjBWqrA+fGC6Jasjq0ITVfyLRCtn8AQAu20Im
 dUag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=to:subject:message-id:date:from:mime-version:dkim-signature;
 bh=7MFLC/Sh1wHhKPAhP/+GmPln3lqFqT4IhS3JdpK41Kg=;
 fh=ipaQtRmGUg6syV2TpH2pZBHuJumMUV5trNobw1qzXGg=;
 b=Q77wOlXI01VkThVzppdRGybmiV9/wMYuKciVzrklE+XLAvtumApAocqqvpYKxhv6ce
 nY+8kIZLyN9a5WXlj9NwMEEuWFKqCVyYTprU2Us+1nxvTcR2XuTmgZWiDvc6kX1AxOaC
 QEd1WGNkwTe18h69T2zRMX7i2arI5wdjfdP5aVhsvCT3BdZx0mAkYKWVGNvwjjlxdgh0
 o60OR8WWYQy5F21t36nhoDXD346trhfvihgg1ghtZGlVDcnbAwQE1QdACFIEfS1MHl8p
 2q96pu6FuYVGMWjMUXDWPzelvXHvrnuccf/rBE4XPkj02PGMylga+c5Po+ygF7G1sF1R
 LpCQ==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1778297595; x=1778902395; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=7MFLC/Sh1wHhKPAhP/+GmPln3lqFqT4IhS3JdpK41Kg=;
 b=HeOWPhhH5ZX61XQrmW0IuptxAHKDLSvxdM1KIdmeuHUyd/Q63LoGUpObpTFOKSoj7I
 RYBAvn6e0FX3Ts9NBVcheno6kTb/DMuZAxYQSWsXobWZB64FMujti2qcv9l5dggkX0tV
 4+7/oCNgtmEsxeoj7GfuMCrb73D0LAzWhgms1CNeBl/5OQcZpduknw+VxyYbOS8/EmkU
 WMwp5DN27dOrFgC4zBNLz/8XBOG/2F5niWV994PW0apYWQVASyfZuawGJZIXNGLmFS57
 1IIkNXvQwzGdXlf8L/BoGZaGpFZ/fUCmoHPB7NWaWkxcbrxjULAkUFNIW27Drr3qjEm0
 sMhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1778297595; x=1778902395;
 h=to:subject:message-id:date:from:mime-version:x-gm-gg
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=7MFLC/Sh1wHhKPAhP/+GmPln3lqFqT4IhS3JdpK41Kg=;
 b=Z1vJHHdr0gCbHyYSNFlei4OiFgBtlKtmWbuIxpeJyex93x5t0Repx3XiDIYCNpkzW5
 Qz+8eOw+xWzPxw/mkyPCif2Vd2gNb1qeLItgYWbTpfj9JaCPqDUtWS3G3Pv+6ATAsHQS
 CqjpU3qnTZsI5EfurlAxmL2WyzSUkEtIfnand9anihYNNPtbTol8bnsg2Ee1wezADWBX
 Yge/TgRJyWSxlPj9Zv4UOY/qfAczngho5jBzQ9l8BnpT1cSkfTa6fWzNXdVAFogvnIEa
 WpPt1CIJidlpfD8Mqz4WGmQI6k0H6wWXOoEPVDZ2AygVufSU8pbDulSa7RdKvufLaobB
 N3Wg==
X-Gm-Message-State: AOJu0Yz6EHdVXY7ZEbDW/IZ/ZP7+u9hcWshD9Bg7FhYBQu1FUOszjYsi
 o1ZtQs+Hy4M9i2g8FUTuzIUiMS60DTc8SmSYTZ51sfwiUY3ju+klbUlJzp4gxPBY7elQcoScRuk
 x04q0rUy/rUcPAn94mzi5AZyZ3QA/0Bt0ATK/8gM=
X-Gm-Gg: Acq92OEZ/IIdOWxDJGBgdMBXI0c243FDrfwax/mSHYVSdygyllz7OSb++q4qOsgf56/
 rNHv2xCWF/Sc8tJ3YBqqNR1vG+Tc/zKF/asxxzPJXrwvyOuSc9Rab95nPU2wwnPA5Lxt2tpmbVJ
 QQFJgsUrBSblqtrQ/phAmh5kLGUOHOIzPDa04sz3Gm1xAwGS4TeN4AxBCPopoayoLca759m7LTI
 KQq4VJfKn90LpYTTYWQPNxoIeFAtf4xQJdj8X0+fwWJoDU4qSHnze9gG3dvVZqoDPbLVsgAlzyq
 2r/2W7dpzOtP02NtS295t9dUJrAq9S8hf5S9s8oe
X-Received: by 2002:a17:90b:4ccd:b0:367:bb54:8768 with SMTP id
 98e67ed59e1d1-367bb548ed5mr3214981a91.4.1778297594097; Fri, 08 May 2026
 20:33:14 -0700 (PDT)
MIME-Version: 1.0
From: Rahul Juliato <rahuljuliato@HIDDEN>
Date: Sat, 9 May 2026 00:32:58 -0300
X-Gm-Features: AVHnY4JDQsBQj3KBDy-1ZrVNXSlUVsMKfFj1pC_DSIzk08vLnqzdmUmGf1-K2w8
Message-ID: <CACah_w1ncXLbSDPWVhHxQ5tx5r3ir5yow-X4Z+cswtr+54XGvg@HIDDEN>
Subject: Error
To: 80740 <at> debbugs.gnu.org
Content-Type: multipart/alternative; boundary="00000000000066b60606515a2c7f"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
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 (/)

--00000000000066b60606515a2c7f
Content-Type: text/plain; charset="UTF-8"

Please ignore my last email to this bug report. It should remain closed.

That message was meant for another bug (#80991).

--00000000000066b60606515a2c7f
Content-Type: text/html; charset="UTF-8"

<div dir="ltr"><p class="gmail-isSelectedEnd">Please ignore my last email to this bug report. It should remain closed.</p><p>That message was meant for another bug (#80991).</p></div>

--00000000000066b60606515a2c7f--




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

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


Received: (at 80740) by debbugs.gnu.org; 9 May 2026 03:27:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 08 23:27:11 2026
Received: from localhost ([127.0.0.1]:47474 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wLYLM-0001dI-6e
	for submit <at> debbugs.gnu.org; Fri, 08 May 2026 23:27:11 -0400
Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:58618)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wLYLF-0001bv-Lv
 for 80740 <at> debbugs.gnu.org; Fri, 08 May 2026 23:27:04 -0400
Received: by mail-pg1-x52d.google.com with SMTP id
 41be03b00d2f7-c70c112cb61so1903886a12.0
 for <80740 <at> debbugs.gnu.org>; Fri, 08 May 2026 20:27:01 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1778297220; cv=none;
 d=google.com; s=arc-20240605;
 b=YQirmt7cA8kQDQbl7a/0kvKdQukXkR0pGl8ymTyOHWyiQKeuJfSRuxektcvJzREe2v
 Zq+Bc1pqNGthvtYJRdgT8KZqs418phj6zYNCFZ/aIZmC2WjOLtE78ttB50MnQIm+xU66
 hQfGNjMYkH963sGzhNynFIbYP1PHlxMpggqtc2+QXMX7Ik/CcrRxRZff5Dz/8ra6dl2k
 nn1x1oH9DyO1qG+iwWziNqwBuw/alF6XNCK+l5jsuouKzzF7uq9q2GDfQKtpDekxVmxk
 H1cV76l6ICiinxtfZ0L0n9ri79euPx8onVS63Bua9Lxcp7RjoKUtLtCqbkMkDUa1/19t
 BVDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=Y/aUvuqqv/2TAqfXaT30AfGcJSAt/eaQOGfVRsoLNmA=;
 fh=BWNjBx3a0orPnq9MSt2l1gPc3nD9yAn84Upj6qgG3lY=;
 b=EkYoxcoD8MemnSNnmt86SpIhcNfey0vz96AOqRL0PCmaTKJdO+A5xVrK8NC5eik+v8
 V04h98rtqzue/TNh39+UR2xdiVI7VdkOyV5AkBm0ibH5vk29srQqQi7MngpjTmgCRkfV
 nKEUG+rtMAuis25YwkI4B72/rB16dKYUD4Z3KNc1m551LvpttznNsXrjaa/AUpsml2gM
 yjFjUg0tI1xMLmP30ghnpu2l3eP4b3q+43m9HWjv30eVVfMK8Afe6/YzcWJApWK3Q16f
 jHuVocjxKYY30fR64GqwxVb1aqXT+PC0xZJf3DHborWUbJYyBj5mRQQE7BGcq+FS3Fxv
 L4Pg==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1778297220; x=1778902020; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=Y/aUvuqqv/2TAqfXaT30AfGcJSAt/eaQOGfVRsoLNmA=;
 b=Z9C3HEJM5OPBzmuZ3rzJUvRkBw1pVzmE07v7JkWCXTQf+w348XJ/46K60z252WiwhT
 LGOa5AG739V2Mu/H+yLNk3tEg2TSjEgeRWqLgBIiOEOznFYEoBwxRtn0xkFeq89PH6DJ
 SfmyGw7LhLpKzMU9Uf1JaTnFVrAqID7JnWDvu1XetQUXPxRcJOeAYxsUjmD5aeN43tUp
 AWsQyjeYNynAzi1AagjD0Hp3DIBOxQFaaOPk41Ouj3cR044bdtwxGSAHvxLKXT9QzVuL
 iu/iEWoxW81QsbF4izo6TWLvgH9Ng5Gk10JLGEwnJswZxuy1CBiOWa6WB6d9OBQd2D3a
 vODw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1778297220; x=1778902020;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=Y/aUvuqqv/2TAqfXaT30AfGcJSAt/eaQOGfVRsoLNmA=;
 b=gnRdrthwKeLPPCfMhpQYh9CHeDSWDm8rHvGeTwgQ6txISsSRKWB8qOu9QBLhyHd5/9
 i6LKKPrw0lXwCLeexwzKL69ofHy3dpczajCxL45ogplBAd/wCEyDn5S+RohHje5Dt/dx
 GXEA5YsVZn4NF0v/igbMMoTA4K+zr2pScQw/tPx+jUiBXX1YFo2sxX9j80tZbGM2wHXV
 UaEI7yaFqfYIHeb+Oo5vmUiOphfnb5OGQlxE9+yYkdORUlzdyaB8d+3VNy+H2IyIeDA1
 nVF56ZkzCMdt3XQwhOliVWTO3AfvJrzws1xvz2zr+cFR1nlJbAMR5dAtNO9fcjHGYVKw
 Ooiw==
X-Gm-Message-State: AOJu0Yym8dPoCop++VP9mNJovqw2LSPrdzRti3/Wsh1zU8vzm9+SrPsL
 baGLvwdmSfH7865SgbemJB9K1wZjvwknx9Wff3S4P31QOrdvXgwTnYbZi51Ly9zjzW5OZONbOTZ
 ElVT3yjLmoohP+dRbRPOTnFeYwxOMgXqZzV2/s5pVTQ==
X-Gm-Gg: AeBDieueq8LGhssDQKi1ITeWakN9SLI0dFfHToLhjuOwd1juc3bntAK2J7vdcETRBmR
 GL6Zn0yKLHJzLxNAcb4TUxbG8GJr3rkxqbbEcaVlsky5/66olmRdRHbFUbHvvh6TRq7/0EJqkNZ
 /40fVYXAddQfjvmlM2z3UB5MXzDg5+uK0WxrXb8ZaA2IFHi1WX8bOSMKQFTYHjnt9MW7jLgxxdW
 qoNeSeDQOuA43GgRsJz2R2Vf10IhiCco3Vtb1iQTIoUroGDs4fbbiJX8VDaLDR6nNEIz9QYhMZq
 RLYqL25iH5kdkUZBXcNQ4+ywB9Hflwil/whUIazI
X-Received: by 2002:a05:6a21:6d84:b0:398:7d6e:27f4 with SMTP id
 adf61e73a8af0-3aa5a8319dcmr17078349637.1.1778297219522; Fri, 08 May 2026
 20:26:59 -0700 (PDT)
MIME-Version: 1.0
References: <877bpe135w.fsf@HIDDEN>
 <CAN+1HbpDnyUncPGejy39B2u-ZwZD_TjFOVw63YVN2jDGKsc7TQ@HIDDEN>
 <87v7cyyp1u.fsf@HIDDEN>
 <CAN+1HbpDtKad7XDyepcLABh=x+7Z2Je2o6t3ytMD5LMghCRrMQ@HIDDEN>
 <CAN+1HbrS3C68HouGgo4GDM=yuM4wpNX=eezW8BNfwfnUyGjviw@HIDDEN>
 <CAN+1Hbo=y11rLYRikbjRKUj604vbaNePvDzKgZs6HDuzUvA9vg@HIDDEN>
 <m2h5ohil7d.fsf@HIDDEN>
In-Reply-To: <m2h5ohil7d.fsf@HIDDEN>
From: Rahul Juliato <rahuljuliato@HIDDEN>
Date: Sat, 9 May 2026 00:26:41 -0300
X-Gm-Features: AVHnY4I-kxlarljEt-S99qKCJmQFkLF-qyGF9VF1vokvtwlzHKvoCM8Bvcj9YyU
Message-ID: <CACah_w1=a+ZB2oQ-QiR7DNgYfw_79L60qVhATyT_CMy0Md2KuQ@HIDDEN>
Subject: Re: bug#80991: 31.0.50; markdown-ts-mode highlighting problems
To: 80740 <at> debbugs.gnu.org
Content-Type: multipart/mixed; boundary="00000000000013415906515a1665"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, Eshel Yaron <me@HIDDEN>,
 =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

--00000000000013415906515a1665
Content-Type: multipart/alternative; boundary="00000000000013415806515a1663"

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

Re-sending since I forgot to add the debbugs:

St=C3=A9phane Marks <shipmints@HIDDEN> writes:

>
>  I'm volunteering Rahul to prepare patches for everything once his flu
has flown.
>
>

Hi everyone,

Thanks, St=C3=A9phane!

Please find attached the patch containing the extracted fix from the
full file you sent. It's a nice workaround while we wait for the grammar
to be fixed upstream.

This patch should be applied *after* bug#80978 and bug#80979, in that
order.

To be clear, the order is:

* bug#80978
* bug#80979
* bug#80991 (this patch)

--=20
Rahul Martim Juliato

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

<div dir=3D"ltr"><div>Re-sending since I forgot to add the debbugs:</div><d=
iv><br></div><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"l=
tr" class=3D"gmail_attr">St=C3=A9phane Marks &lt;<a href=3D"mailto:shipmint=
s@HIDDEN" target=3D"_blank">shipmints@HIDDEN</a>&gt; writes:<br><br>&=
gt;<br>&gt;=C2=A0 I&#39;m volunteering Rahul to prepare patches for everyth=
ing once his flu has flown.<br>&gt;<br>&gt;<br><br>Hi everyone,<br><br>Than=
ks, St=C3=A9phane!<br><br>Please find attached the patch containing the ext=
racted fix from the<br>full file you sent. It&#39;s a nice workaround while=
 we wait for the grammar<br>to be fixed upstream.<br><br>This patch should =
be applied *after* bug#80978 and bug#80979, in that<br>order.<br><br>To be =
clear, the order is:<br><br>* bug#80978<br>* bug#80979<br>* bug#80991 (this=
 patch)<br><br>--=C2=A0<br>Rahul Martim Juliato</div></div></div>

--00000000000013415806515a1663--

--00000000000013415906515a1665
Content-Type: application/x-patch; 
	name="0001-Fix-strikethrough-in-markdown-ts-mode.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-strikethrough-in-markdown-ts-mode.patch"
Content-Transfer-Encoding: base64
Content-ID: <19e0ac56a7a21b741772>
X-Attachment-Id: 19e0ac56a7a21b741772

RnJvbSAzYTU3N2QyMzQwZmU1YzY1MmExMWQ4ZDM4N2EyMTc2OGQ5NmY5NDNhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgOCBNYXkgMjAyNiAxOToyMzowNyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEZpeCBzdHJpa2V0aHJvdWdoIGluICdtYXJrZG93bi10cy1tb2RlJyAoYnVnIzgwOTkx
KQoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCihtYXJrZG93bi10cy0tdHJl
ZXNpdC1zZXR0aW5ncyk6IEFkZCBhIG5ldyBmb250LWxvY2sgYmxvY2sgZm9yCidwYXJhZ3JhcGgt
aW5saW5lJyB0aGF0IGhhbmRsZXMgc3RyaWtldGhyb3VnaCBub2RlcyBtb3JlCmNhcmVmdWxseS4K
LS0tCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsIHwgMzMgKysrKysrKysrKysr
KysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMSBk
ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUu
ZWwgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCmluZGV4IDhjMTg2ODMzZTJm
Li43NDE0ZjM0ZWRiYyAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9k
ZS5lbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCkBAIC0xNTQsNiAr
MTU0LDE3IEBACiA7OyAgIGNvbnRlbnQuICBMb3dlcmNhc2UgYDwhZG9jdHlwZSBodG1sPicgd29y
a3MgYXMgYSB3b3JrYXJvdW5kLgogOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNp
dHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjMzPi4KIDs7Cis7OyAt
IFRoZSBncmFtbWFyIHBhcnNlcyBzb2xvIHRpbGRlcywgaW5jb3JyZWN0bHkgYXBwbHlpbmcgc3Ry
aWtldGhyb3VnaC4KKzs7ICAgRm9yIGV4YW1wbGUsIHdyaXRpbmc6Cis7OworOzsgICAgIEkgc2Vl
IH5hcHByb3hpbWF0ZWx5IGZvdXIgbGlnaHRzLgorOzsgICAgIEkgZG8gbm90IHNlZSB+YXBwcm94
aW1hdGVseSBmaXZlIGxpZ2h0cy4KKzs7Cis7OyAgIFJlc3VsdHMgaW4gc3RyaWtldGhyb3VnaCBp
bmNvcnJlY3RseSBzdGFydGluZyBhdCB0aGUgZmlyc3QKKzs7ICAgfmFwcHJveGltYXRlbHkgYW5k
IGV4dGVuZGluZyB0aWxsIHRoZSB0aWxkZSBhdCB0aGUgc2Vjb25kCis7OyAgIH5hcHByb3hpbWF0
ZWx5LgorOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90
cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjM2Pi4KKzs7CiA7OyAtIFN1cGVyc2NyaXB0IChg
XnRleHReJykgYW5kIHN1YnNjcmlwdCAoYH50ZXh0ficpIHN5bnRheCBpcyBub3QKIDs7ICAgc3Vw
cG9ydGVkIGJ5IHRoZSBncmFtbWFyLiAgTm8gRVhURU5TSU9OXyBidWlsZCBmbGFnIGV4aXN0cyBm
b3IKIDs7ICAgdGhpcy4gIFRoaXMgaXMgUGFuZG9jIC8gUEhQIE1hcmtkb3duIEV4dHJhIHN5bnRh
eCwgbm90IENvbW1vbk1hcmsKQEAgLTE3MDMsMTMgKzE3MTQsMzMgQEAgbWFya2Rvd24tdHMtLXRy
ZWVzaXQtc2V0dGluZ3MKICAgICcoKChjb2RlX3NwYW4pIEBtYXJrZG93bi10cy1jb2RlLXNwYW4p
CiAgICAgICgoY29kZV9zcGFuX2RlbGltaXRlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGlt
aXRlcikpCiAKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCisgICA6b3ZlcnJpZGUgJ2Fw
cGVuZAorICAgOmZlYXR1cmUgJ3BhcmFncmFwaC1pbmxpbmUKKyAgIDs7IE9yZGVyIG1hdHRlcnM6
IG1vc3Qgc3BlY2lmaWMgdG8gbGVhc3Qgc3BlY2lmaWMuCisgICAnKDs7IH4geCB+IChzdHJpa2V0
aHJvdWdoIChlbXBoYXNpc19kZWxpbWl0ZXIpICkgOiAoIChlbXBoYXNpc19kZWxpbWl0ZXIpKQor
ICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl4KKyAg
ICAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lIHRl
eHQgbmVlZHMgdG8gYmUgaWdub3JlZAorICAgICAoKHN0cmlrZXRocm91Z2ggKChlbXBoYXNpc19k
ZWxpbWl0ZXIpCisgICAgICAgICAgICAgICAgICAgICAgOmFuY2hvcgorICAgICAgICAgICAgICAg
ICAgICAgIF8gQGZvbworICAgICAgICAgICAgICAgICAgICAgIChlbXBoYXNpc19kZWxpbWl0ZXIp
KQorICAgICAgICAgICAgICAgICAgICAgKDptYXRjaCAiXFxgW35bOnByaW50Ol1dXFwnIiBAZm9v
KQorICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgQGRlZmF1bHQpCisgICAgIDs7IH5+eH5+
IChzdHJpa2V0aHJvdWdoIChlbXBoYXNpc19kZWxpbWl0ZXIpIChzdHJpa2V0aHJvdWdoIChlbXBo
YXNpc19kZWxpbWl0ZXIpIChlbXBoYXNpc19kZWxpbWl0ZXIpKSAoZW1waGFzaXNfZGVsaW1pdGVy
KSkKKyAgICAgKChzdHJpa2V0aHJvdWdoIChlbXBoYXNpc19kZWxpbWl0ZXIpIChzdHJpa2V0aHJv
dWdoIChlbXBoYXNpc19kZWxpbWl0ZXIpIChlbXBoYXNpc19kZWxpbWl0ZXIpKSAoZW1waGFzaXNf
ZGVsaW1pdGVyKSkKKyAgICAgIEBtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoKQorICAgICA7OyAg
fnh+ICAoc3RyaWtldGhyb3VnaCAoZW1waGFzaXNfZGVsaW1pdGVyKSAoZW1waGFzaXNfZGVsaW1p
dGVyKSkKKyAgICAgKChzdHJpa2V0aHJvdWdoIChlbXBoYXNpc19kZWxpbWl0ZXIpIChlbXBoYXNp
c19kZWxpbWl0ZXIpKQorICAgICAgQG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gpKQorCiAgICA6
bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOm92ZXJyaWRlICdhcHBlbmQKICAgIDpmZWF0
dXJlICdwYXJhZ3JhcGgtaW5saW5lCiAgICAnKCgobGlua19kZXN0aW5hdGlvbikgQG1hcmtkb3du
LXRzLS1mb250aWZ5LWxpbmstZGVzdGluYXRpb24pCiAgICAgICgoZW1waGFzaXMpIEBtYXJrZG93
bi10cy1lbXBoYXNpcykKICAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBtYXJrZG93bi10cy1ib2xk
KQotICAgICAoKHN0cmlrZXRocm91Z2gpIEBtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoKQogICAg
ICAoaW5saW5lX2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9k
ZSkKICAgICAgKGZ1bGxfcmVmZXJlbmNlX2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1m
b250aWZ5LWxpbmstbm9kZSkKICAgICAgKGZ1bGxfcmVmZXJlbmNlX2xpbmsgKGxpbmtfbGFiZWwp
IEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCi0tIAoyLjU0LjAKCg==
--00000000000013415906515a1665--




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

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


Received: (at 80740) by debbugs.gnu.org; 5 May 2026 09:07:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 05 05:07:29 2026
Received: from localhost ([127.0.0.1]:55220 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wKBkU-000091-PI
	for submit <at> debbugs.gnu.org; Tue, 05 May 2026 05:07:29 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:34772)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1wKBkR-00007V-D7
 for 80740 <at> debbugs.gnu.org; Tue, 05 May 2026 05:07:24 -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 1wKBkL-0007oN-Ii; Tue, 05 May 2026 05:07:17 -0400
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=+nUmf69lyxWV8ZjbqOqT0WWOaKhFoiFYSjHX2IAHd+0=; b=Pup5cL+npOF7ZwCrqO/C
 nuIQKaQ/9glvhWjqZb0RppZ6/PRzzcrCdbzMot9HYOHcZas+XJZvgwfeg02HQBcgtRm7wDTkyefYM
 TFuEzhW9af6xT50tqDAc5riPtbC+NpbdUicMw9P/lG4A7zczfRMVkPShR6Gt0rvuUsgCdmvlNl/4Y
 IkF2oXMNK2WBUEmV2t6ivsqhhJ7U83Xlkg1AQXkSLRKfHN7gV9OnXJG3m+9rTI2Slc+p5v+lG43Ye
 LZFng5OtNieFePRdN8+8pXUr/tgndsRNx1ZTKRoorFdhJExUYToWsPZD0Vl4J747Ij9UJu/FLAWY2
 qtAFUD9he6AiCQ==;
Date: Tue, 05 May 2026 12:07:13 +0300
Message-Id: <86a4ueb4xq.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <62D0E018-29BC-45B8-98A4-5AAA50F4B6E6@HIDDEN> (message from
 Yuan Fu on Tue, 5 May 2026 00:25:37 -0700)
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN> <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN> <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN>
 <86ldekiucu.fsf@HIDDEN> <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN> <m2ik982h8d.fsf@HIDDEN>
 <871pfvtso9.fsf@HIDDEN> <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
 <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
 <m2mryi7jcx.fsf@HIDDEN> <87fr48mqdn.fsf@HIDDEN>
 <CAN+1HbpNjycEqwALJkLyLOiYokP7CzJmW3sU8LOm5VzrmKkFfQ@HIDDEN>
 <m27bpk19pl.fsf@HIDDEN> <62D0E018-29BC-45B8-98A4-5AAA50F4B6E6@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80740
Cc: public@HIDDEN, me@HIDDEN, rahuljuliato@HIDDEN,
 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Yuan Fu <casouri@HIDDEN>
> Date: Tue, 5 May 2026 00:25:37 -0700
> Cc: Stéphane Marks <shipmints@HIDDEN>,
>  Thanos Apollo <public@HIDDEN>,
>  80740 <at> debbugs.gnu.org,
>  Eli Zaretskii <eliz@HIDDEN>,
>  Eshel Yaron <me@HIDDEN>
> 
> 
> 
> > On May 3, 2026, at 2:09 PM, Rahul Martim Juliato <rahuljuliato@HIDDEN> wrote:
> > 
> > Thanks all for the input.
> > 
> > Thanos: thanks for being an early user and putting it through real use.
> > Glad to hear it's been a smooth ride so far.  The ^L-between-blank-lines
> > separator is a good recipe for batch fontification and worth recording.
> > 
> > Stéphane: agreed, grammar-level matter.  NUL isn't in the grammar's
> > extras, so it surfaces as UNEXPECTED and inline state bleeds during
> > error recovery (so yeah, grammar's fault).
> > 
> > 
> > I've added a short "Batch Fontification" section to the commentary in
> > markdown-ts-mode.el documenting this and recommending the ^L separator.
> > 
> > 
> > Yuan: while in there, I added a bullet under "Tree Sitter Bugs" pointing
> > at your scanner serialize() overflow report (#243) so users may have a
> > breadcrumb to the upstream issue.
> > 
> > Updated patch attached (only comments added).
> > 
> > -- 
> > Rahul Martim Juliato
> > 
> > <0001-Improve-markdown-ts-mode.patch>
> 
> Cool. I merge this patch to master. Hopefully this is the final final version :)

Thanks, but as always, please test the new TS-related code in a build
without tree-sitter, because that always reveals byte-compiler
warnings about unknown functions.

I fixed this in this case.




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

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


Received: (at 80740) by debbugs.gnu.org; 5 May 2026 07:25:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 05 03:25:56 2026
Received: from localhost ([127.0.0.1]:54625 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wKAAF-0006ev-1g
	for submit <at> debbugs.gnu.org; Tue, 05 May 2026 03:25:56 -0400
Received: from mail-dy1-x132c.google.com ([2607:f8b0:4864:20::132c]:50422)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1wKAAA-0006dh-BT
 for 80740 <at> debbugs.gnu.org; Tue, 05 May 2026 03:25:52 -0400
Received: by mail-dy1-x132c.google.com with SMTP id
 5a478bee46e88-2f03d6cf77bso2988063eec.0
 for <80740 <at> debbugs.gnu.org>; Tue, 05 May 2026 00:25:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777965949; x=1778570749; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=9NP6NdhzpVJDC+MTY3pYuXC4KG55F0GpJkzOXXyDYic=;
 b=AC6ojdsp7fCmapiOt9U2Kpekf54+U31sIf0hqmWjzeqFunBrNaFHNfMWg5iSvqy23a
 3IEpKY7d5YJ8T/CMAV1RsyPbMSAT4A2gQVVvI5KZq7xMISZK8g5ryPTxFb/0S5dRYryL
 rVnGHfj+ZMX1pVuOsZP1YJIVjfsWDU3cUE681nyIHW3rlyvdKoticxKoMtz7DzUYLDEC
 6kkOltcyj0u5iJk2LkfcL44b/eLaLEJLXkgCMvsiEx1YsuXg5RMASYNhkbrIBv/y80yY
 I6mou5/Uh0ljNT+I1/FL/j4CkyIpFh7febc3R97JedOcNb76sGf+rcMV6pk306Sgopzs
 giIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777965949; x=1778570749;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=9NP6NdhzpVJDC+MTY3pYuXC4KG55F0GpJkzOXXyDYic=;
 b=m+UXAyG1QQWJw/bzHYrEET1fYrGibQMhI23C79aiZxS+G5OCquZAlonTQXax3GxZv8
 9vEyl8wj64/tzgiFu9x+c0sdISFCaj70Y7sbnAgG7in967apno27grxePSnRcQoAyZnn
 n4RkN6DKb9BZpDYdejPHw5Wf92E5Rzktm43VW/L5Gp/HUEEsrZJrlIi+EwkYlT+SdDxV
 SxpQ/Uj0JlgLSTmOGluKWAlqRkolUMTGqgaMVZjj8C3giT+Vzhsu9FIfY2W6X0ot79Zs
 5xDJ69G+f7j7c7/Ml8m3ovI2VD5BXWfclV34DQ/mjoLxgVDHwzRVaMo9cwvNygtg+r2c
 XokQ==
X-Forwarded-Encrypted: i=1;
 AFNElJ9TePdcs4pF8uxSYmU4l7KXLUiDo9DfRZOC3jTSv1DObe2Z3h+kV2sm0nIrGvoetrucG+Gptg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyBKGg2J9XMQgOMNe3if1JxkAq3JrXKNF0D/n1TGnw3pxqRjG0R
 J7mttBB4VgBRKjm5xrLJWyD5txVZplN4GDB9UAUdVVLRrvIGiEdUtKWn
X-Gm-Gg: AeBDievqweP+XSQBVuA7WL3kNg+oEXlRwI55dnrluy2W+COXCB+LWpfrVaoDqOnbuJE
 6+D3YEV9kbxhxPlzmnvGml42/zJc+NUjvKg+ZC9Si8hw+8h7VdpifF6T/cuEgBtaxliWB7pYDDL
 wrKTrjuIK0MG/UJietwPO3eFzdimqIXwUoItHuKw3cNJbVsBLvyoximCdyrXLhLW97z6UsoX65y
 M/TS/N/oJnYNfJRbVZaBUftN56hntfmWoiLnkfegBNNOpeTVD+CiIjpdRxqfwwuR7oGp+Fmpo0t
 hXMdDRMgSOee+rGAJ8AUBN2ezqC1k1sk9O7micYSlt3ErKWrIDLxK2E0xWOwZx+SNZsD/fnZf70
 qX9DZ6sd9SMdRGw9W2wr81ibpDFjb3AlwuyocqYuzEmqU8wrOS42TS86yfxDXjcefgXu0lA9iCL
 D9UlicFrF2fwqvARLSSlXYVRGm/DziIbAM8mZwPv8PiA150v5kTJGCaw==
X-Received: by 2002:a05:7301:9f06:b0:2c1:3f85:747 with SMTP id
 5a478bee46e88-2f4097d35f9mr859991eec.21.1777965948768; 
 Tue, 05 May 2026 00:25:48 -0700 (PDT)
Received: from smtpclient.apple ([2601:645:c686:b320:71f8:6422:87:31e3])
 by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2ee38e71cedsm23061027eec.9.2026.05.05.00.25.47
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 05 May 2026 00:25:48 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
From: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <m27bpk19pl.fsf@HIDDEN>
Date: Tue, 5 May 2026 00:25:37 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <62D0E018-29BC-45B8-98A4-5AAA50F4B6E6@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN> <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN> <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN>
 <86ldekiucu.fsf@HIDDEN> <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN> <m2ik982h8d.fsf@HIDDEN>
 <871pfvtso9.fsf@HIDDEN> <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
 <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
 <m2mryi7jcx.fsf@HIDDEN> <87fr48mqdn.fsf@HIDDEN>
 <CAN+1HbpNjycEqwALJkLyLOiYokP7CzJmW3sU8LOm5VzrmKkFfQ@HIDDEN>
 <m27bpk19pl.fsf@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Mailer: Apple Mail (2.3826.700.81)
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Thanos Apollo <public@HIDDEN>, Eshel Yaron <me@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>, 80740 <at> debbugs.gnu.org,
 =?utf-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)



> On May 3, 2026, at 2:09=E2=80=AFPM, Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>=20
> Thanks all for the input.
>=20
> Thanos: thanks for being an early user and putting it through real =
use.
> Glad to hear it's been a smooth ride so far.  The =
^L-between-blank-lines
> separator is a good recipe for batch fontification and worth =
recording.
>=20
> St=C3=A9phane: agreed, grammar-level matter.  NUL isn't in the =
grammar's
> extras, so it surfaces as UNEXPECTED and inline state bleeds during
> error recovery (so yeah, grammar's fault).
>=20
>=20
> I've added a short "Batch Fontification" section to the commentary in
> markdown-ts-mode.el documenting this and recommending the ^L =
separator.
>=20
>=20
> Yuan: while in there, I added a bullet under "Tree Sitter Bugs" =
pointing
> at your scanner serialize() overflow report (#243) so users may have a
> breadcrumb to the upstream issue.
>=20
> Updated patch attached (only comments added).
>=20
> --=20
> Rahul Martim Juliato
>=20
> <0001-Improve-markdown-ts-mode.patch>

Cool. I merge this patch to master. Hopefully this is the final final =
version :)

Yuan=




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

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


Received: (at 80740) by debbugs.gnu.org; 3 May 2026 21:09:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun May 03 17:09:53 2026
Received: from localhost ([127.0.0.1]:59367 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wJe4X-0003UJ-OM
	for submit <at> debbugs.gnu.org; Sun, 03 May 2026 17:09:53 -0400
Received: from mail-dy1-x132e.google.com ([2607:f8b0:4864:20::132e]:58787)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wJe4U-0003U2-Bs
 for 80740 <at> debbugs.gnu.org; Sun, 03 May 2026 17:09:50 -0400
Received: by mail-dy1-x132e.google.com with SMTP id
 5a478bee46e88-2ecf9e398f4so7814347eec.1
 for <80740 <at> debbugs.gnu.org>; Sun, 03 May 2026 14:09:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777842589; x=1778447389; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=0vlUfN/IWtoClg+wFjbpq0OzQl+mKGfteEC+x8UHha8=;
 b=gKW5wKe0YI2ANDuACZjDXuUsYl0zohHeGMFNtc9c0itioi+rwSxPj3jt4ILOGSE4QE
 bDXxFarkylE+I2mhT6CYDd1+nA0MM1vzz2SdKPHjthk9c49/ZbUURCQTj6ixiRGob3LF
 iRdLavn6FTTMm7ZXh25ofHC38hCnYmR7V5qRQyn7koUcGVKg5dB/rmt1i3Cvb+uYurnZ
 QzutFn5J4i1x1SBoYk0oMAA5Zy0iyoizNqlXnksiVoAmMjuqmo0hc8r1q8sQ/qHt9Czm
 lmoZqE+PAcuPbVqaMyxvBTstU/mJosqsMu8jQ5k7oXoAPw58zzNh/dnLFh7g3UDDK8RT
 xaxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777842589; x=1778447389;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=0vlUfN/IWtoClg+wFjbpq0OzQl+mKGfteEC+x8UHha8=;
 b=ZFqP0Ke3OzxRvtjPoIS9XdhbfGzFRQgvZtw3NFZPzvKKQGaRU+9Kblk6Ypv/2oqF07
 i+2IeaQ8U0uvjiX6aZn7smEZlMzCV6PHnHvWCkCJhuWdiSxMg2bfEgmhnOlSI7z18GO2
 Kwjs1i511YgxUrraK7Qmc7nd1XyZPG2ChqBLrOv5Zkt/1gSi7MrtHfXsP0XrcfvhRPCr
 Hp6qBLy4qJUIhjB8gnWeqjMkJr7yfgYT87UN7xYPmRXSFgTOvIS1nJF5P4cG9+NsSmPC
 y08lT0xdeCYLgKFUa26xuPIe9hDqLk4BUqGM+FpDp5pVXopifVzezZwfn+dHwqrqbjVi
 ApeQ==
X-Forwarded-Encrypted: i=1;
 AFNElJ/ECyq3xJCMkMcBPUecG6r2C4bHCxcfRFtWgYgDdl/jn0Z73rTF3Toph0FVpT+FB9WhUYdiFQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwqfwWa5u3cySiYKs1hhbi+B02c83QfcpzJC12I8NrET9CK97yO
 9ghtfvIqmFzmKCMDf5dO0LeWvYnhg1hiARmIH/WhgKXe/SmQ4cuvZOCx
X-Gm-Gg: AeBDiev43RJz2nu866vhTTpEhIYIO9AXFajortrRNfFoPo1ozpcgUvx9ckGv8+ALSpK
 8ZTVqdFIfsp3x556m7mfvK4ad/Cb/NrEYXYYlnqgidIwK3Og5n8LuwHEWxdeV45xeXAOXyhnc2M
 s+UQPN6uTQgAdNNZUCCEf7kyAmYxkkg/h4l8nVHSm1TH7qXme+11QOM2gb20A6V5u0b4kU+vHjd
 nb1cToM7OHrCzweTGRvwaCzJzZcjdx+l9Ncv8kJejCN2C9SbG6L4rwiPECZCzVGfmcmiupDB2tJ
 1uv3gPlRfAb6Fqq7j1sUTcy4Ogyv0UTgxXKw4Z+jLgDjY+3e27V4qu2tbM0t4YVuYgsMP4pdJ2z
 irDJPmilAxNvCkKxrQ6vC12OEsblaLcjoF1+eOLfrUhGhxGrN6lhml58+LrX5ld1yxHx1d6LXA8
 XemuWw7nkglBbsKYuuwBKGWxvEa4J/AlGTevbrVvGtgNk6vSyxxeh8i2N3wKCcomn0WcISFdzrx
 8WmfvCbfCH2pPrgy8IMdxHAYPlusD6S4XaPMzrKJyPq0xLW29jKRi9bjMXPD3QrhmI=
X-Received: by 2002:a05:7300:2316:b0:2de:c5ca:c1f3 with SMTP id
 5a478bee46e88-2efb7ad86b0mr3132278eec.4.1777842588514; 
 Sun, 03 May 2026 14:09:48 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-75.dial-up.telesp.net.br.
 [201.93.59.75]) by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2ee3b878317sm13925139eec.23.2026.05.03.14.09.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 03 May 2026 14:09:47 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <CAN+1HbpNjycEqwALJkLyLOiYokP7CzJmW3sU8LOm5VzrmKkFfQ@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN> <m2ik982h8d.fsf@HIDDEN>
 <871pfvtso9.fsf@HIDDEN> <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
 <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
 <m2mryi7jcx.fsf@HIDDEN> <87fr48mqdn.fsf@HIDDEN>
 <CAN+1HbpNjycEqwALJkLyLOiYokP7CzJmW3sU8LOm5VzrmKkFfQ@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Sun, 03 May 2026 18:09:42 -0300
Message-ID: <m27bpk19pl.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 Thanos Apollo <public@HIDDEN>, Eshel Yaron <me@HIDDEN>,
 =?utf-8?Q?St=C3=A9phane?= Marks <shipmints@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>, 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

Thanks all for the input.

Thanos: thanks for being an early user and putting it through real use.
Glad to hear it's been a smooth ride so far.  The ^L-between-blank-lines
separator is a good recipe for batch fontification and worth recording.

St=C3=A9phane: agreed, grammar-level matter.  NUL isn't in the grammar's
extras, so it surfaces as UNEXPECTED and inline state bleeds during
error recovery (so yeah, grammar's fault).


I've added a short "Batch Fontification" section to the commentary in
markdown-ts-mode.el documenting this and recommending the ^L separator.


Yuan: while in there, I added a bullet under "Tree Sitter Bugs" pointing
at your scanner serialize() overflow report (#243) so users may have a
breadcrumb to the upstream issue.

Updated patch attached (only comments added).

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSA0MTcwMGViMmEzZjE1NzEwMzVkOTIzZmFjODUwMDRlNzFjN2FkZDMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYSBtb2RlIG1lbnUs
IGFuZCB0YWJsZSBlZGl0aW5nLiAgQWRkCidtYXJrZG93bi10cy1tb2RlLXguZWwnIHdpdGggY29u
dmVyc2lvbi9leHBvcnQgYW5kIFRPQyBzdXBwb3J0LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwKUGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRz
IGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29tbWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9y
IGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMsIGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0
aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUtc2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUg
J2dvdG8tYWRkciwgeHJlZiwgaWNvbnMpOiBOZXcgcmVxdWlyZW1lbnRzLgoobWFya2Rvd24tdHMp
OiBOZXcgY3VzdG9taXphdGlvbiBncm91cCB3aXRoIDp2ZXJzaW9uIGFuZAo6cGFja2FnZS12ZXJz
aW9uIHRhZ3MuCihtYXJrZG93bi10cy1oaWRlLW1hcmt1cCk6IEFkZCA6dmVyc2lvbiBhbmQgOnBh
Y2thZ2UtdmVyc2lvbi4KKG1hcmtkb3duLXRzLWVsbGlwc2lzKTogTmV3IG9wdGlvbiBmb3IgZm9s
ZGVkIGhlYWRpbmcgZWxsaXBzaXMuCihtYXJrZG93bi10cy1tZW51LWJhci1zaG93KTogTmV3IG9w
dGlvbiB0byB0b2dnbGUgbW9kZSBtZW51LgoobWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nKTog
TmV3IG9wdGlvbiBmb3IgZGVmYXVsdCBmb2xkCmxldmVsLgoobWFya2Rvd24tdHMtaW5saW5lLWlt
YWdlcyk6IE5ldyBvcHRpb24gdG8gZGlzcGxheSBpbmxpbmUKaW1hZ2VzLgoobWFya2Rvd24tdHMt
aW1hZ2UtbWF4LXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgaW1hZ2UgbWF4IHdpZHRoLgoobWFya2Rv
d24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcyk6IE5ldyBvcHRpb24gZm9yCnJlbW90
ZSBpbWFnZSBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUpOiBO
ZXcgaGVscGVyIHRvIHJlc29sdmUKZGlzcGxheSB2YWx1ZXMgdXNpbmcgY2hhci1kaXNwbGF5YWJs
ZS1wLgoobWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNr
ZWQgY2hlY2tib3gKZGlzcGxheSBzdHJpbmcgb3IgaWNvbi4KKG1hcmtkb3duLXRzLWNoZWNrZWQt
Y2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKY2hlY2tlZCB2YXJpYW50
LgoobWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgdW5jaGVj
a2VkCmNoZWNrYm94IGRpc3BsYXkgc3RyaW5nIG9yIGljb24uCihtYXJrZG93bi10cy11bmNoZWNr
ZWQtY2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKdW5jaGVja2VkIHZh
cmlhbnQuCihtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9u
IGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5IGNoYXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcgb3B0aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4g
cGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xhc2ggaGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3Vw
IGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRp
b24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBwbGFjZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJk
IGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCmNvZGUgYmxvY2sgY29u
dGV4dCBtb2RlIGxpZ2h0ZXIgc3RyaW5nLgoobWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2Nr
LW1vZGUtd2FybmluZ3MpOiBOZXcgb3B0aW9uIHRvCmluaGliaXQgY29kZS1ibG9jayBtYWpvci1t
b2RlIG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgZGVmYXVsdAp0YWJsZSBjb2x1bW4gd2lkdGguCiht
YXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZSk6IE5ldyBvcHRpb24gdG8gZW5hYmxlIHRhYmxl
Cm1vZGUuCihtYXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduKTogTmV3IG9wdGlvbiBmb3IgdHJp
Z2dlcnMgdGhhdApjYXVzZSBhdXRvbWF0aWMgdGFibGUgYWxpZ25tZW50LgoobWFya2Rvd24tdHMt
dGFibGUtYWxpZ24tZmVhdHVyZXMpOiBOZXcgb3B0aW9uIGZvciB0YWJsZSBhbGlnbgpmZWF0dXJl
cy4KKG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCm1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUgbGlnaHRlciBzdHJpbmcuCihtYXJrZG93bi10cy1lbXBo
YXNpcywgbWFya2Rvd24tdHMtYm9sZCkKKG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gsIG1hcmtk
b3duLXRzLWxpbmspCihtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uLCBtYXJrZG93bi10cy1j
b2RlLXNwYW4pCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLCBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1hcmt1cC1oaWRkZW4pCihtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrLCBtYXJrZG93
bi10cy1odG1sLXRhZykKKG1hcmtkb3duLXRzLWh0bWwtYmxvY2ssIG1hcmtkb3duLXRzLXRoZW1h
dGljLWJyZWFrKQoobWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSkKKG1hcmtkb3duLXRzLW51
bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSwgbWFya2Rvd24tdHMtbGF0ZXgpCihtYXJrZG93bi10
cy10YWJsZS1oZWFkZXIsIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCihtYXJrZG93bi10cy10YWJs
ZS1kZWxpbWl0ZXItY2VsbCwgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpCihtYXJrZG93bi10
cy10YXNrLWNoZWNrZWQpOiBOZXcgZmFjZXMuCihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
YmFja3NsYXNoKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4p
CihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpCihtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstc3BhY2UtaGlkZGVuKTogTmV3IGZhY2VzIGZvciB0aGUKdHdvIGhhcmQtbGluZS1i
cmVhayB2YXJpYW50cywgd2l0aCBkaXN0aW5jdCBzaG93bi9oaWRkZW4KYXBwZWFyYW5jZXMuCiht
YXJrZG93bi10cy1pbi1jb2RlLWJsb2NrKTogTmV3IGZhY2UgZm9yIHdoZW4gcG9pbnQgaXMgaW5z
aWRlIGEKZmVuY2VkIGNvZGUgYmxvY2suCihtYXJrZG93bi10cy10YWJsZSk6IE5ldyBmYWNlIGZv
ciBNYXJrZG93biBwaXBlIHRhYmxlCmJhY2tncm91bmQuCihtYXJrZG93bi10cy1pbi10YWJsZSk6
IE5ldyBmYWNlIGZvciBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlCndoZW4gcG9pbnQgaXMgaW4g
YSB0YWJsZS4KKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lKTogTmV3IHZhcmlhYmxlIGZvciBs
aWdodHdlaWdodCBzZXR1cAppbiBlbWJlZGRlZCBpbmxpbmUgbWFya2Rvd24tdHMtbW9kZSBidWZm
ZXJzIHVzZWQgYnkgY29kZSBibG9jawpjb21tYW5kcy4KKG1hcmtkb3duLXRzLWRlZmF1bHQtY29k
ZS1ibG9jay1tb2RlKTogTmV3IHZhcmlhYmxlIHRvIGRlZmluZQpkZWZhdWx0IG1vZGUgZm9yIGFu
b255bW91cyBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZvbnRpZnktY29kZS1ibG9ja3MtbmF0
aXZlbHkpOiBOZXcgb3B0aW9uIHRvCmVuYWJsZS9kaXNhYmxlIG5hdGl2ZSBmb250aWZpY2F0aW9u
IG9mIGZlbmNlZCBjb2RlIGJsb2NrCmNvbnRlbnRzLgoobWFya2Rvd24tdHMtZW5hYmxlLWNvZGUt
YmxvY2stY29udGV4dC1tb2RlKTogTmV3IG9wdGlvbiB0bwplbmFibGUvZGlzYWJsZSBjb2RlIGJs
b2NrIGNvbnRleHQgaW50ZWdyYXRpb24uCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKTog
TmV3IHZhcmlhYmxlIHJlcGxhY2luZwptYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1t
YXAgYW5kCm1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwIHdpdGggdW5pZmll
ZCBsYW5ndWFnZSB0bwptb2RlIG1hcHBpbmcgaW5jbHVkaW5nIGhldXJpc3RpYyBsb29rdXAuCiht
YXJrZG93bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcyk6IE5ldyB2YXJp
YWJsZQpsaXN0aW5nIHRyZWUtc2l0dGVyIG1vZGVzIHdob3NlIGZvbnRpZmljYXRpb24gb2YgY29k
ZSBibG9jawpjb250ZW50IHNob3VsZCBiZSBoYXJ2ZXN0ZWQgdmlhIGEgdGVtcG9yYXJ5IGJ1ZmZl
ci4KKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpOiBOZXcgY29uc3RhbnQgZm9yIHRh
YmxlIGV4cG9ydApvdXRwdXQgYnVmZmVyIG5hbWUuCihtYXJrZG93bi10cy0tdGFibGUtcm93LXR5
cGVzLCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1k
ZWxpbWl0ZXItY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcyk6IE5ldyBjb25zdGFudHMgZm9yCnBpcGUgdGFibGUgbm9kZSB0eXBlIGNsYXNzaWZp
Y2F0aW9uLgoobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24pOiBOZXcgZnVuY3Rpb24gdG8g
Y3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMgd2l0aCBtYWlsdG8sIGJyb3dzZS11cmwsIGFu
ZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0
aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGxpbmsgZGVzdGluYXRpb25zIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSwgbWFya2Rvd24tdHMt
LWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMp
CihtYXJrZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZik6IE5ldyBsaW5rIHJlZmVyZW5jZSBkZWZp
bml0aW9uCmNhY2hlIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBwZXIgQ29tbW9uTWFy
ayBzcGVjLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKTogTmV3IGZvbnRpZmllciBm
b3IgaW5saW5lLApyZWZlcmVuY2UsIHNob3J0Y3V0LCBhbmQgY29sbGFwc2VkIGxpbmtzIGFzIGNs
aWNrYWJsZSBidXR0b25zLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspOiBOZXcgZm9u
dGlmaWVyIGZvciBVUkkgYW5kIGVtYWlsCmF1dG9saW5rcyB3aXRoIGFuZ2xlIGJyYWNrZXQgaGlk
aW5nLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCihtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbik6IE5ldyBmb250aWZpZXJzIGZvcgpsaW5rIHJl
ZmVyZW5jZSBkZWZpbml0aW9ucy4KKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1Yi1zdHJpcC1yZSwg
bWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQoobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jLCBtYXJr
ZG93bi10cy0tZXhwbGljaXQtaWQtcmUpCihtYXJrZG93bi10cy0taGVhZGluZy10ZXh0LWFuZC1p
ZCkKKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlKQoobWFya2Rvd24tdHMtLWhlYWRpbmct
aWQtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24t
dHMtLWhlYWRpbmctaWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFn
bWVudCBsaW5rIHN1cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMu
CihtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5
LWxhdGV4LWJsb2NrKTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdy
YXBoIHZhbGlkYXRpb24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTog
TmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNp
ZGUgTGFUZVggYmxvY2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIg
dXNpbmcgb3JnLWVudGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3Bl
cnR5IGZvciBkZWNvZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTog
TmV3IGZvbnRpZmllciBzaG93aW5nIHRoZQpjb25maWd1cmVkIGNoZWNrYm94IGdseXBoIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhayk6
IE5ldyBmb250aWZpZXIgZm9yCidoYXJkX2xpbmVfYnJlYWsnIG5vZGVzLgoobWFya2Rvd24tdHMt
LWZvbnRpZnktaGVhZGluZyk6IE5ldyBmb250aWZpZXIgZm9yIEFUWCBhbmQgU2V0ZXh0CmhlYWRp
bmdzLgoobWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspOiBOZXcgZm9udGlmaWVy
IHNob3dpbmcKaG9yaXpvbnRhbCBsaW5lIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3du
LXRzLS1mb250aWZ5LWNvZGUtYmxvY2spOiBOZXcgZm9udGlmaWVyIGFwcGx5aW5nCmJhY2tncm91
bmQgb3ZlcmxheSB0byBjb2RlIGJsb2NrcyB3aXRoIGxhbmd1YWdlIGFuZCBtb2RlCnByb3BlcnRp
ZXMuCihtYXJrZG93bi10cy1hdC1jb2RlLWJsb2NrLXApCihtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LWxhbmd1YWdlLWF0KQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vz
c29ycyBmb3IgY29kZSBibG9jawpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1l
bnUtY29kZS1ibG9jay1ub2RlLXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRl
dGVjdGlvbi4KKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXApCihtYXJrZG93bi10
cy0tZm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0YW5kYWxv
bmUgYW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAp
CihtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMtLWZvbnRp
ZnktYmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEgaml0LWxv
Y2sgdXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5n
cyk6IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJzLCBhbmQg
bmV3IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxlbWVudHMu
ICBBbHNvIGFkZCBhIG5ldyAnZXJyb3InIGZvbnQtbG9jayBmZWF0dXJlCmhpZ2hsaWdodGluZyB0
cmVlLXNpdHRlciBFUlJPUiBub2Rlcy4KKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdl
cykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rlcyk6IE5ldyBidWZmZXItbG9j
YWwgYWxpc3RzCmZvciBjb2RlIGJsb2NrIGxhbmd1YWdlIHRyYWNraW5nLgoobWFya2Rvd24tdHMt
LWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24pOiBSZW5hbWUgZnJvbQptYXJrZG93
bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZpZ3Mgd2l0aCBkZWxheS1tb2RlLWhvb2tzLgoobWFy
a2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlcik6IFJlbmFtZSBmcm9tCm1hcmtkb3du
LXRzLS1hZGQtY29uZmlnLWZvci1tb2RlLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUp
OiBOZXcgaGVscGVyIGV4dHJhY3RpbmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9j
b250ZW50IG5vZGUuCihtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpOiBOZXcgYnVm
ZmVyLWxvY2FsIGhhc2ggdGFibGUKY2FjaGluZyBmb250aWZpY2F0aW9uIHJlc3VsdHMgZm9yIG5v
bi10cmVlLXNpdHRlciBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1j
b2xsZWN0LWZhY2VzKTogTmV3IGZ1bmN0aW9uCmhhcnZlc3RpbmcgZmFjZSBwcm9wZXJ0aWVzIGZy
b20gYSBtb2RlIGluIGFuIGluZGlyZWN0IG9yCnRlbXBvcmFyeSBidWZmZXIuCihtYXJrZG93bi10
cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10cmVl
LXNpdHRlciBtb2RlcyB2aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlzdGlj
IG1vZGUgbmFtZSBwcm9iaW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2Up
OiBSZW5hbWUgZnJvbQptYXJrZG93bi10cy0tY29udmVydC1jb2RlLWJsb2NrLWxhbmd1YWdlIHdp
dGggc3VwcG9ydCBmb3Igbm9uLXRzCm1vZGVzIGFuZCByZWN1cnNpdmUgbWFya2Rvd24gaGFuZGxp
bmcuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQoobWFya2Rvd24tdHMtY29kZS1i
bG9jay10aGluZy1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1h
bmRzKTogTmV3IGNvbW1hbmQgbGlzdHMgZm9yCmNvZGUtYmxvY2sgY29udGV4dCBleGVjdXRpb24u
CihtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlKQoobWFya2Rv
d24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2spCihtYXJrZG93bi10cy0tY29k
ZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMpCihtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jayk6IE5ldyBjb2RlIGJsb2NrIG1pbm9yCm1vZGUgd2l0aCB0ZW1wLWJ1ZmZl
ciBjb21tYW5kIGRpc3BhdGNoLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZSk6IE5l
dyBjb21tYW5kIGZvciBuZXdsaW5lCmluc2lkZSBjb2RlIGJsb2NrcywgZGlzcGF0Y2hpbmcgdG8g
dGhlIGJsb2NrJ3MgbW9kZS4KKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyk6IFVwZGF0ZSBy
YW5nZSBjb25maWd1cmF0aW9uOwpyZW1vdmUgOnJhbmdlLWZuIHRyZWVzaXQtcmFuZ2UtZm4tZXhj
bHVkZS1jaGlsZHJlbi4KKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCihtYXJr
ZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSk6IE5ldyBoZWxwZXJzIGZvciBpbWFnZQpvdmVy
bGF5IG1hbmFnZW1lbnQgZHVyaW5nIG91dGxpbmUgZm9sZC91bmZvbGQuCihtYXJrZG93bi10cy0t
b3V0bGluZS1pbnZpc2libGUtcCk6IE5ldyBoZWxwZXIgdGVzdGluZyB3aGV0aGVyIGEKcG9zaXRp
b24gaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJlZ2lvbi4KKG1hcmtkb3duLXRzLS1ob3N0
LXJhbmdlcy1ub3RpZmllcik6IE5ldyBmdW5jdGlvbiBwcnVuaW5nIHN0YWxlCmNvZGUgYmxvY2sg
b3ZlcmxheXMgd2hlbiB0aGUgaG9zdCBwYXJzZSB0cmVlIGNoYW5nZXMuCihtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSk6IE5ldyBoZWxwZXIgc2lnbmFsaW5nIGEKdXNlci1lcnJvciB3aGVu
IHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBub3QgZGVyaXZlZCBmcm9tCm1hcmtkb3duLXRzLW1vZGUu
CihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2Rl
IGVuYWJsZWQKd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBmZW5jZWQgY29kZSBibG9jaywgYWN0aXZh
dGluZwptYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1tYXAgc28gZWxpZ2li
bGUgY29tbWFuZHMKZGlzcGF0Y2ggdG8gdGhlIGJsb2NrJ3MgbWFqb3IgbW9kZS4KKG1hcmtkb3du
LXRzLS1zZXQtaGlkZS1tYXJrdXApOiBDbGVhciBpbWFnZSBvdmVybGF5cyB3aGVuCnRvZ2dsaW5n
IG1hcmt1cCB2aXNpYmlsaXR5LgoobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzKQoobWFy
a2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMpOiBOZXcgZnVuY3Rpb25zIGZvciB0b2dnbGlu
ZwppbmxpbmUgaW1hZ2UgZGlzcGxheS4KKG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgt
bGV2ZWwpOiBOZXcgY29uc3RhbnQuCihtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2ludCwgbWFy
a2Rvd24tdHMtLWhlYWRpbmctbGV2ZWwpCihtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCk6
IE5ldyBoZWFkaW5nIG5hdmlnYXRpb24gaGVscGVycy4KKG1hcmtkb3duLXRzLXByb21vdGUsIG1h
cmtkb3duLXRzLWRlbW90ZSk6IE5ldyBjb21tYW5kcyBmb3IKaGVhZGluZyBhbmQgbGlzdCBpdGVt
IHByb21vdGlvbi9kZW1vdGlvbiB3aXRoIHJlZ2lvbiBzdXBwb3J0LgoobWFya2Rvd24tdHMtLXBy
b21vdGUtb3ItZGVtb3RlKQoobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbik6
IE5ldyBoZWFkaW5nIGxldmVsCmFkanVzdG1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtbW92
ZS1zdWJ0cmVlLXVwLCBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bik6Ck5ldyBjb21tYW5k
cyBmb3IgbW92aW5nIHNlY3Rpb25zIGFuZCBsaXN0IGl0ZW1zLgoobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXApCihtYXJrZG93bi10cy0tbW92ZS1zdWJ0cmVlLXVwLW9yLWRvd24pOiBOZXcg
c3VidHJlZSBtb3ZlIHdpdGgKZm9sZGluZyBzdGF0ZSBwcmVzZXJ2YXRpb24uCihtYXJrZG93bi10
cy10b2dnbGUtY2hlY2tib3gpOiBOZXcgY29tbWFuZCB0byB0b2dnbGUgdGFzayBsaXN0CmNoZWNr
Ym94ZXMuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KTogTmV3IGhlbHBlciB3aXRo
IGJsb2NrIHF1b3RlCm1hcmtlciBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13
aWR0aCwgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24pCihtYXJrZG93bi10cy0tbGlzdC1v
cmRlcmVkLWl0ZW0tcCk6IE5ldyBsaXN0IGl0ZW0gaGVscGVycy4KKG1hcmtkb3duLXRzLS1saXN0
LXByb21vdGUtb3ItZGVtb3RlKTogTmV3IGZ1bmN0aW9uIHdpdGggb3JkZXJlZApsaXN0IG5lc3Rp
bmcgZ3VhcmQuCihtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCwgbWFya2Rvd24tdHMtLWxpc3Qt
bW92ZSk6IE5ldyBsaXN0Cml0ZW0gbW92ZW1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtcmVu
dW1iZXItbGlzdCk6IE5ldyBjb21tYW5kIGZvciBzZXF1ZW50aWFsIGxpc3QKcmVudW1iZXJpbmcg
d2l0aCBwcmVmaXggYXJndW1lbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3
LW1hcmtlcikKKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lKTogTmV3IG1hcmtlciBz
dHJpbmcgZ2VuZXJhdG9ycwpmb3IgbGlzdCBpdGVtIGluc2VydGlvbi4KKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKTogTmV3IGhlbHBlciBjb3VudGluZyBibG9jawpxdW90ZSBk
ZXB0aC4KKG1hcmtkb3duLXRzLW5ld2xpbmUpOiBOZXcgUkVUIGNvbW1hbmQgZm9yIGNvbnRleHQt
YXdhcmUKbmV3bGluZS4KKG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0pOiBOZXcgTS1SRVQg
Y29tbWFuZCB0aGF0IGNyZWF0ZXMgYQpuZXcgbGlzdCBpdGVtLgoobWFya2Rvd24tdHMtLWZpbGwt
dW5maWxsYWJsZS1ibG9jay1xdWVyeSk6IE5ldyB0cmVlLXNpdHRlcgpxdWVyeSBmb3IgdW5maWxs
YWJsZSBibG9ja3MuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uKTogTmV3IGhl
bHBlciBmb3IgbGlzdCBpdGVtCnRleHQgYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWZpbGwtbGlz
dC1pdGVtKTogTmV3IGZ1bmN0aW9uIGZpbGxpbmcgd2l0aGluIGxpc3QKaXRlbXMgd2l0aG91dCBt
ZXJnaW5nIGFkamFjZW50IGl0ZW1zLgoobWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpOiBOZXcg
YWRhcHRpdmUgZmlsbCBmdW5jdGlvbiBmb3IKbGlzdCBpdGVtIGNvbnRpbnVhdGlvbi4KKG1hcmtk
b3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKTogTmV3IHBhcmFncmFwaCBtb3Rpb24KcmVz
cGVjdGluZyBsaXN0IGl0ZW1zIGFuZCB1bmZpbGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZp
bGwtcGFyYWdyYXBoKTogTmV3IGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIHdpdGgKY29uZCogZGlz
cGF0Y2ggZm9yIGxpc3RzLCBibG9jayBxdW90ZXMsIEhUTUwgY29tbWVudHMsIGFuZAp1bmZpbGxh
YmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1maWxsLWh0bWwtY29tbWVudCk6IE5ldyBIVE1MIGNv
bW1lbnQgZmlsbGVyIHdpdGgKY29udGludWF0aW9uIGFsaWdubWVudC4KKG1hcmtkb3duLXRzLS1i
bG9jay1xdW90ZS1wcmVmaXgpOiBOZXcgaGVscGVyIHByZXNlcnZpbmcKZXhpc3RpbmcgYmxvY2sg
cXVvdGUgbWFya2VyIHN0eWxlLgoobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUpOiBOZXcg
YmxvY2sgcXVvdGUgZmlsbGVyIHdpdGgKbGlzdCBpdGVtIHRleHQgY29sdW1uIGFsaWdubWVudC4K
KG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KTogTmV3IGFsaXN0IG9mIGVtcGhhc2lzIG1hcmtl
cnMuCihtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCk6IE5ldyB0cmVlLXNpdHRl
ciBiYXNlZAplbXBoYXNpcyBkZXRlY3Rpb24uCihtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMp
OiBOZXcgY29tbWFuZCByZW1vdmluZyBlbXBoYXNpcyBhdApwb2ludCBvciByZWdpb24uCihtYXJr
ZG93bi10cy1lbXBoYXNpemUpOiBOZXcgaW50ZXJhY3RpdmUgZW1waGFzaXMgaW5zZXJ0aW9uIHdp
dGgKcmVnaW9uIHdyYXBwaW5nIGFuZCB3b3JkLWF0LXBvaW50IHN1cHBvcnQuCihtYXJrZG93bi10
cy1pbnNlcnQtc3RydWN0dXJlKTogTmV3IGNvbW1hbmQgZm9yIGluc2VydGluZyBjb2RlCmJsb2Nr
cywgYmxvY2sgcXVvdGVzLCBhbmQgZGl2aWRlcnMuCihtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUt
YmxvY2spOiBOZXcgZnVuY3Rpb24gd2l0aCBsYW5ndWFnZQpjb21wbGV0aW9uIGZyb20ga25vd24g
bW9kZXMuCihtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKTogTmV3IGZ1bmN0aW9uIHdp
dGggcmVnaW9uCndyYXBwaW5nLgoobWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKTogTmV3IGZ1
bmN0aW9uIGZvciBob3Jpem9udGFsCnJ1bGVzLgoobWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lz
KTogTmV3IGZ1bmN0aW9uIGFwcGx5aW5nIGN1c3RvbQplbGxpcHNpcyB2aWEgZGlzcGxheSB0YWJs
ZS4KKG1hcmtkb3duLXRzLS1zZXQtdXApOiBSZW5hbWUgZnJvbSBtYXJrZG93bi10cy1zZXR1cC4K
KG1hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBvdXRs
aW5lCnZpc2liaWxpdHkgb24gaGVhZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5ldyBr
ZXltYXAgZm9yIGNvZGUgYmxvY2sgbmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcgbmF2
aWdhdGlvbiwgc3RydWN0dXJlIGVkaXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRpb25z
LgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbWFwKTogTmV3IGtleW1h
cCBmb3IKY29kZSBibG9jayBjb250ZXh0LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTogTmV3IG1l
bnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1Y3R1cmUs
IGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRsaW5lLW1p
bm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3JhdGlvbiwg
Y29kZS1ibG9jay1jb250ZXh0LW1vZGUgaG9va3MsCmNvbW1lbnQgc2V0dGluZ3MsIGFuZCBvdXRs
aW5lLXZpZXctY2hhbmdlLWhvb2suICBVc2UKbWFya2Rvd24tdHMtbW9kZSBkaXJlY3RseSBpbiBh
dXRvLW1vZGUtYWxpc3QgaW5zdGVhZCBvZgptYXJrZG93bi10cy1tb2RlLW1heWJlLgoobWFya2Rv
d24tdHMtbW9kZS1pbnN0YWxsLXBhcnNlcnMpOiBOZXcgY29tbWFuZCBmb3IgaW5zdGFsbGluZwpy
ZXF1aXJlZCBhbmQgb3B0aW9uYWwgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgZ3JhbW1hcnMuCihtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2Rl
CmJsb2NrIGNvbnRleHQuCihtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlcikK
KG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIpOiBOZXcgaGVscGVy
cyBmb3IKbG9jYXRpbmcgZmVuY2VkIGNvZGUgYmxvY2sgZGVsaW1pdGVyIG5vZGVzLgoobWFya2Rv
d24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxvY2spCihtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZp
b3VzLWNvZGUtYmxvY2spOiBOZXcgY29tbWFuZHMgZm9yCm5hdmlnYXRpbmcgYmV0d2VlbiBmZW5j
ZWQgY29kZSBibG9ja3MuCihtYXJrZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zLCBtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1jZWxsKQoobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93LCBtYXJr
ZG93bi10cy0tdGFibGUtcGFyc2UtZXJyb3ItcCk6Ck5ldyBwaXBlIHRhYmxlIG5vZGUgaGVscGVy
cy4KKG1hcmtkb3duLXRzLWF0LXRhYmxlLXApOiBOZXcgcHJlZGljYXRlIHJldHVybmluZyBub24t
bmlsIHdoZW4KcG9pbnQgaXMgYXQgb3Igd2l0aGluIGEgcGlwZSB0YWJsZS4KKG1hcmtkb3duLXRz
LS1lbmFibGUtaW4tdGFibGUtbW9kZSk6IE5ldyBoZWxwZXIgZW5hYmxpbmcKbWFya2Rvd24tdHMt
aW4tdGFibGUtbW9kZSBmcm9tIHBvc3QtY29tbWFuZC1ob29rLgoobWFya2Rvd24tdHMtLXRhYmxl
LWJvZHktcm93LW5lYXItcG9zKTogTmV3IGhlbHBlciBsb2NhdGluZyB0aGUKbmVhcmVzdCBib2R5
IHJvdyB0byBhIHBvc2l0aW9uLgoobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4pOiBOZXcgaGVscGVycyBmb3IgY29s
dW1uLWJhc2VkCnRhYmxlIG5hdmlnYXRpb24uCihtYXJrZG93bi10cy0tdGFibGUtYWxpZ25lcnMs
IG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIpCihtYXJrZG93bi10cy0tdGFibGUtYWxp
Z24tY2VsbCk6IE5ldyB0YWJsZSBjZWxsIGFsaWdubWVudApoZWxwZXJzLgoobWFya2Rvd24tdHMt
dGFibGUtaW5zZXJ0LXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gaW5zZXJ0IGEgcGlwZQp0YWJsZSB3
aXRoIGNvbmZpZ3VyYWJsZSByb3dzIGFuZCBjb2x1bW5zLgoobWFya2Rvd24tdHMtdGFibGUtZGVs
ZXRlLXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gZGVsZXRlIHRoZSBwaXBlCnRhYmxlIGF0IHBvaW50
LgoobWFya2Rvd24tdHMtdGFibGUtcHJldmlvdXMtcm93LCBtYXJrZG93bi10cy10YWJsZS1uZXh0
LXJvdykKKG1hcmtkb3duLXRzLXRhYmxlLXByZXZpb3VzLWNlbGwsIG1hcmtkb3duLXRzLXRhYmxl
LW5leHQtY2VsbCk6Ck5ldyBjb21tYW5kcyBmb3IgbmF2aWdhdGluZyB0YWJsZSByb3dzIGFuZCBj
ZWxscy4KKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cpCihtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93
KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LXJvdyk6IE5ldyBjb21tYW5kcyBmb3IgaW5zZXJ0aW5nIGFuZApjbG9uaW5nIHRhYmxl
IHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1kZWxldGUtcm93LCBtYXJrZG93bi10cy10YWJsZS1t
b3ZlLXJvdy11cCkKKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24sIG1hcmtkb3duLXRz
LXRhYmxlLW1vdmUtcm93KToKTmV3IGNvbW1hbmRzIGZvciBkZWxldGluZyBhbmQgbW92aW5nIHRh
YmxlIHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQpCihtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUt
Y29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1jbG9uZS1jb2x1bW4tcmlnaHQpCihtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBpbnNlcnRpbmcK
YW5kIGNsb25pbmcgdGFibGUgY29sdW1ucy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbi1sZWZ0KQoobWFya2Rvd24tdHMtdGFi
bGUtbW92ZS1jb2x1bW4tcmlnaHQpCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbik6IE5l
dyBjb21tYW5kcyBmb3IgZGVsZXRpbmcgYW5kCm1vdmluZyB0YWJsZSBjb2x1bW5zLgoobWFya2Rv
d24tdHMtdGFibGUtYWxpZ24tY29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi1j
b2x1bW4tY2VudGVyKQoobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uLXJpZ2h0KQoobWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBzZXR0aW5nCmNv
bHVtbiBhbGlnbm1lbnQuCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSk6IE5ldyBjb21t
YW5kIHRvIGFsaWduIGFsbApjb2x1bW5zIGluIHRoZSB0YWJsZSBhdCBwb2ludC4KKG1hcmtkb3du
LXRzLXRhYmxlLXRyYW5zcG9zZS10YWJsZSk6IE5ldyBjb21tYW5kIHRvIHRyYW5zcG9zZQp0aGUg
dGFibGUgYXQgcG9pbnQuCihtYXJrZG93bi10cy10YWJsZS1jb252ZXJ0LWNzdi1yZWdpb24pCiht
YXJrZG93bi10cy10YWJsZS1jb252ZXJ0LXRzdi1yZWdpb24pCihtYXJrZG93bi10cy10YWJsZS1j
b252ZXJ0LXJlZ2lvbik6IE5ldyBjb21tYW5kcyB0byBjb252ZXJ0CmRlbGltaXRlZCB0ZXh0IHJl
Z2lvbnMgdG8gcGlwZSB0YWJsZXMuCihtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtY3N2
KQoobWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdikKKG1hcmtkb3duLXRzLXRhYmxl
LWV4cG9ydC10YWJsZSk6IE5ldyBjb21tYW5kcyB0byBleHBvcnQgdGhlCnBpcGUgdGFibGUgYXQg
cG9pbnQgdG8gQ1NWIG9yIFRTViBmb3JtYXQuCihtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlLW1h
cCk6IE5ldyBrZXltYXAgZm9yCm1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUuCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YpOiBOZXcgYnVmZmVyLWxvY2FsCnZhcmlh
YmxlIGZvciBjb2RlIGJsb2NrIGNvbnRleHQgb3ZlcmxheS4KKG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWluLWNvbnRleHQtbW9kZS11cGRhdGUtb3YpOiBOZXcKZnVuY3Rpb24gdXBkYXRpbmcgdGhl
IGNvZGUgYmxvY2sgY29udGV4dCBvdmVybGF5LgoobWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZSk6
IE5ldyBtaW5vciBtb2RlIGVuYWJsZWQgd2hlbiBwb2ludAppcyB3aXRoaW4gYSBwaXBlIHRhYmxl
LCBhY3RpdmF0aW5nIG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbWFwLgoobWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtb3YpCihtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YpCiht
YXJrZG93bi10cy0tdGFibGUtdGljay11cGRhdGUpCihtYXJrZG93bi10cy0tdGFibGUtdGljay1z
dGFsZS1wKQoobWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtdXBkYXRlLW92KTogTmV3IGhlbHBl
cnMgc3VwcG9ydGluZwptYXJrZG93bi10cy1pbi10YWJsZS1tb2RlIG92ZXJsYXkgbWFuYWdlbWVu
dC4KKG1hcmtkb3duLXRzLXRhYmxlLW1vZGUpOiBOZXcgbWlub3IgbW9kZSBwcm92aWRpbmcgdGFi
bGUgZWRpdGluZwpjb21tYW5kcyBhbmQgYXV0by1hbGlnbm1lbnQuCihtYXJrZG93bi10cy1tb2Rl
LW1heWJlKTogUmVtb3ZlOyBhdXRvLW1vZGUtYWxpc3Qgbm93IHVzZXMKbWFya2Rvd24tdHMtbW9k
ZSBkaXJlY3RseS4KQXV0by1tb2RlLWFsaXN0OiBBZGQgLm1hcmtkb3duIGFuZCAubWR4IGV4dGVu
c2lvbnMuCgoqIGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbDogTmV3IGZpbGUg
cHJvdmlkaW5nIGV4dHJhCmZlYXR1cmVzIGZvciBtYXJrZG93bi10cy1tb2RlLgoobWFya2Rvd24t
dHMtY29tbW9ubWFyay1zcGVjLXVybCwgbWFya2Rvd24tdHMtZ2ZtLXNwZWMtdXJsKTogTmV3CmNv
bnN0YW50cyBmb3IgQ29tbW9uTWFyayBhbmQgR0ZNIHNwZWNpZmljYXRpb24gVVJMcy4KKG1hcmtk
b3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMpCihtYXJrZG93bi10cy1icm93c2UtZ2ZtLXNw
ZWMpOiBOZXcgY29tbWFuZHMgdG8gYnJvd3NlIHRoZQpDb21tb25NYXJrIGFuZCBHRk0gc3BlY2lm
aWNhdGlvbnMuCihtYXJrZG93bi10cy1jb252ZXJ0KTogTmV3IGN1c3RvbWl6YXRpb24gZ3JvdXAg
Zm9yIE1hcmtkb3duCmNvbnZlcnNpb24vZXhwb3J0IGZlYXR1cmVzLgoobWFya2Rvd24tdHMtZGVm
YXVsdC1jb252ZXJ0ZXIpOiBOZXcgb3B0aW9uIHRvIHNldCB0aGUgZGVmYXVsdApmb3JtYXQgYW5k
IGNvbnZlcnRlciBmb3IgTWFya2Rvd24gZXhwb3J0LgoobWFya2Rvd24tdHMtY29udmVydC1kaXNw
bGF5LWZ1bmN0aW9uKTogTmV3IG9wdGlvbiBzcGVjaWZ5aW5nCnRoZSBmdW5jdGlvbiB1c2VkIHRv
IGRpc3BsYXkgY29udmVydGVkIG91dHB1dC4KKG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpOiBOZXcg
dmFyaWFibGUgbGlzdGluZyBmb3JtYXQvY29udmVydGVyCmNvbmZpZ3VyYXRpb25zIGZvciBwYW5k
b2MsIGNtYXJrLCBjbWFyay1nZm0sIG1hcmtkb3duLCBhbmQKbWFya2Rvd24ucGwuCihtYXJrZG93
bi10cy1jb252ZXJ0LWZpbGUsIG1hcmtkb3duLXRzLWNvbnZlcnQpOiBOZXcgY29tbWFuZHMgdG8K
Y29udmVydCBNYXJrZG93biBidWZmZXJzIG9yIGZpbGVzIHRvIEhUTUwsIFBERiwgYW5kIG90aGVy
CmZvcm1hdHMgdmlhIGV4dGVybmFsIGNvbnZlcnRlcnMuCihtYXJrZG93bi10cy10b2MpOiBOZXcg
Y3VzdG9taXphdGlvbiBncm91cCBmb3IgdGFibGUgb2YgY29udGVudHMKZmVhdHVyZXMuCihtYXJr
ZG93bi10cy10b2MtZ2VuZXJhdGUtd2Fybi1pZi1ub25lKTogTmV3IG9wdGlvbiBjb250cm9sbGlu
ZwpiZWhhdmlvciB3aGVuIG5vIFRPQyBpcyBmb3VuZCBkdXJpbmcgZ2VuZXJhdGlvbi4KKG1hcmtk
b3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyKTogTmV3IG9wdGlvbgpm
b3IgdGhlIGJlZm9yZS1zYXZlIFRPQyB1cGRhdGUgbWlub3IgbW9kZSBsaWdodGVyIHN0cmluZy4K
KG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uKTogTmV3IG9wdGlvbiB0byBzZWxlY3QgdGhl
IHNsdWcKYWxnb3JpdGhtIHVzZWQgZm9yIFRPQyBoZWFkaW5nIGFuY2hvcnMuCihtYXJrZG93bi10
cy0tdG9jLWhhbmRsZXMsIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlLWNsYXNzZXMpOiBOZXcKdmFy
aWFibGVzIGRlZmluaW5nIFRPQyBoYW5kbGUgdHlwZXMgYW5kIGNsYXNzZXMuCihtYXJrZG93bi10
cy0tdG9jLWV4cGFuZC1jYW5kaWRhdGUtaGFuZGxlcywgbWFya2Rvd24tdHMtLXRvY3MpCihtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2spCihtYXJrZG93bi10cy0tdG9jLWNvbGxlY3QtY2Fu
ZGlkYXRlcykKKG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoKQoobWFya2Rvd24tdHMt
LXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emVycykKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxpemUpOiBOZXcgaW50ZXJuYWwgaGVs
cGVycyBmb3IgVE9DCnBhcnNpbmcgYW5kIHRleHQgbm9ybWFsaXphdGlvbi4KKG1hcmtkb3duLXRz
LXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZSk6IE5ldyBtaW5vciBtb2RlIHRoYXQKcmVnZW5l
cmF0ZXMgdGFibGVzIG9mIGNvbnRlbnRzIGJlZm9yZSBzYXZpbmcuCihtYXJrZG93bi10cy10b2Mt
Y2xlYXItYW5kLXJlbW92ZSwgbWFya2Rvd24tdHMtdG9jLWNsZWFyKTogTmV3CmNvbW1hbmRzIHRv
IHJlbW92ZSBvciBjbGVhciBUT0MgYm9kaWVzLgoobWFya2Rvd24tdHMtdG9jLWluc2VydC10ZW1w
bGF0ZSk6IE5ldyBjb21tYW5kIHRvIGluc2VydCBhIFRPQwp0ZW1wbGF0ZSBhdCBwb2ludC4KKG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZSk6IE5ldyBjb21tYW5kIHRvIGdlbmVyYXRlIHRhYmxlcyBv
Zgpjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCgpJbmNsdWRlcyBmaXhlcyBmb3I6IChi
dWcjODA2MTMpIChidWcjODA2MjUpIChidWcjODA2OTApCgpDby1hdXRob3JlZC1ieTogU3TDqXBo
YW5lIE1hcmtzIDxzaGlwbWludHNAZ21haWwuY29tPgotLS0KIGxpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUteC5lbCB8IDExMzQgKysrKysrCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsICAgfCA1NDUxICsrKysrKysrKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNo
YW5nZWQsIDYzMDAgaW5zZXJ0aW9ucygrKSwgMjg1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbAoKZGlmZiAtLWdpdCBh
L2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbCBiL2xpc3AvdGV4dG1vZGVzL21h
cmtkb3duLXRzLW1vZGUteC5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNzQwNTA3OGFiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLXguZWwKQEAgLTAsMCArMSwxMTM0IEBACis7OzsgbWFya2Rvd24tdHMtbW9kZS14
LmVsIC0tLSBtYXJrZG93bi10cy1tb2RlIGV4dHJhcyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAt
Ki0KKworOzsgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgorCis7OyBBdXRob3IgICAgICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1
bGlhdG9AZ21haWwuY29tPgorOzsgICAgICAgICAgICAgICAgICA6IFN0w6lwaGFuZSBNYXJrcyA8
c2hpcG1pbnRzQGdtYWlsLmNvbT4KKzs7IE1haW50YWluZXIgICAgICAgOiBSYWh1bCBNYXJ0aW0g
SnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBDcmVhdGVkICAgICAgICAgIDog
QXByaWwgMjAyNgorOzsgVmVyc2lvbiAgICAgICAgICA6IDEuMAorOzsgUGFja2FnZS1SZXF1aXJl
cyA6ICgoZW1hY3MgIjMxLjEiKSkKKzs7IEtleXdvcmRzICAgICAgICAgOiBtYXJrZG93biBtZCB0
ZXh0IGVkaXQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVyCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor
OzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUg
PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7
OyBDb2RlOgorCisocmVxdWlyZSAnbWFya2Rvd24tdHMtbW9kZSkKKworOzs7IENvbnZlbmllbmNl
OgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMtY29tbW9ubWFyay1zcGVjLXVybAorICAiaHR0cHM6
Ly9zcGVjLmNvbW1vbm1hcmsub3JnL2N1cnJlbnQvIikKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LWdmbS1zcGVjLXVybAorICAiaHR0cHM6Ly9naXRodWIuZ2l0aHViLmNvbS9nZm0vIikKKworKGRl
ZnVuIG1hcmtkb3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMgKCkKKyAgIkJyb3dzZSB0aGUg
Q29tbW9uTWFyayBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWNvbW1vbm1hcmstc3BlYy11cmwpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtYnJvd3NlLWdmbS1zcGVjICgpCisgICJCcm93c2UgdGhlIEdpdEh1
YiBGbGF2b3JlZCBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWdmbS1zcGVjLXVybCkpCisKKzs7OyBFeHBv
cnQgYW5kIHByZXZpZXc6CisKKyhkZWZncm91cCBtYXJrZG93bi10cy1jb252ZXJ0IG5pbAorICAi
Q29udmVydCBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycyBvciBmaWxlcy4iCisgIDpwcmVmaXgg
Im1hcmtkb3duLXRzLWNvbnZlcnQtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5n
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kZWZhdWx0LWNv
bnZlcnRlciBuaWwKKyAgIkRlZmF1bHQgTWFya2Rvd24gZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCitJ
ZiBuaWwsIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGZvcm1hdCBhbmQgYSBjb252ZXJ0ZXIu
CitTZWUgYG1hcmtkb3duLXRzLWNvbnZlcnRlcnMnLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0
IDp0YWcgIlByb21wdCBmb3IgZm9ybWF0IGFuZCBjb252ZXJ0ZXIiIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIlBERiB2aWEgUGFuZG9jIiAocGRmIC4gcGFuZG9jKSkKKyAgICAg
ICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkhUTUwgdmlhIFBhbmRvYyIgKGh0bWwgLiBwYW5kb2Mp
KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmsiIChodG1sIC4g
Y21hcmspKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmstZ2Zt
IChHaXRIdWIgYmVsbHMgYW5kIHdoaXN0bGVzKSIgKGh0bWwgLiBjbWFyay1nZm0pKQorICAgICAg
ICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24iIChodG1sIC4gbWFya2Rv
d24pKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24ucGwi
IChodG1sIC4gbWFya2Rvd24ucGwpKQorICAgICAgICAgICAgICAgICAoY29ucyAgOnRhZyAiRm9y
bWF0IGFuZCBDb252ZXJ0ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcg
IkZvcm1hdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcgIkNvbnZlcnRl
ciIpKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhk
ZWZjdXN0b20gbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uICMnZXd3LW9wZW4t
ZmlsZQorICAiRnVuY3Rpb24gdG8gZGlzcGxheSBjb252ZXJ0ZWQgTWFya2Rvd24gdGhlIG91dHB1
dCBmaWxlLgorVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCwgdGhlIGZp
bGUgbmFtZS4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJEaXNwbGF5IHVzaW5nIGBl
d3cnIiBld3ctb3Blbi1maWxlKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBpbiBhIGJyb3dzZXIiIGJyb3dzZS11cmwtb2YtZmlsZSkKKyAgICAgICAgICAgICAgICAgKGNv
bnN0IDp0YWcgIkRpc3BsYXkgb3V0cHV0IGZpbGUgaW4gYSBidWZmZXIiIGZpbmQtZmlsZS1vdGhl
ci13aW5kb3cpCisgICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJPdGhlciBmdW5jdGlv
biIpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmNvbnN0IG1hcmtkb3duLXRzLS1jb252ZXJ0LWVycm9yLWJ1ZmZlcgorICAiKm1hcmtkb3duLXRz
LWNvbnZlcnQgZXJyb3JzKiIpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tY29udmVydC1vdXRw
dXQtYnVmZmVyCisgICIqbWFya2Rvd24tdHMtY29udmVydCBvdXRwdXQqIikKKworKGRlZnZhciBt
YXJrZG93bi10cy1jb252ZXJ0ZXJzCisgIChsaXN0CisgICAoY29ucyAnaHRtbAorICAgICAgICAg
KGxpc3QKKyAgICAgICAgICAoY29ucyAncGFuZG9jCisgICAgICAgICAgICAgICAgKGxpc3QgOmNv
bW1hbmQgInBhbmRvYyIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGlu
KQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhmaWxlKQorICAgICAgICAgICAgICAg
ICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpbnB1dC1maWxlIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLWYiICJnZm0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItdCIgImh0bWw1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1z
dGFuZGFsb25lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iIG91
dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1m
aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkp
KSkpKQorICAgICAgICAgIChjb25zICdjbWFyaworICAgICAgICAgICAgICAgIChsaXN0IDpjb21t
YW5kICJjbWFyayIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGluKQor
ICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQpCisgICAgICAgICAgICAgICAg
ICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg
KGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLXQiICJodG1sIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdo
ZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGlu
cHV0LWZpbGUpKSkpKSkKKyAgICAgICAgICAoY29ucyAnY21hcmstZ2ZtCisgICAgICAgICAgICAg
ICAgKGxpc3QgOmNvbW1hbmQgImNtYXJrLWdmbSIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5w
dXQgJyhmaWxlIHN0ZGluKQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQp
CisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCAobGlzdCAiLXQiICJodG1sIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBVc2UgR2l0SHViLXN0eWxlIDxwcmUgbGFuZz4gZm9yIGNv
ZGUgYmxvY2tzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWdpdGh1
Yi1wcmUtbGFuZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5j
bHVkZSByZW1haW5kZXIgb2YgY29kZSBibG9jayBpbmZvCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDs7IHN0cmluZyBpbiBhIHNlcGFyYXRlIGF0dHJpYnV0ZS4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZnVsbC1pbmZvLXN0cmluZyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgVXNlIHN0eWxlIGF0dHJpYnV0
ZXMgdG8gYWxpZ24gdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgY2VsbHMgaW5zdGVhZCBvZiBhbGlnbiBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLS10YWJsZS1wcmVmZXItc3R5bGUtYXR0cmlidXRlcyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAiZm9vdG5v
dGVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1leHRlbnNpb24i
ICJ0YWJsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5z
aW9uIiAic3RyaWtldGhyb3VnaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0tZXh0ZW5zaW9uIiAiYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWV4dGVuc2lvbiIgInRhZ2ZpbHRlciIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAidGFza2xpc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKQorICAgICAgICAgIDs7ICdtYXJr
ZG93bi5wbCBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24gd2l0aCBhbm90aGVyIGNvbW1vbiBmaWxl
CisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rvd24ucGwKKyAgICAg
ICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24ucGwiCisgICAgICAgICAgICAgICAg
ICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6b3V0cHV0
ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKQorICAgICAg
ICAgIDs7ICdtYXJrZG93biBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24ucGwgd2l0aCBhbm90aGVy
IGNvbW1vbiBmaWxlCisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rv
d24KKyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24iCisgICAgICAgICAg
ICAgICAgICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6
b3V0cHV0ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rp
b24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKSkp
CisgICAoY29ucyAncGRmCisgICAgICAgICAobGlzdAorICAgICAgICAgIChjb25zICdwYW5kb2MK
KyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAicGFuZG9jIgorICAgICAgICAgICAgICAg
ICAgICAgIDppbnB1dCAnKGZpbGUgc3RkaW4pCisgICAgICAgICAgICAgICAgICAgICAgOm91dHB1
dCAnKGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgb3V0cHV0LWZpbGUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChsaXN0ICItZiIgImdmbSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi10IiAicGRmIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLW8iIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKSkpKQorICAiQW4gYWxpc3Qgb2YgZm9ybWF0
L2NvbnZlcnRlciBjb25maWd1cmF0aW9ucy4KK0l0IGlzIGEgdHdvIGxldmVsIGFsaXN0IHdpdGgg
dGhlIGZpcnN0IGxldmVsIGJlaW5nIGZvcm1hdCwgZm9yIGV4YW1wbGUKK2BodG1sJyBvciBgcGRm
JywgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIGNvbnZlcnRlciBuYW1lLCBmb3IgZXhhbXBsZQor
YHBhbmRvYycuICBBIGNvbnZlcnRlciBjb25maWd1cmF0aW9uIGVudHJ5IGlzIGEgcGxpc3Qgb2Yg
dGhlIGZvcm06CisKKyAgXFw9Jyg6Y29tbWFuZCBcImNvbW1hbmQgbmFtZVwiCisgICAgOmlucHV0
IChmaWxlIHN0ZGluKSA7IGFjY2VwdHMgZmlsZSBuYW1lIG9yIHN0ZGluCisgICAgOm91dHB1dCAo
c3Rkb3V0KSAgICA7IHByb2R1Y2VzIHN0ZG91dCBvbmx5CisgICAgOmFyZ3VtZW50cy1mdW5jdGlv
biA7IGZ1bmN0aW9uOyBlLmcuLAorICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAoYXBwZW5kIChsaXN0IFwiLXRcIiBcImh0bWxcIikKKyAgICAgICAgICAgICAg
ICh3aGVuIGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkp
CisKK2Bhcmd1bWVudHMtZnVuY3Rpb24nIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzLCBJTlBVVC1G
SUxFIGFuZAorT1VUUFVULUZJTEUuICBJZiBJTlBVVC1GSUxFIGlzIG5pbCwgYXNzdW1lIHN0ZGlu
LCBvciBpdCBpcyBhCitmdWxseS1xdWFsaWZpZWQgZmlsZSBuYW1lLiAgSWYgT1VUUFVULUZJTEUg
aXMgbmlsLCBhc3N1bWUgc3Rkb3V0LCBvciBpdAoraXMgYSBmdWxseS1xdWFsaWZpZWQgZmlsZSBu
YW1lLiAgSXQgc2hvdWxkIHJldHVybiBhIGxpc3Qgb2YKK2FyZ3VtZW50cyBzdWl0YWJsZSBmb3Ig
YGNhbGwtcHJvY2VzcycuIikKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93bi10cy1j
b252ZXJ0LWZpbGUgKGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IE1h
cmtkb3duIElOUFVULUZJTEUgdG8gRk9STUFULgorSWYgb3B0aW9uYWwgRElTUExBWSBpcyBub24t
bmlsLCBzaG93IHRoZSBvdXRwdXQgZmlsZSBpbiBhIGJ1ZmZlciwgaWYKK3Bvc3NpYmxlLCB1c2lu
ZyB0aGUgZnVuY3Rpb24gYG1hcmtkb3duLXRzLWNvbnZlcnQtZGlzcGxheS1mdW5jdGlvbicuCisK
K1dpdGggYSBwcmVmaXggYXJndW1lbnQsIERJU1BMQVkgd2lsbCBiZSBub24tbmlsLgorCitPcHRp
b25hbCBGT1JNQVQgaXMgYSBmb3JtYXQvY29udmVydGVyIHBhaXIgc3BlY2lmaWVkIGFzIGEgY29u
cworXFw9Jyhmb3JtYXQgLiBjb252ZXJ0ZXIpIGZvciBleGFtcGxlIFxcPScoaHRtbCAuIHBhbmRv
YykuICBTZWUKK2BtYXJrZG93bi10cy1jb252ZXJ0ZXJzJy4gIElmIG5pbCwgcHJvbXB0IGZvciB0
aGUgZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCisKK0lmIG9wdGlvbmFsIE9WRVJXUklURSBpcyBub24t
bmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUgaWYgaXQKK2V4aXN0cy4KKworSWYg
UVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNvbnZlcnNpb24gd2FybmluZ3Mgb3Ig
ZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBzcGVjaWZpZWQgYnkgYSBjb252ZXJ0
ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2VlIHRoZSB2YXJpYWJsZSBgZXhlYy1w
YXRoJy4iCisgIChpbnRlcmFjdGl2ZSAiZkNvbnZlcnQgTWFya2Rvd24gZmlsZTogIikKKyAgKG1h
cmtkb3duLXRzLWNvbnZlcnQgaW5wdXQtZmlsZSBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICBmb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgKG9yIGRpc3BsYXkgY3VycmVu
dC1wcmVmaXgtYXJnKQorICAgICAgICAgICAgICAgICAgICAgICBvdmVyd3JpdGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgcXVpZXQpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIG1hcmtkb3du
LXRzLWNvbnZlcnQgKCZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0
LWZpbGUgb3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgZGlz
cGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IGEgYG1hcmtkb3duLXRzLW1vZGUnIGJ1
ZmZlciBvciBmaWxlIHRvIEZPUk1BVC4KK0NvbnZlcnQgSU5QVVQtRklMRSB0byBPVVRQVVQtRklM
RS4KKworSWYgSU5QVVQtRklMRSBpcyBuaWwsIHVzZSB0aGUgY3VycmVudCBidWZmZXIuCisKK0lm
IE9VVFBVVC1GSUxFIGlzIG5pbCwgcHJvbXB0IGZvciBhbiBvdXRwdXQgZmlsZS4KKworT3B0aW9u
YWwgRk9STUFUIGlzIGEgZm9ybWF0L2NvbnZlcnRlciBwYWlyIHNwZWNpZmllZCBhcyBhIGNvbnMK
K1xcPScoZm9ybWF0IC4gY29udmVydGVyKSBmb3IgZXhhbXBsZSBcXD0nKGh0bWwgLiBwYW5kb2Mp
LiAgU2VlCitgbWFya2Rvd24tdHMtY29udmVydGVycycuICBJZiBuaWwsIHByb21wdCBmb3IgdGhl
IGZvcm1hdCBhbmQgY29udmVydGVyLgorCitJZiBvcHRpb25hbCBESVNQTEFZIGlzIG5vbi1uaWws
IHNob3cgdGhlIG91dHB1dCBmaWxlIGluIGEgYnVmZmVyLCBpZgorcG9zc2libGUsIHVzaW5nIHRo
ZSBmdW5jdGlvbiBgbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uJy4KKworV2l0
aCBhIHByZWZpeCBhcmd1bWVudCwgRElTUExBWSB3aWxsIGJlIG5vbi1uaWwuCisKK0lmIG9wdGlv
bmFsIE9WRVJXUklURSBpcyBub24tbmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUg
aWYgaXQKK2V4aXN0cy4KKworSWYgUVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNv
bnZlcnNpb24gd2FybmluZ3Mgb3IgZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBz
cGVjaWZpZWQgYnkgYSBjb252ZXJ0ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2Vl
IHRoZSB2YXJpYWJsZSBgZXhlYy1wYXRoJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKGFu
ZCBpbnB1dC1maWxlCisgICAgICAgICAgICAgKGVxdWFsIGJ1ZmZlci1maWxlLW5hbWUgKGV4cGFu
ZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgKGJ1ZmZlci1tb2RpZmllZC1w
KSkKKyAgICAod2hlbiAoeWVzLW9yLW5vLXAgIlNhdmUgbW9kaWZpZWQgYnVmZmVyIGJlZm9yZSBj
b252ZXJ0aW5nPyAiKQorICAgICAgKHNhdmUtYnVmZmVyKSkpCisgICh1bmxlc3MgaW5wdXQtZmls
ZQorICAgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtY29udmVy
dCkpCisKKyAgKHNldHEgZGlzcGxheSAob3IgZGlzcGxheSBjdXJyZW50LXByZWZpeC1hcmcpKQor
CisgIChsZXQqICgoY29udmVydGVyLWZvcm1hdAorICAgICAgICAgIChvciAoY2FyIGZvcm1hdCkK
KyAgICAgICAgICAgICAgKGNhciBtYXJrZG93bi10cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAg
ICAgICAgICAgKGludGVybgorICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAg
ICAgICAgICAgICJTZWxlY3QgYW4gb3V0cHV0IGZvcm1hdDogIgorICAgICAgICAgICAgICAgICht
YXBjYXIgKGxhbWJkYSAoZWx0KSAoc3ltYm9sLW5hbWUgKGNhciBlbHQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpCisgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy1jb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgICAgKGNvbnZlcnRlcgor
ICAgICAgICAgIChvciAoY2RyIGZvcm1hdCkKKyAgICAgICAgICAgICAgKGNkciBtYXJrZG93bi10
cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAgICAgICAgICAgKGludGVybgorICAgICAgICAgICAg
ICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAgICAgICAgICAgICJTZWxlY3QgYSBjb252ZXJ0ZXI6
ICIKKyAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGVsdCkgKHN5bWJvbC1uYW1lIChj
YXIgZWx0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtZ2V0IGNvbnZlcnRlci1m
b3JtYXQgbWFya2Rvd24tdHMtY29udmVydGVycykpCisgICAgICAgICAgICAgICAgbmlsCisgICAg
ICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJr
ZG93bi10cy1jb252ZXJ0ZXIpKSkpCisgICAgICAgICAoY29uZmlnIChhbGlzdC1nZXQgY29udmVy
dGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LWdldCBjb252ZXJ0ZXItZm9y
bWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1j
b252ZXJ0ZXJzKSkpCisgICAgICAgICAoY29tbWFuZCAocGxpc3QtZ2V0IGNvbmZpZyA6Y29tbWFu
ZCkpCisgICAgICAgICAoY29tbWFuZC1pbnB1dCAocGxpc3QtZ2V0IGNvbmZpZyA6aW5wdXQpKQor
ICAgICAgICAgKGNvbW1hbmQtb3V0cHV0IChwbGlzdC1nZXQgY29uZmlnIDpvdXRwdXQpKQorICAg
ICAgICAgKHN0ZGluLW9ubHkgKGVxdWFsIGNvbW1hbmQtaW5wdXQgJyhzdGRpbikpKQorICAgICAg
ICAgKHN0ZG91dC1vbmx5IChlcXVhbCBjb21tYW5kLW91dHB1dCAnKHN0ZG91dCkpKSkKKyAgICAo
dW5sZXNzIG91dHB1dC1maWxlCisgICAgICAoc2V0cSBvdXRwdXQtZmlsZQorICAgICAgICAgICAg
KHJlYWQtZmlsZS1uYW1lICJPdXRwdXQgZmlsZSBuYW1lOiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNh
dCAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGZpbGUtcmVsYXRpdmUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAob3IgaW5wdXQtZmlsZSBidWZmZXItZmlsZS1uYW1lKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzeW1ib2wtbmFtZSBjb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgKHVubGVz
cyBvdXRwdXQtZmlsZQorICAgICAgICAodXNlci1lcnJvciAiT3V0cHV0IGZpbGUgbmFtZSBpcyBy
ZXF1aXJlZCIpKSkKKyAgICAod2hlbiBvdXRwdXQtZmlsZQorICAgICAgKHdoZW4gKGFuZCAobm90
IG92ZXJ3cml0ZSkKKyAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgb3V0cHV0LWZpbGUp
CisgICAgICAgICAgICAgICAgIChub3QgKHllcy1vci1uby1wIChmb3JtYXQgIiVzIGV4aXN0czsg
b3ZlcndyaXRlPyIgb3V0cHV0LWZpbGUpKSkpCisgICAgICAgICh1c2VyLWVycm9yICJOb3Qgb3Zl
cndyaXRpbmcgZXhpc3RpbmcgZmlsZTogJXMiIG91dHB1dC1maWxlKSkKKyAgICAgIChzZXRxIG91
dHB1dC1maWxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dC1maWxlKSkpCisKKworICAgIChsZXQg
KChjb21tYW5kLWFyZ3MgKGZ1bmNhbGwgKHBsaXN0LWdldCBjb25maWcgOmFyZ3VtZW50cy1mdW5j
dGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIGlucHV0LWZpbGUg
KGV4cGFuZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQtZmlsZSkpKQorICAgICAgKHVubGVzcyAoZXhlY3V0YWJsZS1maW5kIGNv
bW1hbmQpCisgICAgICAgICh1c2VyLWVycm9yICJgJXMnIGV4ZWN1dGFibGUgbm90IGZvdW5kIiBj
b21tYW5kKSkKKyAgICAgIChsZXQgKChlcnJvci1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZm
ZXIpKQorICAgICAgICAgICAgKGVycm9yLXRlbXAtZmlsZSAobWFrZS10ZW1wLWZpbGUgIm1hcmtk
b3duLXRzLWNvbnZlcnQtc3RkZXJyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmlsICIubG9nIikpCisgICAgICAgICAgICAoc3Rkb3V0LWJ1ZmZlciAod2hl
biBzdGRvdXQtb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0LWJ1ZmZlci1j
cmVhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb252ZXJ0
LW91dHB1dC1idWZmZXIpKSkpCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAg
KGxldCAoZXhpdC1zdGF0dXMpCisgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGVy
cm9yLWJ1ZmZlcgorICAgICAgICAgICAgICAgIChzcGVjaWFsLW1vZGUpCisgICAgICAgICAgICAg
ICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCisgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIpKQorICAgICAgICAgICAgICAod2hlbiBzdGRv
dXQtYnVmZmVyCisgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc3Rkb3V0LWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgKHNwZWNpYWwtbW9kZSkKKyAgICAgICAgICAgICAgICAg
IChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikpKQorICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgKChhbmQgaW5wdXQtZmlsZSAobm90IHN0ZGluLW9ubHkpKQorICAgICAg
ICAgICAgICAgIChzZXRxIGV4aXQtc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5
ICMnY2FsbC1wcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsaXN0IHN0ZG91dC1idWZmZXIgZXJyb3ItdGVtcC1maWxlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC1h
cmdzKSkpCisgICAgICAgICAgICAgICAoKGFuZCBpbnB1dC1maWxlIHN0ZGluLW9ubHkpCisgICAg
ICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQt
ZmlsZS1jb250ZW50cyBpbnB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1z
dGF0dXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZC1hcmdzKSkpKQorICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAo
d2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1zdGF0dXMK
KyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZC1hcmdzKSkpKSkKKyAgICAgICAgICAgICAgKGxldCAoKGVycm9yLXNpemUgKGZpbGUtYXR0
cmlidXRlLXNpemUgKGZpbGUtYXR0cmlidXRlcyBlcnJvci10ZW1wLWZpbGUpKSkpCisgICAgICAg
ICAgICAgICAgKHdoZW4gKGFuZCBlcnJvci1zaXplICg+IGVycm9yLXNpemUgMCkpCisgICAgICAg
ICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBlcnJvci1idWZmZXIKKyAgICAgICAgICAg
ICAgICAgICAgKGluc2VydC1maWxlLWNvbnRlbnRzIGVycm9yLXRlbXAtZmlsZSkKKyAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKSkKKyAgICAgICAgICAgICAgKGNv
bmQgKChlcSAwIGV4aXQtc3RhdHVzKSA7IEludGVnZXIgb3Igc3RyaW5nLgorICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gc3Rkb3V0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAod2l0
aC1jdXJyZW50LWJ1ZmZlciBzdGRvdXQtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSBvdXRwdXQtZmlsZSkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHdoZW4gZGlzcGxheQorICAgICAgICAgICAgICAgICAgICAgICAo
ZnVuY2FsbCBtYXJrZG93bi10cy1jb252ZXJ0LWRpc3BsYXktZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LWZpbGUpKQorICAgICAgICAgICAgICAgICAgICAg
KHdoZW4gKGFuZCAobm90IHF1aWV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bm90ICh6ZXJvcCAoYnVmZmVyLXNpemUgZXJyb3ItYnVmZmVyKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh5ZXMtb3Itbm8tcAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZvcm1hdC1tZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkNvbnZlcnNpb24gZmlsZSBgJXMnIHN1Y2Nlc3NmdWxseSBjcmVhdGVkIHdpdGggd2FybmluZ3M7
IGRpc3BsYXkgdGhlbT8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
LWZpbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyIGVycm9yLWJ1
ZmZlcikpCisgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiQ29udmVyc2lvbiBmaWxlIHN1
Y2Nlc3NmdWxseSBjcmVhdGVkIGAlcyclcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHplcm9wIChi
dWZmZXItc2l6ZSBlcnJvci1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiB3aXRoIHdh
cm5pbmdzOyBzZWUgYnVmZmVyIGAlcyciIGVycm9yLWJ1ZmZlcikpKSkKKyAgICAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgIChpZiBxdWlldAorICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udmVydGVyIGFi
b3J0ZWQgd2l0aCBleGl0IGNvZGUgJVM7IHNlZSBidWZmZXIgYCVzJyBmb3IgZXJyb3JzIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGl0LXN0YXR1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZmZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICh3aGVuICh5ZXMtb3Itbm8tcCAoZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNvbnZlcnRlciBhYm9ydGVkIHdpdGggZXhpdCBjb2RlICVT
OyBkaXNwbGF5IGVycm9ycz8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXhpdC1zdGF0dXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5LWJ1
ZmZlciBlcnJvci1idWZmZXIpKSkpKSkKKyAgICAgICAgICAoZGVsZXRlLWZpbGUgZXJyb3ItdGVt
cC1maWxlKSkpKSkpCisKKzs7OyBUYWJsZSBvZiBjb250ZW50czoKKworKGRlZmdyb3VwIG1hcmtk
b3duLXRzLXRvYyBuaWwKKyAgIlRhYmxlIG9mIGNvbnRlbnRzIGZvciBgbWFya2Rvd24tdHMtbW9k
ZScgYnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLXRvYy0iCisgIDpncm91cCAndGV4
dAorICA6Z3JvdXAgJ2VkaXRpbmcKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUgJ2luc2VydC10ZW1wbGF0ZQorICAi
V2FybiBpZiBubyB0YWJsZXMgd2VyZSBwcm9jZXNzZWQgd2hlbiBjYWxsaW5nIGBtYXJrZG93bi10
cy10b2MtZ2VuZXJhdGUnLgorSWYgbmlsLCBkbyBub3RoaW5nLiAgSWYgdGhlIHN5bWJvbCBgaW5z
ZXJ0LXRlbXBsYXRlJyBhbmQKK2BtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUnIHdhcyBjYWxsZWQg
aW50ZXJhY3RpdmVseSwgb2ZmZXIgdG8gaW5zZXJ0IGEKK3RlbXBsYXRlIGlmIHRoZXJlIGFyZSBu
b25lLiAgSWYgYG5vLXRhYmxlcycsIHdhcm4gd2hlbiB0aGVyZSBhcmUgbm8KK3RhYmxlcyBpbiB0
aGUgYnVmZmVyLiAgYG5vLWFjdGl2ZS10YWJsZXMnLCBpcyB0aGUgc2FtZSBhcyBgbm8tdGFibGVz
Jword2l0aCB0aGUgYWRkaXRpb24gb2YgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0YWJsZXMsIGJ1
dCBub25lIGFyZSBhY3RpdmUuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiTm8gd2Fy
bmluZ3MiIG5pbCkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkluc2VydCBhIHRhYmxl
IHRlbXBsYXRlIChpZiBpbnRlcmFjdGl2ZSkiIGluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIldhcm4gaWYgbm8gdGFibGVzIHdlcmUgcHJvY2Vzc2VkIiBuby10
YWJsZXMpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJXYXJuIGlmIG5vIGFjdGl2ZSB0
YWJsZXMgd2VyZSBwcm9jZXNzZWQiIG5vLWFjdGl2ZS10YWJsZXMpKQorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy10
b2MtdXBkYXRlLWJlZm9yZS1zYXZlLW1vZGUtbGlnaHRlciAiIFt0b2Mgb24gc2F2ZV0iCisgICJN
aW5vci1tb2RlIFwibGlnaHRlclwiIGZvciBgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUt
c2F2ZS1tb2RlJy4KK05vdGUgdGhlIHNpbmdsZSBzcGFjZSBwcmVmaXguIgorICA6dHlwZSAnKGNo
b2ljZSAoY29uc3QgOnRhZyAiRGVmYXVsdCIgIiBbdG9jIG9uIHNhdmVdIikKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKKyAgICAgICAgICAgICAgICAgKHN0cmluZyA6
dGFnICJPdGhlciBzdHJpbmciKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNp
b24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdG9jLXNsdWctZnVuY3Rpb24gIydt
YXJrZG93bi10cy0tc2x1Zy1naXRodWIKKyAgIkZ1bmN0aW9uIHRvIGdlbmVyYXRlIE1hcmtkb3du
IGhlYWRpbmcgXCJzbHVnc1wiIGluIHRhYmxlcyBvZiBjb250ZW50cy4iCisgIDp0eXBlICcoY2hv
aWNlIChjb25zdCA6dGFnICJHaXRIdWIgc2x1ZyIgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiUGFuZG9jIHNsdWciIG1hcmtkb3duLXRzLS1z
bHVnLXBhbmRvYykKKyAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgIk90aGVyIGZ1bmN0
aW9uIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmdmFyIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcworICAnKChoZWFkaW5nIC4gKGgxIGgyIGgz
IGg0IGg1IGg2KSkKKyAgICAoc2V0ZXh0IC4gKHNoMSBzaDIpKQorICAgIChpdGVtIC4gKG1pbnVz
IHBsdXMgc3RhcikpCisgICAgKG51bWJlcmVkLWl0ZW0gLiAoZG90IHBhcmVuKSkKKyAgICAoY29k
ZSAuIChjb2RlKSkpCisgICJNYXAgaGlnaCBsZXZlbCBub2RlIGhhbmRsZXMgdG8gdGhlaXIgYmFz
ZSBjb25zdGl0dWVudHMuCitUaGUgc3BlY2lhbCBzeW1ib2wgYGFsbCcgbWVhbnMgYWxsIGhhbmRs
ZXMuIikKKworKGRlZnZhciBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2VzCisgIChsZXQg
KCh4KSkKKyAgICAoZG9saXN0IChlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKQorICAgICAg
KGRvbGlzdCAodmFsIChjZHIgZWx0KSkKKyAgICAgICAgKHB1c2ggYCgsdmFsIC4gLChjYXIgZWx0
KSkgeCkpKQorICAgIHgpCisiSW52ZXJzZSBvZiBgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzJy4i
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy1leHBhbmQtY2FuZGlkYXRlLWhhbmRsZXMgKGhh
bmRsZXMpCisgICJFeHBhbmQgY2FuZGlkYXRlIEhBTkRMRVMgYW5kIGtlZXAgb25seSBiYXNlIGhh
bmRsZXMuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuIgorICAobGV0ICgoZXhwYW5k
ZWQgKG1ha2UtaGFzaC10YWJsZSkpCisgICAgICAgIChyZXMpKQorICAgICh1bmxlc3MgKGxpc3Rw
IGhhbmRsZXMpCisgICAgICAoc2V0cSBoYW5kbGVzIChsaXN0IGhhbmRsZXMpKSkKKyAgICAod2hl
biAoZXF1YWwgaGFuZGxlcyAnKGFsbCkpCisgICAgICAoc2V0cSBoYW5kbGVzIChtYXBjYXIgIydj
YXIgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKSkpCisgICAgKGRvbGlzdCAoZWx0IGhhbmRsZXMp
CisgICAgICAoc2V0cSBlbHQgKGFsaXN0LWdldCBlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVz
IGVsdCkpCisgICAgICAoY29uZCAoKGNvbnNwIGVsdCkKKyAgICAgICAgICAgICAoZG9saXN0IChr
IGVsdCkgKHB1dGhhc2ggayB0IGV4cGFuZGVkKSkpCisgICAgICAgICAgICAodCAocHV0aGFzaCBl
bHQgdCBleHBhbmRlZCkpKSkKKyAgICAobWFwaGFzaCAobGFtYmRhIChrIF92KSAocHVzaCBrIHJl
cykpIGV4cGFuZGVkKQorICAgIHJlcykpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdG9jcyAoJm9w
dGlvbmFsIGJlZyBlbmQpCisgICJTY2FuIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgdG9jIGVudHJp
ZXMgZnJvbSBCRUcgdG8gRU5ELgorSWYgQkVHIGlzIG5pbCwgdXNlIGBwb2ludC1taW4nLiAgSWYg
RU5EIGlzIG5pbCwgdXNlIGBwb2ludC1tYXgnLgorCitSZXR1cm4gYW4gYWxpc3Qgb2YgdGhlIGZv
cm06CisgIFxcPScoKGtleXdvcmQgKG5vZGUgYmVnIGVuZCB2YXJzKSkpCisKK1ZhcnMgYXJlIGV4
cGFuZGVkIHZpYSBgaGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lJy4KKworUmV0dXJuIHRo
ZSBsaXN0IGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlIGluIHRoZSBidWZmZXIuIgorICA7OyBO
T1RFOiBUaGlzIHNjYW5zIGFsbCBtYXRjaGluZyBub2RlcyBiZWxvdyBCRUcgd2l0aCBubyBtYXhp
bXVtIGNvdW50CisgIDs7IGV2ZW4gd2hlbiB3ZSB3YW50IG9ubHkgYSBzaW5nbGUgbmV4dCBtYXRj
aGluZyBpdGVtLiAgUGVyaGFwcworICA7OyBgdHJlZXNpdC1xdWVyeS1jYXB0dXJlJyBjb3VsZCBi
ZSBpbXByb3ZlZCB0byBhY2NlcHQgYSBtYXgtY291bnQKKyAgOzsgYXJndW1lbnQuCisgIDs7Cisg
IDs7IE1hdGNoICJtYXJrZG93bi10cy10b2M6IiwgIm1hcmtkb3duLXRzLXRvYy1hYmMxMjM6IiBi
dXQgbm90CisgIDs7ICJtYXJrZG93bi10cy10b2N4eHg6Ii4KKyAgKGxldCAoKHJlcykpCisgICAg
KGRvbGlzdCAobm9kZQorICAgICAgICAgICAgICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgJ21hcmtkb3duCisgICAgICAgICAgICAgICcoKCgoaHRtbF9ibG9jaykgQG1hcmtk
b3duLXRzLXRvYykKKyAgICAgICAgICAgICAgICAgKDptYXRjaCAiPCEtLVtbOmJsYW5rOl1dKm1h
cmtkb3duLXRzLXRvY1xcKC1bWzphbG51bTpdXStcXCkqOiIgQG1hcmtkb3duLXRzLXRvYykpKQor
ICAgICAgICAgICAgICAob3IgYmVnIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAob3IgZW5k
IChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAnbm9kZS1vbmx5KSkKKyAgICAgIChsZXQqICgo
cyAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKQorICAgICAgICAgICAgICht
YXRjaCAoc3RyaW5nLW1hdGNoICJcXChtYXJrZG93bi10cy10b2NcXCgtW1s6YWxudW06XV0rXFwp
KlxcKTouKiIgcykpCisgICAgICAgICAgICAgKGtleXdvcmQgKHdoZW4gbWF0Y2ggKG1hdGNoLXN0
cmluZyAxIHMpKSkpCisgICAgICAgIChsZXQgKCh2YXJzKSkKKyAgICAgICAgICAod2l0aC13b3Jr
LWJ1ZmZlcgorICAgICAgICAgICAgKGluc2VydCBzKQorICAgICAgICAgICAgKHNldHEgdmFycyAo
aGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lKSkpCisgICAgICAgICAgKHB1c2gKKyAgICAg
ICAgICAgYCgsa2V5d29yZAorICAgICAgICAgICAgIChub2RlIC4gLG5vZGUpCisgICAgICAgICAg
ICAgKGJlZyAuICwodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgIChlbmQg
LiAsKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgKHZhcnMgLiAsdmFycykp
CisgICAgICAgICAgIHJlcykpKSkKKyAgICAobnJldmVyc2UgcmVzKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2sgKHRvY3MpCisgICJTYW5pdHkgY2hlY2sgVE9DUyBm
b3IgcGFpcmVkIG1hcmtkb3duLXRzLXRvYzogbWFya2Rvd24tdHMtdG9jLWVuZDogbm9kZXMuCitT
aWduYWwgYW4gZXJyb3IgaWYgVE9DUyBhcmUgaW5zYW5lLgorU2VlIGBtYXJrZG93bi10cy0tdG9j
cycuIgorICAoc2VxLW1hcC1pbmRleGVkCisgICAobGFtYmRhIChlbHQgaWR4KQorICAgICAod2hl
biAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciBlbHQpKQorICAgICAgICh1bmxlc3MgKGVx
dWFsICJtYXJrZG93bi10cy10b2MtZW5kIiAoY2FyIChudGggKDErIGlkeCkgdG9jcykpKQorICAg
ICAgICAgKHVzZXItZXJyb3IKKyAgICAgICAgICAiXCJtYXJrZG93bi10cy10b2NcIiBhdCBwb3Np
dGlvbiAlZCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbWF0Y2hpbmcgXCJtYXJrZG93bi10cy10b2Mt
ZW5kXCIiCisgICAgICAgICAgKGFsaXN0LWdldCAnYmVnIGVsdCkpKSkpCisgICB0b2NzKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS10b2MtY29sbGVjdC1jYW5kaWRhdGVzICh0b2Mtc3RhcnQtbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2MtZW5kLW5v
ZGUgaGFuZGxlcyBmcm9tKQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIHRvYyBlbnRyeSBjYW5kaWRh
dGVzIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyLgorSEFORExFUyBpcyBhIGxpc3Qgb2YgYmFzZSBo
YW5kbGVzOyBzZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuCisKK1RPQy1TVEFSVC1OT0RF
IGlzIHRoZSBcIm1hcmtkb3duLXRzLXRvYy1zdGFydFwiIG5vZGUuCitUT0MtRU5ELU5PREUgaXMg
dGhlIFwibWFya2Rvd24tdHMtdG9jLWVuZFwiIG5vZGUuCisKK0lmIEZST00gaXMgdGhlIHN5bWJv
bCBgYWJvdmUnLCBzb3VyY2UgY2FuZGlkYXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YKK3RoZSBi
dWZmZXIgdW50aWwgdGhlIHRvYyBzdGFydCBub2RlLiAgSWYgYGJlbG93Jywgc291cmNlIGNhbmRp
ZGF0ZXMgZnJvbQordG9jIHN0YXJ0IG5vZGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAg
SWYgYGFsbCcsIHVzZSB0aGUgd2hvbGUKK2J1ZmZlci4KKworUmVtb3ZlIGlnbm9yZWQgY2FuZGlk
YXRlcyBjb250YWluaW5nIFwiPCEtLSBtYXJrZG93bi10cy1pZ25vcmU6IC0tPlwiLgorCitTb3J0
IHRoZSBsaXN0IGJ5IHRoZSBzdGFydGluZyBjaGFyYWN0ZXIgcG9zaXRpb25zIG9mIG5vZGVzLgor
CitUaGUgYWxpc3QgaXMgb2YgdGhlIGZvcm06CisgIFxcPScoKGhhbmRsZSAuIG5vZGUpKSIKKyAg
KGxldCAoY2FuZGlkYXRlcyBiZWcgZW5kKQorICAgIChwY2FzZSBmcm9tCisgICAgICAoJ2Fib3Zl
CisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4pKQorICAgICAgIChzZXRxIGVuZCAodHJlZXNp
dC1ub2RlLXN0YXJ0IHRvYy1zdGFydC1ub2RlKSkpCisgICAgICAoJ2JlbG93CisgICAgICAgKHNl
dHEgYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1lbmQtbm9kZSkpCisgICAgICAgKHNldHEgZW5k
IChwb2ludC1tYXgpKSkKKyAgICAgICgnYWxsCisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4p
KQorICAgICAgIChzZXRxIGVuZCAocG9pbnQtbWF4KSkpKQorCisgICAgOzsgSXQgbG9va3MgbGlr
ZSB3ZSBjYW5ub3QgZ2V0IHRoZW0gaW4gb25lIGZlbGwgc3dvb3AuCisgICAgKGRvbGlzdCAoZWx0
IGhhbmRsZXMpCisgICAgICAoc2V0cQorICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAoYXBwZW5k
CisgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgKHBjYXNlIGVsdAorICAgICAgICAgICgnaDEg
KHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChhdHhf
aGVhZGluZyAoYXR4X2gxX21hcmtlcikgKGlubGluZSkgQGgxKSkgYmVnIGVuZCkpCisgICAgICAg
ICAgKCdoMiAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgJ21hcmtkb3du
ICcoKGF0eF9oZWFkaW5nIChhdHhfaDJfbWFya2VyKSAoaW5saW5lKSBAaDIpKSBiZWcgZW5kKSkK
KyAgICAgICAgICAoJ2gzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAn
bWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oM19tYXJrZXIpIChpbmxpbmUpIEBoMykpIGJl
ZyBlbmQpKQorICAgICAgICAgICgnaDQgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICdtYXJrZG93biAnKChhdHhfaGVhZGluZyAoYXR4X2g0X21hcmtlcikgKGlubGluZSkg
QGg0KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdoNSAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisg
ICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKGF0eF9oZWFkaW5nIChhdHhfaDVfbWFya2VyKSAo
aW5saW5lKSBAaDUpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ2g2ICh0cmVlc2l0LXF1ZXJ5LWNh
cHR1cmUKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oNl9t
YXJrZXIpIChpbmxpbmUpIEBoNikpIGJlZyBlbmQpKQorICAgICAgICAgICgnc2gxICh0cmVlc2l0
LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKHNldGV4dF9oZWFk
aW5nIGhlYWRpbmdfY29udGVudDogKF8pIEBzaDEgKHNldGV4dF9oMV91bmRlcmxpbmUpKSkgYmVn
IGVuZCkpCisgICAgICAgICAgKCdzaDIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICAnbWFya2Rvd24gJygoc2V0ZXh0X2hlYWRpbmcgaGVhZGluZ19jb250ZW50OiAoXykg
QHNoMiAoc2V0ZXh0X2gyX3VuZGVybGluZSkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ21pbnVz
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygo
bGlzdF9pdGVtIChsaXN0X21hcmtlcl9taW51cykgKHBhcmFncmFwaCAoaW5saW5lKSBAbWludXMp
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdwbHVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMp
IChwYXJhZ3JhcGggKGlubGluZSkgQHBsdXMpKSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdzdGFy
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChs
aXN0X2l0ZW0gKGxpc3RfbWFya2VyX3N0YXIpIChwYXJhZ3JhcGggKGlubGluZSkgQHN0YXIpKSkg
YmVnIGVuZCkpCisgICAgICAgICAgKCdkb3QgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIChwYXJh
Z3JhcGggKGlubGluZSkgQGRvdCkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ3BhcmVuICh0cmVl
c2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9wYXJlbnRoZXNpcykgKHBhcmFncmFwaCAoaW5saW5lKSBAcGFyZW4p
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdjb2RlICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJp
bmcgKGxhbmd1YWdlKSkgQGNvZGUpKSBiZWcgZW5kKSkpKSkpCisgICAgKHNvcnQKKyAgICAgKHNl
cS1yZW1vdmUKKyAgICAgIChsYW1iZGEgKGVsdCkKKyAgICAgICAgKHN0cmluZy1tYXRjaC1wICI8
IS0tW1s6Ymxhbms6XV0qbWFya2Rvd24tdHMtaWdub3JlOltbOmJsYW5rOl1dKi0tPiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCAoY2RyIGVsdCkgdCkpKQorICAg
ICAgY2FuZGlkYXRlcykKKyAgICAgOmtleSAobGFtYmRhIChlbHQpCisgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLXN0YXJ0IChjZHIgZWx0KSkpCisgICAgIDpsZXNzcCAjJzwKKyAgICAgOmluLXBs
YWNlIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoIChub2Rl
KQorICAiUmV0dXJuIE5PREUncyBpdGVtIGRlcHRoIHJlbGF0aXZlIHRvIGl0cyBwcmVkZWNlc3Nv
cnMuCitJZiBOT0RFIGlzIG5vdCBwYXJ0IG9mIGEgbGlzdCwgcmV0dXJuIG5pbC4iCisgICAgKGxl
dCAoKGRlcHRoIG5pbCkgKG4gKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgKHdo
aWxlIG4KKyAgICAgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdCIp
CisgICAgICAgICAgKHNldHEgZGVwdGggKDErIChvciBkZXB0aCAwKSkpKQorICAgICAgICAoc2V0
cSBuICh0cmVlc2l0LW5vZGUtcGFyZW50IG4pKSkKKyAgICAgIGRlcHRoKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUgKHRleHQpCisgICJSZW1vdmUgdHJh
aWxpbmcgIyBmcm9tIFRFWFQgdW5sZXNzIHRoZXkgYXJlIGJhY2tzbGFzaCBlc2NhcGVkLgorRmly
c3QgcmVtb3ZlIEhUTUwgY29tbWVudHMuIgorICAoaWYgKHN0cmluZy1tYXRjaC1wICJbWzpibGFu
azpdXSpcXFxcKyMrW1s6Ymxhbms6XV0qXG4qXFwnIiB0ZXh0KQorICAgICAgdGV4dAorICAgIChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIltbOmJsYW5rOl1dKiMrW1s6Ymxhbms6XV0qXG4qXFwn
IiAiIiB0ZXh0KSkpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXRvYy10ZXh0LW5vcm1hbGl6ZXJz
CisgIGAoKGhlYWRpbmcgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQor
ICAgIChoMSAuIG1hcmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGgy
IC4gbWFya2Rvd24tdHMtLXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDMgLiBtYXJr
ZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQorICAgIChoNCAuIG1hcmtkb3duLXRz
LS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGg1IC4gbWFya2Rvd24tdHMtLXRvYy1h
dHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDYgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFk
ZXItbm9ybWFsaXplKSkKKyAgIk1hcCBub2RlIHR5cGUgaGFuZGxlcyB0byBmdW5jdGlvbnMgdGhh
dCBub3JtYWxpemUgaXRzIHRleHQuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emUnLgorRWFjaCBmdW5jdGlvbiBhY2NlcHRzIG9uZSBhcmd1bWVudCwgdGhlIHN0cmluZyBURVhU
LCBhbmQgcmV0dXJucyBhIHN0cmluZy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy10ZXh0
LW5vcm1hbGl6ZSAoaGFuZGxlIG5vZGUgJm9wdGlvbmFsIHRleHQpCisgICJOb3JtYWxpemUgTk9E
RSdzIFRFWFQgYWNjb3JkaW5nIHRvIGl0cyBIQU5ETEUuCitURVhUIHNob3VsZCBoYXZlIG5vIHRl
eHQgcHJvcGVydGllcy4gIElmIFRFWFQgaXMgbmlsLCB1c2UgdGhlIE5PREUncwordGV4dC4gIFRo
aXMgaXMgbm90IGFsd2F5cyBjb3JyZWN0IHNvIGl0J3MgYmVzdCB0byBwYXNzIFRFWFQgaWYgeW91
IGtub3cKK2l0IGluIHRoZSBjYWxsaW5nIGNvbnRleHQuCisKK0lmIG5vIG5vcm1hbGl6ZXIgaXMg
Zm91bmQsIHJldHVybiBURVhULgorCitPbmUgZXhhbXBsZSBub3JtYWxpemF0aW9uIGlzIGF0eF9o
ZWFkaW5nIHRleHQgdGhhdCBlbmRzIGluIHRyYWlsaW5nIGhhc2gKK3NpZ25zIHdoaWNoIGFyZSBp
bnRlbmRlZCB0byBiZSBlbGlkZWQgc28gXCJIZWFkaW5nIFRleHQgIyNcIiBpcwordHJhbnNmb3Jt
ZWQgaW50byBcIkhlYWRpbmcgVGV4dFwiLiIKKyAgKHNldHEgdGV4dCAob3IgdGV4dCAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKSkKKyAgKGlmLWxldCogKChmaXhlciAoYWxp
c3QtZ2V0IGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplcnMpKSkKKyAgICAg
IChmdW5jYWxsIGZpeGVyIHRleHQpCisgICAgdGV4dCkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVm
aW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisg
ICJJZiBlbmFibGVkLCB1cGRhdGUgYG1hcmtkb3duLXRzLW1vZGUnIHRhYmxlcyBvZiBjb250ZW50
cyBiZWZvcmUgc2F2aW5nLiIKKyAgOmluaXQtdmFsdWUgbmlsCisgIDpnbG9iYWwgbmlsCisgIDps
aWdodGVyIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyCisg
IChpZiAoZGVyaXZlZC1tb2RlLXAgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAoaWYgbWFya2Rv
d24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisgICAgICAgICAgKGFkZC1ob29rICdi
ZWZvcmUtc2F2ZS1ob29rICMnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlIG5pbCAnbG9jYWwpCisg
ICAgICAgIChyZW1vdmUtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAjJ21hcmtkb3duLXRzLXRvYy1n
ZW5lcmF0ZSAnbG9jYWwpKQorICAgIChzZXRxIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3Jl
LXNhdmUtbW9kZSBuaWwpCisgICAgKGx3YXJuICdtYXJrZG93bi10cy10b2MtdXBkYXRlLWJlZm9y
ZS1zYXZlLW1vZGUKKyAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgIk1pbm9yIG1vZGUg
dmFsaWQgb25seSBpbiBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKSkpCisKKzs7OyMjI2F1
dG9sb2FkCisoZGVmdW4gbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUgKCZvcHRpb25h
bCBiZWcgZW5kKQorICAiUmVtb3ZlIGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50
cyBib2RpZXMgYW5kIHRlbXBsYXRlcy4KK09wZXJhdGUgb24gdGhlIGFjdGl2ZSByZWdpb24gQkVH
IHRvIEVORCwgb3RoZXJ3aXNlIG9wZXJhdGUgb24gdGhlCitidWZmZXIsIHdoaWNoIG1heSBiZSBu
YXJyb3dlZC4iCisgIChpbnRlcmFjdGl2ZSAiUiIpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1u
b3QtbW9kZSAnbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUpCisgIChtYXJrZG93bi10
cy10b2MtY2xlYXIgYmVnIGVuZCAncmVtb3ZlKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBt
YXJrZG93bi10cy10b2MtY2xlYXIgKCZvcHRpb25hbCBiZWcgZW5kIHJlbW92ZSkKKyAgIkNsZWFy
IGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50cyBib2RpZXMuCitPcGVyYXRlIG9u
IHRoZSBhY3RpdmUgcmVnaW9uIEJFRyB0byBFTkQsIG90aGVyd2lzZSBvcGVyYXRlIG9uIHRoZQor
YnVmZmVyLCB3aGljaCBtYXkgYmUgbmFycm93ZWQuCitJZiBvcHRpb25hbCBSRU1PVkUgaXMgbm9u
LW5pbCwgcmVtb3ZlIHRhYmxlcyBpbmNsdWRpbmcgdGhlaXIgdGVtcGxhdGVzLiIKKyAgKGludGVy
YWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10
cy10b2MtY2xlYXIpCisgIChzZXRxIGJlZyAob3IgYmVnIChwb2ludC1taW4pKSkKKyAgKHNldHEg
ZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNzIChlcSBiZWcgZW5kKQorICAgIDs7
IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlvbnMuCisgICAgKHNldHEgYmVnIChp
ZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVnKSBiZWcpKQorICAgIChzZXRxIGVu
ZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9uIGVuZCkgZW5kKSkKKyAgICA7OyBO
T1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0byBhdm9pZCB0cmVlc2l0ZXIgY3Jh
c2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9uCisgICAgICAobGV0ICgodG9jcykK
KyAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgIChlbmQtcG9zIGVuZCkpCisg
ICAgICAgIDs7IFdlIHNjYW4gZWFjaCBwYXNzIGJlY2F1c2UgdGhlaXIgcG9zaXRpb25zIGNoYW5n
ZS4KKyAgICAgICAgKHdoaWxlIChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAg
ICAgICAgICAoc2V0cSB0b2NzIChtYXJrZG93bi10cy0tdG9jcyBiZWctcG9zIGVuZC1wb3MpKSkK
KyAgICAgICAgICAobWFya2Rvd24tdHMtLXRvY3Mtc2FuaXR5LWNoZWNrIHRvY3MpCisgICAgICAg
ICAgOzsgQWZ0ZXIgc2FuaXR5IGNoZWNraW5nLCB3ZSBrbm93IHRoZSBzZWNvbmQgZWxlbWVudCBp
cyBhCisgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAobGV0KiAoKHRvYyAobnRoIDAg
dG9jcykpCisgICAgICAgICAgICAgICAgICh0b2MtZW5kIChudGggMSB0b2NzKSkKKyAgICAgICAg
ICAgICAgICAgKHJlZy1iZWcgKGlmIHJlbW92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFsaXN0LWdldCAnYmVnIHRvYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxp
c3QtZ2V0ICdlbmQgdG9jKSkpCisgICAgICAgICAgICAgICAgIChyZWctZW5kIChpZiByZW1vdmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2JlZyB0b2MtZW5kKSkpCisg
ICAgICAgICAgICAgICAgIChyZWctc2l6ZSAoLSByZWctZW5kIHJlZy1iZWcpKSkKKyAgICAgICAg
ICAgIChkZWxldGUtcmVnaW9uIHJlZy1iZWcgcmVnLWVuZCkKKyAgICAgICAgICAgIDs7IFN0YXJ0
IHRoZSBuZXh0IHBhc3MgYWZ0ZXIgdGhpcyB0b2MtZW5kLiAgQWRqdXN0IGZvciB0aGUKKyAgICAg
ICAgICAgIDs7IGRlbGV0ZWQgcmVnaW9uLgorICAgICAgICAgICAgKHNldHEgYmVnLXBvcyAoLSAo
YWxpc3QtZ2V0ICdlbmQgdG9jLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
LXNpemUpKQorICAgICAgICAgICAgKHNldHEgZW5kLXBvcyAobWluIChwb2ludC1tYXgpICgtIGVu
ZC1wb3MgcmVnLXNpemUpKSkpKSkpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93
bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGBt
YXJrZG93bi10cy1tb2RlYCB0YWJsZSBvZiBjb250ZW50cyB0ZW1wbGF0ZSBhdCBwb2ludC4KKwor
Q0hBUiBpcyB0aGUgdGVtcGxhdGUgdHlwZSBcImJcIiBmb3IgYmFzaWMsIFwiY1wiIGZvciBjb21w
bGV0ZS4gIElmIENIQVIKK2lzIG5pbCBhbmQgdGhlIGNvbW1hbmQgaXMgcnVuIGludGVyYWN0aXZl
bHksIHByb21wdCBmb3IgYSB0ZW1wbGF0ZS4KKworVGhlIGJhc2ljIHRlbXBsYXRlIHVzZXMgYWxs
IGRlZmF1bHRzIGFuZCBpcyBsaWtlbHkgdGhlIGJlc3QgY2hvaWNlIGZvcgorbW9zdCB1c2VzLiAg
VGhlIGNvbXBsZXRlIHRlbXBsYXRlIGlsbHVzdHJhdGVzIGFsbCBwYXJhbWV0ZXJzIHNldCB0bwor
dGhlaXIgZGVmYXVsdHMgYW5kIGlzIHVzZWZ1bCBhcyBhIHN0YXJ0aW5nIHBvaW50IHRvIGN1c3Rv
bWl6ZSBhIHRhYmxlLiIKKyAgKGludGVyYWN0aXZlICJjVGVtcGxhdGUgW2JdYXNpYyBbY11vbXBs
ZXRlOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9iCisgICAgIChpbnNlcnQgIjwhLS0gbWFya2Rv
d24tdHMtdG9jOiAtLT5cbiIKKyAgICAgICAgICAgICAiPCEtLSBtYXJrZG93bi10cy10b2MtZW5k
OiAtLT5cbiIpKQorICAgICg/YworICAgICAoaW5zZXJ0ICI8IS0tIG1hcmtkb3duLXRzLXRvYzog
LSotICIKKyAgICAgICAgICAgICAibWluLWRlcHRoOiAxOyAiCisgICAgICAgICAgICAgIm1heC1k
ZXB0aDogbmlsOyAiCisgICAgICAgICAgICAgImNhbmRpZGF0ZXM6IChoZWFkaW5nKTsgIgorICAg
ICAgICAgICAgICJmcm9tOiBiZWxvdzsgIgorICAgICAgICAgICAgICJzdHlsZTogaXRlbTsgIgor
ICAgICAgICAgICAgICJpbmRlbnQ6IDE7ICIKKyAgICAgICAgICAgICAibm8tbGluazogbmlsOyAi
CisgICAgICAgICAgICAgInJlbGF0aXZlLWRlcHRoOiBuaWw7ICIKKyAgICAgICAgICAgICAiaWdu
b3JlOiBuaWw7ICIKKyAgICAgICAgICAgICAiLSotIC0tPlxuIgorICAgICAgICAgICAgICI8IS0t
IG1hcmtkb3duLXRzLXRvYy1lbmQ6IC0tPlxuIikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1
Y2ggdGVtcGxhdGUgdHlwZTogJWMiIGNoYXIpKSkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4g
bWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlICgmb3B0aW9uYWwgaW50ZXJhY3RpdmUgYmVnIGVuZCkK
KyAgIkdlbmVyYXRlIHRhYmxlcyBvZiBjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitg
bWFya2Rvd24tdHMtbW9kZScgdXNlcyBNYXJrZG93biBIVE1MIGNvbW1lbnQgZWxlbWVudHMgdG8g
aWRlbnRpZnkgdGFibGUKK29mIGNvbnRlbnRzIChha2EgdG9jKSBpbnNlcnRpb24gYm91bmRhcmll
cyBhbmQgdGhlIHBhcmFtZXRlcnMgZm9yIGVhY2gKK3RhYmxlLiAgRGVyaXZlIHRhYmxlIGNvbnRl
bnQgZnJvbSB0aGUgTWFya2Rvd24gZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQKK2J1ZmZlciB3aGlj
aCBhcmUgdXN1YWxseSBoZWFkaW5ncyBidXQgY2FuIGFsc28gYmUgbGlzdCBpdGVtcywgc2V0ZXh0
CitoZWFkZXJzLCBuYW1lZCBjb2RlIGJsb2Nrcy4KKworT3BlcmF0ZSBvbiB0aGUgYWN0aXZlIHJl
Z2lvbiBCRUcgdG8gRU5ELCBvdGhlcndpc2Ugb3BlcmF0ZSBvbiB0aGUKK2J1ZmZlciwgd2hpY2gg
bWF5IGJlIG5hcnJvd2VkLgorCitFYWNoIHRpbWUgeW91IHJ1biB0aGlzIGNvbW1hbmQsIGV4aXN0
aW5nIHRhYmxlcyBvZiBjb250ZW50cyBhcmUgY2xlYXJlZAorYW5kIHJlZnJlc2hlZCB3aXRoIG5l
dyBjb250ZW50LiAgU28gZG9uJ3QgcGxhY2UgdG9jIGVsZW1lbnRzIGFyb3VuZAoraW1wb3J0YW50
IHRleHQuCisKK1RoZSBidWZmZXIgY2FuIGhhdmUgb25lIG9yIG1vcmUgdG9jcy4gIEJ5IGRlZmF1
bHQsIHBvcHVsYXRlIGVhY2ggdG9jCit3aXRoIGVsZW1lbnRzIHRoYXQgYXBwZWFyIGluIHRoZSBi
dWZmZXIgYmVsb3cgdGhlIHRvYy4gIFRoZXJlZm9yZSwgdGhlCitlYXNpZXN0IHdheSB0byBpbnNl
cnQgYSBjb21wbGV0ZSB0YWJsZSBvZiBjb250ZW50cywgaXMgdG8gcHV0IHRoZSB0b2MKK3RlbXBs
YXRlIG5lYXIgdGhlIHRvcCBvZiB5b3VyIGJ1ZmZlci4KKworQSBiYXNpYyBlbXB0eSB0b2MgdGVt
cGxhdGUgbG9va3MgbGlrZSB0aGlzOgorCitIZWFkZXIgdGV4dCB5b3Ugd2FudCBoZXJlLgorCis8
IS0tIG1hcmtkb3duLXRzLXRvYzogLS0+CitDb250ZW50cyBpbnNlcnRlZCBiZXR3ZWVuIHRoZXNl
IGVsZW1lbnRzLgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworRm9vdGVyIHRleHQg
eW91IHdhbnQgaGVyZS4KKworVXNlIHRoZSBjb21tYW5kIGBtYXJrZG93bi10cy10b2MtaW5zZXJ0
LXRlbXBsYXRlJyB0byBpbnNlcnQgYSB0YWJsZSBvZgorY29udGVudHMgdGVtcGxhdGUuCisKK1Vz
ZSB0aGUgY29tbWFuZCBgbWFya2Rvd24tdHMtdG9jLWNsZWFyJyB0byBjbGVhciB0YWJsZSBjb250
ZW50LCBhbmQgdGhlCitjb21tYW5kIGBtYXJrZG93bi10cy10b2MtY2xlYXItYW5kLXJlbW92ZScg
dG8gYm90aCBjbGVhciBhbmQgcmVtb3ZlCit0YWJsZSBjb250ZW50IGFuZCB0ZW1wbGF0ZXMuCisK
K0J5IGRlZmF1bHQsIGEgdG9jIGluY2x1ZGVzIGhlYWRlcnMgYXQgYWxsIGxldmVscyBiZWxvdyB0
aGUgdG9jIHdoaWNoIGFyZQorcHJlc2VudGVkIGFzIGxpc3QgaXRlbXMgd2l0aCBsaW5rcy4KKwor
VG8gaWdub3JlIGEgTWFya2Rvd24gZWxlbWVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBpbmNs
dWRlZCBpbiB0aGUKK3RvYywgYWRkIGEgdG9jIGlnbm9yZSBlbGVtZW50OgorCisjIyBJZ25vcmUg
TWUgPCEtLSBtYXJrZG93bi10cy10b2MtaWdub3JlOiAtLT4KKworVGhlIHN0YXJ0aW5nIHRvYyBl
bGVtZW50IGFjY2VwdHMgcGFyYW1ldGVycyBpbiB0aGUgc3ludGF4IG9mIEVtYWNzIGZpbGUKK3Zh
cmlhYmxlcy4KKworRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgdGFibGUg
b2YgY29udGVudHMgbGltaXRlZCB0bworaGVhZGluZ3MgdHdvIGxldmVscyBkZWVwOgorCis8IS0t
IG1hcmtkb3duLXRzLXRvYzogLSotIG1heC1kZXB0aDogMjsgLSotIC0tPgorPCEtLSBtYXJrZG93
bi10cy10b2MtZW5kOiAtLT4KKworT3IgdXNlIG9ubHkgaGVhZGluZ3MgdHdvIGFuZCB0aHJlZSBs
ZXZlbHMgZGVlcC4KKworPCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSBtaW4tZGVwdGg6IDI7IG1h
eC1kZXB0aDogMzsgLSotIC0tPgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworVGhl
c2UgYXJlIHRoZSBzdXBwb3J0ZWQgcGFyYW1ldGVycyB3aGljaCBhcmUgb3B0aW9uYWwuICBUaGV5
IGVhY2ggbGlzdAordGhlaXIgZGVmYXVsdHMuCisKKyAgbWluLWRlcHRoOiAxICAgICAgICAgIDsg
YW4gaW50ZWdlcgorICBtYXgtZGVwdGg6IG5pbCAgICAgICAgOyBhbiBpbnRlZ2VyCisgIGNhbmRp
ZGF0ZXM6IChoZWFkaW5nKSA7IGEgbGlzdAorICBmcm9tOiBiZWxvdyAgICAgICAgICAgOyBhIHN5
bWJvbAorICBzdHlsZTogaXRlbSAgICAgICAgICAgOyBhIHN5bWJvbAorICBpbmRlbnQ6IDEgICAg
ICAgICAgICAgOyBhIG51bWJlcgorICBuby1saW5rOiBuaWwgICAgICAgICAgOyBhIGJvb2xlYW4K
KyAgcmVsYXRpdmUtZGVwdGg6IG5pbCAgIDsgYSBib29sZWFuCisgIGlnbm9yZTogbmlsICAgICAg
ICAgICA7IGEgYm9vbGVhbgorCitgbWluLWRlcHRoJyBhbmQgYG1heC1kZXB0aCcgYm90aCBkZWZh
dWx0IHRvIHVzaW5nIGFsbCBjYW5kaWRhdGVzIGF0CitldmVyeSBsZXZlbC4gIFVzZSBgbWluLWRl
cHRoJyB0byBpZ25vcmUgbGV2ZWwgMSBoZWFkaW5ncyBsaWtlIFwiIworSGVhZGluZ1wiLCBieSB1
c2luZyAyLiAgVXNlIGBtYXgtZGVwdGgnIHRvIGNvbnRyb2wgaG93IGRlZXAgaW50byB0aGUKK2hl
YWRpbmcgaGllcmFyY2h5IHlvdSBuZWVkIHlvdXIgdG9jIHRvIGdvLiAgVXNlIDMgdG8gc3RvcCBh
dCBsZXZlbCB0aHJlZQoraGVhZGluZ3MuCisKK0hlYWRpbmdzIGRpY3RhdGUgdGhlIGxldmVsIG9m
IHRoZWlyIGNoaWxkcmVuIGV2ZW4gaWYgaGVhZGluZ3MgYXJlCitleGNsdWRlZCBmcm9tIGNhbmRp
ZGF0ZXMuICBPdGhlciBlbGVtZW50IHR5cGVzIGluaGVyaXQgdGhlIGxldmVsIG9mCit0aGVpciBw
cmVjZWRpbmcgaGVhZGluZy4KKworYGNhbmRpZGF0ZXMnIGlzIGEgbGlzdCBhbmQgY2FuIGNvbnRh
aW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgTWFya2Rvd24KK2VsZW1lbnQgc2hvcnRjdXQgbmFtZXMu
ICBZb3UgY2FuIG1peCBoaWdoZXItbGV2ZWwgZ3JvdXBpbmcgc3ltYm9scyBhbmQKK2xvd2VyIGxl
dmVsIHN5bWJvbHMuCisKKyAgYWxsIChpbmNsdWRlcyBldmVyeXRoaW5nKQorICBoZWFkaW5nIChp
bmNsdWRlcyB0aGUgYmVsb3cpCisgICAgaDEgaDIgaDMgaDQgaDUgaDYKKyAgc2V0ZXh0IChpbmNs
dWRlcyB0aGUgYmVsb3cpCisgICAgc2gxIHNoMgorICBpdGVtIChpbmNsdWRlcyB0aGUgYmVsb3cp
CisgICAgbWludXMgcGx1cyBzdGFyCisgIG51bWJlcmVkLWl0ZW0gKGluY2x1ZGVzIHRoZSBiZWxv
dykKKyAgICBkb3QgcGFyZW4KKyAgY29kZSAobmFtZWQgY29kZSBibG9ja3MpCisKK2Bmcm9tJyBj
b250cm9scyB0aGUgZGlyZWN0aW9uIGFuZCBzY29wZSBmcm9tIHdoaWNoIGNhbmRpZGF0ZXMgYXJl
CitzZWxlY3RlZC4gIFR5cGljYWxseSwgYSB0b2MgaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBidWZmZXIgYW5kCitgZnJvbScgaXMgYGJlbG93JyB0byBjYXB0dXJlIGVudHJ5IGNhbmRp
ZGF0ZXMgYWZ0ZXIgdGhlIHRvYy4gIElmIHlvdSBzZXQKK2Bmcm9tJyB0byBgYWJvdmUnLCBjYW5k
aWRhdGVzIGFyZSBzZWxlY3RlZCBmcm9tIGFib3ZlIHRoZSB0b2MuICBVc2UKK2BhbGwnIHRvIGNh
cHR1cmUgZXZlcnkgZW50cnkgY2FuZGlkYXRlLiAgVGhpcyBpcyB1c2VmdWwgdG8gY3JlYXRlIGEK
K2NvbXBsZXRlIHRvYyBhdCB0aGUgZW5kIG9mIHlvdXIgYnVmZmVyLgorCitUaGUgYHN0eWxlJyBw
YXJhbWV0ZXIgY2FuIGJlIG5pbCwgYGl0ZW0nLCBgbnVtYmVyJyBvciBgbnVtYmVyLicuICBVbmRl
cgorbmlsLCBlbnRyaWVzIGhhdmUgbm8gZGVjb3JhdGlvbnMuICBJZiBgaXRlbScsIGVudHJpZXMg
YXJlIHByZWZpeGVkIHdpdGgKK1wiLVwiLiAgSWYgYGJ1bGxldCcsIHByZWZpeCB3aXRoIFwiKlwi
LiAgSWYgYG51bWJlcicsIG51bWVyaWMgcHJlZml4ZXMKK2FyZSBnZW5lcmF0ZWQsIGZvciBleGFt
cGxlIDEsIDEuMSwgMiwgMi4xLCAyLjEuMSwgMi4xLjIuICBVc2UgYG51bWJlci4nCit0byBhZGQg
YSBwZXJpb2QgdG8gZWFjaCBlbnRyeSdzIG51bWJlci4KKworYGluZGVudCcgaXMgYW4gaW50ZWdl
ciBiZXR3ZWVuIDAgYW5kIDEwLiAgMCBtZWFucyBub3RoaW5nIHNob3VsZCBiZQoraW5kZW50ZWQu
ICBPdGhlcndpc2UsIGVhY2ggZW50cnkgaXMgaW5kZW50ZWQgYnkgdGhlIG51bWJlciBvZiBzcGFj
ZXMgb2YKK2l0cyBNYXJrZG93biBsZXZlbCBtdWx0aXBsaWVkIGJ5IHRoaXMgdmFsdWUuICBDYW5k
aWRhdGVzIHRoYXQgaGF2ZSBubworbmF0aXZlIGxldmVsIHN1Y2ggYXMgbGlzdCBpdGVtcyBpbmhl
cml0IHRoZSBiYXNlIGluZGVudGF0aW9uIGxldmVsIG9mCitpdHMgcHJlY2VkaW5nIGhlYWRlci4g
IExpc3QgaXRlbSBoaWVyYXJjaGllcyBhbmQgY29kZSBibG9ja3MgaW5kZW50Cit1bmRlciB0aGF0
IGJhc2UuCisKK1NldCBgbm8tbGluaycgdG8gdCBpZiB5b3UgZG8gbm90IHdhbnQgeW91ciBlbnRy
aWVzIHRvIGhhdmUgaGVhZGVyIGxpbmtzLgorQnkgZGVmYXVsdCwgZWFjaCBlbnRyeSBkZXJpdmVk
IGZyb20gYSBoZWFkaW5nIGlzIHByZXNlbnRlZCBhcyBhIGxpbmsgdG8KK2l0cyBzb3VyY2UgaGVh
ZGluZy4gIE5PVEU6IFRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSBgc2V0ZXh0JywgYGl0ZW0n
LAorYG51bWJlcmVkLWl0ZW0nLCBgY29kZScgZG8gbm90IHN1cHBvcnQgbGlua3MuCisKK1VzZSBg
cmVsYXRpdmUtZGVwdGgnIHRvIGNyZWF0ZSBhIHRvYyB1bmRlcm5lYXRoIGEgaGVhZGluZywgbGlt
aXRpbmcgdGhlCit0b2MgdG8gaGVhZGluZyBkZXB0aHMgdW5kZXJuZWF0aCB0aGUgcHJlY2VkaW5n
IGhlYWRlciBhbmQgc3BlY2lmeSB0aGUKK2xldmVscyByZWxhdGl2ZSB0byB0aGF0IGhlYWRlci4g
IE1vcmUgY29uY3JldGVseSwgaWYgdGhlIHByZWNlZGluZworaGVhZGVyIGlzIGEgbGV2ZWwgMSBc
IiNcIiBoZWFkZXIsIGBtaW4tZGVwdGgnIDEgYW5kIGBtYXgtZGVwdGgnIDIgd2lsbAorYmUgaW50
ZXJwcmV0ZWQgdG8gYmUgMiBhbmQgMy4gIElmIHlvdSBkZW1vdGUgdGhlIGhlYWRlciB0byBsZXZl
bCAyCitcIiMjXCIgdGhleSB3aWxsIGJlIGludGVycHJldGVkIGFzIDMgYW5kIDQuICBUaGlzIGlz
IHVzZWZ1bCB0byBhdm9pZAorZnVzc2luZyB3aXRoIHRvYyBjb25maWd1cmF0aW9ucyB1bmRlciBo
ZWFkZXJzIHdoZW4geW91IGNoYW5nZSB0aGVpcgorbGV2ZWxzLgorCitGb3IgZXhhbXBsZToKKwor
PCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSByZWxhdGl2ZS1kZXB0aDogdDsgbWluLWRlcHRoOiAx
OyBtYXgtZGVwdGg6IDI7IC0qLSAtLT4KKzwhLS0gbWFya2Rvd24tdHMtdG9jLWVuZDogLS0+CisK
K0ZpbmFsbHksIGlmIGBpZ25vcmUnIGlzIHQsIHlvdSBjYW4ga2VlcCBhIHRvYyBlbGVtZW50IGlu
IHBsYWNlIGFuZCBza2lwCitpdC4KKworSU5URVJBQ1RJVkUgd2lsbCBiZSBub24tbmlsIGlmIHRo
aXMgY29tbWFuZCB3YXMgaW52b2tlZCBpbnRlcmFjdGl2ZWx5LgorCitTZWUgYG1hcmtkb3duLXRz
LXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUnIHRvIGNvbmZpZ3VyZSB3YXJuaW5ncyBhYm91dAor
dGFibGVzIG5vdCBiZWluZyBwcm9jZXNzZWQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4i
CisgIChpbnRlcmFjdGl2ZSAicFxuUiIpCisgIDs7IE5PVEU6IElmIHBhcmFtZXRlcnMgb3IgdGhl
aXIgZGVmYXVsdHMgY2hhbmdlLCBiZSBzdXJlIHRvIG1pcnJvcgorICA7OyB0aGVtIGluIGBtYXJr
ZG93bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlJy4KKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5v
dC1tb2RlICdtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUpCisgIChzZXRxIGJlZyAob3IgYmVnIChw
b2ludC1taW4pKSkKKyAgKHNldHEgZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNz
IChlcSBiZWcgZW5kKQorICAgIDs7IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlv
bnMuCisgICAgKHNldHEgYmVnIChpZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVn
KSBiZWcpKQorICAgIChzZXRxIGVuZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9u
IGVuZCkgZW5kKSkKKyAgICA7OyBOT1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0
byBhdm9pZCB0cmVlc2l0ZXIgY3Jhc2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9u
CisgICAgICAobGV0ICgodG9jcyAobWFya2Rvd24tdHMtLXRvY3MgYmVnIGVuZCkpKQorICAgICAg
ICAodW5sZXNzIHRvY3MKKyAgICAgICAgICAoaWYgKGFuZCBpbnRlcmFjdGl2ZQorICAgICAgICAg
ICAgICAgICAgIChlcSAnaW5zZXJ0LXRlbXBsYXRlIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13
YXJuLWlmLW5vbmUpKQorICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtdG9jLWluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAgICAgICA7OyBJZiB0aGUg
dXNlciBkaWRuJ3QgcXVpdCB0aGUgcHJvbXB0LCBhIHRlbXBsYXRlIG1heSBoYXZlCisgICAgICAg
ICAgICAgICAgOzsgYmVlbiBhZGRlZCwgc28gcmVzY2FuIHRoZSBidWZmZXIuCisgICAgICAgICAg
ICAgICAgKHNldHEgdG9jcyAobWFya2Rvd24tdHMtLXRvY3MpKSkKKyAgICAgICAgICAgICh3aGVu
IChlcSAnbm8tdGFibGVzIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUpCisg
ICAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlCisgICAgICAgICAg
ICAgICAgICAgICA6d2FybmluZworICAgICAgICAgICAgICAgICAgICAgIk5vIHRhYmxlcyBvZiBj
b250ZW50cyBmb3VuZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUg
KGN1cnJlbnQtYnVmZmVyKSkpKSkpCisgICAgICAgIChtYXJrZG93bi10cy0tdG9jcy1zYW5pdHkt
Y2hlY2sgdG9jcykKKworICAgICAgICA7OyBTdHJhdGVneSBpcyBwcm9jZXNzIG9uZSB0b2MgYXQg
YSB0aW1lIGZyb20gdGhlIHRvcCB0byB0aGUKKyAgICAgICAgOzsgYm90dG9tIG9mIHRoZSByYW5n
ZSBCRUcgRU5ELiAgU3Vic2VxdWVudCB0b2MgYW5kIGVudHJ5CisgICAgICAgIDs7IGNhbmRpZGF0
ZSBub2RlIHBvc2l0aW9ucyBjaGFuZ2UgYXMgd2UgdXBkYXRlIGVhY2ggdG9jIHRleHQgc28KKyAg
ICAgICAgOzsgd2UgaGF2ZSB0byByZXRyaWV2ZSB0aGVtIGZyZXNoIGZyb20gdGhlIGVuZCBvZiB0
aGUgbW9zdCByZWNlbnQKKyAgICAgICAgOzsgdG9jLgorICAgICAgICAobGV0ICgodG9jcykKKyAg
ICAgICAgICAgICAgKG51bS10b2NzLXByb2Nlc3NlZCAwKQorICAgICAgICAgICAgICAodG9jKQor
ICAgICAgICAgICAgICAodG9jLWVuZCkKKyAgICAgICAgICAgICAgKHRvYy1zaXplKQorICAgICAg
ICAgICAgICA7OyBUaGVzZSBhcmUgYWRqdXN0ZWQgYnkgdGhlIHNpemUgb2YgaW5zZXJ0ZWQgdGV4
dCBlYWNoIHBhc3MuCisgICAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgICAg
KGVuZC1wb3MgZW5kKQorICAgICAgICAgICAgICAoc291cmNlLWJ1ZmZlciAoY3VycmVudC1idWZm
ZXIpKSkKKyAgICAgICAgICA7OyBGaW5kIGVhY2ggIm1hcmtkb3duLXRzLXRvYyIgaW4gc3VjY2Vz
c2lvbiBzdGFydGluZyBhdCB0aGUgZW5kCisgICAgICAgICAgOzsgb2YgZWFjaCBwcmV2aW91cyBv
bmUgd2UgZmluZCB3aXRoaW4gdGhlIHJlcXVlc3RlZCByZWdpb24uCisgICAgICAgICAgKHdoaWxl
IChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHRv
Y3MgKG1hcmtkb3duLXRzLS10b2NzIGJlZy1wb3MgZW5kLXBvcykpKQorICAgICAgICAgICAgKHNl
dHEgdG9jIChjYXIgdG9jcykpCisgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAwKQorCisgICAg
ICAgICAgICAod2hlbiAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciB0b2MpKQorICAgICAg
ICAgICAgICA7OyBBZnRlciBzYW5pdHkgY2hlY2tpbmcsIHdlIGtub3cgdGhlIHNlY29uZCBlbGVt
ZW50IGlzIGEKKyAgICAgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAgICAgKHNldHEg
dG9jLWVuZCAobnRoIDEgdG9jcykpCisgICAgICAgICAgICAgIChsZXQqICgodG9jLW5vZGUgKGFs
aXN0LWdldCAnbm9kZSB0b2MpKQorICAgICAgICAgICAgICAgICAgICAgKHRvYy12YXJzIChhbGlz
dC1nZXQgJ3ZhcnMgdG9jKSkKKyAgICAgICAgICAgICAgICAgICAgICh0b2MtaWdub3JlIChhbGlz
dC1nZXQgJ2lnbm9yZSB0b2MtdmFycykpKQorICAgICAgICAgICAgICAgICh1bmxlc3MgdG9jLWln
bm9yZQorICAgICAgICAgICAgICAgICAgOzsgQnVpbGQgdGhlIHRvYyBvbmUgY2FuZGlkYXRlIGF0
IGEgdGltZSwgdHJhY2tpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGluZGVudGF0aW9uIGFuZCBj
cmVhdGluZyBsaW5rcyBpZiBuZWVkZWQuCisgICAgICAgICAgICAgICAgICAobGV0KiAoKHRvYy1l
bmQtbm9kZSAoYWxpc3QtZ2V0ICdub2RlIHRvYy1lbmQpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgIChyZWctYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1ub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVnLWVuZCAodHJlZXNpdC1ub2RlLXN0YXJ0IHRvYy1lbmQtbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1oYW5kbGVzIChtYXJrZG93bi10cy0tdG9jLWV4
cGFuZC1jYW5kaWRhdGUtaGFuZGxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG9yIChjZHItc2FmZSAoYXNzcSAnY2FuZGlkYXRlcyB0b2MtdmFycykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRpbmcpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBOb3cgYWRkIGhlYWRpbmdzIHRvIGFsd2F5cyByZXRyaWV2ZSBh
bmQgZGVyaXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbGV2ZWxzIGV2ZW4gaWYgdGhl
eSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgdG9jLgorICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWVkLWhhbmRsZXMgKGNvcHktdHJlZSB0b2MtaGFuZGxlcykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKF8gKGRvbGlzdCAoZWx0IChhbGlzdC1nZXQgJ2hlYWRpbmcgbWFya2Rvd24tdHMtLXRv
Yy1oYW5kbGVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1wdXNobmV3IGVs
dCBzZWVkLWhhbmRsZXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLWZyb20gKG9y
IChjZHItc2FmZSAoYXNzcSAnZnJvbSB0b2MtdmFycykpICdiZWxvdykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRvYy1zdHlsZSAob3IgKGNkci1zYWZlIChhc3NxICdzdHlsZSB0b2MtdmFy
cykpICdpdGVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLW5vLWxpbmsgKGFsaXN0
LWdldCAnbm8tbGluayB0b2MtdmFycykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1p
bmRlbnQgKG1pbiAxMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1heCAwIChvciAoY2RyLXNhZmUgKGFzc3EgJ2luZGVudCB0b2MtdmFycykpIDEpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRvYy1taW4tZGVwdGggKG1heCAxCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtaW4t
ZGVwdGggdG9jLXZhcnMpKSAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1tYXgt
ZGVwdGggKG1heCB0b2MtbWluLWRlcHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtYXgtZGVwdGggdG9jLXZhcnMpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3QtcG9z
aXRpdmUtZml4bnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1k
ZXB0aCAoY2RyLXNhZmUgKGFzc3EgJ3JlbGF0aXZlLWRlcHRoIHRvYy12YXJzKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRvYy1jYW5kaWRhdGVzIChtYXJrZG93bi10cy0tdG9jLWNvbGxl
Y3QtY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9jLW5vZGUgdG9jLWVuZC1ub2RlIHNlZWQtaGFuZGxlcyB0b2MtZnJvbSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1oZWFkaW5nLWRlcHRoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxKyAob3IgKHNlcS1wb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKCJhdHhfaDFfbWFya2VyIiAiYXR4X2gyX21hcmtlciIgImF0eF9oM19t
YXJrZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0eF9oNF9tYXJr
ZXIiICJhdHhfaDVfbWFya2VyIiAiYXR4X2g2X21hcmtlciIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRvYy1ub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhdHhfaGVhZGluZyIgJ2JhY2t3YXJkKSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZXF1YWwpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLTEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2x1Zy10by1w
b3MgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkcykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHBvcy10by1zbHVnCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChodCAobWFrZS1o
YXNoLXRhYmxlIDpzaXplIChoYXNoLXRhYmxlLWNvdW50IHNsdWctdG8tcG9zKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ2VxdWFs
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGhhc2ggKGxhbWJkYSAoayB2KSAo
cHV0aGFzaCB2IGsgaHQpKSBzbHVnLXRvLXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBodCkpKQorCisgICAgICAgICAgICAgICAgICAgICh3aXRoLXdvcmstYnVmZmVyCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydCAiPCEtLSBOT1RFOiBtYXJrZG93bi10cy10b2MgZ2VuZXJh
dGVkIHRleHQgc2VjdGlvbiBtYXkgYmUgb3ZlcndyaXR0ZW4uIC0tPlxuIikKKyAgICAgICAgICAg
ICAgICAgICAgICAobGV0ICgoaGFuZGxlKSAoaGFuZGxlLWNsYXNzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmRlbnQg
MCkgKGxldmVsIDEpIChsZXZlbC1wcmV2IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgSGVhZGluZyBsZXZlbCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaXRlbXMgdW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7OyBpdC4gIElmIHRoZXJlIGFyZSBubyBoZWFkaW5ncywg
aXQgd2lsbCByZW1haW4gMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV2ZWwtaGVh
ZGluZyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBmb3Igbm9uIGhl
YWRpbmdzIHVuZGVyIGhlYWRpbmdzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudW1i
ZXItc3RhY2spKQorCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBDYW5kaWRhdGVzIHNob3Vs
ZCBiZSBpbiBidWZmZXIgb3JkZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChj
YW5kaWRhdGUgdG9jLWNhbmRpZGF0ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg
KChzbHVnLXBvcykgKHRleHQpIChsaW5rLXRhcmdldCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxldmVsLWFkaiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBoYW5kbGUgKGNhciBjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlLWNsYXNzIChhbGlzdC1nZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2Vz
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBub2RlIChjZHIgY2FuZGlkYXRl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBzbHVnLXBvcyBuaWwpCisKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTdHJpcCB0cmFpbGluZyBuZXdsaW5lcy4gIEFk
ZCB0aGVtIGNvbnNpc3RlbnRseSBiZWxvdy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2V0cSB0ZXh0IChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZSBub2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlICduby1w
cm9wZXJ0eSkpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZSBu
b2RlIHR5cGUgbG9naWMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlIGhhbmRs
ZS1jbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdoZWFkaW5nCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHNlcS1wb3NpdGlvbiAnKGgxIGgyIGgz
IGg0IGg1IGg2KSBoYW5kbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZXRxIHNsdWctcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCBub2RlICJh
dHhfaGVhZGluZyIgJ2JhY2t3YXJkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBsZXZlbCAoc2V0cSBsZXZlbC1oZWFkaW5nICgxKyB4KSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgdGV4dCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCdzZXRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoeCAoc2VxLXBvc2l0aW9uICcoc2gxIHNoMikgaGFuZGxlKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbCAoMSsgeCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgbmlsKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKG9yICdpdGVtICdudW1iZXJlZC1pdGVtKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXRxIGxldmVsIGxldmVsLWhlYWRpbmcpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtYWRqIChtYXJrZG93bi10cy0tdG9jLWxp
c3QtaXRlbS1kZXB0aCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBpbmRlbnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCdjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5oZXJp
dCB0aGUgYW1iaWVudCBsZXZlbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBsZXZlbC1hZGogMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBpbmRl
bnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDs7IEZpbHRlciBkZXNpcmVkIGhhbmRsZXMgYW5kIGxldmVscy4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiAoYW5kIChtZW1xIGhhbmRsZSB0b2MtaGFuZGxlcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSBsZXZlbCAoKyB0b2MtbWluLWRl
cHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIHRvYy1yZWxhdGl2ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b2MtcmVsYXRpdmUtaGVhZGluZy1kZXB0aCAwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gbGV2ZWwgKCsgdG9jLW1h
eC1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpZiB0b2MtcmVsYXRpdmUtZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9jLXJlbGF0aXZlLWhlYWRpbmctZGVwdGggMCkp
KSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgQ3JlYXRlIHRoZSBlbnRyeSB3
aXRoIGluZGVudCwgaXRlbS9udW1iZXIgcHJlZml4LCBsaW5rLgorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBDb3JuZXIgY2FzZTogaW5pdGlhbCBsZXZlbCBoaWdoZXIgdGhhbiAx
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPiBsZXZlbCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgbGV2ZWwtcHJldiAw
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwgMSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChub3QgdG9jLW5vLWxpbmspIGxp
bmstdGFyZ2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTYW5pdGl6ZSB0
aGUgaWQgdG8gY29uZm9ybSB0byBDU1MgaWRlbnQgc3ludGF4LgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2V0cSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChmb3JtYXQgIlslc10oIyVzKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGlmLWxldCogKChzbHVnIChnZXRoYXNoIHNsdWctcG9zIHBvcy10by1zbHVn
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs
dWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5j
YWxsIG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLXRhcmdldCkpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyAoKiAoMS0gKG1h
eCBpbmRlbnQgMSkpIHRvYy1pbmRlbnQpID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBjYXNlIHRvYy1zdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgnaXRlbSAiLSAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgnYnVsbGV0ICIqICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChvciAnbnVtYmVyICdudW1iZXIuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgobGV2ZWwgKCsgbGV2ZWwgbGV2ZWwtYWRqKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChvciAobm90IG51
bWJlci1zdGFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGxldmVsIChjYWFyIG51bWJlci1zdGFjaykpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBgKCxsZXZlbCAuIDApIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChhbmQgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKDwgbGV2ZWwgKGNhYXIgbnVtYmVyLXN0YWNrKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGlsZSAo
YW5kIG51bWJlci1zdGFjaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoPCBsZXZlbCAoY2FhciBudW1iZXItc3RhY2spKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9wIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh1bmxlc3MgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggYCgsbGV2ZWwgLiAwKSBudW1iZXItc3RhY2sp
KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0Y2RyIChj
YXIgbnVtYmVyLXN0YWNrKSAoMSsgKGNkYXIgbnVtYmVyLXN0YWNrKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChzKSAobiAobGVuZ3RoIG51bWJlci1z
dGFjaykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEt
bWFwLWluZGV4ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoZWx0IGlkeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChmb3JtYXQgIiVkIiAoY2RyIGVsdCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgKDErIGlkeCkgbikg
IiIgIi4iKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmV2ZXJzZSBudW1iZXItc3RhY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb25jYXQgcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRvYy1zdHlsZSAnbnVtYmVyLikgIi4iKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgIikpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfICIiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGQgYSBoYXJkIGxpbmUgYnJlYWsuICBCYWNrc2xhc2gKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc2VlbXMgbGVzcyB3ZWxsIHN1cHBv
cnRlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByZW5kZXJl
cnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAy
ID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtcHJldiBsZXZlbCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAoYnVmZmVyLXNpemUpKQorICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJjZS1idWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIHJlZy1iZWcg
cmVnLWVuZCB0ZW1wLWJ1ZmZlcikpKSkpCisgICAgICAgICAgICAgICAgICAoc2V0cSBudW0tdG9j
cy1wcm9jZXNzZWQgKDErIG51bS10b2NzLXByb2Nlc3NlZCkpKSkpCisgICAgICAgICAgICA7OyBT
dGFydCB0aGUgbmV4dCBwYXNzIGFmdGVyIHRoaXMgdG9jLWVuZC4gIEFkanVzdCBmb3IgdGhlCisg
ICAgICAgICAgICA7OyBpbnNlcnRlZCB0ZXh0IHNpemUuCisgICAgICAgICAgICAoc2V0cSBiZWct
cG9zICgrIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKSB0b2Mtc2l6ZSkpCisgICAgICAgICAgICAo
c2V0cSBlbmQtcG9zIChtaW4gKHBvaW50LW1heCkgKCsgZW5kLXBvcyB0b2Mtc2l6ZSkpKSkKKyAg
ICAgICAgICAod2hlbiAoYW5kIChlcSBudW0tdG9jcy1wcm9jZXNzZWQgMCkKKyAgICAgICAgICAg
ICAgICAgICAgIChlcSAnbm8tYWN0aXZlLXRhYmxlcyBtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUt
d2Fybi1pZi1ub25lKSkKKyAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVy
YXRlCisgICAgICAgICAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAiTm8g
dGFibGVzIG9mIGNvbnRlbnRzIGdlbmVyYXRlZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAg
KGJ1ZmZlci1uYW1lIChjdXJyZW50LWJ1ZmZlcikpKSkpKSkpKQorCisocHJvdmlkZSAnbWFya2Rv
d24tdHMtbW9kZS14KQorOzs7IG1hcmtkb3duLXRzLW1vZGUteC5lbCBlbmRzIGhlcmUKZGlmZiAt
LWdpdCBhL2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUuZWwgYi9saXNwL3RleHRtb2Rl
cy9tYXJrZG93bi10cy1tb2RlLmVsCmluZGV4IDY1N2Q2YmM0NjZkLi4wNWYwMTZhYjM3NyAxMDA2
NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbAorKysgYi9saXNwL3Rl
eHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCkBAIC0xLDExICsxLDE0IEBACi07OzsgbWFya2Rv
d24tdHMtbW9kZS5lbCAtLS0gdHJlZSBzaXR0ZXIgc3VwcG9ydCBmb3IgTWFya2Rvd24gIC0qLSBs
ZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwgLS0tIHRyZWUg
c2l0dGVyIHN1cHBvcnQgZm9yIE1hcmtkb3duIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQog
CiA7OyBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KIAotOzsgQXV0aG9yICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRv
QGdtYWlsLmNvbT4KLTs7IE1haW50YWluZXIgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwu
anVsaWF0b0BnbWFpbC5jb20+Ci07OyBDcmVhdGVkICAgIDogQXByaWwgMjAyNAotOzsgS2V5d29y
ZHMgICA6IG1hcmtkb3duIG1kIGxhbmd1YWdlcyB0cmVlLXNpdHRlcgorOzsgQXV0aG9yICAgICAg
ICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KKzs7
ICAgICAgICAgICAgICAgICAgOiBTdMOpcGhhbmUgTWFya3MgPHNoaXBtaW50c0BnbWFpbC5jb20+
Cis7OyBNYWludGFpbmVyICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlh
dG9AZ21haWwuY29tPgorOzsgQ3JlYXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNp
b24gICAgICAgICAgOiAxLjAKKzs7IFBhY2thZ2UtUmVxdWlyZXMgOiAoKGVtYWNzICIzMS4xIikp
Cis7OyBLZXl3b3JkcyAgICAgICAgIDogbWFya2Rvd24gbWQgdGV4dCBlZGl0IGxhbmd1YWdlcyB0
cmVlLXNpdHRlcgogCiA7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTIy
LDEzOCArMjUsNzYxIEBACiA7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJ
ZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi07OzsgVHJlZS1z
aXR0ZXIgbGFuZ3VhZ2UgdmVyc2lvbnMKKzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IFRyZWUtc2l0
dGVyIExhbmd1YWdlIFZlcnNpb25zCiA7OwogOzsgbWFya2Rvd24tdHMtbW9kZSBoYXMgYmVlbiB0
ZXN0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGdyYW1tYXJzIGFuZCB2ZXJzaW9uOgogOzsgLSB0cmVl
LXNpdHRlci1tYXJrZG93bjogdjAuNC4xCiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGlu
ZTogdjAuNC4xCiA7OwotOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHRpbiBtb2RlcyB3
b3JrIHdpdGggbGF0ZXN0IGdyYW1tYXIKLTs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdy
YW1tYXIgaGFzIGEgZ29vZCBjaGFuY2UgdG8gd29yayB0b28uCi07OyBTZW5kIHVzIGEgYnVnIHJl
cG9ydCBpZiBpdCBkb2Vzbid0LgotCi07OzsgQ29tbWVudGFyeToKKzs7IFdlIHRyeSBvdXIgYmVz
dCB0byBtYWtlIGJ1aWx0LWluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1hcgorOzsgdmVy
c2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5jZSB0byB3b3Jr
LiAgU2VuZAorOzsgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCis7OworOzsgQmlkaXJl
Y3Rpb25hbCBUZXh0IENvbnNpZGVyYXRpb25zCis7OworOzsgVGV4dCB3aXRoIG1hcmt1cCBtYXkg
bmVlZCBhbiBleHRyYSBuZXdsaW5lIGJlZm9yZSBiaWRpcmVjdGlvbmFsIHRleHQKKzs7IGZvciBp
dCB0byBzaG93IGNvcnJlY3RseS4gIFRoaXMgaXMgYSBsaW1pdGF0aW9uIGluIHRoZSBFbWFjcyBk
aXNwbGF5Cis7OyBlbmdpbmUuCis7OworOzsgQ29kZSBCbG9jayBMYW5ndWFnZSBNb2RlIENvbnNp
ZGVyYXRpb25zCis7OworOzsgRmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMgYXJlIGRl
cml2ZWQgZnJvbSB0aGUgdGFibGUKKzs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJyBh
bmQgaGV1cmlzdGljcyBhZGRpbmcgIi10cy1tb2RlIiBhbmQKKzs7ICItbW9kZSIgdG8gdGhlIGxh
bmd1YWdlIG5hbWUuICBJZiB5b3VyIGxhbmd1YWdlJ3MgbW9kZSBpcyBub3QKKzs7IHByb3Blcmx5
IHJlY29nbml6ZWQsIGFkZCBpdCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycsIHdo
aWNoCis7OyBzZWUuCis7OworOzsgRWFjaCBsYW5ndWFnZSdzIG1ham9yIG1vZGUgaXMgZW5hYmxl
ZCBvbmNlIHBlciBgbWFya2Rvd24tdHMtbW9kZScKKzs7IGJ1ZmZlciBpbiBhIHRlbXBvcmFyeSBi
dWZmZXIgdG8gZXh0cmFjdCBpdHMgZGVmYXVsdCBmb250LWxvY2sgYW5kCis7OyB0cmVlLXNpdHRl
ciBzZXR0aW5ncy4gIEluIGNvbnZlbnRpb25hbCBub24tdHJlZXNpdCBjb2RlIGJsb2NrcywgdGhl
Cis7OyBtYWpvciBtb2RlIGlzIGVuYWJsZWQgZWFjaCB0aW1lIHRoZSBibG9jayBpcyBmb250aWZp
ZWQuCis7OworOzsgTk9URTogTWFqb3IgbW9kZSBob29rcyBhcmUgbm90IHJ1biBhbmQgZm9udC1s
b2NrLCB0cmVlc2l0LCBpbmRlbnQsCis7OyBjb21tZW50IHJlY29nbml0aW9uLCBldGMuIGN1c3Rv
bWl6YXRpb25zIHRoYXQgeW91IG1pZ2h0IGhhdmUgaW4geW91cgorOzsgaG9va3MgYXJlIG5vdCBh
cHBsaWVkLiAgQXMgYSByZXN1bHQsIHlvdXIgY29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBk
aWZmZXJlbnQgaW4gYG1hcmtkb3duLXRzLW1vZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbWFqb3Ig
bW9kZQorOzsgYnVmZmVycy4gIE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBl
YWNoIG1vZGUgaG9vayBhbmQKKzs7IGF2b2lkcyBwb3RlbnRpYWwgcmVjdXJzaXZlIHRyZWVzaXQg
Y2FsbGJhY2sgaXNzdWVzLgorOzsKKzs7OzsgQ29kZSBCbG9jayBDb21tYW5kcworOzsKKzs7IFNv
bWUgY29tbW9uIGNvbW1hbmRzIHdpbGwgb3BlcmF0ZSB3aXRoaW4gYSBjb2RlIGJsb2NrIGFuZCBp
biBpdHMKKzs7IG1vZGUuICBUaGVzZSBvcGVyYXRlIGluIGFuIGluZGlyZWN0IGJ1ZmZlciBhbmQg
c29tZSBjb21tYW5kcyBtYXkKKzs7IG9wZXJhdGUgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdG8gdGhl
IHNhbWUgY29tbWFuZHMgaW52b2tlZCBpbiBhIG5hdGl2ZQorOzsgbW9kZSBidWZmZXIuICBgaW5k
ZW50LWZvci10YWItY29tbWFuZCcgbWF5IGludm9rZQorOzsgYGNvbXBsZXRpb24tYXQtcG9pbnQn
IHVuZGVyIHRoZSBjb3ZlcnMgYW5kIG1heSByZXR1cm4gcmVzdWx0cyBmcm9tCis7OyB0aGUgc3Vy
cm91bmRpbmcgTWFya2Rvd24gYnVmZmVyIGluc3RlYWQgb2YgdGhlIGNvZGUgYmxvY2sncyBjb250
ZXh0LgorOzsgWW91IGNhbiBpbnZva2UgYGNvbXBsZXRpb24tYXQtcG9pbnQnIGRpcmVjdGx5IGJ5
IHVzaW5nIGl0cyBrZXkKKzs7IGJpbmRpbmcsIGBDLU0taWAuCis7OworOzs7OyBQaXBlIFRhYmxl
cworOzsKKzs7IFRoZXNlIGFyZSBhIEdpdEh1YiBGbGF2b3JlZCBNYXJrZG93biAoR0ZNKSBleHRl
bnNpb24gYW5kIGFyZSBhIGRlCis7OyBmYWN0byBzdGFuZGFyZCBnaXZlbiB0aGVpciBwb3B1bGFy
aXR5IGFuZCBpbXBsZW1lbnRhdGlvbnMgYWNyb3NzCis7OyBwcm9kdWN0cy4gIFRoZXkgbWlnaHQg
YXMgd2VsbCBiZSBmb2xkZWQgaW50byB0aGUgQ29tbW9uTWFyayBzdGFuZGFyZC4KKzs7Cis7OyBB
IHBpcGUgdGFibGUgaXMgYSByZWN0YW5nbGUgb2YgdGV4dCBzdXJyb3VuZGVkIHRvIHRoZSBlYXN0
IGFuZCB3ZXN0Cis7OyBieSBwaXBlIHN5bWJvbHMgYW5kIHdoZXJlIHBpcGVzIHNlcGFyYXRlIGNv
bHVtbnMuICBJdCBoYXMgYSBoZWFkZXIKKzs7IHJvdyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBo
ZWFkZXIgYWxpZ25tZW50IHJvdywgYm90aCBvZiB3aGljaCBtdXN0Cis7OyBjb250YWluIHRoZSBz
YW1lIG51bWJlciBvZiBjZWxscy4gIEJvZHkgcm93cyBhcmUgb3B0aW9uYWwuICBBIHRhYmxlCis7
OyBlbmRzIHdpdGggYSBibGFuayBsaW5lIG9yIGF0IHRoZSBzdGFydCBvZiBhIG5ldyBNYXJrZG93
biBibG9jaworOzsgZWxlbWVudC4KKzs7Cis7OyBUaGUgaGVhZGVyIGFsaWdubWVudCByb3cgY29s
dW1uIG11c3QgaGF2ZSBhIG1pbmltdW0gb2YgdGhyZWUgaHlwaGVucworOzsgd2hpY2ggaW5kaWNh
dGVzIGRlZmF1bHQgYWxpZ25tZW50IChpLmUuLCB3aGF0ZXZlciBhIHJlbmRlcmVyCis7OyBjaG9v
c2VzKS4gIFRvIGluZGljYXRlIGxlZnQgYWxpZ25tZW50LCBwcmVmaXggdGhlIGh5cGhlbiBzdHJp
bmcgd2l0aAorOzsgYSBjb2xvbiBsaWtlIHRoaXMgOi0tLS4gIEZvciBjZW50ZXIgYWxpZ25tZW50
LCBwcmVmaXggYW5kIHN1ZmZpeCB3aXRoCis7OyBjb2xvbnMgbGlrZSB0aGlzIDotLS06LiAgRm9y
IHJpZ2h0IGFsaWdubWVudCwgc3VmZml4IHdpdGggYSBjb2xvbgorOzsgbGlrZSB0aGlzIC0tLTou
Cis7OworOzsgRWFjaCB0YWJsZSBoZWFkZXIgb3IgYm9keSBjZWxsIGNhbiBjb250YWluIHRoZSB1
c3VhbCBNYXJrZG93biBpbmxpbmUKKzs7IHN0eWxlIGluZGljYXRvcnMuICBBIGNlbGwgY2Fubm90
IGNvbnRhaW4gYSBibG9jayBlbGVtZW50IHN1Y2ggYXMgYQorOzsgaGVhZGluZ3MsIHRoZW1hdGlj
IGJyZWFrcywgYmxvY2sgcXVvdGVzLCBmZW5jZWQgY29kZSBibG9ja3MuCis7OworOzsgVGFibGUg
Y2VsbHMgZG8gbm90IG5lZWQgdG8gYWxpZ24gdmlzdWFsbHk7IGkuZS4sIHRoZSBwaXBlIHN5bWJv
bHMgZG8KKzs7IG5vdCBuZWVkIHRvIGxpbmUgdXAgdmVydGljYWxseS4gIFRoZSB0cmVlLXNpdHRl
ciBwYXJzZXIgYW5kIHJlbmRlcmVycworOzsgZGV0ZWN0IGNlbGwgYm91bmRhcmllcyB1c2luZyBw
aXBlIHN5bWJvbHMsIG5vdCB0aGVpciByZWxhdGl2ZSBhbGlnbm1lbnQuCis7OworOzsgSWYgeW91
IHdhbnQgdG8gaW5jbHVkZSB3aGF0IGxvb2tzIGxpa2UgY29kZSwgeW91IGNhbiB1c2UgYmFja3Rp
Y2tzIHRvCis7OyB3cmFwIHN1Y2ggdGV4dCBhbGEgYHRoaXMgaXMgY29kZWAuICBUaGlzIG1vZGUg
d2lsbCBub3QgZm9udGlmeSBzdWNoCis7OyBjb2RlLgorOzsKKzs7IElmIHlvdSB3YW50IHRvIGlu
Y2x1ZGUgYSBwaXBlIHN5bWJvbCBpbiBhIGNlbGwsIGVzY2FwZSBpdCB0aHVzbHkgXHwuCis7Owor
OzsgVGVjaG5pY2FsbHksIGJvZHkgcm93cyBkbyBub3QgbmVlZCB0byBjb250YWluIHRoZSBzYW1l
IG51bWJlciBvZgorOzsgY2VsbHMgYXMgdGhlIGhlYWRlciBoYXMgY29sdW1ucyBhbmQgcm93cyBk
byBub3QgbmVlZCB0byBzaGFyZSB0aGUKKzs7IHNhbWUgbnVtYmVyIG9mIGNlbGxzIGFtb25nIHRo
ZW1zZWx2ZXMuICBOb3RlOiBNYW55IHJlbmRlcmVycyBnZXQKKzs7IGNvbmZ1c2VkIGlmIHRoZSB0
YWJsZSBpcyAicmFnZ2VkIiB3aXRoIGFuIHVuZXZlbiBudW1iZXIgb2YgY29sdW1ucworOzsgYW1v
bmcgcm93cy4gIFNvbWUgcmVuZGVyZXJzIHdpbGwgaW5zZXJ0IGVtcHR5IGNlbGxzIG9uIGEgcm93
IHRoYXQKKzs7IGNvbnRhaW5zIGZld2VyIGNlbGxzIHRoYW4gdGhlIGhlYWRlciBoYXMgY29sdW1u
cy4gIFNvbWUgZWxpZGUgY2VsbHMKKzs7IHRoYXQgZXhjZWVkIHRoZSBudW1iZXIgb2YgY29sdW1u
cyBpbiB0aGUgaGVhZGVyLgorOzsKKzs7OzsgUGlwZSBUYWJsZSBSZWNvbW1lbmRhdGlvbnMKKzs7
Cis7OyAtIEFsd2F5cyB1c2UgcGlwZSBzeW1ib2xzIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIGVh
Y2ggdGFibGUgbGluZS4KKzs7IC0gVXNlIGEgdW5pZm9ybSBudW1iZXIgb2YgY29sdW1ucyBzcGFu
bmluZyB0aGUgdGFibGUuCis7OyAtIElmIHlvdSBkZXRlY3QgYSBwYXJzaW5nIGVycm9yIHdoaWNo
IHByZXNlbnRzIGFzIGRpZmZlcmVudAorOzsgICBmb250aWZpY2F0aW9uIGFuZCB3aGljaCBpcyBv
ZnRlbiBjYXVzZWQgYnkgYW4gZW1wdHkgZmlyc3QgY2VsbCBvbiB0aGUKKzs7ICAgZmluYWwgcm93
LCB0cnkgcHV0dGluZyBzb21lIGNoYXJhY3RlcnMgaW4gdGhhdCBjZWxsLgorOzsgLSBSZW5kZXJl
cnMgb2Z0ZW4gZXhjbHVkZSBjZXJ0YWluIGVtcHR5IGNlbGxzIHN1Y2ggYXMgYW4gImVtcHR5IiBm
aW5hbAorOzsgICBjZWxsIGluIGEgdGFibGUuICBGb2xsb3cgdGhlIG5leHQgaXRlbSB0byBhdm9p
ZCB0aGlzLgorOzsgLSBJZiB5b3UgbmVlZCB0aGF0IGNlbGwgdG8gYXBwZWFyIGJsYW5rIGFuZCBh
cmUgY29udmVydGluZyB0byBIVE1MLAorOzsgICB0cnkgdXNpbmcgYSBub24tcHJpbnRpbmcgSFRN
TCBlbnRpdHksIHN1Y2ggYXMgYSBub24tYnJlYWtpbmcgc3BhY2UKKzs7ICAgIiZuYnNwOyIsIHdo
aWNoIHBhcnNlIGFzIGNvbmNyZXRlIGNoYXJhY3RlcnMgeWV0IHJlbmRlciBhcyBibGFuay4KKzs7
IC0gSFRNTCBjb21tZW50cyA8IS0tIC0tPiBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm9uLWJsYW5r
IGNoYXJhY3RlcgorOzsgICBzdHJpbmcgdGhhdCBkb2VzIG5vdCBnZXQgcmVuZGVyZWQuICBUaGVz
ZSBhcmUgY29uc2lkZXJlZCBjZWxsIHRleHQKKzs7ICAgYW5kIHdoZW4gcGxhY2VkIGF0IHRoZSBl
bmQgb2YgYSByb3csIHRoYXQgcm93J3MgbnVtYmVyIG9mIGNvbHVtbnMgaXMKKzs7ICAgaW5jcmVh
c2VkIGFuZCBtaWdodCBleGNlZWQgdGhlIG51bWJlciBvZiBoZWFkZXIgY29sdW1ucy4KKzs7IC0g
VGhlcmUgYXJlIHRyZWUtc2l0dGVyIHBhcnNlciBxdWlya3MuICBDb21tYW5kcyBzdWNoIGFzCis7
OyAgIGBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uJyBhbmQgYG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtY29sdW1uJworOzsgICBmb2xsb3cgdGhlIHBhcnNlciB0cmVlIGFuZCBjYW4gbGVh
ZCB0byB1bmV4cGVjdGVkIHJlc3VsdHMgc28gZm9sbG93Cis7OyAgIHRoZXNlIHJlY29tbWVuZGF0
aW9ucyBhbmQgdGFibGUgb3BlcmF0aW9ucyBzaG91bGQgYmUgYXMgZXhwZWN0ZWQuCis7OworOzs7
OyBUcmVlIFNpdHRlciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0
aGUgdW5kZXJseWluZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0
IGl0cyBidWlsZCB0aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0
YWxsZWQuICBUaGVyZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVs
eSBhZmZlY3QKKzs7IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQg
YXMgdGhlc2UgYnVncyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBU
aGUgTWFya2Rvd24gZ3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBj
aGlsZHJlbgorOzsgICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGgg
dGhlIGluc3BlY3RvciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0
cyBjb2RlIGJsb2NrcyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0
eXBlIDQgKGA8IScgZm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAg
YDwhRE9DVFlQRSBodG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNl
cXVlbnQKKzs7ICAgY29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBh
cyBhIHdvcmthcm91bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVy
LWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3Vw
ZXJzY3JpcHQgKGBedGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5v
dAorOzsgICBzdXBwb3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZs
YWcgZXhpc3RzIGZvcgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24g
RXh0cmEgc3ludGF4LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRl
cmVkIChudW1iZXJlZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRp
bmcKKzs7ICAgYSBgMS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3Qg
cHJvZHVjZSBhIG5lc3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0
cyBpdCBhcyBhIGZsYXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVu
dCBpdGVtJ3MgcGFyYWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRl
cmVkIChgLScsIGAqJywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9w
cm9tb3RlIG9mIG9yZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQu
Cis7OworOzsgLSBSZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1i
ZXItbGlzdCcpIG1heSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJk
IGlmIHRoZSBwYXJzZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBg
bGlzdCcgbm9kZXMsIG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBz
ZXBhcmF0ZSBsaXN0cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7
OworOzsgLSBFbXB0eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1h
eSBiZSBjbGFpbWVkIGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9m
IHRoYXQgYmxvY2ssIHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2Vw
YXJhdG9ycy4KIDs7Cis7OyAtIFBpcGUgdGFibGVzIGFyZSBpbmNvbnNpc3RlbnRseSBwYXJzZWQu
ICBXaGl0ZXNwYWNlIGlzIGNvcnJlY3RseQorOzsgICB0cmltbWVkIGF0IHRoZSBzdGFydCBvZiBh
IGNlbGwgY29udGVudCBidXQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcworOzsgICBpbmNvcnJlY3Rs
eSBpbmNsdWRlZC4gIEVtcHR5IGNlbGxzIGNhbiBjb250YWluIHVuZXZlbiAicmFnZ2VkIiByb3cK
Kzs7ICAgY29sdW1uIGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGNvbmZ1c2UgdGhlIHBhcnNlci4K
Kzs7Cis7OyAgIE1hcmtkb3duIHBpcGUgdGFibGVzIHdpdGggcGFyc2luZyBpc3N1ZXM6Cis7Owor
OzsgICB8Q29sdW1uIDF8Q29sdW1uIDJ8Q29sdW1uIDN8Cis7OyAgIHwtLS0tLS0tLXwtLS0tLS0t
LXwtLS0tLS0tLXwKKzs7ICAgfCAgICAgICAgfCAgICAgICAgfCAgICAgICAgfAorOzsgICB8ICAg
ICAgICB8ICAgICAgICB8ICAgICAgICB8IDwtLSBwYXJzZSBlcnJvcgorOzsKKzs7ICAgfENvbHVt
biAxfENvbHVtbiAyfENvbHVtbiAzfAorOzsgICB8LS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS18
Cis7OyAgIHwgICAgICAgIHwgICAgICAgIHwgICAgICAgIHwKKzs7ICAgfCB4eHggICAgfCAgICAg
ICAgfCAgICAgICAgfCA8LS0gcGFyc2VkIGNvcnJlY3RseQorOzsKKzs7ICAgfENvbHVtbiAxfENv
bHVtbiAyfCA8LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgfC0tLS0tLS0tfC0tLS0tLS0tfCA8
LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgICAgICAgICAgfCAgICAgICAgfCA8LS0gMSBjb2x1
bW4gaW5jb3JyZWN0Cis7OyAgICAgICAgICAgIHwgICAgICAgIHwgPC0tIHBhcnNlIGVycm9yCis7
OyAgIHwgICAgICAgIHwgICAgICAgIHwgPC0tIG5vdCBhIHJvdyBhZnRlciB0aGUgZXJyb3IsIGFi
b3ZlCis7OworOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFy
cy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjQxPgorOzsgICAgICAgPGh0dHBzOi8vZ2l0
aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMv
MjQyPgorOzsKKzs7IC0gVGhlIGdyYW1tYXIncyBleHRlcm5hbCBzY2FubmVyIGhhcyBhIGJ1ZmZl
ciBvdmVyZmxvdyBpbiBpdHMKKzs7ICAgYHNlcmlhbGl6ZScgZnVuY3Rpb246IHdoZW4gdGhlIHBh
cnNlciBzdGF0ZSBleGNlZWRzIHRoZQorOzsgICBzZXJpYWxpemF0aW9uIGJ1ZmZlciBwcm92aWRl
ZCBieSB0cmVlLXNpdHRlciwgYG1lbWNweScgd3JpdGVzIHBhc3QKKzs7ICAgdGhlIGVuZCBhbmQg
Y2FuIGNvcnJ1cHQgdGhlIHN0YWNrLiAgVHJpZ2dlcmVkIGluIHByYWN0aWNlIHdoaWxlCis7OyAg
IHBhcnNpbmcgTWFya2Rvd24gaW4gRW1hY3MuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29t
L3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yNDM+Lgor
OzsKKzs7OzsgQmF0Y2ggRm9udGlmaWNhdGlvbgorOzsKKzs7IFNvbWUgZG93bnN0cmVhbSBwYWNr
YWdlcyBmb250aWZ5IG11bHRpcGxlIHVucmVsYXRlZCBNYXJrZG93bgorOzsgZnJhZ21lbnRzIGJ5
IGpvaW5pbmcgdGhlbSBpbiBhIHNpbmdsZSBidWZmZXIgd2l0aCBhIHNlcGFyYXRvciBhbmQKKzs7
IHJ1bm5pbmcgYG1hcmtkb3duLXRzLW1vZGUnIG92ZXIgdGhlIHdob2xlIHRoaW5nLiAgQ2hvaWNl
IG9mIHNlcGFyYXRvcgorOzsgbWF0dGVyczogdGhlIHRyZWUtc2l0dGVyLW1hcmtkb3duIGdyYW1t
YXIgZG9lcyBub3QgbGlzdCB0aGUgTlVMIGJ5dGUKKzs7IChgXDAnKSBhcyBleHRyYS93aGl0ZXNw
YWNlLCBzbyBhIE5VTCBzZXBhcmF0b3IgeWllbGRzIGFuIEVSUk9SIG5vZGUKKzs7IGFuZCB0aGUg
cGFyc2VyIGVudGVycyBlcnJvciByZWNvdmVyeSwgd2hpY2ggY2FuIGxlYWsgaW5saW5lIGZhY2Vz
Cis7OyAoZS5nLiwgc3RyaWtldGhyb3VnaCkgYWNyb3NzIGZyYWdtZW50IGJvdW5kYXJpZXMuICBS
ZWdleC1iYXNlZCBtb2RlcworOzsgdG9sZXJhdGUgTlVMIHNpbGVudGx5IGJlY2F1c2UgdGhleSBk
byBub3QgcGFyc2Ugc3RydWN0dXJlOyB0aGlzIGlzIGEKKzs7IGJlaGF2aW9yYWwgZGlmZmVyZW5j
ZSwgbm90IGEgcmVncmVzc2lvbi4KKzs7Cis7OyBBIGZvcm0gZmVlZCAoYF5MJywgYFxmJykgZmxh
bmtlZCBieSBibGFuayBsaW5lcyB3b3JrcyBhcyBhIGNsZWFuCis7OyBkcm9wLWluIHNlcGFyYXRv
cjogdGhlIHBhcnNlciB0cmVhdHMgaXQgYXMgYSBwYXJhZ3JhcGggYnJlYWsgYW5kCis7OyBpbmxp
bmUgc3RhdGUgZG9lcyBub3QgYmxlZWQgYWNyb3NzIGZyYWdtZW50cy4KIAogOzs7IENvZGU6CiAK
IChyZXF1aXJlICd0cmVlc2l0KQogKHJlcXVpcmUgJ3N1YnIteCkKLShyZXF1aXJlICdvdXRsaW5l
KQogKHJlcXVpcmUgJ3NlcSkKKyhyZXF1aXJlICdvdXRsaW5lKQorKHJlcXVpcmUgJ2dvdG8tYWRk
cikKKyhyZXF1aXJlICd4cmVmKQorKHJlcXVpcmUgJ2ljb25zKQogCi0odHJlZXNpdC1kZWNsYXJl
LXVuYXZhaWxhYmxlLWZ1bmN0aW9ucykKKzs7OyBDdXN0b21pemF0aW9uczoKIAotKGFkZC10by1s
aXN0Ci0gJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0Ci0gJyhtYXJrZG93bgotICAgImh0
dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93
biIKLSAgIDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4YWE3Mjc3Zjki
Ci0gICA6c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFya2Rvd24vc3JjIikKLSB0KQotKGFkZC10
by1saXN0Ci0gJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0Ci0gJyhtYXJrZG93bi1pbmxp
bmUKLSAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0
ZXItbWFya2Rvd24iCi0gICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0
OGFhNzI3N2Y5IgotICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9z
cmMiKQotIHQpCi0KLTs7OyBIZWxwZXIgZnVuY3Rpb25zCi0KLShkZWZ2YXIgbWFya2Rvd24tdHMt
LWNvZGUtYmxvY2stbGFuZ3VhZ2UtbWFwCi0gICcoKCJjKysiIC4gY3BwKQotICAgICgiYyMiIC4g
Yy1zaGFycCkKLSAgICAoInNoIiAuIGJhc2gpKQotICAiQWxpc3QgbWFwcGluZyBjb2RlIGJsb2Nr
IGxhbmd1YWdlIG5hbWVzIHRvIHRyZWUtc2l0dGVyIGxhbmd1YWdlcy4KLQotS2V5cyBzaG91bGQg
YmUgc3RyaW5ncywgYW5kIHZhbHVlcyBzaG91bGQgYmUgbGFuZ3VhZ2Ugc3ltYm9scy4KLQotRm9y
IGV4YW1wbGUsIFwiYysrXCIgaW4KLQotICAgIGBgYGMrKwotICAgIGludCBtYWluKCkgewotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgYGBgCi0KLW1hcHMgdG8gdHJlZS1zaXR0ZXIgbGFu
Z3VhZ2UgYGNwcCcuIikKLQotKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXNvdXJjZS1t
b2RlLW1hcAotICAnKChiYXNoIC4gYmFzaC10cy1tb2RlKQotICAgIChjIC4gYy10cy1tb2RlKQot
ICAgIChjLXNoYXJwIC4gY3NoYXJwLXRzLW1vZGUpCi0gICAgKGNtYWtlIC4gY21ha2UtdHMtbW9k
ZSkKLSAgICAoY3BwIC4gYysrLXRzLW1vZGUpCi0gICAgKGNzcyAuIGNzcy10cy1tb2RlKQotICAg
IChkb2NrZXJmaWxlIC4gZG9ja2VyZmlsZS10cy1tb2RlKQotICAgIChlbGl4aXIgLiBlbGl4aXIt
dHMtbW9kZSkKLSAgICAoZ28gLiBnby10cy1tb2RlKQotICAgIChnb21vZCAuIGdvLW1vZC10cy1t
b2RlKQotICAgIChnb3dvcmsgLiBnby13b3JrLXRzLW1vZGUpCi0gICAgKGhlZXggLiBoZWV4LXRz
LW1vZGUpCi0gICAgKGh0bWwgLiBodG1sLXRzLW1vZGUpCi0gICAgKGphdmEgLiBqYXZhLXRzLW1v
ZGUpCi0gICAgKGphdmFzY3JpcHQgLiBqcy10cy1tb2RlKQotICAgIChqc29uIC4ganNvbi10cy1t
b2RlKQotICAgIChsdWEgLiBsdWEtdHMtbW9kZSkKLSAgICAocGhwIC4gcGhwLXRzLW1vZGUpCi0g
ICAgKHB5dGhvbiAuIHB5dGhvbi10cy1tb2RlKQotICAgIChydWJ5IC4gcnVieS10cy1tb2RlKQot
ICAgIChydXN0IC4gcnVzdC10cy1tb2RlKQotICAgICh0b21sIC4gdG9tbC10cy1tb2RlKQotICAg
ICh0c3ggLiB0c3gtdHMtbW9kZSkKLSAgICAodHlwZXNjcmlwdCAuIHR5cGVzY3JpcHQtdHMtbW9k
ZSkKLSAgICAoeWFtbCAuIHlhbWwtdHMtbW9kZSkpCi0gICJBbiBhbGlzdCBvZiBzdXBwb3J0ZWQg
Y29kZSBibG9jayBsYW5ndWFnZXMgYW5kIHRoZWlyIG1ham9yIG1vZGUuIikKKyhkZWZncm91cCBt
YXJrZG93bi10cyBuaWwKKyAgIk1ham9yIG1vZGUgZm9yIHZpZXdpbmcgYW5kIGVkaXRpbmcgTWFy
a2Rvd24gYnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLSIKKyAgOmdyb3VwICd0ZXh0
CisgIDpncm91cCAnZWRpdGluZworICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZjdXN0b20gbWFy
a2Rvd24tdHMtaGlkZS1tYXJrdXAgbmlsCiAgICJOb24tbmlsIG1lYW5zIGhpZGUgTWFya2Rvd24g
bWFya3VwIGRlbGltaXRlcnMgaW4gdGhpcyBidWZmZXIuIgogICA6dHlwZSAnYm9vbGVhbgorICA6
bG9jYWwgdAogICA6c2FmZSAjJ2Jvb2xlYW5wCi0gIDpncm91cCAnbWFya2Rvd24tdHMpCisgIDp2
ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQogCi07OzsgRmFjZXMKKyhk
ZWZjdXN0b20gbWFya2Rvd24tdHMtZWxsaXBzaXMgbmlsCisgICJUaGUgZWxsaXBzaXMgdG8gdXNl
IGluIGZvbGRlZCBoZWFkaW5ncy4KK1doZW4gbmlsLCB1c2UgdGhlIHN0YW5kYXJkIHRocmVlIGRv
dHMuICBXaGVuIGEgbm9uLWVtcHR5IHN0cmluZywKK3VzZSB0aGF0IHN0cmluZyBpbnN0ZWFkLiIK
KyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJEZWZhdWx0ICguLi4pIiBuaWwpCisgICAg
ICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiU3RyaW5nIiA6dmFsdWUgIiDijIQiKSkKKyAgOnZl
cnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFy
a2Rvd24tdHMtbWVudS1iYXItc2hvdyB0CisgICJOb24tbmlsIG1lYW5zIHNob3cgdGhlIE1hcmtk
b3duIG1lbnUgaW4gdGhlIG1lbnUgYmFyLiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAgOnZlcnNpb24g
IjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24t
dHMtZGVmYXVsdC1mb2xkaW5nICdzaG93LWFsbAorICAiRGVmYXVsdCBoZWFkaW5nIGZvbGRpbmcg
bGV2ZWwuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFnICJTaG93IGV2
ZXJ5dGhpbmciIHNob3ctYWxsKQorICAgICAgICAgIChjb25zdCA6dGFnICJGb2xkIGV2ZXJ5dGhp
bmcsIHNob3dpbmcgdG9wLWxldmVsIGhlYWRpbmdzIiBmb2xkLWFsbCkKKyAgICAgICAgICAoY29u
c3QgOnRhZyAiRm9sZCBoZWFkaW5ncywgc2hvd2luZyBhbGwgaGVhZGluZyBsZXZlbHMiIGZvbGQt
aGVhZGluZ3MpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikK
KworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIG5pbAorICAiTm9uLW5pbCBt
ZWFucyBkaXNwbGF5IGlubGluZSBpbWFnZXMgYmVsb3cgaW1hZ2UgbGlua3MuIgorICA6dHlwZSAn
Ym9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKwor
KGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdworICAiTWF4aW11
bSB3aWR0aCBvZiBpbmxpbmUgaW1hZ2VzIGluIHBpeGVscy4KK1doZW4gYHdpbmRvdycsIHVzZSB0
aGUgd2luZG93IGJvZHkgd2lkdGguICBXaGVuIGEgbnVtYmVyLCB1c2UKK3RoYXQgYXMgdGhlIG1h
eGltdW0gcGl4ZWwgd2lkdGguIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0YWcgIldpbmRv
dyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAgICAobmF0bnVtIDp0YWcgIlBpeGVsIHdp
ZHRoIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFnZXMgbmlsCisg
ICJIb3cgdG8gZGlzcGxheSByZW1vdGUgaW5saW5lIGltYWdlcy4KK1doZW4gbmlsLCBkbyBub3Qg
ZGlzcGxheSByZW1vdGUgaW1hZ2VzLiAgV2hlbiBgZG93bmxvYWQnLCBmZXRjaCB0aGUKK2ltYWdl
IGludG8gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBkaXNwbGF5IGl0LgorCitSZW1vdGUgaW1hZ2Vz
IGFyZSBza2lwcGVkIGJ5IGRlZmF1bHQgZm9yIHNlY3VyaXR5LiIKKyAgOnR5cGUgJyhjaG9pY2Ug
KGNvbnN0IDp0YWcgIlNraXAgcmVtb3RlIGltYWdlcyIgbmlsKQorICAgICAgICAgICAgICAgICAo
Y29uc3QgOnRhZyAiRG93bmxvYWQgcmVtb3RlIGltYWdlcyIgZG93bmxvYWQpKQorICA6dmVyc2lv
biAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93
bi10cy1jaGVja2VkLWNoZWNrYm94ICcoIuKYkSIgLiAiKyIpCisgICJJZiBtYXJrdXAgaXMgaGlk
ZGVuLCBkaXNwbGF5IHRoaXMgZm9yIGEgY2hlY2tlZCB0YXNrIGxpc3QgbWFya2VyLgorVmFsdWUg
Zm9ybXM6CisgLSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZFUlJFRCBpcyB1c2Vk
IGlmIGl0cyBmaXJzdCBjaGFyYWN0ZXIKKyAgIHBhc3NlcyBgY2hhci1kaXNwbGF5YWJsZS1wJywg
b3RoZXJ3aXNlIEZBTExCQUNLLgorIC0gc3ltYm9sIGBpY29uJzogZGVmZXIgdG8gdGhlIGljb25z
LmVsIGljb24KKyAgIGBtYXJrZG93bi10cy1jaGVja2VkLWNoZWNrYm94LWljb24nOyBjdXN0b21p
emUgdmlhCisgICBcXFtjdXN0b21pemUtaWNvbl0uCisgLSBuaWw6IGRpc3BsYXkgdGhlIHJhdyBt
YXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0YWcgIlByZWZlcnJlZCAo
R1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiRmFsbGJhY2sgKFRU
WSkiKSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIlVzZSBpY29ucy5lbCBpY29uIiBp
Y29uKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJr
dXAiIG5pbCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmaW5lLWljb24gbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveC1pY29uIG5pbAorICAn
KChpbWFnZSAiY2hlY2tlZC5zdmciIDpoZWlnaHQgbGluZSA6YXNjZW50IGNlbnRlcikKKyAgICAo
c3ltYm9sICLimJEiKQorICAgICh0ZXh0ICIrIikpCisgICJJY29uIHVzZWQgZm9yIGEgY2hlY2tl
ZCB0YXNrIGxpc3QgbWFya2VyIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK0NvbnN1bHRlZCBvbmx5
IHdoZW4gYG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gnIGlzIHRoZSBzeW1ib2wKK2BpY29u
Jy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy11bmNoZWNr
ZWQtY2hlY2tib3ggJygi4piQIiAuICItIikKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3Bs
YXkgdGhpcyBmb3IgYW4gdW5jaGVja2VkIHRhc2sgbGlzdCBtYXJrZXIuCitWYWx1ZSBmb3JtczoK
KyAtIGNvbnMgKFBSRUZFUlJFRCAuIEZBTExCQUNLKTogUFJFRkVSUkVEIGlzIHVzZWQgaWYgaXRz
IGZpcnN0IGNoYXJhY3RlcgorICAgcGFzc2VzIGBjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndp
c2UgRkFMTEJBQ0suCisgLSBzeW1ib2wgYGljb24nOiBkZWZlciB0byB0aGUgaWNvbnMuZWwgaWNv
bgorICAgYG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveC1pY29uJzsgY3VzdG9taXplIHZp
YQorICAgXFxbY3VzdG9taXplLWljb25dLgorIC0gbmlsOiBkaXNwbGF5IHRoZSByYXcgbWFya3Vw
LiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnMgKHN0cmluZyA6dGFnICJQcmVmZXJyZWQgKEdVSSki
KQorICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nIDp0YWcgIkZhbGxiYWNrIChUVFkpIikp
CisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJVc2UgaWNvbnMuZWwgaWNvbiIgaWNvbikK
KyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBu
aWwpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmluZS1pY29uIG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveC1pY29uIG5pbAorICAnKChp
bWFnZSAidW5jaGVja2VkLnN2ZyIgOmhlaWdodCBsaW5lIDphc2NlbnQgY2VudGVyKQorICAgIChz
eW1ib2wgIuKYkCIpCisgICAgKHRleHQgIi0iKSkKKyAgIkljb24gdXNlZCBmb3IgYW4gdW5jaGVj
a2VkIHRhc2sgbGlzdCBtYXJrZXIgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorQ29uc3VsdGVkIG9u
bHkgd2hlbiBgbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94JyBpcyB0aGUgc3ltYm9sCitg
aWNvbicuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyICcoP+KUgCAuID8tKQorICAiSWYgbWFya3VwIGlzIGhpZGRl
biwgZGlzcGxheSB0aGlzIGNoYXJhY3RlciBmb3IgdGhlbWF0aWMgYnJlYWtzLgorSXQgaXMgcmVw
ZWF0ZWQgdG8gZmlsbCB0aGUgd2luZG93IHdpZHRoLgorVGhlIHZhbHVlIGlzIGEgY29ucyAoUFJF
RkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVGRVJSRUQgaXMgdXNlZCBpZiBpdCBwYXNzZXMKK2BjaGFy
LWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0sgaXMgdXNlZC4KK25pbCBkaXNwbGF5
cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zIChjaGFyYWN0ZXIgOnRh
ZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAgKGNoYXJhY3RlciA6
dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlz
cGxheSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2Fn
ZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVh
ay1iYWNrc2xhc2ggJyg/wrYgLiA/fCkKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkg
dGhpcyBjaGFyYWN0ZXIgZm9yIGEgYmFja3NsYXNoIGhhcmQgbGluZSBicmVhay4KK1RoZSB2YWx1
ZSBpcyBhIGNvbnMgKFBSRUZFUlJFRCAuIEZBTExCQUNLKTogUFJFRkVSUkVEIGlzIHVzZWQgaWYg
aXQgcGFzc2VzCitgY2hhci1kaXNwbGF5YWJsZS1wJywgb3RoZXJ3aXNlIEZBTExCQUNLIGlzIHVz
ZWQuCituaWwga2VlcHMgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAo
Y2hhcmFjdGVyIDp0YWcgIlByZWZlcnJlZCAoR1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAg
IChjaGFyYWN0ZXIgOnRhZyAiRmFsbGJhY2sgKFRUWSkiKSkKKyAgICAgICAgICAgICAgICAgKGNv
bnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1o
YXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgKGxhbWJkYSAobikKKyAgICAobGV0KiAoKHZhbCAobWFy
a2Rvd24tdHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZQorICAgICAgICAgICAgICAgICBtYXJrZG93
bi10cy1oYXJkLWxpbmUtYnJlYWstYmFja3NsYXNoKSkKKyAgICAgICAgICAgKGNoIChpZiAoY2hh
cmFjdGVycCB2YWwpIHZhbCA/fCkpKQorICAgICAgKG1ha2Utc3RyaW5nIG4gY2gpKSkKKyAgIklm
IG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSB0cmFpbGluZy1zcGFjZXMgaGFy
ZCBsaW5lIGJyZWFrLgorVGhlIHZhbHVlIGNhbiBiZToKKy0gYSBjaGFyYWN0ZXIgb3Igc3RyaW5n
OiBzaG93biBvbmNlIGF0IHRoZSBzdGFydCBvZiB0aGUgdHJhaWxpbmcgc3BhY2VzLAorICB3aXRo
IG5vIHJlcGV0aXRpb24gKHRoZSByZW1haW5pbmcgc3BhY2VzIHN0YXkgaW52aXNpYmxlKTsKKy0g
YSBmdW5jdGlvbjogY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50LCB0aGUgbnVtYmVyIG9mIHRyYWls
aW5nIHNwYWNlcywKKyAgYW5kIG11c3QgcmV0dXJuIHRoZSBzdHJpbmcgdG8gZGlzcGxheSBpbiBw
bGFjZSBvZiB0aGUgcnVuOworLSBuaWw6IGtlZXAgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAn
KGNob2ljZSAoY2hhcmFjdGVyIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIGNoYXJhY3RlciAobm8g
cmVwZXRpdGlvbikiKQorICAgICAgICAgICAgICAgICAoc3RyaW5nIDp0YWcgIkRpc3BsYXkgc3Bl
Y2lmaWVkIHN0cmluZyAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAgICAgICAoZnVuY3Rp
b24gOnRhZyAiRnVuY3Rpb24gZnJvbSBjb3VudCB0byBkaXNwbGF5IHN0cmluZyIpCisgICAgICAg
ICAgICAgICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAg
OnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20g
bWFya2Rvd24tdHMtZm9udGlmeS1jb2RlLWJsb2Nrcy1uYXRpdmVseSB0CisgICJOb24tbmlsIG1l
YW5zIGZvbnRpZnkgY29kZSBibG9jayBjb250ZW50cyB1c2luZyB0aGUgbGFuZ3VhZ2UncyBtb2Rl
LgorV2hlbiBub24tbmlsLCBmZW5jZWQgY29kZSBibG9ja3MgYXJlIGhpZ2hsaWdodGVkIHdpdGgg
c3ludGF4IG9mIHRoZQorZW1iZWRkZWQgbGFuZ3VhZ2UgKHZpYSB0cmVlLXNpdHRlciBmb3IgbGFu
Z3VhZ2VzIHdpdGggYSB0cmVlLXNpdHRlcgorbW9kZSwgb3IgdmlhIGNvbnZlbnRpb25hbCBmb250
LWxvY2sgZm9yIHRoZSByZXN0KS4gIFdoZW4gbmlsLCBjb2RlCitibG9ja3Mga2VlcCBvbmx5IHRo
ZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jaycgYmFja2dyb3VuZCBmYWNlLiAgVG9nZ2xpbmcKK2Zv
ciB0aGUgdHMtZW1iZWRkZWQgcGF0aCB0YWtlcyBlZmZlY3QgYWZ0ZXIgcmVzdGFydGluZworYG1h
cmtkb3duLXRzLW1vZGUnIGluIHRoZSBidWZmZXIuIgorICA6dHlwZSAnYm9vbGVhbgorICA6dmVy
c2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJr
ZG93bi10cy1lbmFibGUtY29kZS1ibG9jay1jb250ZXh0LW1vZGUgdAorICAiTm9uLW5pbCBhdXRv
bWF0aWNhbGx5IGVuYWJsZXMgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29udGV4dC1tb2RlJy4K
K0lmIG5vbi1uaWwgYW5kIGBwb2ludCcgaXMgaW4gYSBmZW5jZWQgY29kZSBibG9jaywgdGhpcyBy
dW5zCitgaW5kZW50LWZvci10YWItY29tbWFuZCcsIGBuZXdsaW5lJywgZXQuYWwuLCBpbiB0aGUg
bW9kZSBvZiB0aGUgY29kZQorYmxvY2suIgorICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAi
MzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10
cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1saWdodGVyICIgW2NvZGVdIgorICAiTWlub3Ig
bW9kZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUnIGxpZ2h0ZXIgc3RyaW5n
LgorU2V0IHRvIG5pbCB0byBkaXNhYmxlIHRoZSBsaWdodGVyLiIKKyAgOnR5cGUgJ3N0cmluZwor
ICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3Rv
bSBtYXJrZG93bi10cy1pbmhpYml0LWNvZGUtYmxvY2stbW9kZS13YXJuaW5ncyB0CisgICJJZiBu
b24tbmlsLCBpbmhpYml0IGNvZGUtYmxvY2sgbWFqb3ItbW9kZSBtZXNzYWdlcyBhbmQgd2Fybmlu
Z3MuCitTb21lIGZlbmNlZCBjb2RlLWJsb2NrIG1ham9yIG1vZGVzIHByb2R1Y2UgbWVzc2FnZXMg
b3Igd2FybmluZ3Mgd2hpY2gKK2hhdmUgbGl0dGxlIHJlbGV2YW5jZSB0byBNYXJrZG93biBidWZm
ZXJzLiAgVXNlIHRoaXMgb3B0aW9uIHRvIGluaGliaXQKK3RoZW0uICBNYWpvciBtb2RlcyBtYXkg
YmUgZW5hYmxlZCBmb3IgZm9udGlmaWNhdGlvbiBvciBlZGl0aW5nIGluIHRoZQorbW9kZSdzIGNv
bnRleHQuIgorICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2Ut
dmVyc2lvbiAiMS4wIikKKworKGRlZnZhciB3YXJuaW5nLW1pbmltdW0tbGV2ZWwpCisKKyhkZWZt
YWNybyBtYXJrZG93bi10cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MgKHZhciAmcmVz
dCBib2R5KQorICAiRXhlY3V0ZSBCT0RZIHdpdGggbWVzc2FnZXMgYW5kIHdhcm5pbmdzIGluaGli
aXRlZC4KK1ZBUiBpcyBhIHZhcmlhYmxlJ3Mgc3ltYm9sOyBlLmcuLAorXFw9J21hcmtkb3duLXRz
LWluaGliaXQtY29kZS1ibG9jay1tb2RlLXdhcm5pbmdzLiAgSWYgdGhlIHN5bWJvbCdzIHZhbHVl
CitpcyBub24tbmlsLCBkbyB3aGF0IGl0IHNheXMgb24gdGhlIHRpbi4KK0luaGliaXQgbWVzc2Fn
ZXMgaW4gdGhlIGVjaG8gYXJlYS4KK0luaGliaXQgbWVzc2FnZXMgaW4gdGhlIGxvZy4KK0luaGli
aXQgd2FybmluZ3Mgd2l0aCBsZXZlbCA8IDplcnJvci4iCisgIChkZWNsYXJlIChpbmRlbnQgZGVm
dW4pKQorICBgKGxldCogKCh2YWwgKHN5bWJvbC12YWx1ZSAsdmFyKSkKKyAgICAgICAgICAoaW5o
aWJpdC1tZXNzYWdlIHZhbCkKKyAgICAgICAgIDs7IEFsc28gaW5oaWJpdCBsb2dnaW5nIHRvICpN
ZXNzYWdlcyoKKyAgICAgICAgIChtZXNzYWdlLWxvZy1tYXggKGlmIHZhbCBuaWwgbWVzc2FnZS1s
b2ctbWF4KSkKKyAgICAgICAgICh3YXJuaW5nLW1pbmltdW0tbGV2ZWwKKyAgICAgICAgICAoaWYg
dmFsIDplcnJvciB3YXJuaW5nLW1pbmltdW0tbGV2ZWwpKSkKKyAgICAgKHByb2duICxAYm9keSkp
KQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRlZmF1bHQtY29kZS1ibG9jay1tb2RlICd0ZXh0
LW1vZGUKKyAgIkRlZmF1bHQgbW9kZSBmb3IgYW5vbnltb3VzIGNvZGUgYmxvY2tzLiIKKyAgOnR5
cGUgJyhjaG9pY2UKKyAgICAgICAgICAoY29uc3QgIDp0YWcgIlRleHQgbW9kZSIgdGV4dC1tb2Rl
KQorICAgICAgICAgIChjb25zdCAgOnRhZyAiRnVuZGFtZW50YWwgbW9kZSIgZnVuZGFtZW50YWwt
bW9kZSkKKyAgICAgICAgICAoc3ltYm9sIDp0YWcgIk90aGVyIG1vZGUgc3ltYm9sIgorICAgICAg
ICAgICAgICAgICAgOnZhbGlkYXRlIChsYW1iZGEgKHdpZCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChsZXQgKCh2YWwgKHdpZGdldC12YWx1ZSB3aWQpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHVubGVzcyAoYW5kIHZhbCAoZXEgJ3N5bWJvbCAodHlwZS1vZiB2
YWwpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lkZ2V0LXB1dCB3aWQg
OmVycm9yICJNdXN0IGJlIGEgbm9uLW5pbCBzeW1ib2wiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZCkpKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJz
aW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29sdW1u
LXdpZHRoIDUKKyAgIkNvbHVtbiB3aWR0aCBmb3IgbmV3IGNvbHVtbnMuCitZb3UgbWF5IG1ha2Ug
dGhpcyB3aWRlciwgYnV0IHNtYWxsZXIgdGhhbiA1IGlzIG5vdCByZWNvbW1lbmRlZC4iCisgIDp0
eXBlICdpbnRlZ2VyCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAi
KQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWVuYWJsZS10YWJsZS1tb2RlIHQKKyAgIk5vbi1u
aWwgYXV0b21hdGljYWxseSBlbmFibGVzIGBtYXJrZG93bi10cy10YWJsZS1tb2RlJy4KK0lmIG5v
bi1uaWwsIGVuYWJsZSBgbWFya2Rvd24tdHMtdGFibGUtbW9kZScgaWYgYHBvaW50JyBpcyBpbiBh
IE1hcmtkb3duCit0YWJsZS4iCisgIDp0eXBlICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgor
ICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRhYmxl
LWF1dG8tYWxpZ24gJyhjZWxsLW5hdmlnYXRpb24gdHJhbnNwb3NlKQorICAiQXV0b21hdGljYWxs
eSBhbGlnbiB0aGUgdGFibGUgYXQgcG9pbnQgZHVyaW5nIHRoZXNlIG9wZXJhdGlvbnMuCitJZiB0
LCB0cmlnZ2VyIG9uIGFsbCBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4KK0lmIG5pbCwgZG8gbm90IGF1
dG8gYWxpZ24uCitPdGhlcndpc2UsIGl0IGlzIGEgbGlzdCBvZiBzeW1ib2xzIHJlcHJlc2VudGlu
ZyB0YWJsZSBvcGVyYXRpb25zLiIKKyAgOnR5cGUgJyhjaG9pY2UKKyAgICAgICAgICAoY29uc3Qg
OnRhZyAiRG8gbm90IGF1dG9tYXRpY2FsbHkgYWxpZ24iIG5pbCkKKyAgICAgICAgICAoY29uc3Qg
OnRhZyAiQWx3YXlzIGF1dG9tYXRpY2FsbHkgYWxpZ24iIHQpCisgICAgICAgICAgKHNldAorICAg
ICAgICAgICAoY29uc3QgOnRhZyAiQ2VsbCBuYXZpZ2F0aW9uIiBjZWxsLW5hdmlnYXRpb24pCisg
ICAgICAgICAgIChjb25zdCA6dGFnICJUcmFuc3Bvc2UiIHRyYW5zcG9zZSkpKQorICA6dmVyc2lv
biAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93
bi10cy10YWJsZS1hbGlnbi1mZWF0dXJlcyAnKGp1c3RpZnktY2VsbHMpCisgICJVc2UgdGhlc2Ug
b3B0aW9uYWwgZmVhdHVyZXMgd2hlbiBhbGlnbmluZyBhIHRhYmxlLgorQWxpZ25pbmcgYSB0YWJs
ZSBhbGlnbnMgZWFjaCBjb2x1bW4gdG8gdGhlIHdpZHRoIG9mIGl0cyB3aWRlc3QgY2VsbC4gIEl0
CitjYW4gYWxzbyBqdXN0aWZ5IGVhY2ggY2VsbCBhY2NvcmRpbmcgdG8gdGhlIHRhYmxlJ3MgZGVs
aW1pdGVyIGxpbmUgbGVmdCwKK2NlbnRlciwgb3IgcmlnaHQtaGFuZCBqdXN0aWZpY2F0aW9uIHJ1
bGVzLgorCitDdXN0b21pemluZyB0aGlzIHVzZXIgb3B0aW9uIGlzIG1vc3QgdXNlZnVsIHdoZW4g
dGhlIHVzZXIgb3B0aW9uCitgbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbicgaXMgZW5hYmxl
ZCBhbmQgdG8gYXZvaWQgaGF2aW5nIHRvIHVzZSBhCitwcmVmaXggYXJndW1lbnQgYmVmb3JlIGV2
ZXJ5IGF1dG8tYWxpZ25tZW50IG9wZXJhdGlvbi4KKworSWYgdCwgZW5hYmxlIGFsbCBvcHRpb25h
bCBhbGlnbm1lbnQgb3BlcmF0aW9ucy4KK0lmIG5pbCwgb3BlcmF0aW9ucyBhcmUgZW5hYmxlZCBi
ZXlvbmQgYmFzaWMgY29sdW1uIGFsaWdubWVudC4KK090aGVyd2lzZSwgaXQgaXMgYSBsaXN0IG9m
IHN5bWJvbHMuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFnICJObyBv
cHRpb25hbCBmZWF0dXJlcyIgbmlsKQorICAgICAgICAgIChjb25zdCA6dGFnICJBbGwgb3B0aW9u
YWwgZmVhdHVyZXMiIHQpCisgICAgICAgICAgKHNldAorICAgICAgICAgICAoY29uc3QgOnRhZyAi
SnVzdGlmeSBjZWxscyIganVzdGlmeS1jZWxscykpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBh
Y2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbi10YWJsZS1t
b2RlLWxpZ2h0ZXIgIiBbdGFibGVdIgorICAiTWlub3IgbW9kZSBgbWFya2Rvd24tdHMtaW4tdGFi
bGUtbW9kZScgbGlnaHRlciBzdHJpbmcuCitTZXQgdG8gbmlsIHRvIGRpc2FibGUgdGhlIGxpZ2h0
ZXIuIgorICA6dHlwZSAnc3RyaW5nCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJz
aW9uICIxLjAiKQorCis7OzsgRmFjZXM6CiAKIChkZWZncm91cCBtYXJrZG93bi10cy1mYWNlcyBu
aWwKLSAgIkZhY2VzIHVzZWQgaW4gTWFya2Rvd24gVFMgTW9kZS4iCisgICJGYWNlcyB1c2VkIGJ5
IE1hcmtkb3duLVRTLiIKICAgOmdyb3VwICdtYXJrZG93bi10cy1mYWNlcwogICA6Z3JvdXAgJ2Zh
Y2VzKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1kZWxpbWl0ZXIgJygodCAoOmluaGVyaXQgc2hh
ZG93KSkpCi0gICJGYWNlIGZvciB0aGUgIyBiZWZvcmUgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAg
IkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIz
MS4xIikKIAogKGRlZmZhY2UgbWFya2Rvd24tdHMtaGVhZGluZy0xICcoKHQgKDppbmhlcml0IG91
dGxpbmUtMSkpKQotICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikK
KyAgIkZhY2UgZm9yIGZpcnN0IGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24g
IjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1zZXRleHQtaGVhZGluZyAnKCh0ICg6aW5o
ZXJpdCBtYXJrZG93bi10cy1oZWFkaW5nLTEpKSkKLSAgIkZhY2UgZm9yIHNldGV4dCBNYXJrZG93
biBoZWFkaW5ncyAoaGVhZGluZ3MgdW5kZXJsaW5lZCBieSA9PT0gb3IgLS0tKS4iKQorICAiRmFj
ZSBmb3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1bmRlcmxpbmVkIGJ5ID09
PSBvciAtLS0pLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1o
ZWFkaW5nLTIgJygodCAoOmluaGVyaXQgb3V0bGluZS0yKSkpCi0gICJGYWNlIGZvciBzZWNvbmQg
bGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIHNlY29uZCBsZXZlbCBNYXJr
ZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRlZmZhY2UgbWFya2Rvd24t
dHMtaGVhZGluZy0zICcoKHQgKDppbmhlcml0IG91dGxpbmUtMykpKQotICAiRmFjZSBmb3IgdGhp
cmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIHRoaXJkIGxldmVsIE1h
cmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93
bi10cy1oZWFkaW5nLTQgJygodCAoOmluaGVyaXQgb3V0bGluZS00KSkpCi0gICJGYWNlIGZvciBm
b3VydGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIGZvdXJ0aCBsZXZl
bCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRlZmZhY2UgbWFy
a2Rvd24tdHMtaGVhZGluZy01ICcoKHQgKDppbmhlcml0IG91dGxpbmUtNSkpKQotICAiRmFjZSBm
b3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIGZpZnRoIGxl
dmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBt
YXJrZG93bi10cy1oZWFkaW5nLTYgJygodCAoOmluaGVyaXQgb3V0bGluZS02KSkpCi0gICJGYWNl
IGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3Igc2l4dGgg
bGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKLShkZWZmYWNl
IG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNoYWRvdykpKQotICAiRmFj
ZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4iKQorKGRlZmZhY2UgbWFy
a2Rvd24tdHMtZW1waGFzaXMgJygodCAoOmluaGVyaXQgaXRhbGljKSkpCisgICJGYWNlIGZvciBN
YXJrZG93biBlbXBoYXNpcyAoaXRhbGljKSB0ZXh0LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCiso
ZGVmZmFjZSBtYXJrZG93bi10cy1ib2xkICcoKHQgKDppbmhlcml0IGJvbGQpKSkKKyAgIkZhY2Ug
Zm9yIE1hcmtkb3duIHN0cm9uZyBlbXBoYXNpcyAoYm9sZCkgdGV4dC4iCisgIDp2ZXJzaW9uICIz
MS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtc3RyaWtldGhyb3VnaCAnKCh0ICg6c3RyaWtl
LXRocm91Z2ggdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3RyaWtldGhyb3VnaCB0ZXh0LiIK
KyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1ibG9jay1xdW90ZSAn
KCh0ICg6aW5oZXJpdCBpdGFsaWMpKSkKLSAgIkZhY2UgZm9yIE1hcmtkb3duIGJsb2NrIHF1b3Rl
cy4iKQorICAiRmFjZSBmb3IgTWFya2Rvd24gYmxvY2sgcXVvdGVzLiIKKyAgOnZlcnNpb24gIjMx
LjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5rICcoKHQgKDppbmhlcml0IGxpbmspKSkK
KyAgIkZhY2UgZm9yIE1hcmtkb3duIGxpbmsgdGV4dCBhbmQgaW1hZ2UgZGVzY3JpcHRpb25zLiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0
aW9uICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQorICAiRmFjZSBmb3Ig
TWFya2Rvd24gbGluayBkZXN0aW5hdGlvbnMgKFVSTHMpLiIKKyAgOnZlcnNpb24gIjMxLjEiKQor
CisoZGVmZmFjZSBtYXJrZG93bi10cy1jb2RlLXNwYW4gJygodCAoOmluaGVyaXQgZm9udC1sb2Nr
LXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBpbmxpbmUgY29kZSBzcGFucy4i
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtY29kZS1ibG9jayAn
KCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGZlbmNlZCBjb2RlIGJsb2Nr
IGNvbnRlbnQuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRkIGEgYDpiYWNrZ3JvdW5kJyBmb3IgYSB2
aXN1YWxseSBkaXN0aW5jdAorY29kZSBibG9jayByZWdpb24sIGUuZy46CisgIChzZXQtZmFjZS1h
dHRyaWJ1dGUgXFw9J21hcmtkb3duLXRzLWNvZGUtYmxvY2sgbmlsIDpiYWNrZ3JvdW5kIFwiZ3Jh
eTk1XCIpIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWluLWNv
ZGUtYmxvY2sgJygodCAoOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciB3aGVuIHBvaW50IGlzIGlu
IGEgTWFya2Rvd24gY29kZSBibG9jay4KK1NlZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1j
b250ZXh0LW1vZGUnLgorQWx0ZXIgdGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dyb3VuZCcgZm9y
IGEgdmlzdWFsbHkgZGlzdGluY3QgdGFibGUKK3JlZ2lvbiwgZS5nLjoKKyAgKHNldC1mYWNlLWF0
dHJpYnV0ZSBcXD0nbWFya2Rvd24tdHMtaW4tY29kZS1ibG9jayA6YmFja2dyb3VuZCBcImdyYXk5
NVwiKSIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1hcmt1cC1oaWRkZW4KKyAgJygoKChiYWNrZ3JvdW5kIGxpZ2h0KSkgKDpiYWNrZ3JvdW5k
ICJncmF5OTUiIDpleHRlbmQgdCkpCisgICAgKCgoYmFja2dyb3VuZCBkYXJrKSkgICg6YmFja2dy
b3VuZCAiZ3JheTE1IiA6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGZlbmNlZCBj
b2RlIGJsb2NrIGNvbnRlbnQgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorVXNlZCBpbnN0ZWFkIG9m
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyB3aGVuIGBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCcK
K2lzIG5vbi1uaWwuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRz
LWluZGVudGVkLWNvZGUtYmxvY2sgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNl
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBpbmRlbnRlZCBjb2RlIGJsb2Nrcy4iCisgIDp2ZXJz
aW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaHRtbC10YWcgJygodCAoOmluaGVy
aXQgZm9udC1sb2NrLWRvYy1tYXJrdXAtZmFjZSkpKQorICAiRmFjZSBmb3IgaW5saW5lIEhUTUwg
dGFncyBpbiBNYXJrZG93bi4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rv
d24tdHMtaHRtbC1ibG9jayAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1cC1mYWNl
KSkpCisgICJGYWNlIGZvciBIVE1MIGJsb2NrcyBpbiBNYXJrZG93bi4iCisgIDp2ZXJzaW9uICIz
MS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWsgJygodCAoOmluaGVy
aXQgc2hhZG93IDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gdGhlbWF0aWMgYnJl
YWtzIChob3Jpem9udGFsIHJ1bGVzKS4KK0N1c3RvbWl6ZSB0aGlzIGZhY2UgdG8gYWRkIGEgOmJh
Y2tncm91bmQgZm9yIGEgZnVsbC13aWR0aCB2aXN1YWwgcnVsZS4iCisgIDp2ZXJzaW9uICIzMS4x
IikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSAnKCh0ICg6aW5oZXJp
dCBmb250LWxvY2stYnVpbHRpbi1mYWNlKSkpCisgICJGYWNlIGZvciBuYW1lZCBIVE1MIGVudGl0
eSByZWZlcmVuY2VzIGxpa2UgJmFtcDsgYW5kICZjb3B5Oy4iCisgIDp2ZXJzaW9uICIzMS4xIikK
KworKGRlZmZhY2UgbWFya2Rvd24tdHMtbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlCisgICco
KHQgKDppbmhlcml0IGZvbnQtbG9jay1lc2NhcGUtZmFjZSkpKQorICAiRmFjZSBmb3IgbnVtZXJp
YyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBsaWtlICYjNjU7IGFuZCAmI3g0MTsuIgorICA6dmVyc2lv
biAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxhdGV4ICcoKHQgKDppbmhlcml0IGZv
bnQtbG9jay1zdHJpbmctZmFjZSkpKQorICAiRmFjZSBmb3IgTGFUZVggLyBtYXRoIGNvbnRlbnQg
aW4gTWFya2Rvd24gKCQuLi4kIGFuZCAkJC4uLiQkKS4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtdGFibGUtaGVhZGVyICcoKHQgKDppbmhlcml0IChib2xkIGZv
bnQtbG9jay1kb2MtZmFjZSkpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHBpcGUgdGFibGUgaGVh
ZGVyIGNlbGxzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10
YWJsZS1jZWxsICcoKHQgKDppbmhlcml0IGRlZmF1bHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IHBpcGUgdGFibGUgZGF0YSBjZWxscy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwgJygodCAoOmluaGVyaXQgZm9udC1sb2Nr
LWRvYy1mYWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBwaXBlIHRhYmxlIGRlbGltaXRlciBj
ZWxscyAoLS0tIHNlcGFyYXRvcnMpLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBt
YXJrZG93bi10cy10YWJsZSAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IHRhYmxlLgorQWx0ZXIgdGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dyb3VuZCcgZm9yIGEgdmlz
dWFsbHkgZGlzdGluY3QgdGFibGUKK3JlZ2lvbiwgZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0
ZSBcXD0nbWFya2Rvd24tdHMtdGFibGUgbmlsIDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6
dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWluLXRhYmxlICcoKHQgKDpl
eHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gYG1hcmtkb3duLXRzLWluLXRhYmxlLW1v
ZGUnIHdoZW4gcG9pbnQgaXMgaW4gYSB0YWJsZS4KK0FsdGVyIHRoaXMgZmFjZSB0byBhZGQgYSBg
OmJhY2tncm91bmQnIGZvciBhIHZpc3VhbGx5IGRpc3RpbmN0IHRhYmxlCityZWdpb24sIGUuZy46
CisgIChzZXQtZmFjZS1hdHRyaWJ1dGUgXFw9J21hcmtkb3duLXRzLWluLXRhYmxlIG5pbCA6YmFj
a2dyb3VuZCBcImdyYXk5NVwiKSIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJr
ZG93bi10cy1sYW5ndWFnZS1rZXl3b3JkICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1rZXl3b3Jk
LWZhY2UpKSkKLSAgIkZhY2UgZm9yIHRoZSBsYW5ndWFnZSBrZXl3b3JkIGZvciBNYXJrZG93biBj
b2RlIGJsb2Nrcy4iKQorICAiRmFjZSBmb3IgdGhlIGxhbmd1YWdlIGtleXdvcmQgZm9yIE1hcmtk
b3duIGNvZGUgYmxvY2tzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93
bi10cy1saXN0LW1hcmtlciAnKCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIGxpc3QgbWFya2VycyBsaWtlIC0gYW5kICouIgorICA6dmVyc2lvbiAiMzEuMSIpCisK
KyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gKKyAgJygodCAo
OmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9sZCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24g
aGFyZCBsaW5lIGJyZWFrcyBpbnRyb2R1Y2VkIGJ5IGEgdHJhaWxpbmcgYmFja3NsYXNoLiIKKyAg
OnZlcnNpb24gIjMxLjEiKQogCi07OzsgRm9udC1sb2NrCisoZGVmZmFjZSBtYXJrZG93bi10cy1o
YXJkLWxpbmUtYnJlYWstYmFja3NsYXNoLWhpZGRlbgorICAnKCh0ICg6aW5oZXJpdCBvdXRsaW5l
LTQgOndlaWdodCBib2xkKSkpCisgICJGYWNlIGZvciB0cmFpbGluZy1iYWNrc2xhc2ggaGFyZCBs
aW5lIGJyZWFrIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlCisgICcoKCgoYmFja2dy
b3VuZCBsaWdodCkpICg6YmFja2dyb3VuZCAiZ3JheTcwIiA6d2VpZ2h0IGJvbGQpKQorICAgICgo
KGJhY2tncm91bmQgZGFyaykpICAoOmJhY2tncm91bmQgImdyYXk0MCIgOndlaWdodCBib2xkKSkp
CisgICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgdHdv
IHRyYWlsaW5nIHNwYWNlcy4KK1RoZSB0cmFpbGluZyBzcGFjZXMgYXJlIG90aGVyd2lzZSBpbnZp
c2libGUsIHNvIHRoZXkgYXJlIHNob3duIGFzIGEKK3NoYWRvdy1jb2xvcmVkIGJsb2NrLiIKKyAg
OnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
c3BhY2UtaGlkZGVuCisgICcoKHQgKDppbmhlcml0IG91dGxpbmUtNCA6d2VpZ2h0IGJvbGQpKSkK
KyAgIkZhY2UgZm9yIHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAg
aXMgaGlkZGVuLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10
YXNrLXVuY2hlY2tlZCAnKCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1saXN0LW1hcmtlcikpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gdW5jaGVja2VkIHRhc2sgbGlzdCBtYXJrZXJzLiIKKyAgOnZl
cnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YXNrLWNoZWNrZWQgJygodCAo
OmluaGVyaXQgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IGNoZWNrZWQgdGFzayBsaXN0IG1hcmtlcnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyh0cmVl
c2l0LWRlY2xhcmUtdW5hdmFpbGFibGUtZnVuY3Rpb25zKQorCisoYWRkLXRvLWxpc3QKKyAndHJl
ZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKKyAnKG1hcmtkb3duCisgICAiaHR0cHM6Ly9naXRo
dWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgorICAgOmNv
bW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKKyAgIDpzb3Vy
Y2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi9zcmMiKQorIHQpCisKKyhhZGQtdG8tbGlzdAor
ICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rvd24taW5saW5lCisgICAi
aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtk
b3duIgorICAgOmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdm
OSIKKyAgIDpzb3VyY2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi1pbmxpbmUvc3JjIikKKyB0
KQorCis7OzsgVmFyaWFibGVzOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5l
IG5pbAorICAiTGV0IGJpbmQgdGhpcyB0byBub24tbmlsIGZvciBpbmxpbmUgYG1hcmtkb3duLXRz
LW1vZGUnIGJ1ZmZlcnMuIikKKworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVz
CisgIGAoKHNoIGJhc2gtdHMtbW9kZSkKKyAgICAoc2hlbGwgYmFzaC10cy1tb2RlKQorICAgICgs
KGludGVybiAiYyMiKSBjc2hhcnAtdHMtbW9kZSkKKyAgICAoY3BwIGMrKy10cy1tb2RlKQorICAg
IChlbCBlbWFjcy1saXNwLW1vZGUpCisgICAgKGVsaXNwIGVtYWNzLWxpc3AtbW9kZSkKKyAgICAo
Z29sYW5nIGdvLXRzLW1vZGUpCisgICAgKGdvbW9kIGdvLW1vZC10cy1tb2RlKQorICAgIChnb3dv
cmsgZ28td29yay10cy1tb2RlKQorICAgIChqYXZhc2NyaXB0IGpzLXRzLW1vZGUpCisgICAgKG1k
IG1hcmtkb3duLXRzLW1vZGUpCisgICAgKHB5IHB5dGhvbi10cy1tb2RlKQorICAgIChyYiBydWJ5
LXRzLW1vZGUpCisgICAgKHJzIHJ1c3QtdHMtbW9kZSkKKyAgICAodGV4IGxhdGV4LW1vZGUpCisg
ICAgKHRzIHR5cGVzY3JpcHQtdHMtbW9kZSkKKyAgICAoeW1sIHlhbWwtdHMtbW9kZSkpCisgICJF
eHRyYSBtYXBwaW5ncyBmcm9tIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgdGFncyB0byBtYWpvciBtb2Rl
cy4KKworRW50cmllcyBoZXJlIGFyZSBvbmx5IG5lZWRlZCB3aGVuIHRoZSBsYW5ndWFnZSB0YWcg
aW4gYSBmZW5jZWQgY29kZQorYmxvY2sgZG9lcyBOT1QgbWF0Y2ggdGhlIGNvbnZlbnRpb25hbCBt
b2RlIG5hbWUgZGVyaXZhdGlvbiwgZS5nLiB0aGUKK3VzZXIgd3JpdGVzIFxcPWBcXD1gXFw9YHRz
IGluc3RlYWQgb2YgXFw9YFxcPWBcXD1gdHlwZXNjcmlwdCwgb3IKK1xcPWBcXD1gXFw9YHB5IGlu
c3RlYWQgb2YgXFw9YFxcPWBcXD1gcHl0aG9uLiAgRm9yIHRhZ3MgdGhhdCBhbHJlYWR5CityZXNv
bHZlIHZpYSB0aGUgc3RhbmRhcmQgXCItdHMtbW9kZVwiL1wiLW1vZGVcIiBoZXVyaXN0aWNzIHRo
ZXJlIGlzIG5vCituZWVkIHRvIGFkZCBhbiBlbnRyeS4KKworVGhlIGFsaXN0IGlzIG9mIHRoZSBm
b3JtIChMQU5HVUFHRSBNQUpPUi1NT0RFKS4gTUFKT1ItTU9ERSBjYW4gYmUgYQordHJlZS1zaXR0
ZXIgb3IgYSBjb252ZW50aW9uYWwgbW9kZS4KKworSWYgeW91IHByZWZlciBhIGNvbnZlbnRpb25h
bCBtb2RlIG92ZXIgaXRzIHRyZWUtc2l0dGVyIHZhcmlhbnQsIGFkZCBvcgorcmVwbGFjZSByZWxl
dmFudCBlbnRyaWVzLiAgRm9yIGV4YW1wbGU6CisKKyAgICAoYWRkLXRvLWxpc3QgXFw9J21hcmtk
b3duLXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgICAgIFxcPScocHl0aG9uIHB5dGhvbi1tb2RlKSkK
KyAgICAoc2V0ZiAoYWxpc3QtZ2V0IFxcPSdweSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVz
KQorICAgICAgICAgIFxcPScocHl0aG9uLW1vZGUpKQorCitDb2RlIGJsb2NrcyBmb3IgdGhhdCBu
b24gdHJlZS1zaXR0ZXIgbW9kZXMgd2lsbCBiZSBmb250aWZpZWQgdXNpbmcgdGhlCittb2RlJ3Mg
Y29udmVudGlvbmFsIGZvbnQtbG9jayBydWxlcy4iKQorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzCisgICcobWFya2Rvd24tdHMtbW9kZQor
ICAgIHBocC10cy1tb2RlKQorICAiVHJlYXQgdGhlc2UgY29kZSBibG9jayB0cmVlLXNpdHRlciBt
b2RlcyBhcyBjb252ZW50aW9uYWwuCitTb21lIG1vZGVzIHRoYXQgZW1iZWQgbXVsdGlwbGUgYHRy
ZWVzaXQnIHBhcnNlcnMgbmVlZCB0byBiZSB0cmVhdGVkIHdpdGgKK2NvbnZlbnRpb25hbCBmb250
LWxvY2suICBgbWFya2Rvd24tdHMtbW9kZScgaXRzZWxmIGlzIG9uZSBvZiB0aGVtLiIpCisKKzs7
OyBGb250LWxvY2s6CiAKIChkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIgKG5v
ZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCiAgICJGb250aWZ5IGRlbGltaXRlciBOT0RF
IGFuZCBvcHRpb25hbGx5IGhpZGUgaXRzIG1hcmt1cC4KQEAgLTE2OCwyMyArNzk0LDgzNyBAQCBt
YXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQogICAgICAgICAg
ICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3VwKSkpCiAKKyhkZWZ2
YXIgdXJsLW1haWwtY29tbWFuZCkgOyB1cmwvdXJsLXZhcnMuZWwKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1tYWtlLWxpbmstYnV0dG9uIChiZWcgZW5kIHVybCkKKyAgIk1ha2UgdGhlIHJlZ2lvbiBm
cm9tIEJFRyB0byBFTkQgYSBjbGlja2FibGUgYnV0dG9uIGZvciBVUkwuCitGb3IgbWFpbHRvOiBV
UklzLCB1c2UgYHVybC1tYWlsLWNvbW1hbmQnLiAgRm9yIG90aGVyIHNjaGVtZXMKK1woZS5nLiwg
aHR0cCwgZnRwKSwgb3BlbiB3aXRoIGBicm93c2UtdXJsJy4gIE90aGVyd2lzZSwgdHJlYXQgYXMK
K2EgcmVsYXRpdmUgZmlsZSBwYXRoIGFuZCBvcGVuIHdpdGggYGZpbmQtZmlsZScuCisKK0RvIG5v
dCBwYXNzIGBmYWNlJyB0byBgbWFrZS10ZXh0LWJ1dHRvbic6IHRoZSBsaW5rIGZhY2UgaXMgYWxy
ZWFkeQorYXBwbGllZCBieSBgbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlJyB2aWEKK2B0
cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScgKHdpdGggYDpvdmVycmlkZSBhcHBlbmQnKSwg
YW5kCitgYWRkLXRleHQtcHJvcGVydGllcycgd291bGQgb3RoZXJ3aXNlIHJlcGxhY2UgdGhlIGFw
cGVuZGVkIGZhY2UKK2xpc3Qgd2l0aCBhIHNpbmdsZSBgbWFya2Rvd24tdHMtbGluaycsIGNsb2Ji
ZXJpbmcgYW4gZW5jbG9zaW5nCitoZWFkaW5nIGZhY2UuIgorICA7OyBOT1RFOiBVUkkgc2NoZW1l
IGFuZCBob3N0IG5hbWUgYXJlIGNhc2UtaW5zZW5zaXRpdmUgcGVyIFJGQyAzOTg2CisgIDs7IGFu
ZCBSRkMgNzIzMC4KKyAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkKKyAgICAobWFrZS10
ZXh0LWJ1dHRvbiBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbiAobGFtYmRh
IChfYnV0dG9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctcHJlZml4LXAgIiMiIHVybCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFn
bWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIHVybCAx
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaC1wICJc
XGBtYWlsdG86IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNh
bGwgdXJsLW1haWwtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlxcYG1haWx0bzoiICIiIHVybCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2gtcCAiXFxgW2Etel0rOiIgdXJsKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChicm93c2UtdXJsIHVybCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCAoZmluZC1maWxlIHVybCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAnaGVscC1lY2hvIHVybCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZvbnRpZnktbGluay1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3Qg
XykKKyAgIkZvbnRpZnkgbGluayBkZXN0aW5hdGlvbiBOT0RFIGFuZCBoaWRlIGl0IHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91
Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAodHJlZXNpdC1mb250
aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQt
bm9kZS1lbmQgbm9kZSkKKyAgICdtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uIG92ZXJyaWRl
IHN0YXJ0IGVuZCkKKyAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAocHV0LXRl
eHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBu
b2RlKQorICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFy
a3VwKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlIG5pbAor
ICAiQ2FjaGVkIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBsaW5rIHJlZmVyZW5jZSBkZWZp
bml0aW9ucy4KK0VhY2ggZW50cnkgaXMgYSBjb25zIGNlbGwgbWFwcGluZyBhIGRvd25jYXNlZCBs
YWJlbCBzdHJpbmcgdG8gaXRzCitkZXN0aW5hdGlvbiBVUkwuIikKKworKGRlZnZhci1sb2NhbCBt
YXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayBuaWwKKyAgIlZhbHVlIG9mIGBidWZmZXIt
Y2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgY2FjaGUgd2FzIGJ1aWx0LiIpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMgKCkKKyAgIlJldHVybiBhbiBhbGlz
dCBvZiAoTEFCRUwgLiBVUkwpIGZyb20gbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMuCitMQUJF
TCBpcyBkb3duY2FzZWQgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcuICBSZXN1bHRzIGFy
ZQorY2FjaGVkIGFuZCByZWJ1aWx0IG9ubHkgd2hlbiB0aGUgYnVmZmVyIGNoYW5nZXMuIgorICAo
bGV0ICgodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2spKSkKKyAgICAodW5sZXNzIChl
cSB0aWNrIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNrKQorICAgICAgKGxldCogKChy
b290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAo
bWF0Y2hlcyAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgICAgICAgIHJv
b3QKKyAgICAgICAgICAgICAgICAgICAgICAgJygobGlua19yZWZlcmVuY2VfZGVmaW5pdGlvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua19sYWJlbCkgQGxhYmVsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAZGVzdCkpKSkKKyAgICAgICAgICAg
ICBkZWZzKQorICAgICAgICAod2hpbGUgbWF0Y2hlcworICAgICAgICAgIChsZXQqICgobGFiZWwt
cGFpciAocG9wIG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAoZGVzdC1wYWlyIChwb3AgbWF0
Y2hlcykpCisgICAgICAgICAgICAgICAgIChsYmwtdGV4dCAoc3RyaW5nLXRyaW0gKHRyZWVzaXQt
bm9kZS10ZXh0IChjZHIgbGFiZWwtcGFpcikgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiXFxbIiAiXFxdIikpKQorICAgICAgICAgICAgKHB1c2ggKGNvbnMgKGRv
d25jYXNlIGxibC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10
ZXh0IChjZHIgZGVzdC1wYWlyKSB0KSkKKyAgICAgICAgICAgICAgICAgIGRlZnMpKSkKKyAgICAg
ICAgKHNldHEgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlIChucmV2ZXJzZSBkZWZzKQorICAg
ICAgICAgICAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayB0aWNrKSkpCisgICAg
bWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1yZXNv
bHZlLWxpbmstcmVmIChsYWJlbCkKKyAgIlJlc29sdmUgTEFCRUwgdG8gYSBVUkwgdmlhIGxpbmsg
cmVmZXJlbmNlIGRlZmluaXRpb25zLgorTEFCRUwgc2hvdWxkIGJlIHRoZSB0ZXh0IHdpdGhvdXQg
YnJhY2tldHMuICBNYXRjaGluZyBpcworY2FzZS1pbnNlbnNpdGl2ZSBwZXIgQ29tbW9uTWFyayBz
cGVjIHNlY3Rpb24gNC43LiIKKyAgKGFsaXN0LWdldCAoZG93bmNhc2UgbGFiZWwpIChtYXJrZG93
bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMpCisgICAgICAgICAgICAgbmlsIG5pbCAjJ2VxdWFs
KSkKKworOzs7IEZyYWdtZW50IGxpbmtzOgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMtLXNsdWct
Z2l0aHViLXN0cmlwLXJlCisgICJbXVshXCIjJCUmJygpKissLi86Ozw9Pj9AXFxeYHt8fX5dIgor
ICAiUHVuY3R1YXRpb24gc3RyaXBwZWQgYnkgR2l0SHViJ3MgZ2gtc2x1Z2dlciBiZWZvcmUgaHlw
aGVuYXRpb24uIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1YiAodGV4dCkKKyAg
IlJldHVybiB0aGUgR2l0SHViLWZsYXZvciBzbHVnIGZvciBoZWFkaW5nIFRFWFQuCitNaXJyb3Jz
IHRoZSBnaC1zbHVnZ2VyIGFsZ29yaXRobTogbG93ZXJjYXNlLCBzdHJpcCBhIGZpeGVkCitwdW5j
dHVhdGlvbiBzZXQsIHJlcGxhY2Ugc3BhY2VzIHdpdGggaHlwaGVucy4iCisgIChsZXQqICgobGMg
KGRvd25jYXNlIHRleHQpKQorICAgICAgICAgKHN0cmlwcGVkIChyZXBsYWNlLXJlZ2V4cC1pbi1z
dHJpbmcKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHViLXN0cmlw
LXJlICIiIGxjKSkpCisgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6Ymxhbms6XV0i
ICItIiBzdHJpcHBlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNsdWctcGFuZG9jICh0ZXh0
KQorICAiUmV0dXJuIHRoZSBQYW5kb2MtZmxhdm9yIGF1dG8taWQgc2x1ZyBmb3IgaGVhZGluZyBU
RVhULgorTWlycm9ycyBQYW5kb2MncyBhbGdvcml0aG06IGRyb3AgZXZlcnl0aGluZyBiZWZvcmUg
dGhlIGZpcnN0CitsZXR0ZXIsIGtlZXAgYWxwaGFudW1lcmljcyBhbmQgYF8tLicsIGNvbGxhcHNl
IHdoaXRlc3BhY2UgcnVucyB0bworaHlwaGVucywgbG93ZXJjYXNlLiAgRmFsbHMgYmFjayB0byBc
InNlY3Rpb25cIiBpZiBlbXB0eS4iCisgIChsZXQqICgobGMgKGRvd25jYXNlIHRleHQpKQorICAg
ICAgICAgKGZyb20tbGV0dGVyIChpZiAoc3RyaW5nLW1hdGNoICJbWzphbHBoYTpdXSIgbGMpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgbGMgKG1hdGNoLWJlZ2lubmluZyAw
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgIChrZXB0IChyZXBsYWNl
LXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAiW15bOmFsbnVtOl1fLlxuXHRbOmJs
YW5rOl0tXSIgIiIgZnJvbS1sZXR0ZXIpKQorICAgICAgICAgKGh5cGhlbmF0ZWQgKHJlcGxhY2Ut
cmVnZXhwLWluLXN0cmluZyAiW1s6Ymxhbms6XVx0XG5dKyIgIi0iIGtlcHQpKQorICAgICAgICAg
KHRyaW1tZWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiLStcXCciICIiIGh5cGhlbmF0ZWQp
KSkKKyAgICAoaWYgKHN0cmluZy1lbXB0eS1wIHRyaW1tZWQpICJzZWN0aW9uIiB0cmltbWVkKSkp
CisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUKKyAgIlsgXHRdKntbIFx0
XSojXFwoW159IFx0XStcXClbIFx0XSp9WyBcdF0qXFwnIgorICAiTWF0Y2ggYSBQYW5kb2Mtc3R5
bGUgdHJhaWxpbmcgYHsjaWR9JyBvbiBhIGhlYWRpbmcgbGluZS4KK0NhcHR1cmUgZ3JvdXAgMSBp
cyB0aGUgZXhwbGljaXQgaWQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oZWFkaW5nLXRleHQt
YW5kLWlkIChyYXcpCisgICJTcGxpdCBSQVcgaGVhZGluZyB0ZXh0IGludG8gKFZJU0lCTEUgLiBF
WFBMSUNJVC1JRCkuCitFWFBMSUNJVC1JRCBpcyBub24tbmlsIGlmIFJBVyBlbmRzIHdpdGggYSBQ
YW5kb2Mtc3R5bGUgYHsjaWR9JywKK2luIHdoaWNoIGNhc2UgVklTSUJMRSBpcyBSQVcgd2l0aCB0
aGF0IHN1ZmZpeCByZW1vdmVkLiIKKyAgKGlmIChzdHJpbmctbWF0Y2ggbWFya2Rvd24tdHMtLWV4
cGxpY2l0LWlkLXJlIHJhdykKKyAgICAgIChjb25zIChzdWJzdHJpbmcgcmF3IDAgKG1hdGNoLWJl
Z2lubmluZyAwKSkKKyAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcpKQorICAgIChjb25z
IHJhdyBuaWwpKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNo
ZSBuaWwKKyAgIkNhY2hlZCBoYXNoIHRhYmxlIG1hcHBpbmcgaGVhZGluZyBzbHVnIHN0cmluZ3Mg
dG8gYnVmZmVyIHBvc2l0aW9ucy4KK0VhY2ggdmFsdWUgaXMgdGhlIGJ1ZmZlciBwb3NpdGlvbiBv
ZiB0aGUgc3RhcnQgb2YgdGhlIG1hdGNoaW5nCitgYXR4X2hlYWRpbmcnIG9yIGBzZXRleHRfaGVh
ZGluZycgbm9kZS4gIEJ1aWx0IGxhemlseSBieQorYG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkcycs
IGludmFsaWRhdGVkIGJ5IGJ1ZmZlci10aWNrIGNoYW5nZS4iKQorCisoZGVmdmFyLWxvY2FsIG1h
cmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLXRpY2sgbmlsCisgICJWYWx1ZSBvZiBgYnVmZmVy
LWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGhlYWRpbmctaWQgY2FjaGUgd2FzIGJ1aWx0
LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tYnVpbGQtaGVhZGluZy1pZHMgKCkKKyAgIldhbGsg
YWxsIGhlYWRpbmdzIGluIHRoZSBidWZmZXIgYW5kIHJldHVybiBhIGhhc2ggdGFibGUuCitXaGlj
aCBtYXBzIGVhY2ggc2x1ZyB0byB0aGUgYnVmZmVyIHBvc2l0aW9uIG9mIGl0cyBoZWFkaW5nLiAg
RWFjaAoraGVhZGluZyBjb250cmlidXRlcyBpdHMgR2l0SHViIHNsdWcsIGl0cyBQYW5kb2Mgc2x1
ZywgYW5kIGl0cyBleHBsaWNpdAorYHsjaWR9JyBpZiBwcmVzZW50LiAgQm90aCBzbHVnIGFsZ29y
aXRobXMgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBidWZmZXIKK2JlY2F1c2UgYSBtYXJrZG93biBm
aWxlIGlzIG9mdGVuIHByZXZpZXdlZCBieSBzZXZlcmFsIHJlbmRlcmVycyAoR2l0SHViCit3ZWIg
VUksIFBhbmRvYywgbWRCb29rLCBIdWdvLCBhbmQgc28gb24pIGFuZCB0aGUgc2FtZSBzb3VyY2Ug
c2hvdWxkCityZXNvbHZlIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb25lIHRoZSBhdXRob3Igd3JvdGUg
dGhlIGxpbmsgZm9yLiAgRm9yIG1vc3QKK2hlYWRpbmdzIHRoZSB0d28gYWxnb3JpdGhtcyBwcm9k
dWNlIHRoZSBzYW1lIHNsdWcgYW55d2F5LgorRHVwbGljYXRlIHNsdWdzICh3aXRoaW4gb25lIGFs
Z29yaXRobSkgYXJlIGRpc2FtYmlndWF0ZWQgYnkgYXBwZW5kaW5nCitgLTEnLCBgLTInLCBhbmQg
c28gb24sIGluIGRvY3VtZW50IG9yZGVyLCBtYXRjaGluZyBHaXRIdWIncyBiZWhhdmlvci4KK1do
ZW4gdHdvIGRpc3RpbmN0IGhlYWRpbmdzIHdvdWxkIG90aGVyd2lzZSBzaGFyZSBhIHNsdWcsIHRo
ZSBmaXJzdAorb2NjdXJyZW5jZSBpbiBkb2N1bWVudCBvcmRlciB3aW5zLiIKKyAgKGxldCAoKHRh
YmxlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisgICAgICAgIDs7IFBlci1hbGdv
cml0aG0gZGVkdXBlIGNvdW50ZXJzOiBob3cgbWFueSB0aW1lcyB0aGlzIGJhc2Ugc2x1ZworICAg
ICAgICA7OyBoYXMgYmVlbiBzZWVuIHNvIGZhciBpbiBkb2N1bWVudCBvcmRlci4KKyAgICAgICAg
KGdoLWNvdW50cyAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwpKQorICAgICAgICAocGQt
Y291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisgICAgICAgIChyb290ICh0
cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkpCisgICAgKGRvbGlzdCAoY2FwICh0
cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgIHJvb3QKKyAgICAgICAgICAg
ICAgICAgICcoKChhdHhfaGVhZGluZykgQGgpCisgICAgICAgICAgICAgICAgICAgICgoc2V0ZXh0
X2hlYWRpbmcpIEBoKSkpKQorICAgICAgKGxldCogKChub2RlIChjZHIgY2FwKSkKKyAgICAgICAg
ICAgICAocG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgKHJhdyAo
c3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpKQorICAgICAgICAgICAgIDs7
IFN0cmlwIHRoZSBsZWFkaW5nIG1hcmtlciAoIyMjIG9yID09PT0vLS0tLSkuCisgICAgICAgICAg
ICAgOzsgRm9yIGF0eCwgZHJvcCBsZWFkaW5nICMncyBhbmQgZm9sbG93aW5nIHNwYWNlLgorICAg
ICAgICAgICAgIDs7IEZvciBzZXRleHQsIGRyb3AgdGhlIHRyYWlsaW5nIHVuZGVybGluZSBsaW5l
LgorICAgICAgICAgICAgICh0ZXh0IChjb25kCisgICAgICAgICAgICAgICAgICAgICgoc3RyaW5n
LW1hdGNoICJcXGAjK1sgXHRdKlxcKC4qP1xcKVsgXHRdKiMqWyBcdF0qXFwnIiByYXcpCisgICAg
ICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgcmF3KSkKKyAgICAgICAgICAgICAgICAg
ICAgKChzdHJpbmctbWF0Y2ggIlxcYFxcKC4qP1xcKVxuWz0tXStbIFx0XSpcXCciIHJhdykKKyAg
ICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcpKQorICAgICAgICAgICAgICAg
ICAgICAodCByYXcpKSkKKyAgICAgICAgICAgICAoc3BsaXQgKG1hcmtkb3duLXRzLS1oZWFkaW5n
LXRleHQtYW5kLWlkIHRleHQpKQorICAgICAgICAgICAgICh2aXNpYmxlIChjYXIgc3BsaXQpKQor
ICAgICAgICAgICAgIChleHBsaWNpdCAoY2RyIHNwbGl0KSkpCisgICAgICAgIDs7IEV4cGxpY2l0
IHsjaWR9IHdpbnMgb3V0cmlnaHQ7IGZpcnN0IG9jY3VycmVuY2Uga2VlcHMgaXQuCisgICAgICAg
ICh3aGVuIChhbmQgZXhwbGljaXQgKG5vdCAoZ2V0aGFzaCBleHBsaWNpdCB0YWJsZSkpKQorICAg
ICAgICAgIChwdXRoYXNoIGV4cGxpY2l0IHBvcyB0YWJsZSkpCisgICAgICAgIDs7IEF1dG8gc2x1
Z3MgKEdpdEh1YiArIFBhbmRvYyksIGRlZHVwZWQgcGVyIGFsZ29yaXRobS4KKyAgICAgICAgKGxl
dCogKChnaC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1naXRodWIgdmlzaWJsZSkpCisgICAgICAg
ICAgICAgICAocGQtYmFzZSAobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jIHZpc2libGUpKQorICAg
ICAgICAgICAgICAgKGdoLW4gKGdldGhhc2ggZ2gtYmFzZSBnaC1jb3VudHMgMCkpCisgICAgICAg
ICAgICAgICAocGQtbiAoZ2V0aGFzaCBwZC1iYXNlIHBkLWNvdW50cyAwKSkKKyAgICAgICAgICAg
ICAgIChnaC1pZCAoaWYgKHplcm9wIGdoLW4pIGdoLWJhc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChmb3JtYXQgIiVzLSVkIiBnaC1iYXNlIGdoLW4pKSkKKyAgICAgICAgICAgICAgIChwZC1p
ZCAoaWYgKHplcm9wIHBkLW4pIHBkLWJhc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIChmb3Jt
YXQgIiVzLSVkIiBwZC1iYXNlIHBkLW4pKSkpCisgICAgICAgICAgKHB1dGhhc2ggZ2gtYmFzZSAo
MSsgZ2gtbikgZ2gtY291bnRzKQorICAgICAgICAgIChwdXRoYXNoIHBkLWJhc2UgKDErIHBkLW4p
IHBkLWNvdW50cykKKyAgICAgICAgICA7OyBGaXJzdC13cml0ZXItd2lucyBzbyBkb2N1bWVudCBv
cmRlciB0aWVicmVha3MgY29sbGlzaW9ucy4KKyAgICAgICAgICAodW5sZXNzIChnZXRoYXNoIGdo
LWlkIHRhYmxlKSAocHV0aGFzaCBnaC1pZCBwb3MgdGFibGUpKQorICAgICAgICAgICh1bmxlc3Mg
KGdldGhhc2ggcGQtaWQgdGFibGUpIChwdXRoYXNoIHBkLWlkIHBvcyB0YWJsZSkpKSkpCisgICAg
dGFibGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhlYWRpbmctaWRzICgpCisgICJSZXR1cm4g
dGhlIGhlYWRpbmctaWQgaGFzaCB0YWJsZSBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyLgorQ2FjaGUg
aXMgcmVidWlsdCBvbmx5IHdoZW4gYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyBoYXMgYWR2
YW5jZWQKK3NpbmNlIHRoZSBsYXN0IGNhbGwgKG1pcnJvcnMgYG1hcmtkb3duLXRzLS1saW5rLXJl
Zi1jYWNoZScpLiIKKyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrKSkp
CisgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNoZS10aWNr
KQorICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUgKG1hcmtkb3duLXRz
LS1idWlsZC1oZWFkaW5nLWlkcykKKyAgICAgICAgICAgIG1hcmtkb3duLXRzLS1oZWFkaW5nLWlk
LWNhY2hlLXRpY2sgdGljaykpCisgICAgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCAoaWQpCisgICJKdW1wIHRvIHRo
ZSBoZWFkaW5nIHdob3NlIHNsdWcgbWF0Y2hlcyBJRCAod2l0aG91dCBsZWFkaW5nIGAjJykuCitQ
dXNoZXMgdGhlIG1hcmsgYmVmb3JlIG1vdmluZyBzbyBgQy11IEMtU1BDJyByZXR1cm5zLiAgU2ln
bmFscworYHVzZXItZXJyb3InIGlmIG5vIGhlYWRpbmcgbWF0Y2hlcy4iCisgIChpZi1sZXQqICgo
cG9zIChnZXRoYXNoIGlkIChtYXJrZG93bi10cy0taGVhZGluZy1pZHMpKSkpCisgICAgICAocHJv
Z24KKyAgICAgICAgKHB1c2gtbWFyaykKKyAgICAgICAgKGdvdG8tY2hhciBwb3MpCisgICAgICAg
IChyZWNlbnRlcikpCisgICAgKHVzZXItZXJyb3IgIk5vIGhlYWRpbmcgZm9yIGZyYWdtZW50OiAj
JXMiIGlkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nIChub2RlIF9v
dmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiQXBwbHkgdGhlIGhlYWRpbmcgZmFjZSBh
Y3Jvc3MgTk9ERS4KK0xheWVyIHRoZSBmYWNlIG9uIHRvcCBvZiBjaGlsZCBzdWItbm9kZXMgKGUu
Zy4gYW4gaW5saW5lIGxpbmspIHNvCit0aGVpciBvd24gZmFjZXMgYXJlIHByZXNlcnZlZC4gIFN0
cmlwIGFueSBwcmlvciBjb3B5IG9mIHRoZSBmYWNlCitmaXJzdCBzbyBpdCBkb2VzIG5vdCBhY2N1
bXVsYXRlIHdoZW4gdGhlIGhlYWRpbmcgaXMgcmVmb250aWZpZWQgb3IKK2l0cyBsZXZlbC90eXBl
IGNoYW5nZXMgZHVyaW5nIGVkaXRpbmcuCisKK0ZvciBBVFggaGVhZGluZ3MsIGFsc28gZm9udGlm
eSBhbnkgb3B0aW9uYWwgdHJhaWxpbmcgY2xvc2luZy1gIycKK3NlcXVlbmNlIGFzIGEgZGVsaW1p
dGVyLiAgVGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgZG9lcyBub3QgcHJvZHVjZSBhCitzZXBhcmF0
ZSBub2RlIGZvciB0aGVzZTsgcGVyIENvbW1vbk1hcmsgdGhleSBhcmUgZGVjb3JhdGl2ZSBhbmQK
K211c3QgYmUgcHJlY2VkZWQgYnkgYSBzcGFjZSBvciB0YWIuIgorICAobGV0KiAoKHR5cGUgKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgKG4tc3RhcnQgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkKKyAgICAgICAgIChuLWVuZCAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQor
ICAgICAgICAgKGZhY2UgKGNvbmQKKyAgICAgICAgICAgICAgICAoKGVxdWFsIHR5cGUgInNldGV4
dF9oZWFkaW5nIikKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLXNldGV4dC1oZWFkaW5n
KQorICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZXIgKHRy
ZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKKyAgICAgICAgICAgICAgICAgICAoaW50ZXJuIChm
b3JtYXQgIm1hcmtkb3duLXRzLWhlYWRpbmctJWQiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKSkpKSkpCisg
ICAgKGZvbnQtbG9jay0tcmVtb3ZlLWZhY2UtZnJvbS10ZXh0LXByb3BlcnR5IG4tc3RhcnQgbi1l
bmQgJ2ZhY2UgZmFjZSkKKyAgICAoZm9udC1sb2NrLWFwcGVuZC10ZXh0LXByb3BlcnR5IG4tc3Rh
cnQgbi1lbmQgJ2ZhY2UgZmFjZSkKKyAgICAod2hlbiAoc3RyaW5nLXByZWZpeC1wICJhdHhfIiB0
eXBlKQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgbi1lbmQpCisg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHRcbiIgbi1zdGFydCkKKyAgICAgICAgKGxl
dCAoKGxpbmUtZW5kIChwb2ludCkpKQorICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIg
XHQiIG4tc3RhcnQpCisgICAgICAgICAgKGxldCAoKHRyYWlsaW5nLWVuZCAocG9pbnQpKSkKKyAg
ICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBuLXN0YXJ0KQorICAgICAgICAgICAg
KGxldCAoKHRyYWlsaW5nLXN0YXJ0IChwb2ludCkpKQorICAgICAgICAgICAgICAod2hlbiAoYW5k
ICg8IHRyYWlsaW5nLXN0YXJ0IHRyYWlsaW5nLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAoPiB0cmFpbGluZy1zdGFydCBuLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICht
ZW1xIChjaGFyLWJlZm9yZSB0cmFpbGluZy1zdGFydCkgJyg/XHMgP1x0KSkpCisgICAgICAgICAg
ICAgICAgKGZvbnQtbG9jay0tcmVtb3ZlLWZhY2UtZnJvbS10ZXh0LXByb3BlcnR5CisgICAgICAg
ICAgICAgICAgIHRyYWlsaW5nLXN0YXJ0IHRyYWlsaW5nLWVuZAorICAgICAgICAgICAgICAgICAn
ZmFjZSAnbWFya2Rvd24tdHMtZGVsaW1pdGVyKQorICAgICAgICAgICAgICAgIChmb250LWxvY2st
cHJlcGVuZC10ZXh0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgIHRyYWlsaW5nLXN0YXJ0IHRy
YWlsaW5nLWVuZAorICAgICAgICAgICAgICAgICAnZmFjZSAnbWFya2Rvd24tdHMtZGVsaW1pdGVy
KQorICAgICAgICAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAg
ICAgICAgICAgICA7OyBBbHNvIGhpZGUgdGhlIHNwYWNlKHMpIHByZWNlZGluZyB0aGUgY2xvc2Vy
IGFuZCBhbnkKKyAgICAgICAgICAgICAgICAgIDs7IHRyYWlsaW5nIHdoaXRlc3BhY2UsIHNvIHRo
ZSBoZWFkaW5nIGxvb2tzIGNsZWFuLgorICAgICAgICAgICAgICAgICAgKGxldCAoKGhpZGUtc3Rh
cnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgdHJhaWxpbmctc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiIG4tc3RhcnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAgICAgICAgICAgICAg
ICAgKHB1dC10ZXh0LXByb3BlcnR5IGhpZGUtc3RhcnQgbGluZS1lbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy0tbWFya3VwKSkpKSkpKSkpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBvciBpbWFnZSB0ZXh0IE5PREUgYXMgYSBjbGlj
a2FibGUgYnV0dG9uLgorV29ya3MgZm9yIGlubGluZSBsaW5rcywgcmVmZXJlbmNlIGxpbmtzLCBz
aG9ydGN1dCBsaW5rcywgYW5kCitpbWFnZSBkZXNjcmlwdGlvbnMuICBUaGUgVVJMIGlzIHRha2Vu
IGZyb20gYSBzaWJsaW5nCitgbGlua19kZXN0aW5hdGlvbicgbm9kZSB3aGVuIHByZXNlbnQsIG9y
IHJlc29sdmVkIGZyb20gYQorbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbiwgb3IgdGhlIG5vZGUg
dGV4dCBpdHNlbGYgaXMgdXNlZCBhcworZmFsbGJhY2suICBPVkVSUklERSwgU1RBUlQsIGFuZCBF
TkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUn
LiIKKyAgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkpCisgICAgOzsg
V2hlbiBOT0RFIGlzIGEgbGlua19sYWJlbCBpbnNpZGUgYSBmdWxsX3JlZmVyZW5jZV9saW5rIHRo
YXQKKyAgICA7OyBhbHNvIGhhcyBhIGxpbmtfdGV4dCwgc2tpcCBpdCwgbGlua190ZXh0IGhhbmRs
ZXMgdGhhdCBsaW5rLgorICAgICh1bmxlc3MgKGFuZCAoc3RyaW5nPSAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkgImxpbmtfbGFiZWwiKQorICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gt
c3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfdGV4dFxcJyIpKQorICAgICAgKHRyZWVzaXQtZm9udGlm
eS13aXRoLW92ZXJyaWRlCisgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNp
dC1ub2RlLWVuZCBub2RlKQorICAgICAgICdtYXJrZG93bi10cy1saW5rIG92ZXJyaWRlIHN0YXJ0
IGVuZCkKKyAgICAgIChsZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQg
IlxcYGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJsIChpZiBkZXN0Cisg
ICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3QgdCkKKyAgICAgICAg
ICAgICAgICAgICAgOzsgUmVmZXJlbmNlIGxpbmtzOiByZXNvbHZlIHZpYSBsaW5rX2xhYmVsIG9y
IGxpbmtfdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgKGxldCogKChsYWJlbC1ub2RlICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ICJcXGBsaW5rX2xhYmVsXFwnIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGFiZWwgKGlmIGxhYmVsLW5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cmluZy10cmltICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLW5vZGUgdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXFsiICJcXF0iKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5v
ZGUgdCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3IgKG1hcmtkb3duLXRzLS1yZXNvbHZl
LWxpbmstcmVmIGxhYmVsKQorICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCkpKSkpCisg
ICAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAgICAgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSB1cmwpKSkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5k
ICZyZXN0IF8pCisgICJGb250aWZ5IGF1dG9saW5rIE5PREUgKFVSSSBvciBlbWFpbCkgYXMgYSBj
bGlja2FibGUgYnV0dG9uLgorRm9yIGVtYWlsIGF1dG9saW5rcywgdGhlIFVSTCBpcyBwcmVmaXhl
ZCB3aXRoIFwibWFpbHRvOlwiLgorQW5nbGUgYnJhY2tldCBkZWxpbWl0ZXJzIGFyZSBoaWRkZW4g
d2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNz
ZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQq
ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUt
ZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKGlubmVyIChidWZmZXItc3Vi
c3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgKDErIG5vZGUtc3RhcnQpICgx
LSBub2RlLWVuZCkpKQorICAgICAgICAgKHVybCAoaWYgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10
eXBlIG5vZGUpICJlbWFpbF9hdXRvbGluayIpCisgICAgICAgICAgICAgICAgICAoY29uY2F0ICJt
YWlsdG86IiBpbm5lcikKKyAgICAgICAgICAgICAgICBpbm5lcikpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZQorICAgICBub2RlLXN0YXJ0IG5vZGUtZW5kICdtYXJrZG93bi10
cy1saW5rIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1i
dXR0b24gbm9kZS1zdGFydCBub2RlLWVuZCB1cmwpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlk
ZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0
YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1t
YXJrdXApCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUtZW5kKSBub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXAp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1sYWJlbCAobm9kZSBv
dmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayByZWZlcmVuY2UgZGVm
aW5pdGlvbiBsYWJlbCBOT0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1RoZSBicmFja2V0cyBh
bmQgY29sb24gYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RB
UlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgt
b3ZlcnJpZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9k
ZSkpCisgICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAg
ICAocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgKGRlc3Qtbm9k
ZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfZGVzdGluYXRpb25cXCci
KSkKKyAgICAgICAgICh1cmwgKHdoZW4gZGVzdC1ub2RlICh0cmVlc2l0LW5vZGUtdGV4dCBkZXN0
LW5vZGUgdCkpKSkKKyAgICA7OyBGb250aWZ5IHRoZSBsYWJlbCB0ZXh0IChpbnNpZGUgYnJhY2tl
dHMpLgorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAoMSsgbm9kZS1z
dGFydCkgKDEtIG5vZGUtZW5kKQorICAgICAnbWFya2Rvd24tdHMtbGluayBvdmVycmlkZSBzdGFy
dCBlbmQpCisgICAgOzsgTWFrZSBpdCBhIGNsaWNrYWJsZSBidXR0b24uCisgICAgKHdoZW4gdXJs
CisgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKDErIG5vZGUtc3RhcnQpICgx
LSBub2RlLWVuZCkgdXJsKSkKKyAgICA7OyBIaWRlICJbIiBiZWZvcmUgbGFiZWwgYW5kICJdOiAi
IGJldHdlZW4gbGFiZWwgYW5kIGRlc3RpbmF0aW9uLgorICAgICh3aGVuIG1hcmtkb3duLXRzLWhp
ZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFydCAoMSsgbm9kZS1z
dGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0t
bWFya3VwKQorICAgICAgKGxldCAoKGNvbG9uLWVuZCAoaWYgZGVzdC1ub2RlICh0cmVlc2l0LW5v
ZGUtc3RhcnQgZGVzdC1ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICgxKyBub2RlLWVu
ZCkpKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2RlLWVuZCkgY29sb24tZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFy
a3VwKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRlc3RpbmF0
aW9uIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsgcmVm
ZXJlbmNlIGRlc3RpbmF0aW9uIE5PREUgYW5kIGhpZGUgd2hlbiBtYXJrdXAgaGlkZGVuLgorT1ZF
UlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9u
dGlmeS13aXRoLW92ZXJyaWRlJy4iCisgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQor
ICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAg
J21hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24gb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAod2hl
biBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNp
dC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1sYXRleC1ibG9jay12YWxpZC1wIChub2RlKQorICAiUmV0dXJuIG5vbi1uaWwg
aWYgbGF0ZXggYmxvY2sgTk9ERSBpcyB3aXRoaW4gYSBzaW5nbGUgaW5saW5lIHNjb3BlLgorVGhl
IGdsb2JhbCBpbmxpbmUgcGFyc2VyIGNhbiBjcmVhdGUgZmFsc2UgYGxhdGV4X2Jsb2NrJyBtYXRj
aGVzCitzcGFubmluZyBhY3Jvc3MgcGFyYWdyYXBoIGJvdW5kYXJpZXMuICBDaGVjayB0aGF0IHRo
ZSBvcGVuaW5nIGFuZAorY2xvc2luZyBkZWxpbWl0ZXJzIHNoYXJlIHRoZSBzYW1lIG1hcmtkb3du
IGBpbmxpbmUnIGFuY2VzdG9yLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5kICgxLSAodHJlZXNpdC1ub2RlLWVuZCBub2Rl
KSkpKQorICAgICh3aGVuLWxldCogKChtZC1zdGFydCAodHJlZXNpdC1ub2RlLWF0IG5vZGUtc3Rh
cnQgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgICAobWQtZW5kICh0cmVlc2l0LW5vZGUtYXQg
bm9kZS1lbmQgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLXN0YXJ0ICh0cmVl
c2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kLXN0YXJ0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImlubGlu
ZSIpKSkpCisgICAgICAgICAgICAgICAgKGlubGluZS1lbmQgKHRyZWVzaXQtcGFyZW50LXVudGls
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kLWVuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl
cXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImlubGluZSIpKSkpKQorICAgICAgKGVxICh0cmVl
c2l0LW5vZGUtc3RhcnQgaW5saW5lLXN0YXJ0KQorICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3Rh
cnQgaW5saW5lLWVuZCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1sYXRleC1i
bG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGF0ZXgg
YmxvY2sgTk9ERSBhbmQgaGlkZSBpdHMgZGVsaW1pdGVycyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4u
CitTa2lwIGZvbnRpZmljYXRpb24gZm9yIGZhbHNlIG1hdGNoZXMgdGhhdCBzcGFuIGFjcm9zcyBw
YXJhZ3JhcGggYm91bmRhcmllcy4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2Vk
IHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAod2hlbiAo
bWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgbm9kZSkKKyAgICAodHJlZXNpdC1mb250
aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNp
dC1ub2RlLWVuZCBub2RlKQorICAgICAnbWFya2Rvd24tdHMtbGF0ZXggb3ZlcnJpZGUgc3RhcnQg
ZW5kKQorICAgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAoZG90aW1lcyAo
aSAodHJlZXNpdC1ub2RlLWNoaWxkLWNvdW50IG5vZGUpKQorICAgICAgICAobGV0ICgoY2hpbGQg
KHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIGkpKSkKKyAgICAgICAgICAod2hlbiAoZXF1YWwgKHRy
ZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAibGF0ZXhfc3Bhbl9kZWxpbWl0ZXIiKQorICAgICAgICAg
ICAgKHB1dC10ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgY2hpbGQpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgY2hpbGQpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWJhY2tzbGFzaC1lc2NhcGUgKG5v
ZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGJhY2tzbGFzaCBlc2Nh
cGUgTk9ERSwgaGlkaW5nIHRoZSBiYWNrc2xhc2ggd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorU2tp
cCBoaWRpbmcgaW5zaWRlIGBsYXRleF9ibG9jaycgd2hlcmUgYmFja3NsYXNoZXMgYXJlIExhVGVY
IHN5bnRheC4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8K
K2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0ICgobm9kZS1zdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAoaW4tbGF0ZXggKGVxdWFsICh0cmVl
c2l0LW5vZGUtdHlwZSAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAibGF0ZXhfYmxvY2siKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92
ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQgKDErIG5vZGUtc3RhcnQpCisgICAgICdtYXJrZG93bi10
cy1kZWxpbWl0ZXIgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICh3aGVuIChhbmQgbWFya2Rvd24t
dHMtaGlkZS1tYXJrdXAgKG5vdCBpbi1sYXRleCkpCisgICAgICAocHV0LXRleHQtcHJvcGVydHkg
bm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52
aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3VwKSkpKQorCisoZGVmdmFyIHNnbWwtY2hhci1uYW1l
cykKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbnRpdHktZ2V0ICJvcmcvb3JnLWVudGl0aWVzLmVs
IikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1kZWNvZGUtZW50aXR5ICh0ZXh0KQorICAiRGVjb2Rl
IEhUTUwgZW50aXR5IFRFWFQgKGUuZy4sIFwiJmFtcDtcIikgdG8gaXRzIGNoYXJhY3RlciBzdHJp
bmcuCitSZXR1cm4gdGhlIGRlY29kZWQgc3RyaW5nLCBvciBuaWwgaWYgdGhlIGVudGl0eSBpcyB1
bmtub3duLiIKKyAgKGNvbmQKKyAgIDs7IE51bWVyaWMgaGV4ICYjeDFGNEE5OworICAgKChzdHJp
bmctbWF0Y2ggIlxcYCYjeFxcKFtbOnhkaWdpdDpdXStcXCk7XFwnIiB0ZXh0KQorICAgIChjaGFy
LXRvLXN0cmluZyAoc3RyaW5nLXRvLW51bWJlciAobWF0Y2gtc3RyaW5nIDEgdGV4dCkgMTYpKSkK
KyAgIDs7IE51bWVyaWMgZGVjaW1hbCAmIzEyMzsKKyAgICgoc3RyaW5nLW1hdGNoICJcXGAmI1xc
KFtbOmRpZ2l0Ol1dK1xcKTtcXCciIHRleHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmct
dG8tbnVtYmVyIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkpKQorICAgOzsgTmFtZWQgJmFtcDsgJmNv
cHk7IHZpYSBvcmctZW50aXRpZXMsIGZhbGwgYmFjayB0byBzZ21sLWNoYXItbmFtZXMKKyAgICgo
c3RyaW5nLW1hdGNoICJcXGAmXFwoW1s6YWxudW06XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAobGV0
ICgobmFtZSAobWF0Y2gtc3RyaW5nIDEgdGV4dCkpKQorICAgICAgKHJlcXVpcmUgJ29yZy1lbnRp
dGllcykKKyAgICAgIChpZi1sZXQqICgoZW50cnkgKG9yZy1lbnRpdHktZ2V0IG5hbWUpKQorICAg
ICAgICAgICAgICAgICh1dGY4IChudGggNiBlbnRyeSkpKQorICAgICAgICAgIHV0ZjgKKyAgICAg
ICAgKHJlcXVpcmUgJ3NnbWwtbW9kZSkKKyAgICAgICAgKHdoZW4tbGV0KiAoKGNvZGUgKHNlcS1w
b3NpdGlvbiBzZ21sLWNoYXItbmFtZXMgbmFtZSAjJ2VxdWFsKSkpCisgICAgICAgICAgKGNoYXIt
dG8tc3RyaW5nIGNvZGUpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1lbnRp
dHkgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGVudGl0eSBO
T0RFIGFuZCBzaG93IGl0cyBkZWNvZGVkIHZhbHVlIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09W
RVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2Rl
LXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkp
CisgICAgICAgIChmYWNlIChpZiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJlbnRp
dHlfcmVmZXJlbmNlIikKKyAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1lbnRpdHktcmVm
ZXJlbmNlCisgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLW51bWVyaWMtY2hhcmFjdGVyLXJl
ZmVyZW5jZSkpKQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0
IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJp
ZGUgc3RhcnQgZW5kKQorICAgIChpZiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgICAo
d2hlbi1sZXQqICgoZGVjb2RlZCAobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlIHQpKSkKKyAgICAg
ICAgICAgICAgICAgICAgKChjaGFyLWRpc3BsYXlhYmxlLXAgKGFyZWYgZGVjb2RlZCAwKSkpKQor
ICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5
IGRlY29kZWQpKQorICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2Rl
LWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1yZXNvbHZlLWRp
c3BsYXktdmFsdWUgKHZhbCkKKyAgIlJlc29sdmUgVkFMLCBhIGNvbnMgKFBSRUZFUlJFRCAuIEZB
TExCQUNLKSwgdG8gYSBkaXNwbGF5YWJsZSB2YWx1ZS4KK1JldHVybiBQUkVGRVJSRUQgaWYgaXRz
IGZpcnN0IGNoYXJhY3RlciBwYXNzZXMgYGNoYXItZGlzcGxheWFibGUtcCcsCitvdGhlcndpc2Ug
cmV0dXJuIEZBTExCQUNLLiAgUmV0dXJuIG5pbCBpZiBWQUwgaXMgbmlsLiIKKyAgKHdoZW4gdmFs
CisgICAgKGxldCogKChwcmVmZXJyZWQgKGNhciB2YWwpKQorICAgICAgICAgICAoY2ggKGlmIChj
aGFyYWN0ZXJwIHByZWZlcnJlZCkgcHJlZmVycmVkIChhcmVmIHByZWZlcnJlZCAwKSkpKQorICAg
ICAgKGlmIChjaGFyLWRpc3BsYXlhYmxlLXAgY2gpIChjYXIgdmFsKSAoY2RyIHZhbCkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2JveCAobm9kZSBvdmVycmlkZSBzdGFy
dCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgdGFzayBsaXN0IGNoZWNrYm94IE5PREUsIHNob3cg
YSBVbmljb2RlIHN5bWJvbCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQs
IGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3Zl
cnJpZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkp
CisgICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAo
Y2hlY2tlZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJ0YXNrX2xpc3RfbWFya2Vy
X2NoZWNrZWQiKSkKKyAgICAgICAgIChmYWNlIChpZiBjaGVja2VkICdtYXJrZG93bi10cy10YXNr
LWNoZWNrZWQKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLXRhc2stdW5jaGVja2VkKSkK
KyAgICAgICAgICh2YWx1ZSAoaWYgY2hlY2tlZAorICAgICAgICAgICAgICAgICAgICBtYXJrZG93
bi10cy1jaGVja2VkLWNoZWNrYm94CisgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy11bmNo
ZWNrZWQtY2hlY2tib3gpKQorICAgICAgICAgKHJlcGxhY2VtZW50CisgICAgICAgICAgKGNvbmQg
KChlcSB2YWx1ZSAnaWNvbikKKyAgICAgICAgICAgICAgICAgKGljb24tc3RyaW5nIChpZiBjaGVj
a2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWNoZWNr
ZWQtY2hlY2tib3gtaWNvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rv
d24tdHMtdW5jaGVja2VkLWNoZWNrYm94LWljb24pKSkKKyAgICAgICAgICAgICAgICAodCAobWFy
a2Rvd24tdHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZSB2YWx1ZSkpKSkKKyAgICAgICAgIDs7IElm
IGBpY29uLXN0cmluZycgcmV0dXJuZWQgYW4gaW1hZ2UsIGl0cyBgZGlzcGxheScgcHJvcGVydHkK
KyAgICAgICAgIDs7IG9uIGNoYXIgMCBob2xkcyB0aGUgYWN0dWFsIGltYWdlIHNwZWM7IG5lc3Rl
ZCBgZGlzcGxheScKKyAgICAgICAgIDs7IHByb3BzIGFyZSBub3QgaG9ub3JlZCB3aGVuIGEgc3Ry
aW5nIGlzIHRoZSB2YWx1ZSBvZiBhCisgICAgICAgICA7OyBgZGlzcGxheScgdGV4dC1wcm9wZXJ0
eSwgc28gYXBwbHkgdGhlIHNwZWMgZGlyZWN0bHkuCisgICAgICAgICAoZGlzcGxheS1zcGVjCisg
ICAgICAgICAgKG9yIChhbmQgKGVxIHZhbHVlICdpY29uKSByZXBsYWNlbWVudAorICAgICAgICAg
ICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAwICdkaXNwbGF5IHJlcGxhY2VtZW50KSkKKyAg
ICAgICAgICAgICAgcmVwbGFjZW1lbnQpKSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3Zl
cnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZCBmYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAoaWYgKGFuZCBtYXJrZG93bi10cy1o
aWRlLW1hcmt1cCByZXBsYWNlbWVudAorICAgICAgICAgICAgIChvciAoZXEgdmFsdWUgJ2ljb24p
CisgICAgICAgICAgICAgICAgIChjaGFyLWRpc3BsYXlhYmxlLXAgKGFyZWYgcmVwbGFjZW1lbnQg
MCkpKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3RhcnQgbm9kZS1lbmQgJ2Rp
c3BsYXkgZGlzcGxheS1zcGVjKQorICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1z
dGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWhhcmQtbGluZS1icmVhayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykK
KyAgIkZvbnRpZnkgaGFyZCBsaW5lIGJyZWFrIE5PREU7IHNob3cgYSBVbmljb2RlIHN5bWJvbCB3
aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitBIGJhY2tzbGFzaCBicmVhayBnZXRzIGBtYXJrZG93bi10
cy1oYXJkLWxpbmUtYnJlYWstYmFja3NsYXNoJyAob3IgaXRzCitgLWhpZGRlbicgdmFyaWFudCB3
aGVuIG1hcmt1cCBpcyBoaWRkZW4pOyBhIHRyYWlsaW5nLXNwYWNlcyBicmVhayBnZXRzCitgbWFy
a2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlJyAob3IgYC1oaWRkZW4nKS4gIFdoZW4gaGlk
ZGVuLCBhCitiYWNrc2xhc2ggYnJlYWsgaXMgcmVwbGFjZWQgYnkgYSBzaW5nbGUgYG1hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhaycKK2dseXBoOyBhIHRyYWlsaW5nLXNwYWNlcyBicmVhayByZXBs
YWNlcyBlYWNoIHNwYWNlIHdpdGggdGhlIGdseXBoLCBzbyB0aGUgcnVuCitvZiBwaWxjcm93cyBm
aWxscyB0aGUgbGluZSB1cCB0byB0aGUgbmV3bGluZS4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVO
RCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScu
IgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAg
ICAgIChub2RlLWVuZCAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKHRleHQg
ICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpCisgICAgICAgICAoYmFja3NsYXNoICAo
YW5kICg+IChsZW5ndGggdGV4dCkgMCkgKGVxIChhcmVmIHRleHQgMCkgP1xcKSkpCisgICAgICAg
ICA7OyBEZXRlcm1pbmUgdGhlIGFjdHVhbCByYW5nZSB0byBmb250aWZ5IGFuZCByZXBsYWNlLiAg
VGhlCisgICAgICAgICA7OyBoYXJkX2xpbmVfYnJlYWsgbm9kZSBtYXkgbm90IGNvdmVyIHRoZSBm
dWxsIHJ1biBvZiB0cmFpbGluZworICAgICAgICAgOzsgc3BhY2VzLCBzbyB3YWxrIGJhY2sgZnJv
bSBlbmQtb2YtbGluZSBvdXJzZWx2ZXMgZm9yIHRoZQorICAgICAgICAgOzsgc3BhY2VzIHZhcmlh
bnQuCisgICAgICAgICAocmVnaW9uICAgICAoaWYgYmFja3NsYXNoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbnMgbm9kZS1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChpZiAoYW5kICg+IG5vZGUtZW5kIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGVxIChjaGFyLWJlZm9yZSBub2RlLWVuZCkgP1xuKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEtIG5vZGUtZW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAgICAgICAgICAgICAgICAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG5vZGUt
c3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGVvbCAobGluZS1lbmQtcG9z
aXRpb24pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGVvbCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiAobGluZS1iZWdpbm5pbmctcG9z
aXRpb24pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW9sKSkpKSkKKyAgICAgICAgIChyZWdpb24t
c3RhcnQgKGNhciByZWdpb24pKQorICAgICAgICAgKHJlZ2lvbi1lbmQgICAoY2RyIHJlZ2lvbikp
CisgICAgICAgICAoZmFjZSAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICgoYW5k
IGJhY2tzbGFzaCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgJ21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuKQorICAgICAg
ICAgICAgICAgICAgICAgIChiYWNrc2xhc2ggJ21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1i
YWNrc2xhc2gpCisgICAgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
CisgICAgICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3Bh
Y2UtaGlkZGVuKQorICAgICAgICAgICAgICAgICAgICAgICh0ICdtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstc3BhY2UpKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlIHJl
Z2lvbi1zdGFydCByZWdpb24tZW5kIGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIDs7IEFsd2F5cyBzdGFydCBieSBjbGVhcmlu
ZyBhbnkgc3RhbGUgYGRpc3BsYXknIHByb3BlcnR5LiAgV2UgbmV2ZXIKKyAgICA7OyBzcGFuIHRo
ZSB0cmFpbGluZyBuZXdsaW5lIHdpdGggYGRpc3BsYXknIChpdCBjb25mdXNlcworICAgIDs7IHJl
ZGlzcGxheSdzIGN1cnNvciBwbGFjZW1lbnQpLCBhbmQgd2Ugb25seSBwYWludCBhIHNpbmdsZQor
ICAgIDs7IGNvbWJpbmVkIHN0cmluZyBvbnRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1
biwgbGVhdmluZworICAgIDs7IHRoZSByZXN0IG9mIHRoZSBtYXJrdXAgYWxvbmUuCisgICAgKHJl
bW92ZS10ZXh0LXByb3BlcnRpZXMgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgJyhkaXNwbGF5IG5p
bCkpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChsZXQqICgoc3Bl
YyAoaWYgYmFja3NsYXNoCisgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tcmVz
b2x2ZS1kaXNwbGF5LXZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1o
YXJkLWxpbmUtYnJlYWstYmFja3NsYXNoKQorICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24t
dHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlKSkKKyAgICAgICAgICAgICAoc3RyIChjb25kCisgICAg
ICAgICAgICAgICAgICAgKChudWxsIHNwZWMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAoKGNo
YXJhY3RlcnAgc3BlYykgKGNoYXItdG8tc3RyaW5nIHNwZWMpKQorICAgICAgICAgICAgICAgICAg
ICgoc3RyaW5ncCBzcGVjKSBzcGVjKQorICAgICAgICAgICAgICAgICAgICgoZnVuY3Rpb25wIHNw
ZWMpCisgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIHNwZWMgKC0gcmVnaW9uLWVuZCByZWdp
b24tc3RhcnQpKSkpKSkKKyAgICAgICAgKHdoZW4gKGFuZCAoc3RyaW5ncCBzdHIpCisgICAgICAg
ICAgICAgICAgICAgKD4gKGxlbmd0aCBzdHIpIDApCisgICAgICAgICAgICAgICAgICAgKGNoYXIt
ZGlzcGxheWFibGUtcCAoYXJlZiBzdHIgMCkpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSByZWdpb24tc3RhcnQgKDErIHJlZ2lvbi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2Rpc3BsYXkgc3RyKQorICAgICAgICAgIDs7IEZvciB0aGUgdHJhaWxpbmctc3BhY2Vz
IHZhcmlhbnQsIGhpZGUgdGhlIHJlbWFpbmluZworICAgICAgICAgIDs7IHNwYWNlcyBpbiB0aGUg
cnVuIHNvIHRoZSBsaW5lIGRvZXNuJ3QgZW5kIHdpdGggbGVmdG92ZXIKKyAgICAgICAgICA7OyB3
aGl0ZXNwYWNlIGFmdGVyIHRoZSBzdWJzdGl0dXRlZCBnbHlwaC4gIEVhY2ggcG9zaXRpb24KKyAg
ICAgICAgICA7OyBnZXRzIGl0cyBvd24gZW1wdHktc3RyaW5nIGBkaXNwbGF5JyBzbyBjdXJzb3Ig
cGxhY2VtZW50CisgICAgICAgICAgOzsgc3RheXMgdW5hbWJpZ3VvdXMuCisgICAgICAgICAgKHVu
bGVzcyBiYWNrc2xhc2gKKyAgICAgICAgICAgIChsZXQgKChpICgxKyByZWdpb24tc3RhcnQpKSkK
KyAgICAgICAgICAgICAgKHdoaWxlICg8IGkgcmVnaW9uLWVuZCkKKyAgICAgICAgICAgICAgICAo
cHV0LXRleHQtcHJvcGVydHkgaSAoMSsgaSkgJ2Rpc3BsYXkgIiIpCisgICAgICAgICAgICAgICAg
KHNldHEgaSAoMSsgaSkpKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LXRo
ZW1hdGljLWJyZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlm
eSB0aGVtYXRpYyBicmVhayBOT0RFIGFuZCBzaG93IGEgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRk
ZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJl
ZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVz
aXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5k
IG5vZGUpKSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUgbm9kZS1zdGFydCBu
b2RlLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMt
dGhlbWF0aWMtYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJp
ZGUgc3RhcnQgZW5kKQorICAgIChsZXQgKChjaGFyIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNw
bGF5LXZhbHVlCisgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNo
YXJhY3RlcikpKQorICAgICAgKGlmIChhbmQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgY2hhciAo
Y2hhci1kaXNwbGF5YWJsZS1wIGNoYXIpKQorICAgICAgICAgIChsZXQqICgoY29sIChzYXZlLWV4
Y3Vyc2lvbiAoZ290by1jaGFyIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChjdXJyZW50LWNvbHVtbikpKQorICAgICAgICAgICAgICAgICA7OyBTcGFu
IGlmIHRoZSBmYWNlIGhhcyBub24tbmlsIDpleHRlbmQuCisgICAgICAgICAgICAgICAgIChzcGFu
LWxlbmd0aCAoaWYgKGZhY2UtYXR0cmlidXRlICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhawor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5k
IG5pbCAnZGVmYXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAod2lu
ZG93LWJvZHktd2lkdGgpIGNvbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIp
KSkKKyAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoY29uY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICht
YWtlLXN0cmluZyBzcGFuLWxlbmd0aCBjaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiXG4iKSkpCisgICAgICAgIChyZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQg
bm9kZS1lbmQgJyhkaXNwbGF5IG5pbCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRp
ZnktY29kZS1ibG9jayAobm9kZSBfb3ZlcnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykKKyAgIkZv
bnRpZnkgY29kZSBibG9jayBjb250ZW50IE5PREUgd2l0aCBhIGJhY2tncm91bmQgb3ZlcmxheS4K
K1VzZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuJyB3aGVuIG1hcmt1cCBp
cyBoaWRkZW4sCitgbWFya2Rvd24tdHMtY29kZS1ibG9jaycgb3RoZXJ3aXNlLiAgVXNlIGFuIG92
ZXJsYXkgc28gdGhlCitiYWNrZ3JvdW5kIGxheWVycyBpdHNlbGYgYmVoaW5kIGxhbmd1YWdlLXNw
ZWNpZmljIGZvbnRpZmljYXRpb24uCitUaGUgb3ZlcmxheSBhbHNvIHN0b3JlcyB0aGUgY29kZSBi
bG9jayBsYW5ndWFnZSBhbmQgbW9kZSBhcworcHJvcGVydGllcyBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1sYW5ndWFnZScgYW5kCitgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlJywgYWNjZXNz
aWJsZSB2aWEKK2BtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0Jy4iCisgIChsZXQq
ICgobm9kZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgKGdv
dG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAg
ICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0
IikKKyAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgKGZhY2UgKGlmIG1h
cmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbWFya3VwLWhpZGRlbgorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29k
ZS1ibG9jaykpCisgICAgICAgICAobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUg
bm9kZSkpCisgICAgICAgICAobW9kZSAod2hlbiBsYW5nCisgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIGxhbmcpKSkKKyAgICAgICAgIChleGlz
dGluZyAoc2VxLWZpbmQgKGxhbWJkYSAob3YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG92ZXJsYXlzLWF0IG5vZGUtc3RhcnQpKSkpCisgICAgKGlmIGV4
aXN0aW5nCisgICAgICAgIChwcm9nbgorICAgICAgICAgIChtb3ZlLW92ZXJsYXkgZXhpc3Rpbmcg
bm9kZS1zdGFydCBub2RlLWVuZCkKKyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ2Zh
Y2UgZmFjZSkKKyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ21hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbGFuZ3VhZ2UgbGFuZykKKyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3Rpbmcg
J21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKSkKKyAgICAgIChsZXQgKChvdiAobWFr
ZS1vdmVybGF5IG5vZGUtc3RhcnQgbm9kZS1lbmQgbmlsIHQgbmlsKSkpCisgICAgICAgIDs7IE1h
cmtlcnMgbmVlZCB0byBiZSBzZXQgb25seSBvbmNlLgorICAgICAgICAob3ZlcmxheS1wdXQgb3Yg
J21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtlciAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGUtc3RhcnQpKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRz
LWNvZGUtZW5kLW1hcmtlciAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUt
ZW5kKSkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrIHQp
CisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnZmFjZSBmYWNlKQorICAgICAgICAob3ZlcmxheS1w
dXQgb3YgJ3ByaW9yaXR5ICcobmlsIC4gMTApKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21h
cmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UgbGFuZykKKyAgICAgICAgKG92ZXJsYXktcHV0
IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUgbW9kZSkKKyAgICAgICAgKG92ZXJsYXkt
cHV0IG92ICdldmFwb3JhdGUgdCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1hdC1jb2RlLWJs
b2NrLXAgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gbm9uIG5pbCBpZiBwb2ludCBpcyBpbiBh
IGNvZGUgYmxvY2suCitJZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuIgorICAoZ2V0LWNoYXItcHJv
cGVydHkgKG9yIHBvcyAocG9pbnQpKSAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykpCisKKyhkZWZ1
biBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0ICgmb3B0aW9uYWwgcG9zKQorICAi
UmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgb2YgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYg
UE9TIGlzIG5pbCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUg
YSBmZW5jZWQKK2NvZGUgYmxvY2suICBUaGlzIHdvcmtzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBh
IGd1ZXN0IHRyZWUtc2l0dGVyIHBhcnNlcgoraXMgYWN0aXZlLCBzaW5jZSB0aGUgbGFuZ3VhZ2Ug
aXMgc3RvcmVkIG9uIHRoZSBjb2RlIGJsb2NrIG92ZXJsYXkgYnkgdGhlCitob3N0IHBhcnNlcidz
IGZvbnRpZmljYXRpb24uIgorICAoZ2V0LWNoYXItcHJvcGVydHkgKG9yIHBvcyAocG9pbnQpKSAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLW1vZGUtYXQgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gdGhlIG1ham9yIG1v
ZGUgZm9yIHRoZSBjb2RlIGJsb2NrIGF0IFBPUy4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4g
IFJldHVybnMgbmlsIGlmIFBPUyBpcyBub3QgaW5zaWRlIGEgZmVuY2VkCitjb2RlIGJsb2NrIG9y
IGlmIHRoZSBsYW5ndWFnZSBoYXMgbm8gcmVjb2duaXplZCBtb2RlLiIKKyAgKHdoZW4gKG1hcmtk
b3duLXRzLWF0LWNvZGUtYmxvY2stcCBwb3MpCisgICAgKG9yIChnZXQtY2hhci1wcm9wZXJ0eSAo
b3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUpCisgICAgICAgIG1h
cmtkb3duLXRzLWRlZmF1bHQtY29kZS1ibG9jay1tb2RlKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0taG9zdC1yYW5nZXMtbm90aWZpZXIgKHJhbmdlcyBfcGFyc2VyKQorICAiUHJ1bmUgc3RhbGUg
Y29kZSBibG9jayBvdmVybGF5cyBhZnRlciB0aGUgaG9zdCBwYXJzZXIgcmVwYXJzZXMuCitSQU5H
RVMgaXMgYSBsaXN0IG9mIChTVEFSVCAuIEVORCkgY29ucyBjZWxscyBtYXJraW5nIHJlZ2lvbnMg
d2hlcmUKK3RoZSBtYXJrZG93biBwYXJzZSB0cmVlIGNoYW5nZWQuICBGb3IgZWFjaCBgbWFya2Rv
d24tdHMtY29kZS1ibG9jaycKK292ZXJsYXkgaW50ZXJzZWN0aW5nIGEgY2hhbmdlZCByYW5nZSwg
dmVyaWZ5IHRoYXQgYSBjb250YWluaW5nCitgZmVuY2VkX2NvZGVfYmxvY2snIG5vZGUgc3RpbGwg
ZXhpc3RzIGluIHRoZSBob3N0IHRyZWUuICBJZiBub3QsCit0aGUgZmVuY2VzIHdlcmUgZGVsZXRl
ZCwgc28gZGVsZXRlIHRoZSBvdmVybGF5IHRvIGF2b2lkIHJ1bm5pbmcKK2NvbW1hbmRzIGluIGEg
c3RhbGUgYmxvY2sgY29udGV4dC4iCisgIChkb2xpc3QgKHJhbmdlIHJhbmdlcykKKyAgICAobGV0
ICgoYmVnIChjYXIgcmFuZ2UpKQorICAgICAgICAgIChlbmQgKGNkciByYW5nZSkpKQorICAgICAg
KGRvbGlzdCAob3YgKG92ZXJsYXlzLWluIGJlZyBlbmQpKQorICAgICAgICAod2hlbiAob3Zlcmxh
eS1nZXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2spCisgICAgICAgICAgKGxldCogKChvdi1z
dGFydCAob3ZlcmxheS1zdGFydCBvdikpCisgICAgICAgICAgICAgICAgIChub2RlIChhbmQgb3Yt
c3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWF0IG92LXN0
YXJ0ICdtYXJrZG93bikpKSkKKyAgICAgICAgICAgICh1bmxlc3MgKGFuZCBub2RlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUgIlxcYGZlbmNlZF9jb2RlX2Jsb2NrXFwnIiB0KSkKKyAgICAgICAgICAg
ICAgKGRlbGV0ZS1vdmVybGF5IG92KSkpKSkpKSkKKworOzs7IEltYWdlIGhhbmRsaW5nOgorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWltYWdlLWFsb25lLW9uLWxpbmUtcCAobm9kZSkKKyAgIlJldHVy
biBub24tbmlsIGlmIGltYWdlIE5PREUgaXMgdGhlIG9ubHkgY29udGVudCBvbiBpdHMgbGluZS4K
K1doaXRlc3BhY2UsIGJsb2NrIHF1b3RlIG1hcmtlcnMgKGA+JyksIGFuZCBsaXN0IG1hcmtlcnMK
K1woYC0nLCBgKicsIGArJywgYDEuJykgYmVmb3JlIHRoZSBpbWFnZSBhcmUgaWdub3JlZC4iCisg
IChsZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChu
b2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAoZ290by1jaGFyIG5vZGUtc3RhcnQpCisgICAgICAobGV0ICgoYm9sIChsaW5lLWJlZ2lu
bmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAoZW9sIChsaW5lLWVuZC1wb3NpdGlvbikpKQor
ICAgICAgICA7OyBCZWZvcmUgdGhlIGltYWdlOiBvbmx5IGJsb2NrIHF1b3RlIG1hcmtlcnMsIHdo
aXRlc3BhY2UsCisgICAgICAgIDs7IGFuZCBhbiBvcHRpb25hbCBsaXN0IG1hcmtlciBhcmUgYWxs
b3dlZC4KKyAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAgICAgICAgKHJ4IGJv
cworICAgICAgICAgICAgICAgICAgKHplcm8tb3ItbW9yZSAoYW55ICI+IFx0IikpCisgICAgICAg
ICAgICAgICAgICAob3B0aW9uYWwgKG9yIChzZXEgKGFueSAiLSorIikgIiAiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2VxIChvbmUtb3ItbW9yZSBkaWdpdCkgKGFueSAiLiki
ICkgIiAiKSkpCisgICAgICAgICAgICAgICAgICBlb3MpCisgICAgICAgICAgICAgIChidWZmZXIt
c3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgYm9sIG5vZGUtc3RhcnQpKQorICAgICAgICAgICAgIDs7
IEFmdGVyIHRoZSBpbWFnZTogb25seSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFsbG93ZWQuCisgICAg
ICAgICAgICAgKHN0cmluZy1tYXRjaC1wCisgICAgICAgICAgICAgIChyeCBib3MgKHplcm8tb3It
bW9yZSAoYW55ICIgXHQiKSkgZW9zKQorICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1u
by1wcm9wZXJ0aWVzIG5vZGUtZW5kIGVvbCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWltYWdlIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiU2hv
dyBhbiBpbmxpbmUgaW1hZ2UgYXQgTk9ERS4KK1doZW4gYG1hcmtkb3duLXRzLWlubGluZS1pbWFn
ZXMnIGlzIG5vbi1uaWwsIGRpc3BsYXkgdGhlIGltYWdlLgorSWYgdGhlIGltYWdlIGxpbmsgaXMg
dGhlIG9ubHkgY29udGVudCBvbiBpdHMgbGluZSwgZGlzcGxheSB0aGUKK2ltYWdlIGJlbG93IHRo
ZSBsaW5rLiAgSWYgdGhlIGltYWdlIGlzIGlubGluZSB3aXRoaW4gYSBwYXJhZ3JhcGgsCitkaXNw
bGF5IGl0IHJpZ2h0IGFmdGVyIHRoZSBsaW5rIHRleHQuCitSZW1vdGUgaW1hZ2VzIGFyZSBjb250
cm9sbGVkIGJ5CitgbWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcycuIgor
ICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAg
IChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChlb2wgKHNhdmUt
ZXhjdXJzaW9uIChnb3RvLWNoYXIgbm9kZS1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgICAgIChzZWFyY2gtZW5kIChtaW4gKDEr
IGVvbCkgKHBvaW50LW1heCkpKSkKKyAgICA7OyBBbHdheXMgY2xlYXIgc3RhbGUgb3ZlcmxheXMg
Zm9yIHRoaXMgbm9kZSdzIHJhbmdlLgorICAgIChkb2xpc3QgKG92IChvdmVybGF5cy1pbiBub2Rl
LXN0YXJ0IHNlYXJjaC1lbmQpKQorICAgICAgKHdoZW4gKGFuZCAob3ZlcmxheS1nZXQgb3YgJ21h
cmtkb3duLXRzLWltYWdlKQorICAgICAgICAgICAgICAgICAoPj0gKG92ZXJsYXktc3RhcnQgb3Yp
IG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICg8PSAob3ZlcmxheS1lbmQgb3YpIHNlYXJj
aC1lbmQpKQorICAgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkKKyAgICAod2hlbiAoYW5kIG1h
cmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAgICAgICAgICAgIDs7IERvbid0IGNyZWF0ZSBp
bWFnZSBvdmVybGF5cyBmb3Igbm9kZXMgaW5zaWRlCisgICAgICAgICAgICAgICA7OyBmb2xkZWQg
KG91dGxpbmUtaW52aXNpYmxlKSBoZWFkaW5ncywgc2luY2UgdGhlCisgICAgICAgICAgICAgICA7
OyBpbWFnZXMgd291bGRuJ3QgYmUgdmlzaWJsZSBhbmQgY291bGQgaW50ZXJmZXJlCisgICAgICAg
ICAgICAgICA7OyB3aXRoIHRoZSBmb2xkZWQgZGlzcGxheS4KKyAgICAgICAgICAgICAgIChub3Qg
KG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1wIG5vZGUtc3RhcnQpKSkKKyAgICAgIChs
ZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJcXGBsaW5rX2Rlc3RpbmF0
aW9uXFwnIikpCisgICAgICAgICAgICAgKHVybCAoYW5kIGRlc3QgKHRyZWVzaXQtbm9kZS10ZXh0
IGRlc3QgdCkpKQorICAgICAgICAgICAgIChyZW1vdGVwIChhbmQgdXJsIChzdHJpbmctbWF0Y2gt
cCAiXFxgaHR0cHM/Oi8vIiB1cmwpKSkKKyAgICAgICAgICAgICAoZGlzcGxheWFibGUKKyAgICAg
ICAgICAgICAgKHdoZW4gdXJsCisgICAgICAgICAgICAgICAgKGlmIHJlbW90ZXAKKyAgICAgICAg
ICAgICAgICAgICAgKHdoZW4gKGVxIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1p
bWFnZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb3dubG9hZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAoaWdub3JlLWVycm9ycworICAgICAgICAgICAgICAgICAgICAgICAgKHJl
cXVpcmUgJ3VybC1oYW5kbGVycykKKyAgICAgICAgICAgICAgICAgICAgICAgICh3aXRoLXdvcmst
YnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQtYnVmZmVyLW11bHRpYnl0ZSBu
aWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh1cmwtaW5zZXJ0LWZpbGUtY29udGVudHMg
dXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgICAg
ICAgICAgICAgICAgIChsZXQgKChmaWxlIChleHBhbmQtZmlsZS1uYW1lIHVybCkpKQorICAgICAg
ICAgICAgICAgICAgICAoYW5kIChub3QgKGZpbGUtcmVtb3RlLXAgZmlsZSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAoaW1hZ2Utc3VwcG9ydGVkLWZpbGUtcCBmaWxlKQorICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbGUpKSkpKQorICAgICAgICAgICAgIChtYXgtdyAoYW5kIGRpc3BsYXlhYmxlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGgg
J3dpbmRvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1ib2R5LXdpZHRo
IG5pbCB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtaW1hZ2UtbWF4
LXdpZHRoKSkpCisgICAgICAgICAgICAgKGltZyAoYW5kIG1heC13CisgICAgICAgICAgICAgICAg
ICAgICAgIChjcmVhdGUtaW1hZ2UgZGlzcGxheWFibGUgbmlsIHJlbW90ZXAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6bWF4LXdpZHRoIG1heC13CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOnNjYWxlIDEpKSkpCisgICAgICAgICh3aGVuIGltZwor
ICAgICAgICAgIChsZXQqICgoYWxvbmUgKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5l
LXAgbm9kZSkpCisgICAgICAgICAgICAgICAgIChzdHIgKGlmIGFsb25lCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChjb25jYXQgIlxuIiAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkgaW1nKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplICIgIiAnZGlzcGxheSBpbWcpKSkK
KyAgICAgICAgICAgICAgICAgKG92IChtYWtlLW92ZXJsYXkgKDEtIG5vZGUtZW5kKSBub2RlLWVu
ZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMt
aW1hZ2UgdCkKKyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnYWZ0ZXItc3RyaW5nIHN0cikK
KyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnZXZhcG9yYXRlIHQpKSkpKSkpCisKKzs7OyBV
UkwvVVJJIGhhbmRsaW5nOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAg
Z290by1hZGRyZXNzLXVybC1yZWdleHAKKyAgIlJlZ2V4cCBtYXRjaGluZyBiYXJlIFVSTHMgbm90
IHdyYXBwZWQgaW4gYW5nbGUgYnJhY2tldHMgb3IgbGluayBzeW50YXguIikKKworKGRlZnZhciBt
YXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwIGdvdG8tYWRkcmVzcy1tYWlsLXJlZ2V4
cAorICAiUmVnZXhwIG1hdGNoaW5nIGJhcmUgZW1haWwgYWRkcmVzc2VzIG5vdCB3cmFwcGVkIGlu
IGFuZ2xlIGJyYWNrZXRzLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1iYXJlLXVy
aSAoc3RhcnQgZW5kKQorICAiRm9udGlmeSBiYXJlIFVSTCBvciBlbWFpbCBVUkkgYmV0d2VlbiBT
VEFSVCBhbmQgRU5ELgorU2tpcCBtYXRjaGVzIGFscmVhZHkgaW5zaWRlIHRyZWUtc2l0dGVyIGxp
bmsgb3IgYXV0b2xpbmsgbm9kZXMuIgorICAoZG9saXN0IChyZSAobGlzdCBtYXJrZG93bi10cy0t
YmFyZS11cmwtcmVnZXhwCisgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1iYXJlLWVt
YWlsLXVyaS1yZWdleHApKQorICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgKHdoaWxlIChyZS1z
ZWFyY2gtZm9yd2FyZCByZSBlbmQgdCkKKyAgICAgIChsZXQqICgodXJpLXN0YXJ0IChtYXRjaC1i
ZWdpbm5pbmcgMCkpCisgICAgICAgICAgICAgKHVyaS1lbmQgKG1hdGNoLWVuZCAwKSkKKyAgICAg
ICAgICAgICAodXJpIChtYXRjaC1zdHJpbmcgMCkpCisgICAgICAgICAgICAgKG5vZGUgKHRyZWVz
aXQtbm9kZS1hdCB1cmktc3RhcnQgJ21hcmtkb3duLWlubGluZSkpCisgICAgICAgICAgICAgKHBh
cmVudCAoYW5kIG5vZGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgICAgICAg
IChwYXJlbnQtdHlwZSAoYW5kIHBhcmVudCAodHJlZXNpdC1ub2RlLXR5cGUgcGFyZW50KSkpKQor
ICAgICAgICAodW5sZXNzIChvciAobWVtYmVyIHBhcmVudC10eXBlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJygiaW5saW5lX2xpbmsiICJmdWxsX3JlZmVyZW5jZV9saW5rIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxhcHNlZF9yZWZlcmVuY2VfbGluayIgInNob3J0
Y3V0X2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UiICJ1cmlfYXV0
b2xpbmsiICJlbWFpbF9hdXRvbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJs
aW5rX2Rlc3RpbmF0aW9uIikpCisgICAgICAgICAgICAgICAgICAgIChtZW1iZXIgKGFuZCBub2Rl
ICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
KCJ1cmlfYXV0b2xpbmsiICJlbWFpbF9hdXRvbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJsaW5rX2Rlc3RpbmF0aW9uIiAiY29kZV9zcGFuIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImNvZGVfZmVuY2VfY29udGVudCIgImluZm9fc3RyaW5nIikpCisgICAgICAg
ICAgICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSB1cmktc3RhcnQgJ2J1dHRvbikpCisgICAg
ICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uCisgICAgICAgICAgIHVyaS1zdGFy
dCB1cmktZW5kCisgICAgICAgICAgIChpZiAoZXEgdXJpLXN0YXJ0IDApCisgICAgICAgICAgICAg
ICB1cmkKKyAgICAgICAgICAgICAoY29uY2F0ICJtYWlsdG86IiB1cmkpKSkpKSkpKQorCis7Ozsg
dHJlZXNpdCBzZXR0aW5nczoKKwogKGRlZnZhciBtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5n
cwogICAodHJlZXNpdC1mb250LWxvY2stcnVsZXMKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAg
IDpmZWF0dXJlICdlcnJvcgorICAgOm92ZXJyaWRlIHQKKyAgICcoKEVSUk9SKSBAZm9udC1sb2Nr
LXdhcm5pbmctZmFjZSkKKwogICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxpbmUKICAgIDpvdmVy
cmlkZSB0CiAgICA6ZmVhdHVyZSAnZGVsaW1pdGVyCi0gICAnKChpbmxpbmVfbGluayBbICJbIiAi
XSIgIigiICIpIiBdIEBzaGFkb3cpCi0gICAgIChpbWFnZSBbICIhIiAiWyIgIl0iICIoIiAiKSIg
XSBAc2hhZG93KSkKKyAgICcoKGlubGluZV9saW5rIFsgIlsiICJdIiAiKCIgIikiIF0gQG1hcmtk
b3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKKyAgICAgKGZ1bGxfcmVmZXJlbmNlX2xpbmsgWyAi
WyIgIl0iIF0gQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKKyAgICAgKGNvbGxhcHNl
ZF9yZWZlcmVuY2VfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1p
dGVyKQorICAgICAoc2hvcnRjdXRfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyKQorICAgICAoaW1hZ2UgWyAiISIgIlsiICJdIiAiKCIgIikiIF0gQG1hcmtk
b3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAg
IDpmZWF0dXJlICdoZWFkaW5nCi0gICAnKChhdHhfaGVhZGluZyAoYXR4X2gxX21hcmtlcikpIEBt
YXJrZG93bi10cy1oZWFkaW5nLTEKLSAgICAgKGF0eF9oZWFkaW5nIChhdHhfaDJfbWFya2VyKSkg
QG1hcmtkb3duLXRzLWhlYWRpbmctMgotICAgICAoYXR4X2hlYWRpbmcgKGF0eF9oM19tYXJrZXIp
KSBAbWFya2Rvd24tdHMtaGVhZGluZy0zCi0gICAgIChhdHhfaGVhZGluZyAoYXR4X2g0X21hcmtl
cikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTQKLSAgICAgKGF0eF9oZWFkaW5nIChhdHhfaDVfbWFy
a2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNQotICAgICAoYXR4X2hlYWRpbmcgKGF0eF9oNl9t
YXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy02Ci0gICAgIChzZXRleHRfaGVhZGluZykgQG1h
cmtkb3duLXRzLXNldGV4dC1oZWFkaW5nKQorICAgJygoKGF0eF9oZWFkaW5nKSAgICBAbWFya2Rv
d24tdHMtLWZvbnRpZnktaGVhZGluZykKKyAgICAgKChzZXRleHRfaGVhZGluZykgQG1hcmtkb3du
LXRzLS1mb250aWZ5LWhlYWRpbmcpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVh
dHVyZSAnaGVhZGluZwpAQCAtMTk0LDE2ICsxNjM0LDQwIEBAIG1hcmtkb3duLXRzLS10cmVlc2l0
LXNldHRpbmdzCiAgICAgIChhdHhfaDNfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVs
aW1pdGVyCiAgICAgIChhdHhfaDRfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1p
dGVyCiAgICAgIChhdHhfaDVfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVy
Ci0gICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQor
ICAgICAoYXR4X2g2X21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgorICAg
ICAoc2V0ZXh0X2gxX3VuZGVybGluZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgor
ICAgICAoc2V0ZXh0X2gyX3VuZGVybGluZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRl
cikKIAogICAgOmxhbmd1YWdlICdtYXJrZG93bgogICAgOmZlYXR1cmUgJ3BhcmFncmFwaAotICAg
JygoKHRoZW1hdGljX2JyZWFrKSBAbWFya2Rvd24tdHMtZGVsaW1pdGVyKQotICAgICAoKGluZGVu
dGVkX2NvZGVfYmxvY2spIEBmb250LWxvY2stc3RyaW5nLWZhY2UpCisgICAnKCgodGhlbWF0aWNf
YnJlYWspIEBtYXJrZG93bi10cy0tZm9udGlmeS10aGVtYXRpYy1icmVhaykKKyAgICAgKChodG1s
X2Jsb2NrKSBAbWFya2Rvd24tdHMtaHRtbC1ibG9jaykKKyAgICAgKChpbmRlbnRlZF9jb2RlX2Js
b2NrKSBAbWFya2Rvd24tdHMtaW5kZW50ZWQtY29kZS1ibG9jaykKICAgICAgKGxpc3RfaXRlbSAo
bGlzdF9tYXJrZXJfc3RhcikgQG1hcmtkb3duLXRzLWxpc3QtbWFya2VyKQogICAgICAobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9wbHVzKSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpCiAgICAgIChs
aXN0X2l0ZW0gKGxpc3RfbWFya2VyX21pbnVzKSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpCi0g
ICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX2RvdCkgQG1hcmtkb3duLXRzLWxpc3QtbWFya2Vy
KSkKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFya2Rvd24tdHMtbGlzdC1t
YXJrZXIpCisgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BhcmVudGhlc2lzKSBAbWFya2Rv
d24tdHMtbGlzdC1tYXJrZXIpCisgICAgIChsaXN0X2l0ZW0gKHRhc2tfbGlzdF9tYXJrZXJfdW5j
aGVja2VkKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktY2hlY2tib3gpCisgICAgIChsaXN0X2l0ZW0g
KHRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94
KQorICAgICAobGlua19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfbGFiZWwpIEBt
YXJrZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1sYWJlbCkKKyAgICAgKGxpbmtfcmVmZXJlbmNl
X2RlZmluaXRpb24KKyAgICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktbGluay1yZWYtZGVzdGluYXRpb24pCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9u
CisgICAgICAobGlua190aXRsZSkgQG1hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24pKQorCisg
ICA6bGFuZ3VhZ2UgJ21hcmtkb3duCisgICA6ZmVhdHVyZSAncGFyYWdyYXBoCisgICA6b3ZlcnJp
ZGUgJ3ByZXBlbmQKKyAgICcoKHBpcGVfdGFibGVfaGVhZGVyICJ8IiBAbWFya2Rvd24tdHMtdGFi
bGUtaGVhZGVyKQorICAgICAocGlwZV90YWJsZV9oZWFkZXIgKHBpcGVfdGFibGVfY2VsbCkgQG1h
cmtkb3duLXRzLXRhYmxlLWhlYWRlcikKKyAgICAgKHBpcGVfdGFibGVfcm93ICJ8IiBAbWFya2Rv
d24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwpCisgICAgIChwaXBlX3RhYmxlX3JvdyAocGlwZV90
YWJsZV9jZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtY2VsbCkKKyAgICAgKHBpcGVfdGFibGVfZGVs
aW1pdGVyX3JvdyAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxsKQorICAgICAo
KHBpcGVfdGFibGUpIEBtYXJrZG93bi10cy10YWJsZSkKKyAgICAgKHBpcGVfdGFibGVfZGVsaW1p
dGVyX3JvdyAocGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBAbWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwpKQogCiAgICA6bGFu
Z3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoCkBAIC0yMTIsODkgKzE2NzYs
OTk5IEBAIG1hcmtkb3duLXRzLS10cmVlc2l0LXNldHRpbmdzCiAgICAgIChibG9ja19xdW90ZV9t
YXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGZlbmNlZF9jb2Rl
X2Jsb2NrX2RlbGltaXRlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgICAo
ZmVuY2VkX2NvZGVfYmxvY2sKLSAgICAgIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpIEBtYXJrZG93
bi10cy1sYW5ndWFnZS1rZXl3b3JkKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQor
ICAgICAgKGluZm9fc3RyaW5nIChsYW5ndWFnZSkgQG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdv
cmQpCisgICAgICBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQogICAgICAoYmxvY2tf
cXVvdGUKICAgICAgIChibG9ja19xdW90ZV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1k
ZWxpbWl0ZXIKICAgICAgIChwYXJhZ3JhcGggKGlubGluZSAoYmxvY2tfY29udGludWF0aW9uKSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkpKQogCisgICA6bGFuZ3VhZ2UgJ21hcmtk
b3duCisgICA6ZmVhdHVyZSAncGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygo
ZmVuY2VkX2NvZGVfYmxvY2sKKyAgICAgIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpKQorICAgICAg
KGNvZGVfZmVuY2VfY29udGVudCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2RlLWJs
b2NrKSkKKworICAgOmxhbmd1YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFwaAor
ICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChjb2RlX2ZlbmNl
X2NvbnRlbnQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrKSkKKwogICAgOmxhbmd1
YWdlICdtYXJrZG93bi1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICA6ZmVhdHVyZSAn
cGFyYWdyYXBoLWlubGluZQotICAgJygoKGltYWdlX2Rlc2NyaXB0aW9uKSBAbGluaykKLSAgICAg
KChsaW5rX2Rlc3RpbmF0aW9uKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoKGNvZGVf
c3BhbikgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAgICcoKChsaW5rX2Rlc3RpbmF0aW9uKSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChjb2RlX3NwYW4p
IEBtYXJrZG93bi10cy1jb2RlLXNwYW4pCiAgICAgICgoY29kZV9zcGFuX2RlbGltaXRlcikgQG1h
cmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKLSAgICAgKChlbXBoYXNpcykgQGl0YWxpYykK
LSAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBib2xkKQotICAgICAoaW5saW5lX2xpbmsgKGxpbmtf
dGV4dCkgQGxpbmspCi0gICAgIChpbmxpbmVfbGluayAobGlua19kZXN0aW5hdGlvbikgQGZvbnQt
bG9jay1zdHJpbmctZmFjZSkKLSAgICAgKHNob3J0Y3V0X2xpbmsgKGxpbmtfdGV4dCkgQGxpbmsp
KQorICAgICAoKGVtcGhhc2lzKSBAbWFya2Rvd24tdHMtZW1waGFzaXMpCisgICAgICgoc3Ryb25n
X2VtcGhhc2lzKSBAbWFya2Rvd24tdHMtYm9sZCkKKyAgICAgKChzdHJpa2V0aHJvdWdoKSBAbWFy
a2Rvd24tdHMtc3RyaWtldGhyb3VnaCkKKyAgICAgKGlubGluZV9saW5rIChsaW5rX3RleHQpIEBt
YXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5r
IChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChmdWxs
X3JlZmVyZW5jZV9saW5rIChsaW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1u
b2RlKQorICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIChsaW5rX3RleHQpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChzaG9ydGN1dF9saW5rIChsaW5rX3RleHQp
IEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChpbWFnZSAoaW1hZ2VfZGVz
Y3JpcHRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgICgodXJpX2F1
dG9saW5rKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspCisgICAgICgoZW1haWxfYXV0
b2xpbmspIEBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluaykKKyAgICAgKGlubGluZV9saW5r
IChsaW5rX3RpdGxlKSBAbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChiYWNr
c2xhc2hfZXNjYXBlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSkKKyAg
ICAgKChlbnRpdHlfcmVmZXJlbmNlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZW50aXR5KQorICAg
ICAoKG51bWVyaWNfY2hhcmFjdGVyX3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWVu
dGl0eSkKKyAgICAgKChodG1sX3RhZykgQG1hcmtkb3duLXRzLWh0bWwtdGFnKQorICAgICAoKGhh
cmRfbGluZV9icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhaykKKyAg
ICAgKChsYXRleF9ibG9jaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxhdGV4LWJsb2NrKSkKIAog
ICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxpbmUKICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgtaW5s
aW5lCiAgICA6b3ZlcnJpZGUgJ2FwcGVuZAogICAgJygoZW1waGFzaXNfZGVsaW1pdGVyKSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQotICAgKSkKIAotOzs7IEltZW51CisgICA6bGFu
Z3VhZ2UgJ21hcmtkb3duLWlubGluZQorICAgOmZlYXR1cmUgJ2ltYWdlLXByZXZpZXcKKyAgIDpv
dmVycmlkZSAnYXBwZW5kCisgICAnKChpbWFnZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWltYWdl
KSkpCisKKzs7OyBJbWVudToKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5vZGUtcCAobm9k
ZSkKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAgKG5vZGUpCiAgICJD
aGVjayBpZiBOT0RFIGlzIGEgdmFsaWQgZW50cnkgdG8gaW1lbnUuIgotICAoZXF1YWwgKHRyZWVz
aXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQotICAgICAgICAgImF0eF9o
ZWFkaW5nIikpCisgIChhbmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiaW5saW5l
IikKKyAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50
IG5vZGUpKQorICAgICAgICAgICAgICAiYXR4X2hlYWRpbmciKSkpCiAKLShkZWZ1biBtYXJrZG93
bi10cy1pbWVudS1uYW1lLWZ1bmN0aW9uIChub2RlKQorKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVu
dS1oZWFkaW5nLW5hbWUtZnVuY3Rpb24gKG5vZGUpCiAgICJSZXR1cm4gYW4gaW1lbnUgZW50cnkg
aWYgTk9ERSBpcyBhIHZhbGlkIGhlYWRlci4iCiAgIChsZXQgKChuYW1lICh0cmVlc2l0LW5vZGUt
dGV4dCBub2RlKSkpCi0gICAgKGlmIChtYXJrZG93bi10cy1pbWVudS1ub2RlLXAgbm9kZSkKLQko
dGhyZWFkLWZpcnN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpICh0cmVlc2l0LW5vZGUtdGV4
dCkpCisgICAgKGlmIChtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAgbm9kZSkKKyAg
ICAgICAgKGNhciAoc3BsaXQtc3RyaW5nICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICJcbiIgdCAiICIpKQogICAgICAgbmFtZSkpKQogCi0oZGVmdW4gbWFya2Rv
d24tdHMtb3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCi0gICJNYXRjaCBhIGhpZXJhcmNoaWNhbCBz
ZWN0aW9uIHRoYXQgaGFzIGEgaGVhZGluZy4iCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWNv
ZGUtYmxvY2stbm9kZS1wIChub2RlKQorICAiQ2hlY2sgaWYgTk9ERSBpcyBhbiBpbmZvX3N0cmlu
ZyB3aXRoIGRlc2NyaXB0aXZlIHRleHQgYWZ0ZXIgdGhlIGxhbmd1YWdlLiIKKyAgKGFuZCAoZXF1
YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJpbmZvX3N0cmluZyIpCisgICAgICAgKHdoZW4t
bGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJsYW5ndWFnZSIp
KQorICAgICAgICAgICAgICAgICAgICgoPCAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUpCisg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpCisgICAgICAg
ICAobm90IChzdHJpbmctYmxhbmstcAorICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmct
bm8tcHJvcGVydGllcworICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIGxhbmctbm9k
ZSkKKyAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKSkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWltZW51LWNvZGUtYmxvY2stbmFtZS1mdW5jdGlvbiAobm9kZSkKKyAg
IlJldHVybiBhbiBpbWVudSBlbnRyeSBuYW1lIGZvciBhIGNvZGUgYmxvY2sgaW5mb19zdHJpbmcg
Tk9ERS4KK1VzZXMgdGhlIGRlc2NyaXB0aXZlIHRleHQgYWZ0ZXIgdGhlIGxhbmd1YWdlIG5hbWUu
IgorICAod2hlbi1sZXQqICgobGFuZy1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5vZGUg
Imxhbmd1YWdlIikpCisgICAgICAgICAgICAgIChkZXNjIChzdHJpbmctdHJpbQorICAgICAgICAg
ICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIGxhbmctbm9kZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKSkKKyAgICAoZm9ybWF0ICIlczogJXMiICh0
cmVlc2l0LW5vZGUtdGV4dCBsYW5nLW5vZGUpIGRlc2MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1vdXRsaW5lLXByZWRpY2F0ZSAobm9kZSkKKyAgIk1hdGNoIE5PREUgaWYgaXQgaXMgYSBoaWVy
YXJjaGljYWwgc2VjdGlvbiB0aGF0IGhhcyBhIGhlYWRpbmcuIgogICAoYW5kIChlcXVhbCAodHJl
ZXNpdC1ub2RlLXR5cGUgbm9kZSkgInNlY3Rpb24iKQogICAgICAgICh3aGVuLWxldCogKChjaGls
ZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCkpKQogICAgICAgICAgKGVxdWFsICh0cmVlc2l0
LW5vZGUtdHlwZSBjaGlsZCkgImF0eF9oZWFkaW5nIikpKSkKIAotOzs7IENvZGUgYmxvY2tzCis7
OzsgSGVhZGluZyBtYW5pcHVsYXRpb246CisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tcGFyc2Vy
LWhlYWRpbmctbWF4LWxldmVsIDYKKyAgIk1heGltdW0gQVRYIGhlYWRpbmcgbGV2ZWwgaW4gTWFy
a2Rvd24gKGgxLWg2KS4KK0RlZmluZWQgYnkgdGhlIENvbW1vbk1hcmsgc3BlYyBhbmQgdGhlIHRy
ZWUtc2l0dGVyIGdyYW1tYXIuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBv
aW50ICgpCisgICJSZXR1cm4gdGhlIGF0eF9oZWFkaW5nIG5vZGUgYXQgb3IgYmVmb3JlIHBvaW50
LCBvciBuaWwuIgorICAod2hlbi1sZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkg
J21hcmtkb3duKSkpCisgICAgKGlmIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImF0
eF9oZWFkaW5nIikKKyAgICAgICAgbm9kZQorICAgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisg
ICAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJhdHhf
aGVhZGluZyIpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oZWFkaW5nLWxldmVsIChoZWFk
aW5nKQorICAiUmV0dXJuIEhFQURJTkcgbGV2ZWwgKHJhbmdlIDEgdG8gYG1hcmtkb3duLXRzLS1w
YXJzZXItaGVhZGluZy1tYXgtbGV2ZWwnKS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBoZWFkaW5nIDApKSkKKyAgICAobGVuZ3RoICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJr
ZXIgdCkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50ICgpCisgICJS
ZXR1cm4gdGhlIHNlY3Rpb24gbm9kZSBjb250YWluaW5nIHBvaW50LiIKKyAgKHdoZW4tbGV0KiAo
KG5vZGUgKHRyZWVzaXQtbm9kZS1hdCAocG9pbnQpICdtYXJrZG93bikpKQorICAgICh0cmVlc2l0
LXBhcmVudC11bnRpbAorICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbikgInNlY3Rpb24iKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXByb21vdGUgKCkK
KyAgIlByb21vdGUgdGhlIGhlYWRpbmcgb3IgbGlzdCBpdGVtIGF0IHBvaW50LgorRm9yIGhlYWRp
bmdzLCBkZWNyZWFzZSB0aGUgbGV2ZWwgKGUuZy4sICMjIHRvICMpLgorRm9yIGxpc3QgaXRlbXMs
IGRlY3JlYXNlIG5lc3RpbmcgKGRlZGVudCkuCitXaXRoIGB0cmFuc2llbnQtbWFyay1tb2RlJyBv
biBhbmQgbWFyayBhY3RpdmUsIHByb21vdGUgYWxsCitoZWFkaW5ncyBpbiB0aGUgcmVnaW9uLiIK
KyAgKGludGVyYWN0aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50LW1hcmstbW9kZSBt
YXJrLWFjdGl2ZSkKKyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbiAt
MSkpCisgICAoKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisgICAgKG1hcmtkb3du
LXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIG5pbCkpCisgICAodCAobWFya2Rvd24tdHMtLXBy
b21vdGUtb3ItZGVtb3RlIC0xKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtZGVtb3RlICgpCisg
ICJEZW1vdGUgdGhlIGhlYWRpbmcgb3IgbGlzdCBpdGVtIGF0IHBvaW50LgorRm9yIGhlYWRpbmdz
LCBpbmNyZWFzZSB0aGUgbGV2ZWwgKGUuZy4sICMgdG8gIyMpLgorRm9yIGxpc3QgaXRlbXMsIGlu
Y3JlYXNlIG5lc3RpbmcgKGluZGVudCkuCitXaXRoIGB0cmFuc2llbnQtbWFyay1tb2RlJyBvbiBh
bmQgbWFyayBhY3RpdmUsIGRlbW90ZSBhbGwgaGVhZGluZ3MKK2luIHRoZSByZWdpb24uIgorICAo
aW50ZXJhY3RpdmUpCisgIChjb25kCisgICAoKGFuZCB0cmFuc2llbnQtbWFyay1tb2RlIG1hcmst
YWN0aXZlKQorICAgIChtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIDEpKQor
ICAgKChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgIChtYXJrZG93bi10cy0t
bGlzdC1wcm9tb3RlLW9yLWRlbW90ZSB0KSkKKyAgICh0IChtYXJrZG93bi10cy0tcHJvbW90ZS1v
ci1kZW1vdGUgMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAo
ZGVsdGEpCisgICJDaGFuZ2UgdGhlIGhlYWRpbmcgYXQgcG9pbnQgYnkgREVMVEEgbGV2ZWxzLgor
TmVnYXRpdmUgREVMVEEgcHJvbW90ZXMgKGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3Jl
ICMpLgorSWYgdGhlIGhlYWRpbmcgaGFzIGFuIG9wdGlvbmFsIHRyYWlsaW5nIGNsb3NpbmctYCMn
IHNlcXVlbmNlLCB0aGF0CitzZXF1ZW5jZSBpcyByZXNpemVkIHRvIG1hdGNoIHRoZSBuZXcgbGV2
ZWwuIgorICAod2hlbi1sZXQqICgoaGVhZGluZyAobWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9p
bnQpKQorICAgICAgICAgICAgICAobWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaGVhZGluZyAw
KSkKKyAgICAgICAgICAgICAgKGxldmVsIChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtl
ciB0KSkpCisgICAgICAgICAgICAgIChuZXctbGV2ZWwgKCsgbGV2ZWwgZGVsdGEpKSkKKyAgICAo
d2hlbiAoYW5kICg+PSBuZXctbGV2ZWwgMSkKKyAgICAgICAgICAgICAgICg8PSBuZXctbGV2ZWwg
bWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCkpCisgICAgICAobGV0KiAoKG9w
ZW5lci1iZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXIpKQorICAgICAgICAgICAgIChvcGVu
ZXItZW5kICh0cmVlc2l0LW5vZGUtZW5kIG1hcmtlcikpCisgICAgICAgICAgICAgKGxpbmUtZW5k
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgb3Bl
bmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1lbmQtcG9zaXRpb24pKSkK
KyAgICAgICAgICAgICA7OyBEZXRlY3QgYSBDb21tb25NYXJrIGNsb3NpbmctYCMnIHNlcXVlbmNl
OiBvcHRpb25hbAorICAgICAgICAgICAgIDs7IHRyYWlsaW5nIHdoaXRlc3BhY2UsIGEgcnVuIG9m
IGAjJywgYW5kIGF0IGxlYXN0IG9uZQorICAgICAgICAgICAgIDs7IHNwYWNlL3RhYiBiZXR3ZWVu
IGl0IGFuZCB0aGUgaGVhZGluZyB0ZXh0LgorICAgICAgICAgICAgIChjbG9zZXIgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgbGluZS1lbmQpCisgICAg
ICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiIG9wZW5lci1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChlbmQgKHBvaW50KSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiMiIG9wZW5lci1lbmQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGJlZyAocG9pbnQpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh3aGVuIChhbmQgKDwgYmVnIGVuZCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKD4gYmVnIG9wZW5lci1lbmQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChtZW1xIChjaGFyLWJlZm9yZSBiZWcpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoP1xzID9cdCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY29ucyBiZWcgZW5kKSkpKSkpKQorICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICA7OyBSZXNpemUgdGhlIGNsb3NlciBmaXJzdCBzbyBpdCBkb2Vzbid0
IHNoaWZ0IHRoZSBvcGVuZXIuCisgICAgICAgICAgKHdoZW4gY2xvc2VyCisgICAgICAgICAgICAo
ZGVsZXRlLXJlZ2lvbiAoY2FyIGNsb3NlcikgKGNkciBjbG9zZXIpKQorICAgICAgICAgICAgKGdv
dG8tY2hhciAoY2FyIGNsb3NlcikpCisgICAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyBu
ZXctbGV2ZWwgPyMpKSkKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBvcGVuZXItYmVnIG9wZW5l
ci1lbmQpCisgICAgICAgICAgKGdvdG8tY2hhciBvcGVuZXItYmVnKQorICAgICAgICAgIChpbnNl
cnQgKG1ha2Utc3RyaW5nIG5ldy1sZXZlbCA/IykpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1wcm9tb3RlLW9yLWRlbW90ZS1yZWdpb24gKGRlbHRhKQorICAiQ2hhbmdlIGFsbCBoZWFkaW5n
cyBpbiB0aGUgYWN0aXZlIHJlZ2lvbiBieSBERUxUQSBsZXZlbHMuCitOZWdhdGl2ZSBERUxUQSBw
cm9tb3RlcyAoZmV3ZXIgIyksIHBvc2l0aXZlIGRlbW90ZXMgKG1vcmUgIykuIgorICAobGV0ICgo
YmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpKQorICAg
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAod2hpbGUgKDwg
KHBvaW50KSBlbmQpCisgICAgICAgICh3aGVuIChtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2lu
dCkKKyAgICAgICAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlIGRlbHRhKSkKKyAg
ICAgICAgKGZvcndhcmQtbGluZSAxKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLW1vdmUtc3Vi
dHJlZS11cCAoKQorICAiTW92ZSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGxpc3QgaXRlbSB1cCBw
YXN0IHRoZSBwcmV2aW91cyBzaWJsaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAoaWYgKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisgICAgICAobWFya2Rvd24tdHMtLWxpc3QtbW92
ZSB0KQorICAgIChtYXJrZG93bi10cy0tbW92ZS1zdWJ0cmVlLXVwLW9yLWRvd24gdCkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24gKCkKKyAgIk1vdmUgdGhlIGN1cnJl
bnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93biBwYXN0IHRoZSBuZXh0IHNpYmxpbmcuIgorICAo
aW50ZXJhY3RpdmUpCisgIChpZiAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAg
ICAgIChtYXJrZG93bi10cy0tbGlzdC1tb3ZlIG5pbCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUt
c3VidHJlZS11cC1vci1kb3duIG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNlY3Rpb24t
Zm9sZGVkLXAgKHNlY3Rpb24pCisgICJSZXR1cm4gbm9uLW5pbCBpZiBTRUNUSU9OJ3MgaGVhZGlu
ZyBpcyBmb2xkZWQuCitDaGVja3Mgd2hldGhlciB0aGUgZW5kIG9mIHRoZSBoZWFkaW5nIGxpbmUg
aGFzIGFuIG91dGxpbmUKK2ludmlzaWJsZSBvdmVybGF5LiIKKyAgKGxldCAoKGhlYWRpbmcgKHRy
ZWVzaXQtbm9kZS1jaGlsZCBzZWN0aW9uIDApKSkKKyAgICAod2hlbiAoYW5kIGhlYWRpbmcKKyAg
ICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgaGVhZGluZykgImF0eF9oZWFk
aW5nIikpCisgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGdvdG8tY2hhciAodHJlZXNp
dC1ub2RlLXN0YXJ0IGhlYWRpbmcpKQorICAgICAgICAob3V0bGluZS1pbnZpc2libGUtcCAocG9z
LWVvbCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3du
ICh1cCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBzdWJ0cmVlLgorSWYgVVAgaXMgbm9u
LW5pbCwgbW92ZSBwYXN0IHRoZSBwcmV2aW91cyBzaWJsaW5nOyBvdGhlcndpc2UgbW92ZSBkb3du
LgorUHJlc2VydmVzIHRoZSBmb2xkaW5nIHN0YXRlIG9mIGJvdGggc2VjdGlvbnMuIgorICAod2hl
bi1sZXQqICgoc2VjdGlvbiAobWFya2Rvd24tdHMtLXNlY3Rpb24tYXQtcG9pbnQpKQorICAgICAg
ICAgICAgICAoc2libGluZyAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtcHJldi1zaWJsaW5nIHNlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgc2VjdGlvbikpKSkKKyAgICAod2hlbiAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIHNpYmxpbmcpICJzZWN0aW9uIikKKyAgICAgIChsZXQqICgoZmly
c3QgKGlmIHVwIHNpYmxpbmcgc2VjdGlvbikpCisgICAgICAgICAgICAgKHNlY29uZCAoaWYgdXAg
c2VjdGlvbiBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3QtZm9sZGVkIChtYXJrZG93bi10
cy0tc2VjdGlvbi1mb2xkZWQtcCBmaXJzdCkpCisgICAgICAgICAgICAgKHNlY29uZC1mb2xkZWQg
KG1hcmtkb3duLXRzLS1zZWN0aW9uLWZvbGRlZC1wIHNlY29uZCkpCisgICAgICAgICAgICAgKGZp
cnN0LXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNv
bmQtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBzZWNvbmQpKQorICAgICAgICAgICAgIChzZWNv
bmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAgICAgOzsgRXh0cmFj
dCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAg
ICAgICAgICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0YXJ0IHNlY29uZC1z
dGFydCkpCisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmltLXJpZ2h0IGZpcnN0
LXJhdykpCisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZpcnN0LXJhdyAobGVu
Z3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAoYnVmZmVyLXN1YnN0
cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAgKHNlY29uZC10ZXh0
IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAgICAodHJhaWxpbmcg
KHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkKKyAgICAgICAgICAg
ICAobGluZS1vZmZzZXQgKC0gKGxpbmUtbnVtYmVyLWF0LXBvcyAocG9pbnQpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAobGluZS1udW1iZXItYXQtcG9zICh0cmVlc2l0LW5vZGUtc3Rh
cnQgc2VjdGlvbikpKSkpCisgICAgICAgIChkZWxldGUtcmVnaW9uIGZpcnN0LXN0YXJ0IHNlY29u
ZC1lbmQpCisgICAgICAgIChnb3RvLWNoYXIgZmlyc3Qtc3RhcnQpCisgICAgICAgIChpbnNlcnQg
c2Vjb25kLXRleHQgc2VwYXJhdG9yIGZpcnN0LXRleHQgdHJhaWxpbmcpCisgICAgICAgIDs7IFJl
c3RvcmUgZm9sZGluZyBzdGF0ZQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAo
Z290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAgICh3aGVuIChvdXRsaW5lLW9uLWhlYWRp
bmctcCkKKyAgICAgICAgICAgIChpZiBzZWNvbmQtZm9sZGVkCisgICAgICAgICAgICAgICAgKG91
dGxpbmUtaGlkZS1zdWJ0cmVlKQorICAgICAgICAgICAgICAob3V0bGluZS1zaG93LXN1YnRyZWUp
KSkKKyAgICAgICAgICAob3V0bGluZS1uZXh0LWhlYWRpbmcpCisgICAgICAgICAgKHdoZW4gKG91
dGxpbmUtb24taGVhZGluZy1wKQorICAgICAgICAgICAgKGlmIGZpcnN0LWZvbGRlZAorICAgICAg
ICAgICAgICAgIChvdXRsaW5lLWhpZGUtc3VidHJlZSkKKyAgICAgICAgICAgICAgKG91dGxpbmUt
c2hvdy1zdWJ0cmVlKSkpKQorICAgICAgICAoZ290by1jaGFyIChpZiB1cAorICAgICAgICAgICAg
ICAgICAgICAgICBmaXJzdC1zdGFydAorICAgICAgICAgICAgICAgICAgICAgKCsgZmlyc3Qtc3Rh
cnQgKGxlbmd0aCBzZWNvbmQtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGgg
c2VwYXJhdG9yKSkpKQorICAgICAgICAod2l0aC1zdXBwcmVzc2VkLXdhcm5pbmdzICgoaW50ZXJh
Y3RpdmUtb25seSBuZXh0LWxpbmUpKQorICAgICAgICAgIChuZXh0LWxpbmUgbGluZS1vZmZzZXQp
KSkpKSkKKworOzs7IExpc3QgbWFuaXB1bGF0aW9uOgorCisoZGVmdW4gbWFya2Rvd24tdHMtdG9n
Z2xlLWNoZWNrYm94ICgpCisgICJUb2dnbGUgdGhlIHRhc2sgbGlzdCBjaGVja2JveCBvbiB0aGUg
Y3VycmVudCBsaW5lLgorU3dpdGNoZXMgYmV0d2VlbiBgWyBdJyBhbmQgYFt4XScuIgorICAoaW50
ZXJhY3RpdmUpCisgICh3aGVuLWxldCogKChwb3MgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWlu
ZGVudGF0aW9uKSAocG9pbnQpKSkKKyAgICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dCBwb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVu
dGlsCisgICAgICAgICAgICAgICAgICAgICBub2RlIChsYW1iZGEgKG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdF9pdGVtIikp
KSkpCisgICAgKHdoZW4tbGV0KiAoKG1hcmtlciAoc2VxLWZpbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhIChjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1i
ZXIgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnKCJ0YXNrX2xpc3RfbWFya2VyX2NoZWNrZWQiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInRhc2tfbGlzdF9tYXJrZXJfdW5jaGVja2VkIikpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gaXRlbSkpKSkKKyAgICAg
IChsZXQgKChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXIpKQorICAgICAgICAgICAgKGVu
ZCAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAgICAgICAgICAgKGNoZWNrZWQgKGVxdWFs
ICh0cmVlc2l0LW5vZGUtdHlwZSBtYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVu
ZCkKKyAgICAgICAgICAoaW5zZXJ0IChpZiBjaGVja2VkICJbIF0iICJbeF0iKSkpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBp
bm5lcm1vc3QgbGlzdF9pdGVtIG5vZGUgY29udGFpbmluZyBwb2ludCwgb3IgbmlsLgorVXNlcyB0
aGUgcG9zaXRpb24gYWZ0ZXIgYGJhY2stdG8taW5kZW50YXRpb24nIHNvIHRoYXQgcG9pbnQgaW4K
K2EgbGluZSdzIGxlYWRpbmcgd2hpdGVzcGFjZSByZXNvbHZlcyB0byB0aGUgaXRlbSBvbiB0aGF0
IGxpbmUsCitub3QgdG8gYSBwcmVjZWRpbmcgaXRlbSB3aG9zZSBub2RlIHNwYW5zIHRoZSB3aGl0
ZXNwYWNlLgorSW5zaWRlIGJsb2NrIHF1b3RlcywgYWxzbyB0cnkgZnJvbSB0aGUgY29udGVudCBw
b3NpdGlvbiBwYXN0Cit0aGUgYD4nIG1hcmtlcnMuIgorICAod2hlbi1sZXQqICgocG9zIChzYXZl
LWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikgKHBvaW50KSkpCisgICAgICAgICAgICAg
IChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93bikpCisgICAgICAgICAgICAgIChi
b2wgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgKGVvbCAobGluZS1l
bmQtcG9zaXRpb24pKSkKKyAgICAob3IgKGxldCAoKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGls
CisgICAgICAgICAgICAgICAgICAgICBub2RlIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdF9pdGVtIikpKSkp
CisgICAgICAgICAgOzsgVmVyaWZ5IHRoZSBjdXJyZW50IGxpbmUgaXMgd2l0aGluIHRoZSBpdGVt
J3MgcmFuZ2UuCisgICAgICAgICAgOzsgYHRyZWVzaXQtbm9kZS1hdCcgY2FuIHJldHVybiBhIG5v
ZGUgaW5zaWRlIGEgbGlzdF9pdGVtCisgICAgICAgICAgOzsgZXZlbiB3aGVuIHBvaW50IGlzIG9u
IGEgcHJlY2VkaW5nIGxpbmUuCisgICAgICAgICAgKHdoZW4gKGFuZCBpdGVtCisgICAgICAgICAg
ICAgICAgICAgICAoPD0gKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSBlb2wpCisgICAgICAgICAg
ICAgICAgICAgICAoPj0gKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkgYm9sKSkKKyAgICAgICAgICAg
IGl0ZW0pKQorICAgICAgICA7OyBXaGVuIGJhY2stdG8taW5kZW50YXRpb24gbGFuZHMgb24gYmxv
Y2sgcXVvdGUgbWFya2VycywKKyAgICAgICAgOzsgc2tpcCBwYXN0IHRoZW0gYW5kIHRyeSBmcm9t
IHRoZSBjb250ZW50IHBvc2l0aW9uLgorICAgICAgICAobGV0ICgoY29udGVudC1wb3MgKHNhdmUt
ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGlu
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiPiBc
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAgICAgICAo
d2hlbiAoPiBjb250ZW50LXBvcyBwb3MpCisgICAgICAgICAgICAod2hlbi1sZXQqICgoY25vZGUg
KHRyZWVzaXQtbm9kZS1hdCBjb250ZW50LXBvcyAnbWFya2Rvd24pKSkKKyAgICAgICAgICAgICAg
KGxldCAoKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbm9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlz
dF9pdGVtIikpKSkpCisgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCBpdGVtCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoPD0gKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSBlb2wpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoPj0gKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkgYm9sKSkK
KyAgICAgICAgICAgICAgICAgIGl0ZW0pKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxp
c3QtbWFya2VyLXdpZHRoIChpdGVtKQorICAiUmV0dXJuIHRoZSB3aWR0aCBvZiBJVEVNJ3MgbGlz
dCBtYXJrZXIgaW5jbHVkaW5nIHRyYWlsaW5nIHNwYWNlLiIKKyAgKGxldCAoKG1hcmtlciAodHJl
ZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQorICAgICgtICh0cmVlc2l0LW5vZGUtZW5kIG1hcmtl
cikgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXIpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
bGlzdC1pdGVtLXJlZ2lvbiAoaXRlbSkKKyAgIlJldHVybiB0aGUgKEJFRyAuIEVORCkgcmVnaW9u
IGZvciBJVEVNLCBjbGFtcGVkIHRvIGZ1bGwgbGluZXMuCitCRUcgc3RhcnRzIGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgaXRlbS4KK0VORCBpcyBjbGFtcGVkIHNv
IGl0IGRvZXMgbm90IGV4dGVuZCBpbnRvIHRoZSBuZXh0IGxpbmUncworaW5kZW50YXRpb24sIHdo
aWNoIHRyZWUtc2l0dGVyIG1heSBpbmNsdWRlIGluIHRoZSBub2RlLiIKKyAgKGxldCAoKGJlZyAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBpdGVtKSkKKyAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQor
ICAgICAgICAoZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLWVuZCBpdGVtKSkKKyAgICAgICAgICAgICAgIChpZiAoYm9scCkgKHBvaW50
KSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpKQorICAgIChjb25zIGJlZyBlbmQpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wIChpdGVtKQorICAiUmV0dXJu
IG5vbi1uaWwgaWYgSVRFTSBpcyBhbiBvcmRlcmVkIChudW1iZXJlZCkgbGlzdCBpdGVtLiIKKyAg
KGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQorICAgIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbWFya2VyKSAibGlzdF9tYXJrZXJfZG90IikpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1vdGUgKGRlbW90ZSkKKyAgIkNoYW5nZSBu
ZXN0aW5nIG9mIHRoZSBsaXN0IGl0ZW0gYXQgcG9pbnQuCitJZiBERU1PVEUgaXMgbm9uLW5pbCwg
ZGVtb3RlIChpbmRlbnQpOyBvdGhlcndpc2UgcHJvbW90ZSAoZGVkZW50KS4KK09yZGVyZWQgKG51
bWJlcmVkKSBsaXN0IGl0ZW1zIGFyZSBza2lwcGVkIGJlY2F1c2UgdGhlIGdyYW1tYXIgZG9lcwor
bm90IHN1cHBvcnQgbmVzdGluZyB0aGVtIGJ5IGluZGVudGF0aW9uLiIKKyAgKHdoZW4tbGV0KiAo
KGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAo
cmVnaW9uIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXJlZ2lvbiBpdGVtKSkKKyAgICAgICAgICAg
ICAgKGJlZyAoY2FyIHJlZ2lvbikpCisgICAgICAgICAgICAgIChlbmQgKGNkciByZWdpb24pKSkK
KyAgICAod2hlbiAobWFya2Rvd24tdHMtLWxpc3Qtb3JkZXJlZC1pdGVtLXAgaXRlbSkKKyAgICAg
ICh1c2VyLWVycm9yICJPcmRlcmVkIGxpc3QgaXRlbXMgY2Fubm90IGJlIG5lc3RlZCAoZ3JhbW1h
ciBsaW1pdGF0aW9uKSIpKQorICAgIChpZiBkZW1vdGUKKyAgICAgICAgOzsgRGVtb3RlOiBpbmRl
bnQgYnkgbWFya2VyIHdpZHRoLCBvbmx5IGlmIHRoZXJlIGlzIGEgcHJldmlvdXMKKyAgICAgICAg
Ozsgc2libGluZyB0byBuZXN0IHVuZGVyIChsaWtlIG9yZy1tb2RlKS4KKyAgICAgICAgKHdoZW4g
KHRyZWVzaXQtbm9kZS1wcmV2LXNpYmxpbmcgaXRlbSkKKyAgICAgICAgICAoaW5kZW50LXJpZ2lk
bHkgYmVnIGVuZCAobWFya2Rvd24tdHMtLWxpc3QtbWFya2VyLXdpZHRoIGl0ZW0pKSkKKyAgICAg
IDs7IFByb21vdGU6IGRlZGVudCB0byBncmFuZHBhcmVudCBsZXZlbC4KKyAgICAgIChsZXQqICgo
cGFyZW50LWxpc3QgKHRyZWVzaXQtbm9kZS1wYXJlbnQgaXRlbSkpCisgICAgICAgICAgICAgKGdy
YW5kcGFyZW50IChhbmQgcGFyZW50LWxpc3QgKHRyZWVzaXQtbm9kZS1wYXJlbnQgcGFyZW50LWxp
c3QpKSkKKyAgICAgICAgICAgICAoaXRlbS1jb2wgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpIChjdXJyZW50LWluZGVudGF0aW9uKSkpKQor
ICAgICAgICAod2hlbiAoYW5kIGdyYW5kcGFyZW50CisgICAgICAgICAgICAgICAgICAgKGVxdWFs
ICh0cmVlc2l0LW5vZGUtdHlwZSBncmFuZHBhcmVudCkgImxpc3RfaXRlbSIpCisgICAgICAgICAg
ICAgICAgICAgKD4gaXRlbS1jb2wgMCkpCisgICAgICAgICAgKGxldCAoKGdwLWNvbCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1u
b2RlLXN0YXJ0IGdyYW5kcGFyZW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJl
bnQtaW5kZW50YXRpb24pKSkpCisgICAgICAgICAgICAoaW5kZW50LXJpZ2lkbHkgYmVnIGVuZCAo
LSBncC1jb2wgaXRlbS1jb2wpKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3Qtbm9k
ZS1ib2wgKG5vZGUpCisgICJSZXR1cm4gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWlu
aW5nIE5PREUncyBzdGFydC4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChnb3RvLWNoYXIgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1vdmUgKHVwKQorICAiTW92ZSB0aGUgbGlzdCBp
dGVtIGF0IHBvaW50LgorSWYgVVAgaXMgbm9uLW5pbCwgbW92ZSBwYXN0IHRoZSBwcmV2aW91cyBz
aWJsaW5nOyBvdGhlcndpc2UgbW92ZSBkb3duLiIKKyAgKHdoZW4tbGV0KiAoKGl0ZW0gKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAoc2libGluZyAoaWYg
dXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5n
IGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxp
bmcgaXRlbSkpKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIHNpYmxpbmcp
ICJsaXN0X2l0ZW0iKQorICAgICAgKGxldCogKChmaXJzdCAoaWYgdXAgc2libGluZyBpdGVtKSkK
KyAgICAgICAgICAgICAoc2Vjb25kIChpZiB1cCBpdGVtIHNpYmxpbmcpKQorICAgICAgICAgICAg
IChmaXJzdC1zdGFydCAobWFya2Rvd24tdHMtLWxpc3Qtbm9kZS1ib2wgZmlyc3QpKQorICAgICAg
ICAgICAgIChzZWNvbmQtc3RhcnQgKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIHNlY29uZCkp
CisgICAgICAgICAgICAgKHNlY29uZC1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgc2Vjb25kKSkKKyAg
ICAgICAgICAgICA7OyBFeHRyYWN0IHNlcGFyYXRvciBiZXR3ZWVuIGl0ZW1zIGFuZCB0cmFpbGlu
ZyB3aGl0ZXNwYWNlLgorICAgICAgICAgICAgIChmaXJzdC1yYXcgKGJ1ZmZlci1zdWJzdHJpbmcg
Zmlyc3Qtc3RhcnQgc2Vjb25kLXN0YXJ0KSkKKyAgICAgICAgICAgICAoZmlyc3QtdGV4dCAoc3Ry
aW5nLXRyaW0tcmlnaHQgZmlyc3QtcmF3KSkKKyAgICAgICAgICAgICAoc2VwYXJhdG9yIChzdWJz
dHJpbmcgZmlyc3QtcmF3IChsZW5ndGggZmlyc3QtdGV4dCkpKQorICAgICAgICAgICAgIChzZWNv
bmQtcmF3IChidWZmZXItc3Vic3RyaW5nIHNlY29uZC1zdGFydCBzZWNvbmQtZW5kKSkKKyAgICAg
ICAgICAgICAoc2Vjb25kLXRleHQgKHN0cmluZy10cmltLXJpZ2h0IHNlY29uZC1yYXcpKQorICAg
ICAgICAgICAgICh0cmFpbGluZyAoc3Vic3RyaW5nIHNlY29uZC1yYXcgKGxlbmd0aCBzZWNvbmQt
dGV4dCkpKQorICAgICAgICAgICAgIChsaW5lLW9mZnNldCAoLSAobGluZS1udW1iZXItYXQtcG9z
IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLW51bWJlci1hdC1w
b3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRl
bSkpKSkpCisgICAgICAgIChkZWxldGUtcmVnaW9uIGZpcnN0LXN0YXJ0IHNlY29uZC1lbmQpCisg
ICAgICAgIChnb3RvLWNoYXIgZmlyc3Qtc3RhcnQpCisgICAgICAgIChpbnNlcnQgc2Vjb25kLXRl
eHQgc2VwYXJhdG9yIGZpcnN0LXRleHQgdHJhaWxpbmcpCisgICAgICAgIChnb3RvLWNoYXIgKGlm
IHVwCisgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LXN0YXJ0CisgICAgICAgICAgICAgICAg
ICAgICAoKyBmaXJzdC1zdGFydCAobGVuZ3RoIHNlY29uZC10ZXh0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgKGxlbmd0aCBzZXBhcmF0b3IpKSkpCisgICAgICAgICh3aXRoLXN1cHByZXNzZWQt
d2FybmluZ3MgKChpbnRlcmFjdGl2ZS1vbmx5IG5leHQtbGluZSkpCisgICAgICAgICAgKG5leHQt
bGluZSBsaW5lLW9mZnNldCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtcmVudW1iZXItbGlz
dCAoJm9wdGlvbmFsIHN0YXJ0KQorICAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2lu
dC4KK051bWJlcnMgYXJlIGFzc2lnbmVkIHNlcXVlbnRpYWxseSBzdGFydGluZyBmcm9tIHRoZSBm
aXJzdCBpdGVtJ3MKK251bWJlci4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQgU1RBUlQsIHN0YXJ0
IG51bWJlcmluZyBmcm9tIHRoYXQKK3ZhbHVlIGluc3RlYWQuICBEb2VzIG5vdGhpbmcgZm9yIHVu
b3JkZXJlZCBsaXN0cy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChpdGVt
IChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKGxpc3Qt
bm9kZSAodHJlZXNpdC1ub2RlLXBhcmVudCBpdGVtKSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVl
c2l0LW5vZGUtdHlwZSBsaXN0LW5vZGUpICJsaXN0IikKKyAgICAgIChsZXQqICgoY2hpbGRyZW4g
KHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBsaXN0LW5vZGUpKQorICAgICAgICAgICAgIChpdGVtcyAo
c2VxLWZpbHRlciAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbikpCisgICAgICAgICAgICAgKGZpcnN0LW1hcmtl
ciAodHJlZXNpdC1ub2RlLWNoaWxkIChjYXIgaXRlbXMpIDApKQorICAgICAgICAgICAgIChtYXJr
ZXItdHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgZmlyc3QtbWFya2VyKSkpCisgICAgICAgICh3aGVu
IChtZW1iZXIgbWFya2VyLXR5cGUgJygibGlzdF9tYXJrZXJfZG90IiAibGlzdF9tYXJrZXJfcGFy
ZW50aGVzaXMiKSkKKyAgICAgICAgICAobGV0KiAoKGJhc2UgKGlmIHN0YXJ0CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAocHJlZml4LW51bWVyaWMtdmFsdWUgc3RhcnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKHN0cmluZy10by1udW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS10ZXh0IGZpcnN0LW1hcmtlciB0KSkpKQorICAgICAgICAgICAgICAg
ICAoY291bnQgKGxlbmd0aCBpdGVtcykpCisgICAgICAgICAgICAgICAgIDs7IFN0YXJ0IGZyb20g
dGhlIGxhc3QgbnVtYmVyIGFuZCB3b3JrIGJhY2t3YXJkcyBzbworICAgICAgICAgICAgICAgICA7
OyB0aGF0IGVhcmxpZXIgYnVmZmVyIHBvc2l0aW9ucyByZW1haW4gdmFsaWQuCisgICAgICAgICAg
ICAgICAgIChudW0gKCsgYmFzZSBjb3VudCAtMSkpKQorICAgICAgICAgICAgKGRvbGlzdCAoaXQg
KHJldmVyc2UgaXRlbXMpKQorICAgICAgICAgICAgICAobGV0KiAoKG1hcmtlciAodHJlZXNpdC1u
b2RlLWNoaWxkIGl0IDApKQorICAgICAgICAgICAgICAgICAgICAgKG1hcmtlci1lbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgICAgICAgICAgIChib2wgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1u
b2RlLXN0YXJ0IG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVn
aW5uaW5nLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgICAgICAgICA7OyBGdWxsIHRleHQgZnJv
bSBib2wgdG8gZW5kIG9mIG1hcmtlciBpbmNsdWRlcworICAgICAgICAgICAgICAgICAgICAgOzsg
YW55IGxlYWRpbmcgd2hpdGVzcGFjZSwgdGhlIG51bWJlciwgYW5kIHRoZQorICAgICAgICAgICAg
ICAgICAgICAgOzsgc2VwYXJhdG9yIChlLmcuLCAiLiAiIG9yICIuXHQiKS4KKyAgICAgICAgICAg
ICAgICAgICAgIChmdWxsLXRleHQgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sIG1hcmtlci1lbmQpKQorICAgICAgICAg
ICAgICAgICAgICAgKGluZGVudC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmlu
Zy1tYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFxcKFtbOmJsYW5rOl1dKlxc
KVswLTldIiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJp
bmcgMSBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiIikpCisgICAgICAgICAg
ICAgICAgICAgICAoc3VmZml4LXN0cgorICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5n
LW1hdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgW1s6Ymxhbms6XV0qWzAtOV0r
XFwoLipcXClcXCciIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo
LXN0cmluZyAxIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICIuICIpKQorICAg
ICAgICAgICAgICAgICAgICAgKG5ldy10ZXh0IChjb25jYXQgaW5kZW50LXN0cgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bWJlci10by1zdHJpbmcgbnVtKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4LXN0cikpKQorICAgICAg
ICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdp
b24gYm9sIG1hcmtlci1lbmQpCisgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGJvbCkKKyAg
ICAgICAgICAgICAgICAgIChpbnNlcnQgbmV3LXRleHQpKSkKKyAgICAgICAgICAgICAgKGNsLWRl
Y2YgbnVtKSkKKyAgICAgICAgICAgIChtZXNzYWdlICJSZW51bWJlcmVkICVkIGl0ZW1zIiBjb3Vu
dCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciAoaXRl
bSkKKyAgIlJldHVybiB0aGUgbWFya2VyIHN0cmluZyBmb3IgYSBuZXcgaXRlbSBmb2xsb3dpbmcg
SVRFTS4KK0ZvciB1bm9yZGVyZWQgaXRlbXMsIHJldXNlIHRoZSBzYW1lIG1hcmtlciBjaGFyYWN0
ZXIuCitGb3Igb3JkZXJlZCBpdGVtcywgaW5jcmVtZW50IHRoZSBudW1iZXIuIgorICAobGV0KiAo
KG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpCisgICAgICAgICAodHlwZSAodHJl
ZXNpdC1ub2RlLXR5cGUgbWFya2VyKSkKKyAgICAgICAgIChpbmRlbnQgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0p
KQorICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0aW9uKSkpCisgICAgICAgICAo
cHJlZml4IChtYWtlLXN0cmluZyBpbmRlbnQgP1xzKSkpCisgICAgKHBjYXNlIHR5cGUKKyAgICAg
ICgibGlzdF9tYXJrZXJfbWludXMiIChjb25jYXQgcHJlZml4ICItICIpKQorICAgICAgKCJsaXN0
X21hcmtlcl9wbHVzIiAgKGNvbmNhdCBwcmVmaXggIisgIikpCisgICAgICAoImxpc3RfbWFya2Vy
X3N0YXIiICAoY29uY2F0IHByZWZpeCAiKiAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJfZG90Igor
ICAgICAgIChsZXQgKChudW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9kZS10ZXh0IG1h
cmtlciB0KSkpKQorICAgICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1zdHJpbmcgKDEr
IG51bSkpICIuICIpKSkKKyAgICAgICgibGlzdF9tYXJrZXJfcGFyZW50aGVzaXMiCisgICAgICAg
KGxldCAoKG51bSAoc3RyaW5nLXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQp
KSkpCisgICAgICAgICAoY29uY2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAoMSsgbnVtKSkg
IikgIikpKQorICAgICAgKF8gKGNvbmNhdCBwcmVmaXggIi0gIikpKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tbmV3LW1hcmtlci1mb3ItbGluZSAoaXRlbSkKKyAgIlJldHVybiB0aGUgbWFya2Vy
IHN0cmluZyBmb3IgYSBuZXcgaXRlbSBmb2xsb3dpbmcgSVRFTS4KK1doZW4gdGhlIGN1cnJlbnQg
bGluZSBoYXMgYSBsaXN0IG1hcmtlciBwYXR0ZXJuIGF0IGEgZGlmZmVyZW50CitpbmRlbnRhdGlv
biB0aGFuIElURU0gKGUuZy4sIGEgbmVzdGVkIG1hcmtlciB0aGF0IHRoZSBncmFtbWFyIGRpZAor
bm90IHJlY29nbml6ZSBhcyBhIGxpc3RfaXRlbSksIHVzZSB0aGUgY3VycmVudCBsaW5lJ3MgbWFy
a2VyLgorT3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3
LW1hcmtlcicuIgorICAobGV0ICgobWFya2VyLW5vZGUgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVt
IDApKSkKKyAgICAoaWYgKD0gKGxpbmUtbnVtYmVyLWF0LXBvcykKKyAgICAgICAgICAgIChsaW5l
LW51bWJlci1hdC1wb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXItbm9kZSkpKQorICAgICAg
ICA7OyBJdGVtJ3MgbWFya2VyIGlzIG9uIHRoZSBjdXJyZW50IGxpbmU6IHVzZSBpdCBub3JtYWxs
eS4KKyAgICAgICAgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBpdGVtKQorICAg
ICAgOzsgSXRlbSdzIG1hcmtlciBpcyBvbiBhIGRpZmZlcmVudCBsaW5lLiAgVGhlIHBhcnNlciBt
YXkgaGF2ZQorICAgICAgOzsgZmFpbGVkIHRvIHJlY29nbml6ZSBhIG5lc3RlZCBtYXJrZXIgKGUu
Zy4sIGEgbG9uZSBgICAtICcKKyAgICAgIDs7IHBhcnNlZCBhcyBhIHNldGV4dCBoZWFkaW5nKS4g
IFJlYWQgdGhlIGN1cnJlbnQgbGluZS4KKyAgICAgIChsZXQgKChsaW5lIChidWZmZXItc3Vic3Ry
aW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9z
aXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKSkKKyAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gK
KyAgICAgICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpXFwoWy0qK10gXFx8XFwoWzAtOV0r
XFwpXFwoWy4pXSBcXClcXCkiCisgICAgICAgICAgICAgbGluZSkKKyAgICAgICAgICAgIChsZXQg
KChpbmRlbnQgKG1hdGNoLXN0cmluZyAxIGxpbmUpKQorICAgICAgICAgICAgICAgICAgKG51bSAo
bWF0Y2gtc3RyaW5nIDMgbGluZSkpCisgICAgICAgICAgICAgICAgICAoc3VmZml4IChtYXRjaC1z
dHJpbmcgNCBsaW5lKSkKKyAgICAgICAgICAgICAgICAgICh1bm9yZGVyZWQgKG1hdGNoLXN0cmlu
ZyAyIGxpbmUpKSkKKyAgICAgICAgICAgICAgKGlmIG51bQorICAgICAgICAgICAgICAgICAgKGNv
bmNhdCBpbmRlbnQgKG51bWJlci10by1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoMSsgKHN0cmluZy10by1udW1iZXIgbnVtKSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1ZmZpeCkKKyAgICAgICAgICAgICAgICAoY29uY2F0IGluZGVudCB1bm9yZGVyZWQp
KSkKKyAgICAgICAgICA7OyBObyBtYXJrZXIgcGF0dGVybiBvbiBjdXJyZW50IGxpbmU6IHVzZSBp
dGVtJ3MgbWFya2VyLgorICAgICAgICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJr
ZXIgaXRlbSkpKSkpKQogCi0oZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1jb25maWd1cmVkLWxh
bmd1YWdlcyBuaWwKLSAgIkEgbGlzdCBvZiBsYW5ndWFnZXMgdGhhdCBoYXZlIGJlZW4gc2V0dXAg
aW4gdGhpcyBidWZmZXIuCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUtZGVw
dGggKCZvcHRpb25hbCBwb3MpCisgICJDb3VudCB0aGUgbnVtYmVyIG9mIGA+JyBibG9jayBxdW90
ZSBtYXJrZXJzIG9uIHRoZSBsaW5lIGF0IFBPUy4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgICh3
aGVuIHBvcyAoZ290by1jaGFyIHBvcykpCisgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgIChs
ZXQgKChjb3VudCAwKSkKKyAgICAgICh3aGlsZSAoYW5kIChub3QgKGVvbHApKQorICAgICAgICAg
ICAgICAgICAgKG1lbXEgKGNoYXItYWZ0ZXIpICcoPz4gP1xzID9cdCkpKQorICAgICAgICAod2hl
biAoZXEgKGNoYXItYWZ0ZXIpID8+KQorICAgICAgICAgIChzZXRxIGNvdW50ICgxKyBjb3VudCkp
KQorICAgICAgICAoZm9yd2FyZC1jaGFyIDEpKQorICAgICAgY291bnQpKSkKIAotV2hlbiBhIGNv
ZGUgYmxvY2sgb2YgYSBsYW5ndWFnZSBhcHBlYXJzLCBgbWFya2Rvd24tdHMtbW9kZScgbG9hZHMK
LWxhbmd1YWdlIHNldHVwcyBsaWtlIGZvbnQtbG9jayBhbmQgaW5kZW50YXRpb24gZm9yIHRoYXQg
bGFuZ3VhZ2UsIGFuZAotYWRkcyB0aGF0IGxhbmd1YWdlIHRvIHRoaXMgbGlzdC4iKQorKGRlZnVu
IG1hcmtkb3duLXRzLW5ld2xpbmUgKCkKKyAgIkluc2VydCBhIG5ld2xpbmUsIGNvbnRpbnVpbmcg
dGhlIGN1cnJlbnQgY29udGV4dC4KK0luc2lkZSBhIGxpc3QgaXRlbSwgdGhlIG5ldyBsaW5lIGlz
IGluZGVudGVkIHRvIHRoZSBpdGVtJ3MgdGV4dAorY29sdW1uIHNvIHRoZSBwYXJhZ3JhcGggY29u
dGludWVzLiAgQSBzZWNvbmQgUkVUIG9uIGEgYmxhbmsKK2NvbnRpbnVhdGlvbiBsaW5lIHJlbW92
ZXMgdGhlIGluZGVudGF0aW9uLCBkcm9wcGluZyBwb2ludCB0bworY29sdW1uIDAgc28gdGhlIHRy
ZWUtc2l0dGVyIGdyYW1tYXIgZW5kcyB0aGUgbGlzdC4KK0luc2lkZSBhIGJsb2NrIHF1b3RlLCB0
aGUgbmV3IGxpbmUgaW5jbHVkZXMgdGhlIHF1b3RlIHByZWZpeC4KK090aGVyd2lzZSwgaW5zZXJ0
IGEgcGxhaW4gbmV3bGluZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChub2RlICh0cmVl
c2l0LW5vZGUtYXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5k
ZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkKKyAgICAgICAg
IDs7IFRyZWUtc2l0dGVyIG1heSByZXBvcnQgYSBub2RlIGluc2lkZSBhIGJsb2NrX3F1b3RlIGV2
ZW4KKyAgICAgICAgIDs7IHdoZW4gcG9pbnQgaXMgb24gYSBibGFuayBsaW5lIHBhc3QgdGhlIHF1
b3RlICh0aGUgbm9kZQorICAgICAgICAgOzsgc3BhbiBjYW4gZXh0ZW5kIGJleW9uZCB0aGUgYD4n
IGxpbmVzKS4gIE9ubHkgdHJlYXQgdGhlCisgICAgICAgICA7OyBsaW5lIGFzIGluc2lkZSBhIGJs
b2NrIHF1b3RlIGlmIGl0IGFjdHVhbGx5IHN0YXJ0cyB3aXRoCisgICAgICAgICA7OyBhIGA+JyBt
YXJrZXIuCisgICAgICAgICAoaW4tYnEgKGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwgbm9kZSAi
XFxgYmxvY2tfcXVvdGVcXCciKQorICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgKGxvb2tpbmctYXQtcCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAoaXRlbSAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAgIChpdGVt
CisgICAgICAobGV0KiAoKGNvbCAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS10ZXh0LWNvbHVtbiBp
dGVtKSkKKyAgICAgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxIChtYXJrZG93bi10cy0t
YmxvY2stcXVvdGUtcHJlZml4KSkpCisgICAgICAgICAgICAgOzsgYGNvbCcgaXMgdGhlIGFic29s
dXRlIGNvbHVtbiBvZiB0aGUgaXRlbSdzIHRleHQsCisgICAgICAgICAgICAgOzsgd2hpY2ggaW5z
aWRlIGEgYmxvY2sgcXVvdGUgaW5jbHVkZXMgdGhlICI+ICIgcHJlZml4CisgICAgICAgICAgICAg
Ozsgd2lkdGguICBTaW5jZSB3ZSBpbnNlcnQgYGJxLXByZWZpeCcgc2VwYXJhdGVseSwgd2UKKyAg
ICAgICAgICAgICA7OyBtdXN0IHN1YnRyYWN0IGl0cyBsZW5ndGggdG8gYXZvaWQgZG91Ymxpbmcg
aXQuCisgICAgICAgICAgICAgKGluZGVudCAoLSBjb2wgKGxlbmd0aCAob3IgYnEtcHJlZml4ICIi
KSkpKQorICAgICAgICAgICAgIDs7IFRoZSBjdXJyZW50IGxpbmUgaXMgImJsYW5rIiBpZiBpdCBj
b250YWlucyBvbmx5CisgICAgICAgICAgICAgOzsgd2hpdGVzcGFjZSAob3IgcXVvdGUgcHJlZml4
ICsgd2hpdGVzcGFjZSkgYW5kIG5vCisgICAgICAgICAgICAgOzsgYWN0dWFsIHRleHQgZnJvbSBh
IHByZXZpb3VzIFJFVCdzIGNvbnRpbnVhdGlvbiBpbmRlbnQuCisgICAgICAgICAgICAgKGJsYW5r
LWxpbmUtcCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJl
Z2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1h
dC1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXls+IFx0XSokIikpKQorICAgICAg
ICAgICAgIDs7IFBvaW50IGlzIGJlZm9yZSB0aGUgaXRlbSdzIHRleHQgKGF0IG9yIGJlZm9yZSB0
aGUKKyAgICAgICAgICAgICA7OyBtYXJrZXIpLiAgQSBwbGFpbiBuZXdsaW5lIGlzIGFwcHJvcHJp
YXRlIGhlcmUsIGFkZGluZworICAgICAgICAgICAgIDs7IGNvbnRpbnVhdGlvbiBpbmRlbnQgd291
bGQgc2hpZnQgdGhlIGV4aXN0aW5nIGNvbnRlbnQKKyAgICAgICAgICAgICA7OyB0byB0aGUgcmln
aHQuCisgICAgICAgICAgICAgKGJlZm9yZS10ZXh0LXAgKDw9IChjdXJyZW50LWNvbHVtbikgY29s
KSkpCisgICAgICAgIChjb25kCisgICAgICAgICAoYmxhbmstbGluZS1wCisgICAgICAgICAgOzsg
VGhlIHVzZXIgcHJlc3NlZCBSRVQgb24gYW4gYWxyZWFkeS1ibGFuayBjb250aW51YXRpb24KKyAg
ICAgICAgICA7OyBsaW5lLiAgSW5zdGVhZCBvZiBhZGRpbmcgeWV0IGFub3RoZXIgaW5kZW50ZWQg
YmxhbmsKKyAgICAgICAgICA7OyBsaW5lLCByZW1vdmUgdGhlIGluZGVudGF0aW9uIGFuZCBpbnNl
cnQgYSBwbGFpbgorICAgICAgICAgIDs7IG5ld2xpbmUuICBUaGlzIGRyb3BzIHBvaW50IHRvIGNv
bHVtbiAwLCB3aGljaCBpcyB0aGUKKyAgICAgICAgICA7OyBvbmx5IHdheSB0aGUgdHJlZS1zaXR0
ZXIgbWFya2Rvd24gZ3JhbW1hciBlbmRzIGEgbGlzdDoKKyAgICAgICAgICA7OyBibGFuayBsaW5l
cyBhbG9uZSBkbyBOT1QgZW5kIGEgbGlzdCwgb25seQorICAgICAgICAgIDs7IG5vbi1pbmRlbnRl
ZCBjb250ZW50IGRvZXMuICBTbyB0aGlzIGdpdmVzIHRoZSB1c2VyIGEKKyAgICAgICAgICA7OyBu
YXR1cmFsICJSRVQgUkVUIHRvIGV4aXQgdGhlIGxpc3QiIHdvcmtmbG93LgorICAgICAgICAgIChk
ZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9u
KSkKKyAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAoYmVmb3JlLXRleHQtcAorICAgICAg
ICAgIDs7IFBvaW50IGlzIG9uIG9yIGJlZm9yZSB0aGUgbGlzdCBtYXJrZXI7IGp1c3QgaW5zZXJ0
IGEKKyAgICAgICAgICA7OyBwbGFpbiBuZXdsaW5lIHNvIHRoZSBpdGVtIGlzIHB1c2hlZCBkb3du
IHVuY2hhbmdlZC4KKyAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAodAorICAgICAgICAg
IChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAgICAgICAg
ICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAgICAgIChpbnNlcnQg
KG1ha2Utc3RyaW5nIGluZGVudCA/XHMpKSkpKSkKKyAgICAgKGluLWJxCisgICAgICAobGV0ICgo
YnEtcHJlZml4IChtYXJrZG93bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkKKyAgICAgICAgICAg
IDs7IEEgbGluZSB3aXRoIG9ubHkgcXVvdGUgbWFya2VycyBhbmQgd2hpdGVzcGFjZSAoZS5nLiwK
KyAgICAgICAgICAgIDs7ICI+ICIpIGlzICJibGFuayIgaW5zaWRlIHRoZSBxdW90ZS4gIFJFVCBo
ZXJlIGV4aXRzIHRoZQorICAgICAgICAgICAgOzsgcXVvdGUsIHNhbWUgYXMgUkVUIG9uIGEgYmxh
bmsgY29udGludWF0aW9uIGxpbmUgZXhpdHMgYQorICAgICAgICAgICAgOzsgbGlzdDogcmVtb3Zl
IHRoZSBwcmVmaXggYW5kIGRyb3AgdG8gY29sdW1uIDAuCisgICAgICAgICAgICAoYmxhbmstbGlu
ZS1wIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5p
bmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1hdC1wICJe
Wz4gXHRdKiQiKSkpKQorICAgICAgICAoaWYgYmxhbmstbGluZS1wCisgICAgICAgICAgICAocHJv
Z24KKyAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9u
KSAobGluZS1lbmQtcG9zaXRpb24pKQorICAgICAgICAgICAgICAobmV3bGluZSkpCisgICAgICAg
ICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAg
ICAgIChpbnNlcnQgYnEtcHJlZml4KSkpKQorICAgICA7OyBEZWZhdWx0OiBwbGFpbiBuZXdsaW5l
LiAgVGhpcyBhbHNvIGhhbmRsZXMgZW1wdHkgbGlzdCBtYXJrZXJzCisgICAgIDs7IChlLmcuLCAi
LSAiIHdpdGggbm8gdGV4dCkgdGhhdCB0aGUgZ3JhbW1hciBwYXJzZXMgYXMgRVJST1IKKyAgICAg
Ozsgbm9kZXMgcmF0aGVyIHRoYW4gbGlzdF9pdGVtIG5vZGVzLgorICAgICA7OworICAgICA7OyBX
aGVuIHRoZSBjdXJyZW50IGxpbmUgaXMgYmxhbmsgKHdoaXRlc3BhY2Ugb25seSksIGl0IGlzIGEK
KyAgICAgOzsgY29udGludWF0aW9uLWluZGVudCBsaW5lIGxlZnQgYnkgYSBwcmV2aW91cyBSRVQg
dGhhdAorICAgICA7OyB0cmVlLXNpdHRlciBubyBsb25nZXIgY29uc2lkZXJzIHBhcnQgb2YgYSBs
aXN0X2l0ZW0uICBDbGVhcgorICAgICA7OyB0aGUgd2hpdGVzcGFjZSBzbyBubyB0cmFpbGluZyBz
cGFjZXMgcmVtYWluLCBhbmQgaW5zZXJ0IGEKKyAgICAgOzsgcGxhaW4gbmV3bGluZSBhdCBjb2x1
bW4gMCB0byBleGl0IHRoZSBsaXN0IGNvbnRleHQuCisgICAgICh0CisgICAgICAod2hlbiAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAg
ICAgICAobG9va2luZy1hdC1wICJeWyBcdF0rJCIpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiAo
bGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgKG5l
d2xpbmUpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSAoKQorICAi
SW5zZXJ0IGEgbmV3IGxpc3QgaXRlbSwgc3BsaXR0aW5nIHRleHQgYXQgcG9pbnQuCitUZXh0IGFm
dGVyIHBvaW50IG1vdmVzIHRvIHRoZSBuZXcgaXRlbS4gIEF0IHRoZSBiZWdpbm5pbmcgb2YgYSBs
aW5lLAorYW4gZW1wdHkgaXRlbSBpcyBpbnNlcnRlZCBhYm92ZSBhbmQgdGhlIGN1cnJlbnQgY29u
dGVudCBpcyBwdXNoZWQgZG93bi4KK0luc2lkZSBhIGJsb2NrIHF1b3RlLCB0aGUgbmV3IGxpbmUg
aW5jbHVkZXMgdGhlIHF1b3RlIHByZWZpeC4KK0ZvciBvcmRlcmVkIGxpc3RzLCB0aGUgbnVtYmVy
IGlzIGluY3JlbWVudGVkLgorV2hlbiBub3QgaW5zaWRlIGEgbGlzdCwgZmFsbCBiYWNrIHRvIGBt
YXJrZG93bi10cy1uZXdsaW5lJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChub2RlICh0
cmVlc2l0LW5vZGUtYXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8t
aW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkKKyAgICAg
ICAgIChpbi1icSAoYW5kICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9ja19xdW90
ZVxcJyIpCisgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAo
bG9va2luZy1hdC1wICJbIFx0XSo+IikpKSkKKyAgICAgICAgIChicS1wcmVmaXggKHdoZW4gaW4t
YnEgKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKSkKKyAgICAgICAgIChpdGVtICht
YXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkpCisgICAgKGNvbmQKKyAgICAgKChhbmQg
aXRlbQorICAgICAgICAgICAob3IgKG5vdCBpbi1icSkKKyAgICAgICAgICAgICAgICg+PSAobWFy
a2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUtZGVwdGgpCisgICAgICAgICAgICAgICAgICAgKG1h
cmtkb3duLXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoCisgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkpKSkKKyAgICAg
IChsZXQqICgobmV3LW1hcmtlciAobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxpbmUgaXRl
bSkpCisgICAgICAgICAgICAgKGF0LWJvbCAoPD0gKGN1cnJlbnQtY29sdW1uKQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGJhY2stdG8taW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3Vy
cmVudC1jb2x1bW4pKSkpCisgICAgICAgICAgICAgKHRhaWwgKHdoZW4gKGFuZCAobm90IGF0LWJv
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGxvb2tpbmctYXQtcCAiWyBc
dF0qJCIpKSkKKyAgICAgICAgICAgICAgICAgICAgIChkZWxldGUtYW5kLWV4dHJhY3QtcmVnaW9u
CisgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSAobGluZS1lbmQtcG9zaXRpb24pKSkpKQor
ICAgICAgICAoaWYgYXQtYm9sCisgICAgICAgICAgICA7OyBBdCBCT0w6IGluc2VydCBlbXB0eSBp
dGVtIGFib3ZlLCBwdXNoIGN1cnJlbnQgbGluZSBkb3duLgorICAgICAgICAgICAgKHByb2duCisg
ICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKHdoZW4gYnEt
cHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAgICAgKGluc2VydCBuZXctbWFy
a2VyICJcbiIpCisgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0aW9uKSkKKyAgICAgICAg
ICA7OyBNaWQtbGluZSBvciBFT0w6IG5ldyBpdGVtIGJlbG93IHdpdGggdGFpbCB0ZXh0LgorICAg
ICAgICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAg
ICAgICAgICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAgICAgIChp
bnNlcnQgbmV3LW1hcmtlcikKKyAgICAgICAgICAod2hlbiB0YWlsIChzYXZlLWV4Y3Vyc2lvbiAo
aW5zZXJ0IChzdHJpbmctdHJpbS1sZWZ0IHRhaWwpKSkpKSkpCisKKyAgICAgOzsgTm90IGluIGEg
bGlzdDogZmFsbCBiYWNrIHRvIG5ld2xpbmUgYmVoYXZpb3IuCisgICAgICh0IChtYXJrZG93bi10
cy1uZXdsaW5lKSkpKSkKKworOzs7IEZpbGxpbmc6CisKKzs7IFRPRE86IFJlbW92ZSB0aGUgcGlw
ZV90YWJsZSBibG9jayBpZiB3ZSBpbXBsZW1lbnQgcGlwZV90YWJsZSBmaWxsLgorKGRlZmNvbnN0
IG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAgJyhbKGZlbmNlZF9j
b2RlX2Jsb2NrKSAoaW5kZW50ZWRfY29kZV9ibG9jaykgKHBpcGVfdGFibGUpXSBAYmxvY2spCisg
ICJUcmVlLXNpdHRlciBxdWVyeSBtYXRjaGluZyBibG9ja3Mgd2hlcmUgZmlsbGluZyBpcyBpbmhp
Yml0ZWQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gKGl0
ZW0pCisgICJSZXR1cm4gdGhlIGNvbHVtbiB3aGVyZSB0aGUgdGV4dCBvZiBsaXN0IElURU0gc3Rh
cnRzLgorVGhpcyBpcyB0aGUgY29sdW1uIG9mIHRoZSBmaXJzdCBwYXJhZ3JhcGggbm9kZSBpbnNp
ZGUgSVRFTSwgb3IKK3RoZSB3aWR0aCBvZiB0aGUgbGlzdCBtYXJrZXIgaWYgbm8gcGFyYWdyYXBo
IGlzIGZvdW5kLiIKKyAgKGxldCAoKHBhcmFncmFwaCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBp
dGVtICJcXGBwYXJhZ3JhcGhcXCciKSkpCisgICAgKGlmIHBhcmFncmFwaAorICAgICAgICAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgcGFy
YWdyYXBoKSkKKyAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKQorICAgICAgKGxldCAoKG1hcmtl
ciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQorICAgICAgICAoLSAodHJlZXNpdC1ub2Rl
LWVuZCBtYXJrZXIpCisgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gKGl0ZW0ganVzdGlmeSkKKyAg
IkZpbGwgdGhlIGNvbnRlbnRzIG9mIGxpc3QgSVRFTSwgcHJlc2VydmluZyBpdHMgaW5kZW50YXRp
b24uCitOYXJyb3dzIHRvIElURU0ncyBvd24gcGFyYWdyYXBoIGNvbnRlbnQgKGV4Y2x1ZGluZyBu
ZXN0ZWQgbGlzdHMpCithbmQgc2V0cyBgZmlsbC1wcmVmaXgnIHRvIGFsaWduIGNvbnRpbnVhdGlv
biBsaW5lcyB3aXRoIHRoZSBzdGFydAorb2YgdGhlIGl0ZW0ncyB0ZXh0LiAgSlVTVElGWSBpcyBh
cyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGxldCogKChmaWxsLXByZWZpeCAobWFrZS1zdHJp
bmcgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRlbSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgP1xzKSkKKyAgICAgICAgIDs7IEZpbmQgdGhlIGl0ZW0n
cyBvd24gcGFyYWdyYXBoIChmaXJzdCBwYXJhZ3JhcGggY2hpbGQpLgorICAgICAgICAgOzsgSWYg
dGhlIGl0ZW0gaGFzIG5lc3RlZCBsaXN0cywgbmFycm93IHRvIGp1c3QgdGhlCisgICAgICAgICA7
OyBwYXJhZ3JhcGggc28gd2UgZG9uJ3QgbWVyZ2UgbmVzdGVkIGl0ZW1zLgorICAgICAgICAgKHBh
cmEgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxgcGFyYWdyYXBoXFwnIiBuaWwgbmls
IDEpKQorICAgICAgICAgKGJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKQorICAgICAgICAg
KGVuZCAoaWYgcGFyYQorICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkK
KyAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSkpCisgICAgICAgICA7OyBV
c2UgZGVmYXVsdCBwYXJhZ3JhcGggbW90aW9uIGluc2lkZSB0aGUgbmFycm93ZWQgcmVnaW9uCisg
ICAgICAgICA7OyBzbyB0aGF0IHRoZSBpbm5lciBgZmlsbC1wYXJhZ3JhcGgnIGRvZXMgbm90IHJl
LWVudGVyIG91cgorICAgICAgICAgOzsgY3VzdG9tIHBhcmFncmFwaC1maW5kaW5nIGxvZ2ljLgor
ICAgICAgICAgKGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFn
cmFwaCkpCisgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJl
ZyBlbmQpCisgICAgICAoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkpCisgICAgOzsgUmV0dXJuIG5v
bi1uaWwgdG8gc2lnbmFsIHRoYXQgZmlsbGluZyBoYXMgYmVlbiBoYW5kbGVkLAorICAgIDs7IGFz
IHBlciB0aGUgY29udHJhY3Qgb2YgYGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uJy4KKyAgICB0KSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1hZGFwdGl2ZS1maWxsICgpCisgICJSZXR1cm4gdGhlIGZp
bGwgcHJlZml4IGZvciB0aGUgY3VycmVudCBsaW5lIGluIE1hcmtkb3duLgorV2hlbiBpbnNpZGUg
YSBsaXN0IGl0ZW0sIHJldHVybiBzcGFjZXMgbWF0Y2hpbmcgdGhlIGNvbHVtbiB3aGVyZQordGhl
IGl0ZW0ncyB0ZXh0IHN0YXJ0cy4iCisgIChhbmQtbGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dAorICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRp
b24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICAg
ICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkK
KyAgICAobWFrZS1zdHJpbmcgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRl
bSkgP1xzKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCAo
YXJnKQorICAiTW92ZSBmb3J3YXJkIGJ5IEFSRyBwYXJhZ3JhcGhzLCByZXNwZWN0aW5nIE1hcmtk
b3duIHN0cnVjdHVyZS4KK0xpc3QgaXRlbXMgYXJlIHRyZWF0ZWQgYXMgaW5kaXZpZHVhbCBwYXJh
Z3JhcGhzLiAgQmxvY2tzIG1hdGNoZWQKK2J5IGBtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxl
LWJsb2NrLXF1ZXJ5JyBhcmUgc2tpcHBlZDogYm90aAorZm9yd2FyZCBhbmQgYmFja3dhcmQgbW90
aW9uIG1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgYmxvY2ssIHNvCitgZmlsbC1yZWdpb24nIHNlZXMg
YSB6ZXJvLWxlbmd0aCByZWdpb24gYW5kIGxlYXZlcyB0aGUgYmxvY2sKK3VuZmlsbGVkLiIKKyAg
KGxldCAoKGRpcmVjdGlvbiAoaWYgKD4gYXJnIDApIDEgLTEpKQorICAgICAgICAoY291bnQgKGFi
cyBhcmcpKQorICAgICAgICAobW92ZWQgMCkpCisgICAgKGRvdGltZXMgKF8gY291bnQpCisgICAg
ICA7OyBGb3IgYmFja3dhcmQgbW90aW9uLCBza2lwIGJhY2sgb3ZlciB3aGl0ZXNwYWNlIHRvIGZp
bmQKKyAgICAgIDs7IHRoZSBpdGVtIHdlIGFyZSBsZWF2aW5nLCBub3QgdGhlIG5leHQgb25lLgor
ICAgICAgKGxldCogKChwb3MgKGlmICg8IGRpcmVjdGlvbiAwKQorICAgICAgICAgICAgICAgICAg
ICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMt
YmFja3dhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgIChtYXggKHBvaW50LW1p
bikgKDEtIChwb2ludCkpKSkKKyAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAg
ICAgICAgKGJsb2NrIChjYXIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVy
eQorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKDErIHBvcykpKSkKKyAgICAgICAgICAg
ICAoaW5kZW50ZWQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZ290by1jaGFyIHBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2st
dG8taW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQor
ICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgaW5kZW50ZWQtcG9zICdtYXJrZG93
bikpCisgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxp
c3RfaXRlbVxcJyIpKSkKKyAgICAgICAgOzsgV2hlbiBtb3ZpbmcgZm9yd2FyZCBmcm9tIHdoaXRl
c3BhY2UgYmV0d2VlbiBsaXN0IGl0ZW1zLAorICAgICAgICA7OyBza2lwIHRvIHRoZSBuZXh0IG5v
bi1ibGFuayBwb3NpdGlvbiBhbmQgY2hlY2sgYWdhaW4uCisgICAgICAgICh3aGVuIChhbmQgKG5v
dCBpdGVtKSAobm90IGJsb2NrKSAoPiBkaXJlY3Rpb24gMCkpCisgICAgICAgICAgKGxldCAoKG5l
eHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lw
LWNoYXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9p
bnQpKSkpCisgICAgICAgICAgICAoc2V0cSBub2RlICh0cmVlc2l0LW5vZGUtYXQgbmV4dC1wb3Mg
J21hcmtkb3duKSkKKyAgICAgICAgICAgIChzZXRxIGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGls
IG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkpCisgICAgICAgIChjb25kCisgICAgICAgICA7OyBJ
bnNpZGUgYW4gdW5maWxsYWJsZSBibG9jazogc2tpcCBvdmVyIGl0IGVudGlyZWx5LgorICAgICAg
ICAgKGJsb2NrCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCAoY2RyIGJs
b2NrKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkpCisgICAgICAgICA7OyBJ
bnNpZGUgYSBsaXN0IGl0ZW06IHRyZWF0IGFzIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgICAg
IChpdGVtCisgICAgICAgICAgKGlmICg+IGRpcmVjdGlvbiAwKQorICAgICAgICAgICAgICAoZ290
by1jaGFyICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pKQorICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKSkKKyAgICAgICAgICAoc2V0cSBtb3ZlZCAoMSsgbW92
ZWQpKSkKKyAgICAgICAgIDs7IERlZmF1bHQ6IHVzZSBzdGFuZGFyZCBwYXJhZ3JhcGggbW90aW9u
LgorICAgICAgICAgKHQKKyAgICAgICAgICAoZm9yd2FyZC1wYXJhZ3JhcGggZGlyZWN0aW9uKQor
ICAgICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKSkpKQorICAgIDs7IFJldHVybiB0aGUg
bnVtYmVyIG9mIHBhcmFncmFwaHMgbGVmdCB0byBtb3ZlICgwID0gYWxsIGRvbmUpLgorICAgICgt
IGNvdW50IG1vdmVkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGggKCZv
cHRpb25hbCBqdXN0aWZ5KQorICAiRmlsbCB0aGUgY3VycmVudCBwYXJhZ3JhcGgsIHJlc3BlY3Rp
bmcgTWFya2Rvd24gYmxvY2sgc3RydWN0dXJlLgorVGhpcyBmdW5jdGlvbiBwcmV2ZW50cyBmaWxs
aW5nIGluc2lkZSBibG9ja3MgbWF0Y2hlZCBieQorYG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFi
bGUtYmxvY2stcXVlcnknLCBhbmQgZmlsbHMgd2l0aGluIGxpc3QKK2l0ZW1zIHdpdGhvdXQgbWVy
Z2luZyBhZGphY2VudCBpdGVtcy4gIEpVU1RJRlkgaXMgYXMgaW4KK2BmaWxsLXBhcmFncmFwaCcu
IgorICAoY29uZCoKKyAgIDs7IERvbid0IGZpbGwgaW5zaWRlIHVuZmlsbGFibGUgYmxvY2tzLiAg
VXNlIGEgcXVlcnkgYWdhaW5zdCB0aGUKKyAgIDs7IHJvb3Qgbm9kZSBiZWNhdXNlIGB0cmVlc2l0
LW5vZGUtYXQnIG1heSBub3QgcmV0dXJuIGEgbm9kZQorICAgOzsgaW5zaWRlIHRoZSBibG9jayB3
aGVuIHBvaW50IGlzIG9uIGFub255bW91cyAodW5uYW1lZCkgdGV4dC4KKyAgICgodHJlZXNpdC1x
dWVyeS1jYXB0dXJlCisgICAgICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKQor
ICAgICBtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICAgIChwb2lu
dCkgKG1pbiAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKQorICAgIHQpCisgICA7OyBGaWxsIHdp
dGhpbiB0aGUgZW5jbG9zaW5nIGxpc3QgaXRlbS4gIFVzZQorICAgOzsgYG1hcmtkb3duLXRzLS1s
aXN0LWl0ZW0tYXQtcG9pbnQnIHdoaWNoIGhhbmRsZXMgYmxvY2sgcXVvdGUKKyAgIDs7IG1hcmtl
cnMuICBXaGVuIHRoZSBsaXN0IGl0ZW0gaXMgaW5zaWRlIGEgYmxvY2sgcXVvdGUsIGRlbGVnYXRl
CisgICA7OyB0byB0aGUgYmxvY2sgcXVvdGUgZmlsbGVyIHdoaWNoIGhhbmRsZXMgYD4gJyBwcmVm
aXhlcyBjb3JyZWN0bHkuCisgICAoKGJpbmQtYW5kKiAoaXRlbSAobWFya2Rvd24tdHMtLWxpc3Qt
aXRlbS1hdC1wb2ludCkpKQorICAgIChpZiAodHJlZXNpdC1wYXJlbnQtdW50aWwgaXRlbSAiXFxg
YmxvY2tfcXVvdGVcXCciKQorICAgICAgICAobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUg
anVzdGlmeSkKKyAgICAgIChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5
KSkpCisgICA7OyBQb2ludCBpcyBvbiBhIGJsYW5rIGxpbmUgYmVmb3JlIGEgbGlzdC4gIElmIHRo
ZSBuZXh0CisgICA7OyBub24td2hpdGVzcGFjZSBwb3NpdGlvbiBmYWxscyBpbnNpZGUgYSBsaXN0
IGl0ZW0sIGZpbGwgdGhhdCBpdGVtLgorICAgKChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGJlZ2lu
bmluZy1vZi1saW5lKQorICAgICAgKGxvb2tpbmctYXQtcCAiWyBcdF0qJCIpKQorICAgIChhbmQt
bGV0KiAoKG5leHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHBvaW50KSkpCisgICAgICAgICAgICAgICAobmV4dC1ub2RlICh0cmVlc2l0LW5vZGUtYXQg
bmV4dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVu
dC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgIG5leHQtbm9kZSAiXFxgbGlzdF9pdGVtXFwn
IikpKQorICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWxpc3QtaXRlbSBpdGVtIGp1c3RpZnkpKSkK
KyAgIDs7IEZpbGwgd2l0aGluIGEgYmxvY2sgcXVvdGUuICBOYXJyb3cgdG8gdGhlIHBhcmFncmFw
aCBub2RlIGF0CisgICA7OyBwb2ludCdzIG5lc3RpbmcgbGV2ZWwgc28gbGluZXMgd2l0aCBkaWZm
ZXJlbnQgYD4gJyBkZXB0aHMKKyAgIDs7IGFyZSBub3QgbWVyZ2VkLgorICAgKCh0cmVlc2l0LXBh
cmVudC11bnRpbAorICAgICAodHJlZXNpdC1ub2RlLWF0CisgICAgICAoc2F2ZS1leGN1cnNpb24g
KGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAnbWFya2Rvd24pCisgICAgICJc
XGBibG9ja19xdW90ZVxcJyIpCisgICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1
c3RpZnkpKQorICAgOzsgRmlsbCB3aXRoaW4gYW4gSFRNTCBjb21tZW50LiAgVGhlIG5vZGUgdHlw
ZSBpcyAiaHRtbF9ibG9jayIKKyAgIDs7IGluIGdyYW1tYXIgdjAuNC54IGFuZCAiY29tbWVudCIg
aW4gc29tZSBvdGhlciB2ZXJzaW9ucy4KKyAgICgoYmluZC1hbmQqIChibG9jayAobGV0ICgobiAo
dHJlZXNpdC1ub2RlLWF0IChwb2ludCkgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAob3IgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG4gIlxcYFxcKD86aHRtbF9ibG9ja1xcfGNvbW1lbnRcXClcXCciKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhbmQgKG1lbWJlciAodHJlZXNpdC1ub2RlLXR5cGUgbikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiaHRtbF9ibG9jayIgImNvbW1l
bnQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4pKSkpKQorICAgIChtYXJr
ZG93bi10cy0tZmlsbC1odG1sLWNvbW1lbnQgYmxvY2sganVzdGlmeSkpCisgICA7OyBEZWZhdWx0
OiBsZXQgZmlsbC1wYXJhZ3JhcGggaGFuZGxlIGl0LgorICAgKHQgbmlsKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1lbnQgKG5vZGUganVzdGlmeSkKKyAgIkZpbGwgSFRN
TCBjb21tZW50IE5PREUsIGFsaWduaW5nIGNvbnRpbnVhdGlvbiBsaW5lcy4KK1JldHVybiB0IGlm
IE5PREUgaXMgYSBjb21tZW50IGFuZCB3YXMgZmlsbGVkLCBuaWwgb3RoZXJ3aXNlLgorSlVTVElG
WSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKHdoZW4gKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAg
IChsb29raW5nLWF0LXAgIjwhLS0iKSkKKyAgICAobGV0ICgoZmlsbC1wcmVmaXggKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2Rl
LXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAoKyAo
Y3VycmVudC1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChsZW5ndGggIjwhLS0gIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID9ccykpKQorICAgICAgICAgIChhZGFwdGl2ZS1maWxsLWZ1bmN0aW9uIG5pbCkKKyAgICAgICAg
ICAoZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbiAjJ2ZvcndhcmQtcGFyYWdyYXBoKQor
ICAgICAgICAgIChmaWxsLXBhcmFncmFwaC1mdW5jdGlvbiBuaWwpKQorICAgICAgKHNhdmUtcmVz
dHJpY3Rpb24KKyAgICAgICAgKG5hcnJvdy10by1yZWdpb24gKHRyZWVzaXQtbm9kZS1zdGFydCBu
b2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkK
KyAgICAgICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgICAgdCkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCAoKQorICAiUmV0dXJuIHRoZSBibG9jayBx
dW90ZSBwcmVmaXggc3RyaW5nIGZyb20gdGhlIGN1cnJlbnQgbGluZS4KK1JlYWQgdGhlIGFjdHVh
bCBgPicgbWFya2VycyAod2l0aCB3aGF0ZXZlciBzcGFjaW5nIHRoZSB1c2VyIHdyb3RlKQorZnJv
bSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIHNvIHRoYXQgZmlsbCBwcmVzZXJ2ZXMgdGhlIGV4
aXN0aW5nCitzdHlsZSAoZS5nLiwgYD4+PiAnIHN0YXlzIGA+Pj4gJywgYD4gPiA+ICcgc3RheXMg
YD4gPiA+ICcpLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGJlZ2lubmluZy1vZi1saW5lKQor
ICAgIChpZiAobG9va2luZy1hdCAiXFwoWz4gXHRdKj5cXClbIFx0XSoiKQorICAgICAgICAoY29u
Y2F0IChtYXRjaC1zdHJpbmcgMCkpCisgICAgICAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tZmlsbC1ibG9jay1xdW90ZSAoanVzdGlmeSkKKyAgIkZpbGwgdGhlIHBhcmFncmFwaCBhdCBw
b2ludCBpbnNpZGUgYSBibG9jayBxdW90ZS4KK0ZpbmQgdGhlIHBhcmFncmFwaCBub2RlIGF0IHBv
aW50IHdpdGhpbiB0aGUgYmxvY2sgcXVvdGUgYW5kIGZpbGwKK29ubHkgdGhhdCBwYXJhZ3JhcGgs
IHByZXNlcnZpbmcgdGhlIGA+ICcgcHJlZml4LiAgV2hlbiB0aGUKK3BhcmFncmFwaCBpcyBpbnNp
ZGUgYSBsaXN0IGl0ZW0sIGFsaWduIGNvbnRpbnVhdGlvbiBsaW5lcyB3aXRoCit0aGUgaXRlbSdz
IHRleHQgY29sdW1uLiAgSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgOzsg
U2tpcCBwYXN0IGA+ICcgbWFya2VycyBhbmQgYW55IGxpc3QgbWFya2VyIHRvIGxhbmQgaW5zaWRl
IHRoZQorICA7OyBjb250ZW50LCB3aGVyZSB0aGUgcGFyYWdyYXBoIG5vZGUgbGl2ZXMuCisgIChs
ZXQqICgoY29udGVudC1wb3MgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFy
cy1mb3J3YXJkICI+IFx0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIHdlIGxhbmQg
b24gYSBsaXN0IG1hcmtlciwgc2tpcCBwYXN0IGl0LgorICAgICAgICAgICAgICAgICAgICAgICAg
KHdoZW4gKGxvb2tpbmctYXQgIlstKitdIFxcfFswLTldK1suKV1ccyIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAobWluICgxKyAocG9pbnQpKSAocG9pbnQtbWF4KSkpKQorICAgICAgICAgKG5vZGUg
KHRyZWVzaXQtbm9kZS1hdCBjb250ZW50LXBvcyAnbWFya2Rvd24pKQorICAgICAgICAgKHBhcmEg
KHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQor
ICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJwYXJh
Z3JhcGgiKSkpKSkKKyAgICAod2hlbiBwYXJhCisgICAgICA7OyBUaGUgZ3JhbW1hciBtYXkgaW5j
bHVkZSB0cmFpbGluZyBibG9ja19jb250aW51YXRpb24gbm9kZXMKKyAgICAgIDs7IChibGFuayBg
PiA+JyBsaW5lcykgYXMgY2hpbGRyZW4gb2YgdGhlIHBhcmFncmFwaC4gIFVzZSB0aGUKKyAgICAg
IDs7IGVuZCBvZiB0aGUgbGFzdCBpbmxpbmUgY2hpbGQgc28gZmlsbCBkb2VzIG5vdCBtZXJnZSBh
Y3Jvc3MKKyAgICAgIDs7IHdoYXQgc2hvdWxkIGJlIGEgcGFyYWdyYXBoIGJvdW5kYXJ5LgorICAg
ICAgKGxldCogKChsYXN0LWlubGluZQorICAgICAgICAgICAgICAoc2VxLWZpbmQgKGxhbWJkYSAo
Y2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5
cGUgY2hpbGQpICJpbmxpbmUiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChyZXZlcnNlICh0
cmVlc2l0LW5vZGUtY2hpbGRyZW4gcGFyYSkpKSkKKyAgICAgICAgICAgICAocGFyYS1lbmQgKGlm
IGxhc3QtaW5saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVu
ZCBsYXN0LWlubGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVu
ZCBwYXJhKSkpCisgICAgICAgICAgICAgKGJxLXByZWZpeCAobWFya2Rvd24tdHMtLWJsb2NrLXF1
b3RlLXByZWZpeCkpCisgICAgICAgICAgICAgOzsgV2hlbiBpbnNpZGUgYSBsaXN0IGl0ZW0sIGV4
dGVuZCB0aGUgcHJlZml4IHdpdGggc3BhY2VzCisgICAgICAgICAgICAgOzsgc28gY29udGludWF0
aW9uIGxpbmVzIGFsaWduIHdpdGggdGhlIGl0ZW0ncyB0ZXh0LgorICAgICAgICAgICAgIChsaXN0
LWl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIHBhcmEgIlxcYGxpc3RfaXRlbVxcJyIpKQorICAg
ICAgICAgICAgIChwcmVmaXggKGlmIGxpc3QtaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAg
IChsZXQqICgodGV4dC1jb2wgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LWl0ZW0pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXh0cmEgKG1heCAwICgtIHRleHQtY29sIChs
ZW5ndGggYnEtcHJlZml4KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQg
YnEtcHJlZml4IChtYWtlLXN0cmluZyBleHRyYSA/XHMpKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgYnEtcHJlZml4KSkKKyAgICAgICAgICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwp
CisgICAgICAgICAgICAgKGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJk
LXBhcmFncmFwaCkKKyAgICAgICAgICAgICAoZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkK
KyAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgICAgICA7OyBOYXJyb3cgdG8gdGhlIGZ1
bGwgbGluZXMgb2YgdGhlIHBhcmFncmFwaCBzbyB0aGF0IHRoZQorICAgICAgICAgIDs7IGA+ICcg
bWFya2VycyBhcmUgaW5jbHVkZWQgaW4gdGhlIGZpbGwgcmVnaW9uLgorICAgICAgICAgIChuYXJy
b3ctdG8tcmVnaW9uCisgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgIChn
b3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBwYXJhKSkKKyAgICAgICAgICAgICAoYmVnaW5u
aW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgKHBvaW50KSkKKyAgICAgICAgICAgcGFyYS1lbmQp
CisgICAgICAgICAgKGxldCAoKGZpbGwtcHJlZml4IHByZWZpeCkpCisgICAgICAgICAgICAoZmls
bC1wYXJhZ3JhcGgganVzdGlmeSkpKSkpKQorICB0KQorCis7OzsgQ29kZSBibG9ja3M6CisKKyhk
ZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzIG5pbAorICAiQWxp
c3QgbWFwcGluZyBsYW5ndWFnZSBub2RlIG5hbWVzIHRvIHRzIGxhbmd1YWdlLgorSWYgYSBsYW5n
dWFnZSBpcyBub3QgYSB0cyBsYW5ndWFnZSBvciBpcyBub3QgbWFwcGVkIHRvIG9uZSwgaXQgd2ls
bCBiZQoraW4gYG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcycuIikKIAotKGRl
ZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyAobW9kZSkKLSAgIkhhcnZl
c3QgdHJlZS1zaXR0ZXIgY29uZmlncyBmcm9tIE1PREUuCi1SZXR1cm4gYSBwbGlzdCB3aXRoIHRo
ZSBmb2xsb3dpbmcga2V5cyBhbmQgdmFsdWU6CisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1j
b2RlLWJsb2NrLW5vbi10cy1tb2RlcyBuaWwKKyAgIkFsaXN0IG1hcHBpbmcgbGFuZ3VhZ2VzIHRv
IG5vbi10cmVlLXNpdHRlciBtb2RlcyBmb3IgY29kZSBibG9ja3MuCitQb3B1bGF0ZWQgYnkgYG1h
cmtkb3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlJyB0byBpZGVudGlmeSBhCitjb2RlLWJs
b2NrIGxhbmd1YWdlIG1vZGUgd2hpY2ggaXMgbm90IGEgdHJlZS1zaXR0ZXIgbW9kZSBvciBmb3Ig
d2hpY2gKK3RoZSB0cmVlLXNpdHRlciBncmFtbWFyIGlzIHVuYXZhaWxhYmxlLiIpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0taGFydmVzdC1tb2RlLXRyZWVzaXQtY29uZmlndXJhdGlvbiAobW9kZSkK
KyAgIkhhcnZlc3QgdHJlZS1zaXR0ZXIgY29uZmlndXJhdGlvbiBmcm9tIE1PREUuCitSZXR1cm4g
YSBwbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5cyBhbmQgdmFsdWVzOgogCiAgICAgOmZvbnQt
bG9jayAoZnJvbSBgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MnKQogICAgIDpzaW1wbGUtaW5k
ZW50IChmcm9tIGB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMnKQogICAgIDpyYW5nZSAoZnJv
bSBgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncycpIgotICAod2l0aC10ZW1wLWJ1ZmZlcgotICAgIChm
dW5jYWxsIG1vZGUpCi0gICAgKGxpc3QgOmZvbnQtbG9jayB0cmVlc2l0LWZvbnQtbG9jay1zZXR0
aW5ncworICAod2l0aC13b3JrLWJ1ZmZlcgorICAgIChtYXJrZG93bi10cy0taW5oaWJpdC1tZXNz
YWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICdtYXJrZG93bi10cy1pbmhpYml0LWNvZGUtYmxvY2st
bW9kZS13YXJuaW5ncworICAgICAgKGRlbGF5LW1vZGUtaG9va3MgKGZ1bmNhbGwgbW9kZSkpKQor
ICAgIChsaXN0IDpsYW5ndWFnZSAodHJlZXNpdC1sYW5ndWFnZS1hdCAocG9pbnQtbWluKSkKKyAg
ICAgICAgICA6Zm9udC1sb2NrIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCiAgICAgICAgICAg
OnNpbXBsZS1pbmRlbnQgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCiAgICAgICAgICAgOnJh
bmdlIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLS1hZGQt
Y29uZmlnLWZvci1tb2RlIChsYW5ndWFnZSBtb2RlKQotICAiQWRkIGNvbmZpZ3VyYXRpb25zIGZv
ciBMQU5HVUFHRSBmcm9tIE1PREUgdG8gY3VycmVudCBidWZmZXIuCi0KLUNvbmZpZ3VyYXRpb24g
aW5jbHVkZXMgZm9udC1sb2NrIGFuZCBpbmRlbnQuICBGb3IgZm9udC1sb2NrIHJ1bGVzLCB1c2UK
LXRoZSBzYW1lIGZlYXR1cmVzIGVuYWJsZWQgaW4gTU9ERS4iCi0gIChsZXQgKChjb25maWdzICht
YXJrZG93bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZpZ3MgbW9kZSkpKQotICAgIChpZ25vcmUg
bGFuZ3VhZ2UpIDsgV2UgbWlnaHQgbWFrZSB1c2Ugb2YgdGhpcyBsYXRlci4KLSAgICAoc2V0cSB0
cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250
LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgIDs7IEdldCBhbGwgdGhlIGZvbnQtbG9j
ayBzZXR0aW5ncywgaW5jbHVkaW5nIG9uZXMgdGhhdAotICAgICAgICAgICAgICAgICAgOzsgZG9u
J3QgcGVydGFpbiB0byBMQU5HVUFHRS4gIFRoaXMgd2F5IHdlIGdldCBqc2RvYwotICAgICAgICAg
ICAgICAgICAgOzsgZnJvbSBqcy10cy1tb2RlLCBmb3IgZXhhbXBsZS4KLSAgICAgICAgICAgICAg
ICAgIChwbGlzdC1nZXQgY29uZmlncyA6Zm9udC1sb2NrKSkpCi0gICAgKHNldHEgdHJlZXNpdC1z
aW1wbGUtaW5kZW50LXJ1bGVzCi0gICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXNpbXBsZS1pbmRl
bnQtcnVsZXMKLSAgICAgICAgICAgICAgICAgIDs7IFNpbWlsYXJseSwgZ2V0IGFsbCBpbmRlbnQg
cnVsZXMuCi0gICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3MgOnNpbXBsZS1pbmRl
bnQpKSkKKyhkZWZ1biBtYXJrZG93bi10cy0tY29uZmlndXJlLWN1cnJlbnQtYnVmZmVyIChjb25m
aWd1cmF0aW9uKQorICAiQWRkIENPTkZJR1VSQVRJT04gdG8gdGhlIGN1cnJlbnQgYnVmZmVyLgor
Q09ORklHVVJBVElPTiBpbmNsdWRlcyBmb250LWxvY2sgYW5kIGluZGVudCBydWxlcy4gIEZvciBm
b250LWxvY2sgcnVsZXMsCit1c2UgdGhlIHNhbWUgZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIK
KyAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgKGFwcGVuZCB0cmVl
c2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgIDs7IEdldCBhbGwgdGhlIGZv
bnQtbG9jayBzZXR0aW5ncywgaW5jbHVkaW5nIG9uZXMgdGhhdAorICAgICAgICAgICAgICAgIDs7
IGRvbid0IHBlcnRhaW4gdG8gTU9ERS4gIFRoaXMgd2F5LCB3ZSBnZXQganNkb2MKKyAgICAgICAg
ICAgICAgICA7OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFtcGxlLgorICAgICAgICAgICAgICAg
IChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6Zm9udC1sb2NrKSkpCisgIChzZXRxIHRyZWVzaXQt
c2ltcGxlLWluZGVudC1ydWxlcworICAgICAgICAoYXBwZW5kIHRyZWVzaXQtc2ltcGxlLWluZGVu
dC1ydWxlcworICAgICAgICAgICAgICAgIDs7IFNpbWlsYXJseSwgZ2V0IGFsbCBpbmRlbnQgcnVs
ZXMuCisgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpzaW1wbGUtaW5k
ZW50KSkpCiAgICAgKHNldHEgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwogICAgICAgICAgIChhcHBl
bmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwogICAgICAgICAgICAgICAgICAgOzsgRmlsdGVyIG91
dCBmdW5jdGlvbiBxdWVyaWVzLCBiZWNhdXNlIHRoZXkgYXJlCkBAIC0zMDIsNDUgKzI2NzYsMTk0
NiBAQCBtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZQogICAgICAgICAgICAgICAgICAg
OzsgQ2FzZSBpbiBwb2ludDogYy10cy1tb2RlJ3MgcmFuZ2Ugc2V0dGluZy4KICAgICAgICAgICAg
ICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKHNldHRpbmcpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChub3QgKGZ1bmN0aW9ucCAoY2FyIHNldHRpbmcpKSkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3MgOnJhbmdlKSkpKQotICAgIChz
ZXRxLWxvY2FsIGluZGVudC1saW5lLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQpCi0gICAgKHNl
dHEtbG9jYWwgaW5kZW50LXJlZ2lvbi1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50LXJlZ2lvbikp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9u
IDpyYW5nZSkpKSkKKyAgKHNldHEtbG9jYWwgaW5kZW50LWxpbmUtZnVuY3Rpb24gIyd0cmVlc2l0
LWluZGVudCkKKyAgKHNldHEtbG9jYWwgaW5kZW50LXJlZ2lvbi1mdW5jdGlvbiAjJ3RyZWVzaXQt
aW5kZW50LXJlZ2lvbikpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGFuZ3VhZ2UtYXQtbm9kZSAo
bm9kZSkKKyAgIlJldHVybiB0aGUgbGFuZ3VhZ2Ugc3ltYm9sIGZvciBjb2RlX2ZlbmNlX2NvbnRl
bnQgTk9ERS4iCisgICh3aGVuLWxldCogKChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9k
ZSkpCisgICAgICAgICAgICAgIChsYW5nLW5vZGUgKHdoZW4gcGFyZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxhbmd1YWdl
XFwnIikpKSkKKyAgICAoaW50ZXJuICh0cmVlc2l0LW5vZGUtdGV4dCBsYW5nLW5vZGUgdCkpKSkK
KworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUgKG1ha2Ut
aGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFsKQorICAiQ2FjaGUgZm9yIG5vbi10cmVlLXNpdHRlciBj
b2RlIGJsb2NrIGZvbnRpZmljYXRpb24uCitLZXlzIGFyZSAoTEFORyAuIENPTlRFTlQtSEFTSCkg
Y29ucyBjZWxscywgdmFsdWVzIGFyZSBsaXN0cyBvZgorXChPRkZTRVQtU1RBUlQgT0ZGU0VULUVO
RCBGQUNFKSB0cmlwbGVzLiIpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLW5vbi10cy1m
b250aWZ5LWNhY2hlLXRpY2sgbmlsCisgICJGb3IgYmx1bnQgYGJ1ZmZlci1jaGFycy1tb2RpZmll
ZC10aWNrJyBjYWNoZSBpbnZhbGlkYXRpb24uIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250
aWZ5LW5vbi10cy1jb2RlLWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQor
ICAiRm9udGlmeSBjb2RlX2ZlbmNlX2NvbnRlbnQgTk9ERSB1c2luZyBhIG5vbi10cmVlLXNpdHRl
ciBtb2RlLgorQXBwbHkgdGhlIGNvZGUtYmxvY2sgbW9kZSdzIGNvbnZlbnRpb25hbCBmb250LWxv
Y2sgaW4gYSB0ZW1wb3JhcnkKK2J1ZmZlci4gIE9WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUg
cGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuCisKK0Nh
Y2hlIHJlc3VsdHMgdG8gYXZvaWQgZm9udGlmaWNhdGlvbiBvZiB1bmNoYW5nZWQgY29kZSBibG9j
a3MuCisKK05PREUgc2hvdWxkIGFscmVhZHkgaGF2ZSBwYXNzZWQgdGhyb3VnaAorYG1hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlJyB3aGljaCBtYXkgaGF2ZSBjbGFzc2lmaWVkIHRo
aXMKK25vZGUgYXMgYSBub24tdHMgbW9kZS4iCisgICh3aGVuLWxldCogKChfIG1hcmtkb3duLXRz
LWZvbnRpZnktY29kZS1ibG9ja3MtbmF0aXZlbHkpCisgICAgICAgICAgICAgIChsYW5nIChtYXJr
ZG93bi10cy0tbGFuZ3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAgICAgICAgICAgICAgKG1vZGUgKGFs
aXN0LWdldCBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykpCisgICAg
ICAgICAgICAgICh0aWNrIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaykpCisgICAgICAgICAg
ICAgIChibG9jay1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAg
ICA7OyBDYW5ub3QgdXNlIG1hcmtlcnMgJ21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtlcgorICAg
ICAgICAgICAgICA7OyAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyIHRoZXkgYXJlIHNldCBh
ZnRlciB0aGlzCisgICAgICAgICAgICAgIDs7IGZ1bmN0aW9uIHJ1bnMuCisgICAgICAgICAgICAg
IChub2RlLXN0YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAgICAgICAgKG5v
ZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1j
aGFyICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHBv
aW50KSkpKQorICAgICh3aGVuICg+IG5vZGUtZW5kIG5vZGUtc3RhcnQpCisgICAgICAodW5sZXNz
IChlcSB0aWNrIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10aWNrKQorICAgICAg
ICAoY2xyaGFzaCBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpKQorICAgICAgKGxl
dCogKChjYWNoZS1rZXkgKGNvbnMgbGFuZyAoc2VjdXJlLWhhc2gKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdzaGEyNTYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjdXJyZW50LWJ1ZmZlcikgbm9kZS1zdGFydCBub2RlLWVuZCkpKQorICAgICAgICAg
ICAgIChwcm9wcworICAgICAgICAgICAgICAob3IgKGdldGhhc2ggY2FjaGUta2V5CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpCisg
ICAgICAgICAgICAgICAgICAobGV0ICgocmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAg
KG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2xsZWN0LWZhY2VzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1vZGUgbm9kZS1zdGFydCBub2RlLWVuZCkpKQorICAgICAgICAgICAgICAg
ICAgICAocHV0aGFzaCBjYWNoZS1rZXkgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSkKKyAgICAgICAgICAgICAgICAg
ICAgKHNldHEgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlLXRpY2sgdGljaykKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0KSkpKQorICAgICAgICAoZG9saXN0IChyYW5nZSBwcm9w
cykKKyAgICAgICAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgICAg
KG50aCAwIHJhbmdlKQorICAgICAgICAgICAobnRoIDEgcmFuZ2UpCisgICAgICAgICAgIChudGgg
MiByYW5nZSkKKyAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcyAobW9kZSBiZWcgZW5kKQor
ICAiUnVuIE1PREUgb24gdGhlIEJFRy4uRU5EIHJlZ2lvbidzIHRleHQgYW5kIGhhcnZlc3QgZmFj
ZSBwcm9wZXJ0aWVzLgorUmV0dXJuIGEgbGlzdCBvZiAoQlVGLUJFRyBCVUYtRU5EIEZBQ0UpIHRy
aXBsZXMgaW4gYmFzZS1idWZmZXIKK2Nvb3JkaW5hdGVzLgogCi0oZGVmdW4gbWFya2Rvd24tdHMt
LWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFnZSAobm9kZSkKK0ZvciBub24tdHJlZS1zaXR0ZXIg
bW9kZXMgdXNlIGFuIGluZGlyZWN0IGJ1ZmZlciBuYXJyb3dlZCB0byBCRUcuLkVORDoKK3JlZ2V4
L3N5bnRhY3RpYyBmb250LWxvY2sgaG9ub3JzIG5hcnJvd2luZyBhbmQgdGhlIGluZGlyZWN0IGJ1
ZmZlcgorc2hhcmVzIHRleHQgd2l0aCB0aGUgYmFzZSwgc28gdGhpcyBpcyBsZXNzIGV4cGVuc2l2
ZSBhbmQgY29weS1mcmVlLgorCitGb3IgdHMgbW9kZXMgaW4gYG1hcmtkb3duLXRzLWNvZGUtYmxv
Y2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzJywgZmFsbAorYmFjayB0byBhIHRlbXAgYnVmZmVy
LiAgQSBwYXJzZXIgY3JlYXRlZCBpbiB0aGUgc291cmNlIGJ1ZmZlciBkb2VzIG5vdAorcmVhY3Qg
dG8gbmFycm93aW5nIGluIGFuIGluZGlyZWN0IGJ1ZmZlciBkZXJpdmVkIGZyb20gaXQgKG9ubHkg
cGFyc2VycworY3JlYXRlZCBpbiB0aGF0IGluZGlyZWN0IGJ1ZmZlciB3b3VsZCBob25vciBpdHMg
bmFycm93aW5nKSwgc28gcmV1c2luZwordGhlIGhvc3QgcGFyc2VyIHZpYSBhbiBpbmRpcmVjdCBi
dWZmZXIgaXMgbm90IGFuIG9wdGlvbiBoZXJlLiAgQW5kIGluCit0aGUgaG9zdCBidWZmZXIgaXRz
ZWxmLCB0aGUgaW5uZXIgY29udGVudCBvZiBhIGZlbmNlZCBjb2RlIGJsb2NrIGlzCitqdXN0IG9w
YXF1ZSB0ZXh0IGluc2lkZSBhIGBjb2RlX2ZlbmNlX2NvbnRlbnQnIG5vZGUsIG5ldmVyIHJlLXBh
cnNlZAorYXMgYSBmcmVzaCBkb2N1bWVudC4gIEEgdGVtcCBidWZmZXIgd2l0aCBhIGZyZXNoIHBh
cnNlciBzZWVzIHRoZSBpbm5lcgorY29udGVudCBhcyBhIHN0YW5kYWxvbmUgbWFya2Rvd24gZG9j
dW1lbnQsIHdoaWNoIGlzIHdoYXQgd2Ugd2FudC4iCisgIChjb25kICgobWVtcSBtb2RlIG1hcmtk
b3duLXRzLWNvZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzKQorICAgICAgICAgKGxl
dCAoKGNvbnRlbnQgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkKKyAg
ICAgICAgICAgICAgIHJlcykKKyAgICAgICAgICAgKHdpdGgtd29yay1idWZmZXIKKyAgICAgICAg
ICAgICAoaW5zZXJ0IGNvbnRlbnQpCisgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1pbmhpYml0
LW1lc3NhZ2VzLWFuZC13YXJuaW5ncworICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWluaGli
aXQtY29kZS1ibG9jay1tb2RlLXdhcm5pbmdzCisgICAgICAgICAgICAgICAoZGVsYXktbW9kZS1o
b29rcworICAgICAgICAgICAgICAgICAobGV0ICgobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUg
dCkpCisgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLW1vZGUpKSkpCisgICAgICAgICAg
ICAgKGZvbnQtbG9jay1lbnN1cmUpCisgICAgICAgICAgICAgKGxldCAoKHBvcyAocG9pbnQtbWlu
KSkpCisgICAgICAgICAgICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQorICAgICAgICAg
ICAgICAgICAobGV0ICgobmV4dCAobmV4dC1zaW5nbGUtcHJvcGVydHktY2hhbmdlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3MgJ2ZhY2UgbmlsIChwb2ludC1tYXgpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXByb3BlcnR5IHBvcyAnZmFjZSkpKQor
ICAgICAgICAgICAgICAgICAgICh3aGVuIGZhY2UKKyAgICAgICAgICAgICAgICAgICAgIDs7IFRy
YW5zbGF0ZSB0ZW1wLWJ1ZmZlciBvZmZzZXRzIGJhY2sgdG8gYmFzZS1idWZmZXIKKyAgICAgICAg
ICAgICAgICAgICAgIDs7IHBvc2l0aW9uczogdGVtcCBgcG9pbnQtbWluJyBjb3JyZXNwb25kcyB0
byBCRUcuCisgICAgICAgICAgICAgICAgICAgICAocHVzaCAobGlzdCAoKyBiZWcgKDEtIHBvcykp
ICgrIGJlZyAoMS0gbmV4dCkpIGZhY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMp
KQorICAgICAgICAgICAgICAgICAgIChzZXRxIHBvcyBuZXh0KSkpKSkKKyAgICAgICAgICAgKG5y
ZXZlcnNlIHJlcykpKQorICAgICAgICAodAorICAgICAgICAgKGxldCAoKGluZGlyZWN0LWJ1ZmZl
ciAobWFrZS1pbmRpcmVjdC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjdXJyZW50LWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5l
cmF0ZS1uZXctYnVmZmVyLW5hbWUgKGJ1ZmZlci1uYW1lKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5pbCAnaW5oaWJpdC1idWZmZXItaG9va3MpKQorICAgICAgICAgICAgICAg
cmVzKQorICAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAgICh3aXRoLWN1
cnJlbnQtYnVmZmVyIGluZGlyZWN0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAobWFya2Rvd24t
dHMtLWluaGliaXQtbWVzc2FnZXMtYW5kLXdhcm5pbmdzCisgICAgICAgICAgICAgICAgICAgJ21h
cmtkb3duLXRzLWluaGliaXQtY29kZS1ibG9jay1tb2RlLXdhcm5pbmdzCisgICAgICAgICAgICAg
ICAgICAgKGRlbGF5LW1vZGUtaG9va3MgKGZ1bmNhbGwgbW9kZSkpKQorICAgICAgICAgICAgICAg
ICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAgICAgICAgICAgICAgICAoZm9udC1sb2Nr
LWVuc3VyZSkKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBvcyAocG9pbnQtbWluKSkpCisgICAg
ICAgICAgICAgICAgICAgKHdoaWxlICg8IHBvcyAocG9pbnQtbWF4KSkKKyAgICAgICAgICAgICAg
ICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgJ2ZhY2UgbmlsIChwb2ludC1tYXgpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChmYWNlIChnZXQtdGV4dC1wcm9wZXJ0eSBwb3MgJ2Zh
Y2UpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAgICAgICAg
ICAgICAgICAgIChwdXNoIChsaXN0IHBvcyBuZXh0IGZhY2UpIHJlcykpCisgICAgICAgICAgICAg
ICAgICAgICAgIChzZXRxIHBvcyBuZXh0KSkpKSkKKyAgICAgICAgICAgICAoa2lsbC1idWZmZXIg
aW5kaXJlY3QtYnVmZmVyKSkKKyAgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIChsYW5nKQorICAiQ29tcHV0
ZSBhbmQgY2FjaGUgYSBtb2RlIHN5bWJvbCBmcm9tIExBTkcsIGEgc3ltYm9sLgorQ29uc3VsdCB0
aGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMnIGNhY2hlLCBvciBjb25zdWx0CitgdHJl
ZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFsaXN0JyBhbmQgYG1ham9yLW1vZGUtcmVtYXAtYWxpc3Qn
LCBvciBicnV0ZQorZm9yY2UgbW9kZSBwcm9iZS4gIFJldHVybiBhIHZhbGlkIG1vZGUgc3ltYm9s
IG9yIG5pbC4iCisgIChpZi1sZXQqICgobWFwcGVkLW1vZGUgKGNhciAoYWxpc3QtZ2V0IGxhbmcg
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcykpKSkKKyAgICAgIG1hcHBlZC1tb2RlCisgICAg
KGxldCogKChsYW5nLXN0cmluZyAoc3ltYm9sLW5hbWUgbGFuZykpCisgICAgICAgICAgIChsYW5n
LW1vZGUgKGNvbmNhdCBsYW5nLXN0cmluZyAiLW1vZGUiKSkKKyAgICAgICAgICAgKG1vZGUpKQor
ICAgICAgKGlmIChzZXRxIG1vZGUgKGFsaXN0LWdldCBsYW5nLW1vZGUgdHJlZXNpdC1tYWpvci1t
b2RlLXJlbWFwLWFsaXN0KSkKKyAgICAgICAgICBtb2RlCisgICAgICAgIChpZiAoc2V0cSBtb2Rl
IChhbGlzdC1nZXQgbGFuZy1tb2RlIG1ham9yLW1vZGUtcmVtYXAtYWxpc3QpKQorICAgICAgICAg
ICAgbW9kZQorICAgICAgICAgIChjYXRjaCA6bW9kZQorICAgICAgICAgICAgKGRvbGlzdCAobW9k
ZQorICAgICAgICAgICAgICAgICAgICAgKGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICA7OyBU
cnkgYSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhlIHJhdyBzdHJpbmcuCisgICAgICAgICAgICAgICAg
ICAgICAgKGNvbmNhdCBsYW5nLXN0cmluZyAiLXRzLW1vZGUiKQorICAgICAgICAgICAgICAgICAg
ICAgIDs7IFRyeSBhIGNvbnZlbnRpb25hbCBtb2RlIHVzaW5nIHRoZSByYXcgc3RyaW5nLgorICAg
ICAgICAgICAgICAgICAgICAgIGxhbmctbW9kZQorICAgICAgICAgICAgICAgICAgICAgIDs7IFRy
eSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0aGUgZG93bmNhc2VkIHN0cmluZy4KKyAgICAgICAgICAg
ICAgICAgICAgICAoY29uY2F0IChkb3duY2FzZSBsYW5nLXN0cmluZykgIi10cy1tb2RlIikKKyAg
ICAgICAgICAgICAgICAgICAgICA7OyBUcnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2luZyB0aGUg
ZG93bmNhc2VkIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IChkb3duY2Fz
ZSBsYW5nLXN0cmluZykgIi1tb2RlIikpKQorICAgICAgICAgICAgICAoc2V0cSBtb2RlIChpbnRl
cm4gbW9kZSkpCisgICAgICAgICAgICAgICh3aGVuIChmYm91bmRwIG1vZGUpCisgICAgICAgICAg
ICAgICAgKHB1c2ggKGxpc3QgbGFuZyBtb2RlKSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVz
KQorICAgICAgICAgICAgICAgICh0aHJvdyA6bW9kZSBtb2RlKSkpKSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZSAobm9kZSkKICAgIkNvbnZlcnQgTk9E
RSB0byBhIGxhbmd1YWdlIGZvciB0aGUgY29kZSBibG9jay4iCi0gIChsZXQqICgobGFuZy1zdHJp
bmcgKGFsaXN0LWdldCAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1hcAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpIG5p
bCAjJ2VxdWFsKSkKLSAgICAgICAgIChsYW5nIChpZiAoc3ltYm9scCBsYW5nLXN0cmluZykKLSAg
ICAgICAgICAgICAgICAgICBsYW5nLXN0cmluZwotICAgICAgICAgICAgICAgICAoaW50ZXJuIChk
b3duY2FzZSBsYW5nLXN0cmluZykpKSkpCi0gICAgOzsgRklYTUU6IEtpbmQgb2YgYSBoYWNrIGhl
cmU6IHdlIHVzZSB0aGlzIGZ1bmN0aW9uIGFzIGEgaG9vayBmb3IKLSAgICA7OyBsb2FkaW5nIHVw
IGNvbmZpZ3MgZm9yIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvZGUgYmxvY2sgb24tZGVtYW5kLgot
ICAgIChsZXQgKChtb2RlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXNv
dXJjZS1tb2RlLW1hcCkpKQotICAgICAgOzsgSWYgdGhlcmUncyBubyBzdXBwb3J0ZWQgbW9kZSBm
b3IgdGhlIGxhbmd1YWdlLCByZXR1cm4gbmlsLAotICAgICAgOzsgd2hpY2ggbWFrZXMgRW1hY3Mg
c2tpcCB0aGUgY29kZSBibG9jay4KLSAgICAgIChpZiAobm90IChhbmQgbW9kZSAoZmJvdW5kcCBt
b2RlKSkpCi0gICAgICAgICAgbmlsCi0gICAgICAgIDs7IElmIHRoZXJlJ3MgYSBtYWpvciBtb2Rl
IGZvciB0aGUgbGFuZ3VhZ2UsIHNldCB1cCB0aGUgY29uZmlnCi0gICAgICAgIDs7IGFuZCByZXR1
cm4gdGhlIGxhbmd1YWdlLgotICAgICAgICAod2hlbiAobm90IChtZW1xIGxhbmcgbWFya2Rvd24t
dHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkKLSAgICAgICAgICAobWFya2Rvd24tdHMtLWFkZC1j
b25maWctZm9yLW1vZGUgbGFuZyBtb2RlKQotICAgICAgICAgIChwdXNoIGxhbmcgbWFya2Rvd24t
dHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkKLSAgICAgICAgbGFuZykpKSkKKyAgKGxldCogKChs
YW5nIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKKyAgICAgICAgIChtb2RlICht
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIGxhbmcpKQorICAgICAgICAgKHRz
LWxhbmd1YWdlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFn
ZXMpKQorICAgICAgICAgKG5vbi10cy1sYW5ndWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkpCisgICAgKGNvbmQKKyAgICAgKChmYm91bmRw
IG1vZGUpCisgICAgICAoY29uZAorICAgICAgIDs7IFJldHVybiBrbm93biB0cmVlc2l0IGxhbmd1
YWdlLgorICAgICAgICh0cy1sYW5ndWFnZSB0cy1sYW5ndWFnZSkKKyAgICAgICA7OyBSZXR1cm4g
bmlsIGZvciBrbm93biBub24tdHJlZXNpdCBsYW5ndWFnZSBmb3IgZm9udC1sb2NrLgorICAgICAg
IChub24tdHMtbGFuZ3VhZ2UgbmlsKQorICAgICAgIDs7IE1hcmtkb3duIGl0c2VsZiBuZWVkcyB0
d28gcGFyc2VycyAobWFya2Rvd24gKworICAgICAgIDs7IG1hcmtkb3duLWlubGluZSksIHNvIHRy
ZWVzaXQgZW1iZWRkaW5nICh3aGljaCBjcmVhdGVzIG9ubHkKKyAgICAgICA7OyBvbmUpIGNhbm5v
dCBmdWxseSBmb250aWZ5IGl0LiAgUm91dGUgdGhyb3VnaCB0aGUgbm9uLXRzCisgICAgICAgOzsg
cGF0aCBzbyB0aGUgdGVtcCBidWZmZXIgcnVucyB0aGUgZnVsbCBtb2RlIHdpdGggYm90aAorICAg
ICAgIDs7IHBhcnNlcnMuCisgICAgICAgKChwcm92aWRlZC1tb2RlLWRlcml2ZWQtcCBtb2RlICdt
YXJrZG93bi10cy1tb2RlKQorICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFya2Rvd24tdHMt
LWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKQorICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgbW9k
ZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAgICAgbmlsKQor
ICAgICAgICh0CisgICAgICAgIChsZXQqICgoY29uZmlndXJhdGlvbiAobWFya2Rvd24tdHMtLWhh
cnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RlKSkKKyAgICAgICAgICAgICAgICh0cy1sYW5ndWFnZSAocGxpc3QtZ2V0IGNv
bmZpZ3VyYXRpb24gOmxhbmd1YWdlKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChh
bmQgdHMtbGFuZ3VhZ2UKKyAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9u
IDpmb250LWxvY2spKQorICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVu
dC1idWZmZXIgY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgICh1bmxlc3MgKGFzc3EgbGFuZyBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCisgICAgICAgICAgICAgIChwdXNoIChj
b25zIGxhbmcgdHMtbGFuZ3VhZ2UpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykp
CisgICAgICAgICAgICB0cy1sYW5ndWFnZSkKKyAgICAgICAgICAgOzsgT3RoZXJ3aXNlLCBjbGFz
c2lmeSBtb2RlIGFzIG5vbi10cmVlLXNpdHRlci4KKyAgICAgICAgICAgKHQKKyAgICAgICAgICAg
ICh1bmxlc3MgKGFzc3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMp
CisgICAgICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtLWNvZGUt
YmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAgICAgICAgIG5pbCkpKSkpKQorICAgICAodCBuaWwp
KSkpCisKKzs7OyBDb2RlIGJsb2NrIG1pbm9yIG1vZGUgc3VwcG9ydCBhbmQgY29kZS1ibG9jayBj
b250ZXh0IGNvbW1hbmRzOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFu
ZHMgJyhpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRlbnQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24tYXQtcG9pbnQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2xpbmUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQtZHdpbQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudC1saW5lCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50LW9yLXVuY29tbWVudC1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcm9nLWZpbGwtcmVpbmRlbnQtZGVmdW4pCisgICJDb21tYW5kcyB0byBl
eGVjdXRlIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNv
bW1hbmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LXRoaW5nLWNvbW1hbmRzICcoeHJlZi1maW5kLWRlZmluaXRpb25zKQorICAiQ29tbWFuZHMgdGhh
dCBuZWVkIGEgXCJ0aGluZ1wiIGF0IHBvaW50IGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2Vl
IGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZhciBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1jb21tYW5kcyAnKGNvbW1lbnQtb3ItdW5jb21t
ZW50LXJlZ2lvbikKKyAgIkNvbW1hbmRzIHRoYXQgbmVlZCBhIHJlZ2lvbiBpbiBhIGNvZGUtYmxv
Y2sgY29udGV4dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sn
LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1t
b2RlICgpCisgICJFbmFibGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2Rl
JyBpZiBpbiBhIGZlbmNlZCBjb2RlIGJsb2NrLiIKKyAgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
aW4tY29udGV4dC1tb2RlCisgICAoaWYgKG1hcmtkb3duLXRzLWF0LWNvZGUtYmxvY2stcCkgMSAt
MSkpKQorCis7OyBOT1RFOiBEbyBub3QgYWRkIHRoaXMgY29tbWFuZCB0byBgbWFya2Rvd24tdHMt
Y29kZS1ibG9jay1jb21tYW5kcycuCisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3
bGluZSAoJm9wdGlvbmFsIGFyZyBpbnRlcmFjdGl2ZSkKKyAgIkluc2VydCBhIG5ld2xpbmUsIGFu
ZCBtb3ZlIHRvIGxlZnQgbWFyZ2luIG9mIHRoZSBuZXcgbGluZS4KK1dpdGggcHJlZml4IGFyZ3Vt
ZW50IEFSRywgaW5zZXJ0IHRoYXQgbWFueSBuZXdsaW5lcy4KKworSWYgYGVsZWN0cmljLWluZGVu
dC1tb2RlJyBpcyBlbmFibGVkLCB0aGlzIGluZGVudHMgdGhlIGZpbmFsIG5ldyBsaW5lCit0aGF0
IGl0IGFkZHMsIGFuZCByZWluZGVudHMgdGhlIHByZWNlZGluZyBsaW5lLiAgVG8ganVzdCBpbnNl
cnQKK2EgbmV3bGluZSwgdXNlIFxcW2VsZWN0cmljLWluZGVudC1qdXN0LW5ld2xpbmVdLgorCitJ
ZiBgYXV0by1maWxsLW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgbWF5IGNhdXNlIGF1dG9tYXRpYyBs
aW5lCiticmVha2luZyBvZiB0aGUgcHJlY2VkaW5nIGxpbmUuICBBIG5vbi1uaWwgQVJHIGluaGli
aXRzIHRoaXMuCisKK0lmIHZhcmlhYmxlIGB1c2UtaGFyZC1uZXdsaW5lcycgaXMgZW5hYmxlZCwg
dGhlIG5ld2xpbmUgaXMgbWFya2VkIHdpdGgKK3RoZSB0ZXh0LXByb3BlcnR5IGBoYXJkJy4KKwor
QSBub24tbmlsIElOVEVSQUNUSVZFIGFyZ3VtZW50IG1lYW5zIHRvIHJ1biB0aGUgYHBvc3Qtc2Vs
Zi1pbnNlcnQtaG9vaycuIgorICAoaW50ZXJhY3RpdmUgIipQXG5wIikKKyAgKGlmLWxldCogKChi
bG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAgICAgICAg
KChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jayBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyduZXdsaW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50ZXJhY3RpdmUpCisgICAgKGZ1bmNhbGwtaW50ZXJhY3RpdmVseSAjJ25ld2xp
bmUgYXJnIGludGVyYWN0aXZlKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1m
aWxsLXBhcmFncmFwaCAoJm9wdGlvbmFsIGp1c3RpZnkpCisgICJSZWZpbGwgb3IgcmVpbmRlbnQg
dGhlIG1hcmtkb3duIGNvbnRlbnQgdGhhdCBjb250YWlucyBwb2ludC4KK0lmIHRoZSBwb2ludCBp
cyBpbiBhIHN0cmluZyBvciBhIGNvbW1lbnQsIGZpbGwgdGhlIHBhcmFncmFwaCB0aGF0Citjb250
YWlucyBwb2ludCBvciBmb2xsb3dzIHBvaW50LgorCitPdGhlcndpc2UsIHJlaW5kZW50IHRoZSBm
dW5jdGlvbiBkZWZpbml0aW9uIHRoYXQgY29udGFpbnMgcG9pbnQgb3IKK2ZvbGxvd3MgcG9pbnQu
CisKK0lmIEpVU1RJRlkgaXMgbm9uLW5pbCAoaW50ZXJhY3RpdmVseSwgd2l0aCBwcmVmaXggYXJn
dW1lbnQpLCBqdXN0aWZ5IGFzCit3ZWxsLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKGNvbmQg
KChkZXJpdmVkLW1vZGUtcCAncHJvZy1tb2RlKQorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVs
eSAjJ3Byb2ctZmlsbC1yZWluZGVudC1kZWZ1biBqdXN0aWZ5KSkKKyAgICAgICAgKHQKKyAgICAg
ICAgIChjYWxsLWludGVyYWN0aXZlbHkgIydmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkpKQorCis7
OyBOT1RFOiBEbyBub3QgYWRkIHRoaXMgY29tbWFuZCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9j
ay1jb21tYW5kcycuCisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5kLWRl
ZmluaXRpb25zICgmcmVzdCBhcmdzKQorICAiSGVscGVyIGNvbW1hbmQgZm9yIGB4cmVmLWZpbmQt
ZGVmaW5pdGlvbnMnIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorRmluZCB0aGluZyBhdCBwb2lu
dC4KK0FkanVzdCB0aGUgcmVmZXJlbmNlcyBvbiB0aGUgeHJlZiBzdGFjayB0byB0aGUgYmFzZSBi
dWZmZXIuCitQYXNzIHRocm91Z2ggQVJHUyBpZiBub3QgaW4gYSBjb2RlIGJsb2NrIHdpdGggYW4g
YXZhaWxhYmxlIG1vZGUuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZi1sZXQqICgoYmxvY2stbW9k
ZSAobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAgICgoZmJvdW5k
cCBibG9jay1tb2RlKSkpCisgICAgICAoY29uZGl0aW9uLWNhc2UgZXJyCisgICAgICAgICAgKHVu
d2luZC1wcm90ZWN0CisgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgIDs7IFJl
Y29yZCBhIHBsYWNlaG9sZGVyIHhyZWYgbWFya2VyIGluIHRoZSBiYXNlIGJ1ZmZlci4gIFRoaXMK
KyAgICAgICAgICAgICAgICA7OyB3aWxsIGJlIHJldGFpbmVkIGlmIHRoZSBjb21tYW5kIHN1Y2Nl
ZWRzIHRvIHB1c2ggYSBtYXJrZXIgaW4KKyAgICAgICAgICAgICAgICA7OyB0aGUgY29kZS1ibG9j
ayBidWZmZXIgd2hpY2ggd2Ugd2lsbCBwb3AuCisgICAgICAgICAgICAgICAgKHhyZWYtcHVzaC1t
YXJrZXItc3RhY2spCisgICAgICAgICAgICAgICAgOzsgYHhyZWYtZmluZC1kZWZpbml0aW9ucycg
aXMgYSB0aGluZyBjb21tYW5kIGluCisgICAgICAgICAgICAgICAgOzsgYG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stdGhpbmctY29tbWFuZHMnLgorICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
cnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMneHJlZi1maW5kLWRlZmluaXRp
b25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3MpKQorICAgICAgICAgICAgOzsgUG9wIHRoZSB0b3AgeHJlZiBtYXJrZXIuICBJZiB0
aGUgY29tbWFuZCBzdWNjZWVkZWQsIHRoZQorICAgICAgICAgICAgOzsgdG9wIG1hcmtlciB3aWxs
IGJlIHRoZSBjb2RlLWJsb2NrIGJ1ZmZlciBtYXJrZXIuICBJZiBpdAorICAgICAgICAgICAgOzsg
ZmFpbGVkLCB3ZSdsbCBwb3AgdGhlIHBsYWNlaG9sZGVyIHdoaWNoIGlzIG5vdyBvZiBubworICAg
ICAgICAgICAgOzsgdmFsdWUuCisgICAgICAgICAgICA7OyBUT0RPOiBQcm9wb3NlIGFuIGB4cmVm
JyBwb3AgZnVuY3Rpb24gdGhhdCBkb2Vzbid0ICJnbworICAgICAgICAgICAgOzsgYmFjayIuCisg
ICAgICAgICAgICAobGV0ICgoaGlzdG9yeSAoeHJlZi0tZ2V0LWhpc3RvcnkpKSkKKyAgICAgICAg
ICAgICAgKHVubGVzcyAobnVsbCAoY2FyIGhpc3RvcnkpKQorICAgICAgICAgICAgICAgIChwb3Ag
KGNhciBoaXN0b3J5KSkpKSkKKyAgICAgICAgKGVycm9yCisgICAgICAgICA7OyBQcm9wYWdhdGUg
dGhlIHNpZ25hbC4KKyAgICAgICAgIChzaWduYWwgKGNhciBlcnIpIChjZHIgZXJyKSkpKQorICAg
IDs7IE5vdCBpbiBhIGNvZGUgYmxvY2sgY29udGV4dC4gIFRoaXMgc2hvdWxkIHJlYWxseSBuZXZl
ciBoYXBwZW4uCisgICAgKGZ1bmNhbGwtaW50ZXJhY3RpdmVseSAjJ3hyZWYtZmluZC1kZWZpbml0
aW9ucyBhcmdzKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbWF5YmUtcnVuLWNvbW1hbmQtaW4t
Y29kZS1ibG9jayAoKQorICAiSGVscGVyIGZ1bmN0aW9uIHRvIHdyYXAgYSBjb21tYW5kIGZvciBh
IGNvZGUtYmxvY2sgY29udGV4dC4KK0lmIGB0aGlzLWNvbW1hbmQnIGlzIGEgbWVtYmVyIG9mIGBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJyBhbmQKK3BvaW50IGlzIHdpdGhpbiBhIGNv
ZGUgYmxvY2sgd2l0aCBhbiBhdmFpbGFibGUgbW9kZSwgaXQgd2lsbCBydW4gaW4gdGhhdAorY29k
ZSBibG9jaydzIG1vZGUgaW4gYSBidWZmZXIgbmFycm93ZWQgdG8gaXRzIGNvbnRlbnQuICBPdGhl
cndpc2UsIHRoZQorY29tbWFuZCB3aWxsIHJ1biBpbiB0aGUgY29udGV4dCBvZiB0aGUgYG1hcmtk
b3duLXRzLW1vZGUnIGJ1ZmZlci4iCisgICh3aGVuIChtZW1xIHRoaXMtY29tbWFuZCBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQorICAgICh3aGVuLWxldCogKChjb21tYW5kIHRoaXMt
Y29tbWFuZCkKKyAgICAgICAgICAgICAgICAoYmxvY2stbW9kZSAobWFya2Rvd24tdHMtY29kZS1i
bG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAgICAgICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQor
ICAgICAgKHNldHEgdGhpcy1jb21tYW5kIChsYW1iZGEgKCZyZXN0IGFyZ3MpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoaW50ZXJhY3RpdmUpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYXBwbHkgIydtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLW1vZGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXJncykpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUt
YmxvY2sgKGJsb2NrLW1vZGUgY29tbWFuZCAmcmVzdCBhcmdzKQorICAiUnVuIENPTU1BTkQgaW4g
QkxPQ0stTU9ERS4KK0FSR1MgYXJlIGNhcHR1cmVkIGJ5IGBtYXJrZG93bi10cy0tbWF5YmUtcnVu
LWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIgorICAod2hlbi1sZXQqICgoYmVnIChnZXQtY2hhci1w
cm9wZXJ0eSAocG9pbnQpICdtYXJrZG93bi10cy1jb2RlLWJlZy1tYXJrZXIpKQorICAgICAgICAg
ICAgICAoZW5kIChnZXQtY2hhci1wcm9wZXJ0eSAocG9pbnQpICdtYXJrZG93bi10cy1jb2RlLWVu
ZC1tYXJrZXIpKQorICAgICAgICAgICAgICAoc3RyIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl
cnRpZXMgYmVnIGVuZCkpKQorICAgIDs7IFVzZSBhIHRlbXAgKG9yIHdvcmspIGJ1ZmZlciBiZWNh
dXNlIHRyZWVzaXQgY3VycmVudGx5IGNvbmZ1c2VzCisgICAgOzsgbm9kZXMgaW4gYW4gaW5kaXJl
Y3QgYnVmZmVyIGV2ZW4gaWYgdGhlIGluZGlyZWN0IGJ1ZmZlciBpcyBub3QKKyAgICA7OyBuYXJy
b3dlZC4KKyAgICAobGV0KiAoKHRlbXAtZGVhY3RpdmF0ZS1tYXJrKQorICAgICAgICAgICAob3Jp
Zy1wb2ludCAocG9pbnQpKQorICAgICAgICAgICAob3JpZy1tYXJrIChtYXJrIHQpKQorICAgICAg
ICAgICAob3JpZy1tYXJrLWFjdGl2ZSBtYXJrLWFjdGl2ZSkKKyAgICAgICAgICAgKHJlZ2lvbi1i
ZWcgKHVzZS1yZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgKHJlZ2lvbi1lbmQgKHVzZS1y
ZWdpb24tZW5kKSkKKyAgICAgICAgICAgKGFkai1wb2ludCAoMSsgKC0gb3JpZy1wb2ludCBiZWcp
KSkKKyAgICAgICAgICAgKGFkai1tYXJrICh3aGVuIG9yaWctbWFyayAoMSsgKC0gb3JpZy1tYXJr
IGJlZykpKSkKKyAgICAgICAgICAgKGFkai1yZWdpb24tYmVnICh3aGVuIHJlZ2lvbi1iZWcgKDEr
ICgtIG9yaWctcG9pbnQgcmVnaW9uLWJlZykpKSkKKyAgICAgICAgICAgKGFkai1yZWdpb24tZW5k
ICh3aGVuIHJlZ2lvbi1lbmQgKDErICgtIG9yaWctcG9pbnQgcmVnaW9uLWVuZCkpKSkKKyAgICAg
ICAgICAgKHBvaW50LWRlbHRhIDApCisgICAgICAgICAgIChzb3VyY2UtYnVmZmVyIChjdXJyZW50
LWJ1ZmZlcikpKQorICAgICAgKHdpdGgtd29yay1idWZmZXIKKyAgICAgICAgKGluc2VydCBzdHIp
CisgICAgICAgIChnb3RvLWNoYXIgYWRqLXBvaW50KQorICAgICAgICA7OyBQcm9wYWdhdGUgbWFy
ayAoYW5kIHJlZ2lvbikuCisgICAgICAgICh3aGVuIG9yaWctbWFyay1hY3RpdmUKKyAgICAgICAg
ICAoc2V0LW1hcmsgYWRqLW1hcmspKQorICAgICAgICAobWFya2Rvd24tdHMtLWluaGliaXQtbWVz
c2FnZXMtYW5kLXdhcm5pbmdzCisgICAgICAgICAgJ21hcmtkb3duLXRzLWluaGliaXQtY29kZS1i
bG9jay1tb2RlLXdhcm5pbmdzCisgICAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAg
ICAgIChsZXQgKChtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZQorICAgICAgICAgICAgICAgICAg
IChwcm92aWRlZC1tb2RlLWRlcml2ZWQtcCBibG9jay1tb2RlICdtYXJrZG93bi10cy1tb2RlKSkp
CisgICAgICAgICAgICAgIChmdW5jYWxsIGJsb2NrLW1vZGUpKSkpCisgICAgICAgIChsZXQgKChw
b2ludCAocG9pbnQpKQorICAgICAgICAgICAgICAoYXJpdHkgKGNkciAoZnVuYy1hcml0eSBjb21t
YW5kKSkpKQorICAgICAgICAgIChjb25kCisgICAgICAgICAgICgobWVtcSBjb21tYW5kIG1hcmtk
b3duLXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMpCisgICAgICAgICAgICAod2hlbi1sZXQq
ICgodGhpbmcgKHRoaW5nLWF0LXBvaW50ICdzeW1ib2wpKSkKKyAgICAgICAgICAgICAgKGZ1bmNh
bGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIHRoaW5nKSkpCisgICAgICAgICAgICgobWVtcSBjb21t
YW5kIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1hbmRzKQorICAgICAgICAgICAg
KHdoZW4gKGFuZCBhZGotcmVnaW9uLWJlZyBhZGotcmVnaW9uLWVuZCkKKyAgICAgICAgICAgICAg
KGFwcGx5ICMnZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQKKyAgICAgICAgICAgICAgICAg
ICAgIGFkai1yZWdpb24tYmVnIGFkai1yZWdpb24tZW5kIGFyZ3MpKSkKKyAgICAgICAgICAgKCh6
ZXJvcCBhcml0eSkKKyAgICAgICAgICAgIChmdW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCkp
CisgICAgICAgICAgICgoZXEgMSBhcml0eSkKKyAgICAgICAgICAgIChmdW5jYWxsLWludGVyYWN0
aXZlbHkgY29tbWFuZCAoY2FyIGFyZ3MpKSkKKyAgICAgICAgICAgKHQKKyAgICAgICAgICAgIChh
cHBseSAjJ2Z1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIGFyZ3MpKSkKKyAgICAgICAgICAo
c2V0cSBzdHIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQtbWluKSAocG9p
bnQtbWF4KSkpCisgICAgICAgICAgKHNldHEgdGVtcC1kZWFjdGl2YXRlLW1hcmsgZGVhY3RpdmF0
ZS1tYXJrKQorICAgICAgICAgIChzZXRxIHBvaW50LWRlbHRhICgtIChwb2ludCkgcG9pbnQpKSkK
KyAgICAgICAgKGxldCAoKHdvcmstYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpKQorICAgICAgICAg
ICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJjZS1idWZmZXIKKyAgICAgICAgICAgIChyZXBsYWNl
LXJlZ2lvbi1jb250ZW50cyBiZWcgZW5kIHdvcmstYnVmZmVyKQorICAgICAgICAgICAgOzsgUHJv
cGFnYXRlIG1hcmsgZGVhY3RpdmF0aW9uIHRvIHRoZSBzb3VyY2UgYnVmZmVyLgorICAgICAgICAg
ICAgKHNldHEgZGVhY3RpdmF0ZS1tYXJrIHRlbXAtZGVhY3RpdmF0ZS1tYXJrKQorICAgICAgICAg
ICAgOzsgTW92ZSBwb2ludCBpZiBpdCBtb3ZlZCBpbiB0aGUgdGVtcCBidWZmZXIuCisgICAgICAg
ICAgICAoZ290by1jaGFyICgrIG9yaWctcG9pbnQgcG9pbnQtZGVsdGEpKQorICAgICAgICAgICAg
OzsgUmVjb3JkIHRoZSBvcmlnaW5hbCBjb21tYW5kLgorICAgICAgICAgICAgKHNldHEgdGhpcy1j
b21tYW5kIGNvbW1hbmQpCisgICAgICAgICAgICA7OyBUaGlzIGhlbHBzIG1haW50YWluIGRpc2Ny
ZXRlIGNvbW1hbmQgYWN0aW9ucy4KKyAgICAgICAgICAgICh1bmRvLWJvdW5kYXJ5KQorICAgICAg
ICAgICAgOzsgTWFrZSBzdXJlIHRoZSBvcmlnaW5hdGluZyByZWdpb24gaXMgcmVmb250aWZpZWQu
CisgICAgICAgICAgICAoZm9udC1sb2NrLWZsdXNoIGJlZyBlbmQpKSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciAocG9zICZvcHRpb25hbCBiYWNr
d2FyZCkKKyAgIlJldHVybiB0aGUgbmV4dCBvciBwcmV2aW91cyBmZW5jZWRfY29kZV9ibG9ja19k
ZWxpbWl0ZXIgbm9kZSwgb3IgbmlsLgorU2VhcmNoIHN0YXJ0aW5nIGF0IFBPUy4KK1NlYXJjaCBi
YWNrd2FyZCBpZiBCQUNLV0FSRCBpcyBub24tbmlsLiIKKyAgKHRyZWVzaXQtc2VhcmNoLWZvcndh
cmQgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAobGFtYmRhIChub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmc9
ICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJmZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIiKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmFja3dhcmQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2Rl
LWJsb2NrLWRlbGltaXRlciAoJm9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcG9zIGJhY2t3YXJkIHJlbWFpbikKKyAgIlJldHVybiB0
aGUgbmV4dCBvciBwcmV2aW91cyBmZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIgbm9kZSwgb3Ig
bmlsLgorU2VhcmNoIHN0YXJ0aW5nIGF0IFBPUyBvciBgcG9pbnQnLCBpZiBQT1MgaXMgbmlsLgor
U2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuCitJZiBSRU1BSU4gaXMgbm9u
LW5pbCwgbW92ZSB0byB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUgY3VycmVudCBjb2RlCitibG9j
aywgaWYgaW4gb25lLiIKKyAgKHNldHEgcG9zIChvciBwb3MgKHBvaW50KSkpCisgIChhbmQtbGV0
KiAoKG5vZGUgKG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyIHBvcyBiYWNr
d2FyZCkpKQorICAgIChsZXQgKChpbi1ibG9jayAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1w
IHBvcykpKQorICAgICAgKGNvbmQKKyAgICAgICAoKGFuZCByZW1haW4gaW4tYmxvY2spCisgICAg
ICAgIG5vZGUpCisgICAgICAgKHJlbWFpbgorICAgICAgICBuaWwpCisgICAgICAgKHQKKyAgICAg
ICAgKHdoaWxlIChhbmQgbm9kZQorICAgICAgICAgICAgICAgICAgICA7OyBJZiBiYWNrd2FyZCwg
c2tpcCB0aGUgY3VycmVudCBibG9jaydzCisgICAgICAgICAgICAgICAgICAgIDs7IHN0YXJ0aW5n
IGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgKG9yIChhbmQgYmFja3dhcmQgaW4tYmxv
Y2sgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIG5vZGUpKSkpCisgICAgICAgICAg
KHNldHEgaW4tYmxvY2sgKG1hcmtkb3duLXRzLWF0LWNvZGUtYmxvY2stcCBwb3MpKQorICAgICAg
ICAgIChzZXRxIHBvcyAoaWYgYmFja3dhcmQKKyAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LWVuZCBub2RlKSkpCisgICAgICAgICAgKHNldHEgbm9kZSAobWFya2Rvd24tdHMtLWZpbmQtY29k
ZS1ibG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgICAgIG5vZGUpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxvY2sgKGFyZykKKyAgIk1vdmUg
cG9pbnQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGNvZGUgYmxvY2suCitXaXRoIHRoZSBwcmVm
aXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBjdXJyZW50IGNvZGUgYmxvY2suIgor
ICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgobm9kZQorICAgICAgICAgICAgICAg
KG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIgbmlsIG5pbCBhcmcp
KSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLW1vdmUtdG8tcHJldmlvdXMtY29kZS1ibG9jayAoYXJnKQorICAiTW92ZSBw
b2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIHByZXZpb3VzIGNvZGUgYmxvY2suCitXaXRoIHRoZSBw
cmVmaXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBjdXJyZW50IGNvZGUgYmxvY2su
IgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgobm9kZQorICAgICAgICAgICAg
ICAgKG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIgbmlsICdiYWNr
d2FyZCBhcmcpKSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpKSkK
KworOzs7IFRhYmxlcyBha2EgcGlwZSB0YWJsZXM6CisKKzs7OzsgVXRpbGl0aWVzOgorCisoZGVm
Y29uc3QgbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LWJ1ZmZlcgorICAiKm1hcmtkb3duLXRzLXRh
YmxlLWV4cG9ydCoiKQorCis7OyBJbiBmcmVxdWVuY3kgbWF0Y2hpbmcgb3JkZXIuCisoZGVmY29u
c3QgbWFya2Rvd24tdHMtLXRhYmxlLXJvdy10eXBlcworICAnKCJwaXBlX3RhYmxlX3JvdyIKKyAg
ICAicGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IgorICAgICJwaXBlX3RhYmxlX2hlYWRlciIpKQor
Cis7OyBJbiBmcmVxdWVuY3kgbWF0Y2hpbmcgb3JkZXIuCisoZGVmY29uc3QgbWFya2Rvd24tdHMt
LXRhYmxlLWNlbGwtdHlwZXMKKyAgJygicGlwZV90YWJsZV9jZWxsIgorICAgICJwaXBlX3RhYmxl
X2RlbGltaXRlcl9jZWxsIikpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tdGFibGUtZGVsaW1p
dGVyLWNlbGwtdHlwZXMKKyAgJygicGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbCIKKyAgICAicGlw
ZV90YWJsZV9hbGlnbl9sZWZ0IgorICAgICJwaXBlX3RhYmxlX2FsaWduX3JpZ2h0IikpCisKKyhk
ZWZjb25zdCBtYXJrZG93bi10cy0tdGFibGUtZGVsaW1pdGVyLWNlbGwtc3VidHlwZXMKKyAgJygi
cGlwZV90YWJsZV9hbGlnbl9sZWZ0IgorICAgICJwaXBlX3RhYmxlX2FsaWduX3JpZ2h0IikpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zIChwb3MpCisgICJBZGp1c3Qg
UE9TIHRvIGFidXQgaXRzIGNsb3Nlc3QgdGV4dC4KK1JldHVybiBwb3MgYWRqdXN0ZWQgdG8gdGhl
IHBvc2l0aW9uIG9mIHRoZSBuZWFyZXN0IG5vbi1ibGFuayBjaGFyYWN0ZXIuCitPdGhlcndpc2Us
IHJldHVybiBuaWwsIGZvciBleGFtcGxlLCBpZiB0aGUgbGluZSBpcyBlbXB0eS4iCisgIChzYXZl
LWV4Y3Vyc2lvbgorICAgIChnb3RvLWNoYXIgcG9zKQorICAgIChza2lwLWNoYXJzLWZvcndhcmQg
IltbOmJsYW5rOl1dIiAocG9zLWVvbCkpCisgICAgKGlmIChlcSBwb3MgKHBvcy1lb2wpKQorICAg
ICAgICAocHJvZ24KKyAgICAgICAgICAoZ290by1jaGFyIHBvcykKKyAgICAgICAgICAoc2tpcC1j
aGFycy1iYWNrd2FyZCAiW1s6Ymxhbms6XV0iIChwb3MtYm9sKSkKKyAgICAgICAgICAodW5sZXNz
IChlcSBwb3MgKHBvcy1ib2wpKQorICAgICAgICAgICAgKG1heCAocG9pbnQtbWluKSAoMS0gKHBv
aW50KSkpKSkKKyAgICAgIChtaW4gKHBvaW50LW1heCkgKDErIChwb2ludCkpKSkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtY2VsbCAoJm9wdGlvbmFsIG5vZGUgcG9zIGFidXR0
aW5nKQorICAiQ29tcHV0ZSB0YWJsZSBjZWxsIGZyb20gbmFtZWQgTk9ERSBhdCBQT1MuCitJZiBO
T0RFIGlzIG5pbCwgdXNlIHRoZSBub2RlIGF0IFBPUy4KK0lmIFBPUyBpcyBuaWwsIHVzZSBgcG9p
bnQnLgorSWYgTk9ERSBpcyBhIGNlbGwgdHlwZSwgcmV0dXJuIGl0LgorSWYgTk9ERSBpcyBhIHN1
YnR5cGUsIHByb21vdGUgaXQuCitJZiBBQlVUVElORyBpcyBub24tbmlsLCBhZGp1c3QgUE9TIHRv
IHRoZSBuZWFyZXN0IG5vbi1ibGFuayBjaGFyYWN0ZXIuCitPdGhlcndpc2UsIHJldHVybiBuaWwu
IgorICA7OyBXZSBjb3VsZCBzYW5pdHkgY2hlY2sgdmlhIGB0cmVlc2l0LW5vZGUtbmFtZWQnIGFu
ZCBlcnJvciBpZiBub3QuCisgIChzZXRxIHBvcyAob3IgcG9zIChwb2ludCkpKQorICAod2hlbiBh
YnV0dGluZworICAgIChzZXRxIHBvcyAob3IgKG1hcmtkb3duLXRzLS10YWJsZS1hYnV0dGluZy1w
b3MgcG9zKSBwb3MpKSkKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKG9yIG5vZGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93biAnbmFtZWQpKSkKKyAg
ICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKSkKKyAgICAoY29uZCAo
KG1lbWJlciB0eXBlIG1hcmtkb3duLXRzLS10YWJsZS1jZWxsLXR5cGVzKQorICAgICAgICAgICBu
b2RlKQorICAgICAgICAgICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxlLWRlbGltaXRl
ci1jZWxsLXN1YnR5cGVzKQorICAgICAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkK
KyAgICAgICAgICAoKG1lbWJlciB0eXBlIG1hcmtkb3duLXRzLS10YWJsZS1yb3ctdHlwZXMpCisg
ICAgICAgICAgIChjb25kICgoZXEgYWJ1dHRpbmcgJ2xlZnQpCisgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCAnbmFtZWQpKQorICAgICAgICAgICAgICAgICA7OyBB
Y2NvdW50IGZvciAncmlnaHQgb3IgdC4KKyAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAtMSAnbmFtZWQpKSkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgKCZvcHRpb25hbCBub2RlIHBvcykKKyAgIkNv
bXB1dGUgdGFibGUgcm93IGZyb20gbmFtZWQgTk9ERSBhdCBQT1MuCitJZiBOT0RFIGlzIG5pbCwg
dXNlIHRoZSBub2RlIGF0IFBPUy4KK0lmIFBPUyBpcyBuaWwsIHVzZSBgcG9pbnQnLgorSWYgTk9E
RSBpcyBhIHJvdyB0eXBlLCByZXR1cm4gaXQuCitJZiBOT0RFIGlzIGEgdGFibGUgY2VsbCB0eXBl
LCByZXR1cm4gaXRzIHJvdy4KK090aGVyd2lzZSwgcmV0dXJuIG5pbC4iCisgIDs7IFdlIGNvdWxk
IHNhbml0eSBjaGVjayB2aWEgYHRyZWVzaXQtbm9kZS1uYW1lZCcgYW5kIGVycm9yIGlmIG5vdC4K
KyAgKHdoZW4tbGV0KiAoKG5vZGUgKG9yIG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtYXQgKG9yIHBvcyAocG9pbnQpKSAnbWFya2Rvd24gJ25hbWVkKSkpCisgICAg
ICAgICAgICAgICh0eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkpCisgICAgKGlmIChtZW1i
ZXIgdHlwZSBtYXJrZG93bi10cy0tdGFibGUtcm93LXR5cGVzKQorICAgICAgICBub2RlCisgICAg
ICAgKHRyZWVzaXQtbm9kZS1wYXJlbnQgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLWNlbGwgbm9k
ZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtcGFyc2UtZXJyb3ItcCAoJm9wdGlv
bmFsIG5vZGUgcG9zKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgbmFtZWQgTk9ERSBhdCBQT1MgaXMg
aW4gYW4gXCJFUlJPUlwiIHN1YnRyZWUuCitOT0RFIG11c3QgYmUgYSB0YWJsZSBlbGVtZW50OyBp
LmUuLCBpdHMgdHlwZSBwcmVmaXggaXMgXCJwaXBlX3RhYmxlXCIuCitJZiBOT0RFIGlzIGEgdGFi
bGUsIHJldHVybiBuaWwgKGl0IHNob3VsZG4ndCBiZSBpbiBFUlJPUikuCitJZiBOT0RFIGlzIG5v
dCBhIHRhYmxlIGVsZW1lbnQsIHJldHVybiBuaWwuCitJZiBOT0RFJ3MgbmVhcmJ5IGFuY2VzdG9y
IGlzIGFuIFwiRVJST1JcIiBub2RlLCByZXR1cm4gdC4KK090aGVyd2lzZSwgcmV0dXJuIG5pbC4i
CisgIDs7IFdlIGNvdWxkIHNhbml0eSBjaGVjayB2aWEgYHRyZWVzaXQtbm9kZS1uYW1lZCcgYW5k
IGVycm9yIGlmIG5vdC4KKyAgKHdoZW4tbGV0KiAoKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5v
ZGUtcm93IG5vZGUgcG9zKSkKKyAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBl
IHJvdykpCisgICAgICAgICAgICAgIChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgcm93KSkK
KyAgICAgICAgICAgICAgKHBhcmVudC10eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBwYXJlbnQpKSkK
KyAgICAoY29uZCAoKGVxdWFsIHR5cGUgInBpcGVfdGFibGUiKQorICAgICAgICAgICBuaWwpCisg
ICAgICAgICAgKChlcXVhbCBwYXJlbnQtdHlwZSAicGlwZV90YWJsZSIpCisgICAgICAgICAgIG5p
bCkKKyAgICAgICAgICAoKGVxdWFsIHBhcmVudC10eXBlICJFUlJPUiIpCisgICAgICAgICAgIHQp
CisgICAgICAgICAgKHQKKyAgICAgICAgICAgKGVycm9yICJTaG91bGQgbmV2ZXIgaGFwcGVuIikp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1hdC10YWJsZS1wICgmb3B0aW9uYWwgcG9zIGFidXR0
aW5nKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgUE9TIGlzIGF0IG9yIGluIGEgcGlwZSB0YWJsZS4K
K0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4KK1JldHVybiBjb25zIChwb3MgLiB0YWJsZS1ub2Rl
KSBpZiBQT1MgaXMgd2l0aGluIGEgdGFibGUsIG90aGVyd2lzZQorcmV0dXJuIG5pbC4KK2lmIFBP
UyBpcyB3aXRoaW4gYSB0YWJsZSBidXQgd2l0aCBwYXJzZSBlcnJvcnMsIHNpZ25hbCBhbiBlcnJv
ci4KK0lmIEFCVVRUSU5HIGlzIG5vbi1uaWwsIGFkanVzdCBQT1MgdG8gdGhlIG5lYXJlc3Qgbm9u
LWJsYW5rIGNoYXJhY3Rlci4KK0lmIHRoZSBwYXJzZWQgdGFibGUgaXMgaW4gRVJST1IsIHJldHVy
biBuaWwuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAocG9pbnQpKSkKKyAgKHNhdmUtZXhjdXJzaW9u
CisgICAgKGdvdG8tY2hhciBwb3MpCisgICAgOzsgSWYgcG9pbnQgaXMgb24gYW4gZW1wdHkgbGlu
ZSwgaXQgaXMgbmV2ZXIgYSB0YWJsZS4KKyAgICAodW5sZXNzIChhbmQgKGVvbHApIChib2xwKSkK
KyAgICAgIDs7IElmIHBvaW50IGlzIGJvbCBvciBlb2wgaXQgbWlnaHQgYmUgYWJ1dHRpbmcgYSBw
aXBlIHN5bWJvbCBzbworICAgICAgOzsgbG9vayBmb3J3YXJkcyBvciBiYWNrd2FyZHMgb25lIGNo
YXJhY3RlciB0byB0ZXN0IGlmIHRoYXQgcG9zCisgICAgICA7OyBpcyBhIHRhYmxlLgorICAgICAg
KHdoZW4gYWJ1dHRpbmcKKyAgICAgICAgKHNldHEgcG9zIChvciAobWFya2Rvd24tdHMtLXRhYmxl
LWFidXR0aW5nLXBvcyBwb3MpIHBvcykpKQorICAgICAgKHdoZW4tbGV0KiAoKHJvdyAobWFya2Rv
d24tdHMtLXRhYmxlLW5vZGUtcm93IG5pbCBwb3MpKSkKKyAgICAgICAgKGlmIChtYXJrZG93bi10
cy0tdGFibGUtcGFyc2UtZXJyb3ItcCByb3cpCisgICAgICAgICAgICA7OyBEbyBub3QgdXNlIGVy
cm9yIG9yIHdhcm5pbmcgaGVyZS4gIEVycm9ycyBpbnRlcmZlcmUgd2l0aAorICAgICAgICAgICAg
OzsgdGhlIGNvbW1hbmQgbG9vcC4gIFdhcm5pbmdzIGFyZSBhbm5veWluZy4KKyAgICAgICAgICAg
IChwcm9nbgorICAgICAgICAgICAgICAobWVzc2FnZSAiSW5jb3JyZWN0bHkgZm9ybWF0dGVkIE1h
cmtkb3duIHRhYmxlIChwYXJzZXIgZXJyb3IpIikKKyAgICAgICAgICAgICAgbmlsKQorICAgICAg
ICAgIChjb25zIHBvcyAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAg
ICAgcm93CisgICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZVxcJyIgJ2JhY2t3YXJk
KSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWVuYWJsZS1pbi10YWJsZS1tb2RlICgpCisg
ICJFbmFibGUgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnIGlmIGluIGEgdGFibGUuCitBIHRh
YmxlIHdpdGggYSBwYXJzZXIgRVJST1IgaXMgaW5lbGlnaWJsZS4iCisgIChtYXJrZG93bi10cy1p
bi10YWJsZS1tb2RlCisgICAoaWYgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpIDEgLTEp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyAoJm9wdGlv
bmFsIHBvcyBhYnV0dGluZykKKyAgIlJldHVybiB0aGUgcm93IG5lYXIgUE9TLgorUmV0dXJuIG5p
bCBpZiBub3QgYXQgYSB0YWJsZSBvciB0aGVyZSBpcyBubyByb3cuCitPdGhlcndpc2UgcmV0dXJu
IGNvbnMgKHJvdyAuIGluLWhlYWRlcikgd2hlcmUgaW4taGVhZGVyIGlzIG5pbCBvciB0LgorVGhp
cyBpcyB1c2VmdWwgdG8gaW5zZXJ0IGEgbmV3IHJvdyBqdXN0IGJlbG93IHRoZSBoZWFkZXIgaW5z
dGVhZCBvZiBqdXN0CitiZWxvdyB0aGUgZmlyc3Qgcm93LgorSWYgUE9TIGlzIG5pbCB1c2UgYHBv
aW50Jy4KK0lmIEFCVVRUSU5HIGlzIG5vbi1uaWwsIHVzZSAoMS0gUE9TKSBpZiBQT1MgaXMgaW1t
ZWRpYXRlbHkgYWZ0ZXIgYSBwaXBlCitzeW1ib2wuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAocG9p
bnQpKSkKKyAgKGxldCAoaW4taGVhZGVyKQorICAgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFy
a2Rvd24tdHMtYXQtdGFibGUtcCBwb3MgYWJ1dHRpbmcpKQorICAgICAgICAgICAgICAgIChwb3Mg
KGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQor
ICAgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5pbCBw
b3MgYWJ1dHRpbmcpKQorICAgICAgICAgICAgICAgIChjZWxsLXR5cGUgKHRyZWVzaXQtbm9kZS10
eXBlIGNlbGwpKQorICAgICAgICAgICAgICAgIChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQg
Y2VsbCkpCisgICAgICAgICAgICAgICAgKHBhcmVudC10eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBw
YXJlbnQpKQorICAgICAgICAgICAgICAgIChsaW5lYWdlIChsaXN0IGNlbGwtdHlwZSBwYXJlbnQt
dHlwZSkpCisgICAgICAgICAgICAgICAgOzsgRmluZCB0aGUgZmlyc3Qgcm93IGFmdGVyIHRoZSBo
ZWFkZXIgb3IgdGhlIHJvdyBhdCBQT1MgaXMKKyAgICAgICAgICAgICAgICA7OyBvbiBhbmQgaW4g
dGhlIHNhbWUgdGFibGUuCisgICAgICAgICAgICAgICAgKHJvdyAoY29uZCAoKG9yIChtZW1iZXIg
InBpcGVfdGFibGVfaGVhZGVyIiBsaW5lYWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWVtYmVyICJwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciIGxpbmVhZ2UpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGluLWhlYWRlciB0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkIGNlbGwgIlxcYHBpcGVfdGFibGVf
cm93XFwnIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxdWFsIGNlbGwtdHlwZSAi
cGlwZV90YWJsZV9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoKGVxdWFsIHBhcmVudC10eXBlICJwaXBlX3RhYmxlX3Jv
dyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50KSkpKQorICAgICAgKHdoZW4g
KHRyZWVzaXQtbm9kZS1lcSB0YWJsZSAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiXFxgcGlwZV90YWJsZVxcJyIgJ2JhY2t3YXJkKSkKKyAgICAgICAgKGNvbnMg
cm93IGluLWhlYWRlcikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtY29tcHV0ZS1u
b2RlLWNvbHVtbiAocm93IG5vZGUpCisgICJDb21wdXRlIE5PREUncyBjb2x1bW4gaW4gUk9XLgor
UmV0dXJuIG5pbCBpZiBOT0RFIGlzIG5vdCBpbiBST1cgKHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4p
LgorTk9ERSBtdXN0IGJlIGEgbm9kZSBpbiBST1cuCitST1cgbXVzdCBiZSBhIHBpcGVfdGFibGVf
aGVhZGVyLCBwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3csIG9yCitwaXBlX3RhYmxlX3Jvdy4iCisg
IChjYXRjaCA6Y29sdW1uCisgICAgKGxldCAoKGNvdW50IDApKQorICAgICAgKGRvbGlzdCAoY2Vs
bCAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFtZWQpKQorICAgICAgICAod2hlbiAodHJl
ZXNpdC1ub2RlLWVxIG5vZGUgY2VsbCkKKyAgICAgICAgICAodGhyb3cgOmNvbHVtbiBjb3VudCkp
CisgICAgICAgIChzZXRxIGNvdW50ICgxKyBjb3VudCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtdGFibGUtLWdvdG8tY29sdW1uIChjb2x1bW4gJm9wdGlvbmFsIG5vLWVycm9yKQorICAiTW92
ZSBwb2ludCBvbiB0aGUgY3VycmVudCByb3cgdG8gQ09MVU1OLgorQ09MVU1OIGlzIGEgMC1iYXNl
ZCBpbmRleC4KK1JldHVybiBub24tbmlsIGlmIHN1Y2Nlc3NmdWwuCitJZiBOTy1FUlJPUiBpcyBu
b24tbmlsLCByZXR1cm4gbmlsIGlmIHRoZSBjdXJyZW50IHJvdyBkb2VzIG5vdCBleHRlbmQgdG8K
K0NPTFVNTiwgb3RoZXJ3aXNlIHNpZ25hbCBhbiBlcnJvci4KK1NpZ25hbCBhbiBlcnJvciBpZiBw
b2ludCBpcyBub3QgYXQgYSB0YWJsZS4iCisgIChpZi1sZXQqICgoY2VsbCAobWFya2Rvd24tdHMt
LXRhYmxlLW5vZGUtY2VsbCBuaWwgbmlsIHQpKQorICAgICAgICAgICAgKHJvdyAobWFya2Rvd24t
dHMtLXRhYmxlLW5vZGUtcm93IGNlbGwpKQorICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9k
ZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkpCisgICAgICAoaWYtbGV0KiAoKHRhcmdldC1jZWxsIChu
dGggY29sdW1uIGNvbHMpKSkKKyAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3Rh
cnQgdGFyZ2V0LWNlbGwpKQorICAgICAgICAodW5sZXNzIG5vLWVycm9yCisgICAgICAgICAgKGVy
cm9yICJDb2x1bW4gJVMgbm90IGZvdW5kIiBjb2x1bW4pKSkKKyAgICAoZXJyb3IgIk5vdCBhdCBh
IHRhYmxlIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLWFsaWduZXJzICh0YWJsZSkK
KyAgIkV4dHJhY3QgdGhlIGhlYWRlciBsaW5lIGFsaWduZXJzIGZyb20gbm9kZSBUQUJMRS4KK1Jl
dHVybiBhIGxpc3Qgb2YgbGlzdHMgb2YgdGhlIGZvcm06CisgICg6YmVnIHh4eCA6ZW5kIHh4eCA6
YWxpZ24gbGVmdCkKKzphbGlnbiBpcyBvbmUgb2YgYGxlZnQnIGBjZW50ZXInIGByaWdodCcgYHVu
c3BlY2lmaWVkJy4iCisgIChsZXQqICgoZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3Vi
dHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgKGFsaWdu
ZXJzCisgICAgICAgICAgKGxldCAocmVzKQorICAgICAgICAgICAgKGRvbGlzdCAoZWx0ICh0cmVl
c2l0LW5vZGUtY2hpbGRyZW4gZGVsaW1pdGVyLXJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAo
bGV0ICgoYWxpZ24tYmVnICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLWNoaWxkIGVsdCAwICduYW1lKSkpCisgICAgICAgICAg
ICAgICAgICAgIChhbGlnbi1lbmQgKHRyZWVzaXQtbm9kZS10eXBlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgZWx0IC0xICduYW1lKSkpKQorICAg
ICAgICAgICAgICAgIChwdXNoIChsaXN0CisgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgKHRy
ZWVzaXQtbm9kZS1zdGFydCBlbHQpCisgICAgICAgICAgICAgICAgICAgICAgIDplbmQgKHRyZWVz
aXQtbm9kZS1lbmQgZWx0KQorICAgICAgICAgICAgICAgICAgICAgICA6YWxpZ24KKyAgICAgICAg
ICAgICAgICAgICAgICAgKGNvbmQgKChhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZXF1YWwgYWxpZ24tYmVnICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1lbmQgInBpcGVfdGFibGVfYWxpZ25fbGVm
dCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xlZnQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgoYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVx
dWFsIGFsaWduLWJlZyAicGlwZV90YWJsZV9hbGlnbl9sZWZ0IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZXF1YWwgYWxpZ24tZW5kICJwaXBlX3RhYmxlX2FsaWduX3JpZ2h0Iikp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoKGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVh
bCBhbGlnbi1iZWcgInBpcGVfdGFibGVfYWxpZ25fcmlnaHQiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1lbmQgInBpcGVfdGFibGVfYWxpZ25fcmlnaHQiKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyaWdodCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHQgJ3Vuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgcmVz
KSkpCisgICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpKQorICAgIGFsaWduZXJzKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIgKHdpZHRoIGFsaWduKQorICAiTWFr
ZSBhIE1hcmtkb3duIGNvbHVtbiBhbGlnbmVyLgorV0lEVEggaXMgdGhlIGNvbHVtbiB3aWR0aC4K
K0FMSUdOIGlzIG9uZSBvZiBgbGVmdCcgYGNlbnRlcicgYHJpZ2h0JyBgdW5zcGVjaWZpZWQnLiIK
KyAgKHBjYXNlIGFsaWduCisgICAgKCdsZWZ0CisgICAgIChjb25jYXQgIjoiIChtYWtlLXN0cmlu
ZyAoMS0gd2lkdGgpID8tKSkpCisgICAgKCdjZW50ZXIKKyAgICAgKGNvbmNhdCAiOiIgKG1ha2Ut
c3RyaW5nICgtIHdpZHRoIDIpID8tKSAiOiIpKQorICAgICgncmlnaHQKKyAgICAgKGNvbmNhdCAo
bWFrZS1zdHJpbmcgKDEtIHdpZHRoKSA/LSkgIjoiKSkKKyAgICAoXworICAgICAoY29uY2F0ICht
YWtlLXN0cmluZyB3aWR0aCA/LSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtYWxp
Z24tY2VsbCAodGV4dCB3aWR0aCBhbGlnbikKKyAgIlJldHVybiBURVhUIHBhZGRlZCB0byBXSURU
SCBhbGlnbmVkIHVzaW5nIEFMSUdOLgorVHJ1bmNhdGUgVEVYVCB3aWRlciB0aGFuIFdJRFRILiAg
SXQgaXMgdGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvCitlbnN1cmUgdGV4dCB3aWxsIGZp
dC4KK0FMSUdOIGlzIG9uZSBvZiBgbGVmdCcgYGNlbnRlcicgYHJpZ2h0JyBgdW5zcGVjaWZpZWQn
LiIKKyAgKGxldCogKChzdHJsZW4gKGxlbmd0aCB0ZXh0KSkKKyAgICAgICAgIChzdHJsZW4wICht
aW4gd2lkdGggc3RybGVuKSkKKyAgICAgICAgICh0ZXh0MCAoc3Vic3RyaW5nIHRleHQgMCBzdHJs
ZW4wKSkKKyAgICAgICAgIChwYWQgKC0gd2lkdGggc3RybGVuMCkpKQorICAgIChwY2FzZSBhbGln
bgorICAgICAgKCdjZW50ZXIKKyAgICAgICAobGV0KiAoKGhhbGYtcGFkIChtYWtlLXN0cmluZyAo
Zmxvb3IgKC8gcGFkIDIpKSA/XHMpKQorICAgICAgICAgICAgICAocyAoY29uY2F0CisgICAgICAg
ICAgICAgICAgICBoYWxmLXBhZAorICAgICAgICAgICAgICAgICAgdGV4dDAKKyAgICAgICAgICAg
ICAgICAgIGhhbGYtcGFkKSkpCisgICAgICAgICAoc3RyaW5nLXBhZAorICAgICAgICAgIChzdWJz
dHJpbmcgcyAwIChtaW4gKGxlbmd0aCBzKSB3aWR0aCkpCisgICAgICAgICAgd2lkdGgpKSkKKyAg
ICAgICgncmlnaHQKKyAgICAgICAoc3RyaW5nLXBhZCB0ZXh0IHdpZHRoIG5pbCAnc3RhcnQpKQor
ICAgICAgKF8KKyAgICAgICAoc3RyaW5nLXBhZCB0ZXh0IHdpZHRoKSkpKSkKKworOzs7OyBDb21t
YW5kczoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC10YWJsZSAoJm9wdGlvbmFs
IG5yb3dzIG5jb2xzIGhlYWRpbmdzIGJvZHkpCisgICJJbnNlcnQgYSBNYXJrZG93biBwaXBlIHRh
YmxlLgorTlJPV1MgaXMgdGhlIG51bWJlciBvZiByb3dzIGluIHRoZSBuZXcgdGFibGUgYW5kIGRl
ZmF1bHRzIHRvIDMuCisKK05DT0xTIGlzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgZGVmYXVs
dHMgdG8gMy4KKworSEVBRElOR1MgaXMgYSBsaXN0IG9mIGhlYWRpbmdzIGFuZCBkZWZhdWx0cyB0
byBsZWZ0LWFsaWduZWQgc3ludGhlc2l6ZWQKK2NvbHVtbiBuYW1lcy4gIElmIE5DT0xTIGlzIG5p
bCwgdXNlIEhFQURJTkdTIGxlbmd0aC4gIElmIGJvdGggTkNPTFMgYW5kCitIRUFESU5HUyBhcmUg
bm9uLW5pbCwgdXNlIHVwIHRvIE5DT0xTIGhlYWRpbmdzLCBzeW50aGVzaXppbmcgdGhlCityZW1h
aW5kZXIuCisKK0VhY2ggaGVhZGluZyBpbiB0aGUgbGlzdCBjYW4gYmUgYSBzdHJpbmcgY29sdW1u
IG5hbWUgb3IgYSBjb25zIG9mIHRoZQorZm9ybSAobmFtZSAuIGFsaWdubWVudCkgd2hlcmUgYWxp
Z25tZW50IGlzIG9uZSBvZiB0aGUgc3ltYm9scyBgbGVmdCcsCitgcmlnaHQnLCBvciBgY2VudGVy
Jy4gIElmIGEgc3RyaW5nLCBkZWZhdWx0IGFsaWdubWVudCBpcyB1bnNwZWNpZmllZC4KKworSWYg
Qk9EWSBpcyBub24tbmlsLCBpdCBpcyBhIGxpc3Qgb2YgTlJPV1Mgcm93cyB3aGVyZSBlYWNoIHJv
dyBpcyBhIGxpc3QKK29mIE5DT0xTIGJvZHkgY2VsbHMuCisKK0ZvciBjb252ZW5pZW5jZSBhbmQg
YWVzdGhldGljcywgcGFkIGVhY2ggYm9keSBjZWxsIHRvIHRoZSB3aWR0aCBvZiBpdHMKK2NvbHVt
bidzIGhlYWRlciwgYW5kIGFjY29tbW9kYXRlIGFsaWdubWVudCBpbmRpY2F0b3JzLiAgSWYgYSBC
T0RZIGNlbGwKK2lzIGxvbmdlciB0aGFuIGl0cyBjb2x1bW4gaGVhZGVyLCBpbnNlcnQgaXQgdW5j
aGFuZ2VkLgorCitOb3RlOiBBIGJsYW5rIGxpbmUgaXMgbmVlZGVkIGJlZm9yZSB0aGUgdGFibGUg
Zm9yIGl0IHRvIHByb3Blcmx5IHJlbmRlci4KK0lmIHRoZSBsaW5lIHByZWNlZGluZyBgcG9pbnQn
IGlzIG5vdCBibGFuaywgaW5zZXJ0IG9uZS4KKworTm90ZTogRHVlIHRvIGFuIGlzc3VlIHdpdGgg
dGhlIHRyZWUtc2l0dGVyIE1hcmtkb3duIGdyYW1tYXIsIGEgcm93IG9mCitlbXB0eSBjZWxscyBj
YXVzZXMgYSBwYXJzaW5nIGVycm9yLiAgVG8gYXZvaWQgdGhpcywgYW4gZW1wdHkgcm93IHdpbGwK
K2NvbnRhaW4gYSBzaW5nbGUgcGVyaW9kIGluIGl0cyBmaXJzdCBjZWxsLiIKKyAgKGludGVyYWN0
aXZlKQorICAoc2V0cSBucm93cyAob3IgbnJvd3MgMykpCisgIChzZXRxIG5jb2xzIChvciBuY29s
cyAoYW5kIGhlYWRpbmdzIChsZW5ndGggaGVhZGluZ3MpKSAzKSkKKyAgKHNldHEgaGVhZGluZ3MK
KyAgICAgICAgKGxldCAocmVzKQorICAgICAgICAgIChkb3RpbWVzICh4IG5jb2xzKQorICAgICAg
ICAgICAgKHB1c2ggKG9yIChudGggeCBoZWFkaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAo
Zm9ybWF0ICJDb2x1bW4gJWQiICgxKyB4KSkpCisgICAgICAgICAgICAgICAgICByZXMpKQorICAg
ICAgICAgIChucmV2ZXJzZSByZXMpKSkKKyAgKGxldCAoKGhlYWRpbmctd2lkdGhzCisgICAgICAg
ICAobGV0IChyZXMpCisgICAgICAgICAgIChkb2xpc3QgKGVsdCBoZWFkaW5ncykKKyAgICAgICAg
ICAgICAobGV0ICgoc3RyIChpZiAoY29uc3AgZWx0KSAoY2FyIGVsdCkgZWx0KSkpCisgICAgICAg
ICAgICAgICAocHVzaCAobWF4IG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29sdW1uLXdpZHRo
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggc3RyKSkKKyAgICAgICAgICAgICAg
ICAgICAgIHJlcykpKQorICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpKQorICAgIDs7IElmIHBv
aW50IGlzIG5vdCBhdCBib2wsIGluc2VydCBhIG5ld2xpbmUuCisgICAgKHVubGVzcyAoZXEgKHBv
aW50KSAocG9zLWJvbCkpCisgICAgICAoaW5zZXJ0ICJcbiIpKQorICAgIDs7IEluc2VydCBhbiBl
bXB0eSBsaW5lIGlmIG5lZWRlZC4KKyAgICAodW5sZXNzIChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAoZm9yd2FyZC1saW5lIC0xKQorICAgICAgICAgICAgICAoZXEgKHBvcy1ib2wpIChw
b3MtZW9sKSkpCisgICAgICAoaW5zZXJ0ICJcbiIpKQorICAgIDs7IEluc2VydCBwYWRkZWQgaGVh
ZGluZyB0ZXh0LgorICAgIChpbnNlcnQgInwiKQorICAgIChkb3RpbWVzICh4IG5jb2xzKQorICAg
ICAgKGxldCogKChlbHQgKG50aCB4IGhlYWRpbmdzKSkKKyAgICAgICAgICAgICAoc3RyIChpZiAo
Y29uc3AgZWx0KSAoY2FyIGVsdCkgZWx0KSkKKyAgICAgICAgICAgICAod2lkdGggKG1heCAzIChu
dGggeCBoZWFkaW5nLXdpZHRocykpKQorICAgICAgICAgICAgIChwYWQtd2lkdGggKC0gd2lkdGgg
KGxlbmd0aCBzdHIpKSkpCisgICAgICAgIChpbnNlcnQgc3RyIChtYWtlLXN0cmluZyBwYWQtd2lk
dGggP1xzKSAifCIpKSkKKyAgICAoaW5zZXJ0ICJcbiIpCisgICAgOzsgSW5zZXJ0IHBhZGRlZCBo
ZWFkaW5nIGFsaWduZXJzLgorICAgIChpbnNlcnQgInwiKQorICAgIChkb3RpbWVzICh4IG5jb2xz
KQorICAgICAgKGxldCogKChlbHQgKG50aCB4IGhlYWRpbmdzKSkKKyAgICAgICAgICAgICAoYWxp
Z24gKGlmIChjb25zcCBlbHQpIChjZHIgZWx0KSAndW5zcGVjaWZpZWQpKQorICAgICAgICAgICAg
ICh3aWR0aCAobWF4IDMgKG50aCB4IGhlYWRpbmctd2lkdGhzKSkpKQorICAgICAgICAoaW5zZXJ0
IChtYXJrZG93bi10cy0tdGFibGUtbWFrZS1hbGlnbmVyIHdpZHRoIGFsaWduKSkpCisgICAgICAo
aW5zZXJ0ICJ8IikpCisgICAgKGluc2VydCAiXG4iKQorICAgIDs7IEluc2VydCBCT0RZIGNlbGxz
IG9yIGVtcHR5IGNlbGxzLgorICAgIChkb3RpbWVzICh5IG5yb3dzKQorICAgICAgKGluc2VydCAi
fCIpCisgICAgICAobGV0ICgocm93IChudGggeSBib2R5KSkpCisgICAgICAgIChkb3RpbWVzICh4
IG5jb2xzKQorICAgICAgICAgIDs7IFRPRE86IFJlbW92ZSB0aGUgcGxhY2Vob2xkZXIgY2hhcmFj
dGVyIGlmIHRoZSB0cmVlLXNpdHRlcgorICAgICAgICAgIDs7IGdyYW1tYXIgaXMgcmVwYWlyZWQu
CisgICAgICAgICAgKGxldCogKChzdHIgKG9yIChudGggeCByb3cpIChhbmQgKGVxIHggMCkgIi4i
KSAiIikpCisgICAgICAgICAgICAgICAgIChzdHJsZW4gKGxlbmd0aCBzdHIpKQorICAgICAgICAg
ICAgICAgICAod2lkdGggKG50aCB4IGhlYWRpbmctd2lkdGhzKSkKKyAgICAgICAgICAgICAgICAg
KHBhZC13aWR0aCAobWF4IDAgKC0gd2lkdGggc3RybGVuKSkpKQorICAgICAgICAgICAgKGluc2Vy
dCBzdHIKKyAgICAgICAgICAgICAgICAgICAgKG1ha2Utc3RyaW5nIHBhZC13aWR0aCA/XHMpCisg
ICAgICAgICAgICAgICAgICAgICJ8IikpKQorICAgICAgICAoaW5zZXJ0ICJcbiIpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLXRhYmxlICgpCisgICJSZW1vdmUgdGhlIE1h
cmtkb3duIHRhYmxlIGF0IHBvaW50LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5v
dGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9k
ZSAnbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLXRhYmxlKQorICAod2hlbi1sZXQqICgoYXQtdGFi
bGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAodGFibGUg
KGNkciBhdC10YWJsZSkpKQorICAgIDs7IFRPRE86IFJlbW92ZSBhZnRlciBidWcjMjM5MDMgVW5k
byBhZnRlciBrYiBkaWZmZXJzIGZyb20gYWZ0ZXIgTS14CisgICAgKHB1c2ggKHBvaW50KSBidWZm
ZXItdW5kby1saXN0KQorICAgIChkZWxldGUtcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgdGFi
bGUpICh0cmVlc2l0LW5vZGUtZW5kIHRhYmxlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFi
bGUtcHJldmlvdXMtcm93ICgpCisgICJNb3ZlIHRvIHRoZSBwcmV2aW91cyByb3cgaW4gdGhlIHRh
YmxlLgorSWYgbm90IGluIGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisg
IChtYXJrZG93bi10cy10YWJsZS1uZXh0LXJvdyAtMSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10
YWJsZS1uZXh0LXJvdyAoJm9wdGlvbmFsIG4pCisgICJNb3ZlIHRvIHRoZSBuZXh0IHJvdyBpbiB0
aGUgdGFibGUuCitJZiBOIGlzIG5lZ2F0aXZlLCBtb3ZlIHRvIHRoZSBwcmV2aW91cyByb3cuCitJ
ZiBwb2ludCBpcyBvbiB0aGUgbGFzdCByb3cgb2YgdGhlIHRhYmxlLCBpbnNlcnQgYSBuZXcgcm93
IGJlbG93IGFuZAorbW92ZSBpbnRvIGl0LiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUg
dGhlIGZpbmFsIHJvdyBpbnRvIHRoZSBuZXcKK29uZS4KK0lmIG5vdCBpbiBhIHRhYmxlLCBkbyBu
b3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1v
ZGUgJ21hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93KQorICAobGV0ICgoYmFja3dhcmRzIChhbmQg
biAoPCBuIDApKSkpCisgICAgOzsgRG9uJ3QgdXNlIGBtYXJrZG93bi10cy0tdGFibGUtYm9keS1y
b3ctbmVhci1wb3MnIGJlY2F1c2Ugd2Ugd2FudAorICAgIDs7IHRvIG9wZXJhdGUgaW4gdGhlIGhl
YWRlci4KKyAgICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAg
bmlsIHQpKQorICAgICAgICAgICAgICAgIChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAgICAg
ICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgIChyb3cgKG1hcmtk
b3duLXRzLS10YWJsZS1ub2RlLXJvdyBuaWwgcG9zKSkpCisgICAgICA7OyBJZiBubyBuZXh0IG9y
IHByZXYgc2libGluZywgd2UncmUgb24gdGhlIGxhc3QvZmlyc3Qgcm93LgorICAgICAgKGxldCAo
KGN1cnJlbnQtY29sdW1uIChjdXJyZW50LWNvbHVtbikpCisgICAgICAgICAgICAobmV4dC1yb3cg
KGlmIGJhY2t3YXJkcworICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXBy
ZXYtc2libGluZyByb3cgJ25hbWVkKQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS1uZXh0LXNpYmxpbmcgcm93ICduYW1lZCkpKSkKKyAgICAgICAgKGlmIG5leHQtcm93Cisg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbmV4dC1yb3cpKQorICAg
ICAgICAgICh1bmxlc3MgYmFja3dhcmRzCisgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LXJvdy1iZWxvdyBjdXJyZW50LXByZWZpeC1hcmcpKSkKKyAgICAgICAgKG1vdmUtdG8t
Y29sdW1uIGN1cnJlbnQtY29sdW1uKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLXBy
ZXZpb3VzLWNlbGwgKCkKKyAgIk1vdmUgdG8gdGhlIHByZXZpb3VzIGNlbGwgaW4gdGhlIHRhYmxl
LgorSWYgbm90IGluIGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICht
YXJrZG93bi10cy10YWJsZS1uZXh0LWNlbGwgLTEpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFi
bGUtbmV4dC1jZWxsICgmb3B0aW9uYWwgbikKKyAgIk1vdmUgdG8gdGhlIG5leHQgY2VsbCBpbiB0
aGUgdGFibGUuCitJZiBOIGlzIG5lZ2F0aXZlLCBtb3ZlIHRvIHRoZSBwcmV2aW91cyBjZWxsLgor
SWYgbm90IGluIGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJr
ZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1jZWxsKQor
ICAobGV0ICgoYmFja3dhcmRzIChhbmQgbiAoPCBuIDApKSkpCisgICAgKHdoZW4tbGV0KiAoKGF0
LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgICAo
cG9zIChjYXIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxl
KSkKKyAgICAgICAgICAgICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24g
J25hbWVkKSkKKyAgICAgICAgICAgICAgICAoY2VsbCAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUt
Y2VsbCBub2RlKSkKKyAgICAgICAgICAgICAgICAoY2VsbC10eXBlICh0cmVlc2l0LW5vZGUtdHlw
ZSBub2RlKSkKKyAgICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1y
b3cgY2VsbCkpCisgICAgICAgICAgICAgICAgKHJvdy10eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBy
b3cpKQorICAgICAgICAgICAgICAgIChuZXh0LWNlbGwKKyAgICAgICAgICAgICAgICAgKGNvbmQK
KyAgICAgICAgICAgICAgICAgIDs7IElmIGluIGEgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IGFu
ZCBub3QgdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgICA7OyBvciBmaW5hbCBjZWxsIGluIHRo
ZSByb3csIHN0YXkgd2l0aGluIHRoZSByb3cKKyAgICAgICAgICAgICAgICAgIDs7IG90aGVyd2lz
ZSwgdGhlIGRlZmF1bHQgY29uZGl0aW9uIHNob3VsZCBtYXRjaC4KKyAgICAgICAgICAgICAgICAg
ICgoYW5kIChlcXVhbCByb3ctdHlwZSAicGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChpZiBiYWNrd2FyZHMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBjZWxsICduYW1lZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgY2VsbCAnbmFtZWQpKSkK
KyAgICAgICAgICAgICAgICAgICAoaWYgYmFja3dhcmRzCisgICAgICAgICAgICAgICAgICAgICAg
ICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIGNlbGwgJ25hbWVkKQorICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgY2VsbCAnbmFtZWQpKSkKKyAgICAgICAg
ICAgICAgICAgIDs7IElmIG9uIHRoZSBmaXJzdCBwaXBlX3RhYmxlX3JvdydzIGZpcnN0IGNlbGwg
bW92aW5nCisgICAgICAgICAgICAgICAgICA7OyBiYWNrd2FyZHMsIG1vdmUgaW50byB0aGUgZmlu
YWwKKyAgICAgICAgICAgICAgICAgIDs7IHBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwuCisgICAg
ICAgICAgICAgICAgICAoKGFuZCAoZXF1YWwgY2VsbC10eXBlICJwaXBlX3RhYmxlX2NlbGwiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyByb3cg
J25hbWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGlwZV90YWJsZV9kZWxp
bWl0ZXJfcm93IikKKyAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1w
cmV2LXNpYmxpbmcgY2VsbCAnbmFtZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgYmFja3dh
cmRzKQorICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAg
ICAgICAgICAgICAgIGNlbGwKKyAgICAgICAgICAgICAgICAgICAgIlxcYHBpcGVfdGFibGVfZGVs
aW1pdGVyX2NlbGxcXCciIGJhY2t3YXJkcykpCisgICAgICAgICAgICAgICAgICA7OyBJZiBvbiB0
aGUgZmlyc3QgcGlwZV90YWJsZV9oZWFkZXIncyBmaW5hbCBjZWxsCisgICAgICAgICAgICAgICAg
ICA7OyBtb3ZpbmcgZm9yd2FyZHMsIG1vdmUgaW50byB0aGUgZmlyc3QKKyAgICAgICAgICAgICAg
ICAgIDs7IHBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwuCisgICAgICAgICAgICAgICAgICAoKGFu
ZCAoZXF1YWwgY2VsbC10eXBlICJwaXBlX3RhYmxlX2NlbGwiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyByb3cgJ25hbWVkKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgY2VsbCAn
bmFtZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCBiYWNrd2FyZHMpKQorICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAgICAg
IGNlbGwKKyAgICAgICAgICAgICAgICAgICAgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGxc
XCciIGJhY2t3YXJkcykpCisgICAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAg
ICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAgICAgIGNlbGwKKyAgICAg
ICAgICAgICAgICAgICAgIlxcYHBpcGVfdGFibGVfY2VsbFxcJyIgYmFja3dhcmRzKSkpKSkKKyAg
ICAgIDs7IEtlZXAgcG9pbnQgd2l0aGluIHRoZSBjdXJyZW50IHRhYmxlLgorICAgICAgKHdoZW4g
KHRyZWVzaXQtbm9kZS1lcSB0YWJsZSAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dC1jZWxsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZVxcJyIgJ2JhY2t3YXJkKSkKKyAgICAgICAg
KGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5leHQtY2VsbCkpKQorICAgICAgKHdoZW4g
KG9yIChlcSBtYXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduIHQpCisgICAgICAgICAgICAgICAg
KG1lbXEgJ2NlbGwtbmF2aWdhdGlvbiBtYXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduKSkKKyAg
ICAgICAgKG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKSkpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cgKCZvcHRpb25hbCBjbG9uZSkKKyAgIkluc2Vy
dCBhIHRhYmxlIHJvdyBiZWxvdyBwb2ludC4KK0lmIHBvaW50IGlzIGluIHRoZSBoZWFkZXIsIGlu
c2VydCBiZWxvdyB0aGUgZmlyc3Qgcm93IG9mIHRoZSB0YWJsZS4KK0lmIENMT05FIGlzIG5vbi1u
aWwsIG9yIHdpdGggYSBwcmVmaXggYXJndW1lbnQsIGNsb25lIHRoZSBjdXJyZW50IHJvdy4KK0lm
IHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQ
IikKKyAgKHNldHEgY2xvbmUgKG9yIGNsb25lIGN1cnJlbnQtcHJlZml4LWFyZykpCisgICAgKG1h
cmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3cgJ2JlbG93IGNsb25lKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUgKCZvcHRpb25hbCBjbG9uZSkKKyAgIkluc2Vy
dCBhIHRhYmxlIHJvdyBhYm92ZSBwb2ludC4KK0lmIHBvaW50IGlzIGluIHRoZSBoZWFkZXIsIGlu
c2VydCBhYm92ZSB0aGUgZmlyc3Qgcm93IG9mIHRoZSB0YWJsZS4KK0lmIENMT05FIGlzIG5vbi1u
aWwsIG9yIHdpdGggYSBwcmVmaXggYXJndW1lbnQsIGNsb25lIHRoZSBjdXJyZW50IHJvdy4KK0lm
IHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQ
IikKKyAgKHNldHEgY2xvbmUgKG9yIGNsb25lIGN1cnJlbnQtcHJlZml4LWFyZykpCisgICAgKG1h
cmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3cgJ2Fib3ZlIGNsb25lKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWNsb25lLXJvdy1iZWxvdyAoKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGJl
bG93IHBvaW50LgorSWYgcG9pbnQgaXMgaW4gdGhlIGhlYWRlciwgaW5zZXJ0IGJlbG93IHRoZSBm
aXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5v
dGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93
LWJlbG93ICdjbG9uZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1jbG9uZS1yb3ctYWJv
dmUgKCkKKyAgIkluc2VydCBhIHRhYmxlIHJvdyBhYm92ZSBwb2ludC4KK0lmIHBvaW50IGlzIGlu
IHRoZSBoZWFkZXIsIGluc2VydCBhYm92ZSB0aGUgZmlyc3Qgcm93IG9mIHRoZSB0YWJsZS4KK0lm
IHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQor
ICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1hYm92ZSAnY2xvbmUpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAoJm9wdGlvbmFsIGFib3ZlIGNsb25lKQorICAi
SW5zZXJ0IGEgdGFibGUgcm93IGJlbG93IHBvaW50LgorSWYgcG9pbnQgaXMgaW4gdGhlIGhlYWRl
ciwgaW5zZXJ0IGJlbG93IHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYgQUJPVkUgaXMg
bm9uLW5pbCBhbmQgaXMgbm90IGBiZWxvdycsIG9yIHdpdGggYSBwcmVmaXggYXJndW1lbnQsCitp
bnNlcnQgdGhlIHJvdyBhYm92ZSBwb2ludC4KK0lmIENMT05FIGlzIG5vbi1uaWwsIGNsb25lIHRo
ZSBjdXJyZW50IHJvdywgb3RoZXJ3aXNlIGluc2VydCBlbXB0eQorY2VsbHMuCitJZiBwb2ludCBp
cyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICht
YXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJv
dykKKyAgKHNldHEgYWJvdmUgKGNvbmQgKChlcSBhYm92ZSAnYmVsb3cpIG5pbCkKKyAgICAgICAg
ICAgICAgICAgICAgKGFib3ZlIGFib3ZlKQorICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1w
cmVmaXgtYXJnIHQpKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10
YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAg
ICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAoZGVsaW1pdGVy
LXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3dcXCciKSkKKyAgICAgICAgICAgICAgKG5jb2xzICh0cmVlc2l0LW5vZGUtY2hp
bGQtY291bnQgZGVsaW1pdGVyLXJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAoaGVhZGluZy13
aWR0aHMKKyAgICAgICAgICAgICAgIChsZXQgKHJlcykKKyAgICAgICAgICAgICAgICAgKGRvbGlz
dCAoZWx0ICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gZGVsaW1pdGVyLXJvdyAnbmFtZWQpKQorICAg
ICAgICAgICAgICAgICAgIChwdXNoIChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IGVsdCkpIHJl
cykpCisgICAgICAgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkpCisgICAgKGxldCogKChuZWFy
IChtYXJrZG93bi10cy0tdGFibGUtYm9keS1yb3ctbmVhci1wb3MgcG9zKSkKKyAgICAgICAgICAg
KHJvdyAoY2FyIG5lYXIpKQorICAgICAgICAgICAoY3VycmVudC1jb2x1bW4gKGN1cnJlbnQtY29s
dW1uKSkpCisgICAgICA7OyBJZiByb3cgaXMgbmlsLCB0aGVyZSBhcmUgemVybyByb3dzIHNvIGFk
ZCBvbmUgYmVsb3cgdGhlCisgICAgICA7OyBkZWxpbWl0ZXItcm93LgorICAgICAgKHVubGVzcyBy
b3cKKyAgICAgICAgKHNldHEgY2xvbmUgbmlsKQorICAgICAgICAoc2V0cSByb3cgZGVsaW1pdGVy
LXJvdykKKyAgICAgICAgKHNldHEgYWJvdmUgbmlsKSkKKyAgICAgIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAoY29uZCAoYWJvdmUKKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1zdGFydCByb3cpKSkKKyAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgcm93KSkKKyAgICAgICAgICAgICAgIChpbnNlcnQgIlxu
IikpKQorICAgICAgICAoY29uZCAoY2xvbmUKKyAgICAgICAgICAgICAgIDs7IFRoZSBjbG9uZSBz
dHJhdGVneSBpcyBXWVNJV1lHLiAgSnVzdCBjb3B5IHRoZSB0ZXh0CisgICAgICAgICAgICAgICA7
OyBhbmQgZG9uJ3QgZnVzcyB3aXRoIGNlbGwgY29udGVudCBhbmQgcGlwZSBzeW1ib2xzLgorICAg
ICAgICAgICAgICAgOzsgVGhlIGdyYW1tYXIgaW5jbHVkZXMgdGhlIGZpbmFsIG5ld2xpbmUgKGFu
ZAorICAgICAgICAgICAgICAgOzsgc29tZXRpbWVzIG5vdCkuCisgICAgICAgICAgICAgICAoaW5z
ZXJ0IChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS10ZXh0IHJvdyAnbm8tcHJvcGVydHkpICJcbiIpKSkKKyAgICAgICAgICAgICAgKHQKKyAg
ICAgICAgICAgICAgIChpbnNlcnQgInwiKQorICAgICAgICAgICAgICAgKGRvdGltZXMgKHggbmNv
bHMpCisgICAgICAgICAgICAgICAgIChsZXQgKChwYWQtd2lkdGggKG50aCB4IGhlYWRpbmctd2lk
dGhzKSkpCisgICAgICAgICAgICAgICAgICAgOzsgVE9ETzogUmVtb3ZlIHRoZSBwbGFjZWhvbGRl
ciBjaGFyYWN0ZXIgaWYgdGhlCisgICAgICAgICAgICAgICAgICAgOzsgdHJlZS1zaXR0ZXIgZ3Jh
bW1hciBpcyByZXBhaXJlZC4KKyAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChpZiAoZXEgeCAw
KSAiLiIgIiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKC0gcGFk
LXdpZHRoIChpZiAoZXEgeCAwKSAxIDApKSA/XHMpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAifCIpKSkpKQorICAgICAgICAod2hlbiBhYm92ZQorICAgICAgICAgIChpbnNlcnQgIlxuIikp
KQorICAgICAgKGNvbmQgKGFib3ZlCisgICAgICAgICAgICAgKHdoZW4gKD4gY3VycmVudC1jb2x1
bW4gMCkKKyAgICAgICAgICAgICAgICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChpbnRlcmFj
dGl2ZS1vbmx5IHByZXZpb3VzLWxpbmUpKQorICAgICAgICAgICAgICAgICAocHJldmlvdXMtbGlu
ZSkpKSkKKyAgICAgICAgICAgICh0ICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChpbnRlcmFj
dGl2ZS1vbmx5IG5leHQtbGluZSkpCisgICAgICAgICAgICAgICAgIChuZXh0LWxpbmUpKSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtcm93ICgpCisgICJEZWxldGUgdGhl
IHRhYmxlIHJvdyBhdCBwb2ludC4KK0lmIHBvaW50IGlzIG9uIHRoZSBoZWFkZXIgb3IgZGVsaW1p
dGVyIHJvdywgZG8gbm90aGluZy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3Ro
aW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUg
J21hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cpCisgICh3aGVuLWxldCogKChuZWFyIChtYXJr
ZG93bi10cy0tdGFibGUtYm9keS1yb3ctbmVhci1wb3MgbmlsIHQpKQorICAgICAgICAgICAgICA7
OyBCYWlsIGlmIHBvaW50IGlzIG9uIHRoZSBoZWFkZXIgb3IgZGVsaW1pdGVyIHJvdyDigJQgZG8K
KyAgICAgICAgICAgICAgOzsgbm90IHNpbGVudGx5IGRlbGV0ZSBhIGJvZHkgcm93IHRoZSB1c2Vy
IGRpZCBub3Qgc2VsZWN0LgorICAgICAgICAgICAgICAoKG5vdCAoY2RyIG5lYXIpKSkKKyAgICAg
ICAgICAgICAgKHJvdyAoY2FyIG5lYXIpKSkKKyAgICAobGV0ICgoY3VycmVudC1jb2x1bW4gKGN1
cnJlbnQtY29sdW1uKSkpCisgICAgICAoZGVsZXRlLXJlZ2lvbiAodHJlZXNpdC1ub2RlLXN0YXJ0
IHJvdykKKyAgICAgICAgICAgICAgICAgICAgIChtaW4gKDErICh0cmVlc2l0LW5vZGUtZW5kIHJv
dykpIChwb2ludC1tYXgpKSkKKyAgICAgIChtb3ZlLXRvLWNvbHVtbiBjdXJyZW50LWNvbHVtbikp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LXVwICgpCisgICJNb3ZlIHRo
ZSByb3cgYXQgcG9pbnQgdXAgb25lIGxpbmUuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwg
ZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUt
cm93KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24gKCkKKyAgIk1v
dmUgdGhlIHJvdyBhdCBwb2ludCBkb3duIG9uZSBsaW5lLgorSWYgcG9pbnQgaXMgbm90IGF0IGEg
dGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10YWJs
ZS1tb3ZlLXJvdyAnZG93bikpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdyAo
Jm9wdGlvbmFsIGRvd24pCisgICJNb3ZlIHRoZSByb3cgYXQgcG9pbnQgdXAgb25lIGxpbmUuCitJ
ZiBET1dOIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVmaXggYXJndW1lbnQsIG1vdmUgdGhlIHJv
dyBkb3duIG9uZQorbGluZS4KK0lmIHBvaW50IGlzIG9uIHRoZSBoZWFkZXIgb3IgZGVsaW1pdGVy
IHJvdywgZG8gbm90aGluZy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5n
LiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgJ21h
cmtkb3duLXRzLXRhYmxlLW1vdmUtcm93KQorICAoc2V0cSBkb3duIChvciBkb3duIGN1cnJlbnQt
cHJlZml4LWFyZykpCisgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFi
bGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgIChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAg
ICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKG5lYXIgKG1hcmtk
b3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBwb3MpKQorICAgICAgICAgICAgICA7OyBC
YWlsIGlmIHBvaW50IGlzIG9uIHRoZSBoZWFkZXIgb3IgZGVsaW1pdGVyIHJvdyDigJQgZG8KKyAg
ICAgICAgICAgICAgOzsgbm90IHNpbGVudGx5IG1vdmUgYSBib2R5IHJvdyB0aGUgdXNlciBkaWQg
bm90IHNlbGVjdC4KKyAgICAgICAgICAgICAgKChub3QgKGNkciBuZWFyKSkpCisgICAgICAgICAg
ICAgIChyb3cgKGNhciBuZWFyKSkpCisgICAgOzsgRG8gbm90IG1vdmUgYWJvdmUgdGhlIHBpcGVf
dGFibGVfZGVsaW1pdGVyX3Jvdy4KKyAgICA7OyBEbyBub3QgbW92ZSBiZWxvdyB0aGUgYm90dG9t
IG9mIHRoZSB0YWJsZS4KKyAgICAodW5sZXNzIChvciAoYW5kIChub3QgZG93bikKKyAgICAgICAg
ICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2LXNpYmxpbmcgcm93ICduYW1lZCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIpKQorICAg
ICAgICAgICAgICAgIChhbmQgZG93bgorICAgICAgICAgICAgICAgICAgICAgKG5vdCAodHJlZXNp
dC1ub2RlLW5leHQtc2libGluZyByb3cgJ25hbWVkKSkpKQorICAgICAgKGxldCAoKHJvdzIgKGlm
IGRvd24KKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBy
b3cgJ25hbWVkKQorICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGlu
ZyByb3cgJ25hbWVkKSkpCisgICAgICAgICAgICAocm93LWVuZCAodHJlZXNpdC1ub2RlLWVuZCBy
b3cpKSkKKyAgICAgICAgOzsgVE9ETzogUmVtb3ZlIGFmdGVyIGJ1ZyMyMzkwMyBVbmRvIGFmdGVy
IGtiIGRpZmZlcnMgZnJvbSBhZnRlciBNLXgKKyAgICAgICAgKHB1c2ggKHBvaW50KSBidWZmZXIt
dW5kby1saXN0KQorICAgICAgICA7OyBJZiByb3cgcG9pbnQgaXMgb3V0c2lkZSBpdHMgc291cmNl
IHJlZ2lvbiwgZS5nLiwgYXQgZW9sLCBtb3ZlCisgICAgICAgIDs7IGl0IGluc2lkZSB0aGUgcmVn
aW9uIGZvciBzdGFiaWxpdHkuCisgICAgICAgICh3aGVuICg+PSAocG9pbnQpIHJvdy1lbmQpCisg
ICAgICAgICAgKGdvdG8tY2hhciAobWF4IChwb2ludC1taW4pICgxLSByb3ctZW5kKSkpKQorICAg
ICAgICAodHJhbnNwb3NlLXJlZ2lvbnMgKHRyZWVzaXQtbm9kZS1zdGFydCByb3cpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCByb3cpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IHJvdzIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCByb3cyKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgKCZvcHRpb25hbCBjbG9uZSkKKyAgIkluc2Vy
dCBhIHRhYmxlIGNvbHVtbiB0byB0aGUgbGVmdCBvZiBwb2ludCdzIGNvbHVtbi4KK0lmIENMT05F
IGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVmaXggYXJndW1lbnQsIGNsb25lIHRoZSBjdXJyZW50
Citjb2x1bW4sIG90aGVyd2lzZSBpbnNlcnQgZW1wdHkgY2VsbHMuCitQb2ludCBjYW4gYmUgaW4g
dGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRv
IG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAobWFya2Rvd24tdHMtdGFibGUtaW5z
ZXJ0LWNvbHVtbiAnbGVmdCBjbG9uZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1pbnNl
cnQtY29sdW1uLXJpZ2h0ICgmb3B0aW9uYWwgY2xvbmUpCisgICJJbnNlcnQgYSB0YWJsZSBjb2x1
bW4gdG8gdGhlIHJpZ2h0IG9mIHBvaW50J3MgY29sdW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwg
b3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUgdGhlIGN1cnJlbnQKK2NvbHVtbiwgb3Ro
ZXJ3aXNlIGluc2VydCBlbXB0eSBjZWxscy4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVh
ZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisg
IChpbnRlcmFjdGl2ZSAiUCIpCisgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uICdy
aWdodCBjbG9uZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1jbG9uZS1jb2x1bW4tbGVm
dCAoKQorICAiQ2xvbmUgdGhlIGN1cnJlbnQgY29sdW1uIHRvIGl0cyBsZWZ0LgorUG9pbnQgY2Fu
IGJlIGluIHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRh
YmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LWNvbHVtbi1sZWZ0ICdjbG9uZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1j
bG9uZS1jb2x1bW4tcmlnaHQgKCkKKyAgIkNsb25lIHRoZSBjdXJyZW50IGNvbHVtbiB0byBpdHMg
cmlnaHQuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9p
bnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICht
YXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0ICdjbG9uZSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uICgmb3B0aW9uYWwgbGVmdCBjbG9uZSkKKyAg
Ikluc2VydCBhIHRhYmxlIGNvbHVtbiBhZnRlciBwb2ludCdzIGN1cnJlbnQgY29sdW1uLgorSWYg
TEVGVCBpcyBub24tbmlsIGFuZCBpcyBub3QgYHJpZ2h0Jywgb3Igd2l0aCBhIHByZWZpeCBhcmd1
bWVudCwKK2luc2VydCB0aGUgY29sdW1uIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJyZW50IGNvbHVt
bi4KK0lmIENMT05FIGlzIG5vbi1uaWwsIGNsb25lIHRoZSBjdXJyZW50IGNvbHVtbiwgb3RoZXJ3
aXNlIGluc2VydCBlbXB0eQorY2VsbHMuCitJZiBDTE9ORSBpcyBhIGxpc3QsIGl0cyBmaXJzdCBl
bGVtZW50IGlzIHRhcmdldC1jb2x1bW4tbnVtYmVyLiAgSXQgaXMKK3RoZSBjYWxsZXIncyByZXNw
b25zaWJpbGl0eSB0aGF0IHRoaXMgdmFsdWUgaXMgdmFsaWQgZm9yIHRoZSB0YWJsZSwKK3Rob3Vn
aCBpdCBtYXkgYmUgaW52YWxpZCBmb3IgYSBub24tdW5pZm9ybSByYWdnZWQgcm93LgorUG9pbnQg
Y2FuIGJlIGluIHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBh
IHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtLWJh
cmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4pCisgIChzZXRx
IGxlZnQgKGNvbmQgKChlcSBsZWZ0ICdyaWdodCkgbmlsKQorICAgICAgICAgICAgICAgICAgIChs
ZWZ0IGxlZnQpCisgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtcHJlZml4LWFyZyB0KSkpCisg
ICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisg
ICAgICAgICAgICAgIChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICh0YWJsZSAo
Y2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKGRlbGltaXRlci1yb3cgKHRyZWVzaXQtc2Vh
cmNoLXN1YnRyZWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlICJcXGBwaXBl
X3RhYmxlX2RlbGltaXRlcl9yb3dcXCciKSkKKyAgICAgICAgICAgICAgOzsgQ29sdW1uIHBvcyBm
b3IgaW5zZXJ0aW5nIG1pc3NpbmcgbGVhZGluZyBwaXBlcy4KKyAgICAgICAgICAgICAgKGRlbGlt
MC1waXBlLWNvbAorICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAg
ICAgIChsZXQqICgoZGVsaW0tY2VsbCAodHJlZXNpdC1ub2RlLWNoaWxkCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyLXJvdyAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAoYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgZGVsaW0tY2VsbCkpKQor
ICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgICAgIChn
b3RvLWNoYXIgKHBvcy1ib2wpKQorICAgICAgICAgICAgICAgICAgIChpZiAoc2VhcmNoLWZvcndh
cmQgInwiIGJlZyB0KQorICAgICAgICAgICAgICAgICAgICAgICAoMS0gKGN1cnJlbnQtY29sdW1u
KSkKKyAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAg
ICAgICAgKGN1cnJlbnQtY29sdW1uKSkpKSkKKyAgICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQt
bm9kZS1hdCBwb3MgJ21hcmtkb3duICduYW1lZCkpCisgICAgICAgICAgICAgIChjZWxsIChtYXJr
ZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUpKQorICAgICAgICAgICAgICAocG9pbnQtcm93
IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgY2VsbCkpKQorICAgIChsZXQgKCh0YWJsZS1j
b2x1bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIHBvaW50LXJvdyBj
ZWxsKSkpCisgICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAoZXJyb3IgIkNvdWxk
IG5vdCBjb21wdXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIDs7IE5PVEU6IEdGTSB0YWJs
ZXMgYWxsb3cgbm9uLXVuaWZvcm0gdGFibGUgcm93cy4gIFRoZSBjdXJyZW50IHJvdworICAgICAg
OzsgY291bGQgaGF2ZSBhIGRpZmZlcmluZyBudW1iZXIgb2YgY29sdW1ucyBmcm9tIG90aGVyIHJv
d3MuICBXZQorICAgICAgOzsgc2lsZW50bHkgZG8gbm90aGluZyB0byBhIHJvdyB0aGF0IGRvZXMg
bm90IGV4dGVuZCB0byB0aGUKKyAgICAgIDs7IGNvbXB1dGVkIGNvbHVtbi4KKyAgICAgIDs7Cisg
ICAgICA7OyBOT1RFOiBUaGUgZ3JhbW1hciBhbm5veWluZ2x5IGlnbm9yZXMgY2VsbCBsZWFkaW5n
IHdoaXRlc3BhY2UKKyAgICAgIDs7IGJ1dCBpbmNsdWRlcyB0cmFpbGluZyB3aGl0ZXNwYWNlLCBz
byBjZWxscyBhcmUgYm91bmRlZCBieSB0aGUKKyAgICAgIDs7IGZpcnN0IGdyYXBoIGNoYXJhY3Rl
ciB1cCB0byB0aGUgbGFzdCBjaGFyYWN0ZXIganVzdCBiZWZvcmUgdGhlCisgICAgICA7OyBwaXBl
IHN5bWJvbCwgaW5jbHVkaW5nIHdoaXRlc3BhY2UuICBUaGUgcmVzdWx0IGlzIHRoZSByYW5nZQor
ICAgICAgOzsgZG9lcyBub3Qgc3RhcnQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIG9wdGlvbmFsIGxl
YWRpbmcgcGlwZQorICAgICAgOzsgc3ltYm9sIHlldCBpbmNvbnNpc3RlbnRseSBjb250aW51ZXMg
dW50aWwganVzdCBiZWZvcmUgdGhlCisgICAgICA7OyB0cmFpbGluZyBwaXBlLgorICAgICAgKGxl
dCogKChhZGogMCkgOyBBZGp1c3Qgbm9kZSBwb3NpdGlvbiBvZmZzZXRzIGJ5IGluc2VydGVkIHRl
eHQuCisgICAgICAgICAgICAgKHdpZHRoIG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29sdW1u
LXdpZHRoKQorICAgICAgICAgICAgIChlbXB0eSAobWFrZS1zdHJpbmcgd2lkdGggP1xzKSkKKyAg
ICAgICAgICAgICA7OyBUT0RPOiBSZW1vdmUgdGhlIHBsYWNlaG9sZGVyIGNoYXJhY3RlciBpZiB0
aGUgdHJlZS1zaXR0ZXIKKyAgICAgICAgICAgICA7OyBncmFtbWFyIGlzIHJlcGFpcmVkLgorICAg
ICAgICAgICAgIChwbGFjZWhvbGRlciAoY29uY2F0ICIuIiAobWFrZS1zdHJpbmcgKDEtIHdpZHRo
KSA/XHMpKSkKKyAgICAgICAgICAgICAoZGVsaW0gKG1ha2Utc3RyaW5nIHdpZHRoID8tKSkKKyAg
ICAgICAgICAgICAocm93cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHRhYmxlICduYW1lZCkpCisg
ICAgICAgICAgICAgKG5yb3dzIChsZW5ndGggcm93cykpCisgICAgICAgICAgICAgKHRhcmdldC1j
b2x1bW4tbnVtYmVyIChhbmQgKGxpc3RwIGNsb25lKSAoY2FyIGNsb25lKSkpCisgICAgICAgICAg
ICAgOzsgUG9zaXRpb24gdG8gbW92ZSBwb2ludCB0byBhZnRlciBhbGwgcm93cyBoYXZlIGJlZW4K
KyAgICAgICAgICAgICA7OyB1cGRhdGVkLiAgRGV0ZXJtaW5pc3RpYyBwbGFjZW1lbnQgYXZvaWRz
IGRlcGVuZGluZyBvbgorICAgICAgICAgICAgIDs7IHRyZWUtc2l0dGVyIG5hdmlnYXRpb24gdGhy
b3VnaCBmcmVzaGx5LWluc2VydGVkIGVtcHR5CisgICAgICAgICAgICAgOzsgY2VsbHMsIHdoaWNo
IHRoZSBncmFtbWFyIGRvZXMgbm90IGFsd2F5cyByZXBhcnNlIGFzCisgICAgICAgICAgICAgOzsg
cGlwZV90YWJsZV9jZWxsIG5vZGVzLgorICAgICAgICAgICAgICh0YXJnZXQtcG9zKSkKKyAgICAg
ICAgOzsgVE9ETzogUmVtb3ZlIGFmdGVyIGJ1ZyMyMzkwMyBVbmRvIGFmdGVyIGtiIGRpZmZlcnMg
ZnJvbSBhZnRlciBNLXgKKyAgICAgICAgKHB1c2ggKHBvaW50KSBidWZmZXItdW5kby1saXN0KQor
ICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAod2l0aG91dC1yZXN0cmljdGlvbgor
ICAgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAgICAgICh3aGVuLWxldCog
KChyb3cgKG50aCB4IHJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAocm93LXR5cGUg
KHRyZWVzaXQtbm9kZS10eXBlIHJvdykpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2xz
ICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChuY29scyAobGVuZ3RoIGNvbHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICA7
OyBzb3VyY2UtY2VsbCB3aWxsIGJlIG5pbCBpZiB0YWJsZS1jb2x1bW4gaXMgYmV5b25kIHRoaXMK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgcm93J3MgY29sdW1uIHNldCBhbmQgdGhhdCBy
b3cgd2lsbCBiZSBza2lwcGVkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAoc291cmNlLWNl
bGwgKG50aCB0YWJsZS1jb2x1bW4gY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7
IElmIGNsb25pbmcgd2l0aCBhIHNwZWNpZmllZCB0YXJnZXQtY29sdW1uLW51bWJlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgOzsgdGFyZ2V0LWNlbGwgd2lsbCBiZSBuaWwgYW5kIHRoZSBy
b3cgd2lsbCBiZSBza2lwcGVkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0LWNl
bGwgKGlmIHRhcmdldC1jb2x1bW4tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobnRoIHRhcmdldC1jb2x1bW4tbnVtYmVyIGNvbHMpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLWNlbGwpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBDb21wdXRlIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChiZWcgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOzsgSWYgY2xvbmluZyB0byBhIHNwZWNpZmllZCB0YXJnZXQsIHVzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyB0YXJnZXQtY2VsbCdzIGVuZC4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRhcmdldC1jb2x1bW4tbnVtYmVyCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LW5vZGUtZW5kIHRhcmdldC1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IElmIGluc2VydGluZyB0byB0aGUgbGVmdCBvZiB0aGUgZmlyc3QKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgY29sdW1uLCB1c2Ugc291cmNlIGNlbGwn
cyBzdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBhZGp1c3RlZCBmb3Ig
aXRzIG9wdGlvbmFsIHBpcGUgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg
Y2FwdHVyZSBpdHMgd2hpdGVzcGFjZS4gIElmIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IG5vIHBpcGUsIHVzZSBib2wuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgoYW5kIGxlZnQgKGVxIHRhYmxlLWNvbHVtbiAwKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsZXQgKChwICgrIGFkagorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBzb3VyY2UtY2VsbCkp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb3MtYm9sKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzZWFyY2gtZm9yd2FyZCAifCIg
cCB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgcCAoMS0g
KHBvaW50KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgcCAo
cG9zLWJvbCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgaW5zZXJ0aW5nIGxlZnQgYW5kIGFueSBv
dGhlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjb2x1bW4sIHVzZSB0aGUg
ZW5kIG9mIHRoZSBwcmlvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjZWxs
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVmdAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCsgYWRqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoMSsgKHRyZWVzaXQtbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG50aCAoMS0gdGFibGUtY29sdW1uKSBjb2xzKSkpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOzsgSWYgaW5zZXJ0aW5nIHJpZ2h0LCB1c2UgdGhlIGVuZCBv
ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGUgY3VycmVudCBjZWxsLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCsgYWRqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLWVuZCBzb3VyY2UtY2VsbCkpKSkpKQorICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgYmVnKQorICAgICAgICAgICAgICAgIChsZXQqICgob3JpZy1wb2ludCAocG9pbnQpKQor
ICAgICAgICAgICAgICAgICAgICAgICAobWlzc2luZy1sZWFkaW5nLXBpcGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICh3aGVuIChlcSB0YWJsZS1jb2x1bW4gMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdv
dG8tY2hhciAocG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAo
c2VhcmNoLWZvcndhcmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifCIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGogKHRyZWVzaXQtbm9k
ZS1zdGFydCBzb3VyY2UtY2VsbCkpIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
fCIpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICh0ZXh0IChjb25kCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBJZiBjbG9uaW5nLCByZXRyaWV2ZSB0aGUgc291cmNlIGNlbGwg
dGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9uZSAoYnVmZmVyLXN1YnN0
cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDs7IEJhY2sgdXAgdG8gYm9sIG9yIHRoZSBwaXBlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IHRvIGNhcHR1cmUgdGhlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOzsgdGhlIGdyYW1tYXIgbGVhdmVzIG91dC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhcgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBzb3VyY2UtY2VsbCkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJh
Y2t3YXJkICJbWzpibGFuazpdXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCsgYWRqICh0cmVlc2l0LW5vZGUtZW5kIHNvdXJjZS1jZWxsKSkpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgbmV3IGNvbHVtbiwgYW5kIHRoaXMgaXMg
dGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBkZWxpbWl0ZXIgcm93LCBpbnNl
cnQgYSBkZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBkZWxpbWl0ZXIu
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxdWFsIHJvdy10eXBlICJwaXBlX3Rh
YmxlX2RlbGltaXRlcl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGlt
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgbmV3IGNvbHVtbiwgYW5kIHRo
aXMgaXMgdGhlIGEgaGVhZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBvciBi
b2R5IHJvdywgaW5zZXJ0IGEgZGVmYXVsdCBlbXB0eQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOzsgc3RyaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbXB0eSkpKSkKKyAgICAgICAgICAgICAgICAgIChj
b25kCisgICAgICAgICAgICAgICAgICAgKGNsb25lCisgICAgICAgICAgICAgICAgICAgIChjb25k
CisgICAgICAgICAgICAgICAgICAgIDs7IENsb25lIHRoZSBmaXJzdCBjb2x1bW4gdG8gdGhlIGxl
ZnQuICBJZiB0aGVyZSBpcworICAgICAgICAgICAgICAgICAgICA7OyBubyBwaXBlIGJlZm9yZSB0
aGUgY2VsbCBjb250ZW50LCBpbnNlcnQgb25lLgorICAgICAgICAgICAgICAgICAgICAgKChhbmQg
bGVmdCAoZXEgdGFibGUtY29sdW1uIDApKQorICAgICAgICAgICAgICAgICAgICAgICAgKGluc2Vy
dCAifCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2luZy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAgICAg
ICAgICAgICAgICAgICAgOzsgQ2xvbmUgdGhlIGZpcnN0IGNvbHVtbiB0byB0aGUgcmlnaHQuCisg
ICAgICAgICAgICAgICAgICAgICAoKGFuZCAobm90IGxlZnQpIChlcSB0YWJsZS1jb2x1bW4gMCkp
CisgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHQpCisgICAgICAgICAgICAgICAgICAgICAgOzsgRm9yIGEgcG9zaXRpdmUg
dXNlciBleHBlcmllbmNlIGdpdmVuIGdyYW1tYXIKKyAgICAgICAgICAgICAgICAgICAgICA7OyBi
dWdzLCBhZGQgYSBtaXNzaW5nIGxlYWRpbmcgcGlwZSB0byB0aGUgZmlyc3QKKyAgICAgICAgICAg
ICAgICAgICAgICA7OyBjZWxsIGF0IGEgcGxlYXNpbmcgcG9zaXRpb24gYWZ0ZXIgY2xvbmluZy4K
KyAgICAgICAgICAgICAgICAgICAgICAod2hlbiBtaXNzaW5nLWxlYWRpbmctcGlwZQorICAgICAg
ICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChtb3ZlLXRvLWNvbHVtbiBkZWxpbTAtcGlwZS1jb2wpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChpbnNlcnQgInwiKSkpKQorICAgICAgICAgICAgICAgICAgICA7OyBDbG9uZSB0aGUg
ZmluYWwgY29sdW1uIHRvIHRoZSBsZWZ0LgorICAgICAgICAgICAgICAgICAgICAgKChhbmQgbGVm
dCAoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpKQorICAgICAgICAgICAgICAgICAgICAgIChp
bnNlcnQgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInwiKSkKKyAgICAgICAg
ICAgICAgICAgICAgIDs7IENsb25lIGEgbWlkZGxlIGNvbHVtbiB0byB0aGUgbGVmdC4KKyAgICAg
ICAgICAgICAgICAgICAgIChsZWZ0CisgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCB0ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifCIpKQorICAgICAgICAgICAgICAgICAg
ICAgOzsgQ2xvbmUgYSBtaWRkbGUgb3IgZmluYWwgY29sdW1uIHRvIHRoZSByaWdodC4KKyAgICAg
ICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQpKSkpCisKKyAgICAgICAgICAgICAgICAg
ICA7OyBOb3QgY2xvbmluZywgaW5zZXJ0IGEgbmV3IGNvbHVtbi4KKyAgICAgICAgICAgICAgICAg
ICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkgKGVxIHggKDEtIG5yb3dzKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAobm90IChlcXVhbCByb3ctdHlwZSAicGlwZV90YWJsZV9kZWxp
bWl0ZXJfcm93IikpKQorICAgICAgICAgICAgICAgICAgIDs7IFRPRE86IHJlbW92ZSBwbGFjZWhv
bGRlciBsb2dpYy4KKyAgICAgICAgICAgICAgICAgICAgKGluc2VydAorICAgICAgICAgICAgICAg
ICAgICAgInwiCisgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcgorICAgICAgICAgICAg
ICAgICAgICAgKG9yIG1pc3NpbmctbGVhZGluZy1waXBlICIiKSkpCisgICAgICAgICAgICAgICAg
ICAgKChhbmQgbGVmdCAoZXEgdGFibGUtY29sdW1uIDApKQorICAgICAgICAgICAgICAgICAgICAg
IChpbnNlcnQKKyAgICAgICAgICAgICAgICAgICAgICAgInwiCisgICAgICAgICAgICAgICAgICAg
ICAgIHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgKG9yIG1pc3NpbmctbGVhZGluZy1waXBl
ICIiKSkpCisgICAgICAgICAgICAgICAgICAgKGxlZnQKKyAgICAgICAgICAgICAgICAgICAgKGlu
c2VydAorICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgInwi
KSkKKyAgICAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0Cisg
ICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAgICAgICAgICAgICAgICAgIHRleHQpKSkKKwor
ICAgICAgICAgICAgICAgICAgOzsgQ2FwdHVyZSB0aGUgc3RhcnQgb2YgdGhlIG5ldyBjZWxsJ3Mg
Y29udGVudCBpbgorICAgICAgICAgICAgICAgICAgOzsgdGhlIHJvdyB0aGF0IG9yaWdpbmFsbHkg
Y29udGFpbmVkIHBvaW50LgorICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAobm90IHRhcmdl
dC1wb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZXEgcm93
IHBvaW50LXJvdykpCisgICAgICAgICAgICAgICAgICAgIChzZXRxIHRhcmdldC1wb3MKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0
YXJnZXQtY29sdW1uLW51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtc3RhcnQgdGFyZ2V0LWNlbGwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGFuZCBsZWZ0IChub3QgKGVxIHRhYmxl
LWNvbHVtbiAwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7ICJ0ZXh0IHwi
IGluc2VydGVkIGF0IGJlZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZy1w
b2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgQWxsIG90aGVyIGJyYW5jaGVz
IGluc2VydCAifCIgZmlyc3QuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSsgb3Jp
Zy1wb2ludCkpKSkpKQorCisgICAgICAgICAgICAgICAgICA7OyBBZGp1c3Qgb2Zmc2V0IGZvciBk
ZWxldGVkIHRleHQuCisgICAgICAgICAgICAgICAgICAoc2V0cSBhZGogKCsgYWRqICgtIChwb2lu
dCkgb3JpZy1wb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICBvcmlnLXBvaW50IChwb2lu
dCkpKSkpKSkKKyAgICAgICAgKHdoZW4gdGFyZ2V0LXBvcworICAgICAgICAgIChnb3RvLWNoYXIg
dGFyZ2V0LXBvcykpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVt
biAoKQorICAiRGVsZXRlIHRoZSB0YWJsZSBjb2x1bW4gYXQgcG9pbnQuCitQb2ludCBjYW4gYmUg
aW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUs
IGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1u
b3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbikKKyAgKHdoZW4tbGV0KiAo
KGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAg
KHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUp
KQorICAgICAgICAgICAgICAoY2VsbCAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtY2VsbCBuaWwg
cG9zKSkKKyAgICAgICAgICAgICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IGNl
bGwpKQorICAgICAgICAgICAgICAoY29scyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFt
ZWQpKQorICAgICAgICAgICAgICAobmNvbHMgKGxlbmd0aCBjb2xzKSkpCisgICAgKGxldCAoKHRh
YmxlLWNvbHVtbiAobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1bW4gcm93IGNl
bGwpKSkKKyAgICAgICh1bmxlc3MgdGFibGUtY29sdW1uCisgICAgICAgIChlcnJvciAiQ291bGQg
bm90IGNvbXB1dGUgdGhlIHRhYmxlIGNvbHVtbiIpKQorICAgICAgOzsgTk9URTogR0ZNIHRhYmxl
cyBhbGxvdyBub24tdW5pZm9ybSB0YWJsZSByb3dzLiAgVGhlIGN1cnJlbnQgcm93CisgICAgICA7
OyBjb3VsZCBoYXZlIGEgZGlmZmVyaW5nIG51bWJlciBvZiBjb2x1bW5zIGZyb20gb3RoZXIgcm93
cy4gIFdlCisgICAgICA7OyBzaWxlbnRseSBkbyBub3RoaW5nIHRvIGEgcm93IHRoYXQgZG9lcyBu
b3QgZXh0ZW5kIHRvIHRoZQorICAgICAgOzsgY29tcHV0ZWQgY29sdW1uLgorICAgICAgOzsKKyAg
ICAgIDs7IE5PVEU6IFRoZSBncmFtbWFyIGFubm95aW5nbHkgaWdub3JlcyBjZWxsIGxlYWRpbmcg
d2hpdGVzcGFjZQorICAgICAgOzsgYnV0IGRvZXMgaW5jbHVkZSB0cmFpbGluZyB3aGl0ZXNwYWNl
IHNvIGNlbGxzIGFyZSBib3VuZGVkIGJ5CisgICAgICA7OyB0aGUgZmlyc3QgZ3JhcGggY2hhcmFj
dGVyIHVwIHRvIHRoZSBsYXN0IGNoYXJhY3RlciBqdXN0IGJlZm9yZQorICAgICAgOzsgdGhlIHBp
cGUgc3ltYm9sLCBpbmNsdWRpbmcgd2hpdGVzcGFjZS4KKyAgICAgIDs7CisgICAgICA7OyBUaGUg
Z3JhbW1hciBhbHNvIGNvbnNpZGVycyB0aGUgdHJhaWxpbmcgcGlwZSBzeW1ib2wgdG8gYmUgYQor
ICAgICAgOzsgcGFydCBvZiBpdHMgcHJlY2VkaW5nIGNlbGwgc28gdGhhdCdzIHdoYXQgd2UgZGVs
ZXRlIHdoZW4gd2UKKyAgICAgIDs7IGRlbGV0ZSBhIGNvbHVtbidzIGNlbGw7IGkuZS4sIGlmIHRo
ZXJlIGlzIGEgcGlwZSBiZWZvcmUgdGhlCisgICAgICA7OyBmaXJzdCBjb2x1bW4sIHdlIGRlbGV0
ZSBpdC4KKyAgICAgIChsZXQqICgoYWRqIDApIDsgQWRqdXN0IG5vZGUgcG9zaXRpb24gb2Zmc2V0
cyBieSBkZWxldGVkIHRleHQuCisgICAgICAgICAgICAgKHJvd3MgKHRyZWVzaXQtbm9kZS1jaGls
ZHJlbiB0YWJsZSAnbmFtZWQpKQorICAgICAgICAgICAgIChucm93cyAobGVuZ3RoIHJvd3MpKSkK
KyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKHdpdGhvdXQtcmVzdHJpY3Rpb24K
KyAgICAgICAgICAgIChkb3RpbWVzICh4IG5yb3dzKQorICAgICAgICAgICAgICA7OyBJZiBjZWxs
IGlzIG5pbCwgaXQgaXMgYmV5b25kIHRoZSB0YWJsZS1jb2x1bW4gYW5kIGl0cworICAgICAgICAg
ICAgICA7OyByb3cgaXMgaWdub3JlZC4KKyAgICAgICAgICAgICAgKHdoZW4tbGV0KiAoKHJvdyAo
bnRoIHggcm93cykpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2xzICh0cmVlc2l0LW5v
ZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChuY29s
cyAobGVuZ3RoIGNvbHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY2VsbCAobnRoIHRh
YmxlLWNvbHVtbiBjb2xzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNlbGwtYmVnICh0
cmVlc2l0LW5vZGUtc3RhcnQgY2VsbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjZWxs
LWVuZCAodHJlZXNpdC1ub2RlLWVuZCBjZWxsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgQWRqdXN0IGJlZyB0byB0cmltIHRoZSBncmFtbWFyCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIDs7IHVuYWNjb3VudGVkLWZvciBsZWFkaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChiZWcgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgSWYgdGhpcyBpcyB0aGUgc29sZSBjb2x1bW4sIGRlbGV0ZSBmcm9tIGJvbC4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKChlcSBuY29scyAxKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciAoLSBjZWxsLWJlZyBhZGopKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHBvcy1ib2wpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA7OyBJZiB0aGlzIGlzIHRoZSBmaXJzdCBjb2x1bW4sIGRlbGV0ZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7OyBmcm9tIHRoZSBwaXBlLCBpZiB0aGVyZSBpcyBvbmUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IG90aGVyd2lzZSBjZWxsLWJlZy4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChlcSB0YWJsZS1jb2x1bW4gMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChwICgtIGNlbGwtYmVnIGFkaikp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvcy1ib2wpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHNlYXJjaC1mb3J3YXJkICJ8IiBw
IHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gKHBvaW50KSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDs7IElmIHRoaXMgaXMgdGhlIGZpbmFsIGNvbHVtbiwgZGVsZXRl
IGZyb20gdGhlIHByaW9yIHBpcGUgc3ltYm9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoKGVxIHRhYmxlLWNvbHVtbiAoMS0gbmNvbHMpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxldCAoKHAgKC0gKHRyZWVzaXQtbm9kZS1lbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnRoICgxLSB0YWJsZS1jb2x1bW4pIGNv
bHMpKSBhZGopKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hh
ciBwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHNlYXJjaC1mb3J3
YXJkICJ8IiAoLSBjZWxsLWJlZyBhZGopIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBPdGhlcndpc2UsIHN0YXJ0
IGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHBy
aW9yIGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoLSAodHJlZXNpdC1ub2RlLWVuZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnRoICgxLSB0YWJsZS1jb2x1bW4pIGNvbHMp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqKSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBBZGp1c3QgZW5kIHRvIHRyaW0gdGhlIHRyYWlsaW5nIHBpcGUg
c3ltYm9sCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGNvbnNpZGVyZWQgYnkgdGhlIGdy
YW1tYXIgdG8gYmUgcGFydCBvZiBpdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgcHJl
Y2VkaW5nIGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmQgKGNvbmQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgdGhpcyBpcyB0aGUgc29sZSBjb2x1bW4s
IGRlbGV0ZSB1bnRpbCBlb2wuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXEg
bmNvbHMgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKC0g
Y2VsbC1iZWcgYWRqKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3MtZW9s
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgdGhpcyBpcyB0aGUgZmlu
YWwgY29sdW1uLCBkZWxldGUgdW50aWwgZW9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoKGVxIHRhYmxlLWNvbHVtbiAoMS0gbmNvbHMpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAoLSBjZWxsLWVuZCBhZGopKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHBvcy1lb2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA7OyBPdGhlcndpc2UsIGxvb2sgZm9yd2FyZCBmcm9tIGNlbGwtZW5kCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDs7ICh3aGljaCBpbmNsdWRlcyB0aGUgY2VsbCdzIHRyYWls
aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHdoaXRlc3BhY2UpIGZvciBh
IHBpcGUgc3ltYm9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAoLSBjZWxsLWVuZCBhZGopKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChyZS1zZWFyY2gtZm9yd2FyZCAi
fCs/IiAocG9zLWVvbCkgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
MS0gKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC1lbmQp
KSkpKQorICAgICAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAg
ICAgICAgKHNldHEgYWRqICgrIGFkaiAoLSBlbmQgYmVnKSkpKSkpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLXRhYmxlLW1vdmUtY29sdW1uLWxlZnQgKCkKKyAgIk1vdmUgdGhlIHRhYmxlIGNv
bHVtbiBhdCBwb2ludCB0byBpdHMgbGVmdC4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVh
ZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisg
IChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtY29sdW1uICdsZWZ0KSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtY29sdW1uLXJpZ2h0ICgpCisgICJNb3Zl
IHRoZSB0YWJsZSBjb2x1bW4gYXQgcG9pbnQgdG8gaXRzIHJpZ2h0LgorUG9pbnQgY2FuIGJlIGlu
IHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUtbW92ZS1j
b2x1bW4gJ3JpZ2h0KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtY29sdW1uICgm
b3B0aW9uYWwgbGVmdCkKKyAgIk1vdmUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCByaWdodCBv
ciBsZWZ0LgorSWYgTEVGVCBpcyBub24tbmlsIGFuZCBpcyBub3QgYHJpZ2h0Jywgb3Igd2l0aCBh
IHByZWZpeCBhcmd1bWVudCwKK21vdmUgdGhlIGNvbHVtbiB0byBpdHMgbGVmdC4KK0RvIG5vdGhp
bmcgaWYgYSByb3cgYmVpbmcgbW92ZWQgaXMgbm90IHdpdGhpbiB0aGUgY29sdW1ucyBvZiB0aGUg
aGVhZGVyLgorRG8gbm90aGluZyBpZiBtb3ZpbmcgbGVmdCBhbmQgdGhlIGN1cnJlbnQgY29sdW1u
IGlzIHRoZSBmaXJzdCBjb2x1bW4gb2YKK3RoZSBjdXJyZW50IHJvdy4KK0RvIG5vdGhpbmcgaWYg
bW92aW5nIHJpZ2h0IGFuZCB0aGUgY3VycmVudCBjb2x1bW4gaXMgdGhlIGZpbmFsIGNvbHVtbiBv
ZgordGhlIGN1cnJlbnQgcm93LgorUG9pbnQgY2FuIGJlIGluIHRoZSB0YWJsZSBoZWFkZXIgb3Ig
Ym9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVy
YWN0aXZlKQorICAobWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRh
YmxlLW1vdmUtY29sdW1uKQorICAoc2V0cSBsZWZ0IChjb25kICgoZXEgbGVmdCAncmlnaHQpIG5p
bCkKKyAgICAgICAgICAgICAgICAgICAobGVmdCBsZWZ0KQorICAgICAgICAgICAgICAgICAgIChj
dXJyZW50LXByZWZpeC1hcmcgdCkpKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3du
LXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQtdGFibGUp
KQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChu
b2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAgICAgICAg
ICAoY2VsbCAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtY2VsbCBub2RlKSkKKyAgICAgICAgICAg
ICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IG5vZGUpKQorICAgICAgICAgICAg
ICAoaGVhZGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBl
X3RhYmxlX2hlYWRlclxcJyIpKQorICAgICAgICAgICAgICAobmhlYWRlcnMgKGxlbmd0aCAodHJl
ZXNpdC1ub2RlLWNoaWxkcmVuIGhlYWRlci1yb3cgJ25hbWVkKSkpCisgICAgICAgICAgICAgIChj
b2xzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChu
Y29scyAobGVuZ3RoIGNvbHMpKSkKKyAgICAobGV0ICgodGFibGUtY29sdW1uIChtYXJrZG93bi10
cy0tdGFibGUtY29tcHV0ZS1ub2RlLWNvbHVtbiByb3cgY2VsbCkpKQorICAgICAgKHVubGVzcyB0
YWJsZS1jb2x1bW4KKyAgICAgICAgKGVycm9yICJDb3VsZCBub3QgY29tcHV0ZSB0aGUgdGFibGUg
Y29sdW1uIikpCisgICAgICAoaWYgKD49IHRhYmxlLWNvbHVtbiBuaGVhZGVycykKKyAgICAgICAg
ICAobWVzc2FnZSAiUmFnZ2VkL3VuZXZlbiBjb2x1bW4gY2Fubm90IGJlIG1vdmVkIikKKyAgICAg
ICAgOzsgQSBCIEMgRCAtPiBCIEEgQyBECisgICAgICAgIDs7IE1vdmUgQSBsZWZ0OiBkbyBub3Ro
aW5nCisgICAgICAgIDs7IE1vdmUgRCByaWdodDogZG8gbm90aGluZworICAgICAgICA7OyBNb3Zl
IGN1cnJlbnQgY29sdW1uIGxlZnQ6CisgICAgICAgIDs7ICAgc291cmNlIGNvbHVtbiA9IHQgLSAx
CisgICAgICAgIDs7IE1vdmUgY3VycmVudCBjb2x1bW4gcmlnaHQ6CisgICAgICAgIDs7ICAgY2xv
bmUgdCB0byB0KzEgaWYgdGhlIGZpbmFsIGNvbHVtbiwgb3RoZXJ3aXNlIHQrMgorICAgICAgICA7
OyAgIGRlbGV0ZSB0CisgICAgICAgIChjb25kICgoYW5kIGxlZnQgKGVxIHRhYmxlLWNvbHVtbiAw
KSkKKyAgICAgICAgICAgICAgIChtZXNzYWdlICJMZWZ0bW9zdCBjb2x1bW4gY2Fubm90IGJlIG1v
dmVkIGxlZnQiKQorICAgICAgICAgICAgICAgbmlsKQorICAgICAgICAgICAgICAoKGFuZCAobm90
IGxlZnQpIChlcSB0YWJsZS1jb2x1bW4gKDEtIG5jb2xzKSkpCisgICAgICAgICAgICAgICAobWVz
c2FnZSAiUmlnaHRtb3N0IGNvbHVtbiBjYW5ub3QgYmUgbW92ZWQgcmlnaHQiKQorICAgICAgICAg
ICAgICAgbmlsKQorICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgKGxldCAoKHNvdXJj
ZS1jb2x1bW4gKGlmIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoMS0gdGFibGUtY29sdW1uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0YWJsZS1jb2x1bW4pKQorICAgICAgICAgICAgICAgICAgICAgKHRhcmdldC1jb2x1bW4gKGlm
IGxlZnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS1jb2x1
bW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDErIHRhYmxlLWNvbHVt
bikpKSkKKyAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAg
ICAgKG1hcmtkb3duLXRzLXRhYmxlLS1nb3RvLWNvbHVtbiBzb3VyY2UtY29sdW1uKQorICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uCisgICAgICAgICAg
ICAgICAgICAgICdyaWdodCAobGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdl
dC1jb2x1bW4pKSkKKyAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLXRhYmxlLS1nb3RvLWNv
bHVtbiBzb3VyY2UtY29sdW1uKQorICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUt
ZGVsZXRlLWNvbHVtbikKKyAgICAgICAgICAgICAgICAgOzsgRW1wdHkgY2VsbHMgY2FuIGNvbmZ1
c2UgdGhlIGdyYW1tYXIsIHNvIG5vLWVycm9yIGhlcmUuCisgICAgICAgICAgICAgICAgIChpZiBs
ZWZ0CisgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1u
CisgICAgICAgICAgICAgICAgICAgICAgc291cmNlLWNvbHVtbiAnbm8tZXJyb3IpCisgICAgICAg
ICAgICAgICAgICAgKG1hcmtkb3duLXRzLXRhYmxlLS1nb3RvLWNvbHVtbgorICAgICAgICAgICAg
ICAgICAgICB0YXJnZXQtY29sdW1uICduby1lcnJvcikpKSkpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtdGFibGUtYWxpZ24tY29sdW1uLWxlZnQgKCkKKyAgIkFsaWduIHRoZSB0YWJsZSBjb2x1
bW4gYXQgcG9pbnQgdG8gdGhlIGxlZnQuCitEbyB0aGUgd29yayB3aXRoIGBtYXJrZG93bi10cy10
YWJsZS1hbGlnbi1jb2x1bW4nLCB3aGljaCBzZWUgZm9yIG1vcmUKK2RldGFpbHMuIgorICAoaW50
ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4gJ2xlZnQpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uLWNlbnRlciAoKQorICAiQWxpZ24g
dGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byB0aGUgY2VudGVyLgorRG8gdGhlIHdvcmsgd2l0
aCBgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uJywgd2hpY2ggc2VlIGZvciBtb3JlCitk
ZXRhaWxzLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29s
dW1uICdjZW50ZXIpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uLXJp
Z2h0ICgpCisgICJBbGlnbiB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIHRoZSByaWdodC4K
K0RvIHRoZSB3b3JrIHdpdGggYG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVtbicsIHdoaWNo
IHNlZSBmb3IgbW9yZQorZGV0YWlscy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRz
LXRhYmxlLWFsaWduLWNvbHVtbiAncmlnaHQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUt
YWxpZ24tY29sdW1uICgmb3B0aW9uYWwgYWxpZ24pCisgICJBbHRlciB0aGUgdGFibGUgY29sdW1u
IGFsaWdubWVudCBhdCBwb2ludC4KK0FsdGVyIHRoZSBjb2x1bW4gcG9pbnQgaXMgaW4uCisKK05v
dGU6IFRvIGNvbXB1dGUgdGhlIGNvbHVtbiwgcG9pbnQgbXVzdCBiZSB3aXRoaW4gdGhlIGNvbHVt
biBhbmQgY2Fubm90CitiZSBvbiB0aGUgbGVhZGluZyBvciB0cmFpbGluZyB3aGl0ZXNwYWNlIG9y
IG9uIGEgY29sdW1uIGRlbGltaXRlci4KKworQUxJR04gY2FuIGJlIG9uZSBvZiB0aGUgc3ltYm9s
cyBgbGVmdCcsIGBjZW50ZXInLCBgcmlnaHQnIG9yIG5pbCBmb3IKK3Vuc3BlY2lmaWVkIG9yIHRo
ZSBjaGFyYWN0ZXJzIGwsIGMsIG9yIHIuCisKK0lmIEFMSUdOIGlzIG5pbCwgYXNzdW1lIHVuc3Bl
Y2lmaWVkLiAgTWFrZSB0aGUgYWxpZ25tZW50IHN0cmluZyBhCittaW5pbXVtIG9mIDUgY2hhcmFj
dGVycyB0byBhY2NvbW1vZGF0ZSBNYXJrZG93biBjb252ZW50aW9ucy4KKworSWYgcG9pbnQgaXMg
bm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUgImNBbGlnbiBjb2x1
bW4gW2xdZWZ0IFtjXWVudGVyIFtyXWlnaHQgW3VdbnNwZWNpZmllZDoiKQorICAobWFya2Rvd24t
dHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVtbikKKyAg
KHNldHEgYWxpZ24gKGlmIChjaGFyYWN0ZXJwIGFsaWduKQorICAgICAgICAgICAgICAgICAgKHBj
YXNlIGFsaWduICg/bCAnbGVmdCkgKD9jICdjZW50ZXIpICg/ciAncmlnaHQpKQorICAgICAgICAg
ICAgICAgIGFsaWduKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10
YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAg
ICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAobm9kZSAodHJl
ZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24gJ25hbWVkKSkKKyAgICAgICAgICAgICAgKGNlbGwg
KG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLWNlbGwgbm9kZSkpCisgICAgICAgICAgICAgIChyb3cg
KG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyBjZWxsKSkKKyAgICAgICAgICAgICAgKGFsaWdu
ZXJzIChtYXJrZG93bi10cy0tdGFibGUtYWxpZ25lcnMgdGFibGUpKSkKKyAgICAobGV0ICgodGFi
bGUtY29sdW1uIChtYXJrZG93bi10cy0tdGFibGUtY29tcHV0ZS1ub2RlLWNvbHVtbiByb3cgY2Vs
bCkpKQorICAgICAgKHVubGVzcyB0YWJsZS1jb2x1bW4KKyAgICAgICAgKGVycm9yICJDb3VsZCBu
b3QgY29tcHV0ZSB0aGUgdGFibGUgY29sdW1uIikpCisgICAgICA7OyBOT1RFOiBHRk0gdGFibGVz
IGFsbG93IG5vbi11bmlmb3JtIHRhYmxlIHJvd3MuICBUaGUgY3VycmVudCByb3cKKyAgICAgIDs7
IGNvdWxkIGhhdmUgYSBkaWZmZXJpbmcgbnVtYmVyIG9mIGNvbHVtbnMgZnJvbSB0aGUgaGVhZGVy
LiAgV2UKKyAgICAgIDs7IHNpbGVudGx5IGRvIG5vdGhpbmcgaWYgd2UgY2FuJ3QgZmluZCBhIG1h
dGNoaW5nIGhlYWRlciBjb2x1bW4uCisgICAgICAod2hlbi1sZXQqICgoYWxpZ25lciAobnRoIHRh
YmxlLWNvbHVtbiBhbGlnbmVycykpCisgICAgICAgICAgICAgICAgICAoYmVnIChwbGlzdC1nZXQg
YWxpZ25lciA6YmVnKSkKKyAgICAgICAgICAgICAgICAgIChlbmQgKHBsaXN0LWdldCBhbGlnbmVy
IDplbmQpKQorICAgICAgICAgICAgICAgICAgKHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w
ZXJ0aWVzIGJlZyBlbmQpKQorICAgICAgICAgICAgICAgICAgKHN0cmxlbiAobWF4IDUgKGxlbmd0
aCBzdHIpKSkpCisgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAgICAgIChzYXZl
LWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgIChpbnNlcnQg
KG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIgc3RybGVuIGFsaWduKSkpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUgKCZvcHRpb25hbCBhbGlnbi1jZWxs
cykKKyAgIkFsaWduIHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludC4KK0FkanVzdCBlYWNoIGNv
bHVtbidzIHdpZHRoIHRvIGFjY29tbW9kYXRlIGl0cyB3aWRlc3QgY29uc3RpdHVlbnQgY2VsbC4K
K0lmIEFMSUdOLUNFTExTIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVmaXggYXJndW1lbnQsIGFw
cGx5IHRoZQorZGVsaW1pdGVyIHJvdydzIGFsaWdubWVudCB0byBjZWxsIGNvbnRlbnQuICBBTElH
Ti1DRUxMUyBpcyBub24tbmlsIGlmCit0aGUgdXNlciBvcHRpb24gYG1hcmtkb3duLXRzLXRhYmxl
LWFsaWduLWZlYXR1cmVzJyBpbmNsdWRlcworYGp1c3RpZnktY2VsbHMnLgorQW5jaG9yIHRoZSBj
b2x1bW5zIHRvIHRoZSBkZWxpbWl0ZXIgcm93LiAgSWdub3JlIHJvd3MgdGhhdCBjb250YWluCitj
b2x1bW5zIGJleW9uZCB0aGUgZGVsaW1pdGVyIHJvdy4KK0lmIG5vdCBpbiBhIHRhYmxlLCBkbyBu
b3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5v
dC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSkKKyAgKHdoZW4tbGV0KiAoKGF0
LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHRh
YmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAoYmVnICh0cmVlc2l0LW5vZGUtc3Rh
cnQgdGFibGUpKQorICAgICAgICAgICAgICAoZW5kICh0cmVlc2l0LW5vZGUtZW5kIHRhYmxlKSkK
KyAgICAgICAgICAgICAgKF8gKG1hcmtkb3duLXRzLS10YWJsZS10aWNrLXN0YWxlLXAgYmVnKSkK
KyAgICAgICAgICAgICAgKHJvd3MgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiB0YWJsZSAnbmFtZWQp
KQorICAgICAgICAgICAgICAobnJvd3MgKGxlbmd0aCByb3dzKSkKKyAgICAgICAgICAgICAgKGRl
bGltaXRlci1yb3cgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlX2RlbGlt
aXRlcl9yb3dcXCciKSkKKyAgICAgICAgICAgICAgKGFsaWduZXJzIChtYXJrZG93bi10cy0tdGFi
bGUtYWxpZ25lcnMgdGFibGUpKQorICAgICAgICAgICAgICAoY29scyAodHJlZXNpdC1ub2RlLWNo
aWxkcmVuIGRlbGltaXRlci1yb3cgJ25hbWVkKSkKKyAgICAgICAgICAgICAgKG5jb2xzIChsZW5n
dGggY29scykpCisgICAgICAgICAgICAgIChjb2wtd2lkdGhzIChtYWtlLWhhc2gtdGFibGUgOnNp
emUgbmNvbHMgOnRlc3QgJ2VxdWFsKSkKKyAgICAgICAgICAgICAgKGNlbGwtdGV4dCAobWFrZS1o
YXNoLXRhYmxlIDpzaXplICgqIG5yb3dzIG5jb2xzKSA6dGVzdCAnZXF1YWwpKSkKKyAgICAoc2V0
cSBhbGlnbi1jZWxscyAob3IgYWxpZ24tY2VsbHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3VycmVudC1wcmVmaXgtYXJnCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1xICdqdXN0
aWZ5LWNlbGxzIG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWZlYXR1cmVzKSkpCisgICAgKHdpdGhv
dXQtcmVzdHJpY3Rpb24KKyAgICAgIDs7IENvbGxlY3QgY2VsbCB0ZXh0IGFuZCBjb21wdXRlIG1h
eCBjb2x1bW4gd2lkdGhzLgorICAgICAgOzsgRG8gbm90IHVzZSB0aGUgZGVsaW1pdGVyIHJvdyBm
b3Igd2lkdGggY29tcHV0YXRpb24uCisgICAgICAoZG90aW1lcyAoeCBucm93cykKKyAgICAgICAg
KGxldCogKChyb3cgKG50aCB4IHJvd3MpKQorICAgICAgICAgICAgICAgKGNlbGxzICh0cmVlc2l0
LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpKQorICAgICAgICAgIChkb3RpbWVzICh5IG5jb2xz
KQorICAgICAgICAgICAgOzsgU2tpcCBuaWwgY2VsbHMtLXRoZSBwYXJzZXIgZ290IGNvbmZ1c2Vk
LgorICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNlbGwgKG50aCB5IGNlbGxzKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICh0ZXh0IChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBjZWxsICduby1wcm9wZXJ0eSkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgKHcgKGxlbmd0aCB0ZXh0KSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICh3MCAob3IgKGdldGhhc2ggeSBjb2wtd2lkdGhzKSAwKSkpCisgICAgICAgICAg
ICAgIDs7IEVsaWRlIGRlbGltaXRlciB3aWR0aHMuCisgICAgICAgICAgICAgICh1bmxlc3MgKGVx
IHggMSkKKyAgICAgICAgICAgICAgICAod2hlbiAoPiB3IHcwKQorICAgICAgICAgICAgICAgICAg
KHB1dGhhc2ggeSB3IGNvbC13aWR0aHMpKSkKKyAgICAgICAgICAgICAgKHB1dGhhc2ggKGNvbnMg
eCB5KSB0ZXh0IGNlbGwtdGV4dCkpKSkpCisKKyAgICAgIChsZXQgKChzb3VyY2UtYnVmZmVyIChj
dXJyZW50LWJ1ZmZlcikpKQorICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgICAgIChk
b3RpbWVzICh4IG5yb3dzKQorICAgICAgICAgICAgKGRvdGltZXMgKHkgbmNvbHMpCisgICAgICAg
ICAgICAgIChsZXQqICgod2lkdGggKG9yIChnZXRoYXNoIHkgY29sLXdpZHRocykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtZGVmYXVsdC1jb2x1bW4t
d2lkdGgpKQorICAgICAgICAgICAgICAgICAgICAgKGFsaWduIChvciAocGxpc3QtZ2V0IChudGgg
eSBhbGlnbmVycykgOmFsaWduKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndW5z
cGVjaWZpZWQpKQorICAgICAgICAgICAgICAgICAgICAgOzsgQ29uZnVzZWQgY2VsbHMgaGF2ZSBu
aWwgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICh0ZXh0IChvciAoZ2V0aGFzaCAoY29ucyB4
IHkpIGNlbGwtdGV4dCkgIiIpKQorICAgICAgICAgICAgICAgICAgICAgKHRleHQwIChtYXJrZG93
bi10cy0tdGFibGUtYWxpZ24tY2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0
IHdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBhbGlnbi1jZWxscworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAndW5zcGVjaWZpZWQpKSkpCisgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAg
ICAgICAgICAgICAgOzsgSGVhZGVyIHJvdy4KKyAgICAgICAgICAgICAgICAgKChlcSB4IDApCisg
ICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IiB0ZXh0MCkpCisgICAgICAgICAgICAgICAgIDs7
IERlbGltaXRlciByb3cuICBVc2UgdW5hbGlnbmVkIHRleHQuCisgICAgICAgICAgICAgICAgICgo
ZXEgeCAxKQorICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIgd2lkdGggYWxpZ24pKSkK
KyAgICAgICAgICAgICAgICAgOzsgQm9keSByb3cuCisgICAgICAgICAgICAgICAgICh0CisgICAg
ICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IiB0ZXh0MCkpKSkpCisgICAgICAgICAgICAoaW5zZXJ0
ICJ8IiAiXG4iKSkKKyAgICAgICAgICAobGV0ICgodGVtcC1idWZmZXIgKGN1cnJlbnQtYnVmZmVy
KSkpCisgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBzb3VyY2UtYnVmZmVyCisgICAg
ICAgICAgICAgIChyZXBsYWNlLXJlZ2lvbi1jb250ZW50cyBiZWcgZW5kIHRlbXAtYnVmZmVyKSkp
KSkpCisgICAgKG1hcmtkb3duLXRzLS10YWJsZS10aWNrLXVwZGF0ZSBiZWcpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLXRhYmxlLXRyYW5zcG9zZS10YWJsZSAoKQorICAiVHJhbnNwb3NlIHRoZSBy
b3dzIGFuZCBjb2x1bW5zIG9mIHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludC4KK1VzZSB1bnNw
ZWNpZmllZCBjb2x1bW4gYWxpZ25tZW50IGluIHRoZSB0cmFuc3Bvc2VkIHRhYmxlLgorSWYgdGFi
bGUncyByb3dzIGFyZSBub3QgdW5pZm9ybSB3aXRoIHRob3NlIG9uIHRoZSBkZWxpbWl0ZXIgcm93
LCBzaWduYWwKK2FuIGVycm9yLgorSWYgbm90IGluIGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24t
dHMtdGFibGUtdHJhbnNwb3NlLXRhYmxlKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtk
b3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10
YWJsZSkpCisgICAgICAgICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCB0YWJsZSkpCisg
ICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9kZS1lbmQgdGFibGUpKQorICAgICAgICAgICAg
ICAocm93cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHRhYmxlICduYW1lZCkpCisgICAgICAgICAg
ICAgIChucm93cyAobGVuZ3RoIHJvd3MpKQorICAgICAgICAgICAgICAoZGVsaW1pdGVyLXJvdyAo
dHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIp
KQorICAgICAgICAgICAgICAoYWxpZ25lcnMgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0
YWJsZSkpCisgICAgICAgICAgICAgIChjb2xzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gZGVsaW1p
dGVyLXJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAobmNvbHMgKGxlbmd0aCBjb2xzKSkKKyAg
ICAgICAgICAgICAgKGNlbGwtdGV4dCAobWFrZS1oYXNoLXRhYmxlIDpzaXplICgqIG5yb3dzIG5j
b2xzKSA6dGVzdCAnZXF1YWwpKSkKKyAgICAod2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgOzsg
Q29sbGVjdCBjZWxsIHRleHQgYW5kIGludmVydCBjb29yZGluYXRlcy4KKyAgICAgIChkb3RpbWVz
ICh4IG5yb3dzKQorICAgICAgICAobGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAg
ICAgICAoY2VsbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkpCisgICAgICAg
ICAgKGRvdGltZXMgKHkgbmNvbHMpCisgICAgICAgICAgICA7OyBTa2lwIG5pbCBjZWxscy0tdGhl
IHBhcnNlciBnb3QgY29uZnVzZWQuCisgICAgICAgICAgICAod2hlbi1sZXQqICgoY2VsbCAobnRo
IHkgY2VsbHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKHN0cmluZy10cmltLXJp
Z2h0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGNl
bGwgJ25vLXByb3BlcnR5KSkpKQorICAgICAgICAgICAgICAocHV0aGFzaCAoY29ucyB5IHgpIHRl
eHQgY2VsbC10ZXh0KSkpKSkKKworICAgICAgKGxldCAoKHNvdXJjZS1idWZmZXIgKGN1cnJlbnQt
YnVmZmVyKSkpCisgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAgICAgKGRvdGltZXMg
KHggbmNvbHMpCisgICAgICAgICAgICA7OyBTeW50aGVzaXplIGEgZGVsaW1pdGVyIHJvdy4KKyAg
ICAgICAgICAgICh3aGVuIChlcSB4IDEpCisgICAgICAgICAgICAgIChkb3RpbWVzIChfeSAoMS0g
bnJvd3MpKQorICAgICAgICAgICAgICAgIChpbnNlcnQgInwiCisgICAgICAgICAgICAgICAgICAg
ICAgICAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lcgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYXggNSBtYXJrZG93bi10cy10YWJsZS1kZWZhdWx0LWNvbHVtbi13aWR0aCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAndW5zcGVjaWZpZWQpKSkKKyAgICAgICAgICAgICAgKGlu
c2VydCAifCIgIlxuIikpCisgICAgICAgICAgICAoZG90aW1lcyAoeSBucm93cykKKyAgICAgICAg
ICAgICAgOzsgU2tpcCB0aGUgb3JpZ2luYWwgZGVsaW1pdGVyIHJvdy4KKyAgICAgICAgICAgICAg
KHVubGVzcyAoZXEgeSAxKQorICAgICAgICAgICAgICAgIDs7IENvbmZ1c2VkIGNlbGxzIGhhdmUg
bmlsIHRleHQuCisgICAgICAgICAgICAgICAgKGxldCAoKHRleHQgKG9yIChnZXRoYXNoIChjb25z
IHggeSkgY2VsbC10ZXh0KSAiIikpKQorICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIgdGV4
dCkpKSkKKyAgICAgICAgICAgIChpbnNlcnQgInwiICJcbiIpKQorICAgICAgICAgIChsZXQgKCh0
ZW1wLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgICAgICh3aXRoLWN1cnJlbnQt
YnVmZmVyIHNvdXJjZS1idWZmZXIKKyAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRl
bnRzIGJlZyBlbmQgdGVtcC1idWZmZXIpKSkpKSkKKyAgICAod2hlbiAob3IgKGVxIG1hcmtkb3du
LXRzLXRhYmxlLWF1dG8tYWxpZ24gdCkKKyAgICAgICAgICAgICAgKG1lbXEgJ3RyYW5zcG9zZSBt
YXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduKSkKKyAgICAgIChtYXJrZG93bi10cy10YWJsZS1h
bGlnbi10YWJsZSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtY3N2LXJl
Z2lvbiAoIGJlZyBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWFkZXItbGluZSByZXBsYWNlKQorICAiQ29udmVydCB0aGUgY29tbWEtc2VwYXJhdGVk
IHJlZ2lvbiBCRUcgdG8gRU5EIHRvIGEgTWFya2Rvd24gdGFibGUuCitJZiBIRUFERVItTElORSBp
cyBub24tbmlsLCB1c2UgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHJlZ2lvbiBhcyB0aGUgdGFibGUK
K2NvbHVtbiBoZWFkZXIuICBJZiBuaWwsIGluZmVyIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQg
c3ludGhlc2l6ZQorY29sdW1uIG5hbWVzIGZyb20gdGhlIGZpcnN0IGxpbmUuCisKK05vdGU6IEJv
ZHkgY29sdW1ucyBiZXlvbmQgdGhlIHByb3ZpZGVkIG9yIGluZmVycmVkIG51bWJlciBvZiBjb2x1
bW5zIGFyZQorZHJvcHBlZC4KKworSWYgUkVQTEFDRSBpcyBub24tbmlsLCBvdmVyd3JpdGUgdGhl
IHJlZ2lvbiBCRUcgRU5EIHdpdGggdGhlIE1hcmtkb3duCit0YWJsZSwgb3RoZXJ3aXNlIGluc2Vy
dCB0aGUgdGFibGUgYWZ0ZXIgRU5ELgorCitXaXRoIGEgc2luZ2xlIHByZWZpeCBhcmd1bWVudCwg
SEVBREVSLUxJTkUgaXMgbm9uLW5pbC4KK1dpdGggYSBkb3VibGUgcHJlZml4IGFyZ3VtZW50LCBS
RVBMQUNFIGlzIG5vbi1uaWwuCitXaXRoIGEgdHJpcGxlIHByZWZpeCBhcmd1bWVudCwgYm90aCBh
cmUgbm9uLW5pbC4iCisgIChpbnRlcmFjdGl2ZSAiUiIpCisgIChtYXJrZG93bi10cy10YWJsZS1j
b252ZXJ0LXJlZ2lvbiBiZWcgZW5kIGhlYWRlci1saW5lIHJlcGxhY2UgJ2NzdikpCisKKyhkZWZ1
biBtYXJrZG93bi10cy10YWJsZS1jb252ZXJ0LXRzdi1yZWdpb24gKCBiZWcgZW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wdGlvbmFsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLWxpbmUgcmVwbGFj
ZSkKKyAgIkNvbnZlcnQgdGhlIHRhYi1zZXBhcmF0ZWQgcmVnaW9uIEJFRyB0byBFTkQgdG8gYSBN
YXJrZG93biB0YWJsZS4KK0lmIEhFQURFUi1MSU5FIGlzIG5vbi1uaWwsIHVzZSB0aGUgZmlyc3Qg
bGluZSBvZiB0aGUgcmVnaW9uIGFzIHRoZSB0YWJsZQorY29sdW1uIGhlYWRlci4gIElmIG5pbCwg
aW5mZXIgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuZCBzeW50aGVzaXplCitjb2x1bW4gbmFtZXMg
ZnJvbSB0aGUgZmlyc3QgbGluZS4KKworTm90ZTogQm9keSBjb2x1bW5zIGJleW9uZCB0aGUgcHJv
dmlkZWQgb3IgaW5mZXJyZWQgbnVtYmVyIG9mIGNvbHVtbnMgYXJlCitkcm9wcGVkLgorCitJZiBS
RVBMQUNFIGlzIG5vbi1uaWwsIG92ZXJ3cml0ZSB0aGUgcmVnaW9uIEJFRyBFTkQgd2l0aCB0aGUg
TWFya2Rvd24KK3RhYmxlLCBvdGhlcndpc2UgaW5zZXJ0IHRoZSB0YWJsZSBhZnRlciBFTkQuCisK
K1dpdGggYSBzaW5nbGUgcHJlZml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24tbmlsLgor
V2l0aCBhIGRvdWJsZSBwcmVmaXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4KK1dpdGgg
YSB0cmlwbGUgcHJlZml4IGFyZ3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGludGVyYWN0
aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtcmVnaW9uIGJlZyBlbmQgaGVh
ZGVyLWxpbmUgcmVwbGFjZSAndHN2KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNvbnZl
cnQtcmVnaW9uICggYmVnIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJm9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWFkZXItbGluZSByZXBsYWNlIGZvcm1hdCkKKyAgIkNvbnZlcnQgdGhlIGNvbW1hLXNlcGFy
YXRlZCByZWdpb24gQkVHIHRvIEVORCB0byBhIE1hcmtkb3duIHRhYmxlLgorSWYgSEVBREVSLUxJ
TkUgaXMgbm9uLW5pbCwgdXNlIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSByZWdpb24gYXMgdGhlIHRh
YmxlCitjb2x1bW4gaGVhZGVyLiAgSWYgbmlsLCBpbmZlciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMg
YW5kIHN5bnRoZXNpemUKK2NvbHVtbiBuYW1lcyBmcm9tIHRoZSBmaXJzdCBsaW5lLgorCitOb3Rl
OiBCb2R5IGNvbHVtbnMgYmV5b25kIHRoZSBwcm92aWRlZCBvciBpbmZlcnJlZCBudW1iZXIgb2Yg
Y29sdW1ucyBhcmUKK2Ryb3BwZWQuCisKK0lmIFJFUExBQ0UgaXMgbm9uLW5pbCwgb3ZlcndyaXRl
IHRoZSByZWdpb24gQkVHIEVORCB3aXRoIHRoZSBNYXJrZG93bgordGFibGUsIG90aGVyd2lzZSBp
bnNlcnQgdGhlIHRhYmxlIGFmdGVyIEVORC4KKworRk9STUFUIGlzIG9uZSBvZiB0aGUgc3ltYm9s
cyBgY3N2JyBmb3IgY29tbWEtc2VwYXJhdGVkIHZhbHVlcywgb3IgYHRzdicKK2ZvciB0YWItc2Vw
YXJhdGVkIHZhbHVlcy4gIElmIGFueSBvdGhlciB2YWx1ZSwgdXNlIGBjc3YnLgorCitXaXRoIGEg
c2luZ2xlIHByZWZpeCBhcmd1bWVudCwgSEVBREVSLUxJTkUgaXMgbm9uLW5pbC4KK1dpdGggYSBk
b3VibGUgcHJlZml4IGFyZ3VtZW50LCBSRVBMQUNFIGlzIG5vbi1uaWwuCitXaXRoIGEgdHJpcGxl
IHByZWZpeCBhcmd1bWVudCwgYm90aCBhcmUgbm9uLW5pbC4iCisgIChpbnRlcmFjdGl2ZSAiUiIp
CisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtY29u
dmVydC1yZWdpb24pCisKKyAgKGNvbmQgKChlcXVhbCBjdXJyZW50LXByZWZpeC1hcmcgJyg0KSkK
KyAgICAgICAgIChzZXRxIGhlYWRlci1saW5lIHQpKQorICAgICAgICAoKGVxdWFsIGN1cnJlbnQt
cHJlZml4LWFyZyAnKDE2KSkKKyAgICAgICAgIChzZXRxIHJlcGxhY2UgdCkpCisgICAgICAgICgo
ZXF1YWwgY3VycmVudC1wcmVmaXgtYXJnICcoNjQpKQorICAgICAgICAgKHNldHEgaGVhZGVyLWxp
bmUgdAorICAgICAgICAgICAgICAgcmVwbGFjZSB0KSkpCisgIChsZXQgKHJvd3MpCisgICAgKHNh
dmUtcmVzdHJpY3Rpb24KKyAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAo
Z290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgKHdoaWxlICg8IChwb2ludCkgKHBvaW50LW1h
eCkpCisgICAgICAgIChwY2FzZSBmb3JtYXQKKyAgICAgICAgICAoJ3RzdgorICAgICAgICAgICAg
IChwdXNoCisgICAgICAgICAgICAgIChzcGxpdC1zdHJpbmcKKyAgICAgICAgICAgICAgIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50KSAocG9zLWVvbCkpICJcdCIpCisgICAg
ICAgICAgICAgIHJvd3MpKQorICAgICAgICAgICAoXworICAgICAgICAgICAgKGxldCAocm93KQor
ICAgICAgICAgICAgICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAg
ICAgICAgIlwiXFwoPzpbXlwiXVxcfFwiXCJcXCkqXCJcXHxbXixdK1xcfFwiXCIiCisgICAgICAg
ICAgICAgICAgICAgICAgKHBvcy1lb2wpIHQpCisgICAgICAgICAgICAgICAgKHB1c2gKKyAgICAg
ICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAg
IlwiXCIiICJcIiIKKyAgICAgICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcK
KyAgICAgICAgICAgICAgICAgICAiXFxgXCJcXChcLipcXClcIlxcJyIKKyAgICAgICAgICAgICAg
ICAgICAiXFwxIgorICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmctbm8tcHJvcGVydGllcyAo
bWF0Y2gtc3RyaW5nIDApKSkpCisgICAgICAgICAgICAgICAgIHJvdykpCisgICAgICAgICAgICAg
IChwdXNoIChucmV2ZXJzZSByb3cpIHJvd3MpKSkpCisgICAgICAgIChmb3J3YXJkLWxpbmUgMSkp
CisgICAgICAgIChzZXRxIHJvd3MgKG5yZXZlcnNlIHJvd3MpKQorICAgICAgICAoY29uZCAocmVw
bGFjZSAoZGVsZXRlLXJlZ2lvbiBiZWcgZW5kKSkKKyAgICAgICAgICAgICAgKHQgKGdvdG8tY2hh
ciBlbmQpKSkKKyAgICAgICAgKGlmIGhlYWRlci1saW5lCisgICAgICAgICAgICAobWFya2Rvd24t
dHMtdGFibGUtaW5zZXJ0LXRhYmxlICgxLSAobGVuZ3RoIHJvd3MpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIChjYXIgcm93cykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgcm93cykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciByb3dzKSkKKyAgICAgICAg
ICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRhYmxlIChsZW5ndGggcm93cykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNhciByb3dzKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cykpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy10YWJsZS1leHBvcnQtdGFibGUtY3N2ICgmb3B0aW9uYWwgZGlzcGxheSkKKyAgIkV4cG9y
dCB0aGUgTWFya2Rvd24gdGFibGUgYXQgcG9pbnQgdG8gY29tbWEtc2VwYXJhdGVkIGluIGEgYnVm
ZmVyLgorSWYgRElTUExBWSBpcyBub24tbmlsLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBk
aXNwbGF5IHRoZSBleHBvcnQKK2J1ZmZlciBhZnRlciBleHBvcnRpbmcuCitJZiBwb2ludCBpcyBu
b3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgIChtYXJr
ZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUgZGlzcGxheSAnY3N2KSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZS10c3YgKCZvcHRpb25hbCBkaXNwbGF5KQorICAiRXhw
b3J0IHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludCB0byB0YWItc2VwYXJhdGVkIGluIGEgYnVm
ZmVyLgorSWYgRElTUExBWSBpcyBub24tbmlsLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBk
aXNwbGF5IHRoZSBleHBvcnQKK2J1ZmZlciBhZnRlciBleHBvcnRpbmcuCitJZiBwb2ludCBpcyBu
b3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgIChtYXJr
ZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUgZGlzcGxheSAndHN2KSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSAoJm9wdGlvbmFsIGRpc3BsYXkgZm9ybWF0KQorICAi
RXhwb3J0IHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludCB0byBDU1YgaW4gYSBidWZmZXIuCitJ
ZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVmaXggYXJndW1lbnQsIGRpc3BsYXkg
dGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9ydGluZy4KK0ZPUk1BVCBpcyBvbmUgb2YgdGhl
IHN5bWJvbHMgYGNzdicgZm9yIGNvbW1hLXNlcGFyYXRlZCB2YWx1ZXMgYWthIENTViwKK29yIGB0
c3YnIGZvciB0YWItc2VwYXJhdGVkIHZhbHVlcyBha2EgVFNWLiAgSWYgYW55IG90aGVyIHZhbHVl
LCB1c2UKK2Bjc3YnLiAgSWYgVFNWLCByZXBsYWNlIGFueSB0YWJzIHdpdGhpbiBhIGZpZWxkIHdp
dGggYSBzcGFjZS4KK0RvIG5vdCBleHBvcnQgdGhlIHRhYmxlJ3MgaGVhZGVyIGRlbGltaXRlciBy
b3cuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFj
dGl2ZSAiUCIpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMt
dGFibGUtZXhwb3J0LXRhYmxlKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRz
LWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkp
CisgICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFibGUgJ25hbWVk
KSkKKyAgICAgICAgICAgICAgKGhlYWRlciAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSB0YWJsZSAi
XFxgcGlwZV90YWJsZV9oZWFkZXJcXCciKSkKKyAgICAgICAgICAgICAgKGRlbGltaXRlci1yb3cg
KHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh
YmxlICJcXGBwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3dcXCciKSkKKyAgICAgICAgICAgICAgKGV4
cG9ydC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy10YWJsZS1leHBvcnQtYnVmZmVyKSkpCisgICAgKHdpdGgtY3VycmVu
dC1idWZmZXIgZXhwb3J0LWJ1ZmZlcgorICAgICAgKHNwZWNpYWwtbW9kZSkKKyAgICAgIChsZXQg
KChpbmhpYml0LXJlYWQtb25seSB0KSkKKyAgICAgICAgKHdpZGVuKQorICAgICAgICAoZXJhc2Ut
YnVmZmVyKQorICAgICAgICAoZG9saXN0IChyb3cgcm93cykKKyAgICAgICAgICAodW5sZXNzIChl
cXVhbCByb3cgZGVsaW1pdGVyLXJvdykKKyAgICAgICAgICAgIChsZXQqICgoZWx0cyAodHJlZXNp
dC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAgICAgIChsZW4gKGxl
bmd0aCBlbHRzKSkpCisgICAgICAgICAgICAgIChkb3RpbWVzICh4IGxlbikKKyAgICAgICAgICAg
ICAgICAobGV0ICgocyAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IChudGggeCBlbHRz
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ25vLXByb3BlcnR5KSkpKQorICAgICAgICAgICAgICAgICAgKHBjYXNlIGZvcm1hdAorICAg
ICAgICAgICAgICAgICAgICAoJ3RzdgorICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAocmVw
bGFjZS1yZWdleHAtaW4tc3RyaW5nICJcdCIgIlxzIiBzKSkKKyAgICAgICAgICAgICAgICAgICAg
ICh3aGVuICg8IHggKDEtIGxlbikpCisgICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIlx0
IikpKQorICAgICAgICAgICAgICAgICAgICAoXworICAgICAgICAgICAgICAgICAgICAgKGluc2Vy
dAorICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoICJbXCIsXSIgcykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXCIiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG1hcGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnaWRlbnRpdHkgKHNwbGl0LXN0cmluZyBzICJcIiIpICJcIlwiIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiXCIiKQorICAgICAgICAgICAgICAgICAgICAgICAgcykp
CisgICAgICAgICAgICAgICAgICAgICAod2hlbiAoPCB4ICgxLSBsZW4pKQorICAgICAgICAgICAg
ICAgICAgICAgICAoaW5zZXJ0ICIsIikpKSkpKQorICAgICAgICAgICAgICAoaW5zZXJ0ICJcbiIp
KSkpCisgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpKSkKKyAgICAod2hlbiBkaXNwbGF5
CisgICAgICAoZGlzcGxheS1idWZmZXIgZXhwb3J0LWJ1ZmZlcikpKSkKKworOzs7IEhlbHBlcnM6
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGluZS1pbnZpc2libGUtcCAocG9zKQorICAiUmV0
dXJuIG5vbi1uaWwgaWYgUE9TIGlzIGluc2lkZSBhbiBvdXRsaW5lLWZvbGRlZCByZWdpb24uIgor
ICAoY2wtc29tZSAobGFtYmRhIChvdikgKGVxIChvdmVybGF5LWdldCBvdiAnaW52aXNpYmxlKSAn
b3V0bGluZSkpCisgICAgICAgICAgIChvdmVybGF5cy1hdCBwb3MpKSkKIAogKGRlZnVuIG1hcmtk
b3duLXRzLS1yYW5nZS1zZXR0aW5ncyAoKQogICAiUmV0dXJuIHJhbmdlIHNldHRpbmdzIGZvciBg
bWFya2Rvd24tdHMtbW9kZScuIgotICAodHJlZXNpdC1yYW5nZS1ydWxlcwotICAgOmVtYmVkICdt
YXJrZG93bi1pbmxpbmUKLSAgIDpob3N0ICdtYXJrZG93bgotICAgOnJhbmdlLWZuICMndHJlZXNp
dC1yYW5nZS1mbi1leGNsdWRlLWNoaWxkcmVuCi0gICAnKChpbmxpbmUpIEBtYXJrZG93bi1pbmxp
bmUpCi0KLSAgIDplbWJlZCAjJ21hcmtkb3duLXRzLS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3Vh
Z2UKLSAgIDpob3N0ICdtYXJrZG93bgotICAgOmxvY2FsIHQKLSAgICcoKGZlbmNlZF9jb2RlX2Js
b2NrIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpIEBsYW5ndWFnZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBjb250ZW50KSkpKQorICAoYXBwbHkKKyAgICMn
dHJlZXNpdC1yYW5nZS1ydWxlcworICAgYCg6ZW1iZWQgbWFya2Rvd24taW5saW5lCisgICAgIDpo
b3N0IG1hcmtkb3duCisgICAgICgoaW5saW5lKSBAbWFya2Rvd24taW5saW5lKQorICAgICAsQCh3
aGVuIG1hcmtkb3duLXRzLWZvbnRpZnktY29kZS1ibG9ja3MtbmF0aXZlbHkKKyAgICAgICAgICco
OmVtYmVkIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlCisgICAgICAgICAgIDpo
b3N0IG1hcmtkb3duCisgICAgICAgICAgIDpsb2NhbCB0CisgICAgICAgICAgICgoZmVuY2VkX2Nv
ZGVfYmxvY2sgKGluZm9fc3RyaW5nIChsYW5ndWFnZSkgQGxhbmd1YWdlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBjb250ZW50KSkpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cyAoKQorICAiUmVtb3Zl
IGFsbCBpbmxpbmUgaW1hZ2Ugb3ZlcmxheXMgZnJvbSB0aGUgY3VycmVudCBidWZmZXIuIgorICAo
ZG9saXN0IChvdiAob3ZlcmxheXMtaW4gKHBvaW50LW1pbikgKHBvaW50LW1heCkpKQorICAgICh3
aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisgICAgICAoZGVsZXRlLW92
ZXJsYXkgb3YpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSAo
KQorICAiVXBkYXRlIGltYWdlIG92ZXJsYXlzIGFmdGVyIG91dGxpbmUgZm9sZC91bmZvbGQuCitS
ZW1vdmVzIGltYWdlIG92ZXJsYXlzIGluIGZvbGRlZCByZWdpb25zIGFuZCB0cmlnZ2VycworcmVm
b250aWZpY2F0aW9uIHNvIHRoYXQgaW1hZ2VzIGluIHVuZm9sZGVkIHJlZ2lvbnMgYXJlIHJlY3Jl
YXRlZC4iCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAobWFya2Rvd24t
dHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAgICAoZm9udC1sb2NrLWZsdXNoKSkpCiAKIChk
ZWZ1biBtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwICh2YWx1ZSkKICAgIlNldCBoaWRpbmcg
b2YgTWFya2Rvd24gbWFya3VwIGRlbGltaXRlcnMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgpAQCAt
MzQ4LDYgKzQ2MjMsOCBAQCBtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwCiAgIChpZiB2YWx1
ZQogICAgICAgKGFkZC10by1pbnZpc2liaWxpdHktc3BlYyAnbWFya2Rvd24tdHMtLW1hcmt1cCkK
ICAgICAocmVtb3ZlLWZyb20taW52aXNpYmlsaXR5LXNwZWMgJ21hcmtkb3duLXRzLS1tYXJrdXAp
KQorICAod2hlbiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAgKG1hcmtkb3duLXRzLS1y
ZW1vdmUtaW1hZ2Utb3ZlcmxheXMpKQogICAoZm9udC1sb2NrLWZsdXNoKSkKIAogKGRlZnVuIG1h
cmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1cCAoKQpAQCAtMzU2LDEyMiArNDYzMyw3MjYgQEAg
bWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwCiAgIChzZXRxIG1hcmtkb3duLXRzLWhpZGUt
bWFya3VwIChub3QgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApKQogICAobWFya2Rvd24tdHMtLXNl
dC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCiAKKyhkZWZ1biBtYXJrZG93
bi10cy0tc2V0LWlubGluZS1pbWFnZXMgKHZhbHVlKQorICAiU2V0IGRpc3BsYXkgb2YgaW5saW5l
IGltYWdlcyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitWQUxVRSBub24tbmlsIGRpc3BsYXlzIGlt
YWdlcywgbmlsIHJlbW92ZXMgdGhlbS4iCisgIChpZiB2YWx1ZQorICAgICAgKHRyZWVzaXQtZm9u
dC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyAnKGltYWdlLXByZXZpZXcpKQorICAgICh0cmVlc2l0
LWZvbnQtbG9jay1yZWNvbXB1dGUtZmVhdHVyZXMgbmlsICcoaW1hZ2UtcHJldmlldykpKQorICAo
bWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAgKGZvbnQtbG9jay1mbHVzaCkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcyAoKQorICAiVG9nZ2xl
IGRpc3BsYXkgb2YgaW5saW5lIGltYWdlcyBpbiB0aGUgY3VycmVudCBidWZmZXIuIgorICAoaW50
ZXJhY3RpdmUpCisgIChzZXRxIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMgKG5vdCBtYXJrZG93
bi10cy1pbmxpbmUtaW1hZ2VzKSkKKyAgKG1hcmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdlcyBt
YXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKQorICAobWVzc2FnZSAiSW5saW5lIGltYWdlcyAlcyIg
KGlmIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZW5hYmxlZCIgImRpc2FibGVkIikpKQorCis7OzsgRW1waGFzaXM6CisKKyhkZWZ2
YXIgbWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QKKyAgJygoP2IgLiAiKioiKQorICAgICg/QiAu
ICJfXyIpCisgICAgKD9pIC4gIioiKQorICAgICg/SSAuICJfIikKKyAgICAoP3MgLiAifn4iKQor
ICAgICg/YyAuICJgIikKKyAgICAoP2EgLiAiKioqIikpCisgICJBbGlzdCBvZiBlbXBoYXNpcyBt
YXJrZXJzIGZvciBgbWFya2Rvd24tdHMtZW1waGFzaXplJy4KK0VhY2ggZW50cnkgaXMgKEtFWSAu
IE1BUktFUikgd2hlcmUgS0VZIGlzIGEgY2hhcmFjdGVyIChub3QgYSBzdHJpbmcpIGFuZAorTUFS
S0VSIGlzIHRoZSBNYXJrZG93biBlbXBoYXNpemVkIHRleHQgcHJlZml4L3N1ZmZpeC4iKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0
aGUgZW1waGFzaXMgbm9kZSBhdCBwb2ludCwgb3IgbmlsLgorRmluZHMgdGhlIGlubmVybW9zdCBg
ZW1waGFzaXMnLCBgc3Ryb25nX2VtcGhhc2lzJywKK2BzdHJpa2V0aHJvdWdoJywgb3IgYGNvZGVf
c3Bhbicgbm9kZS4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50
KSAnbWFya2Rvd24taW5saW5lKSkpCisgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgIG5v
ZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAgIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4p
CisgICAgICAgICAgICAgICAgICAgICcoImVtcGhhc2lzIiAic3Ryb25nX2VtcGhhc2lzIgorICAg
ICAgICAgICAgICAgICAgICAgICJzdHJpa2V0aHJvdWdoIiAiY29kZV9zcGFuIikpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtcmVtb3ZlLWVtcGhhc2lzICgpCisgICJSZW1vdmUgZW1waGFzaXMg
YXJvdW5kIHBvaW50IG9yIHJlZ2lvbi4KK1dpdGggYW4gYWN0aXZlIHJlZ2lvbiwgc3RyaXAgdGhl
IG91dGVybW9zdCBlbXBoYXNpcyBtYXJrZXJzIGZyb20KK3RoZSBzZWxlY3RlZCB0ZXh0LiAgV2l0
aG91dCBhIHJlZ2lvbiwgZmluZCB0aGUgZW1waGFzaXMgbm9kZSBhdAorcG9pbnQgdXNpbmcgdHJl
ZS1zaXR0ZXIgYW5kIHJlbW92ZSBpdHMgbWFya2Vycy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlm
ICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0KiAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisg
ICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpCisgICAgICAgICAgICAgKHRleHQgKGJ1ZmZl
ci1zdWJzdHJpbmcgYmVnIGVuZCkpCisgICAgICAgICAgICAgKHN0cmlwcGVkIG5pbCkpCisgICAg
ICAgIChjbC1sb29wIGZvciAoX2tleSAuIG0pIGluIChzb3J0IChjb3B5LXNlcXVlbmNlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbXBoYXNp
cy1hbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJk
YSAoYSBiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+IChs
ZW5ndGggKGNkciBhKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobGVuZ3RoIChjZHIgYikpKSkpCisgICAgICAgICAgICAgICAgIGZvciByZSA9IChjb25j
YXQgIlxcYCIgKHJlZ2V4cC1xdW90ZSBtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJcXChcXCg/Oi5cXHxcblxcKSpcXCkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHJlZ2V4cC1xdW90ZSBtKSAiXFwnIikKKyAgICAgICAgICAgICAgICAgd2hlbiAoc3Ry
aW5nLW1hdGNoIHJlIHRleHQpCisgICAgICAgICAgICAgICAgIGRvIChzZXRxIHN0cmlwcGVkICht
YXRjaC1zdHJpbmcgMSB0ZXh0KSkKKyAgICAgICAgICAgICAgICAgYW5kIHJldHVybiBuaWwpCisg
ICAgICAgICh3aGVuIHN0cmlwcGVkCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkK
KyAgICAgICAgICAoaW5zZXJ0IHN0cmlwcGVkKSkpCisgICAgOzsgRmluZCB0aGUgb3V0ZXJtb3N0
IGVtcGhhc2lzIG5vZGUgYXQgcG9pbnQuCisgICAgKHdoZW4tbGV0KiAoKGlubmVyIChtYXJrZG93
bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCkpCisgICAgICAgICAgICAgICAgKG5vZGUgKGxl
dCAoKG4gaW5uZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHdoaWxlIChsZXQgKChwYXJl
bnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHdoZW4gKGFuZCBwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1lbWJlciAodHJlZXNpdC1ub2RlLXR5cGUgcGFyZW50KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoImVtcGhhc2lzIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdHJpa2V0aHJvdWdoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvZGVfc3BhbiIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgbiBwYXJlbnQpKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBuKSkKKyAgICAgICAgICAgICAgICAoc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBu
b2RlKSkKKyAgICAgICAgICAgICAgICAoZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAg
ICAgICAgICAgICAgICh0ZXh0ICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlIHQpKQorICAgICAgICAg
ICAgICAgICh0eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkKKyAgICAgICAgICAgICAgICAo
bWxlbiAocGNhc2UgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgKCJzdHJvbmdfZW1waGFz
aXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4LXAgIl8iIHRl
eHQpIDIgMikpCisgICAgICAgICAgICAgICAgICAgICAgICAoImVtcGhhc2lzIgorICAgICAgICAg
ICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLXByZWZpeC1wICJfIiB0ZXh0KSAxIDEpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgKCJzdHJpa2V0aHJvdWdoIiAyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgKCJjb2RlX3NwYW4iIDEpKSkKKyAgICAgICAgICAgICAgICAoaW5uZXItdGV4dCAo
c3Vic3RyaW5nIHRleHQgbWxlbiAoLSAobGVuZ3RoIHRleHQpIG1sZW4pKSkpCisgICAgICAobGV0
ICgob2Zmc2V0ICgtIChwb2ludCkgc3RhcnQgbWxlbikpKQorICAgICAgICAoZGVsZXRlLXJlZ2lv
biBzdGFydCBlbmQpCisgICAgICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgICAgIChpbnNlcnQg
aW5uZXItdGV4dCkKKyAgICAgICAgKGdvdG8tY2hhciAoKyBzdGFydCAobWF4IDAgb2Zmc2V0KSkp
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtZW1waGFzaXplICgmb3B0aW9uYWwgY2hhcikKKyAg
Ikluc2VydCBvciBjaGFuZ2UgZW1waGFzaXMgb24gdGV4dC4KK0lmIHRoZXJlIGlzIGFuIGFjdGl2
ZSByZWdpb24sIHdyYXAgaXQgd2l0aCBlbXBoYXNpcyBtYXJrZXJzLgorSWYgdGhlcmUgaXMgbm8g
cmVnaW9uLCBpbnNlcnQgbWFya2VyIHBhaXJzIGFuZCBwbGFjZSBwb2ludCBiZXR3ZWVuCit0aGVt
LiAgQ0hBUiBzZWxlY3RzIHRoZSBlbXBoYXNpcyB0eXBlOgorCisgIGIgICAqKmJvbGQqKiAgICAg
ICBCICBfX2JvbGRfXworICBpICAgKml0YWxpYyogICAgICAgSSAgX2l0YWxpY18KKyAgYSAgICoq
KmJvbGQraXRhbGljKioqCisgIHMgICB+fnN0cmlrZXRocm91Z2h+fgorICBjICAgYGNvZGVgCisg
IFNQQyByZW1vdmUgZW1waGFzaXMgYXQgcG9pbnQgb3IgcmVnaW9uIgorICAoaW50ZXJhY3RpdmUK
KyAgICJjRW1waGFzaXMgW2Jdb2xkIFtCXW9sZF8gW2lddGFsaWMgW0lddGFsaWNfIFthXWxsIFtz
XXRyaWtlIFtjXW9kZSBTUEMgcmVtb3ZlOiIpCisgIChpZiAoZXEgY2hhciA/XHMpCisgICAgICAo
bWFya2Rvd24tdHMtcmVtb3ZlLWVtcGhhc2lzKQorICAgIChpZi1sZXQqICgobWFya2VyIChjZHIg
KGFzc3EgY2hhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdCkpKSkKKyAgICAgICAgKGlmICh1
c2UtcmVnaW9uLXApCisgICAgICAgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkK
KyAgICAgICAgICAgICAgICAgIChlbmQgKGNvcHktbWFya2VyIChyZWdpb24tZW5kKSkpKQorICAg
ICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIGVu
ZCkKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikKKyAgICAgICAgICAgICAgICAoZ290
by1jaGFyIGJlZykKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikpKQorICAgICAgICAg
IChpZi1sZXQqICgoYm91bmRzIChib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQgJ3dvcmQpKSkKKyAg
ICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
Y2RyIGJvdW5kcykpCisgICAgICAgICAgICAgICAgKGluc2VydCBtYXJrZXIpCisgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciAoY2FyIGJvdW5kcykpCisgICAgICAgICAgICAgICAgKGluc2VydCBt
YXJrZXIpKQorICAgICAgICAgICAgKGluc2VydCBtYXJrZXIgbWFya2VyKQorICAgICAgICAgICAg
KGJhY2t3YXJkLWNoYXIgKGxlbmd0aCBtYXJrZXIpKSkpCisgICAgICAodXNlci1lcnJvciAiTm8g
c3VjaCBlbXBoYXNpcyBtYXJrZXI6ICVjIiBjaGFyKSkpKQorCis7OzsgQmxvY2sgc3RydWN0dXJl
OgorCisoZGVmdW4gbWFya2Rvd24tdHMtaW5zZXJ0LXN0cnVjdHVyZSAoJm9wdGlvbmFsIGNoYXIp
CisgICJJbnNlcnQgYSBibG9jayBzdHJ1Y3R1cmUuCitJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVn
aW9uLCB3cmFwIGl0LiAgT3RoZXJ3aXNlLCBpbnNlcnQgYW4gZW1wdHkKK2Jsb2NrIGFuZCBwbGFj
ZSBwb2ludCBpbnNpZGUuICBDSEFSIHNlbGVjdHMgdGhlIHN0cnVjdHVyZSB0eXBlOgorCisgIGAg
IGZlbmNlZCBjb2RlIGJsb2NrIChgYGApCisgIH4gIHRpbGRlIGZlbmNlZCBjb2RlIGJsb2NrICh+
fn4pCisgIHEgIGJsb2NrIHF1b3RlICg+ICkKKyAgZCAgaG9yaXpvbnRhbCBkaXZpZGVyL3J1bGUg
KC0tLSkKKyAgdCAgdGFibGUiCisgIChpbnRlcmFjdGl2ZQorICAgImNTdHJ1Y3R1cmUgW2BdYmFj
ay10aWNrIGNvZGUgYmxvY2sgW35ddGlsZGUgY29kZSBibG9jayBbcV11b3RlIFtkXWl2aWRlciBb
dF1hYmxlOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9gIChtYXJrZG93bi10cy0taW5zZXJ0LWNv
ZGUtYmxvY2sgP2ApKQorICAgICg/fiAobWFya2Rvd24tdHMtLWluc2VydC1jb2RlLWJsb2NrID9+
KSkKKyAgICAoP3EgKG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUpKQorICAgICg/ZCAo
bWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKSkKKyAgICAoP3QgKG1hcmtkb3duLXRzLXRhYmxl
LWluc2VydC10YWJsZSkpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1Y2ggc3RydWN0dXJlOiAl
YyIgY2hhcikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayAoY2hh
ciAmb3B0aW9uYWwgbGFuZ3VhZ2UpCisgICJJbnNlcnQgYSBmZW5jZWQgY29kZSBibG9jayB1c2lu
ZyBhIENIQVIgc2VxdWVuY2UuCitDSEFSIHNob3VsZCBiZSBvbmUgb2YgYSBiYWNrdGljayBvciBh
IHRpbGRlLgorTEFOR1VBR0UgaXMgYSB3aGl0ZXNwYWNlIGZyZWUgbGFuZ3VhZ2Ugc3RyaW5nLiIK
KyAgKHNldHEgbGFuZ3VhZ2UKKyAgICAgICAgKG9yIGxhbmd1YWdlCisgICAgICAgICAgICAocmVw
bGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgIltbOmJsYW5rOl1dIiAiIgorICAg
ICAgICAgICAgIChsZXQgKChjb21wbGV0aW9uLWlnbm9yZS1jYXNlIG5pbCkKKyAgICAgICAgICAg
ICAgICAgICAoY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAoc2VxLW1hcAorICAgICAg
ICAgICAgICAgICAgICAgIydzeW1ib2wtbmFtZQorICAgICAgICAgICAgICAgICAgICAgKHNlcS11
bmlxCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCAobWFwY2FyICMnY2FyIG1hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10cy1jb2Rl
LWJsb2NrLW1vZGVzKSkpKSkpCisgICAgICAgICAgICAgICAoY29tcGxldGluZy1yZWFkCisgICAg
ICAgICAgICAgICAgIkNvZGUgYmxvY2sgbGFuZ3VhZ2U6ICIKKyAgICAgICAgICAgICAgICBjYW5k
aWRhdGVzCisgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgJ2NvbmZpcm0gOyBQ
cm9tcHQgaWYgdGhlIGxhbmd1YWdlIGlzIG5vdCBvbiBvdXIgbGlzdC4KKyAgICAgICAgICAgICAg
ICBuaWwKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbGFuZ3VhZ2UtaGlzdG9yeSkpKSkp
CisgIChsZXQgKChmZW5jZS1zdHJpbmcgKG1ha2Utc3RyaW5nIDMgY2hhcikpKQorICAgIChpZiAo
dXNlLXJlZ2lvbi1wKQorICAgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAg
ICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpKQorICAgICAgICAgIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAgICAodW5sZXNzIChib2xw
KSAoaW5zZXJ0ICJcbiIpKQorICAgICAgICAgICAgKGluc2VydCBmZW5jZS1zdHJpbmcgIlxuIikK
KyAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgKGluc2VydCBmZW5jZS1z
dHJpbmcgbGFuZ3VhZ2UgIlxuIikpKQorICAgICAgKGluc2VydCBmZW5jZS1zdHJpbmcgbGFuZ3Vh
Z2UgIlxuXG4iIGZlbmNlLXN0cmluZykKKyAgICAgIChmb3J3YXJkLWxpbmUgLTEpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlICgpCisgICJJbnNlcnQgYSBibG9j
ayBxdW90ZS4iCisgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgKGxldCAoKGJlZyAocmVnaW9u
LWJlZ2lubmluZykpCisgICAgICAgICAgICAoZW5kIChjb3B5LW1hcmtlciAocmVnaW9uLWVuZCkp
KSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisg
ICAgICAgICAgKHdoaWxlICg8IChwb2ludCkgZW5kKQorICAgICAgICAgICAgKGluc2VydCAiPiAi
KQorICAgICAgICAgICAgKGZvcndhcmQtbGluZSAxKSkpKQorICAgIChpbnNlcnQgIj4gIikpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyICgpCisgICJJbnNlcnQgYSBob3Jp
em9udGFsIHJ1bGUuIgorICAodW5sZXNzIChib2xwKSAoaW5zZXJ0ICJcbiIpKQorICAoaW5zZXJ0
ICJcbi0tLVxuXG4iKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1hcHBseS1lbGxpcHNpcyAoKQor
ICAiQXBwbHkgYG1hcmtkb3duLXRzLWVsbGlwc2lzJyB0byB0aGUgY3VycmVudCBidWZmZXIncyBk
aXNwbGF5IHRhYmxlLiIKKyAgKGlmIChhbmQgKHN0cmluZ3AgbWFya2Rvd24tdHMtZWxsaXBzaXMp
CisgICAgICAgICAgIChub3QgKHN0cmluZy1lbXB0eS1wIG1hcmtkb3duLXRzLWVsbGlwc2lzKSkp
CisgICAgICAobGV0ICgodGFibGUgKG9yIGJ1ZmZlci1kaXNwbGF5LXRhYmxlCisgICAgICAgICAg
ICAgICAgICAgICAgIChtYWtlLWRpc3BsYXktdGFibGUpKSkpCisgICAgICAgIChzZXQtZGlzcGxh
eS10YWJsZS1zbG90CisgICAgICAgICB0YWJsZSA0CisgICAgICAgICAodmNvbmNhdCAobWFwY2Fy
IChsYW1iZGEgKGMpIChtYWtlLWdseXBoLWNvZGUgYyAnc2hhZG93KSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWFya2Rvd24tdHMtZWxsaXBzaXMpKSkKKyAgICAgICAgKHNldHEgYnVmZmVy
LWRpc3BsYXktdGFibGUgdGFibGUpKQorICAgICh3aGVuIGJ1ZmZlci1kaXNwbGF5LXRhYmxlCisg
ICAgICAoc2V0LWRpc3BsYXktdGFibGUtc2xvdCBidWZmZXItZGlzcGxheS10YWJsZSA0IG5pbCkp
KSkKKworOzs7IE1ham9yIG1vZGU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xl
ICgpCisgICJDeWNsZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWFkaW5nIGF0IHBvaW50LgorT24gYSBo
ZWFkaW5nLCBjYWxsIGBvdXRsaW5lLWN5Y2xlJy4gIE90aGVyd2lzZSBkbyBub3RoaW5nLiIKKyAg
KGludGVyYWN0aXZlKQorICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAgKG91dGxp
bmUtY3ljbGUpKSkKKworKGRlZnZhci1rZXltYXAgbWFya2Rvd24tdHMtbW9kZS1tYXAKKyAgOmRv
YyAiS2V5bWFwIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgorICAiTS08bGVmdD4iICAgICMnbWFy
a2Rvd24tdHMtcHJvbW90ZQorICAiTS08cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtZGVtb3RlCisg
ICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAKKyAgIk0tPGRvd24+
IiAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duCisgICJDLWMgQy1uIiAgICAgIydv
dXRsaW5lLW5leHQtaGVhZGluZworICAiQy1jIEMtcCIgICAgICMnb3V0bGluZS1wcmV2aW91cy1o
ZWFkaW5nCisgICJDLWMgQy11IiAgICAgIydvdXRsaW5lLXVwLWhlYWRpbmcKKyAgIkMtYyBDLWYi
ICAgICAjJ291dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICJDLWMgQy1iIiAgICAgIydvdXRs
aW5lLWJhY2t3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBDLXggQy1mIiAjJ21hcmtkb3duLXRzLWVt
cGhhc2l6ZQorICAiQy1jIEMteCBDLW0iICMnbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3Vw
CisgICJDLWMgQy14IEMtdiIgIydtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcworICAi
Qy1jIEMtYyIgICAgICMnbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94CisgICJDLWMgQy1yIiAg
ICAgIydtYXJrZG93bi10cy1yZW51bWJlci1saXN0CisgICJDLWMgQy0sIiAgICAgIydtYXJrZG93
bi10cy1pbnNlcnQtc3RydWN0dXJlCisgICJDLWMgQy12IG4iICAgIydtYXJrZG93bi10cy1tb3Zl
LXRvLW5leHQtY29kZS1ibG9jaworICAiQy1jIEMtdiBwIiAgICMnbWFya2Rvd24tdHMtbW92ZS10
by1wcmV2aW91cy1jb2RlLWJsb2NrCisgICJSRVQiICAgICAgICAgIydtYXJrZG93bi10cy1uZXds
aW5lCisgICJNLVJFVCIgICAgICAgIydtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVtCisgICJU
QUIiICAgICAgICAgIydtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlKQorCisoZGVmdmFyLWtleW1h
cCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1tYXAKKyAgOmRvYyAiS2V5
bWFwIGZvciBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUnLgorVGhlc2Ug
b3ZlcnJpZGUga2V5cyBpbiBgbWFya2Rvd24tdHMtbW9kZS1tYXAnIHRvIHN1cHBvcnQgZXhlY3V0
aW5nIHRoZWlyCitjb21tYW5kcyBpbiBhIGNvZGUtYmxvY2sgY29udGV4dC4iCisgIDpwYXJlbnQg
bWFya2Rvd24tdHMtbW9kZS1tYXAKKyAgOm1lbnUgbmlsCisgICJNLS4iICAgICAgICAgIydtYXJr
ZG93bi10cy0tY29kZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMKKyAgIlRBQiIgICAgICAg
ICAjJ2luZGVudC1mb3ItdGFiLWNvbW1hbmQKKyAgIlJFVCIgICAgICAgICAjJ21hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLW5ld2xpbmUKKyAgIkMtaiIgICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLW5ld2xpbmUKKyAgIk0tUkVUIiAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2Nr
LW5ld2xpbmUKKyAgIk0tcSIgICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWZpbGwt
cGFyYWdyYXBoKQorCisoZGVmdmFyLWtleW1hcCBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlLW1h
cAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJy4KK1RoZXNl
IG92ZXJyaWRlIGtleXMgaW4gYG1hcmtkb3duLXRzLW1vZGUtbWFwJyB0byBzdXBwb3J0IGV4ZWN1
dGluZyB0aGVpcgorY29tbWFuZHMgaW4gYSB0YWJsZSBjb250ZXh0LiIKKyAgOnBhcmVudCBtYXJr
ZG93bi10cy1tb2RlLW1hcAorICA6bWVudSBuaWwKKyAgIjxyZXR1cm4+IiAgICAjJ21hcmtkb3du
LXRzLXRhYmxlLW5leHQtcm93CisgICJTLTxyZXR1cm4+IiAgIydtYXJrZG93bi10cy10YWJsZS1w
cmV2aW91cy1yb3cKKyAgIjx0YWI+IiAgICAgICAjJ21hcmtkb3duLXRzLXRhYmxlLW5leHQtY2Vs
bAorICAiPGJhY2t0YWI+IiAgICMnbWFya2Rvd24tdHMtdGFibGUtcHJldmlvdXMtY2VsbAorICAi
TS08dXA+IiAgICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctdXAKKyAgIk0tPGRvd24+
IiAgICAjJ21hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24KKyAgIk0tPGxlZnQ+IiAgICAj
J21hcmtkb3duLXRzLXRhYmxlLW1vdmUtY29sdW1uLWxlZnQKKyAgIk0tPHJpZ2h0PiIgICAjJ21h
cmtkb3duLXRzLXRhYmxlLW1vdmUtY29sdW1uLXJpZ2h0CisgICJNLVMtPHVwPiIgICAgIydtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWFib3ZlCisgICJNLVMtPGRvd24+IiAgIydtYXJrZG93
bi10cy10YWJsZS1kZWxldGUtcm93CisgICJNLVMtPHJpZ2h0PiIgIydtYXJrZG93bi10cy10YWJs
ZS1pbnNlcnQtY29sdW1uLWxlZnQKKyAgIk0tUy08bGVmdD4iICAjJ21hcmtkb3duLXRzLXRhYmxl
LWRlbGV0ZS1jb2x1bW4KKyAgIkMtYyBDLXQgYSIgICAjJ21hcmtkb3duLXRzLXRhYmxlLWFsaWdu
LWNvbHVtbgorICAiQy1jIEMtYyIgICAgICMnbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUK
KyAgIkMtYyBDLXQgdCIgICAjJ21hcmtkb3duLXRzLXRhYmxlLXRyYW5zcG9zZS10YWJsZSkKKwor
KGVhc3ktbWVudS1kZWZpbmUgbWFya2Rvd24tdHMtbW9kZS1tZW51IG1hcmtkb3duLXRzLW1vZGUt
bWFwCisgICJgbWFya2Rvd24tdHMtbW9kZScgbWVudS4iCisgICcoIk1hcmtkb3duIiA6dmlzaWJs
ZSBtYXJrZG93bi10cy1tZW51LWJhci1zaG93CisgICAgIi0tIgorICAgIFsiQ3ljbGUgT3V0bGlu
ZSBWaXNpYmlsaXR5IiAgbWFya2Rvd24tdHMtb3V0bGluZS1jeWNsZSAgICAgICAgICAgICAgOmhl
bHAgIkN5Y2xlIGhlYWRpbmcgdmlzaWJpbGl0eSBmcm9tIHBvaW50Il0KKyAgICBbIlRvZ2dsZSBI
aWRlIE1hcmt1cCIgICAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1cCAgICAgICAg
IDpoZWxwICJUb2dnbGUgZGlzcGxheSBvZiBtYXJrdXAgY2hhcmFjdGVycyIgOnN0eWxlIHRvZ2ds
ZSA6c2VsZWN0ZWQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXBdCisgICAgWyJUb2dnbGUgSW5saW5l
IEltYWdlcyIgICAgICBtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcyAgICAgICA6aGVs
cCAiVG9nZ2xlIGRpc3BsYXkgb2YgaW5saW5lIGltYWdlcyBiZWxvdyBsaW5rcyIgOnN0eWxlIHRv
Z2dsZSA6c2VsZWN0ZWQgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlc10KKyAgICAiLS0iCisgICAg
WyJVcCIgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLXVwLWhlYWRpbmcgICAgICAgICAg
ICAgICAgICAgICA6aGVscCAiTW92ZSB0byB0aGUgcGFyZW50IGhlYWRpbmciXQorICAgIFsiTmV4
dCIgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZS1uZXh0LWhlYWRpbmcgICAgICAgICAgICAg
ICAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIG5leHQgaGVhZGluZyJdCisgICAgWyJQcmV2aW91cyIg
ICAgICAgICAgICAgICAgICBvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcgICAgICAgICAgICAgICA6
aGVscCAiTW92ZSB0byB0aGUgcHJldmlvdXMgaGVhZGluZyJdCisgICAgWyJOZXh0IFNhbWUgTGV2
ZWwiICAgICAgICAgICBvdXRsaW5lLWZvcndhcmQtc2FtZS1sZXZlbCAgICAgICAgICAgICA6aGVs
cCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICBbIlBy
ZXZpb3VzIFNhbWUgTGV2ZWwiICAgICAgIG91dGxpbmUtYmFja3dhcmQtc2FtZS1sZXZlbCAgICAg
ICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91cyBoZWFkaW5nIGF0IHRoZSBzYW1lIGxl
dmVsIl0KKyAgICAiLS0iCisgICAgWyJKdW1wIiAgICAgICAgICAgICAgICAgICAgICBpbWVudSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aGVscCAiSnVtcCB0byBhIGhlYWRpbmcg
dmlhIGNvbXBsZXRpb24iXQorICAgICItLSIKKyAgICBbIk1vdmUgU3VidHJlZSBVcCIgICAgICAg
ICAgIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11cCAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRo
ZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIHVwIl0KKyAgICBbIk1vdmUgU3VidHJlZSBE
b3duIiAgICAgICAgIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICAgICAgICAgIDpoZWxw
ICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIGRvd24iXQorICAgIFsiUHJv
bW90ZSIgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtcHJvbW90ZSAgICAgICAgICAgICAg
ICAgICAgOmhlbHAgIlByb21vdGUgaGVhZGluZyBvciBsaXN0IGl0ZW0iXQorICAgIFsiRGVtb3Rl
IiAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtZGVtb3RlICAgICAgICAgICAgICAgICAg
ICAgOmhlbHAgIkRlbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJdCisgICAgIi0tIgorICAgIFsi
RW1waGFzaXMuLi4iICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtZW1waGFzaXplICAgICAgICAg
ICAgICAgICAgOmhlbHAgIkFkZCBvciBjaGFuZ2UgZW1waGFzaXMgb24gcmVnaW9uIl0KKyAgICBb
IkFkZCBCbG9jayBTdHJ1Y3R1cmUiICAgICAgIG1hcmtkb3duLXRzLWluc2VydC1zdHJ1Y3R1cmUg
ICAgICAgICAgIDpoZWxwICJJbnNlcnQgYSBjb2RlIGJsb2NrLCBxdW90ZSwgb3Igb3RoZXIgc3Ry
dWN0dXJlIl0KKyAgICAiLS0iCisgICAgWyJUb2dnbGUgQ2hlY2tib3giICAgICAgICAgICBtYXJr
ZG93bi10cy10b2dnbGUtY2hlY2tib3ggICAgICAgICAgICA6aGVscCAiVG9nZ2xlIHRhc2sgbGlz
dCBjaGVja2JveCBhdCBwb2ludCJdCisgICAgWyJOZXcgTGlzdCBJdGVtIiAgICAgICAgICAgICBt
YXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVtICAgICAgICAgICA6aGVscCAiSW5zZXJ0IGEgbmV3
IGxpc3QgaXRlbSBhZnRlciB0aGUgY3VycmVudCBvbmUiXQorICAgIFsiUmVudW1iZXIgTGlzdCIg
ICAgICAgICAgICAgbWFya2Rvd24tdHMtcmVudW1iZXItbGlzdCAgICAgICAgICAgICAgOmhlbHAg
IlJlbnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9pbnQiXQorICAgICItLSIKKyAgICAoIlRh
YmxlIgorICAgICBbIkluc2VydCB0YWJsZSIgICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LXRhYmxlICAgICAgICAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSB0YWJsZSBhdCBwb2lu
dCJdCisgICAgIFsiRGVsZXRlIHRhYmxlIiAgICAgICAgICAgICBtYXJrZG93bi10cy10YWJsZS1k
ZWxldGUtdGFibGUgICAgICAgICA6aGVscCAiRGVsZXRlIHRoZSB0YWJsZSBhdCBwb2ludCJdCisg
ICAgICItLSIKKyAgICAgWyJOZXh0IGNlbGwiICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRh
YmxlLW5leHQtY2VsbCAgICAgICAgICAgIDpoZWxwICJNb3ZlIHBvaW50IHRvIHRoZSBuZXh0IGNl
bGwiXQorICAgICBbIlByZXZpb3VzIGNlbGwiICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUt
cHJldmlvdXMtY2VsbCAgICAgICAgOmhlbHAgIk1vdmUgcG9pbnQgdG8gdGhlIHByZXZpb3VzIGNl
bGwiXQorICAgICAiLS0iCisgICAgIFsiTmV4dCByb3ciICAgICAgICAgICAgICAgICBtYXJrZG93
bi10cy10YWJsZS1uZXh0LXJvdyAgICAgICAgICAgICA6aGVscCAiTW92ZSBwb2ludCB0byB0aGUg
bmV4dCByb3ciXQorICAgICBbIlByZXZpb3VzIHJvdyIgICAgICAgICAgICAgbWFya2Rvd24tdHMt
dGFibGUtcHJldmlvdXMtcm93ICAgICAgICAgOmhlbHAgIk1vdmUgcG9pbnQgdG8gdGhlIHByZXZp
b3VzIHJvdyJdCisgICAgIFsiSW5zZXJ0IHJvdyBiZWxvdyIgICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93LWJlbG93ICAgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5IHJvdyBiZWxv
dyBwb2ludCJdCisgICAgIFsiSW5zZXJ0IHJvdyBhYm92ZSIgICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93LWFib3ZlICAgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5IHJvdyBhYm92
ZSBwb2ludCJdCisgICAgIFsiQ2xvbmUgcm93IGJlbG93IiAgICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1jbG9uZS1yb3ctYmVsb3cgICAgICA6aGVscCAiQ2xvbmUgdGhlIGN1cnJlbnQgcm93IGJl
bG93IGl0Il0KKyAgICAgWyJDbG9uZSByb3cgYWJvdmUiICAgICAgICAgIG1hcmtkb3duLXRzLXRh
YmxlLWNsb25lLXJvdy1hYm92ZSAgICAgIDpoZWxwICJDbG9uZSB0aGUgY3VycmVudCByb3cgYWJv
dmUgaXQiXQorICAgICBbIk1vdmUgcm93IHVwIiAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFi
bGUtbW92ZS1yb3ctdXAgICAgICAgICAgOmhlbHAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1cCJd
CisgICAgIFsiTW92ZSByb3cgZG93biIgICAgICAgICAgICBtYXJrZG93bi10cy10YWJsZS1tb3Zl
LXJvdy1kb3duICAgICAgICA6aGVscCAiTW92ZSB0aGUgcm93IGF0IHBvaW50IGRvd24iXQorICAg
ICBbIkRlbGV0ZSByb3ciICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLXJv
dyAgICAgICAgICAgOmhlbHAgIkRlbGV0ZSB0aGUgcm93IGF0IHBvaW50Il0KKyAgICAgIi0tIgor
ICAgICBbIkluc2VydCBjb2x1bW4gbGVmdCIgICAgICAgbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0
LWNvbHVtbi1sZWZ0ICAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIGxlZnQg
b2YgcG9pbnQiXQorICAgICBbIkluc2VydCBjb2x1bW4gcmlnaHQiICAgICAgbWFya2Rvd24tdHMt
dGFibGUtaW5zZXJ0LWNvbHVtbi1yaWdodCAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4g
dG8gdGhlIHJpZ2h0IG9mIHBvaW50Il0KKyAgICAgWyJDbG9uZSBjb2x1bW4gbGVmdCIgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWNsb25lLWNvbHVtbi1sZWZ0ICAgIDpoZWxwICJJbnNlcnQgYW4g
ZW1wdHkgY29sdW1uIHRvIHRoZSBsZWZ0IG9mIHBvaW50Il0KKyAgICAgWyJDbG9uZSBjb2x1bW4g
cmlnaHQiICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWNsb25lLWNvbHVtbi1yaWdodCAgIDpoZWxw
ICJJbnNlcnQgYW4gZW1wdHkgY29sdW1uIHRvIHRoZSByaWdodCBvZiBwb2ludCJdCisgICAgIFsi
TW92ZSBjb2x1bW4gbGVmdCIgICAgICAgICBtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbi1s
ZWZ0ICAgICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBjb2x1bW4gdG8gaXRzIGxlZnQiXQorICAg
ICBbIk1vdmUgY29sdW1uIHJpZ2h0IiAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1
bW4tcmlnaHQgICAgOmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgY29sdW1uIHRvIGl0cyByaWdodCJd
CisgICAgIFsiQWxpZ24gY29sdW1uLi4uIiAgICAgICAgICBtYXJrZG93bi10cy10YWJsZS1hbGln
bi1jb2x1bW4gICAgICAgICA6aGVscCAiQWxpZ24gY29sdW1uIGF0IHBvaW50IHRvIHRoZSBsZWZ0
LCBjZW50ZXIsIG9yIHJpZ2h0Il0KKyAgICAgWyJEZWxldGUgY29sdW1uIiAgICAgICAgICAgIG1h
cmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1jb2x1bW4gICAgICAgIDpoZWxwICJEZWxldGUgdGhlIGNv
bHVtbiBhdCBwb2ludCJdCisgICAgICItLSIKKyAgICAgWyJBbGlnbiB0YWJsZSBjb2x1bW5zIiAg
ICAgIG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLXRhYmxlICAgICAgICAgIDpoZWxwICJBbGlnbiB0
aGUgdGFibGUgYXQgcG9pbnQgaW4gYW4gZWFzeS10by1lZGl0IGZvcm1hdCJdCisgICAgIFsiVHJh
bnNwb3NlIHRhYmxlIiAgICAgICAgICBtYXJrZG93bi10cy10YWJsZS10cmFuc3Bvc2UtdGFibGUg
ICAgICA6aGVscCAiVHJhbnNwb3NlIHRoZSB0YWJsZSBhdCBwb2ludCBzd2FwcGluZyBpdHMgcm93
cyBhbmQgY29sdW1ucyJdCisgICAgICItLSIKKyAgICAgWyJDb252ZXJ0IENTViB0byB0YWJsZSIg
ICAgIG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtY3N2LXJlZ2lvbiAgIDpoZWxwICJDb252ZXJ0
IGEgcmFuZ2Ugb2YgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyB0byBhIG5ldyB0YWJsZSBhdCBwb2lu
dCJdCisgICAgIFsiQ29udmVydCBUU1YgdG8gdGFibGUiICAgICBtYXJrZG93bi10cy10YWJsZS1j
b252ZXJ0LXRzdi1yZWdpb24gICA6aGVscCAiQ29udmVydCBhIHJhbmdlIG9mIHRhYi1zZXBhcmF0
ZWQgdmFsdWVzIHRvIGEgbmV3IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJFeHBvcnQgdGFibGUg
dG8gQ1NWIiAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZS1jc3YgICAgIDpoZWxw
ICJFeHBvcnQgdGhlIHRhYmxlIGF0IHBvaW50IHRvIGEgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBi
dWZmZXIiXQorICAgICBbIkV4cG9ydCB0YWJsZSB0byBUU1YiICAgICAgbWFya2Rvd24tdHMtdGFi
bGUtZXhwb3J0LXRhYmxlLXRzdiAgICAgOmhlbHAgIkV4cG9ydCB0aGUgdGFibGUgYXQgcG9pbnQg
dG8gYSB0YWItc2VwYXJhdGVkIHZhbHVlcyBidWZmZXIiXSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLXNldC11cCAoKQorICAiU2V0IHVwIHRoZSBidWZmZXIgZm9yIGBtYXJrZG93bi10cy1tb2Rl
Jy4KK0lmIGBtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZScgaXMgbm9uLW5pbCwgdXNlIGEgbGln
aHR3ZWlnaHQgc2V0IHVwIGZvcgorZW1iZWRkZWQgaW5saW5lIGBtYXJrZG93bi10cy1tb2RlJyBi
dWZmZXJzLgogCi07OzsgTWFqb3IgbW9kZQorTk9URTogQ2FsbCB0aGlzIGZ1bmN0aW9uIG9ubHkg
d2hlbiB0aGUgdHJlZXNpdCBgbWFya2Rvd24nIGFuZAorYG1hcmtkb3duLWlubGluZScgcGFyc2Vy
cyBhcmUgYXZhaWxhYmxlLiIKIAotKGRlZnVuIG1hcmtkb3duLXRzLXNldHVwICgpCi0gICJTZXR1
cCB0cmVlc2l0IGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgotICAobWFrZS1sb2NhbC12YXJpYWJs
ZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgIDs7IFNldCB0aGVzZSB1cCBmb3IgYm90aCBt
YXN0ZXIgYW5kIGlubGluZSBmb3IgY29kZS1ibG9jayBidWZmZXJzLgorICAoc2V0cS1sb2NhbCBj
b21tZW50LXN0YXJ0ICI8IS0tICIKKyAgICAgICAgICAgICAgY29tbWVudC1lbmQgIiAtLT4iCisg
ICAgICAgICAgICAgIGNvbW1lbnQtc3RhcnQtc2tpcCAiPCEtLVsgXHRdKiIKKyAgICAgICAgICAg
ICAgY29tbWVudC1lbmQtc2tpcCAiWyBcdF0qLS0+IgorICAgICAgICAgICAgICBjb21tZW50LXVz
ZS1zeW50YXggbmlsKQorCisgIChzZXRxLWxvY2FsIGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uCisg
ICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoCisgICAgICAgICAgICAg
IGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIydtYXJrZG93
bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCkKKworICA7OyBgYWRhcHRpdmUtZmlsbC1mdW5j
dGlvbicgdGFrZXMgcHJlY2VkZW5jZSBvdmVyCisgIDs7IGBhZGFwdGl2ZS1maWxsLXJlZ2V4cCc7
IHRoZSBkZWZhdWx0IHJlZ2V4cCBpcyBmaW5lIGFzIGEKKyAgOzsgZmFsbGJhY2sgZm9yIHBsYWlu
IChub24tbGlzdCkgcGFyYWdyYXBocy4KKyAgKHNldHEtbG9jYWwgYWRhcHRpdmUtZmlsbC1mdW5j
dGlvbiAjJ21hcmtkb3duLXRzLS1hZGFwdGl2ZS1maWxsKQorCisgIDs7IENyZWF0ZSBhbmQgY29u
ZmlndXJlIHRoZSBwYXJzZXJzLgorICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bi1p
bmxpbmUpCisgIChzZXRxIHRyZWVzaXQtcHJpbWFyeS1wYXJzZXIKKyAgICAgICAgKHRyZWVzaXQt
cGFyc2VyLWNyZWF0ZSAnbWFya2Rvd24pKQorCisgIChzZXRxLWxvY2FsIGZvbnQtbG9jay1kZWZh
dWx0cyBuaWwpCiAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzIG1hcmtk
b3duLXRzLS10cmVlc2l0LXNldHRpbmdzKQotICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNl
dHRpbmdzIChtYXJrZG93bi10cy0tcmFuZ2Utc2V0dGluZ3MpKQotICAoYWRkLXRvLWxpc3QgJ2Zv
bnQtbG9jay1leHRyYS1tYW5hZ2VkLXByb3BzICdpbnZpc2libGUpCi0KLSAgKHdoZW4gKHRyZWVz
aXQtcmVhZHktcCAnaHRtbCB0KQotICAgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ2h0bWwpCi0g
ICAgKHJlcXVpcmUgJ2h0bWwtdHMtbW9kZSkKLSAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKQotICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS10cmVlc2l0LWZvbnQt
bG9jay1mZWF0dXJlLWxpc3QpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stc2V0
dGluZ3MKLSAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdz
Ci0gICAgICAgICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5n
cykpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAg
ICAgICAgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAg
ICAgaHRtbC10cy1tb2RlLS10cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQotICAgIChz
ZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdodG1sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX2Jsb2NrKSBA
aHRtbCkKLQotICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAnaHRtbAotICAgICAgICAg
ICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bi1pbmxpbmUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQotCi0gICh3aGVuICh0cmVlc2l0LXJlYWR5
LXAgJ3lhbWwgdCkKLSAgICAocmVxdWlyZSAneWFtbC10cy1tb2RlKQotICAgIChkZWZ2YXIgeWFt
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB5YW1sLXRzLW1vZGUt
LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxv
Y2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNl
dHRpbmdzCi0gICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1z
ZXR0aW5ncykpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0
Ci0gICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAot
ICAgICAgICAgICAgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAg
ICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKLSAgICAoc2V0
cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0
cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1y
YW5nZS1ydWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAneWFtbAotICAgICAg
ICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgotICAgICAgICAgICAgICAgICAgICAg
ICAgIDpsb2NhbCB0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJygobWludXNfbWV0YWRhdGEp
IEB5YW1sKSkpKSkKLQotICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICd0b21sIHQpCi0gICAgKHJl
cXVpcmUgJ3RvbWwtdHMtbW9kZSkKLSAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2Nr
LXNldHRpbmdzKQotICAgIChkZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1s
aXN0KQotICAgIChzZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgKGFw
cGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgdG9tbC10
cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9u
dC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQt
bG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVh
dHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1
cmUtbGlzdCkpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAg
ICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6
ZW1iZWQgJ3RvbWwKLSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAg
ICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAg
ICcoKHBsdXNfbWV0YWRhdGEpIEB0b21sKSkpKSkKKyAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250
LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBoZWFkaW5nKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWdyYXBoKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWdyYXBoLWlubGluZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlLXByZXZp
ZXcgZXJyb3IpKSkKKworICAoY29uZCAobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAgICAg
ICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVk
ICdtYXJrZG93bi1pbmxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3du
CisgICAgICAgICAgICAgICAgICAgICAgICcoKGlubGluZSkgQG1hcmtkb3duLWlubGluZSkpKSkK
KyAgICAgICAgKHQKKyAgICAgICAgIDs7IFJhbmdlIHNldHRpbmdzIGRpZmZlciBpbiB0aGUgbWFz
dGVyIGJ1ZmZlciB2cy4gaW5saW5lIGFib3ZlLgorICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNp
dC1yYW5nZS1zZXR0aW5ncyAobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKSkKKworICAgICAg
ICAgOzsgQ29uZmlndXJlIGZlYXR1cmVzIG5lZWRlZCBvbmx5IGluIHRoZSBtYXN0ZXIgYnVmZmVy
LgorCisgICAgICAgICA7OyBJbWVudSBzdXBwb3J0LgorICAgICAgICAgKHNldHEtbG9jYWwgdHJl
ZXNpdC1zaW1wbGUtaW1lbnUtc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgIGAoKCJIZWFk
aW5ncyIgLCMnbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmctbm9kZS1wCisgICAgICAgICAgICAg
ICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmctbmFtZS1mdW5jdGlv
bikKKyAgICAgICAgICAgICAgICAgICAgICAgKCJDb2RlIEJsb2NrcyIgLCMnbWFya2Rvd24tdHMt
LWltZW51LWNvZGUtYmxvY2stbm9kZS1wCisgICAgICAgICAgICAgICAgICAgICAgICBuaWwgLCMn
bWFya2Rvd24tdHMtLWltZW51LWNvZGUtYmxvY2stbmFtZS1mdW5jdGlvbikpKQorCisgICAgICAg
ICA7OyBPdXRsaW5lIHN1cHBvcnQuCisgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxp
bmUtcHJlZGljYXRlICMnbWFya2Rvd24tdHMtLW91dGxpbmUtcHJlZGljYXRlKQorICAgICAgICAg
KHNldHEtbG9jYWwgb3V0bGluZS1taW5vci1tb2RlLWN5Y2xlIHQpCisgICAgICAgICAob3V0bGlu
ZS1taW5vci1tb2RlIDEpCisgICAgICAgICAobWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lzKQor
CisgICAgICAgICA7OyBOT1RFOiBgb3V0bGluZS12aWV3LWNoYW5nZS1ob29rJyB3YXMgb2Jzb2xl
dGVkIGluIDI5LjEgKGNvbW1pdAorICAgICAgICAgOzsgNTNiMWU2Zjk2Y2IpIG9uIHRoZSBncm91
bmRzIHRoYXQgb25seSBsYXp5LWxvY2sgdXNlZCBpdCwgYnV0IG5vCisgICAgICAgICA7OyByZXBs
YWNlbWVudCB3YXMgcHJvdmlkZWQgYW5kIG91dGxpbmUuZWwgaXRzZWxmIHN0aWxsIHJ1bnMgdGhl
IGhvb2sKKyAgICAgICAgIDs7IGluIDEwKyBwbGFjZXMuCisgICAgICAgICAod2l0aC1zdXBwcmVz
c2VkLXdhcm5pbmdzICgob2Jzb2xldGUgb3V0bGluZS12aWV3LWNoYW5nZS1ob29rKSkKKyAgICAg
ICAgICAgKGFkZC1ob29rICdvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2sKKyAgICAgICAgICAgICAg
ICAgICAgICMnbWFya2Rvd24tdHMtLW91dGxpbmUtdmlldy1jaGFuZ2UgbmlsIHQpKQorCisgICAg
ICAgICAocHJvZ24KKyAgICAgICAgICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ21hcmtkb3duLXRz
LWhpZGUtbWFya3VwKQorICAgICAgICAgICAobWFrZS1sb2NhbC12YXJpYWJsZSAnZm9udC1sb2Nr
LWV4dHJhLW1hbmFnZWQtcHJvcHMpCisgICAgICAgICAgIChkb2xpc3QgKHByb3AgJyhpbnZpc2li
bGUgZGlzcGxheSBidXR0b24gY2F0ZWdvcnkgYWN0aW9uIGhlbHAtZWNobykpCisgICAgICAgICAg
ICAgKGFkZC10by1saXN0ICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcyBwcm9wKSkpCisK
KyAgICAgICAgICh3aGVuICh0cmVlc2l0LXJlYWR5LXAgJ2h0bWwgdCkKKyAgICAgICAgICAgKHRy
ZWVzaXQtcGFyc2VyLWNyZWF0ZSAnaHRtbCkKKyAgICAgICAgICAgKHJlcXVpcmUgJ2h0bWwtdHMt
bW9kZSkKKyAgICAgICAgICAgKGRlZnZhciBodG1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5n
cykKKyAgICAgICAgICAgKGRlZnZhciBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZl
YXR1cmUtbGlzdCkKKyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stc2V0
dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1z
ZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKSkKKyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxv
Y2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9u
dC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC10cy1tb2Rl
LS10cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0cS1sb2Nh
bCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQg
dHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJl
ZCAnaHRtbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJygoaHRtbF9ibG9jaykgQGh0bWwpCisKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOmVtYmVkICdodG1sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDpob3N0ICdtYXJrZG93bi1pbmxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygoaHRtbF90YWcpIEBodG1sKSkpKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQt
cmVhZHktcCAneWFtbCB0KQorICAgICAgICAgICAocmVxdWlyZSAneWFtbC10cy1tb2RlKQorICAg
ICAgICAgICAoZGVmdmFyIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQorICAgICAg
ICAgICAoZGVmdmFyIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKKyAgICAg
ICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkK
KyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Cisg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlz
dAorICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVy
ZS1saXN0KSkKKyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwor
ICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ3lhbWwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDpsb2NhbCB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKG1pbnVz
X21ldGFkYXRhKSBAeWFtbCkpKSkpCisKKyAgICAgICAgICh3aGVuICh0cmVlc2l0LXJlYWR5LXAg
J3RvbWwgdCkKKyAgICAgICAgICAgKHJlcXVpcmUgJ3RvbWwtdHMtbW9kZSkKKyAgICAgICAgICAg
KGRlZnZhciB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKKyAgICAgICAgICAgKGRl
ZnZhciB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpCisgICAgICAgICAgIChz
ZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgIChhcHBlbmQg
dHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICB0b21s
LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRy
ZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAodHJl
ZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAg
ICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCisgICAgICAgICAgIChzZXRx
LWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgKGFw
cGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OmVtYmVkICd0b21sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJr
ZG93bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKChwbHVzX21ldGFkYXRhKSBAdG9tbCkpKSkpCisKKyAg
ICAgICAgIDs7IFN1cHBvcnQgZm9yIGV4ZWN1dGluZyBjb21tYW5kcyBpbiBhIGNvZGUtYmxvY2sg
Y29udGV4dC4KKyAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLWVuYWJsZS1jb2RlLWJsb2NrLWNv
bnRleHQtbW9kZQorICAgICAgICAgICAobWFya2Rvd24tdHMtY29kZS1ibG9jay1jb250ZXh0LW1v
ZGUpKQorCisgICAgICAgICA7OyBTdXBwb3J0IGZvciB0YWJsZSBtb2RlLgorICAgICAgICAgKHdo
ZW4gbWFya2Rvd24tdHMtZW5hYmxlLXRhYmxlLW1vZGUKKyAgICAgICAgICAgKG1hcmtkb3duLXRz
LXRhYmxlLW1vZGUpKSkpCiAKICAgKHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCkKLSAgKG1hcmtk
b3duLXRzLS1zZXQtaGlkZS1tYXJrdXAgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApKQorCisgIDs7
IERvIG5vdCBlbmFibGUgYGppdC1sb2NrLW1vZGUnIGluIGluZGlyZWN0IGJ1ZmZlcnMgc3VjaCBh
cyB0aGUgb25lCisgIDs7IHdlIHVzZSBmb3IgY29kZSBibG9jayBjb21tYW5kcy4KKyAgKHVubGVz
cyAoYnVmZmVyLWJhc2UtYnVmZmVyKQorICAgIChqaXQtbG9jay1yZWdpc3RlciAjJ21hcmtkb3du
LXRzLS1mb250aWZ5LWJhcmUtdXJpKSkKKworICAodW5sZXNzIG1hcmtkb3duLXRzLS1zZXQtdXAt
aW5saW5lCisgICAgOzsgT3JkZXIgbWF0dGVyczogYG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJr
dXAnIGNhbGxzIGBmb250LWxvY2stZmx1c2gnCisgICAgOzsgKG9ubHkgbWVhbmluZ2Z1bCBvbmNl
IGB0cmVlc2l0LW1ham9yLW1vZGUtc2V0dXAnIGhhcyB3aXJlZCB1cAorICAgIDs7IGZvbnQtbG9j
ayksIGFuZCBgbWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nJyBjYWxscyBvdXRsaW5lCisgICAg
OzsgY29tbWFuZHMgdGhhdCByZWx5IG9uIGBvdXRsaW5lLXNlYXJjaC1mdW5jdGlvbicsIHdoaWNo
CisgICAgOzsgYHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCcgaW5zdGFsbHMgZnJvbSBgdHJlZXNp
dC1vdXRsaW5lLXByZWRpY2F0ZScuCisgICAgKG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJrdXAg
bWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAgOzsgUmVzcGVjdCB0aGUgdXNlcidzIGRlZmF1
bHQgb3V0bGluZSBmb2xkaW5nLgorICAgIChwY2FzZSBtYXJrZG93bi10cy1kZWZhdWx0LWZvbGRp
bmcKKyAgICAgICgnc2hvdy1hbGwgKGlnbm9yZSkpCisgICAgICAoJ2ZvbGQtYWxsIChvdXRsaW5l
LWhpZGUtc3VibGV2ZWxzIDEpKQorICAgICAgKCdmb2xkLWhlYWRpbmdzIChvdXRsaW5lLXNob3ct
YWxsKQorICAgICAgICAgICAgICAgICAgICAgIChvdXRsaW5lLWhpZGUtcmVnaW9uLWJvZHkgKHBv
aW50LW1pbikgKHBvaW50LW1heCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW9kZS1pbnN0
YWxsLXBhcnNlcnMgKGFyZykKKyAgIkluc3RhbGwgYG1hcmtkb3duLXRzLW1vZGUnIHRyZWUtc2l0
dGVyIGxhbmd1YWdlIHBhcnNlcnMuCitJZiBuZWVkZWQsIGluc3RhbGwgdGhlIHJlcXVpcmVkIHBh
cnNlcnMgZm9yIGBtYXJrZG93bicgYW5kIGBtYXJrZG93bi1pbmxpbmUnLgorV2l0aCBhIHByZWZp
eCBhcmd1bWVudCwgQVJHLCBpZiBuZWVkZWQsIGluc3RhbGwgcGFyc2VycyBmb3IgYGh0bWwnLAor
YHlhbWwnLCBhbmQgYHRvbWwnLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKHVubGVzcyAodHJl
ZXNpdC1sYW5ndWFnZS1hdmFpbGFibGUtcCAnbWFya2Rvd24pCisgICAgKHRyZWVzaXQtaW5zdGFs
bC1sYW5ndWFnZS1ncmFtbWFyICdtYXJrZG93bikpCisgICh1bmxlc3MgKHRyZWVzaXQtbGFuZ3Vh
Z2UtYXZhaWxhYmxlLXAgJ21hcmtkb3duLWlubGluZSkKKyAgICAodHJlZXNpdC1pbnN0YWxsLWxh
bmd1YWdlLWdyYW1tYXIgJ21hcmtkb3duLWlubGluZSkpCisgICh3aGVuIGFyZworICAgICh1bmxl
c3MgKHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgJ2h0bWwpCisgICAgICAocmVxdWlyZSAn
aHRtbC10cy1tb2RlKQorICAgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICdo
dG1sKSkKKyAgICAodW5sZXNzICh0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICd5YW1sKQor
ICAgICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwtbGFu
Z3VhZ2UtZ3JhbW1hciAneWFtbCkpCisgICAgKHVubGVzcyAodHJlZXNpdC1sYW5ndWFnZS1hdmFp
bGFibGUtcCAndG9tbCkKKyAgICAgIChyZXF1aXJlICd0b21sLXRzLW1vZGUpCisgICAgICAodHJl
ZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ3RvbWwpKSkpCiAKIDs7OyMjI2F1dG9sb2Fk
CiAoZGVmaW5lLWRlcml2ZWQtbW9kZSBtYXJrZG93bi10cy1tb2RlIHRleHQtbW9kZSAiTWFya2Rv
d24iCi0gICJNYWpvciBtb2RlIGZvciBlZGl0aW5nIE1hcmtkb3duIHVzaW5nIHRyZWUtc2l0dGVy
IGdyYW1tYXIuIgorICAiTWFqb3IgbW9kZSBmb3IgZWRpdGluZyBNYXJrZG93biB1c2luZyB0cmVl
LXNpdHRlciBncmFtbWFyLgorTk9URTogU2VlIGBtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZScu
IgorICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bikKKyAgKHRyZWVzaXQtZW5z
dXJlLWluc3RhbGxlZCAnbWFya2Rvd24taW5saW5lKQorICA7OyBCeXBhc3MgYHRyZWVzaXQtbWF4
LWJ1ZmZlci1zaXplJyBzbyB0aGUgbW9kZSBhY3RpdmF0ZXMgaW4gbGFyZ2UKKyAgOzsgYnVmZmVy
cyBpbnN0ZWFkIG9mIHJlZnVzaW5nLiAgYHRyZWVzaXQtcmVhZHktcCcgd291bGQgb3RoZXJ3aXNl
CisgIDs7IHJlZnVzZSBhbmQgZW1pdCBhIG1pc2xlYWRpbmcgInBhcnNlcnMgbm90IGZvdW5kIiBt
ZXNzYWdlIGV2ZW4gd2hlbgorICA7OyB0aGV5IGFyZSBpbnN0YWxsZWQuICBSZXZpc2l0IGlmIGB0
cmVlc2l0LXBhcnNlci1jcmVhdGUnIGdhaW5zIGl0cworICA7OyBvd24gYnVmZmVyLXNpemUgZ3Vh
cmQgKHNlZSBidWcjODA5MDkpLgorICAobGV0ICgodHJlZXNpdC1tYXgtYnVmZmVyLXNpemUgbW9z
dC1wb3NpdGl2ZS1maXhudW0pKQorICAgIChpZiAodHJlZXNpdC1yZWFkeS1wICcobWFya2Rvd24g
bWFya2Rvd24taW5saW5lKSB0KQorICAgICAgICAobWFya2Rvd24tdHMtLXNldC11cCkKKyAgICAg
ICh3YXJuICJtYXJrZG93bi10cy1tb2RlIGNhbm5vdCBiZSBzZXQgdXA7IHVzaW5nIGZ1bmRhbWVu
dGFsLW1vZGUuCitUaGUgdHJlZS1zaXR0ZXIgcGFyc2VycyBgbWFya2Rvd24nIGFuZCBgbWFya2Rv
d24taW5saW5lJyB3ZXJlIG5vdCBmb3VuZC4KK1VzZSB0aGUgY29tbWFuZCBgbWFya2Rvd24tdHMt
bW9kZS1pbnN0YWxsLXBhcnNlcnMnIHRvIGluc3RhbGwgdGhlbS4KK1dpdGggYSBwcmVmaXggYXJn
dW1lbnQsIGl0IGNhbiBhbHNvIGluc3RhbGwgb3B0aW9uYWwgcGFyc2Vycy4iKQorICAgICAgKGZ1
bmRhbWVudGFsLW1vZGUpKSkpCiAKLSAgKHNldHEtbG9jYWwgY29tbWVudC1zdGFydCAiPCEtLSAi
KQotICAoc2V0cS1sb2NhbCBjb21tZW50LWVuZCAiIC0tPiIpCisoZGVyaXZlZC1tb2RlLWFkZC1w
YXJlbnRzICdtYXJrZG93bi10cy1tb2RlICcobWFya2Rvd24tbW9kZSkpCiAKLSAgKHNldHEtbG9j
YWwgZm9udC1sb2NrLWRlZmF1bHRzIG5pbAotCSAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1
cmUtbGlzdCAnKChkZWxpbWl0ZXIgaGVhZGluZykKLQkJCQkJICAgICAgIChwYXJhZ3JhcGgpCi0J
CQkJCSAgICAgICAocGFyYWdyYXBoLWlubGluZSkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1iYXJm
LWlmLW5vdC1tb2RlICgmb3B0aW9uYWwgY29udGV4dCkKKyAgIlNpZ25hbCBhbiBlcnJvciBpZiB0
aGUgY3VycmVudCBidWZmZXIgaXMgbm90IGEgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlci4KK1By
ZWZpeCB0aGUgZXJyb3IgbWVzc2FnZSB3aXRoIENPTlRFWFQuIgorICAodW5sZXNzIChkZXJpdmVk
LW1vZGUtcCAnbWFya2Rvd24tdHMtbW9kZSkKKyAgICAodXNlci1lcnJvciAiJXNpcyB2YWxpZCBv
bmx5IGluIGBtYXJrZG93bi10cy1tb2RlJyBidWZmZXJzIgorICAgICAgICAgICAgICAgIChpZiBj
b250ZXh0IChmb3JtYXQgIiVzOiAiIGNvbnRleHQpICIiKSkpKQogCi0gIChzZXRxLWxvY2FsIHRy
ZWVzaXQtc2ltcGxlLWltZW51LXNldHRpbmdzCi0gICAgICAgICAgICAgIGAoKCJIZWFkaW5ncyIg
LCMnbWFya2Rvd24tdHMtaW1lbnUtbm9kZS1wCi0gICAgICAgICAgICAgICAgIG5pbCAsIydtYXJr
ZG93bi10cy1pbWVudS1uYW1lLWZ1bmN0aW9uKSkpCi0gIChzZXRxLWxvY2FsIHRyZWVzaXQtb3V0
bGluZS1wcmVkaWNhdGUgIydtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSkKKyhkZWZpbmUt
bWlub3ItbW9kZSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZQorICAiTWlu
b3IgbW9kZSBlbmFibGVkIGlmIHBvaW50IGlzIHdpdGhpbiBhIGZlbmNlZCBjb2RlIGJsb2NrLgor
VGhpcyBlbmFibGVzIHRoZSBrZXltYXAgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4
dC1tb2RlLW1hcCcuIgorICA6Z3JvdXAgJ21hcmtkb3duLXRzCisgIDpsaWdodGVyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLWxpZ2h0ZXIKKyAgOmludGVyYWN0aXZlIG5p
bAorICAobWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLXVwZGF0ZS1vdikp
CiAKLSAgKHdoZW4gKGFuZCAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bikKLSAg
ICAgICAgICAgICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpKQot
ICAgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3duLWlubGluZSkKLSAgICAodHJlZXNp
dC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikKLSAgICAobWFya2Rvd24tdHMtc2V0dXApKSkKKyhk
ZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92IG5p
bCkKIAotKGRlcml2ZWQtbW9kZS1hZGQtcGFyZW50cyAnbWFya2Rvd24tdHMtbW9kZSAnKG1hcmtk
b3duLW1vZGUpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9k
ZS11cGRhdGUtb3YgKCkKKyAgIk1hbmFnZSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29u
dGV4dC1tb2RlLW92Jy4iCisgIChjb25kIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRl
eHQtbW9kZQorICAgICAgICAgKGxldCAoKGJlZyAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAn
bWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyKSkKKyAgICAgICAgICAgICAgIChlbmQgKGdldC1j
aGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlcikpKQorICAg
ICAgICAgICAoaWYgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92Cisg
ICAgICAgICAgICAgICAobW92ZS1vdmVybGF5IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNv
bnRleHQtbW9kZS1vdiBiZWcgZW5kKQorICAgICAgICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1j
b2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgIChtYWtlLW92
ZXJsYXkgYmVnIGVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtk
b3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAgICAgICAg
ICAgICAgJ21hcmtkb3duLXRzLWluLWNvZGUtYmxvY2sgdCkKKyAgICAgICAgICAgKG92ZXJsYXkt
cHV0IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAg
ICAgICAgICAgICAgICAgJ2V2YXBvcmF0ZSB0KQorICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAgICAgICAgICAgICAg
ICAgICAgICAncHJpb3JpdHkgJyhuaWwgLiAyMCkpCisgICAgICAgICAgIChvdmVybGF5LXB1dCBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YKKyAgICAgICAgICAgICAg
ICAgICAgICAgICdmYWNlICdtYXJrZG93bi10cy1pbi1jb2RlLWJsb2NrKSkpCisgICAgICAgICh0
CisgICAgICAgICAod2hlbiBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUt
b3YKKyAgICAgICAgICAgKGRlbGV0ZS1vdmVybGF5IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWlu
LWNvbnRleHQtbW9kZS1vdikpKSkpCiAKLTs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gbWFya2Rvd24t
dHMtbW9kZS1tYXliZSAoKQotICAiRW5hYmxlIGBtYXJrZG93bi10cy1tb2RlJyB3aGVuIGl0cyBn
cmFtbWFyIGlzIGF2YWlsYWJsZS4KLUFsc28gcHJvcG9zZSB0byBpbnN0YWxsIHRoZSBncmFtbWFy
IHdoZW4gYHRyZWVzaXQtZW5hYmxlZC1tb2RlcycKLWlzIHQgb3IgY29udGFpbnMgdGhlIG1vZGUg
bmFtZS4iCi0gIChkZWNsYXJlLWZ1bmN0aW9uIHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAg
InRyZWVzaXQuYyIpCi0gIChpZiAob3IgKHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgJ21h
cmtkb3duKQotICAgICAgICAgIChlcSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMgdCkKLSAgICAgICAg
ICAobWVtcSAnbWFya2Rvd24tdHMtbW9kZSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMpKQotICAgICAg
KG1hcmtkb3duLXRzLW1vZGUpCi0gICAgKGZ1bmRhbWVudGFsLW1vZGUpKSkKKyhkZWZpbmUtbWlu
b3ItbW9kZSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZQorICAiTWlub3IgbW9k
ZSB0byBlbmFibGUgY29tbWFuZHMgaW4gZmVuY2VkIGNvZGUgYmxvY2sgY29udGV4dC4KK0lmIG5v
bi1uaWwgYW5kIGBwb2ludCcgaXMgaW4gYSBmZW5jZWQgY29kZSBibG9jaywgcnVuIGBpbmRlbnQt
Zm9yLXRhYi1jb21tYW5kJywKK2BuZXdsaW5lJywgZXQuYWwuLCBpbiB0aGUgbW9kZSBvZiB0aGUg
Y29kZSBibG9jay4iCisgIDpncm91cCAnbWFya2Rvd24tdHMKKyAgOmludGVyYWN0aXZlIG5pbAor
ICAobWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2st
Y29udGV4dC1tb2RlKQorICAoY29uZCAobWFya2Rvd24tdHMtY29kZS1ibG9jay1jb250ZXh0LW1v
ZGUKKyAgICAgICAgIDs7IEVuYWJsZSB0aGUgbWlub3IgbW9kZSBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1pbi1jb250ZXh0LW1vZGUnIGFuZAorICAgICAgICAgOzsgaXRzIGtleW1hcCB3aGVuIHBv
aW50IGlzIHdpdGhpbiBhIGNvZGUgYmxvY2suCisgICAgICAgICAoYWRkLWhvb2sgJ3Bvc3QtY29t
bWFuZC1ob29rCisgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUt
YmxvY2staW4tY29udGV4dC1tb2RlIG5pbCAnbG9jYWwpCisgICAgICAgICA7OyBJZiBgc2F2ZS1w
bGFjZS1tb2RlJyBvciBzaW1pbGFyIGlzIHVzZWQsIHBvaW50IGNvdWxkIHN0YXJ0IHdpdGhpbgor
ICAgICAgICAgOzsgYSBjb2RlIGJsb2NrIHNvIGluaXRpYWxpemUgZnJvbSB0aGF0IHN0YXRlLgor
ICAgICAgICAgKHJ1bi13aXRoLXRpbWVyIDAuMDEgbmlsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIydtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlKQorICAg
ICAgICAgOzsgRm9yIGVhY2ggZWxpZ2libGUgY29tbWFuZCwgZXhlY3V0ZSBpdCBpbiBhIGNvZGUt
YmxvY2sgY29udGV4dCwKKyAgICAgICAgIDs7IG90aGVyd2lzZSBpbiB0aGUgYG1hcmtkb3duLXRz
LW1vZGUnIGJ1ZmZlcidzIGNvbnRleHQuCisgICAgICAgICAoYWRkLWhvb2sgJ3ByZS1jb21tYW5k
LWhvb2sKKyAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFu
ZC1pbi1jb2RlLWJsb2NrIG5pbCAnbG9jYWwpCisgICAgICAgICA7OyBQcnVuZSBzdGFsZSBjb2Rl
IGJsb2NrIG92ZXJsYXlzIHdoZW4gdGhlIGhvc3QgcGFyc2UgdHJlZQorICAgICAgICAgOzsgY2hh
bmdlcyAoZS5nLiwgd2hlbiBmZW5jZWQgY29kZSBibG9jayBkZWxpbWl0ZXJzIGFyZQorICAgICAg
ICAgOzsgZGVsZXRlZCBidXQgdGhlIG92ZXJsYXkgZnJvbSBhIHByaW9yIGZvbnRpZmljYXRpb24g
cmVtYWlucykuCisgICAgICAgICAodHJlZXNpdC1wYXJzZXItYWRkLW5vdGlmaWVyCisgICAgICAg
ICAgdHJlZXNpdC1wcmltYXJ5LXBhcnNlcgorICAgICAgICAgICMnbWFya2Rvd24tdHMtLWhvc3Qt
cmFuZ2VzLW5vdGlmaWVyKSkKKyAgICAgICAgKHQKKyAgICAgICAgIChyZW1vdmUtaG9vayAncG9z
dC1jb21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFi
bGUtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUgJ2xvY2FsKQorICAgICAgICAgKHJlbW92ZS1o
b29rICdwcmUtY29tbWFuZC1ob29rCisgICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10
cy0tbWF5YmUtcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayAnbG9jYWwpCisgICAgICAgICAodHJl
ZXNpdC1wYXJzZXItcmVtb3ZlLW5vdGlmaWVyCisgICAgICAgICAgdHJlZXNpdC1wcmltYXJ5LXBh
cnNlcgorICAgICAgICAgICMnbWFya2Rvd24tdHMtLWhvc3QtcmFuZ2VzLW5vdGlmaWVyKSkpKQor
CisoZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZQorICAiTWlub3Ig
bW9kZSBlbmFibGVkIGlmIHBvaW50IGlzIHdpdGhpbiBhIHRhYmxlLgorVGhpcyBlbmFibGVzIHRo
ZSBrZXltYXAgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbWFwJy4iCisgIDpncm91cCAnbWFy
a2Rvd24tdHMKKyAgOmxpZ2h0ZXIgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZS1saWdodGVyCisg
IDppbnRlcmFjdGl2ZSBuaWwKKyAgKG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLXVwZGF0ZS1v
dikpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YgbmlsKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtZ2V0LW92IChwb3MpCisgICJSZXR1
cm4gdGhlIGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBvdmVybGF5IGF0IFBPUy4iCisgIChz
ZXEtZmluZCAobGFtYmRhIChvdikKKyAgICAgICAgICAgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG92
ICdtYXJrZG93bi10cy1pbi10YWJsZSkKKyAgICAgICAgICAgICAgICBvdikpCisgICAgICAgICAg
ICAob3ZlcmxheXMtYXQgcG9zKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtdGljay11
cGRhdGUgKHBvcykKKyAgIlVwZGF0ZSB0aGUgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnIG92
ZXJsYXkgdGljayBhdCBQT1MuCitJZiB0aGUgb3ZlcmxheSBpcyBub3QgZm91bmQsIGRvIG5vdGhp
bmcuIgorICAod2hlbi1sZXQqICgob3YgKG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLWdldC1v
diBwb3MpKSkKKyAgICAob3ZlcmxheS1wdXQgb3YKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3du
LXRzLWluLXRhYmxlLXRpY2sKKyAgICAgICAgICAgICAgICAgKGJ1ZmZlci1jaGFycy1tb2RpZmll
ZC10aWNrKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLXRpY2stc3RhbGUtcCAocG9z
KQorICAiUmV0dXJuIG5vbi1uaWwgaWYgdGhlIHRhYmxlIGF0IFBPUyBtaWdodCBoYXZlIGNoYW5n
ZWQuCitJdCBpcyB1cCB0byB0aGlzIGZ1bmN0aW9uJ3MgY2FsbGVycyB0byBjYWxsCitgbWFya2Rv
d24tdHMtLXRhYmxlLXRpY2stdXBkYXRlJy4iCisgICh3aGVuLWxldCogKChvdiAobWFya2Rvd24t
dHMtLWluLXRhYmxlLW1vZGUtZ2V0LW92IHBvcykpKQorICAgIChub3QgKGVxIChvdmVybGF5LWdl
dCBvdiAnbWFya2Rvd24tdHMtaW4tdGFibGUtdGljaykKKyAgICAgICAgICAgICAoYnVmZmVyLWNo
YXJzLW1vZGlmaWVkLXRpY2spKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluLXRhYmxlLW1v
ZGUtdXBkYXRlLW92ICgpCisgICJNYW5hZ2UgYG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92
Jy4iCisgIChjb25kIChtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlCisgICAgICAgICAod2hlbi1s
ZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAg
ICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgICAgICAg
KGJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IHRhYmxlKSkKKyAgICAgICAgICAgICAgICAgICAgIChl
bmQgKHRyZWVzaXQtbm9kZS1lbmQgdGFibGUpKSkKKyAgICAgICAgICAgKGlmIG1hcmtkb3duLXRz
LS1pbi10YWJsZS1tb2RlLW92CisgICAgICAgICAgICAgICA7OyBNb3ZlIHRoZSBvdmVybGF5LCBp
ZiBuZWVkZWQsIGFuZCByZXNldCB0aGUgdGljayBpZiBzby4KKyAgICAgICAgICAgICAgICh3aGVu
IChub3QgKGVxIChvdmVybGF5LXN0YXJ0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnKSkKKyAgICAgICAgICAgICAgICAgKG1v
dmUtb3ZlcmxheSBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdiBiZWcgZW5kKQorICAgICAg
ICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1pbi10YWJsZS10aWNrIG5p
bCkpCisgICAgICAgICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAg
ICAgICAgICAgICAgICAgICAobWFrZS1vdmVybGF5IGJlZyBlbmQgbmlsIHQgbmlsKSkpCisgICAg
ICAgICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAg
ICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWluLXRhYmxlIHQpCisgICAgICAgICAgIChv
dmVybGF5LXB1dCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAgICAg
ICAgICAgICAgJ2V2YXBvcmF0ZSB0KQorICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rvd24t
dHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eSAn
KG5pbCAuIDIwKSkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1pbi10YWJs
ZS1tb2RlLW92CisgICAgICAgICAgICAgICAgICAgICAgICAnZmFjZSAnbWFya2Rvd24tdHMtaW4t
dGFibGUpCisgICAgICAgICAgICkpCisgICAgICAgICh0CisgICAgICAgICAod2hlbiBtYXJrZG93
bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgbWFya2Rv
d24tdHMtLWluLXRhYmxlLW1vZGUtb3YpKSkpKQorCisoZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rv
d24tdHMtdGFibGUtbW9kZQorICAiTWlub3IgbW9kZSB0byBlbmFibGUgY29tbWFuZHMgaW4gdGFi
bGVzLgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIHRhYmxlLCBlbmFibGUKK2BtYXJr
ZG93bi10cy1pbi10YWJsZS1tb2RlJy4iCisgIDpncm91cCAnbWFya2Rvd24tdHMKKyAgOmludGVy
YWN0aXZlIG5pbAorICAobWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRz
LXRhYmxlLW1vZGUpCisgIChjb25kIChtYXJrZG93bi10cy10YWJsZS1tb2RlCisgICAgICAgICA7
OyBFbmFibGUgdGhlIG1pbm9yIG1vZGUgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnIGFuZAor
ICAgICAgICAgOzsgaXRzIGtleW1hcCB3aGVuIHBvaW50IGlzIHdpdGhpbiBhIGNvZGUgYmxvY2su
CisgICAgICAgICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rCisgICAgICAgICAgICAgICAg
ICAgIydtYXJrZG93bi10cy0tZW5hYmxlLWluLXRhYmxlLW1vZGUgbmlsICdsb2NhbCkKKyAgICAg
ICAgIDs7IElmIGBzYXZlLXBsYWNlLW1vZGUnIG9yIHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQgY291
bGQgc3RhcnQgd2l0aGluCisgICAgICAgICA7OyBhIHRhYmxlLCBzbyBpbml0aWFsaXplIGZyb20g
dGhhdCBzdGF0ZS4KKyAgICAgICAgIChydW4td2l0aC10aW1lciAwLjAxIG5pbAorICAgICAgICAg
ICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWVuYWJsZS1pbi10YWJsZS1tb2RlKSkKKyAg
ICAgICAgKHQKKyAgICAgICAgIChyZW1vdmUtaG9vayAncG9zdC1jb21tYW5kLWhvb2sKKyAgICAg
ICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtaW4tdGFibGUtbW9kZSAnbG9j
YWwpKSkpCiAKIDs7OyMjI2F1dG9sb2FkCiAod2hlbiAoYm91bmRwICd0cmVlc2l0LW1ham9yLW1v
ZGUtcmVtYXAtYWxpc3QpCi0gIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxcLm1k
XFwnIiAuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUpKQotICA7OyBUbyBiZSBhYmxlIHRvIHRvZ2ds
ZSBiZXR3ZWVuIGFuIGV4dGVybmFsIHBhY2thZ2UgYW5kIGNvcmUgdHMtbW9kZToKKyAgKGFkZC10
by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwubWRcXCciIC4gbWFya2Rvd24tdHMtbW9kZSkp
CisgIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxcLm1hcmtkb3duXFwnIiAuIG1h
cmtkb3duLXRzLW1vZGUpKQorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5t
ZHhcXCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCiAgIChhZGQtdG8tbGlzdCAndHJlZXNpdC1tYWpv
ci1tb2RlLXJlbWFwLWFsaXN0CiAgICAgICAgICAgICAgICAnKG1hcmtkb3duLW1vZGUgLiBtYXJr
ZG93bi10cy1tb2RlKSkpCiAKLS0gCjIuNTQuMAoK
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 3 May 2026 17:31:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun May 03 13:31:36 2026
Received: from localhost ([127.0.0.1]:57341 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wJafI-0001hO-HN
	for submit <at> debbugs.gnu.org; Sun, 03 May 2026 13:31:36 -0400
Received: from mail-vk1-xa2f.google.com ([2607:f8b0:4864:20::a2f]:57405)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1wJafE-0001gl-Vv
 for 80740 <at> debbugs.gnu.org; Sun, 03 May 2026 13:31:34 -0400
Received: by mail-vk1-xa2f.google.com with SMTP id
 71dfb90a1353d-57524e52a3dso315592e0c.2
 for <80740 <at> debbugs.gnu.org>; Sun, 03 May 2026 10:31:32 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1777829492; cv=none;
 d=google.com; s=arc-20240605;
 b=ZVykcxOm0+3A29dRBFMtybb/Mk0dv5Rxr6v0wAWSsNTwtupoD0CKEctmJHx2+bd0NK
 /kBG5PYVQlcILx1U8m6q6L0Q36JgBN9tHQzuH3oyvrd10UgdPSbUbxKXcItAzlMkPGII
 vzWXyZQ/wgnmEn7E5QkZVMojyL20AQOhKWDIB/klLg3G9UU2cpjhyOr6eXiL37V3oFgV
 rRodO8KuLdCNvsmXDevDfZFXG3eimKV3GX59bXr9DTGAZkOCVpLvJ0bs8fgE9V8M4s/u
 totK9wbtaQUaYb07UsmSOqWh8U5JNkaCFeh1bhcrsVd7IJXAgg10LndZBKb0FAE2r9WM
 7EOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=fYqyIDkkIobby4kP7QbJp8oBxeycfp38qxh4Xa0NEpY=;
 fh=Z+2BWSYvvUlcD/HMQPZWUM/wIsQXB3t1+i6KD6ZcjWM=;
 b=RnoFBI6yvCwY7DUpGeqfQO0zD7Wl+1vQy6KbzFML8Hn3uZoTRyud0D9H3TTJ02qCRp
 P9d8Z+yy1gaGu0oq4UmfHMl/VU4Ycg4jqWpltHKV5gCDaPBBlinfLjO+FUnEirRf9PN/
 DjE0RIwLuIuH5G10ld9fjMWQI+7MqKNLsN/Tn2oD95H2tUMDzCrZdofIPKITOlR8f8/6
 OME7xwDhMYTshEXlEpa6ZZYleVuoOr8MQ6wqDB+Vf8lto/yiVk9panjB0hQMnMry3M0Z
 0n8o/ee2zgZW1QWeXcVLpUGyNuDwrHoD/hlSlbsF93CL2V0TduXc41oZtJiRxcSy00m7
 ACDw==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777829492; x=1778434292; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=fYqyIDkkIobby4kP7QbJp8oBxeycfp38qxh4Xa0NEpY=;
 b=pWr4vg8amDbfRvPhauA1GGhXvrg4vz9bF1OWWBN4ZkK8tykluzNE2UzhY3SlWO43FK
 BD8RqBgRgYHDgfwFg4EhKSOn81VbjHjZrm4eFszJcFTcu5llmC24k+Sxslm1ar2JZDp7
 7SSxcs/cyFl3oAh48a47tFCd3uru5Vn9rKdtxZRMDfqJVRC/FXtf9dn5QGBZPzXJD1o0
 RKcYHnirfQCnc+lT7mMR0WLxBYKYPA7vQiitTSy2149SieyaeBGe3sCenUamo8p3clHU
 bxWCKkqdwh8PUiE7UtFPnZx4Z+lnav/aPUwmS1ChSY/5rnj8eu3MJgVXeaPaXXUfHiXa
 hzyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777829492; x=1778434292;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=fYqyIDkkIobby4kP7QbJp8oBxeycfp38qxh4Xa0NEpY=;
 b=bUYb18Cu+g0auU7M4siFmviapB9pGlTIZ1B/efIuzW9u79hDaPTniEE/zDuRC7dbk4
 0dKA719j8CL3ZOmI9maIdOPGMVzQ77/OFRcEYuLyBYWI9kpFvVhVQgM2dbYzw6OIjKuR
 qpNFM3um8cW/0kjE6l3Tpx3TrIqoAfFe2+tefvjc9QTXPQNBpaP0ceQVhflcaT/wN6VC
 20YBQXSM1hR3q19JrRc8k+tSyjjdA5i1TseacXVU9vsgMlVwpAGblqt1l3qYDsi/ycWZ
 izuJRMBuwHUTXXYrU124UFRRD8h/86EvmmfgMc7ubyDnWuhpIKmxBRzPhWz5kr6vOTVR
 XnLw==
X-Forwarded-Encrypted: i=1;
 AFNElJ/NNIZvdWP12BHcv10JModuLC+V4V+ruzxX8rr4vqf480oBVhpX0kOZ/YeehSzEJi4KwM6SrQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxTuTPQA0TivuBdcpkV6J2R5H4uXHVF7kMskHwTFx6nho6UKUEw
 GEldU0kL491FpQQUTTckvw51HG7S5qxLRVtfKYrKPZqMNWSODAqehwBP3Hclw19VLS0rakl3v1z
 sAnflY8YQbR98kTVdBfvI3zmyc3S5M9Q=
X-Gm-Gg: AeBDies6gJf7b6jUB5Bob/9FZ+AbeQkizxhFh2CqvNWgKLloxZrQEHFAdZBdJ7fp2z3
 KPUKAbPbuEedKIarR1a+f7CKJOX6WJsrdANMpEXFxvaLlGcxfB+UC3Ad84n+/uRIFAlKHYxUyet
 GLbs29+oTQLNVfR5n/DJaARMAjuKgUhtRHXSRq7qkqEq7JW4IHwvWwZeyN4jdTen038xfYTParw
 IYv90B7zvOIcWa4xon61I+oeC/XivzmruoeOEOMp3muzbgvSwavHl3JEpLLzv8io8LYBt0+9KHR
 eWI5jSICWv17onO3hwiUalxlOLQr4upTOJADry377RAI99VWNSWQHV23QYAuJP7MJa+J9xi3JTQ
 +9U9aw5YKgRBB6rj5vdPiMcru/qk+D6O+eZgfSLuNLry4V1/AKA2Bn493tw==
X-Received: by 2002:a05:6122:1b82:b0:56e:8afc:de8c with SMTP id
 71dfb90a1353d-5750c4e0a3amr2917313e0c.3.1777829492106; Sun, 03 May 2026
 10:31:32 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN> <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN> <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN> <m2fr4ldxl3.fsf@HIDDEN>
 <m2ik982h8d.fsf@HIDDEN> <871pfvtso9.fsf@HIDDEN>
 <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
 <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
 <m2mryi7jcx.fsf@HIDDEN> <87fr48mqdn.fsf@HIDDEN>
In-Reply-To: <87fr48mqdn.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Sun, 3 May 2026 13:31:20 -0400
X-Gm-Features: AVHnY4IBnU5SogEXS-c8bdyy6h_9h8dfMdMBEeV-JBb0MXWzNvQRTpACzGa0VLU
Message-ID: <CAN+1HbpNjycEqwALJkLyLOiYokP7CzJmW3sU8LOm5VzrmKkFfQ@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Thanos Apollo <public@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000592b9c0650ed2fb0"
X-Spam-Score: 2.7 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  On Sun, May 3, 2026 at 12:01 PM Thanos Apollo wrote: > Rahul
    Martim Juliato writes: > > One note for the record: if you batch-fontify
   multiple text fragments in > a single buffer joined with a null byte (\0)
   as separator, tree-sitter > produces an ERR [...] 
 
 Content analysis details:   (2.7 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:a2f listed in]
                             [list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (shipmints[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
  0.0 HTML_MESSAGE           BODY: HTML included in message
  1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                             [URIs: thanosapollo.org]
X-Debbugs-Envelope-To: 80740
Cc: Eshel Yaron <me@HIDDEN>, Yuan Fu <casouri@HIDDEN>,
 Rahul Martim Juliato <rahuljuliato@HIDDEN>, 80740 <at> debbugs.gnu.org,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.7 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  On Sun, May 3, 2026 at 12:01 PM Thanos Apollo wrote: > Rahul
    Martim Juliato writes: > > One note for the record: if you batch-fontify
   multiple text fragments in > a single buffer joined with a null byte (\0)
   as separator, tree-sitter > produces an ERR [...] 
 
 Content analysis details:   (1.7 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                             [URIs: thanosapollo.org]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:a2f listed in]
                             [list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (shipmints[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
  0.0 HTML_MESSAGE           BODY: HTML included in message
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

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

On Sun, May 3, 2026 at 12:01=E2=80=AFPM Thanos Apollo <public@thanosapollo.=
org>
wrote:

> Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
>
> One note for the record: if you batch-fontify multiple text fragments in
> a single buffer joined with a null byte (\0) as separator, tree-sitter
> produces an ERROR node (UNEXPECTED '\0') and enters error recovery.
>

I think this is a limitation of the markdown grammar and the underlying
tree-sitter library doesn't care.  If you think the grammar should support
null bytes, I encourage you to submit an issue here
https://github.com/tree-sitter-grammars/tree-sitter-markdown (or even a
patch if you're willing) but nobody has responded to our bug reports or
attempts to start a dialog.  The grammar seems untended.  The core team did
respond to a bug we reported and altered the documentation which was
missing a key detail.

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

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Sun, May 3, 2026 at 12:01=E2=80=AFPM Thanos Apollo &lt;<a href=3D"mailto=
:public@HIDDEN">public@HIDDEN</a>&gt; wrote:</span></di=
v></div><div class=3D"gmail_quote gmail_quote_container"><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">Rahul Martim Juliato &lt;<a href=3D"mailto=
:rahuljuliato@HIDDEN" target=3D"_blank">rahuljuliato@HIDDEN</a>&gt; w=
rites:<br><br>
One note for the record: if you batch-fontify multiple text fragments in<br=
>
a single buffer joined with a null byte (\0) as separator, tree-sitter<br>
produces an ERROR node (UNEXPECTED &#39;\0&#39;) and enters error recovery.=
<br></blockquote><div><br></div><div><div class=3D"gmail_default" style=3D"=
font-family:monospace">I think this is a limitation of the markdown grammar=
 and the underlying tree-sitter library doesn&#39;t care.=C2=A0 If you thin=
k the grammar should support null bytes, I encourage you to submit an issue=
 here=C2=A0<a href=3D"https://github.com/tree-sitter-grammars/tree-sitter-m=
arkdown">https://github.com/tree-sitter-grammars/tree-sitter-markdown</a>=
=C2=A0(or even a patch if you&#39;re willing) but nobody=C2=A0has responded=
 to our bug reports or attempts to start a dialog.=C2=A0 The grammar seems =
untended.=C2=A0 The core team did respond to a bug we reported and altered =
the documentation which was missing a key detail.</div></div></div></div>

--000000000000592b9c0650ed2fb0--




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

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


Received: (at 80740) by debbugs.gnu.org; 3 May 2026 16:01:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun May 03 12:01:38 2026
Received: from localhost ([127.0.0.1]:57157 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wJZGD-0005W6-J1
	for submit <at> debbugs.gnu.org; Sun, 03 May 2026 12:01:38 -0400
Received: from sendmail.purelymail.com ([34.202.193.197]:35796)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <public@HIDDEN>)
 id 1wJZG9-0005Ul-Qq
 for 80740 <at> debbugs.gnu.org; Sun, 03 May 2026 12:01:35 -0400
DKIM-Signature: a=rsa-sha256;
 b=AozlLyuwlb7jtaPfKtnR+1cC5gJjvF2exmqZmXXP+R0pjk+JVfxUSR3ndnlKMu6wvuNMjq72bG+dbD73I4zbVwlxm32KDu3Lo1jC+nh518QCDIdModUc8/mUYqsE2Virm2W0MgLlPfIBtqntWj7MY3MqNJP5z4r4QsxSVX1NnIsm7b1XuwW7ytHuJO9+g+4s+QIbQFasAc6s0L91Uwl1cQt1Iu0l2r3LyBx25LFy4m+PXvcCVWM0xPKq30cep7MfirrLqSfIW6+HY8KvRPJOlDI3qHOTT1GnIgUXLeMbuyw3rWVDWSJVX5gvlSwZHJEj42CayKom26aXnQw4T9MEqQ==;
 s=purelymail3; d=thanosapollo.org; v=1;
 bh=m82IJQe30V4AnpaSdzyZs5QUaIC6p4vLnZJCdFcVOAA=;
 h=Received:From:To:Subject:Date; 
DKIM-Signature: a=rsa-sha256;
 b=rYhv3i9feO3iI/EeetIH/K3JvnaUNt7dGWOE+rgpPLU+2Sv57f6vie5wjfNHZhCSqCBh/sFB6iqAYiJMzDHWpn7riKuaXSI5odG4o69vFuNZoDUhQ9tS8iOAvb9xmuGVhTU5cQ71CifHExOo3eFQqruSjPNww9H2LexAWPMOcABvSqkaMzNZKNRQU+1i9Zg1115ZtC8CkxfO+vmFroz4LlOhncWlD8LPGg1pOQtML7Xk0kE6d5AkEbOEByo4TXLSPy1YciKqg1zvdp92ziNm/rbh7LkK7AX0BGgsIAvwoFaXgzUmdpCNaK5t9wH1cdiSYjgdH04WQnOZtiAtIhQbdg==;
 s=purelymail3; d=purelymail.com; v=1;
 bh=m82IJQe30V4AnpaSdzyZs5QUaIC6p4vLnZJCdFcVOAA=;
 h=Feedback-ID:Received:From:To:Subject:Date; 
Feedback-ID: 329276:26957:null:purelymail
X-Pm-Original-To: 80740 <at> debbugs.gnu.org
Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -708078065; 
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Sun, 03 May 2026 16:01:13 +0000 (UTC)
From: Thanos Apollo <public@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>, Yuan Fu <casouri@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <m2mryi7jcx.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN> <m2ik982h8d.fsf@HIDDEN>
 <871pfvtso9.fsf@HIDDEN> <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
 <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
 <m2mryi7jcx.fsf@HIDDEN>
Date: Sun, 03 May 2026 19:04:04 +0300
Message-ID: <87fr48mqdn.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Spam-Score: 1.7 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview: Rahul Martim Juliato <rahuljuliato@HIDDEN> writes: >
 Please
 find the updated patch attached. Thanks, this works fine for forgejo.el and
 having built-in support for markdown would be indeed useful. 
 Content analysis details:   (1.7 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_MSPIKE_H4      RBL: Very Good reputation (+4)
 [34.202.193.197 listed in wl.mailspike.net]
 1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
 [URIs: thanosapollo.org]
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 80740
Cc: Eshel Yaron <me@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 Rahul Martim Juliato <rahuljuliato@HIDDEN>, 80740 <at> debbugs.gnu.org,
 =?utf-8?Q?St=C3=A9phane?= Marks <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.7 (/)

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

Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:

> Please find the updated patch attached.

Thanks, this works fine for forgejo.el and having built-in support for
markdown would be indeed useful.

One note for the record: if you batch-fontify multiple text fragments in
a single buffer joined with a null byte (\0) as separator, tree-sitter
produces an ERROR node (UNEXPECTED '\0') and enters error recovery.

This can cause faces like strikethrough to bleed across fragment
boundaries.

Regex-based modes (gfm-mode, markdown-mode) tolerate null bytes
silently, so this is a behavioral difference when switching to
markdown-ts-mode.  A form feed (^L) flanked by blank lines works as a
drop-in replacement; tree-sitter parses it as a clean paragraph break.


=2D-=20
Thanos Apollo =E2=98=A7
https://thanosapollo.org

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEYrdY0PZxmTi8Cc7KM59zbDpyCSgFAmn3cfQACgkQM59zbDpy
CSgtUA//RygWAirXoCx1W5044CtadJRU8ARnuePHkRT30cQnJESXHGkzJD3OI1rl
JkrDl7HrXLbMaOmkk7r1xUROMn00VRK7rLKQpvOaVkAFGqWzD/YxZ7YgeyTNIOEp
2TTm03lgRUR7030PNWXnSjk/qH1xJeAYy8GGNa5ubiEy/H5sVSBVucSt2pjtsx22
jhq3w0yj2KFMhkEF51NG+88Z3tD6veuqN9qQ1fYC1AHAqspSruWa9H6DIfKb6cjq
PPWwhGOIpn97kDmuM6ENz/LtSODd0sPK5U4KFe+CMTGmvEW48NUKQB4OVdxB1uBE
mCrrJfmG6VFrRSmXzxghDCMScwAycQ+YlNnLAy5EzJqQK2Prkn8sJN8wIs3Tqb6K
ftg7iM9c7WB/6/Nbxt2Yvhdan36uXpxHrS6r4KaXDXgSWZ/bD9saDj2Qy6zY7Aa5
gnHjN3PTTUynUb4gG/IeHC6x5dbe0h02kb64C5n84ai1e+FB6ZI6/5t8GudrFDzo
Ks2IrkkBNsIzzJ2kVbWeb2k/TOK+mij4JvJIdr11z2WKKm1nOFlK4jcw90ycIUa7
qs0uGbcrZm36VYX6lmXupueNW6eZVisANSWsnRbLCkSIsfi0IiChUY1GYa9QSVn3
u7prIDUFrOcEjSsXwDdBrR3nxMZA5BXljkzC0X2b3K0CdUF5cBc=
=AVCx
-----END PGP SIGNATURE-----
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 3 May 2026 02:24:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 02 22:24:01 2026
Received: from localhost ([127.0.0.1]:51952 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wJMUz-0002fE-Bi
	for submit <at> debbugs.gnu.org; Sat, 02 May 2026 22:24:01 -0400
Received: from mail-dl1-x1235.google.com ([2607:f8b0:4864:20::1235]:48361)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wJMUw-0002er-3c
 for 80740 <at> debbugs.gnu.org; Sat, 02 May 2026 22:23:58 -0400
Received: by mail-dl1-x1235.google.com with SMTP id
 a92af1059eb24-12c8ccc7755so4455088c88.0
 for <80740 <at> debbugs.gnu.org>; Sat, 02 May 2026 19:23:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777775036; x=1778379836; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=xAwdDohjdUBNJOOyc6+T5msHyr5Jot4YNPOsdwyekcM=;
 b=XrqQ+5PI6N7j8KLm0KBV6Lk5IysUAtW/nsb505DZo3UMeE6MOODgXYsKyUQ19z4XTz
 xbZzHxMLlJ6Wy6kmKHcMKO98ANePi1k0b7P+bZCvcTfEglDsZPqJiEiw7nl99NNy0pA8
 t0ZQPu7XHyDxNfMmUN5JBG9faowrt6zOgJ9JByaQelum87GH9+xMvhgIlmIZRN/3klui
 sZivui5XrSc90EIyv9nn0MEUV0DOZtlWWQBoS9QoNH367wXe6YgyH5irvYUTIN8Wt3dD
 hsqeF32rTdNWB7nVK/RO/Z324kn9kR37VhF/yBU8xvx6DLoMy6gfVF1cQLQxfvMJSBR+
 CC7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777775036; x=1778379836;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=xAwdDohjdUBNJOOyc6+T5msHyr5Jot4YNPOsdwyekcM=;
 b=h+/17t0wYIMJTUhILgmTG4ZX3Ht3Dk13GPcwZNDQPrAos/Qap0WeBfrVcV3JKd3n6e
 oL112N4j8CuhZJl2ngLtEF8raA6EeJepISMYUBIjNrCRA4J4x3GC4SDi5E82592UmHhf
 rXqLXa5pg6y3QSNh7iXgBGfQf/3LIBa+Q2T+FG8awnQOflJb4NRb4PvJ1HvvlB6MpBoO
 f9UZcG0QwH+Eutof7IKJrRHjnSgederAZodrTzCQAPFAPRLKUkCfhsweO1u0INyLuwwS
 +NU4lYm/aKqfvtR5/b6YVGYz6GPuxWnCcxh/YD0f9PWht/2Pi0qJH5NK9QnPR/A1NIBv
 QOYA==
X-Forwarded-Encrypted: i=1;
 AFNElJ8j6RoDK3zEbyS6Vg4ZByQlvy2uvXyXkZw6nKis3KNVZFbdcEaFpnpRZ4iVArUlMK8mft3SCQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzCy24oYhbMT4q65DStDxg02fV5Z8UIStXmQ/GNLtmzSC0DfNhO
 CVVXNDDxd9o1/bIag88O1SawzNxpclsfUInAvtK0uxeavqh4NTjr8n1t
X-Gm-Gg: AeBDieuWjr1p3xkDRPDYjsVpSwY84EVc6UxCsWhHlt+u8Whbu8RZY8SelxOLtMtZVxT
 fxDJCyLzHhN/E/mioN1Z7CGm43CL/D0ZgKXGcIpMkGzB0Sb/YNvMQJ4pobnM0KsjYkB2ZgjCYPI
 JrNZ6X9f/Jff5TlliuY44cftdChY4LyKvmMMFGjfJ0Gfe1by6COcRqgL9XFJUgwtP94vWqBh+mJ
 AAuZPRYPOkzs2ADnRQkGXPd1fpkGAMDQGJRqSwnBf1hBSM18wmVhknZBfOqUxxzmzl/2xiv1P92
 r1vM6NwY+5qTQAQFc/gFrva+OSbh5JNsPLVTL3yeLOiCEjOOeOVukxClDAWULUvwx+I40nu1u31
 Tk0CBRgPNk/b2yfzBP+824Hzv7qPxOJ0AacnutVllgHIpflL4U3yB3PoE1yIJS7DxKzfAXt9G8E
 Ufh9tlGmjNDCTsrtFZL+C/o5GGAVt6cNopISI9sGk+nsZ4P3A0y2wbf7G0FqTeBdl04Tg0XIjLy
 BYy3tqyJbY2S59W1u9PZO3Ynu8B3iCgpzb+b7VhwB3IYj8Eq1pW29M0
X-Received: by 2002:a05:7022:4192:b0:128:d24a:a5ba with SMTP id
 a92af1059eb24-12dfd821c0emr2270350c88.20.1777775035719; 
 Sat, 02 May 2026 19:23:55 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-77.dial-up.telesp.net.br.
 [201.93.59.77]) by smtp.gmail.com with ESMTPSA id
 a92af1059eb24-12df8431037sm9957912c88.12.2026.05.02.19.23.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 02 May 2026 19:23:54 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <m2mryi7jcx.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN> <m2ik982h8d.fsf@HIDDEN>
 <871pfvtso9.fsf@HIDDEN> <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
 <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
 <m2mryi7jcx.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Sat, 02 May 2026 23:23:49 -0300
Message-ID: <m23409nscq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: 80740 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Rahul Martim Juliato <rahuljuliato@HIDDEN>, Eshel Yaron <me@HIDDEN>,
 =?utf-8?Q?St=C3=A9phane?= Marks <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:

> St=C3=A9phane Marks <shipmints@HIDDEN> writes:
>
>> On Fri, May 1, 2026 at 1:54=E2=80=AFPM Eshel Yaron <me@HIDDEN> w=
rote:
>>
>>  Hi,
>>
>>  St=C3=A9phane Marks <shipmints@HIDDEN> writes:
>>
>>  > On Fri, May 1, 2026 at 10:26=E2=80=AFAM Rahul Martim Juliato <rahulju=
liato@HIDDEN> wrote:
>>  >
>>  >  Eshel Yaron <me@HIDDEN> writes:
>>  >
>>  >  > Hi,
>>  >  >
>>  >  > Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
>>  >  >
>>  >  >> +(defun markdown-ts-mode-install-parsers (arg)
>>  >  >> +  "Install `markdown-ts-mode' tree-sitter language parsers.
>>  >  >> +If needed, install the required parsers for `markdown' and `mark=
down-inline'.
>>  >  >> +With a prefix argument, ARG, if needed, install parsers for `htm=
l',
>>  >  >> +`yaml', and `toml'."
>>  >  >> +  (interactive "P")
>>  >  >> +  (unless (treesit-ready-p 'markdown t)
>>  >  >> +    (treesit-install-language-grammar 'markdown))
>>  >  >
>>  >  > Note that this `treesit-ready-p' is not quite right, because
>>  >  > treesit-ready-p is sensitive to the current buffer.  Namely, this =
will
>>  >  > return nil if you invoke this command in a large buffer of any kin=
d,
>>  >  > even if the markdown parser is already installed.
>>  >  > Yes, treesit-ready-p is confusing.  See also bug#80909.
>>  >  >
>>  >  >> +  (unless (treesit-ready-p 'markdown-inline t)
>>  >  >> +    (treesit-install-language-grammar 'markdown-inline))
>>  >  >> +  (when arg
>>  >  >> +    (unless (treesit-ready-p 'html t)
>>  >  >> +      (require 'html-ts-mode)
>>  >  >> +      (treesit-install-language-grammar 'html))
>>  >  >> +    (unless (treesit-ready-p 'yaml t)
>>  >  >> +      (require 'yaml-ts-mode)
>>  >  >> +      (treesit-install-language-grammar 'yaml))
>>  >  >> +    (unless (treesit-ready-p 'toml t)
>>  >  >> +      (require 'toml-ts-mode)
>>  >  >> +      (treesit-install-language-grammar 'toml))))
>>  >  >>=20=20
>>  >  >>  ;;;###autoload
>>  >  >>  (define-derived-mode markdown-ts-mode text-mode "Markdown"
>>  >  >> -  "Major mode for editing Markdown using tree-sitter grammar."
>>  >  >> +  "Major mode for editing Markdown using tree-sitter grammar.
>>  >  >> +NOTE: See `markdown-ts--set-up-inline'."
>>  >  >> +  (if (and (treesit-ensure-installed 'markdown)
>>  >  >> +           (treesit-ensure-installed 'markdown-inline))
>>  >  >> +      (markdown-ts--set-up)
>>  >  >
>>  >  > Here there is another, related problem: since commit d9691858,
>>  >  > treesit-ensure-installed no longer checks treesit-max-buffer-size,=
=20
>>  >  > so this will try to create a parser even in a buffer that is too b=
ig.
>>  >  > (This problem is common to many TS-modes in core.)
>>  >  >
>>  >  > FWIW, my suggestion in bug#80909 was to move the buffer size check=
 out
>>  >  > of treesit-ready-p and into treesit-parser-create, which would have
>>  >  > nullified both of these issues.
>>  >  >
>>  >  >
>>  >  > Best,
>>  >  >
>>  >  > Eshel
>>  >
>>  >  Hi!
>>  >
>>  >  Eshel, thank you for noticing these issues, and for the pointer to
>>  >  bug#80909.  I spent some time reading what you provided and digging =
into
>>  >  the recent change in d9691858.
>>  >
>>  >  The attached patch (new) addresses both problems:
>>  >
>>  >  - In markdown-ts-mode-install-parsers, replace treesit-ready-p with
>>  >    treesit-language-available-p.  The install function only needs to
>>  >    know whether the grammar library is on disk, not whether the curre=
nt
>>  >    buffer is within size limits.
>>
>>  LGTM.
>>
>>  >  - In define-derived-mode markdown-ts-mode, separate the two concerns:
>>  >    call treesit-ensure-installed for both languages first (which hand=
les
>>  >    auto-install if treesit-auto-install-grammar is set), then gate the
>>  >    actual mode setup on treesit-ready-p, which checks both language
>>  >    availability and buffer size.
>>
>>  This one also look good, with a little caveat about this part:
>>
>>     ;;;###autoload
>>     (define-derived-mode markdown-ts-mode text-mode "Markdown"
>>    -  "Major mode for editing Markdown using tree-sitter grammar."
>>    +  "Major mode for editing Markdown using tree-sitter grammar.
>>    +NOTE: See `markdown-ts--set-up-inline'."
>>    +  (treesit-ensure-installed 'markdown)
>>    +  (treesit-ensure-installed 'markdown-inline)
>>    +  (if (and (treesit-ready-p 'markdown t)
>>    +           (treesit-ready-p 'markdown-inline t))
>>    +      (markdown-ts--set-up)
>>    +    (warn "markdown-ts-mode cannot be set up; using fundamental-mode.
>>    +The tree-sitter parsers `markdown' and `markdown-inline' were not fo=
und.
>>    +Use the command `markdown-ts-mode-install-parsers' to install them.
>>    +With a prefix argument, it can also install optional parsers.")
>>    +    (fundamental-mode)))
>>
>>  Note that this triggers the warning also when the current buffer is too
>>  large, in which case the first sentence is correct, but the rest might
>>  be false (the parsers may be available, perhaps even just-installed.)
>>  You could call treesit-ready-p without the QUIET=3Dt argument, and it
>>  should yield the correct error message on failure.  Of course, it
>>  doesn't include the hint about markdown-ts-mode-install-parsers...
>>
>> So maybe until treesit-max-buffer-size checking is better rationalized, =
we let bind treesit-max-buffer-size to most-positive-fixnum and provide a w=
arning
>> rather than refusal.
>
> Thanks Eshel and St=C3=A9phane.
>
> I went this route: treesit-max-buffer-size is let-bound to
> most-positive-fixnum around the treesit-ready-p check, so the mode
> activates in large buffers rather than refusing.
>
> With the size check bypassed, the only remaining failure path is a
> genuinely missing grammar, so the "parsers not found" warning stays
> accurate. A comment in the code now references bug#80909 as the signal
> to revisit this workaround.
>
>>
>>  >  Yuan, St=C3=A9phane, Eshel, does this look right to you?
>>  >
>>  > Seems good at first glance.
>>  >
>>  > One can always let-bind treesit-max-buffer-size around treesit-ready-=
p to avoid the buffer size
>>  > restriction, though I'd prefer an argument be exposed to inhibit that=
 check,  better invert it so that
>>  > it's an extra check not the default check.  One can install a parser =
in a small buffer that grows beyond
>>  > the size check which is a false sense of security.
>>
>
> Please find the updated patch attached.


Found a small bug in setext heading fontification: faces would stack on
the same chars across incremental refontifications.

Folding the fix into this patch since it hasn't been merged yet.

Updated patch attached.


--
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSAzYTZhYTMzODdlNmRlNzVkOTk5MTUzMmIxNjE2OGVkMDdjYzY3Nzc5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYSBtb2RlIG1lbnUs
IGFuZCB0YWJsZSBlZGl0aW5nLiAgQWRkCidtYXJrZG93bi10cy1tb2RlLXguZWwnIHdpdGggY29u
dmVyc2lvbi9leHBvcnQgYW5kIFRPQyBzdXBwb3J0LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwKUGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRz
IGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29tbWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9y
IGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMsIGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0
aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUtc2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUg
J2dvdG8tYWRkciwgeHJlZiwgaWNvbnMpOiBOZXcgcmVxdWlyZW1lbnRzLgoobWFya2Rvd24tdHMp
OiBOZXcgY3VzdG9taXphdGlvbiBncm91cCB3aXRoIDp2ZXJzaW9uIGFuZAo6cGFja2FnZS12ZXJz
aW9uIHRhZ3MuCihtYXJrZG93bi10cy1oaWRlLW1hcmt1cCk6IEFkZCA6dmVyc2lvbiBhbmQgOnBh
Y2thZ2UtdmVyc2lvbi4KKG1hcmtkb3duLXRzLWVsbGlwc2lzKTogTmV3IG9wdGlvbiBmb3IgZm9s
ZGVkIGhlYWRpbmcgZWxsaXBzaXMuCihtYXJrZG93bi10cy1tZW51LWJhci1zaG93KTogTmV3IG9w
dGlvbiB0byB0b2dnbGUgbW9kZSBtZW51LgoobWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nKTog
TmV3IG9wdGlvbiBmb3IgZGVmYXVsdCBmb2xkCmxldmVsLgoobWFya2Rvd24tdHMtaW5saW5lLWlt
YWdlcyk6IE5ldyBvcHRpb24gdG8gZGlzcGxheSBpbmxpbmUKaW1hZ2VzLgoobWFya2Rvd24tdHMt
aW1hZ2UtbWF4LXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgaW1hZ2UgbWF4IHdpZHRoLgoobWFya2Rv
d24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcyk6IE5ldyBvcHRpb24gZm9yCnJlbW90
ZSBpbWFnZSBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUpOiBO
ZXcgaGVscGVyIHRvIHJlc29sdmUKZGlzcGxheSB2YWx1ZXMgdXNpbmcgY2hhci1kaXNwbGF5YWJs
ZS1wLgoobWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNr
ZWQgY2hlY2tib3gKZGlzcGxheSBzdHJpbmcgb3IgaWNvbi4KKG1hcmtkb3duLXRzLWNoZWNrZWQt
Y2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKY2hlY2tlZCB2YXJpYW50
LgoobWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgdW5jaGVj
a2VkCmNoZWNrYm94IGRpc3BsYXkgc3RyaW5nIG9yIGljb24uCihtYXJrZG93bi10cy11bmNoZWNr
ZWQtY2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKdW5jaGVja2VkIHZh
cmlhbnQuCihtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9u
IGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5IGNoYXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcgb3B0aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4g
cGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xhc2ggaGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3Vw
IGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRp
b24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBwbGFjZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJk
IGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCmNvZGUgYmxvY2sgY29u
dGV4dCBtb2RlIGxpZ2h0ZXIgc3RyaW5nLgoobWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2Nr
LW1vZGUtd2FybmluZ3MpOiBOZXcgb3B0aW9uIHRvCmluaGliaXQgY29kZS1ibG9jayBtYWpvci1t
b2RlIG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgZGVmYXVsdAp0YWJsZSBjb2x1bW4gd2lkdGguCiht
YXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZSk6IE5ldyBvcHRpb24gdG8gZW5hYmxlIHRhYmxl
Cm1vZGUuCihtYXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduKTogTmV3IG9wdGlvbiBmb3IgdHJp
Z2dlcnMgdGhhdApjYXVzZSBhdXRvbWF0aWMgdGFibGUgYWxpZ25tZW50LgoobWFya2Rvd24tdHMt
dGFibGUtYWxpZ24tZmVhdHVyZXMpOiBOZXcgb3B0aW9uIGZvciB0YWJsZSBhbGlnbgpmZWF0dXJl
cy4KKG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCm1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUgbGlnaHRlciBzdHJpbmcuCihtYXJrZG93bi10cy1lbXBo
YXNpcywgbWFya2Rvd24tdHMtYm9sZCkKKG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gsIG1hcmtk
b3duLXRzLWxpbmspCihtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uLCBtYXJrZG93bi10cy1j
b2RlLXNwYW4pCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLCBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1hcmt1cC1oaWRkZW4pCihtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrLCBtYXJrZG93
bi10cy1odG1sLXRhZykKKG1hcmtkb3duLXRzLWh0bWwtYmxvY2ssIG1hcmtkb3duLXRzLXRoZW1h
dGljLWJyZWFrKQoobWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSkKKG1hcmtkb3duLXRzLW51
bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSwgbWFya2Rvd24tdHMtbGF0ZXgpCihtYXJrZG93bi10
cy10YWJsZS1oZWFkZXIsIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCihtYXJrZG93bi10cy10YWJs
ZS1kZWxpbWl0ZXItY2VsbCwgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpCihtYXJrZG93bi10
cy10YXNrLWNoZWNrZWQpOiBOZXcgZmFjZXMuCihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
YmFja3NsYXNoKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4p
CihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpCihtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstc3BhY2UtaGlkZGVuKTogTmV3IGZhY2VzIGZvciB0aGUKdHdvIGhhcmQtbGluZS1i
cmVhayB2YXJpYW50cywgd2l0aCBkaXN0aW5jdCBzaG93bi9oaWRkZW4KYXBwZWFyYW5jZXMuCiht
YXJrZG93bi10cy1pbi1jb2RlLWJsb2NrKTogTmV3IGZhY2UgZm9yIHdoZW4gcG9pbnQgaXMgaW5z
aWRlIGEKZmVuY2VkIGNvZGUgYmxvY2suCihtYXJrZG93bi10cy10YWJsZSk6IE5ldyBmYWNlIGZv
ciBNYXJrZG93biBwaXBlIHRhYmxlCmJhY2tncm91bmQuCihtYXJrZG93bi10cy1pbi10YWJsZSk6
IE5ldyBmYWNlIGZvciBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlCndoZW4gcG9pbnQgaXMgaW4g
YSB0YWJsZS4KKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lKTogTmV3IHZhcmlhYmxlIGZvciBs
aWdodHdlaWdodCBzZXR1cAppbiBlbWJlZGRlZCBpbmxpbmUgbWFya2Rvd24tdHMtbW9kZSBidWZm
ZXJzIHVzZWQgYnkgY29kZSBibG9jawpjb21tYW5kcy4KKG1hcmtkb3duLXRzLWRlZmF1bHQtY29k
ZS1ibG9jay1tb2RlKTogTmV3IHZhcmlhYmxlIHRvIGRlZmluZQpkZWZhdWx0IG1vZGUgZm9yIGFu
b255bW91cyBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZvbnRpZnktY29kZS1ibG9ja3MtbmF0
aXZlbHkpOiBOZXcgb3B0aW9uIHRvCmVuYWJsZS9kaXNhYmxlIG5hdGl2ZSBmb250aWZpY2F0aW9u
IG9mIGZlbmNlZCBjb2RlIGJsb2NrCmNvbnRlbnRzLgoobWFya2Rvd24tdHMtZW5hYmxlLWNvZGUt
YmxvY2stY29udGV4dC1tb2RlKTogTmV3IG9wdGlvbiB0bwplbmFibGUvZGlzYWJsZSBjb2RlIGJs
b2NrIGNvbnRleHQgaW50ZWdyYXRpb24uCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKTog
TmV3IHZhcmlhYmxlIHJlcGxhY2luZwptYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1t
YXAgYW5kCm1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwIHdpdGggdW5pZmll
ZCBsYW5ndWFnZSB0bwptb2RlIG1hcHBpbmcgaW5jbHVkaW5nIGhldXJpc3RpYyBsb29rdXAuCiht
YXJrZG93bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcyk6IE5ldyB2YXJp
YWJsZQpsaXN0aW5nIHRyZWUtc2l0dGVyIG1vZGVzIHdob3NlIGZvbnRpZmljYXRpb24gb2YgY29k
ZSBibG9jawpjb250ZW50IHNob3VsZCBiZSBoYXJ2ZXN0ZWQgdmlhIGEgdGVtcG9yYXJ5IGJ1ZmZl
ci4KKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpOiBOZXcgY29uc3RhbnQgZm9yIHRh
YmxlIGV4cG9ydApvdXRwdXQgYnVmZmVyIG5hbWUuCihtYXJrZG93bi10cy0tdGFibGUtcm93LXR5
cGVzLCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1k
ZWxpbWl0ZXItY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcyk6IE5ldyBjb25zdGFudHMgZm9yCnBpcGUgdGFibGUgbm9kZSB0eXBlIGNsYXNzaWZp
Y2F0aW9uLgoobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24pOiBOZXcgZnVuY3Rpb24gdG8g
Y3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMgd2l0aCBtYWlsdG8sIGJyb3dzZS11cmwsIGFu
ZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0
aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGxpbmsgZGVzdGluYXRpb25zIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSwgbWFya2Rvd24tdHMt
LWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMp
CihtYXJrZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZik6IE5ldyBsaW5rIHJlZmVyZW5jZSBkZWZp
bml0aW9uCmNhY2hlIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBwZXIgQ29tbW9uTWFy
ayBzcGVjLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKTogTmV3IGZvbnRpZmllciBm
b3IgaW5saW5lLApyZWZlcmVuY2UsIHNob3J0Y3V0LCBhbmQgY29sbGFwc2VkIGxpbmtzIGFzIGNs
aWNrYWJsZSBidXR0b25zLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspOiBOZXcgZm9u
dGlmaWVyIGZvciBVUkkgYW5kIGVtYWlsCmF1dG9saW5rcyB3aXRoIGFuZ2xlIGJyYWNrZXQgaGlk
aW5nLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCihtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbik6IE5ldyBmb250aWZpZXJzIGZvcgpsaW5rIHJl
ZmVyZW5jZSBkZWZpbml0aW9ucy4KKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1Yi1zdHJpcC1yZSwg
bWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQoobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jLCBtYXJr
ZG93bi10cy0tZXhwbGljaXQtaWQtcmUpCihtYXJrZG93bi10cy0taGVhZGluZy10ZXh0LWFuZC1p
ZCkKKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlKQoobWFya2Rvd24tdHMtLWhlYWRpbmct
aWQtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24t
dHMtLWhlYWRpbmctaWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFn
bWVudCBsaW5rIHN1cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMu
CihtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5
LWxhdGV4LWJsb2NrKTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdy
YXBoIHZhbGlkYXRpb24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTog
TmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNp
ZGUgTGFUZVggYmxvY2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIg
dXNpbmcgb3JnLWVudGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3Bl
cnR5IGZvciBkZWNvZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTog
TmV3IGZvbnRpZmllciBzaG93aW5nIHRoZQpjb25maWd1cmVkIGNoZWNrYm94IGdseXBoIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhayk6
IE5ldyBmb250aWZpZXIgZm9yCidoYXJkX2xpbmVfYnJlYWsnIG5vZGVzLgoobWFya2Rvd24tdHMt
LWZvbnRpZnktaGVhZGluZyk6IE5ldyBmb250aWZpZXIgZm9yIEFUWCBhbmQgU2V0ZXh0CmhlYWRp
bmdzLgoobWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspOiBOZXcgZm9udGlmaWVy
IHNob3dpbmcKaG9yaXpvbnRhbCBsaW5lIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3du
LXRzLS1mb250aWZ5LWNvZGUtYmxvY2spOiBOZXcgZm9udGlmaWVyIGFwcGx5aW5nCmJhY2tncm91
bmQgb3ZlcmxheSB0byBjb2RlIGJsb2NrcyB3aXRoIGxhbmd1YWdlIGFuZCBtb2RlCnByb3BlcnRp
ZXMuCihtYXJrZG93bi10cy1hdC1jb2RlLWJsb2NrLXApCihtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LWxhbmd1YWdlLWF0KQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vz
c29ycyBmb3IgY29kZSBibG9jawpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1l
bnUtY29kZS1ibG9jay1ub2RlLXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRl
dGVjdGlvbi4KKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXApCihtYXJrZG93bi10
cy0tZm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0YW5kYWxv
bmUgYW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAp
CihtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMtLWZvbnRp
ZnktYmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEgaml0LWxv
Y2sgdXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5n
cyk6IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJzLCBhbmQg
bmV3IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxlbWVudHMu
ICBBbHNvIGFkZCBhIG5ldyAnZXJyb3InIGZvbnQtbG9jayBmZWF0dXJlCmhpZ2hsaWdodGluZyB0
cmVlLXNpdHRlciBFUlJPUiBub2Rlcy4KKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdl
cykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rlcyk6IE5ldyBidWZmZXItbG9j
YWwgYWxpc3RzCmZvciBjb2RlIGJsb2NrIGxhbmd1YWdlIHRyYWNraW5nLgoobWFya2Rvd24tdHMt
LWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24pOiBSZW5hbWUgZnJvbQptYXJrZG93
bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZpZ3Mgd2l0aCBkZWxheS1tb2RlLWhvb2tzLgoobWFy
a2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlcik6IFJlbmFtZSBmcm9tCm1hcmtkb3du
LXRzLS1hZGQtY29uZmlnLWZvci1tb2RlLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUp
OiBOZXcgaGVscGVyIGV4dHJhY3RpbmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9j
b250ZW50IG5vZGUuCihtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpOiBOZXcgYnVm
ZmVyLWxvY2FsIGhhc2ggdGFibGUKY2FjaGluZyBmb250aWZpY2F0aW9uIHJlc3VsdHMgZm9yIG5v
bi10cmVlLXNpdHRlciBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1j
b2xsZWN0LWZhY2VzKTogTmV3IGZ1bmN0aW9uCmhhcnZlc3RpbmcgZmFjZSBwcm9wZXJ0aWVzIGZy
b20gYSBtb2RlIGluIGFuIGluZGlyZWN0IG9yCnRlbXBvcmFyeSBidWZmZXIuCihtYXJrZG93bi10
cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10cmVl
LXNpdHRlciBtb2RlcyB2aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlzdGlj
IG1vZGUgbmFtZSBwcm9iaW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2Up
OiBSZW5hbWUgZnJvbQptYXJrZG93bi10cy0tY29udmVydC1jb2RlLWJsb2NrLWxhbmd1YWdlIHdp
dGggc3VwcG9ydCBmb3Igbm9uLXRzCm1vZGVzIGFuZCByZWN1cnNpdmUgbWFya2Rvd24gaGFuZGxp
bmcuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQoobWFya2Rvd24tdHMtY29kZS1i
bG9jay10aGluZy1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1h
bmRzKTogTmV3IGNvbW1hbmQgbGlzdHMgZm9yCmNvZGUtYmxvY2sgY29udGV4dCBleGVjdXRpb24u
CihtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlKQoobWFya2Rv
d24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2spCihtYXJrZG93bi10cy0tY29k
ZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMpCihtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jayk6IE5ldyBjb2RlIGJsb2NrIG1pbm9yCm1vZGUgd2l0aCB0ZW1wLWJ1ZmZl
ciBjb21tYW5kIGRpc3BhdGNoLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZSk6IE5l
dyBjb21tYW5kIGZvciBuZXdsaW5lCmluc2lkZSBjb2RlIGJsb2NrcywgZGlzcGF0Y2hpbmcgdG8g
dGhlIGJsb2NrJ3MgbW9kZS4KKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyk6IFVwZGF0ZSBy
YW5nZSBjb25maWd1cmF0aW9uOwpyZW1vdmUgOnJhbmdlLWZuIHRyZWVzaXQtcmFuZ2UtZm4tZXhj
bHVkZS1jaGlsZHJlbi4KKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCihtYXJr
ZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSk6IE5ldyBoZWxwZXJzIGZvciBpbWFnZQpvdmVy
bGF5IG1hbmFnZW1lbnQgZHVyaW5nIG91dGxpbmUgZm9sZC91bmZvbGQuCihtYXJrZG93bi10cy0t
b3V0bGluZS1pbnZpc2libGUtcCk6IE5ldyBoZWxwZXIgdGVzdGluZyB3aGV0aGVyIGEKcG9zaXRp
b24gaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJlZ2lvbi4KKG1hcmtkb3duLXRzLS1ob3N0
LXJhbmdlcy1ub3RpZmllcik6IE5ldyBmdW5jdGlvbiBwcnVuaW5nIHN0YWxlCmNvZGUgYmxvY2sg
b3ZlcmxheXMgd2hlbiB0aGUgaG9zdCBwYXJzZSB0cmVlIGNoYW5nZXMuCihtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSk6IE5ldyBoZWxwZXIgc2lnbmFsaW5nIGEKdXNlci1lcnJvciB3aGVu
IHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBub3QgZGVyaXZlZCBmcm9tCm1hcmtkb3duLXRzLW1vZGUu
CihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2Rl
IGVuYWJsZWQKd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBmZW5jZWQgY29kZSBibG9jaywgYWN0aXZh
dGluZwptYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1tYXAgc28gZWxpZ2li
bGUgY29tbWFuZHMKZGlzcGF0Y2ggdG8gdGhlIGJsb2NrJ3MgbWFqb3IgbW9kZS4KKG1hcmtkb3du
LXRzLS1zZXQtaGlkZS1tYXJrdXApOiBDbGVhciBpbWFnZSBvdmVybGF5cyB3aGVuCnRvZ2dsaW5n
IG1hcmt1cCB2aXNpYmlsaXR5LgoobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzKQoobWFy
a2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMpOiBOZXcgZnVuY3Rpb25zIGZvciB0b2dnbGlu
ZwppbmxpbmUgaW1hZ2UgZGlzcGxheS4KKG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgt
bGV2ZWwpOiBOZXcgY29uc3RhbnQuCihtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2ludCwgbWFy
a2Rvd24tdHMtLWhlYWRpbmctbGV2ZWwpCihtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCk6
IE5ldyBoZWFkaW5nIG5hdmlnYXRpb24gaGVscGVycy4KKG1hcmtkb3duLXRzLXByb21vdGUsIG1h
cmtkb3duLXRzLWRlbW90ZSk6IE5ldyBjb21tYW5kcyBmb3IKaGVhZGluZyBhbmQgbGlzdCBpdGVt
IHByb21vdGlvbi9kZW1vdGlvbiB3aXRoIHJlZ2lvbiBzdXBwb3J0LgoobWFya2Rvd24tdHMtLXBy
b21vdGUtb3ItZGVtb3RlKQoobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbik6
IE5ldyBoZWFkaW5nIGxldmVsCmFkanVzdG1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtbW92
ZS1zdWJ0cmVlLXVwLCBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bik6Ck5ldyBjb21tYW5k
cyBmb3IgbW92aW5nIHNlY3Rpb25zIGFuZCBsaXN0IGl0ZW1zLgoobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXApCihtYXJrZG93bi10cy0tbW92ZS1zdWJ0cmVlLXVwLW9yLWRvd24pOiBOZXcg
c3VidHJlZSBtb3ZlIHdpdGgKZm9sZGluZyBzdGF0ZSBwcmVzZXJ2YXRpb24uCihtYXJrZG93bi10
cy10b2dnbGUtY2hlY2tib3gpOiBOZXcgY29tbWFuZCB0byB0b2dnbGUgdGFzayBsaXN0CmNoZWNr
Ym94ZXMuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KTogTmV3IGhlbHBlciB3aXRo
IGJsb2NrIHF1b3RlCm1hcmtlciBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13
aWR0aCwgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24pCihtYXJrZG93bi10cy0tbGlzdC1v
cmRlcmVkLWl0ZW0tcCk6IE5ldyBsaXN0IGl0ZW0gaGVscGVycy4KKG1hcmtkb3duLXRzLS1saXN0
LXByb21vdGUtb3ItZGVtb3RlKTogTmV3IGZ1bmN0aW9uIHdpdGggb3JkZXJlZApsaXN0IG5lc3Rp
bmcgZ3VhcmQuCihtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCwgbWFya2Rvd24tdHMtLWxpc3Qt
bW92ZSk6IE5ldyBsaXN0Cml0ZW0gbW92ZW1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtcmVu
dW1iZXItbGlzdCk6IE5ldyBjb21tYW5kIGZvciBzZXF1ZW50aWFsIGxpc3QKcmVudW1iZXJpbmcg
d2l0aCBwcmVmaXggYXJndW1lbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3
LW1hcmtlcikKKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lKTogTmV3IG1hcmtlciBz
dHJpbmcgZ2VuZXJhdG9ycwpmb3IgbGlzdCBpdGVtIGluc2VydGlvbi4KKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKTogTmV3IGhlbHBlciBjb3VudGluZyBibG9jawpxdW90ZSBk
ZXB0aC4KKG1hcmtkb3duLXRzLW5ld2xpbmUpOiBOZXcgUkVUIGNvbW1hbmQgZm9yIGNvbnRleHQt
YXdhcmUKbmV3bGluZS4KKG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0pOiBOZXcgTS1SRVQg
Y29tbWFuZCB0aGF0IGNyZWF0ZXMgYQpuZXcgbGlzdCBpdGVtLgoobWFya2Rvd24tdHMtLWZpbGwt
dW5maWxsYWJsZS1ibG9jay1xdWVyeSk6IE5ldyB0cmVlLXNpdHRlcgpxdWVyeSBmb3IgdW5maWxs
YWJsZSBibG9ja3MuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uKTogTmV3IGhl
bHBlciBmb3IgbGlzdCBpdGVtCnRleHQgYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWZpbGwtbGlz
dC1pdGVtKTogTmV3IGZ1bmN0aW9uIGZpbGxpbmcgd2l0aGluIGxpc3QKaXRlbXMgd2l0aG91dCBt
ZXJnaW5nIGFkamFjZW50IGl0ZW1zLgoobWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpOiBOZXcg
YWRhcHRpdmUgZmlsbCBmdW5jdGlvbiBmb3IKbGlzdCBpdGVtIGNvbnRpbnVhdGlvbi4KKG1hcmtk
b3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKTogTmV3IHBhcmFncmFwaCBtb3Rpb24KcmVz
cGVjdGluZyBsaXN0IGl0ZW1zIGFuZCB1bmZpbGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZp
bGwtcGFyYWdyYXBoKTogTmV3IGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIHdpdGgKY29uZCogZGlz
cGF0Y2ggZm9yIGxpc3RzLCBibG9jayBxdW90ZXMsIEhUTUwgY29tbWVudHMsIGFuZAp1bmZpbGxh
YmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1maWxsLWh0bWwtY29tbWVudCk6IE5ldyBIVE1MIGNv
bW1lbnQgZmlsbGVyIHdpdGgKY29udGludWF0aW9uIGFsaWdubWVudC4KKG1hcmtkb3duLXRzLS1i
bG9jay1xdW90ZS1wcmVmaXgpOiBOZXcgaGVscGVyIHByZXNlcnZpbmcKZXhpc3RpbmcgYmxvY2sg
cXVvdGUgbWFya2VyIHN0eWxlLgoobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUpOiBOZXcg
YmxvY2sgcXVvdGUgZmlsbGVyIHdpdGgKbGlzdCBpdGVtIHRleHQgY29sdW1uIGFsaWdubWVudC4K
KG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KTogTmV3IGFsaXN0IG9mIGVtcGhhc2lzIG1hcmtl
cnMuCihtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCk6IE5ldyB0cmVlLXNpdHRl
ciBiYXNlZAplbXBoYXNpcyBkZXRlY3Rpb24uCihtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMp
OiBOZXcgY29tbWFuZCByZW1vdmluZyBlbXBoYXNpcyBhdApwb2ludCBvciByZWdpb24uCihtYXJr
ZG93bi10cy1lbXBoYXNpemUpOiBOZXcgaW50ZXJhY3RpdmUgZW1waGFzaXMgaW5zZXJ0aW9uIHdp
dGgKcmVnaW9uIHdyYXBwaW5nIGFuZCB3b3JkLWF0LXBvaW50IHN1cHBvcnQuCihtYXJrZG93bi10
cy1pbnNlcnQtc3RydWN0dXJlKTogTmV3IGNvbW1hbmQgZm9yIGluc2VydGluZyBjb2RlCmJsb2Nr
cywgYmxvY2sgcXVvdGVzLCBhbmQgZGl2aWRlcnMuCihtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUt
YmxvY2spOiBOZXcgZnVuY3Rpb24gd2l0aCBsYW5ndWFnZQpjb21wbGV0aW9uIGZyb20ga25vd24g
bW9kZXMuCihtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKTogTmV3IGZ1bmN0aW9uIHdp
dGggcmVnaW9uCndyYXBwaW5nLgoobWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKTogTmV3IGZ1
bmN0aW9uIGZvciBob3Jpem9udGFsCnJ1bGVzLgoobWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lz
KTogTmV3IGZ1bmN0aW9uIGFwcGx5aW5nIGN1c3RvbQplbGxpcHNpcyB2aWEgZGlzcGxheSB0YWJs
ZS4KKG1hcmtkb3duLXRzLS1zZXQtdXApOiBSZW5hbWUgZnJvbSBtYXJrZG93bi10cy1zZXR1cC4K
KG1hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBvdXRs
aW5lCnZpc2liaWxpdHkgb24gaGVhZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5ldyBr
ZXltYXAgZm9yIGNvZGUgYmxvY2sgbmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcgbmF2
aWdhdGlvbiwgc3RydWN0dXJlIGVkaXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRpb25z
LgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbWFwKTogTmV3IGtleW1h
cCBmb3IKY29kZSBibG9jayBjb250ZXh0LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTogTmV3IG1l
bnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1Y3R1cmUs
IGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRsaW5lLW1p
bm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3JhdGlvbiwg
Y29kZS1ibG9jay1jb250ZXh0LW1vZGUgaG9va3MsCmNvbW1lbnQgc2V0dGluZ3MsIGFuZCBvdXRs
aW5lLXZpZXctY2hhbmdlLWhvb2suICBVc2UKbWFya2Rvd24tdHMtbW9kZSBkaXJlY3RseSBpbiBh
dXRvLW1vZGUtYWxpc3QgaW5zdGVhZCBvZgptYXJrZG93bi10cy1tb2RlLW1heWJlLgoobWFya2Rv
d24tdHMtbW9kZS1pbnN0YWxsLXBhcnNlcnMpOiBOZXcgY29tbWFuZCBmb3IgaW5zdGFsbGluZwpy
ZXF1aXJlZCBhbmQgb3B0aW9uYWwgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgZ3JhbW1hcnMuCihtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2Rl
CmJsb2NrIGNvbnRleHQuCihtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlcikK
KG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIpOiBOZXcgaGVscGVy
cyBmb3IKbG9jYXRpbmcgZmVuY2VkIGNvZGUgYmxvY2sgZGVsaW1pdGVyIG5vZGVzLgoobWFya2Rv
d24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxvY2spCihtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZp
b3VzLWNvZGUtYmxvY2spOiBOZXcgY29tbWFuZHMgZm9yCm5hdmlnYXRpbmcgYmV0d2VlbiBmZW5j
ZWQgY29kZSBibG9ja3MuCihtYXJrZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zLCBtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1jZWxsKQoobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93LCBtYXJr
ZG93bi10cy0tdGFibGUtcGFyc2UtZXJyb3ItcCk6Ck5ldyBwaXBlIHRhYmxlIG5vZGUgaGVscGVy
cy4KKG1hcmtkb3duLXRzLWF0LXRhYmxlLXApOiBOZXcgcHJlZGljYXRlIHJldHVybmluZyBub24t
bmlsIHdoZW4KcG9pbnQgaXMgYXQgb3Igd2l0aGluIGEgcGlwZSB0YWJsZS4KKG1hcmtkb3duLXRz
LS1lbmFibGUtaW4tdGFibGUtbW9kZSk6IE5ldyBoZWxwZXIgZW5hYmxpbmcKbWFya2Rvd24tdHMt
aW4tdGFibGUtbW9kZSBmcm9tIHBvc3QtY29tbWFuZC1ob29rLgoobWFya2Rvd24tdHMtLXRhYmxl
LWJvZHktcm93LW5lYXItcG9zKTogTmV3IGhlbHBlciBsb2NhdGluZyB0aGUKbmVhcmVzdCBib2R5
IHJvdyB0byBhIHBvc2l0aW9uLgoobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4pOiBOZXcgaGVscGVycyBmb3IgY29s
dW1uLWJhc2VkCnRhYmxlIG5hdmlnYXRpb24uCihtYXJrZG93bi10cy0tdGFibGUtYWxpZ25lcnMs
IG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIpCihtYXJrZG93bi10cy0tdGFibGUtYWxp
Z24tY2VsbCk6IE5ldyB0YWJsZSBjZWxsIGFsaWdubWVudApoZWxwZXJzLgoobWFya2Rvd24tdHMt
dGFibGUtaW5zZXJ0LXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gaW5zZXJ0IGEgcGlwZQp0YWJsZSB3
aXRoIGNvbmZpZ3VyYWJsZSByb3dzIGFuZCBjb2x1bW5zLgoobWFya2Rvd24tdHMtdGFibGUtZGVs
ZXRlLXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gZGVsZXRlIHRoZSBwaXBlCnRhYmxlIGF0IHBvaW50
LgoobWFya2Rvd24tdHMtdGFibGUtcHJldmlvdXMtcm93LCBtYXJrZG93bi10cy10YWJsZS1uZXh0
LXJvdykKKG1hcmtkb3duLXRzLXRhYmxlLXByZXZpb3VzLWNlbGwsIG1hcmtkb3duLXRzLXRhYmxl
LW5leHQtY2VsbCk6Ck5ldyBjb21tYW5kcyBmb3IgbmF2aWdhdGluZyB0YWJsZSByb3dzIGFuZCBj
ZWxscy4KKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cpCihtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93
KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LXJvdyk6IE5ldyBjb21tYW5kcyBmb3IgaW5zZXJ0aW5nIGFuZApjbG9uaW5nIHRhYmxl
IHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1kZWxldGUtcm93LCBtYXJrZG93bi10cy10YWJsZS1t
b3ZlLXJvdy11cCkKKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24sIG1hcmtkb3duLXRz
LXRhYmxlLW1vdmUtcm93KToKTmV3IGNvbW1hbmRzIGZvciBkZWxldGluZyBhbmQgbW92aW5nIHRh
YmxlIHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQpCihtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUt
Y29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1jbG9uZS1jb2x1bW4tcmlnaHQpCihtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBpbnNlcnRpbmcK
YW5kIGNsb25pbmcgdGFibGUgY29sdW1ucy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbi1sZWZ0KQoobWFya2Rvd24tdHMtdGFi
bGUtbW92ZS1jb2x1bW4tcmlnaHQpCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbik6IE5l
dyBjb21tYW5kcyBmb3IgZGVsZXRpbmcgYW5kCm1vdmluZyB0YWJsZSBjb2x1bW5zLgoobWFya2Rv
d24tdHMtdGFibGUtYWxpZ24tY29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi1j
b2x1bW4tY2VudGVyKQoobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uLXJpZ2h0KQoobWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBzZXR0aW5nCmNv
bHVtbiBhbGlnbm1lbnQuCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSk6IE5ldyBjb21t
YW5kIHRvIGFsaWduIGFsbApjb2x1bW5zIGluIHRoZSB0YWJsZSBhdCBwb2ludC4KKG1hcmtkb3du
LXRzLXRhYmxlLXRyYW5zcG9zZS10YWJsZSk6IE5ldyBjb21tYW5kIHRvIHRyYW5zcG9zZQp0aGUg
dGFibGUgYXQgcG9pbnQuCihtYXJrZG93bi10cy10YWJsZS1jb252ZXJ0LWNzdi1yZWdpb24pCiht
YXJrZG93bi10cy10YWJsZS1jb252ZXJ0LXRzdi1yZWdpb24pCihtYXJrZG93bi10cy10YWJsZS1j
b252ZXJ0LXJlZ2lvbik6IE5ldyBjb21tYW5kcyB0byBjb252ZXJ0CmRlbGltaXRlZCB0ZXh0IHJl
Z2lvbnMgdG8gcGlwZSB0YWJsZXMuCihtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtY3N2
KQoobWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdikKKG1hcmtkb3duLXRzLXRhYmxl
LWV4cG9ydC10YWJsZSk6IE5ldyBjb21tYW5kcyB0byBleHBvcnQgdGhlCnBpcGUgdGFibGUgYXQg
cG9pbnQgdG8gQ1NWIG9yIFRTViBmb3JtYXQuCihtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlLW1h
cCk6IE5ldyBrZXltYXAgZm9yCm1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUuCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YpOiBOZXcgYnVmZmVyLWxvY2FsCnZhcmlh
YmxlIGZvciBjb2RlIGJsb2NrIGNvbnRleHQgb3ZlcmxheS4KKG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWluLWNvbnRleHQtbW9kZS11cGRhdGUtb3YpOiBOZXcKZnVuY3Rpb24gdXBkYXRpbmcgdGhl
IGNvZGUgYmxvY2sgY29udGV4dCBvdmVybGF5LgoobWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZSk6
IE5ldyBtaW5vciBtb2RlIGVuYWJsZWQgd2hlbiBwb2ludAppcyB3aXRoaW4gYSBwaXBlIHRhYmxl
LCBhY3RpdmF0aW5nIG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbWFwLgoobWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtb3YpCihtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YpCiht
YXJrZG93bi10cy0tdGFibGUtdGljay11cGRhdGUpCihtYXJrZG93bi10cy0tdGFibGUtdGljay1z
dGFsZS1wKQoobWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtdXBkYXRlLW92KTogTmV3IGhlbHBl
cnMgc3VwcG9ydGluZwptYXJrZG93bi10cy1pbi10YWJsZS1tb2RlIG92ZXJsYXkgbWFuYWdlbWVu
dC4KKG1hcmtkb3duLXRzLXRhYmxlLW1vZGUpOiBOZXcgbWlub3IgbW9kZSBwcm92aWRpbmcgdGFi
bGUgZWRpdGluZwpjb21tYW5kcyBhbmQgYXV0by1hbGlnbm1lbnQuCihtYXJrZG93bi10cy1tb2Rl
LW1heWJlKTogUmVtb3ZlOyBhdXRvLW1vZGUtYWxpc3Qgbm93IHVzZXMKbWFya2Rvd24tdHMtbW9k
ZSBkaXJlY3RseS4KQXV0by1tb2RlLWFsaXN0OiBBZGQgLm1hcmtkb3duIGFuZCAubWR4IGV4dGVu
c2lvbnMuCgoqIGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbDogTmV3IGZpbGUg
cHJvdmlkaW5nIGV4dHJhCmZlYXR1cmVzIGZvciBtYXJrZG93bi10cy1tb2RlLgoobWFya2Rvd24t
dHMtY29tbW9ubWFyay1zcGVjLXVybCwgbWFya2Rvd24tdHMtZ2ZtLXNwZWMtdXJsKTogTmV3CmNv
bnN0YW50cyBmb3IgQ29tbW9uTWFyayBhbmQgR0ZNIHNwZWNpZmljYXRpb24gVVJMcy4KKG1hcmtk
b3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMpCihtYXJrZG93bi10cy1icm93c2UtZ2ZtLXNw
ZWMpOiBOZXcgY29tbWFuZHMgdG8gYnJvd3NlIHRoZQpDb21tb25NYXJrIGFuZCBHRk0gc3BlY2lm
aWNhdGlvbnMuCihtYXJrZG93bi10cy1jb252ZXJ0KTogTmV3IGN1c3RvbWl6YXRpb24gZ3JvdXAg
Zm9yIE1hcmtkb3duCmNvbnZlcnNpb24vZXhwb3J0IGZlYXR1cmVzLgoobWFya2Rvd24tdHMtZGVm
YXVsdC1jb252ZXJ0ZXIpOiBOZXcgb3B0aW9uIHRvIHNldCB0aGUgZGVmYXVsdApmb3JtYXQgYW5k
IGNvbnZlcnRlciBmb3IgTWFya2Rvd24gZXhwb3J0LgoobWFya2Rvd24tdHMtY29udmVydC1kaXNw
bGF5LWZ1bmN0aW9uKTogTmV3IG9wdGlvbiBzcGVjaWZ5aW5nCnRoZSBmdW5jdGlvbiB1c2VkIHRv
IGRpc3BsYXkgY29udmVydGVkIG91dHB1dC4KKG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpOiBOZXcg
dmFyaWFibGUgbGlzdGluZyBmb3JtYXQvY29udmVydGVyCmNvbmZpZ3VyYXRpb25zIGZvciBwYW5k
b2MsIGNtYXJrLCBjbWFyay1nZm0sIG1hcmtkb3duLCBhbmQKbWFya2Rvd24ucGwuCihtYXJrZG93
bi10cy1jb252ZXJ0LWZpbGUsIG1hcmtkb3duLXRzLWNvbnZlcnQpOiBOZXcgY29tbWFuZHMgdG8K
Y29udmVydCBNYXJrZG93biBidWZmZXJzIG9yIGZpbGVzIHRvIEhUTUwsIFBERiwgYW5kIG90aGVy
CmZvcm1hdHMgdmlhIGV4dGVybmFsIGNvbnZlcnRlcnMuCihtYXJrZG93bi10cy10b2MpOiBOZXcg
Y3VzdG9taXphdGlvbiBncm91cCBmb3IgdGFibGUgb2YgY29udGVudHMKZmVhdHVyZXMuCihtYXJr
ZG93bi10cy10b2MtZ2VuZXJhdGUtd2Fybi1pZi1ub25lKTogTmV3IG9wdGlvbiBjb250cm9sbGlu
ZwpiZWhhdmlvciB3aGVuIG5vIFRPQyBpcyBmb3VuZCBkdXJpbmcgZ2VuZXJhdGlvbi4KKG1hcmtk
b3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyKTogTmV3IG9wdGlvbgpm
b3IgdGhlIGJlZm9yZS1zYXZlIFRPQyB1cGRhdGUgbWlub3IgbW9kZSBsaWdodGVyIHN0cmluZy4K
KG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uKTogTmV3IG9wdGlvbiB0byBzZWxlY3QgdGhl
IHNsdWcKYWxnb3JpdGhtIHVzZWQgZm9yIFRPQyBoZWFkaW5nIGFuY2hvcnMuCihtYXJrZG93bi10
cy0tdG9jLWhhbmRsZXMsIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlLWNsYXNzZXMpOiBOZXcKdmFy
aWFibGVzIGRlZmluaW5nIFRPQyBoYW5kbGUgdHlwZXMgYW5kIGNsYXNzZXMuCihtYXJrZG93bi10
cy0tdG9jLWV4cGFuZC1jYW5kaWRhdGUtaGFuZGxlcywgbWFya2Rvd24tdHMtLXRvY3MpCihtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2spCihtYXJrZG93bi10cy0tdG9jLWNvbGxlY3QtY2Fu
ZGlkYXRlcykKKG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoKQoobWFya2Rvd24tdHMt
LXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emVycykKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxpemUpOiBOZXcgaW50ZXJuYWwgaGVs
cGVycyBmb3IgVE9DCnBhcnNpbmcgYW5kIHRleHQgbm9ybWFsaXphdGlvbi4KKG1hcmtkb3duLXRz
LXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZSk6IE5ldyBtaW5vciBtb2RlIHRoYXQKcmVnZW5l
cmF0ZXMgdGFibGVzIG9mIGNvbnRlbnRzIGJlZm9yZSBzYXZpbmcuCihtYXJrZG93bi10cy10b2Mt
Y2xlYXItYW5kLXJlbW92ZSwgbWFya2Rvd24tdHMtdG9jLWNsZWFyKTogTmV3CmNvbW1hbmRzIHRv
IHJlbW92ZSBvciBjbGVhciBUT0MgYm9kaWVzLgoobWFya2Rvd24tdHMtdG9jLWluc2VydC10ZW1w
bGF0ZSk6IE5ldyBjb21tYW5kIHRvIGluc2VydCBhIFRPQwp0ZW1wbGF0ZSBhdCBwb2ludC4KKG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZSk6IE5ldyBjb21tYW5kIHRvIGdlbmVyYXRlIHRhYmxlcyBv
Zgpjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCgpJbmNsdWRlcyBmaXhlcyBmb3I6IChi
dWcjODA2MTMpIChidWcjODA2MjUpIChidWcjODA2OTApCgpDby1hdXRob3JlZC1ieTogU3TDqXBo
YW5lIE1hcmtzIDxzaGlwbWludHNAZ21haWwuY29tPgotLS0KIGxpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUteC5lbCB8IDExMzQgKysrKysrCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsICAgfCA1NDI4ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNo
YW5nZWQsIDYyNzcgaW5zZXJ0aW9ucygrKSwgMjg1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbAoKZGlmZiAtLWdpdCBh
L2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbCBiL2xpc3AvdGV4dG1vZGVzL21h
cmtkb3duLXRzLW1vZGUteC5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNzQwNTA3OGFiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLXguZWwKQEAgLTAsMCArMSwxMTM0IEBACis7OzsgbWFya2Rvd24tdHMtbW9kZS14
LmVsIC0tLSBtYXJrZG93bi10cy1tb2RlIGV4dHJhcyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAt
Ki0KKworOzsgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgorCis7OyBBdXRob3IgICAgICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1
bGlhdG9AZ21haWwuY29tPgorOzsgICAgICAgICAgICAgICAgICA6IFN0w6lwaGFuZSBNYXJrcyA8
c2hpcG1pbnRzQGdtYWlsLmNvbT4KKzs7IE1haW50YWluZXIgICAgICAgOiBSYWh1bCBNYXJ0aW0g
SnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBDcmVhdGVkICAgICAgICAgIDog
QXByaWwgMjAyNgorOzsgVmVyc2lvbiAgICAgICAgICA6IDEuMAorOzsgUGFja2FnZS1SZXF1aXJl
cyA6ICgoZW1hY3MgIjMxLjEiKSkKKzs7IEtleXdvcmRzICAgICAgICAgOiBtYXJrZG93biBtZCB0
ZXh0IGVkaXQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVyCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor
OzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUg
PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7
OyBDb2RlOgorCisocmVxdWlyZSAnbWFya2Rvd24tdHMtbW9kZSkKKworOzs7IENvbnZlbmllbmNl
OgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMtY29tbW9ubWFyay1zcGVjLXVybAorICAiaHR0cHM6
Ly9zcGVjLmNvbW1vbm1hcmsub3JnL2N1cnJlbnQvIikKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LWdmbS1zcGVjLXVybAorICAiaHR0cHM6Ly9naXRodWIuZ2l0aHViLmNvbS9nZm0vIikKKworKGRl
ZnVuIG1hcmtkb3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMgKCkKKyAgIkJyb3dzZSB0aGUg
Q29tbW9uTWFyayBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWNvbW1vbm1hcmstc3BlYy11cmwpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtYnJvd3NlLWdmbS1zcGVjICgpCisgICJCcm93c2UgdGhlIEdpdEh1
YiBGbGF2b3JlZCBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWdmbS1zcGVjLXVybCkpCisKKzs7OyBFeHBv
cnQgYW5kIHByZXZpZXc6CisKKyhkZWZncm91cCBtYXJrZG93bi10cy1jb252ZXJ0IG5pbAorICAi
Q29udmVydCBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycyBvciBmaWxlcy4iCisgIDpwcmVmaXgg
Im1hcmtkb3duLXRzLWNvbnZlcnQtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5n
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kZWZhdWx0LWNv
bnZlcnRlciBuaWwKKyAgIkRlZmF1bHQgTWFya2Rvd24gZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCitJ
ZiBuaWwsIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGZvcm1hdCBhbmQgYSBjb252ZXJ0ZXIu
CitTZWUgYG1hcmtkb3duLXRzLWNvbnZlcnRlcnMnLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0
IDp0YWcgIlByb21wdCBmb3IgZm9ybWF0IGFuZCBjb252ZXJ0ZXIiIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIlBERiB2aWEgUGFuZG9jIiAocGRmIC4gcGFuZG9jKSkKKyAgICAg
ICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkhUTUwgdmlhIFBhbmRvYyIgKGh0bWwgLiBwYW5kb2Mp
KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmsiIChodG1sIC4g
Y21hcmspKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmstZ2Zt
IChHaXRIdWIgYmVsbHMgYW5kIHdoaXN0bGVzKSIgKGh0bWwgLiBjbWFyay1nZm0pKQorICAgICAg
ICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24iIChodG1sIC4gbWFya2Rv
d24pKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24ucGwi
IChodG1sIC4gbWFya2Rvd24ucGwpKQorICAgICAgICAgICAgICAgICAoY29ucyAgOnRhZyAiRm9y
bWF0IGFuZCBDb252ZXJ0ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcg
IkZvcm1hdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcgIkNvbnZlcnRl
ciIpKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhk
ZWZjdXN0b20gbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uICMnZXd3LW9wZW4t
ZmlsZQorICAiRnVuY3Rpb24gdG8gZGlzcGxheSBjb252ZXJ0ZWQgTWFya2Rvd24gdGhlIG91dHB1
dCBmaWxlLgorVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCwgdGhlIGZp
bGUgbmFtZS4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJEaXNwbGF5IHVzaW5nIGBl
d3cnIiBld3ctb3Blbi1maWxlKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBpbiBhIGJyb3dzZXIiIGJyb3dzZS11cmwtb2YtZmlsZSkKKyAgICAgICAgICAgICAgICAgKGNv
bnN0IDp0YWcgIkRpc3BsYXkgb3V0cHV0IGZpbGUgaW4gYSBidWZmZXIiIGZpbmQtZmlsZS1vdGhl
ci13aW5kb3cpCisgICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJPdGhlciBmdW5jdGlv
biIpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmNvbnN0IG1hcmtkb3duLXRzLS1jb252ZXJ0LWVycm9yLWJ1ZmZlcgorICAiKm1hcmtkb3duLXRz
LWNvbnZlcnQgZXJyb3JzKiIpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tY29udmVydC1vdXRw
dXQtYnVmZmVyCisgICIqbWFya2Rvd24tdHMtY29udmVydCBvdXRwdXQqIikKKworKGRlZnZhciBt
YXJrZG93bi10cy1jb252ZXJ0ZXJzCisgIChsaXN0CisgICAoY29ucyAnaHRtbAorICAgICAgICAg
KGxpc3QKKyAgICAgICAgICAoY29ucyAncGFuZG9jCisgICAgICAgICAgICAgICAgKGxpc3QgOmNv
bW1hbmQgInBhbmRvYyIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGlu
KQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhmaWxlKQorICAgICAgICAgICAgICAg
ICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpbnB1dC1maWxlIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLWYiICJnZm0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItdCIgImh0bWw1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1z
dGFuZGFsb25lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iIG91
dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1m
aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkp
KSkpKQorICAgICAgICAgIChjb25zICdjbWFyaworICAgICAgICAgICAgICAgIChsaXN0IDpjb21t
YW5kICJjbWFyayIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGluKQor
ICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQpCisgICAgICAgICAgICAgICAg
ICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg
KGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLXQiICJodG1sIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdo
ZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGlu
cHV0LWZpbGUpKSkpKSkKKyAgICAgICAgICAoY29ucyAnY21hcmstZ2ZtCisgICAgICAgICAgICAg
ICAgKGxpc3QgOmNvbW1hbmQgImNtYXJrLWdmbSIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5w
dXQgJyhmaWxlIHN0ZGluKQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQp
CisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCAobGlzdCAiLXQiICJodG1sIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBVc2UgR2l0SHViLXN0eWxlIDxwcmUgbGFuZz4gZm9yIGNv
ZGUgYmxvY2tzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWdpdGh1
Yi1wcmUtbGFuZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5j
bHVkZSByZW1haW5kZXIgb2YgY29kZSBibG9jayBpbmZvCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDs7IHN0cmluZyBpbiBhIHNlcGFyYXRlIGF0dHJpYnV0ZS4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZnVsbC1pbmZvLXN0cmluZyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgVXNlIHN0eWxlIGF0dHJpYnV0
ZXMgdG8gYWxpZ24gdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgY2VsbHMgaW5zdGVhZCBvZiBhbGlnbiBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLS10YWJsZS1wcmVmZXItc3R5bGUtYXR0cmlidXRlcyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAiZm9vdG5v
dGVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1leHRlbnNpb24i
ICJ0YWJsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5z
aW9uIiAic3RyaWtldGhyb3VnaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0tZXh0ZW5zaW9uIiAiYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWV4dGVuc2lvbiIgInRhZ2ZpbHRlciIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAidGFza2xpc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKQorICAgICAgICAgIDs7ICdtYXJr
ZG93bi5wbCBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24gd2l0aCBhbm90aGVyIGNvbW1vbiBmaWxl
CisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rvd24ucGwKKyAgICAg
ICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24ucGwiCisgICAgICAgICAgICAgICAg
ICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6b3V0cHV0
ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKQorICAgICAg
ICAgIDs7ICdtYXJrZG93biBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24ucGwgd2l0aCBhbm90aGVy
IGNvbW1vbiBmaWxlCisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rv
d24KKyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24iCisgICAgICAgICAg
ICAgICAgICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6
b3V0cHV0ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rp
b24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKSkp
CisgICAoY29ucyAncGRmCisgICAgICAgICAobGlzdAorICAgICAgICAgIChjb25zICdwYW5kb2MK
KyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAicGFuZG9jIgorICAgICAgICAgICAgICAg
ICAgICAgIDppbnB1dCAnKGZpbGUgc3RkaW4pCisgICAgICAgICAgICAgICAgICAgICAgOm91dHB1
dCAnKGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgb3V0cHV0LWZpbGUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChsaXN0ICItZiIgImdmbSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi10IiAicGRmIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLW8iIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKSkpKQorICAiQW4gYWxpc3Qgb2YgZm9ybWF0
L2NvbnZlcnRlciBjb25maWd1cmF0aW9ucy4KK0l0IGlzIGEgdHdvIGxldmVsIGFsaXN0IHdpdGgg
dGhlIGZpcnN0IGxldmVsIGJlaW5nIGZvcm1hdCwgZm9yIGV4YW1wbGUKK2BodG1sJyBvciBgcGRm
JywgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIGNvbnZlcnRlciBuYW1lLCBmb3IgZXhhbXBsZQor
YHBhbmRvYycuICBBIGNvbnZlcnRlciBjb25maWd1cmF0aW9uIGVudHJ5IGlzIGEgcGxpc3Qgb2Yg
dGhlIGZvcm06CisKKyAgXFw9Jyg6Y29tbWFuZCBcImNvbW1hbmQgbmFtZVwiCisgICAgOmlucHV0
IChmaWxlIHN0ZGluKSA7IGFjY2VwdHMgZmlsZSBuYW1lIG9yIHN0ZGluCisgICAgOm91dHB1dCAo
c3Rkb3V0KSAgICA7IHByb2R1Y2VzIHN0ZG91dCBvbmx5CisgICAgOmFyZ3VtZW50cy1mdW5jdGlv
biA7IGZ1bmN0aW9uOyBlLmcuLAorICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAoYXBwZW5kIChsaXN0IFwiLXRcIiBcImh0bWxcIikKKyAgICAgICAgICAgICAg
ICh3aGVuIGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkp
CisKK2Bhcmd1bWVudHMtZnVuY3Rpb24nIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzLCBJTlBVVC1G
SUxFIGFuZAorT1VUUFVULUZJTEUuICBJZiBJTlBVVC1GSUxFIGlzIG5pbCwgYXNzdW1lIHN0ZGlu
LCBvciBpdCBpcyBhCitmdWxseS1xdWFsaWZpZWQgZmlsZSBuYW1lLiAgSWYgT1VUUFVULUZJTEUg
aXMgbmlsLCBhc3N1bWUgc3Rkb3V0LCBvciBpdAoraXMgYSBmdWxseS1xdWFsaWZpZWQgZmlsZSBu
YW1lLiAgSXQgc2hvdWxkIHJldHVybiBhIGxpc3Qgb2YKK2FyZ3VtZW50cyBzdWl0YWJsZSBmb3Ig
YGNhbGwtcHJvY2VzcycuIikKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93bi10cy1j
b252ZXJ0LWZpbGUgKGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IE1h
cmtkb3duIElOUFVULUZJTEUgdG8gRk9STUFULgorSWYgb3B0aW9uYWwgRElTUExBWSBpcyBub24t
bmlsLCBzaG93IHRoZSBvdXRwdXQgZmlsZSBpbiBhIGJ1ZmZlciwgaWYKK3Bvc3NpYmxlLCB1c2lu
ZyB0aGUgZnVuY3Rpb24gYG1hcmtkb3duLXRzLWNvbnZlcnQtZGlzcGxheS1mdW5jdGlvbicuCisK
K1dpdGggYSBwcmVmaXggYXJndW1lbnQsIERJU1BMQVkgd2lsbCBiZSBub24tbmlsLgorCitPcHRp
b25hbCBGT1JNQVQgaXMgYSBmb3JtYXQvY29udmVydGVyIHBhaXIgc3BlY2lmaWVkIGFzIGEgY29u
cworXFw9Jyhmb3JtYXQgLiBjb252ZXJ0ZXIpIGZvciBleGFtcGxlIFxcPScoaHRtbCAuIHBhbmRv
YykuICBTZWUKK2BtYXJrZG93bi10cy1jb252ZXJ0ZXJzJy4gIElmIG5pbCwgcHJvbXB0IGZvciB0
aGUgZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCisKK0lmIG9wdGlvbmFsIE9WRVJXUklURSBpcyBub24t
bmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUgaWYgaXQKK2V4aXN0cy4KKworSWYg
UVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNvbnZlcnNpb24gd2FybmluZ3Mgb3Ig
ZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBzcGVjaWZpZWQgYnkgYSBjb252ZXJ0
ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2VlIHRoZSB2YXJpYWJsZSBgZXhlYy1w
YXRoJy4iCisgIChpbnRlcmFjdGl2ZSAiZkNvbnZlcnQgTWFya2Rvd24gZmlsZTogIikKKyAgKG1h
cmtkb3duLXRzLWNvbnZlcnQgaW5wdXQtZmlsZSBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICBmb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgKG9yIGRpc3BsYXkgY3VycmVu
dC1wcmVmaXgtYXJnKQorICAgICAgICAgICAgICAgICAgICAgICBvdmVyd3JpdGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgcXVpZXQpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIG1hcmtkb3du
LXRzLWNvbnZlcnQgKCZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0
LWZpbGUgb3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgZGlz
cGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IGEgYG1hcmtkb3duLXRzLW1vZGUnIGJ1
ZmZlciBvciBmaWxlIHRvIEZPUk1BVC4KK0NvbnZlcnQgSU5QVVQtRklMRSB0byBPVVRQVVQtRklM
RS4KKworSWYgSU5QVVQtRklMRSBpcyBuaWwsIHVzZSB0aGUgY3VycmVudCBidWZmZXIuCisKK0lm
IE9VVFBVVC1GSUxFIGlzIG5pbCwgcHJvbXB0IGZvciBhbiBvdXRwdXQgZmlsZS4KKworT3B0aW9u
YWwgRk9STUFUIGlzIGEgZm9ybWF0L2NvbnZlcnRlciBwYWlyIHNwZWNpZmllZCBhcyBhIGNvbnMK
K1xcPScoZm9ybWF0IC4gY29udmVydGVyKSBmb3IgZXhhbXBsZSBcXD0nKGh0bWwgLiBwYW5kb2Mp
LiAgU2VlCitgbWFya2Rvd24tdHMtY29udmVydGVycycuICBJZiBuaWwsIHByb21wdCBmb3IgdGhl
IGZvcm1hdCBhbmQgY29udmVydGVyLgorCitJZiBvcHRpb25hbCBESVNQTEFZIGlzIG5vbi1uaWws
IHNob3cgdGhlIG91dHB1dCBmaWxlIGluIGEgYnVmZmVyLCBpZgorcG9zc2libGUsIHVzaW5nIHRo
ZSBmdW5jdGlvbiBgbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uJy4KKworV2l0
aCBhIHByZWZpeCBhcmd1bWVudCwgRElTUExBWSB3aWxsIGJlIG5vbi1uaWwuCisKK0lmIG9wdGlv
bmFsIE9WRVJXUklURSBpcyBub24tbmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUg
aWYgaXQKK2V4aXN0cy4KKworSWYgUVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNv
bnZlcnNpb24gd2FybmluZ3Mgb3IgZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBz
cGVjaWZpZWQgYnkgYSBjb252ZXJ0ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2Vl
IHRoZSB2YXJpYWJsZSBgZXhlYy1wYXRoJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKGFu
ZCBpbnB1dC1maWxlCisgICAgICAgICAgICAgKGVxdWFsIGJ1ZmZlci1maWxlLW5hbWUgKGV4cGFu
ZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgKGJ1ZmZlci1tb2RpZmllZC1w
KSkKKyAgICAod2hlbiAoeWVzLW9yLW5vLXAgIlNhdmUgbW9kaWZpZWQgYnVmZmVyIGJlZm9yZSBj
b252ZXJ0aW5nPyAiKQorICAgICAgKHNhdmUtYnVmZmVyKSkpCisgICh1bmxlc3MgaW5wdXQtZmls
ZQorICAgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtY29udmVy
dCkpCisKKyAgKHNldHEgZGlzcGxheSAob3IgZGlzcGxheSBjdXJyZW50LXByZWZpeC1hcmcpKQor
CisgIChsZXQqICgoY29udmVydGVyLWZvcm1hdAorICAgICAgICAgIChvciAoY2FyIGZvcm1hdCkK
KyAgICAgICAgICAgICAgKGNhciBtYXJrZG93bi10cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAg
ICAgICAgICAgKGludGVybgorICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAg
ICAgICAgICAgICJTZWxlY3QgYW4gb3V0cHV0IGZvcm1hdDogIgorICAgICAgICAgICAgICAgICht
YXBjYXIgKGxhbWJkYSAoZWx0KSAoc3ltYm9sLW5hbWUgKGNhciBlbHQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpCisgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy1jb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgICAgKGNvbnZlcnRlcgor
ICAgICAgICAgIChvciAoY2RyIGZvcm1hdCkKKyAgICAgICAgICAgICAgKGNkciBtYXJrZG93bi10
cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAgICAgICAgICAgKGludGVybgorICAgICAgICAgICAg
ICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAgICAgICAgICAgICJTZWxlY3QgYSBjb252ZXJ0ZXI6
ICIKKyAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGVsdCkgKHN5bWJvbC1uYW1lIChj
YXIgZWx0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtZ2V0IGNvbnZlcnRlci1m
b3JtYXQgbWFya2Rvd24tdHMtY29udmVydGVycykpCisgICAgICAgICAgICAgICAgbmlsCisgICAg
ICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJr
ZG93bi10cy1jb252ZXJ0ZXIpKSkpCisgICAgICAgICAoY29uZmlnIChhbGlzdC1nZXQgY29udmVy
dGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LWdldCBjb252ZXJ0ZXItZm9y
bWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1j
b252ZXJ0ZXJzKSkpCisgICAgICAgICAoY29tbWFuZCAocGxpc3QtZ2V0IGNvbmZpZyA6Y29tbWFu
ZCkpCisgICAgICAgICAoY29tbWFuZC1pbnB1dCAocGxpc3QtZ2V0IGNvbmZpZyA6aW5wdXQpKQor
ICAgICAgICAgKGNvbW1hbmQtb3V0cHV0IChwbGlzdC1nZXQgY29uZmlnIDpvdXRwdXQpKQorICAg
ICAgICAgKHN0ZGluLW9ubHkgKGVxdWFsIGNvbW1hbmQtaW5wdXQgJyhzdGRpbikpKQorICAgICAg
ICAgKHN0ZG91dC1vbmx5IChlcXVhbCBjb21tYW5kLW91dHB1dCAnKHN0ZG91dCkpKSkKKyAgICAo
dW5sZXNzIG91dHB1dC1maWxlCisgICAgICAoc2V0cSBvdXRwdXQtZmlsZQorICAgICAgICAgICAg
KHJlYWQtZmlsZS1uYW1lICJPdXRwdXQgZmlsZSBuYW1lOiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNh
dCAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGZpbGUtcmVsYXRpdmUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAob3IgaW5wdXQtZmlsZSBidWZmZXItZmlsZS1uYW1lKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzeW1ib2wtbmFtZSBjb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgKHVubGVz
cyBvdXRwdXQtZmlsZQorICAgICAgICAodXNlci1lcnJvciAiT3V0cHV0IGZpbGUgbmFtZSBpcyBy
ZXF1aXJlZCIpKSkKKyAgICAod2hlbiBvdXRwdXQtZmlsZQorICAgICAgKHdoZW4gKGFuZCAobm90
IG92ZXJ3cml0ZSkKKyAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgb3V0cHV0LWZpbGUp
CisgICAgICAgICAgICAgICAgIChub3QgKHllcy1vci1uby1wIChmb3JtYXQgIiVzIGV4aXN0czsg
b3ZlcndyaXRlPyIgb3V0cHV0LWZpbGUpKSkpCisgICAgICAgICh1c2VyLWVycm9yICJOb3Qgb3Zl
cndyaXRpbmcgZXhpc3RpbmcgZmlsZTogJXMiIG91dHB1dC1maWxlKSkKKyAgICAgIChzZXRxIG91
dHB1dC1maWxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dC1maWxlKSkpCisKKworICAgIChsZXQg
KChjb21tYW5kLWFyZ3MgKGZ1bmNhbGwgKHBsaXN0LWdldCBjb25maWcgOmFyZ3VtZW50cy1mdW5j
dGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIGlucHV0LWZpbGUg
KGV4cGFuZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQtZmlsZSkpKQorICAgICAgKHVubGVzcyAoZXhlY3V0YWJsZS1maW5kIGNv
bW1hbmQpCisgICAgICAgICh1c2VyLWVycm9yICJgJXMnIGV4ZWN1dGFibGUgbm90IGZvdW5kIiBj
b21tYW5kKSkKKyAgICAgIChsZXQgKChlcnJvci1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZm
ZXIpKQorICAgICAgICAgICAgKGVycm9yLXRlbXAtZmlsZSAobWFrZS10ZW1wLWZpbGUgIm1hcmtk
b3duLXRzLWNvbnZlcnQtc3RkZXJyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmlsICIubG9nIikpCisgICAgICAgICAgICAoc3Rkb3V0LWJ1ZmZlciAod2hl
biBzdGRvdXQtb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0LWJ1ZmZlci1j
cmVhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb252ZXJ0
LW91dHB1dC1idWZmZXIpKSkpCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAg
KGxldCAoZXhpdC1zdGF0dXMpCisgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGVy
cm9yLWJ1ZmZlcgorICAgICAgICAgICAgICAgIChzcGVjaWFsLW1vZGUpCisgICAgICAgICAgICAg
ICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCisgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIpKQorICAgICAgICAgICAgICAod2hlbiBzdGRv
dXQtYnVmZmVyCisgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc3Rkb3V0LWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgKHNwZWNpYWwtbW9kZSkKKyAgICAgICAgICAgICAgICAg
IChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikpKQorICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgKChhbmQgaW5wdXQtZmlsZSAobm90IHN0ZGluLW9ubHkpKQorICAgICAg
ICAgICAgICAgIChzZXRxIGV4aXQtc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5
ICMnY2FsbC1wcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsaXN0IHN0ZG91dC1idWZmZXIgZXJyb3ItdGVtcC1maWxlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC1h
cmdzKSkpCisgICAgICAgICAgICAgICAoKGFuZCBpbnB1dC1maWxlIHN0ZGluLW9ubHkpCisgICAg
ICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQt
ZmlsZS1jb250ZW50cyBpbnB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1z
dGF0dXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZC1hcmdzKSkpKQorICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAo
d2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1zdGF0dXMK
KyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZC1hcmdzKSkpKSkKKyAgICAgICAgICAgICAgKGxldCAoKGVycm9yLXNpemUgKGZpbGUtYXR0
cmlidXRlLXNpemUgKGZpbGUtYXR0cmlidXRlcyBlcnJvci10ZW1wLWZpbGUpKSkpCisgICAgICAg
ICAgICAgICAgKHdoZW4gKGFuZCBlcnJvci1zaXplICg+IGVycm9yLXNpemUgMCkpCisgICAgICAg
ICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBlcnJvci1idWZmZXIKKyAgICAgICAgICAg
ICAgICAgICAgKGluc2VydC1maWxlLWNvbnRlbnRzIGVycm9yLXRlbXAtZmlsZSkKKyAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKSkKKyAgICAgICAgICAgICAgKGNv
bmQgKChlcSAwIGV4aXQtc3RhdHVzKSA7IEludGVnZXIgb3Igc3RyaW5nLgorICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gc3Rkb3V0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAod2l0
aC1jdXJyZW50LWJ1ZmZlciBzdGRvdXQtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSBvdXRwdXQtZmlsZSkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHdoZW4gZGlzcGxheQorICAgICAgICAgICAgICAgICAgICAgICAo
ZnVuY2FsbCBtYXJrZG93bi10cy1jb252ZXJ0LWRpc3BsYXktZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LWZpbGUpKQorICAgICAgICAgICAgICAgICAgICAg
KHdoZW4gKGFuZCAobm90IHF1aWV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bm90ICh6ZXJvcCAoYnVmZmVyLXNpemUgZXJyb3ItYnVmZmVyKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh5ZXMtb3Itbm8tcAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZvcm1hdC1tZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkNvbnZlcnNpb24gZmlsZSBgJXMnIHN1Y2Nlc3NmdWxseSBjcmVhdGVkIHdpdGggd2FybmluZ3M7
IGRpc3BsYXkgdGhlbT8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
LWZpbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyIGVycm9yLWJ1
ZmZlcikpCisgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiQ29udmVyc2lvbiBmaWxlIHN1
Y2Nlc3NmdWxseSBjcmVhdGVkIGAlcyclcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHplcm9wIChi
dWZmZXItc2l6ZSBlcnJvci1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiB3aXRoIHdh
cm5pbmdzOyBzZWUgYnVmZmVyIGAlcyciIGVycm9yLWJ1ZmZlcikpKSkKKyAgICAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgIChpZiBxdWlldAorICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udmVydGVyIGFi
b3J0ZWQgd2l0aCBleGl0IGNvZGUgJVM7IHNlZSBidWZmZXIgYCVzJyBmb3IgZXJyb3JzIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGl0LXN0YXR1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZmZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICh3aGVuICh5ZXMtb3Itbm8tcCAoZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNvbnZlcnRlciBhYm9ydGVkIHdpdGggZXhpdCBjb2RlICVT
OyBkaXNwbGF5IGVycm9ycz8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXhpdC1zdGF0dXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5LWJ1
ZmZlciBlcnJvci1idWZmZXIpKSkpKSkKKyAgICAgICAgICAoZGVsZXRlLWZpbGUgZXJyb3ItdGVt
cC1maWxlKSkpKSkpCisKKzs7OyBUYWJsZSBvZiBjb250ZW50czoKKworKGRlZmdyb3VwIG1hcmtk
b3duLXRzLXRvYyBuaWwKKyAgIlRhYmxlIG9mIGNvbnRlbnRzIGZvciBgbWFya2Rvd24tdHMtbW9k
ZScgYnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLXRvYy0iCisgIDpncm91cCAndGV4
dAorICA6Z3JvdXAgJ2VkaXRpbmcKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUgJ2luc2VydC10ZW1wbGF0ZQorICAi
V2FybiBpZiBubyB0YWJsZXMgd2VyZSBwcm9jZXNzZWQgd2hlbiBjYWxsaW5nIGBtYXJrZG93bi10
cy10b2MtZ2VuZXJhdGUnLgorSWYgbmlsLCBkbyBub3RoaW5nLiAgSWYgdGhlIHN5bWJvbCBgaW5z
ZXJ0LXRlbXBsYXRlJyBhbmQKK2BtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUnIHdhcyBjYWxsZWQg
aW50ZXJhY3RpdmVseSwgb2ZmZXIgdG8gaW5zZXJ0IGEKK3RlbXBsYXRlIGlmIHRoZXJlIGFyZSBu
b25lLiAgSWYgYG5vLXRhYmxlcycsIHdhcm4gd2hlbiB0aGVyZSBhcmUgbm8KK3RhYmxlcyBpbiB0
aGUgYnVmZmVyLiAgYG5vLWFjdGl2ZS10YWJsZXMnLCBpcyB0aGUgc2FtZSBhcyBgbm8tdGFibGVz
Jword2l0aCB0aGUgYWRkaXRpb24gb2YgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0YWJsZXMsIGJ1
dCBub25lIGFyZSBhY3RpdmUuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiTm8gd2Fy
bmluZ3MiIG5pbCkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkluc2VydCBhIHRhYmxl
IHRlbXBsYXRlIChpZiBpbnRlcmFjdGl2ZSkiIGluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIldhcm4gaWYgbm8gdGFibGVzIHdlcmUgcHJvY2Vzc2VkIiBuby10
YWJsZXMpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJXYXJuIGlmIG5vIGFjdGl2ZSB0
YWJsZXMgd2VyZSBwcm9jZXNzZWQiIG5vLWFjdGl2ZS10YWJsZXMpKQorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy10
b2MtdXBkYXRlLWJlZm9yZS1zYXZlLW1vZGUtbGlnaHRlciAiIFt0b2Mgb24gc2F2ZV0iCisgICJN
aW5vci1tb2RlIFwibGlnaHRlclwiIGZvciBgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUt
c2F2ZS1tb2RlJy4KK05vdGUgdGhlIHNpbmdsZSBzcGFjZSBwcmVmaXguIgorICA6dHlwZSAnKGNo
b2ljZSAoY29uc3QgOnRhZyAiRGVmYXVsdCIgIiBbdG9jIG9uIHNhdmVdIikKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKKyAgICAgICAgICAgICAgICAgKHN0cmluZyA6
dGFnICJPdGhlciBzdHJpbmciKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNp
b24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdG9jLXNsdWctZnVuY3Rpb24gIydt
YXJrZG93bi10cy0tc2x1Zy1naXRodWIKKyAgIkZ1bmN0aW9uIHRvIGdlbmVyYXRlIE1hcmtkb3du
IGhlYWRpbmcgXCJzbHVnc1wiIGluIHRhYmxlcyBvZiBjb250ZW50cy4iCisgIDp0eXBlICcoY2hv
aWNlIChjb25zdCA6dGFnICJHaXRIdWIgc2x1ZyIgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiUGFuZG9jIHNsdWciIG1hcmtkb3duLXRzLS1z
bHVnLXBhbmRvYykKKyAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgIk90aGVyIGZ1bmN0
aW9uIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmdmFyIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcworICAnKChoZWFkaW5nIC4gKGgxIGgyIGgz
IGg0IGg1IGg2KSkKKyAgICAoc2V0ZXh0IC4gKHNoMSBzaDIpKQorICAgIChpdGVtIC4gKG1pbnVz
IHBsdXMgc3RhcikpCisgICAgKG51bWJlcmVkLWl0ZW0gLiAoZG90IHBhcmVuKSkKKyAgICAoY29k
ZSAuIChjb2RlKSkpCisgICJNYXAgaGlnaCBsZXZlbCBub2RlIGhhbmRsZXMgdG8gdGhlaXIgYmFz
ZSBjb25zdGl0dWVudHMuCitUaGUgc3BlY2lhbCBzeW1ib2wgYGFsbCcgbWVhbnMgYWxsIGhhbmRs
ZXMuIikKKworKGRlZnZhciBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2VzCisgIChsZXQg
KCh4KSkKKyAgICAoZG9saXN0IChlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKQorICAgICAg
KGRvbGlzdCAodmFsIChjZHIgZWx0KSkKKyAgICAgICAgKHB1c2ggYCgsdmFsIC4gLChjYXIgZWx0
KSkgeCkpKQorICAgIHgpCisiSW52ZXJzZSBvZiBgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzJy4i
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy1leHBhbmQtY2FuZGlkYXRlLWhhbmRsZXMgKGhh
bmRsZXMpCisgICJFeHBhbmQgY2FuZGlkYXRlIEhBTkRMRVMgYW5kIGtlZXAgb25seSBiYXNlIGhh
bmRsZXMuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuIgorICAobGV0ICgoZXhwYW5k
ZWQgKG1ha2UtaGFzaC10YWJsZSkpCisgICAgICAgIChyZXMpKQorICAgICh1bmxlc3MgKGxpc3Rw
IGhhbmRsZXMpCisgICAgICAoc2V0cSBoYW5kbGVzIChsaXN0IGhhbmRsZXMpKSkKKyAgICAod2hl
biAoZXF1YWwgaGFuZGxlcyAnKGFsbCkpCisgICAgICAoc2V0cSBoYW5kbGVzIChtYXBjYXIgIydj
YXIgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKSkpCisgICAgKGRvbGlzdCAoZWx0IGhhbmRsZXMp
CisgICAgICAoc2V0cSBlbHQgKGFsaXN0LWdldCBlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVz
IGVsdCkpCisgICAgICAoY29uZCAoKGNvbnNwIGVsdCkKKyAgICAgICAgICAgICAoZG9saXN0IChr
IGVsdCkgKHB1dGhhc2ggayB0IGV4cGFuZGVkKSkpCisgICAgICAgICAgICAodCAocHV0aGFzaCBl
bHQgdCBleHBhbmRlZCkpKSkKKyAgICAobWFwaGFzaCAobGFtYmRhIChrIF92KSAocHVzaCBrIHJl
cykpIGV4cGFuZGVkKQorICAgIHJlcykpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdG9jcyAoJm9w
dGlvbmFsIGJlZyBlbmQpCisgICJTY2FuIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgdG9jIGVudHJp
ZXMgZnJvbSBCRUcgdG8gRU5ELgorSWYgQkVHIGlzIG5pbCwgdXNlIGBwb2ludC1taW4nLiAgSWYg
RU5EIGlzIG5pbCwgdXNlIGBwb2ludC1tYXgnLgorCitSZXR1cm4gYW4gYWxpc3Qgb2YgdGhlIGZv
cm06CisgIFxcPScoKGtleXdvcmQgKG5vZGUgYmVnIGVuZCB2YXJzKSkpCisKK1ZhcnMgYXJlIGV4
cGFuZGVkIHZpYSBgaGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lJy4KKworUmV0dXJuIHRo
ZSBsaXN0IGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlIGluIHRoZSBidWZmZXIuIgorICA7OyBO
T1RFOiBUaGlzIHNjYW5zIGFsbCBtYXRjaGluZyBub2RlcyBiZWxvdyBCRUcgd2l0aCBubyBtYXhp
bXVtIGNvdW50CisgIDs7IGV2ZW4gd2hlbiB3ZSB3YW50IG9ubHkgYSBzaW5nbGUgbmV4dCBtYXRj
aGluZyBpdGVtLiAgUGVyaGFwcworICA7OyBgdHJlZXNpdC1xdWVyeS1jYXB0dXJlJyBjb3VsZCBi
ZSBpbXByb3ZlZCB0byBhY2NlcHQgYSBtYXgtY291bnQKKyAgOzsgYXJndW1lbnQuCisgIDs7Cisg
IDs7IE1hdGNoICJtYXJrZG93bi10cy10b2M6IiwgIm1hcmtkb3duLXRzLXRvYy1hYmMxMjM6IiBi
dXQgbm90CisgIDs7ICJtYXJrZG93bi10cy10b2N4eHg6Ii4KKyAgKGxldCAoKHJlcykpCisgICAg
KGRvbGlzdCAobm9kZQorICAgICAgICAgICAgICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgJ21hcmtkb3duCisgICAgICAgICAgICAgICcoKCgoaHRtbF9ibG9jaykgQG1hcmtk
b3duLXRzLXRvYykKKyAgICAgICAgICAgICAgICAgKDptYXRjaCAiPCEtLVtbOmJsYW5rOl1dKm1h
cmtkb3duLXRzLXRvY1xcKC1bWzphbG51bTpdXStcXCkqOiIgQG1hcmtkb3duLXRzLXRvYykpKQor
ICAgICAgICAgICAgICAob3IgYmVnIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAob3IgZW5k
IChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAnbm9kZS1vbmx5KSkKKyAgICAgIChsZXQqICgo
cyAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKQorICAgICAgICAgICAgICht
YXRjaCAoc3RyaW5nLW1hdGNoICJcXChtYXJrZG93bi10cy10b2NcXCgtW1s6YWxudW06XV0rXFwp
KlxcKTouKiIgcykpCisgICAgICAgICAgICAgKGtleXdvcmQgKHdoZW4gbWF0Y2ggKG1hdGNoLXN0
cmluZyAxIHMpKSkpCisgICAgICAgIChsZXQgKCh2YXJzKSkKKyAgICAgICAgICAod2l0aC13b3Jr
LWJ1ZmZlcgorICAgICAgICAgICAgKGluc2VydCBzKQorICAgICAgICAgICAgKHNldHEgdmFycyAo
aGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lKSkpCisgICAgICAgICAgKHB1c2gKKyAgICAg
ICAgICAgYCgsa2V5d29yZAorICAgICAgICAgICAgIChub2RlIC4gLG5vZGUpCisgICAgICAgICAg
ICAgKGJlZyAuICwodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgIChlbmQg
LiAsKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgKHZhcnMgLiAsdmFycykp
CisgICAgICAgICAgIHJlcykpKSkKKyAgICAobnJldmVyc2UgcmVzKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2sgKHRvY3MpCisgICJTYW5pdHkgY2hlY2sgVE9DUyBm
b3IgcGFpcmVkIG1hcmtkb3duLXRzLXRvYzogbWFya2Rvd24tdHMtdG9jLWVuZDogbm9kZXMuCitT
aWduYWwgYW4gZXJyb3IgaWYgVE9DUyBhcmUgaW5zYW5lLgorU2VlIGBtYXJrZG93bi10cy0tdG9j
cycuIgorICAoc2VxLW1hcC1pbmRleGVkCisgICAobGFtYmRhIChlbHQgaWR4KQorICAgICAod2hl
biAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciBlbHQpKQorICAgICAgICh1bmxlc3MgKGVx
dWFsICJtYXJrZG93bi10cy10b2MtZW5kIiAoY2FyIChudGggKDErIGlkeCkgdG9jcykpKQorICAg
ICAgICAgKHVzZXItZXJyb3IKKyAgICAgICAgICAiXCJtYXJrZG93bi10cy10b2NcIiBhdCBwb3Np
dGlvbiAlZCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbWF0Y2hpbmcgXCJtYXJrZG93bi10cy10b2Mt
ZW5kXCIiCisgICAgICAgICAgKGFsaXN0LWdldCAnYmVnIGVsdCkpKSkpCisgICB0b2NzKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS10b2MtY29sbGVjdC1jYW5kaWRhdGVzICh0b2Mtc3RhcnQtbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2MtZW5kLW5v
ZGUgaGFuZGxlcyBmcm9tKQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIHRvYyBlbnRyeSBjYW5kaWRh
dGVzIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyLgorSEFORExFUyBpcyBhIGxpc3Qgb2YgYmFzZSBo
YW5kbGVzOyBzZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuCisKK1RPQy1TVEFSVC1OT0RF
IGlzIHRoZSBcIm1hcmtkb3duLXRzLXRvYy1zdGFydFwiIG5vZGUuCitUT0MtRU5ELU5PREUgaXMg
dGhlIFwibWFya2Rvd24tdHMtdG9jLWVuZFwiIG5vZGUuCisKK0lmIEZST00gaXMgdGhlIHN5bWJv
bCBgYWJvdmUnLCBzb3VyY2UgY2FuZGlkYXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YKK3RoZSBi
dWZmZXIgdW50aWwgdGhlIHRvYyBzdGFydCBub2RlLiAgSWYgYGJlbG93Jywgc291cmNlIGNhbmRp
ZGF0ZXMgZnJvbQordG9jIHN0YXJ0IG5vZGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAg
SWYgYGFsbCcsIHVzZSB0aGUgd2hvbGUKK2J1ZmZlci4KKworUmVtb3ZlIGlnbm9yZWQgY2FuZGlk
YXRlcyBjb250YWluaW5nIFwiPCEtLSBtYXJrZG93bi10cy1pZ25vcmU6IC0tPlwiLgorCitTb3J0
IHRoZSBsaXN0IGJ5IHRoZSBzdGFydGluZyBjaGFyYWN0ZXIgcG9zaXRpb25zIG9mIG5vZGVzLgor
CitUaGUgYWxpc3QgaXMgb2YgdGhlIGZvcm06CisgIFxcPScoKGhhbmRsZSAuIG5vZGUpKSIKKyAg
KGxldCAoY2FuZGlkYXRlcyBiZWcgZW5kKQorICAgIChwY2FzZSBmcm9tCisgICAgICAoJ2Fib3Zl
CisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4pKQorICAgICAgIChzZXRxIGVuZCAodHJlZXNp
dC1ub2RlLXN0YXJ0IHRvYy1zdGFydC1ub2RlKSkpCisgICAgICAoJ2JlbG93CisgICAgICAgKHNl
dHEgYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1lbmQtbm9kZSkpCisgICAgICAgKHNldHEgZW5k
IChwb2ludC1tYXgpKSkKKyAgICAgICgnYWxsCisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4p
KQorICAgICAgIChzZXRxIGVuZCAocG9pbnQtbWF4KSkpKQorCisgICAgOzsgSXQgbG9va3MgbGlr
ZSB3ZSBjYW5ub3QgZ2V0IHRoZW0gaW4gb25lIGZlbGwgc3dvb3AuCisgICAgKGRvbGlzdCAoZWx0
IGhhbmRsZXMpCisgICAgICAoc2V0cQorICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAoYXBwZW5k
CisgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgKHBjYXNlIGVsdAorICAgICAgICAgICgnaDEg
KHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChhdHhf
aGVhZGluZyAoYXR4X2gxX21hcmtlcikgKGlubGluZSkgQGgxKSkgYmVnIGVuZCkpCisgICAgICAg
ICAgKCdoMiAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgJ21hcmtkb3du
ICcoKGF0eF9oZWFkaW5nIChhdHhfaDJfbWFya2VyKSAoaW5saW5lKSBAaDIpKSBiZWcgZW5kKSkK
KyAgICAgICAgICAoJ2gzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAn
bWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oM19tYXJrZXIpIChpbmxpbmUpIEBoMykpIGJl
ZyBlbmQpKQorICAgICAgICAgICgnaDQgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICdtYXJrZG93biAnKChhdHhfaGVhZGluZyAoYXR4X2g0X21hcmtlcikgKGlubGluZSkg
QGg0KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdoNSAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisg
ICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKGF0eF9oZWFkaW5nIChhdHhfaDVfbWFya2VyKSAo
aW5saW5lKSBAaDUpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ2g2ICh0cmVlc2l0LXF1ZXJ5LWNh
cHR1cmUKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oNl9t
YXJrZXIpIChpbmxpbmUpIEBoNikpIGJlZyBlbmQpKQorICAgICAgICAgICgnc2gxICh0cmVlc2l0
LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKHNldGV4dF9oZWFk
aW5nIGhlYWRpbmdfY29udGVudDogKF8pIEBzaDEgKHNldGV4dF9oMV91bmRlcmxpbmUpKSkgYmVn
IGVuZCkpCisgICAgICAgICAgKCdzaDIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICAnbWFya2Rvd24gJygoc2V0ZXh0X2hlYWRpbmcgaGVhZGluZ19jb250ZW50OiAoXykg
QHNoMiAoc2V0ZXh0X2gyX3VuZGVybGluZSkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ21pbnVz
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygo
bGlzdF9pdGVtIChsaXN0X21hcmtlcl9taW51cykgKHBhcmFncmFwaCAoaW5saW5lKSBAbWludXMp
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdwbHVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMp
IChwYXJhZ3JhcGggKGlubGluZSkgQHBsdXMpKSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdzdGFy
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChs
aXN0X2l0ZW0gKGxpc3RfbWFya2VyX3N0YXIpIChwYXJhZ3JhcGggKGlubGluZSkgQHN0YXIpKSkg
YmVnIGVuZCkpCisgICAgICAgICAgKCdkb3QgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIChwYXJh
Z3JhcGggKGlubGluZSkgQGRvdCkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ3BhcmVuICh0cmVl
c2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9wYXJlbnRoZXNpcykgKHBhcmFncmFwaCAoaW5saW5lKSBAcGFyZW4p
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdjb2RlICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJp
bmcgKGxhbmd1YWdlKSkgQGNvZGUpKSBiZWcgZW5kKSkpKSkpCisgICAgKHNvcnQKKyAgICAgKHNl
cS1yZW1vdmUKKyAgICAgIChsYW1iZGEgKGVsdCkKKyAgICAgICAgKHN0cmluZy1tYXRjaC1wICI8
IS0tW1s6Ymxhbms6XV0qbWFya2Rvd24tdHMtaWdub3JlOltbOmJsYW5rOl1dKi0tPiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCAoY2RyIGVsdCkgdCkpKQorICAg
ICAgY2FuZGlkYXRlcykKKyAgICAgOmtleSAobGFtYmRhIChlbHQpCisgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLXN0YXJ0IChjZHIgZWx0KSkpCisgICAgIDpsZXNzcCAjJzwKKyAgICAgOmluLXBs
YWNlIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoIChub2Rl
KQorICAiUmV0dXJuIE5PREUncyBpdGVtIGRlcHRoIHJlbGF0aXZlIHRvIGl0cyBwcmVkZWNlc3Nv
cnMuCitJZiBOT0RFIGlzIG5vdCBwYXJ0IG9mIGEgbGlzdCwgcmV0dXJuIG5pbC4iCisgICAgKGxl
dCAoKGRlcHRoIG5pbCkgKG4gKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgKHdo
aWxlIG4KKyAgICAgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdCIp
CisgICAgICAgICAgKHNldHEgZGVwdGggKDErIChvciBkZXB0aCAwKSkpKQorICAgICAgICAoc2V0
cSBuICh0cmVlc2l0LW5vZGUtcGFyZW50IG4pKSkKKyAgICAgIGRlcHRoKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUgKHRleHQpCisgICJSZW1vdmUgdHJh
aWxpbmcgIyBmcm9tIFRFWFQgdW5sZXNzIHRoZXkgYXJlIGJhY2tzbGFzaCBlc2NhcGVkLgorRmly
c3QgcmVtb3ZlIEhUTUwgY29tbWVudHMuIgorICAoaWYgKHN0cmluZy1tYXRjaC1wICJbWzpibGFu
azpdXSpcXFxcKyMrW1s6Ymxhbms6XV0qXG4qXFwnIiB0ZXh0KQorICAgICAgdGV4dAorICAgIChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIltbOmJsYW5rOl1dKiMrW1s6Ymxhbms6XV0qXG4qXFwn
IiAiIiB0ZXh0KSkpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXRvYy10ZXh0LW5vcm1hbGl6ZXJz
CisgIGAoKGhlYWRpbmcgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQor
ICAgIChoMSAuIG1hcmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGgy
IC4gbWFya2Rvd24tdHMtLXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDMgLiBtYXJr
ZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQorICAgIChoNCAuIG1hcmtkb3duLXRz
LS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGg1IC4gbWFya2Rvd24tdHMtLXRvYy1h
dHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDYgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFk
ZXItbm9ybWFsaXplKSkKKyAgIk1hcCBub2RlIHR5cGUgaGFuZGxlcyB0byBmdW5jdGlvbnMgdGhh
dCBub3JtYWxpemUgaXRzIHRleHQuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emUnLgorRWFjaCBmdW5jdGlvbiBhY2NlcHRzIG9uZSBhcmd1bWVudCwgdGhlIHN0cmluZyBURVhU
LCBhbmQgcmV0dXJucyBhIHN0cmluZy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy10ZXh0
LW5vcm1hbGl6ZSAoaGFuZGxlIG5vZGUgJm9wdGlvbmFsIHRleHQpCisgICJOb3JtYWxpemUgTk9E
RSdzIFRFWFQgYWNjb3JkaW5nIHRvIGl0cyBIQU5ETEUuCitURVhUIHNob3VsZCBoYXZlIG5vIHRl
eHQgcHJvcGVydGllcy4gIElmIFRFWFQgaXMgbmlsLCB1c2UgdGhlIE5PREUncwordGV4dC4gIFRo
aXMgaXMgbm90IGFsd2F5cyBjb3JyZWN0IHNvIGl0J3MgYmVzdCB0byBwYXNzIFRFWFQgaWYgeW91
IGtub3cKK2l0IGluIHRoZSBjYWxsaW5nIGNvbnRleHQuCisKK0lmIG5vIG5vcm1hbGl6ZXIgaXMg
Zm91bmQsIHJldHVybiBURVhULgorCitPbmUgZXhhbXBsZSBub3JtYWxpemF0aW9uIGlzIGF0eF9o
ZWFkaW5nIHRleHQgdGhhdCBlbmRzIGluIHRyYWlsaW5nIGhhc2gKK3NpZ25zIHdoaWNoIGFyZSBp
bnRlbmRlZCB0byBiZSBlbGlkZWQgc28gXCJIZWFkaW5nIFRleHQgIyNcIiBpcwordHJhbnNmb3Jt
ZWQgaW50byBcIkhlYWRpbmcgVGV4dFwiLiIKKyAgKHNldHEgdGV4dCAob3IgdGV4dCAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKSkKKyAgKGlmLWxldCogKChmaXhlciAoYWxp
c3QtZ2V0IGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplcnMpKSkKKyAgICAg
IChmdW5jYWxsIGZpeGVyIHRleHQpCisgICAgdGV4dCkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVm
aW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisg
ICJJZiBlbmFibGVkLCB1cGRhdGUgYG1hcmtkb3duLXRzLW1vZGUnIHRhYmxlcyBvZiBjb250ZW50
cyBiZWZvcmUgc2F2aW5nLiIKKyAgOmluaXQtdmFsdWUgbmlsCisgIDpnbG9iYWwgbmlsCisgIDps
aWdodGVyIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyCisg
IChpZiAoZGVyaXZlZC1tb2RlLXAgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAoaWYgbWFya2Rv
d24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisgICAgICAgICAgKGFkZC1ob29rICdi
ZWZvcmUtc2F2ZS1ob29rICMnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlIG5pbCAnbG9jYWwpCisg
ICAgICAgIChyZW1vdmUtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAjJ21hcmtkb3duLXRzLXRvYy1n
ZW5lcmF0ZSAnbG9jYWwpKQorICAgIChzZXRxIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3Jl
LXNhdmUtbW9kZSBuaWwpCisgICAgKGx3YXJuICdtYXJrZG93bi10cy10b2MtdXBkYXRlLWJlZm9y
ZS1zYXZlLW1vZGUKKyAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgIk1pbm9yIG1vZGUg
dmFsaWQgb25seSBpbiBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKSkpCisKKzs7OyMjI2F1
dG9sb2FkCisoZGVmdW4gbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUgKCZvcHRpb25h
bCBiZWcgZW5kKQorICAiUmVtb3ZlIGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50
cyBib2RpZXMgYW5kIHRlbXBsYXRlcy4KK09wZXJhdGUgb24gdGhlIGFjdGl2ZSByZWdpb24gQkVH
IHRvIEVORCwgb3RoZXJ3aXNlIG9wZXJhdGUgb24gdGhlCitidWZmZXIsIHdoaWNoIG1heSBiZSBu
YXJyb3dlZC4iCisgIChpbnRlcmFjdGl2ZSAiUiIpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1u
b3QtbW9kZSAnbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUpCisgIChtYXJrZG93bi10
cy10b2MtY2xlYXIgYmVnIGVuZCAncmVtb3ZlKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBt
YXJrZG93bi10cy10b2MtY2xlYXIgKCZvcHRpb25hbCBiZWcgZW5kIHJlbW92ZSkKKyAgIkNsZWFy
IGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50cyBib2RpZXMuCitPcGVyYXRlIG9u
IHRoZSBhY3RpdmUgcmVnaW9uIEJFRyB0byBFTkQsIG90aGVyd2lzZSBvcGVyYXRlIG9uIHRoZQor
YnVmZmVyLCB3aGljaCBtYXkgYmUgbmFycm93ZWQuCitJZiBvcHRpb25hbCBSRU1PVkUgaXMgbm9u
LW5pbCwgcmVtb3ZlIHRhYmxlcyBpbmNsdWRpbmcgdGhlaXIgdGVtcGxhdGVzLiIKKyAgKGludGVy
YWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10
cy10b2MtY2xlYXIpCisgIChzZXRxIGJlZyAob3IgYmVnIChwb2ludC1taW4pKSkKKyAgKHNldHEg
ZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNzIChlcSBiZWcgZW5kKQorICAgIDs7
IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlvbnMuCisgICAgKHNldHEgYmVnIChp
ZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVnKSBiZWcpKQorICAgIChzZXRxIGVu
ZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9uIGVuZCkgZW5kKSkKKyAgICA7OyBO
T1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0byBhdm9pZCB0cmVlc2l0ZXIgY3Jh
c2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9uCisgICAgICAobGV0ICgodG9jcykK
KyAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgIChlbmQtcG9zIGVuZCkpCisg
ICAgICAgIDs7IFdlIHNjYW4gZWFjaCBwYXNzIGJlY2F1c2UgdGhlaXIgcG9zaXRpb25zIGNoYW5n
ZS4KKyAgICAgICAgKHdoaWxlIChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAg
ICAgICAgICAoc2V0cSB0b2NzIChtYXJrZG93bi10cy0tdG9jcyBiZWctcG9zIGVuZC1wb3MpKSkK
KyAgICAgICAgICAobWFya2Rvd24tdHMtLXRvY3Mtc2FuaXR5LWNoZWNrIHRvY3MpCisgICAgICAg
ICAgOzsgQWZ0ZXIgc2FuaXR5IGNoZWNraW5nLCB3ZSBrbm93IHRoZSBzZWNvbmQgZWxlbWVudCBp
cyBhCisgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAobGV0KiAoKHRvYyAobnRoIDAg
dG9jcykpCisgICAgICAgICAgICAgICAgICh0b2MtZW5kIChudGggMSB0b2NzKSkKKyAgICAgICAg
ICAgICAgICAgKHJlZy1iZWcgKGlmIHJlbW92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFsaXN0LWdldCAnYmVnIHRvYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxp
c3QtZ2V0ICdlbmQgdG9jKSkpCisgICAgICAgICAgICAgICAgIChyZWctZW5kIChpZiByZW1vdmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2JlZyB0b2MtZW5kKSkpCisg
ICAgICAgICAgICAgICAgIChyZWctc2l6ZSAoLSByZWctZW5kIHJlZy1iZWcpKSkKKyAgICAgICAg
ICAgIChkZWxldGUtcmVnaW9uIHJlZy1iZWcgcmVnLWVuZCkKKyAgICAgICAgICAgIDs7IFN0YXJ0
IHRoZSBuZXh0IHBhc3MgYWZ0ZXIgdGhpcyB0b2MtZW5kLiAgQWRqdXN0IGZvciB0aGUKKyAgICAg
ICAgICAgIDs7IGRlbGV0ZWQgcmVnaW9uLgorICAgICAgICAgICAgKHNldHEgYmVnLXBvcyAoLSAo
YWxpc3QtZ2V0ICdlbmQgdG9jLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
LXNpemUpKQorICAgICAgICAgICAgKHNldHEgZW5kLXBvcyAobWluIChwb2ludC1tYXgpICgtIGVu
ZC1wb3MgcmVnLXNpemUpKSkpKSkpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93
bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGBt
YXJrZG93bi10cy1tb2RlYCB0YWJsZSBvZiBjb250ZW50cyB0ZW1wbGF0ZSBhdCBwb2ludC4KKwor
Q0hBUiBpcyB0aGUgdGVtcGxhdGUgdHlwZSBcImJcIiBmb3IgYmFzaWMsIFwiY1wiIGZvciBjb21w
bGV0ZS4gIElmIENIQVIKK2lzIG5pbCBhbmQgdGhlIGNvbW1hbmQgaXMgcnVuIGludGVyYWN0aXZl
bHksIHByb21wdCBmb3IgYSB0ZW1wbGF0ZS4KKworVGhlIGJhc2ljIHRlbXBsYXRlIHVzZXMgYWxs
IGRlZmF1bHRzIGFuZCBpcyBsaWtlbHkgdGhlIGJlc3QgY2hvaWNlIGZvcgorbW9zdCB1c2VzLiAg
VGhlIGNvbXBsZXRlIHRlbXBsYXRlIGlsbHVzdHJhdGVzIGFsbCBwYXJhbWV0ZXJzIHNldCB0bwor
dGhlaXIgZGVmYXVsdHMgYW5kIGlzIHVzZWZ1bCBhcyBhIHN0YXJ0aW5nIHBvaW50IHRvIGN1c3Rv
bWl6ZSBhIHRhYmxlLiIKKyAgKGludGVyYWN0aXZlICJjVGVtcGxhdGUgW2JdYXNpYyBbY11vbXBs
ZXRlOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9iCisgICAgIChpbnNlcnQgIjwhLS0gbWFya2Rv
d24tdHMtdG9jOiAtLT5cbiIKKyAgICAgICAgICAgICAiPCEtLSBtYXJrZG93bi10cy10b2MtZW5k
OiAtLT5cbiIpKQorICAgICg/YworICAgICAoaW5zZXJ0ICI8IS0tIG1hcmtkb3duLXRzLXRvYzog
LSotICIKKyAgICAgICAgICAgICAibWluLWRlcHRoOiAxOyAiCisgICAgICAgICAgICAgIm1heC1k
ZXB0aDogbmlsOyAiCisgICAgICAgICAgICAgImNhbmRpZGF0ZXM6IChoZWFkaW5nKTsgIgorICAg
ICAgICAgICAgICJmcm9tOiBiZWxvdzsgIgorICAgICAgICAgICAgICJzdHlsZTogaXRlbTsgIgor
ICAgICAgICAgICAgICJpbmRlbnQ6IDE7ICIKKyAgICAgICAgICAgICAibm8tbGluazogbmlsOyAi
CisgICAgICAgICAgICAgInJlbGF0aXZlLWRlcHRoOiBuaWw7ICIKKyAgICAgICAgICAgICAiaWdu
b3JlOiBuaWw7ICIKKyAgICAgICAgICAgICAiLSotIC0tPlxuIgorICAgICAgICAgICAgICI8IS0t
IG1hcmtkb3duLXRzLXRvYy1lbmQ6IC0tPlxuIikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1
Y2ggdGVtcGxhdGUgdHlwZTogJWMiIGNoYXIpKSkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4g
bWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlICgmb3B0aW9uYWwgaW50ZXJhY3RpdmUgYmVnIGVuZCkK
KyAgIkdlbmVyYXRlIHRhYmxlcyBvZiBjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitg
bWFya2Rvd24tdHMtbW9kZScgdXNlcyBNYXJrZG93biBIVE1MIGNvbW1lbnQgZWxlbWVudHMgdG8g
aWRlbnRpZnkgdGFibGUKK29mIGNvbnRlbnRzIChha2EgdG9jKSBpbnNlcnRpb24gYm91bmRhcmll
cyBhbmQgdGhlIHBhcmFtZXRlcnMgZm9yIGVhY2gKK3RhYmxlLiAgRGVyaXZlIHRhYmxlIGNvbnRl
bnQgZnJvbSB0aGUgTWFya2Rvd24gZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQKK2J1ZmZlciB3aGlj
aCBhcmUgdXN1YWxseSBoZWFkaW5ncyBidXQgY2FuIGFsc28gYmUgbGlzdCBpdGVtcywgc2V0ZXh0
CitoZWFkZXJzLCBuYW1lZCBjb2RlIGJsb2Nrcy4KKworT3BlcmF0ZSBvbiB0aGUgYWN0aXZlIHJl
Z2lvbiBCRUcgdG8gRU5ELCBvdGhlcndpc2Ugb3BlcmF0ZSBvbiB0aGUKK2J1ZmZlciwgd2hpY2gg
bWF5IGJlIG5hcnJvd2VkLgorCitFYWNoIHRpbWUgeW91IHJ1biB0aGlzIGNvbW1hbmQsIGV4aXN0
aW5nIHRhYmxlcyBvZiBjb250ZW50cyBhcmUgY2xlYXJlZAorYW5kIHJlZnJlc2hlZCB3aXRoIG5l
dyBjb250ZW50LiAgU28gZG9uJ3QgcGxhY2UgdG9jIGVsZW1lbnRzIGFyb3VuZAoraW1wb3J0YW50
IHRleHQuCisKK1RoZSBidWZmZXIgY2FuIGhhdmUgb25lIG9yIG1vcmUgdG9jcy4gIEJ5IGRlZmF1
bHQsIHBvcHVsYXRlIGVhY2ggdG9jCit3aXRoIGVsZW1lbnRzIHRoYXQgYXBwZWFyIGluIHRoZSBi
dWZmZXIgYmVsb3cgdGhlIHRvYy4gIFRoZXJlZm9yZSwgdGhlCitlYXNpZXN0IHdheSB0byBpbnNl
cnQgYSBjb21wbGV0ZSB0YWJsZSBvZiBjb250ZW50cywgaXMgdG8gcHV0IHRoZSB0b2MKK3RlbXBs
YXRlIG5lYXIgdGhlIHRvcCBvZiB5b3VyIGJ1ZmZlci4KKworQSBiYXNpYyBlbXB0eSB0b2MgdGVt
cGxhdGUgbG9va3MgbGlrZSB0aGlzOgorCitIZWFkZXIgdGV4dCB5b3Ugd2FudCBoZXJlLgorCis8
IS0tIG1hcmtkb3duLXRzLXRvYzogLS0+CitDb250ZW50cyBpbnNlcnRlZCBiZXR3ZWVuIHRoZXNl
IGVsZW1lbnRzLgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworRm9vdGVyIHRleHQg
eW91IHdhbnQgaGVyZS4KKworVXNlIHRoZSBjb21tYW5kIGBtYXJrZG93bi10cy10b2MtaW5zZXJ0
LXRlbXBsYXRlJyB0byBpbnNlcnQgYSB0YWJsZSBvZgorY29udGVudHMgdGVtcGxhdGUuCisKK1Vz
ZSB0aGUgY29tbWFuZCBgbWFya2Rvd24tdHMtdG9jLWNsZWFyJyB0byBjbGVhciB0YWJsZSBjb250
ZW50LCBhbmQgdGhlCitjb21tYW5kIGBtYXJrZG93bi10cy10b2MtY2xlYXItYW5kLXJlbW92ZScg
dG8gYm90aCBjbGVhciBhbmQgcmVtb3ZlCit0YWJsZSBjb250ZW50IGFuZCB0ZW1wbGF0ZXMuCisK
K0J5IGRlZmF1bHQsIGEgdG9jIGluY2x1ZGVzIGhlYWRlcnMgYXQgYWxsIGxldmVscyBiZWxvdyB0
aGUgdG9jIHdoaWNoIGFyZQorcHJlc2VudGVkIGFzIGxpc3QgaXRlbXMgd2l0aCBsaW5rcy4KKwor
VG8gaWdub3JlIGEgTWFya2Rvd24gZWxlbWVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBpbmNs
dWRlZCBpbiB0aGUKK3RvYywgYWRkIGEgdG9jIGlnbm9yZSBlbGVtZW50OgorCisjIyBJZ25vcmUg
TWUgPCEtLSBtYXJrZG93bi10cy10b2MtaWdub3JlOiAtLT4KKworVGhlIHN0YXJ0aW5nIHRvYyBl
bGVtZW50IGFjY2VwdHMgcGFyYW1ldGVycyBpbiB0aGUgc3ludGF4IG9mIEVtYWNzIGZpbGUKK3Zh
cmlhYmxlcy4KKworRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgdGFibGUg
b2YgY29udGVudHMgbGltaXRlZCB0bworaGVhZGluZ3MgdHdvIGxldmVscyBkZWVwOgorCis8IS0t
IG1hcmtkb3duLXRzLXRvYzogLSotIG1heC1kZXB0aDogMjsgLSotIC0tPgorPCEtLSBtYXJrZG93
bi10cy10b2MtZW5kOiAtLT4KKworT3IgdXNlIG9ubHkgaGVhZGluZ3MgdHdvIGFuZCB0aHJlZSBs
ZXZlbHMgZGVlcC4KKworPCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSBtaW4tZGVwdGg6IDI7IG1h
eC1kZXB0aDogMzsgLSotIC0tPgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworVGhl
c2UgYXJlIHRoZSBzdXBwb3J0ZWQgcGFyYW1ldGVycyB3aGljaCBhcmUgb3B0aW9uYWwuICBUaGV5
IGVhY2ggbGlzdAordGhlaXIgZGVmYXVsdHMuCisKKyAgbWluLWRlcHRoOiAxICAgICAgICAgIDsg
YW4gaW50ZWdlcgorICBtYXgtZGVwdGg6IG5pbCAgICAgICAgOyBhbiBpbnRlZ2VyCisgIGNhbmRp
ZGF0ZXM6IChoZWFkaW5nKSA7IGEgbGlzdAorICBmcm9tOiBiZWxvdyAgICAgICAgICAgOyBhIHN5
bWJvbAorICBzdHlsZTogaXRlbSAgICAgICAgICAgOyBhIHN5bWJvbAorICBpbmRlbnQ6IDEgICAg
ICAgICAgICAgOyBhIG51bWJlcgorICBuby1saW5rOiBuaWwgICAgICAgICAgOyBhIGJvb2xlYW4K
KyAgcmVsYXRpdmUtZGVwdGg6IG5pbCAgIDsgYSBib29sZWFuCisgIGlnbm9yZTogbmlsICAgICAg
ICAgICA7IGEgYm9vbGVhbgorCitgbWluLWRlcHRoJyBhbmQgYG1heC1kZXB0aCcgYm90aCBkZWZh
dWx0IHRvIHVzaW5nIGFsbCBjYW5kaWRhdGVzIGF0CitldmVyeSBsZXZlbC4gIFVzZSBgbWluLWRl
cHRoJyB0byBpZ25vcmUgbGV2ZWwgMSBoZWFkaW5ncyBsaWtlIFwiIworSGVhZGluZ1wiLCBieSB1
c2luZyAyLiAgVXNlIGBtYXgtZGVwdGgnIHRvIGNvbnRyb2wgaG93IGRlZXAgaW50byB0aGUKK2hl
YWRpbmcgaGllcmFyY2h5IHlvdSBuZWVkIHlvdXIgdG9jIHRvIGdvLiAgVXNlIDMgdG8gc3RvcCBh
dCBsZXZlbCB0aHJlZQoraGVhZGluZ3MuCisKK0hlYWRpbmdzIGRpY3RhdGUgdGhlIGxldmVsIG9m
IHRoZWlyIGNoaWxkcmVuIGV2ZW4gaWYgaGVhZGluZ3MgYXJlCitleGNsdWRlZCBmcm9tIGNhbmRp
ZGF0ZXMuICBPdGhlciBlbGVtZW50IHR5cGVzIGluaGVyaXQgdGhlIGxldmVsIG9mCit0aGVpciBw
cmVjZWRpbmcgaGVhZGluZy4KKworYGNhbmRpZGF0ZXMnIGlzIGEgbGlzdCBhbmQgY2FuIGNvbnRh
aW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgTWFya2Rvd24KK2VsZW1lbnQgc2hvcnRjdXQgbmFtZXMu
ICBZb3UgY2FuIG1peCBoaWdoZXItbGV2ZWwgZ3JvdXBpbmcgc3ltYm9scyBhbmQKK2xvd2VyIGxl
dmVsIHN5bWJvbHMuCisKKyAgYWxsIChpbmNsdWRlcyBldmVyeXRoaW5nKQorICBoZWFkaW5nIChp
bmNsdWRlcyB0aGUgYmVsb3cpCisgICAgaDEgaDIgaDMgaDQgaDUgaDYKKyAgc2V0ZXh0IChpbmNs
dWRlcyB0aGUgYmVsb3cpCisgICAgc2gxIHNoMgorICBpdGVtIChpbmNsdWRlcyB0aGUgYmVsb3cp
CisgICAgbWludXMgcGx1cyBzdGFyCisgIG51bWJlcmVkLWl0ZW0gKGluY2x1ZGVzIHRoZSBiZWxv
dykKKyAgICBkb3QgcGFyZW4KKyAgY29kZSAobmFtZWQgY29kZSBibG9ja3MpCisKK2Bmcm9tJyBj
b250cm9scyB0aGUgZGlyZWN0aW9uIGFuZCBzY29wZSBmcm9tIHdoaWNoIGNhbmRpZGF0ZXMgYXJl
CitzZWxlY3RlZC4gIFR5cGljYWxseSwgYSB0b2MgaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBidWZmZXIgYW5kCitgZnJvbScgaXMgYGJlbG93JyB0byBjYXB0dXJlIGVudHJ5IGNhbmRp
ZGF0ZXMgYWZ0ZXIgdGhlIHRvYy4gIElmIHlvdSBzZXQKK2Bmcm9tJyB0byBgYWJvdmUnLCBjYW5k
aWRhdGVzIGFyZSBzZWxlY3RlZCBmcm9tIGFib3ZlIHRoZSB0b2MuICBVc2UKK2BhbGwnIHRvIGNh
cHR1cmUgZXZlcnkgZW50cnkgY2FuZGlkYXRlLiAgVGhpcyBpcyB1c2VmdWwgdG8gY3JlYXRlIGEK
K2NvbXBsZXRlIHRvYyBhdCB0aGUgZW5kIG9mIHlvdXIgYnVmZmVyLgorCitUaGUgYHN0eWxlJyBw
YXJhbWV0ZXIgY2FuIGJlIG5pbCwgYGl0ZW0nLCBgbnVtYmVyJyBvciBgbnVtYmVyLicuICBVbmRl
cgorbmlsLCBlbnRyaWVzIGhhdmUgbm8gZGVjb3JhdGlvbnMuICBJZiBgaXRlbScsIGVudHJpZXMg
YXJlIHByZWZpeGVkIHdpdGgKK1wiLVwiLiAgSWYgYGJ1bGxldCcsIHByZWZpeCB3aXRoIFwiKlwi
LiAgSWYgYG51bWJlcicsIG51bWVyaWMgcHJlZml4ZXMKK2FyZSBnZW5lcmF0ZWQsIGZvciBleGFt
cGxlIDEsIDEuMSwgMiwgMi4xLCAyLjEuMSwgMi4xLjIuICBVc2UgYG51bWJlci4nCit0byBhZGQg
YSBwZXJpb2QgdG8gZWFjaCBlbnRyeSdzIG51bWJlci4KKworYGluZGVudCcgaXMgYW4gaW50ZWdl
ciBiZXR3ZWVuIDAgYW5kIDEwLiAgMCBtZWFucyBub3RoaW5nIHNob3VsZCBiZQoraW5kZW50ZWQu
ICBPdGhlcndpc2UsIGVhY2ggZW50cnkgaXMgaW5kZW50ZWQgYnkgdGhlIG51bWJlciBvZiBzcGFj
ZXMgb2YKK2l0cyBNYXJrZG93biBsZXZlbCBtdWx0aXBsaWVkIGJ5IHRoaXMgdmFsdWUuICBDYW5k
aWRhdGVzIHRoYXQgaGF2ZSBubworbmF0aXZlIGxldmVsIHN1Y2ggYXMgbGlzdCBpdGVtcyBpbmhl
cml0IHRoZSBiYXNlIGluZGVudGF0aW9uIGxldmVsIG9mCitpdHMgcHJlY2VkaW5nIGhlYWRlci4g
IExpc3QgaXRlbSBoaWVyYXJjaGllcyBhbmQgY29kZSBibG9ja3MgaW5kZW50Cit1bmRlciB0aGF0
IGJhc2UuCisKK1NldCBgbm8tbGluaycgdG8gdCBpZiB5b3UgZG8gbm90IHdhbnQgeW91ciBlbnRy
aWVzIHRvIGhhdmUgaGVhZGVyIGxpbmtzLgorQnkgZGVmYXVsdCwgZWFjaCBlbnRyeSBkZXJpdmVk
IGZyb20gYSBoZWFkaW5nIGlzIHByZXNlbnRlZCBhcyBhIGxpbmsgdG8KK2l0cyBzb3VyY2UgaGVh
ZGluZy4gIE5PVEU6IFRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSBgc2V0ZXh0JywgYGl0ZW0n
LAorYG51bWJlcmVkLWl0ZW0nLCBgY29kZScgZG8gbm90IHN1cHBvcnQgbGlua3MuCisKK1VzZSBg
cmVsYXRpdmUtZGVwdGgnIHRvIGNyZWF0ZSBhIHRvYyB1bmRlcm5lYXRoIGEgaGVhZGluZywgbGlt
aXRpbmcgdGhlCit0b2MgdG8gaGVhZGluZyBkZXB0aHMgdW5kZXJuZWF0aCB0aGUgcHJlY2VkaW5n
IGhlYWRlciBhbmQgc3BlY2lmeSB0aGUKK2xldmVscyByZWxhdGl2ZSB0byB0aGF0IGhlYWRlci4g
IE1vcmUgY29uY3JldGVseSwgaWYgdGhlIHByZWNlZGluZworaGVhZGVyIGlzIGEgbGV2ZWwgMSBc
IiNcIiBoZWFkZXIsIGBtaW4tZGVwdGgnIDEgYW5kIGBtYXgtZGVwdGgnIDIgd2lsbAorYmUgaW50
ZXJwcmV0ZWQgdG8gYmUgMiBhbmQgMy4gIElmIHlvdSBkZW1vdGUgdGhlIGhlYWRlciB0byBsZXZl
bCAyCitcIiMjXCIgdGhleSB3aWxsIGJlIGludGVycHJldGVkIGFzIDMgYW5kIDQuICBUaGlzIGlz
IHVzZWZ1bCB0byBhdm9pZAorZnVzc2luZyB3aXRoIHRvYyBjb25maWd1cmF0aW9ucyB1bmRlciBo
ZWFkZXJzIHdoZW4geW91IGNoYW5nZSB0aGVpcgorbGV2ZWxzLgorCitGb3IgZXhhbXBsZToKKwor
PCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSByZWxhdGl2ZS1kZXB0aDogdDsgbWluLWRlcHRoOiAx
OyBtYXgtZGVwdGg6IDI7IC0qLSAtLT4KKzwhLS0gbWFya2Rvd24tdHMtdG9jLWVuZDogLS0+CisK
K0ZpbmFsbHksIGlmIGBpZ25vcmUnIGlzIHQsIHlvdSBjYW4ga2VlcCBhIHRvYyBlbGVtZW50IGlu
IHBsYWNlIGFuZCBza2lwCitpdC4KKworSU5URVJBQ1RJVkUgd2lsbCBiZSBub24tbmlsIGlmIHRo
aXMgY29tbWFuZCB3YXMgaW52b2tlZCBpbnRlcmFjdGl2ZWx5LgorCitTZWUgYG1hcmtkb3duLXRz
LXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUnIHRvIGNvbmZpZ3VyZSB3YXJuaW5ncyBhYm91dAor
dGFibGVzIG5vdCBiZWluZyBwcm9jZXNzZWQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4i
CisgIChpbnRlcmFjdGl2ZSAicFxuUiIpCisgIDs7IE5PVEU6IElmIHBhcmFtZXRlcnMgb3IgdGhl
aXIgZGVmYXVsdHMgY2hhbmdlLCBiZSBzdXJlIHRvIG1pcnJvcgorICA7OyB0aGVtIGluIGBtYXJr
ZG93bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlJy4KKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5v
dC1tb2RlICdtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUpCisgIChzZXRxIGJlZyAob3IgYmVnIChw
b2ludC1taW4pKSkKKyAgKHNldHEgZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNz
IChlcSBiZWcgZW5kKQorICAgIDs7IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlv
bnMuCisgICAgKHNldHEgYmVnIChpZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVn
KSBiZWcpKQorICAgIChzZXRxIGVuZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9u
IGVuZCkgZW5kKSkKKyAgICA7OyBOT1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0
byBhdm9pZCB0cmVlc2l0ZXIgY3Jhc2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9u
CisgICAgICAobGV0ICgodG9jcyAobWFya2Rvd24tdHMtLXRvY3MgYmVnIGVuZCkpKQorICAgICAg
ICAodW5sZXNzIHRvY3MKKyAgICAgICAgICAoaWYgKGFuZCBpbnRlcmFjdGl2ZQorICAgICAgICAg
ICAgICAgICAgIChlcSAnaW5zZXJ0LXRlbXBsYXRlIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13
YXJuLWlmLW5vbmUpKQorICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtdG9jLWluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAgICAgICA7OyBJZiB0aGUg
dXNlciBkaWRuJ3QgcXVpdCB0aGUgcHJvbXB0LCBhIHRlbXBsYXRlIG1heSBoYXZlCisgICAgICAg
ICAgICAgICAgOzsgYmVlbiBhZGRlZCwgc28gcmVzY2FuIHRoZSBidWZmZXIuCisgICAgICAgICAg
ICAgICAgKHNldHEgdG9jcyAobWFya2Rvd24tdHMtLXRvY3MpKSkKKyAgICAgICAgICAgICh3aGVu
IChlcSAnbm8tdGFibGVzIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUpCisg
ICAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlCisgICAgICAgICAg
ICAgICAgICAgICA6d2FybmluZworICAgICAgICAgICAgICAgICAgICAgIk5vIHRhYmxlcyBvZiBj
b250ZW50cyBmb3VuZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUg
KGN1cnJlbnQtYnVmZmVyKSkpKSkpCisgICAgICAgIChtYXJrZG93bi10cy0tdG9jcy1zYW5pdHkt
Y2hlY2sgdG9jcykKKworICAgICAgICA7OyBTdHJhdGVneSBpcyBwcm9jZXNzIG9uZSB0b2MgYXQg
YSB0aW1lIGZyb20gdGhlIHRvcCB0byB0aGUKKyAgICAgICAgOzsgYm90dG9tIG9mIHRoZSByYW5n
ZSBCRUcgRU5ELiAgU3Vic2VxdWVudCB0b2MgYW5kIGVudHJ5CisgICAgICAgIDs7IGNhbmRpZGF0
ZSBub2RlIHBvc2l0aW9ucyBjaGFuZ2UgYXMgd2UgdXBkYXRlIGVhY2ggdG9jIHRleHQgc28KKyAg
ICAgICAgOzsgd2UgaGF2ZSB0byByZXRyaWV2ZSB0aGVtIGZyZXNoIGZyb20gdGhlIGVuZCBvZiB0
aGUgbW9zdCByZWNlbnQKKyAgICAgICAgOzsgdG9jLgorICAgICAgICAobGV0ICgodG9jcykKKyAg
ICAgICAgICAgICAgKG51bS10b2NzLXByb2Nlc3NlZCAwKQorICAgICAgICAgICAgICAodG9jKQor
ICAgICAgICAgICAgICAodG9jLWVuZCkKKyAgICAgICAgICAgICAgKHRvYy1zaXplKQorICAgICAg
ICAgICAgICA7OyBUaGVzZSBhcmUgYWRqdXN0ZWQgYnkgdGhlIHNpemUgb2YgaW5zZXJ0ZWQgdGV4
dCBlYWNoIHBhc3MuCisgICAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgICAg
KGVuZC1wb3MgZW5kKQorICAgICAgICAgICAgICAoc291cmNlLWJ1ZmZlciAoY3VycmVudC1idWZm
ZXIpKSkKKyAgICAgICAgICA7OyBGaW5kIGVhY2ggIm1hcmtkb3duLXRzLXRvYyIgaW4gc3VjY2Vz
c2lvbiBzdGFydGluZyBhdCB0aGUgZW5kCisgICAgICAgICAgOzsgb2YgZWFjaCBwcmV2aW91cyBv
bmUgd2UgZmluZCB3aXRoaW4gdGhlIHJlcXVlc3RlZCByZWdpb24uCisgICAgICAgICAgKHdoaWxl
IChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHRv
Y3MgKG1hcmtkb3duLXRzLS10b2NzIGJlZy1wb3MgZW5kLXBvcykpKQorICAgICAgICAgICAgKHNl
dHEgdG9jIChjYXIgdG9jcykpCisgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAwKQorCisgICAg
ICAgICAgICAod2hlbiAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciB0b2MpKQorICAgICAg
ICAgICAgICA7OyBBZnRlciBzYW5pdHkgY2hlY2tpbmcsIHdlIGtub3cgdGhlIHNlY29uZCBlbGVt
ZW50IGlzIGEKKyAgICAgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAgICAgKHNldHEg
dG9jLWVuZCAobnRoIDEgdG9jcykpCisgICAgICAgICAgICAgIChsZXQqICgodG9jLW5vZGUgKGFs
aXN0LWdldCAnbm9kZSB0b2MpKQorICAgICAgICAgICAgICAgICAgICAgKHRvYy12YXJzIChhbGlz
dC1nZXQgJ3ZhcnMgdG9jKSkKKyAgICAgICAgICAgICAgICAgICAgICh0b2MtaWdub3JlIChhbGlz
dC1nZXQgJ2lnbm9yZSB0b2MtdmFycykpKQorICAgICAgICAgICAgICAgICh1bmxlc3MgdG9jLWln
bm9yZQorICAgICAgICAgICAgICAgICAgOzsgQnVpbGQgdGhlIHRvYyBvbmUgY2FuZGlkYXRlIGF0
IGEgdGltZSwgdHJhY2tpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGluZGVudGF0aW9uIGFuZCBj
cmVhdGluZyBsaW5rcyBpZiBuZWVkZWQuCisgICAgICAgICAgICAgICAgICAobGV0KiAoKHRvYy1l
bmQtbm9kZSAoYWxpc3QtZ2V0ICdub2RlIHRvYy1lbmQpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgIChyZWctYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1ub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVnLWVuZCAodHJlZXNpdC1ub2RlLXN0YXJ0IHRvYy1lbmQtbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1oYW5kbGVzIChtYXJrZG93bi10cy0tdG9jLWV4
cGFuZC1jYW5kaWRhdGUtaGFuZGxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG9yIChjZHItc2FmZSAoYXNzcSAnY2FuZGlkYXRlcyB0b2MtdmFycykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRpbmcpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBOb3cgYWRkIGhlYWRpbmdzIHRvIGFsd2F5cyByZXRyaWV2ZSBh
bmQgZGVyaXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbGV2ZWxzIGV2ZW4gaWYgdGhl
eSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgdG9jLgorICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWVkLWhhbmRsZXMgKGNvcHktdHJlZSB0b2MtaGFuZGxlcykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKF8gKGRvbGlzdCAoZWx0IChhbGlzdC1nZXQgJ2hlYWRpbmcgbWFya2Rvd24tdHMtLXRv
Yy1oYW5kbGVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1wdXNobmV3IGVs
dCBzZWVkLWhhbmRsZXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLWZyb20gKG9y
IChjZHItc2FmZSAoYXNzcSAnZnJvbSB0b2MtdmFycykpICdiZWxvdykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRvYy1zdHlsZSAob3IgKGNkci1zYWZlIChhc3NxICdzdHlsZSB0b2MtdmFy
cykpICdpdGVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLW5vLWxpbmsgKGFsaXN0
LWdldCAnbm8tbGluayB0b2MtdmFycykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1p
bmRlbnQgKG1pbiAxMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1heCAwIChvciAoY2RyLXNhZmUgKGFzc3EgJ2luZGVudCB0b2MtdmFycykpIDEpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRvYy1taW4tZGVwdGggKG1heCAxCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtaW4t
ZGVwdGggdG9jLXZhcnMpKSAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1tYXgt
ZGVwdGggKG1heCB0b2MtbWluLWRlcHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtYXgtZGVwdGggdG9jLXZhcnMpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3QtcG9z
aXRpdmUtZml4bnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1k
ZXB0aCAoY2RyLXNhZmUgKGFzc3EgJ3JlbGF0aXZlLWRlcHRoIHRvYy12YXJzKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRvYy1jYW5kaWRhdGVzIChtYXJrZG93bi10cy0tdG9jLWNvbGxl
Y3QtY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9jLW5vZGUgdG9jLWVuZC1ub2RlIHNlZWQtaGFuZGxlcyB0b2MtZnJvbSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1oZWFkaW5nLWRlcHRoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxKyAob3IgKHNlcS1wb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKCJhdHhfaDFfbWFya2VyIiAiYXR4X2gyX21hcmtlciIgImF0eF9oM19t
YXJrZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0eF9oNF9tYXJr
ZXIiICJhdHhfaDVfbWFya2VyIiAiYXR4X2g2X21hcmtlciIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRvYy1ub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhdHhfaGVhZGluZyIgJ2JhY2t3YXJkKSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZXF1YWwpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLTEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2x1Zy10by1w
b3MgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkcykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHBvcy10by1zbHVnCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChodCAobWFrZS1o
YXNoLXRhYmxlIDpzaXplIChoYXNoLXRhYmxlLWNvdW50IHNsdWctdG8tcG9zKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ2VxdWFs
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGhhc2ggKGxhbWJkYSAoayB2KSAo
cHV0aGFzaCB2IGsgaHQpKSBzbHVnLXRvLXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBodCkpKQorCisgICAgICAgICAgICAgICAgICAgICh3aXRoLXdvcmstYnVmZmVyCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydCAiPCEtLSBOT1RFOiBtYXJrZG93bi10cy10b2MgZ2VuZXJh
dGVkIHRleHQgc2VjdGlvbiBtYXkgYmUgb3ZlcndyaXR0ZW4uIC0tPlxuIikKKyAgICAgICAgICAg
ICAgICAgICAgICAobGV0ICgoaGFuZGxlKSAoaGFuZGxlLWNsYXNzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmRlbnQg
MCkgKGxldmVsIDEpIChsZXZlbC1wcmV2IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgSGVhZGluZyBsZXZlbCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaXRlbXMgdW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7OyBpdC4gIElmIHRoZXJlIGFyZSBubyBoZWFkaW5ncywg
aXQgd2lsbCByZW1haW4gMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV2ZWwtaGVh
ZGluZyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBmb3Igbm9uIGhl
YWRpbmdzIHVuZGVyIGhlYWRpbmdzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudW1i
ZXItc3RhY2spKQorCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBDYW5kaWRhdGVzIHNob3Vs
ZCBiZSBpbiBidWZmZXIgb3JkZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChj
YW5kaWRhdGUgdG9jLWNhbmRpZGF0ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg
KChzbHVnLXBvcykgKHRleHQpIChsaW5rLXRhcmdldCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxldmVsLWFkaiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBoYW5kbGUgKGNhciBjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlLWNsYXNzIChhbGlzdC1nZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2Vz
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBub2RlIChjZHIgY2FuZGlkYXRl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBzbHVnLXBvcyBuaWwpCisKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTdHJpcCB0cmFpbGluZyBuZXdsaW5lcy4gIEFk
ZCB0aGVtIGNvbnNpc3RlbnRseSBiZWxvdy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2V0cSB0ZXh0IChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZSBub2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlICduby1w
cm9wZXJ0eSkpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZSBu
b2RlIHR5cGUgbG9naWMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlIGhhbmRs
ZS1jbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdoZWFkaW5nCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHNlcS1wb3NpdGlvbiAnKGgxIGgyIGgz
IGg0IGg1IGg2KSBoYW5kbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZXRxIHNsdWctcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCBub2RlICJh
dHhfaGVhZGluZyIgJ2JhY2t3YXJkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBsZXZlbCAoc2V0cSBsZXZlbC1oZWFkaW5nICgxKyB4KSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgdGV4dCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCdzZXRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoeCAoc2VxLXBvc2l0aW9uICcoc2gxIHNoMikgaGFuZGxlKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbCAoMSsgeCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgbmlsKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKG9yICdpdGVtICdudW1iZXJlZC1pdGVtKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXRxIGxldmVsIGxldmVsLWhlYWRpbmcpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtYWRqIChtYXJrZG93bi10cy0tdG9jLWxp
c3QtaXRlbS1kZXB0aCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBpbmRlbnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCdjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5oZXJp
dCB0aGUgYW1iaWVudCBsZXZlbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBsZXZlbC1hZGogMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBpbmRl
bnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDs7IEZpbHRlciBkZXNpcmVkIGhhbmRsZXMgYW5kIGxldmVscy4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiAoYW5kIChtZW1xIGhhbmRsZSB0b2MtaGFuZGxlcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSBsZXZlbCAoKyB0b2MtbWluLWRl
cHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIHRvYy1yZWxhdGl2ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b2MtcmVsYXRpdmUtaGVhZGluZy1kZXB0aCAwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gbGV2ZWwgKCsgdG9jLW1h
eC1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpZiB0b2MtcmVsYXRpdmUtZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9jLXJlbGF0aXZlLWhlYWRpbmctZGVwdGggMCkp
KSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgQ3JlYXRlIHRoZSBlbnRyeSB3
aXRoIGluZGVudCwgaXRlbS9udW1iZXIgcHJlZml4LCBsaW5rLgorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBDb3JuZXIgY2FzZTogaW5pdGlhbCBsZXZlbCBoaWdoZXIgdGhhbiAx
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPiBsZXZlbCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgbGV2ZWwtcHJldiAw
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwgMSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChub3QgdG9jLW5vLWxpbmspIGxp
bmstdGFyZ2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTYW5pdGl6ZSB0
aGUgaWQgdG8gY29uZm9ybSB0byBDU1MgaWRlbnQgc3ludGF4LgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2V0cSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChmb3JtYXQgIlslc10oIyVzKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGlmLWxldCogKChzbHVnIChnZXRoYXNoIHNsdWctcG9zIHBvcy10by1zbHVn
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs
dWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5j
YWxsIG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLXRhcmdldCkpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyAoKiAoMS0gKG1h
eCBpbmRlbnQgMSkpIHRvYy1pbmRlbnQpID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBjYXNlIHRvYy1zdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgnaXRlbSAiLSAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgnYnVsbGV0ICIqICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChvciAnbnVtYmVyICdudW1iZXIuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgobGV2ZWwgKCsgbGV2ZWwgbGV2ZWwtYWRqKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChvciAobm90IG51
bWJlci1zdGFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGxldmVsIChjYWFyIG51bWJlci1zdGFjaykpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBgKCxsZXZlbCAuIDApIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChhbmQgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKDwgbGV2ZWwgKGNhYXIgbnVtYmVyLXN0YWNrKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGlsZSAo
YW5kIG51bWJlci1zdGFjaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoPCBsZXZlbCAoY2FhciBudW1iZXItc3RhY2spKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9wIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh1bmxlc3MgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggYCgsbGV2ZWwgLiAwKSBudW1iZXItc3RhY2sp
KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0Y2RyIChj
YXIgbnVtYmVyLXN0YWNrKSAoMSsgKGNkYXIgbnVtYmVyLXN0YWNrKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChzKSAobiAobGVuZ3RoIG51bWJlci1z
dGFjaykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEt
bWFwLWluZGV4ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoZWx0IGlkeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChmb3JtYXQgIiVkIiAoY2RyIGVsdCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgKDErIGlkeCkgbikg
IiIgIi4iKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmV2ZXJzZSBudW1iZXItc3RhY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb25jYXQgcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRvYy1zdHlsZSAnbnVtYmVyLikgIi4iKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgIikpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfICIiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGQgYSBoYXJkIGxpbmUgYnJlYWsuICBCYWNrc2xhc2gKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc2VlbXMgbGVzcyB3ZWxsIHN1cHBv
cnRlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByZW5kZXJl
cnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAy
ID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtcHJldiBsZXZlbCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAoYnVmZmVyLXNpemUpKQorICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJjZS1idWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIHJlZy1iZWcg
cmVnLWVuZCB0ZW1wLWJ1ZmZlcikpKSkpCisgICAgICAgICAgICAgICAgICAoc2V0cSBudW0tdG9j
cy1wcm9jZXNzZWQgKDErIG51bS10b2NzLXByb2Nlc3NlZCkpKSkpCisgICAgICAgICAgICA7OyBT
dGFydCB0aGUgbmV4dCBwYXNzIGFmdGVyIHRoaXMgdG9jLWVuZC4gIEFkanVzdCBmb3IgdGhlCisg
ICAgICAgICAgICA7OyBpbnNlcnRlZCB0ZXh0IHNpemUuCisgICAgICAgICAgICAoc2V0cSBiZWct
cG9zICgrIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKSB0b2Mtc2l6ZSkpCisgICAgICAgICAgICAo
c2V0cSBlbmQtcG9zIChtaW4gKHBvaW50LW1heCkgKCsgZW5kLXBvcyB0b2Mtc2l6ZSkpKSkKKyAg
ICAgICAgICAod2hlbiAoYW5kIChlcSBudW0tdG9jcy1wcm9jZXNzZWQgMCkKKyAgICAgICAgICAg
ICAgICAgICAgIChlcSAnbm8tYWN0aXZlLXRhYmxlcyBtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUt
d2Fybi1pZi1ub25lKSkKKyAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVy
YXRlCisgICAgICAgICAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAiTm8g
dGFibGVzIG9mIGNvbnRlbnRzIGdlbmVyYXRlZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAg
KGJ1ZmZlci1uYW1lIChjdXJyZW50LWJ1ZmZlcikpKSkpKSkpKQorCisocHJvdmlkZSAnbWFya2Rv
d24tdHMtbW9kZS14KQorOzs7IG1hcmtkb3duLXRzLW1vZGUteC5lbCBlbmRzIGhlcmUKZGlmZiAt
LWdpdCBhL2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUuZWwgYi9saXNwL3RleHRtb2Rl
cy9tYXJrZG93bi10cy1tb2RlLmVsCmluZGV4IDY1N2Q2YmM0NjZkLi4wMGZiNmJmZjU0MSAxMDA2
NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbAorKysgYi9saXNwL3Rl
eHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCkBAIC0xLDExICsxLDE0IEBACi07OzsgbWFya2Rv
d24tdHMtbW9kZS5lbCAtLS0gdHJlZSBzaXR0ZXIgc3VwcG9ydCBmb3IgTWFya2Rvd24gIC0qLSBs
ZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwgLS0tIHRyZWUg
c2l0dGVyIHN1cHBvcnQgZm9yIE1hcmtkb3duIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQog
CiA7OyBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KIAotOzsgQXV0aG9yICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRv
QGdtYWlsLmNvbT4KLTs7IE1haW50YWluZXIgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwu
anVsaWF0b0BnbWFpbC5jb20+Ci07OyBDcmVhdGVkICAgIDogQXByaWwgMjAyNAotOzsgS2V5d29y
ZHMgICA6IG1hcmtkb3duIG1kIGxhbmd1YWdlcyB0cmVlLXNpdHRlcgorOzsgQXV0aG9yICAgICAg
ICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KKzs7
ICAgICAgICAgICAgICAgICAgOiBTdMOpcGhhbmUgTWFya3MgPHNoaXBtaW50c0BnbWFpbC5jb20+
Cis7OyBNYWludGFpbmVyICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlh
dG9AZ21haWwuY29tPgorOzsgQ3JlYXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNp
b24gICAgICAgICAgOiAxLjAKKzs7IFBhY2thZ2UtUmVxdWlyZXMgOiAoKGVtYWNzICIzMS4xIikp
Cis7OyBLZXl3b3JkcyAgICAgICAgIDogbWFya2Rvd24gbWQgdGV4dCBlZGl0IGxhbmd1YWdlcyB0
cmVlLXNpdHRlcgogCiA7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTIy
LDEzOCArMjUsNzM4IEBACiA7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJ
ZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi07OzsgVHJlZS1z
aXR0ZXIgbGFuZ3VhZ2UgdmVyc2lvbnMKKzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IFRyZWUtc2l0
dGVyIExhbmd1YWdlIFZlcnNpb25zCiA7OwogOzsgbWFya2Rvd24tdHMtbW9kZSBoYXMgYmVlbiB0
ZXN0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGdyYW1tYXJzIGFuZCB2ZXJzaW9uOgogOzsgLSB0cmVl
LXNpdHRlci1tYXJrZG93bjogdjAuNC4xCiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGlu
ZTogdjAuNC4xCiA7OwotOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHRpbiBtb2RlcyB3
b3JrIHdpdGggbGF0ZXN0IGdyYW1tYXIKLTs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdy
YW1tYXIgaGFzIGEgZ29vZCBjaGFuY2UgdG8gd29yayB0b28uCi07OyBTZW5kIHVzIGEgYnVnIHJl
cG9ydCBpZiBpdCBkb2Vzbid0LgotCi07OzsgQ29tbWVudGFyeToKKzs7IFdlIHRyeSBvdXIgYmVz
dCB0byBtYWtlIGJ1aWx0LWluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1hcgorOzsgdmVy
c2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5jZSB0byB3b3Jr
LiAgU2VuZAorOzsgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCis7OworOzsgQmlkaXJl
Y3Rpb25hbCBUZXh0IENvbnNpZGVyYXRpb25zCis7OworOzsgVGV4dCB3aXRoIG1hcmt1cCBtYXkg
bmVlZCBhbiBleHRyYSBuZXdsaW5lIGJlZm9yZSBiaWRpcmVjdGlvbmFsIHRleHQKKzs7IGZvciBp
dCB0byBzaG93IGNvcnJlY3RseS4gIFRoaXMgaXMgYSBsaW1pdGF0aW9uIGluIHRoZSBFbWFjcyBk
aXNwbGF5Cis7OyBlbmdpbmUuCis7OworOzsgQ29kZSBCbG9jayBMYW5ndWFnZSBNb2RlIENvbnNp
ZGVyYXRpb25zCis7OworOzsgRmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMgYXJlIGRl
cml2ZWQgZnJvbSB0aGUgdGFibGUKKzs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJyBh
bmQgaGV1cmlzdGljcyBhZGRpbmcgIi10cy1tb2RlIiBhbmQKKzs7ICItbW9kZSIgdG8gdGhlIGxh
bmd1YWdlIG5hbWUuICBJZiB5b3VyIGxhbmd1YWdlJ3MgbW9kZSBpcyBub3QKKzs7IHByb3Blcmx5
IHJlY29nbml6ZWQsIGFkZCBpdCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycsIHdo
aWNoCis7OyBzZWUuCis7OworOzsgRWFjaCBsYW5ndWFnZSdzIG1ham9yIG1vZGUgaXMgZW5hYmxl
ZCBvbmNlIHBlciBgbWFya2Rvd24tdHMtbW9kZScKKzs7IGJ1ZmZlciBpbiBhIHRlbXBvcmFyeSBi
dWZmZXIgdG8gZXh0cmFjdCBpdHMgZGVmYXVsdCBmb250LWxvY2sgYW5kCis7OyB0cmVlLXNpdHRl
ciBzZXR0aW5ncy4gIEluIGNvbnZlbnRpb25hbCBub24tdHJlZXNpdCBjb2RlIGJsb2NrcywgdGhl
Cis7OyBtYWpvciBtb2RlIGlzIGVuYWJsZWQgZWFjaCB0aW1lIHRoZSBibG9jayBpcyBmb250aWZp
ZWQuCis7OworOzsgTk9URTogTWFqb3IgbW9kZSBob29rcyBhcmUgbm90IHJ1biBhbmQgZm9udC1s
b2NrLCB0cmVlc2l0LCBpbmRlbnQsCis7OyBjb21tZW50IHJlY29nbml0aW9uLCBldGMuIGN1c3Rv
bWl6YXRpb25zIHRoYXQgeW91IG1pZ2h0IGhhdmUgaW4geW91cgorOzsgaG9va3MgYXJlIG5vdCBh
cHBsaWVkLiAgQXMgYSByZXN1bHQsIHlvdXIgY29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBk
aWZmZXJlbnQgaW4gYG1hcmtkb3duLXRzLW1vZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbWFqb3Ig
bW9kZQorOzsgYnVmZmVycy4gIE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBl
YWNoIG1vZGUgaG9vayBhbmQKKzs7IGF2b2lkcyBwb3RlbnRpYWwgcmVjdXJzaXZlIHRyZWVzaXQg
Y2FsbGJhY2sgaXNzdWVzLgorOzsKKzs7OzsgQ29kZSBCbG9jayBDb21tYW5kcworOzsKKzs7IFNv
bWUgY29tbW9uIGNvbW1hbmRzIHdpbGwgb3BlcmF0ZSB3aXRoaW4gYSBjb2RlIGJsb2NrIGFuZCBp
biBpdHMKKzs7IG1vZGUuICBUaGVzZSBvcGVyYXRlIGluIGFuIGluZGlyZWN0IGJ1ZmZlciBhbmQg
c29tZSBjb21tYW5kcyBtYXkKKzs7IG9wZXJhdGUgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdG8gdGhl
IHNhbWUgY29tbWFuZHMgaW52b2tlZCBpbiBhIG5hdGl2ZQorOzsgbW9kZSBidWZmZXIuICBgaW5k
ZW50LWZvci10YWItY29tbWFuZCcgbWF5IGludm9rZQorOzsgYGNvbXBsZXRpb24tYXQtcG9pbnQn
IHVuZGVyIHRoZSBjb3ZlcnMgYW5kIG1heSByZXR1cm4gcmVzdWx0cyBmcm9tCis7OyB0aGUgc3Vy
cm91bmRpbmcgTWFya2Rvd24gYnVmZmVyIGluc3RlYWQgb2YgdGhlIGNvZGUgYmxvY2sncyBjb250
ZXh0LgorOzsgWW91IGNhbiBpbnZva2UgYGNvbXBsZXRpb24tYXQtcG9pbnQnIGRpcmVjdGx5IGJ5
IHVzaW5nIGl0cyBrZXkKKzs7IGJpbmRpbmcsIGBDLU0taWAuCis7OworOzs7OyBQaXBlIFRhYmxl
cworOzsKKzs7IFRoZXNlIGFyZSBhIEdpdEh1YiBGbGF2b3JlZCBNYXJrZG93biAoR0ZNKSBleHRl
bnNpb24gYW5kIGFyZSBhIGRlCis7OyBmYWN0byBzdGFuZGFyZCBnaXZlbiB0aGVpciBwb3B1bGFy
aXR5IGFuZCBpbXBsZW1lbnRhdGlvbnMgYWNyb3NzCis7OyBwcm9kdWN0cy4gIFRoZXkgbWlnaHQg
YXMgd2VsbCBiZSBmb2xkZWQgaW50byB0aGUgQ29tbW9uTWFyayBzdGFuZGFyZC4KKzs7Cis7OyBB
IHBpcGUgdGFibGUgaXMgYSByZWN0YW5nbGUgb2YgdGV4dCBzdXJyb3VuZGVkIHRvIHRoZSBlYXN0
IGFuZCB3ZXN0Cis7OyBieSBwaXBlIHN5bWJvbHMgYW5kIHdoZXJlIHBpcGVzIHNlcGFyYXRlIGNv
bHVtbnMuICBJdCBoYXMgYSBoZWFkZXIKKzs7IHJvdyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBo
ZWFkZXIgYWxpZ25tZW50IHJvdywgYm90aCBvZiB3aGljaCBtdXN0Cis7OyBjb250YWluIHRoZSBz
YW1lIG51bWJlciBvZiBjZWxscy4gIEJvZHkgcm93cyBhcmUgb3B0aW9uYWwuICBBIHRhYmxlCis7
OyBlbmRzIHdpdGggYSBibGFuayBsaW5lIG9yIGF0IHRoZSBzdGFydCBvZiBhIG5ldyBNYXJrZG93
biBibG9jaworOzsgZWxlbWVudC4KKzs7Cis7OyBUaGUgaGVhZGVyIGFsaWdubWVudCByb3cgY29s
dW1uIG11c3QgaGF2ZSBhIG1pbmltdW0gb2YgdGhyZWUgaHlwaGVucworOzsgd2hpY2ggaW5kaWNh
dGVzIGRlZmF1bHQgYWxpZ25tZW50IChpLmUuLCB3aGF0ZXZlciBhIHJlbmRlcmVyCis7OyBjaG9v
c2VzKS4gIFRvIGluZGljYXRlIGxlZnQgYWxpZ25tZW50LCBwcmVmaXggdGhlIGh5cGhlbiBzdHJp
bmcgd2l0aAorOzsgYSBjb2xvbiBsaWtlIHRoaXMgOi0tLS4gIEZvciBjZW50ZXIgYWxpZ25tZW50
LCBwcmVmaXggYW5kIHN1ZmZpeCB3aXRoCis7OyBjb2xvbnMgbGlrZSB0aGlzIDotLS06LiAgRm9y
IHJpZ2h0IGFsaWdubWVudCwgc3VmZml4IHdpdGggYSBjb2xvbgorOzsgbGlrZSB0aGlzIC0tLTou
Cis7OworOzsgRWFjaCB0YWJsZSBoZWFkZXIgb3IgYm9keSBjZWxsIGNhbiBjb250YWluIHRoZSB1
c3VhbCBNYXJrZG93biBpbmxpbmUKKzs7IHN0eWxlIGluZGljYXRvcnMuICBBIGNlbGwgY2Fubm90
IGNvbnRhaW4gYSBibG9jayBlbGVtZW50IHN1Y2ggYXMgYQorOzsgaGVhZGluZ3MsIHRoZW1hdGlj
IGJyZWFrcywgYmxvY2sgcXVvdGVzLCBmZW5jZWQgY29kZSBibG9ja3MuCis7OworOzsgVGFibGUg
Y2VsbHMgZG8gbm90IG5lZWQgdG8gYWxpZ24gdmlzdWFsbHk7IGkuZS4sIHRoZSBwaXBlIHN5bWJv
bHMgZG8KKzs7IG5vdCBuZWVkIHRvIGxpbmUgdXAgdmVydGljYWxseS4gIFRoZSB0cmVlLXNpdHRl
ciBwYXJzZXIgYW5kIHJlbmRlcmVycworOzsgZGV0ZWN0IGNlbGwgYm91bmRhcmllcyB1c2luZyBw
aXBlIHN5bWJvbHMsIG5vdCB0aGVpciByZWxhdGl2ZSBhbGlnbm1lbnQuCis7OworOzsgSWYgeW91
IHdhbnQgdG8gaW5jbHVkZSB3aGF0IGxvb2tzIGxpa2UgY29kZSwgeW91IGNhbiB1c2UgYmFja3Rp
Y2tzIHRvCis7OyB3cmFwIHN1Y2ggdGV4dCBhbGEgYHRoaXMgaXMgY29kZWAuICBUaGlzIG1vZGUg
d2lsbCBub3QgZm9udGlmeSBzdWNoCis7OyBjb2RlLgorOzsKKzs7IElmIHlvdSB3YW50IHRvIGlu
Y2x1ZGUgYSBwaXBlIHN5bWJvbCBpbiBhIGNlbGwsIGVzY2FwZSBpdCB0aHVzbHkgXHwuCis7Owor
OzsgVGVjaG5pY2FsbHksIGJvZHkgcm93cyBkbyBub3QgbmVlZCB0byBjb250YWluIHRoZSBzYW1l
IG51bWJlciBvZgorOzsgY2VsbHMgYXMgdGhlIGhlYWRlciBoYXMgY29sdW1ucyBhbmQgcm93cyBk
byBub3QgbmVlZCB0byBzaGFyZSB0aGUKKzs7IHNhbWUgbnVtYmVyIG9mIGNlbGxzIGFtb25nIHRo
ZW1zZWx2ZXMuICBOb3RlOiBNYW55IHJlbmRlcmVycyBnZXQKKzs7IGNvbmZ1c2VkIGlmIHRoZSB0
YWJsZSBpcyAicmFnZ2VkIiB3aXRoIGFuIHVuZXZlbiBudW1iZXIgb2YgY29sdW1ucworOzsgYW1v
bmcgcm93cy4gIFNvbWUgcmVuZGVyZXJzIHdpbGwgaW5zZXJ0IGVtcHR5IGNlbGxzIG9uIGEgcm93
IHRoYXQKKzs7IGNvbnRhaW5zIGZld2VyIGNlbGxzIHRoYW4gdGhlIGhlYWRlciBoYXMgY29sdW1u
cy4gIFNvbWUgZWxpZGUgY2VsbHMKKzs7IHRoYXQgZXhjZWVkIHRoZSBudW1iZXIgb2YgY29sdW1u
cyBpbiB0aGUgaGVhZGVyLgorOzsKKzs7OzsgUGlwZSBUYWJsZSBSZWNvbW1lbmRhdGlvbnMKKzs7
Cis7OyAtIEFsd2F5cyB1c2UgcGlwZSBzeW1ib2xzIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIGVh
Y2ggdGFibGUgbGluZS4KKzs7IC0gVXNlIGEgdW5pZm9ybSBudW1iZXIgb2YgY29sdW1ucyBzcGFu
bmluZyB0aGUgdGFibGUuCis7OyAtIElmIHlvdSBkZXRlY3QgYSBwYXJzaW5nIGVycm9yIHdoaWNo
IHByZXNlbnRzIGFzIGRpZmZlcmVudAorOzsgICBmb250aWZpY2F0aW9uIGFuZCB3aGljaCBpcyBv
ZnRlbiBjYXVzZWQgYnkgYW4gZW1wdHkgZmlyc3QgY2VsbCBvbiB0aGUKKzs7ICAgZmluYWwgcm93
LCB0cnkgcHV0dGluZyBzb21lIGNoYXJhY3RlcnMgaW4gdGhhdCBjZWxsLgorOzsgLSBSZW5kZXJl
cnMgb2Z0ZW4gZXhjbHVkZSBjZXJ0YWluIGVtcHR5IGNlbGxzIHN1Y2ggYXMgYW4gImVtcHR5IiBm
aW5hbAorOzsgICBjZWxsIGluIGEgdGFibGUuICBGb2xsb3cgdGhlIG5leHQgaXRlbSB0byBhdm9p
ZCB0aGlzLgorOzsgLSBJZiB5b3UgbmVlZCB0aGF0IGNlbGwgdG8gYXBwZWFyIGJsYW5rIGFuZCBh
cmUgY29udmVydGluZyB0byBIVE1MLAorOzsgICB0cnkgdXNpbmcgYSBub24tcHJpbnRpbmcgSFRN
TCBlbnRpdHksIHN1Y2ggYXMgYSBub24tYnJlYWtpbmcgc3BhY2UKKzs7ICAgIiZuYnNwOyIsIHdo
aWNoIHBhcnNlIGFzIGNvbmNyZXRlIGNoYXJhY3RlcnMgeWV0IHJlbmRlciBhcyBibGFuay4KKzs7
IC0gSFRNTCBjb21tZW50cyA8IS0tIC0tPiBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm9uLWJsYW5r
IGNoYXJhY3RlcgorOzsgICBzdHJpbmcgdGhhdCBkb2VzIG5vdCBnZXQgcmVuZGVyZWQuICBUaGVz
ZSBhcmUgY29uc2lkZXJlZCBjZWxsIHRleHQKKzs7ICAgYW5kIHdoZW4gcGxhY2VkIGF0IHRoZSBl
bmQgb2YgYSByb3csIHRoYXQgcm93J3MgbnVtYmVyIG9mIGNvbHVtbnMgaXMKKzs7ICAgaW5jcmVh
c2VkIGFuZCBtaWdodCBleGNlZWQgdGhlIG51bWJlciBvZiBoZWFkZXIgY29sdW1ucy4KKzs7IC0g
VGhlcmUgYXJlIHRyZWUtc2l0dGVyIHBhcnNlciBxdWlya3MuICBDb21tYW5kcyBzdWNoIGFzCis7
OyAgIGBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uJyBhbmQgYG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtY29sdW1uJworOzsgICBmb2xsb3cgdGhlIHBhcnNlciB0cmVlIGFuZCBjYW4gbGVh
ZCB0byB1bmV4cGVjdGVkIHJlc3VsdHMgc28gZm9sbG93Cis7OyAgIHRoZXNlIHJlY29tbWVuZGF0
aW9ucyBhbmQgdGFibGUgb3BlcmF0aW9ucyBzaG91bGQgYmUgYXMgZXhwZWN0ZWQuCis7OworOzs7
OyBUcmVlIFNpdHRlciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0
aGUgdW5kZXJseWluZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0
IGl0cyBidWlsZCB0aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0
YWxsZWQuICBUaGVyZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVs
eSBhZmZlY3QKKzs7IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQg
YXMgdGhlc2UgYnVncyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBU
aGUgTWFya2Rvd24gZ3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBj
aGlsZHJlbgorOzsgICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGgg
dGhlIGluc3BlY3RvciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0
cyBjb2RlIGJsb2NrcyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0
eXBlIDQgKGA8IScgZm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAg
YDwhRE9DVFlQRSBodG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNl
cXVlbnQKKzs7ICAgY29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBh
cyBhIHdvcmthcm91bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVy
LWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3Vw
ZXJzY3JpcHQgKGBedGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5v
dAorOzsgICBzdXBwb3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZs
YWcgZXhpc3RzIGZvcgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24g
RXh0cmEgc3ludGF4LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRl
cmVkIChudW1iZXJlZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRp
bmcKKzs7ICAgYSBgMS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3Qg
cHJvZHVjZSBhIG5lc3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0
cyBpdCBhcyBhIGZsYXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVu
dCBpdGVtJ3MgcGFyYWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRl
cmVkIChgLScsIGAqJywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9w
cm9tb3RlIG9mIG9yZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQu
Cis7OworOzsgLSBSZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1i
ZXItbGlzdCcpIG1heSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJk
IGlmIHRoZSBwYXJzZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBg
bGlzdCcgbm9kZXMsIG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBz
ZXBhcmF0ZSBsaXN0cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7
OworOzsgLSBFbXB0eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1h
eSBiZSBjbGFpbWVkIGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9m
IHRoYXQgYmxvY2ssIHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2Vw
YXJhdG9ycy4KIDs7Cis7OyAtIFBpcGUgdGFibGVzIGFyZSBpbmNvbnNpc3RlbnRseSBwYXJzZWQu
ICBXaGl0ZXNwYWNlIGlzIGNvcnJlY3RseQorOzsgICB0cmltbWVkIGF0IHRoZSBzdGFydCBvZiBh
IGNlbGwgY29udGVudCBidXQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcworOzsgICBpbmNvcnJlY3Rs
eSBpbmNsdWRlZC4gIEVtcHR5IGNlbGxzIGNhbiBjb250YWluIHVuZXZlbiAicmFnZ2VkIiByb3cK
Kzs7ICAgY29sdW1uIGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGNvbmZ1c2UgdGhlIHBhcnNlci4K
Kzs7Cis7OyAgIE1hcmtkb3duIHBpcGUgdGFibGVzIHdpdGggcGFyc2luZyBpc3N1ZXM6Cis7Owor
OzsgICB8Q29sdW1uIDF8Q29sdW1uIDJ8Q29sdW1uIDN8Cis7OyAgIHwtLS0tLS0tLXwtLS0tLS0t
LXwtLS0tLS0tLXwKKzs7ICAgfCAgICAgICAgfCAgICAgICAgfCAgICAgICAgfAorOzsgICB8ICAg
ICAgICB8ICAgICAgICB8ICAgICAgICB8IDwtLSBwYXJzZSBlcnJvcgorOzsKKzs7ICAgfENvbHVt
biAxfENvbHVtbiAyfENvbHVtbiAzfAorOzsgICB8LS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS18
Cis7OyAgIHwgICAgICAgIHwgICAgICAgIHwgICAgICAgIHwKKzs7ICAgfCB4eHggICAgfCAgICAg
ICAgfCAgICAgICAgfCA8LS0gcGFyc2VkIGNvcnJlY3RseQorOzsKKzs7ICAgfENvbHVtbiAxfENv
bHVtbiAyfCA8LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgfC0tLS0tLS0tfC0tLS0tLS0tfCA8
LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgICAgICAgICAgfCAgICAgICAgfCA8LS0gMSBjb2x1
bW4gaW5jb3JyZWN0Cis7OyAgICAgICAgICAgIHwgICAgICAgIHwgPC0tIHBhcnNlIGVycm9yCis7
OyAgIHwgICAgICAgIHwgICAgICAgIHwgPC0tIG5vdCBhIHJvdyBhZnRlciB0aGUgZXJyb3IsIGFi
b3ZlCis7OworOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFy
cy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjQxPgorOzsgICAgICAgPGh0dHBzOi8vZ2l0
aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMv
MjQyPgogCiA7OzsgQ29kZToKIAogKHJlcXVpcmUgJ3RyZWVzaXQpCiAocmVxdWlyZSAnc3Vici14
KQotKHJlcXVpcmUgJ291dGxpbmUpCiAocmVxdWlyZSAnc2VxKQorKHJlcXVpcmUgJ291dGxpbmUp
CisocmVxdWlyZSAnZ290by1hZGRyKQorKHJlcXVpcmUgJ3hyZWYpCisocmVxdWlyZSAnaWNvbnMp
CiAKLSh0cmVlc2l0LWRlY2xhcmUtdW5hdmFpbGFibGUtZnVuY3Rpb25zKQotCi0oYWRkLXRvLWxp
c3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duCi0gICAiaHR0
cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3du
IgotICAgOmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIK
LSAgIDpzb3VyY2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi9zcmMiKQotIHQpCi0oYWRkLXRv
LWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duLWlubGlu
ZQotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRl
ci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4
YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFya2Rvd24taW5saW5lL3Ny
YyIpCi0gdCkKKzs7OyBDdXN0b21pemF0aW9uczoKIAotOzs7IEhlbHBlciBmdW5jdGlvbnMKLQot
KGRlZnZhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgJygoImMrKyIg
LiBjcHApCi0gICAgKCJjIyIgLiBjLXNoYXJwKQotICAgICgic2giIC4gYmFzaCkpCi0gICJBbGlz
dCBtYXBwaW5nIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbmFtZXMgdG8gdHJlZS1zaXR0ZXIgbGFuZ3Vh
Z2VzLgotCi1LZXlzIHNob3VsZCBiZSBzdHJpbmdzLCBhbmQgdmFsdWVzIHNob3VsZCBiZSBsYW5n
dWFnZSBzeW1ib2xzLgotCi1Gb3IgZXhhbXBsZSwgXCJjKytcIiBpbgotCi0gICAgYGBgYysrCi0g
ICAgaW50IG1haW4oKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBgYGAKLQotbWFw
cyB0byB0cmVlLXNpdHRlciBsYW5ndWFnZSBgY3BwJy4iKQotCi0oZGVmdmFyIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwCi0gICcoKGJhc2ggLiBiYXNoLXRzLW1vZGUpCi0g
ICAgKGMgLiBjLXRzLW1vZGUpCi0gICAgKGMtc2hhcnAgLiBjc2hhcnAtdHMtbW9kZSkKLSAgICAo
Y21ha2UgLiBjbWFrZS10cy1tb2RlKQotICAgIChjcHAgLiBjKystdHMtbW9kZSkKLSAgICAoY3Nz
IC4gY3NzLXRzLW1vZGUpCi0gICAgKGRvY2tlcmZpbGUgLiBkb2NrZXJmaWxlLXRzLW1vZGUpCi0g
ICAgKGVsaXhpciAuIGVsaXhpci10cy1tb2RlKQotICAgIChnbyAuIGdvLXRzLW1vZGUpCi0gICAg
KGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCi0gICAgKGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkK
LSAgICAoaGVleCAuIGhlZXgtdHMtbW9kZSkKLSAgICAoaHRtbCAuIGh0bWwtdHMtbW9kZSkKLSAg
ICAoamF2YSAuIGphdmEtdHMtbW9kZSkKLSAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCi0g
ICAgKGpzb24gLiBqc29uLXRzLW1vZGUpCi0gICAgKGx1YSAuIGx1YS10cy1tb2RlKQotICAgIChw
aHAgLiBwaHAtdHMtbW9kZSkKLSAgICAocHl0aG9uIC4gcHl0aG9uLXRzLW1vZGUpCi0gICAgKHJ1
YnkgLiBydWJ5LXRzLW1vZGUpCi0gICAgKHJ1c3QgLiBydXN0LXRzLW1vZGUpCi0gICAgKHRvbWwg
LiB0b21sLXRzLW1vZGUpCi0gICAgKHRzeCAuIHRzeC10cy1tb2RlKQotICAgICh0eXBlc2NyaXB0
IC4gdHlwZXNjcmlwdC10cy1tb2RlKQotICAgICh5YW1sIC4geWFtbC10cy1tb2RlKSkKLSAgIkFu
IGFsaXN0IG9mIHN1cHBvcnRlZCBjb2RlIGJsb2NrIGxhbmd1YWdlcyBhbmQgdGhlaXIgbWFqb3Ig
bW9kZS4iKQorKGRlZmdyb3VwIG1hcmtkb3duLXRzIG5pbAorICAiTWFqb3IgbW9kZSBmb3Igdmll
d2luZyBhbmQgZWRpdGluZyBNYXJrZG93biBidWZmZXJzLiIKKyAgOnByZWZpeCAibWFya2Rvd24t
dHMtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5nCisgIDp2ZXJzaW9uICIzMS4x
IikKIAogKGRlZmN1c3RvbSBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCBuaWwKICAgIk5vbi1uaWwg
bWVhbnMgaGlkZSBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGlzIGJ1ZmZlci4iCiAg
IDp0eXBlICdib29sZWFuCisgIDpsb2NhbCB0CiAgIDpzYWZlICMnYm9vbGVhbnAKLSAgOmdyb3Vw
ICdtYXJrZG93bi10cykKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZWxsaXBzaXMgbmlsCisgICJUaGUgZWxsaXBz
aXMgdG8gdXNlIGluIGZvbGRlZCBoZWFkaW5ncy4KK1doZW4gbmlsLCB1c2UgdGhlIHN0YW5kYXJk
IHRocmVlIGRvdHMuICBXaGVuIGEgbm9uLWVtcHR5IHN0cmluZywKK3VzZSB0aGF0IHN0cmluZyBp
bnN0ZWFkLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJEZWZhdWx0ICguLi4pIiBu
aWwpCisgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiU3RyaW5nIiA6dmFsdWUgIiDijIQi
KSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZj
dXN0b20gbWFya2Rvd24tdHMtbWVudS1iYXItc2hvdyB0CisgICJOb24tbmlsIG1lYW5zIHNob3cg
dGhlIE1hcmtkb3duIG1lbnUgaW4gdGhlIG1lbnUgYmFyLiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAg
OnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20g
bWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nICdzaG93LWFsbAorICAiRGVmYXVsdCBoZWFkaW5n
IGZvbGRpbmcgbGV2ZWwuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFn
ICJTaG93IGV2ZXJ5dGhpbmciIHNob3ctYWxsKQorICAgICAgICAgIChjb25zdCA6dGFnICJGb2xk
IGV2ZXJ5dGhpbmcsIHNob3dpbmcgdG9wLWxldmVsIGhlYWRpbmdzIiBmb2xkLWFsbCkKKyAgICAg
ICAgICAoY29uc3QgOnRhZyAiRm9sZCBoZWFkaW5ncywgc2hvd2luZyBhbGwgaGVhZGluZyBsZXZl
bHMiIGZvbGQtaGVhZGluZ3MpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lv
biAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIG5pbAorICAi
Tm9uLW5pbCBtZWFucyBkaXNwbGF5IGlubGluZSBpbWFnZXMgYmVsb3cgaW1hZ2UgbGlua3MuIgor
ICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdwor
ICAiTWF4aW11bSB3aWR0aCBvZiBpbmxpbmUgaW1hZ2VzIGluIHBpeGVscy4KK1doZW4gYHdpbmRv
dycsIHVzZSB0aGUgd2luZG93IGJvZHkgd2lkdGguICBXaGVuIGEgbnVtYmVyLCB1c2UKK3RoYXQg
YXMgdGhlIG1heGltdW0gcGl4ZWwgd2lkdGguIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0
YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAgICAobmF0bnVtIDp0YWcg
IlBpeGVsIHdpZHRoIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQogCi07OzsgRmFjZXMKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUt
aW5saW5lLWltYWdlcyBuaWwKKyAgIkhvdyB0byBkaXNwbGF5IHJlbW90ZSBpbmxpbmUgaW1hZ2Vz
LgorV2hlbiBuaWwsIGRvIG5vdCBkaXNwbGF5IHJlbW90ZSBpbWFnZXMuICBXaGVuIGBkb3dubG9h
ZCcsIGZldGNoIHRoZQoraW1hZ2UgaW50byBhIHRlbXBvcmFyeSBidWZmZXIgYW5kIGRpc3BsYXkg
aXQuCisKK1JlbW90ZSBpbWFnZXMgYXJlIHNraXBwZWQgYnkgZGVmYXVsdCBmb3Igc2VjdXJpdHku
IgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiU2tpcCByZW1vdGUgaW1hZ2VzIiBuaWwp
CisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEb3dubG9hZCByZW1vdGUgaW1hZ2VzIiBk
b3dubG9hZCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3ggJygi4piRIiAuICIrIikK
KyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSBjaGVja2VkIHRhc2sg
bGlzdCBtYXJrZXIuCitWYWx1ZSBmb3JtczoKKyAtIGNvbnMgKFBSRUZFUlJFRCAuIEZBTExCQUNL
KTogUFJFRkVSUkVEIGlzIHVzZWQgaWYgaXRzIGZpcnN0IGNoYXJhY3RlcgorICAgcGFzc2VzIGBj
aGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0suCisgLSBzeW1ib2wgYGljb24n
OiBkZWZlciB0byB0aGUgaWNvbnMuZWwgaWNvbgorICAgYG1hcmtkb3duLXRzLWNoZWNrZWQtY2hl
Y2tib3gtaWNvbic7IGN1c3RvbWl6ZSB2aWEKKyAgIFxcW2N1c3RvbWl6ZS1pY29uXS4KKyAtIG5p
bDogZGlzcGxheSB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zIChzdHJp
bmcgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu
ZyA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAi
VXNlIGljb25zLmVsIGljb24iIGljb24pCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJE
aXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZpbmUtaWNvbiBtYXJrZG93bi10cy1jaGVja2VkLWNo
ZWNrYm94LWljb24gbmlsCisgICcoKGltYWdlICJjaGVja2VkLnN2ZyIgOmhlaWdodCBsaW5lIDph
c2NlbnQgY2VudGVyKQorICAgIChzeW1ib2wgIuKYkSIpCisgICAgKHRleHQgIisiKSkKKyAgIklj
b24gdXNlZCBmb3IgYSBjaGVja2VkIHRhc2sgbGlzdCBtYXJrZXIgd2hlbiBtYXJrdXAgaXMgaGlk
ZGVuLgorQ29uc3VsdGVkIG9ubHkgd2hlbiBgbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCcg
aXMgdGhlIHN5bWJvbAorYGljb24nLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9t
IG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCAnKCLimJAiIC4gIi0iKQorICAiSWYgbWFy
a3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1h
cmtlci4KK1ZhbHVlIGZvcm1zOgorIC0gY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVG
RVJSRUQgaXMgdXNlZCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyCisgICBwYXNzZXMgYGNoYXItZGlz
cGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSy4KKyAtIHN5bWJvbCBgaWNvbic6IGRlZmVy
IHRvIHRoZSBpY29ucy5lbCBpY29uCisgICBgbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94
LWljb24nOyBjdXN0b21pemUgdmlhCisgICBcXFtjdXN0b21pemUtaWNvbl0uCisgLSBuaWw6IGRp
c3BsYXkgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0
YWcgIlByZWZlcnJlZCAoR1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRh
ZyAiRmFsbGJhY2sgKFRUWSkiKSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIlVzZSBp
Y29ucy5lbCBpY29uIiBpY29uKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12
ZXJzaW9uICIxLjAiKQorCisoZGVmaW5lLWljb24gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNr
Ym94LWljb24gbmlsCisgICcoKGltYWdlICJ1bmNoZWNrZWQuc3ZnIiA6aGVpZ2h0IGxpbmUgOmFz
Y2VudCBjZW50ZXIpCisgICAgKHN5bWJvbCAi4piQIikKKyAgICAodGV4dCAiLSIpKQorICAiSWNv
biB1c2VkIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlciB3aGVuIG1hcmt1cCBpcyBo
aWRkZW4uCitDb25zdWx0ZWQgb25seSB3aGVuIGBtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2ti
b3gnIGlzIHRoZSBzeW1ib2wKK2BpY29uJy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1
c3RvbSBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIgJyg/4pSAIC4gPy0pCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgY2hhcmFjdGVyIGZvciB0aGVtYXRp
YyBicmVha3MuCitJdCBpcyByZXBlYXRlZCB0byBmaWxsIHRoZSB3aW5kb3cgd2lkdGguCitUaGUg
dmFsdWUgaXMgYSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZFUlJFRCBpcyB1c2Vk
IGlmIGl0IHBhc3NlcworYGNoYXItZGlzcGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSyBp
cyB1c2VkLgorbmlsIGRpc3BsYXlzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5cGUgJyhjaG9pY2Ug
KGNvbnMgKGNoYXJhY3RlciA6dGFnICJQcmVmZXJyZWQgKEdVSSkiKQorICAgICAgICAgICAgICAg
ICAgICAgICAoY2hhcmFjdGVyIDp0YWcgIkZhbGxiYWNrIChUVFkpIikpCisgICAgICAgICAgICAg
ICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNp
b24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCAnKD/CtiAuID98KQorICAiSWYgbWFya3Vw
IGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoYXJhY3RlciBmb3IgYSBiYWNrc2xhc2ggaGFyZCBs
aW5lIGJyZWFrLgorVGhlIHZhbHVlIGlzIGEgY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQ
UkVGRVJSRUQgaXMgdXNlZCBpZiBpdCBwYXNzZXMKK2BjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhl
cndpc2UgRkFMTEJBQ0sgaXMgdXNlZC4KK25pbCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0
eXBlICcoY2hvaWNlIChjb25zIChjaGFyYWN0ZXIgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGNoYXJhY3RlciA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5p
bCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVm
Y3VzdG9tIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZQorICAobGFtYmRhIChuKQor
ICAgIChsZXQqICgodmFsIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlCisgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpKQorICAg
ICAgICAgICAoY2ggKGlmIChjaGFyYWN0ZXJwIHZhbCkgdmFsID98KSkpCisgICAgICAobWFrZS1z
dHJpbmcgbiBjaCkpKQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBh
IHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsuCitUaGUgdmFsdWUgY2FuIGJlOgorLSBh
IGNoYXJhY3RlciBvciBzdHJpbmc6IHNob3duIG9uY2UgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFp
bGluZyBzcGFjZXMsCisgIHdpdGggbm8gcmVwZXRpdGlvbiAodGhlIHJlbWFpbmluZyBzcGFjZXMg
c3RheSBpbnZpc2libGUpOworLSBhIGZ1bmN0aW9uOiBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQs
IHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgc3BhY2VzLAorICBhbmQgbXVzdCByZXR1cm4gdGhlIHN0
cmluZyB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBydW47CistIG5pbDoga2VlcCB0aGUgcmF3
IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRhZyAiRGlzcGxheSBzcGVj
aWZpZWQgY2hhcmFjdGVyIChubyByZXBldGl0aW9uKSIpCisgICAgICAgICAgICAgICAgIChzdHJp
bmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIChubyByZXBldGl0aW9uKSIpCisgICAg
ICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlvbiBmcm9tIGNvdW50IHRvIGRpc3Bs
YXkgc3RyaW5nIikKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2lu
YWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2
ZWx5IHQKKyAgIk5vbi1uaWwgbWVhbnMgZm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnRzIHVzaW5n
IHRoZSBsYW5ndWFnZSdzIG1vZGUuCitXaGVuIG5vbi1uaWwsIGZlbmNlZCBjb2RlIGJsb2NrcyBh
cmUgaGlnaGxpZ2h0ZWQgd2l0aCBzeW50YXggb2YgdGhlCitlbWJlZGRlZCBsYW5ndWFnZSAodmlh
IHRyZWUtc2l0dGVyIGZvciBsYW5ndWFnZXMgd2l0aCBhIHRyZWUtc2l0dGVyCittb2RlLCBvciB2
aWEgY29udmVudGlvbmFsIGZvbnQtbG9jayBmb3IgdGhlIHJlc3QpLiAgV2hlbiBuaWwsIGNvZGUK
K2Jsb2NrcyBrZWVwIG9ubHkgdGhlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBiYWNrZ3JvdW5k
IGZhY2UuICBUb2dnbGluZworZm9yIHRoZSB0cy1lbWJlZGRlZCBwYXRoIHRha2VzIGVmZmVjdCBh
ZnRlciByZXN0YXJ0aW5nCitgbWFya2Rvd24tdHMtbW9kZScgaW4gdGhlIGJ1ZmZlci4iCisgIDp0
eXBlICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAi
KQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWVuYWJsZS1jb2RlLWJsb2NrLWNvbnRleHQtbW9k
ZSB0CisgICJOb24tbmlsIGF1dG9tYXRpY2FsbHkgZW5hYmxlcyBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1jb250ZXh0LW1vZGUnLgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIGZlbmNl
ZCBjb2RlIGJsb2NrLCB0aGlzIHJ1bnMKK2BpbmRlbnQtZm9yLXRhYi1jb21tYW5kJywgYG5ld2xp
bmUnLCBldC5hbC4sIGluIHRoZSBtb2RlIG9mIHRoZSBjb2RlCitibG9jay4iCisgIDp0eXBlICdi
b29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLWxpZ2h0ZXIg
IiBbY29kZV0iCisgICJNaW5vciBtb2RlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQt
bW9kZScgbGlnaHRlciBzdHJpbmcuCitTZXQgdG8gbmlsIHRvIGRpc2FibGUgdGhlIGxpZ2h0ZXIu
IgorICA6dHlwZSAnc3RyaW5nCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9u
ICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWluaGliaXQtY29kZS1ibG9jay1tb2Rl
LXdhcm5pbmdzIHQKKyAgIklmIG5vbi1uaWwsIGluaGliaXQgY29kZS1ibG9jayBtYWpvci1tb2Rl
IG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KK1NvbWUgZmVuY2VkIGNvZGUtYmxvY2sgbWFqb3IgbW9k
ZXMgcHJvZHVjZSBtZXNzYWdlcyBvciB3YXJuaW5ncyB3aGljaAoraGF2ZSBsaXR0bGUgcmVsZXZh
bmNlIHRvIE1hcmtkb3duIGJ1ZmZlcnMuICBVc2UgdGhpcyBvcHRpb24gdG8gaW5oaWJpdAordGhl
bS4gIE1ham9yIG1vZGVzIG1heSBiZSBlbmFibGVkIGZvciBmb250aWZpY2F0aW9uIG9yIGVkaXRp
bmcgaW4gdGhlCittb2RlJ3MgY29udGV4dC4iCisgIDp0eXBlICdib29sZWFuCisgIDp2ZXJzaW9u
ICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmdmFyIHdhcm5pbmctbWlu
aW11bS1sZXZlbCkKKworKGRlZm1hY3JvIG1hcmtkb3duLXRzLS1pbmhpYml0LW1lc3NhZ2VzLWFu
ZC13YXJuaW5ncyAodmFyICZyZXN0IGJvZHkpCisgICJFeGVjdXRlIEJPRFkgd2l0aCBtZXNzYWdl
cyBhbmQgd2FybmluZ3MgaW5oaWJpdGVkLgorVkFSIGlzIGEgdmFyaWFibGUncyBzeW1ib2w7IGUu
Zy4sCitcXD0nbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MuICBJ
ZiB0aGUgc3ltYm9sJ3MgdmFsdWUKK2lzIG5vbi1uaWwsIGRvIHdoYXQgaXQgc2F5cyBvbiB0aGUg
dGluLgorSW5oaWJpdCBtZXNzYWdlcyBpbiB0aGUgZWNobyBhcmVhLgorSW5oaWJpdCBtZXNzYWdl
cyBpbiB0aGUgbG9nLgorSW5oaWJpdCB3YXJuaW5ncyB3aXRoIGxldmVsIDwgOmVycm9yLiIKKyAg
KGRlY2xhcmUgKGluZGVudCBkZWZ1bikpCisgIGAobGV0KiAoKHZhbCAoc3ltYm9sLXZhbHVlICx2
YXIpKQorICAgICAgICAgIChpbmhpYml0LW1lc3NhZ2UgdmFsKQorICAgICAgICAgOzsgQWxzbyBp
bmhpYml0IGxvZ2dpbmcgdG8gKk1lc3NhZ2VzKgorICAgICAgICAgKG1lc3NhZ2UtbG9nLW1heCAo
aWYgdmFsIG5pbCBtZXNzYWdlLWxvZy1tYXgpKQorICAgICAgICAgKHdhcm5pbmctbWluaW11bS1s
ZXZlbAorICAgICAgICAgIChpZiB2YWwgOmVycm9yIHdhcm5pbmctbWluaW11bS1sZXZlbCkpKQor
ICAgICAocHJvZ24gLEBib2R5KSkpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1j
b2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9kZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMg
Y29kZSBibG9ja3MuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAi
VGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisgICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRh
bCBtb2RlIiBmdW5kYW1lbnRhbC1tb2RlKQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIg
bW9kZSBzeW1ib2wiCisgICAgICAgICAgICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdp
ZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChl
cSAnc3ltYm9sICh0eXBlLW9mIHZhbCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJyb3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkKSkpKSkKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMt
dGFibGUtZGVmYXVsdC1jb2x1bW4td2lkdGggNQorICAiQ29sdW1uIHdpZHRoIGZvciBuZXcgY29s
dW1ucy4KK1lvdSBtYXkgbWFrZSB0aGlzIHdpZGVyLCBidXQgc21hbGxlciB0aGFuIDUgaXMgbm90
IHJlY29tbWVuZGVkLiIKKyAgOnR5cGUgJ2ludGVnZXIKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpw
YWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZW5hYmxlLXRh
YmxlLW1vZGUgdAorICAiTm9uLW5pbCBhdXRvbWF0aWNhbGx5IGVuYWJsZXMgYG1hcmtkb3duLXRz
LXRhYmxlLW1vZGUnLgorSWYgbm9uLW5pbCwgZW5hYmxlIGBtYXJrZG93bi10cy10YWJsZS1tb2Rl
JyBpZiBgcG9pbnQnIGlzIGluIGEgTWFya2Rvd24KK3RhYmxlLiIKKyAgOnR5cGUgJ2Jvb2xlYW4K
KyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0
b20gbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiAnKGNlbGwtbmF2aWdhdGlvbiB0cmFuc3Bv
c2UpCisgICJBdXRvbWF0aWNhbGx5IGFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBkdXJpbmcgdGhl
c2Ugb3BlcmF0aW9ucy4KK0lmIHQsIHRyaWdnZXIgb24gYWxsIHN1cHBvcnRlZCBvcGVyYXRpb25z
LgorSWYgbmlsLCBkbyBub3QgYXV0byBhbGlnbi4KK090aGVyd2lzZSwgaXQgaXMgYSBsaXN0IG9m
IHN5bWJvbHMgcmVwcmVzZW50aW5nIHRhYmxlIG9wZXJhdGlvbnMuIgorICA6dHlwZSAnKGNob2lj
ZQorICAgICAgICAgIChjb25zdCA6dGFnICJEbyBub3QgYXV0b21hdGljYWxseSBhbGlnbiIgbmls
KQorICAgICAgICAgIChjb25zdCA6dGFnICJBbHdheXMgYXV0b21hdGljYWxseSBhbGlnbiIgdCkK
KyAgICAgICAgICAoc2V0CisgICAgICAgICAgIChjb25zdCA6dGFnICJDZWxsIG5hdmlnYXRpb24i
IGNlbGwtbmF2aWdhdGlvbikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIlRyYW5zcG9zZSIgdHJh
bnNwb3NlKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWZlYXR1cmVzICcoanVzdGlmeS1j
ZWxscykKKyAgIlVzZSB0aGVzZSBvcHRpb25hbCBmZWF0dXJlcyB3aGVuIGFsaWduaW5nIGEgdGFi
bGUuCitBbGlnbmluZyBhIHRhYmxlIGFsaWducyBlYWNoIGNvbHVtbiB0byB0aGUgd2lkdGggb2Yg
aXRzIHdpZGVzdCBjZWxsLiAgSXQKK2NhbiBhbHNvIGp1c3RpZnkgZWFjaCBjZWxsIGFjY29yZGlu
ZyB0byB0aGUgdGFibGUncyBkZWxpbWl0ZXIgbGluZSBsZWZ0LAorY2VudGVyLCBvciByaWdodC1o
YW5kIGp1c3RpZmljYXRpb24gcnVsZXMuCisKK0N1c3RvbWl6aW5nIHRoaXMgdXNlciBvcHRpb24g
aXMgbW9zdCB1c2VmdWwgd2hlbiB0aGUgdXNlciBvcHRpb24KK2BtYXJrZG93bi10cy10YWJsZS1h
dXRvLWFsaWduJyBpcyBlbmFibGVkIGFuZCB0byBhdm9pZCBoYXZpbmcgdG8gdXNlIGEKK3ByZWZp
eCBhcmd1bWVudCBiZWZvcmUgZXZlcnkgYXV0by1hbGlnbm1lbnQgb3BlcmF0aW9uLgorCitJZiB0
LCBlbmFibGUgYWxsIG9wdGlvbmFsIGFsaWdubWVudCBvcGVyYXRpb25zLgorSWYgbmlsLCBvcGVy
YXRpb25zIGFyZSBlbmFibGVkIGJleW9uZCBiYXNpYyBjb2x1bW4gYWxpZ25tZW50LgorT3RoZXJ3
aXNlLCBpdCBpcyBhIGxpc3Qgb2Ygc3ltYm9scy4iCisgIDp0eXBlICcoY2hvaWNlCisgICAgICAg
ICAgKGNvbnN0IDp0YWcgIk5vIG9wdGlvbmFsIGZlYXR1cmVzIiBuaWwpCisgICAgICAgICAgKGNv
bnN0IDp0YWcgIkFsbCBvcHRpb25hbCBmZWF0dXJlcyIgdCkKKyAgICAgICAgICAoc2V0CisgICAg
ICAgICAgIChjb25zdCA6dGFnICJKdXN0aWZ5IGNlbGxzIiBqdXN0aWZ5LWNlbGxzKSkpCisgIDp2
ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlciAiIFt0YWJsZV0iCisgICJNaW5vciBtb2Rl
IGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBsaWdodGVyIHN0cmluZy4KK1NldCB0byBuaWwg
dG8gZGlzYWJsZSB0aGUgbGlnaHRlci4iCisgIDp0eXBlICdzdHJpbmcKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKzs7OyBGYWNlczoKIAogKGRlZmdyb3Vw
IG1hcmtkb3duLXRzLWZhY2VzIG5pbAotICAiRmFjZXMgdXNlZCBpbiBNYXJrZG93biBUUyBNb2Rl
LiIKKyAgIkZhY2VzIHVzZWQgYnkgTWFya2Rvd24tVFMuIgogICA6Z3JvdXAgJ21hcmtkb3duLXRz
LWZhY2VzCiAgIDpncm91cCAnZmFjZXMpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWRlbGltaXRl
ciAnKCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKLSAgIkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJr
ZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgdGhlICMgYmVmb3JlIE1hcmtkb3duIGhlYWRp
bmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5n
LTEgJygodCAoOmluaGVyaXQgb3V0bGluZS0xKSkpCi0gICJGYWNlIGZvciBmaXJzdCBsZXZlbCBN
YXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rvd24gaGVh
ZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLXNldGV4
dC1oZWFkaW5nICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWhlYWRpbmctMSkpKQotICAiRmFj
ZSBmb3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1bmRlcmxpbmVkIGJ5ID09
PSBvciAtLS0pLiIpCisgICJGYWNlIGZvciBzZXRleHQgTWFya2Rvd24gaGVhZGluZ3MgKGhlYWRp
bmdzIHVuZGVybGluZWQgYnkgPT09IG9yIC0tLSkuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChk
ZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctMiAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTIpKSkK
LSAgIkZhY2UgZm9yIHNlY29uZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBm
b3Igc2Vjb25kIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQog
CiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTMgJygodCAoOmluaGVyaXQgb3V0bGluZS0z
KSkpCi0gICJGYWNlIGZvciB0aGlyZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFj
ZSBmb3IgdGhpcmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNCAnKCh0ICg6aW5oZXJpdCBvdXRsaW5l
LTQpKSkKLSAgIkZhY2UgZm9yIGZvdXJ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAi
RmFjZSBmb3IgZm91cnRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMx
LjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTUgJygodCAoOmluaGVyaXQgb3V0
bGluZS01KSkpCi0gICJGYWNlIGZvciBmaWZ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQor
ICAiRmFjZSBmb3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAi
MzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNiAnKCh0ICg6aW5oZXJpdCBv
dXRsaW5lLTYpKSkKLSAgIkZhY2UgZm9yIHNpeHRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIp
CisgICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9u
ICIzMS4xIikKIAotKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygodCAoOmluaGVy
aXQgc2hhZG93KSkpCi0gICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMgbGlrZSAtIGFu
ZCAqLiIpCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbXBoYXNpcyAnKCh0ICg6aW5oZXJpdCBpdGFs
aWMpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGVtcGhhc2lzIChpdGFsaWMpIHRleHQuIgorICA6
dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWJvbGQgJygodCAoOmluaGVy
aXQgYm9sZCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3Ryb25nIGVtcGhhc2lzIChib2xkKSB0
ZXh0LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1zdHJpa2V0
aHJvdWdoICcoKHQgKDpzdHJpa2UtdGhyb3VnaCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBz
dHJpa2V0aHJvdWdoIHRleHQuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtk
b3duLXRzLWJsb2NrLXF1b3RlICcoKHQgKDppbmhlcml0IGl0YWxpYykpKQotICAiRmFjZSBmb3Ig
TWFya2Rvd24gYmxvY2sgcXVvdGVzLiIpCisgICJGYWNlIGZvciBNYXJrZG93biBibG9jayBxdW90
ZXMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpbmsgJygo
dCAoOmluaGVyaXQgbGluaykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGluayB0ZXh0IGFuZCBp
bWFnZSBkZXNjcmlwdGlvbnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtk
b3duLXRzLWxpbmstZGVzdGluYXRpb24gJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1m
YWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaW5rIGRlc3RpbmF0aW9ucyAoVVJMcykuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNvZGUtc3BhbiAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IGlubGluZSBjb2RlIHNwYW5zLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrICcoKHQgKDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudC4KK0FsdGVyIHRoaXMgZmFjZSB0byBhZGQgYSBg
OmJhY2tncm91bmQnIGZvciBhIHZpc3VhbGx5IGRpc3RpbmN0Citjb2RlIGJsb2NrIHJlZ2lvbiwg
ZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jayBu
aWwgOmJhY2tncm91bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZh
Y2UgbWFya2Rvd24tdHMtaW4tY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2Ug
Zm9yIHdoZW4gcG9pbnQgaXMgaW4gYSBNYXJrZG93biBjb2RlIGJsb2NrLgorU2VlIGBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZScuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRk
IGEgYDpiYWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBl
LmcuOgorICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy1pbi1jb2RlLWJsb2Nr
IDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNl
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQg
bGlnaHQpKSAoOmJhY2tncm91bmQgImdyYXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3Jv
dW5kIGRhcmspKSAgKDpiYWNrZ3JvdW5kICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBm
b3IgTWFya2Rvd24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRk
ZW4uCitVc2VkIGluc3RlYWQgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwJworaXMgbm9uLW5pbC4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29kZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBm
b250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGluZGVudGVkIGNv
ZGUgYmxvY2tzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1o
dG1sLXRhZyAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1cC1mYWNlKSkpCisgICJG
YWNlIGZvciBpbmxpbmUgSFRNTCB0YWdzIGluIE1hcmtkb3duLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQt
bG9jay1kb2MtbWFya3VwLWZhY2UpKSkKKyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtk
b3duLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10aGVtYXRp
Yy1icmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBN
YXJrZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250YWwgcnVsZXMpLgorQ3VzdG9taXplIHRo
aXMgZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3IgYSBmdWxsLXdpZHRoIHZpc3VhbCBydWxl
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbnRpdHktcmVm
ZXJlbmNlICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIG5hbWVkIEhUTUwgZW50aXR5IHJlZmVyZW5jZXMgbGlrZSAmYW1wOyBhbmQgJmNvcHk7LiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJh
Y3Rlci1yZWZlcmVuY2UKKyAgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkp
CisgICJGYWNlIGZvciBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5k
ICYjeDQxOy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0
ZXggJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBM
YVRlWCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAoJC4uLiQgYW5kICQkLi4uJCQpLiIKKyAg
OnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIgJygo
dCAoOmluaGVyaXQgKGJvbGQgZm9udC1sb2NrLWRvYy1mYWNlKSkpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gcGlwZSB0YWJsZSBoZWFkZXIgY2VsbHMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhk
ZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkYXRhIGNlbGxzLiIKKyAgOnZlcnNpb24g
IjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHBp
cGUgdGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2VwYXJhdG9ycykuIgorICA6dmVyc2lvbiAi
MzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlICcoKHQgKDpleHRlbmQgdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gdGFibGUuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRkIGEgYDpi
YWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBlLmcuOgor
ICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy10YWJsZSBuaWwgOmJhY2tncm91
bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24t
dHMtaW4tdGFibGUgJygodCAoOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBgbWFy
a2Rvd24tdHMtaW4tdGFibGUtbW9kZScgd2hlbiBwb2ludCBpcyBpbiBhIHRhYmxlLgorQWx0ZXIg
dGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dyb3VuZCcgZm9yIGEgdmlzdWFsbHkgZGlzdGluY3Qg
dGFibGUKK3JlZ2lvbiwgZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24t
dHMtaW4tdGFibGUgbmlsIDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQgJygodCAoOmluaGVy
aXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpKQotICAiRmFjZSBmb3IgdGhlIGxhbmd1YWdlIGtl
eXdvcmQgZm9yIE1hcmtkb3duIGNvZGUgYmxvY2tzLiIpCisgICJGYWNlIGZvciB0aGUgbGFuZ3Vh
Z2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNoYWRv
dykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4iCisg
IDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFr
LWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisg
ICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFp
bGluZyBiYWNrc2xhc2guIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuCisgICcoKHQgKDppbmhlcml0IG91
dGxpbmUtNCA6d2VpZ2h0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIHRyYWlsaW5nLWJhY2tzbGFzaCBo
YXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgJygoKChi
YWNrZ3JvdW5kIGxpZ2h0KSkgKDpiYWNrZ3JvdW5kICJncmF5NzAiIDp3ZWlnaHQgYm9sZCkpCisg
ICAgKCgoYmFja2dyb3VuZCBkYXJrKSkgICg6YmFja2dyb3VuZCAiZ3JheTQwIiA6d2VpZ2h0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGhhcmQgbGluZSBicmVha3MgaW50cm9kdWNlZCBi
eSB0d28gdHJhaWxpbmcgc3BhY2VzLgorVGhlIHRyYWlsaW5nIHNwYWNlcyBhcmUgb3RoZXJ3aXNl
IGludmlzaWJsZSwgc28gdGhleSBhcmUgc2hvd24gYXMgYQorc2hhZG93LWNvbG9yZWQgYmxvY2su
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9s
ZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKLTs7OyBGb250LWxvY2sKKyhk
ZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtkb3du
LXRzLWxpc3QtbWFya2VyKSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFzayBs
aXN0IG1hcmtlcnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRz
LXRhc2stY2hlY2tlZCAnKCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1saXN0LW1hcmtlcikpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gY2hlY2tlZCB0YXNrIGxpc3QgbWFya2Vycy4iCisgIDp2ZXJz
aW9uICIzMS4xIikKKworKHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCisK
KyhhZGQtdG8tbGlzdAorICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rv
d24KKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0
ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0
OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCisg
dCkKKworKGFkZC10by1saXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CisgJyht
YXJrZG93bi1pbmxpbmUKKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1h
cnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFl
NzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtk
b3duLWlubGluZS9zcmMiKQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhkZWZ2YXIgbWFya2Rv
d24tdHMtLXNldC11cC1pbmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRvIG5vbi1uaWwgZm9y
IGlubGluZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKQorCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggYmFzaC10cy1tb2RlKQorICAgIChzaGVsbCBi
YXNoLXRzLW1vZGUpCisgICAgKCwoaW50ZXJuICJjIyIpIGNzaGFycC10cy1tb2RlKQorICAgIChj
cHAgYysrLXRzLW1vZGUpCisgICAgKGVsIGVtYWNzLWxpc3AtbW9kZSkKKyAgICAoZWxpc3AgZW1h
Y3MtbGlzcC1tb2RlKQorICAgIChnb2xhbmcgZ28tdHMtbW9kZSkKKyAgICAoZ29tb2QgZ28tbW9k
LXRzLW1vZGUpCisgICAgKGdvd29yayBnby13b3JrLXRzLW1vZGUpCisgICAgKGphdmFzY3JpcHQg
anMtdHMtbW9kZSkKKyAgICAobWQgbWFya2Rvd24tdHMtbW9kZSkKKyAgICAocHkgcHl0aG9uLXRz
LW1vZGUpCisgICAgKHJiIHJ1YnktdHMtbW9kZSkKKyAgICAocnMgcnVzdC10cy1tb2RlKQorICAg
ICh0ZXggbGF0ZXgtbW9kZSkKKyAgICAodHMgdHlwZXNjcmlwdC10cy1tb2RlKQorICAgICh5bWwg
eWFtbC10cy1tb2RlKSkKKyAgIkV4dHJhIG1hcHBpbmdzIGZyb20gY29kZSBibG9jayBsYW5ndWFn
ZSB0YWdzIHRvIG1ham9yIG1vZGVzLgorCitFbnRyaWVzIGhlcmUgYXJlIG9ubHkgbmVlZGVkIHdo
ZW4gdGhlIGxhbmd1YWdlIHRhZyBpbiBhIGZlbmNlZCBjb2RlCitibG9jayBkb2VzIE5PVCBtYXRj
aCB0aGUgY29udmVudGlvbmFsIG1vZGUgbmFtZSBkZXJpdmF0aW9uLCBlLmcuIHRoZQordXNlciB3
cml0ZXMgXFw9YFxcPWBcXD1gdHMgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWB0eXBlc2NyaXB0LCBv
cgorXFw9YFxcPWBcXD1gcHkgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWBweXRob24uICBGb3IgdGFn
cyB0aGF0IGFscmVhZHkKK3Jlc29sdmUgdmlhIHRoZSBzdGFuZGFyZCBcIi10cy1tb2RlXCIvXCIt
bW9kZVwiIGhldXJpc3RpY3MgdGhlcmUgaXMgbm8KK25lZWQgdG8gYWRkIGFuIGVudHJ5LgorCitU
aGUgYWxpc3QgaXMgb2YgdGhlIGZvcm0gKExBTkdVQUdFIE1BSk9SLU1PREUpLiBNQUpPUi1NT0RF
IGNhbiBiZSBhCit0cmVlLXNpdHRlciBvciBhIGNvbnZlbnRpb25hbCBtb2RlLgorCitJZiB5b3Ug
cHJlZmVyIGEgY29udmVudGlvbmFsIG1vZGUgb3ZlciBpdHMgdHJlZS1zaXR0ZXIgdmFyaWFudCwg
YWRkIG9yCityZXBsYWNlIHJlbGV2YW50IGVudHJpZXMuICBGb3IgZXhhbXBsZToKKworICAgIChh
ZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9Jyhw
eXRob24gcHl0aG9uLW1vZGUpKQorICAgIChzZXRmIChhbGlzdC1nZXQgXFw9J3B5IG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgXFw9JyhweXRob24tbW9kZSkpCisKK0Nv
ZGUgYmxvY2tzIGZvciB0aGF0IG5vbiB0cmVlLXNpdHRlciBtb2RlcyB3aWxsIGJlIGZvbnRpZmll
ZCB1c2luZyB0aGUKK21vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2NrIHJ1bGVzLiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMKKyAg
JyhtYXJrZG93bi10cy1tb2RlCisgICAgcGhwLXRzLW1vZGUpCisgICJUcmVhdCB0aGVzZSBjb2Rl
IGJsb2NrIHRyZWUtc2l0dGVyIG1vZGVzIGFzIGNvbnZlbnRpb25hbC4KK1NvbWUgbW9kZXMgdGhh
dCBlbWJlZCBtdWx0aXBsZSBgdHJlZXNpdCcgcGFyc2VycyBuZWVkIHRvIGJlIHRyZWF0ZWQgd2l0
aAorY29udmVudGlvbmFsIGZvbnQtbG9jay4gIGBtYXJrZG93bi10cy1tb2RlJyBpdHNlbGYgaXMg
b25lIG9mIHRoZW0uIikKKworOzs7IEZvbnQtbG9jazoKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWRlbGltaXRlciAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKICAgIkZv
bnRpZnkgZGVsaW1pdGVyIE5PREUgYW5kIG9wdGlvbmFsbHkgaGlkZSBpdHMgbWFya3VwLgpAQCAt
MTY4LDIzICs3NzEsODM3IEBAIG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRz
LS1tYXJrdXApKSkKIAorKGRlZnZhciB1cmwtbWFpbC1jb21tYW5kKSA7IHVybC91cmwtdmFycy5l
bAorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKGJlZyBlbmQgdXJsKQor
ICAiTWFrZSB0aGUgcmVnaW9uIGZyb20gQkVHIHRvIEVORCBhIGNsaWNrYWJsZSBidXR0b24gZm9y
IFVSTC4KK0ZvciBtYWlsdG86IFVSSXMsIHVzZSBgdXJsLW1haWwtY29tbWFuZCcuICBGb3Igb3Ro
ZXIgc2NoZW1lcworXChlLmcuLCBodHRwLCBmdHApLCBvcGVuIHdpdGggYGJyb3dzZS11cmwnLiAg
T3RoZXJ3aXNlLCB0cmVhdCBhcworYSByZWxhdGl2ZSBmaWxlIHBhdGggYW5kIG9wZW4gd2l0aCBg
ZmluZC1maWxlJy4KKworRG8gbm90IHBhc3MgYGZhY2UnIHRvIGBtYWtlLXRleHQtYnV0dG9uJzog
dGhlIGxpbmsgZmFjZSBpcyBhbHJlYWR5CithcHBsaWVkIGJ5IGBtYXJrZG93bi10cy0tZm9udGlm
eS1saW5rLW5vZGUnIHZpYQorYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJyAod2l0aCBg
Om92ZXJyaWRlIGFwcGVuZCcpLCBhbmQKK2BhZGQtdGV4dC1wcm9wZXJ0aWVzJyB3b3VsZCBvdGhl
cndpc2UgcmVwbGFjZSB0aGUgYXBwZW5kZWQgZmFjZQorbGlzdCB3aXRoIGEgc2luZ2xlIGBtYXJr
ZG93bi10cy1saW5rJywgY2xvYmJlcmluZyBhbiBlbmNsb3NpbmcKK2hlYWRpbmcgZmFjZS4iCisg
IDs7IE5PVEU6IFVSSSBzY2hlbWUgYW5kIGhvc3QgbmFtZSBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBw
ZXIgUkZDIDM5ODYKKyAgOzsgYW5kIFJGQyA3MjMwLgorICAobGV0ICgoY2FzZS1mb2xkLXNlYXJj
aCBuaWwpKQorICAgIChtYWtlLXRleHQtYnV0dG9uIGJlZyBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAnYWN0aW9uIChsYW1iZGEgKF9idXR0b24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1w
cmVmaXgtcCAiIyIgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy0tZm9sbG93LWZyYWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzdWJzdHJpbmcgdXJsIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoc3RyaW5nLW1hdGNoLXAgIlxcYG1haWx0bzoiIHVybCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZnVuY2FsbCB1cmwtbWFpbC1jb21tYW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgbWFpbHRvOiIgIiIg
dXJsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaC1w
ICJcXGBbYS16XSs6IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJy
b3dzZS11cmwgdXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IChmaW5k
LWZpbGUgdXJsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICdoZWxwLWVjaG8gdXJsKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIGRlc3RpbmF0aW9uIE5PREUg
YW5kIGhpZGUgaXQgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgJ21hcmtkb3duLXRzLWxpbmst
ZGVzdGluYXRpb24gb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAod2hlbiBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cAorICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUp
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2li
bGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0t
bGluay1yZWYtY2FjaGUgbmlsCisgICJDYWNoZWQgYWxpc3Qgb2YgKExBQkVMIC4gVVJMKSBmcm9t
IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorRWFjaCBlbnRyeSBpcyBhIGNvbnMgY2VsbCBt
YXBwaW5nIGEgZG93bmNhc2VkIGxhYmVsIHN0cmluZyB0byBpdHMKK2Rlc3RpbmF0aW9uIFVSTC4i
KQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNrIG5pbAor
ICAiVmFsdWUgb2YgYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyB3aGVuIHRoZSBjYWNoZSB3
YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucyAo
KQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBsaW5rIHJlZmVyZW5j
ZSBkZWZpbml0aW9ucy4KK0xBQkVMIGlzIGRvd25jYXNlZCBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBt
YXRjaGluZy4gIFJlc3VsdHMgYXJlCitjYWNoZWQgYW5kIHJlYnVpbHQgb25seSB3aGVuIHRoZSBi
dWZmZXIgY2hhbmdlcy4iCisgIChsZXQgKCh0aWNrIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGlj
aykpKQorICAgICh1bmxlc3MgKGVxIHRpY2sgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRp
Y2spCisgICAgICAobGV0KiAoKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rv
d24pKQorICAgICAgICAgICAgIChtYXRjaGVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgcm9vdAorICAgICAgICAgICAgICAgICAgICAgICAnKChsaW5rX3Jl
ZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2xhYmVs
KSBAbGFiZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtfZGVzdGluYXRpb24pIEBk
ZXN0KSkpKQorICAgICAgICAgICAgIGRlZnMpCisgICAgICAgICh3aGlsZSBtYXRjaGVzCisgICAg
ICAgICAgKGxldCogKChsYWJlbC1wYWlyIChwb3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAg
IChkZXN0LXBhaXIgKHBvcCBtYXRjaGVzKSkKKyAgICAgICAgICAgICAgICAgKGxibC10ZXh0IChz
dHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBsYWJlbC1wYWlyKSB0KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXFsiICJcXF0iKSkpCisgICAgICAg
ICAgICAocHVzaCAoY29ucyAoZG93bmNhc2UgbGJsLXRleHQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBkZXN0LXBhaXIpIHQpKQorICAgICAgICAgICAg
ICAgICAgZGVmcykpKQorICAgICAgICAoc2V0cSBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUg
KG5yZXZlcnNlIGRlZnMpCisgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNo
ZS10aWNrIHRpY2spKSkKKyAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLXJlc29sdmUtbGluay1yZWYgKGxhYmVsKQorICAiUmVzb2x2ZSBMQUJF
TCB0byBhIFVSTCB2aWEgbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMuCitMQUJFTCBzaG91bGQg
YmUgdGhlIHRleHQgd2l0aG91dCBicmFja2V0cy4gIE1hdGNoaW5nIGlzCitjYXNlLWluc2Vuc2l0
aXZlIHBlciBDb21tb25NYXJrIHNwZWMgc2VjdGlvbiA0LjcuIgorICAoYWxpc3QtZ2V0IChkb3du
Y2FzZSBsYWJlbCkgKG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucykKKyAgICAgICAg
ICAgICBuaWwgbmlsICMnZXF1YWwpKQorCis7OzsgRnJhZ21lbnQgbGlua3M6CisKKyhkZWZjb25z
dCBtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUKKyAgIltdWyFcIiMkJSYnKCkqKywu
Lzo7PD0+P0BcXF5ge3x9fl0iCisgICJQdW5jdHVhdGlvbiBzdHJpcHBlZCBieSBHaXRIdWIncyBn
aC1zbHVnZ2VyIGJlZm9yZSBoeXBoZW5hdGlvbi4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNs
dWctZ2l0aHViICh0ZXh0KQorICAiUmV0dXJuIHRoZSBHaXRIdWItZmxhdm9yIHNsdWcgZm9yIGhl
YWRpbmcgVEVYVC4KK01pcnJvcnMgdGhlIGdoLXNsdWdnZXIgYWxnb3JpdGhtOiBsb3dlcmNhc2Us
IHN0cmlwIGEgZml4ZWQKK3B1bmN0dWF0aW9uIHNldCwgcmVwbGFjZSBzcGFjZXMgd2l0aCBoeXBo
ZW5zLiIKKyAgKGxldCogKChsYyAoZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoc3RyaXBwZWQg
KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10
cy0tc2x1Zy1naXRodWItc3RyaXAtcmUgIiIgbGMpKSkKKyAgICAocmVwbGFjZS1yZWdleHAtaW4t
c3RyaW5nICJbWzpibGFuazpdXSIgIi0iIHN0cmlwcGVkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tc2x1Zy1wYW5kb2MgKHRleHQpCisgICJSZXR1cm4gdGhlIFBhbmRvYy1mbGF2b3IgYXV0by1p
ZCBzbHVnIGZvciBoZWFkaW5nIFRFWFQuCitNaXJyb3JzIFBhbmRvYydzIGFsZ29yaXRobTogZHJv
cCBldmVyeXRoaW5nIGJlZm9yZSB0aGUgZmlyc3QKK2xldHRlciwga2VlcCBhbHBoYW51bWVyaWNz
IGFuZCBgXy0uJywgY29sbGFwc2Ugd2hpdGVzcGFjZSBydW5zIHRvCitoeXBoZW5zLCBsb3dlcmNh
c2UuICBGYWxscyBiYWNrIHRvIFwic2VjdGlvblwiIGlmIGVtcHR5LiIKKyAgKGxldCogKChsYyAo
ZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoZnJvbS1sZXR0ZXIgKGlmIChzdHJpbmctbWF0Y2gg
IltbOmFscGhhOl1dIiBsYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBs
YyAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAg
ICAgICAgKGtlcHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICJb
Xls6YWxudW06XV8uXG5cdFs6Ymxhbms6XS1dIiAiIiBmcm9tLWxldHRlcikpCisgICAgICAgICAo
aHlwaGVuYXRlZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJbWzpibGFuazpdXHRcbl0rIiAi
LSIga2VwdCkpCisgICAgICAgICAodHJpbW1lZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICIt
K1xcJyIgIiIgaHlwaGVuYXRlZCkpKQorICAgIChpZiAoc3RyaW5nLWVtcHR5LXAgdHJpbW1lZCkg
InNlY3Rpb24iIHRyaW1tZWQpKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1leHBsaWNpdC1p
ZC1yZQorICAiWyBcdF0qe1sgXHRdKiNcXChbXn0gXHRdK1xcKVsgXHRdKn1bIFx0XSpcXCciCisg
ICJNYXRjaCBhIFBhbmRvYy1zdHlsZSB0cmFpbGluZyBgeyNpZH0nIG9uIGEgaGVhZGluZyBsaW5l
LgorQ2FwdHVyZSBncm91cCAxIGlzIHRoZSBleHBsaWNpdCBpZC4iKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgKHJhdykKKyAgIlNwbGl0IFJBVyBoZWFkaW5nIHRl
eHQgaW50byAoVklTSUJMRSAuIEVYUExJQ0lULUlEKS4KK0VYUExJQ0lULUlEIGlzIG5vbi1uaWwg
aWYgUkFXIGVuZHMgd2l0aCBhIFBhbmRvYy1zdHlsZSBgeyNpZH0nLAoraW4gd2hpY2ggY2FzZSBW
SVNJQkxFIGlzIFJBVyB3aXRoIHRoYXQgc3VmZml4IHJlbW92ZWQuIgorICAoaWYgKHN0cmluZy1t
YXRjaCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUgcmF3KQorICAgICAgKGNvbnMgKHN1YnN0
cmluZyByYXcgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgKG1hdGNoLXN0cmlu
ZyAxIHJhdykpCisgICAgKGNvbnMgcmF3IG5pbCkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3du
LXRzLS1oZWFkaW5nLWlkLWNhY2hlIG5pbAorICAiQ2FjaGVkIGhhc2ggdGFibGUgbWFwcGluZyBo
ZWFkaW5nIHNsdWcgc3RyaW5ncyB0byBidWZmZXIgcG9zaXRpb25zLgorRWFjaCB2YWx1ZSBpcyB0
aGUgYnVmZmVyIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2hpbmcKK2BhdHhfaGVh
ZGluZycgb3IgYHNldGV4dF9oZWFkaW5nJyBub2RlLiAgQnVpbHQgbGF6aWx5IGJ5CitgbWFya2Rv
d24tdHMtLWhlYWRpbmctaWRzJywgaW52YWxpZGF0ZWQgYnkgYnVmZmVyLXRpY2sgY2hhbmdlLiIp
CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayBuaWwK
KyAgIlZhbHVlIG9mIGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgaGVhZGlu
Zy1pZCBjYWNoZSB3YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1idWlsZC1oZWFk
aW5nLWlkcyAoKQorICAiV2FsayBhbGwgaGVhZGluZ3MgaW4gdGhlIGJ1ZmZlciBhbmQgcmV0dXJu
IGEgaGFzaCB0YWJsZS4KK1doaWNoIG1hcHMgZWFjaCBzbHVnIHRvIHRoZSBidWZmZXIgcG9zaXRp
b24gb2YgaXRzIGhlYWRpbmcuICBFYWNoCitoZWFkaW5nIGNvbnRyaWJ1dGVzIGl0cyBHaXRIdWIg
c2x1ZywgaXRzIFBhbmRvYyBzbHVnLCBhbmQgaXRzIGV4cGxpY2l0CitgeyNpZH0nIGlmIHByZXNl
bnQuICBCb3RoIHNsdWcgYWxnb3JpdGhtcyBhcmUgc3RvcmVkIGluIHRoZSBzYW1lIGJ1ZmZlcgor
YmVjYXVzZSBhIG1hcmtkb3duIGZpbGUgaXMgb2Z0ZW4gcHJldmlld2VkIGJ5IHNldmVyYWwgcmVu
ZGVyZXJzIChHaXRIdWIKK3dlYiBVSSwgUGFuZG9jLCBtZEJvb2ssIEh1Z28sIGFuZCBzbyBvbikg
YW5kIHRoZSBzYW1lIHNvdXJjZSBzaG91bGQKK3Jlc29sdmUgcmVnYXJkbGVzcyBvZiB3aGljaCBv
bmUgdGhlIGF1dGhvciB3cm90ZSB0aGUgbGluayBmb3IuICBGb3IgbW9zdAoraGVhZGluZ3MgdGhl
IHR3byBhbGdvcml0aG1zIHByb2R1Y2UgdGhlIHNhbWUgc2x1ZyBhbnl3YXkuCitEdXBsaWNhdGUg
c2x1Z3MgKHdpdGhpbiBvbmUgYWxnb3JpdGhtKSBhcmUgZGlzYW1iaWd1YXRlZCBieSBhcHBlbmRp
bmcKK2AtMScsIGAtMicsIGFuZCBzbyBvbiwgaW4gZG9jdW1lbnQgb3JkZXIsIG1hdGNoaW5nIEdp
dEh1YidzIGJlaGF2aW9yLgorV2hlbiB0d28gZGlzdGluY3QgaGVhZGluZ3Mgd291bGQgb3RoZXJ3
aXNlIHNoYXJlIGEgc2x1ZywgdGhlIGZpcnN0CitvY2N1cnJlbmNlIGluIGRvY3VtZW50IG9yZGVy
IHdpbnMuIgorICAobGV0ICgodGFibGUgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFsKSkK
KyAgICAgICAgOzsgUGVyLWFsZ29yaXRobSBkZWR1cGUgY291bnRlcnM6IGhvdyBtYW55IHRpbWVz
IHRoaXMgYmFzZSBzbHVnCisgICAgICAgIDs7IGhhcyBiZWVuIHNlZW4gc28gZmFyIGluIGRvY3Vt
ZW50IG9yZGVyLgorICAgICAgICAoZ2gtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydl
cXVhbCkpCisgICAgICAgIChwZC1jb3VudHMgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFs
KSkKKyAgICAgICAgKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pKSkK
KyAgICAoZG9saXN0IChjYXAgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAg
ICAgcm9vdAorICAgICAgICAgICAgICAgICAgJygoKGF0eF9oZWFkaW5nKSBAaCkKKyAgICAgICAg
ICAgICAgICAgICAgKChzZXRleHRfaGVhZGluZykgQGgpKSkpCisgICAgICAobGV0KiAoKG5vZGUg
KGNkciBjYXApKQorICAgICAgICAgICAgIChwb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgICAgICAocmF3IChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0
KSkpCisgICAgICAgICAgICAgOzsgU3RyaXAgdGhlIGxlYWRpbmcgbWFya2VyICgjIyMgb3IgPT09
PS8tLS0tKS4KKyAgICAgICAgICAgICA7OyBGb3IgYXR4LCBkcm9wIGxlYWRpbmcgIydzIGFuZCBm
b2xsb3dpbmcgc3BhY2UuCisgICAgICAgICAgICAgOzsgRm9yIHNldGV4dCwgZHJvcCB0aGUgdHJh
aWxpbmcgdW5kZXJsaW5lIGxpbmUuCisgICAgICAgICAgICAgKHRleHQgKGNvbmQKKyAgICAgICAg
ICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYCMrWyBcdF0qXFwoLio/XFwpWyBcdF0qIypb
IFx0XSpcXCciIHJhdykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcp
KQorICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFxgXFwoLio/XFwpXG5bPS1d
K1sgXHRdKlxcJyIgcmF3KQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIHJh
dykpCisgICAgICAgICAgICAgICAgICAgICh0IHJhdykpKQorICAgICAgICAgICAgIChzcGxpdCAo
bWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgdGV4dCkpCisgICAgICAgICAgICAgKHZp
c2libGUgKGNhciBzcGxpdCkpCisgICAgICAgICAgICAgKGV4cGxpY2l0IChjZHIgc3BsaXQpKSkK
KyAgICAgICAgOzsgRXhwbGljaXQgeyNpZH0gd2lucyBvdXRyaWdodDsgZmlyc3Qgb2NjdXJyZW5j
ZSBrZWVwcyBpdC4KKyAgICAgICAgKHdoZW4gKGFuZCBleHBsaWNpdCAobm90IChnZXRoYXNoIGV4
cGxpY2l0IHRhYmxlKSkpCisgICAgICAgICAgKHB1dGhhc2ggZXhwbGljaXQgcG9zIHRhYmxlKSkK
KyAgICAgICAgOzsgQXV0byBzbHVncyAoR2l0SHViICsgUGFuZG9jKSwgZGVkdXBlZCBwZXIgYWxn
b3JpdGhtLgorICAgICAgICAobGV0KiAoKGdoLWJhc2UgKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1
YiB2aXNpYmxlKSkKKyAgICAgICAgICAgICAgIChwZC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1w
YW5kb2MgdmlzaWJsZSkpCisgICAgICAgICAgICAgICAoZ2gtbiAoZ2V0aGFzaCBnaC1iYXNlIGdo
LWNvdW50cyAwKSkKKyAgICAgICAgICAgICAgIChwZC1uIChnZXRoYXNoIHBkLWJhc2UgcGQtY291
bnRzIDApKQorICAgICAgICAgICAgICAgKGdoLWlkIChpZiAoemVyb3AgZ2gtbikgZ2gtYmFzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIGdoLWJhc2UgZ2gtbikpKQor
ICAgICAgICAgICAgICAgKHBkLWlkIChpZiAoemVyb3AgcGQtbikgcGQtYmFzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIHBkLWJhc2UgcGQtbikpKSkKKyAgICAgICAg
ICAocHV0aGFzaCBnaC1iYXNlICgxKyBnaC1uKSBnaC1jb3VudHMpCisgICAgICAgICAgKHB1dGhh
c2ggcGQtYmFzZSAoMSsgcGQtbikgcGQtY291bnRzKQorICAgICAgICAgIDs7IEZpcnN0LXdyaXRl
ci13aW5zIHNvIGRvY3VtZW50IG9yZGVyIHRpZWJyZWFrcyBjb2xsaXNpb25zLgorICAgICAgICAg
ICh1bmxlc3MgKGdldGhhc2ggZ2gtaWQgdGFibGUpIChwdXRoYXNoIGdoLWlkIHBvcyB0YWJsZSkp
CisgICAgICAgICAgKHVubGVzcyAoZ2V0aGFzaCBwZC1pZCB0YWJsZSkgKHB1dGhhc2ggcGQtaWQg
cG9zIHRhYmxlKSkpKSkKKyAgICB0YWJsZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGlu
Zy1pZHMgKCkKKyAgIlJldHVybiB0aGUgaGVhZGluZy1pZCBoYXNoIHRhYmxlIGZvciB0aGUgY3Vy
cmVudCBidWZmZXIuCitDYWNoZSBpcyByZWJ1aWx0IG9ubHkgd2hlbiBgYnVmZmVyLWNoYXJzLW1v
ZGlmaWVkLXRpY2snIGhhcyBhZHZhbmNlZAorc2luY2UgdGhlIGxhc3QgY2FsbCAobWlycm9ycyBg
bWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlJykuIgorICAobGV0ICgodGljayAoYnVmZmVyLWNo
YXJzLW1vZGlmaWVkLXRpY2spKSkKKyAgICAodW5sZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1o
ZWFkaW5nLWlkLWNhY2hlLXRpY2spCisgICAgICAoc2V0cSBtYXJrZG93bi10cy0taGVhZGluZy1p
ZC1jYWNoZSAobWFya2Rvd24tdHMtLWJ1aWxkLWhlYWRpbmctaWRzKQorICAgICAgICAgICAgbWFy
a2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayB0aWNrKSkKKyAgICBtYXJrZG93bi10cy0t
aGVhZGluZy1pZC1jYWNoZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9sbG93LWZyYWdtZW50
IChpZCkKKyAgIkp1bXAgdG8gdGhlIGhlYWRpbmcgd2hvc2Ugc2x1ZyBtYXRjaGVzIElEICh3aXRo
b3V0IGxlYWRpbmcgYCMnKS4KK1B1c2hlcyB0aGUgbWFyayBiZWZvcmUgbW92aW5nIHNvIGBDLXUg
Qy1TUEMnIHJldHVybnMuICBTaWduYWxzCitgdXNlci1lcnJvcicgaWYgbm8gaGVhZGluZyBtYXRj
aGVzLiIKKyAgKGlmLWxldCogKChwb3MgKGdldGhhc2ggaWQgKG1hcmtkb3duLXRzLS1oZWFkaW5n
LWlkcykpKSkKKyAgICAgIChwcm9nbgorICAgICAgICAocHVzaC1tYXJrKQorICAgICAgICAoZ290
by1jaGFyIHBvcykKKyAgICAgICAgKHJlY2VudGVyKSkKKyAgICAodXNlci1lcnJvciAiTm8gaGVh
ZGluZyBmb3IgZnJhZ21lbnQ6ICMlcyIgaWQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250
aWZ5LWhlYWRpbmcgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBfZW5kICZyZXN0IF8pCisgICJBcHBs
eSB0aGUgaGVhZGluZyBmYWNlIGFjcm9zcyBOT0RFLgorTGF5ZXIgdGhlIGZhY2Ugb24gdG9wIG9m
IGNoaWxkIHN1Yi1ub2RlcyAoZS5nLiBhbiBpbmxpbmUgbGluaykgc28KK3RoZWlyIG93biBmYWNl
cyBhcmUgcHJlc2VydmVkLiAgU3RyaXAgYW55IHByaW9yIGNvcHkgb2YgdGhlIGZhY2UKK2ZpcnN0
IHNvIGl0IGRvZXMgbm90IGFjY3VtdWxhdGUgd2hlbiB0aGUgaGVhZGluZyBpcyByZWZvbnRpZmll
ZCBvcgoraXRzIGxldmVsL3R5cGUgY2hhbmdlcyBkdXJpbmcgZWRpdGluZy4KKworRm9yIEFUWCBo
ZWFkaW5ncywgYWxzbyBmb250aWZ5IGFueSBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJwor
c2VxdWVuY2UgYXMgYSBkZWxpbWl0ZXIuICBUaGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBkb2VzIG5v
dCBwcm9kdWNlIGEKK3NlcGFyYXRlIG5vZGUgZm9yIHRoZXNlOyBwZXIgQ29tbW9uTWFyayB0aGV5
IGFyZSBkZWNvcmF0aXZlIGFuZAorbXVzdCBiZSBwcmVjZWRlZCBieSBhIHNwYWNlIG9yIHRhYi4i
CisgIChsZXQqICgodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAobi1z
dGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG4tZW5kICAgKHRyZWVz
aXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoZmFjZSAoY29uZAorICAgICAgICAgICAgICAg
ICgoZXF1YWwgdHlwZSAic2V0ZXh0X2hlYWRpbmciKQorICAgICAgICAgICAgICAgICAnbWFya2Rv
d24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAg
ICAgKGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCkpKQorICAgICAgICAg
ICAgICAgICAgIChpbnRlcm4gKGZvcm1hdCAibWFya2Rvd24tdHMtaGVhZGluZy0lZCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQg
bWFya2VyIHQpKSkpKSkpKSkKKyAgICAoZm9udC1sb2NrLS1yZW1vdmUtZmFjZS1mcm9tLXRleHQt
cHJvcGVydHkgbi1zdGFydCBuLWVuZCAnZmFjZSBmYWNlKQorICAgIChmb250LWxvY2stYXBwZW5k
LXRleHQtcHJvcGVydHkgbi1zdGFydCBuLWVuZCAnZmFjZSBmYWNlKQorICAgICh3aGVuIChzdHJp
bmctcHJlZml4LXAgImF0eF8iIHR5cGUpCisgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
KGdvdG8tY2hhciBuLWVuZCkKKyAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdFxuIiBu
LXN0YXJ0KQorICAgICAgICAobGV0ICgobGluZS1lbmQgKHBvaW50KSkpCisgICAgICAgICAgKHNr
aXAtY2hhcnMtYmFja3dhcmQgIiBcdCIgbi1zdGFydCkKKyAgICAgICAgICAobGV0ICgodHJhaWxp
bmctZW5kIChwb2ludCkpKQorICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiMiIG4t
c3RhcnQpCisgICAgICAgICAgICAobGV0ICgodHJhaWxpbmctc3RhcnQgKHBvaW50KSkpCisgICAg
ICAgICAgICAgICh3aGVuIChhbmQgKDwgdHJhaWxpbmctc3RhcnQgdHJhaWxpbmctZW5kKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICg+IHRyYWlsaW5nLXN0YXJ0IG4tc3RhcnQpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1lbXEgKGNoYXItYmVmb3JlIHRyYWlsaW5nLXN0YXJ0KSAnKD9c
cyA/XHQpKSkKKyAgICAgICAgICAgICAgICAoZm9udC1sb2NrLS1yZW1vdmUtZmFjZS1mcm9tLXRl
eHQtcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgdHJhaWxpbmctc3RhcnQgdHJhaWxpbmctZW5k
CisgICAgICAgICAgICAgICAgICdmYWNlICdtYXJrZG93bi10cy1kZWxpbWl0ZXIpCisgICAgICAg
ICAgICAgICAgKGZvbnQtbG9jay1wcmVwZW5kLXRleHQtcHJvcGVydHkKKyAgICAgICAgICAgICAg
ICAgdHJhaWxpbmctc3RhcnQgdHJhaWxpbmctZW5kCisgICAgICAgICAgICAgICAgICdmYWNlICdt
YXJrZG93bi10cy1kZWxpbWl0ZXIpCisgICAgICAgICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMt
aGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgIDs7IEFsc28gaGlkZSB0aGUgc3BhY2Uocykg
cHJlY2VkaW5nIHRoZSBjbG9zZXIgYW5kIGFueQorICAgICAgICAgICAgICAgICAgOzsgdHJhaWxp
bmcgd2hpdGVzcGFjZSwgc28gdGhlIGhlYWRpbmcgbG9va3MgY2xlYW4uCisgICAgICAgICAgICAg
ICAgICAobGV0ICgoaGlkZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciB0cmFpbGluZy1zdGFydCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIg
bi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkp
KQorICAgICAgICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgaGlkZS1zdGFydCBsaW5l
LWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLS1tYXJr
dXApKSkpKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlIChu
b2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIG9yIGltYWdl
IHRleHQgTk9ERSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitXb3JrcyBmb3IgaW5saW5lIGxpbmtz
LCByZWZlcmVuY2UgbGlua3MsIHNob3J0Y3V0IGxpbmtzLCBhbmQKK2ltYWdlIGRlc2NyaXB0aW9u
cy4gIFRoZSBVUkwgaXMgdGFrZW4gZnJvbSBhIHNpYmxpbmcKK2BsaW5rX2Rlc3RpbmF0aW9uJyBu
b2RlIHdoZW4gcHJlc2VudCwgb3IgcmVzb2x2ZWQgZnJvbSBhCitsaW5rIHJlZmVyZW5jZSBkZWZp
bml0aW9uLCBvciB0aGUgbm9kZSB0ZXh0IGl0c2VsZiBpcyB1c2VkIGFzCitmYWxsYmFjay4gIE9W
RVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0ICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFy
ZW50IG5vZGUpKSkKKyAgICA7OyBXaGVuIE5PREUgaXMgYSBsaW5rX2xhYmVsIGluc2lkZSBhIGZ1
bGxfcmVmZXJlbmNlX2xpbmsgdGhhdAorICAgIDs7IGFsc28gaGFzIGEgbGlua190ZXh0LCBza2lw
IGl0LCBsaW5rX3RleHQgaGFuZGxlcyB0aGF0IGxpbmsuCisgICAgKHVubGVzcyAoYW5kIChzdHJp
bmc9ICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAibGlua19sYWJlbCIpCisgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua190ZXh0XFwnIikpCisg
ICAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgJ21hcmtkb3duLXRz
LWxpbmsgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNl
YXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua19kZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAg
ICAgICh1cmwgKGlmIGRlc3QKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXRl
eHQgZGVzdCB0KQorICAgICAgICAgICAgICAgICAgICA7OyBSZWZlcmVuY2UgbGlua3M6IHJlc29s
dmUgdmlhIGxpbmtfbGFiZWwgb3IgbGlua190ZXh0LgorICAgICAgICAgICAgICAgICAgICAobGV0
KiAoKGxhYmVsLW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgIlxcYGxpbmtfbGFiZWxcXCciKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsYWJlbCAoaWYgbGFiZWwtbm9kZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFi
ZWwtbm9kZSB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlxcWyIgIlxcXSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkpKQorICAgICAgICAgICAgICAgICAgICAgIChvciAo
bWFya2Rvd24tdHMtLXJlc29sdmUtbGluay1yZWYgbGFiZWwpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxhYmVsKSkpKSkKKyAgICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9u
CisgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5v
ZGUpIHVybCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluayAobm9k
ZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgYXV0b2xpbmsgTk9ERSAo
VVJJIG9yIGVtYWlsKSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitGb3IgZW1haWwgYXV0b2xpbmtz
LCB0aGUgVVJMIGlzIHByZWZpeGVkIHdpdGggXCJtYWlsdG86XCIuCitBbmdsZSBicmFja2V0IGRl
bGltaXRlcnMgYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RB
UlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgt
b3ZlcnJpZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9k
ZSkpCisgICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAg
ICAoaW5uZXIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAg
ICAoMSsgbm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSkpCisgICAgICAgICAodXJsIChpZiAoc3Ry
aW5nPSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImVtYWlsX2F1dG9saW5rIikKKyAgICAgICAg
ICAgICAgICAgIChjb25jYXQgIm1haWx0bzoiIGlubmVyKQorICAgICAgICAgICAgICAgIGlubmVy
KSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQg
bm9kZS1lbmQgJ21hcmtkb3duLXRzLWxpbmsgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChtYXJr
ZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbiBub2RlLXN0YXJ0IG5vZGUtZW5kIHVybCkKKyAgICAo
d2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5v
ZGUtc3RhcnQgKDErIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlz
aWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoMS0g
bm9kZS1lbmQpIG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAn
bWFya2Rvd24tdHMtLW1hcmt1cCkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxp
bmstcmVmLWxhYmVsIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlm
eSBsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9uIGxhYmVsIE5PREUgYXMgYSBjbGlja2FibGUgYnV0
dG9uLgorVGhlIGJyYWNrZXRzIGFuZCBjb2xvbiBhcmUgaGlkZGVuIHdoZW4gbWFya3VwIGlzIGhp
ZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0
cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2Rl
LWVuZCBub2RlKSkKKyAgICAgICAgIChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkp
CisgICAgICAgICAoZGVzdC1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxg
bGlua19kZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgKHVybCAod2hlbiBkZXN0LW5vZGUgKHRy
ZWVzaXQtbm9kZS10ZXh0IGRlc3Qtbm9kZSB0KSkpKQorICAgIDs7IEZvbnRpZnkgdGhlIGxhYmVs
IHRleHQgKGluc2lkZSBicmFja2V0cykuCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlCisgICAgICgxKyBub2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpCisgICAgICdtYXJrZG93bi10
cy1saW5rIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICA7OyBNYWtlIGl0IGEgY2xpY2thYmxlIGJ1
dHRvbi4KKyAgICAod2hlbiB1cmwKKyAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRv
biAoMSsgbm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSB1cmwpKQorICAgIDs7IEhpZGUgIlsiIGJl
Zm9yZSBsYWJlbCBhbmQgIl06ICIgYmV0d2VlbiBsYWJlbCBhbmQgZGVzdGluYXRpb24uCisgICAg
KHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBu
b2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZp
c2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApCisgICAgICAobGV0ICgoY29sb24tZW5kIChpZiBk
ZXN0LW5vZGUgKHRyZWVzaXQtbm9kZS1zdGFydCBkZXN0LW5vZGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKDErIG5vZGUtZW5kKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEt
IG5vZGUtZW5kKSBjb2xvbi1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2li
bGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRp
ZnktbGluay1yZWYtZGVzdGluYXRpb24gKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3QgXykK
KyAgIkZvbnRpZnkgbGluayByZWZlcmVuY2UgZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3aGVu
IG1hcmt1cCBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJv
dWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQtZm9u
dGlmeS13aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0
LW5vZGUtZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVycmlk
ZSBzdGFydCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1dC10
ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQg
bm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1h
cmt1cCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5vZGUp
CisgICJSZXR1cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNpbmds
ZSBpbmxpbmUgc2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBmYWxz
ZSBgbGF0ZXhfYmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRh
cmllcy4gIENoZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMgc2hh
cmUgdGhlIHNhbWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9kZS1z
dGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEtICh0
cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0cmVl
c2l0LW5vZGUtYXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChtZC1l
bmQgKHRyZWVzaXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAg
IChpbmxpbmUtc3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFt
YmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0
LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVuZCAo
dHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQtZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikp
KSkpCisgICAgICAoZXEgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1mb250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBf
KQorICAiRm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxpbWl0ZXJzIHdo
ZW4gbWFya3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFsc2UgbWF0Y2hl
cyB0aGF0IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJREUsIFNUQVJU
LCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92
ZXJyaWRlJy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCBub2Rl
KQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJrZG93bi10cy1s
YXRleCBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJr
dXAKKyAgICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQgbm9kZSkpCisg
ICAgICAgIChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkpKQorICAgICAg
ICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRleF9zcGFuX2Rl
bGltaXRlciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1z
dGFydCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LWVuZCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdt
YXJrZG93bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnkt
YmFja3NsYXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZv
bnRpZnkgYmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFzaCB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2NrJyB3aGVyZSBi
YWNrc2xhc2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFy
ZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisg
IChsZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChp
bi1sYXRleCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5v
ZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkKKyAgICAodHJl
ZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFy
dCkKKyAgICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBlbmQpCisgICAg
KHdoZW4gKGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4KSkKKyAgICAg
IChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkpCisKKyhk
ZWZ2YXIgc2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudGl0eS1nZXQg
Im9yZy9vcmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRlY29kZS1lbnRp
dHkgKHRleHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCImYW1wO1wiKSB0
byBpdHMgY2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJpbmcsIG9yIG5p
bCBpZiB0aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVtZXJpYyBoZXgg
JiN4MUY0QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0Ol1dK1xcKTtc
XCciIHRleHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1z
dHJpbmcgMSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIzOworICAgKChz
dHJpbmctbWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAoY2hh
ci10by1zdHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRleHQpKSkpCisg
ICA7OyBOYW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBiYWNrIHRvIHNn
bWwtY2hhci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51bTpdXStcXCk7
XFwnIiB0ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkpCisgICAg
ICAocmVxdWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRyeSAob3JnLWVu
dGl0eS1nZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVudHJ5KSkpCisg
ICAgICAgICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAgICAgICAod2hl
bi1sZXQqICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1lICMnZXF1YWwp
KSkKKyAgICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykK
KyAgIkZvbnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFsdWUgd2hlbiBt
YXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhy
b3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChub2Rl
LXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJl
ZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAodHJlZXNpdC1u
b2RlLXR5cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAgICAgICAgJ21h
cmtkb3duLXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMt
bnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRo
LW92ZXJyaWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtkb3duLXRzLWhp
ZGUtbWFya3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93bi10cy0tZGVj
b2RlLWVudGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10
ZXh0IG5vZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxheWFibGUtcCAo
YXJlZiBkZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgbm9kZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRleHQtcHJvcGVy
dGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZSAodmFsKQorICAiUmVzb2x2ZSBWQUwsIGEg
Y29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spLCB0byBhIGRpc3BsYXlhYmxlIHZhbHVlLgorUmV0
dXJuIFBSRUZFUlJFRCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyIHBhc3NlcyBgY2hhci1kaXNwbGF5
YWJsZS1wJywKK290aGVyd2lzZSByZXR1cm4gRkFMTEJBQ0suICBSZXR1cm4gbmlsIGlmIFZBTCBp
cyBuaWwuIgorICAod2hlbiB2YWwKKyAgICAobGV0KiAoKHByZWZlcnJlZCAoY2FyIHZhbCkpCisg
ICAgICAgICAgIChjaCAoaWYgKGNoYXJhY3RlcnAgcHJlZmVycmVkKSBwcmVmZXJyZWQgKGFyZWYg
cHJlZmVycmVkIDApKSkpCisgICAgICAoaWYgKGNoYXItZGlzcGxheWFibGUtcCBjaCkgKGNhciB2
YWwpIChjZHIgdmFsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94
IChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3Qg
Y2hlY2tib3ggTk9ERSwgc2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRl
bi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVl
c2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVz
aXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVu
ZCBub2RlKSkKKyAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9k
ZSkgInRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNr
ZWQgJ21hcmtkb3duLXRzLXRhc2stY2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24t
dHMtdGFzay11bmNoZWNrZWQpKQorICAgICAgICAgKHZhbHVlIChpZiBjaGVja2VkCisgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gKKyAgICAgICAgICAgICAg
ICAgIG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCkpCisgICAgICAgICAocmVwbGFjZW1l
bnQKKyAgICAgICAgICAoY29uZCAoKGVxIHZhbHVlICdpY29uKQorICAgICAgICAgICAgICAgICAo
aWNvbi1zdHJpbmcgKGlmIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveC1pY29uCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gtaWNvbikpKQorICAg
ICAgICAgICAgICAgICh0IChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlIHZhbHVl
KSkpKQorICAgICAgICAgOzsgSWYgYGljb24tc3RyaW5nJyByZXR1cm5lZCBhbiBpbWFnZSwgaXRz
IGBkaXNwbGF5JyBwcm9wZXJ0eQorICAgICAgICAgOzsgb24gY2hhciAwIGhvbGRzIHRoZSBhY3R1
YWwgaW1hZ2Ugc3BlYzsgbmVzdGVkIGBkaXNwbGF5JworICAgICAgICAgOzsgcHJvcHMgYXJlIG5v
dCBob25vcmVkIHdoZW4gYSBzdHJpbmcgaXMgdGhlIHZhbHVlIG9mIGEKKyAgICAgICAgIDs7IGBk
aXNwbGF5JyB0ZXh0LXByb3BlcnR5LCBzbyBhcHBseSB0aGUgc3BlYyBkaXJlY3RseS4KKyAgICAg
ICAgIChkaXNwbGF5LXNwZWMKKyAgICAgICAgICAob3IgKGFuZCAoZXEgdmFsdWUgJ2ljb24pIHJl
cGxhY2VtZW50CisgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2Rpc3Bs
YXkgcmVwbGFjZW1lbnQpKQorICAgICAgICAgICAgICByZXBsYWNlbWVudCkpKQorICAgICh0cmVl
c2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChp
ZiAoYW5kIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50CisgICAgICAgICAgICAg
KG9yIChlcSB2YWx1ZSAnaWNvbikKKyAgICAgICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUt
cCAoYXJlZiByZXBsYWNlbWVudCAwKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9k
ZS1zdGFydCBub2RlLWVuZCAnZGlzcGxheSBkaXNwbGF5LXNwZWMpCisgICAgICAocmVtb3ZlLXRl
eHQtcHJvcGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1saW5lLWJyZWFrIChub2RlIG92ZXJyaWRl
IHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBoYXJkIGxpbmUgYnJlYWsgTk9ERTsgc2hv
dyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK0EgYmFja3NsYXNoIGJy
ZWFrIGdldHMgYG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gnIChvciBpdHMK
K2AtaGlkZGVuJyB2YXJpYW50IHdoZW4gbWFya3VwIGlzIGhpZGRlbik7IGEgdHJhaWxpbmctc3Bh
Y2VzIGJyZWFrIGdldHMKK2BtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UnIChvciBg
LWhpZGRlbicpLiAgV2hlbiBoaWRkZW4sIGEKK2JhY2tzbGFzaCBicmVhayBpcyByZXBsYWNlZCBi
eSBhIHNpbmdsZSBgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrJworZ2x5cGg7IGEgdHJhaWxp
bmctc3BhY2VzIGJyZWFrIHJlcGxhY2VzIGVhY2ggc3BhY2Ugd2l0aCB0aGUgZ2x5cGgsIHNvIHRo
ZSBydW4KK29mIHBpbGNyb3dzIGZpbGxzIHRoZSBsaW5lIHVwIHRvIHRoZSBuZXdsaW5lLgorT1ZF
UlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9u
dGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2Rl
LXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9k
ZSkpCisgICAgICAgICAodGV4dCAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkKKyAg
ICAgICAgIChiYWNrc2xhc2ggIChhbmQgKD4gKGxlbmd0aCB0ZXh0KSAwKSAoZXEgKGFyZWYgdGV4
dCAwKSA/XFwpKSkKKyAgICAgICAgIDs7IERldGVybWluZSB0aGUgYWN0dWFsIHJhbmdlIHRvIGZv
bnRpZnkgYW5kIHJlcGxhY2UuICBUaGUKKyAgICAgICAgIDs7IGhhcmRfbGluZV9icmVhayBub2Rl
IG1heSBub3QgY292ZXIgdGhlIGZ1bGwgcnVuIG9mIHRyYWlsaW5nCisgICAgICAgICA7OyBzcGFj
ZXMsIHNvIHdhbGsgYmFjayBmcm9tIGVuZC1vZi1saW5lIG91cnNlbHZlcyBmb3IgdGhlCisgICAg
ICAgICA7OyBzcGFjZXMgdmFyaWFudC4KKyAgICAgICAgIChyZWdpb24gICAgIChpZiBiYWNrc2xh
c2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBub2RlLXN0YXJ0CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNoYXItYmVmb3JlIG5v
ZGUtZW5kKSA/XG4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gbm9k
ZS1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLWVuZCkpCisgICAg
ICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0
ICgoZW9sIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGNvbnMgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tp
cC1jaGFycy1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAi
IChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlb2wpKSkp
KQorICAgICAgICAgKHJlZ2lvbi1zdGFydCAoY2FyIHJlZ2lvbikpCisgICAgICAgICAocmVnaW9u
LWVuZCAgIChjZHIgcmVnaW9uKSkKKyAgICAgICAgIChmYWNlICAgICAgIChjb25kCisgICAgICAg
ICAgICAgICAgICAgICAgKChhbmQgYmFja3NsYXNoIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKQor
ICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tz
bGFzaC1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tzbGFzaCAnbWFya2Rvd24t
dHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRz
LWhhcmQtbGluZS1icmVhay1zcGFjZS1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKHQg
J21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSkpKSkKKyAgICAodHJlZXNpdC1mb250
aWZ5LXdpdGgtb3ZlcnJpZGUgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgZmFjZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsgQWx3
YXlzIHN0YXJ0IGJ5IGNsZWFyaW5nIGFueSBzdGFsZSBgZGlzcGxheScgcHJvcGVydHkuICBXZSBu
ZXZlcgorICAgIDs7IHNwYW4gdGhlIHRyYWlsaW5nIG5ld2xpbmUgd2l0aCBgZGlzcGxheScgKGl0
IGNvbmZ1c2VzCisgICAgOzsgcmVkaXNwbGF5J3MgY3Vyc29yIHBsYWNlbWVudCksIGFuZCB3ZSBv
bmx5IHBhaW50IGEgc2luZ2xlCisgICAgOzsgY29tYmluZWQgc3RyaW5nIG9udG8gdGhlIGZpcnN0
IGNoYXJhY3RlciBvZiB0aGUgcnVuLCBsZWF2aW5nCisgICAgOzsgdGhlIHJlc3Qgb2YgdGhlIG1h
cmt1cCBhbG9uZS4KKyAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyByZWdpb24tc3RhcnQgcmVn
aW9uLWVuZCAnKGRpc3BsYXkgbmlsKSkKKyAgICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1
cAorICAgICAgKGxldCogKChzcGVjIChpZiBiYWNrc2xhc2gKKyAgICAgICAgICAgICAgICAgICAg
ICAgKG1hcmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpCisgICAgICAgICAg
ICAgICAgICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpKQorICAgICAgICAg
ICAgIChzdHIgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoKG51bGwgc3BlYykgbmlsKQorICAg
ICAgICAgICAgICAgICAgICgoY2hhcmFjdGVycCBzcGVjKSAoY2hhci10by1zdHJpbmcgc3BlYykp
CisgICAgICAgICAgICAgICAgICAgKChzdHJpbmdwIHNwZWMpIHNwZWMpCisgICAgICAgICAgICAg
ICAgICAgKChmdW5jdGlvbnAgc3BlYykKKyAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc3Bl
YyAoLSByZWdpb24tZW5kIHJlZ2lvbi1zdGFydCkpKSkpKQorICAgICAgICAod2hlbiAoYW5kIChz
dHJpbmdwIHN0cikKKyAgICAgICAgICAgICAgICAgICAoPiAobGVuZ3RoIHN0cikgMCkKKyAgICAg
ICAgICAgICAgICAgICAoY2hhci1kaXNwbGF5YWJsZS1wIChhcmVmIHN0ciAwKSkpCisgICAgICAg
ICAgKHB1dC10ZXh0LXByb3BlcnR5IHJlZ2lvbi1zdGFydCAoMSsgcmVnaW9uLXN0YXJ0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzcGxheSBzdHIpCisgICAgICAgICAgOzsgRm9y
IHRoZSB0cmFpbGluZy1zcGFjZXMgdmFyaWFudCwgaGlkZSB0aGUgcmVtYWluaW5nCisgICAgICAg
ICAgOzsgc3BhY2VzIGluIHRoZSBydW4gc28gdGhlIGxpbmUgZG9lc24ndCBlbmQgd2l0aCBsZWZ0
b3ZlcgorICAgICAgICAgIDs7IHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIHN1YnN0aXR1dGVkIGdseXBo
LiAgRWFjaCBwb3NpdGlvbgorICAgICAgICAgIDs7IGdldHMgaXRzIG93biBlbXB0eS1zdHJpbmcg
YGRpc3BsYXknIHNvIGN1cnNvciBwbGFjZW1lbnQKKyAgICAgICAgICA7OyBzdGF5cyB1bmFtYmln
dW91cy4KKyAgICAgICAgICAodW5sZXNzIGJhY2tzbGFzaAorICAgICAgICAgICAgKGxldCAoKGkg
KDErIHJlZ2lvbi1zdGFydCkpKQorICAgICAgICAgICAgICAod2hpbGUgKDwgaSByZWdpb24tZW5k
KQorICAgICAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBpICgxKyBpKSAnZGlzcGxheSAi
IikKKyAgICAgICAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpKSkpKSkpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWsgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5k
ICZyZXN0IF8pCisgICJGb250aWZ5IHRoZW1hdGljIGJyZWFrIE5PREUgYW5kIHNob3cgYSBsaW5l
IHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFz
c2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0
ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1l
bmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1v
dmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGxldCAoKGNoYXIgKG1hcmtk
b3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAgbWFya2Rvd24t
dHMtdGhlbWF0aWMtYnJlYWstY2hhcmFjdGVyKSkpCisgICAgICAoaWYgKGFuZCBtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCBjaGFyIChjaGFyLWRpc3BsYXlhYmxlLXAgY2hhcikpCisgICAgICAgICAg
KGxldCogKChjb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkpCisgICAg
ICAgICAgICAgICAgIDs7IFNwYW4gaWYgdGhlIGZhY2UgaGFzIG5vbi1uaWwgOmV4dGVuZC4KKyAg
ICAgICAgICAgICAgICAgKHNwYW4tbGVuZ3RoIChpZiAoZmFjZS1hdHRyaWJ1dGUgJ21hcmtkb3du
LXRzLXRoZW1hdGljLWJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDpleHRlbmQgbmlsICdkZWZhdWx0KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgtICh3aW5kb3ctYm9keS13aWR0aCkgY29sKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMikpKQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5v
ZGUtc3RhcnQgbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzcGxh
eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1ha2Utc3RyaW5nIHNwYW4tbGVuZ3RoIGNoYXIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJcbiIpKSkKKyAgICAgICAgKHJlbW92ZS10ZXh0LXBy
b3BlcnRpZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrIChub2RlIF9vdmVycmlkZSBfc3RhcnQg
X2VuZCAmcmVzdCBfKQorICAiRm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnQgTk9ERSB3aXRoIGEg
YmFja2dyb3VuZCBvdmVybGF5LgorVXNlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1hcmt1cC1o
aWRkZW4nIHdoZW4gbWFya3VwIGlzIGhpZGRlbiwKK2BtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBv
dGhlcndpc2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0aGUKK2JhY2tncm91bmQgbGF5ZXJzIGl0c2Vs
ZiBiZWhpbmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9udGlmaWNhdGlvbi4KK1RoZSBvdmVybGF5IGFs
c28gc3RvcmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1YWdlIGFuZCBtb2RlIGFzCitwcm9wZXJ0aWVz
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlJyBhbmQKK2BtYXJrZG93bi10cy1jb2Rl
LWJsb2NrLW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQorYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFu
Z3VhZ2UtYXQnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAg
ICAgKG5vZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgIChza2lw
LWNoYXJzLWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisg
ICAgICAgICAoZmFjZSAoaWYgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAg
ICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisgICAgICAgICAgICAg
ICAgICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgIChsYW5nIChtYXJrZG93bi10
cy0tbGFuZ3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAgICAgICAgIChtb2RlICh3aGVuIGxhbmcKKyAg
ICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFu
ZykpKQorICAgICAgICAgKGV4aXN0aW5nIChzZXEtZmluZCAobGFtYmRhIChvdikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWNvZGUt
YmxvY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheXMtYXQgbm9kZS1z
dGFydCkpKSkKKyAgICAoaWYgZXhpc3RpbmcKKyAgICAgICAgKHByb2duCisgICAgICAgICAgKG1v
dmUtb3ZlcmxheSBleGlzdGluZyBub2RlLXN0YXJ0IG5vZGUtZW5kKQorICAgICAgICAgIChvdmVy
bGF5LXB1dCBleGlzdGluZyAnZmFjZSBmYWNlKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlz
dGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAgIChv
dmVybGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlIG1vZGUpKQor
ICAgICAgKGxldCAoKG92IChtYWtlLW92ZXJsYXkgbm9kZS1zdGFydCBub2RlLWVuZCBuaWwgdCBu
aWwpKSkKKyAgICAgICAgOzsgTWFya2VycyBuZWVkIHRvIGJlIHNldCBvbmx5IG9uY2UuCisgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyIChzZXQtbWFy
a2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS1zdGFydCkpCisgICAgICAgIChvdmVybGF5
LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1h
cmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtk
b3duLXRzLWNvZGUtYmxvY2sgdCkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92ICdmYWNlIGZhY2Up
CisgICAgICAgIChvdmVybGF5LXB1dCBvdiAncHJpb3JpdHkgJyhuaWwgLiAxMCkpCisgICAgICAg
IChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQor
ICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSBtb2Rl
KQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLWF0LWNvZGUtYmxvY2stcCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiBub24g
bmlsIGlmIHBvaW50IGlzIGluIGEgY29kZSBibG9jay4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2lu
dC4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1j
b2RlLWJsb2NrKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQg
KCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBvZiB0aGUgY29k
ZSBibG9jayBhdCBQT1MuCitJZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuICBSZXR1cm5zIG5pbCBp
ZiBQT1MgaXMgbm90IGluc2lkZSBhIGZlbmNlZAorY29kZSBibG9jay4gIFRoaXMgd29ya3MgcmVn
YXJkbGVzcyBvZiB3aGV0aGVyIGEgZ3Vlc3QgdHJlZS1zaXR0ZXIgcGFyc2VyCitpcyBhY3RpdmUs
IHNpbmNlIHRoZSBsYW5ndWFnZSBpcyBzdG9yZWQgb24gdGhlIGNvZGUgYmxvY2sgb3ZlcmxheSBi
eSB0aGUKK2hvc3QgcGFyc2VyJ3MgZm9udGlmaWNhdGlvbi4iCisgIChnZXQtY2hhci1wcm9wZXJ0
eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCAoJm9wdGlvbmFsIHBvcykKKyAg
IlJldHVybiB0aGUgbWFqb3IgbW9kZSBmb3IgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYgUE9T
IGlzIG5pbCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUgYSBm
ZW5jZWQKK2NvZGUgYmxvY2sgb3IgaWYgdGhlIGxhbmd1YWdlIGhhcyBubyByZWNvZ25pemVkIG1v
ZGUuIgorICAod2hlbiAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1wIHBvcykKKyAgICAob3Ig
KGdldC1jaGFyLXByb3BlcnR5IChvciBwb3MgKHBvaW50KSkgJ21hcmtkb3duLXRzLWNvZGUtYmxv
Y2stbW9kZSkKKyAgICAgICAgbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1ob3N0LXJhbmdlcy1ub3RpZmllciAocmFuZ2VzIF9wYXJz
ZXIpCisgICJQcnVuZSBzdGFsZSBjb2RlIGJsb2NrIG92ZXJsYXlzIGFmdGVyIHRoZSBob3N0IHBh
cnNlciByZXBhcnNlcy4KK1JBTkdFUyBpcyBhIGxpc3Qgb2YgKFNUQVJUIC4gRU5EKSBjb25zIGNl
bGxzIG1hcmtpbmcgcmVnaW9ucyB3aGVyZQordGhlIG1hcmtkb3duIHBhcnNlIHRyZWUgY2hhbmdl
ZC4gIEZvciBlYWNoIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJworb3ZlcmxheSBpbnRlcnNlY3Rp
bmcgYSBjaGFuZ2VkIHJhbmdlLCB2ZXJpZnkgdGhhdCBhIGNvbnRhaW5pbmcKK2BmZW5jZWRfY29k
ZV9ibG9jaycgbm9kZSBzdGlsbCBleGlzdHMgaW4gdGhlIGhvc3QgdHJlZS4gIElmIG5vdCwKK3Ro
ZSBmZW5jZXMgd2VyZSBkZWxldGVkLCBzbyBkZWxldGUgdGhlIG92ZXJsYXkgdG8gYXZvaWQgcnVu
bmluZworY29tbWFuZHMgaW4gYSBzdGFsZSBibG9jayBjb250ZXh0LiIKKyAgKGRvbGlzdCAocmFu
Z2UgcmFuZ2VzKQorICAgIChsZXQgKChiZWcgKGNhciByYW5nZSkpCisgICAgICAgICAgKGVuZCAo
Y2RyIHJhbmdlKSkpCisgICAgICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gYmVnIGVuZCkpCisg
ICAgICAgICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykKKyAg
ICAgICAgICAobGV0KiAoKG92LXN0YXJ0IChvdmVybGF5LXN0YXJ0IG92KSkKKyAgICAgICAgICAg
ICAgICAgKG5vZGUgKGFuZCBvdi1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtYXQgb3Ytc3RhcnQgJ21hcmtkb3duKSkpKQorICAgICAgICAgICAgKHVubGVz
cyAoYW5kIG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1wYXJlbnQtdW50
aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAiXFxgZmVuY2VkX2NvZGVfYmxvY2tc
XCciIHQpKQorICAgICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpKSkpKQorCis7Ozsg
SW1hZ2UgaGFuZGxpbmc6CisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGlu
ZS1wIChub2RlKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgaW1hZ2UgTk9ERSBpcyB0aGUgb25seSBj
b250ZW50IG9uIGl0cyBsaW5lLgorV2hpdGVzcGFjZSwgYmxvY2sgcXVvdGUgbWFya2VycyAoYD4n
KSwgYW5kIGxpc3QgbWFya2VycworXChgLScsIGAqJywgYCsnLCBgMS4nKSBiZWZvcmUgdGhlIGlt
YWdlIGFyZSBpZ25vcmVkLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFy
dCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAg
ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgIChs
ZXQgKChib2wgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKKyAgICAgICAgICAgIChlb2wgKGxp
bmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAgIDs7IEJlZm9yZSB0aGUgaW1hZ2U6IG9ubHkgYmxv
Y2sgcXVvdGUgbWFya2Vycywgd2hpdGVzcGFjZSwKKyAgICAgICAgOzsgYW5kIGFuIG9wdGlvbmFs
IGxpc3QgbWFya2VyIGFyZSBhbGxvd2VkLgorICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2gtcAor
ICAgICAgICAgICAgICAocnggYm9zCisgICAgICAgICAgICAgICAgICAoemVyby1vci1tb3JlIChh
bnkgIj4gXHQiKSkKKyAgICAgICAgICAgICAgICAgIChvcHRpb25hbCAob3IgKHNlcSAoYW55ICIt
KisiKSAiICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEgKG9uZS1vci1t
b3JlIGRpZ2l0KSAoYW55ICIuKSIgKSAiICIpKSkKKyAgICAgICAgICAgICAgICAgIGVvcykKKyAg
ICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBib2wgbm9kZS1zdGFy
dCkpCisgICAgICAgICAgICAgOzsgQWZ0ZXIgdGhlIGltYWdlOiBvbmx5IHRyYWlsaW5nIHdoaXRl
c3BhY2UgYWxsb3dlZC4KKyAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAgICAg
ICAgKHJ4IGJvcyAoemVyby1vci1tb3JlIChhbnkgIiBcdCIpKSBlb3MpCisgICAgICAgICAgICAg
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbm9kZS1lbmQgZW9sKSkpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktaW1hZ2UgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBf
ZW5kICZyZXN0IF8pCisgICJTaG93IGFuIGlubGluZSBpbWFnZSBhdCBOT0RFLgorV2hlbiBgbWFy
a2Rvd24tdHMtaW5saW5lLWltYWdlcycgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGUgaW1hZ2UuCitJ
ZiB0aGUgaW1hZ2UgbGluayBpcyB0aGUgb25seSBjb250ZW50IG9uIGl0cyBsaW5lLCBkaXNwbGF5
IHRoZQoraW1hZ2UgYmVsb3cgdGhlIGxpbmsuICBJZiB0aGUgaW1hZ2UgaXMgaW5saW5lIHdpdGhp
biBhIHBhcmFncmFwaCwKK2Rpc3BsYXkgaXQgcmlnaHQgYWZ0ZXIgdGhlIGxpbmsgdGV4dC4KK1Jl
bW90ZSBpbWFnZXMgYXJlIGNvbnRyb2xsZWQgYnkKK2BtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90
ZS1pbmxpbmUtaW1hZ2VzJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0
YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQor
ICAgICAgICAgKGVvbCAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBub2RlLWVuZCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAg
KHNlYXJjaC1lbmQgKG1pbiAoMSsgZW9sKSAocG9pbnQtbWF4KSkpKQorICAgIDs7IEFsd2F5cyBj
bGVhciBzdGFsZSBvdmVybGF5cyBmb3IgdGhpcyBub2RlJ3MgcmFuZ2UuCisgICAgKGRvbGlzdCAo
b3YgKG92ZXJsYXlzLWluIG5vZGUtc3RhcnQgc2VhcmNoLWVuZCkpCisgICAgICAod2hlbiAoYW5k
IChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisgICAgICAgICAgICAgICAgICg+
PSAob3ZlcmxheS1zdGFydCBvdikgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgKDw9IChv
dmVybGF5LWVuZCBvdikgc2VhcmNoLWVuZCkpCisgICAgICAgIChkZWxldGUtb3ZlcmxheSBvdikp
KQorICAgICh3aGVuIChhbmQgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAgICAgICAg
ICAgOzsgRG9uJ3QgY3JlYXRlIGltYWdlIG92ZXJsYXlzIGZvciBub2RlcyBpbnNpZGUKKyAgICAg
ICAgICAgICAgIDs7IGZvbGRlZCAob3V0bGluZS1pbnZpc2libGUpIGhlYWRpbmdzLCBzaW5jZSB0
aGUKKyAgICAgICAgICAgICAgIDs7IGltYWdlcyB3b3VsZG4ndCBiZSB2aXNpYmxlIGFuZCBjb3Vs
ZCBpbnRlcmZlcmUKKyAgICAgICAgICAgICAgIDs7IHdpdGggdGhlIGZvbGRlZCBkaXNwbGF5Lgor
ICAgICAgICAgICAgICAgKG5vdCAobWFya2Rvd24tdHMtLW91dGxpbmUtaW52aXNpYmxlLXAgbm9k
ZS1zdGFydCkpKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5v
ZGUgIlxcYGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJsIChhbmQgZGVz
dCAodHJlZXNpdC1ub2RlLXRleHQgZGVzdCB0KSkpCisgICAgICAgICAgICAgKHJlbW90ZXAgKGFu
ZCB1cmwgKHN0cmluZy1tYXRjaC1wICJcXGBodHRwcz86Ly8iIHVybCkpKQorICAgICAgICAgICAg
IChkaXNwbGF5YWJsZQorICAgICAgICAgICAgICAod2hlbiB1cmwKKyAgICAgICAgICAgICAgICAo
aWYgcmVtb3RlcAorICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXEgbWFya2Rvd24tdHMtZGlz
cGxheS1yZW1vdGUtaW5saW5lLWltYWdlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2Rvd25sb2FkKQorICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCisgICAgICAg
ICAgICAgICAgICAgICAgICAocmVxdWlyZSAndXJsLWhhbmRsZXJzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgKHdpdGgtd29yay1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNl
dC1idWZmZXItbXVsdGlieXRlIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHVybC1p
bnNlcnQtZmlsZS1jb250ZW50cyB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZm
ZXItc3RyaW5nKSkpKQorICAgICAgICAgICAgICAgICAgKGxldCAoKGZpbGUgKGV4cGFuZC1maWxl
LW5hbWUgdXJsKSkpCisgICAgICAgICAgICAgICAgICAgIChhbmQgKG5vdCAoZmlsZS1yZW1vdGUt
cCBmaWxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1leGlzdHMtcCBmaWxlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgIChpbWFnZS1zdXBwb3J0ZWQtZmlsZS1wIGZpbGUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSkpKSkpCisgICAgICAgICAgICAgKG1heC13IChh
bmQgZGlzcGxheWFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIG1hcmtkb3du
LXRzLWltYWdlLW1heC13aWR0aCAnd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAod2luZG93LWJvZHktd2lkdGggbmlsIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBt
YXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGgpKSkKKyAgICAgICAgICAgICAoaW1nIChhbmQgbWF4
LXcKKyAgICAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZS1pbWFnZSBkaXNwbGF5YWJsZSBuaWwg
cmVtb3RlcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXgtd2lkdGgg
bWF4LXcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2NhbGUgMSkpKSkK
KyAgICAgICAgKHdoZW4gaW1nCisgICAgICAgICAgKGxldCogKChhbG9uZSAobWFya2Rvd24tdHMt
LWltYWdlLWFsb25lLW9uLWxpbmUtcCBub2RlKSkKKyAgICAgICAgICAgICAgICAgKHN0ciAoaWYg
YWxvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXG4iIChwcm9wZXJ0aXpl
ICIgIiAnZGlzcGxheSBpbWcpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUg
IiAiICdkaXNwbGF5IGltZykpKQorICAgICAgICAgICAgICAgICAob3YgKG1ha2Utb3ZlcmxheSAo
MS0gbm9kZS1lbmQpIG5vZGUtZW5kIG5pbCB0IG5pbCkpKQorICAgICAgICAgICAgKG92ZXJsYXkt
cHV0IG92ICdtYXJrZG93bi10cy1pbWFnZSB0KQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92
ICdhZnRlci1zdHJpbmcgc3RyKQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdldmFwb3Jh
dGUgdCkpKSkpKSkKKworOzs7IFVSTC9VUkkgaGFuZGxpbmc6CisKKyhkZWZ2YXIgbWFya2Rvd24t
dHMtLWJhcmUtdXJsLXJlZ2V4cCBnb3RvLWFkZHJlc3MtdXJsLXJlZ2V4cAorICAiUmVnZXhwIG1h
dGNoaW5nIGJhcmUgVVJMcyBub3Qgd3JhcHBlZCBpbiBhbmdsZSBicmFja2V0cyBvciBsaW5rIHN5
bnRheC4iKQorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1yZWdleHAgZ290
by1hZGRyZXNzLW1haWwtcmVnZXhwCisgICJSZWdleHAgbWF0Y2hpbmcgYmFyZSBlbWFpbCBhZGRy
ZXNzZXMgbm90IHdyYXBwZWQgaW4gYW5nbGUgYnJhY2tldHMuIikKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1mb250aWZ5LWJhcmUtdXJpIChzdGFydCBlbmQpCisgICJGb250aWZ5IGJhcmUgVVJMIG9y
IGVtYWlsIFVSSSBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuCitTa2lwIG1hdGNoZXMgYWxyZWFkeSBp
bnNpZGUgdHJlZS1zaXR0ZXIgbGluayBvciBhdXRvbGluayBub2Rlcy4iCisgIChkb2xpc3QgKHJl
IChsaXN0IG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAKKyAgICAgICAgICAgICAgICAgICAg
bWFya2Rvd24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCkpCisgICAgKGdvdG8tY2hhciBzdGFy
dCkKKyAgICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIGVuZCB0KQorICAgICAgKGxldCog
KCh1cmktc3RhcnQgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgICAodXJpLWVuZCAo
bWF0Y2gtZW5kIDApKQorICAgICAgICAgICAgICh1cmkgKG1hdGNoLXN0cmluZyAwKSkKKyAgICAg
ICAgICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHVyaS1zdGFydCAnbWFya2Rvd24taW5saW5l
KSkKKyAgICAgICAgICAgICAocGFyZW50IChhbmQgbm9kZSAodHJlZXNpdC1ub2RlLXBhcmVudCBu
b2RlKSkpCisgICAgICAgICAgICAgKHBhcmVudC10eXBlIChhbmQgcGFyZW50ICh0cmVlc2l0LW5v
ZGUtdHlwZSBwYXJlbnQpKSkpCisgICAgICAgICh1bmxlc3MgKG9yIChtZW1iZXIgcGFyZW50LXR5
cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJpbmxpbmVfbGluayIgImZ1bGxfcmVm
ZXJlbmNlX2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGFwc2VkX3Jl
ZmVyZW5jZV9saW5rIiAic2hvcnRjdXRfbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJpbWFnZSIgInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iKSkKKyAgICAgICAgICAgICAgICAg
ICAgKG1lbWJlciAoYW5kIG5vZGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iICJjb2RlX3NwYW4i
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9mZW5jZV9jb250ZW50IiAiaW5m
b19zdHJpbmciKSkKKyAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IHVyaS1z
dGFydCAnYnV0dG9uKSkKKyAgICAgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24K
KyAgICAgICAgICAgdXJpLXN0YXJ0IHVyaS1lbmQKKyAgICAgICAgICAgKGlmIChlcSB1cmktc3Rh
cnQgMCkKKyAgICAgICAgICAgICAgIHVyaQorICAgICAgICAgICAgIChjb25jYXQgIm1haWx0bzoi
IHVyaSkpKSkpKSkpCisKKzs7OyB0cmVlc2l0IHNldHRpbmdzOgorCiAoZGVmdmFyIG1hcmtkb3du
LXRzLS10cmVlc2l0LXNldHRpbmdzCiAgICh0cmVlc2l0LWZvbnQtbG9jay1ydWxlcworICAgOmxh
bmd1YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ2Vycm9yCisgICA6b3ZlcnJpZGUgdAorICAg
JygoRVJST1IpIEBmb250LWxvY2std2FybmluZy1mYWNlKQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtk
b3duLWlubGluZQogICAgOm92ZXJyaWRlIHQKICAgIDpmZWF0dXJlICdkZWxpbWl0ZXIKLSAgICco
KGlubGluZV9saW5rIFsgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykKLSAgICAgKGltYWdlIFsg
IiEiICJbIiAiXSIgIigiICIpIiBdIEBzaGFkb3cpKQorICAgJygoaW5saW5lX2xpbmsgWyAiWyIg
Il0iICIoIiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoZnVs
bF9yZWZlcmVuY2VfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1p
dGVyKQorICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93
bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChzaG9ydGN1dF9saW5rIFsgIlsiICJdIiBd
IEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChpbWFnZSBbICIhIiAiWyIg
Il0iICIoIiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkKIAogICAgOmxh
bmd1YWdlICdtYXJrZG93bgogICAgOmZlYXR1cmUgJ2hlYWRpbmcKLSAgICcoKGF0eF9oZWFkaW5n
IChhdHhfaDFfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMQotICAgICAoYXR4X2hlYWRp
bmcgKGF0eF9oMl9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy0yCi0gICAgIChhdHhfaGVh
ZGluZyAoYXR4X2gzX21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTMKLSAgICAgKGF0eF9o
ZWFkaW5nIChhdHhfaDRfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNAotICAgICAoYXR4
X2hlYWRpbmcgKGF0eF9oNV9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy01Ci0gICAgIChh
dHhfaGVhZGluZyAoYXR4X2g2X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTYKLSAgICAg
KHNldGV4dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAnKCgoYXR4
X2hlYWRpbmcpICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKQorICAgICAoKHNldGV4
dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGVhZGluZykpCiAKICAgIDpsYW5ndWFn
ZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdoZWFkaW5nCkBAIC0xOTQsMTYgKzE2MTEsNDAgQEAg
bWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgKGF0eF9oM19tYXJrZXIpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNF9tYXJrZXIpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNV9tYXJrZXIpIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMt
LWZvbnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJfdW5kZXJsaW5lKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVh
dHVyZSAncGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJlYWspIEBtYXJrZG93bi10cy1kZWxp
bWl0ZXIpCi0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykgQGZvbnQtbG9jay1zdHJpbmctZmFj
ZSkKKyAgICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGlj
LWJyZWFrKQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93bi10cy1odG1sLWJsb2NrKQorICAg
ICAoKGluZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2Nr
KQogICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFyKSBAbWFya2Rvd24tdHMtbGlzdC1t
YXJrZXIpCiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMpIEBtYXJrZG93bi10cy1s
aXN0LW1hcmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfbWludXMpIEBtYXJrZG93
bi10cy1saXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFy
a2Rvd24tdHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3Qp
IEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJf
cGFyZW50aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAo
dGFza19saXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2Jv
eCkKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl9jaGVja2VkKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktY2hlY2tib3gpCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisg
ICAgICAobGlua19sYWJlbCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQor
ICAgICAobGlua19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfZGVzdGluYXRpb24p
IEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbikKKyAgICAgKGxpbmtf
cmVmZXJlbmNlX2RlZmluaXRpb24KKyAgICAgIChsaW5rX3RpdGxlKSBAbWFya2Rvd24tdHMtbGlu
ay1kZXN0aW5hdGlvbikpCisKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdw
YXJhZ3JhcGgKKyAgIDpvdmVycmlkZSAncHJlcGVuZAorICAgJygocGlwZV90YWJsZV9oZWFkZXIg
InwiIEBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisgICAgIChwaXBlX3RhYmxlX2hlYWRlciAo
cGlwZV90YWJsZV9jZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtaGVhZGVyKQorICAgICAocGlwZV90
YWJsZV9yb3cgInwiIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCkKKyAgICAgKHBp
cGVfdGFibGVfcm93IChwaXBlX3RhYmxlX2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1jZWxsKQor
ICAgICAocGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93ICJ8IiBAbWFya2Rvd24tdHMtdGFibGUtZGVs
aW1pdGVyLWNlbGwpCisgICAgICgocGlwZV90YWJsZSkgQG1hcmtkb3duLXRzLXRhYmxlKQorICAg
ICAocGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3RhYmxlX2RlbGltaXRlcl9jZWxsKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0
ZXItY2VsbCkpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdwYXJhZ3Jh
cGgKQEAgLTIxMiw4OSArMTY1Myw5OTkgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MK
ICAgICAgKGJsb2NrX3F1b3RlX21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRl
cgogICAgICAoZmVuY2VkX2NvZGVfYmxvY2tfZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyCiAgICAgIChmZW5jZWRfY29kZV9ibG9jawotICAgICAgKGluZm9fc3RyaW5n
IChsYW5ndWFnZSkgQG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgICAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbWFya2Rv
d24tdHMtbGFuZ3VhZ2Uta2V5d29yZCkKKyAgICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIpCiAgICAgIChibG9ja19xdW90ZQogICAgICAgKGJsb2NrX3F1b3RlX21hcmtlcikgQG1h
cmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgICAgKHBhcmFncmFwaCAoaW5saW5lIChi
bG9ja19jb250aW51YXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpKSkpCiAK
KyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3JhcGgKKyAgIDpvdmVy
cmlkZSAnYXBwZW5kCisgICAnKChmZW5jZWRfY29kZV9ibG9jaworICAgICAgKGluZm9fc3RyaW5n
IChsYW5ndWFnZSkpCisgICAgICAoY29kZV9mZW5jZV9jb250ZW50KSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktbm9uLXRzLWNvZGUtYmxvY2spKQorCisgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCisgICA6
ZmVhdHVyZSAncGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoZmVuY2VkX2Nv
ZGVfYmxvY2sgKGNvZGVfZmVuY2VfY29udGVudCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWNvZGUt
YmxvY2spKQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOm92ZXJyaWRlICdh
cHBlbmQKICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgtaW5saW5lCi0gICAnKCgoaW1hZ2VfZGVzY3Jp
cHRpb24pIEBsaW5rKQotICAgICAoKGxpbmtfZGVzdGluYXRpb24pIEBmb250LWxvY2stc3RyaW5n
LWZhY2UpCi0gICAgICgoY29kZV9zcGFuKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQorICAgJygo
KGxpbmtfZGVzdGluYXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9u
KQorICAgICAoKGNvZGVfc3BhbikgQG1hcmtkb3duLXRzLWNvZGUtc3BhbikKICAgICAgKChjb2Rl
X3NwYW5fZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQotICAgICAo
KGVtcGhhc2lzKSBAaXRhbGljKQotICAgICAoKHN0cm9uZ19lbXBoYXNpcykgQGJvbGQpCi0gICAg
IChpbmxpbmVfbGluayAobGlua190ZXh0KSBAbGluaykKLSAgICAgKGlubGluZV9saW5rIChsaW5r
X2Rlc3RpbmF0aW9uKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoc2hvcnRjdXRfbGlu
ayAobGlua190ZXh0KSBAbGluaykpCisgICAgICgoZW1waGFzaXMpIEBtYXJrZG93bi10cy1lbXBo
YXNpcykKKyAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBtYXJrZG93bi10cy1ib2xkKQorICAgICAo
KHN0cmlrZXRocm91Z2gpIEBtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoKQorICAgICAoaW5saW5l
X2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAg
KGZ1bGxfcmVmZXJlbmNlX2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxp
bmstbm9kZSkKKyAgICAgKGZ1bGxfcmVmZXJlbmNlX2xpbmsgKGxpbmtfbGFiZWwpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsg
KGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKHNob3J0
Y3V0X2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAg
ICAgKGltYWdlIChpbWFnZV9kZXNjcmlwdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmst
bm9kZSkKKyAgICAgKCh1cmlfYXV0b2xpbmspIEBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGlu
aykKKyAgICAgKChlbWFpbF9hdXRvbGluaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5r
KQorICAgICAoaW5saW5lX2xpbmsgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1saW5rLWRlc3Rp
bmF0aW9uKQorICAgICAoKGJhY2tzbGFzaF9lc2NhcGUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1i
YWNrc2xhc2gtZXNjYXBlKQorICAgICAoKGVudGl0eV9yZWZlcmVuY2UpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1lbnRpdHkpCisgICAgICgobnVtZXJpY19jaGFyYWN0ZXJfcmVmZXJlbmNlKSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktZW50aXR5KQorICAgICAoKGh0bWxfdGFnKSBAbWFya2Rvd24tdHMt
aHRtbC10YWcpCisgICAgICgoaGFyZF9saW5lX2JyZWFrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnkt
aGFyZC1saW5lLWJyZWFrKQorICAgICAoKGxhdGV4X2Jsb2NrKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktbGF0ZXgtYmxvY2spKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOmZl
YXR1cmUgJ3BhcmFncmFwaC1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICAnKChlbXBo
YXNpc19kZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCi0gICApKQog
Ci07OzsgSW1lbnUKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCisgICA6ZmVhdHVyZSAn
aW1hZ2UtcHJldmlldworICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGltYWdlKSBAbWFya2Rv
d24tdHMtLWZvbnRpZnktaW1hZ2UpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5vZGUt
cCAobm9kZSkKKzs7OyBJbWVudToKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5n
LW5vZGUtcCAobm9kZSkKICAgIkNoZWNrIGlmIE5PREUgaXMgYSB2YWxpZCBlbnRyeSB0byBpbWVu
dS4iCi0gIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9k
ZSkpCi0gICAgICAgICAiYXR4X2hlYWRpbmciKSkKKyAgKGFuZCAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlIG5vZGUpICJpbmxpbmUiKQorICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUg
KHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAgICAgICJhdHhfaGVhZGluZyIp
KSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24gKG5vZGUpCisoZGVm
dW4gbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmctbmFtZS1mdW5jdGlvbiAobm9kZSkKICAgIlJl
dHVybiBhbiBpbWVudSBlbnRyeSBpZiBOT0RFIGlzIGEgdmFsaWQgaGVhZGVyLiIKICAgKGxldCAo
KG5hbWUgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKLSAgICAoaWYgKG1hcmtkb3duLXRzLWlt
ZW51LW5vZGUtcCBub2RlKQotCSh0aHJlYWQtZmlyc3QgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9k
ZSkgKHRyZWVzaXQtbm9kZS10ZXh0KSkKKyAgICAoaWYgKG1hcmtkb3duLXRzLS1pbWVudS1oZWFk
aW5nLW5vZGUtcCBub2RlKQorICAgICAgICAoY2FyIChzcGxpdC1zdHJpbmcgKHRyZWVzaXQtbm9k
ZS10ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCBu
b2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIiB0ICIgIikpCiAgICAgICBuYW1l
KSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSAobm9kZSkKLSAgIk1h
dGNoIGEgaGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIKKyhkZWZ1biBt
YXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAgKG5vZGUpCisgICJDaGVjayBpZiBO
T0RFIGlzIGFuIGluZm9fc3RyaW5nIHdpdGggZGVzY3JpcHRpdmUgdGV4dCBhZnRlciB0aGUgbGFu
Z3VhZ2UuIgorICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImluZm9fc3Ry
aW5nIikKKyAgICAgICAod2hlbi1sZXQqICgobGFuZy1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0
cmVlIG5vZGUgImxhbmd1YWdlIikpCisgICAgICAgICAgICAgICAgICAgKCg8ICh0cmVlc2l0LW5v
ZGUtZW5kIGxhbmctbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkpKSkKKyAgICAgICAgIChub3QgKHN0cmluZy1ibGFuay1wCisgICAgICAgICAgICAg
ICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgKHRyZWVz
aXQtbm9kZS1lbmQgbGFuZy1ub2RlKQorICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5k
IG5vZGUpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1l
LWZ1bmN0aW9uIChub2RlKQorICAiUmV0dXJuIGFuIGltZW51IGVudHJ5IG5hbWUgZm9yIGEgY29k
ZSBibG9jayBpbmZvX3N0cmluZyBOT0RFLgorVXNlcyB0aGUgZGVzY3JpcHRpdmUgdGV4dCBhZnRl
ciB0aGUgbGFuZ3VhZ2UgbmFtZS4iCisgICh3aGVuLWxldCogKChsYW5nLW5vZGUgKHRyZWVzaXQt
c2VhcmNoLXN1YnRyZWUgbm9kZSAibGFuZ3VhZ2UiKSkKKyAgICAgICAgICAgICAgKGRlc2MgKHN0
cmluZy10cmltCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w
ZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFuZy1ub2Rl
KQorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpKQorICAg
IChmb3JtYXQgIiVzOiAlcyIgKHRyZWVzaXQtbm9kZS10ZXh0IGxhbmctbm9kZSkgZGVzYykpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLW91dGxpbmUtcHJlZGljYXRlIChub2RlKQorICAiTWF0Y2gg
Tk9ERSBpZiBpdCBpcyBhIGhpZXJhcmNoaWNhbCBzZWN0aW9uIHRoYXQgaGFzIGEgaGVhZGluZy4i
CiAgIChhbmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAic2VjdGlvbiIpCiAgICAg
ICAgKHdoZW4tbGV0KiAoKGNoaWxkICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwKSkpCiAgICAg
ICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAiYXR4X2hlYWRpbmciKSkpKQog
Ci07OzsgQ29kZSBibG9ja3MKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKIAotKGRlZnZhci1s
b2NhbCBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMgbmlsCi0gICJBIGxpc3Qgb2Yg
bGFuZ3VhZ2VzIHRoYXQgaGF2ZSBiZWVuIHNldHVwIGluIHRoaXMgYnVmZmVyLgorKGRlZmNvbnN0
IG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11bSBBVFgg
aGVhZGluZyBsZXZlbCBpbiBNYXJrZG93biAoaDEtaDYpLgorRGVmaW5lZCBieSB0aGUgQ29tbW9u
TWFyayBzcGVjIGFuZCB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iKQogCi1XaGVuIGEgY29kZSBi
bG9jayBvZiBhIGxhbmd1YWdlIGFwcGVhcnMsIGBtYXJrZG93bi10cy1tb2RlJyBsb2FkcwotbGFu
Z3VhZ2Ugc2V0dXBzIGxpa2UgZm9udC1sb2NrIGFuZCBpbmRlbnRhdGlvbiBmb3IgdGhhdCBsYW5n
dWFnZSwgYW5kCi1hZGRzIHRoYXQgbGFuZ3VhZ2UgdG8gdGhpcyBsaXN0LiIpCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgYXR4X2hlYWRpbmcg
bm9kZSBhdCBvciBiZWZvcmUgcG9pbnQsIG9yIG5pbC4iCisgICh3aGVuLWxldCogKChub2RlICh0
cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAoaWYgKGVxdWFsICh0cmVl
c2l0LW5vZGUtdHlwZSBub2RlKSAiYXR4X2hlYWRpbmciKQorICAgICAgICBub2RlCisgICAgICAo
dHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAodHJl
ZXNpdC1ub2RlLXR5cGUgbikgImF0eF9oZWFkaW5nIikpKSkpKQogCi0oZGVmdW4gbWFya2Rvd24t
dHMtLWhhcnZlc3QtdHJlZXNpdC1jb25maWdzIChtb2RlKQotICAiSGFydmVzdCB0cmVlLXNpdHRl
ciBjb25maWdzIGZyb20gTU9ERS4KLVJldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBr
ZXlzIGFuZCB2YWx1ZToKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGluZy1sZXZlbCAoaGVhZGlu
ZykKKyAgIlJldHVybiBIRUFESU5HIGxldmVsIChyYW5nZSAxIHRvIGBtYXJrZG93bi10cy0tcGFy
c2VyLWhlYWRpbmctbWF4LWxldmVsJykuIgorICAobGV0ICgobWFya2VyICh0cmVlc2l0LW5vZGUt
Y2hpbGQgaGVhZGluZyAwKSkpCisgICAgKGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQgbWFya2Vy
IHQpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCAoKQorICAiUmV0
dXJuIHRoZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4iCisgICh3aGVuLWxldCogKChu
b2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1YWwgKHRyZWVzaXQtbm9kZS10
eXBlIG4pICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1wcm9tb3RlICgpCisg
ICJQcm9tb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5n
cywgZGVjcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4KK0ZvciBsaXN0IGl0ZW1zLCBk
ZWNyZWFzZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24g
YW5kIG1hcmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3MgaW4gdGhlIHJlZ2lvbi4iCisg
IChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5zaWVudC1tYXJrLW1vZGUgbWFy
ay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZS1yZWdpb24gLTEp
KQorICAgKChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgIChtYXJrZG93bi10
cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQgKG1hcmtkb3duLXRzLS1wcm9t
b3RlLW9yLWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWRlbW90ZSAoKQorICAi
RGVtb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5ncywg
aW5jcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0ZvciBsaXN0IGl0ZW1zLCBpbmNy
ZWFzZSBuZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24gYW5k
IG1hcmsgYWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0aGUgcmVnaW9uLiIKKyAgKGlu
dGVyYWN0aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50LW1hcmstbW9kZSBtYXJrLWFj
dGl2ZSkKKyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbiAxKSkKKyAg
ICgobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAobWFya2Rvd24tdHMtLWxp
c3QtcHJvbW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rvd24tdHMtLXByb21vdGUtb3It
ZGVtb3RlIDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUgKGRl
bHRhKQorICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5IERFTFRBIGxldmVscy4KK05l
Z2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRpdmUgZGVtb3RlcyAobW9yZSAj
KS4KK0lmIHRoZSBoZWFkaW5nIGhhcyBhbiBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJyBz
ZXF1ZW5jZSwgdGhhdAorc2VxdWVuY2UgaXMgcmVzaXplZCB0byBtYXRjaCB0aGUgbmV3IGxldmVs
LiIKKyAgKHdoZW4tbGV0KiAoKGhlYWRpbmcgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50
KSkKKyAgICAgICAgICAgICAgKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkp
CisgICAgICAgICAgICAgIChsZXZlbCAobGVuZ3RoICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIg
dCkpKQorICAgICAgICAgICAgICAobmV3LWxldmVsICgrIGxldmVsIGRlbHRhKSkpCisgICAgKHdo
ZW4gKGFuZCAoPj0gbmV3LWxldmVsIDEpCisgICAgICAgICAgICAgICAoPD0gbmV3LWxldmVsIG1h
cmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQorICAgICAgKGxldCogKChvcGVu
ZXItYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgICAob3BlbmVy
LWVuZCAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAgICAgICAgICAgIChsaW5lLWVuZCAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG9wZW5l
ci1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisg
ICAgICAgICAgICAgOzsgRGV0ZWN0IGEgQ29tbW9uTWFyayBjbG9zaW5nLWAjJyBzZXF1ZW5jZTog
b3B0aW9uYWwKKyAgICAgICAgICAgICA7OyB0cmFpbGluZyB3aGl0ZXNwYWNlLCBhIHJ1biBvZiBg
IycsIGFuZCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICA7OyBzcGFjZS90YWIgYmV0d2VlbiBp
dCBhbmQgdGhlIGhlYWRpbmcgdGV4dC4KKyAgICAgICAgICAgICAoY2xvc2VyIChzYXZlLWV4Y3Vy
c2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGxpbmUtZW5kKQorICAgICAg
ICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBvcGVuZXItZW5kKQor
ICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZW5kIChwb2ludCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBvcGVuZXItZW5kKQorICAgICAg
ICAgICAgICAgICAgICAgICAgIChsZXQgKChiZWcgKHBvaW50KSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAod2hlbiAoYW5kICg8IGJlZyBlbmQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICg+IGJlZyBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUgYmVnKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKD9ccyA/XHQpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNvbnMgYmVnIGVuZCkpKSkpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJz
aW9uCisgICAgICAgICAgOzsgUmVzaXplIHRoZSBjbG9zZXIgZmlyc3Qgc28gaXQgZG9lc24ndCBz
aGlmdCB0aGUgb3BlbmVyLgorICAgICAgICAgICh3aGVuIGNsb3NlcgorICAgICAgICAgICAgKGRl
bGV0ZS1yZWdpb24gKGNhciBjbG9zZXIpIChjZHIgY2xvc2VyKSkKKyAgICAgICAgICAgIChnb3Rv
LWNoYXIgKGNhciBjbG9zZXIpKQorICAgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgbmV3
LWxldmVsID8jKSkpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gb3BlbmVyLWJlZyBvcGVuZXIt
ZW5kKQorICAgICAgICAgIChnb3RvLWNoYXIgb3BlbmVyLWJlZykKKyAgICAgICAgICAoaW5zZXJ0
IChtYWtlLXN0cmluZyBuZXctbGV2ZWwgPyMpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
cHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNoYW5nZSBhbGwgaGVhZGluZ3Mg
aW4gdGhlIGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgorTmVnYXRpdmUgREVMVEEgcHJv
bW90ZXMgKGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3JlICMpLiIKKyAgKGxldCAoKGJl
ZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAo
c2F2ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgKHdoaWxlICg8IChw
b2ludCkgZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQp
CisgICAgICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSBkZWx0YSkpCisgICAg
ICAgIChmb3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXN1YnRy
ZWUtdXAgKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAgcGFz
dCB0aGUgcHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtkb3duLXRzLS1saXN0LW1vdmUg
dCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIHQpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICgpCisgICJNb3ZlIHRoZSBjdXJyZW50
IHNlY3Rpb24gb3IgbGlzdCBpdGVtIGRvd24gcGFzdCB0aGUgbmV4dCBzaWJsaW5nLiIKKyAgKGlu
dGVyYWN0aXZlKQorICAoaWYgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisgICAg
ICAobWFya2Rvd24tdHMtLWxpc3QtbW92ZSBuaWwpCisgICAgKG1hcmtkb3duLXRzLS1tb3ZlLXN1
YnRyZWUtdXAtb3ItZG93biBuaWwpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZWN0aW9uLWZv
bGRlZC1wIChzZWN0aW9uKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU0VDVElPTidzIGhlYWRpbmcg
aXMgZm9sZGVkLgorQ2hlY2tzIHdoZXRoZXIgdGhlIGVuZCBvZiB0aGUgaGVhZGluZyBsaW5lIGhh
cyBhbiBvdXRsaW5lCitpbnZpc2libGUgb3ZlcmxheS4iCisgIChsZXQgKChoZWFkaW5nICh0cmVl
c2l0LW5vZGUtY2hpbGQgc2VjdGlvbiAwKSkpCisgICAgKHdoZW4gKGFuZCBoZWFkaW5nCisgICAg
ICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGhlYWRpbmcpICJhdHhfaGVhZGlu
ZyIpKQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1zdGFydCBoZWFkaW5nKSkKKyAgICAgICAgKG91dGxpbmUtaW52aXNpYmxlLXAgKHBvcy1l
b2wpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93biAo
dXApCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gc3VidHJlZS4KK0lmIFVQIGlzIG5vbi1u
aWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93bi4K
K1ByZXNlcnZlcyB0aGUgZm9sZGluZyBzdGF0ZSBvZiBib3RoIHNlY3Rpb25zLiIKKyAgKHdoZW4t
bGV0KiAoKHNlY3Rpb24gKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KSkKKyAgICAgICAg
ICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXByZXYtc2libGluZyBzZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHNlY3Rpb24pKSkpCisgICAgKHdoZW4gKGVxdWFsICh0
cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAic2VjdGlvbiIpCisgICAgICAobGV0KiAoKGZpcnN0
IChpZiB1cCBzaWJsaW5nIHNlY3Rpb24pKQorICAgICAgICAgICAgIChzZWNvbmQgKGlmIHVwIHNl
Y3Rpb24gc2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0LWZvbGRlZCAobWFya2Rvd24tdHMt
LXNlY3Rpb24tZm9sZGVkLXAgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtZm9sZGVkICht
YXJrZG93bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBzZWNvbmQpKQorICAgICAgICAgICAgIChmaXJz
dC1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IGZpcnN0KSkKKyAgICAgICAgICAgICAoc2Vjb25k
LXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgc2Vjb25kKSkKKyAgICAgICAgICAgICAoc2Vjb25k
LWVuZCAodHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAgICAgIDs7IEV4dHJhY3Qg
c2VwYXJhdG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAg
ICAgICAgKGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1zdGFydCBzZWNvbmQtc3Rh
cnQpKQorICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBmaXJzdC1y
YXcpKQorICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBmaXJzdC1yYXcgKGxlbmd0
aCBmaXJzdC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcgKGJ1ZmZlci1zdWJzdHJp
bmcgc2Vjb25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtdGV4dCAo
c3RyaW5nLXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAgICAgKHRyYWlsaW5nIChz
dWJzdHJpbmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkpCisgICAgICAgICAgICAg
KGxpbmUtb2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0
IHNlY3Rpb24pKSkpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQt
ZW5kKQorICAgICAgICAoZ290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNl
Y29uZC10ZXh0IHNlcGFyYXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICA7OyBSZXN0
b3JlIGZvbGRpbmcgc3RhdGUKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdv
dG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAgICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5n
LXApCisgICAgICAgICAgICAoaWYgc2Vjb25kLWZvbGRlZAorICAgICAgICAgICAgICAgIChvdXRs
aW5lLWhpZGUtc3VidHJlZSkKKyAgICAgICAgICAgICAgKG91dGxpbmUtc2hvdy1zdWJ0cmVlKSkp
CisgICAgICAgICAgKG91dGxpbmUtbmV4dC1oZWFkaW5nKQorICAgICAgICAgICh3aGVuIChvdXRs
aW5lLW9uLWhlYWRpbmctcCkKKyAgICAgICAgICAgIChpZiBmaXJzdC1mb2xkZWQKKyAgICAgICAg
ICAgICAgICAob3V0bGluZS1oaWRlLXN1YnRyZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNo
b3ctc3VidHJlZSkpKSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAg
ICAgICAgICAgZmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0
IChsZW5ndGggc2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNl
cGFyYXRvcikpKSkKKyAgICAgICAgKHdpdGgtc3VwcHJlc3NlZC13YXJuaW5ncyAoKGludGVyYWN0
aXZlLW9ubHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAobmV4dC1saW5lIGxpbmUtb2Zmc2V0KSkp
KSkpCisKKzs7OyBMaXN0IG1hbmlwdWxhdGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2ds
ZS1jaGVja2JveCAoKQorICAiVG9nZ2xlIHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1
cnJlbnQgbGluZS4KK1N3aXRjaGVzIGJldHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVy
YWN0aXZlKQorICAod2hlbi1sZXQqICgocG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRl
bnRhdGlvbikgKHBvaW50KSkpCisgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQg
cG9zICdtYXJrZG93bikpCisgICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRp
bAorICAgICAgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkp
KQorICAgICh3aGVuLWxldCogKChtYXJrZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVy
ICh0cmVlc2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygidGFza19saXN0X21hcmtlcl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAo
bGV0ICgoYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQg
KHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0
YXNrX2xpc3RfbWFya2VyX2NoZWNrZWQiKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQp
CisgICAgICAgICAgKGluc2VydCAoaWYgY2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5u
ZXJtb3N0IGxpc3RfaXRlbSBub2RlIGNvbnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhl
IHBvc2l0aW9uIGFmdGVyIGBiYWNrLXRvLWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCith
IGxpbmUncyBsZWFkaW5nIHdoaXRlc3BhY2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBs
aW5lLAorbm90IHRvIGEgcHJlY2VkaW5nIGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVz
cGFjZS4KK0luc2lkZSBibG9jayBxdW90ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9z
aXRpb24gcGFzdAordGhlIGA+JyBtYXJrZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1l
eGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAo
bm9kZSAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9s
IChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5k
LXBvc2l0aW9uKSkpCisgICAgKG9yIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAor
ICAgICAgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQor
ICAgICAgICAgIDs7IFZlcmlmeSB0aGUgY3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdz
IHJhbmdlLgorICAgICAgICAgIDs7IGB0cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2Rl
IGluc2lkZSBhIGxpc3RfaXRlbQorICAgICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBh
IHByZWNlZGluZyBsaW5lLgorICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAg
ICAgICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAg
ICAgICAgICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBp
dGVtKSkKKyAgICAgICAgOzsgV2hlbiBiYWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2Nr
IHF1b3RlIG1hcmtlcnMsCisgICAgICAgIDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0
aGUgY29udGVudCBwb3NpdGlvbi4KKyAgICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdo
ZW4gKD4gY29udGVudC1wb3MgcG9zKQorICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0
cmVlc2l0LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChs
ZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY25vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3Rf
aXRlbSIpKSkpKQorICAgICAgICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisg
ICAgICAgICAgICAgICAgICBpdGVtKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0
LW1hcmtlci13aWR0aCAoaXRlbSkKKyAgIlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3Qg
bWFya2VyIGluY2x1ZGluZyB0cmFpbGluZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVz
aXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIp
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxp
c3QtaXRlbS1yZWdpb24gKGl0ZW0pCisgICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBm
b3IgSVRFTSwgY2xhbXBlZCB0byBmdWxsIGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBp
dCBkb2VzIG5vdCBleHRlbmQgaW50byB0aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGlj
aCB0cmVlLXNpdHRlciBtYXkgaW5jbHVkZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3Rh
cnQgaXRlbSkpCisgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAg
ICAgICAgKGVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRy
ZWVzaXQtbm9kZS1lbmQgaXRlbSkpCisgICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkg
KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBu
b24tbmlsIGlmIElURU0gaXMgYW4gb3JkZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChs
ZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRy
ZWVzaXQtbm9kZS10eXBlIG1hcmtlcikgImxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVz
dGluZyBvZiB0aGUgbGlzdCBpdGVtIGF0IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRl
bW90ZSAoaW5kZW50KTsgb3RoZXJ3aXNlIHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1i
ZXJlZCkgbGlzdCBpdGVtcyBhcmUgc2tpcHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25v
dCBzdXBwb3J0IG5lc3RpbmcgdGhlbSBieSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChp
dGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJl
Z2lvbiAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAg
IChiZWcgKGNhciByZWdpb24pKQorICAgICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisg
ICAgKHdoZW4gKG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAo
dXNlci1lcnJvciAiT3JkZXJlZCBsaXN0IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIg
bGltaXRhdGlvbikiKSkKKyAgICAoaWYgZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50
IGJ5IG1hcmtlciB3aWR0aCwgb25seSBpZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7
IHNpYmxpbmcgdG8gbmVzdCB1bmRlciAobGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0
cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5
IGJlZyBlbmQgKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7
OyBQcm9tb3RlOiBkZWRlbnQgdG8gZ3JhbmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBh
cmVudC1saXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFu
ZHBhcmVudCAoYW5kIHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0
KSkpCisgICAgICAgICAgICAgKGl0ZW0tY29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAg
ICAgICAgKHdoZW4gKGFuZCBncmFuZHBhcmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgZ3JhbmRwYXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAg
ICAgICAgICg+IGl0ZW0tY29sIDApKQorICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9k
ZS1zdGFydCBncmFuZHBhcmVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50
LWluZGVudGF0aW9uKSkpKQorICAgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0g
Z3AtY29sIGl0ZW0tY29sKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUt
Ym9sIChub2RlKQorICAiUmV0dXJuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmlu
ZyBOT0RFJ3Mgc3RhcnQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVl
c2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRl
bSBhdCBwb2ludC4KK0lmIFVQIGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2li
bGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVw
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBp
dGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5n
IGl0ZW0pKSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAi
bGlzdF9pdGVtIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisg
ICAgICAgICAgICAgKHNlY29uZCAoaWYgdXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAo
Zmlyc3Qtc3RhcnQgKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAg
ICAgICAoc2Vjb25kLXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQor
ICAgICAgICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAg
ICAgICAgICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcg
d2hpdGVzcGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZp
cnN0LXN0YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmlu
Zy10cmltLXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3Ry
aW5nIGZpcnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25k
LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAg
ICAgICAgKHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAg
ICAgICAgICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRl
eHQpKSkKKyAgICAgICAgICAgICAobGluZS1vZmZzZXQgKC0gKGxpbmUtbnVtYmVyLWF0LXBvcyAo
cG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1udW1iZXItYXQtcG9z
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0p
KSkpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQorICAg
ICAgICAoZ290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10ZXh0
IHNlcGFyYXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICAoZ290by1jaGFyIChpZiB1
cAorICAgICAgICAgICAgICAgICAgICAgICBmaXJzdC1zdGFydAorICAgICAgICAgICAgICAgICAg
ICAgKCsgZmlyc3Qtc3RhcnQgKGxlbmd0aCBzZWNvbmQtdGV4dCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIChsZW5ndGggc2VwYXJhdG9yKSkpKQorICAgICAgICAod2l0aC1zdXBwcmVzc2VkLXdh
cm5pbmdzICgoaW50ZXJhY3RpdmUtb25seSBuZXh0LWxpbmUpKQorICAgICAgICAgIChuZXh0LWxp
bmUgbGluZS1vZmZzZXQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3Qg
KCZvcHRpb25hbCBzdGFydCkKKyAgIlJlbnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9pbnQu
CitOdW1iZXJzIGFyZSBhc3NpZ25lZCBzZXF1ZW50aWFsbHkgc3RhcnRpbmcgZnJvbSB0aGUgZmly
c3QgaXRlbSdzCitudW1iZXIuICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50IFNUQVJULCBzdGFydCBu
dW1iZXJpbmcgZnJvbSB0aGF0Cit2YWx1ZSBpbnN0ZWFkLiAgRG9lcyBub3RoaW5nIGZvciB1bm9y
ZGVyZWQgbGlzdHMuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgoaXRlbSAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChsaXN0LW5v
ZGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgaXRlbSkpKQorICAgICh3aGVuIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbGlzdC1ub2RlKSAibGlzdCIpCisgICAgICAobGV0KiAoKGNoaWxkcmVuICh0
cmVlc2l0LW5vZGUtY2hpbGRyZW4gbGlzdC1ub2RlKSkKKyAgICAgICAgICAgICAoaXRlbXMgKHNl
cS1maWx0ZXIgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0ZW0iKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hpbGRyZW4pKQorICAgICAgICAgICAgIChmaXJzdC1tYXJrZXIg
KHRyZWVzaXQtbm9kZS1jaGlsZCAoY2FyIGl0ZW1zKSAwKSkKKyAgICAgICAgICAgICAobWFya2Vy
LXR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIGZpcnN0LW1hcmtlcikpKQorICAgICAgICAod2hlbiAo
bWVtYmVyIG1hcmtlci10eXBlICcoImxpc3RfbWFya2VyX2RvdCIgImxpc3RfbWFya2VyX3BhcmVu
dGhlc2lzIikpCisgICAgICAgICAgKGxldCogKChiYXNlIChpZiBzdGFydAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHByZWZpeC1udW1lcmljLXZhbHVlIHN0YXJ0KQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChzdHJpbmctdG8tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICh0cmVlc2l0LW5vZGUtdGV4dCBmaXJzdC1tYXJrZXIgdCkpKSkKKyAgICAgICAgICAgICAgICAg
KGNvdW50IChsZW5ndGggaXRlbXMpKQorICAgICAgICAgICAgICAgICA7OyBTdGFydCBmcm9tIHRo
ZSBsYXN0IG51bWJlciBhbmQgd29yayBiYWNrd2FyZHMgc28KKyAgICAgICAgICAgICAgICAgOzsg
dGhhdCBlYXJsaWVyIGJ1ZmZlciBwb3NpdGlvbnMgcmVtYWluIHZhbGlkLgorICAgICAgICAgICAg
ICAgICAobnVtICgrIGJhc2UgY291bnQgLTEpKSkKKyAgICAgICAgICAgIChkb2xpc3QgKGl0IChy
ZXZlcnNlIGl0ZW1zKSkKKyAgICAgICAgICAgICAgKGxldCogKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdCAwKSkKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItZW5kICh0cmVlc2l0
LW5vZGUtZW5kIG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAoYm9sIChzYXZlLWV4Y3Vy
c2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9k
ZS1zdGFydCBtYXJrZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lu
bmluZy1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgOzsgRnVsbCB0ZXh0IGZyb20g
Ym9sIHRvIGVuZCBvZiBtYXJrZXIgaW5jbHVkZXMKKyAgICAgICAgICAgICAgICAgICAgIDs7IGFu
eSBsZWFkaW5nIHdoaXRlc3BhY2UsIHRoZSBudW1iZXIsIGFuZCB0aGUKKyAgICAgICAgICAgICAg
ICAgICAgIDs7IHNlcGFyYXRvciAoZS5nLiwgIi4gIiBvciAiLlx0IikuCisgICAgICAgICAgICAg
ICAgICAgICAoZnVsbC10ZXh0IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvbCBtYXJrZXItZW5kKSkKKyAgICAgICAgICAg
ICAgICAgICAgIChpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmct
bWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBcXChbWzpibGFuazpdXSpcXClb
MC05XSIgZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5n
IDEgZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAgICAgICAgICAg
ICAgICAgICAgKHN1ZmZpeC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1t
YXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFtbOmJsYW5rOl1dKlswLTldK1xc
KC4qXFwpXFwnIiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1z
dHJpbmcgMSBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiLiAiKSkKKyAgICAg
ICAgICAgICAgICAgICAgIChuZXctdGV4dCAoY29uY2F0IGluZGVudC1zdHIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudW1iZXItdG8tc3RyaW5nIG51bSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeC1zdHIpKSkKKyAgICAgICAg
ICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgIChkZWxldGUtcmVnaW9u
IGJvbCBtYXJrZXItZW5kKQorICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBib2wpCisgICAg
ICAgICAgICAgICAgICAoaW5zZXJ0IG5ldy10ZXh0KSkpCisgICAgICAgICAgICAgIChjbC1kZWNm
IG51bSkpCisgICAgICAgICAgICAobWVzc2FnZSAiUmVudW1iZXJlZCAlZCBpdGVtcyIgY291bnQp
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgKGl0ZW0p
CisgICJSZXR1cm4gdGhlIG1hcmtlciBzdHJpbmcgZm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElU
RU0uCitGb3IgdW5vcmRlcmVkIGl0ZW1zLCByZXVzZSB0aGUgc2FtZSBtYXJrZXIgY2hhcmFjdGVy
LgorRm9yIG9yZGVyZWQgaXRlbXMsIGluY3JlbWVudCB0aGUgbnVtYmVyLiIKKyAgKGxldCogKCht
YXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKQorICAgICAgICAgKHR5cGUgKHRyZWVz
aXQtbm9kZS10eXBlIG1hcmtlcikpCisgICAgICAgICAoaW5kZW50IChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkK
KyAgICAgICAgICAgICAgICAgICAoY3VycmVudC1pbmRlbnRhdGlvbikpKQorICAgICAgICAgKHBy
ZWZpeCAobWFrZS1zdHJpbmcgaW5kZW50ID9ccykpKQorICAgIChwY2FzZSB0eXBlCisgICAgICAo
Imxpc3RfbWFya2VyX21pbnVzIiAoY29uY2F0IHByZWZpeCAiLSAiKSkKKyAgICAgICgibGlzdF9t
YXJrZXJfcGx1cyIgIChjb25jYXQgcHJlZml4ICIrICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9z
dGFyIiAgKGNvbmNhdCBwcmVmaXggIiogIikpCisgICAgICAoImxpc3RfbWFya2VyX2RvdCIKKyAg
ICAgICAobGV0ICgobnVtIChzdHJpbmctdG8tbnVtYmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJr
ZXIgdCkpKSkKKyAgICAgICAgIChjb25jYXQgcHJlZml4IChudW1iZXItdG8tc3RyaW5nICgxKyBu
dW0pKSAiLiAiKSkpCisgICAgICAoImxpc3RfbWFya2VyX3BhcmVudGhlc2lzIgorICAgICAgIChs
ZXQgKChudW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkp
KQorICAgICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1zdHJpbmcgKDErIG51bSkpICIp
ICIpKSkKKyAgICAgIChfIChjb25jYXQgcHJlZml4ICItICIpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLW5ldy1tYXJrZXItZm9yLWxpbmUgKGl0ZW0pCisgICJSZXR1cm4gdGhlIG1hcmtlciBz
dHJpbmcgZm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElURU0uCitXaGVuIHRoZSBjdXJyZW50IGxp
bmUgaGFzIGEgbGlzdCBtYXJrZXIgcGF0dGVybiBhdCBhIGRpZmZlcmVudAoraW5kZW50YXRpb24g
dGhhbiBJVEVNIChlLmcuLCBhIG5lc3RlZCBtYXJrZXIgdGhhdCB0aGUgZ3JhbW1hciBkaWQKK25v
dCByZWNvZ25pemUgYXMgYSBsaXN0X2l0ZW0pLCB1c2UgdGhlIGN1cnJlbnQgbGluZSdzIG1hcmtl
ci4KK090aGVyd2lzZSwgZmFsbCBiYWNrIHRvIGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1t
YXJrZXInLiIKKyAgKGxldCAoKG1hcmtlci1ub2RlICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAw
KSkpCisgICAgKGlmICg9IChsaW5lLW51bWJlci1hdC1wb3MpCisgICAgICAgICAgICAobGluZS1u
dW1iZXItYXQtcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyLW5vZGUpKSkKKyAgICAgICAg
OzsgSXRlbSdzIG1hcmtlciBpcyBvbiB0aGUgY3VycmVudCBsaW5lOiB1c2UgaXQgbm9ybWFsbHku
CisgICAgICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgaXRlbSkKKyAgICAg
IDs7IEl0ZW0ncyBtYXJrZXIgaXMgb24gYSBkaWZmZXJlbnQgbGluZS4gIFRoZSBwYXJzZXIgbWF5
IGhhdmUKKyAgICAgIDs7IGZhaWxlZCB0byByZWNvZ25pemUgYSBuZXN0ZWQgbWFya2VyIChlLmcu
LCBhIGxvbmUgYCAgLSAnCisgICAgICA7OyBwYXJzZWQgYXMgYSBzZXRleHQgaGVhZGluZykuICBS
ZWFkIHRoZSBjdXJyZW50IGxpbmUuCisgICAgICAobGV0ICgobGluZSAoYnVmZmVyLXN1YnN0cmlu
Zy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0
aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKSkpCisgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoCisg
ICAgICAgICAgICAgIlxcYFxcKFtbOmJsYW5rOl1dKlxcKVxcKFstKitdIFxcfFxcKFswLTldK1xc
KVxcKFsuKV0gXFwpXFwpIgorICAgICAgICAgICAgIGxpbmUpCisgICAgICAgICAgICAobGV0ICgo
aW5kZW50IChtYXRjaC1zdHJpbmcgMSBsaW5lKSkKKyAgICAgICAgICAgICAgICAgIChudW0gKG1h
dGNoLXN0cmluZyAzIGxpbmUpKQorICAgICAgICAgICAgICAgICAgKHN1ZmZpeCAobWF0Y2gtc3Ry
aW5nIDQgbGluZSkpCisgICAgICAgICAgICAgICAgICAodW5vcmRlcmVkIChtYXRjaC1zdHJpbmcg
MiBsaW5lKSkpCisgICAgICAgICAgICAgIChpZiBudW0KKyAgICAgICAgICAgICAgICAgIChjb25j
YXQgaW5kZW50IChudW1iZXItdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKDErIChzdHJpbmctdG8tbnVtYmVyIG51bSkpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdWZmaXgpCisgICAgICAgICAgICAgICAgKGNvbmNhdCBpbmRlbnQgdW5vcmRlcmVkKSkp
CisgICAgICAgICAgOzsgTm8gbWFya2VyIHBhdHRlcm4gb24gY3VycmVudCBsaW5lOiB1c2UgaXRl
bSdzIG1hcmtlci4KKyAgICAgICAgICAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2Vy
IGl0ZW0pKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRo
ICgmb3B0aW9uYWwgcG9zKQorICAiQ291bnQgdGhlIG51bWJlciBvZiBgPicgYmxvY2sgcXVvdGUg
bWFya2VycyBvbiB0aGUgbGluZSBhdCBQT1MuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAod2hl
biBwb3MgKGdvdG8tY2hhciBwb3MpKQorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAobGV0
ICgoY291bnQgMCkpCisgICAgICAod2hpbGUgKGFuZCAobm90IChlb2xwKSkKKyAgICAgICAgICAg
ICAgICAgIChtZW1xIChjaGFyLWFmdGVyKSAnKD8+ID9ccyA/XHQpKSkKKyAgICAgICAgKHdoZW4g
KGVxIChjaGFyLWFmdGVyKSA/PikKKyAgICAgICAgICAoc2V0cSBjb3VudCAoMSsgY291bnQpKSkK
KyAgICAgICAgKGZvcndhcmQtY2hhciAxKSkKKyAgICAgIGNvdW50KSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy1uZXdsaW5lICgpCisgICJJbnNlcnQgYSBuZXdsaW5lLCBjb250aW51aW5nIHRoZSBj
dXJyZW50IGNvbnRleHQuCitJbnNpZGUgYSBsaXN0IGl0ZW0sIHRoZSBuZXcgbGluZSBpcyBpbmRl
bnRlZCB0byB0aGUgaXRlbSdzIHRleHQKK2NvbHVtbiBzbyB0aGUgcGFyYWdyYXBoIGNvbnRpbnVl
cy4gIEEgc2Vjb25kIFJFVCBvbiBhIGJsYW5rCitjb250aW51YXRpb24gbGluZSByZW1vdmVzIHRo
ZSBpbmRlbnRhdGlvbiwgZHJvcHBpbmcgcG9pbnQgdG8KK2NvbHVtbiAwIHNvIHRoZSB0cmVlLXNp
dHRlciBncmFtbWFyIGVuZHMgdGhlIGxpc3QuCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5l
dyBsaW5lIGluY2x1ZGVzIHRoZSBxdW90ZSBwcmVmaXguCitPdGhlcndpc2UsIGluc2VydCBhIHBs
YWluIG5ld2xpbmUuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNpdC1u
b2RlLWF0CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0
aW9uKSAocG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICA7OyBU
cmVlLXNpdHRlciBtYXkgcmVwb3J0IGEgbm9kZSBpbnNpZGUgYSBibG9ja19xdW90ZSBldmVuCisg
ICAgICAgICA7OyB3aGVuIHBvaW50IGlzIG9uIGEgYmxhbmsgbGluZSBwYXN0IHRoZSBxdW90ZSAo
dGhlIG5vZGUKKyAgICAgICAgIDs7IHNwYW4gY2FuIGV4dGVuZCBiZXlvbmQgdGhlIGA+JyBsaW5l
cykuICBPbmx5IHRyZWF0IHRoZQorICAgICAgICAgOzsgbGluZSBhcyBpbnNpZGUgYSBibG9jayBx
dW90ZSBpZiBpdCBhY3R1YWxseSBzdGFydHMgd2l0aAorICAgICAgICAgOzsgYSBgPicgbWFya2Vy
LgorICAgICAgICAgKGluLWJxIChhbmQgKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGJs
b2NrX3F1b3RlXFwnIikKKyAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAg
ICAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKj4iKSkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpKSkKKyAgICAoY29uZAorICAgICAoaXRlbQorICAg
ICAgKGxldCogKChjb2wgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRlbSkp
CisgICAgICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rvd24tdHMtLWJsb2Nr
LXF1b3RlLXByZWZpeCkpKQorICAgICAgICAgICAgIDs7IGBjb2wnIGlzIHRoZSBhYnNvbHV0ZSBj
b2x1bW4gb2YgdGhlIGl0ZW0ncyB0ZXh0LAorICAgICAgICAgICAgIDs7IHdoaWNoIGluc2lkZSBh
IGJsb2NrIHF1b3RlIGluY2x1ZGVzIHRoZSAiPiAiIHByZWZpeAorICAgICAgICAgICAgIDs7IHdp
ZHRoLiAgU2luY2Ugd2UgaW5zZXJ0IGBicS1wcmVmaXgnIHNlcGFyYXRlbHksIHdlCisgICAgICAg
ICAgICAgOzsgbXVzdCBzdWJ0cmFjdCBpdHMgbGVuZ3RoIHRvIGF2b2lkIGRvdWJsaW5nIGl0Lgor
ICAgICAgICAgICAgIChpbmRlbnQgKC0gY29sIChsZW5ndGggKG9yIGJxLXByZWZpeCAiIikpKSkK
KyAgICAgICAgICAgICA7OyBUaGUgY3VycmVudCBsaW5lIGlzICJibGFuayIgaWYgaXQgY29udGFp
bnMgb25seQorICAgICAgICAgICAgIDs7IHdoaXRlc3BhY2UgKG9yIHF1b3RlIHByZWZpeCArIHdo
aXRlc3BhY2UpIGFuZCBubworICAgICAgICAgICAgIDs7IGFjdHVhbCB0ZXh0IGZyb20gYSBwcmV2
aW91cyBSRVQncyBjb250aW51YXRpb24gaW5kZW50LgorICAgICAgICAgICAgIChibGFuay1saW5l
LXAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5p
bmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl5bPiBcdF0qJCIpKSkKKyAgICAgICAgICAg
ICA7OyBQb2ludCBpcyBiZWZvcmUgdGhlIGl0ZW0ncyB0ZXh0IChhdCBvciBiZWZvcmUgdGhlCisg
ICAgICAgICAgICAgOzsgbWFya2VyKS4gIEEgcGxhaW4gbmV3bGluZSBpcyBhcHByb3ByaWF0ZSBo
ZXJlLCBhZGRpbmcKKyAgICAgICAgICAgICA7OyBjb250aW51YXRpb24gaW5kZW50IHdvdWxkIHNo
aWZ0IHRoZSBleGlzdGluZyBjb250ZW50CisgICAgICAgICAgICAgOzsgdG8gdGhlIHJpZ2h0Lgor
ICAgICAgICAgICAgIChiZWZvcmUtdGV4dC1wICg8PSAoY3VycmVudC1jb2x1bW4pIGNvbCkpKQor
ICAgICAgICAoY29uZAorICAgICAgICAgKGJsYW5rLWxpbmUtcAorICAgICAgICAgIDs7IFRoZSB1
c2VyIHByZXNzZWQgUkVUIG9uIGFuIGFscmVhZHktYmxhbmsgY29udGludWF0aW9uCisgICAgICAg
ICAgOzsgbGluZS4gIEluc3RlYWQgb2YgYWRkaW5nIHlldCBhbm90aGVyIGluZGVudGVkIGJsYW5r
CisgICAgICAgICAgOzsgbGluZSwgcmVtb3ZlIHRoZSBpbmRlbnRhdGlvbiBhbmQgaW5zZXJ0IGEg
cGxhaW4KKyAgICAgICAgICA7OyBuZXdsaW5lLiAgVGhpcyBkcm9wcyBwb2ludCB0byBjb2x1bW4g
MCwgd2hpY2ggaXMgdGhlCisgICAgICAgICAgOzsgb25seSB3YXkgdGhlIHRyZWUtc2l0dGVyIG1h
cmtkb3duIGdyYW1tYXIgZW5kcyBhIGxpc3Q6CisgICAgICAgICAgOzsgYmxhbmsgbGluZXMgYWxv
bmUgZG8gTk9UIGVuZCBhIGxpc3QsIG9ubHkKKyAgICAgICAgICA7OyBub24taW5kZW50ZWQgY29u
dGVudCBkb2VzLiAgU28gdGhpcyBnaXZlcyB0aGUgdXNlciBhCisgICAgICAgICAgOzsgbmF0dXJh
bCAiUkVUIFJFVCB0byBleGl0IHRoZSBsaXN0IiB3b3JrZmxvdy4KKyAgICAgICAgICAoZGVsZXRl
LXJlZ2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpCisg
ICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgKGJlZm9yZS10ZXh0LXAKKyAgICAgICAgICA7
OyBQb2ludCBpcyBvbiBvciBiZWZvcmUgdGhlIGxpc3QgbWFya2VyOyBqdXN0IGluc2VydCBhCisg
ICAgICAgICAgOzsgcGxhaW4gbmV3bGluZSBzbyB0aGUgaXRlbSBpcyBwdXNoZWQgZG93biB1bmNo
YW5nZWQuCisgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgKHQKKyAgICAgICAgICAoZGVs
ZXRlLWhvcml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKHdo
ZW4gYnEtcHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IChtYWtl
LXN0cmluZyBpbmRlbnQgP1xzKSkpKSkpCisgICAgIChpbi1icQorICAgICAgKGxldCAoKGJxLXBy
ZWZpeCAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAgICA7OyBB
IGxpbmUgd2l0aCBvbmx5IHF1b3RlIG1hcmtlcnMgYW5kIHdoaXRlc3BhY2UgKGUuZy4sCisgICAg
ICAgICAgICA7OyAiPiAiKSBpcyAiYmxhbmsiIGluc2lkZSB0aGUgcXVvdGUuICBSRVQgaGVyZSBl
eGl0cyB0aGUKKyAgICAgICAgICAgIDs7IHF1b3RlLCBzYW1lIGFzIFJFVCBvbiBhIGJsYW5rIGNv
bnRpbnVhdGlvbiBsaW5lIGV4aXRzIGEKKyAgICAgICAgICAgIDs7IGxpc3Q6IHJlbW92ZSB0aGUg
cHJlZml4IGFuZCBkcm9wIHRvIGNvbHVtbiAwLgorICAgICAgICAgICAgKGJsYW5rLWxpbmUtcCAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9m
LWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcCAiXls+IFx0
XSokIikpKSkKKyAgICAgICAgKGlmIGJsYW5rLWxpbmUtcAorICAgICAgICAgICAgKHByb2duCisg
ICAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxp
bmUtZW5kLXBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgIChk
ZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAgICAgICAgICAo
aW5zZXJ0IGJxLXByZWZpeCkpKSkKKyAgICAgOzsgRGVmYXVsdDogcGxhaW4gbmV3bGluZS4gIFRo
aXMgYWxzbyBoYW5kbGVzIGVtcHR5IGxpc3QgbWFya2VycworICAgICA7OyAoZS5nLiwgIi0gIiB3
aXRoIG5vIHRleHQpIHRoYXQgdGhlIGdyYW1tYXIgcGFyc2VzIGFzIEVSUk9SCisgICAgIDs7IG5v
ZGVzIHJhdGhlciB0aGFuIGxpc3RfaXRlbSBub2Rlcy4KKyAgICAgOzsKKyAgICAgOzsgV2hlbiB0
aGUgY3VycmVudCBsaW5lIGlzIGJsYW5rICh3aGl0ZXNwYWNlIG9ubHkpLCBpdCBpcyBhCisgICAg
IDs7IGNvbnRpbnVhdGlvbi1pbmRlbnQgbGluZSBsZWZ0IGJ5IGEgcHJldmlvdXMgUkVUIHRoYXQK
KyAgICAgOzsgdHJlZS1zaXR0ZXIgbm8gbG9uZ2VyIGNvbnNpZGVycyBwYXJ0IG9mIGEgbGlzdF9p
dGVtLiAgQ2xlYXIKKyAgICAgOzsgdGhlIHdoaXRlc3BhY2Ugc28gbm8gdHJhaWxpbmcgc3BhY2Vz
IHJlbWFpbiwgYW5kIGluc2VydCBhCisgICAgIDs7IHBsYWluIG5ld2xpbmUgYXQgY29sdW1uIDAg
dG8gZXhpdCB0aGUgbGlzdCBjb250ZXh0LgorICAgICAodAorICAgICAgKHdoZW4gKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAg
KGxvb2tpbmctYXQtcCAiXlsgXHRdKyQiKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUt
YmVnaW5uaW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgIChuZXdsaW5l
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gKCkKKyAgIkluc2Vy
dCBhIG5ldyBsaXN0IGl0ZW0sIHNwbGl0dGluZyB0ZXh0IGF0IHBvaW50LgorVGV4dCBhZnRlciBw
b2ludCBtb3ZlcyB0byB0aGUgbmV3IGl0ZW0uICBBdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZSwK
K2FuIGVtcHR5IGl0ZW0gaXMgaW5zZXJ0ZWQgYWJvdmUgYW5kIHRoZSBjdXJyZW50IGNvbnRlbnQg
aXMgcHVzaGVkIGRvd24uCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5ldyBsaW5lIGluY2x1
ZGVzIHRoZSBxdW90ZSBwcmVmaXguCitGb3Igb3JkZXJlZCBsaXN0cywgdGhlIG51bWJlciBpcyBp
bmNyZW1lbnRlZC4KK1doZW4gbm90IGluc2lkZSBhIGxpc3QsIGZhbGwgYmFjayB0byBgbWFya2Rv
d24tdHMtbmV3bGluZScuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNp
dC1ub2RlLWF0CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVu
dGF0aW9uKSAocG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICAo
aW4tYnEgKGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwgbm9kZSAiXFxgYmxvY2tfcXVvdGVcXCci
KQorICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAg
ICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tp
bmctYXQtcCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxICht
YXJrZG93bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkpCisgICAgICAgICAoaXRlbSAobWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAgICgoYW5kIGl0ZW0K
KyAgICAgICAgICAgKG9yIChub3QgaW4tYnEpCisgICAgICAgICAgICAgICAoPj0gKG1hcmtkb3du
LXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoKQorICAgICAgICAgICAgICAgICAgIChtYXJrZG93
bi10cy0tbGluZS1ibG9jay1xdW90ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpKSkpCisgICAgICAobGV0
KiAoKG5ldy1tYXJrZXIgKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lIGl0ZW0pKQor
ICAgICAgICAgICAgIChhdC1ib2wgKDw9IChjdXJyZW50LWNvbHVtbikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChi
YWNrLXRvLWluZGVudGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQt
Y29sdW1uKSkpKQorICAgICAgICAgICAgICh0YWlsICh3aGVuIChhbmQgKG5vdCBhdC1ib2wpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChsb29raW5nLWF0LXAgIlsgXHRdKiQi
KSkpCisgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlLWFuZC1leHRyYWN0LXJlZ2lvbgorICAg
ICAgICAgICAgICAgICAgICAgIChwb2ludCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSkKKyAgICAg
ICAgKGlmIGF0LWJvbAorICAgICAgICAgICAgOzsgQXQgQk9MOiBpbnNlcnQgZW1wdHkgaXRlbSBh
Ym92ZSwgcHVzaCBjdXJyZW50IGxpbmUgZG93bi4KKyAgICAgICAgICAgIChwcm9nbgorICAgICAg
ICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICh3aGVuIGJxLXByZWZp
eCAoaW5zZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgICAgIChpbnNlcnQgbmV3LW1hcmtlciAi
XG4iKQorICAgICAgICAgICAgICAoYmFjay10by1pbmRlbnRhdGlvbikpCisgICAgICAgICAgOzsg
TWlkLWxpbmUgb3IgRU9MOiBuZXcgaXRlbSBiZWxvdyB3aXRoIHRhaWwgdGV4dC4KKyAgICAgICAg
ICAoZGVsZXRlLWhvcml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAg
ICAgKHdoZW4gYnEtcHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0
IG5ldy1tYXJrZXIpCisgICAgICAgICAgKHdoZW4gdGFpbCAoc2F2ZS1leGN1cnNpb24gKGluc2Vy
dCAoc3RyaW5nLXRyaW0tbGVmdCB0YWlsKSkpKSkpKQorCisgICAgIDs7IE5vdCBpbiBhIGxpc3Q6
IGZhbGwgYmFjayB0byBuZXdsaW5lIGJlaGF2aW9yLgorICAgICAodCAobWFya2Rvd24tdHMtbmV3
bGluZSkpKSkpCisKKzs7OyBGaWxsaW5nOgorCis7OyBUT0RPOiBSZW1vdmUgdGhlIHBpcGVfdGFi
bGUgYmxvY2sgaWYgd2UgaW1wbGVtZW50IHBpcGVfdGFibGUgZmlsbC4KKyhkZWZjb25zdCBtYXJr
ZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICcoWyhmZW5jZWRfY29kZV9i
bG9jaykgKGluZGVudGVkX2NvZGVfYmxvY2spIChwaXBlX3RhYmxlKV0gQGJsb2NrKQorICAiVHJl
ZS1zaXR0ZXIgcXVlcnkgbWF0Y2hpbmcgYmxvY2tzIHdoZXJlIGZpbGxpbmcgaXMgaW5oaWJpdGVk
LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIChpdGVtKQor
ICAiUmV0dXJuIHRoZSBjb2x1bW4gd2hlcmUgdGhlIHRleHQgb2YgbGlzdCBJVEVNIHN0YXJ0cy4K
K1RoaXMgaXMgdGhlIGNvbHVtbiBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoIG5vZGUgaW5zaWRlIElU
RU0sIG9yCit0aGUgd2lkdGggb2YgdGhlIGxpc3QgbWFya2VyIGlmIG5vIHBhcmFncmFwaCBpcyBm
b3VuZC4iCisgIChsZXQgKChwYXJhZ3JhcGggKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAi
XFxgcGFyYWdyYXBoXFwnIikpKQorICAgIChpZiBwYXJhZ3JhcGgKKyAgICAgICAgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHBhcmFncmFw
aCkpCisgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgIChsZXQgKChtYXJrZXIgKHRy
ZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQg
bWFya2VyKQorICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIChpdGVtIGp1c3RpZnkpCisgICJGaWxs
IHRoZSBjb250ZW50cyBvZiBsaXN0IElURU0sIHByZXNlcnZpbmcgaXRzIGluZGVudGF0aW9uLgor
TmFycm93cyB0byBJVEVNJ3Mgb3duIHBhcmFncmFwaCBjb250ZW50IChleGNsdWRpbmcgbmVzdGVk
IGxpc3RzKQorYW5kIHNldHMgYGZpbGwtcHJlZml4JyB0byBhbGlnbiBjb250aW51YXRpb24gbGlu
ZXMgd2l0aCB0aGUgc3RhcnQKK29mIHRoZSBpdGVtJ3MgdGV4dC4gIEpVU1RJRlkgaXMgYXMgaW4g
YGZpbGwtcGFyYWdyYXBoJy4iCisgIChsZXQqICgoZmlsbC1wcmVmaXggKG1ha2Utc3RyaW5nICht
YXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID9ccykpCisgICAgICAgICA7OyBGaW5kIHRoZSBpdGVtJ3Mgb3du
IHBhcmFncmFwaCAoZmlyc3QgcGFyYWdyYXBoIGNoaWxkKS4KKyAgICAgICAgIDs7IElmIHRoZSBp
dGVtIGhhcyBuZXN0ZWQgbGlzdHMsIG5hcnJvdyB0byBqdXN0IHRoZQorICAgICAgICAgOzsgcGFy
YWdyYXBoIHNvIHdlIGRvbid0IG1lcmdlIG5lc3RlZCBpdGVtcy4KKyAgICAgICAgIChwYXJhICh0
cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIGl0ZW0gIlxcYHBhcmFncmFwaFxcJyIgbmlsIG5pbCAxKSkK
KyAgICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAgICAgIChlbmQg
KGlmIHBhcmEKKyAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHBhcmEpCisgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpKQorICAgICAgICAgOzsgVXNlIGRl
ZmF1bHQgcGFyYWdyYXBoIG1vdGlvbiBpbnNpZGUgdGhlIG5hcnJvd2VkIHJlZ2lvbgorICAgICAg
ICAgOzsgc28gdGhhdCB0aGUgaW5uZXIgYGZpbGwtcGFyYWdyYXBoJyBkb2VzIG5vdCByZS1lbnRl
ciBvdXIKKyAgICAgICAgIDs7IGN1c3RvbSBwYXJhZ3JhcGgtZmluZGluZyBsb2dpYy4KKyAgICAg
ICAgIChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgp
KQorICAgIChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5k
KQorICAgICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgIDs7IFJldHVybiBub24tbmls
IHRvIHNpZ25hbCB0aGF0IGZpbGxpbmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICA7OyBhcyBwZXIg
dGhlIGNvbnRyYWN0IG9mIGBmaWxsLXBhcmFncmFwaC1mdW5jdGlvbicuCisgICAgdCkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCAoKQorICAiUmV0dXJuIHRoZSBmaWxsIHBy
ZWZpeCBmb3IgdGhlIGN1cnJlbnQgbGluZSBpbiBNYXJrZG93bi4KK1doZW4gaW5zaWRlIGEgbGlz
dCBpdGVtLCByZXR1cm4gc3BhY2VzIG1hdGNoaW5nIHRoZSBjb2x1bW4gd2hlcmUKK3RoZSBpdGVt
J3MgdGV4dCBzdGFydHMuIgorICAoYW5kLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQKKyAg
ICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAo
cG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChp
dGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAg
KG1ha2Utc3RyaW5nIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pID9c
cykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGggKGFyZykK
KyAgIk1vdmUgZm9yd2FyZCBieSBBUkcgcGFyYWdyYXBocywgcmVzcGVjdGluZyBNYXJrZG93biBz
dHJ1Y3R1cmUuCitMaXN0IGl0ZW1zIGFyZSB0cmVhdGVkIGFzIGluZGl2aWR1YWwgcGFyYWdyYXBo
cy4gIEJsb2NrcyBtYXRjaGVkCitieSBgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9j
ay1xdWVyeScgYXJlIHNraXBwZWQ6IGJvdGgKK2ZvcndhcmQgYW5kIGJhY2t3YXJkIG1vdGlvbiBt
b3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGJsb2NrLCBzbworYGZpbGwtcmVnaW9uJyBzZWVzIGEgemVy
by1sZW5ndGggcmVnaW9uIGFuZCBsZWF2ZXMgdGhlIGJsb2NrCit1bmZpbGxlZC4iCisgIChsZXQg
KChkaXJlY3Rpb24gKGlmICg+IGFyZyAwKSAxIC0xKSkKKyAgICAgICAgKGNvdW50IChhYnMgYXJn
KSkKKyAgICAgICAgKG1vdmVkIDApKQorICAgIChkb3RpbWVzIChfIGNvdW50KQorICAgICAgOzsg
Rm9yIGJhY2t3YXJkIG1vdGlvbiwgc2tpcCBiYWNrIG92ZXIgd2hpdGVzcGFjZSB0byBmaW5kCisg
ICAgICA7OyB0aGUgaXRlbSB3ZSBhcmUgbGVhdmluZywgbm90IHRoZSBuZXh0IG9uZS4KKyAgICAg
IChsZXQqICgocG9zIChpZiAoPCBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgICAgICAgICAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3
YXJkICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAobWF4IChwb2ludC1taW4pICgx
LSAocG9pbnQpKSkpCisgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAg
IChibG9jayAoY2FyICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgcG9zICgxKyBwb3MpKSkpCisgICAgICAgICAgICAgKGlu
ZGVudGVkLXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGdvdG8tY2hhciBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRvLWlu
ZGVudGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAg
ICAgICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IGluZGVudGVkLXBvcyAnbWFya2Rvd24pKQor
ICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0
ZW1cXCciKSkpCisgICAgICAgIDs7IFdoZW4gbW92aW5nIGZvcndhcmQgZnJvbSB3aGl0ZXNwYWNl
IGJldHdlZW4gbGlzdCBpdGVtcywKKyAgICAgICAgOzsgc2tpcCB0byB0aGUgbmV4dCBub24tYmxh
bmsgcG9zaXRpb24gYW5kIGNoZWNrIGFnYWluLgorICAgICAgICAod2hlbiAoYW5kIChub3QgaXRl
bSkgKG5vdCBibG9jaykgKD4gZGlyZWN0aW9uIDApKQorICAgICAgICAgIChsZXQgKChuZXh0LXBv
cyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFy
cy1mb3J3YXJkICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkp
KQorICAgICAgICAgICAgKHNldHEgbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJr
ZG93bikpCisgICAgICAgICAgICAoc2V0cSBpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2Rl
ICJcXGBsaXN0X2l0ZW1cXCciKSkpKQorICAgICAgICAoY29uZAorICAgICAgICAgOzsgSW5zaWRl
IGFuIHVuZmlsbGFibGUgYmxvY2s6IHNraXAgb3ZlciBpdCBlbnRpcmVseS4KKyAgICAgICAgIChi
bG9jaworICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgKGNkciBibG9jaykp
KQorICAgICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKQorICAgICAgICAgOzsgSW5zaWRl
IGEgbGlzdCBpdGVtOiB0cmVhdCBhcyBwYXJhZ3JhcGggYm91bmRhcnkuCisgICAgICAgICAoaXRl
bQorICAgICAgICAgIChpZiAoPiBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgKGdvdG8tY2hh
ciAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVz
aXQtbm9kZS1zdGFydCBpdGVtKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkp
CisgICAgICAgICA7OyBEZWZhdWx0OiB1c2Ugc3RhbmRhcmQgcGFyYWdyYXBoIG1vdGlvbi4KKyAg
ICAgICAgICh0CisgICAgICAgICAgKGZvcndhcmQtcGFyYWdyYXBoIGRpcmVjdGlvbikKKyAgICAg
ICAgICAoc2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkpKSkKKyAgICA7OyBSZXR1cm4gdGhlIG51bWJl
ciBvZiBwYXJhZ3JhcGhzIGxlZnQgdG8gbW92ZSAoMCA9IGFsbCBkb25lKS4KKyAgICAoLSBjb3Vu
dCBtb3ZlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9u
YWwganVzdGlmeSkKKyAgIkZpbGwgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCByZXNwZWN0aW5nIE1h
cmtkb3duIGJsb2NrIHN0cnVjdHVyZS4KK1RoaXMgZnVuY3Rpb24gcHJldmVudHMgZmlsbGluZyBp
bnNpZGUgYmxvY2tzIG1hdGNoZWQgYnkKK2BtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJs
b2NrLXF1ZXJ5JywgYW5kIGZpbGxzIHdpdGhpbiBsaXN0CitpdGVtcyB3aXRob3V0IG1lcmdpbmcg
YWRqYWNlbnQgaXRlbXMuICBKVVNUSUZZIGlzIGFzIGluCitgZmlsbC1wYXJhZ3JhcGgnLiIKKyAg
KGNvbmQqCisgICA7OyBEb24ndCBmaWxsIGluc2lkZSB1bmZpbGxhYmxlIGJsb2Nrcy4gIFVzZSBh
IHF1ZXJ5IGFnYWluc3QgdGhlCisgICA7OyByb290IG5vZGUgYmVjYXVzZSBgdHJlZXNpdC1ub2Rl
LWF0JyBtYXkgbm90IHJldHVybiBhIG5vZGUKKyAgIDs7IGluc2lkZSB0aGUgYmxvY2sgd2hlbiBw
b2ludCBpcyBvbiBhbm9ueW1vdXMgKHVubmFtZWQpIHRleHQuCisgICAoKHRyZWVzaXQtcXVlcnkt
Y2FwdHVyZQorICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAg
bWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAocG9pbnQpICht
aW4gKDErIChwb2ludCkpIChwb2ludC1tYXgpKSkKKyAgICB0KQorICAgOzsgRmlsbCB3aXRoaW4g
dGhlIGVuY2xvc2luZyBsaXN0IGl0ZW0uICBVc2UKKyAgIDs7IGBtYXJrZG93bi10cy0tbGlzdC1p
dGVtLWF0LXBvaW50JyB3aGljaCBoYW5kbGVzIGJsb2NrIHF1b3RlCisgICA7OyBtYXJrZXJzLiAg
V2hlbiB0aGUgbGlzdCBpdGVtIGlzIGluc2lkZSBhIGJsb2NrIHF1b3RlLCBkZWxlZ2F0ZQorICAg
OzsgdG8gdGhlIGJsb2NrIHF1b3RlIGZpbGxlciB3aGljaCBoYW5kbGVzIGA+ICcgcHJlZml4ZXMg
Y29ycmVjdGx5LgorICAgKChiaW5kLWFuZCogKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
YXQtcG9pbnQpKSkKKyAgICAoaWYgKHRyZWVzaXQtcGFyZW50LXVudGlsIGl0ZW0gIlxcYGJsb2Nr
X3F1b3RlXFwnIikKKyAgICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3Rp
ZnkpCisgICAgICAobWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIGl0ZW0ganVzdGlmeSkpKQor
ICAgOzsgUG9pbnQgaXMgb24gYSBibGFuayBsaW5lIGJlZm9yZSBhIGxpc3QuICBJZiB0aGUgbmV4
dAorICAgOzsgbm9uLXdoaXRlc3BhY2UgcG9zaXRpb24gZmFsbHMgaW5zaWRlIGEgbGlzdCBpdGVt
LCBmaWxsIHRoYXQgaXRlbS4KKyAgICgoc2F2ZS1leGN1cnNpb24KKyAgICAgIChiZWdpbm5pbmct
b2YtbGluZSkKKyAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkKKyAgICAoYW5kLWxldCog
KChuZXh0LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
a2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChw
b2ludCkpKQorICAgICAgICAgICAgICAgKG5leHQtbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQt
cG9zICdtYXJrZG93bikpCisgICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50
aWwKKyAgICAgICAgICAgICAgICAgICAgICBuZXh0LW5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkK
KyAgICAgIChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7
OyBGaWxsIHdpdGhpbiBhIGJsb2NrIHF1b3RlLiAgTmFycm93IHRvIHRoZSBwYXJhZ3JhcGggbm9k
ZSBhdAorICAgOzsgcG9pbnQncyBuZXN0aW5nIGxldmVsIHNvIGxpbmVzIHdpdGggZGlmZmVyZW50
IGA+ICcgZGVwdGhzCisgICA7OyBhcmUgbm90IG1lcmdlZC4KKyAgICgodHJlZXNpdC1wYXJlbnQt
dW50aWwKKyAgICAgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNr
LXRvLWluZGVudGF0aW9uKSAocG9pbnQpKQorICAgICAgJ21hcmtkb3duKQorICAgICAiXFxgYmxv
Y2tfcXVvdGVcXCciKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSBqdXN0aWZ5
KSkKKyAgIDs7IEZpbGwgd2l0aGluIGFuIEhUTUwgY29tbWVudC4gIFRoZSBub2RlIHR5cGUgaXMg
Imh0bWxfYmxvY2siCisgICA7OyBpbiBncmFtbWFyIHYwLjQueCBhbmQgImNvbW1lbnQiIGluIHNv
bWUgb3RoZXIgdmVyc2lvbnMuCisgICAoKGJpbmQtYW5kKiAoYmxvY2sgKGxldCAoKG4gKHRyZWVz
aXQtbm9kZS1hdCAocG9pbnQpICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgICAg
KG9yICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
ICJcXGBcXCg/Omh0bWxfYmxvY2tcXHxjb21tZW50XFwpXFwnIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5kIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoImh0bWxfYmxvY2siICJjb21tZW50Iikp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKSkpKSkKKyAgICAobWFya2Rvd24t
dHMtLWZpbGwtaHRtbC1jb21tZW50IGJsb2NrIGp1c3RpZnkpKQorICAgOzsgRGVmYXVsdDogbGV0
IGZpbGwtcGFyYWdyYXBoIGhhbmRsZSBpdC4KKyAgICh0IG5pbCkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWZpbGwtaHRtbC1jb21tZW50IChub2RlIGp1c3RpZnkpCisgICJGaWxsIEhUTUwgY29t
bWVudCBOT0RFLCBhbGlnbmluZyBjb250aW51YXRpb24gbGluZXMuCitSZXR1cm4gdCBpZiBOT0RF
IGlzIGEgY29tbWVudCBhbmQgd2FzIGZpbGxlZCwgbmlsIG90aGVyd2lzZS4KK0pVU1RJRlkgaXMg
YXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAobG9v
a2luZy1hdC1wICI8IS0tIikpCisgICAgKGxldCAoKGZpbGwtcHJlZml4IChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKCsgKGN1cnJl
bnQtY29sdW1uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVu
Z3RoICI8IS0tICIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XHMp
KSkKKyAgICAgICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgKGZp
bGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAg
ICAgICAoZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgIChzYXZlLXJlc3RyaWN0
aW9uCisgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAg
ICAgIChmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkKKyAgICAgIHQpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXggKCkKKyAgIlJldHVybiB0aGUgYmxvY2sgcXVvdGUg
cHJlZml4IHN0cmluZyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuCitSZWFkIHRoZSBhY3R1YWwgYD4n
IG1hcmtlcnMgKHdpdGggd2hhdGV2ZXIgc3BhY2luZyB0aGUgdXNlciB3cm90ZSkKK2Zyb20gdGhl
IGJlZ2lubmluZyBvZiB0aGUgbGluZSBzbyB0aGF0IGZpbGwgcHJlc2VydmVzIHRoZSBleGlzdGlu
Zworc3R5bGUgKGUuZy4sIGA+Pj4gJyBzdGF5cyBgPj4+ICcsIGA+ID4gPiAnIHN0YXlzIGA+ID4g
PiAnKS4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAo
aWYgKGxvb2tpbmctYXQgIlxcKFs+IFx0XSo+XFwpWyBcdF0qIikKKyAgICAgICAgKGNvbmNhdCAo
bWF0Y2gtc3RyaW5nIDApKQorICAgICAgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZp
bGwtYmxvY2stcXVvdGUgKGp1c3RpZnkpCisgICJGaWxsIHRoZSBwYXJhZ3JhcGggYXQgcG9pbnQg
aW5zaWRlIGEgYmxvY2sgcXVvdGUuCitGaW5kIHRoZSBwYXJhZ3JhcGggbm9kZSBhdCBwb2ludCB3
aXRoaW4gdGhlIGJsb2NrIHF1b3RlIGFuZCBmaWxsCitvbmx5IHRoYXQgcGFyYWdyYXBoLCBwcmVz
ZXJ2aW5nIHRoZSBgPiAnIHByZWZpeC4gIFdoZW4gdGhlCitwYXJhZ3JhcGggaXMgaW5zaWRlIGEg
bGlzdCBpdGVtLCBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0aAordGhlIGl0ZW0ncyB0ZXh0
IGNvbHVtbi4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgIDs7IFNraXAg
cGFzdCBgPiAnIG1hcmtlcnMgYW5kIGFueSBsaXN0IG1hcmtlciB0byBsYW5kIGluc2lkZSB0aGUK
KyAgOzsgY29udGVudCwgd2hlcmUgdGhlIHBhcmFncmFwaCBub2RlIGxpdmVzLgorICAobGV0KiAo
KGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKGJl
Z2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9y
d2FyZCAiPiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB3ZSBsYW5kIG9uIGEg
bGlzdCBtYXJrZXIsIHNraXAgcGFzdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICh3aGVu
IChsb29raW5nLWF0ICJbLSorXSBcXHxbMC05XStbLildXHMiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgKG1pbiAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKSkKKyAgICAgICAgIChub2RlICh0cmVl
c2l0LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgIChwYXJhICh0cmVl
c2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAg
ICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAicGFyYWdyYXBo
IikpKSkpCisgICAgKHdoZW4gcGFyYQorICAgICAgOzsgVGhlIGdyYW1tYXIgbWF5IGluY2x1ZGUg
dHJhaWxpbmcgYmxvY2tfY29udGludWF0aW9uIG5vZGVzCisgICAgICA7OyAoYmxhbmsgYD4gPicg
bGluZXMpIGFzIGNoaWxkcmVuIG9mIHRoZSBwYXJhZ3JhcGguICBVc2UgdGhlCisgICAgICA7OyBl
bmQgb2YgdGhlIGxhc3QgaW5saW5lIGNoaWxkIHNvIGZpbGwgZG9lcyBub3QgbWVyZ2UgYWNyb3Nz
CisgICAgICA7OyB3aGF0IHNob3VsZCBiZSBhIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgIChs
ZXQqICgobGFzdC1pbmxpbmUKKyAgICAgICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKGNoaWxk
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNo
aWxkKSAiaW5saW5lIikpCisgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSAodHJlZXNp
dC1ub2RlLWNoaWxkcmVuIHBhcmEpKSkpCisgICAgICAgICAgICAgKHBhcmEtZW5kIChpZiBsYXN0
LWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFz
dC1pbmxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFy
YSkpKQorICAgICAgICAgICAgIChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1w
cmVmaXgpKQorICAgICAgICAgICAgIDs7IFdoZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCBleHRlbmQg
dGhlIHByZWZpeCB3aXRoIHNwYWNlcworICAgICAgICAgICAgIDs7IHNvIGNvbnRpbnVhdGlvbiBs
aW5lcyBhbGlnbiB3aXRoIHRoZSBpdGVtJ3MgdGV4dC4KKyAgICAgICAgICAgICAobGlzdC1pdGVt
ICh0cmVlc2l0LXBhcmVudC11bnRpbCBwYXJhICJcXGBsaXN0X2l0ZW1cXCciKSkKKyAgICAgICAg
ICAgICAocHJlZml4IChpZiBsaXN0LWl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0
KiAoKHRleHQtY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1pdGVtKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGV4dHJhIChtYXggMCAoLSB0ZXh0LWNvbCAobGVuZ3Ro
IGJxLXByZWZpeCkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGJxLXBy
ZWZpeCAobWFrZS1zdHJpbmcgZXh0cmEgP1xzKSkpCisgICAgICAgICAgICAgICAgICAgICAgIGJx
LXByZWZpeCkpCisgICAgICAgICAgICAgKGFkYXB0aXZlLWZpbGwtZnVuY3Rpb24gbmlsKQorICAg
ICAgICAgICAgIChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJh
Z3JhcGgpCisgICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIG5pbCkpCisgICAg
ICAgIChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAgICAgOzsgTmFycm93IHRvIHRoZSBmdWxsIGxp
bmVzIG9mIHRoZSBwYXJhZ3JhcGggc28gdGhhdCB0aGUKKyAgICAgICAgICA7OyBgPiAnIG1hcmtl
cnMgYXJlIGluY2x1ZGVkIGluIHRoZSBmaWxsIHJlZ2lvbi4KKyAgICAgICAgICAobmFycm93LXRv
LXJlZ2lvbgorICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAoZ290by1j
aGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgcGFyYSkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1v
Zi1saW5lKQorICAgICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgIHBhcmEtZW5kKQorICAg
ICAgICAgIChsZXQgKChmaWxsLXByZWZpeCBwcmVmaXgpKQorICAgICAgICAgICAgKGZpbGwtcGFy
YWdyYXBoIGp1c3RpZnkpKSkpKSkKKyAgdCkKKworOzs7IENvZGUgYmxvY2tzOgorCisoZGVmdmFy
LWxvY2FsIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcyBuaWwKKyAgIkFsaXN0IG1h
cHBpbmcgbGFuZ3VhZ2Ugbm9kZSBuYW1lcyB0byB0cyBsYW5ndWFnZS4KK0lmIGEgbGFuZ3VhZ2Ug
aXMgbm90IGEgdHMgbGFuZ3VhZ2Ugb3IgaXMgbm90IG1hcHBlZCB0byBvbmUsIGl0IHdpbGwgYmUK
K2luIGBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMnLiIpCisKKyhkZWZ2YXIt
bG9jYWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzIG5pbAorICAiQWxpc3Qg
bWFwcGluZyBsYW5ndWFnZXMgdG8gbm9uLXRyZWUtc2l0dGVyIG1vZGVzIGZvciBjb2RlIGJsb2Nr
cy4KK1BvcHVsYXRlZCBieSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHRv
IGlkZW50aWZ5IGEKK2NvZGUtYmxvY2sgbGFuZ3VhZ2UgbW9kZSB3aGljaCBpcyBub3QgYSB0cmVl
LXNpdHRlciBtb2RlIG9yIGZvciB3aGljaAordGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgaXMgdW5h
dmFpbGFibGUuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1j
b25maWd1cmF0aW9uIChtb2RlKQorICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWd1cmF0aW9u
IGZyb20gTU9ERS4KK1JldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2
YWx1ZXM6CiAKICAgICA6Zm9udC1sb2NrIChmcm9tIGB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cycpCiAgICAgOnNpbXBsZS1pbmRlbnQgKGZyb20gYHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxl
cycpCiAgICAgOnJhbmdlIChmcm9tIGB0cmVlc2l0LXJhbmdlLXNldHRpbmdzJykiCi0gICh3aXRo
LXRlbXAtYnVmZmVyCi0gICAgKGZ1bmNhbGwgbW9kZSkKLSAgICAobGlzdCA6Zm9udC1sb2NrIHRy
ZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICh3aXRoLXdvcmstYnVmZmVyCisgICAgKG1hcmtk
b3duLXRzLS1pbmhpYml0LW1lc3NhZ2VzLWFuZC13YXJuaW5ncworICAgICAgJ21hcmtkb3duLXRz
LWluaGliaXQtY29kZS1ibG9jay1tb2RlLXdhcm5pbmdzCisgICAgICAoZGVsYXktbW9kZS1ob29r
cyAoZnVuY2FsbCBtb2RlKSkpCisgICAgKGxpc3QgOmxhbmd1YWdlICh0cmVlc2l0LWxhbmd1YWdl
LWF0IChwb2ludC1taW4pKQorICAgICAgICAgIDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MKICAgICAgICAgICA6c2ltcGxlLWluZGVudCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQt
cnVsZXMKICAgICAgICAgICA6cmFuZ2UgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncykpKQogCi0oZGVm
dW4gbWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUgKGxhbmd1YWdlIG1vZGUpCi0gICJB
ZGQgY29uZmlndXJhdGlvbnMgZm9yIExBTkdVQUdFIGZyb20gTU9ERSB0byBjdXJyZW50IGJ1ZmZl
ci4KLQotQ29uZmlndXJhdGlvbiBpbmNsdWRlcyBmb250LWxvY2sgYW5kIGluZGVudC4gIEZvciBm
b250LWxvY2sgcnVsZXMsIHVzZQotdGhlIHNhbWUgZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIK
LSAgKGxldCAoKGNvbmZpZ3MgKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyBt
b2RlKSkpCi0gICAgKGlnbm9yZSBsYW5ndWFnZSkgOyBXZSBtaWdodCBtYWtlIHVzZSBvZiB0aGlz
IGxhdGVyLgotICAgIChzZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAg
KGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgOzsg
R2V0IGFsbCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0Ci0gICAg
ICAgICAgICAgICAgICA7OyBkb24ndCBwZXJ0YWluIHRvIExBTkdVQUdFLiAgVGhpcyB3YXkgd2Ug
Z2V0IGpzZG9jCi0gICAgICAgICAgICAgICAgICA7OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFt
cGxlLgotICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpmb250LWxvY2spKSkK
LSAgICAoc2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKLSAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcwotICAgICAgICAgICAgICAgICAgOzsgU2ltaWxh
cmx5LCBnZXQgYWxsIGluZGVudCBydWxlcy4KLSAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQg
Y29uZmlncyA6c2ltcGxlLWluZGVudCkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb25maWd1cmUt
Y3VycmVudC1idWZmZXIgKGNvbmZpZ3VyYXRpb24pCisgICJBZGQgQ09ORklHVVJBVElPTiB0byB0
aGUgY3VycmVudCBidWZmZXIuCitDT05GSUdVUkFUSU9OIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQg
aW5kZW50IHJ1bGVzLiAgRm9yIGZvbnQtbG9jayBydWxlcywKK3VzZSB0aGUgc2FtZSBmZWF0dXJl
cyBlbmFibGVkIGluIE1PREUuIgorICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwor
ICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAg
ICAgOzsgR2V0IGFsbCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0
CisgICAgICAgICAgICAgICAgOzsgZG9uJ3QgcGVydGFpbiB0byBNT0RFLiAgVGhpcyB3YXksIHdl
IGdldCBqc2RvYworICAgICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1w
bGUuCisgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2sp
KSkKKyAgKHNldHEgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgIChhcHBlbmQg
dHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5
LCBnZXQgYWxsIGluZGVudCBydWxlcy4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZp
Z3VyYXRpb24gOnNpbXBsZS1pbmRlbnQpKSkKICAgICAoc2V0cSB0cmVlc2l0LXJhbmdlLXNldHRp
bmdzCiAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAg
ICAgICAgICA7OyBGaWx0ZXIgb3V0IGZ1bmN0aW9uIHF1ZXJpZXMsIGJlY2F1c2UgdGhleSBhcmUK
QEAgLTMwMiw0NSArMjY1MywxOTQ2IEBAIG1hcmtkb3duLXRzLS1hZGQtY29uZmlnLWZvci1tb2Rl
CiAgICAgICAgICAgICAgICAgICA7OyBDYXNlIGluIHBvaW50OiBjLXRzLW1vZGUncyByYW5nZSBz
ZXR0aW5nLgogICAgICAgICAgICAgICAgICAgKHNlcS1maWx0ZXIgKGxhbWJkYSAoc2V0dGluZykK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZnVuY3Rpb25wIChjYXIgc2V0
dGluZykpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmln
cyA6cmFuZ2UpKSkpCi0gICAgKHNldHEtbG9jYWwgaW5kZW50LWxpbmUtZnVuY3Rpb24gIyd0cmVl
c2l0LWluZGVudCkKLSAgICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0aW9uICMndHJl
ZXNpdC1pbmRlbnQtcmVnaW9uKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxp
c3QtZ2V0IGNvbmZpZ3VyYXRpb24gOnJhbmdlKSkpKQorICAoc2V0cS1sb2NhbCBpbmRlbnQtbGlu
ZS1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50KQorICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9u
LWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQtcmVnaW9uKSkKIAotKGRlZnVuIG1hcmtkb3duLXRz
LS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2UgKG5vZGUpCisoZGVmdW4gbWFya2Rvd24tdHMt
LWxhbmd1YWdlLWF0LW5vZGUgKG5vZGUpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBm
b3IgY29kZV9mZW5jZV9jb250ZW50IE5PREUuIgorICAod2hlbi1sZXQqICgocGFyZW50ICh0cmVl
c2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgICAgICAobGFuZy1ub2RlICh3aGVuIHBh
cmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUg
cGFyZW50ICJcXGBsYW5ndWFnZVxcJyIpKSkpCisgICAgKGludGVybiAodHJlZXNpdC1ub2RlLXRl
eHQgbGFuZy1ub2RlIHQpKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLW5vbi10cy1m
b250aWZ5LWNhY2hlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkKKyAgIkNhY2hlIGZv
ciBub24tdHJlZS1zaXR0ZXIgY29kZSBibG9jayBmb250aWZpY2F0aW9uLgorS2V5cyBhcmUgKExB
TkcgLiBDT05URU5ULUhBU0gpIGNvbnMgY2VsbHMsIHZhbHVlcyBhcmUgbGlzdHMgb2YKK1woT0ZG
U0VULVNUQVJUIE9GRlNFVC1FTkQgRkFDRSkgdHJpcGxlcy4iKQorCisoZGVmdmFyLWxvY2FsIG1h
cmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10aWNrIG5pbAorICAiRm9yIGJsdW50IGBi
dWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgY2FjaGUgaW52YWxpZGF0aW9uLiIpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBz
dGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgY29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNp
bmcgYSBub24tdHJlZS1zaXR0ZXIgbW9kZS4KK0FwcGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBj
b252ZW50aW9uYWwgZm9udC1sb2NrIGluIGEgdGVtcG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwg
U1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdp
dGgtb3ZlcnJpZGUnLgorCitDYWNoZSByZXN1bHRzIHRvIGF2b2lkIGZvbnRpZmljYXRpb24gb2Yg
dW5jaGFuZ2VkIGNvZGUgYmxvY2tzLgorCitOT0RFIHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2Vk
IHRocm91Z2gKK2BtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5
IGhhdmUgY2xhc3NpZmllZCB0aGlzCitub2RlIGFzIGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1s
ZXQqICgoXyBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2ZWx5KQorICAgICAg
ICAgICAgICAobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgbm9kZSkpCisgICAg
ICAgICAgICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1u
b24tdHMtbW9kZXMpKQorICAgICAgICAgICAgICAodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVk
LXRpY2spKQorICAgICAgICAgICAgICAoYmxvY2stc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBu
b2RlKSkKKyAgICAgICAgICAgICAgOzsgQ2Fubm90IHVzZSBtYXJrZXJzICdtYXJrZG93bi10cy1j
b2RlLWJlZy1tYXJrZXIKKyAgICAgICAgICAgICAgOzsgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1h
cmtlciB0aGV5IGFyZSBzZXQgYWZ0ZXIgdGhpcworICAgICAgICAgICAgICA7OyBmdW5jdGlvbiBy
dW5zLgorICAgICAgICAgICAgICAobm9kZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkp
CisgICAgICAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAod2hlbiAoPiBub2RlLWVuZCBub2RlLXN0
YXJ0KQorICAgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnkt
Y2FjaGUtdGljaykKKyAgICAgICAgKGNscmhhc2ggbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5
LWNhY2hlKSkKKyAgICAgIChsZXQqICgoY2FjaGUta2V5IChjb25zIGxhbmcgKHNlY3VyZS1oYXNo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhMjU2CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpIG5vZGUtc3RhcnQgbm9k
ZS1lbmQpKSkKKyAgICAgICAgICAgICAocHJvcHMKKyAgICAgICAgICAgICAgKG9yIChnZXRoYXNo
IGNhY2hlLWtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLW5vbi10
cy1mb250aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAgICAgKGxldCAoKHJlc3VsdAorICAgICAg
ICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29sbGVjdC1m
YWNlcworICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlIG5vZGUtc3RhcnQgbm9kZS1lbmQp
KSkKKyAgICAgICAgICAgICAgICAgICAgKHB1dGhhc2ggY2FjaGUta2V5IHJlc3VsdAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUp
CisgICAgICAgICAgICAgICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1j
YWNoZS10aWNrIHRpY2spCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkpKSkKKyAgICAgICAg
KGRvbGlzdCAocmFuZ2UgcHJvcHMpCisgICAgICAgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92
ZXJyaWRlCisgICAgICAgICAgIChudGggMCByYW5nZSkKKyAgICAgICAgICAgKG50aCAxIHJhbmdl
KQorICAgICAgICAgICAobnRoIDIgcmFuZ2UpCisgICAgICAgICAgIG92ZXJyaWRlIHN0YXJ0IGVu
ZCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFj
ZXMgKG1vZGUgYmVnIGVuZCkKKyAgIlJ1biBNT0RFIG9uIHRoZSBCRUcuLkVORCByZWdpb24ncyB0
ZXh0IGFuZCBoYXJ2ZXN0IGZhY2UgcHJvcGVydGllcy4KK1JldHVybiBhIGxpc3Qgb2YgKEJVRi1C
RUcgQlVGLUVORCBGQUNFKSB0cmlwbGVzIGluIGJhc2UtYnVmZmVyCitjb29yZGluYXRlcy4KKwor
Rm9yIG5vbi10cmVlLXNpdHRlciBtb2RlcyB1c2UgYW4gaW5kaXJlY3QgYnVmZmVyIG5hcnJvd2Vk
IHRvIEJFRy4uRU5EOgorcmVnZXgvc3ludGFjdGljIGZvbnQtbG9jayBob25vcnMgbmFycm93aW5n
IGFuZCB0aGUgaW5kaXJlY3QgYnVmZmVyCitzaGFyZXMgdGV4dCB3aXRoIHRoZSBiYXNlLCBzbyB0
aGlzIGlzIGxlc3MgZXhwZW5zaXZlIGFuZCBjb3B5LWZyZWUuCisKK0ZvciB0cyBtb2RlcyBpbiBg
bWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMnLCBmYWxsCiti
YWNrIHRvIGEgdGVtcCBidWZmZXIuICBBIHBhcnNlciBjcmVhdGVkIGluIHRoZSBzb3VyY2UgYnVm
ZmVyIGRvZXMgbm90CityZWFjdCB0byBuYXJyb3dpbmcgaW4gYW4gaW5kaXJlY3QgYnVmZmVyIGRl
cml2ZWQgZnJvbSBpdCAob25seSBwYXJzZXJzCitjcmVhdGVkIGluIHRoYXQgaW5kaXJlY3QgYnVm
ZmVyIHdvdWxkIGhvbm9yIGl0cyBuYXJyb3dpbmcpLCBzbyByZXVzaW5nCit0aGUgaG9zdCBwYXJz
ZXIgdmlhIGFuIGluZGlyZWN0IGJ1ZmZlciBpcyBub3QgYW4gb3B0aW9uIGhlcmUuICBBbmQgaW4K
K3RoZSBob3N0IGJ1ZmZlciBpdHNlbGYsIHRoZSBpbm5lciBjb250ZW50IG9mIGEgZmVuY2VkIGNv
ZGUgYmxvY2sgaXMKK2p1c3Qgb3BhcXVlIHRleHQgaW5zaWRlIGEgYGNvZGVfZmVuY2VfY29udGVu
dCcgbm9kZSwgbmV2ZXIgcmUtcGFyc2VkCithcyBhIGZyZXNoIGRvY3VtZW50LiAgQSB0ZW1wIGJ1
ZmZlciB3aXRoIGEgZnJlc2ggcGFyc2VyIHNlZXMgdGhlIGlubmVyCitjb250ZW50IGFzIGEgc3Rh
bmRhbG9uZSBtYXJrZG93biBkb2N1bWVudCwgd2hpY2ggaXMgd2hhdCB3ZSB3YW50LiIKKyAgKGNv
bmQgKChtZW1xIG1vZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwt
bW9kZXMpCisgICAgICAgICAobGV0ICgoY29udGVudCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w
ZXJ0aWVzIGJlZyBlbmQpKQorICAgICAgICAgICAgICAgcmVzKQorICAgICAgICAgICAod2l0aC13
b3JrLWJ1ZmZlcgorICAgICAgICAgICAgIChpbnNlcnQgY29udGVudCkKKyAgICAgICAgICAgICAo
bWFya2Rvd24tdHMtLWluaGliaXQtbWVzc2FnZXMtYW5kLXdhcm5pbmdzCisgICAgICAgICAgICAg
ICAnbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAg
ICAgICAgIChkZWxheS1tb2RlLWhvb2tzCisgICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZG93
bi10cy0tc2V0LXVwLWlubGluZSB0KSkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
bW9kZSkpKSkKKyAgICAgICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAgICAo
bGV0ICgocG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICh3aGlsZSAoPCBwb3MgKHBv
aW50LW1heCkpCisgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9w
ZXJ0eS1jaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwg
KHBvaW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZmFjZSAoZ2V0LXRleHQtcHJv
cGVydHkgcG9zICdmYWNlKSkpCisgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAg
ICAgICAgICAgICAgICAgOzsgVHJhbnNsYXRlIHRlbXAtYnVmZmVyIG9mZnNldHMgYmFjayB0byBi
YXNlLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgOzsgcG9zaXRpb25zOiB0ZW1wIGBwb2lu
dC1taW4nIGNvcnJlc3BvbmRzIHRvIEJFRy4KKyAgICAgICAgICAgICAgICAgICAgIChwdXNoIChs
aXN0ICgrIGJlZyAoMS0gcG9zKSkgKCsgYmVnICgxLSBuZXh0KSkgZmFjZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcykpCisgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQp
KSkpKQorICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAgICh0CisgICAgICAgICAo
bGV0ICgoaW5kaXJlY3QtYnVmZmVyIChtYWtlLWluZGlyZWN0LWJ1ZmZlcgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAoYnVmZmVyLW5hbWUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdpbmhpYml0LWJ1ZmZlci1ob29r
cykpCisgICAgICAgICAgICAgICByZXMpCisgICAgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAg
ICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAgICAg
ICAgICAgICAgIChtYXJrZG93bi10cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAg
ICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2Fy
bmluZ3MKKyAgICAgICAgICAgICAgICAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2Rl
KSkpCisgICAgICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAg
ICAgICAgICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgICAgICAgICAgICAobGV0ICgocG9z
IChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1t
YXgpKQorICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3Bl
cnR5LWNoYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBu
aWwgKHBvaW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhY2UgKGdldC10
ZXh0LXByb3BlcnR5IHBvcyAnZmFjZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBm
YWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QgcG9zIG5leHQgZmFjZSkg
cmVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQpKSkpKQorICAgICAg
ICAgICAgIChraWxsLWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIpKQorICAgICAgICAgICAobnJldmVy
c2UgcmVzKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1v
ZGUgKGxhbmcpCisgICJDb21wdXRlIGFuZCBjYWNoZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywg
YSBzeW1ib2wuCitDb25zdWx0IHRoZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycgY2Fj
aGUsIG9yIGNvbnN1bHQKK2B0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QnIGFuZCBgbWFq
b3ItbW9kZS1yZW1hcC1hbGlzdCcsIG9yIGJydXRlCitmb3JjZSBtb2RlIHByb2JlLiAgUmV0dXJu
IGEgdmFsaWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIKKyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAo
Y2FyIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKSkpKQorICAg
ICAgbWFwcGVkLW1vZGUKKyAgICAobGV0KiAoKGxhbmctc3RyaW5nIChzeW1ib2wtbmFtZSBsYW5n
KSkKKyAgICAgICAgICAgKGxhbmctbW9kZSAoY29uY2F0IGxhbmctc3RyaW5nICItbW9kZSIpKQor
ICAgICAgICAgICAobW9kZSkpCisgICAgICAoaWYgKHNldHEgbW9kZSAoYWxpc3QtZ2V0IGxhbmct
bW9kZSB0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QpKQorICAgICAgICAgIG1vZGUKKyAg
ICAgICAgKGlmIChzZXRxIG1vZGUgKGFsaXN0LWdldCBsYW5nLW1vZGUgbWFqb3ItbW9kZS1yZW1h
cC1hbGlzdCkpCisgICAgICAgICAgICBtb2RlCisgICAgICAgICAgKGNhdGNoIDptb2RlCisgICAg
ICAgICAgICAoZG9saXN0IChtb2RlCisgICAgICAgICAgICAgICAgICAgICAobGlzdAorICAgICAg
ICAgICAgICAgICAgICAgIDs7IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmlu
Zy4KKyAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMtbW9kZSIp
CisgICAgICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcg
dGhlIHJhdyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgbGFuZy1tb2RlCisgICAgICAg
ICAgICAgICAgICAgICAgOzsgVHJ5IGEgdHJlZXNpdCBtb2RlIHVzaW5nIHRoZSBkb3duY2FzZWQg
c3RyaW5nLgorICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgKGRvd25jYXNlIGxhbmctc3Ry
aW5nKSAiLXRzLW1vZGUiKQorICAgICAgICAgICAgICAgICAgICAgIDs7IFRyeSBhIGNvbnZlbnRp
b25hbCBtb2RlIHVzaW5nIHRoZSBkb3duY2FzZWQgc3RyaW5nLgorICAgICAgICAgICAgICAgICAg
ICAgIChjb25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAiLW1vZGUiKSkpCisgICAgICAgICAg
ICAgIChzZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGZib3Vu
ZHAgbW9kZSkKKyAgICAgICAgICAgICAgICAocHVzaCAobGlzdCBsYW5nIG1vZGUpIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgICAgICAgKHRocm93IDptb2RlIG1vZGUp
KSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlIChu
b2RlKQogICAiQ29udmVydCBOT0RFIHRvIGEgbGFuZ3VhZ2UgZm9yIHRoZSBjb2RlIGJsb2NrLiIK
LSAgKGxldCogKChsYW5nLXN0cmluZyAoYWxpc3QtZ2V0ICh0cmVlc2l0LW5vZGUtdGV4dCBub2Rl
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxv
Y2stbGFuZ3VhZ2UtbWFwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSkgbmlsICMnZXF1YWwpKQotICAgICAgICAgKGxhbmcgKGlmIChzeW1i
b2xwIGxhbmctc3RyaW5nKQotICAgICAgICAgICAgICAgICAgIGxhbmctc3RyaW5nCi0gICAgICAg
ICAgICAgICAgIChpbnRlcm4gKGRvd25jYXNlIGxhbmctc3RyaW5nKSkpKSkKLSAgICA7OyBGSVhN
RTogS2luZCBvZiBhIGhhY2sgaGVyZTogd2UgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBob29rIGZv
cgotICAgIDs7IGxvYWRpbmcgdXAgY29uZmlncyBmb3IgdGhlIGxhbmd1YWdlIGZvciB0aGUgY29k
ZSBibG9jayBvbi1kZW1hbmQuCi0gICAgKGxldCAoKG1vZGUgKGFsaXN0LWdldCBsYW5nIG1hcmtk
b3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwKSkpCi0gICAgICA7OyBJZiB0aGVyZSdz
IG5vIHN1cHBvcnRlZCBtb2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHJldHVybiBuaWwsCi0gICAgICA7
OyB3aGljaCBtYWtlcyBFbWFjcyBza2lwIHRoZSBjb2RlIGJsb2NrLgotICAgICAgKGlmIChub3Qg
KGFuZCBtb2RlIChmYm91bmRwIG1vZGUpKSkKLSAgICAgICAgICBuaWwKLSAgICAgICAgOzsgSWYg
dGhlcmUncyBhIG1ham9yIG1vZGUgZm9yIHRoZSBsYW5ndWFnZSwgc2V0IHVwIHRoZSBjb25maWcK
LSAgICAgICAgOzsgYW5kIHJldHVybiB0aGUgbGFuZ3VhZ2UuCi0gICAgICAgICh3aGVuIChub3Qg
KG1lbXEgbGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICAg
IChtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZSBsYW5nIG1vZGUpCi0gICAgICAgICAg
KHB1c2ggbGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICBs
YW5nKSkpKQorICAobGV0KiAoKGxhbmcgKGludGVybiAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkp
KQorICAgICAgICAgKG1vZGUgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUg
bGFuZykpCisgICAgICAgICAodHMtbGFuZ3VhZ2UgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWxhbmd1YWdlcykpCisgICAgICAgICAobm9uLXRzLWxhbmd1YWdlIChhbGlz
dC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKSkKKyAgICAo
Y29uZAorICAgICAoKGZib3VuZHAgbW9kZSkKKyAgICAgIChjb25kCisgICAgICAgOzsgUmV0dXJu
IGtub3duIHRyZWVzaXQgbGFuZ3VhZ2UuCisgICAgICAgKHRzLWxhbmd1YWdlIHRzLWxhbmd1YWdl
KQorICAgICAgIDs7IFJldHVybiBuaWwgZm9yIGtub3duIG5vbi10cmVlc2l0IGxhbmd1YWdlIGZv
ciBmb250LWxvY2suCisgICAgICAgKG5vbi10cy1sYW5ndWFnZSBuaWwpCisgICAgICAgOzsgTWFy
a2Rvd24gaXRzZWxmIG5lZWRzIHR3byBwYXJzZXJzIChtYXJrZG93biArCisgICAgICAgOzsgbWFy
a2Rvd24taW5saW5lKSwgc28gdHJlZXNpdCBlbWJlZGRpbmcgKHdoaWNoIGNyZWF0ZXMgb25seQor
ICAgICAgIDs7IG9uZSkgY2Fubm90IGZ1bGx5IGZvbnRpZnkgaXQuICBSb3V0ZSB0aHJvdWdoIHRo
ZSBub24tdHMKKyAgICAgICA7OyBwYXRoIHNvIHRoZSB0ZW1wIGJ1ZmZlciBydW5zIHRoZSBmdWxs
IG1vZGUgd2l0aCBib3RoCisgICAgICAgOzsgcGFyc2Vycy4KKyAgICAgICAoKHByb3ZpZGVkLW1v
ZGUtZGVyaXZlZC1wIG1vZGUgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAgICh1bmxlc3MgKGFz
c3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAg
KHB1c2ggKGNvbnMgbGFuZyBtb2RlKSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9k
ZXMpKQorICAgICAgICBuaWwpCisgICAgICAgKHQKKyAgICAgICAgKGxldCogKChjb25maWd1cmF0
aW9uIChtYXJrZG93bi10cy0taGFydmVzdC1tb2RlLXRyZWVzaXQtY29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpKQorICAgICAgICAgICAgICAgKHRzLWxh
bmd1YWdlIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6bGFuZ3VhZ2UpKSkKKyAgICAgICAgICAo
Y29uZAorICAgICAgICAgICAoKGFuZCB0cy1sYW5ndWFnZQorICAgICAgICAgICAgICAgICAocGxp
c3QtZ2V0IGNvbmZpZ3VyYXRpb24gOmZvbnQtbG9jaykpCisgICAgICAgICAgICAobWFya2Rvd24t
dHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciBjb25maWd1cmF0aW9uKQorICAgICAgICAgICAg
KHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAg
ICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFuZyB0cy1sYW5ndWFnZSkgbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stbGFuZ3VhZ2VzKSkKKyAgICAgICAgICAgIHRzLWxhbmd1YWdlKQorICAgICAgICAg
ICA7OyBPdGhlcndpc2UsIGNsYXNzaWZ5IG1vZGUgYXMgbm9uLXRyZWUtc2l0dGVyLgorICAgICAg
ICAgICAodAorICAgICAgICAgICAgKHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLW5vbi10cy1tb2RlcykKKyAgICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFuZyBtb2Rl
KSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgbmls
KSkpKSkpCisgICAgICh0IG5pbCkpKSkKKworOzs7IENvZGUgYmxvY2sgbWlub3IgbW9kZSBzdXBw
b3J0IGFuZCBjb2RlLWJsb2NrIGNvbnRleHQgY29tbWFuZHM6CisKKyhkZWZ2YXIgbWFya2Rvd24t
dHMtY29kZS1ibG9jay1jb21tYW5kcyAnKGluZGVudC1mb3ItdGFiLWNvbW1hbmQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZWN0cmljLW5ld2xpbmUtYW5kLW1h
eWJlLWluZGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
cGxldGlvbi1hdC1wb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWVudC1kd2ltCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21t
ZW50LWxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1l
bnQtb3ItdW5jb21tZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ctZmlsbC1yZWluZGVudC1kZWZ1
bikKKyAgIkNvbW1hbmRzIHRvIGV4ZWN1dGUgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitTZWUg
YG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iKQorCisoZGVmdmFyIG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMgJyh4cmVmLWZpbmQtZGVmaW5pdGlv
bnMpCisgICJDb21tYW5kcyB0aGF0IG5lZWQgYSBcInRoaW5nXCIgYXQgcG9pbnQgaW4gYSBjb2Rl
LWJsb2NrIGNvbnRleHQuCitTZWUgYG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJs
b2NrJy4iKQorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1hbmRz
ICcoY29tbWVudC1vci11bmNvbW1lbnQtcmVnaW9uKQorICAiQ29tbWFuZHMgdGhhdCBuZWVkIGEg
cmVnaW9uIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNv
bW1hbmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1lbmFibGUtY29k
ZS1ibG9jay1pbi1jb250ZXh0LW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1pbi1jb250ZXh0LW1vZGUnIGlmIGluIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICAobWFy
a2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMt
YXQtY29kZS1ibG9jay1wKSAxIC0xKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21t
YW5kIHRvIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93
bi10cy0tY29kZS1ibG9jay1uZXdsaW5lICgmb3B0aW9uYWwgYXJnIGludGVyYWN0aXZlKQorICAi
SW5zZXJ0IGEgbmV3bGluZSwgYW5kIG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5ldyBsaW5l
LgorV2l0aCBwcmVmaXggYXJndW1lbnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xpbmVzLgor
CitJZiBgZWxlY3RyaWMtaW5kZW50LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50cyB0aGUg
ZmluYWwgbmV3IGxpbmUKK3RoYXQgaXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJlY2VkaW5n
IGxpbmUuICBUbyBqdXN0IGluc2VydAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMtaW5kZW50
LWp1c3QtbmV3bGluZV0uCisKK0lmIGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwgdGhpcyBt
YXkgY2F1c2UgYXV0b21hdGljIGxpbmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcgbGluZS4g
IEEgbm9uLW5pbCBBUkcgaW5oaWJpdHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1oYXJkLW5l
d2xpbmVzJyBpcyBlbmFibGVkLCB0aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhlIHRleHQt
cHJvcGVydHkgYGhhcmQnLgorCitBIG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQgbWVhbnMg
dG8gcnVuIHRoZSBgcG9zdC1zZWxmLWluc2VydC1ob29rJy4iCisgIChpbnRlcmFjdGl2ZSAiKlBc
bnAiKQorICAoaWYtbGV0KiAoKGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9k
ZS1hdCkpCisgICAgICAgICAgICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAgICAgKG1hcmtk
b3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ25ld2xpbmUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZSkKKyAgICAoZnVuY2FsbC1p
bnRlcmFjdGl2ZWx5ICMnbmV3bGluZSBhcmcgaW50ZXJhY3RpdmUpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVzdGlmeSkKKyAg
IlJlZmlsbCBvciByZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0aGF0IGNvbnRhaW5zIHBv
aW50LgorSWYgdGhlIHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29tbWVudCwgZmlsbCB0aGUg
cGFyYWdyYXBoIHRoYXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3MgcG9pbnQuCisKK090aGVy
d2lzZSwgcmVpbmRlbnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhhdCBjb250YWlucyBwb2lu
dCBvcgorZm9sbG93cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24tbmlsIChpbnRlcmFjdGl2
ZWx5LCB3aXRoIHByZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dlbGwuIgorICAoaW50ZXJh
Y3RpdmUgIlAiKQorICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9nLW1vZGUpCisgICAgICAg
ICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50LWRlZnVuIGp1c3RpZnkp
KQorICAgICAgICAodAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcGFyYWdy
YXBoIGp1c3RpZnkpKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29k
ZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3MpCisgICJIZWxwZXIgY29t
bWFuZCBmb3IgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQu
CitGaW5kIHRoaW5nIGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVuY2VzIG9uIHRoZSB4cmVm
IHN0YWNrIHRvIHRoZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBBUkdTIGlmIG5vdCBpbiBh
IGNvZGUgYmxvY2sgd2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAg
KGlmLWxldCogKChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQor
ICAgICAgICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChjb25kaXRpb24tY2Fz
ZSBlcnIKKyAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAgKHByb2duCisg
ICAgICAgICAgICAgICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJlZiBtYXJrZXIgaW4gdGhl
IGJhc2UgYnVmZmVyLiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdpbGwgYmUgcmV0YWluZWQg
aWYgdGhlIGNvbW1hbmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBpbgorICAgICAgICAgICAg
ICAgIDs7IHRoZSBjb2RlLWJsb2NrIGJ1ZmZlciB3aGljaCB3ZSB3aWxsIHBvcC4KKyAgICAgICAg
ICAgICAgICAoeHJlZi1wdXNoLW1hcmtlci1zdGFjaykKKyAgICAgICAgICAgICAgICA7OyBgeHJl
Zi1maW5kLWRlZmluaXRpb25zJyBpcyBhIHRoaW5nIGNvbW1hbmQgaW4KKyAgICAgICAgICAgICAg
ICA7OyBgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcycuCisgICAgICAgICAg
ICAgICAgKG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Iyd4cmVmLWZpbmQtZGVmaW5pdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXJncykpCisgICAgICAgICAgICA7OyBQb3AgdGhlIHRv
cCB4cmVmIG1hcmtlci4gIElmIHRoZSBjb21tYW5kIHN1Y2NlZWRlZCwgdGhlCisgICAgICAgICAg
ICA7OyB0b3AgbWFya2VyIHdpbGwgYmUgdGhlIGNvZGUtYmxvY2sgYnVmZmVyIG1hcmtlci4gIElm
IGl0CisgICAgICAgICAgICA7OyBmYWlsZWQsIHdlJ2xsIHBvcCB0aGUgcGxhY2Vob2xkZXIgd2hp
Y2ggaXMgbm93IG9mIG5vCisgICAgICAgICAgICA7OyB2YWx1ZS4KKyAgICAgICAgICAgIDs7IFRP
RE86IFByb3Bvc2UgYW4gYHhyZWYnIHBvcCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgImdvCisgICAg
ICAgICAgICA7OyBiYWNrIi4KKyAgICAgICAgICAgIChsZXQgKChoaXN0b3J5ICh4cmVmLS1nZXQt
aGlzdG9yeSkpKQorICAgICAgICAgICAgICAodW5sZXNzIChudWxsIChjYXIgaGlzdG9yeSkpCisg
ICAgICAgICAgICAgICAgKHBvcCAoY2FyIGhpc3RvcnkpKSkpKQorICAgICAgICAoZXJyb3IKKyAg
ICAgICAgIDs7IFByb3BhZ2F0ZSB0aGUgc2lnbmFsLgorICAgICAgICAgKHNpZ25hbCAoY2FyIGVy
cikgKGNkciBlcnIpKSkpCisgICAgOzsgTm90IGluIGEgY29kZSBibG9jayBjb250ZXh0LiAgVGhp
cyBzaG91bGQgcmVhbGx5IG5ldmVyIGhhcHBlbi4KKyAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5
ICMneHJlZi1maW5kLWRlZmluaXRpb25zIGFyZ3MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1t
YXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrICgpCisgICJIZWxwZXIgZnVuY3Rpb24gdG8g
d3JhcCBhIGNvbW1hbmQgZm9yIGEgY29kZS1ibG9jayBjb250ZXh0LgorSWYgYHRoaXMtY29tbWFu
ZCcgaXMgYSBtZW1iZXIgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnIGFuZAor
cG9pbnQgaXMgd2l0aGluIGEgY29kZSBibG9jayB3aXRoIGFuIGF2YWlsYWJsZSBtb2RlLCBpdCB3
aWxsIHJ1biBpbiB0aGF0Citjb2RlIGJsb2NrJ3MgbW9kZSBpbiBhIGJ1ZmZlciBuYXJyb3dlZCB0
byBpdHMgY29udGVudC4gIE90aGVyd2lzZSwgdGhlCitjb21tYW5kIHdpbGwgcnVuIGluIHRoZSBj
b250ZXh0IG9mIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyLiIKKyAgKHdoZW4gKG1lbXEg
dGhpcy1jb21tYW5kIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMpCisgICAgKHdoZW4t
bGV0KiAoKGNvbW1hbmQgdGhpcy1jb21tYW5kKQorICAgICAgICAgICAgICAgIChibG9jay1tb2Rl
IChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgICAgICgoZmJv
dW5kcCBibG9jay1tb2RlKSkpCisgICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgKGxhbWJkYSAoJnJl
c3QgYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ21hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1p
bi1jb2RlLWJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stbW9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcmdzKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
cnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayAoYmxvY2stbW9kZSBjb21tYW5kICZyZXN0IGFyZ3Mp
CisgICJSdW4gQ09NTUFORCBpbiBCTE9DSy1NT0RFLgorQVJHUyBhcmUgY2FwdHVyZWQgYnkgYG1h
cmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iCisgICh3aGVuLWxl
dCogKChiZWcgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtYmVn
LW1hcmtlcikpCisgICAgICAgICAgICAgIChlbmQgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkg
J21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlcikpCisgICAgICAgICAgICAgIChzdHIgKGJ1ZmZl
ci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkpCisgICAgOzsgVXNlIGEgdGVtcCAo
b3Igd29yaykgYnVmZmVyIGJlY2F1c2UgdHJlZXNpdCBjdXJyZW50bHkgY29uZnVzZXMKKyAgICA7
OyBub2RlcyBpbiBhbiBpbmRpcmVjdCBidWZmZXIgZXZlbiBpZiB0aGUgaW5kaXJlY3QgYnVmZmVy
IGlzIG5vdAorICAgIDs7IG5hcnJvd2VkLgorICAgIChsZXQqICgodGVtcC1kZWFjdGl2YXRlLW1h
cmspCisgICAgICAgICAgIChvcmlnLXBvaW50IChwb2ludCkpCisgICAgICAgICAgIChvcmlnLW1h
cmsgKG1hcmsgdCkpCisgICAgICAgICAgIChvcmlnLW1hcmstYWN0aXZlIG1hcmstYWN0aXZlKQor
ICAgICAgICAgICAocmVnaW9uLWJlZyAodXNlLXJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAg
ICAocmVnaW9uLWVuZCAodXNlLXJlZ2lvbi1lbmQpKQorICAgICAgICAgICAoYWRqLXBvaW50ICgx
KyAoLSBvcmlnLXBvaW50IGJlZykpKQorICAgICAgICAgICAoYWRqLW1hcmsgKHdoZW4gb3JpZy1t
YXJrICgxKyAoLSBvcmlnLW1hcmsgYmVnKSkpKQorICAgICAgICAgICAoYWRqLXJlZ2lvbi1iZWcg
KHdoZW4gcmVnaW9uLWJlZyAoMSsgKC0gb3JpZy1wb2ludCByZWdpb24tYmVnKSkpKQorICAgICAg
ICAgICAoYWRqLXJlZ2lvbi1lbmQgKHdoZW4gcmVnaW9uLWVuZCAoMSsgKC0gb3JpZy1wb2ludCBy
ZWdpb24tZW5kKSkpKQorICAgICAgICAgICAocG9pbnQtZGVsdGEgMCkKKyAgICAgICAgICAgKHNv
dXJjZS1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAod2l0aC13b3JrLWJ1ZmZlcgor
ICAgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgICAgKGdvdG8tY2hhciBhZGotcG9pbnQpCisgICAg
ICAgIDs7IFByb3BhZ2F0ZSBtYXJrIChhbmQgcmVnaW9uKS4KKyAgICAgICAgKHdoZW4gb3JpZy1t
YXJrLWFjdGl2ZQorICAgICAgICAgIChzZXQtbWFyayBhZGotbWFyaykpCisgICAgICAgIChtYXJr
ZG93bi10cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICAgICAnbWFya2Rv
d24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAgICAoZGVsYXkt
bW9kZS1ob29rcworICAgICAgICAgICAgKGxldCAoKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5l
CisgICAgICAgICAgICAgICAgICAgKHByb3ZpZGVkLW1vZGUtZGVyaXZlZC1wIGJsb2NrLW1vZGUg
J21hcmtkb3duLXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAgKGZ1bmNhbGwgYmxvY2stbW9kZSkp
KSkKKyAgICAgICAgKGxldCAoKHBvaW50IChwb2ludCkpCisgICAgICAgICAgICAgIChhcml0eSAo
Y2RyIChmdW5jLWFyaXR5IGNvbW1hbmQpKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAg
KChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKyAg
ICAgICAgICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpKQor
ICAgICAgICAgICAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQgdGhpbmcpKSkKKyAg
ICAgICAgICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24tY29t
bWFuZHMpCisgICAgICAgICAgICAod2hlbiAoYW5kIGFkai1yZWdpb24tYmVnIGFkai1yZWdpb24t
ZW5kKQorICAgICAgICAgICAgICAoYXBwbHkgIydmdW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFu
ZAorICAgICAgICAgICAgICAgICAgICAgYWRqLXJlZ2lvbi1iZWcgYWRqLXJlZ2lvbi1lbmQgYXJn
cykpKQorICAgICAgICAgICAoKHplcm9wIGFyaXR5KQorICAgICAgICAgICAgKGZ1bmNhbGwtaW50
ZXJhY3RpdmVseSBjb21tYW5kKSkKKyAgICAgICAgICAgKChlcSAxIGFyaXR5KQorICAgICAgICAg
ICAgKGZ1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIChjYXIgYXJncykpKQorICAgICAgICAg
ICAodAorICAgICAgICAgICAgKGFwcGx5ICMnZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQg
YXJncykpKQorICAgICAgICAgIChzZXRxIHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0
aWVzIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkKKyAgICAgICAgICAoc2V0cSB0ZW1wLWRlYWN0
aXZhdGUtbWFyayBkZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgKHNldHEgcG9pbnQtZGVsdGEg
KC0gKHBvaW50KSBwb2ludCkpKQorICAgICAgICAobGV0ICgod29yay1idWZmZXIgKGN1cnJlbnQt
YnVmZmVyKSkpCisgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgor
ICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJlZyBlbmQgd29yay1idWZmZXIp
CisgICAgICAgICAgICA7OyBQcm9wYWdhdGUgbWFyayBkZWFjdGl2YXRpb24gdG8gdGhlIHNvdXJj
ZSBidWZmZXIuCisgICAgICAgICAgICAoc2V0cSBkZWFjdGl2YXRlLW1hcmsgdGVtcC1kZWFjdGl2
YXRlLW1hcmspCisgICAgICAgICAgICA7OyBNb3ZlIHBvaW50IGlmIGl0IG1vdmVkIGluIHRoZSB0
ZW1wIGJ1ZmZlci4KKyAgICAgICAgICAgIChnb3RvLWNoYXIgKCsgb3JpZy1wb2ludCBwb2ludC1k
ZWx0YSkpCisgICAgICAgICAgICA7OyBSZWNvcmQgdGhlIG9yaWdpbmFsIGNvbW1hbmQuCisgICAg
ICAgICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAgICAgIDs7IFRoaXMg
aGVscHMgbWFpbnRhaW4gZGlzY3JldGUgY29tbWFuZCBhY3Rpb25zLgorICAgICAgICAgICAgKHVu
ZG8tYm91bmRhcnkpCisgICAgICAgICAgICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0aW5nIHJl
Z2lvbiBpcyByZWZvbnRpZmllZC4KKyAgICAgICAgICAgIChmb250LWxvY2stZmx1c2ggYmVnIGVu
ZCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVy
IChwb3MgJm9wdGlvbmFsIGJhY2t3YXJkKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3Vz
IGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRp
bmcgYXQgUE9TLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgorICAo
dHJlZXNpdC1zZWFyY2gtZm9yd2FyZCAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5vZGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciIp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy0tZmluZC1uZXh0LWNvZGUtYmxvY2stZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgYmFja3dhcmQg
cmVtYWluKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2Nr
X2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBwb2lu
dCcsIGlmIFBPUyBpcyBuaWwuCitTZWFyY2ggYmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9uLW5p
bC4KK0lmIFJFTUFJTiBpcyBub24tbmlsLCBtb3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRo
ZSBjdXJyZW50IGNvZGUKK2Jsb2NrLCBpZiBpbiBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAo
cG9pbnQpKSkKKyAgKGFuZC1sZXQqICgobm9kZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1ibG9j
ay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgKGxldCAoKGluLWJsb2NrIChtYXJrZG93
bi10cy1hdC1jb2RlLWJsb2NrLXAgcG9zKSkpCisgICAgICAoY29uZAorICAgICAgICgoYW5kIHJl
bWFpbiBpbi1ibG9jaykKKyAgICAgICAgbm9kZSkKKyAgICAgICAocmVtYWluCisgICAgICAgIG5p
bCkKKyAgICAgICAodAorICAgICAgICAod2hpbGUgKGFuZCBub2RlCisgICAgICAgICAgICAgICAg
ICAgIDs7IElmIGJhY2t3YXJkLCBza2lwIHRoZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAgICAg
ICAgICAgICAgOzsgc3RhcnRpbmcgZGVsaW1pdGVyLgorICAgICAgICAgICAgICAgICAgICAob3Ig
KGFuZCBiYWNrd2FyZCBpbi1ibG9jayAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBub2RlKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcg
bm9kZSkpKSkKKyAgICAgICAgICAoc2V0cSBpbi1ibG9jayAobWFya2Rvd24tdHMtYXQtY29kZS1i
bG9jay1wIHBvcykpCisgICAgICAgICAgKHNldHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2RlICht
YXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkKKyAg
ICAgICAgbm9kZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29kZS1i
bG9jayAoYXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29kZSBi
bG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1
cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChu
b2RlCisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRl
bGltaXRlciBuaWwgbmlsIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBub2RlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJs
b2NrIChhcmcpCisgICJNb3ZlIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMgY29k
ZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhl
IGN1cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCog
KChub2RlCisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2Nr
LWRlbGltaXRlciBuaWwgJ2JhY2t3YXJkIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSkpKQorCis7OzsgVGFibGVzIGFrYSBwaXBlIHRhYmxlczoKKworOzs7
OyBVdGlsaXRpZXM6CisKKyhkZWZjb25zdCBtYXJrZG93bi10cy10YWJsZS1leHBvcnQtYnVmZmVy
CisgICIqbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0KiIpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRj
aGluZyBvcmRlci4KKyhkZWZjb25zdCBtYXJrZG93bi10cy0tdGFibGUtcm93LXR5cGVzCisgICco
InBpcGVfdGFibGVfcm93IgorICAgICJwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciCisgICAgInBp
cGVfdGFibGVfaGVhZGVyIikpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRjaGluZyBvcmRlci4KKyhk
ZWZjb25zdCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2Nl
bGwiCisgICAgInBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwiKSkKKworKGRlZmNvbnN0IG1hcmtk
b3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2RlbGlt
aXRlcl9jZWxsIgorICAgICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFibGVf
YWxpZ25fcmlnaHQiKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXIt
Y2VsbC1zdWJ0eXBlcworICAnKCJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFi
bGVfYWxpZ25fcmlnaHQiKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1hYnV0dGluZy1w
b3MgKHBvcykKKyAgIkFkanVzdCBQT1MgdG8gYWJ1dCBpdHMgY2xvc2VzdCB0ZXh0LgorUmV0dXJu
IHBvcyBhZGp1c3RlZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNo
YXJhY3Rlci4KK090aGVyd2lzZSwgcmV0dXJuIG5pbCwgZm9yIGV4YW1wbGUsIGlmIHRoZSBsaW5l
IGlzIGVtcHR5LiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGdvdG8tY2hhciBwb3MpCisgICAg
KHNraXAtY2hhcnMtZm9yd2FyZCAiW1s6Ymxhbms6XV0iIChwb3MtZW9sKSkKKyAgICAoaWYgKGVx
IHBvcyAocG9zLWVvbCkpCisgICAgICAgIChwcm9nbgorICAgICAgICAgIChnb3RvLWNoYXIgcG9z
KQorICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICJbWzpibGFuazpdXSIgKHBvcy1ib2wp
KQorICAgICAgICAgICh1bmxlc3MgKGVxIHBvcyAocG9zLWJvbCkpCisgICAgICAgICAgICAobWF4
IChwb2ludC1taW4pICgxLSAocG9pbnQpKSkpKQorICAgICAgKG1pbiAocG9pbnQtbWF4KSAoMSsg
KHBvaW50KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsICgmb3B0
aW9uYWwgbm9kZSBwb3MgYWJ1dHRpbmcpCisgICJDb21wdXRlIHRhYmxlIGNlbGwgZnJvbSBuYW1l
ZCBOT0RFIGF0IFBPUy4KK0lmIE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYg
UE9TIGlzIG5pbCwgdXNlIGBwb2ludCcuCitJZiBOT0RFIGlzIGEgY2VsbCB0eXBlLCByZXR1cm4g
aXQuCitJZiBOT0RFIGlzIGEgc3VidHlwZSwgcHJvbW90ZSBpdC4KK0lmIEFCVVRUSU5HIGlzIG5v
bi1uaWwsIGFkanVzdCBQT1MgdG8gdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNoYXJhY3Rlci4KK090
aGVyd2lzZSwgcmV0dXJuIG5pbC4iCisgIDs7IFdlIGNvdWxkIHNhbml0eSBjaGVjayB2aWEgYHRy
ZWVzaXQtbm9kZS1uYW1lZCcgYW5kIGVycm9yIGlmIG5vdC4KKyAgKHNldHEgcG9zIChvciBwb3Mg
KHBvaW50KSkpCisgICh3aGVuIGFidXR0aW5nCisgICAgKHNldHEgcG9zIChvciAobWFya2Rvd24t
dHMtLXRhYmxlLWFidXR0aW5nLXBvcyBwb3MpIHBvcykpKQorICAod2hlbi1sZXQqICgobm9kZSAo
b3Igbm9kZQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21h
cmtkb3duICduYW1lZCkpKQorICAgICAgICAgICAgICAodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUg
bm9kZSkpKQorICAgIChjb25kICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxlLWNlbGwt
dHlwZXMpCisgICAgICAgICAgIG5vZGUpCisgICAgICAgICAgKChtZW1iZXIgdHlwZSBtYXJrZG93
bi10cy0tdGFibGUtZGVsaW1pdGVyLWNlbGwtc3VidHlwZXMpCisgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMt
LXRhYmxlLXJvdy10eXBlcykKKyAgICAgICAgICAgKGNvbmQgKChlcSBhYnV0dGluZyAnbGVmdCkK
KyAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwICduYW1lZCkpCisg
ICAgICAgICAgICAgICAgIDs7IEFjY291bnQgZm9yICdyaWdodCBvciB0LgorICAgICAgICAgICAg
ICAgICAodAorICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIC0xICdu
YW1lZCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyAoJm9wdGlv
bmFsIG5vZGUgcG9zKQorICAiQ29tcHV0ZSB0YWJsZSByb3cgZnJvbSBuYW1lZCBOT0RFIGF0IFBP
Uy4KK0lmIE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwg
dXNlIGBwb2ludCcuCitJZiBOT0RFIGlzIGEgcm93IHR5cGUsIHJldHVybiBpdC4KK0lmIE5PREUg
aXMgYSB0YWJsZSBjZWxsIHR5cGUsIHJldHVybiBpdHMgcm93LgorT3RoZXJ3aXNlLCByZXR1cm4g
bmlsLiIKKyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJlZXNpdC1ub2RlLW5hbWVk
JyBhbmQgZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgobm9kZSAob3Igbm9kZQorICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCAob3IgcG9zIChwb2ludCkpICdtYXJr
ZG93biAnbmFtZWQpKSkKKyAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5v
ZGUpKSkKKyAgICAoaWYgKG1lbWJlciB0eXBlIG1hcmtkb3duLXRzLS10YWJsZS1yb3ctdHlwZXMp
CisgICAgICAgIG5vZGUKKyAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCAobWFya2Rvd24tdHMt
LXRhYmxlLW5vZGUtY2VsbCBub2RlKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1w
YXJzZS1lcnJvci1wICgmb3B0aW9uYWwgbm9kZSBwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBu
YW1lZCBOT0RFIGF0IFBPUyBpcyBpbiBhbiBcIkVSUk9SXCIgc3VidHJlZS4KK05PREUgbXVzdCBi
ZSBhIHRhYmxlIGVsZW1lbnQ7IGkuZS4sIGl0cyB0eXBlIHByZWZpeCBpcyBcInBpcGVfdGFibGVc
Ii4KK0lmIE5PREUgaXMgYSB0YWJsZSwgcmV0dXJuIG5pbCAoaXQgc2hvdWxkbid0IGJlIGluIEVS
Uk9SKS4KK0lmIE5PREUgaXMgbm90IGEgdGFibGUgZWxlbWVudCwgcmV0dXJuIG5pbC4KK0lmIE5P
REUncyBuZWFyYnkgYW5jZXN0b3IgaXMgYW4gXCJFUlJPUlwiIG5vZGUsIHJldHVybiB0LgorT3Ro
ZXJ3aXNlLCByZXR1cm4gbmlsLiIKKyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJl
ZXNpdC1ub2RlLW5hbWVkJyBhbmQgZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgocm93ICht
YXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbm9kZSBwb3MpKQorICAgICAgICAgICAgICAodHlw
ZSAodHJlZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAgICAgKHBhcmVudCAodHJlZXNp
dC1ub2RlLXBhcmVudCByb3cpKQorICAgICAgICAgICAgICAocGFyZW50LXR5cGUgKHRyZWVzaXQt
bm9kZS10eXBlIHBhcmVudCkpKQorICAgIChjb25kICgoZXF1YWwgdHlwZSAicGlwZV90YWJsZSIp
CisgICAgICAgICAgIG5pbCkKKyAgICAgICAgICAoKGVxdWFsIHBhcmVudC10eXBlICJwaXBlX3Rh
YmxlIikKKyAgICAgICAgICAgbmlsKQorICAgICAgICAgICgoZXF1YWwgcGFyZW50LXR5cGUgIkVS
Uk9SIikKKyAgICAgICAgICAgdCkKKyAgICAgICAgICAodAorICAgICAgICAgICAoZXJyb3IgIlNo
b3VsZCBuZXZlciBoYXBwZW4iKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWF0LXRhYmxlLXAg
KCZvcHRpb25hbCBwb3MgYWJ1dHRpbmcpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgYXQg
b3IgaW4gYSBwaXBlIHRhYmxlLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LgorUmV0dXJuIGNv
bnMgKHBvcyAuIHRhYmxlLW5vZGUpIGlmIFBPUyBpcyB3aXRoaW4gYSB0YWJsZSwgb3RoZXJ3aXNl
CityZXR1cm4gbmlsLgoraWYgUE9TIGlzIHdpdGhpbiBhIHRhYmxlIGJ1dCB3aXRoIHBhcnNlIGVy
cm9ycywgc2lnbmFsIGFuIGVycm9yLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgYWRqdXN0IFBP
UyB0byB0aGUgbmVhcmVzdCBub24tYmxhbmsgY2hhcmFjdGVyLgorSWYgdGhlIHBhcnNlZCB0YWJs
ZSBpcyBpbiBFUlJPUiwgcmV0dXJuIG5pbC4iCisgIChzZXRxIHBvcyAob3IgcG9zIChwb2ludCkp
KQorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyIHBvcykKKyAgICA7OyBJZiBwb2lu
dCBpcyBvbiBhbiBlbXB0eSBsaW5lLCBpdCBpcyBuZXZlciBhIHRhYmxlLgorICAgICh1bmxlc3Mg
KGFuZCAoZW9scCkgKGJvbHApKQorICAgICAgOzsgSWYgcG9pbnQgaXMgYm9sIG9yIGVvbCBpdCBt
aWdodCBiZSBhYnV0dGluZyBhIHBpcGUgc3ltYm9sIHNvCisgICAgICA7OyBsb29rIGZvcndhcmRz
IG9yIGJhY2t3YXJkcyBvbmUgY2hhcmFjdGVyIHRvIHRlc3QgaWYgdGhhdCBwb3MKKyAgICAgIDs7
IGlzIGEgdGFibGUuCisgICAgICAod2hlbiBhYnV0dGluZworICAgICAgICAoc2V0cSBwb3MgKG9y
IChtYXJrZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zIHBvcykgcG9zKSkpCisgICAgICAod2hl
bi1sZXQqICgocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbmlsIHBvcykpKQorICAg
ICAgICAoaWYgKG1hcmtkb3duLXRzLS10YWJsZS1wYXJzZS1lcnJvci1wIHJvdykKKyAgICAgICAg
ICAgIDs7IERvIG5vdCB1c2UgZXJyb3Igb3Igd2FybmluZyBoZXJlLiAgRXJyb3JzIGludGVyZmVy
ZSB3aXRoCisgICAgICAgICAgICA7OyB0aGUgY29tbWFuZCBsb29wLiAgV2FybmluZ3MgYXJlIGFu
bm95aW5nLgorICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgIChtZXNzYWdlICJJbmNv
cnJlY3RseSBmb3JtYXR0ZWQgTWFya2Rvd24gdGFibGUgKHBhcnNlciBlcnJvcikiKQorICAgICAg
ICAgICAgICBuaWwpCisgICAgICAgICAgKGNvbnMgcG9zICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJk
CisgICAgICAgICAgICAgICAgICAgICByb3cKKyAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBl
X3RhYmxlXFwnIiAnYmFja3dhcmQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW5hYmxl
LWluLXRhYmxlLW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZScg
aWYgaW4gYSB0YWJsZS4KK0EgdGFibGUgd2l0aCBhIHBhcnNlciBFUlJPUiBpcyBpbmVsaWdpYmxl
LiIKKyAgKG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMtYXQt
dGFibGUtcCBuaWwgdCkgMSAtMSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLWJvZHkt
cm93LW5lYXItcG9zICgmb3B0aW9uYWwgcG9zIGFidXR0aW5nKQorICAiUmV0dXJuIHRoZSByb3cg
bmVhciBQT1MuCitSZXR1cm4gbmlsIGlmIG5vdCBhdCBhIHRhYmxlIG9yIHRoZXJlIGlzIG5vIHJv
dy4KK090aGVyd2lzZSByZXR1cm4gY29ucyAocm93IC4gaW4taGVhZGVyKSB3aGVyZSBpbi1oZWFk
ZXIgaXMgbmlsIG9yIHQuCitUaGlzIGlzIHVzZWZ1bCB0byBpbnNlcnQgYSBuZXcgcm93IGp1c3Qg
YmVsb3cgdGhlIGhlYWRlciBpbnN0ZWFkIG9mIGp1c3QKK2JlbG93IHRoZSBmaXJzdCByb3cuCitJ
ZiBQT1MgaXMgbmlsIHVzZSBgcG9pbnQnLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgdXNlICgx
LSBQT1MpIGlmIFBPUyBpcyBpbW1lZGlhdGVseSBhZnRlciBhIHBpcGUKK3N5bWJvbC4iCisgIChz
ZXRxIHBvcyAob3IgcG9zIChwb2ludCkpKQorICAobGV0IChpbi1oZWFkZXIpCisgICAgKHdoZW4t
bGV0KiAoKGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJsZS1wIHBvcyBhYnV0dGluZykpCisg
ICAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgICAodGFi
bGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKGNlbGwgKG1hcmtkb3duLXRzLS10
YWJsZS1ub2RlLWNlbGwgbmlsIHBvcyBhYnV0dGluZykpCisgICAgICAgICAgICAgICAgKGNlbGwt
dHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgY2VsbCkpCisgICAgICAgICAgICAgICAgKHBhcmVudCAo
dHJlZXNpdC1ub2RlLXBhcmVudCBjZWxsKSkKKyAgICAgICAgICAgICAgICAocGFyZW50LXR5cGUg
KHRyZWVzaXQtbm9kZS10eXBlIHBhcmVudCkpCisgICAgICAgICAgICAgICAgKGxpbmVhZ2UgKGxp
c3QgY2VsbC10eXBlIHBhcmVudC10eXBlKSkKKyAgICAgICAgICAgICAgICA7OyBGaW5kIHRoZSBm
aXJzdCByb3cgYWZ0ZXIgdGhlIGhlYWRlciBvciB0aGUgcm93IGF0IFBPUyBpcworICAgICAgICAg
ICAgICAgIDs7IG9uIGFuZCBpbiB0aGUgc2FtZSB0YWJsZS4KKyAgICAgICAgICAgICAgICAocm93
IChjb25kICgob3IgKG1lbWJlciAicGlwZV90YWJsZV9oZWFkZXIiIGxpbmVhZ2UpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1iZXIgInBpcGVfdGFibGVfZGVsaW1pdGVyX3Jv
dyIgbGluZWFnZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgaW4taGVhZGVy
IHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQg
Y2VsbCAiXFxgcGlwZV90YWJsZV9yb3dcXCciKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoZXF1YWwgY2VsbC10eXBlICJwaXBlX3RhYmxlX3JvdyIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2VsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwgcGFyZW50
LXR5cGUgInBpcGVfdGFibGVfcm93IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJl
bnQpKSkpCisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJj
aC1mb3J3YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAnYmFja3dh
cmQpKQorICAgICAgICAoY29ucyByb3cgaW4taGVhZGVyKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS10YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIChyb3cgbm9kZSkKKyAgIkNvbXB1dGUgTk9E
RSdzIGNvbHVtbiBpbiBST1cuCitSZXR1cm4gbmlsIGlmIE5PREUgaXMgbm90IGluIFJPVyAodGhp
cyBzaG91bGQgbm90IGhhcHBlbikuCitOT0RFIG11c3QgYmUgYSBub2RlIGluIFJPVy4KK1JPVyBt
dXN0IGJlIGEgcGlwZV90YWJsZV9oZWFkZXIsIHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvdywgb3IK
K3BpcGVfdGFibGVfcm93LiIKKyAgKGNhdGNoIDpjb2x1bW4KKyAgICAobGV0ICgoY291bnQgMCkp
CisgICAgICAoZG9saXN0IChjZWxsICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkp
CisgICAgICAgICh3aGVuICh0cmVlc2l0LW5vZGUtZXEgbm9kZSBjZWxsKQorICAgICAgICAgICh0
aHJvdyA6Y29sdW1uIGNvdW50KSkKKyAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4gKGNvbHVtbiAmb3B0aW9u
YWwgbm8tZXJyb3IpCisgICJNb3ZlIHBvaW50IG9uIHRoZSBjdXJyZW50IHJvdyB0byBDT0xVTU4u
CitDT0xVTU4gaXMgYSAwLWJhc2VkIGluZGV4LgorUmV0dXJuIG5vbi1uaWwgaWYgc3VjY2Vzc2Z1
bC4KK0lmIE5PLUVSUk9SIGlzIG5vbi1uaWwsIHJldHVybiBuaWwgaWYgdGhlIGN1cnJlbnQgcm93
IGRvZXMgbm90IGV4dGVuZCB0bworQ09MVU1OLCBvdGhlcndpc2Ugc2lnbmFsIGFuIGVycm9yLgor
U2lnbmFsIGFuIGVycm9yIGlmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLiIKKyAgKGlmLWxldCog
KChjZWxsIChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5pbCBuaWwgdCkpCisgICAgICAg
ICAgICAocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAg
ICAoY29scyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFtZWQpKSkKKyAgICAgIChpZi1s
ZXQqICgodGFyZ2V0LWNlbGwgKG50aCBjb2x1bW4gY29scykpKQorICAgICAgICAgIChnb3RvLWNo
YXIgKHRyZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICh1bmxlc3Mgbm8t
ZXJyb3IKKyAgICAgICAgICAoZXJyb3IgIkNvbHVtbiAlUyBub3QgZm91bmQiIGNvbHVtbikpKQor
ICAgIChlcnJvciAiTm90IGF0IGEgdGFibGUiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFi
bGUtYWxpZ25lcnMgKHRhYmxlKQorICAiRXh0cmFjdCB0aGUgaGVhZGVyIGxpbmUgYWxpZ25lcnMg
ZnJvbSBub2RlIFRBQkxFLgorUmV0dXJuIGEgbGlzdCBvZiBsaXN0cyBvZiB0aGUgZm9ybToKKyAg
KDpiZWcgeHh4IDplbmQgeHh4IDphbGlnbiBsZWZ0KQorOmFsaWduIGlzIG9uZSBvZiBgbGVmdCcg
YGNlbnRlcicgYHJpZ2h0JyBgdW5zcGVjaWZpZWQnLiIKKyAgKGxldCogKChkZWxpbWl0ZXItcm93
ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93XFwn
IikpCisgICAgICAgICAoYWxpZ25lcnMKKyAgICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAg
ICAoZG9saXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1l
ZCkpCisgICAgICAgICAgICAgIChsZXQgKChhbGlnbi1iZWcgKHRyZWVzaXQtbm9kZS10eXBlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgZWx0IDAg
J25hbWUpKSkKKyAgICAgICAgICAgICAgICAgICAgKGFsaWduLWVuZCAodHJlZXNpdC1ub2RlLXR5
cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBl
bHQgLTEgJ25hbWUpKSkpCisgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QKKyAgICAgICAgICAg
ICAgICAgICAgICAgOmJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IGVsdCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgOmVuZCAodHJlZXNpdC1ub2RlLWVuZCBlbHQpCisgICAgICAgICAgICAgICAgICAg
ICAgIDphbGlnbgorICAgICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGFuZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1iZWcgInBpcGVfdGFibGVfYWxpZ25f
bGVmdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAi
cGlwZV90YWJsZV9hbGlnbl9sZWZ0IikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
bGVmdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZXF1YWwgYWxpZ24tYmVnICJwaXBlX3RhYmxlX2FsaWduX2xlZnQi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1lbmQgInBpcGVf
dGFibGVfYWxpZ25fcmlnaHQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWJlZyAicGlwZV90YWJsZV9hbGlnbl9yaWdodCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAicGlwZV90
YWJsZV9hbGlnbl9yaWdodCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCAndW5zcGVjaWZpZWQpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICByZXMpKSkKKyAgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkpCisg
ICAgYWxpZ25lcnMpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciAo
d2lkdGggYWxpZ24pCisgICJNYWtlIGEgTWFya2Rvd24gY29sdW1uIGFsaWduZXIuCitXSURUSCBp
cyB0aGUgY29sdW1uIHdpZHRoLgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBgcmln
aHQnIGB1bnNwZWNpZmllZCcuIgorICAocGNhc2UgYWxpZ24KKyAgICAoJ2xlZnQKKyAgICAgKGNv
bmNhdCAiOiIgKG1ha2Utc3RyaW5nICgxLSB3aWR0aCkgPy0pKSkKKyAgICAoJ2NlbnRlcgorICAg
ICAoY29uY2F0ICI6IiAobWFrZS1zdHJpbmcgKC0gd2lkdGggMikgPy0pICI6IikpCisgICAgKCdy
aWdodAorICAgICAoY29uY2F0IChtYWtlLXN0cmluZyAoMS0gd2lkdGgpID8tKSAiOiIpKQorICAg
IChfCisgICAgIChjb25jYXQgKG1ha2Utc3RyaW5nIHdpZHRoID8tKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS10YWJsZS1hbGlnbi1jZWxsICh0ZXh0IHdpZHRoIGFsaWduKQorICAiUmV0dXJu
IFRFWFQgcGFkZGVkIHRvIFdJRFRIIGFsaWduZWQgdXNpbmcgQUxJR04uCitUcnVuY2F0ZSBURVhU
IHdpZGVyIHRoYW4gV0lEVEguICBJdCBpcyB0aGUgY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8K
K2Vuc3VyZSB0ZXh0IHdpbGwgZml0LgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBg
cmlnaHQnIGB1bnNwZWNpZmllZCcuIgorICAobGV0KiAoKHN0cmxlbiAobGVuZ3RoIHRleHQpKQor
ICAgICAgICAgKHN0cmxlbjAgKG1pbiB3aWR0aCBzdHJsZW4pKQorICAgICAgICAgKHRleHQwIChz
dWJzdHJpbmcgdGV4dCAwIHN0cmxlbjApKQorICAgICAgICAgKHBhZCAoLSB3aWR0aCBzdHJsZW4w
KSkpCisgICAgKHBjYXNlIGFsaWduCisgICAgICAoJ2NlbnRlcgorICAgICAgIChsZXQqICgoaGFs
Zi1wYWQgKG1ha2Utc3RyaW5nIChmbG9vciAoLyBwYWQgMikpID9ccykpCisgICAgICAgICAgICAg
IChzIChjb25jYXQKKyAgICAgICAgICAgICAgICAgIGhhbGYtcGFkCisgICAgICAgICAgICAgICAg
ICB0ZXh0MAorICAgICAgICAgICAgICAgICAgaGFsZi1wYWQpKSkKKyAgICAgICAgIChzdHJpbmct
cGFkCisgICAgICAgICAgKHN1YnN0cmluZyBzIDAgKG1pbiAobGVuZ3RoIHMpIHdpZHRoKSkKKyAg
ICAgICAgICB3aWR0aCkpKQorICAgICAgKCdyaWdodAorICAgICAgIChzdHJpbmctcGFkIHRleHQg
d2lkdGggbmlsICdzdGFydCkpCisgICAgICAoXworICAgICAgIChzdHJpbmctcGFkIHRleHQgd2lk
dGgpKSkpKQorCis7Ozs7IENvbW1hbmRzOgorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5z
ZXJ0LXRhYmxlICgmb3B0aW9uYWwgbnJvd3MgbmNvbHMgaGVhZGluZ3MgYm9keSkKKyAgIkluc2Vy
dCBhIE1hcmtkb3duIHBpcGUgdGFibGUuCitOUk9XUyBpcyB0aGUgbnVtYmVyIG9mIHJvd3MgaW4g
dGhlIG5ldyB0YWJsZSBhbmQgZGVmYXVsdHMgdG8gMy4KKworTkNPTFMgaXMgdGhlIG51bWJlciBv
ZiBjb2x1bW5zIGFuZCBkZWZhdWx0cyB0byAzLgorCitIRUFESU5HUyBpcyBhIGxpc3Qgb2YgaGVh
ZGluZ3MgYW5kIGRlZmF1bHRzIHRvIGxlZnQtYWxpZ25lZCBzeW50aGVzaXplZAorY29sdW1uIG5h
bWVzLiAgSWYgTkNPTFMgaXMgbmlsLCB1c2UgSEVBRElOR1MgbGVuZ3RoLiAgSWYgYm90aCBOQ09M
UyBhbmQKK0hFQURJTkdTIGFyZSBub24tbmlsLCB1c2UgdXAgdG8gTkNPTFMgaGVhZGluZ3MsIHN5
bnRoZXNpemluZyB0aGUKK3JlbWFpbmRlci4KKworRWFjaCBoZWFkaW5nIGluIHRoZSBsaXN0IGNh
biBiZSBhIHN0cmluZyBjb2x1bW4gbmFtZSBvciBhIGNvbnMgb2YgdGhlCitmb3JtIChuYW1lIC4g
YWxpZ25tZW50KSB3aGVyZSBhbGlnbm1lbnQgaXMgb25lIG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywK
K2ByaWdodCcsIG9yIGBjZW50ZXInLiAgSWYgYSBzdHJpbmcsIGRlZmF1bHQgYWxpZ25tZW50IGlz
IHVuc3BlY2lmaWVkLgorCitJZiBCT0RZIGlzIG5vbi1uaWwsIGl0IGlzIGEgbGlzdCBvZiBOUk9X
UyByb3dzIHdoZXJlIGVhY2ggcm93IGlzIGEgbGlzdAorb2YgTkNPTFMgYm9keSBjZWxscy4KKwor
Rm9yIGNvbnZlbmllbmNlIGFuZCBhZXN0aGV0aWNzLCBwYWQgZWFjaCBib2R5IGNlbGwgdG8gdGhl
IHdpZHRoIG9mIGl0cworY29sdW1uJ3MgaGVhZGVyLCBhbmQgYWNjb21tb2RhdGUgYWxpZ25tZW50
IGluZGljYXRvcnMuICBJZiBhIEJPRFkgY2VsbAoraXMgbG9uZ2VyIHRoYW4gaXRzIGNvbHVtbiBo
ZWFkZXIsIGluc2VydCBpdCB1bmNoYW5nZWQuCisKK05vdGU6IEEgYmxhbmsgbGluZSBpcyBuZWVk
ZWQgYmVmb3JlIHRoZSB0YWJsZSBmb3IgaXQgdG8gcHJvcGVybHkgcmVuZGVyLgorSWYgdGhlIGxp
bmUgcHJlY2VkaW5nIGBwb2ludCcgaXMgbm90IGJsYW5rLCBpbnNlcnQgb25lLgorCitOb3RlOiBE
dWUgdG8gYW4gaXNzdWUgd2l0aCB0aGUgdHJlZS1zaXR0ZXIgTWFya2Rvd24gZ3JhbW1hciwgYSBy
b3cgb2YKK2VtcHR5IGNlbGxzIGNhdXNlcyBhIHBhcnNpbmcgZXJyb3IuICBUbyBhdm9pZCB0aGlz
LCBhbiBlbXB0eSByb3cgd2lsbAorY29udGFpbiBhIHNpbmdsZSBwZXJpb2QgaW4gaXRzIGZpcnN0
IGNlbGwuIgorICAoaW50ZXJhY3RpdmUpCisgIChzZXRxIG5yb3dzIChvciBucm93cyAzKSkKKyAg
KHNldHEgbmNvbHMgKG9yIG5jb2xzIChhbmQgaGVhZGluZ3MgKGxlbmd0aCBoZWFkaW5ncykpIDMp
KQorICAoc2V0cSBoZWFkaW5ncworICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAgKGRvdGlt
ZXMgKHggbmNvbHMpCisgICAgICAgICAgICAocHVzaCAob3IgKG50aCB4IGhlYWRpbmdzKQorICAg
ICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIkNvbHVtbiAlZCIgKDErIHgpKSkKKyAgICAgICAg
ICAgICAgICAgIHJlcykpCisgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKQorICAobGV0ICgoaGVh
ZGluZy13aWR0aHMKKyAgICAgICAgIChsZXQgKHJlcykKKyAgICAgICAgICAgKGRvbGlzdCAoZWx0
IGhlYWRpbmdzKQorICAgICAgICAgICAgIChsZXQgKChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIg
ZWx0KSBlbHQpKSkKKyAgICAgICAgICAgICAgIChwdXNoIChtYXggbWFya2Rvd24tdHMtdGFibGUt
ZGVmYXVsdC1jb2x1bW4td2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBz
dHIpKQorICAgICAgICAgICAgICAgICAgICAgcmVzKSkpCisgICAgICAgICAgIChucmV2ZXJzZSBy
ZXMpKSkpCisgICAgOzsgSWYgcG9pbnQgaXMgbm90IGF0IGJvbCwgaW5zZXJ0IGEgbmV3bGluZS4K
KyAgICAodW5sZXNzIChlcSAocG9pbnQpIChwb3MtYm9sKSkKKyAgICAgIChpbnNlcnQgIlxuIikp
CisgICAgOzsgSW5zZXJ0IGFuIGVtcHR5IGxpbmUgaWYgbmVlZGVkLgorICAgICh1bmxlc3MgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgLTEpCisgICAgICAgICAg
ICAgIChlcSAocG9zLWJvbCkgKHBvcy1lb2wpKSkKKyAgICAgIChpbnNlcnQgIlxuIikpCisgICAg
OzsgSW5zZXJ0IHBhZGRlZCBoZWFkaW5nIHRleHQuCisgICAgKGluc2VydCAifCIpCisgICAgKGRv
dGltZXMgKHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3MpKQorICAg
ICAgICAgICAgIChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIgZWx0KSBlbHQpKQorICAgICAgICAg
ICAgICh3aWR0aCAobWF4IDMgKG50aCB4IGhlYWRpbmctd2lkdGhzKSkpCisgICAgICAgICAgICAg
KHBhZC13aWR0aCAoLSB3aWR0aCAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGluc2VydCBzdHIg
KG1ha2Utc3RyaW5nIHBhZC13aWR0aCA/XHMpICJ8IikpKQorICAgIChpbnNlcnQgIlxuIikKKyAg
ICA7OyBJbnNlcnQgcGFkZGVkIGhlYWRpbmcgYWxpZ25lcnMuCisgICAgKGluc2VydCAifCIpCisg
ICAgKGRvdGltZXMgKHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3Mp
KQorICAgICAgICAgICAgIChhbGlnbiAoaWYgKGNvbnNwIGVsdCkgKGNkciBlbHQpICd1bnNwZWNp
ZmllZCkpCisgICAgICAgICAgICAgKHdpZHRoIChtYXggMyAobnRoIHggaGVhZGluZy13aWR0aHMp
KSkpCisgICAgICAgIChpbnNlcnQgKG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIgd2lk
dGggYWxpZ24pKSkKKyAgICAgIChpbnNlcnQgInwiKSkKKyAgICAoaW5zZXJ0ICJcbiIpCisgICAg
OzsgSW5zZXJ0IEJPRFkgY2VsbHMgb3IgZW1wdHkgY2VsbHMuCisgICAgKGRvdGltZXMgKHkgbnJv
d3MpCisgICAgICAoaW5zZXJ0ICJ8IikKKyAgICAgIChsZXQgKChyb3cgKG50aCB5IGJvZHkpKSkK
KyAgICAgICAgKGRvdGltZXMgKHggbmNvbHMpCisgICAgICAgICAgOzsgVE9ETzogUmVtb3ZlIHRo
ZSBwbGFjZWhvbGRlciBjaGFyYWN0ZXIgaWYgdGhlIHRyZWUtc2l0dGVyCisgICAgICAgICAgOzsg
Z3JhbW1hciBpcyByZXBhaXJlZC4KKyAgICAgICAgICAobGV0KiAoKHN0ciAob3IgKG50aCB4IHJv
dykgKGFuZCAoZXEgeCAwKSAiLiIpICIiKSkKKyAgICAgICAgICAgICAgICAgKHN0cmxlbiAobGVu
Z3RoIHN0cikpCisgICAgICAgICAgICAgICAgICh3aWR0aCAobnRoIHggaGVhZGluZy13aWR0aHMp
KQorICAgICAgICAgICAgICAgICAocGFkLXdpZHRoIChtYXggMCAoLSB3aWR0aCBzdHJsZW4pKSkp
CisgICAgICAgICAgICAoaW5zZXJ0IHN0cgorICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJp
bmcgcGFkLXdpZHRoID9ccykKKyAgICAgICAgICAgICAgICAgICAgInwiKSkpCisgICAgICAgIChp
bnNlcnQgIlxuIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUg
KCkKKyAgIlJlbW92ZSB0aGUgTWFya2Rvd24gdGFibGUgYXQgcG9pbnQuCitJZiBwb2ludCBpcyBu
b3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3du
LXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUpCisg
ICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisg
ICAgICAgICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkpCisgICAgOzsgVE9ETzogUmVtb3Zl
IGFmdGVyIGJ1ZyMyMzkwMyBVbmRvIGFmdGVyIGtiIGRpZmZlcnMgZnJvbSBhZnRlciBNLXgKKyAg
ICAocHVzaCAocG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgKGRlbGV0ZS1yZWdpb24gKHRy
ZWVzaXQtbm9kZS1zdGFydCB0YWJsZSkgKHRyZWVzaXQtbm9kZS1lbmQgdGFibGUpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgKCkKKyAgIk1vdmUgdG8gdGhlIHBy
ZXZpb3VzIHJvdyBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4i
CisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93IC0xKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICgmb3B0aW9uYWwgbikKKyAgIk1vdmUg
dG8gdGhlIG5leHQgcm93IGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8g
dGhlIHByZXZpb3VzIHJvdy4KK0lmIHBvaW50IGlzIG9uIHRoZSBsYXN0IHJvdyBvZiB0aGUgdGFi
bGUsIGluc2VydCBhIG5ldyByb3cgYmVsb3cgYW5kCittb3ZlIGludG8gaXQuICBXaXRoIGEgcHJl
Zml4IGFyZ3VtZW50LCBjbG9uZSB0aGUgZmluYWwgcm93IGludG8gdGhlIG5ldworb25lLgorSWYg
bm90IGluIGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93
bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cpCisgIChs
ZXQgKChiYWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkKKyAgICA7OyBEb24ndCB1c2UgYG1hcmtk
b3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcycgYmVjYXVzZSB3ZSB3YW50CisgICAgOzsg
dG8gb3BlcmF0ZSBpbiB0aGUgaGVhZGVyLgorICAgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFy
a2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0
LXRhYmxlKSkKKyAgICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAg
ICAgICAgICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IG5pbCBwb3MpKSkKKyAg
ICAgIDs7IElmIG5vIG5leHQgb3IgcHJldiBzaWJsaW5nLCB3ZSdyZSBvbiB0aGUgbGFzdC9maXJz
dCByb3cuCisgICAgICAobGV0ICgoY3VycmVudC1jb2x1bW4gKGN1cnJlbnQtY29sdW1uKSkKKyAg
ICAgICAgICAgIChuZXh0LXJvdyAoaWYgYmFja3dhcmRzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyByb3cgJ25hbWVkKSkpKQorICAg
ICAgICAoaWYgbmV4dC1yb3cKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBuZXh0LXJvdykpCisgICAgICAgICAgKHVubGVzcyBiYWNrd2FyZHMKKyAgICAgICAgICAg
IChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWJlbG93IGN1cnJlbnQtcHJlZml4LWFyZykp
KQorICAgICAgICAobW92ZS10by1jb2x1bW4gY3VycmVudC1jb2x1bW4pKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtdGFibGUtcHJldmlvdXMtY2VsbCAoKQorICAiTW92ZSB0byB0aGUgcHJldmlv
dXMgY2VsbCBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisg
IChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtY2VsbCAtMSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy10YWJsZS1uZXh0LWNlbGwgKCZvcHRpb25hbCBuKQorICAiTW92ZSB0
byB0aGUgbmV4dCBjZWxsIGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8g
dGhlIHByZXZpb3VzIGNlbGwuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChp
bnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10
cy10YWJsZS1uZXh0LWNlbGwpCisgIChsZXQgKChiYWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkK
KyAgICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQp
KQorICAgICAgICAgICAgICAgIChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAg
KHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5v
ZGUtYXQgcG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAgICAgICAgICAgIChjZWxsIChtYXJr
ZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUpKQorICAgICAgICAgICAgICAgIChjZWxsLXR5
cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgICAgICAgIChyb3cgKG1hcmtk
b3duLXRzLS10YWJsZS1ub2RlLXJvdyBjZWxsKSkKKyAgICAgICAgICAgICAgICAocm93LXR5cGUg
KHRyZWVzaXQtbm9kZS10eXBlIHJvdykpCisgICAgICAgICAgICAgICAgKG5leHQtY2VsbAorICAg
ICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgOzsgSWYgaW4gYSBwaXBlX3Rh
YmxlX2RlbGltaXRlcl9yb3cgYW5kIG5vdCB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgIDs7
IG9yIGZpbmFsIGNlbGwgaW4gdGhlIHJvdywgc3RheSB3aXRoaW4gdGhlIHJvdworICAgICAgICAg
ICAgICAgICAgOzsgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBjb25kaXRpb24gc2hvdWxkIG1hdGNo
LgorICAgICAgICAgICAgICAgICAgKChhbmQgKGVxdWFsIHJvdy10eXBlICJwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGJhY2t3YXJkcworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIGNlbGwg
J25hbWVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2li
bGluZyBjZWxsICduYW1lZCkpKQorICAgICAgICAgICAgICAgICAgIChpZiBiYWNrd2FyZHMKKyAg
ICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2LXNpYmxpbmcgY2VsbCAnbmFt
ZWQpCisgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBjZWxs
ICduYW1lZCkpKQorICAgICAgICAgICAgICAgICAgOzsgSWYgb24gdGhlIGZpcnN0IHBpcGVfdGFi
bGVfcm93J3MgZmlyc3QgY2VsbCBtb3ZpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGJhY2t3YXJk
cywgbW92ZSBpbnRvIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9k
ZWxpbWl0ZXJfY2VsbC4KKyAgICAgICAgICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUg
InBpcGVfdGFibGVfY2VsbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVz
aXQtbm9kZS10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAg
KG5vdCAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICBiYWNrd2FyZHMpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2Vh
cmNoLWZvcndhcmQKKyAgICAgICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAg
ICAiXFxgcGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAg
ICAgICAgICAgIDs7IElmIG9uIHRoZSBmaXJzdCBwaXBlX3RhYmxlX2hlYWRlcidzIGZpbmFsIGNl
bGwKKyAgICAgICAgICAgICAgICAgIDs7IG1vdmluZyBmb3J3YXJkcywgbW92ZSBpbnRvIHRoZSBm
aXJzdAorICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbC4KKyAg
ICAgICAgICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUgInBpcGVfdGFibGVfY2VsbCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJv
dyAnbmFtZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAodHJlZXNpdC1ub2Rl
LW5leHQtc2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAobm90
IGJhY2t3YXJkcykpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQK
KyAgICAgICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90
YWJsZV9kZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAgICAgICAgICAgICh0
CisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQKKyAgICAgICAgICAg
ICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9jZWxsXFwn
IiBiYWNrd2FyZHMpKSkpKQorICAgICAgOzsgS2VlcCBwb2ludCB3aXRoaW4gdGhlIGN1cnJlbnQg
dGFibGUuCisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJj
aC1mb3J3YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0LWNlbGwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAn
YmFja3dhcmQpKQorICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbmV4dC1j
ZWxsKSkpCisgICAgICAod2hlbiAob3IgKGVxIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24g
dCkKKyAgICAgICAgICAgICAgICAobWVtcSAnY2VsbC1uYXZpZ2F0aW9uIG1hcmtkb3duLXRzLXRh
YmxlLWF1dG8tYWxpZ24pKQorICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUp
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1iZWxvdyAoJm9wdGlv
bmFsIGNsb25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGJlbG93IHBvaW50LgorSWYgcG9pbnQg
aXMgaW4gdGhlIGhlYWRlciwgaW5zZXJ0IGJlbG93IHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxl
LgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUg
dGhlIGN1cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcu
IgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1w
cmVmaXgtYXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYmVsb3cgY2xv
bmUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1hYm92ZSAoJm9wdGlv
bmFsIGNsb25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBvaW50LgorSWYgcG9pbnQg
aXMgaW4gdGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxl
LgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUg
dGhlIGN1cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcu
IgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1w
cmVmaXgtYXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYWJvdmUgY2xv
bmUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93ICgpCisgICJJ
bnNlcnQgYSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBwb2ludCBpcyBpbiB0aGUgaGVhZGVy
LCBpbnNlcnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUgdGFibGUuCitJZiBwb2ludCBpcyBu
b3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3du
LXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cgJ2Nsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LXRhYmxlLWNsb25lLXJvdy1hYm92ZSAoKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBv
aW50LgorSWYgcG9pbnQgaXMgaW4gdGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCBy
b3cgb2YgdGhlIHRhYmxlLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcu
IgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWFib3Zl
ICdjbG9uZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93ICgmb3B0aW9u
YWwgYWJvdmUgY2xvbmUpCisgICJJbnNlcnQgYSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBw
b2ludCBpcyBpbiB0aGUgaGVhZGVyLCBpbnNlcnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUg
dGFibGUuCitJZiBBQk9WRSBpcyBub24tbmlsIGFuZCBpcyBub3QgYGJlbG93Jywgb3Igd2l0aCBh
IHByZWZpeCBhcmd1bWVudCwKK2luc2VydCB0aGUgcm93IGFib3ZlIHBvaW50LgorSWYgQ0xPTkUg
aXMgbm9uLW5pbCwgY2xvbmUgdGhlIGN1cnJlbnQgcm93LCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5
CitjZWxscy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGlu
dGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtcm93KQorICAoc2V0cSBhYm92ZSAoY29uZCAoKGVxIGFib3ZlICdi
ZWxvdykgbmlsKQorICAgICAgICAgICAgICAgICAgICAoYWJvdmUgYWJvdmUpCisgICAgICAgICAg
ICAgICAgICAgIChjdXJyZW50LXByZWZpeC1hcmcgdCkpKQorICAod2hlbi1sZXQqICgoYXQtdGFi
bGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChj
YXIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAg
ICAgICAgICAgIChkZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAobmNv
bHMgKHRyZWVzaXQtbm9kZS1jaGlsZC1jb3VudCBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAg
ICAgICAgICAgIChoZWFkaW5nLXdpZHRocworICAgICAgICAgICAgICAgKGxldCAocmVzKQorICAg
ICAgICAgICAgICAgICAoZG9saXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0
ZXItcm93ICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxlbmd0aCAodHJlZXNp
dC1ub2RlLXRleHQgZWx0KSkgcmVzKSkKKyAgICAgICAgICAgICAgICAgKG5yZXZlcnNlIHJlcykp
KSkKKyAgICAobGV0KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBv
cyBwb3MpKQorICAgICAgICAgICAocm93IChjYXIgbmVhcikpCisgICAgICAgICAgIChjdXJyZW50
LWNvbHVtbiAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIDs7IElmIHJvdyBpcyBuaWwsIHRoZXJl
IGFyZSB6ZXJvIHJvd3Mgc28gYWRkIG9uZSBiZWxvdyB0aGUKKyAgICAgIDs7IGRlbGltaXRlci1y
b3cuCisgICAgICAodW5sZXNzIHJvdworICAgICAgICAoc2V0cSBjbG9uZSBuaWwpCisgICAgICAg
IChzZXRxIHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAoc2V0cSBhYm92ZSBuaWwpKQorICAg
ICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChjb25kIChhYm92ZQorICAgICAgICAgICAgICAg
KGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHJvdykpKQorICAgICAgICAgICAgICAodAor
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCByb3cpKQorICAgICAg
ICAgICAgICAgKGluc2VydCAiXG4iKSkpCisgICAgICAgIChjb25kIChjbG9uZQorICAgICAgICAg
ICAgICAgOzsgVGhlIGNsb25lIHN0cmF0ZWd5IGlzIFdZU0lXWUcuICBKdXN0IGNvcHkgdGhlIHRl
eHQKKyAgICAgICAgICAgICAgIDs7IGFuZCBkb24ndCBmdXNzIHdpdGggY2VsbCBjb250ZW50IGFu
ZCBwaXBlIHN5bWJvbHMuCisgICAgICAgICAgICAgICA7OyBUaGUgZ3JhbW1hciBpbmNsdWRlcyB0
aGUgZmluYWwgbmV3bGluZSAoYW5kCisgICAgICAgICAgICAgICA7OyBzb21ldGltZXMgbm90KS4K
KyAgICAgICAgICAgICAgIChpbnNlcnQgKHN0cmluZy10cmltLXJpZ2h0CisgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgcm93ICduby1wcm9wZXJ0eSkgIlxuIikpKQor
ICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgKGluc2VydCAifCIpCisgICAgICAgICAg
ICAgICAoZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBhZC13aWR0
aCAobnRoIHggaGVhZGluZy13aWR0aHMpKSkKKyAgICAgICAgICAgICAgICAgICA7OyBUT0RPOiBS
ZW1vdmUgdGhlIHBsYWNlaG9sZGVyIGNoYXJhY3RlciBpZiB0aGUKKyAgICAgICAgICAgICAgICAg
ICA7OyB0cmVlLXNpdHRlciBncmFtbWFyIGlzIHJlcGFpcmVkLgorICAgICAgICAgICAgICAgICAg
IChpbnNlcnQgKGlmIChlcSB4IDApICIuIiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IChtYWtlLXN0cmluZyAoLSBwYWQtd2lkdGggKGlmIChlcSB4IDApIDEgMCkpID9ccykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ8IikpKSkpCisgICAgICAgICh3aGVuIGFib3ZlCisgICAg
ICAgICAgKGluc2VydCAiXG4iKSkpCisgICAgICAoY29uZCAoYWJvdmUKKyAgICAgICAgICAgICAo
d2hlbiAoPiBjdXJyZW50LWNvbHVtbiAwKQorICAgICAgICAgICAgICAgKHdpdGgtc3VwcHJlc3Nl
ZC13YXJuaW5ncyAoKGludGVyYWN0aXZlLW9ubHkgcHJldmlvdXMtbGluZSkpCisgICAgICAgICAg
ICAgICAgIChwcmV2aW91cy1saW5lKSkpKQorICAgICAgICAgICAgKHQgKHdpdGgtc3VwcHJlc3Nl
ZC13YXJuaW5ncyAoKGludGVyYWN0aXZlLW9ubHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAgICAg
ICAgKG5leHQtbGluZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1y
b3cgKCkKKyAgIkRlbGV0ZSB0aGUgdGFibGUgcm93IGF0IHBvaW50LgorSWYgcG9pbnQgaXMgb24g
dGhlIGhlYWRlciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90
IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10
cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLXJvdykKKyAgKHdo
ZW4tbGV0KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBuaWwg
dCkpCisgICAgICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBk
ZWxpbWl0ZXIgcm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgZGVsZXRl
IGEgYm9keSByb3cgdGhlIHVzZXIgZGlkIG5vdCBzZWxlY3QuCisgICAgICAgICAgICAgICgobm90
IChjZHIgbmVhcikpKQorICAgICAgICAgICAgICAocm93IChjYXIgbmVhcikpKQorICAgIChsZXQg
KChjdXJyZW50LWNvbHVtbiAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIChkZWxldGUtcmVnaW9u
ICh0cmVlc2l0LW5vZGUtc3RhcnQgcm93KQorICAgICAgICAgICAgICAgICAgICAgKG1pbiAoMSsg
KHRyZWVzaXQtbm9kZS1lbmQgcm93KSkgKHBvaW50LW1heCkpKQorICAgICAgKG1vdmUtdG8tY29s
dW1uIGN1cnJlbnQtY29sdW1uKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1y
b3ctdXAgKCkKKyAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1cCBvbmUgbGluZS4KK0lmIHBvaW50
IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFy
a2Rvd24tdHMtdGFibGUtbW92ZS1yb3cpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92
ZS1yb3ctZG93biAoKQorICAiTW92ZSB0aGUgcm93IGF0IHBvaW50IGRvd24gb25lIGxpbmUuCitJ
ZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkK
KyAgKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93ICdkb3duKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLXRhYmxlLW1vdmUtcm93ICgmb3B0aW9uYWwgZG93bikKKyAgIk1vdmUgdGhlIHJvdyBhdCBw
b2ludCB1cCBvbmUgbGluZS4KK0lmIERPV04gaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBh
cmd1bWVudCwgbW92ZSB0aGUgcm93IGRvd24gb25lCitsaW5lLgorSWYgcG9pbnQgaXMgb24gdGhl
IGhlYWRlciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90IGF0
IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3cpCisgIChzZXRxIGRv
d24gKG9yIGRvd24gY3VycmVudC1wcmVmaXgtYXJnKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxl
IChtYXJrZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2Fy
IGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAg
ICAgICAgICAobmVhciAobWFya2Rvd24tdHMtLXRhYmxlLWJvZHktcm93LW5lYXItcG9zIHBvcykp
CisgICAgICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBkZWxp
bWl0ZXIgcm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgbW92ZSBhIGJv
ZHkgcm93IHRoZSB1c2VyIGRpZCBub3Qgc2VsZWN0LgorICAgICAgICAgICAgICAoKG5vdCAoY2Ry
IG5lYXIpKSkKKyAgICAgICAgICAgICAgKHJvdyAoY2FyIG5lYXIpKSkKKyAgICA7OyBEbyBub3Qg
bW92ZSBhYm92ZSB0aGUgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93LgorICAgIDs7IERvIG5vdCBt
b3ZlIGJlbG93IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLgorICAgICh1bmxlc3MgKG9yIChhbmQg
KG5vdCBkb3duKQorICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGlu
ZyByb3cgJ25hbWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGlwZV90YWJsZV9k
ZWxpbWl0ZXJfcm93IikpCisgICAgICAgICAgICAgICAgKGFuZCBkb3duCisgICAgICAgICAgICAg
ICAgICAgICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpKSkpCisg
ICAgICAobGV0ICgocm93MiAoaWYgZG93bgorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpKSkKKyAgICAgICAgICAgIChyb3ctZW5k
ICh0cmVlc2l0LW5vZGUtZW5kIHJvdykpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIg
YnVnIzIzOTAzIFVuZG8gYWZ0ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAo
cHVzaCAocG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgICAgIDs7IElmIHJvdyBwb2ludCBp
cyBvdXRzaWRlIGl0cyBzb3VyY2UgcmVnaW9uLCBlLmcuLCBhdCBlb2wsIG1vdmUKKyAgICAgICAg
OzsgaXQgaW5zaWRlIHRoZSByZWdpb24gZm9yIHN0YWJpbGl0eS4KKyAgICAgICAgKHdoZW4gKD49
IChwb2ludCkgcm93LWVuZCkKKyAgICAgICAgICAoZ290by1jaGFyIChtYXggKHBvaW50LW1pbikg
KDEtIHJvdy1lbmQpKSkpCisgICAgICAgICh0cmFuc3Bvc2UtcmVnaW9ucyAodHJlZXNpdC1ub2Rl
LXN0YXJ0IHJvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5k
IHJvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgcm93
MikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHJvdzIpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdCAoJm9wdGlv
bmFsIGNsb25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIHRvIHRoZSBsZWZ0IG9mIHBvaW50
J3MgY29sdW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVu
dCwgY2xvbmUgdGhlIGN1cnJlbnQKK2NvbHVtbiwgb3RoZXJ3aXNlIGluc2VydCBlbXB0eSBjZWxs
cy4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2ludCBp
cyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICht
YXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uICdsZWZ0IGNsb25lKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQgKCZvcHRpb25hbCBjbG9uZSkKKyAg
Ikluc2VydCBhIHRhYmxlIGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQncyBjb2x1bW4uCitJ
ZiBDTE9ORSBpcyBub24tbmlsLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBjbG9uZSB0aGUg
Y3VycmVudAorY29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5IGNlbGxzLgorUG9pbnQgY2Fu
IGJlIGluIHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRh
YmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLXRh
YmxlLWluc2VydC1jb2x1bW4gJ3JpZ2h0IGNsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRh
YmxlLWNsb25lLWNvbHVtbi1sZWZ0ICgpCisgICJDbG9uZSB0aGUgY3VycmVudCBjb2x1bW4gdG8g
aXRzIGxlZnQuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYg
cG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisg
IChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgJ2Nsb25lKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLXRhYmxlLWNsb25lLWNvbHVtbi1yaWdodCAoKQorICAiQ2xvbmUgdGhlIGN1
cnJlbnQgY29sdW1uIHRvIGl0cyByaWdodC4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVh
ZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisg
IChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQg
J2Nsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4gKCZvcHRp
b25hbCBsZWZ0IGNsb25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIGFmdGVyIHBvaW50J3Mg
Y3VycmVudCBjb2x1bW4uCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5vdCBgcmlnaHQnLCBv
ciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LAoraW5zZXJ0IHRoZSBjb2x1bW4gdG8gdGhlIGxlZnQg
b2YgdGhlIGN1cnJlbnQgY29sdW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgY2xvbmUgdGhlIGN1
cnJlbnQgY29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5CitjZWxscy4KK0lmIENMT05FIGlz
IGEgbGlzdCwgaXRzIGZpcnN0IGVsZW1lbnQgaXMgdGFyZ2V0LWNvbHVtbi1udW1iZXIuICBJdCBp
cwordGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRoYXQgdGhpcyB2YWx1ZSBpcyB2YWxpZCBm
b3IgdGhlIHRhYmxlLAordGhvdWdoIGl0IG1heSBiZSBpbnZhbGlkIGZvciBhIG5vbi11bmlmb3Jt
IHJhZ2dlZCByb3cuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5Lgor
SWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUp
CisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtaW5z
ZXJ0LWNvbHVtbikKKyAgKHNldHEgbGVmdCAoY29uZCAoKGVxIGxlZnQgJ3JpZ2h0KSBuaWwpCisg
ICAgICAgICAgICAgICAgICAgKGxlZnQgbGVmdCkKKyAgICAgICAgICAgICAgICAgICAoY3VycmVu
dC1wcmVmaXgtYXJnIHQpKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJrZG93bi10cy1h
dC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAg
ICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAoZGVsaW1p
dGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAg
ICAgICA7OyBDb2x1bW4gcG9zIGZvciBpbnNlcnRpbmcgbWlzc2luZyBsZWFkaW5nIHBpcGVzLgor
ICAgICAgICAgICAgICAoZGVsaW0wLXBpcGUtY29sCisgICAgICAgICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgKGxldCogKChkZWxpbS1jZWxsICh0cmVlc2l0LW5vZGUt
Y2hpbGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXItcm93
IDAgJ25hbWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1z
dGFydCBkZWxpbS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisg
ICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9zLWJvbCkpCisgICAgICAgICAgICAgICAg
ICAgKGlmIChzZWFyY2gtZm9yd2FyZCAifCIgYmVnIHQpCisgICAgICAgICAgICAgICAgICAgICAg
ICgxLSAoY3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBi
ZWcpCisgICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKSkpKQorICAgICAgICAg
ICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24gJ25hbWVkKSkKKyAgICAg
ICAgICAgICAgKGNlbGwgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLWNlbGwgbm9kZSkpCisgICAg
ICAgICAgICAgIChwb2ludC1yb3cgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyBjZWxsKSkp
CisgICAgKGxldCAoKHRhYmxlLWNvbHVtbiAobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9k
ZS1jb2x1bW4gcG9pbnQtcm93IGNlbGwpKSkKKyAgICAgICh1bmxlc3MgdGFibGUtY29sdW1uCisg
ICAgICAgIChlcnJvciAiQ291bGQgbm90IGNvbXB1dGUgdGhlIHRhYmxlIGNvbHVtbiIpKQorICAg
ICAgOzsgTk9URTogR0ZNIHRhYmxlcyBhbGxvdyBub24tdW5pZm9ybSB0YWJsZSByb3dzLiAgVGhl
IGN1cnJlbnQgcm93CisgICAgICA7OyBjb3VsZCBoYXZlIGEgZGlmZmVyaW5nIG51bWJlciBvZiBj
b2x1bW5zIGZyb20gb3RoZXIgcm93cy4gIFdlCisgICAgICA7OyBzaWxlbnRseSBkbyBub3RoaW5n
IHRvIGEgcm93IHRoYXQgZG9lcyBub3QgZXh0ZW5kIHRvIHRoZQorICAgICAgOzsgY29tcHV0ZWQg
Y29sdW1uLgorICAgICAgOzsKKyAgICAgIDs7IE5PVEU6IFRoZSBncmFtbWFyIGFubm95aW5nbHkg
aWdub3JlcyBjZWxsIGxlYWRpbmcgd2hpdGVzcGFjZQorICAgICAgOzsgYnV0IGluY2x1ZGVzIHRy
YWlsaW5nIHdoaXRlc3BhY2UsIHNvIGNlbGxzIGFyZSBib3VuZGVkIGJ5IHRoZQorICAgICAgOzsg
Zmlyc3QgZ3JhcGggY2hhcmFjdGVyIHVwIHRvIHRoZSBsYXN0IGNoYXJhY3RlciBqdXN0IGJlZm9y
ZSB0aGUKKyAgICAgIDs7IHBpcGUgc3ltYm9sLCBpbmNsdWRpbmcgd2hpdGVzcGFjZS4gIFRoZSBy
ZXN1bHQgaXMgdGhlIHJhbmdlCisgICAgICA7OyBkb2VzIG5vdCBzdGFydCBpbW1lZGlhdGVseSBh
ZnRlciB0aGUgb3B0aW9uYWwgbGVhZGluZyBwaXBlCisgICAgICA7OyBzeW1ib2wgeWV0IGluY29u
c2lzdGVudGx5IGNvbnRpbnVlcyB1bnRpbCBqdXN0IGJlZm9yZSB0aGUKKyAgICAgIDs7IHRyYWls
aW5nIHBpcGUuCisgICAgICAobGV0KiAoKGFkaiAwKSA7IEFkanVzdCBub2RlIHBvc2l0aW9uIG9m
ZnNldHMgYnkgaW5zZXJ0ZWQgdGV4dC4KKyAgICAgICAgICAgICAod2lkdGggbWFya2Rvd24tdHMt
dGFibGUtZGVmYXVsdC1jb2x1bW4td2lkdGgpCisgICAgICAgICAgICAgKGVtcHR5IChtYWtlLXN0
cmluZyB3aWR0aCA/XHMpKQorICAgICAgICAgICAgIDs7IFRPRE86IFJlbW92ZSB0aGUgcGxhY2Vo
b2xkZXIgY2hhcmFjdGVyIGlmIHRoZSB0cmVlLXNpdHRlcgorICAgICAgICAgICAgIDs7IGdyYW1t
YXIgaXMgcmVwYWlyZWQuCisgICAgICAgICAgICAgKHBsYWNlaG9sZGVyIChjb25jYXQgIi4iICht
YWtlLXN0cmluZyAoMS0gd2lkdGgpID9ccykpKQorICAgICAgICAgICAgIChkZWxpbSAobWFrZS1z
dHJpbmcgd2lkdGggPy0pKQorICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRy
ZW4gdGFibGUgJ25hbWVkKSkKKyAgICAgICAgICAgICAobnJvd3MgKGxlbmd0aCByb3dzKSkKKyAg
ICAgICAgICAgICAodGFyZ2V0LWNvbHVtbi1udW1iZXIgKGFuZCAobGlzdHAgY2xvbmUpIChjYXIg
Y2xvbmUpKSkKKyAgICAgICAgICAgICA7OyBQb3NpdGlvbiB0byBtb3ZlIHBvaW50IHRvIGFmdGVy
IGFsbCByb3dzIGhhdmUgYmVlbgorICAgICAgICAgICAgIDs7IHVwZGF0ZWQuICBEZXRlcm1pbmlz
dGljIHBsYWNlbWVudCBhdm9pZHMgZGVwZW5kaW5nIG9uCisgICAgICAgICAgICAgOzsgdHJlZS1z
aXR0ZXIgbmF2aWdhdGlvbiB0aHJvdWdoIGZyZXNobHktaW5zZXJ0ZWQgZW1wdHkKKyAgICAgICAg
ICAgICA7OyBjZWxscywgd2hpY2ggdGhlIGdyYW1tYXIgZG9lcyBub3QgYWx3YXlzIHJlcGFyc2Ug
YXMKKyAgICAgICAgICAgICA7OyBwaXBlX3RhYmxlX2NlbGwgbm9kZXMuCisgICAgICAgICAgICAg
KHRhcmdldC1wb3MpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIgYnVnIzIzOTAzIFVu
ZG8gYWZ0ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAocHVzaCAocG9pbnQp
IGJ1ZmZlci11bmRvLWxpc3QpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICh3
aXRob3V0LXJlc3RyaWN0aW9uCisgICAgICAgICAgICAoZG90aW1lcyAoeCBucm93cykKKyAgICAg
ICAgICAgICAgKHdoZW4tbGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChyb3ctdHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIDs7IHNvdXJjZS1jZWxsIHdpbGwgYmUgbmlsIGlmIHRhYmxlLWNv
bHVtbiBpcyBiZXlvbmQgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByb3cncyBj
b2x1bW4gc2V0IGFuZCB0aGF0IHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzb3VyY2UtY2VsbCAobnRoIHRhYmxlLWNvbHVtbiBjb2xzKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgOzsgSWYgY2xvbmluZyB3aXRoIGEgc3BlY2lmaWVkIHRhcmdldC1j
b2x1bW4tbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0YXJnZXQtY2VsbCB3
aWxsIGJlIG5pbCBhbmQgdGhlIHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0YXJnZXQtY2VsbCAoaWYgdGFyZ2V0LWNvbHVtbi1udW1iZXIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggdGFyZ2V0LWNvbHVtbi1udW1i
ZXIgY29scykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Ut
Y2VsbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENvbXB1dGUgdGhlIGluc2VydGlv
biBwb2ludC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBjbG9uaW5nIHRvIGEgc3BlY2lmaWVkIHRhcmdl
dCwgdXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRhcmdldC1jZWxsJ3Mg
ZW5kLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0LWNvbHVtbi1udW1i
ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgdGFyZ2V0LWNlbGwpKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgaW5zZXJ0aW5nIHRvIHRoZSBs
ZWZ0IG9mIHRoZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjb2x1
bW4sIHVzZSBzb3VyY2UgY2VsbCdzIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDs7IGFkanVzdGVkIGZvciBpdHMgb3B0aW9uYWwgcGlwZSB0bworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBjYXB0dXJlIGl0cyB3aGl0ZXNwYWNlLiAgSWYgdGhlcmUgaXMK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbm8gcGlwZSwgdXNlIGJvbC4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgbGVmdCAoZXEgdGFibGUtY29sdW1u
IDApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHAgKCsgYWRqCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0IHNvdXJjZS1jZWxsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgKHBvcy1ib2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg
KHNlYXJjaC1mb3J3YXJkICJ8IiBwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBwICgxLSAocG9pbnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBwIChwb3MtYm9sKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNl
cnRpbmcgbGVmdCBhbmQgYW55IG90aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDs7IGNvbHVtbiwgdXNlIHRoZSBlbmQgb2YgdGhlIHByaW9yCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs
ZWZ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgxKyAodHJlZXNpdC1ub2RlLWVuZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnRoICgxLSB0YWJsZS1jb2x1bW4pIGNv
bHMpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNlcnRpbmcg
cmlnaHQsIHVzZSB0aGUgZW5kIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7
IHRoZSBjdXJyZW50IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHNvdXJjZS1jZWxsKSkpKSkpCisg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAgICAgKGxldCogKChv
cmlnLXBvaW50IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgIChtaXNzaW5nLWxlYWRp
bmctcGlwZQorICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRhYmxlLWNvbHVtbiAw
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb3MtYm9sKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodW5sZXNzIChzZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgrIGFkaiAodHJlZXNpdC1ub2RlLXN0YXJ0IHNvdXJjZS1jZWxsKSkgdCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ8IikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRleHQg
KGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIGNsb25pbmcsIHJldHJp
ZXZlIHRoZSBzb3VyY2UgY2VsbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGNsb25lIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOzsgQmFjayB1cCB0byBib2wgb3IgdGhlIHBpcGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdG8gY2FwdHVyZSB0aGUgd2hpdGVz
cGFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGUgZ3JhbW1h
ciBsZWF2ZXMgb3V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290
by1jaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0IHNvdXJjZS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIltbOmJsYW5rOl1dIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3MtYm9sKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGogKHRyZWVzaXQtbm9kZS1lbmQg
c291cmNlLWNlbGwpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBuZXcg
Y29sdW1uLCBhbmQgdGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7
IGRlbGltaXRlciByb3csIGluc2VydCBhIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1
YWwgcm93LXR5cGUgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVsaW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJ
ZiBuZXcgY29sdW1uLCBhbmQgdGhpcyBpcyB0aGUgYSBoZWFkZXIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IG9yIGJvZHkgcm93LCBpbnNlcnQgYSBkZWZhdWx0IGVtcHR5CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5KSkpKQor
ICAgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoY2xvbmUKKyAgICAg
ICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgdGhlIGZp
cnN0IGNvbHVtbiB0byB0aGUgbGVmdC4gIElmIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgICAg
IDs7IG5vIHBpcGUgYmVmb3JlIHRoZSBjZWxsIGNvbnRlbnQsIGluc2VydCBvbmUuCisgICAgICAg
ICAgICAgICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciBtaXNzaW5nLWxlYWRp
bmctcGlwZSAiIikpKQorICAgICAgICAgICAgICAgICAgICA7OyBDbG9uZSB0aGUgZmlyc3QgY29s
dW1uIHRvIHRoZSByaWdodC4KKyAgICAgICAgICAgICAgICAgICAgICgoYW5kIChub3QgbGVmdCkg
KGVxIHRhYmxlLWNvbHVtbiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8Igor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkKKyAgICAgICAgICAgICAgICAgICAg
ICA7OyBGb3IgYSBwb3NpdGl2ZSB1c2VyIGV4cGVyaWVuY2UgZ2l2ZW4gZ3JhbW1hcgorICAgICAg
ICAgICAgICAgICAgICAgIDs7IGJ1Z3MsIGFkZCBhIG1pc3NpbmcgbGVhZGluZyBwaXBlIHRvIHRo
ZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgIDs7IGNlbGwgYXQgYSBwbGVhc2luZyBwb3Np
dGlvbiBhZnRlciBjbG9uaW5nLgorICAgICAgICAgICAgICAgICAgICAgICh3aGVuIG1pc3Npbmct
bGVhZGluZy1waXBlCisgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKG1vdmUtdG8tY29sdW1uIGRlbGltMC1waXBlLWNvbCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIpKSkpCisgICAgICAgICAgICAg
ICAgICAgIDs7IENsb25lIHRoZSBmaW5hbCBjb2x1bW4gdG8gdGhlIGxlZnQuCisgICAgICAgICAg
ICAgICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gKDEtIG5jb2xzKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgKGluc2VydCB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAifCIpKQorICAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgYSBtaWRkbGUgY29sdW1u
IHRvIHRoZSBsZWZ0LgorICAgICAgICAgICAgICAgICAgICAgKGxlZnQKKyAgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0IHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ8Iikp
CisgICAgICAgICAgICAgICAgICAgICA7OyBDbG9uZSBhIG1pZGRsZSBvciBmaW5hbCBjb2x1bW4g
dG8gdGhlIHJpZ2h0LgorICAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAg
ICAgICAoaW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkpKSkK
KworICAgICAgICAgICAgICAgICAgIDs7IE5vdCBjbG9uaW5nLCBpbnNlcnQgYSBuZXcgY29sdW1u
LgorICAgICAgICAgICAgICAgICAgICgoYW5kIGxlZnQgKGVxIHRhYmxlLWNvbHVtbiAwKSAoZXEg
eCAoMS0gbnJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxdWFsIHJvdy10
eXBlICJwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKSkpCisgICAgICAgICAgICAgICAgICAgOzsg
VE9ETzogcmVtb3ZlIHBsYWNlaG9sZGVyIGxvZ2ljLgorICAgICAgICAgICAgICAgICAgICAoaW5z
ZXJ0CisgICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAgICAgICAgICAgICAgICAgIHBsYWNl
aG9sZGVyCisgICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2luZy1sZWFkaW5nLXBpcGUgIiIp
KSkKKyAgICAgICAgICAgICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisg
ICAgICAgICAgICAgICAgICAgICAgKGluc2VydAorICAgICAgICAgICAgICAgICAgICAgICAifCIK
KyAgICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAob3Ig
bWlzc2luZy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAgICAgICAgICAgICAgICAgICAobGVmdAorICAg
ICAgICAgICAgICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICB0ZXh0CisgICAg
ICAgICAgICAgICAgICAgICAifCIpKQorICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAg
ICAgICAgICAgIChpbnNlcnQKKyAgICAgICAgICAgICAgICAgICAgICJ8IgorICAgICAgICAgICAg
ICAgICAgICAgdGV4dCkpKQorCisgICAgICAgICAgICAgICAgICA7OyBDYXB0dXJlIHRoZSBzdGFy
dCBvZiB0aGUgbmV3IGNlbGwncyBjb250ZW50IGluCisgICAgICAgICAgICAgICAgICA7OyB0aGUg
cm93IHRoYXQgb3JpZ2luYWxseSBjb250YWluZWQgcG9pbnQuCisgICAgICAgICAgICAgICAgICAo
d2hlbiAoYW5kIChub3QgdGFyZ2V0LXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHRyZWVzaXQtbm9kZS1lcSByb3cgcG9pbnQtcm93KSkKKyAgICAgICAgICAgICAgICAgICAgKHNl
dHEgdGFyZ2V0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRhcmdldC1jb2x1bW4tbnVtYmVyCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5k
IGxlZnQgKG5vdCAoZXEgdGFibGUtY29sdW1uIDApKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOzsgInRleHQgfCIgaW5zZXJ0ZWQgYXQgYmVnLgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcmlnLXBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
OyBBbGwgb3RoZXIgYnJhbmNoZXMgaW5zZXJ0ICJ8IiBmaXJzdC4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxKyBvcmlnLXBvaW50KSkpKSkpCisKKyAgICAgICAgICAgICAgICAgIDs7
IEFkanVzdCBvZmZzZXQgZm9yIGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgIChzZXRx
IGFkaiAoKyBhZGogKC0gKHBvaW50KSBvcmlnLXBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG9yaWctcG9pbnQgKHBvaW50KSkpKSkpKQorICAgICAgICAod2hlbiB0YXJnZXQtcG9zCisg
ICAgICAgICAgKGdvdG8tY2hhciB0YXJnZXQtcG9zKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy10YWJsZS1kZWxldGUtY29sdW1uICgpCisgICJEZWxldGUgdGhlIHRhYmxlIGNvbHVtbiBhdCBw
b2ludC4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2lu
dCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1h
cmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29s
dW1uKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmls
IHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAo
dGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0t
dGFibGUtbm9kZS1jZWxsIG5pbCBwb3MpKQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10
cy0tdGFibGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAgICAgIChjb2xzICh0cmVlc2l0LW5v
ZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29scyAobGVuZ3RoIGNv
bHMpKSkKKyAgICAobGV0ICgodGFibGUtY29sdW1uIChtYXJrZG93bi10cy0tdGFibGUtY29tcHV0
ZS1ub2RlLWNvbHVtbiByb3cgY2VsbCkpKQorICAgICAgKHVubGVzcyB0YWJsZS1jb2x1bW4KKyAg
ICAgICAgKGVycm9yICJDb3VsZCBub3QgY29tcHV0ZSB0aGUgdGFibGUgY29sdW1uIikpCisgICAg
ICA7OyBOT1RFOiBHRk0gdGFibGVzIGFsbG93IG5vbi11bmlmb3JtIHRhYmxlIHJvd3MuICBUaGUg
Y3VycmVudCByb3cKKyAgICAgIDs7IGNvdWxkIGhhdmUgYSBkaWZmZXJpbmcgbnVtYmVyIG9mIGNv
bHVtbnMgZnJvbSBvdGhlciByb3dzLiAgV2UKKyAgICAgIDs7IHNpbGVudGx5IGRvIG5vdGhpbmcg
dG8gYSByb3cgdGhhdCBkb2VzIG5vdCBleHRlbmQgdG8gdGhlCisgICAgICA7OyBjb21wdXRlZCBj
b2x1bW4uCisgICAgICA7OworICAgICAgOzsgTk9URTogVGhlIGdyYW1tYXIgYW5ub3lpbmdseSBp
Z25vcmVzIGNlbGwgbGVhZGluZyB3aGl0ZXNwYWNlCisgICAgICA7OyBidXQgZG9lcyBpbmNsdWRl
IHRyYWlsaW5nIHdoaXRlc3BhY2Ugc28gY2VsbHMgYXJlIGJvdW5kZWQgYnkKKyAgICAgIDs7IHRo
ZSBmaXJzdCBncmFwaCBjaGFyYWN0ZXIgdXAgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIGp1c3QgYmVm
b3JlCisgICAgICA7OyB0aGUgcGlwZSBzeW1ib2wsIGluY2x1ZGluZyB3aGl0ZXNwYWNlLgorICAg
ICAgOzsKKyAgICAgIDs7IFRoZSBncmFtbWFyIGFsc28gY29uc2lkZXJzIHRoZSB0cmFpbGluZyBw
aXBlIHN5bWJvbCB0byBiZSBhCisgICAgICA7OyBwYXJ0IG9mIGl0cyBwcmVjZWRpbmcgY2VsbCBz
byB0aGF0J3Mgd2hhdCB3ZSBkZWxldGUgd2hlbiB3ZQorICAgICAgOzsgZGVsZXRlIGEgY29sdW1u
J3MgY2VsbDsgaS5lLiwgaWYgdGhlcmUgaXMgYSBwaXBlIGJlZm9yZSB0aGUKKyAgICAgIDs7IGZp
cnN0IGNvbHVtbiwgd2UgZGVsZXRlIGl0LgorICAgICAgKGxldCogKChhZGogMCkgOyBBZGp1c3Qg
bm9kZSBwb3NpdGlvbiBvZmZzZXRzIGJ5IGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAocm93
cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgKG5y
b3dzIChsZW5ndGggcm93cykpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAo
d2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAg
ICAgICAgICAgIDs7IElmIGNlbGwgaXMgbmlsLCBpdCBpcyBiZXlvbmQgdGhlIHRhYmxlLWNvbHVt
biBhbmQgaXRzCisgICAgICAgICAgICAgIDs7IHJvdyBpcyBpZ25vcmVkLgorICAgICAgICAgICAg
ICAod2hlbi1sZXQqICgocm93IChudGggeCByb3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjZWxsIChudGggdGFibGUtY29sdW1uIGNvbHMpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY2VsbC1iZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBjZWxsKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNlbGwtZW5kICh0cmVlc2l0LW5vZGUtZW5kIGNlbGwpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBBZGp1c3QgYmVnIHRvIHRyaW0gdGhlIGdyYW1tYXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgOzsgdW5hY2NvdW50ZWQtZm9yIGxlYWRpbmcgd2hpdGVz
cGFjZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBJZiB0aGlzIGlzIHRoZSBzb2xlIGNvbHVtbiwgZGVsZXRl
IGZyb20gYm9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxIG5jb2xzIDEp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtYmVn
IGFkaikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWJvbCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIHRoaXMgaXMgdGhlIGZpcnN0IGNvbHVt
biwgZGVsZXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGZyb20gdGhlIHBp
cGUsIGlmIHRoZXJlIGlzIG9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg
b3RoZXJ3aXNlIGNlbGwtYmVnLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVx
IHRhYmxlLWNvbHVtbiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAo
KHAgKC0gY2VsbC1iZWcgYWRqKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciAocG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo
c2VhcmNoLWZvcndhcmQgInwiIHAgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgdGhpcyBpcyB0aGUg
ZmluYWwgY29sdW1uLCBkZWxldGUgZnJvbSB0aGUgcHJpb3IgcGlwZSBzeW1ib2wuCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgocCAoLSAodHJlZXNpdC1ub2Rl
LWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGgg
KDEtIHRhYmxlLWNvbHVtbikgY29scykpIGFkaikpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpZiAoc2VhcmNoLWZvcndhcmQgInwiICgtIGNlbGwtYmVnIGFkaikgdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDs7IE90aGVyd2lzZSwgc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOzsgcHJpb3IgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtICh0cmVlc2l0LW5v
ZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggKDEt
IHRhYmxlLWNvbHVtbikgY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhZGopKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBlbmQgdG8gdHJp
bSB0aGUgdHJhaWxpbmcgcGlwZSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg
Y29uc2lkZXJlZCBieSB0aGUgZ3JhbW1hciB0byBiZSBwYXJ0IG9mIGl0cworICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBwcmVjZWRpbmcgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGVuZCAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB0aGlz
IGlzIHRoZSBzb2xlIGNvbHVtbiwgZGVsZXRlIHVudGlsIGVvbC4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKChlcSBuY29scyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciAoLSBjZWxsLWJlZyBhZGopKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBvcy1lb2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
OyBJZiB0aGlzIGlzIHRoZSBmaW5hbCBjb2x1bW4sIGRlbGV0ZSB1bnRpbCBlb2wuCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtZW5kIGFk
aikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDs7IE90aGVyd2lzZSwgbG9vayBmb3J3YXJkIGZyb20g
Y2VsbC1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKHdoaWNoIGluY2x1
ZGVzIHRoZSBjZWxsJ3MgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ozsgd2hpdGVzcGFjZSkgZm9yIGEgcGlwZSBzeW1ib2wuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
ICgtIGNlbGwtZW5kIGFkaikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg
KHJlLXNlYXJjaC1mb3J3YXJkICJ8Kz8iIChwb3MtZW9sKSB0KQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjZWxsLWVuZCkpKSkpCisgICAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24g
YmVnIGVuZCkKKyAgICAgICAgICAgICAgICAoc2V0cSBhZGogKCsgYWRqICgtIGVuZCBiZWcpKSkp
KSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdCAoKQor
ICAiTW92ZSB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIGl0cyBsZWZ0LgorUG9pbnQgY2Fu
IGJlIGluIHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRh
YmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUt
bW92ZS1jb2x1bW4gJ2xlZnQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1
bW4tcmlnaHQgKCkKKyAgIk1vdmUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byBpdHMgcmln
aHQuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQg
aXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJr
ZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbiAncmlnaHQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
dGFibGUtbW92ZS1jb2x1bW4gKCZvcHRpb25hbCBsZWZ0KQorICAiTW92ZSB0aGUgdGFibGUgY29s
dW1uIGF0IHBvaW50IHJpZ2h0IG9yIGxlZnQuCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5v
dCBgcmlnaHQnLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LAorbW92ZSB0aGUgY29sdW1uIHRv
IGl0cyBsZWZ0LgorRG8gbm90aGluZyBpZiBhIHJvdyBiZWluZyBtb3ZlZCBpcyBub3Qgd2l0aGlu
IHRoZSBjb2x1bW5zIG9mIHRoZSBoZWFkZXIuCitEbyBub3RoaW5nIGlmIG1vdmluZyBsZWZ0IGFu
ZCB0aGUgY3VycmVudCBjb2x1bW4gaXMgdGhlIGZpcnN0IGNvbHVtbiBvZgordGhlIGN1cnJlbnQg
cm93LgorRG8gbm90aGluZyBpZiBtb3ZpbmcgcmlnaHQgYW5kIHRoZSBjdXJyZW50IGNvbHVtbiBp
cyB0aGUgZmluYWwgY29sdW1uIG9mCit0aGUgY3VycmVudCByb3cuCitQb2ludCBjYW4gYmUgaW4g
dGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRv
IG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3Qt
bW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4pCisgIChzZXRxIGxlZnQgKGNvbmQg
KChlcSBsZWZ0ICdyaWdodCkgbmlsKQorICAgICAgICAgICAgICAgICAgIChsZWZ0IGxlZnQpCisg
ICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtcHJlZml4LWFyZyB0KSkpCisgICh3aGVuLWxldCog
KChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAg
IChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxl
KSkKKyAgICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duICdu
YW1lZCkpCisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxs
IG5vZGUpKQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cg
bm9kZSkpCisgICAgICAgICAgICAgIChoZWFkZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlxcYHBpcGVfdGFibGVfaGVhZGVyXFwnIikpCisgICAgICAgICAgICAgIChu
aGVhZGVycyAobGVuZ3RoICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gaGVhZGVyLXJvdyAnbmFtZWQp
KSkKKyAgICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVk
KSkKKyAgICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpKQorICAgIChsZXQgKCh0YWJs
ZS1jb2x1bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIHJvdyBjZWxs
KSkpCisgICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAoZXJyb3IgIkNvdWxkIG5v
dCBjb21wdXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIChpZiAoPj0gdGFibGUtY29sdW1u
IG5oZWFkZXJzKQorICAgICAgICAgIChtZXNzYWdlICJSYWdnZWQvdW5ldmVuIGNvbHVtbiBjYW5u
b3QgYmUgbW92ZWQiKQorICAgICAgICA7OyBBIEIgQyBEIC0+IEIgQSBDIEQKKyAgICAgICAgOzsg
TW92ZSBBIGxlZnQ6IGRvIG5vdGhpbmcKKyAgICAgICAgOzsgTW92ZSBEIHJpZ2h0OiBkbyBub3Ro
aW5nCisgICAgICAgIDs7IE1vdmUgY3VycmVudCBjb2x1bW4gbGVmdDoKKyAgICAgICAgOzsgICBz
b3VyY2UgY29sdW1uID0gdCAtIDEKKyAgICAgICAgOzsgTW92ZSBjdXJyZW50IGNvbHVtbiByaWdo
dDoKKyAgICAgICAgOzsgICBjbG9uZSB0IHRvIHQrMSBpZiB0aGUgZmluYWwgY29sdW1uLCBvdGhl
cndpc2UgdCsyCisgICAgICAgIDs7ICAgZGVsZXRlIHQKKyAgICAgICAgKGNvbmQgKChhbmQgbGVm
dCAoZXEgdGFibGUtY29sdW1uIDApKQorICAgICAgICAgICAgICAgKG1lc3NhZ2UgIkxlZnRtb3N0
IGNvbHVtbiBjYW5ub3QgYmUgbW92ZWQgbGVmdCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAg
ICAgICAgICAgICgoYW5kIChub3QgbGVmdCkgKGVxIHRhYmxlLWNvbHVtbiAoMS0gbmNvbHMpKSkK
KyAgICAgICAgICAgICAgIChtZXNzYWdlICJSaWdodG1vc3QgY29sdW1uIGNhbm5vdCBiZSBtb3Zl
ZCByaWdodCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAgICAgICAgICAgICh0CisgICAgICAg
ICAgICAgICAobGV0ICgoc291cmNlLWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgxLSB0YWJsZS1jb2x1bW4pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLWNvbHVtbikpCisgICAgICAgICAgICAgICAgICAg
ICAodGFyZ2V0LWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhYmxlLWNvbHVtbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoMSsgdGFibGUtY29sdW1uKSkpKQorICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1uIHNv
dXJjZS1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2Vy
dC1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0IChsaXN0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0LWNvbHVtbikpKQorICAgICAgICAgICAgICAgICAobWFya2Rv
d24tdHMtdGFibGUtLWdvdG8tY29sdW1uIHNvdXJjZS1jb2x1bW4pCisgICAgICAgICAgICAgICAg
IChtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uKQorICAgICAgICAgICAgICAgICA7OyBF
bXB0eSBjZWxscyBjYW4gY29uZnVzZSB0aGUgZ3JhbW1hciwgc28gbm8tZXJyb3IgaGVyZS4KKyAg
ICAgICAgICAgICAgICAgKGlmIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10
cy10YWJsZS0tZ290by1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UtY29sdW1u
ICduby1lcnJvcikKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8t
Y29sdW1uCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC1jb2x1bW4gJ25vLWVycm9yKSkpKSkp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4tbGVmdCAoKQorICAi
QWxpZ24gdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byB0aGUgbGVmdC4KK0RvIHRoZSB3b3Jr
IHdpdGggYG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVtbicsIHdoaWNoIHNlZSBmb3IgbW9y
ZQorZGV0YWlscy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWFsaWdu
LWNvbHVtbiAnbGVmdCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4t
Y2VudGVyICgpCisgICJBbGlnbiB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIHRoZSBjZW50
ZXIuCitEbyB0aGUgd29yayB3aXRoIGBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4nLCB3
aGljaCBzZWUgZm9yIG1vcmUKK2RldGFpbHMuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93
bi10cy10YWJsZS1hbGlnbi1jb2x1bW4gJ2NlbnRlcikpCisKKyhkZWZ1biBtYXJrZG93bi10cy10
YWJsZS1hbGlnbi1jb2x1bW4tcmlnaHQgKCkKKyAgIkFsaWduIHRoZSB0YWJsZSBjb2x1bW4gYXQg
cG9pbnQgdG8gdGhlIHJpZ2h0LgorRG8gdGhlIHdvcmsgd2l0aCBgbWFya2Rvd24tdHMtdGFibGUt
YWxpZ24tY29sdW1uJywgd2hpY2ggc2VlIGZvciBtb3JlCitkZXRhaWxzLiIKKyAgKGludGVyYWN0
aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uICdyaWdodCkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4gKCZvcHRpb25hbCBhbGlnbikKKyAgIkFs
dGVyIHRoZSB0YWJsZSBjb2x1bW4gYWxpZ25tZW50IGF0IHBvaW50LgorQWx0ZXIgdGhlIGNvbHVt
biBwb2ludCBpcyBpbi4KKworTm90ZTogVG8gY29tcHV0ZSB0aGUgY29sdW1uLCBwb2ludCBtdXN0
IGJlIHdpdGhpbiB0aGUgY29sdW1uIGFuZCBjYW5ub3QKK2JlIG9uIHRoZSBsZWFkaW5nIG9yIHRy
YWlsaW5nIHdoaXRlc3BhY2Ugb3Igb24gYSBjb2x1bW4gZGVsaW1pdGVyLgorCitBTElHTiBjYW4g
YmUgb25lIG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywgYGNlbnRlcicsIGByaWdodCcgb3IgbmlsIGZv
cgordW5zcGVjaWZpZWQgb3IgdGhlIGNoYXJhY3RlcnMgbCwgYywgb3Igci4KKworSWYgQUxJR04g
aXMgbmlsLCBhc3N1bWUgdW5zcGVjaWZpZWQuICBNYWtlIHRoZSBhbGlnbm1lbnQgc3RyaW5nIGEK
K21pbmltdW0gb2YgNSBjaGFyYWN0ZXJzIHRvIGFjY29tbW9kYXRlIE1hcmtkb3duIGNvbnZlbnRp
b25zLgorCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRl
cmFjdGl2ZSAiY0FsaWduIGNvbHVtbiBbbF1lZnQgW2NdZW50ZXIgW3JdaWdodCBbdV1uc3BlY2lm
aWVkOiIpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFi
bGUtYWxpZ24tY29sdW1uKQorICAoc2V0cSBhbGlnbiAoaWYgKGNoYXJhY3RlcnAgYWxpZ24pCisg
ICAgICAgICAgICAgICAgICAocGNhc2UgYWxpZ24gKD9sICdsZWZ0KSAoP2MgJ2NlbnRlcikgKD9y
ICdyaWdodCkpCisgICAgICAgICAgICAgICAgYWxpZ24pKQorICAod2hlbi1sZXQqICgoYXQtdGFi
bGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChj
YXIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAg
ICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93biAnbmFtZWQpKQor
ICAgICAgICAgICAgICAoY2VsbCAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtY2VsbCBub2RlKSkK
KyAgICAgICAgICAgICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IGNlbGwpKQor
ICAgICAgICAgICAgICAoYWxpZ25lcnMgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJs
ZSkpKQorICAgIChsZXQgKCh0YWJsZS1jb2x1bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRl
LW5vZGUtY29sdW1uIHJvdyBjZWxsKSkpCisgICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAg
ICAgICAoZXJyb3IgIkNvdWxkIG5vdCBjb21wdXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAg
IDs7IE5PVEU6IEdGTSB0YWJsZXMgYWxsb3cgbm9uLXVuaWZvcm0gdGFibGUgcm93cy4gIFRoZSBj
dXJyZW50IHJvdworICAgICAgOzsgY291bGQgaGF2ZSBhIGRpZmZlcmluZyBudW1iZXIgb2YgY29s
dW1ucyBmcm9tIHRoZSBoZWFkZXIuICBXZQorICAgICAgOzsgc2lsZW50bHkgZG8gbm90aGluZyBp
ZiB3ZSBjYW4ndCBmaW5kIGEgbWF0Y2hpbmcgaGVhZGVyIGNvbHVtbi4KKyAgICAgICh3aGVuLWxl
dCogKChhbGlnbmVyIChudGggdGFibGUtY29sdW1uIGFsaWduZXJzKSkKKyAgICAgICAgICAgICAg
ICAgIChiZWcgKHBsaXN0LWdldCBhbGlnbmVyIDpiZWcpKQorICAgICAgICAgICAgICAgICAgKGVu
ZCAocGxpc3QtZ2V0IGFsaWduZXIgOmVuZCkpCisgICAgICAgICAgICAgICAgICAoc3RyIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgYmVnIGVuZCkpCisgICAgICAgICAgICAgICAgICAo
c3RybGVuIChtYXggNSAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVn
IGVuZCkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBiZWcp
CisgICAgICAgICAgKGluc2VydCAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciBzdHJs
ZW4gYWxpZ24pKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSAo
Jm9wdGlvbmFsIGFsaWduLWNlbGxzKQorICAiQWxpZ24gdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBv
aW50LgorQWRqdXN0IGVhY2ggY29sdW1uJ3Mgd2lkdGggdG8gYWNjb21tb2RhdGUgaXRzIHdpZGVz
dCBjb25zdGl0dWVudCBjZWxsLgorSWYgQUxJR04tQ0VMTFMgaXMgbm9uLW5pbCwgb3Igd2l0aCBh
IHByZWZpeCBhcmd1bWVudCwgYXBwbHkgdGhlCitkZWxpbWl0ZXIgcm93J3MgYWxpZ25tZW50IHRv
IGNlbGwgY29udGVudC4gIEFMSUdOLUNFTExTIGlzIG5vbi1uaWwgaWYKK3RoZSB1c2VyIG9wdGlv
biBgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tZmVhdHVyZXMnIGluY2x1ZGVzCitganVzdGlmeS1j
ZWxscycuCitBbmNob3IgdGhlIGNvbHVtbnMgdG8gdGhlIGRlbGltaXRlciByb3cuICBJZ25vcmUg
cm93cyB0aGF0IGNvbnRhaW4KK2NvbHVtbnMgYmV5b25kIHRoZSBkZWxpbWl0ZXIgcm93LgorSWYg
bm90IGluIGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAobWFy
a2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRhYmxlLWFsaWduLXRhYmxl
KQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQp
KQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChi
ZWcgKHRyZWVzaXQtbm9kZS1zdGFydCB0YWJsZSkpCisgICAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgdGFibGUpKQorICAgICAgICAgICAgICAoXyAobWFya2Rvd24tdHMtLXRhYmxl
LXRpY2stc3RhbGUtcCBiZWcpKQorICAgICAgICAgICAgICAocm93cyAodHJlZXNpdC1ub2RlLWNo
aWxkcmVuIHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgIChucm93cyAobGVuZ3RoIHJvd3Mp
KQorICAgICAgICAgICAgICAoZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQor
ICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAg
IlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAoYWxpZ25l
cnMgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJsZSkpCisgICAgICAgICAgICAgIChj
b2xzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gZGVsaW1pdGVyLXJvdyAnbmFtZWQpKQorICAgICAg
ICAgICAgICAobmNvbHMgKGxlbmd0aCBjb2xzKSkKKyAgICAgICAgICAgICAgKGNvbC13aWR0aHMg
KG1ha2UtaGFzaC10YWJsZSA6c2l6ZSBuY29scyA6dGVzdCAnZXF1YWwpKQorICAgICAgICAgICAg
ICAoY2VsbC10ZXh0IChtYWtlLWhhc2gtdGFibGUgOnNpemUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0
ICdlcXVhbCkpKQorICAgIChzZXRxIGFsaWduLWNlbGxzIChvciBhbGlnbi1jZWxscworICAgICAg
ICAgICAgICAgICAgICAgICAgICBjdXJyZW50LXByZWZpeC1hcmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG1lbXEgJ2p1c3RpZnktY2VsbHMgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tZmVh
dHVyZXMpKSkKKyAgICAod2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgOzsgQ29sbGVjdCBjZWxs
IHRleHQgYW5kIGNvbXB1dGUgbWF4IGNvbHVtbiB3aWR0aHMuCisgICAgICA7OyBEbyBub3QgdXNl
IHRoZSBkZWxpbWl0ZXIgcm93IGZvciB3aWR0aCBjb21wdXRhdGlvbi4KKyAgICAgIChkb3RpbWVz
ICh4IG5yb3dzKQorICAgICAgICAobGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAg
ICAgICAoY2VsbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkpCisgICAgICAg
ICAgKGRvdGltZXMgKHkgbmNvbHMpCisgICAgICAgICAgICA7OyBTa2lwIG5pbCBjZWxscy0tdGhl
IHBhcnNlciBnb3QgY29uZnVzZWQuCisgICAgICAgICAgICAod2hlbi1sZXQqICgoY2VsbCAobnRo
IHkgY2VsbHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKHN0cmluZy10cmltLXJp
Z2h0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGNl
bGwgJ25vLXByb3BlcnR5KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAodyAobGVuZ3RoIHRl
eHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHcwIChvciAoZ2V0aGFzaCB5IGNvbC13aWR0
aHMpIDApKSkKKyAgICAgICAgICAgICAgOzsgRWxpZGUgZGVsaW1pdGVyIHdpZHRocy4KKyAgICAg
ICAgICAgICAgKHVubGVzcyAoZXEgeCAxKQorICAgICAgICAgICAgICAgICh3aGVuICg+IHcgdzAp
CisgICAgICAgICAgICAgICAgICAocHV0aGFzaCB5IHcgY29sLXdpZHRocykpKQorICAgICAgICAg
ICAgICAocHV0aGFzaCAoY29ucyB4IHkpIHRleHQgY2VsbC10ZXh0KSkpKSkKKworICAgICAgKGxl
dCAoKHNvdXJjZS1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAgICh3aXRoLXRlbXAt
YnVmZmVyCisgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAgICAoZG90aW1l
cyAoeSBuY29scykKKyAgICAgICAgICAgICAgKGxldCogKCh3aWR0aCAob3IgKGdldGhhc2ggeSBj
b2wtd2lkdGhzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1kZWZhdWx0LWNvbHVtbi13aWR0aCkpCisgICAgICAgICAgICAgICAgICAgICAoYWxpZ24g
KG9yIChwbGlzdC1nZXQgKG50aCB5IGFsaWduZXJzKSA6YWxpZ24pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpCisgICAgICAgICAgICAgICAgICAgICA7OyBD
b25mdXNlZCBjZWxscyBoYXZlIG5pbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgKHRleHQg
KG9yIChnZXRoYXNoIChjb25zIHggeSkgY2VsbC10ZXh0KSAiIikpCisgICAgICAgICAgICAgICAg
ICAgICAodGV4dDAgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbi1jZWxsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRleHQgd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIGFsaWduLWNlbGxzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpKSkKKyAgICAgICAg
ICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICA7OyBIZWFkZXIgcm93LgorICAgICAgICAg
ICAgICAgICAoKGVxIHggMCkKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkK
KyAgICAgICAgICAgICAgICAgOzsgRGVsaW1pdGVyIHJvdy4gIFVzZSB1bmFsaWduZWQgdGV4dC4K
KyAgICAgICAgICAgICAgICAgKChlcSB4IDEpCisgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxp
Z25lciB3aWR0aCBhbGlnbikpKQorICAgICAgICAgICAgICAgICA7OyBCb2R5IHJvdy4KKyAgICAg
ICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkpKSkK
KyAgICAgICAgICAgIChpbnNlcnQgInwiICJcbiIpKQorICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1
ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVy
IHNvdXJjZS1idWZmZXIKKyAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJl
ZyBlbmQgdGVtcC1idWZmZXIpKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLXRhYmxlLXRpY2stdXBk
YXRlIGJlZykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtdHJhbnNwb3NlLXRhYmxlICgp
CisgICJUcmFuc3Bvc2UgdGhlIHJvd3MgYW5kIGNvbHVtbnMgb2YgdGhlIE1hcmtkb3duIHRhYmxl
IGF0IHBvaW50LgorVXNlIHVuc3BlY2lmaWVkIGNvbHVtbiBhbGlnbm1lbnQgaW4gdGhlIHRyYW5z
cG9zZWQgdGFibGUuCitJZiB0YWJsZSdzIHJvd3MgYXJlIG5vdCB1bmlmb3JtIHdpdGggdGhvc2Ug
b24gdGhlIGRlbGltaXRlciByb3csIHNpZ25hbAorYW4gZXJyb3IuCitJZiBub3QgaW4gYSB0YWJs
ZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlm
LW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS10cmFuc3Bvc2UtdGFibGUpCisgICh3aGVuLWxl
dCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAg
ICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKGJlZyAodHJlZXNpdC1u
b2RlLXN0YXJ0IHRhYmxlKSkKKyAgICAgICAgICAgICAgKGVuZCAodHJlZXNpdC1ub2RlLWVuZCB0
YWJsZSkpCisgICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFibGUg
J25hbWVkKSkKKyAgICAgICAgICAgICAgKG5yb3dzIChsZW5ndGggcm93cykpCisgICAgICAgICAg
ICAgIChkZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJs
ZV9kZWxpbWl0ZXJfcm93XFwnIikpCisgICAgICAgICAgICAgIChhbGlnbmVycyAobWFya2Rvd24t
dHMtLXRhYmxlLWFsaWduZXJzIHRhYmxlKSkKKyAgICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQt
bm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29s
cyAobGVuZ3RoIGNvbHMpKQorICAgICAgICAgICAgICAoY2VsbC10ZXh0IChtYWtlLWhhc2gtdGFi
bGUgOnNpemUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0ICdlcXVhbCkpKQorICAgICh3aXRob3V0LXJl
c3RyaWN0aW9uCisgICAgICA7OyBDb2xsZWN0IGNlbGwgdGV4dCBhbmQgaW52ZXJ0IGNvb3JkaW5h
dGVzLgorICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgIChsZXQqICgocm93IChudGgg
eCByb3dzKSkKKyAgICAgICAgICAgICAgIChjZWxscyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJv
dyAnbmFtZWQpKSkKKyAgICAgICAgICAoZG90aW1lcyAoeSBuY29scykKKyAgICAgICAgICAgIDs7
IFNraXAgbmlsIGNlbGxzLS10aGUgcGFyc2VyIGdvdCBjb25mdXNlZC4KKyAgICAgICAgICAgICh3
aGVuLWxldCogKChjZWxsIChudGggeSBjZWxscykpCisgICAgICAgICAgICAgICAgICAgICAgICAo
dGV4dCAoc3RyaW5nLXRyaW0tcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLXRleHQgY2VsbCAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgIChw
dXRoYXNoIChjb25zIHkgeCkgdGV4dCBjZWxsLXRleHQpKSkpKQorCisgICAgICAobGV0ICgoc291
cmNlLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIK
KyAgICAgICAgICAoZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgIDs7IFN5bnRoZXNpemUg
YSBkZWxpbWl0ZXIgcm93LgorICAgICAgICAgICAgKHdoZW4gKGVxIHggMSkKKyAgICAgICAgICAg
ICAgKGRvdGltZXMgKF95ICgxLSBucm93cykpCisgICAgICAgICAgICAgICAgKGluc2VydCAifCIK
KyAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdGFibGUtbWFrZS1hbGlnbmVy
CisgICAgICAgICAgICAgICAgICAgICAgICAgKG1heCA1IG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1
bHQtY29sdW1uLXdpZHRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkp
KQorICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IiAiXG4iKSkKKyAgICAgICAgICAgIChkb3RpbWVz
ICh5IG5yb3dzKQorICAgICAgICAgICAgICA7OyBTa2lwIHRoZSBvcmlnaW5hbCBkZWxpbWl0ZXIg
cm93LgorICAgICAgICAgICAgICAodW5sZXNzIChlcSB5IDEpCisgICAgICAgICAgICAgICAgOzsg
Q29uZnVzZWQgY2VsbHMgaGF2ZSBuaWwgdGV4dC4KKyAgICAgICAgICAgICAgICAobGV0ICgodGV4
dCAob3IgKGdldGhhc2ggKGNvbnMgeCB5KSBjZWxsLXRleHQpICIiKSkpCisgICAgICAgICAgICAg
ICAgICAoaW5zZXJ0ICJ8IiB0ZXh0KSkpKQorICAgICAgICAgICAgKGluc2VydCAifCIgIlxuIikp
CisgICAgICAgICAgKGxldCAoKHRlbXAtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpKQorICAgICAg
ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAgICAgICAgICAo
cmVwbGFjZS1yZWdpb24tY29udGVudHMgYmVnIGVuZCB0ZW1wLWJ1ZmZlcikpKSkpKQorICAgICh3
aGVuIChvciAoZXEgbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiB0KQorICAgICAgICAgICAg
ICAobWVtcSAndHJhbnNwb3NlIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24pKQorICAgICAg
KG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
dGFibGUtY29udmVydC1jc3YtcmVnaW9uICggYmVnIGVuZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UpCisgICJDb252ZXJ0
IHRoZSBjb21tYS1zZXBhcmF0ZWQgcmVnaW9uIEJFRyB0byBFTkQgdG8gYSBNYXJrZG93biB0YWJs
ZS4KK0lmIEhFQURFUi1MSU5FIGlzIG5vbi1uaWwsIHVzZSB0aGUgZmlyc3QgbGluZSBvZiB0aGUg
cmVnaW9uIGFzIHRoZSB0YWJsZQorY29sdW1uIGhlYWRlci4gIElmIG5pbCwgaW5mZXIgdGhlIG51
bWJlciBvZiBjb2x1bW5zIGFuZCBzeW50aGVzaXplCitjb2x1bW4gbmFtZXMgZnJvbSB0aGUgZmly
c3QgbGluZS4KKworTm90ZTogQm9keSBjb2x1bW5zIGJleW9uZCB0aGUgcHJvdmlkZWQgb3IgaW5m
ZXJyZWQgbnVtYmVyIG9mIGNvbHVtbnMgYXJlCitkcm9wcGVkLgorCitJZiBSRVBMQUNFIGlzIG5v
bi1uaWwsIG92ZXJ3cml0ZSB0aGUgcmVnaW9uIEJFRyBFTkQgd2l0aCB0aGUgTWFya2Rvd24KK3Rh
YmxlLCBvdGhlcndpc2UgaW5zZXJ0IHRoZSB0YWJsZSBhZnRlciBFTkQuCisKK1dpdGggYSBzaW5n
bGUgcHJlZml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24tbmlsLgorV2l0aCBhIGRvdWJs
ZSBwcmVmaXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4KK1dpdGggYSB0cmlwbGUgcHJl
Zml4IGFyZ3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGludGVyYWN0aXZlICJSIikKKyAg
KG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtcmVnaW9uIGJlZyBlbmQgaGVhZGVyLWxpbmUgcmVw
bGFjZSAnY3N2KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lv
biAoIGJlZyBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWFkZXItbGluZSByZXBsYWNlKQorICAiQ29udmVydCB0aGUgdGFiLXNlcGFyYXRlZCByZWdp
b24gQkVHIHRvIEVORCB0byBhIE1hcmtkb3duIHRhYmxlLgorSWYgSEVBREVSLUxJTkUgaXMgbm9u
LW5pbCwgdXNlIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSByZWdpb24gYXMgdGhlIHRhYmxlCitjb2x1
bW4gaGVhZGVyLiAgSWYgbmlsLCBpbmZlciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHN5bnRo
ZXNpemUKK2NvbHVtbiBuYW1lcyBmcm9tIHRoZSBmaXJzdCBsaW5lLgorCitOb3RlOiBCb2R5IGNv
bHVtbnMgYmV5b25kIHRoZSBwcm92aWRlZCBvciBpbmZlcnJlZCBudW1iZXIgb2YgY29sdW1ucyBh
cmUKK2Ryb3BwZWQuCisKK0lmIFJFUExBQ0UgaXMgbm9uLW5pbCwgb3ZlcndyaXRlIHRoZSByZWdp
b24gQkVHIEVORCB3aXRoIHRoZSBNYXJrZG93bgordGFibGUsIG90aGVyd2lzZSBpbnNlcnQgdGhl
IHRhYmxlIGFmdGVyIEVORC4KKworV2l0aCBhIHNpbmdsZSBwcmVmaXggYXJndW1lbnQsIEhFQURF
Ui1MSU5FIGlzIG5vbi1uaWwuCitXaXRoIGEgZG91YmxlIHByZWZpeCBhcmd1bWVudCwgUkVQTEFD
RSBpcyBub24tbmlsLgorV2l0aCBhIHRyaXBsZSBwcmVmaXggYXJndW1lbnQsIGJvdGggYXJlIG5v
bi1uaWwuIgorICAoaW50ZXJhY3RpdmUgIlIiKQorICAobWFya2Rvd24tdHMtdGFibGUtY29udmVy
dC1yZWdpb24gYmVnIGVuZCBoZWFkZXItbGluZSByZXBsYWNlICd0c3YpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtdGFibGUtY29udmVydC1yZWdpb24gKCBiZWcgZW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UgZm9ybWF0KQorICAiQ29u
dmVydCB0aGUgY29tbWEtc2VwYXJhdGVkIHJlZ2lvbiBCRUcgdG8gRU5EIHRvIGEgTWFya2Rvd24g
dGFibGUuCitJZiBIRUFERVItTElORSBpcyBub24tbmlsLCB1c2UgdGhlIGZpcnN0IGxpbmUgb2Yg
dGhlIHJlZ2lvbiBhcyB0aGUgdGFibGUKK2NvbHVtbiBoZWFkZXIuICBJZiBuaWwsIGluZmVyIHRo
ZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgc3ludGhlc2l6ZQorY29sdW1uIG5hbWVzIGZyb20gdGhl
IGZpcnN0IGxpbmUuCisKK05vdGU6IEJvZHkgY29sdW1ucyBiZXlvbmQgdGhlIHByb3ZpZGVkIG9y
IGluZmVycmVkIG51bWJlciBvZiBjb2x1bW5zIGFyZQorZHJvcHBlZC4KKworSWYgUkVQTEFDRSBp
cyBub24tbmlsLCBvdmVyd3JpdGUgdGhlIHJlZ2lvbiBCRUcgRU5EIHdpdGggdGhlIE1hcmtkb3du
Cit0YWJsZSwgb3RoZXJ3aXNlIGluc2VydCB0aGUgdGFibGUgYWZ0ZXIgRU5ELgorCitGT1JNQVQg
aXMgb25lIG9mIHRoZSBzeW1ib2xzIGBjc3YnIGZvciBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzLCBv
ciBgdHN2JworZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzLiAgSWYgYW55IG90aGVyIHZhbHVlLCB1
c2UgYGNzdicuCisKK1dpdGggYSBzaW5nbGUgcHJlZml4IGFyZ3VtZW50LCBIRUFERVItTElORSBp
cyBub24tbmlsLgorV2l0aCBhIGRvdWJsZSBwcmVmaXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9u
LW5pbC4KK1dpdGggYSB0cmlwbGUgcHJlZml4IGFyZ3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIK
KyAgKGludGVyYWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdt
YXJrZG93bi10cy10YWJsZS1jb252ZXJ0LXJlZ2lvbikKKworICAoY29uZCAoKGVxdWFsIGN1cnJl
bnQtcHJlZml4LWFyZyAnKDQpKQorICAgICAgICAgKHNldHEgaGVhZGVyLWxpbmUgdCkpCisgICAg
ICAgICgoZXF1YWwgY3VycmVudC1wcmVmaXgtYXJnICcoMTYpKQorICAgICAgICAgKHNldHEgcmVw
bGFjZSB0KSkKKyAgICAgICAgKChlcXVhbCBjdXJyZW50LXByZWZpeC1hcmcgJyg2NCkpCisgICAg
ICAgICAoc2V0cSBoZWFkZXItbGluZSB0CisgICAgICAgICAgICAgICByZXBsYWNlIHQpKSkKKyAg
KGxldCAocm93cykKKyAgICAoc2F2ZS1yZXN0cmljdGlvbgorICAgICAgKG5hcnJvdy10by1yZWdp
b24gYmVnIGVuZCkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAod2hpbGUg
KDwgKHBvaW50KSAocG9pbnQtbWF4KSkKKyAgICAgICAgKHBjYXNlIGZvcm1hdAorICAgICAgICAg
ICgndHN2CisgICAgICAgICAgICAgKHB1c2gKKyAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZwor
ICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIChw
b3MtZW9sKSkgIlx0IikKKyAgICAgICAgICAgICAgcm93cykpCisgICAgICAgICAgIChfCisgICAg
ICAgICAgICAobGV0IChyb3cpCisgICAgICAgICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndh
cmQKKyAgICAgICAgICAgICAgICAgICAgICAiXCJcXCg/OlteXCJdXFx8XCJcIlxcKSpcIlxcfFte
LF0rXFx8XCJcIiIKKyAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkgdCkKKyAgICAgICAg
ICAgICAgICAocHVzaAorICAgICAgICAgICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5n
CisgICAgICAgICAgICAgICAgICAiXCJcIiIgIlwiIgorICAgICAgICAgICAgICAgICAgKHJlcGxh
Y2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICJcXGBcIlxcKFwuKlxcKVwi
XFwnIgorICAgICAgICAgICAgICAgICAgICJcXDEiCisgICAgICAgICAgICAgICAgICAgKHN1YnN0
cmluZy1uby1wcm9wZXJ0aWVzIChtYXRjaC1zdHJpbmcgMCkpKSkKKyAgICAgICAgICAgICAgICAg
cm93KSkKKyAgICAgICAgICAgICAgKHB1c2ggKG5yZXZlcnNlIHJvdykgcm93cykpKSkKKyAgICAg
ICAgKGZvcndhcmQtbGluZSAxKSkKKyAgICAgICAgKHNldHEgcm93cyAobnJldmVyc2Ugcm93cykp
CisgICAgICAgIChjb25kIChyZXBsYWNlIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpKQorICAgICAg
ICAgICAgICAodCAoZ290by1jaGFyIGVuZCkpKQorICAgICAgICAoaWYgaGVhZGVyLWxpbmUKKyAg
ICAgICAgICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKDEtIChsZW5ndGggcm93
cykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGgg
KGNhciByb3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGNhciByb3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Y2RyIHJvd3MpKQorICAgICAgICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKGxl
bmd0aCByb3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxl
bmd0aCAoY2FyIHJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZS1jc3YgKCZvcHRpb25h
bCBkaXNwbGF5KQorICAiRXhwb3J0IHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludCB0byBjb21t
YS1zZXBhcmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGgg
YSBwcmVmaXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9y
dGluZy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVy
YWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICdj
c3YpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdiAoJm9wdGlv
bmFsIGRpc3BsYXkpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRvIHRh
Yi1zZXBhcmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGgg
YSBwcmVmaXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9y
dGluZy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVy
YWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICd0
c3YpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlICgmb3B0aW9uYWwg
ZGlzcGxheSBmb3JtYXQpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRv
IENTViBpbiBhIGJ1ZmZlci4KK0lmIERJU1BMQVkgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZp
eCBhcmd1bWVudCwgZGlzcGxheSB0aGUgZXhwb3J0CitidWZmZXIgYWZ0ZXIgZXhwb3J0aW5nLgor
Rk9STUFUIGlzIG9uZSBvZiB0aGUgc3ltYm9scyBgY3N2JyBmb3IgY29tbWEtc2VwYXJhdGVkIHZh
bHVlcyBha2EgQ1NWLAorb3IgYHRzdicgZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGFrYSBUU1Yu
ICBJZiBhbnkgb3RoZXIgdmFsdWUsIHVzZQorYGNzdicuICBJZiBUU1YsIHJlcGxhY2UgYW55IHRh
YnMgd2l0aGluIGEgZmllbGQgd2l0aCBhIHNwYWNlLgorRG8gbm90IGV4cG9ydCB0aGUgdGFibGUn
cyBoZWFkZXIgZGVsaW1pdGVyIHJvdy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBu
b3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5v
dC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUpCisgICh3aGVuLWxldCogKChh
dC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICh0
YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKHJvd3MgKHRyZWVzaXQtbm9kZS1j
aGlsZHJlbiB0YWJsZSAnbmFtZWQpKQorICAgICAgICAgICAgICAoaGVhZGVyICh0cmVlc2l0LXNl
YXJjaC1zdWJ0cmVlIHRhYmxlICJcXGBwaXBlX3RhYmxlX2hlYWRlclxcJyIpKQorICAgICAgICAg
ICAgICAoZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIp
KQorICAgICAgICAgICAgICAoZXhwb3J0LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIp
KSkKKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBleHBvcnQtYnVmZmVyCisgICAgICAoc3BlY2lh
bC1tb2RlKQorICAgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQorICAgICAgICAod2lk
ZW4pCisgICAgICAgIChlcmFzZS1idWZmZXIpCisgICAgICAgIChkb2xpc3QgKHJvdyByb3dzKQor
ICAgICAgICAgICh1bmxlc3MgKGVxdWFsIHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAgICAg
KGxldCogKChlbHRzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgICAgKGxlbiAobGVuZ3RoIGVsdHMpKSkKKyAgICAgICAgICAgICAgKGRvdGltZXMg
KHggbGVuKQorICAgICAgICAgICAgICAgIChsZXQgKChzIChzdHJpbmctdHJpbSAodHJlZXNpdC1u
b2RlLXRleHQgKG50aCB4IGVsdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgICAg
ICAocGNhc2UgZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICgndHN2CisgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlx0IiAiXHMiIHMpKQor
ICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKDwgeCAoMS0gbGVuKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgKGluc2VydCAiXHQiKSkpCisgICAgICAgICAgICAgICAgICAgIChfCisgICAgICAg
ICAgICAgICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmct
bWF0Y2ggIltcIixdIiBzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcIiIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdpZGVudGl0eSAoc3BsaXQtc3RyaW5nIHMgIlwiIikg
IlwiXCIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiIpCisgICAgICAg
ICAgICAgICAgICAgICAgICBzKSkKKyAgICAgICAgICAgICAgICAgICAgICh3aGVuICg8IHggKDEt
IGxlbikpCisgICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIiwiKSkpKSkpCisgICAgICAg
ICAgICAgIChpbnNlcnQgIlxuIikpKSkKKyAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkp
KQorICAgICh3aGVuIGRpc3BsYXkKKyAgICAgIChkaXNwbGF5LWJ1ZmZlciBleHBvcnQtYnVmZmVy
KSkpKQorCis7OzsgSGVscGVyczoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlz
aWJsZS1wIChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgaW5zaWRlIGFuIG91dGxp
bmUtZm9sZGVkIHJlZ2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEgKG92KSAoZXEgKG92ZXJsYXkt
Z2V0IG92ICdpbnZpc2libGUpICdvdXRsaW5lKSkKKyAgICAgICAgICAgKG92ZXJsYXlzLWF0IHBv
cykpKQogCiAoZGVmdW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzICgpCiAgICJSZXR1cm4g
cmFuZ2Ugc2V0dGluZ3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0gICh0cmVlc2l0LXJhbmdl
LXJ1bGVzCi0gICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQotICAgOmhvc3QgJ21hcmtkb3duCi0g
ICA6cmFuZ2UtZm4gIyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4KLSAgICcoKGlu
bGluZSkgQG1hcmtkb3duLWlubGluZSkKLQotICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvbnZl
cnQtY29kZS1ibG9jay1sYW5ndWFnZQotICAgOmhvc3QgJ21hcmtkb3duCi0gICA6bG9jYWwgdAot
ICAgJygoZmVuY2VkX2NvZGVfYmxvY2sgKGluZm9fc3RyaW5nIChsYW5ndWFnZSkgQGxhbmd1YWdl
KQotICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVudCkgQGNvbnRlbnQp
KSkpCisgIChhcHBseQorICAgIyd0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICBgKDplbWJlZCBtYXJr
ZG93bi1pbmxpbmUKKyAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgKChpbmxpbmUpIEBtYXJrZG93
bi1pbmxpbmUpCisgICAgICxAKHdoZW4gbWFya2Rvd24tdHMtZm9udGlmeS1jb2RlLWJsb2Nrcy1u
YXRpdmVseQorICAgICAgICAgJyg6ZW1iZWQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFu
Z3VhZ2UKKyAgICAgICAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgICAgICAgOmxvY2FsIHQKKyAg
ICAgICAgICAgKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbGFu
Z3VhZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVu
dCkgQGNvbnRlbnQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92
ZXJsYXlzICgpCisgICJSZW1vdmUgYWxsIGlubGluZSBpbWFnZSBvdmVybGF5cyBmcm9tIHRoZSBj
dXJyZW50IGJ1ZmZlci4iCisgIChkb2xpc3QgKG92IChvdmVybGF5cy1pbiAocG9pbnQtbWluKSAo
cG9pbnQtbWF4KSkpCisgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10cy1pbWFn
ZSkKKyAgICAgIChkZWxldGUtb3ZlcmxheSBvdikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1v
dXRsaW5lLXZpZXctY2hhbmdlICgpCisgICJVcGRhdGUgaW1hZ2Ugb3ZlcmxheXMgYWZ0ZXIgb3V0
bGluZSBmb2xkL3VuZm9sZC4KK1JlbW92ZXMgaW1hZ2Ugb3ZlcmxheXMgaW4gZm9sZGVkIHJlZ2lv
bnMgYW5kIHRyaWdnZXJzCityZWZvbnRpZmljYXRpb24gc28gdGhhdCBpbWFnZXMgaW4gdW5mb2xk
ZWQgcmVnaW9ucyBhcmUgcmVjcmVhdGVkLiIKKyAgKHdoZW4gbWFya2Rvd24tdHMtaW5saW5lLWlt
YWdlcworICAgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQorICAgIChmb250
LWxvY2stZmx1c2gpKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJrdXAgKHZh
bHVlKQogICAiU2V0IGhpZGluZyBvZiBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGUg
Y3VycmVudCBidWZmZXIuCkBAIC0zNDgsNiArNDYwMCw4IEBAIG1hcmtkb3duLXRzLS1zZXQtaGlk
ZS1tYXJrdXAKICAgKGlmIHZhbHVlCiAgICAgICAoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVjICdt
YXJrZG93bi10cy0tbWFya3VwKQogICAgIChyZW1vdmUtZnJvbS1pbnZpc2liaWxpdHktc3BlYyAn
bWFya2Rvd24tdHMtLW1hcmt1cCkpCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMK
KyAgICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykpCiAgIChmb250LWxvY2st
Zmx1c2gpKQogCiAoZGVmdW4gbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwICgpCkBAIC0z
NTYsMTIyICs0NjEwLDcyNiBAQCBtYXJrZG93bi10cy10b2dnbGUtaGlkZS1tYXJrdXAKICAgKHNl
dHEgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkp
CiAgIChtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
KSkKIAorKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdlcyAodmFsdWUpCisgICJT
ZXQgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4KK1ZBTFVF
IG5vbi1uaWwgZGlzcGxheXMgaW1hZ2VzLCBuaWwgcmVtb3ZlcyB0aGVtLiIKKyAgKGlmIHZhbHVl
CisgICAgICAodHJlZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1cmVzICcoaW1hZ2UtcHJl
dmlldykpCisgICAgKHRyZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyBuaWwgJyhp
bWFnZS1wcmV2aWV3KSkpCisgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQor
ICAoZm9udC1sb2NrLWZsdXNoKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUt
aW1hZ2VzICgpCisgICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJy
ZW50IGJ1ZmZlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgbWFya2Rvd24tdHMtaW5saW5l
LWltYWdlcyAobm90IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpKQorICAobWFya2Rvd24tdHMt
LXNldC1pbmxpbmUtaW1hZ2VzIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpCisgIChtZXNzYWdl
ICJJbmxpbmUgaW1hZ2VzICVzIiAoaWYgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmFibGVkIiAiZGlzYWJsZWQiKSkpCisKKzs7
OyBFbXBoYXNpczoKKworKGRlZnZhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdAorICAnKCg/
YiAuICIqKiIpCisgICAgKD9CIC4gIl9fIikKKyAgICAoP2kgLiAiKiIpCisgICAgKD9JIC4gIl8i
KQorICAgICg/cyAuICJ+fiIpCisgICAgKD9jIC4gImAiKQorICAgICg/YSAuICIqKioiKSkKKyAg
IkFsaXN0IG9mIGVtcGhhc2lzIG1hcmtlcnMgZm9yIGBtYXJrZG93bi10cy1lbXBoYXNpemUnLgor
RWFjaCBlbnRyeSBpcyAoS0VZIC4gTUFSS0VSKSB3aGVyZSBLRVkgaXMgYSBjaGFyYWN0ZXIgKG5v
dCBhIHN0cmluZykgYW5kCitNQVJLRVIgaXMgdGhlIE1hcmtkb3duIGVtcGhhc2l6ZWQgdGV4dCBw
cmVmaXgvc3VmZml4LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1w
b2ludCAoKQorICAiUmV0dXJuIHRoZSBlbXBoYXNpcyBub2RlIGF0IHBvaW50LCBvciBuaWwuCitG
aW5kcyB0aGUgaW5uZXJtb3N0IGBlbXBoYXNpcycsIGBzdHJvbmdfZW1waGFzaXMnLAorYHN0cmlr
ZXRocm91Z2gnLCBvciBgY29kZV9zcGFuJyBub2RlLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRy
ZWVzaXQtbm9kZS1hdCAocG9pbnQpICdtYXJrZG93bi1pbmxpbmUpKSkKKyAgICAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgKG1lbWJlciAo
dHJlZXNpdC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgJygiZW1waGFzaXMiICJz
dHJvbmdfZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giICJj
b2RlX3NwYW4iKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMgKCkK
KyAgIlJlbW92ZSBlbXBoYXNpcyBhcm91bmQgcG9pbnQgb3IgcmVnaW9uLgorV2l0aCBhbiBhY3Rp
dmUgcmVnaW9uLCBzdHJpcCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG1hcmtlcnMgZnJvbQordGhl
IHNlbGVjdGVkIHRleHQuICBXaXRob3V0IGEgcmVnaW9uLCBmaW5kIHRoZSBlbXBoYXNpcyBub2Rl
IGF0Citwb2ludCB1c2luZyB0cmVlLXNpdHRlciBhbmQgcmVtb3ZlIGl0cyBtYXJrZXJzLiIKKyAg
KGludGVyYWN0aXZlKQorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQqICgoYmVnIChy
ZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkKKyAgICAg
ICAgICAgICAodGV4dCAoYnVmZmVyLXN1YnN0cmluZyBiZWcgZW5kKSkKKyAgICAgICAgICAgICAo
c3RyaXBwZWQgbmlsKSkKKyAgICAgICAgKGNsLWxvb3AgZm9yIChfa2V5IC4gbSkgaW4gKHNvcnQg
KGNvcHktc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKD4gKGxlbmd0aCAoY2RyIGEpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNkciBiKSkpKSkKKyAgICAgICAgICAg
ICAgICAgZm9yIHJlID0gKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIG0pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlxcKFxcKD86LlxcfFxuXFwpKlxcKSIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhwLXF1b3RlIG0pICJcXCciKQorICAgICAg
ICAgICAgICAgICB3aGVuIChzdHJpbmctbWF0Y2ggcmUgdGV4dCkKKyAgICAgICAgICAgICAgICAg
ZG8gKHNldHEgc3RyaXBwZWQgKG1hdGNoLXN0cmluZyAxIHRleHQpKQorICAgICAgICAgICAgICAg
ICBhbmQgcmV0dXJuIG5pbCkKKyAgICAgICAgKHdoZW4gc3RyaXBwZWQKKyAgICAgICAgICAoZGVs
ZXRlLXJlZ2lvbiBiZWcgZW5kKQorICAgICAgICAgIChpbnNlcnQgc3RyaXBwZWQpKSkKKyAgICA7
OyBGaW5kIHRoZSBvdXRlcm1vc3QgZW1waGFzaXMgbm9kZSBhdCBwb2ludC4KKyAgICAod2hlbi1s
ZXQqICgoaW5uZXIgKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KSkKKyAgICAg
ICAgICAgICAgICAobm9kZSAobGV0ICgobiBpbm5lcikpCisgICAgICAgICAgICAgICAgICAgICAg
ICAod2hpbGUgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBuKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIHBhcmVudAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlw
ZSBwYXJlbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygiZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9zcGFu
IikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBuIHBhcmVudCkp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG4pKQorICAgICAgICAgICAgICAgIChzdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQt
bm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgICAgKHRleHQgKHRyZWVzaXQtbm9kZS10ZXh0
IG5vZGUgdCkpCisgICAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUp
KQorICAgICAgICAgICAgICAgIChtbGVuIChwY2FzZSB0eXBlCisgICAgICAgICAgICAgICAgICAg
ICAgICAoInN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0
cmluZy1wcmVmaXgtcCAiXyIgdGV4dCkgMiAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgi
ZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4LXAg
Il8iIHRleHQpIDEgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoInN0cmlrZXRocm91Z2gi
IDIpCisgICAgICAgICAgICAgICAgICAgICAgICAoImNvZGVfc3BhbiIgMSkpKQorICAgICAgICAg
ICAgICAgIChpbm5lci10ZXh0IChzdWJzdHJpbmcgdGV4dCBtbGVuICgtIChsZW5ndGggdGV4dCkg
bWxlbikpKSkKKyAgICAgIChsZXQgKChvZmZzZXQgKC0gKHBvaW50KSBzdGFydCBtbGVuKSkpCisg
ICAgICAgIChkZWxldGUtcmVnaW9uIHN0YXJ0IGVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBzdGFy
dCkKKyAgICAgICAgKGluc2VydCBpbm5lci10ZXh0KQorICAgICAgICAoZ290by1jaGFyICgrIHN0
YXJ0IChtYXggMCBvZmZzZXQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1lbXBoYXNpemUg
KCZvcHRpb25hbCBjaGFyKQorICAiSW5zZXJ0IG9yIGNoYW5nZSBlbXBoYXNpcyBvbiB0ZXh0Lgor
SWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdCB3aXRoIGVtcGhhc2lzIG1hcmtl
cnMuCitJZiB0aGVyZSBpcyBubyByZWdpb24sIGluc2VydCBtYXJrZXIgcGFpcnMgYW5kIHBsYWNl
IHBvaW50IGJldHdlZW4KK3RoZW0uICBDSEFSIHNlbGVjdHMgdGhlIGVtcGhhc2lzIHR5cGU6CisK
KyAgYiAgICoqYm9sZCoqICAgICAgIEIgIF9fYm9sZF9fCisgIGkgICAqaXRhbGljKiAgICAgICBJ
ICBfaXRhbGljXworICBhICAgKioqYm9sZCtpdGFsaWMqKioKKyAgcyAgIH5+c3RyaWtldGhyb3Vn
aH5+CisgIGMgICBgY29kZWAKKyAgU1BDIHJlbW92ZSBlbXBoYXNpcyBhdCBwb2ludCBvciByZWdp
b24iCisgIChpbnRlcmFjdGl2ZQorICAgImNFbXBoYXNpcyBbYl1vbGQgW0Jdb2xkXyBbaV10YWxp
YyBbSV10YWxpY18gW2FdbGwgW3NddHJpa2UgW2Ndb2RlIFNQQyByZW1vdmU6IikKKyAgKGlmIChl
cSBjaGFyID9ccykKKyAgICAgIChtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMpCisgICAgKGlm
LWxldCogKChtYXJrZXIgKGNkciAoYXNzcSBjaGFyIG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0
KSkpKQorICAgICAgICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgICAgICAgIChsZXQgKChiZWcg
KHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAoY29weS1tYXJrZXIg
KHJlZ2lvbi1lbmQpKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2VyKQor
ICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgIChpbnNlcnQg
bWFya2VyKSkpCisgICAgICAgICAgKGlmLWxldCogKChib3VuZHMgKGJvdW5kcy1vZi10aGluZy1h
dC1wb2ludCAnd29yZCkpKQorICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAoZ290by1jaGFyIChjZHIgYm91bmRzKSkKKyAgICAgICAgICAgICAgICAoaW5zZXJ0
IG1hcmtlcikKKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgYm91bmRzKSkKKyAgICAg
ICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikpCisgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlciBt
YXJrZXIpCisgICAgICAgICAgICAoYmFja3dhcmQtY2hhciAobGVuZ3RoIG1hcmtlcikpKSkKKyAg
ICAgICh1c2VyLWVycm9yICJObyBzdWNoIGVtcGhhc2lzIG1hcmtlcjogJWMiIGNoYXIpKSkpCisK
Kzs7OyBCbG9jayBzdHJ1Y3R1cmU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtc3RydWN0
dXJlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGJsb2NrIHN0cnVjdHVyZS4KK0lmIHRo
ZXJlIGlzIGFuIGFjdGl2ZSByZWdpb24sIHdyYXAgaXQuICBPdGhlcndpc2UsIGluc2VydCBhbiBl
bXB0eQorYmxvY2sgYW5kIHBsYWNlIHBvaW50IGluc2lkZS4gIENIQVIgc2VsZWN0cyB0aGUgc3Ry
dWN0dXJlIHR5cGU6CisKKyAgYCAgZmVuY2VkIGNvZGUgYmxvY2sgKGBgYCkKKyAgfiAgdGlsZGUg
ZmVuY2VkIGNvZGUgYmxvY2sgKH5+fikKKyAgcSAgYmxvY2sgcXVvdGUgKD4gKQorICBkICBob3Jp
em9udGFsIGRpdmlkZXIvcnVsZSAoLS0tKQorICB0ICB0YWJsZSIKKyAgKGludGVyYWN0aXZlCisg
ICAiY1N0cnVjdHVyZSBbYF1iYWNrLXRpY2sgY29kZSBibG9jayBbfl10aWxkZSBjb2RlIGJsb2Nr
IFtxXXVvdGUgW2RdaXZpZGVyIFt0XWFibGU6IikKKyAgKHBjYXNlIGNoYXIKKyAgICAoP2AgKG1h
cmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayA/YCkpCisgICAgKD9+IChtYXJrZG93bi10cy0t
aW5zZXJ0LWNvZGUtYmxvY2sgP34pKQorICAgICg/cSAobWFya2Rvd24tdHMtLWluc2VydC1ibG9j
ay1xdW90ZSkpCisgICAgKD9kIChtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpKQorICAgICg/
dCAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRhYmxlKSkKKyAgICAoXyAodXNlci1lcnJvciAi
Tm8gc3VjaCBzdHJ1Y3R1cmU6ICVjIiBjaGFyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWlu
c2VydC1jb2RlLWJsb2NrIChjaGFyICZvcHRpb25hbCBsYW5ndWFnZSkKKyAgIkluc2VydCBhIGZl
bmNlZCBjb2RlIGJsb2NrIHVzaW5nIGEgQ0hBUiBzZXF1ZW5jZS4KK0NIQVIgc2hvdWxkIGJlIG9u
ZSBvZiBhIGJhY2t0aWNrIG9yIGEgdGlsZGUuCitMQU5HVUFHRSBpcyBhIHdoaXRlc3BhY2UgZnJl
ZSBsYW5ndWFnZSBzdHJpbmcuIgorICAoc2V0cSBsYW5ndWFnZQorICAgICAgICAob3IgbGFuZ3Vh
Z2UKKyAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAi
W1s6Ymxhbms6XV0iICIiCisgICAgICAgICAgICAgKGxldCAoKGNvbXBsZXRpb24taWdub3JlLWNh
c2UgbmlsKQorICAgICAgICAgICAgICAgICAgIChjYW5kaWRhdGVzCisgICAgICAgICAgICAgICAg
ICAgIChzZXEtbWFwCisgICAgICAgICAgICAgICAgICAgICAjJ3N5bWJvbC1uYW1lCisgICAgICAg
ICAgICAgICAgICAgICAoc2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kICht
YXBjYXIgIydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMn
Y2FyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMpKSkpKSkKKyAgICAgICAgICAgICAgIChj
b21wbGV0aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAiQ29kZSBibG9jayBsYW5ndWFnZTogIgor
ICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAg
ICAgICAgICAnY29uZmlybSA7IFByb21wdCBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IG9uIG91ciBs
aXN0LgorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1s
YW5ndWFnZS1oaXN0b3J5KSkpKSkKKyAgKGxldCAoKGZlbmNlLXN0cmluZyAobWFrZS1zdHJpbmcg
MyBjaGFyKSkpCisgICAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAgIChsZXQgKChiZWcgKHJl
Z2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkpCisgICAg
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAoZ290by1jaGFyIGVuZCkKKyAgICAg
ICAgICAgICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxuIikpCisgICAgICAgICAgICAoaW5zZXJ0
IGZlbmNlLXN0cmluZyAiXG4iKQorICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAg
ICAgICAoaW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG4iKSkpCisgICAgICAoaW5zZXJ0
IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG5cbiIgZmVuY2Utc3RyaW5nKQorICAgICAgKGZvcndh
cmQtbGluZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUg
KCkKKyAgIkluc2VydCBhIGJsb2NrIHF1b3RlLiIKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAg
ICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgIChlbmQgKGNvcHkt
bWFya2VyIChyZWdpb24tZW5kKSkpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAod2hpbGUgKDwgKHBvaW50KSBlbmQpCisgICAg
ICAgICAgICAoaW5zZXJ0ICI+ICIpCisgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkpCisg
ICAgKGluc2VydCAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIg
KCkKKyAgIkluc2VydCBhIGhvcml6b250YWwgcnVsZS4iCisgICh1bmxlc3MgKGJvbHApIChpbnNl
cnQgIlxuIikpCisgIChpbnNlcnQgIlxuLS0tXG5cbiIpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWFwcGx5LWVsbGlwc2lzICgpCisgICJBcHBseSBgbWFya2Rvd24tdHMtZWxsaXBzaXMnIHRvIHRo
ZSBjdXJyZW50IGJ1ZmZlcidzIGRpc3BsYXkgdGFibGUuIgorICAoaWYgKGFuZCAoc3RyaW5ncCBt
YXJrZG93bi10cy1lbGxpcHNpcykKKyAgICAgICAgICAgKG5vdCAoc3RyaW5nLWVtcHR5LXAgbWFy
a2Rvd24tdHMtZWxsaXBzaXMpKSkKKyAgICAgIChsZXQgKCh0YWJsZSAob3IgYnVmZmVyLWRpc3Bs
YXktdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZGlzcGxheS10YWJsZSkpKSkK
KyAgICAgICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QKKyAgICAgICAgIHRhYmxlIDQKKyAgICAg
ICAgICh2Y29uY2F0IChtYXBjYXIgKGxhbWJkYSAoYykgKG1ha2UtZ2x5cGgtY29kZSBjICdzaGFk
b3cpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbGxpcHNpcykpKQor
ICAgICAgICAoc2V0cSBidWZmZXItZGlzcGxheS10YWJsZSB0YWJsZSkpCisgICAgKHdoZW4gYnVm
ZmVyLWRpc3BsYXktdGFibGUKKyAgICAgIChzZXQtZGlzcGxheS10YWJsZS1zbG90IGJ1ZmZlci1k
aXNwbGF5LXRhYmxlIDQgbmlsKSkpKQorCis7OzsgTWFqb3IgbW9kZToKKworKGRlZnVuIG1hcmtk
b3duLXRzLW91dGxpbmUtY3ljbGUgKCkKKyAgIkN5Y2xlIHZpc2liaWxpdHkgb2YgdGhlIGhlYWRp
bmcgYXQgcG9pbnQuCitPbiBhIGhlYWRpbmcsIGNhbGwgYG91dGxpbmUtY3ljbGUnLiAgT3RoZXJ3
aXNlIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICh3aGVuIChvdXRsaW5lLW9uLWhl
YWRpbmctcCkKKyAgICAob3V0bGluZS1jeWNsZSkpKQorCisoZGVmdmFyLWtleW1hcCBtYXJrZG93
bi10cy1tb2RlLW1hcAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCisg
ICJNLTxsZWZ0PiIgICAgIydtYXJrZG93bi10cy1wcm9tb3RlCisgICJNLTxyaWdodD4iICAgIydt
YXJrZG93bi10cy1kZW1vdGUKKyAgIk0tPHVwPiIgICAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3Vi
dHJlZS11cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24K
KyAgIkMtYyBDLW4iICAgICAjJ291dGxpbmUtbmV4dC1oZWFkaW5nCisgICJDLWMgQy1wIiAgICAg
IydvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcKKyAgIkMtYyBDLXUiICAgICAjJ291dGxpbmUtdXAt
aGVhZGluZworICAiQy1jIEMtZiIgICAgICMnb3V0bGluZS1mb3J3YXJkLXNhbWUtbGV2ZWwKKyAg
IkMtYyBDLWIiICAgICAjJ291dGxpbmUtYmFja3dhcmQtc2FtZS1sZXZlbAorICAiQy1jIEMteCBD
LWYiICMnbWFya2Rvd24tdHMtZW1waGFzaXplCisgICJDLWMgQy14IEMtbSIgIydtYXJrZG93bi10
cy10b2dnbGUtaGlkZS1tYXJrdXAKKyAgIkMtYyBDLXggQy12IiAjJ21hcmtkb3duLXRzLXRvZ2ds
ZS1pbmxpbmUtaW1hZ2VzCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10cy10b2dnbGUtY2hl
Y2tib3gKKyAgIkMtYyBDLXIiICAgICAjJ21hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QKKyAgIkMt
YyBDLSwiICAgICAjJ21hcmtkb3duLXRzLWluc2VydC1zdHJ1Y3R1cmUKKyAgIkMtYyBDLXYgbiIg
ICAjJ21hcmtkb3duLXRzLW1vdmUtdG8tbmV4dC1jb2RlLWJsb2NrCisgICJDLWMgQy12IHAiICAg
IydtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZpb3VzLWNvZGUtYmxvY2sKKyAgIlJFVCIgICAgICAg
ICAjJ21hcmtkb3duLXRzLW5ld2xpbmUKKyAgIk0tUkVUIiAgICAgICAjJ21hcmtkb3duLXRzLWlu
c2VydC1saXN0LWl0ZW0KKyAgIlRBQiIgICAgICAgICAjJ21hcmtkb3duLXRzLW91dGxpbmUtY3lj
bGUpCisKKyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1t
b2RlLW1hcAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNv
bnRleHQtbW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGluIGBtYXJrZG93bi10cy1tb2RlLW1h
cCcgdG8gc3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1hbmRzIGluIGEgY29kZS1ibG9jayBj
b250ZXh0LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2RlLW1hcAorICA6bWVudSBuaWwKKyAg
Ik0tLiIgICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXhyZWYtZmluZC1kZWZpbml0
aW9ucworICAiVEFCIiAgICAgICAgICMnaW5kZW50LWZvci10YWItY29tbWFuZAorICAiUkVUIiAg
ICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiQy1qIiAgICAgICAg
ICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1SRVQiICAgICAgICMnbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1xIiAgICAgICAgICMnbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgpCisKKyhkZWZ2YXIta2V5bWFwIG1hcmtkb3du
LXRzLWluLXRhYmxlLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBmb3IgYG1hcmtkb3duLXRzLWlu
LXRhYmxlLW1vZGUnLgorVGhlc2Ugb3ZlcnJpZGUga2V5cyBpbiBgbWFya2Rvd24tdHMtbW9kZS1t
YXAnIHRvIHN1cHBvcnQgZXhlY3V0aW5nIHRoZWlyCitjb21tYW5kcyBpbiBhIHRhYmxlIGNvbnRl
eHQuIgorICA6cGFyZW50IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgIDptZW51IG5pbAorICAiPHJl
dHVybj4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cKKyAgIlMtPHJldHVybj4iICAj
J21hcmtkb3duLXRzLXRhYmxlLXByZXZpb3VzLXJvdworICAiPHRhYj4iICAgICAgICMnbWFya2Rv
d24tdHMtdGFibGUtbmV4dC1jZWxsCisgICI8YmFja3RhYj4iICAgIydtYXJrZG93bi10cy10YWJs
ZS1wcmV2aW91cy1jZWxsCisgICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy10YWJsZS1tb3Zl
LXJvdy11cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctZG93
bgorICAiTS08bGVmdD4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdAor
ICAiTS08cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tcmlnaHQKKyAg
Ik0tUy08dXA+IiAgICAjJ21hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUKKyAgIk0t
Uy08ZG93bj4iICAjJ21hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cKKyAgIk0tUy08cmlnaHQ+
IiAjJ21hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdAorICAiTS1TLTxsZWZ0PiIg
ICMnbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbgorICAiQy1jIEMtdCBhIiAgICMnbWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10
cy10YWJsZS1hbGlnbi10YWJsZQorICAiQy1jIEMtdCB0IiAgICMnbWFya2Rvd24tdHMtdGFibGUt
dHJhbnNwb3NlLXRhYmxlKQorCisoZWFzeS1tZW51LWRlZmluZSBtYXJrZG93bi10cy1tb2RlLW1l
bnUgbWFya2Rvd24tdHMtbW9kZS1tYXAKKyAgImBtYXJrZG93bi10cy1tb2RlJyBtZW51LiIKKyAg
JygiTWFya2Rvd24iIDp2aXNpYmxlIG1hcmtkb3duLXRzLW1lbnUtYmFyLXNob3cKKyAgICAiLS0i
CisgICAgWyJDeWNsZSBPdXRsaW5lIFZpc2liaWxpdHkiICBtYXJrZG93bi10cy1vdXRsaW5lLWN5
Y2xlICAgICAgICAgICAgICA6aGVscCAiQ3ljbGUgaGVhZGluZyB2aXNpYmlsaXR5IGZyb20gcG9p
bnQiXQorICAgIFsiVG9nZ2xlIEhpZGUgTWFya3VwIiAgICAgICAgbWFya2Rvd24tdHMtdG9nZ2xl
LWhpZGUtbWFya3VwICAgICAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIG1hcmt1cCBjaGFy
YWN0ZXJzIiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cF0K
KyAgICBbIlRvZ2dsZSBJbmxpbmUgSW1hZ2VzIiAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxp
bmUtaW1hZ2VzICAgICAgIDpoZWxwICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGJl
bG93IGxpbmtzIiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1pbmxpbmUtaW1h
Z2VzXQorICAgICItLSIKKyAgICBbIlVwIiAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmUt
dXAtaGVhZGluZyAgICAgICAgICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwYXJlbnQg
aGVhZGluZyJdCisgICAgWyJOZXh0IiAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLW5leHQt
aGVhZGluZyAgICAgICAgICAgICAgICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5n
Il0KKyAgICBbIlByZXZpb3VzIiAgICAgICAgICAgICAgICAgIG91dGxpbmUtcHJldmlvdXMtaGVh
ZGluZyAgICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91cyBoZWFkaW5nIl0K
KyAgICBbIk5leHQgU2FtZSBMZXZlbCIgICAgICAgICAgIG91dGxpbmUtZm9yd2FyZC1zYW1lLWxl
dmVsICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmcgYXQgdGhlIHNh
bWUgbGV2ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgICAgICAgb3V0bGluZS1iYWNr
d2FyZC1zYW1lLWxldmVsICAgICAgICAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIHByZXZpb3VzIGhl
YWRpbmcgYXQgdGhlIHNhbWUgbGV2ZWwiXQorICAgICItLSIKKyAgICBbIkp1bXAiICAgICAgICAg
ICAgICAgICAgICAgIGltZW51ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpoZWxw
ICJKdW1wIHRvIGEgaGVhZGluZyB2aWEgY29tcGxldGlvbiJdCisgICAgIi0tIgorICAgIFsiTW92
ZSBTdWJ0cmVlIFVwIiAgICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwICAgICAg
ICAgICAgOmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAiXQor
ICAgIFsiTW92ZSBTdWJ0cmVlIERvd24iICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVl
LWRvd24gICAgICAgICAgOmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0
ZW0gZG93biJdCisgICAgWyJQcm9tb3RlIiAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1w
cm9tb3RlICAgICAgICAgICAgICAgICAgICA6aGVscCAiUHJvbW90ZSBoZWFkaW5nIG9yIGxpc3Qg
aXRlbSJdCisgICAgWyJEZW1vdGUiICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1kZW1v
dGUgICAgICAgICAgICAgICAgICAgICA6aGVscCAiRGVtb3RlIGhlYWRpbmcgb3IgbGlzdCBpdGVt
Il0KKyAgICAiLS0iCisgICAgWyJFbXBoYXNpcy4uLiIgICAgICAgICAgICAgICBtYXJrZG93bi10
cy1lbXBoYXNpemUgICAgICAgICAgICAgICAgICA6aGVscCAiQWRkIG9yIGNoYW5nZSBlbXBoYXNp
cyBvbiByZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgICAgICAgbWFya2Rvd24t
dHMtaW5zZXJ0LXN0cnVjdHVyZSAgICAgICAgICAgOmhlbHAgIkluc2VydCBhIGNvZGUgYmxvY2ss
IHF1b3RlLCBvciBvdGhlciBzdHJ1Y3R1cmUiXQorICAgICItLSIKKyAgICBbIlRvZ2dsZSBDaGVj
a2JveCIgICAgICAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveCAgICAgICAgICAgIDpo
ZWxwICJUb2dnbGUgdGFzayBsaXN0IGNoZWNrYm94IGF0IHBvaW50Il0KKyAgICBbIk5ldyBMaXN0
IEl0ZW0iICAgICAgICAgICAgIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gICAgICAgICAg
IDpoZWxwICJJbnNlcnQgYSBuZXcgbGlzdCBpdGVtIGFmdGVyIHRoZSBjdXJyZW50IG9uZSJdCisg
ICAgWyJSZW51bWJlciBMaXN0IiAgICAgICAgICAgICBtYXJrZG93bi10cy1yZW51bWJlci1saXN0
ICAgICAgICAgICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2ludCJd
CisgICAgIi0tIgorICAgICgiVGFibGUiCisgICAgIFsiSW5zZXJ0IHRhYmxlIiAgICAgICAgICAg
ICBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgICAgICAgICA6aGVscCAiSW5zZXJ0IGFu
IGVtcHR5IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJEZWxldGUgdGFibGUiICAgICAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS10YWJsZSAgICAgICAgIDpoZWxwICJEZWxldGUgdGhl
IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIk5leHQgY2VsbCIgICAgICAgICAg
ICAgICAgbWFya2Rvd24tdHMtdGFibGUtbmV4dC1jZWxsICAgICAgICAgICAgOmhlbHAgIk1vdmUg
cG9pbnQgdG8gdGhlIG5leHQgY2VsbCJdCisgICAgIFsiUHJldmlvdXMgY2VsbCIgICAgICAgICAg
ICBtYXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1jZWxsICAgICAgICA6aGVscCAiTW92ZSBwb2lu
dCB0byB0aGUgcHJldmlvdXMgY2VsbCJdCisgICAgICItLSIKKyAgICAgWyJOZXh0IHJvdyIgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICAgICAgICAgICAgIDpoZWxw
ICJNb3ZlIHBvaW50IHRvIHRoZSBuZXh0IHJvdyJdCisgICAgIFsiUHJldmlvdXMgcm93IiAgICAg
ICAgICAgICBtYXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgICAgICAgICA6aGVscCAiTW92
ZSBwb2ludCB0byB0aGUgcHJldmlvdXMgcm93Il0KKyAgICAgWyJJbnNlcnQgcm93IGJlbG93IiAg
ICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cgICAgIDpoZWxwICJJbnNl
cnQgYW4gZW1wdHkgcm93IGJlbG93IHBvaW50Il0KKyAgICAgWyJJbnNlcnQgcm93IGFib3ZlIiAg
ICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUgICAgIDpoZWxwICJJbnNl
cnQgYW4gZW1wdHkgcm93IGFib3ZlIHBvaW50Il0KKyAgICAgWyJDbG9uZSByb3cgYmVsb3ciICAg
ICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWNsb25lLXJvdy1iZWxvdyAgICAgIDpoZWxwICJDbG9u
ZSB0aGUgY3VycmVudCByb3cgYmVsb3cgaXQiXQorICAgICBbIkNsb25lIHJvdyBhYm92ZSIgICAg
ICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlICAgICAgOmhlbHAgIkNsb25l
IHRoZSBjdXJyZW50IHJvdyBhYm92ZSBpdCJdCisgICAgIFsiTW92ZSByb3cgdXAiICAgICAgICAg
ICAgICBtYXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdy11cCAgICAgICAgICA6aGVscCAiTW92ZSB0
aGUgcm93IGF0IHBvaW50IHVwIl0KKyAgICAgWyJNb3ZlIHJvdyBkb3duIiAgICAgICAgICAgIG1h
cmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24gICAgICAgIDpoZWxwICJNb3ZlIHRoZSByb3cg
YXQgcG9pbnQgZG93biJdCisgICAgIFsiRGVsZXRlIHJvdyIgICAgICAgICAgICAgICBtYXJrZG93
bi10cy10YWJsZS1kZWxldGUtcm93ICAgICAgICAgICA6aGVscCAiRGVsZXRlIHRoZSByb3cgYXQg
cG9pbnQiXQorICAgICAiLS0iCisgICAgIFsiSW5zZXJ0IGNvbHVtbiBsZWZ0IiAgICAgICBtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5
IGNvbHVtbiB0byB0aGUgbGVmdCBvZiBwb2ludCJdCisgICAgIFsiSW5zZXJ0IGNvbHVtbiByaWdo
dCIgICAgICBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0ICA6aGVscCAiSW5z
ZXJ0IGFuIGVtcHR5IGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQiXQorICAgICBbIkNsb25l
IGNvbHVtbiBsZWZ0IiAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtY29sdW1uLWxlZnQg
ICAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgcG9pbnQiXQor
ICAgICBbIkNsb25lIGNvbHVtbiByaWdodCIgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUt
Y29sdW1uLXJpZ2h0ICAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIHJpZ2h0
IG9mIHBvaW50Il0KKyAgICAgWyJNb3ZlIGNvbHVtbiBsZWZ0IiAgICAgICAgIG1hcmtkb3duLXRz
LXRhYmxlLW1vdmUtY29sdW1uLWxlZnQgICAgIDpoZWxwICJNb3ZlIHRoZSBjdXJyZW50IGNvbHVt
biB0byBpdHMgbGVmdCJdCisgICAgIFsiTW92ZSBjb2x1bW4gcmlnaHQiICAgICAgICBtYXJrZG93
bi10cy10YWJsZS1tb3ZlLWNvbHVtbi1yaWdodCAgICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBj
b2x1bW4gdG8gaXRzIHJpZ2h0Il0KKyAgICAgWyJBbGlnbiBjb2x1bW4uLi4iICAgICAgICAgIG1h
cmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVtbiAgICAgICAgIDpoZWxwICJBbGlnbiBjb2x1bW4g
YXQgcG9pbnQgdG8gdGhlIGxlZnQsIGNlbnRlciwgb3IgcmlnaHQiXQorICAgICBbIkRlbGV0ZSBj
b2x1bW4iICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbiAgICAgICAg
OmhlbHAgIkRlbGV0ZSB0aGUgY29sdW1uIGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIkFs
aWduIHRhYmxlIGNvbHVtbnMiICAgICAgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUgICAg
ICAgICAgOmhlbHAgIkFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBpbiBhbiBlYXN5LXRvLWVkaXQg
Zm9ybWF0Il0KKyAgICAgWyJUcmFuc3Bvc2UgdGFibGUiICAgICAgICAgIG1hcmtkb3duLXRzLXRh
YmxlLXRyYW5zcG9zZS10YWJsZSAgICAgIDpoZWxwICJUcmFuc3Bvc2UgdGhlIHRhYmxlIGF0IHBv
aW50IHN3YXBwaW5nIGl0cyByb3dzIGFuZCBjb2x1bW5zIl0KKyAgICAgIi0tIgorICAgICBbIkNv
bnZlcnQgQ1NWIHRvIHRhYmxlIiAgICAgbWFya2Rvd24tdHMtdGFibGUtY29udmVydC1jc3YtcmVn
aW9uICAgOmhlbHAgIkNvbnZlcnQgYSByYW5nZSBvZiBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzIHRv
IGEgbmV3IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJDb252ZXJ0IFRTViB0byB0YWJsZSIgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lvbiAgIDpoZWxwICJDb252ZXJ0IGEg
cmFuZ2Ugb2YgdGFiLXNlcGFyYXRlZCB2YWx1ZXMgdG8gYSBuZXcgdGFibGUgYXQgcG9pbnQiXQor
ICAgICBbIkV4cG9ydCB0YWJsZSB0byBDU1YiICAgICAgbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0
LXRhYmxlLWNzdiAgICAgOmhlbHAgIkV4cG9ydCB0aGUgdGFibGUgYXQgcG9pbnQgdG8gYSBjb21t
YS1zZXBhcmF0ZWQgdmFsdWVzIGJ1ZmZlciJdCisgICAgIFsiRXhwb3J0IHRhYmxlIHRvIFRTViIg
ICAgICBtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtdHN2ICAgICA6aGVscCAiRXhwb3J0
IHRoZSB0YWJsZSBhdCBwb2ludCB0byBhIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGJ1ZmZlciJdKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2V0LXVwICgpCisgICJTZXQgdXAgdGhlIGJ1ZmZlciBm
b3IgYG1hcmtkb3duLXRzLW1vZGUnLgorSWYgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lJyBp
cyBub24tbmlsLCB1c2UgYSBsaWdodHdlaWdodCBzZXQgdXAgZm9yCitlbWJlZGRlZCBpbmxpbmUg
YG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcnMuCiAKLTs7OyBNYWpvciBtb2RlCitOT1RFOiBDYWxs
IHRoaXMgZnVuY3Rpb24gb25seSB3aGVuIHRoZSB0cmVlc2l0IGBtYXJrZG93bicgYW5kCitgbWFy
a2Rvd24taW5saW5lJyBwYXJzZXJzIGFyZSBhdmFpbGFibGUuIgogCi0oZGVmdW4gbWFya2Rvd24t
dHMtc2V0dXAgKCkKLSAgIlNldHVwIHRyZWVzaXQgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0g
IChtYWtlLWxvY2FsLXZhcmlhYmxlICdtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgOzsgU2V0
IHRoZXNlIHVwIGZvciBib3RoIG1hc3RlciBhbmQgaW5saW5lIGZvciBjb2RlLWJsb2NrIGJ1ZmZl
cnMuCisgIChzZXRxLWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIgorICAgICAgICAgICAgICBj
b21tZW50LWVuZCAiIC0tPiIKKyAgICAgICAgICAgICAgY29tbWVudC1zdGFydC1za2lwICI8IS0t
WyBcdF0qIgorICAgICAgICAgICAgICBjb21tZW50LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAg
ICAgICAgICAgIGNvbW1lbnQtdXNlLXN5bnRheCBuaWwpCisKKyAgKHNldHEtbG9jYWwgZmlsbC1w
YXJhZ3JhcGgtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZmlsbC1wYXJh
Z3JhcGgKKyAgICAgICAgICAgICAgZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbgorICAg
ICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKQorCisgIDs7
IGBhZGFwdGl2ZS1maWxsLWZ1bmN0aW9uJyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKKyAgOzsgYGFk
YXB0aXZlLWZpbGwtcmVnZXhwJzsgdGhlIGRlZmF1bHQgcmVnZXhwIGlzIGZpbmUgYXMgYQorICA7
OyBmYWxsYmFjayBmb3IgcGxhaW4gKG5vbi1saXN0KSBwYXJhZ3JhcGhzLgorICAoc2V0cS1sb2Nh
bCBhZGFwdGl2ZS1maWxsLWZ1bmN0aW9uICMnbWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpCisK
KyAgOzsgQ3JlYXRlIGFuZCBjb25maWd1cmUgdGhlIHBhcnNlcnMuCisgICh0cmVlc2l0LXBhcnNl
ci1jcmVhdGUgJ21hcmtkb3duLWlubGluZSkKKyAgKHNldHEgdHJlZXNpdC1wcmltYXJ5LXBhcnNl
cgorICAgICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikpCisKKyAgKHNldHEt
bG9jYWwgZm9udC1sb2NrLWRlZmF1bHRzIG5pbCkKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250
LWxvY2stc2V0dGluZ3MgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpCi0gIChzZXRxLWxv
Y2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykp
Ci0gIChhZGQtdG8tbGlzdCAnZm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgJ2ludmlzaWJs
ZSkKLQotICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCi0gICAgKHRyZWVzaXQtcGFy
c2VyLWNyZWF0ZSAnaHRtbCkKLSAgICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQotICAgIChkZWZ2
YXIgaHRtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciBodG1sLXRz
LW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9k
ZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9j
ay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2st
ZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdAotICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZl
YXR1cmUtbGlzdCkpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAg
ICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAg
ICA6ZW1iZWQgJ2h0bWwKLSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24K
LSAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAg
ICAgICcoKGh0bWxfYmxvY2spIEBodG1sKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVt
YmVkICdodG1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGlu
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCi0KLSAg
KHdoZW4gKHRyZWVzaXQtcmVhZHktcCAneWFtbCB0KQotICAgIChyZXF1aXJlICd5YW1sLXRzLW1v
ZGUpCi0gICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAo
ZGVmdmFyIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1s
b2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQg
dHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwt
dHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250
LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZl
YXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0
dXJlLWxpc3QpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAg
ICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAg
OmVtYmVkICd5YW1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnKChtaW51c19tZXRhZGF0YSkgQHlhbWwpKSkpKQotCi0gICh3aGVuICh0cmVlc2l0LXJlYWR5
LXAgJ3RvbWwgdCkKLSAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQotICAgIChkZWZ2YXIgdG9t
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUt
LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0
dGluZ3MKLSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAg
ICAgICAgICAgICAgICB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykpCi0gICAgKHNl
dHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAg
KHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0
cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAgdG9tbC10cy1t
b2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJh
bmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRp
bmdzCi0gICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAg
ICAgICAgICAgICAgICAgICAgIDplbWJlZCAndG9tbAotICAgICAgICAgICAgICAgICAgICAgICAg
IDpob3N0ICdtYXJrZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorICAoc2V0
cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1pdGVyIGhlYWRp
bmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJh
Z3JhcGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChw
YXJhZ3JhcGgtaW5saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoaW1hZ2UtcHJldmlldyBlcnJvcikpKQorCisgIChjb25kIChtYXJrZG93bi10cy0t
c2V0LXVwLWlubGluZQorICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGlu
Z3MKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAg
ICAgICAgICAgICAgICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAg
ICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgJygoaW5saW5lKSBA
bWFya2Rvd24taW5saW5lKSkpKQorICAgICAgICAodAorICAgICAgICAgOzsgUmFuZ2Ugc2V0dGlu
Z3MgZGlmZmVyIGluIHRoZSBtYXN0ZXIgYnVmZmVyIHZzLiBpbmxpbmUgYWJvdmUuCisgICAgICAg
ICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzIChtYXJrZG93bi10cy0tcmFuZ2Ut
c2V0dGluZ3MpKQorCisgICAgICAgICA7OyBDb25maWd1cmUgZmVhdHVyZXMgbmVlZGVkIG9ubHkg
aW4gdGhlIG1hc3RlciBidWZmZXIuCisKKyAgICAgICAgIDs7IEltZW51IHN1cHBvcnQuCisgICAg
ICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0aW5ncworICAgICAgICAg
ICAgICAgICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1u
b2RlLXAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUt
aGVhZGluZy1uYW1lLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAoIkNvZGUgQmxv
Y2tzIiAsIydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1
bmN0aW9uKSkpCisKKyAgICAgICAgIDs7IE91dGxpbmUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRx
LWxvY2FsIHRyZWVzaXQtb3V0bGluZS1wcmVkaWNhdGUgIydtYXJrZG93bi10cy0tb3V0bGluZS1w
cmVkaWNhdGUpCisgICAgICAgICAoc2V0cS1sb2NhbCBvdXRsaW5lLW1pbm9yLW1vZGUtY3ljbGUg
dCkKKyAgICAgICAgIChvdXRsaW5lLW1pbm9yLW1vZGUgMSkKKyAgICAgICAgIChtYXJrZG93bi10
cy0tYXBwbHktZWxsaXBzaXMpCisKKyAgICAgICAgIDs7IE5PVEU6IGBvdXRsaW5lLXZpZXctY2hh
bmdlLWhvb2snIHdhcyBvYnNvbGV0ZWQgaW4gMjkuMSAoY29tbWl0CisgICAgICAgICA7OyA1M2Ix
ZTZmOTZjYikgb24gdGhlIGdyb3VuZHMgdGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQg
bm8KKyAgICAgICAgIDs7IHJlcGxhY2VtZW50IHdhcyBwcm92aWRlZCBhbmQgb3V0bGluZS5lbCBp
dHNlbGYgc3RpbGwgcnVucyB0aGUgaG9vaworICAgICAgICAgOzsgaW4gMTArIHBsYWNlcy4KKyAg
ICAgICAgICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChvYnNvbGV0ZSBvdXRsaW5lLXZpZXct
Y2hhbmdlLWhvb2spKQorICAgICAgICAgICAoYWRkLWhvb2sgJ291dGxpbmUtdmlldy1jaGFuZ2Ut
aG9vaworICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNo
YW5nZSBuaWwgdCkpCisKKyAgICAgICAgIChwcm9nbgorICAgICAgICAgICAobWFrZS1sb2NhbC12
YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAgICAgICAgIChtYWtlLWxvY2Fs
LXZhcmlhYmxlICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcykKKyAgICAgICAgICAgKGRv
bGlzdCAocHJvcCAnKGludmlzaWJsZSBkaXNwbGF5IGJ1dHRvbiBjYXRlZ29yeSBhY3Rpb24gaGVs
cC1lY2hvKSkKKyAgICAgICAgICAgICAoYWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5h
Z2VkLXByb3BzIHByb3ApKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAnaHRt
bCB0KQorICAgICAgICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdodG1sKQorICAgICAgICAg
ICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9k
ZS0tZm9udC1sb2NrLXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0t
dHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaHRtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1s
b2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAg
ICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAg
ICAgICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCisg
ICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOmVtYmVkICdodG1sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDpob3N0ICdtYXJrZG93bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bG9j
YWwgdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX2Jsb2NrKSBAaHRt
bCkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQorCisgICAg
ICAgICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICd5YW1sIHQpCisgICAgICAgICAgIChyZXF1aXJl
ICd5YW1sLXRzLW1vZGUpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2st
ZmVhdHVyZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1z
ZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2Nr
LXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1m
b250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQt
bG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2Ut
Zm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1m
b250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1v
ZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVl
c2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LXJhbmdlLXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAneWFt
bAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJygobWludXNfbWV0YWRhdGEpIEB5YW1sKSkpKSkKKworICAgICAgICAgKHdo
ZW4gKHRyZWVzaXQtcmVhZHktcCAndG9tbCB0KQorICAgICAgICAgICAocmVxdWlyZSAndG9tbC10
cy1tb2RlKQorICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRp
bmdzKQorICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUt
bGlzdCkKKyAgICAgICAgICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAg
ICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKKyAgICAg
ICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAg
ICAgICAgICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0
KSkKKyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAg
ICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ3RvbWwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOmhvc3QgJ21hcmtkb3duCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDpsb2NhbCB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKHBsdXNfbWV0YWRh
dGEpIEB0b21sKSkpKSkKKworICAgICAgICAgOzsgU3VwcG9ydCBmb3IgZXhlY3V0aW5nIGNvbW1h
bmRzIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMt
ZW5hYmxlLWNvZGUtYmxvY2stY29udGV4dC1tb2RlCisgICAgICAgICAgIChtYXJrZG93bi10cy1j
b2RlLWJsb2NrLWNvbnRleHQtbW9kZSkpCisKKyAgICAgICAgIDs7IFN1cHBvcnQgZm9yIHRhYmxl
IG1vZGUuCisgICAgICAgICAod2hlbiBtYXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZQorICAg
ICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtbW9kZSkpKSkKIAogICAodHJlZXNpdC1tYWpvci1t
b2RlLXNldHVwKQotICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1o
aWRlLW1hcmt1cCkpCisKKyAgOzsgRG8gbm90IGVuYWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5k
aXJlY3QgYnVmZmVycyBzdWNoIGFzIHRoZSBvbmUKKyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2Nr
IGNvbW1hbmRzLgorICAodW5sZXNzIChidWZmZXItYmFzZS1idWZmZXIpCisgICAgKGppdC1sb2Nr
LXJlZ2lzdGVyICMnbWFya2Rvd24tdHMtLWZvbnRpZnktYmFyZS11cmkpKQorCisgICh1bmxlc3Mg
bWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAgICA7OyBPcmRlciBtYXR0ZXJzOiBgbWFya2Rv
d24tdHMtLXNldC1oaWRlLW1hcmt1cCcgY2FsbHMgYGZvbnQtbG9jay1mbHVzaCcKKyAgICA7OyAo
b25seSBtZWFuaW5nZnVsIG9uY2UgYHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCcgaGFzIHdpcmVk
IHVwCisgICAgOzsgZm9udC1sb2NrKSwgYW5kIGBtYXJrZG93bi10cy1kZWZhdWx0LWZvbGRpbmcn
IGNhbGxzIG91dGxpbmUKKyAgICA7OyBjb21tYW5kcyB0aGF0IHJlbHkgb24gYG91dGxpbmUtc2Vh
cmNoLWZ1bmN0aW9uJywgd2hpY2gKKyAgICA7OyBgdHJlZXNpdC1tYWpvci1tb2RlLXNldHVwJyBp
bnN0YWxscyBmcm9tIGB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlJy4KKyAgICAobWFya2Rvd24t
dHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICA7OyBSZXNw
ZWN0IHRoZSB1c2VyJ3MgZGVmYXVsdCBvdXRsaW5lIGZvbGRpbmcuCisgICAgKHBjYXNlIG1hcmtk
b3duLXRzLWRlZmF1bHQtZm9sZGluZworICAgICAgKCdzaG93LWFsbCAoaWdub3JlKSkKKyAgICAg
ICgnZm9sZC1hbGwgKG91dGxpbmUtaGlkZS1zdWJsZXZlbHMgMSkpCisgICAgICAoJ2ZvbGQtaGVh
ZGluZ3MgKG91dGxpbmUtc2hvdy1hbGwpCisgICAgICAgICAgICAgICAgICAgICAgKG91dGxpbmUt
aGlkZS1yZWdpb24tYm9keSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycyAoYXJnKQorICAiSW5zdGFsbCBgbWFya2Rv
d24tdHMtbW9kZScgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgcGFyc2Vycy4KK0lmIG5lZWRlZCwgaW5z
dGFsbCB0aGUgcmVxdWlyZWQgcGFyc2VycyBmb3IgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlu
bGluZScuCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBBUkcsIGlmIG5lZWRlZCwgaW5zdGFsbCBw
YXJzZXJzIGZvciBgaHRtbCcsCitgeWFtbCcsIGFuZCBgdG9tbCcuIgorICAoaW50ZXJhY3RpdmUg
IlAiKQorICAodW5sZXNzICh0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICdtYXJrZG93bikK
KyAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ21hcmtkb3duKSkKKyAgKHVu
bGVzcyAodHJlZXNpdC1sYW5ndWFnZS1hdmFpbGFibGUtcCAnbWFya2Rvd24taW5saW5lKQorICAg
ICh0cmVlc2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAnbWFya2Rvd24taW5saW5lKSkKKyAg
KHdoZW4gYXJnCisgICAgKHVubGVzcyAodHJlZXNpdC1sYW5ndWFnZS1hdmFpbGFibGUtcCAnaHRt
bCkKKyAgICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCisgICAgICAodHJlZXNpdC1pbnN0YWxs
LWxhbmd1YWdlLWdyYW1tYXIgJ2h0bWwpKQorICAgICh1bmxlc3MgKHRyZWVzaXQtbGFuZ3VhZ2Ut
YXZhaWxhYmxlLXAgJ3lhbWwpCisgICAgICAocmVxdWlyZSAneWFtbC10cy1tb2RlKQorICAgICAg
KHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICd5YW1sKSkKKyAgICAodW5sZXNzICh0
cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICd0b21sKQorICAgICAgKHJlcXVpcmUgJ3RvbWwt
dHMtbW9kZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAndG9tbCkp
KSkKIAogOzs7IyMjYXV0b2xvYWQKIChkZWZpbmUtZGVyaXZlZC1tb2RlIG1hcmtkb3duLXRzLW1v
ZGUgdGV4dC1tb2RlICJNYXJrZG93biIKLSAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFya2Rv
d24gdXNpbmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iCisgICJNYWpvciBtb2RlIGZvciBlZGl0aW5n
IE1hcmtkb3duIHVzaW5nIHRyZWUtc2l0dGVyIGdyYW1tYXIuCitOT1RFOiBTZWUgYG1hcmtkb3du
LXRzLS1zZXQtdXAtaW5saW5lJy4iCisgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtk
b3duKQorICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpCisgIDs7
IEJ5cGFzcyBgdHJlZXNpdC1tYXgtYnVmZmVyLXNpemUnIHNvIHRoZSBtb2RlIGFjdGl2YXRlcyBp
biBsYXJnZQorICA7OyBidWZmZXJzIGluc3RlYWQgb2YgcmVmdXNpbmcuICBgdHJlZXNpdC1yZWFk
eS1wJyB3b3VsZCBvdGhlcndpc2UKKyAgOzsgcmVmdXNlIGFuZCBlbWl0IGEgbWlzbGVhZGluZyAi
cGFyc2VycyBub3QgZm91bmQiIG1lc3NhZ2UgZXZlbiB3aGVuCisgIDs7IHRoZXkgYXJlIGluc3Rh
bGxlZC4gIFJldmlzaXQgaWYgYHRyZWVzaXQtcGFyc2VyLWNyZWF0ZScgZ2FpbnMgaXRzCisgIDs7
IG93biBidWZmZXItc2l6ZSBndWFyZCAoc2VlIGJ1ZyM4MDkwOSkuCisgIChsZXQgKCh0cmVlc2l0
LW1heC1idWZmZXItc2l6ZSBtb3N0LXBvc2l0aXZlLWZpeG51bSkpCisgICAgKGlmICh0cmVlc2l0
LXJlYWR5LXAgJyhtYXJrZG93biBtYXJrZG93bi1pbmxpbmUpIHQpCisgICAgICAgIChtYXJrZG93
bi10cy0tc2V0LXVwKQorICAgICAgKHdhcm4gIm1hcmtkb3duLXRzLW1vZGUgY2Fubm90IGJlIHNl
dCB1cDsgdXNpbmcgZnVuZGFtZW50YWwtbW9kZS4KK1RoZSB0cmVlLXNpdHRlciBwYXJzZXJzIGBt
YXJrZG93bicgYW5kIGBtYXJrZG93bi1pbmxpbmUnIHdlcmUgbm90IGZvdW5kLgorVXNlIHRoZSBj
b21tYW5kIGBtYXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycycgdG8gaW5zdGFsbCB0aGVt
LgorV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgaXQgY2FuIGFsc28gaW5zdGFsbCBvcHRpb25hbCBw
YXJzZXJzLiIpCisgICAgICAoZnVuZGFtZW50YWwtbW9kZSkpKSkKIAotICAoc2V0cS1sb2NhbCBj
b21tZW50LXN0YXJ0ICI8IS0tICIpCi0gIChzZXRxLWxvY2FsIGNvbW1lbnQtZW5kICIgLS0+IikK
KyhkZXJpdmVkLW1vZGUtYWRkLXBhcmVudHMgJ21hcmtkb3duLXRzLW1vZGUgJyhtYXJrZG93bi1t
b2RlKSkKIAotICAoc2V0cS1sb2NhbCBmb250LWxvY2stZGVmYXVsdHMgbmlsCi0JICAgICAgdHJl
ZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBoZWFkaW5nKQotCQkJCQkg
ICAgICAgKHBhcmFncmFwaCkKLQkJCQkJICAgICAgIChwYXJhZ3JhcGgtaW5saW5lKSkpCisoZGVm
dW4gbWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgKCZvcHRpb25hbCBjb250ZXh0KQorICAi
U2lnbmFsIGFuIGVycm9yIGlmIHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBub3QgYSBgbWFya2Rvd24t
dHMtbW9kZScgYnVmZmVyLgorUHJlZml4IHRoZSBlcnJvciBtZXNzYWdlIHdpdGggQ09OVEVYVC4i
CisgICh1bmxlc3MgKGRlcml2ZWQtbW9kZS1wICdtYXJrZG93bi10cy1tb2RlKQorICAgICh1c2Vy
LWVycm9yICIlc2lzIHZhbGlkIG9ubHkgaW4gYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcnMiCisg
ICAgICAgICAgICAgICAgKGlmIGNvbnRleHQgKGZvcm1hdCAiJXM6ICIgY29udGV4dCkgIiIpKSkp
CiAKLSAgKHNldHEtbG9jYWwgdHJlZXNpdC1zaW1wbGUtaW1lbnUtc2V0dGluZ3MKLSAgICAgICAg
ICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy1pbWVudS1ub2RlLXAKLSAgICAgICAg
ICAgICAgICAgbmlsICwjJ21hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24pKSkKLSAgKHNl
dHEtbG9jYWwgdHJlZXNpdC1vdXRsaW5lLXByZWRpY2F0ZSAjJ21hcmtkb3duLXRzLW91dGxpbmUt
cHJlZGljYXRlKQorKGRlZmluZS1taW5vci1tb2RlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4t
Y29udGV4dC1tb2RlCisgICJNaW5vciBtb2RlIGVuYWJsZWQgaWYgcG9pbnQgaXMgd2l0aGluIGEg
ZmVuY2VkIGNvZGUgYmxvY2suCitUaGlzIGVuYWJsZXMgdGhlIGtleW1hcCBgbWFya2Rvd24tdHMt
Y29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbWFwJy4iCisgIDpncm91cCAnbWFya2Rvd24tdHMK
KyAgOmxpZ2h0ZXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbGlnaHRl
cgorICA6aW50ZXJhY3RpdmUgbmlsCisgIChtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250
ZXh0LW1vZGUtdXBkYXRlLW92KSkKIAotICAod2hlbiAoYW5kICh0cmVlc2l0LWVuc3VyZS1pbnN0
YWxsZWQgJ21hcmtkb3duKQotICAgICAgICAgICAgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQg
J21hcmtkb3duLWlubGluZSkpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFya2Rvd24t
aW5saW5lKQotICAgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3duKQotICAgIChtYXJr
ZG93bi10cy1zZXR1cCkpKQorKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tY29kZS1ibG9jay1p
bi1jb250ZXh0LW1vZGUtb3YgbmlsKQogCi0oZGVyaXZlZC1tb2RlLWFkZC1wYXJlbnRzICdtYXJr
ZG93bi10cy1tb2RlICcobWFya2Rvd24tbW9kZSkpCisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUt
YmxvY2staW4tY29udGV4dC1tb2RlLXVwZGF0ZS1vdiAoKQorICAiTWFuYWdlIGBtYXJrZG93bi10
cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YnLiIKKyAgKGNvbmQgKG1hcmtkb3duLXRz
LWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlCisgICAgICAgICAobGV0ICgoYmVnIChnZXQtY2hh
ci1wcm9wZXJ0eSAocG9pbnQpICdtYXJrZG93bi10cy1jb2RlLWJlZy1tYXJrZXIpKQorICAgICAg
ICAgICAgICAgKGVuZCAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29k
ZS1lbmQtbWFya2VyKSkpCisgICAgICAgICAgIChpZiBtYXJrZG93bi10cy0tY29kZS1ibG9jay1p
bi1jb250ZXh0LW1vZGUtb3YKKyAgICAgICAgICAgICAgIChtb3ZlLW92ZXJsYXkgbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92IGJlZyBlbmQpCisgICAgICAgICAgICAg
KHNldHEgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAgICAg
ICAgICAgICAgICAgKG1ha2Utb3ZlcmxheSBiZWcgZW5kIG5pbCB0IG5pbCkpKQorICAgICAgICAg
ICAob3ZlcmxheS1wdXQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92
CisgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaW4tY29kZS1ibG9jayB0KQor
ICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4
dC1tb2RlLW92CisgICAgICAgICAgICAgICAgICAgICAgICAnZXZhcG9yYXRlIHQpCisgICAgICAg
ICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUt
b3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eSAnKG5pbCAuIDIwKSkKKyAgICAg
ICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9k
ZS1vdgorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhY2UgJ21hcmtkb3duLXRzLWluLWNvZGUt
YmxvY2spKSkKKyAgICAgICAgKHQKKyAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgbWFya2Rv
d24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92KSkpKSkKIAotOzs7IyMjYXV0b2xv
YWQKLShkZWZ1biBtYXJrZG93bi10cy1tb2RlLW1heWJlICgpCi0gICJFbmFibGUgYG1hcmtkb3du
LXRzLW1vZGUnIHdoZW4gaXRzIGdyYW1tYXIgaXMgYXZhaWxhYmxlLgotQWxzbyBwcm9wb3NlIHRv
IGluc3RhbGwgdGhlIGdyYW1tYXIgd2hlbiBgdHJlZXNpdC1lbmFibGVkLW1vZGVzJwotaXMgdCBv
ciBjb250YWlucyB0aGUgbW9kZSBuYW1lLiIKLSAgKGRlY2xhcmUtZnVuY3Rpb24gdHJlZXNpdC1s
YW5ndWFnZS1hdmFpbGFibGUtcCAidHJlZXNpdC5jIikKLSAgKGlmIChvciAodHJlZXNpdC1sYW5n
dWFnZS1hdmFpbGFibGUtcCAnbWFya2Rvd24pCi0gICAgICAgICAgKGVxIHRyZWVzaXQtZW5hYmxl
ZC1tb2RlcyB0KQotICAgICAgICAgIChtZW1xICdtYXJrZG93bi10cy1tb2RlIHRyZWVzaXQtZW5h
YmxlZC1tb2RlcykpCi0gICAgICAobWFya2Rvd24tdHMtbW9kZSkKLSAgICAoZnVuZGFtZW50YWwt
bW9kZSkpKQorKGRlZmluZS1taW5vci1tb2RlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29udGV4
dC1tb2RlCisgICJNaW5vciBtb2RlIHRvIGVuYWJsZSBjb21tYW5kcyBpbiBmZW5jZWQgY29kZSBi
bG9jayBjb250ZXh0LgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIGZlbmNlZCBjb2Rl
IGJsb2NrLCBydW4gYGluZGVudC1mb3ItdGFiLWNvbW1hbmQnLAorYG5ld2xpbmUnLCBldC5hbC4s
IGluIHRoZSBtb2RlIG9mIHRoZSBjb2RlIGJsb2NrLiIKKyAgOmdyb3VwICdtYXJrZG93bi10cwor
ICA6aW50ZXJhY3RpdmUgbmlsCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUpCisgIChjb25kIChtYXJrZG93bi10cy1j
b2RlLWJsb2NrLWNvbnRleHQtbW9kZQorICAgICAgICAgOzsgRW5hYmxlIHRoZSBtaW5vciBtb2Rl
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZScgYW5kCisgICAgICAgICA7
OyBpdHMga2V5bWFwIHdoZW4gcG9pbnQgaXMgd2l0aGluIGEgY29kZSBibG9jay4KKyAgICAgICAg
IChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAgICAjJ21hcmtk
b3duLXRzLS1lbmFibGUtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUgbmlsICdsb2NhbCkKKyAg
ICAgICAgIDs7IElmIGBzYXZlLXBsYWNlLW1vZGUnIG9yIHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQg
Y291bGQgc3RhcnQgd2l0aGluCisgICAgICAgICA7OyBhIGNvZGUgYmxvY2sgc28gaW5pdGlhbGl6
ZSBmcm9tIHRoYXQgc3RhdGUuCisgICAgICAgICAocnVuLXdpdGgtdGltZXIgMC4wMSBuaWwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9jay1p
bi1jb250ZXh0LW1vZGUpCisgICAgICAgICA7OyBGb3IgZWFjaCBlbGlnaWJsZSBjb21tYW5kLCBl
eGVjdXRlIGl0IGluIGEgY29kZS1ibG9jayBjb250ZXh0LAorICAgICAgICAgOzsgb3RoZXJ3aXNl
IGluIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyJ3MgY29udGV4dC4KKyAgICAgICAgIChh
ZGQtaG9vayAncHJlLWNvbW1hbmQtaG9vaworICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24t
dHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgbmlsICdsb2NhbCkKKyAgICAgICAg
IDs7IFBydW5lIHN0YWxlIGNvZGUgYmxvY2sgb3ZlcmxheXMgd2hlbiB0aGUgaG9zdCBwYXJzZSB0
cmVlCisgICAgICAgICA7OyBjaGFuZ2VzIChlLmcuLCB3aGVuIGZlbmNlZCBjb2RlIGJsb2NrIGRl
bGltaXRlcnMgYXJlCisgICAgICAgICA7OyBkZWxldGVkIGJ1dCB0aGUgb3ZlcmxheSBmcm9tIGEg
cHJpb3IgZm9udGlmaWNhdGlvbiByZW1haW5zKS4KKyAgICAgICAgICh0cmVlc2l0LXBhcnNlci1h
ZGQtbm90aWZpZXIKKyAgICAgICAgICB0cmVlc2l0LXByaW1hcnktcGFyc2VyCisgICAgICAgICAg
IydtYXJrZG93bi10cy0taG9zdC1yYW5nZXMtbm90aWZpZXIpKQorICAgICAgICAodAorICAgICAg
ICAgKHJlbW92ZS1ob29rICdwb3N0LWNvbW1hbmQtaG9vaworICAgICAgICAgICAgICAgICAgICAg
ICMnbWFya2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSAnbG9jYWwp
CisgICAgICAgICAocmVtb3ZlLWhvb2sgJ3ByZS1jb21tYW5kLWhvb2sKKyAgICAgICAgICAgICAg
ICAgICAgICAjJ21hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrICds
b2NhbCkKKyAgICAgICAgICh0cmVlc2l0LXBhcnNlci1yZW1vdmUtbm90aWZpZXIKKyAgICAgICAg
ICB0cmVlc2l0LXByaW1hcnktcGFyc2VyCisgICAgICAgICAgIydtYXJrZG93bi10cy0taG9zdC1y
YW5nZXMtbm90aWZpZXIpKSkpCisKKyhkZWZpbmUtbWlub3ItbW9kZSBtYXJrZG93bi10cy1pbi10
YWJsZS1tb2RlCisgICJNaW5vciBtb2RlIGVuYWJsZWQgaWYgcG9pbnQgaXMgd2l0aGluIGEgdGFi
bGUuCitUaGlzIGVuYWJsZXMgdGhlIGtleW1hcCBgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZS1t
YXAnLiIKKyAgOmdyb3VwICdtYXJrZG93bi10cworICA6bGlnaHRlciBtYXJrZG93bi10cy1pbi10
YWJsZS1tb2RlLWxpZ2h0ZXIKKyAgOmludGVyYWN0aXZlIG5pbAorICAobWFya2Rvd24tdHMtLWlu
LXRhYmxlLW1vZGUtdXBkYXRlLW92KSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0taW4t
dGFibGUtbW9kZS1vdiBuaWwpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1n
ZXQtb3YgKHBvcykKKyAgIlJldHVybiB0aGUgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnIG92
ZXJsYXkgYXQgUE9TLiIKKyAgKHNlcS1maW5kIChsYW1iZGEgKG92KQorICAgICAgICAgICAgICAo
d2hlbiAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWluLXRhYmxlKQorICAgICAgICAgICAg
ICAgIG92KSkKKyAgICAgICAgICAgIChvdmVybGF5cy1hdCBwb3MpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS10YWJsZS10aWNrLXVwZGF0ZSAocG9zKQorICAiVXBkYXRlIHRoZSBgbWFya2Rvd24t
dHMtaW4tdGFibGUtbW9kZScgb3ZlcmxheSB0aWNrIGF0IFBPUy4KK0lmIHRoZSBvdmVybGF5IGlz
IG5vdCBmb3VuZCwgZG8gbm90aGluZy4iCisgICh3aGVuLWxldCogKChvdiAobWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtZ2V0LW92IHBvcykpKQorICAgIChvdmVybGF5LXB1dCBvdgorICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24tdHMtaW4tdGFibGUtdGljaworICAgICAgICAgICAgICAgICAo
YnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2spKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFi
bGUtdGljay1zdGFsZS1wIChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiB0aGUgdGFibGUgYXQg
UE9TIG1pZ2h0IGhhdmUgY2hhbmdlZC4KK0l0IGlzIHVwIHRvIHRoaXMgZnVuY3Rpb24ncyBjYWxs
ZXJzIHRvIGNhbGwKK2BtYXJrZG93bi10cy0tdGFibGUtdGljay11cGRhdGUnLiIKKyAgKHdoZW4t
bGV0KiAoKG92IChtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YgcG9zKSkpCisgICAg
KG5vdCAoZXEgKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10cy1pbi10YWJsZS10aWNrKQorICAg
ICAgICAgICAgIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaykpKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0taW4tdGFibGUtbW9kZS11cGRhdGUtb3YgKCkKKyAgIk1hbmFnZSBgbWFya2Rvd24t
dHMtLWluLXRhYmxlLW1vZGUtb3YnLiIKKyAgKGNvbmQgKG1hcmtkb3duLXRzLWluLXRhYmxlLW1v
ZGUKKyAgICAgICAgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUt
cCBuaWwgdCkpCisgICAgICAgICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisg
ICAgICAgICAgICAgICAgICAgICAoYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgdGFibGUpKQorICAg
ICAgICAgICAgICAgICAgICAgKGVuZCAodHJlZXNpdC1ub2RlLWVuZCB0YWJsZSkpKQorICAgICAg
ICAgICAoaWYgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgIDs7
IE1vdmUgdGhlIG92ZXJsYXksIGlmIG5lZWRlZCwgYW5kIHJlc2V0IHRoZSB0aWNrIGlmIHNvLgor
ICAgICAgICAgICAgICAgKHdoZW4gKG5vdCAoZXEgKG92ZXJsYXktc3RhcnQgbWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtb3YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWcpKQor
ICAgICAgICAgICAgICAgICAobW92ZS1vdmVybGF5IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2Rl
LW92IGJlZyBlbmQpCisgICAgICAgICAgICAgICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0t
aW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3du
LXRzLWluLXRhYmxlLXRpY2sgbmlsKSkKKyAgICAgICAgICAgICAoc2V0cSBtYXJrZG93bi10cy0t
aW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgIChtYWtlLW92ZXJsYXkgYmVnIGVu
ZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1pbi10
YWJsZS1tb2RlLW92CisgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaW4tdGFi
bGUgdCkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2Rl
LW92CisgICAgICAgICAgICAgICAgICAgICAgICAnZXZhcG9yYXRlIHQpCisgICAgICAgICAgIChv
dmVybGF5LXB1dCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAgICAg
ICAgICAgICAgJ3ByaW9yaXR5ICcobmlsIC4gMjApKQorICAgICAgICAgICAob3ZlcmxheS1wdXQg
bWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdm
YWNlICdtYXJrZG93bi10cy1pbi10YWJsZSkKKyAgICAgICAgICAgKSkKKyAgICAgICAgKHQKKyAg
ICAgICAgICh3aGVuIG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92CisgICAgICAgICAgIChk
ZWxldGUtb3ZlcmxheSBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdikpKSkpCisKKyhkZWZp
bmUtbWlub3ItbW9kZSBtYXJrZG93bi10cy10YWJsZS1tb2RlCisgICJNaW5vciBtb2RlIHRvIGVu
YWJsZSBjb21tYW5kcyBpbiB0YWJsZXMuCitJZiBub24tbmlsIGFuZCBgcG9pbnQnIGlzIGluIGEg
dGFibGUsIGVuYWJsZQorYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnLiIKKyAgOmdyb3VwICdt
YXJrZG93bi10cworICA6aW50ZXJhY3RpdmUgbmlsCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1u
b3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbW9kZSkKKyAgKGNvbmQgKG1hcmtkb3duLXRzLXRh
YmxlLW1vZGUKKyAgICAgICAgIDs7IEVuYWJsZSB0aGUgbWlub3IgbW9kZSBgbWFya2Rvd24tdHMt
aW4tdGFibGUtbW9kZScgYW5kCisgICAgICAgICA7OyBpdHMga2V5bWFwIHdoZW4gcG9pbnQgaXMg
d2l0aGluIGEgY29kZSBibG9jay4KKyAgICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhv
b2sKKyAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtaW4tdGFibGUtbW9k
ZSBuaWwgJ2xvY2FsKQorICAgICAgICAgOzsgSWYgYHNhdmUtcGxhY2UtbW9kZScgb3Igc2ltaWxh
ciBpcyB1c2VkLCBwb2ludCBjb3VsZCBzdGFydCB3aXRoaW4KKyAgICAgICAgIDs7IGEgdGFibGUs
IHNvIGluaXRpYWxpemUgZnJvbSB0aGF0IHN0YXRlLgorICAgICAgICAgKHJ1bi13aXRoLXRpbWVy
IDAuMDEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZW5hYmxl
LWluLXRhYmxlLW1vZGUpKQorICAgICAgICAodAorICAgICAgICAgKHJlbW92ZS1ob29rICdwb3N0
LWNvbW1hbmQtaG9vaworICAgICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWVuYWJs
ZS1pbi10YWJsZS1tb2RlICdsb2NhbCkpKSkKIAogOzs7IyMjYXV0b2xvYWQKICh3aGVuIChib3Vu
ZHAgJ3RyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdCkKLSAgKGFkZC10by1saXN0ICdhdXRv
LW1vZGUtYWxpc3QgJygiXFwubWRcXCciIC4gbWFya2Rvd24tdHMtbW9kZS1tYXliZSkpCi0gIDs7
IFRvIGJlIGFibGUgdG8gdG9nZ2xlIGJldHdlZW4gYW4gZXh0ZXJuYWwgcGFja2FnZSBhbmQgY29y
ZSB0cy1tb2RlOgorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZFxcJyIg
LiBtYXJrZG93bi10cy1tb2RlKSkKKyAgKGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygi
XFwubWFya2Rvd25cXCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCisgIChhZGQtdG8tbGlzdCAnYXV0
by1tb2RlLWFsaXN0ICcoIlxcLm1keFxcJyIgLiBtYXJrZG93bi10cy1tb2RlKSkKICAgKGFkZC10
by1saXN0ICd0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QKICAgICAgICAgICAgICAgICco
bWFya2Rvd24tbW9kZSAuIG1hcmtkb3duLXRzLW1vZGUpKSkKIAotLSAKMi41NC4wCgo=
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 2 May 2026 00:20:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 01 20:20:34 2026
Received: from localhost ([127.0.0.1]:40018 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIy5y-0007GM-83
	for submit <at> debbugs.gnu.org; Fri, 01 May 2026 20:20:34 -0400
Received: from mail-dy1-x1329.google.com ([2607:f8b0:4864:20::1329]:58568)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wIy5r-0007FH-Fv
 for 80740 <at> debbugs.gnu.org; Fri, 01 May 2026 20:20:28 -0400
Received: by mail-dy1-x1329.google.com with SMTP id
 5a478bee46e88-2eadb000b8cso4581720eec.0
 for <80740 <at> debbugs.gnu.org>; Fri, 01 May 2026 17:20:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777681226; x=1778286026; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=fc4G6WHFjpNYZC6IG695wx9kdbDsXMnbcG6sNVmQ4Fg=;
 b=AhNsAqc6IbqSFwzcYm+l/3DCEdiYciTEEQ4WtVIXGaFBeRAWiD6qiG8XkOgGpGh0oN
 vJEQqZNPybOgffBETf5SVvxDUTN8a+wTOObpHWFucvCaz6YUSXjZ7a8em8IlnHbFQwKl
 Ix2y2L+q65yvcJlD80YcQh0d6x0mhfzQ2lVtCzvxWgHLjWJtg/L40PuiI9Eei7Chhoq1
 xL3B6+DOGzyiTa/47sriKxPBo6/dSWBrlXolChOgrdmnvrjD2HONsM3IT+XsP+sB/ivg
 2xoHuVG7QP0KcSLtcrag/GiZR8E6mjo1Yih3qRwQXR/qoOqWTv7WFGMrfwRmRuSYYH1R
 g30g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777681226; x=1778286026;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=fc4G6WHFjpNYZC6IG695wx9kdbDsXMnbcG6sNVmQ4Fg=;
 b=XchqBm1VIe3VKg/ZHUxZgHFw/7g3c/d4337Ghbz+uI7/e2czJoxelO716zq/NIlx+7
 AS/+iwjQsyBr2UoP8AnXRSHsjO5JTo2D3XMFvJBtp6x8oufHMn70/oOXfbxfaOvtEAHu
 0g7CUOQ1ytXV7SJOTXY2IC/G7rPhSJOMkaM9dUeCmSKHml576QBOB37EDGsg5ECo8Dci
 j7J3ul8/JGYTNbDvrk7TorZ+ycItVENXNXJvOnspsa8pnF3yLId5PRnABd9ZOAx58p1e
 VnDxArErXpZFpNsUNqz5n1JHX0TIIKEYzjzjixeaEfCngNHKyeT3cOh9GgWjNyp9eHNB
 sPgg==
X-Forwarded-Encrypted: i=1;
 AFNElJ9ktAxMlilqPwCEZ2iKQxwbag8W+hwjrhJuD/V3qj9SNBUXQ2hy78Vm7LAMCHuWcK2NQJXElQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzEsxQHzgVUO1cOpA7DPZyN8MCEMlKZDr3L5OdMo3/Kn55vayw/
 Hg9pISzHTUW5pXiwK8NPsDw14dKgvnTvk5YnpCTf5xNO3oIH+fKuDYfBgHmDGmDBens=
X-Gm-Gg: AeBDies9k51XMRAhrNv0pSoN3BJLag6wUAMskSgi7WIs62jhLjKZ7w/yHiCFXgBH9Cv
 z7gfxQKk/ZymkcejtMjZ6bJ78Jb3WcLDlOpa7/wyMKKlPJnUl2IL9CBV5+wzOdrU8mCayTbOvfM
 v2PYEx0wkfk9pwmltAEuS0eeH484m14MFFsDwLPG+yOzoCP566M9IO+h/8W1wU/LhoGqSLmxW50
 tFFp68PCCDCfIt3ykFe/QLousw0D06fYr2suxz+6pug+C0laIgpdPbBZLIHWNhiAqnM5gFnU7UL
 74JCl7adIHIyZhMm4kLwg0dir5+nMp2ZlztMeZqOBi3MWMhA6npbz/Wdbw04BOKR4I3VrBnAW8J
 OUqOY4EO4P5PNMzfWB90AoTfoLJOWNDZfTM1y2vDopisMZdLnCtoUonybae2feZo1loJ37t8s1n
 oYEqMfO90TVxj+1lvU7QS2e8RCLDXskqdl6tnVsF9UKFI3pg2yIgMWm2a6hW4AUn2ghhVjpAgPF
 Bt9RrkhHoI3BAwm6hR+iTQsXlGFDmD9LxeYcKjwKlYuyNq6ZjsZGeL4
X-Received: by 2002:a05:7301:6786:b0:2ed:e12:376f with SMTP id
 5a478bee46e88-2efba3aa201mr714007eec.31.1777681225190; 
 Fri, 01 May 2026 17:20:25 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-77.dial-up.telesp.net.br.
 [201.93.59.77]) by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2ee3889d611sm8302089eec.1.2026.05.01.17.20.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 May 2026 17:20:23 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN> <m2ik982h8d.fsf@HIDDEN>
 <871pfvtso9.fsf@HIDDEN> <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
 <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Fri, 01 May 2026 21:20:14 -0300
Message-ID: <m2mryi7jcx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: 80740 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Rahul Martim Juliato <rahuljuliato@HIDDEN>, Eshel Yaron <me@HIDDEN>,
 =?utf-8?Q?St=C3=A9phane?= Marks <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

St=C3=A9phane Marks <shipmints@HIDDEN> writes:

> On Fri, May 1, 2026 at 1:54=E2=80=AFPM Eshel Yaron <me@HIDDEN> wr=
ote:
>
>  Hi,
>
>  St=C3=A9phane Marks <shipmints@HIDDEN> writes:
>
>  > On Fri, May 1, 2026 at 10:26=E2=80=AFAM Rahul Martim Juliato <rahuljul=
iato@HIDDEN> wrote:
>  >
>  >  Eshel Yaron <me@HIDDEN> writes:
>  >
>  >  > Hi,
>  >  >
>  >  > Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
>  >  >
>  >  >> +(defun markdown-ts-mode-install-parsers (arg)
>  >  >> +  "Install `markdown-ts-mode' tree-sitter language parsers.
>  >  >> +If needed, install the required parsers for `markdown' and `markd=
own-inline'.
>  >  >> +With a prefix argument, ARG, if needed, install parsers for `html=
',
>  >  >> +`yaml', and `toml'."
>  >  >> +  (interactive "P")
>  >  >> +  (unless (treesit-ready-p 'markdown t)
>  >  >> +    (treesit-install-language-grammar 'markdown))
>  >  >
>  >  > Note that this `treesit-ready-p' is not quite right, because
>  >  > treesit-ready-p is sensitive to the current buffer.  Namely, this w=
ill
>  >  > return nil if you invoke this command in a large buffer of any kind,
>  >  > even if the markdown parser is already installed.
>  >  > Yes, treesit-ready-p is confusing.  See also bug#80909.
>  >  >
>  >  >> +  (unless (treesit-ready-p 'markdown-inline t)
>  >  >> +    (treesit-install-language-grammar 'markdown-inline))
>  >  >> +  (when arg
>  >  >> +    (unless (treesit-ready-p 'html t)
>  >  >> +      (require 'html-ts-mode)
>  >  >> +      (treesit-install-language-grammar 'html))
>  >  >> +    (unless (treesit-ready-p 'yaml t)
>  >  >> +      (require 'yaml-ts-mode)
>  >  >> +      (treesit-install-language-grammar 'yaml))
>  >  >> +    (unless (treesit-ready-p 'toml t)
>  >  >> +      (require 'toml-ts-mode)
>  >  >> +      (treesit-install-language-grammar 'toml))))
>  >  >>=20=20
>  >  >>  ;;;###autoload
>  >  >>  (define-derived-mode markdown-ts-mode text-mode "Markdown"
>  >  >> -  "Major mode for editing Markdown using tree-sitter grammar."
>  >  >> +  "Major mode for editing Markdown using tree-sitter grammar.
>  >  >> +NOTE: See `markdown-ts--set-up-inline'."
>  >  >> +  (if (and (treesit-ensure-installed 'markdown)
>  >  >> +           (treesit-ensure-installed 'markdown-inline))
>  >  >> +      (markdown-ts--set-up)
>  >  >
>  >  > Here there is another, related problem: since commit d9691858,
>  >  > treesit-ensure-installed no longer checks treesit-max-buffer-size,=
=20
>  >  > so this will try to create a parser even in a buffer that is too bi=
g.
>  >  > (This problem is common to many TS-modes in core.)
>  >  >
>  >  > FWIW, my suggestion in bug#80909 was to move the buffer size check =
out
>  >  > of treesit-ready-p and into treesit-parser-create, which would have
>  >  > nullified both of these issues.
>  >  >
>  >  >
>  >  > Best,
>  >  >
>  >  > Eshel
>  >
>  >  Hi!
>  >
>  >  Eshel, thank you for noticing these issues, and for the pointer to
>  >  bug#80909.  I spent some time reading what you provided and digging i=
nto
>  >  the recent change in d9691858.
>  >
>  >  The attached patch (new) addresses both problems:
>  >
>  >  - In markdown-ts-mode-install-parsers, replace treesit-ready-p with
>  >    treesit-language-available-p.  The install function only needs to
>  >    know whether the grammar library is on disk, not whether the current
>  >    buffer is within size limits.
>
>  LGTM.
>
>  >  - In define-derived-mode markdown-ts-mode, separate the two concerns:
>  >    call treesit-ensure-installed for both languages first (which handl=
es
>  >    auto-install if treesit-auto-install-grammar is set), then gate the
>  >    actual mode setup on treesit-ready-p, which checks both language
>  >    availability and buffer size.
>
>  This one also look good, with a little caveat about this part:
>
>     ;;;###autoload
>     (define-derived-mode markdown-ts-mode text-mode "Markdown"
>    -  "Major mode for editing Markdown using tree-sitter grammar."
>    +  "Major mode for editing Markdown using tree-sitter grammar.
>    +NOTE: See `markdown-ts--set-up-inline'."
>    +  (treesit-ensure-installed 'markdown)
>    +  (treesit-ensure-installed 'markdown-inline)
>    +  (if (and (treesit-ready-p 'markdown t)
>    +           (treesit-ready-p 'markdown-inline t))
>    +      (markdown-ts--set-up)
>    +    (warn "markdown-ts-mode cannot be set up; using fundamental-mode.
>    +The tree-sitter parsers `markdown' and `markdown-inline' were not fou=
nd.
>    +Use the command `markdown-ts-mode-install-parsers' to install them.
>    +With a prefix argument, it can also install optional parsers.")
>    +    (fundamental-mode)))
>
>  Note that this triggers the warning also when the current buffer is too
>  large, in which case the first sentence is correct, but the rest might
>  be false (the parsers may be available, perhaps even just-installed.)
>  You could call treesit-ready-p without the QUIET=3Dt argument, and it
>  should yield the correct error message on failure.  Of course, it
>  doesn't include the hint about markdown-ts-mode-install-parsers...
>
> So maybe until treesit-max-buffer-size checking is better rationalized, w=
e let bind treesit-max-buffer-size to most-positive-fixnum and provide a wa=
rning
> rather than refusal.

Thanks Eshel and St=C3=A9phane.

I went this route: treesit-max-buffer-size is let-bound to
most-positive-fixnum around the treesit-ready-p check, so the mode
activates in large buffers rather than refusing.

With the size check bypassed, the only remaining failure path is a
genuinely missing grammar, so the "parsers not found" warning stays
accurate. A comment in the code now references bug#80909 as the signal
to revisit this workaround.

>
>  >  Yuan, St=C3=A9phane, Eshel, does this look right to you?
>  >
>  > Seems good at first glance.
>  >
>  > One can always let-bind treesit-max-buffer-size around treesit-ready-p=
 to avoid the buffer size
>  > restriction, though I'd prefer an argument be exposed to inhibit that =
check,  better invert it so that
>  > it's an extra check not the default check.  One can install a parser i=
n a small buffer that grows beyond
>  > the size check which is a false sense of security.
>

Please find the updated patch attached.

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSA0YmQ3ODVmMDQ5YmE2MTQ3NWQ2N2MyZTRjNGNlN2JkMzFkZWNlNmMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYSBtb2RlIG1lbnUs
IGFuZCB0YWJsZSBlZGl0aW5nLiAgQWRkCidtYXJrZG93bi10cy1tb2RlLXguZWwnIHdpdGggY29u
dmVyc2lvbi9leHBvcnQgYW5kIFRPQyBzdXBwb3J0LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwKUGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRz
IGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29tbWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9y
IGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMsIGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0
aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUtc2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUg
J2dvdG8tYWRkciwgeHJlZiwgaWNvbnMpOiBOZXcgcmVxdWlyZW1lbnRzLgoobWFya2Rvd24tdHMp
OiBOZXcgY3VzdG9taXphdGlvbiBncm91cCB3aXRoIDp2ZXJzaW9uIGFuZAo6cGFja2FnZS12ZXJz
aW9uIHRhZ3MuCihtYXJrZG93bi10cy1oaWRlLW1hcmt1cCk6IEFkZCA6dmVyc2lvbiBhbmQgOnBh
Y2thZ2UtdmVyc2lvbi4KKG1hcmtkb3duLXRzLWVsbGlwc2lzKTogTmV3IG9wdGlvbiBmb3IgZm9s
ZGVkIGhlYWRpbmcgZWxsaXBzaXMuCihtYXJrZG93bi10cy1tZW51LWJhci1zaG93KTogTmV3IG9w
dGlvbiB0byB0b2dnbGUgbW9kZSBtZW51LgoobWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nKTog
TmV3IG9wdGlvbiBmb3IgZGVmYXVsdCBmb2xkCmxldmVsLgoobWFya2Rvd24tdHMtaW5saW5lLWlt
YWdlcyk6IE5ldyBvcHRpb24gdG8gZGlzcGxheSBpbmxpbmUKaW1hZ2VzLgoobWFya2Rvd24tdHMt
aW1hZ2UtbWF4LXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgaW1hZ2UgbWF4IHdpZHRoLgoobWFya2Rv
d24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcyk6IE5ldyBvcHRpb24gZm9yCnJlbW90
ZSBpbWFnZSBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUpOiBO
ZXcgaGVscGVyIHRvIHJlc29sdmUKZGlzcGxheSB2YWx1ZXMgdXNpbmcgY2hhci1kaXNwbGF5YWJs
ZS1wLgoobWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNr
ZWQgY2hlY2tib3gKZGlzcGxheSBzdHJpbmcgb3IgaWNvbi4KKG1hcmtkb3duLXRzLWNoZWNrZWQt
Y2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKY2hlY2tlZCB2YXJpYW50
LgoobWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgdW5jaGVj
a2VkCmNoZWNrYm94IGRpc3BsYXkgc3RyaW5nIG9yIGljb24uCihtYXJrZG93bi10cy11bmNoZWNr
ZWQtY2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKdW5jaGVja2VkIHZh
cmlhbnQuCihtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9u
IGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5IGNoYXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcgb3B0aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4g
cGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xhc2ggaGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3Vw
IGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRp
b24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBwbGFjZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJk
IGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCmNvZGUgYmxvY2sgY29u
dGV4dCBtb2RlIGxpZ2h0ZXIgc3RyaW5nLgoobWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2Nr
LW1vZGUtd2FybmluZ3MpOiBOZXcgb3B0aW9uIHRvCmluaGliaXQgY29kZS1ibG9jayBtYWpvci1t
b2RlIG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgZGVmYXVsdAp0YWJsZSBjb2x1bW4gd2lkdGguCiht
YXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZSk6IE5ldyBvcHRpb24gdG8gZW5hYmxlIHRhYmxl
Cm1vZGUuCihtYXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduKTogTmV3IG9wdGlvbiBmb3IgdHJp
Z2dlcnMgdGhhdApjYXVzZSBhdXRvbWF0aWMgdGFibGUgYWxpZ25tZW50LgoobWFya2Rvd24tdHMt
dGFibGUtYWxpZ24tZmVhdHVyZXMpOiBOZXcgb3B0aW9uIGZvciB0YWJsZSBhbGlnbgpmZWF0dXJl
cy4KKG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCm1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUgbGlnaHRlciBzdHJpbmcuCihtYXJrZG93bi10cy1lbXBo
YXNpcywgbWFya2Rvd24tdHMtYm9sZCkKKG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gsIG1hcmtk
b3duLXRzLWxpbmspCihtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uLCBtYXJrZG93bi10cy1j
b2RlLXNwYW4pCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLCBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1hcmt1cC1oaWRkZW4pCihtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrLCBtYXJrZG93
bi10cy1odG1sLXRhZykKKG1hcmtkb3duLXRzLWh0bWwtYmxvY2ssIG1hcmtkb3duLXRzLXRoZW1h
dGljLWJyZWFrKQoobWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSkKKG1hcmtkb3duLXRzLW51
bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSwgbWFya2Rvd24tdHMtbGF0ZXgpCihtYXJrZG93bi10
cy10YWJsZS1oZWFkZXIsIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCihtYXJrZG93bi10cy10YWJs
ZS1kZWxpbWl0ZXItY2VsbCwgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpCihtYXJrZG93bi10
cy10YXNrLWNoZWNrZWQpOiBOZXcgZmFjZXMuCihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
YmFja3NsYXNoKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4p
CihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpCihtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstc3BhY2UtaGlkZGVuKTogTmV3IGZhY2VzIGZvciB0aGUKdHdvIGhhcmQtbGluZS1i
cmVhayB2YXJpYW50cywgd2l0aCBkaXN0aW5jdCBzaG93bi9oaWRkZW4KYXBwZWFyYW5jZXMuCiht
YXJrZG93bi10cy1pbi1jb2RlLWJsb2NrKTogTmV3IGZhY2UgZm9yIHdoZW4gcG9pbnQgaXMgaW5z
aWRlIGEKZmVuY2VkIGNvZGUgYmxvY2suCihtYXJrZG93bi10cy10YWJsZSk6IE5ldyBmYWNlIGZv
ciBNYXJrZG93biBwaXBlIHRhYmxlCmJhY2tncm91bmQuCihtYXJrZG93bi10cy1pbi10YWJsZSk6
IE5ldyBmYWNlIGZvciBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlCndoZW4gcG9pbnQgaXMgaW4g
YSB0YWJsZS4KKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lKTogTmV3IHZhcmlhYmxlIGZvciBs
aWdodHdlaWdodCBzZXR1cAppbiBlbWJlZGRlZCBpbmxpbmUgbWFya2Rvd24tdHMtbW9kZSBidWZm
ZXJzIHVzZWQgYnkgY29kZSBibG9jawpjb21tYW5kcy4KKG1hcmtkb3duLXRzLWRlZmF1bHQtY29k
ZS1ibG9jay1tb2RlKTogTmV3IHZhcmlhYmxlIHRvIGRlZmluZQpkZWZhdWx0IG1vZGUgZm9yIGFu
b255bW91cyBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZvbnRpZnktY29kZS1ibG9ja3MtbmF0
aXZlbHkpOiBOZXcgb3B0aW9uIHRvCmVuYWJsZS9kaXNhYmxlIG5hdGl2ZSBmb250aWZpY2F0aW9u
IG9mIGZlbmNlZCBjb2RlIGJsb2NrCmNvbnRlbnRzLgoobWFya2Rvd24tdHMtZW5hYmxlLWNvZGUt
YmxvY2stY29udGV4dC1tb2RlKTogTmV3IG9wdGlvbiB0bwplbmFibGUvZGlzYWJsZSBjb2RlIGJs
b2NrIGNvbnRleHQgaW50ZWdyYXRpb24uCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKTog
TmV3IHZhcmlhYmxlIHJlcGxhY2luZwptYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1t
YXAgYW5kCm1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwIHdpdGggdW5pZmll
ZCBsYW5ndWFnZSB0bwptb2RlIG1hcHBpbmcgaW5jbHVkaW5nIGhldXJpc3RpYyBsb29rdXAuCiht
YXJrZG93bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcyk6IE5ldyB2YXJp
YWJsZQpsaXN0aW5nIHRyZWUtc2l0dGVyIG1vZGVzIHdob3NlIGZvbnRpZmljYXRpb24gb2YgY29k
ZSBibG9jawpjb250ZW50IHNob3VsZCBiZSBoYXJ2ZXN0ZWQgdmlhIGEgdGVtcG9yYXJ5IGJ1ZmZl
ci4KKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpOiBOZXcgY29uc3RhbnQgZm9yIHRh
YmxlIGV4cG9ydApvdXRwdXQgYnVmZmVyIG5hbWUuCihtYXJrZG93bi10cy0tdGFibGUtcm93LXR5
cGVzLCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1k
ZWxpbWl0ZXItY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcyk6IE5ldyBjb25zdGFudHMgZm9yCnBpcGUgdGFibGUgbm9kZSB0eXBlIGNsYXNzaWZp
Y2F0aW9uLgoobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24pOiBOZXcgZnVuY3Rpb24gdG8g
Y3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMgd2l0aCBtYWlsdG8sIGJyb3dzZS11cmwsIGFu
ZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0
aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGxpbmsgZGVzdGluYXRpb25zIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSwgbWFya2Rvd24tdHMt
LWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMp
CihtYXJrZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZik6IE5ldyBsaW5rIHJlZmVyZW5jZSBkZWZp
bml0aW9uCmNhY2hlIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBwZXIgQ29tbW9uTWFy
ayBzcGVjLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKTogTmV3IGZvbnRpZmllciBm
b3IgaW5saW5lLApyZWZlcmVuY2UsIHNob3J0Y3V0LCBhbmQgY29sbGFwc2VkIGxpbmtzIGFzIGNs
aWNrYWJsZSBidXR0b25zLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspOiBOZXcgZm9u
dGlmaWVyIGZvciBVUkkgYW5kIGVtYWlsCmF1dG9saW5rcyB3aXRoIGFuZ2xlIGJyYWNrZXQgaGlk
aW5nLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCihtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbik6IE5ldyBmb250aWZpZXJzIGZvcgpsaW5rIHJl
ZmVyZW5jZSBkZWZpbml0aW9ucy4KKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1Yi1zdHJpcC1yZSwg
bWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQoobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jLCBtYXJr
ZG93bi10cy0tZXhwbGljaXQtaWQtcmUpCihtYXJrZG93bi10cy0taGVhZGluZy10ZXh0LWFuZC1p
ZCkKKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlKQoobWFya2Rvd24tdHMtLWhlYWRpbmct
aWQtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24t
dHMtLWhlYWRpbmctaWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFn
bWVudCBsaW5rIHN1cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMu
CihtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5
LWxhdGV4LWJsb2NrKTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdy
YXBoIHZhbGlkYXRpb24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTog
TmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNp
ZGUgTGFUZVggYmxvY2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIg
dXNpbmcgb3JnLWVudGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3Bl
cnR5IGZvciBkZWNvZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTog
TmV3IGZvbnRpZmllciBzaG93aW5nIHRoZQpjb25maWd1cmVkIGNoZWNrYm94IGdseXBoIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhayk6
IE5ldyBmb250aWZpZXIgZm9yCidoYXJkX2xpbmVfYnJlYWsnIG5vZGVzLgoobWFya2Rvd24tdHMt
LWZvbnRpZnktaGVhZGluZyk6IE5ldyBmb250aWZpZXIgZm9yIEFUWCBhbmQgU2V0ZXh0CmhlYWRp
bmdzLgoobWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspOiBOZXcgZm9udGlmaWVy
IHNob3dpbmcKaG9yaXpvbnRhbCBsaW5lIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3du
LXRzLS1mb250aWZ5LWNvZGUtYmxvY2spOiBOZXcgZm9udGlmaWVyIGFwcGx5aW5nCmJhY2tncm91
bmQgb3ZlcmxheSB0byBjb2RlIGJsb2NrcyB3aXRoIGxhbmd1YWdlIGFuZCBtb2RlCnByb3BlcnRp
ZXMuCihtYXJrZG93bi10cy1hdC1jb2RlLWJsb2NrLXApCihtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LWxhbmd1YWdlLWF0KQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vz
c29ycyBmb3IgY29kZSBibG9jawpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1l
bnUtY29kZS1ibG9jay1ub2RlLXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRl
dGVjdGlvbi4KKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXApCihtYXJrZG93bi10
cy0tZm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0YW5kYWxv
bmUgYW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAp
CihtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMtLWZvbnRp
ZnktYmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEgaml0LWxv
Y2sgdXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5n
cyk6IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJzLCBhbmQg
bmV3IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxlbWVudHMu
ICBBbHNvIGFkZCBhIG5ldyAnZXJyb3InIGZvbnQtbG9jayBmZWF0dXJlCmhpZ2hsaWdodGluZyB0
cmVlLXNpdHRlciBFUlJPUiBub2Rlcy4KKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdl
cykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rlcyk6IE5ldyBidWZmZXItbG9j
YWwgYWxpc3RzCmZvciBjb2RlIGJsb2NrIGxhbmd1YWdlIHRyYWNraW5nLgoobWFya2Rvd24tdHMt
LWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24pOiBSZW5hbWUgZnJvbQptYXJrZG93
bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZpZ3Mgd2l0aCBkZWxheS1tb2RlLWhvb2tzLgoobWFy
a2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlcik6IFJlbmFtZSBmcm9tCm1hcmtkb3du
LXRzLS1hZGQtY29uZmlnLWZvci1tb2RlLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUp
OiBOZXcgaGVscGVyIGV4dHJhY3RpbmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9j
b250ZW50IG5vZGUuCihtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpOiBOZXcgYnVm
ZmVyLWxvY2FsIGhhc2ggdGFibGUKY2FjaGluZyBmb250aWZpY2F0aW9uIHJlc3VsdHMgZm9yIG5v
bi10cmVlLXNpdHRlciBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1j
b2xsZWN0LWZhY2VzKTogTmV3IGZ1bmN0aW9uCmhhcnZlc3RpbmcgZmFjZSBwcm9wZXJ0aWVzIGZy
b20gYSBtb2RlIGluIGFuIGluZGlyZWN0IG9yCnRlbXBvcmFyeSBidWZmZXIuCihtYXJrZG93bi10
cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10cmVl
LXNpdHRlciBtb2RlcyB2aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlzdGlj
IG1vZGUgbmFtZSBwcm9iaW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2Up
OiBSZW5hbWUgZnJvbQptYXJrZG93bi10cy0tY29udmVydC1jb2RlLWJsb2NrLWxhbmd1YWdlIHdp
dGggc3VwcG9ydCBmb3Igbm9uLXRzCm1vZGVzIGFuZCByZWN1cnNpdmUgbWFya2Rvd24gaGFuZGxp
bmcuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQoobWFya2Rvd24tdHMtY29kZS1i
bG9jay10aGluZy1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1h
bmRzKTogTmV3IGNvbW1hbmQgbGlzdHMgZm9yCmNvZGUtYmxvY2sgY29udGV4dCBleGVjdXRpb24u
CihtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlKQoobWFya2Rv
d24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2spCihtYXJrZG93bi10cy0tY29k
ZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMpCihtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jayk6IE5ldyBjb2RlIGJsb2NrIG1pbm9yCm1vZGUgd2l0aCB0ZW1wLWJ1ZmZl
ciBjb21tYW5kIGRpc3BhdGNoLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZSk6IE5l
dyBjb21tYW5kIGZvciBuZXdsaW5lCmluc2lkZSBjb2RlIGJsb2NrcywgZGlzcGF0Y2hpbmcgdG8g
dGhlIGJsb2NrJ3MgbW9kZS4KKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyk6IFVwZGF0ZSBy
YW5nZSBjb25maWd1cmF0aW9uOwpyZW1vdmUgOnJhbmdlLWZuIHRyZWVzaXQtcmFuZ2UtZm4tZXhj
bHVkZS1jaGlsZHJlbi4KKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCihtYXJr
ZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSk6IE5ldyBoZWxwZXJzIGZvciBpbWFnZQpvdmVy
bGF5IG1hbmFnZW1lbnQgZHVyaW5nIG91dGxpbmUgZm9sZC91bmZvbGQuCihtYXJrZG93bi10cy0t
b3V0bGluZS1pbnZpc2libGUtcCk6IE5ldyBoZWxwZXIgdGVzdGluZyB3aGV0aGVyIGEKcG9zaXRp
b24gaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJlZ2lvbi4KKG1hcmtkb3duLXRzLS1ob3N0
LXJhbmdlcy1ub3RpZmllcik6IE5ldyBmdW5jdGlvbiBwcnVuaW5nIHN0YWxlCmNvZGUgYmxvY2sg
b3ZlcmxheXMgd2hlbiB0aGUgaG9zdCBwYXJzZSB0cmVlIGNoYW5nZXMuCihtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSk6IE5ldyBoZWxwZXIgc2lnbmFsaW5nIGEKdXNlci1lcnJvciB3aGVu
IHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBub3QgZGVyaXZlZCBmcm9tCm1hcmtkb3duLXRzLW1vZGUu
CihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2Rl
IGVuYWJsZWQKd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBmZW5jZWQgY29kZSBibG9jaywgYWN0aXZh
dGluZwptYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1tYXAgc28gZWxpZ2li
bGUgY29tbWFuZHMKZGlzcGF0Y2ggdG8gdGhlIGJsb2NrJ3MgbWFqb3IgbW9kZS4KKG1hcmtkb3du
LXRzLS1zZXQtaGlkZS1tYXJrdXApOiBDbGVhciBpbWFnZSBvdmVybGF5cyB3aGVuCnRvZ2dsaW5n
IG1hcmt1cCB2aXNpYmlsaXR5LgoobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzKQoobWFy
a2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMpOiBOZXcgZnVuY3Rpb25zIGZvciB0b2dnbGlu
ZwppbmxpbmUgaW1hZ2UgZGlzcGxheS4KKG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgt
bGV2ZWwpOiBOZXcgY29uc3RhbnQuCihtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2ludCwgbWFy
a2Rvd24tdHMtLWhlYWRpbmctbGV2ZWwpCihtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCk6
IE5ldyBoZWFkaW5nIG5hdmlnYXRpb24gaGVscGVycy4KKG1hcmtkb3duLXRzLXByb21vdGUsIG1h
cmtkb3duLXRzLWRlbW90ZSk6IE5ldyBjb21tYW5kcyBmb3IKaGVhZGluZyBhbmQgbGlzdCBpdGVt
IHByb21vdGlvbi9kZW1vdGlvbiB3aXRoIHJlZ2lvbiBzdXBwb3J0LgoobWFya2Rvd24tdHMtLXBy
b21vdGUtb3ItZGVtb3RlKQoobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbik6
IE5ldyBoZWFkaW5nIGxldmVsCmFkanVzdG1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtbW92
ZS1zdWJ0cmVlLXVwLCBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bik6Ck5ldyBjb21tYW5k
cyBmb3IgbW92aW5nIHNlY3Rpb25zIGFuZCBsaXN0IGl0ZW1zLgoobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXApCihtYXJrZG93bi10cy0tbW92ZS1zdWJ0cmVlLXVwLW9yLWRvd24pOiBOZXcg
c3VidHJlZSBtb3ZlIHdpdGgKZm9sZGluZyBzdGF0ZSBwcmVzZXJ2YXRpb24uCihtYXJrZG93bi10
cy10b2dnbGUtY2hlY2tib3gpOiBOZXcgY29tbWFuZCB0byB0b2dnbGUgdGFzayBsaXN0CmNoZWNr
Ym94ZXMuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KTogTmV3IGhlbHBlciB3aXRo
IGJsb2NrIHF1b3RlCm1hcmtlciBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13
aWR0aCwgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24pCihtYXJrZG93bi10cy0tbGlzdC1v
cmRlcmVkLWl0ZW0tcCk6IE5ldyBsaXN0IGl0ZW0gaGVscGVycy4KKG1hcmtkb3duLXRzLS1saXN0
LXByb21vdGUtb3ItZGVtb3RlKTogTmV3IGZ1bmN0aW9uIHdpdGggb3JkZXJlZApsaXN0IG5lc3Rp
bmcgZ3VhcmQuCihtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCwgbWFya2Rvd24tdHMtLWxpc3Qt
bW92ZSk6IE5ldyBsaXN0Cml0ZW0gbW92ZW1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtcmVu
dW1iZXItbGlzdCk6IE5ldyBjb21tYW5kIGZvciBzZXF1ZW50aWFsIGxpc3QKcmVudW1iZXJpbmcg
d2l0aCBwcmVmaXggYXJndW1lbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3
LW1hcmtlcikKKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lKTogTmV3IG1hcmtlciBz
dHJpbmcgZ2VuZXJhdG9ycwpmb3IgbGlzdCBpdGVtIGluc2VydGlvbi4KKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKTogTmV3IGhlbHBlciBjb3VudGluZyBibG9jawpxdW90ZSBk
ZXB0aC4KKG1hcmtkb3duLXRzLW5ld2xpbmUpOiBOZXcgUkVUIGNvbW1hbmQgZm9yIGNvbnRleHQt
YXdhcmUKbmV3bGluZS4KKG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0pOiBOZXcgTS1SRVQg
Y29tbWFuZCB0aGF0IGNyZWF0ZXMgYQpuZXcgbGlzdCBpdGVtLgoobWFya2Rvd24tdHMtLWZpbGwt
dW5maWxsYWJsZS1ibG9jay1xdWVyeSk6IE5ldyB0cmVlLXNpdHRlcgpxdWVyeSBmb3IgdW5maWxs
YWJsZSBibG9ja3MuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uKTogTmV3IGhl
bHBlciBmb3IgbGlzdCBpdGVtCnRleHQgYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWZpbGwtbGlz
dC1pdGVtKTogTmV3IGZ1bmN0aW9uIGZpbGxpbmcgd2l0aGluIGxpc3QKaXRlbXMgd2l0aG91dCBt
ZXJnaW5nIGFkamFjZW50IGl0ZW1zLgoobWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpOiBOZXcg
YWRhcHRpdmUgZmlsbCBmdW5jdGlvbiBmb3IKbGlzdCBpdGVtIGNvbnRpbnVhdGlvbi4KKG1hcmtk
b3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKTogTmV3IHBhcmFncmFwaCBtb3Rpb24KcmVz
cGVjdGluZyBsaXN0IGl0ZW1zIGFuZCB1bmZpbGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZp
bGwtcGFyYWdyYXBoKTogTmV3IGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIHdpdGgKY29uZCogZGlz
cGF0Y2ggZm9yIGxpc3RzLCBibG9jayBxdW90ZXMsIEhUTUwgY29tbWVudHMsIGFuZAp1bmZpbGxh
YmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1maWxsLWh0bWwtY29tbWVudCk6IE5ldyBIVE1MIGNv
bW1lbnQgZmlsbGVyIHdpdGgKY29udGludWF0aW9uIGFsaWdubWVudC4KKG1hcmtkb3duLXRzLS1i
bG9jay1xdW90ZS1wcmVmaXgpOiBOZXcgaGVscGVyIHByZXNlcnZpbmcKZXhpc3RpbmcgYmxvY2sg
cXVvdGUgbWFya2VyIHN0eWxlLgoobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUpOiBOZXcg
YmxvY2sgcXVvdGUgZmlsbGVyIHdpdGgKbGlzdCBpdGVtIHRleHQgY29sdW1uIGFsaWdubWVudC4K
KG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KTogTmV3IGFsaXN0IG9mIGVtcGhhc2lzIG1hcmtl
cnMuCihtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCk6IE5ldyB0cmVlLXNpdHRl
ciBiYXNlZAplbXBoYXNpcyBkZXRlY3Rpb24uCihtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMp
OiBOZXcgY29tbWFuZCByZW1vdmluZyBlbXBoYXNpcyBhdApwb2ludCBvciByZWdpb24uCihtYXJr
ZG93bi10cy1lbXBoYXNpemUpOiBOZXcgaW50ZXJhY3RpdmUgZW1waGFzaXMgaW5zZXJ0aW9uIHdp
dGgKcmVnaW9uIHdyYXBwaW5nIGFuZCB3b3JkLWF0LXBvaW50IHN1cHBvcnQuCihtYXJrZG93bi10
cy1pbnNlcnQtc3RydWN0dXJlKTogTmV3IGNvbW1hbmQgZm9yIGluc2VydGluZyBjb2RlCmJsb2Nr
cywgYmxvY2sgcXVvdGVzLCBhbmQgZGl2aWRlcnMuCihtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUt
YmxvY2spOiBOZXcgZnVuY3Rpb24gd2l0aCBsYW5ndWFnZQpjb21wbGV0aW9uIGZyb20ga25vd24g
bW9kZXMuCihtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKTogTmV3IGZ1bmN0aW9uIHdp
dGggcmVnaW9uCndyYXBwaW5nLgoobWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKTogTmV3IGZ1
bmN0aW9uIGZvciBob3Jpem9udGFsCnJ1bGVzLgoobWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lz
KTogTmV3IGZ1bmN0aW9uIGFwcGx5aW5nIGN1c3RvbQplbGxpcHNpcyB2aWEgZGlzcGxheSB0YWJs
ZS4KKG1hcmtkb3duLXRzLS1zZXQtdXApOiBSZW5hbWUgZnJvbSBtYXJrZG93bi10cy1zZXR1cC4K
KG1hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBvdXRs
aW5lCnZpc2liaWxpdHkgb24gaGVhZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5ldyBr
ZXltYXAgZm9yIGNvZGUgYmxvY2sgbmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcgbmF2
aWdhdGlvbiwgc3RydWN0dXJlIGVkaXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRpb25z
LgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbWFwKTogTmV3IGtleW1h
cCBmb3IKY29kZSBibG9jayBjb250ZXh0LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTogTmV3IG1l
bnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1Y3R1cmUs
IGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRsaW5lLW1p
bm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3JhdGlvbiwg
Y29kZS1ibG9jay1jb250ZXh0LW1vZGUgaG9va3MsCmNvbW1lbnQgc2V0dGluZ3MsIGFuZCBvdXRs
aW5lLXZpZXctY2hhbmdlLWhvb2suICBVc2UKbWFya2Rvd24tdHMtbW9kZSBkaXJlY3RseSBpbiBh
dXRvLW1vZGUtYWxpc3QgaW5zdGVhZCBvZgptYXJrZG93bi10cy1tb2RlLW1heWJlLgoobWFya2Rv
d24tdHMtbW9kZS1pbnN0YWxsLXBhcnNlcnMpOiBOZXcgY29tbWFuZCBmb3IgaW5zdGFsbGluZwpy
ZXF1aXJlZCBhbmQgb3B0aW9uYWwgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgZ3JhbW1hcnMuCihtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2Rl
CmJsb2NrIGNvbnRleHQuCihtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlcikK
KG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIpOiBOZXcgaGVscGVy
cyBmb3IKbG9jYXRpbmcgZmVuY2VkIGNvZGUgYmxvY2sgZGVsaW1pdGVyIG5vZGVzLgoobWFya2Rv
d24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxvY2spCihtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZp
b3VzLWNvZGUtYmxvY2spOiBOZXcgY29tbWFuZHMgZm9yCm5hdmlnYXRpbmcgYmV0d2VlbiBmZW5j
ZWQgY29kZSBibG9ja3MuCihtYXJrZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zLCBtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1jZWxsKQoobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93LCBtYXJr
ZG93bi10cy0tdGFibGUtcGFyc2UtZXJyb3ItcCk6Ck5ldyBwaXBlIHRhYmxlIG5vZGUgaGVscGVy
cy4KKG1hcmtkb3duLXRzLWF0LXRhYmxlLXApOiBOZXcgcHJlZGljYXRlIHJldHVybmluZyBub24t
bmlsIHdoZW4KcG9pbnQgaXMgYXQgb3Igd2l0aGluIGEgcGlwZSB0YWJsZS4KKG1hcmtkb3duLXRz
LS1lbmFibGUtaW4tdGFibGUtbW9kZSk6IE5ldyBoZWxwZXIgZW5hYmxpbmcKbWFya2Rvd24tdHMt
aW4tdGFibGUtbW9kZSBmcm9tIHBvc3QtY29tbWFuZC1ob29rLgoobWFya2Rvd24tdHMtLXRhYmxl
LWJvZHktcm93LW5lYXItcG9zKTogTmV3IGhlbHBlciBsb2NhdGluZyB0aGUKbmVhcmVzdCBib2R5
IHJvdyB0byBhIHBvc2l0aW9uLgoobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4pOiBOZXcgaGVscGVycyBmb3IgY29s
dW1uLWJhc2VkCnRhYmxlIG5hdmlnYXRpb24uCihtYXJrZG93bi10cy0tdGFibGUtYWxpZ25lcnMs
IG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIpCihtYXJrZG93bi10cy0tdGFibGUtYWxp
Z24tY2VsbCk6IE5ldyB0YWJsZSBjZWxsIGFsaWdubWVudApoZWxwZXJzLgoobWFya2Rvd24tdHMt
dGFibGUtaW5zZXJ0LXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gaW5zZXJ0IGEgcGlwZQp0YWJsZSB3
aXRoIGNvbmZpZ3VyYWJsZSByb3dzIGFuZCBjb2x1bW5zLgoobWFya2Rvd24tdHMtdGFibGUtZGVs
ZXRlLXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gZGVsZXRlIHRoZSBwaXBlCnRhYmxlIGF0IHBvaW50
LgoobWFya2Rvd24tdHMtdGFibGUtcHJldmlvdXMtcm93LCBtYXJrZG93bi10cy10YWJsZS1uZXh0
LXJvdykKKG1hcmtkb3duLXRzLXRhYmxlLXByZXZpb3VzLWNlbGwsIG1hcmtkb3duLXRzLXRhYmxl
LW5leHQtY2VsbCk6Ck5ldyBjb21tYW5kcyBmb3IgbmF2aWdhdGluZyB0YWJsZSByb3dzIGFuZCBj
ZWxscy4KKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cpCihtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93
KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LXJvdyk6IE5ldyBjb21tYW5kcyBmb3IgaW5zZXJ0aW5nIGFuZApjbG9uaW5nIHRhYmxl
IHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1kZWxldGUtcm93LCBtYXJrZG93bi10cy10YWJsZS1t
b3ZlLXJvdy11cCkKKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24sIG1hcmtkb3duLXRz
LXRhYmxlLW1vdmUtcm93KToKTmV3IGNvbW1hbmRzIGZvciBkZWxldGluZyBhbmQgbW92aW5nIHRh
YmxlIHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQpCihtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUt
Y29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1jbG9uZS1jb2x1bW4tcmlnaHQpCihtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBpbnNlcnRpbmcK
YW5kIGNsb25pbmcgdGFibGUgY29sdW1ucy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbi1sZWZ0KQoobWFya2Rvd24tdHMtdGFi
bGUtbW92ZS1jb2x1bW4tcmlnaHQpCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbik6IE5l
dyBjb21tYW5kcyBmb3IgZGVsZXRpbmcgYW5kCm1vdmluZyB0YWJsZSBjb2x1bW5zLgoobWFya2Rv
d24tdHMtdGFibGUtYWxpZ24tY29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi1j
b2x1bW4tY2VudGVyKQoobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uLXJpZ2h0KQoobWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBzZXR0aW5nCmNv
bHVtbiBhbGlnbm1lbnQuCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSk6IE5ldyBjb21t
YW5kIHRvIGFsaWduIGFsbApjb2x1bW5zIGluIHRoZSB0YWJsZSBhdCBwb2ludC4KKG1hcmtkb3du
LXRzLXRhYmxlLXRyYW5zcG9zZS10YWJsZSk6IE5ldyBjb21tYW5kIHRvIHRyYW5zcG9zZQp0aGUg
dGFibGUgYXQgcG9pbnQuCihtYXJrZG93bi10cy10YWJsZS1jb252ZXJ0LWNzdi1yZWdpb24pCiht
YXJrZG93bi10cy10YWJsZS1jb252ZXJ0LXRzdi1yZWdpb24pCihtYXJrZG93bi10cy10YWJsZS1j
b252ZXJ0LXJlZ2lvbik6IE5ldyBjb21tYW5kcyB0byBjb252ZXJ0CmRlbGltaXRlZCB0ZXh0IHJl
Z2lvbnMgdG8gcGlwZSB0YWJsZXMuCihtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtY3N2
KQoobWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdikKKG1hcmtkb3duLXRzLXRhYmxl
LWV4cG9ydC10YWJsZSk6IE5ldyBjb21tYW5kcyB0byBleHBvcnQgdGhlCnBpcGUgdGFibGUgYXQg
cG9pbnQgdG8gQ1NWIG9yIFRTViBmb3JtYXQuCihtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlLW1h
cCk6IE5ldyBrZXltYXAgZm9yCm1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUuCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YpOiBOZXcgYnVmZmVyLWxvY2FsCnZhcmlh
YmxlIGZvciBjb2RlIGJsb2NrIGNvbnRleHQgb3ZlcmxheS4KKG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWluLWNvbnRleHQtbW9kZS11cGRhdGUtb3YpOiBOZXcKZnVuY3Rpb24gdXBkYXRpbmcgdGhl
IGNvZGUgYmxvY2sgY29udGV4dCBvdmVybGF5LgoobWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZSk6
IE5ldyBtaW5vciBtb2RlIGVuYWJsZWQgd2hlbiBwb2ludAppcyB3aXRoaW4gYSBwaXBlIHRhYmxl
LCBhY3RpdmF0aW5nIG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbWFwLgoobWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtb3YpCihtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YpCiht
YXJrZG93bi10cy0tdGFibGUtdGljay11cGRhdGUpCihtYXJrZG93bi10cy0tdGFibGUtdGljay1z
dGFsZS1wKQoobWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtdXBkYXRlLW92KTogTmV3IGhlbHBl
cnMgc3VwcG9ydGluZwptYXJrZG93bi10cy1pbi10YWJsZS1tb2RlIG92ZXJsYXkgbWFuYWdlbWVu
dC4KKG1hcmtkb3duLXRzLXRhYmxlLW1vZGUpOiBOZXcgbWlub3IgbW9kZSBwcm92aWRpbmcgdGFi
bGUgZWRpdGluZwpjb21tYW5kcyBhbmQgYXV0by1hbGlnbm1lbnQuCihtYXJrZG93bi10cy1tb2Rl
LW1heWJlKTogUmVtb3ZlOyBhdXRvLW1vZGUtYWxpc3Qgbm93IHVzZXMKbWFya2Rvd24tdHMtbW9k
ZSBkaXJlY3RseS4KQXV0by1tb2RlLWFsaXN0OiBBZGQgLm1hcmtkb3duIGFuZCAubWR4IGV4dGVu
c2lvbnMuCgoqIGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbDogTmV3IGZpbGUg
cHJvdmlkaW5nIGV4dHJhCmZlYXR1cmVzIGZvciBtYXJrZG93bi10cy1tb2RlLgoobWFya2Rvd24t
dHMtY29tbW9ubWFyay1zcGVjLXVybCwgbWFya2Rvd24tdHMtZ2ZtLXNwZWMtdXJsKTogTmV3CmNv
bnN0YW50cyBmb3IgQ29tbW9uTWFyayBhbmQgR0ZNIHNwZWNpZmljYXRpb24gVVJMcy4KKG1hcmtk
b3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMpCihtYXJrZG93bi10cy1icm93c2UtZ2ZtLXNw
ZWMpOiBOZXcgY29tbWFuZHMgdG8gYnJvd3NlIHRoZQpDb21tb25NYXJrIGFuZCBHRk0gc3BlY2lm
aWNhdGlvbnMuCihtYXJrZG93bi10cy1jb252ZXJ0KTogTmV3IGN1c3RvbWl6YXRpb24gZ3JvdXAg
Zm9yIE1hcmtkb3duCmNvbnZlcnNpb24vZXhwb3J0IGZlYXR1cmVzLgoobWFya2Rvd24tdHMtZGVm
YXVsdC1jb252ZXJ0ZXIpOiBOZXcgb3B0aW9uIHRvIHNldCB0aGUgZGVmYXVsdApmb3JtYXQgYW5k
IGNvbnZlcnRlciBmb3IgTWFya2Rvd24gZXhwb3J0LgoobWFya2Rvd24tdHMtY29udmVydC1kaXNw
bGF5LWZ1bmN0aW9uKTogTmV3IG9wdGlvbiBzcGVjaWZ5aW5nCnRoZSBmdW5jdGlvbiB1c2VkIHRv
IGRpc3BsYXkgY29udmVydGVkIG91dHB1dC4KKG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpOiBOZXcg
dmFyaWFibGUgbGlzdGluZyBmb3JtYXQvY29udmVydGVyCmNvbmZpZ3VyYXRpb25zIGZvciBwYW5k
b2MsIGNtYXJrLCBjbWFyay1nZm0sIG1hcmtkb3duLCBhbmQKbWFya2Rvd24ucGwuCihtYXJrZG93
bi10cy1jb252ZXJ0LWZpbGUsIG1hcmtkb3duLXRzLWNvbnZlcnQpOiBOZXcgY29tbWFuZHMgdG8K
Y29udmVydCBNYXJrZG93biBidWZmZXJzIG9yIGZpbGVzIHRvIEhUTUwsIFBERiwgYW5kIG90aGVy
CmZvcm1hdHMgdmlhIGV4dGVybmFsIGNvbnZlcnRlcnMuCihtYXJrZG93bi10cy10b2MpOiBOZXcg
Y3VzdG9taXphdGlvbiBncm91cCBmb3IgdGFibGUgb2YgY29udGVudHMKZmVhdHVyZXMuCihtYXJr
ZG93bi10cy10b2MtZ2VuZXJhdGUtd2Fybi1pZi1ub25lKTogTmV3IG9wdGlvbiBjb250cm9sbGlu
ZwpiZWhhdmlvciB3aGVuIG5vIFRPQyBpcyBmb3VuZCBkdXJpbmcgZ2VuZXJhdGlvbi4KKG1hcmtk
b3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyKTogTmV3IG9wdGlvbgpm
b3IgdGhlIGJlZm9yZS1zYXZlIFRPQyB1cGRhdGUgbWlub3IgbW9kZSBsaWdodGVyIHN0cmluZy4K
KG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uKTogTmV3IG9wdGlvbiB0byBzZWxlY3QgdGhl
IHNsdWcKYWxnb3JpdGhtIHVzZWQgZm9yIFRPQyBoZWFkaW5nIGFuY2hvcnMuCihtYXJrZG93bi10
cy0tdG9jLWhhbmRsZXMsIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlLWNsYXNzZXMpOiBOZXcKdmFy
aWFibGVzIGRlZmluaW5nIFRPQyBoYW5kbGUgdHlwZXMgYW5kIGNsYXNzZXMuCihtYXJrZG93bi10
cy0tdG9jLWV4cGFuZC1jYW5kaWRhdGUtaGFuZGxlcywgbWFya2Rvd24tdHMtLXRvY3MpCihtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2spCihtYXJrZG93bi10cy0tdG9jLWNvbGxlY3QtY2Fu
ZGlkYXRlcykKKG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoKQoobWFya2Rvd24tdHMt
LXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emVycykKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxpemUpOiBOZXcgaW50ZXJuYWwgaGVs
cGVycyBmb3IgVE9DCnBhcnNpbmcgYW5kIHRleHQgbm9ybWFsaXphdGlvbi4KKG1hcmtkb3duLXRz
LXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZSk6IE5ldyBtaW5vciBtb2RlIHRoYXQKcmVnZW5l
cmF0ZXMgdGFibGVzIG9mIGNvbnRlbnRzIGJlZm9yZSBzYXZpbmcuCihtYXJrZG93bi10cy10b2Mt
Y2xlYXItYW5kLXJlbW92ZSwgbWFya2Rvd24tdHMtdG9jLWNsZWFyKTogTmV3CmNvbW1hbmRzIHRv
IHJlbW92ZSBvciBjbGVhciBUT0MgYm9kaWVzLgoobWFya2Rvd24tdHMtdG9jLWluc2VydC10ZW1w
bGF0ZSk6IE5ldyBjb21tYW5kIHRvIGluc2VydCBhIFRPQwp0ZW1wbGF0ZSBhdCBwb2ludC4KKG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZSk6IE5ldyBjb21tYW5kIHRvIGdlbmVyYXRlIHRhYmxlcyBv
Zgpjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCgpJbmNsdWRlcyBmaXhlcyBmb3I6IChi
dWcjODA2MTMpIChidWcjODA2MjUpIChidWcjODA2OTApCgpDby1hdXRob3JlZC1ieTogU3TDqXBo
YW5lIE1hcmtzIDxzaGlwbWludHNAZ21haWwuY29tPgotLS0KIGxpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUteC5lbCB8IDExMzQgKysrKysrCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsICAgfCA1NDI0ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNo
YW5nZWQsIDYyNzMgaW5zZXJ0aW9ucygrKSwgMjg1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbAoKZGlmZiAtLWdpdCBh
L2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbCBiL2xpc3AvdGV4dG1vZGVzL21h
cmtkb3duLXRzLW1vZGUteC5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNzQwNTA3OGFiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLXguZWwKQEAgLTAsMCArMSwxMTM0IEBACis7OzsgbWFya2Rvd24tdHMtbW9kZS14
LmVsIC0tLSBtYXJrZG93bi10cy1tb2RlIGV4dHJhcyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAt
Ki0KKworOzsgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgorCis7OyBBdXRob3IgICAgICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1
bGlhdG9AZ21haWwuY29tPgorOzsgICAgICAgICAgICAgICAgICA6IFN0w6lwaGFuZSBNYXJrcyA8
c2hpcG1pbnRzQGdtYWlsLmNvbT4KKzs7IE1haW50YWluZXIgICAgICAgOiBSYWh1bCBNYXJ0aW0g
SnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBDcmVhdGVkICAgICAgICAgIDog
QXByaWwgMjAyNgorOzsgVmVyc2lvbiAgICAgICAgICA6IDEuMAorOzsgUGFja2FnZS1SZXF1aXJl
cyA6ICgoZW1hY3MgIjMxLjEiKSkKKzs7IEtleXdvcmRzICAgICAgICAgOiBtYXJrZG93biBtZCB0
ZXh0IGVkaXQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVyCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor
OzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUg
PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7
OyBDb2RlOgorCisocmVxdWlyZSAnbWFya2Rvd24tdHMtbW9kZSkKKworOzs7IENvbnZlbmllbmNl
OgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMtY29tbW9ubWFyay1zcGVjLXVybAorICAiaHR0cHM6
Ly9zcGVjLmNvbW1vbm1hcmsub3JnL2N1cnJlbnQvIikKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LWdmbS1zcGVjLXVybAorICAiaHR0cHM6Ly9naXRodWIuZ2l0aHViLmNvbS9nZm0vIikKKworKGRl
ZnVuIG1hcmtkb3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMgKCkKKyAgIkJyb3dzZSB0aGUg
Q29tbW9uTWFyayBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWNvbW1vbm1hcmstc3BlYy11cmwpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtYnJvd3NlLWdmbS1zcGVjICgpCisgICJCcm93c2UgdGhlIEdpdEh1
YiBGbGF2b3JlZCBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWdmbS1zcGVjLXVybCkpCisKKzs7OyBFeHBv
cnQgYW5kIHByZXZpZXc6CisKKyhkZWZncm91cCBtYXJrZG93bi10cy1jb252ZXJ0IG5pbAorICAi
Q29udmVydCBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycyBvciBmaWxlcy4iCisgIDpwcmVmaXgg
Im1hcmtkb3duLXRzLWNvbnZlcnQtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5n
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kZWZhdWx0LWNv
bnZlcnRlciBuaWwKKyAgIkRlZmF1bHQgTWFya2Rvd24gZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCitJ
ZiBuaWwsIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGZvcm1hdCBhbmQgYSBjb252ZXJ0ZXIu
CitTZWUgYG1hcmtkb3duLXRzLWNvbnZlcnRlcnMnLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0
IDp0YWcgIlByb21wdCBmb3IgZm9ybWF0IGFuZCBjb252ZXJ0ZXIiIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIlBERiB2aWEgUGFuZG9jIiAocGRmIC4gcGFuZG9jKSkKKyAgICAg
ICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkhUTUwgdmlhIFBhbmRvYyIgKGh0bWwgLiBwYW5kb2Mp
KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmsiIChodG1sIC4g
Y21hcmspKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmstZ2Zt
IChHaXRIdWIgYmVsbHMgYW5kIHdoaXN0bGVzKSIgKGh0bWwgLiBjbWFyay1nZm0pKQorICAgICAg
ICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24iIChodG1sIC4gbWFya2Rv
d24pKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24ucGwi
IChodG1sIC4gbWFya2Rvd24ucGwpKQorICAgICAgICAgICAgICAgICAoY29ucyAgOnRhZyAiRm9y
bWF0IGFuZCBDb252ZXJ0ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcg
IkZvcm1hdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcgIkNvbnZlcnRl
ciIpKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhk
ZWZjdXN0b20gbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uICMnZXd3LW9wZW4t
ZmlsZQorICAiRnVuY3Rpb24gdG8gZGlzcGxheSBjb252ZXJ0ZWQgTWFya2Rvd24gdGhlIG91dHB1
dCBmaWxlLgorVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCwgdGhlIGZp
bGUgbmFtZS4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJEaXNwbGF5IHVzaW5nIGBl
d3cnIiBld3ctb3Blbi1maWxlKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBpbiBhIGJyb3dzZXIiIGJyb3dzZS11cmwtb2YtZmlsZSkKKyAgICAgICAgICAgICAgICAgKGNv
bnN0IDp0YWcgIkRpc3BsYXkgb3V0cHV0IGZpbGUgaW4gYSBidWZmZXIiIGZpbmQtZmlsZS1vdGhl
ci13aW5kb3cpCisgICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJPdGhlciBmdW5jdGlv
biIpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmNvbnN0IG1hcmtkb3duLXRzLS1jb252ZXJ0LWVycm9yLWJ1ZmZlcgorICAiKm1hcmtkb3duLXRz
LWNvbnZlcnQgZXJyb3JzKiIpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tY29udmVydC1vdXRw
dXQtYnVmZmVyCisgICIqbWFya2Rvd24tdHMtY29udmVydCBvdXRwdXQqIikKKworKGRlZnZhciBt
YXJrZG93bi10cy1jb252ZXJ0ZXJzCisgIChsaXN0CisgICAoY29ucyAnaHRtbAorICAgICAgICAg
KGxpc3QKKyAgICAgICAgICAoY29ucyAncGFuZG9jCisgICAgICAgICAgICAgICAgKGxpc3QgOmNv
bW1hbmQgInBhbmRvYyIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGlu
KQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhmaWxlKQorICAgICAgICAgICAgICAg
ICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpbnB1dC1maWxlIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLWYiICJnZm0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItdCIgImh0bWw1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1z
dGFuZGFsb25lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iIG91
dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1m
aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkp
KSkpKQorICAgICAgICAgIChjb25zICdjbWFyaworICAgICAgICAgICAgICAgIChsaXN0IDpjb21t
YW5kICJjbWFyayIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGluKQor
ICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQpCisgICAgICAgICAgICAgICAg
ICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg
KGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLXQiICJodG1sIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdo
ZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGlu
cHV0LWZpbGUpKSkpKSkKKyAgICAgICAgICAoY29ucyAnY21hcmstZ2ZtCisgICAgICAgICAgICAg
ICAgKGxpc3QgOmNvbW1hbmQgImNtYXJrLWdmbSIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5w
dXQgJyhmaWxlIHN0ZGluKQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQp
CisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCAobGlzdCAiLXQiICJodG1sIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBVc2UgR2l0SHViLXN0eWxlIDxwcmUgbGFuZz4gZm9yIGNv
ZGUgYmxvY2tzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWdpdGh1
Yi1wcmUtbGFuZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5j
bHVkZSByZW1haW5kZXIgb2YgY29kZSBibG9jayBpbmZvCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDs7IHN0cmluZyBpbiBhIHNlcGFyYXRlIGF0dHJpYnV0ZS4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZnVsbC1pbmZvLXN0cmluZyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgVXNlIHN0eWxlIGF0dHJpYnV0
ZXMgdG8gYWxpZ24gdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgY2VsbHMgaW5zdGVhZCBvZiBhbGlnbiBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLS10YWJsZS1wcmVmZXItc3R5bGUtYXR0cmlidXRlcyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAiZm9vdG5v
dGVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1leHRlbnNpb24i
ICJ0YWJsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5z
aW9uIiAic3RyaWtldGhyb3VnaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0tZXh0ZW5zaW9uIiAiYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWV4dGVuc2lvbiIgInRhZ2ZpbHRlciIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAidGFza2xpc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKQorICAgICAgICAgIDs7ICdtYXJr
ZG93bi5wbCBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24gd2l0aCBhbm90aGVyIGNvbW1vbiBmaWxl
CisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rvd24ucGwKKyAgICAg
ICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24ucGwiCisgICAgICAgICAgICAgICAg
ICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6b3V0cHV0
ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKQorICAgICAg
ICAgIDs7ICdtYXJrZG93biBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24ucGwgd2l0aCBhbm90aGVy
IGNvbW1vbiBmaWxlCisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rv
d24KKyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24iCisgICAgICAgICAg
ICAgICAgICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6
b3V0cHV0ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rp
b24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKSkp
CisgICAoY29ucyAncGRmCisgICAgICAgICAobGlzdAorICAgICAgICAgIChjb25zICdwYW5kb2MK
KyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAicGFuZG9jIgorICAgICAgICAgICAgICAg
ICAgICAgIDppbnB1dCAnKGZpbGUgc3RkaW4pCisgICAgICAgICAgICAgICAgICAgICAgOm91dHB1
dCAnKGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgb3V0cHV0LWZpbGUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChsaXN0ICItZiIgImdmbSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi10IiAicGRmIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLW8iIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKSkpKQorICAiQW4gYWxpc3Qgb2YgZm9ybWF0
L2NvbnZlcnRlciBjb25maWd1cmF0aW9ucy4KK0l0IGlzIGEgdHdvIGxldmVsIGFsaXN0IHdpdGgg
dGhlIGZpcnN0IGxldmVsIGJlaW5nIGZvcm1hdCwgZm9yIGV4YW1wbGUKK2BodG1sJyBvciBgcGRm
JywgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIGNvbnZlcnRlciBuYW1lLCBmb3IgZXhhbXBsZQor
YHBhbmRvYycuICBBIGNvbnZlcnRlciBjb25maWd1cmF0aW9uIGVudHJ5IGlzIGEgcGxpc3Qgb2Yg
dGhlIGZvcm06CisKKyAgXFw9Jyg6Y29tbWFuZCBcImNvbW1hbmQgbmFtZVwiCisgICAgOmlucHV0
IChmaWxlIHN0ZGluKSA7IGFjY2VwdHMgZmlsZSBuYW1lIG9yIHN0ZGluCisgICAgOm91dHB1dCAo
c3Rkb3V0KSAgICA7IHByb2R1Y2VzIHN0ZG91dCBvbmx5CisgICAgOmFyZ3VtZW50cy1mdW5jdGlv
biA7IGZ1bmN0aW9uOyBlLmcuLAorICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAoYXBwZW5kIChsaXN0IFwiLXRcIiBcImh0bWxcIikKKyAgICAgICAgICAgICAg
ICh3aGVuIGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkp
CisKK2Bhcmd1bWVudHMtZnVuY3Rpb24nIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzLCBJTlBVVC1G
SUxFIGFuZAorT1VUUFVULUZJTEUuICBJZiBJTlBVVC1GSUxFIGlzIG5pbCwgYXNzdW1lIHN0ZGlu
LCBvciBpdCBpcyBhCitmdWxseS1xdWFsaWZpZWQgZmlsZSBuYW1lLiAgSWYgT1VUUFVULUZJTEUg
aXMgbmlsLCBhc3N1bWUgc3Rkb3V0LCBvciBpdAoraXMgYSBmdWxseS1xdWFsaWZpZWQgZmlsZSBu
YW1lLiAgSXQgc2hvdWxkIHJldHVybiBhIGxpc3Qgb2YKK2FyZ3VtZW50cyBzdWl0YWJsZSBmb3Ig
YGNhbGwtcHJvY2VzcycuIikKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93bi10cy1j
b252ZXJ0LWZpbGUgKGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IE1h
cmtkb3duIElOUFVULUZJTEUgdG8gRk9STUFULgorSWYgb3B0aW9uYWwgRElTUExBWSBpcyBub24t
bmlsLCBzaG93IHRoZSBvdXRwdXQgZmlsZSBpbiBhIGJ1ZmZlciwgaWYKK3Bvc3NpYmxlLCB1c2lu
ZyB0aGUgZnVuY3Rpb24gYG1hcmtkb3duLXRzLWNvbnZlcnQtZGlzcGxheS1mdW5jdGlvbicuCisK
K1dpdGggYSBwcmVmaXggYXJndW1lbnQsIERJU1BMQVkgd2lsbCBiZSBub24tbmlsLgorCitPcHRp
b25hbCBGT1JNQVQgaXMgYSBmb3JtYXQvY29udmVydGVyIHBhaXIgc3BlY2lmaWVkIGFzIGEgY29u
cworXFw9Jyhmb3JtYXQgLiBjb252ZXJ0ZXIpIGZvciBleGFtcGxlIFxcPScoaHRtbCAuIHBhbmRv
YykuICBTZWUKK2BtYXJrZG93bi10cy1jb252ZXJ0ZXJzJy4gIElmIG5pbCwgcHJvbXB0IGZvciB0
aGUgZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCisKK0lmIG9wdGlvbmFsIE9WRVJXUklURSBpcyBub24t
bmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUgaWYgaXQKK2V4aXN0cy4KKworSWYg
UVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNvbnZlcnNpb24gd2FybmluZ3Mgb3Ig
ZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBzcGVjaWZpZWQgYnkgYSBjb252ZXJ0
ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2VlIHRoZSB2YXJpYWJsZSBgZXhlYy1w
YXRoJy4iCisgIChpbnRlcmFjdGl2ZSAiZkNvbnZlcnQgTWFya2Rvd24gZmlsZTogIikKKyAgKG1h
cmtkb3duLXRzLWNvbnZlcnQgaW5wdXQtZmlsZSBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICBmb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgKG9yIGRpc3BsYXkgY3VycmVu
dC1wcmVmaXgtYXJnKQorICAgICAgICAgICAgICAgICAgICAgICBvdmVyd3JpdGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgcXVpZXQpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIG1hcmtkb3du
LXRzLWNvbnZlcnQgKCZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0
LWZpbGUgb3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgZGlz
cGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IGEgYG1hcmtkb3duLXRzLW1vZGUnIGJ1
ZmZlciBvciBmaWxlIHRvIEZPUk1BVC4KK0NvbnZlcnQgSU5QVVQtRklMRSB0byBPVVRQVVQtRklM
RS4KKworSWYgSU5QVVQtRklMRSBpcyBuaWwsIHVzZSB0aGUgY3VycmVudCBidWZmZXIuCisKK0lm
IE9VVFBVVC1GSUxFIGlzIG5pbCwgcHJvbXB0IGZvciBhbiBvdXRwdXQgZmlsZS4KKworT3B0aW9u
YWwgRk9STUFUIGlzIGEgZm9ybWF0L2NvbnZlcnRlciBwYWlyIHNwZWNpZmllZCBhcyBhIGNvbnMK
K1xcPScoZm9ybWF0IC4gY29udmVydGVyKSBmb3IgZXhhbXBsZSBcXD0nKGh0bWwgLiBwYW5kb2Mp
LiAgU2VlCitgbWFya2Rvd24tdHMtY29udmVydGVycycuICBJZiBuaWwsIHByb21wdCBmb3IgdGhl
IGZvcm1hdCBhbmQgY29udmVydGVyLgorCitJZiBvcHRpb25hbCBESVNQTEFZIGlzIG5vbi1uaWws
IHNob3cgdGhlIG91dHB1dCBmaWxlIGluIGEgYnVmZmVyLCBpZgorcG9zc2libGUsIHVzaW5nIHRo
ZSBmdW5jdGlvbiBgbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uJy4KKworV2l0
aCBhIHByZWZpeCBhcmd1bWVudCwgRElTUExBWSB3aWxsIGJlIG5vbi1uaWwuCisKK0lmIG9wdGlv
bmFsIE9WRVJXUklURSBpcyBub24tbmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUg
aWYgaXQKK2V4aXN0cy4KKworSWYgUVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNv
bnZlcnNpb24gd2FybmluZ3Mgb3IgZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBz
cGVjaWZpZWQgYnkgYSBjb252ZXJ0ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2Vl
IHRoZSB2YXJpYWJsZSBgZXhlYy1wYXRoJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKGFu
ZCBpbnB1dC1maWxlCisgICAgICAgICAgICAgKGVxdWFsIGJ1ZmZlci1maWxlLW5hbWUgKGV4cGFu
ZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgKGJ1ZmZlci1tb2RpZmllZC1w
KSkKKyAgICAod2hlbiAoeWVzLW9yLW5vLXAgIlNhdmUgbW9kaWZpZWQgYnVmZmVyIGJlZm9yZSBj
b252ZXJ0aW5nPyAiKQorICAgICAgKHNhdmUtYnVmZmVyKSkpCisgICh1bmxlc3MgaW5wdXQtZmls
ZQorICAgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtY29udmVy
dCkpCisKKyAgKHNldHEgZGlzcGxheSAob3IgZGlzcGxheSBjdXJyZW50LXByZWZpeC1hcmcpKQor
CisgIChsZXQqICgoY29udmVydGVyLWZvcm1hdAorICAgICAgICAgIChvciAoY2FyIGZvcm1hdCkK
KyAgICAgICAgICAgICAgKGNhciBtYXJrZG93bi10cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAg
ICAgICAgICAgKGludGVybgorICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAg
ICAgICAgICAgICJTZWxlY3QgYW4gb3V0cHV0IGZvcm1hdDogIgorICAgICAgICAgICAgICAgICht
YXBjYXIgKGxhbWJkYSAoZWx0KSAoc3ltYm9sLW5hbWUgKGNhciBlbHQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpCisgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy1jb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgICAgKGNvbnZlcnRlcgor
ICAgICAgICAgIChvciAoY2RyIGZvcm1hdCkKKyAgICAgICAgICAgICAgKGNkciBtYXJrZG93bi10
cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAgICAgICAgICAgKGludGVybgorICAgICAgICAgICAg
ICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAgICAgICAgICAgICJTZWxlY3QgYSBjb252ZXJ0ZXI6
ICIKKyAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGVsdCkgKHN5bWJvbC1uYW1lIChj
YXIgZWx0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtZ2V0IGNvbnZlcnRlci1m
b3JtYXQgbWFya2Rvd24tdHMtY29udmVydGVycykpCisgICAgICAgICAgICAgICAgbmlsCisgICAg
ICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJr
ZG93bi10cy1jb252ZXJ0ZXIpKSkpCisgICAgICAgICAoY29uZmlnIChhbGlzdC1nZXQgY29udmVy
dGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LWdldCBjb252ZXJ0ZXItZm9y
bWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1j
b252ZXJ0ZXJzKSkpCisgICAgICAgICAoY29tbWFuZCAocGxpc3QtZ2V0IGNvbmZpZyA6Y29tbWFu
ZCkpCisgICAgICAgICAoY29tbWFuZC1pbnB1dCAocGxpc3QtZ2V0IGNvbmZpZyA6aW5wdXQpKQor
ICAgICAgICAgKGNvbW1hbmQtb3V0cHV0IChwbGlzdC1nZXQgY29uZmlnIDpvdXRwdXQpKQorICAg
ICAgICAgKHN0ZGluLW9ubHkgKGVxdWFsIGNvbW1hbmQtaW5wdXQgJyhzdGRpbikpKQorICAgICAg
ICAgKHN0ZG91dC1vbmx5IChlcXVhbCBjb21tYW5kLW91dHB1dCAnKHN0ZG91dCkpKSkKKyAgICAo
dW5sZXNzIG91dHB1dC1maWxlCisgICAgICAoc2V0cSBvdXRwdXQtZmlsZQorICAgICAgICAgICAg
KHJlYWQtZmlsZS1uYW1lICJPdXRwdXQgZmlsZSBuYW1lOiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNh
dCAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGZpbGUtcmVsYXRpdmUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAob3IgaW5wdXQtZmlsZSBidWZmZXItZmlsZS1uYW1lKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzeW1ib2wtbmFtZSBjb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgKHVubGVz
cyBvdXRwdXQtZmlsZQorICAgICAgICAodXNlci1lcnJvciAiT3V0cHV0IGZpbGUgbmFtZSBpcyBy
ZXF1aXJlZCIpKSkKKyAgICAod2hlbiBvdXRwdXQtZmlsZQorICAgICAgKHdoZW4gKGFuZCAobm90
IG92ZXJ3cml0ZSkKKyAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgb3V0cHV0LWZpbGUp
CisgICAgICAgICAgICAgICAgIChub3QgKHllcy1vci1uby1wIChmb3JtYXQgIiVzIGV4aXN0czsg
b3ZlcndyaXRlPyIgb3V0cHV0LWZpbGUpKSkpCisgICAgICAgICh1c2VyLWVycm9yICJOb3Qgb3Zl
cndyaXRpbmcgZXhpc3RpbmcgZmlsZTogJXMiIG91dHB1dC1maWxlKSkKKyAgICAgIChzZXRxIG91
dHB1dC1maWxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dC1maWxlKSkpCisKKworICAgIChsZXQg
KChjb21tYW5kLWFyZ3MgKGZ1bmNhbGwgKHBsaXN0LWdldCBjb25maWcgOmFyZ3VtZW50cy1mdW5j
dGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIGlucHV0LWZpbGUg
KGV4cGFuZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQtZmlsZSkpKQorICAgICAgKHVubGVzcyAoZXhlY3V0YWJsZS1maW5kIGNv
bW1hbmQpCisgICAgICAgICh1c2VyLWVycm9yICJgJXMnIGV4ZWN1dGFibGUgbm90IGZvdW5kIiBj
b21tYW5kKSkKKyAgICAgIChsZXQgKChlcnJvci1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZm
ZXIpKQorICAgICAgICAgICAgKGVycm9yLXRlbXAtZmlsZSAobWFrZS10ZW1wLWZpbGUgIm1hcmtk
b3duLXRzLWNvbnZlcnQtc3RkZXJyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmlsICIubG9nIikpCisgICAgICAgICAgICAoc3Rkb3V0LWJ1ZmZlciAod2hl
biBzdGRvdXQtb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0LWJ1ZmZlci1j
cmVhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb252ZXJ0
LW91dHB1dC1idWZmZXIpKSkpCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAg
KGxldCAoZXhpdC1zdGF0dXMpCisgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGVy
cm9yLWJ1ZmZlcgorICAgICAgICAgICAgICAgIChzcGVjaWFsLW1vZGUpCisgICAgICAgICAgICAg
ICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCisgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIpKQorICAgICAgICAgICAgICAod2hlbiBzdGRv
dXQtYnVmZmVyCisgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc3Rkb3V0LWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgKHNwZWNpYWwtbW9kZSkKKyAgICAgICAgICAgICAgICAg
IChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikpKQorICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgKChhbmQgaW5wdXQtZmlsZSAobm90IHN0ZGluLW9ubHkpKQorICAgICAg
ICAgICAgICAgIChzZXRxIGV4aXQtc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5
ICMnY2FsbC1wcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsaXN0IHN0ZG91dC1idWZmZXIgZXJyb3ItdGVtcC1maWxlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC1h
cmdzKSkpCisgICAgICAgICAgICAgICAoKGFuZCBpbnB1dC1maWxlIHN0ZGluLW9ubHkpCisgICAg
ICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQt
ZmlsZS1jb250ZW50cyBpbnB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1z
dGF0dXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZC1hcmdzKSkpKQorICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAo
d2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1zdGF0dXMK
KyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZC1hcmdzKSkpKSkKKyAgICAgICAgICAgICAgKGxldCAoKGVycm9yLXNpemUgKGZpbGUtYXR0
cmlidXRlLXNpemUgKGZpbGUtYXR0cmlidXRlcyBlcnJvci10ZW1wLWZpbGUpKSkpCisgICAgICAg
ICAgICAgICAgKHdoZW4gKGFuZCBlcnJvci1zaXplICg+IGVycm9yLXNpemUgMCkpCisgICAgICAg
ICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBlcnJvci1idWZmZXIKKyAgICAgICAgICAg
ICAgICAgICAgKGluc2VydC1maWxlLWNvbnRlbnRzIGVycm9yLXRlbXAtZmlsZSkKKyAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKSkKKyAgICAgICAgICAgICAgKGNv
bmQgKChlcSAwIGV4aXQtc3RhdHVzKSA7IEludGVnZXIgb3Igc3RyaW5nLgorICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gc3Rkb3V0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAod2l0
aC1jdXJyZW50LWJ1ZmZlciBzdGRvdXQtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSBvdXRwdXQtZmlsZSkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHdoZW4gZGlzcGxheQorICAgICAgICAgICAgICAgICAgICAgICAo
ZnVuY2FsbCBtYXJrZG93bi10cy1jb252ZXJ0LWRpc3BsYXktZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LWZpbGUpKQorICAgICAgICAgICAgICAgICAgICAg
KHdoZW4gKGFuZCAobm90IHF1aWV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bm90ICh6ZXJvcCAoYnVmZmVyLXNpemUgZXJyb3ItYnVmZmVyKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh5ZXMtb3Itbm8tcAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZvcm1hdC1tZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkNvbnZlcnNpb24gZmlsZSBgJXMnIHN1Y2Nlc3NmdWxseSBjcmVhdGVkIHdpdGggd2FybmluZ3M7
IGRpc3BsYXkgdGhlbT8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
LWZpbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyIGVycm9yLWJ1
ZmZlcikpCisgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiQ29udmVyc2lvbiBmaWxlIHN1
Y2Nlc3NmdWxseSBjcmVhdGVkIGAlcyclcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHplcm9wIChi
dWZmZXItc2l6ZSBlcnJvci1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiB3aXRoIHdh
cm5pbmdzOyBzZWUgYnVmZmVyIGAlcyciIGVycm9yLWJ1ZmZlcikpKSkKKyAgICAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgIChpZiBxdWlldAorICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udmVydGVyIGFi
b3J0ZWQgd2l0aCBleGl0IGNvZGUgJVM7IHNlZSBidWZmZXIgYCVzJyBmb3IgZXJyb3JzIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGl0LXN0YXR1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZmZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICh3aGVuICh5ZXMtb3Itbm8tcCAoZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNvbnZlcnRlciBhYm9ydGVkIHdpdGggZXhpdCBjb2RlICVT
OyBkaXNwbGF5IGVycm9ycz8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXhpdC1zdGF0dXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5LWJ1
ZmZlciBlcnJvci1idWZmZXIpKSkpKSkKKyAgICAgICAgICAoZGVsZXRlLWZpbGUgZXJyb3ItdGVt
cC1maWxlKSkpKSkpCisKKzs7OyBUYWJsZSBvZiBjb250ZW50czoKKworKGRlZmdyb3VwIG1hcmtk
b3duLXRzLXRvYyBuaWwKKyAgIlRhYmxlIG9mIGNvbnRlbnRzIGZvciBgbWFya2Rvd24tdHMtbW9k
ZScgYnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLXRvYy0iCisgIDpncm91cCAndGV4
dAorICA6Z3JvdXAgJ2VkaXRpbmcKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUgJ2luc2VydC10ZW1wbGF0ZQorICAi
V2FybiBpZiBubyB0YWJsZXMgd2VyZSBwcm9jZXNzZWQgd2hlbiBjYWxsaW5nIGBtYXJrZG93bi10
cy10b2MtZ2VuZXJhdGUnLgorSWYgbmlsLCBkbyBub3RoaW5nLiAgSWYgdGhlIHN5bWJvbCBgaW5z
ZXJ0LXRlbXBsYXRlJyBhbmQKK2BtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUnIHdhcyBjYWxsZWQg
aW50ZXJhY3RpdmVseSwgb2ZmZXIgdG8gaW5zZXJ0IGEKK3RlbXBsYXRlIGlmIHRoZXJlIGFyZSBu
b25lLiAgSWYgYG5vLXRhYmxlcycsIHdhcm4gd2hlbiB0aGVyZSBhcmUgbm8KK3RhYmxlcyBpbiB0
aGUgYnVmZmVyLiAgYG5vLWFjdGl2ZS10YWJsZXMnLCBpcyB0aGUgc2FtZSBhcyBgbm8tdGFibGVz
Jword2l0aCB0aGUgYWRkaXRpb24gb2YgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0YWJsZXMsIGJ1
dCBub25lIGFyZSBhY3RpdmUuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiTm8gd2Fy
bmluZ3MiIG5pbCkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkluc2VydCBhIHRhYmxl
IHRlbXBsYXRlIChpZiBpbnRlcmFjdGl2ZSkiIGluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIldhcm4gaWYgbm8gdGFibGVzIHdlcmUgcHJvY2Vzc2VkIiBuby10
YWJsZXMpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJXYXJuIGlmIG5vIGFjdGl2ZSB0
YWJsZXMgd2VyZSBwcm9jZXNzZWQiIG5vLWFjdGl2ZS10YWJsZXMpKQorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy10
b2MtdXBkYXRlLWJlZm9yZS1zYXZlLW1vZGUtbGlnaHRlciAiIFt0b2Mgb24gc2F2ZV0iCisgICJN
aW5vci1tb2RlIFwibGlnaHRlclwiIGZvciBgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUt
c2F2ZS1tb2RlJy4KK05vdGUgdGhlIHNpbmdsZSBzcGFjZSBwcmVmaXguIgorICA6dHlwZSAnKGNo
b2ljZSAoY29uc3QgOnRhZyAiRGVmYXVsdCIgIiBbdG9jIG9uIHNhdmVdIikKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKKyAgICAgICAgICAgICAgICAgKHN0cmluZyA6
dGFnICJPdGhlciBzdHJpbmciKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNp
b24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdG9jLXNsdWctZnVuY3Rpb24gIydt
YXJrZG93bi10cy0tc2x1Zy1naXRodWIKKyAgIkZ1bmN0aW9uIHRvIGdlbmVyYXRlIE1hcmtkb3du
IGhlYWRpbmcgXCJzbHVnc1wiIGluIHRhYmxlcyBvZiBjb250ZW50cy4iCisgIDp0eXBlICcoY2hv
aWNlIChjb25zdCA6dGFnICJHaXRIdWIgc2x1ZyIgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiUGFuZG9jIHNsdWciIG1hcmtkb3duLXRzLS1z
bHVnLXBhbmRvYykKKyAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgIk90aGVyIGZ1bmN0
aW9uIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmdmFyIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcworICAnKChoZWFkaW5nIC4gKGgxIGgyIGgz
IGg0IGg1IGg2KSkKKyAgICAoc2V0ZXh0IC4gKHNoMSBzaDIpKQorICAgIChpdGVtIC4gKG1pbnVz
IHBsdXMgc3RhcikpCisgICAgKG51bWJlcmVkLWl0ZW0gLiAoZG90IHBhcmVuKSkKKyAgICAoY29k
ZSAuIChjb2RlKSkpCisgICJNYXAgaGlnaCBsZXZlbCBub2RlIGhhbmRsZXMgdG8gdGhlaXIgYmFz
ZSBjb25zdGl0dWVudHMuCitUaGUgc3BlY2lhbCBzeW1ib2wgYGFsbCcgbWVhbnMgYWxsIGhhbmRs
ZXMuIikKKworKGRlZnZhciBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2VzCisgIChsZXQg
KCh4KSkKKyAgICAoZG9saXN0IChlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKQorICAgICAg
KGRvbGlzdCAodmFsIChjZHIgZWx0KSkKKyAgICAgICAgKHB1c2ggYCgsdmFsIC4gLChjYXIgZWx0
KSkgeCkpKQorICAgIHgpCisiSW52ZXJzZSBvZiBgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzJy4i
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy1leHBhbmQtY2FuZGlkYXRlLWhhbmRsZXMgKGhh
bmRsZXMpCisgICJFeHBhbmQgY2FuZGlkYXRlIEhBTkRMRVMgYW5kIGtlZXAgb25seSBiYXNlIGhh
bmRsZXMuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuIgorICAobGV0ICgoZXhwYW5k
ZWQgKG1ha2UtaGFzaC10YWJsZSkpCisgICAgICAgIChyZXMpKQorICAgICh1bmxlc3MgKGxpc3Rw
IGhhbmRsZXMpCisgICAgICAoc2V0cSBoYW5kbGVzIChsaXN0IGhhbmRsZXMpKSkKKyAgICAod2hl
biAoZXF1YWwgaGFuZGxlcyAnKGFsbCkpCisgICAgICAoc2V0cSBoYW5kbGVzIChtYXBjYXIgIydj
YXIgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKSkpCisgICAgKGRvbGlzdCAoZWx0IGhhbmRsZXMp
CisgICAgICAoc2V0cSBlbHQgKGFsaXN0LWdldCBlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVz
IGVsdCkpCisgICAgICAoY29uZCAoKGNvbnNwIGVsdCkKKyAgICAgICAgICAgICAoZG9saXN0IChr
IGVsdCkgKHB1dGhhc2ggayB0IGV4cGFuZGVkKSkpCisgICAgICAgICAgICAodCAocHV0aGFzaCBl
bHQgdCBleHBhbmRlZCkpKSkKKyAgICAobWFwaGFzaCAobGFtYmRhIChrIF92KSAocHVzaCBrIHJl
cykpIGV4cGFuZGVkKQorICAgIHJlcykpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdG9jcyAoJm9w
dGlvbmFsIGJlZyBlbmQpCisgICJTY2FuIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgdG9jIGVudHJp
ZXMgZnJvbSBCRUcgdG8gRU5ELgorSWYgQkVHIGlzIG5pbCwgdXNlIGBwb2ludC1taW4nLiAgSWYg
RU5EIGlzIG5pbCwgdXNlIGBwb2ludC1tYXgnLgorCitSZXR1cm4gYW4gYWxpc3Qgb2YgdGhlIGZv
cm06CisgIFxcPScoKGtleXdvcmQgKG5vZGUgYmVnIGVuZCB2YXJzKSkpCisKK1ZhcnMgYXJlIGV4
cGFuZGVkIHZpYSBgaGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lJy4KKworUmV0dXJuIHRo
ZSBsaXN0IGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlIGluIHRoZSBidWZmZXIuIgorICA7OyBO
T1RFOiBUaGlzIHNjYW5zIGFsbCBtYXRjaGluZyBub2RlcyBiZWxvdyBCRUcgd2l0aCBubyBtYXhp
bXVtIGNvdW50CisgIDs7IGV2ZW4gd2hlbiB3ZSB3YW50IG9ubHkgYSBzaW5nbGUgbmV4dCBtYXRj
aGluZyBpdGVtLiAgUGVyaGFwcworICA7OyBgdHJlZXNpdC1xdWVyeS1jYXB0dXJlJyBjb3VsZCBi
ZSBpbXByb3ZlZCB0byBhY2NlcHQgYSBtYXgtY291bnQKKyAgOzsgYXJndW1lbnQuCisgIDs7Cisg
IDs7IE1hdGNoICJtYXJrZG93bi10cy10b2M6IiwgIm1hcmtkb3duLXRzLXRvYy1hYmMxMjM6IiBi
dXQgbm90CisgIDs7ICJtYXJrZG93bi10cy10b2N4eHg6Ii4KKyAgKGxldCAoKHJlcykpCisgICAg
KGRvbGlzdCAobm9kZQorICAgICAgICAgICAgICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgJ21hcmtkb3duCisgICAgICAgICAgICAgICcoKCgoaHRtbF9ibG9jaykgQG1hcmtk
b3duLXRzLXRvYykKKyAgICAgICAgICAgICAgICAgKDptYXRjaCAiPCEtLVtbOmJsYW5rOl1dKm1h
cmtkb3duLXRzLXRvY1xcKC1bWzphbG51bTpdXStcXCkqOiIgQG1hcmtkb3duLXRzLXRvYykpKQor
ICAgICAgICAgICAgICAob3IgYmVnIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAob3IgZW5k
IChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAnbm9kZS1vbmx5KSkKKyAgICAgIChsZXQqICgo
cyAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKQorICAgICAgICAgICAgICht
YXRjaCAoc3RyaW5nLW1hdGNoICJcXChtYXJrZG93bi10cy10b2NcXCgtW1s6YWxudW06XV0rXFwp
KlxcKTouKiIgcykpCisgICAgICAgICAgICAgKGtleXdvcmQgKHdoZW4gbWF0Y2ggKG1hdGNoLXN0
cmluZyAxIHMpKSkpCisgICAgICAgIChsZXQgKCh2YXJzKSkKKyAgICAgICAgICAod2l0aC13b3Jr
LWJ1ZmZlcgorICAgICAgICAgICAgKGluc2VydCBzKQorICAgICAgICAgICAgKHNldHEgdmFycyAo
aGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lKSkpCisgICAgICAgICAgKHB1c2gKKyAgICAg
ICAgICAgYCgsa2V5d29yZAorICAgICAgICAgICAgIChub2RlIC4gLG5vZGUpCisgICAgICAgICAg
ICAgKGJlZyAuICwodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgIChlbmQg
LiAsKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgKHZhcnMgLiAsdmFycykp
CisgICAgICAgICAgIHJlcykpKSkKKyAgICAobnJldmVyc2UgcmVzKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2sgKHRvY3MpCisgICJTYW5pdHkgY2hlY2sgVE9DUyBm
b3IgcGFpcmVkIG1hcmtkb3duLXRzLXRvYzogbWFya2Rvd24tdHMtdG9jLWVuZDogbm9kZXMuCitT
aWduYWwgYW4gZXJyb3IgaWYgVE9DUyBhcmUgaW5zYW5lLgorU2VlIGBtYXJrZG93bi10cy0tdG9j
cycuIgorICAoc2VxLW1hcC1pbmRleGVkCisgICAobGFtYmRhIChlbHQgaWR4KQorICAgICAod2hl
biAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciBlbHQpKQorICAgICAgICh1bmxlc3MgKGVx
dWFsICJtYXJrZG93bi10cy10b2MtZW5kIiAoY2FyIChudGggKDErIGlkeCkgdG9jcykpKQorICAg
ICAgICAgKHVzZXItZXJyb3IKKyAgICAgICAgICAiXCJtYXJrZG93bi10cy10b2NcIiBhdCBwb3Np
dGlvbiAlZCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbWF0Y2hpbmcgXCJtYXJrZG93bi10cy10b2Mt
ZW5kXCIiCisgICAgICAgICAgKGFsaXN0LWdldCAnYmVnIGVsdCkpKSkpCisgICB0b2NzKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS10b2MtY29sbGVjdC1jYW5kaWRhdGVzICh0b2Mtc3RhcnQtbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2MtZW5kLW5v
ZGUgaGFuZGxlcyBmcm9tKQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIHRvYyBlbnRyeSBjYW5kaWRh
dGVzIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyLgorSEFORExFUyBpcyBhIGxpc3Qgb2YgYmFzZSBo
YW5kbGVzOyBzZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuCisKK1RPQy1TVEFSVC1OT0RF
IGlzIHRoZSBcIm1hcmtkb3duLXRzLXRvYy1zdGFydFwiIG5vZGUuCitUT0MtRU5ELU5PREUgaXMg
dGhlIFwibWFya2Rvd24tdHMtdG9jLWVuZFwiIG5vZGUuCisKK0lmIEZST00gaXMgdGhlIHN5bWJv
bCBgYWJvdmUnLCBzb3VyY2UgY2FuZGlkYXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YKK3RoZSBi
dWZmZXIgdW50aWwgdGhlIHRvYyBzdGFydCBub2RlLiAgSWYgYGJlbG93Jywgc291cmNlIGNhbmRp
ZGF0ZXMgZnJvbQordG9jIHN0YXJ0IG5vZGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAg
SWYgYGFsbCcsIHVzZSB0aGUgd2hvbGUKK2J1ZmZlci4KKworUmVtb3ZlIGlnbm9yZWQgY2FuZGlk
YXRlcyBjb250YWluaW5nIFwiPCEtLSBtYXJrZG93bi10cy1pZ25vcmU6IC0tPlwiLgorCitTb3J0
IHRoZSBsaXN0IGJ5IHRoZSBzdGFydGluZyBjaGFyYWN0ZXIgcG9zaXRpb25zIG9mIG5vZGVzLgor
CitUaGUgYWxpc3QgaXMgb2YgdGhlIGZvcm06CisgIFxcPScoKGhhbmRsZSAuIG5vZGUpKSIKKyAg
KGxldCAoY2FuZGlkYXRlcyBiZWcgZW5kKQorICAgIChwY2FzZSBmcm9tCisgICAgICAoJ2Fib3Zl
CisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4pKQorICAgICAgIChzZXRxIGVuZCAodHJlZXNp
dC1ub2RlLXN0YXJ0IHRvYy1zdGFydC1ub2RlKSkpCisgICAgICAoJ2JlbG93CisgICAgICAgKHNl
dHEgYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1lbmQtbm9kZSkpCisgICAgICAgKHNldHEgZW5k
IChwb2ludC1tYXgpKSkKKyAgICAgICgnYWxsCisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4p
KQorICAgICAgIChzZXRxIGVuZCAocG9pbnQtbWF4KSkpKQorCisgICAgOzsgSXQgbG9va3MgbGlr
ZSB3ZSBjYW5ub3QgZ2V0IHRoZW0gaW4gb25lIGZlbGwgc3dvb3AuCisgICAgKGRvbGlzdCAoZWx0
IGhhbmRsZXMpCisgICAgICAoc2V0cQorICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAoYXBwZW5k
CisgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgKHBjYXNlIGVsdAorICAgICAgICAgICgnaDEg
KHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChhdHhf
aGVhZGluZyAoYXR4X2gxX21hcmtlcikgKGlubGluZSkgQGgxKSkgYmVnIGVuZCkpCisgICAgICAg
ICAgKCdoMiAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgJ21hcmtkb3du
ICcoKGF0eF9oZWFkaW5nIChhdHhfaDJfbWFya2VyKSAoaW5saW5lKSBAaDIpKSBiZWcgZW5kKSkK
KyAgICAgICAgICAoJ2gzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAn
bWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oM19tYXJrZXIpIChpbmxpbmUpIEBoMykpIGJl
ZyBlbmQpKQorICAgICAgICAgICgnaDQgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICdtYXJrZG93biAnKChhdHhfaGVhZGluZyAoYXR4X2g0X21hcmtlcikgKGlubGluZSkg
QGg0KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdoNSAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisg
ICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKGF0eF9oZWFkaW5nIChhdHhfaDVfbWFya2VyKSAo
aW5saW5lKSBAaDUpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ2g2ICh0cmVlc2l0LXF1ZXJ5LWNh
cHR1cmUKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oNl9t
YXJrZXIpIChpbmxpbmUpIEBoNikpIGJlZyBlbmQpKQorICAgICAgICAgICgnc2gxICh0cmVlc2l0
LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKHNldGV4dF9oZWFk
aW5nIGhlYWRpbmdfY29udGVudDogKF8pIEBzaDEgKHNldGV4dF9oMV91bmRlcmxpbmUpKSkgYmVn
IGVuZCkpCisgICAgICAgICAgKCdzaDIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICAnbWFya2Rvd24gJygoc2V0ZXh0X2hlYWRpbmcgaGVhZGluZ19jb250ZW50OiAoXykg
QHNoMiAoc2V0ZXh0X2gyX3VuZGVybGluZSkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ21pbnVz
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygo
bGlzdF9pdGVtIChsaXN0X21hcmtlcl9taW51cykgKHBhcmFncmFwaCAoaW5saW5lKSBAbWludXMp
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdwbHVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMp
IChwYXJhZ3JhcGggKGlubGluZSkgQHBsdXMpKSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdzdGFy
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChs
aXN0X2l0ZW0gKGxpc3RfbWFya2VyX3N0YXIpIChwYXJhZ3JhcGggKGlubGluZSkgQHN0YXIpKSkg
YmVnIGVuZCkpCisgICAgICAgICAgKCdkb3QgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIChwYXJh
Z3JhcGggKGlubGluZSkgQGRvdCkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ3BhcmVuICh0cmVl
c2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9wYXJlbnRoZXNpcykgKHBhcmFncmFwaCAoaW5saW5lKSBAcGFyZW4p
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdjb2RlICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJp
bmcgKGxhbmd1YWdlKSkgQGNvZGUpKSBiZWcgZW5kKSkpKSkpCisgICAgKHNvcnQKKyAgICAgKHNl
cS1yZW1vdmUKKyAgICAgIChsYW1iZGEgKGVsdCkKKyAgICAgICAgKHN0cmluZy1tYXRjaC1wICI8
IS0tW1s6Ymxhbms6XV0qbWFya2Rvd24tdHMtaWdub3JlOltbOmJsYW5rOl1dKi0tPiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCAoY2RyIGVsdCkgdCkpKQorICAg
ICAgY2FuZGlkYXRlcykKKyAgICAgOmtleSAobGFtYmRhIChlbHQpCisgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLXN0YXJ0IChjZHIgZWx0KSkpCisgICAgIDpsZXNzcCAjJzwKKyAgICAgOmluLXBs
YWNlIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoIChub2Rl
KQorICAiUmV0dXJuIE5PREUncyBpdGVtIGRlcHRoIHJlbGF0aXZlIHRvIGl0cyBwcmVkZWNlc3Nv
cnMuCitJZiBOT0RFIGlzIG5vdCBwYXJ0IG9mIGEgbGlzdCwgcmV0dXJuIG5pbC4iCisgICAgKGxl
dCAoKGRlcHRoIG5pbCkgKG4gKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgKHdo
aWxlIG4KKyAgICAgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdCIp
CisgICAgICAgICAgKHNldHEgZGVwdGggKDErIChvciBkZXB0aCAwKSkpKQorICAgICAgICAoc2V0
cSBuICh0cmVlc2l0LW5vZGUtcGFyZW50IG4pKSkKKyAgICAgIGRlcHRoKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUgKHRleHQpCisgICJSZW1vdmUgdHJh
aWxpbmcgIyBmcm9tIFRFWFQgdW5sZXNzIHRoZXkgYXJlIGJhY2tzbGFzaCBlc2NhcGVkLgorRmly
c3QgcmVtb3ZlIEhUTUwgY29tbWVudHMuIgorICAoaWYgKHN0cmluZy1tYXRjaC1wICJbWzpibGFu
azpdXSpcXFxcKyMrW1s6Ymxhbms6XV0qXG4qXFwnIiB0ZXh0KQorICAgICAgdGV4dAorICAgIChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIltbOmJsYW5rOl1dKiMrW1s6Ymxhbms6XV0qXG4qXFwn
IiAiIiB0ZXh0KSkpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXRvYy10ZXh0LW5vcm1hbGl6ZXJz
CisgIGAoKGhlYWRpbmcgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQor
ICAgIChoMSAuIG1hcmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGgy
IC4gbWFya2Rvd24tdHMtLXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDMgLiBtYXJr
ZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQorICAgIChoNCAuIG1hcmtkb3duLXRz
LS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGg1IC4gbWFya2Rvd24tdHMtLXRvYy1h
dHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDYgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFk
ZXItbm9ybWFsaXplKSkKKyAgIk1hcCBub2RlIHR5cGUgaGFuZGxlcyB0byBmdW5jdGlvbnMgdGhh
dCBub3JtYWxpemUgaXRzIHRleHQuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emUnLgorRWFjaCBmdW5jdGlvbiBhY2NlcHRzIG9uZSBhcmd1bWVudCwgdGhlIHN0cmluZyBURVhU
LCBhbmQgcmV0dXJucyBhIHN0cmluZy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy10ZXh0
LW5vcm1hbGl6ZSAoaGFuZGxlIG5vZGUgJm9wdGlvbmFsIHRleHQpCisgICJOb3JtYWxpemUgTk9E
RSdzIFRFWFQgYWNjb3JkaW5nIHRvIGl0cyBIQU5ETEUuCitURVhUIHNob3VsZCBoYXZlIG5vIHRl
eHQgcHJvcGVydGllcy4gIElmIFRFWFQgaXMgbmlsLCB1c2UgdGhlIE5PREUncwordGV4dC4gIFRo
aXMgaXMgbm90IGFsd2F5cyBjb3JyZWN0IHNvIGl0J3MgYmVzdCB0byBwYXNzIFRFWFQgaWYgeW91
IGtub3cKK2l0IGluIHRoZSBjYWxsaW5nIGNvbnRleHQuCisKK0lmIG5vIG5vcm1hbGl6ZXIgaXMg
Zm91bmQsIHJldHVybiBURVhULgorCitPbmUgZXhhbXBsZSBub3JtYWxpemF0aW9uIGlzIGF0eF9o
ZWFkaW5nIHRleHQgdGhhdCBlbmRzIGluIHRyYWlsaW5nIGhhc2gKK3NpZ25zIHdoaWNoIGFyZSBp
bnRlbmRlZCB0byBiZSBlbGlkZWQgc28gXCJIZWFkaW5nIFRleHQgIyNcIiBpcwordHJhbnNmb3Jt
ZWQgaW50byBcIkhlYWRpbmcgVGV4dFwiLiIKKyAgKHNldHEgdGV4dCAob3IgdGV4dCAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKSkKKyAgKGlmLWxldCogKChmaXhlciAoYWxp
c3QtZ2V0IGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplcnMpKSkKKyAgICAg
IChmdW5jYWxsIGZpeGVyIHRleHQpCisgICAgdGV4dCkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVm
aW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisg
ICJJZiBlbmFibGVkLCB1cGRhdGUgYG1hcmtkb3duLXRzLW1vZGUnIHRhYmxlcyBvZiBjb250ZW50
cyBiZWZvcmUgc2F2aW5nLiIKKyAgOmluaXQtdmFsdWUgbmlsCisgIDpnbG9iYWwgbmlsCisgIDps
aWdodGVyIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyCisg
IChpZiAoZGVyaXZlZC1tb2RlLXAgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAoaWYgbWFya2Rv
d24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisgICAgICAgICAgKGFkZC1ob29rICdi
ZWZvcmUtc2F2ZS1ob29rICMnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlIG5pbCAnbG9jYWwpCisg
ICAgICAgIChyZW1vdmUtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAjJ21hcmtkb3duLXRzLXRvYy1n
ZW5lcmF0ZSAnbG9jYWwpKQorICAgIChzZXRxIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3Jl
LXNhdmUtbW9kZSBuaWwpCisgICAgKGx3YXJuICdtYXJrZG93bi10cy10b2MtdXBkYXRlLWJlZm9y
ZS1zYXZlLW1vZGUKKyAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgIk1pbm9yIG1vZGUg
dmFsaWQgb25seSBpbiBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKSkpCisKKzs7OyMjI2F1
dG9sb2FkCisoZGVmdW4gbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUgKCZvcHRpb25h
bCBiZWcgZW5kKQorICAiUmVtb3ZlIGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50
cyBib2RpZXMgYW5kIHRlbXBsYXRlcy4KK09wZXJhdGUgb24gdGhlIGFjdGl2ZSByZWdpb24gQkVH
IHRvIEVORCwgb3RoZXJ3aXNlIG9wZXJhdGUgb24gdGhlCitidWZmZXIsIHdoaWNoIG1heSBiZSBu
YXJyb3dlZC4iCisgIChpbnRlcmFjdGl2ZSAiUiIpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1u
b3QtbW9kZSAnbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUpCisgIChtYXJrZG93bi10
cy10b2MtY2xlYXIgYmVnIGVuZCAncmVtb3ZlKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBt
YXJrZG93bi10cy10b2MtY2xlYXIgKCZvcHRpb25hbCBiZWcgZW5kIHJlbW92ZSkKKyAgIkNsZWFy
IGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50cyBib2RpZXMuCitPcGVyYXRlIG9u
IHRoZSBhY3RpdmUgcmVnaW9uIEJFRyB0byBFTkQsIG90aGVyd2lzZSBvcGVyYXRlIG9uIHRoZQor
YnVmZmVyLCB3aGljaCBtYXkgYmUgbmFycm93ZWQuCitJZiBvcHRpb25hbCBSRU1PVkUgaXMgbm9u
LW5pbCwgcmVtb3ZlIHRhYmxlcyBpbmNsdWRpbmcgdGhlaXIgdGVtcGxhdGVzLiIKKyAgKGludGVy
YWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10
cy10b2MtY2xlYXIpCisgIChzZXRxIGJlZyAob3IgYmVnIChwb2ludC1taW4pKSkKKyAgKHNldHEg
ZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNzIChlcSBiZWcgZW5kKQorICAgIDs7
IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlvbnMuCisgICAgKHNldHEgYmVnIChp
ZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVnKSBiZWcpKQorICAgIChzZXRxIGVu
ZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9uIGVuZCkgZW5kKSkKKyAgICA7OyBO
T1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0byBhdm9pZCB0cmVlc2l0ZXIgY3Jh
c2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9uCisgICAgICAobGV0ICgodG9jcykK
KyAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgIChlbmQtcG9zIGVuZCkpCisg
ICAgICAgIDs7IFdlIHNjYW4gZWFjaCBwYXNzIGJlY2F1c2UgdGhlaXIgcG9zaXRpb25zIGNoYW5n
ZS4KKyAgICAgICAgKHdoaWxlIChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAg
ICAgICAgICAoc2V0cSB0b2NzIChtYXJrZG93bi10cy0tdG9jcyBiZWctcG9zIGVuZC1wb3MpKSkK
KyAgICAgICAgICAobWFya2Rvd24tdHMtLXRvY3Mtc2FuaXR5LWNoZWNrIHRvY3MpCisgICAgICAg
ICAgOzsgQWZ0ZXIgc2FuaXR5IGNoZWNraW5nLCB3ZSBrbm93IHRoZSBzZWNvbmQgZWxlbWVudCBp
cyBhCisgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAobGV0KiAoKHRvYyAobnRoIDAg
dG9jcykpCisgICAgICAgICAgICAgICAgICh0b2MtZW5kIChudGggMSB0b2NzKSkKKyAgICAgICAg
ICAgICAgICAgKHJlZy1iZWcgKGlmIHJlbW92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFsaXN0LWdldCAnYmVnIHRvYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxp
c3QtZ2V0ICdlbmQgdG9jKSkpCisgICAgICAgICAgICAgICAgIChyZWctZW5kIChpZiByZW1vdmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2JlZyB0b2MtZW5kKSkpCisg
ICAgICAgICAgICAgICAgIChyZWctc2l6ZSAoLSByZWctZW5kIHJlZy1iZWcpKSkKKyAgICAgICAg
ICAgIChkZWxldGUtcmVnaW9uIHJlZy1iZWcgcmVnLWVuZCkKKyAgICAgICAgICAgIDs7IFN0YXJ0
IHRoZSBuZXh0IHBhc3MgYWZ0ZXIgdGhpcyB0b2MtZW5kLiAgQWRqdXN0IGZvciB0aGUKKyAgICAg
ICAgICAgIDs7IGRlbGV0ZWQgcmVnaW9uLgorICAgICAgICAgICAgKHNldHEgYmVnLXBvcyAoLSAo
YWxpc3QtZ2V0ICdlbmQgdG9jLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
LXNpemUpKQorICAgICAgICAgICAgKHNldHEgZW5kLXBvcyAobWluIChwb2ludC1tYXgpICgtIGVu
ZC1wb3MgcmVnLXNpemUpKSkpKSkpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93
bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGBt
YXJrZG93bi10cy1tb2RlYCB0YWJsZSBvZiBjb250ZW50cyB0ZW1wbGF0ZSBhdCBwb2ludC4KKwor
Q0hBUiBpcyB0aGUgdGVtcGxhdGUgdHlwZSBcImJcIiBmb3IgYmFzaWMsIFwiY1wiIGZvciBjb21w
bGV0ZS4gIElmIENIQVIKK2lzIG5pbCBhbmQgdGhlIGNvbW1hbmQgaXMgcnVuIGludGVyYWN0aXZl
bHksIHByb21wdCBmb3IgYSB0ZW1wbGF0ZS4KKworVGhlIGJhc2ljIHRlbXBsYXRlIHVzZXMgYWxs
IGRlZmF1bHRzIGFuZCBpcyBsaWtlbHkgdGhlIGJlc3QgY2hvaWNlIGZvcgorbW9zdCB1c2VzLiAg
VGhlIGNvbXBsZXRlIHRlbXBsYXRlIGlsbHVzdHJhdGVzIGFsbCBwYXJhbWV0ZXJzIHNldCB0bwor
dGhlaXIgZGVmYXVsdHMgYW5kIGlzIHVzZWZ1bCBhcyBhIHN0YXJ0aW5nIHBvaW50IHRvIGN1c3Rv
bWl6ZSBhIHRhYmxlLiIKKyAgKGludGVyYWN0aXZlICJjVGVtcGxhdGUgW2JdYXNpYyBbY11vbXBs
ZXRlOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9iCisgICAgIChpbnNlcnQgIjwhLS0gbWFya2Rv
d24tdHMtdG9jOiAtLT5cbiIKKyAgICAgICAgICAgICAiPCEtLSBtYXJrZG93bi10cy10b2MtZW5k
OiAtLT5cbiIpKQorICAgICg/YworICAgICAoaW5zZXJ0ICI8IS0tIG1hcmtkb3duLXRzLXRvYzog
LSotICIKKyAgICAgICAgICAgICAibWluLWRlcHRoOiAxOyAiCisgICAgICAgICAgICAgIm1heC1k
ZXB0aDogbmlsOyAiCisgICAgICAgICAgICAgImNhbmRpZGF0ZXM6IChoZWFkaW5nKTsgIgorICAg
ICAgICAgICAgICJmcm9tOiBiZWxvdzsgIgorICAgICAgICAgICAgICJzdHlsZTogaXRlbTsgIgor
ICAgICAgICAgICAgICJpbmRlbnQ6IDE7ICIKKyAgICAgICAgICAgICAibm8tbGluazogbmlsOyAi
CisgICAgICAgICAgICAgInJlbGF0aXZlLWRlcHRoOiBuaWw7ICIKKyAgICAgICAgICAgICAiaWdu
b3JlOiBuaWw7ICIKKyAgICAgICAgICAgICAiLSotIC0tPlxuIgorICAgICAgICAgICAgICI8IS0t
IG1hcmtkb3duLXRzLXRvYy1lbmQ6IC0tPlxuIikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1
Y2ggdGVtcGxhdGUgdHlwZTogJWMiIGNoYXIpKSkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4g
bWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlICgmb3B0aW9uYWwgaW50ZXJhY3RpdmUgYmVnIGVuZCkK
KyAgIkdlbmVyYXRlIHRhYmxlcyBvZiBjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitg
bWFya2Rvd24tdHMtbW9kZScgdXNlcyBNYXJrZG93biBIVE1MIGNvbW1lbnQgZWxlbWVudHMgdG8g
aWRlbnRpZnkgdGFibGUKK29mIGNvbnRlbnRzIChha2EgdG9jKSBpbnNlcnRpb24gYm91bmRhcmll
cyBhbmQgdGhlIHBhcmFtZXRlcnMgZm9yIGVhY2gKK3RhYmxlLiAgRGVyaXZlIHRhYmxlIGNvbnRl
bnQgZnJvbSB0aGUgTWFya2Rvd24gZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQKK2J1ZmZlciB3aGlj
aCBhcmUgdXN1YWxseSBoZWFkaW5ncyBidXQgY2FuIGFsc28gYmUgbGlzdCBpdGVtcywgc2V0ZXh0
CitoZWFkZXJzLCBuYW1lZCBjb2RlIGJsb2Nrcy4KKworT3BlcmF0ZSBvbiB0aGUgYWN0aXZlIHJl
Z2lvbiBCRUcgdG8gRU5ELCBvdGhlcndpc2Ugb3BlcmF0ZSBvbiB0aGUKK2J1ZmZlciwgd2hpY2gg
bWF5IGJlIG5hcnJvd2VkLgorCitFYWNoIHRpbWUgeW91IHJ1biB0aGlzIGNvbW1hbmQsIGV4aXN0
aW5nIHRhYmxlcyBvZiBjb250ZW50cyBhcmUgY2xlYXJlZAorYW5kIHJlZnJlc2hlZCB3aXRoIG5l
dyBjb250ZW50LiAgU28gZG9uJ3QgcGxhY2UgdG9jIGVsZW1lbnRzIGFyb3VuZAoraW1wb3J0YW50
IHRleHQuCisKK1RoZSBidWZmZXIgY2FuIGhhdmUgb25lIG9yIG1vcmUgdG9jcy4gIEJ5IGRlZmF1
bHQsIHBvcHVsYXRlIGVhY2ggdG9jCit3aXRoIGVsZW1lbnRzIHRoYXQgYXBwZWFyIGluIHRoZSBi
dWZmZXIgYmVsb3cgdGhlIHRvYy4gIFRoZXJlZm9yZSwgdGhlCitlYXNpZXN0IHdheSB0byBpbnNl
cnQgYSBjb21wbGV0ZSB0YWJsZSBvZiBjb250ZW50cywgaXMgdG8gcHV0IHRoZSB0b2MKK3RlbXBs
YXRlIG5lYXIgdGhlIHRvcCBvZiB5b3VyIGJ1ZmZlci4KKworQSBiYXNpYyBlbXB0eSB0b2MgdGVt
cGxhdGUgbG9va3MgbGlrZSB0aGlzOgorCitIZWFkZXIgdGV4dCB5b3Ugd2FudCBoZXJlLgorCis8
IS0tIG1hcmtkb3duLXRzLXRvYzogLS0+CitDb250ZW50cyBpbnNlcnRlZCBiZXR3ZWVuIHRoZXNl
IGVsZW1lbnRzLgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworRm9vdGVyIHRleHQg
eW91IHdhbnQgaGVyZS4KKworVXNlIHRoZSBjb21tYW5kIGBtYXJrZG93bi10cy10b2MtaW5zZXJ0
LXRlbXBsYXRlJyB0byBpbnNlcnQgYSB0YWJsZSBvZgorY29udGVudHMgdGVtcGxhdGUuCisKK1Vz
ZSB0aGUgY29tbWFuZCBgbWFya2Rvd24tdHMtdG9jLWNsZWFyJyB0byBjbGVhciB0YWJsZSBjb250
ZW50LCBhbmQgdGhlCitjb21tYW5kIGBtYXJrZG93bi10cy10b2MtY2xlYXItYW5kLXJlbW92ZScg
dG8gYm90aCBjbGVhciBhbmQgcmVtb3ZlCit0YWJsZSBjb250ZW50IGFuZCB0ZW1wbGF0ZXMuCisK
K0J5IGRlZmF1bHQsIGEgdG9jIGluY2x1ZGVzIGhlYWRlcnMgYXQgYWxsIGxldmVscyBiZWxvdyB0
aGUgdG9jIHdoaWNoIGFyZQorcHJlc2VudGVkIGFzIGxpc3QgaXRlbXMgd2l0aCBsaW5rcy4KKwor
VG8gaWdub3JlIGEgTWFya2Rvd24gZWxlbWVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBpbmNs
dWRlZCBpbiB0aGUKK3RvYywgYWRkIGEgdG9jIGlnbm9yZSBlbGVtZW50OgorCisjIyBJZ25vcmUg
TWUgPCEtLSBtYXJrZG93bi10cy10b2MtaWdub3JlOiAtLT4KKworVGhlIHN0YXJ0aW5nIHRvYyBl
bGVtZW50IGFjY2VwdHMgcGFyYW1ldGVycyBpbiB0aGUgc3ludGF4IG9mIEVtYWNzIGZpbGUKK3Zh
cmlhYmxlcy4KKworRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgdGFibGUg
b2YgY29udGVudHMgbGltaXRlZCB0bworaGVhZGluZ3MgdHdvIGxldmVscyBkZWVwOgorCis8IS0t
IG1hcmtkb3duLXRzLXRvYzogLSotIG1heC1kZXB0aDogMjsgLSotIC0tPgorPCEtLSBtYXJrZG93
bi10cy10b2MtZW5kOiAtLT4KKworT3IgdXNlIG9ubHkgaGVhZGluZ3MgdHdvIGFuZCB0aHJlZSBs
ZXZlbHMgZGVlcC4KKworPCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSBtaW4tZGVwdGg6IDI7IG1h
eC1kZXB0aDogMzsgLSotIC0tPgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworVGhl
c2UgYXJlIHRoZSBzdXBwb3J0ZWQgcGFyYW1ldGVycyB3aGljaCBhcmUgb3B0aW9uYWwuICBUaGV5
IGVhY2ggbGlzdAordGhlaXIgZGVmYXVsdHMuCisKKyAgbWluLWRlcHRoOiAxICAgICAgICAgIDsg
YW4gaW50ZWdlcgorICBtYXgtZGVwdGg6IG5pbCAgICAgICAgOyBhbiBpbnRlZ2VyCisgIGNhbmRp
ZGF0ZXM6IChoZWFkaW5nKSA7IGEgbGlzdAorICBmcm9tOiBiZWxvdyAgICAgICAgICAgOyBhIHN5
bWJvbAorICBzdHlsZTogaXRlbSAgICAgICAgICAgOyBhIHN5bWJvbAorICBpbmRlbnQ6IDEgICAg
ICAgICAgICAgOyBhIG51bWJlcgorICBuby1saW5rOiBuaWwgICAgICAgICAgOyBhIGJvb2xlYW4K
KyAgcmVsYXRpdmUtZGVwdGg6IG5pbCAgIDsgYSBib29sZWFuCisgIGlnbm9yZTogbmlsICAgICAg
ICAgICA7IGEgYm9vbGVhbgorCitgbWluLWRlcHRoJyBhbmQgYG1heC1kZXB0aCcgYm90aCBkZWZh
dWx0IHRvIHVzaW5nIGFsbCBjYW5kaWRhdGVzIGF0CitldmVyeSBsZXZlbC4gIFVzZSBgbWluLWRl
cHRoJyB0byBpZ25vcmUgbGV2ZWwgMSBoZWFkaW5ncyBsaWtlIFwiIworSGVhZGluZ1wiLCBieSB1
c2luZyAyLiAgVXNlIGBtYXgtZGVwdGgnIHRvIGNvbnRyb2wgaG93IGRlZXAgaW50byB0aGUKK2hl
YWRpbmcgaGllcmFyY2h5IHlvdSBuZWVkIHlvdXIgdG9jIHRvIGdvLiAgVXNlIDMgdG8gc3RvcCBh
dCBsZXZlbCB0aHJlZQoraGVhZGluZ3MuCisKK0hlYWRpbmdzIGRpY3RhdGUgdGhlIGxldmVsIG9m
IHRoZWlyIGNoaWxkcmVuIGV2ZW4gaWYgaGVhZGluZ3MgYXJlCitleGNsdWRlZCBmcm9tIGNhbmRp
ZGF0ZXMuICBPdGhlciBlbGVtZW50IHR5cGVzIGluaGVyaXQgdGhlIGxldmVsIG9mCit0aGVpciBw
cmVjZWRpbmcgaGVhZGluZy4KKworYGNhbmRpZGF0ZXMnIGlzIGEgbGlzdCBhbmQgY2FuIGNvbnRh
aW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgTWFya2Rvd24KK2VsZW1lbnQgc2hvcnRjdXQgbmFtZXMu
ICBZb3UgY2FuIG1peCBoaWdoZXItbGV2ZWwgZ3JvdXBpbmcgc3ltYm9scyBhbmQKK2xvd2VyIGxl
dmVsIHN5bWJvbHMuCisKKyAgYWxsIChpbmNsdWRlcyBldmVyeXRoaW5nKQorICBoZWFkaW5nIChp
bmNsdWRlcyB0aGUgYmVsb3cpCisgICAgaDEgaDIgaDMgaDQgaDUgaDYKKyAgc2V0ZXh0IChpbmNs
dWRlcyB0aGUgYmVsb3cpCisgICAgc2gxIHNoMgorICBpdGVtIChpbmNsdWRlcyB0aGUgYmVsb3cp
CisgICAgbWludXMgcGx1cyBzdGFyCisgIG51bWJlcmVkLWl0ZW0gKGluY2x1ZGVzIHRoZSBiZWxv
dykKKyAgICBkb3QgcGFyZW4KKyAgY29kZSAobmFtZWQgY29kZSBibG9ja3MpCisKK2Bmcm9tJyBj
b250cm9scyB0aGUgZGlyZWN0aW9uIGFuZCBzY29wZSBmcm9tIHdoaWNoIGNhbmRpZGF0ZXMgYXJl
CitzZWxlY3RlZC4gIFR5cGljYWxseSwgYSB0b2MgaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBidWZmZXIgYW5kCitgZnJvbScgaXMgYGJlbG93JyB0byBjYXB0dXJlIGVudHJ5IGNhbmRp
ZGF0ZXMgYWZ0ZXIgdGhlIHRvYy4gIElmIHlvdSBzZXQKK2Bmcm9tJyB0byBgYWJvdmUnLCBjYW5k
aWRhdGVzIGFyZSBzZWxlY3RlZCBmcm9tIGFib3ZlIHRoZSB0b2MuICBVc2UKK2BhbGwnIHRvIGNh
cHR1cmUgZXZlcnkgZW50cnkgY2FuZGlkYXRlLiAgVGhpcyBpcyB1c2VmdWwgdG8gY3JlYXRlIGEK
K2NvbXBsZXRlIHRvYyBhdCB0aGUgZW5kIG9mIHlvdXIgYnVmZmVyLgorCitUaGUgYHN0eWxlJyBw
YXJhbWV0ZXIgY2FuIGJlIG5pbCwgYGl0ZW0nLCBgbnVtYmVyJyBvciBgbnVtYmVyLicuICBVbmRl
cgorbmlsLCBlbnRyaWVzIGhhdmUgbm8gZGVjb3JhdGlvbnMuICBJZiBgaXRlbScsIGVudHJpZXMg
YXJlIHByZWZpeGVkIHdpdGgKK1wiLVwiLiAgSWYgYGJ1bGxldCcsIHByZWZpeCB3aXRoIFwiKlwi
LiAgSWYgYG51bWJlcicsIG51bWVyaWMgcHJlZml4ZXMKK2FyZSBnZW5lcmF0ZWQsIGZvciBleGFt
cGxlIDEsIDEuMSwgMiwgMi4xLCAyLjEuMSwgMi4xLjIuICBVc2UgYG51bWJlci4nCit0byBhZGQg
YSBwZXJpb2QgdG8gZWFjaCBlbnRyeSdzIG51bWJlci4KKworYGluZGVudCcgaXMgYW4gaW50ZWdl
ciBiZXR3ZWVuIDAgYW5kIDEwLiAgMCBtZWFucyBub3RoaW5nIHNob3VsZCBiZQoraW5kZW50ZWQu
ICBPdGhlcndpc2UsIGVhY2ggZW50cnkgaXMgaW5kZW50ZWQgYnkgdGhlIG51bWJlciBvZiBzcGFj
ZXMgb2YKK2l0cyBNYXJrZG93biBsZXZlbCBtdWx0aXBsaWVkIGJ5IHRoaXMgdmFsdWUuICBDYW5k
aWRhdGVzIHRoYXQgaGF2ZSBubworbmF0aXZlIGxldmVsIHN1Y2ggYXMgbGlzdCBpdGVtcyBpbmhl
cml0IHRoZSBiYXNlIGluZGVudGF0aW9uIGxldmVsIG9mCitpdHMgcHJlY2VkaW5nIGhlYWRlci4g
IExpc3QgaXRlbSBoaWVyYXJjaGllcyBhbmQgY29kZSBibG9ja3MgaW5kZW50Cit1bmRlciB0aGF0
IGJhc2UuCisKK1NldCBgbm8tbGluaycgdG8gdCBpZiB5b3UgZG8gbm90IHdhbnQgeW91ciBlbnRy
aWVzIHRvIGhhdmUgaGVhZGVyIGxpbmtzLgorQnkgZGVmYXVsdCwgZWFjaCBlbnRyeSBkZXJpdmVk
IGZyb20gYSBoZWFkaW5nIGlzIHByZXNlbnRlZCBhcyBhIGxpbmsgdG8KK2l0cyBzb3VyY2UgaGVh
ZGluZy4gIE5PVEU6IFRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSBgc2V0ZXh0JywgYGl0ZW0n
LAorYG51bWJlcmVkLWl0ZW0nLCBgY29kZScgZG8gbm90IHN1cHBvcnQgbGlua3MuCisKK1VzZSBg
cmVsYXRpdmUtZGVwdGgnIHRvIGNyZWF0ZSBhIHRvYyB1bmRlcm5lYXRoIGEgaGVhZGluZywgbGlt
aXRpbmcgdGhlCit0b2MgdG8gaGVhZGluZyBkZXB0aHMgdW5kZXJuZWF0aCB0aGUgcHJlY2VkaW5n
IGhlYWRlciBhbmQgc3BlY2lmeSB0aGUKK2xldmVscyByZWxhdGl2ZSB0byB0aGF0IGhlYWRlci4g
IE1vcmUgY29uY3JldGVseSwgaWYgdGhlIHByZWNlZGluZworaGVhZGVyIGlzIGEgbGV2ZWwgMSBc
IiNcIiBoZWFkZXIsIGBtaW4tZGVwdGgnIDEgYW5kIGBtYXgtZGVwdGgnIDIgd2lsbAorYmUgaW50
ZXJwcmV0ZWQgdG8gYmUgMiBhbmQgMy4gIElmIHlvdSBkZW1vdGUgdGhlIGhlYWRlciB0byBsZXZl
bCAyCitcIiMjXCIgdGhleSB3aWxsIGJlIGludGVycHJldGVkIGFzIDMgYW5kIDQuICBUaGlzIGlz
IHVzZWZ1bCB0byBhdm9pZAorZnVzc2luZyB3aXRoIHRvYyBjb25maWd1cmF0aW9ucyB1bmRlciBo
ZWFkZXJzIHdoZW4geW91IGNoYW5nZSB0aGVpcgorbGV2ZWxzLgorCitGb3IgZXhhbXBsZToKKwor
PCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSByZWxhdGl2ZS1kZXB0aDogdDsgbWluLWRlcHRoOiAx
OyBtYXgtZGVwdGg6IDI7IC0qLSAtLT4KKzwhLS0gbWFya2Rvd24tdHMtdG9jLWVuZDogLS0+CisK
K0ZpbmFsbHksIGlmIGBpZ25vcmUnIGlzIHQsIHlvdSBjYW4ga2VlcCBhIHRvYyBlbGVtZW50IGlu
IHBsYWNlIGFuZCBza2lwCitpdC4KKworSU5URVJBQ1RJVkUgd2lsbCBiZSBub24tbmlsIGlmIHRo
aXMgY29tbWFuZCB3YXMgaW52b2tlZCBpbnRlcmFjdGl2ZWx5LgorCitTZWUgYG1hcmtkb3duLXRz
LXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUnIHRvIGNvbmZpZ3VyZSB3YXJuaW5ncyBhYm91dAor
dGFibGVzIG5vdCBiZWluZyBwcm9jZXNzZWQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4i
CisgIChpbnRlcmFjdGl2ZSAicFxuUiIpCisgIDs7IE5PVEU6IElmIHBhcmFtZXRlcnMgb3IgdGhl
aXIgZGVmYXVsdHMgY2hhbmdlLCBiZSBzdXJlIHRvIG1pcnJvcgorICA7OyB0aGVtIGluIGBtYXJr
ZG93bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlJy4KKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5v
dC1tb2RlICdtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUpCisgIChzZXRxIGJlZyAob3IgYmVnIChw
b2ludC1taW4pKSkKKyAgKHNldHEgZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNz
IChlcSBiZWcgZW5kKQorICAgIDs7IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlv
bnMuCisgICAgKHNldHEgYmVnIChpZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVn
KSBiZWcpKQorICAgIChzZXRxIGVuZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9u
IGVuZCkgZW5kKSkKKyAgICA7OyBOT1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0
byBhdm9pZCB0cmVlc2l0ZXIgY3Jhc2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9u
CisgICAgICAobGV0ICgodG9jcyAobWFya2Rvd24tdHMtLXRvY3MgYmVnIGVuZCkpKQorICAgICAg
ICAodW5sZXNzIHRvY3MKKyAgICAgICAgICAoaWYgKGFuZCBpbnRlcmFjdGl2ZQorICAgICAgICAg
ICAgICAgICAgIChlcSAnaW5zZXJ0LXRlbXBsYXRlIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13
YXJuLWlmLW5vbmUpKQorICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtdG9jLWluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAgICAgICA7OyBJZiB0aGUg
dXNlciBkaWRuJ3QgcXVpdCB0aGUgcHJvbXB0LCBhIHRlbXBsYXRlIG1heSBoYXZlCisgICAgICAg
ICAgICAgICAgOzsgYmVlbiBhZGRlZCwgc28gcmVzY2FuIHRoZSBidWZmZXIuCisgICAgICAgICAg
ICAgICAgKHNldHEgdG9jcyAobWFya2Rvd24tdHMtLXRvY3MpKSkKKyAgICAgICAgICAgICh3aGVu
IChlcSAnbm8tdGFibGVzIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUpCisg
ICAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlCisgICAgICAgICAg
ICAgICAgICAgICA6d2FybmluZworICAgICAgICAgICAgICAgICAgICAgIk5vIHRhYmxlcyBvZiBj
b250ZW50cyBmb3VuZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUg
KGN1cnJlbnQtYnVmZmVyKSkpKSkpCisgICAgICAgIChtYXJrZG93bi10cy0tdG9jcy1zYW5pdHkt
Y2hlY2sgdG9jcykKKworICAgICAgICA7OyBTdHJhdGVneSBpcyBwcm9jZXNzIG9uZSB0b2MgYXQg
YSB0aW1lIGZyb20gdGhlIHRvcCB0byB0aGUKKyAgICAgICAgOzsgYm90dG9tIG9mIHRoZSByYW5n
ZSBCRUcgRU5ELiAgU3Vic2VxdWVudCB0b2MgYW5kIGVudHJ5CisgICAgICAgIDs7IGNhbmRpZGF0
ZSBub2RlIHBvc2l0aW9ucyBjaGFuZ2UgYXMgd2UgdXBkYXRlIGVhY2ggdG9jIHRleHQgc28KKyAg
ICAgICAgOzsgd2UgaGF2ZSB0byByZXRyaWV2ZSB0aGVtIGZyZXNoIGZyb20gdGhlIGVuZCBvZiB0
aGUgbW9zdCByZWNlbnQKKyAgICAgICAgOzsgdG9jLgorICAgICAgICAobGV0ICgodG9jcykKKyAg
ICAgICAgICAgICAgKG51bS10b2NzLXByb2Nlc3NlZCAwKQorICAgICAgICAgICAgICAodG9jKQor
ICAgICAgICAgICAgICAodG9jLWVuZCkKKyAgICAgICAgICAgICAgKHRvYy1zaXplKQorICAgICAg
ICAgICAgICA7OyBUaGVzZSBhcmUgYWRqdXN0ZWQgYnkgdGhlIHNpemUgb2YgaW5zZXJ0ZWQgdGV4
dCBlYWNoIHBhc3MuCisgICAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgICAg
KGVuZC1wb3MgZW5kKQorICAgICAgICAgICAgICAoc291cmNlLWJ1ZmZlciAoY3VycmVudC1idWZm
ZXIpKSkKKyAgICAgICAgICA7OyBGaW5kIGVhY2ggIm1hcmtkb3duLXRzLXRvYyIgaW4gc3VjY2Vz
c2lvbiBzdGFydGluZyBhdCB0aGUgZW5kCisgICAgICAgICAgOzsgb2YgZWFjaCBwcmV2aW91cyBv
bmUgd2UgZmluZCB3aXRoaW4gdGhlIHJlcXVlc3RlZCByZWdpb24uCisgICAgICAgICAgKHdoaWxl
IChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHRv
Y3MgKG1hcmtkb3duLXRzLS10b2NzIGJlZy1wb3MgZW5kLXBvcykpKQorICAgICAgICAgICAgKHNl
dHEgdG9jIChjYXIgdG9jcykpCisgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAwKQorCisgICAg
ICAgICAgICAod2hlbiAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciB0b2MpKQorICAgICAg
ICAgICAgICA7OyBBZnRlciBzYW5pdHkgY2hlY2tpbmcsIHdlIGtub3cgdGhlIHNlY29uZCBlbGVt
ZW50IGlzIGEKKyAgICAgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAgICAgKHNldHEg
dG9jLWVuZCAobnRoIDEgdG9jcykpCisgICAgICAgICAgICAgIChsZXQqICgodG9jLW5vZGUgKGFs
aXN0LWdldCAnbm9kZSB0b2MpKQorICAgICAgICAgICAgICAgICAgICAgKHRvYy12YXJzIChhbGlz
dC1nZXQgJ3ZhcnMgdG9jKSkKKyAgICAgICAgICAgICAgICAgICAgICh0b2MtaWdub3JlIChhbGlz
dC1nZXQgJ2lnbm9yZSB0b2MtdmFycykpKQorICAgICAgICAgICAgICAgICh1bmxlc3MgdG9jLWln
bm9yZQorICAgICAgICAgICAgICAgICAgOzsgQnVpbGQgdGhlIHRvYyBvbmUgY2FuZGlkYXRlIGF0
IGEgdGltZSwgdHJhY2tpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGluZGVudGF0aW9uIGFuZCBj
cmVhdGluZyBsaW5rcyBpZiBuZWVkZWQuCisgICAgICAgICAgICAgICAgICAobGV0KiAoKHRvYy1l
bmQtbm9kZSAoYWxpc3QtZ2V0ICdub2RlIHRvYy1lbmQpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgIChyZWctYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1ub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVnLWVuZCAodHJlZXNpdC1ub2RlLXN0YXJ0IHRvYy1lbmQtbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1oYW5kbGVzIChtYXJrZG93bi10cy0tdG9jLWV4
cGFuZC1jYW5kaWRhdGUtaGFuZGxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG9yIChjZHItc2FmZSAoYXNzcSAnY2FuZGlkYXRlcyB0b2MtdmFycykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRpbmcpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBOb3cgYWRkIGhlYWRpbmdzIHRvIGFsd2F5cyByZXRyaWV2ZSBh
bmQgZGVyaXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbGV2ZWxzIGV2ZW4gaWYgdGhl
eSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgdG9jLgorICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWVkLWhhbmRsZXMgKGNvcHktdHJlZSB0b2MtaGFuZGxlcykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKF8gKGRvbGlzdCAoZWx0IChhbGlzdC1nZXQgJ2hlYWRpbmcgbWFya2Rvd24tdHMtLXRv
Yy1oYW5kbGVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1wdXNobmV3IGVs
dCBzZWVkLWhhbmRsZXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLWZyb20gKG9y
IChjZHItc2FmZSAoYXNzcSAnZnJvbSB0b2MtdmFycykpICdiZWxvdykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRvYy1zdHlsZSAob3IgKGNkci1zYWZlIChhc3NxICdzdHlsZSB0b2MtdmFy
cykpICdpdGVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLW5vLWxpbmsgKGFsaXN0
LWdldCAnbm8tbGluayB0b2MtdmFycykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1p
bmRlbnQgKG1pbiAxMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1heCAwIChvciAoY2RyLXNhZmUgKGFzc3EgJ2luZGVudCB0b2MtdmFycykpIDEpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRvYy1taW4tZGVwdGggKG1heCAxCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtaW4t
ZGVwdGggdG9jLXZhcnMpKSAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1tYXgt
ZGVwdGggKG1heCB0b2MtbWluLWRlcHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtYXgtZGVwdGggdG9jLXZhcnMpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3QtcG9z
aXRpdmUtZml4bnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1k
ZXB0aCAoY2RyLXNhZmUgKGFzc3EgJ3JlbGF0aXZlLWRlcHRoIHRvYy12YXJzKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRvYy1jYW5kaWRhdGVzIChtYXJrZG93bi10cy0tdG9jLWNvbGxl
Y3QtY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9jLW5vZGUgdG9jLWVuZC1ub2RlIHNlZWQtaGFuZGxlcyB0b2MtZnJvbSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1oZWFkaW5nLWRlcHRoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxKyAob3IgKHNlcS1wb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKCJhdHhfaDFfbWFya2VyIiAiYXR4X2gyX21hcmtlciIgImF0eF9oM19t
YXJrZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0eF9oNF9tYXJr
ZXIiICJhdHhfaDVfbWFya2VyIiAiYXR4X2g2X21hcmtlciIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRvYy1ub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhdHhfaGVhZGluZyIgJ2JhY2t3YXJkKSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZXF1YWwpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLTEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2x1Zy10by1w
b3MgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkcykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHBvcy10by1zbHVnCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChodCAobWFrZS1o
YXNoLXRhYmxlIDpzaXplIChoYXNoLXRhYmxlLWNvdW50IHNsdWctdG8tcG9zKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ2VxdWFs
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGhhc2ggKGxhbWJkYSAoayB2KSAo
cHV0aGFzaCB2IGsgaHQpKSBzbHVnLXRvLXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBodCkpKQorCisgICAgICAgICAgICAgICAgICAgICh3aXRoLXdvcmstYnVmZmVyCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydCAiPCEtLSBOT1RFOiBtYXJrZG93bi10cy10b2MgZ2VuZXJh
dGVkIHRleHQgc2VjdGlvbiBtYXkgYmUgb3ZlcndyaXR0ZW4uIC0tPlxuIikKKyAgICAgICAgICAg
ICAgICAgICAgICAobGV0ICgoaGFuZGxlKSAoaGFuZGxlLWNsYXNzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmRlbnQg
MCkgKGxldmVsIDEpIChsZXZlbC1wcmV2IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgSGVhZGluZyBsZXZlbCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaXRlbXMgdW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7OyBpdC4gIElmIHRoZXJlIGFyZSBubyBoZWFkaW5ncywg
aXQgd2lsbCByZW1haW4gMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV2ZWwtaGVh
ZGluZyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBmb3Igbm9uIGhl
YWRpbmdzIHVuZGVyIGhlYWRpbmdzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudW1i
ZXItc3RhY2spKQorCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBDYW5kaWRhdGVzIHNob3Vs
ZCBiZSBpbiBidWZmZXIgb3JkZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChj
YW5kaWRhdGUgdG9jLWNhbmRpZGF0ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg
KChzbHVnLXBvcykgKHRleHQpIChsaW5rLXRhcmdldCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxldmVsLWFkaiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBoYW5kbGUgKGNhciBjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlLWNsYXNzIChhbGlzdC1nZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2Vz
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBub2RlIChjZHIgY2FuZGlkYXRl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBzbHVnLXBvcyBuaWwpCisKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTdHJpcCB0cmFpbGluZyBuZXdsaW5lcy4gIEFk
ZCB0aGVtIGNvbnNpc3RlbnRseSBiZWxvdy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2V0cSB0ZXh0IChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZSBub2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlICduby1w
cm9wZXJ0eSkpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZSBu
b2RlIHR5cGUgbG9naWMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlIGhhbmRs
ZS1jbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdoZWFkaW5nCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHNlcS1wb3NpdGlvbiAnKGgxIGgyIGgz
IGg0IGg1IGg2KSBoYW5kbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZXRxIHNsdWctcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCBub2RlICJh
dHhfaGVhZGluZyIgJ2JhY2t3YXJkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBsZXZlbCAoc2V0cSBsZXZlbC1oZWFkaW5nICgxKyB4KSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgdGV4dCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCdzZXRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoeCAoc2VxLXBvc2l0aW9uICcoc2gxIHNoMikgaGFuZGxlKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbCAoMSsgeCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgbmlsKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKG9yICdpdGVtICdudW1iZXJlZC1pdGVtKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXRxIGxldmVsIGxldmVsLWhlYWRpbmcpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtYWRqIChtYXJrZG93bi10cy0tdG9jLWxp
c3QtaXRlbS1kZXB0aCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBpbmRlbnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCdjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5oZXJp
dCB0aGUgYW1iaWVudCBsZXZlbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBsZXZlbC1hZGogMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBpbmRl
bnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDs7IEZpbHRlciBkZXNpcmVkIGhhbmRsZXMgYW5kIGxldmVscy4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiAoYW5kIChtZW1xIGhhbmRsZSB0b2MtaGFuZGxlcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSBsZXZlbCAoKyB0b2MtbWluLWRl
cHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIHRvYy1yZWxhdGl2ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b2MtcmVsYXRpdmUtaGVhZGluZy1kZXB0aCAwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gbGV2ZWwgKCsgdG9jLW1h
eC1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpZiB0b2MtcmVsYXRpdmUtZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9jLXJlbGF0aXZlLWhlYWRpbmctZGVwdGggMCkp
KSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgQ3JlYXRlIHRoZSBlbnRyeSB3
aXRoIGluZGVudCwgaXRlbS9udW1iZXIgcHJlZml4LCBsaW5rLgorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBDb3JuZXIgY2FzZTogaW5pdGlhbCBsZXZlbCBoaWdoZXIgdGhhbiAx
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPiBsZXZlbCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgbGV2ZWwtcHJldiAw
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwgMSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChub3QgdG9jLW5vLWxpbmspIGxp
bmstdGFyZ2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTYW5pdGl6ZSB0
aGUgaWQgdG8gY29uZm9ybSB0byBDU1MgaWRlbnQgc3ludGF4LgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2V0cSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChmb3JtYXQgIlslc10oIyVzKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGlmLWxldCogKChzbHVnIChnZXRoYXNoIHNsdWctcG9zIHBvcy10by1zbHVn
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs
dWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5j
YWxsIG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLXRhcmdldCkpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyAoKiAoMS0gKG1h
eCBpbmRlbnQgMSkpIHRvYy1pbmRlbnQpID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBjYXNlIHRvYy1zdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgnaXRlbSAiLSAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgnYnVsbGV0ICIqICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChvciAnbnVtYmVyICdudW1iZXIuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgobGV2ZWwgKCsgbGV2ZWwgbGV2ZWwtYWRqKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChvciAobm90IG51
bWJlci1zdGFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGxldmVsIChjYWFyIG51bWJlci1zdGFjaykpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBgKCxsZXZlbCAuIDApIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChhbmQgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKDwgbGV2ZWwgKGNhYXIgbnVtYmVyLXN0YWNrKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGlsZSAo
YW5kIG51bWJlci1zdGFjaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoPCBsZXZlbCAoY2FhciBudW1iZXItc3RhY2spKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9wIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh1bmxlc3MgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggYCgsbGV2ZWwgLiAwKSBudW1iZXItc3RhY2sp
KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0Y2RyIChj
YXIgbnVtYmVyLXN0YWNrKSAoMSsgKGNkYXIgbnVtYmVyLXN0YWNrKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChzKSAobiAobGVuZ3RoIG51bWJlci1z
dGFjaykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEt
bWFwLWluZGV4ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoZWx0IGlkeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChmb3JtYXQgIiVkIiAoY2RyIGVsdCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgKDErIGlkeCkgbikg
IiIgIi4iKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmV2ZXJzZSBudW1iZXItc3RhY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb25jYXQgcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRvYy1zdHlsZSAnbnVtYmVyLikgIi4iKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgIikpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfICIiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGQgYSBoYXJkIGxpbmUgYnJlYWsuICBCYWNrc2xhc2gKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc2VlbXMgbGVzcyB3ZWxsIHN1cHBv
cnRlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByZW5kZXJl
cnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAy
ID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtcHJldiBsZXZlbCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAoYnVmZmVyLXNpemUpKQorICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJjZS1idWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIHJlZy1iZWcg
cmVnLWVuZCB0ZW1wLWJ1ZmZlcikpKSkpCisgICAgICAgICAgICAgICAgICAoc2V0cSBudW0tdG9j
cy1wcm9jZXNzZWQgKDErIG51bS10b2NzLXByb2Nlc3NlZCkpKSkpCisgICAgICAgICAgICA7OyBT
dGFydCB0aGUgbmV4dCBwYXNzIGFmdGVyIHRoaXMgdG9jLWVuZC4gIEFkanVzdCBmb3IgdGhlCisg
ICAgICAgICAgICA7OyBpbnNlcnRlZCB0ZXh0IHNpemUuCisgICAgICAgICAgICAoc2V0cSBiZWct
cG9zICgrIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKSB0b2Mtc2l6ZSkpCisgICAgICAgICAgICAo
c2V0cSBlbmQtcG9zIChtaW4gKHBvaW50LW1heCkgKCsgZW5kLXBvcyB0b2Mtc2l6ZSkpKSkKKyAg
ICAgICAgICAod2hlbiAoYW5kIChlcSBudW0tdG9jcy1wcm9jZXNzZWQgMCkKKyAgICAgICAgICAg
ICAgICAgICAgIChlcSAnbm8tYWN0aXZlLXRhYmxlcyBtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUt
d2Fybi1pZi1ub25lKSkKKyAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVy
YXRlCisgICAgICAgICAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAiTm8g
dGFibGVzIG9mIGNvbnRlbnRzIGdlbmVyYXRlZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAg
KGJ1ZmZlci1uYW1lIChjdXJyZW50LWJ1ZmZlcikpKSkpKSkpKQorCisocHJvdmlkZSAnbWFya2Rv
d24tdHMtbW9kZS14KQorOzs7IG1hcmtkb3duLXRzLW1vZGUteC5lbCBlbmRzIGhlcmUKZGlmZiAt
LWdpdCBhL2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUuZWwgYi9saXNwL3RleHRtb2Rl
cy9tYXJrZG93bi10cy1tb2RlLmVsCmluZGV4IDY1N2Q2YmM0NjZkLi41NWNiNzFhYTVlMyAxMDA2
NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbAorKysgYi9saXNwL3Rl
eHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCkBAIC0xLDExICsxLDE0IEBACi07OzsgbWFya2Rv
d24tdHMtbW9kZS5lbCAtLS0gdHJlZSBzaXR0ZXIgc3VwcG9ydCBmb3IgTWFya2Rvd24gIC0qLSBs
ZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwgLS0tIHRyZWUg
c2l0dGVyIHN1cHBvcnQgZm9yIE1hcmtkb3duIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQog
CiA7OyBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KIAotOzsgQXV0aG9yICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRv
QGdtYWlsLmNvbT4KLTs7IE1haW50YWluZXIgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwu
anVsaWF0b0BnbWFpbC5jb20+Ci07OyBDcmVhdGVkICAgIDogQXByaWwgMjAyNAotOzsgS2V5d29y
ZHMgICA6IG1hcmtkb3duIG1kIGxhbmd1YWdlcyB0cmVlLXNpdHRlcgorOzsgQXV0aG9yICAgICAg
ICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KKzs7
ICAgICAgICAgICAgICAgICAgOiBTdMOpcGhhbmUgTWFya3MgPHNoaXBtaW50c0BnbWFpbC5jb20+
Cis7OyBNYWludGFpbmVyICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlh
dG9AZ21haWwuY29tPgorOzsgQ3JlYXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNp
b24gICAgICAgICAgOiAxLjAKKzs7IFBhY2thZ2UtUmVxdWlyZXMgOiAoKGVtYWNzICIzMS4xIikp
Cis7OyBLZXl3b3JkcyAgICAgICAgIDogbWFya2Rvd24gbWQgdGV4dCBlZGl0IGxhbmd1YWdlcyB0
cmVlLXNpdHRlcgogCiA7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTIy
LDEzOCArMjUsNzM4IEBACiA7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJ
ZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi07OzsgVHJlZS1z
aXR0ZXIgbGFuZ3VhZ2UgdmVyc2lvbnMKKzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IFRyZWUtc2l0
dGVyIExhbmd1YWdlIFZlcnNpb25zCiA7OwogOzsgbWFya2Rvd24tdHMtbW9kZSBoYXMgYmVlbiB0
ZXN0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGdyYW1tYXJzIGFuZCB2ZXJzaW9uOgogOzsgLSB0cmVl
LXNpdHRlci1tYXJrZG93bjogdjAuNC4xCiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGlu
ZTogdjAuNC4xCiA7OwotOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHRpbiBtb2RlcyB3
b3JrIHdpdGggbGF0ZXN0IGdyYW1tYXIKLTs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdy
YW1tYXIgaGFzIGEgZ29vZCBjaGFuY2UgdG8gd29yayB0b28uCi07OyBTZW5kIHVzIGEgYnVnIHJl
cG9ydCBpZiBpdCBkb2Vzbid0LgotCi07OzsgQ29tbWVudGFyeToKKzs7IFdlIHRyeSBvdXIgYmVz
dCB0byBtYWtlIGJ1aWx0LWluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1hcgorOzsgdmVy
c2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5jZSB0byB3b3Jr
LiAgU2VuZAorOzsgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCis7OworOzsgQmlkaXJl
Y3Rpb25hbCBUZXh0IENvbnNpZGVyYXRpb25zCis7OworOzsgVGV4dCB3aXRoIG1hcmt1cCBtYXkg
bmVlZCBhbiBleHRyYSBuZXdsaW5lIGJlZm9yZSBiaWRpcmVjdGlvbmFsIHRleHQKKzs7IGZvciBp
dCB0byBzaG93IGNvcnJlY3RseS4gIFRoaXMgaXMgYSBsaW1pdGF0aW9uIGluIHRoZSBFbWFjcyBk
aXNwbGF5Cis7OyBlbmdpbmUuCis7OworOzsgQ29kZSBCbG9jayBMYW5ndWFnZSBNb2RlIENvbnNp
ZGVyYXRpb25zCis7OworOzsgRmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMgYXJlIGRl
cml2ZWQgZnJvbSB0aGUgdGFibGUKKzs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJyBh
bmQgaGV1cmlzdGljcyBhZGRpbmcgIi10cy1tb2RlIiBhbmQKKzs7ICItbW9kZSIgdG8gdGhlIGxh
bmd1YWdlIG5hbWUuICBJZiB5b3VyIGxhbmd1YWdlJ3MgbW9kZSBpcyBub3QKKzs7IHByb3Blcmx5
IHJlY29nbml6ZWQsIGFkZCBpdCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycsIHdo
aWNoCis7OyBzZWUuCis7OworOzsgRWFjaCBsYW5ndWFnZSdzIG1ham9yIG1vZGUgaXMgZW5hYmxl
ZCBvbmNlIHBlciBgbWFya2Rvd24tdHMtbW9kZScKKzs7IGJ1ZmZlciBpbiBhIHRlbXBvcmFyeSBi
dWZmZXIgdG8gZXh0cmFjdCBpdHMgZGVmYXVsdCBmb250LWxvY2sgYW5kCis7OyB0cmVlLXNpdHRl
ciBzZXR0aW5ncy4gIEluIGNvbnZlbnRpb25hbCBub24tdHJlZXNpdCBjb2RlIGJsb2NrcywgdGhl
Cis7OyBtYWpvciBtb2RlIGlzIGVuYWJsZWQgZWFjaCB0aW1lIHRoZSBibG9jayBpcyBmb250aWZp
ZWQuCis7OworOzsgTk9URTogTWFqb3IgbW9kZSBob29rcyBhcmUgbm90IHJ1biBhbmQgZm9udC1s
b2NrLCB0cmVlc2l0LCBpbmRlbnQsCis7OyBjb21tZW50IHJlY29nbml0aW9uLCBldGMuIGN1c3Rv
bWl6YXRpb25zIHRoYXQgeW91IG1pZ2h0IGhhdmUgaW4geW91cgorOzsgaG9va3MgYXJlIG5vdCBh
cHBsaWVkLiAgQXMgYSByZXN1bHQsIHlvdXIgY29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBk
aWZmZXJlbnQgaW4gYG1hcmtkb3duLXRzLW1vZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbWFqb3Ig
bW9kZQorOzsgYnVmZmVycy4gIE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBl
YWNoIG1vZGUgaG9vayBhbmQKKzs7IGF2b2lkcyBwb3RlbnRpYWwgcmVjdXJzaXZlIHRyZWVzaXQg
Y2FsbGJhY2sgaXNzdWVzLgorOzsKKzs7OzsgQ29kZSBCbG9jayBDb21tYW5kcworOzsKKzs7IFNv
bWUgY29tbW9uIGNvbW1hbmRzIHdpbGwgb3BlcmF0ZSB3aXRoaW4gYSBjb2RlIGJsb2NrIGFuZCBp
biBpdHMKKzs7IG1vZGUuICBUaGVzZSBvcGVyYXRlIGluIGFuIGluZGlyZWN0IGJ1ZmZlciBhbmQg
c29tZSBjb21tYW5kcyBtYXkKKzs7IG9wZXJhdGUgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdG8gdGhl
IHNhbWUgY29tbWFuZHMgaW52b2tlZCBpbiBhIG5hdGl2ZQorOzsgbW9kZSBidWZmZXIuICBgaW5k
ZW50LWZvci10YWItY29tbWFuZCcgbWF5IGludm9rZQorOzsgYGNvbXBsZXRpb24tYXQtcG9pbnQn
IHVuZGVyIHRoZSBjb3ZlcnMgYW5kIG1heSByZXR1cm4gcmVzdWx0cyBmcm9tCis7OyB0aGUgc3Vy
cm91bmRpbmcgTWFya2Rvd24gYnVmZmVyIGluc3RlYWQgb2YgdGhlIGNvZGUgYmxvY2sncyBjb250
ZXh0LgorOzsgWW91IGNhbiBpbnZva2UgYGNvbXBsZXRpb24tYXQtcG9pbnQnIGRpcmVjdGx5IGJ5
IHVzaW5nIGl0cyBrZXkKKzs7IGJpbmRpbmcsIGBDLU0taWAuCis7OworOzs7OyBQaXBlIFRhYmxl
cworOzsKKzs7IFRoZXNlIGFyZSBhIEdpdEh1YiBGbGF2b3JlZCBNYXJrZG93biAoR0ZNKSBleHRl
bnNpb24gYW5kIGFyZSBhIGRlCis7OyBmYWN0byBzdGFuZGFyZCBnaXZlbiB0aGVpciBwb3B1bGFy
aXR5IGFuZCBpbXBsZW1lbnRhdGlvbnMgYWNyb3NzCis7OyBwcm9kdWN0cy4gIFRoZXkgbWlnaHQg
YXMgd2VsbCBiZSBmb2xkZWQgaW50byB0aGUgQ29tbW9uTWFyayBzdGFuZGFyZC4KKzs7Cis7OyBB
IHBpcGUgdGFibGUgaXMgYSByZWN0YW5nbGUgb2YgdGV4dCBzdXJyb3VuZGVkIHRvIHRoZSBlYXN0
IGFuZCB3ZXN0Cis7OyBieSBwaXBlIHN5bWJvbHMgYW5kIHdoZXJlIHBpcGVzIHNlcGFyYXRlIGNv
bHVtbnMuICBJdCBoYXMgYSBoZWFkZXIKKzs7IHJvdyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBo
ZWFkZXIgYWxpZ25tZW50IHJvdywgYm90aCBvZiB3aGljaCBtdXN0Cis7OyBjb250YWluIHRoZSBz
YW1lIG51bWJlciBvZiBjZWxscy4gIEJvZHkgcm93cyBhcmUgb3B0aW9uYWwuICBBIHRhYmxlCis7
OyBlbmRzIHdpdGggYSBibGFuayBsaW5lIG9yIGF0IHRoZSBzdGFydCBvZiBhIG5ldyBNYXJrZG93
biBibG9jaworOzsgZWxlbWVudC4KKzs7Cis7OyBUaGUgaGVhZGVyIGFsaWdubWVudCByb3cgY29s
dW1uIG11c3QgaGF2ZSBhIG1pbmltdW0gb2YgdGhyZWUgaHlwaGVucworOzsgd2hpY2ggaW5kaWNh
dGVzIGRlZmF1bHQgYWxpZ25tZW50IChpLmUuLCB3aGF0ZXZlciBhIHJlbmRlcmVyCis7OyBjaG9v
c2VzKS4gIFRvIGluZGljYXRlIGxlZnQgYWxpZ25tZW50LCBwcmVmaXggdGhlIGh5cGhlbiBzdHJp
bmcgd2l0aAorOzsgYSBjb2xvbiBsaWtlIHRoaXMgOi0tLS4gIEZvciBjZW50ZXIgYWxpZ25tZW50
LCBwcmVmaXggYW5kIHN1ZmZpeCB3aXRoCis7OyBjb2xvbnMgbGlrZSB0aGlzIDotLS06LiAgRm9y
IHJpZ2h0IGFsaWdubWVudCwgc3VmZml4IHdpdGggYSBjb2xvbgorOzsgbGlrZSB0aGlzIC0tLTou
Cis7OworOzsgRWFjaCB0YWJsZSBoZWFkZXIgb3IgYm9keSBjZWxsIGNhbiBjb250YWluIHRoZSB1
c3VhbCBNYXJrZG93biBpbmxpbmUKKzs7IHN0eWxlIGluZGljYXRvcnMuICBBIGNlbGwgY2Fubm90
IGNvbnRhaW4gYSBibG9jayBlbGVtZW50IHN1Y2ggYXMgYQorOzsgaGVhZGluZ3MsIHRoZW1hdGlj
IGJyZWFrcywgYmxvY2sgcXVvdGVzLCBmZW5jZWQgY29kZSBibG9ja3MuCis7OworOzsgVGFibGUg
Y2VsbHMgZG8gbm90IG5lZWQgdG8gYWxpZ24gdmlzdWFsbHk7IGkuZS4sIHRoZSBwaXBlIHN5bWJv
bHMgZG8KKzs7IG5vdCBuZWVkIHRvIGxpbmUgdXAgdmVydGljYWxseS4gIFRoZSB0cmVlLXNpdHRl
ciBwYXJzZXIgYW5kIHJlbmRlcmVycworOzsgZGV0ZWN0IGNlbGwgYm91bmRhcmllcyB1c2luZyBw
aXBlIHN5bWJvbHMsIG5vdCB0aGVpciByZWxhdGl2ZSBhbGlnbm1lbnQuCis7OworOzsgSWYgeW91
IHdhbnQgdG8gaW5jbHVkZSB3aGF0IGxvb2tzIGxpa2UgY29kZSwgeW91IGNhbiB1c2UgYmFja3Rp
Y2tzIHRvCis7OyB3cmFwIHN1Y2ggdGV4dCBhbGEgYHRoaXMgaXMgY29kZWAuICBUaGlzIG1vZGUg
d2lsbCBub3QgZm9udGlmeSBzdWNoCis7OyBjb2RlLgorOzsKKzs7IElmIHlvdSB3YW50IHRvIGlu
Y2x1ZGUgYSBwaXBlIHN5bWJvbCBpbiBhIGNlbGwsIGVzY2FwZSBpdCB0aHVzbHkgXHwuCis7Owor
OzsgVGVjaG5pY2FsbHksIGJvZHkgcm93cyBkbyBub3QgbmVlZCB0byBjb250YWluIHRoZSBzYW1l
IG51bWJlciBvZgorOzsgY2VsbHMgYXMgdGhlIGhlYWRlciBoYXMgY29sdW1ucyBhbmQgcm93cyBk
byBub3QgbmVlZCB0byBzaGFyZSB0aGUKKzs7IHNhbWUgbnVtYmVyIG9mIGNlbGxzIGFtb25nIHRo
ZW1zZWx2ZXMuICBOb3RlOiBNYW55IHJlbmRlcmVycyBnZXQKKzs7IGNvbmZ1c2VkIGlmIHRoZSB0
YWJsZSBpcyAicmFnZ2VkIiB3aXRoIGFuIHVuZXZlbiBudW1iZXIgb2YgY29sdW1ucworOzsgYW1v
bmcgcm93cy4gIFNvbWUgcmVuZGVyZXJzIHdpbGwgaW5zZXJ0IGVtcHR5IGNlbGxzIG9uIGEgcm93
IHRoYXQKKzs7IGNvbnRhaW5zIGZld2VyIGNlbGxzIHRoYW4gdGhlIGhlYWRlciBoYXMgY29sdW1u
cy4gIFNvbWUgZWxpZGUgY2VsbHMKKzs7IHRoYXQgZXhjZWVkIHRoZSBudW1iZXIgb2YgY29sdW1u
cyBpbiB0aGUgaGVhZGVyLgorOzsKKzs7OzsgUGlwZSBUYWJsZSBSZWNvbW1lbmRhdGlvbnMKKzs7
Cis7OyAtIEFsd2F5cyB1c2UgcGlwZSBzeW1ib2xzIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIGVh
Y2ggdGFibGUgbGluZS4KKzs7IC0gVXNlIGEgdW5pZm9ybSBudW1iZXIgb2YgY29sdW1ucyBzcGFu
bmluZyB0aGUgdGFibGUuCis7OyAtIElmIHlvdSBkZXRlY3QgYSBwYXJzaW5nIGVycm9yIHdoaWNo
IHByZXNlbnRzIGFzIGRpZmZlcmVudAorOzsgICBmb250aWZpY2F0aW9uIGFuZCB3aGljaCBpcyBv
ZnRlbiBjYXVzZWQgYnkgYW4gZW1wdHkgZmlyc3QgY2VsbCBvbiB0aGUKKzs7ICAgZmluYWwgcm93
LCB0cnkgcHV0dGluZyBzb21lIGNoYXJhY3RlcnMgaW4gdGhhdCBjZWxsLgorOzsgLSBSZW5kZXJl
cnMgb2Z0ZW4gZXhjbHVkZSBjZXJ0YWluIGVtcHR5IGNlbGxzIHN1Y2ggYXMgYW4gImVtcHR5IiBm
aW5hbAorOzsgICBjZWxsIGluIGEgdGFibGUuICBGb2xsb3cgdGhlIG5leHQgaXRlbSB0byBhdm9p
ZCB0aGlzLgorOzsgLSBJZiB5b3UgbmVlZCB0aGF0IGNlbGwgdG8gYXBwZWFyIGJsYW5rIGFuZCBh
cmUgY29udmVydGluZyB0byBIVE1MLAorOzsgICB0cnkgdXNpbmcgYSBub24tcHJpbnRpbmcgSFRN
TCBlbnRpdHksIHN1Y2ggYXMgYSBub24tYnJlYWtpbmcgc3BhY2UKKzs7ICAgIiZuYnNwOyIsIHdo
aWNoIHBhcnNlIGFzIGNvbmNyZXRlIGNoYXJhY3RlcnMgeWV0IHJlbmRlciBhcyBibGFuay4KKzs7
IC0gSFRNTCBjb21tZW50cyA8IS0tIC0tPiBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm9uLWJsYW5r
IGNoYXJhY3RlcgorOzsgICBzdHJpbmcgdGhhdCBkb2VzIG5vdCBnZXQgcmVuZGVyZWQuICBUaGVz
ZSBhcmUgY29uc2lkZXJlZCBjZWxsIHRleHQKKzs7ICAgYW5kIHdoZW4gcGxhY2VkIGF0IHRoZSBl
bmQgb2YgYSByb3csIHRoYXQgcm93J3MgbnVtYmVyIG9mIGNvbHVtbnMgaXMKKzs7ICAgaW5jcmVh
c2VkIGFuZCBtaWdodCBleGNlZWQgdGhlIG51bWJlciBvZiBoZWFkZXIgY29sdW1ucy4KKzs7IC0g
VGhlcmUgYXJlIHRyZWUtc2l0dGVyIHBhcnNlciBxdWlya3MuICBDb21tYW5kcyBzdWNoIGFzCis7
OyAgIGBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uJyBhbmQgYG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtY29sdW1uJworOzsgICBmb2xsb3cgdGhlIHBhcnNlciB0cmVlIGFuZCBjYW4gbGVh
ZCB0byB1bmV4cGVjdGVkIHJlc3VsdHMgc28gZm9sbG93Cis7OyAgIHRoZXNlIHJlY29tbWVuZGF0
aW9ucyBhbmQgdGFibGUgb3BlcmF0aW9ucyBzaG91bGQgYmUgYXMgZXhwZWN0ZWQuCis7OworOzs7
OyBUcmVlIFNpdHRlciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0
aGUgdW5kZXJseWluZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0
IGl0cyBidWlsZCB0aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0
YWxsZWQuICBUaGVyZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVs
eSBhZmZlY3QKKzs7IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQg
YXMgdGhlc2UgYnVncyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBU
aGUgTWFya2Rvd24gZ3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBj
aGlsZHJlbgorOzsgICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGgg
dGhlIGluc3BlY3RvciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0
cyBjb2RlIGJsb2NrcyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0
eXBlIDQgKGA8IScgZm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAg
YDwhRE9DVFlQRSBodG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNl
cXVlbnQKKzs7ICAgY29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBh
cyBhIHdvcmthcm91bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVy
LWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3Vw
ZXJzY3JpcHQgKGBedGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5v
dAorOzsgICBzdXBwb3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZs
YWcgZXhpc3RzIGZvcgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24g
RXh0cmEgc3ludGF4LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRl
cmVkIChudW1iZXJlZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRp
bmcKKzs7ICAgYSBgMS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3Qg
cHJvZHVjZSBhIG5lc3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0
cyBpdCBhcyBhIGZsYXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVu
dCBpdGVtJ3MgcGFyYWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRl
cmVkIChgLScsIGAqJywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9w
cm9tb3RlIG9mIG9yZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQu
Cis7OworOzsgLSBSZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1i
ZXItbGlzdCcpIG1heSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJk
IGlmIHRoZSBwYXJzZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBg
bGlzdCcgbm9kZXMsIG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBz
ZXBhcmF0ZSBsaXN0cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7
OworOzsgLSBFbXB0eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1h
eSBiZSBjbGFpbWVkIGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9m
IHRoYXQgYmxvY2ssIHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2Vw
YXJhdG9ycy4KIDs7Cis7OyAtIFBpcGUgdGFibGVzIGFyZSBpbmNvbnNpc3RlbnRseSBwYXJzZWQu
ICBXaGl0ZXNwYWNlIGlzIGNvcnJlY3RseQorOzsgICB0cmltbWVkIGF0IHRoZSBzdGFydCBvZiBh
IGNlbGwgY29udGVudCBidXQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcworOzsgICBpbmNvcnJlY3Rs
eSBpbmNsdWRlZC4gIEVtcHR5IGNlbGxzIGNhbiBjb250YWluIHVuZXZlbiAicmFnZ2VkIiByb3cK
Kzs7ICAgY29sdW1uIGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGNvbmZ1c2UgdGhlIHBhcnNlci4K
Kzs7Cis7OyAgIE1hcmtkb3duIHBpcGUgdGFibGVzIHdpdGggcGFyc2luZyBpc3N1ZXM6Cis7Owor
OzsgICB8Q29sdW1uIDF8Q29sdW1uIDJ8Q29sdW1uIDN8Cis7OyAgIHwtLS0tLS0tLXwtLS0tLS0t
LXwtLS0tLS0tLXwKKzs7ICAgfCAgICAgICAgfCAgICAgICAgfCAgICAgICAgfAorOzsgICB8ICAg
ICAgICB8ICAgICAgICB8ICAgICAgICB8IDwtLSBwYXJzZSBlcnJvcgorOzsKKzs7ICAgfENvbHVt
biAxfENvbHVtbiAyfENvbHVtbiAzfAorOzsgICB8LS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS18
Cis7OyAgIHwgICAgICAgIHwgICAgICAgIHwgICAgICAgIHwKKzs7ICAgfCB4eHggICAgfCAgICAg
ICAgfCAgICAgICAgfCA8LS0gcGFyc2VkIGNvcnJlY3RseQorOzsKKzs7ICAgfENvbHVtbiAxfENv
bHVtbiAyfCA8LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgfC0tLS0tLS0tfC0tLS0tLS0tfCA8
LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgICAgICAgICAgfCAgICAgICAgfCA8LS0gMSBjb2x1
bW4gaW5jb3JyZWN0Cis7OyAgICAgICAgICAgIHwgICAgICAgIHwgPC0tIHBhcnNlIGVycm9yCis7
OyAgIHwgICAgICAgIHwgICAgICAgIHwgPC0tIG5vdCBhIHJvdyBhZnRlciB0aGUgZXJyb3IsIGFi
b3ZlCis7OworOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFy
cy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjQxPgorOzsgICAgICAgPGh0dHBzOi8vZ2l0
aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMv
MjQyPgogCiA7OzsgQ29kZToKIAogKHJlcXVpcmUgJ3RyZWVzaXQpCiAocmVxdWlyZSAnc3Vici14
KQotKHJlcXVpcmUgJ291dGxpbmUpCiAocmVxdWlyZSAnc2VxKQorKHJlcXVpcmUgJ291dGxpbmUp
CisocmVxdWlyZSAnZ290by1hZGRyKQorKHJlcXVpcmUgJ3hyZWYpCisocmVxdWlyZSAnaWNvbnMp
CiAKLSh0cmVlc2l0LWRlY2xhcmUtdW5hdmFpbGFibGUtZnVuY3Rpb25zKQotCi0oYWRkLXRvLWxp
c3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duCi0gICAiaHR0
cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3du
IgotICAgOmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIK
LSAgIDpzb3VyY2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi9zcmMiKQotIHQpCi0oYWRkLXRv
LWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duLWlubGlu
ZQotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRl
ci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4
YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFya2Rvd24taW5saW5lL3Ny
YyIpCi0gdCkKKzs7OyBDdXN0b21pemF0aW9uczoKIAotOzs7IEhlbHBlciBmdW5jdGlvbnMKLQot
KGRlZnZhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgJygoImMrKyIg
LiBjcHApCi0gICAgKCJjIyIgLiBjLXNoYXJwKQotICAgICgic2giIC4gYmFzaCkpCi0gICJBbGlz
dCBtYXBwaW5nIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbmFtZXMgdG8gdHJlZS1zaXR0ZXIgbGFuZ3Vh
Z2VzLgotCi1LZXlzIHNob3VsZCBiZSBzdHJpbmdzLCBhbmQgdmFsdWVzIHNob3VsZCBiZSBsYW5n
dWFnZSBzeW1ib2xzLgotCi1Gb3IgZXhhbXBsZSwgXCJjKytcIiBpbgotCi0gICAgYGBgYysrCi0g
ICAgaW50IG1haW4oKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBgYGAKLQotbWFw
cyB0byB0cmVlLXNpdHRlciBsYW5ndWFnZSBgY3BwJy4iKQotCi0oZGVmdmFyIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwCi0gICcoKGJhc2ggLiBiYXNoLXRzLW1vZGUpCi0g
ICAgKGMgLiBjLXRzLW1vZGUpCi0gICAgKGMtc2hhcnAgLiBjc2hhcnAtdHMtbW9kZSkKLSAgICAo
Y21ha2UgLiBjbWFrZS10cy1tb2RlKQotICAgIChjcHAgLiBjKystdHMtbW9kZSkKLSAgICAoY3Nz
IC4gY3NzLXRzLW1vZGUpCi0gICAgKGRvY2tlcmZpbGUgLiBkb2NrZXJmaWxlLXRzLW1vZGUpCi0g
ICAgKGVsaXhpciAuIGVsaXhpci10cy1tb2RlKQotICAgIChnbyAuIGdvLXRzLW1vZGUpCi0gICAg
KGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCi0gICAgKGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkK
LSAgICAoaGVleCAuIGhlZXgtdHMtbW9kZSkKLSAgICAoaHRtbCAuIGh0bWwtdHMtbW9kZSkKLSAg
ICAoamF2YSAuIGphdmEtdHMtbW9kZSkKLSAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCi0g
ICAgKGpzb24gLiBqc29uLXRzLW1vZGUpCi0gICAgKGx1YSAuIGx1YS10cy1tb2RlKQotICAgIChw
aHAgLiBwaHAtdHMtbW9kZSkKLSAgICAocHl0aG9uIC4gcHl0aG9uLXRzLW1vZGUpCi0gICAgKHJ1
YnkgLiBydWJ5LXRzLW1vZGUpCi0gICAgKHJ1c3QgLiBydXN0LXRzLW1vZGUpCi0gICAgKHRvbWwg
LiB0b21sLXRzLW1vZGUpCi0gICAgKHRzeCAuIHRzeC10cy1tb2RlKQotICAgICh0eXBlc2NyaXB0
IC4gdHlwZXNjcmlwdC10cy1tb2RlKQotICAgICh5YW1sIC4geWFtbC10cy1tb2RlKSkKLSAgIkFu
IGFsaXN0IG9mIHN1cHBvcnRlZCBjb2RlIGJsb2NrIGxhbmd1YWdlcyBhbmQgdGhlaXIgbWFqb3Ig
bW9kZS4iKQorKGRlZmdyb3VwIG1hcmtkb3duLXRzIG5pbAorICAiTWFqb3IgbW9kZSBmb3Igdmll
d2luZyBhbmQgZWRpdGluZyBNYXJrZG93biBidWZmZXJzLiIKKyAgOnByZWZpeCAibWFya2Rvd24t
dHMtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5nCisgIDp2ZXJzaW9uICIzMS4x
IikKIAogKGRlZmN1c3RvbSBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCBuaWwKICAgIk5vbi1uaWwg
bWVhbnMgaGlkZSBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGlzIGJ1ZmZlci4iCiAg
IDp0eXBlICdib29sZWFuCisgIDpsb2NhbCB0CiAgIDpzYWZlICMnYm9vbGVhbnAKLSAgOmdyb3Vw
ICdtYXJrZG93bi10cykKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZWxsaXBzaXMgbmlsCisgICJUaGUgZWxsaXBz
aXMgdG8gdXNlIGluIGZvbGRlZCBoZWFkaW5ncy4KK1doZW4gbmlsLCB1c2UgdGhlIHN0YW5kYXJk
IHRocmVlIGRvdHMuICBXaGVuIGEgbm9uLWVtcHR5IHN0cmluZywKK3VzZSB0aGF0IHN0cmluZyBp
bnN0ZWFkLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJEZWZhdWx0ICguLi4pIiBu
aWwpCisgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiU3RyaW5nIiA6dmFsdWUgIiDijIQi
KSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZj
dXN0b20gbWFya2Rvd24tdHMtbWVudS1iYXItc2hvdyB0CisgICJOb24tbmlsIG1lYW5zIHNob3cg
dGhlIE1hcmtkb3duIG1lbnUgaW4gdGhlIG1lbnUgYmFyLiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAg
OnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20g
bWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nICdzaG93LWFsbAorICAiRGVmYXVsdCBoZWFkaW5n
IGZvbGRpbmcgbGV2ZWwuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFn
ICJTaG93IGV2ZXJ5dGhpbmciIHNob3ctYWxsKQorICAgICAgICAgIChjb25zdCA6dGFnICJGb2xk
IGV2ZXJ5dGhpbmcsIHNob3dpbmcgdG9wLWxldmVsIGhlYWRpbmdzIiBmb2xkLWFsbCkKKyAgICAg
ICAgICAoY29uc3QgOnRhZyAiRm9sZCBoZWFkaW5ncywgc2hvd2luZyBhbGwgaGVhZGluZyBsZXZl
bHMiIGZvbGQtaGVhZGluZ3MpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lv
biAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIG5pbAorICAi
Tm9uLW5pbCBtZWFucyBkaXNwbGF5IGlubGluZSBpbWFnZXMgYmVsb3cgaW1hZ2UgbGlua3MuIgor
ICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdwor
ICAiTWF4aW11bSB3aWR0aCBvZiBpbmxpbmUgaW1hZ2VzIGluIHBpeGVscy4KK1doZW4gYHdpbmRv
dycsIHVzZSB0aGUgd2luZG93IGJvZHkgd2lkdGguICBXaGVuIGEgbnVtYmVyLCB1c2UKK3RoYXQg
YXMgdGhlIG1heGltdW0gcGl4ZWwgd2lkdGguIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0
YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAgICAobmF0bnVtIDp0YWcg
IlBpeGVsIHdpZHRoIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQogCi07OzsgRmFjZXMKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUt
aW5saW5lLWltYWdlcyBuaWwKKyAgIkhvdyB0byBkaXNwbGF5IHJlbW90ZSBpbmxpbmUgaW1hZ2Vz
LgorV2hlbiBuaWwsIGRvIG5vdCBkaXNwbGF5IHJlbW90ZSBpbWFnZXMuICBXaGVuIGBkb3dubG9h
ZCcsIGZldGNoIHRoZQoraW1hZ2UgaW50byBhIHRlbXBvcmFyeSBidWZmZXIgYW5kIGRpc3BsYXkg
aXQuCisKK1JlbW90ZSBpbWFnZXMgYXJlIHNraXBwZWQgYnkgZGVmYXVsdCBmb3Igc2VjdXJpdHku
IgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiU2tpcCByZW1vdGUgaW1hZ2VzIiBuaWwp
CisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEb3dubG9hZCByZW1vdGUgaW1hZ2VzIiBk
b3dubG9hZCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3ggJygi4piRIiAuICIrIikK
KyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSBjaGVja2VkIHRhc2sg
bGlzdCBtYXJrZXIuCitWYWx1ZSBmb3JtczoKKyAtIGNvbnMgKFBSRUZFUlJFRCAuIEZBTExCQUNL
KTogUFJFRkVSUkVEIGlzIHVzZWQgaWYgaXRzIGZpcnN0IGNoYXJhY3RlcgorICAgcGFzc2VzIGBj
aGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0suCisgLSBzeW1ib2wgYGljb24n
OiBkZWZlciB0byB0aGUgaWNvbnMuZWwgaWNvbgorICAgYG1hcmtkb3duLXRzLWNoZWNrZWQtY2hl
Y2tib3gtaWNvbic7IGN1c3RvbWl6ZSB2aWEKKyAgIFxcW2N1c3RvbWl6ZS1pY29uXS4KKyAtIG5p
bDogZGlzcGxheSB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zIChzdHJp
bmcgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu
ZyA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAi
VXNlIGljb25zLmVsIGljb24iIGljb24pCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJE
aXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZpbmUtaWNvbiBtYXJrZG93bi10cy1jaGVja2VkLWNo
ZWNrYm94LWljb24gbmlsCisgICcoKGltYWdlICJjaGVja2VkLnN2ZyIgOmhlaWdodCBsaW5lIDph
c2NlbnQgY2VudGVyKQorICAgIChzeW1ib2wgIuKYkSIpCisgICAgKHRleHQgIisiKSkKKyAgIklj
b24gdXNlZCBmb3IgYSBjaGVja2VkIHRhc2sgbGlzdCBtYXJrZXIgd2hlbiBtYXJrdXAgaXMgaGlk
ZGVuLgorQ29uc3VsdGVkIG9ubHkgd2hlbiBgbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCcg
aXMgdGhlIHN5bWJvbAorYGljb24nLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9t
IG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCAnKCLimJAiIC4gIi0iKQorICAiSWYgbWFy
a3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1h
cmtlci4KK1ZhbHVlIGZvcm1zOgorIC0gY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVG
RVJSRUQgaXMgdXNlZCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyCisgICBwYXNzZXMgYGNoYXItZGlz
cGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSy4KKyAtIHN5bWJvbCBgaWNvbic6IGRlZmVy
IHRvIHRoZSBpY29ucy5lbCBpY29uCisgICBgbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94
LWljb24nOyBjdXN0b21pemUgdmlhCisgICBcXFtjdXN0b21pemUtaWNvbl0uCisgLSBuaWw6IGRp
c3BsYXkgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0
YWcgIlByZWZlcnJlZCAoR1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRh
ZyAiRmFsbGJhY2sgKFRUWSkiKSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIlVzZSBp
Y29ucy5lbCBpY29uIiBpY29uKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12
ZXJzaW9uICIxLjAiKQorCisoZGVmaW5lLWljb24gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNr
Ym94LWljb24gbmlsCisgICcoKGltYWdlICJ1bmNoZWNrZWQuc3ZnIiA6aGVpZ2h0IGxpbmUgOmFz
Y2VudCBjZW50ZXIpCisgICAgKHN5bWJvbCAi4piQIikKKyAgICAodGV4dCAiLSIpKQorICAiSWNv
biB1c2VkIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlciB3aGVuIG1hcmt1cCBpcyBo
aWRkZW4uCitDb25zdWx0ZWQgb25seSB3aGVuIGBtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2ti
b3gnIGlzIHRoZSBzeW1ib2wKK2BpY29uJy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1
c3RvbSBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIgJyg/4pSAIC4gPy0pCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgY2hhcmFjdGVyIGZvciB0aGVtYXRp
YyBicmVha3MuCitJdCBpcyByZXBlYXRlZCB0byBmaWxsIHRoZSB3aW5kb3cgd2lkdGguCitUaGUg
dmFsdWUgaXMgYSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZFUlJFRCBpcyB1c2Vk
IGlmIGl0IHBhc3NlcworYGNoYXItZGlzcGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSyBp
cyB1c2VkLgorbmlsIGRpc3BsYXlzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5cGUgJyhjaG9pY2Ug
KGNvbnMgKGNoYXJhY3RlciA6dGFnICJQcmVmZXJyZWQgKEdVSSkiKQorICAgICAgICAgICAgICAg
ICAgICAgICAoY2hhcmFjdGVyIDp0YWcgIkZhbGxiYWNrIChUVFkpIikpCisgICAgICAgICAgICAg
ICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNp
b24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCAnKD/CtiAuID98KQorICAiSWYgbWFya3Vw
IGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoYXJhY3RlciBmb3IgYSBiYWNrc2xhc2ggaGFyZCBs
aW5lIGJyZWFrLgorVGhlIHZhbHVlIGlzIGEgY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQ
UkVGRVJSRUQgaXMgdXNlZCBpZiBpdCBwYXNzZXMKK2BjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhl
cndpc2UgRkFMTEJBQ0sgaXMgdXNlZC4KK25pbCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0
eXBlICcoY2hvaWNlIChjb25zIChjaGFyYWN0ZXIgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGNoYXJhY3RlciA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5p
bCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVm
Y3VzdG9tIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZQorICAobGFtYmRhIChuKQor
ICAgIChsZXQqICgodmFsIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlCisgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpKQorICAg
ICAgICAgICAoY2ggKGlmIChjaGFyYWN0ZXJwIHZhbCkgdmFsID98KSkpCisgICAgICAobWFrZS1z
dHJpbmcgbiBjaCkpKQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBh
IHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsuCitUaGUgdmFsdWUgY2FuIGJlOgorLSBh
IGNoYXJhY3RlciBvciBzdHJpbmc6IHNob3duIG9uY2UgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFp
bGluZyBzcGFjZXMsCisgIHdpdGggbm8gcmVwZXRpdGlvbiAodGhlIHJlbWFpbmluZyBzcGFjZXMg
c3RheSBpbnZpc2libGUpOworLSBhIGZ1bmN0aW9uOiBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQs
IHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgc3BhY2VzLAorICBhbmQgbXVzdCByZXR1cm4gdGhlIHN0
cmluZyB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBydW47CistIG5pbDoga2VlcCB0aGUgcmF3
IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRhZyAiRGlzcGxheSBzcGVj
aWZpZWQgY2hhcmFjdGVyIChubyByZXBldGl0aW9uKSIpCisgICAgICAgICAgICAgICAgIChzdHJp
bmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIChubyByZXBldGl0aW9uKSIpCisgICAg
ICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlvbiBmcm9tIGNvdW50IHRvIGRpc3Bs
YXkgc3RyaW5nIikKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2lu
YWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2
ZWx5IHQKKyAgIk5vbi1uaWwgbWVhbnMgZm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnRzIHVzaW5n
IHRoZSBsYW5ndWFnZSdzIG1vZGUuCitXaGVuIG5vbi1uaWwsIGZlbmNlZCBjb2RlIGJsb2NrcyBh
cmUgaGlnaGxpZ2h0ZWQgd2l0aCBzeW50YXggb2YgdGhlCitlbWJlZGRlZCBsYW5ndWFnZSAodmlh
IHRyZWUtc2l0dGVyIGZvciBsYW5ndWFnZXMgd2l0aCBhIHRyZWUtc2l0dGVyCittb2RlLCBvciB2
aWEgY29udmVudGlvbmFsIGZvbnQtbG9jayBmb3IgdGhlIHJlc3QpLiAgV2hlbiBuaWwsIGNvZGUK
K2Jsb2NrcyBrZWVwIG9ubHkgdGhlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBiYWNrZ3JvdW5k
IGZhY2UuICBUb2dnbGluZworZm9yIHRoZSB0cy1lbWJlZGRlZCBwYXRoIHRha2VzIGVmZmVjdCBh
ZnRlciByZXN0YXJ0aW5nCitgbWFya2Rvd24tdHMtbW9kZScgaW4gdGhlIGJ1ZmZlci4iCisgIDp0
eXBlICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAi
KQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWVuYWJsZS1jb2RlLWJsb2NrLWNvbnRleHQtbW9k
ZSB0CisgICJOb24tbmlsIGF1dG9tYXRpY2FsbHkgZW5hYmxlcyBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1jb250ZXh0LW1vZGUnLgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIGZlbmNl
ZCBjb2RlIGJsb2NrLCB0aGlzIHJ1bnMKK2BpbmRlbnQtZm9yLXRhYi1jb21tYW5kJywgYG5ld2xp
bmUnLCBldC5hbC4sIGluIHRoZSBtb2RlIG9mIHRoZSBjb2RlCitibG9jay4iCisgIDp0eXBlICdi
b29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLWxpZ2h0ZXIg
IiBbY29kZV0iCisgICJNaW5vciBtb2RlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQt
bW9kZScgbGlnaHRlciBzdHJpbmcuCitTZXQgdG8gbmlsIHRvIGRpc2FibGUgdGhlIGxpZ2h0ZXIu
IgorICA6dHlwZSAnc3RyaW5nCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9u
ICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWluaGliaXQtY29kZS1ibG9jay1tb2Rl
LXdhcm5pbmdzIHQKKyAgIklmIG5vbi1uaWwsIGluaGliaXQgY29kZS1ibG9jayBtYWpvci1tb2Rl
IG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KK1NvbWUgZmVuY2VkIGNvZGUtYmxvY2sgbWFqb3IgbW9k
ZXMgcHJvZHVjZSBtZXNzYWdlcyBvciB3YXJuaW5ncyB3aGljaAoraGF2ZSBsaXR0bGUgcmVsZXZh
bmNlIHRvIE1hcmtkb3duIGJ1ZmZlcnMuICBVc2UgdGhpcyBvcHRpb24gdG8gaW5oaWJpdAordGhl
bS4gIE1ham9yIG1vZGVzIG1heSBiZSBlbmFibGVkIGZvciBmb250aWZpY2F0aW9uIG9yIGVkaXRp
bmcgaW4gdGhlCittb2RlJ3MgY29udGV4dC4iCisgIDp0eXBlICdib29sZWFuCisgIDp2ZXJzaW9u
ICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmdmFyIHdhcm5pbmctbWlu
aW11bS1sZXZlbCkKKworKGRlZm1hY3JvIG1hcmtkb3duLXRzLS1pbmhpYml0LW1lc3NhZ2VzLWFu
ZC13YXJuaW5ncyAodmFyICZyZXN0IGJvZHkpCisgICJFeGVjdXRlIEJPRFkgd2l0aCBtZXNzYWdl
cyBhbmQgd2FybmluZ3MgaW5oaWJpdGVkLgorVkFSIGlzIGEgdmFyaWFibGUncyBzeW1ib2w7IGUu
Zy4sCitcXD0nbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MuICBJ
ZiB0aGUgc3ltYm9sJ3MgdmFsdWUKK2lzIG5vbi1uaWwsIGRvIHdoYXQgaXQgc2F5cyBvbiB0aGUg
dGluLgorSW5oaWJpdCBtZXNzYWdlcyBpbiB0aGUgZWNobyBhcmVhLgorSW5oaWJpdCBtZXNzYWdl
cyBpbiB0aGUgbG9nLgorSW5oaWJpdCB3YXJuaW5ncyB3aXRoIGxldmVsIDwgOmVycm9yLiIKKyAg
KGRlY2xhcmUgKGluZGVudCBkZWZ1bikpCisgIGAobGV0KiAoKHZhbCAoc3ltYm9sLXZhbHVlICx2
YXIpKQorICAgICAgICAgIChpbmhpYml0LW1lc3NhZ2UgdmFsKQorICAgICAgICAgOzsgQWxzbyBp
bmhpYml0IGxvZ2dpbmcgdG8gKk1lc3NhZ2VzKgorICAgICAgICAgKG1lc3NhZ2UtbG9nLW1heCAo
aWYgdmFsIG5pbCBtZXNzYWdlLWxvZy1tYXgpKQorICAgICAgICAgKHdhcm5pbmctbWluaW11bS1s
ZXZlbAorICAgICAgICAgIChpZiB2YWwgOmVycm9yIHdhcm5pbmctbWluaW11bS1sZXZlbCkpKQor
ICAgICAocHJvZ24gLEBib2R5KSkpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1j
b2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9kZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMg
Y29kZSBibG9ja3MuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAi
VGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisgICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRh
bCBtb2RlIiBmdW5kYW1lbnRhbC1tb2RlKQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIg
bW9kZSBzeW1ib2wiCisgICAgICAgICAgICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdp
ZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChl
cSAnc3ltYm9sICh0eXBlLW9mIHZhbCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJyb3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkKSkpKSkKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMt
dGFibGUtZGVmYXVsdC1jb2x1bW4td2lkdGggNQorICAiQ29sdW1uIHdpZHRoIGZvciBuZXcgY29s
dW1ucy4KK1lvdSBtYXkgbWFrZSB0aGlzIHdpZGVyLCBidXQgc21hbGxlciB0aGFuIDUgaXMgbm90
IHJlY29tbWVuZGVkLiIKKyAgOnR5cGUgJ2ludGVnZXIKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpw
YWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZW5hYmxlLXRh
YmxlLW1vZGUgdAorICAiTm9uLW5pbCBhdXRvbWF0aWNhbGx5IGVuYWJsZXMgYG1hcmtkb3duLXRz
LXRhYmxlLW1vZGUnLgorSWYgbm9uLW5pbCwgZW5hYmxlIGBtYXJrZG93bi10cy10YWJsZS1tb2Rl
JyBpZiBgcG9pbnQnIGlzIGluIGEgTWFya2Rvd24KK3RhYmxlLiIKKyAgOnR5cGUgJ2Jvb2xlYW4K
KyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0
b20gbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiAnKGNlbGwtbmF2aWdhdGlvbiB0cmFuc3Bv
c2UpCisgICJBdXRvbWF0aWNhbGx5IGFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBkdXJpbmcgdGhl
c2Ugb3BlcmF0aW9ucy4KK0lmIHQsIHRyaWdnZXIgb24gYWxsIHN1cHBvcnRlZCBvcGVyYXRpb25z
LgorSWYgbmlsLCBkbyBub3QgYXV0byBhbGlnbi4KK090aGVyd2lzZSwgaXQgaXMgYSBsaXN0IG9m
IHN5bWJvbHMgcmVwcmVzZW50aW5nIHRhYmxlIG9wZXJhdGlvbnMuIgorICA6dHlwZSAnKGNob2lj
ZQorICAgICAgICAgIChjb25zdCA6dGFnICJEbyBub3QgYXV0b21hdGljYWxseSBhbGlnbiIgbmls
KQorICAgICAgICAgIChjb25zdCA6dGFnICJBbHdheXMgYXV0b21hdGljYWxseSBhbGlnbiIgdCkK
KyAgICAgICAgICAoc2V0CisgICAgICAgICAgIChjb25zdCA6dGFnICJDZWxsIG5hdmlnYXRpb24i
IGNlbGwtbmF2aWdhdGlvbikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIlRyYW5zcG9zZSIgdHJh
bnNwb3NlKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWZlYXR1cmVzICcoanVzdGlmeS1j
ZWxscykKKyAgIlVzZSB0aGVzZSBvcHRpb25hbCBmZWF0dXJlcyB3aGVuIGFsaWduaW5nIGEgdGFi
bGUuCitBbGlnbmluZyBhIHRhYmxlIGFsaWducyBlYWNoIGNvbHVtbiB0byB0aGUgd2lkdGggb2Yg
aXRzIHdpZGVzdCBjZWxsLiAgSXQKK2NhbiBhbHNvIGp1c3RpZnkgZWFjaCBjZWxsIGFjY29yZGlu
ZyB0byB0aGUgdGFibGUncyBkZWxpbWl0ZXIgbGluZSBsZWZ0LAorY2VudGVyLCBvciByaWdodC1o
YW5kIGp1c3RpZmljYXRpb24gcnVsZXMuCisKK0N1c3RvbWl6aW5nIHRoaXMgdXNlciBvcHRpb24g
aXMgbW9zdCB1c2VmdWwgd2hlbiB0aGUgdXNlciBvcHRpb24KK2BtYXJrZG93bi10cy10YWJsZS1h
dXRvLWFsaWduJyBpcyBlbmFibGVkIGFuZCB0byBhdm9pZCBoYXZpbmcgdG8gdXNlIGEKK3ByZWZp
eCBhcmd1bWVudCBiZWZvcmUgZXZlcnkgYXV0by1hbGlnbm1lbnQgb3BlcmF0aW9uLgorCitJZiB0
LCBlbmFibGUgYWxsIG9wdGlvbmFsIGFsaWdubWVudCBvcGVyYXRpb25zLgorSWYgbmlsLCBvcGVy
YXRpb25zIGFyZSBlbmFibGVkIGJleW9uZCBiYXNpYyBjb2x1bW4gYWxpZ25tZW50LgorT3RoZXJ3
aXNlLCBpdCBpcyBhIGxpc3Qgb2Ygc3ltYm9scy4iCisgIDp0eXBlICcoY2hvaWNlCisgICAgICAg
ICAgKGNvbnN0IDp0YWcgIk5vIG9wdGlvbmFsIGZlYXR1cmVzIiBuaWwpCisgICAgICAgICAgKGNv
bnN0IDp0YWcgIkFsbCBvcHRpb25hbCBmZWF0dXJlcyIgdCkKKyAgICAgICAgICAoc2V0CisgICAg
ICAgICAgIChjb25zdCA6dGFnICJKdXN0aWZ5IGNlbGxzIiBqdXN0aWZ5LWNlbGxzKSkpCisgIDp2
ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlciAiIFt0YWJsZV0iCisgICJNaW5vciBtb2Rl
IGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBsaWdodGVyIHN0cmluZy4KK1NldCB0byBuaWwg
dG8gZGlzYWJsZSB0aGUgbGlnaHRlci4iCisgIDp0eXBlICdzdHJpbmcKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKzs7OyBGYWNlczoKIAogKGRlZmdyb3Vw
IG1hcmtkb3duLXRzLWZhY2VzIG5pbAotICAiRmFjZXMgdXNlZCBpbiBNYXJrZG93biBUUyBNb2Rl
LiIKKyAgIkZhY2VzIHVzZWQgYnkgTWFya2Rvd24tVFMuIgogICA6Z3JvdXAgJ21hcmtkb3duLXRz
LWZhY2VzCiAgIDpncm91cCAnZmFjZXMpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWRlbGltaXRl
ciAnKCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKLSAgIkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJr
ZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgdGhlICMgYmVmb3JlIE1hcmtkb3duIGhlYWRp
bmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5n
LTEgJygodCAoOmluaGVyaXQgb3V0bGluZS0xKSkpCi0gICJGYWNlIGZvciBmaXJzdCBsZXZlbCBN
YXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rvd24gaGVh
ZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLXNldGV4
dC1oZWFkaW5nICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWhlYWRpbmctMSkpKQotICAiRmFj
ZSBmb3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1bmRlcmxpbmVkIGJ5ID09
PSBvciAtLS0pLiIpCisgICJGYWNlIGZvciBzZXRleHQgTWFya2Rvd24gaGVhZGluZ3MgKGhlYWRp
bmdzIHVuZGVybGluZWQgYnkgPT09IG9yIC0tLSkuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChk
ZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctMiAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTIpKSkK
LSAgIkZhY2UgZm9yIHNlY29uZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBm
b3Igc2Vjb25kIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQog
CiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTMgJygodCAoOmluaGVyaXQgb3V0bGluZS0z
KSkpCi0gICJGYWNlIGZvciB0aGlyZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFj
ZSBmb3IgdGhpcmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNCAnKCh0ICg6aW5oZXJpdCBvdXRsaW5l
LTQpKSkKLSAgIkZhY2UgZm9yIGZvdXJ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAi
RmFjZSBmb3IgZm91cnRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMx
LjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTUgJygodCAoOmluaGVyaXQgb3V0
bGluZS01KSkpCi0gICJGYWNlIGZvciBmaWZ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQor
ICAiRmFjZSBmb3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAi
MzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNiAnKCh0ICg6aW5oZXJpdCBv
dXRsaW5lLTYpKSkKLSAgIkZhY2UgZm9yIHNpeHRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIp
CisgICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9u
ICIzMS4xIikKIAotKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygodCAoOmluaGVy
aXQgc2hhZG93KSkpCi0gICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMgbGlrZSAtIGFu
ZCAqLiIpCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbXBoYXNpcyAnKCh0ICg6aW5oZXJpdCBpdGFs
aWMpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGVtcGhhc2lzIChpdGFsaWMpIHRleHQuIgorICA6
dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWJvbGQgJygodCAoOmluaGVy
aXQgYm9sZCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3Ryb25nIGVtcGhhc2lzIChib2xkKSB0
ZXh0LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1zdHJpa2V0
aHJvdWdoICcoKHQgKDpzdHJpa2UtdGhyb3VnaCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBz
dHJpa2V0aHJvdWdoIHRleHQuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtk
b3duLXRzLWJsb2NrLXF1b3RlICcoKHQgKDppbmhlcml0IGl0YWxpYykpKQotICAiRmFjZSBmb3Ig
TWFya2Rvd24gYmxvY2sgcXVvdGVzLiIpCisgICJGYWNlIGZvciBNYXJrZG93biBibG9jayBxdW90
ZXMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpbmsgJygo
dCAoOmluaGVyaXQgbGluaykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGluayB0ZXh0IGFuZCBp
bWFnZSBkZXNjcmlwdGlvbnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtk
b3duLXRzLWxpbmstZGVzdGluYXRpb24gJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1m
YWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaW5rIGRlc3RpbmF0aW9ucyAoVVJMcykuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNvZGUtc3BhbiAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IGlubGluZSBjb2RlIHNwYW5zLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrICcoKHQgKDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudC4KK0FsdGVyIHRoaXMgZmFjZSB0byBhZGQgYSBg
OmJhY2tncm91bmQnIGZvciBhIHZpc3VhbGx5IGRpc3RpbmN0Citjb2RlIGJsb2NrIHJlZ2lvbiwg
ZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jayBu
aWwgOmJhY2tncm91bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZh
Y2UgbWFya2Rvd24tdHMtaW4tY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2Ug
Zm9yIHdoZW4gcG9pbnQgaXMgaW4gYSBNYXJrZG93biBjb2RlIGJsb2NrLgorU2VlIGBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZScuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRk
IGEgYDpiYWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBl
LmcuOgorICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy1pbi1jb2RlLWJsb2Nr
IDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNl
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQg
bGlnaHQpKSAoOmJhY2tncm91bmQgImdyYXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3Jv
dW5kIGRhcmspKSAgKDpiYWNrZ3JvdW5kICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBm
b3IgTWFya2Rvd24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRk
ZW4uCitVc2VkIGluc3RlYWQgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwJworaXMgbm9uLW5pbC4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29kZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBm
b250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGluZGVudGVkIGNv
ZGUgYmxvY2tzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1o
dG1sLXRhZyAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1cC1mYWNlKSkpCisgICJG
YWNlIGZvciBpbmxpbmUgSFRNTCB0YWdzIGluIE1hcmtkb3duLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQt
bG9jay1kb2MtbWFya3VwLWZhY2UpKSkKKyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtk
b3duLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10aGVtYXRp
Yy1icmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBN
YXJrZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250YWwgcnVsZXMpLgorQ3VzdG9taXplIHRo
aXMgZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3IgYSBmdWxsLXdpZHRoIHZpc3VhbCBydWxl
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbnRpdHktcmVm
ZXJlbmNlICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIG5hbWVkIEhUTUwgZW50aXR5IHJlZmVyZW5jZXMgbGlrZSAmYW1wOyBhbmQgJmNvcHk7LiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJh
Y3Rlci1yZWZlcmVuY2UKKyAgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkp
CisgICJGYWNlIGZvciBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5k
ICYjeDQxOy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0
ZXggJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBM
YVRlWCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAoJC4uLiQgYW5kICQkLi4uJCQpLiIKKyAg
OnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIgJygo
dCAoOmluaGVyaXQgKGJvbGQgZm9udC1sb2NrLWRvYy1mYWNlKSkpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gcGlwZSB0YWJsZSBoZWFkZXIgY2VsbHMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhk
ZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkYXRhIGNlbGxzLiIKKyAgOnZlcnNpb24g
IjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHBp
cGUgdGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2VwYXJhdG9ycykuIgorICA6dmVyc2lvbiAi
MzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlICcoKHQgKDpleHRlbmQgdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gdGFibGUuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRkIGEgYDpi
YWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBlLmcuOgor
ICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy10YWJsZSBuaWwgOmJhY2tncm91
bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24t
dHMtaW4tdGFibGUgJygodCAoOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBgbWFy
a2Rvd24tdHMtaW4tdGFibGUtbW9kZScgd2hlbiBwb2ludCBpcyBpbiBhIHRhYmxlLgorQWx0ZXIg
dGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dyb3VuZCcgZm9yIGEgdmlzdWFsbHkgZGlzdGluY3Qg
dGFibGUKK3JlZ2lvbiwgZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24t
dHMtaW4tdGFibGUgbmlsIDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQgJygodCAoOmluaGVy
aXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpKQotICAiRmFjZSBmb3IgdGhlIGxhbmd1YWdlIGtl
eXdvcmQgZm9yIE1hcmtkb3duIGNvZGUgYmxvY2tzLiIpCisgICJGYWNlIGZvciB0aGUgbGFuZ3Vh
Z2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNoYWRv
dykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4iCisg
IDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFr
LWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisg
ICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFp
bGluZyBiYWNrc2xhc2guIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuCisgICcoKHQgKDppbmhlcml0IG91
dGxpbmUtNCA6d2VpZ2h0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIHRyYWlsaW5nLWJhY2tzbGFzaCBo
YXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgJygoKChi
YWNrZ3JvdW5kIGxpZ2h0KSkgKDpiYWNrZ3JvdW5kICJncmF5NzAiIDp3ZWlnaHQgYm9sZCkpCisg
ICAgKCgoYmFja2dyb3VuZCBkYXJrKSkgICg6YmFja2dyb3VuZCAiZ3JheTQwIiA6d2VpZ2h0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGhhcmQgbGluZSBicmVha3MgaW50cm9kdWNlZCBi
eSB0d28gdHJhaWxpbmcgc3BhY2VzLgorVGhlIHRyYWlsaW5nIHNwYWNlcyBhcmUgb3RoZXJ3aXNl
IGludmlzaWJsZSwgc28gdGhleSBhcmUgc2hvd24gYXMgYQorc2hhZG93LWNvbG9yZWQgYmxvY2su
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9s
ZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKLTs7OyBGb250LWxvY2sKKyhk
ZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtkb3du
LXRzLWxpc3QtbWFya2VyKSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFzayBs
aXN0IG1hcmtlcnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRz
LXRhc2stY2hlY2tlZCAnKCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1saXN0LW1hcmtlcikpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gY2hlY2tlZCB0YXNrIGxpc3QgbWFya2Vycy4iCisgIDp2ZXJz
aW9uICIzMS4xIikKKworKHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCisK
KyhhZGQtdG8tbGlzdAorICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rv
d24KKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0
ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0
OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCisg
dCkKKworKGFkZC10by1saXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CisgJyht
YXJrZG93bi1pbmxpbmUKKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1h
cnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFl
NzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtk
b3duLWlubGluZS9zcmMiKQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhkZWZ2YXIgbWFya2Rv
d24tdHMtLXNldC11cC1pbmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRvIG5vbi1uaWwgZm9y
IGlubGluZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKQorCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggYmFzaC10cy1tb2RlKQorICAgIChzaGVsbCBi
YXNoLXRzLW1vZGUpCisgICAgKCwoaW50ZXJuICJjIyIpIGNzaGFycC10cy1tb2RlKQorICAgIChj
cHAgYysrLXRzLW1vZGUpCisgICAgKGVsIGVtYWNzLWxpc3AtbW9kZSkKKyAgICAoZWxpc3AgZW1h
Y3MtbGlzcC1tb2RlKQorICAgIChnb2xhbmcgZ28tdHMtbW9kZSkKKyAgICAoZ29tb2QgZ28tbW9k
LXRzLW1vZGUpCisgICAgKGdvd29yayBnby13b3JrLXRzLW1vZGUpCisgICAgKGphdmFzY3JpcHQg
anMtdHMtbW9kZSkKKyAgICAobWQgbWFya2Rvd24tdHMtbW9kZSkKKyAgICAocHkgcHl0aG9uLXRz
LW1vZGUpCisgICAgKHJiIHJ1YnktdHMtbW9kZSkKKyAgICAocnMgcnVzdC10cy1tb2RlKQorICAg
ICh0ZXggbGF0ZXgtbW9kZSkKKyAgICAodHMgdHlwZXNjcmlwdC10cy1tb2RlKQorICAgICh5bWwg
eWFtbC10cy1tb2RlKSkKKyAgIkV4dHJhIG1hcHBpbmdzIGZyb20gY29kZSBibG9jayBsYW5ndWFn
ZSB0YWdzIHRvIG1ham9yIG1vZGVzLgorCitFbnRyaWVzIGhlcmUgYXJlIG9ubHkgbmVlZGVkIHdo
ZW4gdGhlIGxhbmd1YWdlIHRhZyBpbiBhIGZlbmNlZCBjb2RlCitibG9jayBkb2VzIE5PVCBtYXRj
aCB0aGUgY29udmVudGlvbmFsIG1vZGUgbmFtZSBkZXJpdmF0aW9uLCBlLmcuIHRoZQordXNlciB3
cml0ZXMgXFw9YFxcPWBcXD1gdHMgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWB0eXBlc2NyaXB0LCBv
cgorXFw9YFxcPWBcXD1gcHkgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWBweXRob24uICBGb3IgdGFn
cyB0aGF0IGFscmVhZHkKK3Jlc29sdmUgdmlhIHRoZSBzdGFuZGFyZCBcIi10cy1tb2RlXCIvXCIt
bW9kZVwiIGhldXJpc3RpY3MgdGhlcmUgaXMgbm8KK25lZWQgdG8gYWRkIGFuIGVudHJ5LgorCitU
aGUgYWxpc3QgaXMgb2YgdGhlIGZvcm0gKExBTkdVQUdFIE1BSk9SLU1PREUpLiBNQUpPUi1NT0RF
IGNhbiBiZSBhCit0cmVlLXNpdHRlciBvciBhIGNvbnZlbnRpb25hbCBtb2RlLgorCitJZiB5b3Ug
cHJlZmVyIGEgY29udmVudGlvbmFsIG1vZGUgb3ZlciBpdHMgdHJlZS1zaXR0ZXIgdmFyaWFudCwg
YWRkIG9yCityZXBsYWNlIHJlbGV2YW50IGVudHJpZXMuICBGb3IgZXhhbXBsZToKKworICAgIChh
ZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9Jyhw
eXRob24gcHl0aG9uLW1vZGUpKQorICAgIChzZXRmIChhbGlzdC1nZXQgXFw9J3B5IG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgXFw9JyhweXRob24tbW9kZSkpCisKK0Nv
ZGUgYmxvY2tzIGZvciB0aGF0IG5vbiB0cmVlLXNpdHRlciBtb2RlcyB3aWxsIGJlIGZvbnRpZmll
ZCB1c2luZyB0aGUKK21vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2NrIHJ1bGVzLiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMKKyAg
JyhtYXJrZG93bi10cy1tb2RlCisgICAgcGhwLXRzLW1vZGUpCisgICJUcmVhdCB0aGVzZSBjb2Rl
IGJsb2NrIHRyZWUtc2l0dGVyIG1vZGVzIGFzIGNvbnZlbnRpb25hbC4KK1NvbWUgbW9kZXMgdGhh
dCBlbWJlZCBtdWx0aXBsZSBgdHJlZXNpdCcgcGFyc2VycyBuZWVkIHRvIGJlIHRyZWF0ZWQgd2l0
aAorY29udmVudGlvbmFsIGZvbnQtbG9jay4gIGBtYXJrZG93bi10cy1tb2RlJyBpdHNlbGYgaXMg
b25lIG9mIHRoZW0uIikKKworOzs7IEZvbnQtbG9jazoKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWRlbGltaXRlciAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKICAgIkZv
bnRpZnkgZGVsaW1pdGVyIE5PREUgYW5kIG9wdGlvbmFsbHkgaGlkZSBpdHMgbWFya3VwLgpAQCAt
MTY4LDIzICs3NzEsODMzIEBAIG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRz
LS1tYXJrdXApKSkKIAorKGRlZnZhciB1cmwtbWFpbC1jb21tYW5kKSA7IHVybC91cmwtdmFycy5l
bAorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKGJlZyBlbmQgdXJsKQor
ICAiTWFrZSB0aGUgcmVnaW9uIGZyb20gQkVHIHRvIEVORCBhIGNsaWNrYWJsZSBidXR0b24gZm9y
IFVSTC4KK0ZvciBtYWlsdG86IFVSSXMsIHVzZSBgdXJsLW1haWwtY29tbWFuZCcuICBGb3Igb3Ro
ZXIgc2NoZW1lcworXChlLmcuLCBodHRwLCBmdHApLCBvcGVuIHdpdGggYGJyb3dzZS11cmwnLiAg
T3RoZXJ3aXNlLCB0cmVhdCBhcworYSByZWxhdGl2ZSBmaWxlIHBhdGggYW5kIG9wZW4gd2l0aCBg
ZmluZC1maWxlJy4KKworRG8gbm90IHBhc3MgYGZhY2UnIHRvIGBtYWtlLXRleHQtYnV0dG9uJzog
dGhlIGxpbmsgZmFjZSBpcyBhbHJlYWR5CithcHBsaWVkIGJ5IGBtYXJrZG93bi10cy0tZm9udGlm
eS1saW5rLW5vZGUnIHZpYQorYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJyAod2l0aCBg
Om92ZXJyaWRlIGFwcGVuZCcpLCBhbmQKK2BhZGQtdGV4dC1wcm9wZXJ0aWVzJyB3b3VsZCBvdGhl
cndpc2UgcmVwbGFjZSB0aGUgYXBwZW5kZWQgZmFjZQorbGlzdCB3aXRoIGEgc2luZ2xlIGBtYXJr
ZG93bi10cy1saW5rJywgY2xvYmJlcmluZyBhbiBlbmNsb3NpbmcKK2hlYWRpbmcgZmFjZS4iCisg
IDs7IE5PVEU6IFVSSSBzY2hlbWUgYW5kIGhvc3QgbmFtZSBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBw
ZXIgUkZDIDM5ODYKKyAgOzsgYW5kIFJGQyA3MjMwLgorICAobGV0ICgoY2FzZS1mb2xkLXNlYXJj
aCBuaWwpKQorICAgIChtYWtlLXRleHQtYnV0dG9uIGJlZyBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAnYWN0aW9uIChsYW1iZGEgKF9idXR0b24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1w
cmVmaXgtcCAiIyIgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy0tZm9sbG93LWZyYWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzdWJzdHJpbmcgdXJsIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoc3RyaW5nLW1hdGNoLXAgIlxcYG1haWx0bzoiIHVybCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZnVuY2FsbCB1cmwtbWFpbC1jb21tYW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgbWFpbHRvOiIgIiIg
dXJsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaC1w
ICJcXGBbYS16XSs6IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJy
b3dzZS11cmwgdXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IChmaW5k
LWZpbGUgdXJsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICdoZWxwLWVjaG8gdXJsKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIGRlc3RpbmF0aW9uIE5PREUg
YW5kIGhpZGUgaXQgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgJ21hcmtkb3duLXRzLWxpbmst
ZGVzdGluYXRpb24gb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAod2hlbiBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cAorICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUp
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2li
bGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0t
bGluay1yZWYtY2FjaGUgbmlsCisgICJDYWNoZWQgYWxpc3Qgb2YgKExBQkVMIC4gVVJMKSBmcm9t
IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorRWFjaCBlbnRyeSBpcyBhIGNvbnMgY2VsbCBt
YXBwaW5nIGEgZG93bmNhc2VkIGxhYmVsIHN0cmluZyB0byBpdHMKK2Rlc3RpbmF0aW9uIFVSTC4i
KQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNrIG5pbAor
ICAiVmFsdWUgb2YgYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyB3aGVuIHRoZSBjYWNoZSB3
YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucyAo
KQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBsaW5rIHJlZmVyZW5j
ZSBkZWZpbml0aW9ucy4KK0xBQkVMIGlzIGRvd25jYXNlZCBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBt
YXRjaGluZy4gIFJlc3VsdHMgYXJlCitjYWNoZWQgYW5kIHJlYnVpbHQgb25seSB3aGVuIHRoZSBi
dWZmZXIgY2hhbmdlcy4iCisgIChsZXQgKCh0aWNrIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGlj
aykpKQorICAgICh1bmxlc3MgKGVxIHRpY2sgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRp
Y2spCisgICAgICAobGV0KiAoKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rv
d24pKQorICAgICAgICAgICAgIChtYXRjaGVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgcm9vdAorICAgICAgICAgICAgICAgICAgICAgICAnKChsaW5rX3Jl
ZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2xhYmVs
KSBAbGFiZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtfZGVzdGluYXRpb24pIEBk
ZXN0KSkpKQorICAgICAgICAgICAgIGRlZnMpCisgICAgICAgICh3aGlsZSBtYXRjaGVzCisgICAg
ICAgICAgKGxldCogKChsYWJlbC1wYWlyIChwb3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAg
IChkZXN0LXBhaXIgKHBvcCBtYXRjaGVzKSkKKyAgICAgICAgICAgICAgICAgKGxibC10ZXh0IChz
dHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBsYWJlbC1wYWlyKSB0KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXFsiICJcXF0iKSkpCisgICAgICAg
ICAgICAocHVzaCAoY29ucyAoZG93bmNhc2UgbGJsLXRleHQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBkZXN0LXBhaXIpIHQpKQorICAgICAgICAgICAg
ICAgICAgZGVmcykpKQorICAgICAgICAoc2V0cSBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUg
KG5yZXZlcnNlIGRlZnMpCisgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNo
ZS10aWNrIHRpY2spKSkKKyAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLXJlc29sdmUtbGluay1yZWYgKGxhYmVsKQorICAiUmVzb2x2ZSBMQUJF
TCB0byBhIFVSTCB2aWEgbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMuCitMQUJFTCBzaG91bGQg
YmUgdGhlIHRleHQgd2l0aG91dCBicmFja2V0cy4gIE1hdGNoaW5nIGlzCitjYXNlLWluc2Vuc2l0
aXZlIHBlciBDb21tb25NYXJrIHNwZWMgc2VjdGlvbiA0LjcuIgorICAoYWxpc3QtZ2V0IChkb3du
Y2FzZSBsYWJlbCkgKG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucykKKyAgICAgICAg
ICAgICBuaWwgbmlsICMnZXF1YWwpKQorCis7OzsgRnJhZ21lbnQgbGlua3M6CisKKyhkZWZjb25z
dCBtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUKKyAgIltdWyFcIiMkJSYnKCkqKywu
Lzo7PD0+P0BcXF5ge3x9fl0iCisgICJQdW5jdHVhdGlvbiBzdHJpcHBlZCBieSBHaXRIdWIncyBn
aC1zbHVnZ2VyIGJlZm9yZSBoeXBoZW5hdGlvbi4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNs
dWctZ2l0aHViICh0ZXh0KQorICAiUmV0dXJuIHRoZSBHaXRIdWItZmxhdm9yIHNsdWcgZm9yIGhl
YWRpbmcgVEVYVC4KK01pcnJvcnMgdGhlIGdoLXNsdWdnZXIgYWxnb3JpdGhtOiBsb3dlcmNhc2Us
IHN0cmlwIGEgZml4ZWQKK3B1bmN0dWF0aW9uIHNldCwgcmVwbGFjZSBzcGFjZXMgd2l0aCBoeXBo
ZW5zLiIKKyAgKGxldCogKChsYyAoZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoc3RyaXBwZWQg
KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10
cy0tc2x1Zy1naXRodWItc3RyaXAtcmUgIiIgbGMpKSkKKyAgICAocmVwbGFjZS1yZWdleHAtaW4t
c3RyaW5nICJbWzpibGFuazpdXSIgIi0iIHN0cmlwcGVkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tc2x1Zy1wYW5kb2MgKHRleHQpCisgICJSZXR1cm4gdGhlIFBhbmRvYy1mbGF2b3IgYXV0by1p
ZCBzbHVnIGZvciBoZWFkaW5nIFRFWFQuCitNaXJyb3JzIFBhbmRvYydzIGFsZ29yaXRobTogZHJv
cCBldmVyeXRoaW5nIGJlZm9yZSB0aGUgZmlyc3QKK2xldHRlciwga2VlcCBhbHBoYW51bWVyaWNz
IGFuZCBgXy0uJywgY29sbGFwc2Ugd2hpdGVzcGFjZSBydW5zIHRvCitoeXBoZW5zLCBsb3dlcmNh
c2UuICBGYWxscyBiYWNrIHRvIFwic2VjdGlvblwiIGlmIGVtcHR5LiIKKyAgKGxldCogKChsYyAo
ZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoZnJvbS1sZXR0ZXIgKGlmIChzdHJpbmctbWF0Y2gg
IltbOmFscGhhOl1dIiBsYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBs
YyAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAg
ICAgICAgKGtlcHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICJb
Xls6YWxudW06XV8uXG5cdFs6Ymxhbms6XS1dIiAiIiBmcm9tLWxldHRlcikpCisgICAgICAgICAo
aHlwaGVuYXRlZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJbWzpibGFuazpdXHRcbl0rIiAi
LSIga2VwdCkpCisgICAgICAgICAodHJpbW1lZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICIt
K1xcJyIgIiIgaHlwaGVuYXRlZCkpKQorICAgIChpZiAoc3RyaW5nLWVtcHR5LXAgdHJpbW1lZCkg
InNlY3Rpb24iIHRyaW1tZWQpKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1leHBsaWNpdC1p
ZC1yZQorICAiWyBcdF0qe1sgXHRdKiNcXChbXn0gXHRdK1xcKVsgXHRdKn1bIFx0XSpcXCciCisg
ICJNYXRjaCBhIFBhbmRvYy1zdHlsZSB0cmFpbGluZyBgeyNpZH0nIG9uIGEgaGVhZGluZyBsaW5l
LgorQ2FwdHVyZSBncm91cCAxIGlzIHRoZSBleHBsaWNpdCBpZC4iKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgKHJhdykKKyAgIlNwbGl0IFJBVyBoZWFkaW5nIHRl
eHQgaW50byAoVklTSUJMRSAuIEVYUExJQ0lULUlEKS4KK0VYUExJQ0lULUlEIGlzIG5vbi1uaWwg
aWYgUkFXIGVuZHMgd2l0aCBhIFBhbmRvYy1zdHlsZSBgeyNpZH0nLAoraW4gd2hpY2ggY2FzZSBW
SVNJQkxFIGlzIFJBVyB3aXRoIHRoYXQgc3VmZml4IHJlbW92ZWQuIgorICAoaWYgKHN0cmluZy1t
YXRjaCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUgcmF3KQorICAgICAgKGNvbnMgKHN1YnN0
cmluZyByYXcgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgKG1hdGNoLXN0cmlu
ZyAxIHJhdykpCisgICAgKGNvbnMgcmF3IG5pbCkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3du
LXRzLS1oZWFkaW5nLWlkLWNhY2hlIG5pbAorICAiQ2FjaGVkIGhhc2ggdGFibGUgbWFwcGluZyBo
ZWFkaW5nIHNsdWcgc3RyaW5ncyB0byBidWZmZXIgcG9zaXRpb25zLgorRWFjaCB2YWx1ZSBpcyB0
aGUgYnVmZmVyIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2hpbmcKK2BhdHhfaGVh
ZGluZycgb3IgYHNldGV4dF9oZWFkaW5nJyBub2RlLiAgQnVpbHQgbGF6aWx5IGJ5CitgbWFya2Rv
d24tdHMtLWhlYWRpbmctaWRzJywgaW52YWxpZGF0ZWQgYnkgYnVmZmVyLXRpY2sgY2hhbmdlLiIp
CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayBuaWwK
KyAgIlZhbHVlIG9mIGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgaGVhZGlu
Zy1pZCBjYWNoZSB3YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1idWlsZC1oZWFk
aW5nLWlkcyAoKQorICAiV2FsayBhbGwgaGVhZGluZ3MgaW4gdGhlIGJ1ZmZlciBhbmQgcmV0dXJu
IGEgaGFzaCB0YWJsZS4KK1doaWNoIG1hcHMgZWFjaCBzbHVnIHRvIHRoZSBidWZmZXIgcG9zaXRp
b24gb2YgaXRzIGhlYWRpbmcuICBFYWNoCitoZWFkaW5nIGNvbnRyaWJ1dGVzIGl0cyBHaXRIdWIg
c2x1ZywgaXRzIFBhbmRvYyBzbHVnLCBhbmQgaXRzIGV4cGxpY2l0CitgeyNpZH0nIGlmIHByZXNl
bnQuICBCb3RoIHNsdWcgYWxnb3JpdGhtcyBhcmUgc3RvcmVkIGluIHRoZSBzYW1lIGJ1ZmZlcgor
YmVjYXVzZSBhIG1hcmtkb3duIGZpbGUgaXMgb2Z0ZW4gcHJldmlld2VkIGJ5IHNldmVyYWwgcmVu
ZGVyZXJzIChHaXRIdWIKK3dlYiBVSSwgUGFuZG9jLCBtZEJvb2ssIEh1Z28sIGFuZCBzbyBvbikg
YW5kIHRoZSBzYW1lIHNvdXJjZSBzaG91bGQKK3Jlc29sdmUgcmVnYXJkbGVzcyBvZiB3aGljaCBv
bmUgdGhlIGF1dGhvciB3cm90ZSB0aGUgbGluayBmb3IuICBGb3IgbW9zdAoraGVhZGluZ3MgdGhl
IHR3byBhbGdvcml0aG1zIHByb2R1Y2UgdGhlIHNhbWUgc2x1ZyBhbnl3YXkuCitEdXBsaWNhdGUg
c2x1Z3MgKHdpdGhpbiBvbmUgYWxnb3JpdGhtKSBhcmUgZGlzYW1iaWd1YXRlZCBieSBhcHBlbmRp
bmcKK2AtMScsIGAtMicsIGFuZCBzbyBvbiwgaW4gZG9jdW1lbnQgb3JkZXIsIG1hdGNoaW5nIEdp
dEh1YidzIGJlaGF2aW9yLgorV2hlbiB0d28gZGlzdGluY3QgaGVhZGluZ3Mgd291bGQgb3RoZXJ3
aXNlIHNoYXJlIGEgc2x1ZywgdGhlIGZpcnN0CitvY2N1cnJlbmNlIGluIGRvY3VtZW50IG9yZGVy
IHdpbnMuIgorICAobGV0ICgodGFibGUgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFsKSkK
KyAgICAgICAgOzsgUGVyLWFsZ29yaXRobSBkZWR1cGUgY291bnRlcnM6IGhvdyBtYW55IHRpbWVz
IHRoaXMgYmFzZSBzbHVnCisgICAgICAgIDs7IGhhcyBiZWVuIHNlZW4gc28gZmFyIGluIGRvY3Vt
ZW50IG9yZGVyLgorICAgICAgICAoZ2gtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydl
cXVhbCkpCisgICAgICAgIChwZC1jb3VudHMgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFs
KSkKKyAgICAgICAgKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pKSkK
KyAgICAoZG9saXN0IChjYXAgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAg
ICAgcm9vdAorICAgICAgICAgICAgICAgICAgJygoKGF0eF9oZWFkaW5nKSBAaCkKKyAgICAgICAg
ICAgICAgICAgICAgKChzZXRleHRfaGVhZGluZykgQGgpKSkpCisgICAgICAobGV0KiAoKG5vZGUg
KGNkciBjYXApKQorICAgICAgICAgICAgIChwb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgICAgICAocmF3IChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0
KSkpCisgICAgICAgICAgICAgOzsgU3RyaXAgdGhlIGxlYWRpbmcgbWFya2VyICgjIyMgb3IgPT09
PS8tLS0tKS4KKyAgICAgICAgICAgICA7OyBGb3IgYXR4LCBkcm9wIGxlYWRpbmcgIydzIGFuZCBm
b2xsb3dpbmcgc3BhY2UuCisgICAgICAgICAgICAgOzsgRm9yIHNldGV4dCwgZHJvcCB0aGUgdHJh
aWxpbmcgdW5kZXJsaW5lIGxpbmUuCisgICAgICAgICAgICAgKHRleHQgKGNvbmQKKyAgICAgICAg
ICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYCMrWyBcdF0qXFwoLio/XFwpWyBcdF0qIypb
IFx0XSpcXCciIHJhdykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcp
KQorICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFxgXFwoLio/XFwpXG5bPS1d
K1sgXHRdKlxcJyIgcmF3KQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIHJh
dykpCisgICAgICAgICAgICAgICAgICAgICh0IHJhdykpKQorICAgICAgICAgICAgIChzcGxpdCAo
bWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgdGV4dCkpCisgICAgICAgICAgICAgKHZp
c2libGUgKGNhciBzcGxpdCkpCisgICAgICAgICAgICAgKGV4cGxpY2l0IChjZHIgc3BsaXQpKSkK
KyAgICAgICAgOzsgRXhwbGljaXQgeyNpZH0gd2lucyBvdXRyaWdodDsgZmlyc3Qgb2NjdXJyZW5j
ZSBrZWVwcyBpdC4KKyAgICAgICAgKHdoZW4gKGFuZCBleHBsaWNpdCAobm90IChnZXRoYXNoIGV4
cGxpY2l0IHRhYmxlKSkpCisgICAgICAgICAgKHB1dGhhc2ggZXhwbGljaXQgcG9zIHRhYmxlKSkK
KyAgICAgICAgOzsgQXV0byBzbHVncyAoR2l0SHViICsgUGFuZG9jKSwgZGVkdXBlZCBwZXIgYWxn
b3JpdGhtLgorICAgICAgICAobGV0KiAoKGdoLWJhc2UgKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1
YiB2aXNpYmxlKSkKKyAgICAgICAgICAgICAgIChwZC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1w
YW5kb2MgdmlzaWJsZSkpCisgICAgICAgICAgICAgICAoZ2gtbiAoZ2V0aGFzaCBnaC1iYXNlIGdo
LWNvdW50cyAwKSkKKyAgICAgICAgICAgICAgIChwZC1uIChnZXRoYXNoIHBkLWJhc2UgcGQtY291
bnRzIDApKQorICAgICAgICAgICAgICAgKGdoLWlkIChpZiAoemVyb3AgZ2gtbikgZ2gtYmFzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIGdoLWJhc2UgZ2gtbikpKQor
ICAgICAgICAgICAgICAgKHBkLWlkIChpZiAoemVyb3AgcGQtbikgcGQtYmFzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIHBkLWJhc2UgcGQtbikpKSkKKyAgICAgICAg
ICAocHV0aGFzaCBnaC1iYXNlICgxKyBnaC1uKSBnaC1jb3VudHMpCisgICAgICAgICAgKHB1dGhh
c2ggcGQtYmFzZSAoMSsgcGQtbikgcGQtY291bnRzKQorICAgICAgICAgIDs7IEZpcnN0LXdyaXRl
ci13aW5zIHNvIGRvY3VtZW50IG9yZGVyIHRpZWJyZWFrcyBjb2xsaXNpb25zLgorICAgICAgICAg
ICh1bmxlc3MgKGdldGhhc2ggZ2gtaWQgdGFibGUpIChwdXRoYXNoIGdoLWlkIHBvcyB0YWJsZSkp
CisgICAgICAgICAgKHVubGVzcyAoZ2V0aGFzaCBwZC1pZCB0YWJsZSkgKHB1dGhhc2ggcGQtaWQg
cG9zIHRhYmxlKSkpKSkKKyAgICB0YWJsZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGlu
Zy1pZHMgKCkKKyAgIlJldHVybiB0aGUgaGVhZGluZy1pZCBoYXNoIHRhYmxlIGZvciB0aGUgY3Vy
cmVudCBidWZmZXIuCitDYWNoZSBpcyByZWJ1aWx0IG9ubHkgd2hlbiBgYnVmZmVyLWNoYXJzLW1v
ZGlmaWVkLXRpY2snIGhhcyBhZHZhbmNlZAorc2luY2UgdGhlIGxhc3QgY2FsbCAobWlycm9ycyBg
bWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlJykuIgorICAobGV0ICgodGljayAoYnVmZmVyLWNo
YXJzLW1vZGlmaWVkLXRpY2spKSkKKyAgICAodW5sZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1o
ZWFkaW5nLWlkLWNhY2hlLXRpY2spCisgICAgICAoc2V0cSBtYXJrZG93bi10cy0taGVhZGluZy1p
ZC1jYWNoZSAobWFya2Rvd24tdHMtLWJ1aWxkLWhlYWRpbmctaWRzKQorICAgICAgICAgICAgbWFy
a2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayB0aWNrKSkKKyAgICBtYXJrZG93bi10cy0t
aGVhZGluZy1pZC1jYWNoZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9sbG93LWZyYWdtZW50
IChpZCkKKyAgIkp1bXAgdG8gdGhlIGhlYWRpbmcgd2hvc2Ugc2x1ZyBtYXRjaGVzIElEICh3aXRo
b3V0IGxlYWRpbmcgYCMnKS4KK1B1c2hlcyB0aGUgbWFyayBiZWZvcmUgbW92aW5nIHNvIGBDLXUg
Qy1TUEMnIHJldHVybnMuICBTaWduYWxzCitgdXNlci1lcnJvcicgaWYgbm8gaGVhZGluZyBtYXRj
aGVzLiIKKyAgKGlmLWxldCogKChwb3MgKGdldGhhc2ggaWQgKG1hcmtkb3duLXRzLS1oZWFkaW5n
LWlkcykpKSkKKyAgICAgIChwcm9nbgorICAgICAgICAocHVzaC1tYXJrKQorICAgICAgICAoZ290
by1jaGFyIHBvcykKKyAgICAgICAgKHJlY2VudGVyKSkKKyAgICAodXNlci1lcnJvciAiTm8gaGVh
ZGluZyBmb3IgZnJhZ21lbnQ6ICMlcyIgaWQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250
aWZ5LWhlYWRpbmcgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBfZW5kICZyZXN0IF8pCisgICJBcHBs
eSB0aGUgaGVhZGluZyBmYWNlIHRvIE5PREUncyBmdWxsIGV4dGVudC4KK1VzZSBgZm9udC1sb2Nr
LWFwcGVuZC10ZXh0LXByb3BlcnR5JyBkaXJlY3RseSBzbyB0aGUgZmFjZSBpcyBhcHBsaWVkCith
Y3Jvc3MgdGhlIGVudGlyZSBoZWFkaW5nIGV2ZW4gd2hlbiBjaGlsZCBzdWItbm9kZXMgKGUuZy4g
YW4gaW5saW5lCitsaW5rKSB3b3VsZCBvdGhlcndpc2UgcHJldmVudCB0aGUgcmVndWxhciB0cmVl
LXNpdHRlciBmYWNlIHJ1bGUgZnJvbQorY292ZXJpbmcgdGhlbS4KKworRm9yIEFUWCBoZWFkaW5n
cywgYWxzbyBmb250aWZ5IGFueSBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJworc2VxdWVu
Y2UgYXMgYSBkZWxpbWl0ZXIuICBUaGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBkb2VzIG5vdCBwcm9k
dWNlIGEKK3NlcGFyYXRlIG5vZGUgZm9yIHRoZXNlOyBwZXIgQ29tbW9uTWFyayB0aGV5IGFyZSBk
ZWNvcmF0aXZlIGFuZAorbXVzdCBiZSBwcmVjZWRlZCBieSBhIHNwYWNlIG9yIHRhYi4iCisgIChs
ZXQqICgodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAobi1zdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG4tZW5kICAgKHRyZWVzaXQtbm9k
ZS1lbmQgbm9kZSkpCisgICAgICAgICAoZmFjZSAoY29uZAorICAgICAgICAgICAgICAgICgoZXF1
YWwgdHlwZSAic2V0ZXh0X2hlYWRpbmciKQorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMt
c2V0ZXh0LWhlYWRpbmcpCisgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgKGxl
dCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCkpKQorICAgICAgICAgICAgICAg
ICAgIChpbnRlcm4gKGZvcm1hdCAibWFya2Rvd24tdHMtaGVhZGluZy0lZCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQgbWFya2Vy
IHQpKSkpKSkpKSkKKyAgICAoZm9udC1sb2NrLWFwcGVuZC10ZXh0LXByb3BlcnR5IG4tc3RhcnQg
bi1lbmQgJ2ZhY2UgZmFjZSkKKyAgICAod2hlbiAoc3RyaW5nLXByZWZpeC1wICJhdHhfIiB0eXBl
KQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgbi1lbmQpCisgICAg
ICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHRcbiIgbi1zdGFydCkKKyAgICAgICAgKGxldCAo
KGxpbmUtZW5kIChwb2ludCkpKQorICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQi
IG4tc3RhcnQpCisgICAgICAgICAgKGxldCAoKHRyYWlsaW5nLWVuZCAocG9pbnQpKSkKKyAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBuLXN0YXJ0KQorICAgICAgICAgICAgKGxl
dCAoKHRyYWlsaW5nLXN0YXJ0IChwb2ludCkpKQorICAgICAgICAgICAgICAod2hlbiAoYW5kICg8
IHRyYWlsaW5nLXN0YXJ0IHRyYWlsaW5nLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
PiB0cmFpbGluZy1zdGFydCBuLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1x
IChjaGFyLWJlZm9yZSB0cmFpbGluZy1zdGFydCkgJyg/XHMgP1x0KSkpCisgICAgICAgICAgICAg
ICAgKGZvbnQtbG9jay1wcmVwZW5kLXRleHQtcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgdHJh
aWxpbmctc3RhcnQgdHJhaWxpbmctZW5kCisgICAgICAgICAgICAgICAgICdmYWNlICdtYXJrZG93
bi10cy1kZWxpbWl0ZXIpCisgICAgICAgICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1t
YXJrdXAKKyAgICAgICAgICAgICAgICAgIDs7IEFsc28gaGlkZSB0aGUgc3BhY2UocykgcHJlY2Vk
aW5nIHRoZSBjbG9zZXIgYW5kIGFueQorICAgICAgICAgICAgICAgICAgOzsgdHJhaWxpbmcgd2hp
dGVzcGFjZSwgc28gdGhlIGhlYWRpbmcgbG9va3MgY2xlYW4uCisgICAgICAgICAgICAgICAgICAo
bGV0ICgoaGlkZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciB0cmFpbGluZy1zdGFydCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIgbi1zdGFy
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgaGlkZS1zdGFydCBsaW5lLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkp
KSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlIChub2RlIG92
ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIG9yIGltYWdlIHRleHQg
Tk9ERSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitXb3JrcyBmb3IgaW5saW5lIGxpbmtzLCByZWZl
cmVuY2UgbGlua3MsIHNob3J0Y3V0IGxpbmtzLCBhbmQKK2ltYWdlIGRlc2NyaXB0aW9ucy4gIFRo
ZSBVUkwgaXMgdGFrZW4gZnJvbSBhIHNpYmxpbmcKK2BsaW5rX2Rlc3RpbmF0aW9uJyBub2RlIHdo
ZW4gcHJlc2VudCwgb3IgcmVzb2x2ZWQgZnJvbSBhCitsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9u
LCBvciB0aGUgbm9kZSB0ZXh0IGl0c2VsZiBpcyB1c2VkIGFzCitmYWxsYmFjay4gIE9WRVJSSURF
LCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnkt
d2l0aC1vdmVycmlkZScuIgorICAobGV0ICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5v
ZGUpKSkKKyAgICA7OyBXaGVuIE5PREUgaXMgYSBsaW5rX2xhYmVsIGluc2lkZSBhIGZ1bGxfcmVm
ZXJlbmNlX2xpbmsgdGhhdAorICAgIDs7IGFsc28gaGFzIGEgbGlua190ZXh0LCBza2lwIGl0LCBs
aW5rX3RleHQgaGFuZGxlcyB0aGF0IGxpbmsuCisgICAgKHVubGVzcyAoYW5kIChzdHJpbmc9ICh0
cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAibGlua19sYWJlbCIpCisgICAgICAgICAgICAgICAgICh0
cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua190ZXh0XFwnIikpCisgICAgICAo
dHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgJ21hcmtkb3duLXRzLWxpbmsg
b3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNlYXJjaC1z
dWJ0cmVlIHBhcmVudCAiXFxgbGlua19kZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgICAgICh1
cmwgKGlmIGRlc3QKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgZGVz
dCB0KQorICAgICAgICAgICAgICAgICAgICA7OyBSZWZlcmVuY2UgbGlua3M6IHJlc29sdmUgdmlh
IGxpbmtfbGFiZWwgb3IgbGlua190ZXh0LgorICAgICAgICAgICAgICAgICAgICAobGV0KiAoKGxh
YmVsLW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJlbnQgIlxcYGxpbmtfbGFiZWxcXCciKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYWJlbCAoaWYgbGFiZWwtbm9kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwtbm9k
ZSB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlxcWyIgIlxcXSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSB0KSkpKQorICAgICAgICAgICAgICAgICAgICAgIChvciAobWFya2Rv
d24tdHMtLXJlc29sdmUtbGluay1yZWYgbGFiZWwpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IGxhYmVsKSkpKSkKKyAgICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uCisgICAg
ICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpIHVy
bCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluayAobm9kZSBvdmVy
cmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgYXV0b2xpbmsgTk9ERSAoVVJJIG9y
IGVtYWlsKSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitGb3IgZW1haWwgYXV0b2xpbmtzLCB0aGUg
VVJMIGlzIHByZWZpeGVkIHdpdGggXCJtYWlsdG86XCIuCitBbmdsZSBicmFja2V0IGRlbGltaXRl
cnMgYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFu
ZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp
ZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoaW5u
ZXIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAgICAoMSsg
bm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSkpCisgICAgICAgICAodXJsIChpZiAoc3RyaW5nPSAo
dHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImVtYWlsX2F1dG9saW5rIikKKyAgICAgICAgICAgICAg
ICAgIChjb25jYXQgIm1haWx0bzoiIGlubmVyKQorICAgICAgICAgICAgICAgIGlubmVyKSkpCisg
ICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQgbm9kZS1l
bmQgJ21hcmtkb3duLXRzLWxpbmsgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChtYXJrZG93bi10
cy0tbWFrZS1saW5rLWJ1dHRvbiBub2RlLXN0YXJ0IG5vZGUtZW5kIHVybCkKKyAgICAod2hlbiBt
YXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgKDErIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAn
bWFya2Rvd24tdHMtLW1hcmt1cCkKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoMS0gbm9kZS1l
bmQpIG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rv
d24tdHMtLW1hcmt1cCkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVm
LWxhYmVsIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5r
IHJlZmVyZW5jZSBkZWZpbml0aW9uIGxhYmVsIE5PREUgYXMgYSBjbGlja2FibGUgYnV0dG9uLgor
VGhlIGJyYWNrZXRzIGFuZCBjb2xvbiBhcmUgaGlkZGVuIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4K
K09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBu
b2RlKSkKKyAgICAgICAgIChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAg
ICAgICAoZGVzdC1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua19k
ZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgKHVybCAod2hlbiBkZXN0LW5vZGUgKHRyZWVzaXQt
bm9kZS10ZXh0IGRlc3Qtbm9kZSB0KSkpKQorICAgIDs7IEZvbnRpZnkgdGhlIGxhYmVsIHRleHQg
KGluc2lkZSBicmFja2V0cykuCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisg
ICAgICgxKyBub2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpCisgICAgICdtYXJrZG93bi10cy1saW5r
IG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICA7OyBNYWtlIGl0IGEgY2xpY2thYmxlIGJ1dHRvbi4K
KyAgICAod2hlbiB1cmwKKyAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbiAoMSsg
bm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSB1cmwpKQorICAgIDs7IEhpZGUgIlsiIGJlZm9yZSBs
YWJlbCBhbmQgIl06ICIgYmV0d2VlbiBsYWJlbCBhbmQgZGVzdGluYXRpb24uCisgICAgKHdoZW4g
bWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0
YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUg
J21hcmtkb3duLXRzLS1tYXJrdXApCisgICAgICAobGV0ICgoY29sb24tZW5kIChpZiBkZXN0LW5v
ZGUgKHRyZWVzaXQtbm9kZS1zdGFydCBkZXN0LW5vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgKDErIG5vZGUtZW5kKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUt
ZW5kKSBjb2xvbi1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21h
cmtkb3duLXRzLS1tYXJrdXApKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1yZWYtZGVzdGluYXRpb24gKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3QgXykKKyAgIkZv
bnRpZnkgbGluayByZWZlcmVuY2UgZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3aGVuIG1hcmt1
cCBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRv
CitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVycmlkZSBzdGFy
dCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1dC10ZXh0LXBy
b3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5vZGUpCisgICJS
ZXR1cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNpbmdsZSBpbmxp
bmUgc2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBmYWxzZSBgbGF0
ZXhfYmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4g
IENoZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMgc2hhcmUgdGhl
IHNhbWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9kZS1zdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEtICh0cmVlc2l0
LW5vZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0cmVlc2l0LW5v
ZGUtYXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChtZC1lbmQgKHRy
ZWVzaXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChpbmxp
bmUtc3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChu
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUt
dHlwZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVuZCAodHJlZXNp
dC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQtZW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkpCisg
ICAgICAoZXEgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisgICAgICAgICAgKHRy
ZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAi
Rm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxpbWl0ZXJzIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFsc2UgbWF0Y2hlcyB0aGF0
IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCBub2RlKQorICAg
ICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJrZG93bi10cy1sYXRleCBv
dmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAg
ICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQgbm9kZSkpCisgICAgICAg
IChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkpKQorICAgICAgICAgICh3
aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRleF9zcGFuX2RlbGltaXRl
ciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBj
aGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBj
aGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93
bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3Ns
YXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkg
YmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFzaCB3aGVuIG1hcmt1cCBp
cyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2NrJyB3aGVyZSBiYWNrc2xh
c2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNz
ZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQg
KChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChpbi1sYXRl
eCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkKKyAg
ICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4g
KGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4KSkKKyAgICAgIChwdXQt
dGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkpCisKKyhkZWZ2YXIg
c2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudGl0eS1nZXQgIm9yZy9v
cmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHkgKHRl
eHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCImYW1wO1wiKSB0byBpdHMg
Y2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJpbmcsIG9yIG5pbCBpZiB0
aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVtZXJpYyBoZXggJiN4MUY0
QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0Ol1dK1xcKTtcXCciIHRl
eHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJpbmcg
MSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIzOworICAgKChzdHJpbmct
bWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAoY2hhci10by1z
dHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRleHQpKSkpCisgICA7OyBO
YW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBiYWNrIHRvIHNnbWwtY2hh
ci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51bTpdXStcXCk7XFwnIiB0
ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkpCisgICAgICAocmVx
dWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRyeSAob3JnLWVudGl0eS1n
ZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVudHJ5KSkpCisgICAgICAg
ICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAgICAgICAod2hlbi1sZXQq
ICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1lICMnZXF1YWwpKSkKKyAg
ICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZv
bnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFsdWUgd2hlbiBtYXJrdXAg
aXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0
bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChub2RlLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAgICAgICAgJ21hcmtkb3du
LXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbnVtZXJp
Yy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtkb3duLXRzLWhpZGUtbWFy
a3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93bi10cy0tZGVjb2RlLWVu
dGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5v
ZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiBk
ZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3RhcnQgbm9k
ZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyBu
b2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZSAodmFsKQorICAiUmVzb2x2ZSBWQUwsIGEgY29ucyAo
UFJFRkVSUkVEIC4gRkFMTEJBQ0spLCB0byBhIGRpc3BsYXlhYmxlIHZhbHVlLgorUmV0dXJuIFBS
RUZFUlJFRCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyIHBhc3NlcyBgY2hhci1kaXNwbGF5YWJsZS1w
JywKK290aGVyd2lzZSByZXR1cm4gRkFMTEJBQ0suICBSZXR1cm4gbmlsIGlmIFZBTCBpcyBuaWwu
IgorICAod2hlbiB2YWwKKyAgICAobGV0KiAoKHByZWZlcnJlZCAoY2FyIHZhbCkpCisgICAgICAg
ICAgIChjaCAoaWYgKGNoYXJhY3RlcnAgcHJlZmVycmVkKSBwcmVmZXJyZWQgKGFyZWYgcHJlZmVy
cmVkIDApKSkpCisgICAgICAoaWYgKGNoYXItZGlzcGxheWFibGUtcCBjaCkgKGNhciB2YWwpIChj
ZHIgdmFsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94IChub2Rl
IG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3QgY2hlY2ti
b3ggTk9ERSwgc2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09W
RVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9k
ZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2Rl
KSkKKyAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgInRh
c2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNrZWQgJ21h
cmtkb3duLXRzLXRhc2stY2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGFz
ay11bmNoZWNrZWQpKQorICAgICAgICAgKHZhbHVlIChpZiBjaGVja2VkCisgICAgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gKKyAgICAgICAgICAgICAgICAgIG1h
cmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCkpCisgICAgICAgICAocmVwbGFjZW1lbnQKKyAg
ICAgICAgICAoY29uZCAoKGVxIHZhbHVlICdpY29uKQorICAgICAgICAgICAgICAgICAoaWNvbi1z
dHJpbmcgKGlmIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveC1pY29uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gtaWNvbikpKQorICAgICAgICAg
ICAgICAgICh0IChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlIHZhbHVlKSkpKQor
ICAgICAgICAgOzsgSWYgYGljb24tc3RyaW5nJyByZXR1cm5lZCBhbiBpbWFnZSwgaXRzIGBkaXNw
bGF5JyBwcm9wZXJ0eQorICAgICAgICAgOzsgb24gY2hhciAwIGhvbGRzIHRoZSBhY3R1YWwgaW1h
Z2Ugc3BlYzsgbmVzdGVkIGBkaXNwbGF5JworICAgICAgICAgOzsgcHJvcHMgYXJlIG5vdCBob25v
cmVkIHdoZW4gYSBzdHJpbmcgaXMgdGhlIHZhbHVlIG9mIGEKKyAgICAgICAgIDs7IGBkaXNwbGF5
JyB0ZXh0LXByb3BlcnR5LCBzbyBhcHBseSB0aGUgc3BlYyBkaXJlY3RseS4KKyAgICAgICAgIChk
aXNwbGF5LXNwZWMKKyAgICAgICAgICAob3IgKGFuZCAoZXEgdmFsdWUgJ2ljb24pIHJlcGxhY2Vt
ZW50CisgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2Rpc3BsYXkgcmVw
bGFjZW1lbnQpKQorICAgICAgICAgICAgICByZXBsYWNlbWVudCkpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAoYW5k
IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50CisgICAgICAgICAgICAgKG9yIChl
cSB2YWx1ZSAnaWNvbikKKyAgICAgICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJl
ZiByZXBsYWNlbWVudCAwKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFy
dCBub2RlLWVuZCAnZGlzcGxheSBkaXNwbGF5LXNwZWMpCisgICAgICAocmVtb3ZlLXRleHQtcHJv
cGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1saW5lLWJyZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0
IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBoYXJkIGxpbmUgYnJlYWsgTk9ERTsgc2hvdyBhIFVu
aWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK0EgYmFja3NsYXNoIGJyZWFrIGdl
dHMgYG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gnIChvciBpdHMKK2AtaGlk
ZGVuJyB2YXJpYW50IHdoZW4gbWFya3VwIGlzIGhpZGRlbik7IGEgdHJhaWxpbmctc3BhY2VzIGJy
ZWFrIGdldHMKK2BtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UnIChvciBgLWhpZGRl
bicpLiAgV2hlbiBoaWRkZW4sIGEKK2JhY2tzbGFzaCBicmVhayBpcyByZXBsYWNlZCBieSBhIHNp
bmdsZSBgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrJworZ2x5cGg7IGEgdHJhaWxpbmctc3Bh
Y2VzIGJyZWFrIHJlcGxhY2VzIGVhY2ggc3BhY2Ugd2l0aCB0aGUgZ2x5cGgsIHNvIHRoZSBydW4K
K29mIHBpbGNyb3dzIGZpbGxzIHRoZSBsaW5lIHVwIHRvIHRoZSBuZXdsaW5lLgorT1ZFUlJJREUs
IFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisg
ICAgICAgICAodGV4dCAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkKKyAgICAgICAg
IChiYWNrc2xhc2ggIChhbmQgKD4gKGxlbmd0aCB0ZXh0KSAwKSAoZXEgKGFyZWYgdGV4dCAwKSA/
XFwpKSkKKyAgICAgICAgIDs7IERldGVybWluZSB0aGUgYWN0dWFsIHJhbmdlIHRvIGZvbnRpZnkg
YW5kIHJlcGxhY2UuICBUaGUKKyAgICAgICAgIDs7IGhhcmRfbGluZV9icmVhayBub2RlIG1heSBu
b3QgY292ZXIgdGhlIGZ1bGwgcnVuIG9mIHRyYWlsaW5nCisgICAgICAgICA7OyBzcGFjZXMsIHNv
IHdhbGsgYmFjayBmcm9tIGVuZC1vZi1saW5lIG91cnNlbHZlcyBmb3IgdGhlCisgICAgICAgICA7
OyBzcGFjZXMgdmFyaWFudC4KKyAgICAgICAgIChyZWdpb24gICAgIChpZiBiYWNrc2xhc2gKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBub2RlLXN0YXJ0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGlmIChhbmQgKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNoYXItYmVmb3JlIG5vZGUtZW5k
KSA/XG4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gbm9kZS1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLWVuZCkpCisgICAgICAgICAg
ICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChn
b3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZW9s
IChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFy
cy1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlb2wpKSkpKQorICAg
ICAgICAgKHJlZ2lvbi1zdGFydCAoY2FyIHJlZ2lvbikpCisgICAgICAgICAocmVnaW9uLWVuZCAg
IChjZHIgcmVnaW9uKSkKKyAgICAgICAgIChmYWNlICAgICAgIChjb25kCisgICAgICAgICAgICAg
ICAgICAgICAgKChhbmQgYmFja3NsYXNoIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKQorICAgICAg
ICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1o
aWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tzbGFzaCAnbWFya2Rvd24tdHMtaGFy
ZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24t
dHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1zcGFjZS1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKHQgJ21hcmtk
b3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSkpKSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdp
dGgtb3ZlcnJpZGUgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgZmFjZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsgQWx3YXlzIHN0
YXJ0IGJ5IGNsZWFyaW5nIGFueSBzdGFsZSBgZGlzcGxheScgcHJvcGVydHkuICBXZSBuZXZlcgor
ICAgIDs7IHNwYW4gdGhlIHRyYWlsaW5nIG5ld2xpbmUgd2l0aCBgZGlzcGxheScgKGl0IGNvbmZ1
c2VzCisgICAgOzsgcmVkaXNwbGF5J3MgY3Vyc29yIHBsYWNlbWVudCksIGFuZCB3ZSBvbmx5IHBh
aW50IGEgc2luZ2xlCisgICAgOzsgY29tYmluZWQgc3RyaW5nIG9udG8gdGhlIGZpcnN0IGNoYXJh
Y3RlciBvZiB0aGUgcnVuLCBsZWF2aW5nCisgICAgOzsgdGhlIHJlc3Qgb2YgdGhlIG1hcmt1cCBh
bG9uZS4KKyAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyByZWdpb24tc3RhcnQgcmVnaW9uLWVu
ZCAnKGRpc3BsYXkgbmlsKSkKKyAgICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAg
ICAgKGxldCogKChzcGVjIChpZiBiYWNrc2xhc2gKKyAgICAgICAgICAgICAgICAgICAgICAgKG1h
cmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpCisgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpKQorICAgICAgICAgICAgIChz
dHIgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoKG51bGwgc3BlYykgbmlsKQorICAgICAgICAg
ICAgICAgICAgICgoY2hhcmFjdGVycCBzcGVjKSAoY2hhci10by1zdHJpbmcgc3BlYykpCisgICAg
ICAgICAgICAgICAgICAgKChzdHJpbmdwIHNwZWMpIHNwZWMpCisgICAgICAgICAgICAgICAgICAg
KChmdW5jdGlvbnAgc3BlYykKKyAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc3BlYyAoLSBy
ZWdpb24tZW5kIHJlZ2lvbi1zdGFydCkpKSkpKQorICAgICAgICAod2hlbiAoYW5kIChzdHJpbmdw
IHN0cikKKyAgICAgICAgICAgICAgICAgICAoPiAobGVuZ3RoIHN0cikgMCkKKyAgICAgICAgICAg
ICAgICAgICAoY2hhci1kaXNwbGF5YWJsZS1wIChhcmVmIHN0ciAwKSkpCisgICAgICAgICAgKHB1
dC10ZXh0LXByb3BlcnR5IHJlZ2lvbi1zdGFydCAoMSsgcmVnaW9uLXN0YXJ0KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnZGlzcGxheSBzdHIpCisgICAgICAgICAgOzsgRm9yIHRoZSB0
cmFpbGluZy1zcGFjZXMgdmFyaWFudCwgaGlkZSB0aGUgcmVtYWluaW5nCisgICAgICAgICAgOzsg
c3BhY2VzIGluIHRoZSBydW4gc28gdGhlIGxpbmUgZG9lc24ndCBlbmQgd2l0aCBsZWZ0b3Zlcgor
ICAgICAgICAgIDs7IHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIHN1YnN0aXR1dGVkIGdseXBoLiAgRWFj
aCBwb3NpdGlvbgorICAgICAgICAgIDs7IGdldHMgaXRzIG93biBlbXB0eS1zdHJpbmcgYGRpc3Bs
YXknIHNvIGN1cnNvciBwbGFjZW1lbnQKKyAgICAgICAgICA7OyBzdGF5cyB1bmFtYmlndW91cy4K
KyAgICAgICAgICAodW5sZXNzIGJhY2tzbGFzaAorICAgICAgICAgICAgKGxldCAoKGkgKDErIHJl
Z2lvbi1zdGFydCkpKQorICAgICAgICAgICAgICAod2hpbGUgKDwgaSByZWdpb24tZW5kKQorICAg
ICAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBpICgxKyBpKSAnZGlzcGxheSAiIikKKyAg
ICAgICAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWsgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0
IF8pCisgICJGb250aWZ5IHRoZW1hdGljIGJyZWFrIE5PREUgYW5kIHNob3cgYSBsaW5lIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRo
cm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0ICgobm9k
ZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKHRy
ZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlk
ZSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGxldCAoKGNoYXIgKG1hcmtkb3duLXRz
LS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyKSkpCisgICAgICAoaWYgKGFuZCBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cCBjaGFyIChjaGFyLWRpc3BsYXlhYmxlLXAgY2hhcikpCisgICAgICAgICAgKGxldCog
KChjb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkpCisgICAgICAgICAg
ICAgICAgIDs7IFNwYW4gaWYgdGhlIGZhY2UgaGFzIG5vbi1uaWwgOmV4dGVuZC4KKyAgICAgICAg
ICAgICAgICAgKHNwYW4tbGVuZ3RoIChpZiAoZmFjZS1hdHRyaWJ1dGUgJ21hcmtkb3duLXRzLXRo
ZW1hdGljLWJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDpleHRlbmQgbmlsICdkZWZhdWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgtICh3aW5kb3ctYm9keS13aWR0aCkgY29sKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMikpKQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzcGxheQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2Utc3RyaW5nIHNwYW4tbGVuZ3RoIGNoYXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJcbiIpKSkKKyAgICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRp
ZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAm
cmVzdCBfKQorICAiRm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnQgTk9ERSB3aXRoIGEgYmFja2dy
b3VuZCBvdmVybGF5LgorVXNlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1hcmt1cC1oaWRkZW4n
IHdoZW4gbWFya3VwIGlzIGhpZGRlbiwKK2BtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBvdGhlcndp
c2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0aGUKK2JhY2tncm91bmQgbGF5ZXJzIGl0c2VsZiBiZWhp
bmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9udGlmaWNhdGlvbi4KK1RoZSBvdmVybGF5IGFsc28gc3Rv
cmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1YWdlIGFuZCBtb2RlIGFzCitwcm9wZXJ0aWVzIGBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlJyBhbmQKK2BtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQorYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2Ut
YXQnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAg
ICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgKG5v
ZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJz
LWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAg
ICAoZmFjZSAoaWYgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisgICAgICAgICAgICAgICAgICdt
YXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgIChsYW5nIChtYXJrZG93bi10cy0tbGFu
Z3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAgICAgICAgIChtb2RlICh3aGVuIGxhbmcKKyAgICAgICAg
ICAgICAgICAgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykpKQor
ICAgICAgICAgKGV4aXN0aW5nIChzZXEtZmluZCAobGFtYmRhIChvdikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2sp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheXMtYXQgbm9kZS1zdGFydCkp
KSkKKyAgICAoaWYgZXhpc3RpbmcKKyAgICAgICAgKHByb2duCisgICAgICAgICAgKG1vdmUtb3Zl
cmxheSBleGlzdGluZyBub2RlLXN0YXJ0IG5vZGUtZW5kKQorICAgICAgICAgIChvdmVybGF5LXB1
dCBleGlzdGluZyAnZmFjZSBmYWNlKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAgIChvdmVybGF5
LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlIG1vZGUpKQorICAgICAg
KGxldCAoKG92IChtYWtlLW92ZXJsYXkgbm9kZS1zdGFydCBub2RlLWVuZCBuaWwgdCBuaWwpKSkK
KyAgICAgICAgOzsgTWFya2VycyBuZWVkIHRvIGJlIHNldCBvbmx5IG9uY2UuCisgICAgICAgIChv
dmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyIChzZXQtbWFya2VyICht
YWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS1zdGFydCkpCisgICAgICAgIChvdmVybGF5LXB1dCBv
diAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRz
LWNvZGUtYmxvY2sgdCkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92ICdmYWNlIGZhY2UpCisgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAncHJpb3JpdHkgJyhuaWwgLiAxMCkpCisgICAgICAgIChvdmVy
bGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAg
ICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKQorICAg
ICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLWF0LWNvZGUtYmxvY2stcCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiBub24gbmlsIGlm
IHBvaW50IGlzIGluIGEgY29kZSBibG9jay4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4iCisg
IChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJs
b2NrKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQgKCZvcHRp
b25hbCBwb3MpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBvZiB0aGUgY29kZSBibG9j
ayBhdCBQT1MuCitJZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuICBSZXR1cm5zIG5pbCBpZiBQT1Mg
aXMgbm90IGluc2lkZSBhIGZlbmNlZAorY29kZSBibG9jay4gIFRoaXMgd29ya3MgcmVnYXJkbGVz
cyBvZiB3aGV0aGVyIGEgZ3Vlc3QgdHJlZS1zaXR0ZXIgcGFyc2VyCitpcyBhY3RpdmUsIHNpbmNl
IHRoZSBsYW5ndWFnZSBpcyBzdG9yZWQgb24gdGhlIGNvZGUgYmxvY2sgb3ZlcmxheSBieSB0aGUK
K2hvc3QgcGFyc2VyJ3MgZm9udGlmaWNhdGlvbi4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3Ig
cG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVy
biB0aGUgbWFqb3IgbW9kZSBmb3IgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5p
bCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQK
K2NvZGUgYmxvY2sgb3IgaWYgdGhlIGxhbmd1YWdlIGhhcyBubyByZWNvZ25pemVkIG1vZGUuIgor
ICAod2hlbiAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1wIHBvcykKKyAgICAob3IgKGdldC1j
aGFyLXByb3BlcnR5IChvciBwb3MgKHBvaW50KSkgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9k
ZSkKKyAgICAgICAgbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1ob3N0LXJhbmdlcy1ub3RpZmllciAocmFuZ2VzIF9wYXJzZXIpCisg
ICJQcnVuZSBzdGFsZSBjb2RlIGJsb2NrIG92ZXJsYXlzIGFmdGVyIHRoZSBob3N0IHBhcnNlciBy
ZXBhcnNlcy4KK1JBTkdFUyBpcyBhIGxpc3Qgb2YgKFNUQVJUIC4gRU5EKSBjb25zIGNlbGxzIG1h
cmtpbmcgcmVnaW9ucyB3aGVyZQordGhlIG1hcmtkb3duIHBhcnNlIHRyZWUgY2hhbmdlZC4gIEZv
ciBlYWNoIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJworb3ZlcmxheSBpbnRlcnNlY3RpbmcgYSBj
aGFuZ2VkIHJhbmdlLCB2ZXJpZnkgdGhhdCBhIGNvbnRhaW5pbmcKK2BmZW5jZWRfY29kZV9ibG9j
aycgbm9kZSBzdGlsbCBleGlzdHMgaW4gdGhlIGhvc3QgdHJlZS4gIElmIG5vdCwKK3RoZSBmZW5j
ZXMgd2VyZSBkZWxldGVkLCBzbyBkZWxldGUgdGhlIG92ZXJsYXkgdG8gYXZvaWQgcnVubmluZwor
Y29tbWFuZHMgaW4gYSBzdGFsZSBibG9jayBjb250ZXh0LiIKKyAgKGRvbGlzdCAocmFuZ2UgcmFu
Z2VzKQorICAgIChsZXQgKChiZWcgKGNhciByYW5nZSkpCisgICAgICAgICAgKGVuZCAoY2RyIHJh
bmdlKSkpCisgICAgICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gYmVnIGVuZCkpCisgICAgICAg
ICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykKKyAgICAgICAg
ICAobGV0KiAoKG92LXN0YXJ0IChvdmVybGF5LXN0YXJ0IG92KSkKKyAgICAgICAgICAgICAgICAg
KG5vZGUgKGFuZCBvdi1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtYXQgb3Ytc3RhcnQgJ21hcmtkb3duKSkpKQorICAgICAgICAgICAgKHVubGVzcyAoYW5k
IG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAiXFxgZmVuY2VkX2NvZGVfYmxvY2tcXCciIHQp
KQorICAgICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpKSkpKQorCis7OzsgSW1hZ2Ug
aGFuZGxpbmc6CisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGluZS1wIChu
b2RlKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgaW1hZ2UgTk9ERSBpcyB0aGUgb25seSBjb250ZW50
IG9uIGl0cyBsaW5lLgorV2hpdGVzcGFjZSwgYmxvY2sgcXVvdGUgbWFya2VycyAoYD4nKSwgYW5k
IGxpc3QgbWFya2VycworXChgLScsIGAqJywgYCsnLCBgMS4nKSBiZWZvcmUgdGhlIGltYWdlIGFy
ZSBpZ25vcmVkLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAoc2F2
ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgIChsZXQgKChi
b2wgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKKyAgICAgICAgICAgIChlb2wgKGxpbmUtZW5k
LXBvc2l0aW9uKSkpCisgICAgICAgIDs7IEJlZm9yZSB0aGUgaW1hZ2U6IG9ubHkgYmxvY2sgcXVv
dGUgbWFya2Vycywgd2hpdGVzcGFjZSwKKyAgICAgICAgOzsgYW5kIGFuIG9wdGlvbmFsIGxpc3Qg
bWFya2VyIGFyZSBhbGxvd2VkLgorICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2gtcAorICAgICAg
ICAgICAgICAocnggYm9zCisgICAgICAgICAgICAgICAgICAoemVyby1vci1tb3JlIChhbnkgIj4g
XHQiKSkKKyAgICAgICAgICAgICAgICAgIChvcHRpb25hbCAob3IgKHNlcSAoYW55ICItKisiKSAi
ICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEgKG9uZS1vci1tb3JlIGRp
Z2l0KSAoYW55ICIuKSIgKSAiICIpKSkKKyAgICAgICAgICAgICAgICAgIGVvcykKKyAgICAgICAg
ICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBib2wgbm9kZS1zdGFydCkpCisg
ICAgICAgICAgICAgOzsgQWZ0ZXIgdGhlIGltYWdlOiBvbmx5IHRyYWlsaW5nIHdoaXRlc3BhY2Ug
YWxsb3dlZC4KKyAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAgICAgICAgKHJ4
IGJvcyAoemVyby1vci1tb3JlIChhbnkgIiBcdCIpKSBlb3MpCisgICAgICAgICAgICAgIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbm9kZS1lbmQgZW9sKSkpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZvbnRpZnktaW1hZ2UgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBfZW5kICZy
ZXN0IF8pCisgICJTaG93IGFuIGlubGluZSBpbWFnZSBhdCBOT0RFLgorV2hlbiBgbWFya2Rvd24t
dHMtaW5saW5lLWltYWdlcycgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGUgaW1hZ2UuCitJZiB0aGUg
aW1hZ2UgbGluayBpcyB0aGUgb25seSBjb250ZW50IG9uIGl0cyBsaW5lLCBkaXNwbGF5IHRoZQor
aW1hZ2UgYmVsb3cgdGhlIGxpbmsuICBJZiB0aGUgaW1hZ2UgaXMgaW5saW5lIHdpdGhpbiBhIHBh
cmFncmFwaCwKK2Rpc3BsYXkgaXQgcmlnaHQgYWZ0ZXIgdGhlIGxpbmsgdGV4dC4KK1JlbW90ZSBp
bWFnZXMgYXJlIGNvbnRyb2xsZWQgYnkKK2BtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxp
bmUtaW1hZ2VzJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5v
ZGUpKQorICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAg
ICAgKGVvbCAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBub2RlLWVuZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgKHNlYXJj
aC1lbmQgKG1pbiAoMSsgZW9sKSAocG9pbnQtbWF4KSkpKQorICAgIDs7IEFsd2F5cyBjbGVhciBz
dGFsZSBvdmVybGF5cyBmb3IgdGhpcyBub2RlJ3MgcmFuZ2UuCisgICAgKGRvbGlzdCAob3YgKG92
ZXJsYXlzLWluIG5vZGUtc3RhcnQgc2VhcmNoLWVuZCkpCisgICAgICAod2hlbiAoYW5kIChvdmVy
bGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisgICAgICAgICAgICAgICAgICg+PSAob3Zl
cmxheS1zdGFydCBvdikgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgKDw9IChvdmVybGF5
LWVuZCBvdikgc2VhcmNoLWVuZCkpCisgICAgICAgIChkZWxldGUtb3ZlcmxheSBvdikpKQorICAg
ICh3aGVuIChhbmQgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAgICAgICAgICAgOzsg
RG9uJ3QgY3JlYXRlIGltYWdlIG92ZXJsYXlzIGZvciBub2RlcyBpbnNpZGUKKyAgICAgICAgICAg
ICAgIDs7IGZvbGRlZCAob3V0bGluZS1pbnZpc2libGUpIGhlYWRpbmdzLCBzaW5jZSB0aGUKKyAg
ICAgICAgICAgICAgIDs7IGltYWdlcyB3b3VsZG4ndCBiZSB2aXNpYmxlIGFuZCBjb3VsZCBpbnRl
cmZlcmUKKyAgICAgICAgICAgICAgIDs7IHdpdGggdGhlIGZvbGRlZCBkaXNwbGF5LgorICAgICAg
ICAgICAgICAgKG5vdCAobWFya2Rvd24tdHMtLW91dGxpbmUtaW52aXNpYmxlLXAgbm9kZS1zdGFy
dCkpKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5vZGUgIlxc
YGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJsIChhbmQgZGVzdCAodHJl
ZXNpdC1ub2RlLXRleHQgZGVzdCB0KSkpCisgICAgICAgICAgICAgKHJlbW90ZXAgKGFuZCB1cmwg
KHN0cmluZy1tYXRjaC1wICJcXGBodHRwcz86Ly8iIHVybCkpKQorICAgICAgICAgICAgIChkaXNw
bGF5YWJsZQorICAgICAgICAgICAgICAod2hlbiB1cmwKKyAgICAgICAgICAgICAgICAoaWYgcmVt
b3RlcAorICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXEgbWFya2Rvd24tdHMtZGlzcGxheS1y
ZW1vdGUtaW5saW5lLWltYWdlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rvd25s
b2FkKQorICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCisgICAgICAgICAgICAg
ICAgICAgICAgICAocmVxdWlyZSAndXJsLWhhbmRsZXJzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgKHdpdGgtd29yay1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1idWZm
ZXItbXVsdGlieXRlIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHVybC1pbnNlcnQt
ZmlsZS1jb250ZW50cyB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Ry
aW5nKSkpKQorICAgICAgICAgICAgICAgICAgKGxldCAoKGZpbGUgKGV4cGFuZC1maWxlLW5hbWUg
dXJsKSkpCisgICAgICAgICAgICAgICAgICAgIChhbmQgKG5vdCAoZmlsZS1yZW1vdGUtcCBmaWxl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1leGlzdHMtcCBmaWxlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbWFnZS1zdXBwb3J0ZWQtZmlsZS1wIGZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgZmlsZSkpKSkpCisgICAgICAgICAgICAgKG1heC13IChhbmQgZGlz
cGxheWFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIG1hcmtkb3duLXRzLWlt
YWdlLW1heC13aWR0aCAnd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lu
ZG93LWJvZHktd2lkdGggbmlsIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93
bi10cy1pbWFnZS1tYXgtd2lkdGgpKSkKKyAgICAgICAgICAgICAoaW1nIChhbmQgbWF4LXcKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZS1pbWFnZSBkaXNwbGF5YWJsZSBuaWwgcmVtb3Rl
cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXgtd2lkdGggbWF4LXcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2NhbGUgMSkpKSkKKyAgICAg
ICAgKHdoZW4gaW1nCisgICAgICAgICAgKGxldCogKChhbG9uZSAobWFya2Rvd24tdHMtLWltYWdl
LWFsb25lLW9uLWxpbmUtcCBub2RlKSkKKyAgICAgICAgICAgICAgICAgKHN0ciAoaWYgYWxvbmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXG4iIChwcm9wZXJ0aXplICIgIiAn
ZGlzcGxheSBpbWcpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUgIiAiICdk
aXNwbGF5IGltZykpKQorICAgICAgICAgICAgICAgICAob3YgKG1ha2Utb3ZlcmxheSAoMS0gbm9k
ZS1lbmQpIG5vZGUtZW5kIG5pbCB0IG5pbCkpKQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92
ICdtYXJrZG93bi10cy1pbWFnZSB0KQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdhZnRl
ci1zdHJpbmcgc3RyKQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdldmFwb3JhdGUgdCkp
KSkpKSkKKworOzs7IFVSTC9VUkkgaGFuZGxpbmc6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLWJh
cmUtdXJsLXJlZ2V4cCBnb3RvLWFkZHJlc3MtdXJsLXJlZ2V4cAorICAiUmVnZXhwIG1hdGNoaW5n
IGJhcmUgVVJMcyBub3Qgd3JhcHBlZCBpbiBhbmdsZSBicmFja2V0cyBvciBsaW5rIHN5bnRheC4i
KQorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1yZWdleHAgZ290by1hZGRy
ZXNzLW1haWwtcmVnZXhwCisgICJSZWdleHAgbWF0Y2hpbmcgYmFyZSBlbWFpbCBhZGRyZXNzZXMg
bm90IHdyYXBwZWQgaW4gYW5nbGUgYnJhY2tldHMuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWJhcmUtdXJpIChzdGFydCBlbmQpCisgICJGb250aWZ5IGJhcmUgVVJMIG9yIGVtYWls
IFVSSSBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuCitTa2lwIG1hdGNoZXMgYWxyZWFkeSBpbnNpZGUg
dHJlZS1zaXR0ZXIgbGluayBvciBhdXRvbGluayBub2Rlcy4iCisgIChkb2xpc3QgKHJlIChsaXN0
IG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rv
d24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCkpCisgICAgKGdvdG8tY2hhciBzdGFydCkKKyAg
ICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIGVuZCB0KQorICAgICAgKGxldCogKCh1cmkt
c3RhcnQgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgICAodXJpLWVuZCAobWF0Y2gt
ZW5kIDApKQorICAgICAgICAgICAgICh1cmkgKG1hdGNoLXN0cmluZyAwKSkKKyAgICAgICAgICAg
ICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHVyaS1zdGFydCAnbWFya2Rvd24taW5saW5lKSkKKyAg
ICAgICAgICAgICAocGFyZW50IChhbmQgbm9kZSAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkp
CisgICAgICAgICAgICAgKHBhcmVudC10eXBlIChhbmQgcGFyZW50ICh0cmVlc2l0LW5vZGUtdHlw
ZSBwYXJlbnQpKSkpCisgICAgICAgICh1bmxlc3MgKG9yIChtZW1iZXIgcGFyZW50LXR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJpbmxpbmVfbGluayIgImZ1bGxfcmVmZXJlbmNl
X2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGFwc2VkX3JlZmVyZW5j
ZV9saW5rIiAic2hvcnRjdXRfbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJp
bWFnZSIgInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iKSkKKyAgICAgICAgICAgICAgICAgICAgKG1l
bWJlciAoYW5kIG5vZGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcoInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iICJjb2RlX3NwYW4iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9mZW5jZV9jb250ZW50IiAiaW5mb19zdHJp
bmciKSkKKyAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IHVyaS1zdGFydCAn
YnV0dG9uKSkKKyAgICAgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24KKyAgICAg
ICAgICAgdXJpLXN0YXJ0IHVyaS1lbmQKKyAgICAgICAgICAgKGlmIChlcSB1cmktc3RhcnQgMCkK
KyAgICAgICAgICAgICAgIHVyaQorICAgICAgICAgICAgIChjb25jYXQgIm1haWx0bzoiIHVyaSkp
KSkpKSkpCisKKzs7OyB0cmVlc2l0IHNldHRpbmdzOgorCiAoZGVmdmFyIG1hcmtkb3duLXRzLS10
cmVlc2l0LXNldHRpbmdzCiAgICh0cmVlc2l0LWZvbnQtbG9jay1ydWxlcworICAgOmxhbmd1YWdl
ICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ2Vycm9yCisgICA6b3ZlcnJpZGUgdAorICAgJygoRVJS
T1IpIEBmb250LWxvY2std2FybmluZy1mYWNlKQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlu
bGluZQogICAgOm92ZXJyaWRlIHQKICAgIDpmZWF0dXJlICdkZWxpbWl0ZXIKLSAgICcoKGlubGlu
ZV9saW5rIFsgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykKLSAgICAgKGltYWdlIFsgIiEiICJb
IiAiXSIgIigiICIpIiBdIEBzaGFkb3cpKQorICAgJygoaW5saW5lX2xpbmsgWyAiWyIgIl0iICIo
IiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoZnVsbF9yZWZl
cmVuY2VfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQor
ICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChzaG9ydGN1dF9saW5rIFsgIlsiICJdIiBdIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChpbWFnZSBbICIhIiAiWyIgIl0iICIo
IiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkKIAogICAgOmxhbmd1YWdl
ICdtYXJrZG93bgogICAgOmZlYXR1cmUgJ2hlYWRpbmcKLSAgICcoKGF0eF9oZWFkaW5nIChhdHhf
aDFfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMQotICAgICAoYXR4X2hlYWRpbmcgKGF0
eF9oMl9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy0yCi0gICAgIChhdHhfaGVhZGluZyAo
YXR4X2gzX21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTMKLSAgICAgKGF0eF9oZWFkaW5n
IChhdHhfaDRfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNAotICAgICAoYXR4X2hlYWRp
bmcgKGF0eF9oNV9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy01Ci0gICAgIChhdHhfaGVh
ZGluZyAoYXR4X2g2X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTYKLSAgICAgKHNldGV4
dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAnKCgoYXR4X2hlYWRp
bmcpICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKQorICAgICAoKHNldGV4dF9oZWFk
aW5nKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGVhZGluZykpCiAKICAgIDpsYW5ndWFnZSAnbWFy
a2Rvd24KICAgIDpmZWF0dXJlICdoZWFkaW5nCkBAIC0xOTQsMTYgKzE2MDcsNDAgQEAgbWFya2Rv
d24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgKGF0eF9oM19tYXJrZXIpIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNF9tYXJrZXIpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnkt
ZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAn
cGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJlYWspIEBtYXJrZG93bi10cy1kZWxpbWl0ZXIp
Ci0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAg
ICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFr
KQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93bi10cy1odG1sLWJsb2NrKQorICAgICAoKGlu
ZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrKQogICAg
ICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFyKSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIp
CiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMpIEBtYXJrZG93bi10cy1saXN0LW1h
cmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfbWludXMpIEBtYXJrZG93bi10cy1s
aXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFya2Rvd24t
dHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJr
ZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfcGFyZW50
aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAodGFza19s
aXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2JveCkKKyAg
ICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl9jaGVja2VkKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktY2hlY2tib3gpCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAo
bGlua19sYWJlbCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQorICAgICAo
bGlua19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfZGVzdGluYXRpb24pIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbikKKyAgICAgKGxpbmtfcmVmZXJl
bmNlX2RlZmluaXRpb24KKyAgICAgIChsaW5rX3RpdGxlKSBAbWFya2Rvd24tdHMtbGluay1kZXN0
aW5hdGlvbikpCisKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3Jh
cGgKKyAgIDpvdmVycmlkZSAncHJlcGVuZAorICAgJygocGlwZV90YWJsZV9oZWFkZXIgInwiIEBt
YXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisgICAgIChwaXBlX3RhYmxlX2hlYWRlciAocGlwZV90
YWJsZV9jZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtaGVhZGVyKQorICAgICAocGlwZV90YWJsZV9y
b3cgInwiIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCkKKyAgICAgKHBpcGVfdGFi
bGVfcm93IChwaXBlX3RhYmxlX2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1jZWxsKQorICAgICAo
cGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93ICJ8IiBAbWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVy
LWNlbGwpCisgICAgICgocGlwZV90YWJsZSkgQG1hcmtkb3duLXRzLXRhYmxlKQorICAgICAocGlw
ZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3RhYmxlX2RlbGltaXRlcl9jZWxsKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2Vs
bCkpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgKQEAg
LTIxMiw4OSArMTY0OSw5OTkgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAg
KGJsb2NrX3F1b3RlX21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAg
ICAoZmVuY2VkX2NvZGVfYmxvY2tfZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVs
aW1pdGVyCiAgICAgIChmZW5jZWRfY29kZV9ibG9jawotICAgICAgKGluZm9fc3RyaW5nIChsYW5n
dWFnZSkgQG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIpCisgICAgICAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbWFya2Rvd24tdHMt
bGFuZ3VhZ2Uta2V5d29yZCkKKyAgICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIp
CiAgICAgIChibG9ja19xdW90ZQogICAgICAgKGJsb2NrX3F1b3RlX21hcmtlcikgQG1hcmtkb3du
LXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgICAgKHBhcmFncmFwaCAoaW5saW5lIChibG9ja19j
b250aW51YXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpKSkpCiAKKyAgIDps
YW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3JhcGgKKyAgIDpvdmVycmlkZSAn
YXBwZW5kCisgICAnKChmZW5jZWRfY29kZV9ibG9jaworICAgICAgKGluZm9fc3RyaW5nIChsYW5n
dWFnZSkpCisgICAgICAoY29kZV9mZW5jZV9jb250ZW50KSBAbWFya2Rvd24tdHMtLWZvbnRpZnkt
bm9uLXRzLWNvZGUtYmxvY2spKQorCisgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCisgICA6ZmVhdHVy
ZSAncGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoZmVuY2VkX2NvZGVfYmxv
Y2sgKGNvZGVfZmVuY2VfY29udGVudCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWNvZGUtYmxvY2sp
KQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOm92ZXJyaWRlICdhcHBlbmQK
ICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgtaW5saW5lCi0gICAnKCgoaW1hZ2VfZGVzY3JpcHRpb24p
IEBsaW5rKQotICAgICAoKGxpbmtfZGVzdGluYXRpb24pIEBmb250LWxvY2stc3RyaW5nLWZhY2Up
Ci0gICAgICgoY29kZV9zcGFuKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQorICAgJygoKGxpbmtf
ZGVzdGluYXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uKQorICAg
ICAoKGNvZGVfc3BhbikgQG1hcmtkb3duLXRzLWNvZGUtc3BhbikKICAgICAgKChjb2RlX3NwYW5f
ZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQotICAgICAoKGVtcGhh
c2lzKSBAaXRhbGljKQotICAgICAoKHN0cm9uZ19lbXBoYXNpcykgQGJvbGQpCi0gICAgIChpbmxp
bmVfbGluayAobGlua190ZXh0KSBAbGluaykKLSAgICAgKGlubGluZV9saW5rIChsaW5rX2Rlc3Rp
bmF0aW9uKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoc2hvcnRjdXRfbGluayAobGlu
a190ZXh0KSBAbGluaykpCisgICAgICgoZW1waGFzaXMpIEBtYXJrZG93bi10cy1lbXBoYXNpcykK
KyAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBtYXJrZG93bi10cy1ib2xkKQorICAgICAoKHN0cmlr
ZXRocm91Z2gpIEBtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoKQorICAgICAoaW5saW5lX2xpbmsg
KGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGZ1bGxf
cmVmZXJlbmNlX2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9k
ZSkKKyAgICAgKGZ1bGxfcmVmZXJlbmNlX2xpbmsgKGxpbmtfbGFiZWwpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLW5vZGUpCisgICAgIChjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsgKGxpbmtf
dGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKHNob3J0Y3V0X2xp
bmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGlt
YWdlIChpbWFnZV9kZXNjcmlwdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkK
KyAgICAgKCh1cmlfYXV0b2xpbmspIEBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluaykKKyAg
ICAgKChlbWFpbF9hdXRvbGluaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKQorICAg
ICAoaW5saW5lX2xpbmsgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9u
KQorICAgICAoKGJhY2tzbGFzaF9lc2NhcGUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xh
c2gtZXNjYXBlKQorICAgICAoKGVudGl0eV9yZWZlcmVuY2UpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1lbnRpdHkpCisgICAgICgobnVtZXJpY19jaGFyYWN0ZXJfcmVmZXJlbmNlKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktZW50aXR5KQorICAgICAoKGh0bWxfdGFnKSBAbWFya2Rvd24tdHMtaHRtbC10
YWcpCisgICAgICgoaGFyZF9saW5lX2JyZWFrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1s
aW5lLWJyZWFrKQorICAgICAoKGxhdGV4X2Jsb2NrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGF0
ZXgtYmxvY2spKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOmZlYXR1cmUg
J3BhcmFncmFwaC1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICAnKChlbXBoYXNpc19k
ZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCi0gICApKQogCi07Ozsg
SW1lbnUKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCisgICA6ZmVhdHVyZSAnaW1hZ2Ut
cHJldmlldworICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGltYWdlKSBAbWFya2Rvd24tdHMt
LWZvbnRpZnktaW1hZ2UpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5vZGUtcCAobm9k
ZSkKKzs7OyBJbWVudToKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5vZGUt
cCAobm9kZSkKICAgIkNoZWNrIGlmIE5PREUgaXMgYSB2YWxpZCBlbnRyeSB0byBpbWVudS4iCi0g
IChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCi0g
ICAgICAgICAiYXR4X2hlYWRpbmciKSkKKyAgKGFuZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBl
IG5vZGUpICJpbmxpbmUiKQorICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVz
aXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAgICAgICJhdHhfaGVhZGluZyIpKSkKIAot
KGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24gKG5vZGUpCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWltZW51LWhlYWRpbmctbmFtZS1mdW5jdGlvbiAobm9kZSkKICAgIlJldHVybiBh
biBpbWVudSBlbnRyeSBpZiBOT0RFIGlzIGEgdmFsaWQgaGVhZGVyLiIKICAgKGxldCAoKG5hbWUg
KHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKLSAgICAoaWYgKG1hcmtkb3duLXRzLWltZW51LW5v
ZGUtcCBub2RlKQotCSh0aHJlYWQtZmlyc3QgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkgKHRy
ZWVzaXQtbm9kZS10ZXh0KSkKKyAgICAoaWYgKG1hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5v
ZGUtcCBub2RlKQorICAgICAgICAoY2FyIChzcGxpdC1zdHJpbmcgKHRyZWVzaXQtbm9kZS10ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIiB0ICIgIikpCiAgICAgICBuYW1lKSkpCiAK
LShkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSAobm9kZSkKLSAgIk1hdGNoIGEg
aGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIKKyhkZWZ1biBtYXJrZG93
bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAgKG5vZGUpCisgICJDaGVjayBpZiBOT0RFIGlz
IGFuIGluZm9fc3RyaW5nIHdpdGggZGVzY3JpcHRpdmUgdGV4dCBhZnRlciB0aGUgbGFuZ3VhZ2Uu
IgorICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImluZm9fc3RyaW5nIikK
KyAgICAgICAod2hlbi1sZXQqICgobGFuZy1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5v
ZGUgImxhbmd1YWdlIikpCisgICAgICAgICAgICAgICAgICAgKCg8ICh0cmVlc2l0LW5vZGUtZW5k
IGxhbmctbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9k
ZSkpKSkKKyAgICAgICAgIChub3QgKHN0cmluZy1ibGFuay1wCisgICAgICAgICAgICAgICAoYnVm
ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1lbmQgbGFuZy1ub2RlKQorICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUp
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0
aW9uIChub2RlKQorICAiUmV0dXJuIGFuIGltZW51IGVudHJ5IG5hbWUgZm9yIGEgY29kZSBibG9j
ayBpbmZvX3N0cmluZyBOT0RFLgorVXNlcyB0aGUgZGVzY3JpcHRpdmUgdGV4dCBhZnRlciB0aGUg
bGFuZ3VhZ2UgbmFtZS4iCisgICh3aGVuLWxldCogKChsYW5nLW5vZGUgKHRyZWVzaXQtc2VhcmNo
LXN1YnRyZWUgbm9kZSAibGFuZ3VhZ2UiKSkKKyAgICAgICAgICAgICAgKGRlc2MgKHN0cmluZy10
cmltCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz
CisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFuZy1ub2RlKQorICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpKQorICAgIChmb3Jt
YXQgIiVzOiAlcyIgKHRyZWVzaXQtbm9kZS10ZXh0IGxhbmctbm9kZSkgZGVzYykpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLW91dGxpbmUtcHJlZGljYXRlIChub2RlKQorICAiTWF0Y2ggTk9ERSBp
ZiBpdCBpcyBhIGhpZXJhcmNoaWNhbCBzZWN0aW9uIHRoYXQgaGFzIGEgaGVhZGluZy4iCiAgIChh
bmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAic2VjdGlvbiIpCiAgICAgICAgKHdo
ZW4tbGV0KiAoKGNoaWxkICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwKSkpCiAgICAgICAgICAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAiYXR4X2hlYWRpbmciKSkpKQogCi07Ozsg
Q29kZSBibG9ja3MKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKIAotKGRlZnZhci1sb2NhbCBt
YXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMgbmlsCi0gICJBIGxpc3Qgb2YgbGFuZ3Vh
Z2VzIHRoYXQgaGF2ZSBiZWVuIHNldHVwIGluIHRoaXMgYnVmZmVyLgorKGRlZmNvbnN0IG1hcmtk
b3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11bSBBVFggaGVhZGlu
ZyBsZXZlbCBpbiBNYXJrZG93biAoaDEtaDYpLgorRGVmaW5lZCBieSB0aGUgQ29tbW9uTWFyayBz
cGVjIGFuZCB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iKQogCi1XaGVuIGEgY29kZSBibG9jayBv
ZiBhIGxhbmd1YWdlIGFwcGVhcnMsIGBtYXJrZG93bi10cy1tb2RlJyBsb2FkcwotbGFuZ3VhZ2Ug
c2V0dXBzIGxpa2UgZm9udC1sb2NrIGFuZCBpbmRlbnRhdGlvbiBmb3IgdGhhdCBsYW5ndWFnZSwg
YW5kCi1hZGRzIHRoYXQgbGFuZ3VhZ2UgdG8gdGhpcyBsaXN0LiIpCisoZGVmdW4gbWFya2Rvd24t
dHMtLWhlYWRpbmctYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgYXR4X2hlYWRpbmcgbm9kZSBh
dCBvciBiZWZvcmUgcG9pbnQsIG9yIG5pbC4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0
LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAoaWYgKGVxdWFsICh0cmVlc2l0LW5v
ZGUtdHlwZSBub2RlKSAiYXR4X2hlYWRpbmciKQorICAgICAgICBub2RlCisgICAgICAodHJlZXNp
dC1wYXJlbnQtdW50aWwKKyAgICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAodHJlZXNpdC1u
b2RlLXR5cGUgbikgImF0eF9oZWFkaW5nIikpKSkpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMtLWhh
cnZlc3QtdHJlZXNpdC1jb25maWdzIChtb2RlKQotICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25m
aWdzIGZyb20gTU9ERS4KLVJldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFu
ZCB2YWx1ZToKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGluZy1sZXZlbCAoaGVhZGluZykKKyAg
IlJldHVybiBIRUFESU5HIGxldmVsIChyYW5nZSAxIHRvIGBtYXJrZG93bi10cy0tcGFyc2VyLWhl
YWRpbmctbWF4LWxldmVsJykuIgorICAobGV0ICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQg
aGVhZGluZyAwKSkpCisgICAgKGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRo
ZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4iCisgICh3aGVuLWxldCogKChub2RlICh0
cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAodHJlZXNpdC1wYXJlbnQt
dW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4p
ICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1wcm9tb3RlICgpCisgICJQcm9t
b3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5ncywgZGVj
cmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4KK0ZvciBsaXN0IGl0ZW1zLCBkZWNyZWFz
ZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24gYW5kIG1h
cmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3MgaW4gdGhlIHJlZ2lvbi4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5zaWVudC1tYXJrLW1vZGUgbWFyay1hY3Rp
dmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZS1yZWdpb24gLTEpKQorICAg
KChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgIChtYXJrZG93bi10cy0tbGlz
dC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9y
LWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWRlbW90ZSAoKQorICAiRGVtb3Rl
IHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5ncywgaW5jcmVh
c2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0ZvciBsaXN0IGl0ZW1zLCBpbmNyZWFzZSBu
ZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24gYW5kIG1hcmsg
YWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0aGUgcmVnaW9uLiIKKyAgKGludGVyYWN0
aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50LW1hcmstbW9kZSBtYXJrLWFjdGl2ZSkK
KyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbiAxKSkKKyAgICgobWFy
a2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAobWFya2Rvd24tdHMtLWxpc3QtcHJv
bW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3Rl
IDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUgKGRlbHRhKQor
ICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5IERFTFRBIGxldmVscy4KK05lZ2F0aXZl
IERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRpdmUgZGVtb3RlcyAobW9yZSAjKS4KK0lm
IHRoZSBoZWFkaW5nIGhhcyBhbiBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJyBzZXF1ZW5j
ZSwgdGhhdAorc2VxdWVuY2UgaXMgcmVzaXplZCB0byBtYXRjaCB0aGUgbmV3IGxldmVsLiIKKyAg
KHdoZW4tbGV0KiAoKGhlYWRpbmcgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50KSkKKyAg
ICAgICAgICAgICAgKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpCisgICAg
ICAgICAgICAgIChsZXZlbCAobGVuZ3RoICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkpKQor
ICAgICAgICAgICAgICAobmV3LWxldmVsICgrIGxldmVsIGRlbHRhKSkpCisgICAgKHdoZW4gKGFu
ZCAoPj0gbmV3LWxldmVsIDEpCisgICAgICAgICAgICAgICAoPD0gbmV3LWxldmVsIG1hcmtkb3du
LXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQorICAgICAgKGxldCogKChvcGVuZXItYmVn
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgICAob3BlbmVyLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAgICAgICAgICAgIChsaW5lLWVuZCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG9wZW5lci1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAg
ICAgICAgOzsgRGV0ZWN0IGEgQ29tbW9uTWFyayBjbG9zaW5nLWAjJyBzZXF1ZW5jZTogb3B0aW9u
YWwKKyAgICAgICAgICAgICA7OyB0cmFpbGluZyB3aGl0ZXNwYWNlLCBhIHJ1biBvZiBgIycsIGFu
ZCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICA7OyBzcGFjZS90YWIgYmV0d2VlbiBpdCBhbmQg
dGhlIGhlYWRpbmcgdGV4dC4KKyAgICAgICAgICAgICAoY2xvc2VyIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGxpbmUtZW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBvcGVuZXItZW5kKQorICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgoZW5kIChwb2ludCkpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBvcGVuZXItZW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKChiZWcgKHBvaW50KSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAod2hlbiAoYW5kICg8IGJlZyBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGJlZyBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUgYmVnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKD9ccyA/XHQpKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbnMgYmVnIGVuZCkpKSkpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgOzsgUmVzaXplIHRoZSBjbG9zZXIgZmlyc3Qgc28gaXQgZG9lc24ndCBzaGlmdCB0
aGUgb3BlbmVyLgorICAgICAgICAgICh3aGVuIGNsb3NlcgorICAgICAgICAgICAgKGRlbGV0ZS1y
ZWdpb24gKGNhciBjbG9zZXIpIChjZHIgY2xvc2VyKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIg
KGNhciBjbG9zZXIpKQorICAgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgbmV3LWxldmVs
ID8jKSkpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gb3BlbmVyLWJlZyBvcGVuZXItZW5kKQor
ICAgICAgICAgIChnb3RvLWNoYXIgb3BlbmVyLWJlZykKKyAgICAgICAgICAoaW5zZXJ0IChtYWtl
LXN0cmluZyBuZXctbGV2ZWwgPyMpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90
ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNoYW5nZSBhbGwgaGVhZGluZ3MgaW4gdGhl
IGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgorTmVnYXRpdmUgREVMVEEgcHJvbW90ZXMg
KGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3JlICMpLiIKKyAgKGxldCAoKGJlZyAocmVn
aW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgKHdoaWxlICg8IChwb2ludCkg
ZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQpCisgICAg
ICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSBkZWx0YSkpCisgICAgICAgIChm
b3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAg
KCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAgcGFzdCB0aGUg
cHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtkb3duLXRzLS1saXN0LW1vdmUgdCkKKyAg
ICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIHQpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICgpCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rp
b24gb3IgbGlzdCBpdGVtIGRvd24gcGFzdCB0aGUgbmV4dCBzaWJsaW5nLiIKKyAgKGludGVyYWN0
aXZlKQorICAoaWYgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisgICAgICAobWFy
a2Rvd24tdHMtLWxpc3QtbW92ZSBuaWwpCisgICAgKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUt
dXAtb3ItZG93biBuaWwpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZWN0aW9uLWZvbGRlZC1w
IChzZWN0aW9uKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU0VDVElPTidzIGhlYWRpbmcgaXMgZm9s
ZGVkLgorQ2hlY2tzIHdoZXRoZXIgdGhlIGVuZCBvZiB0aGUgaGVhZGluZyBsaW5lIGhhcyBhbiBv
dXRsaW5lCitpbnZpc2libGUgb3ZlcmxheS4iCisgIChsZXQgKChoZWFkaW5nICh0cmVlc2l0LW5v
ZGUtY2hpbGQgc2VjdGlvbiAwKSkpCisgICAgKHdoZW4gKGFuZCBoZWFkaW5nCisgICAgICAgICAg
ICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGhlYWRpbmcpICJhdHhfaGVhZGluZyIpKQor
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBoZWFkaW5nKSkKKyAgICAgICAgKG91dGxpbmUtaW52aXNpYmxlLXAgKHBvcy1lb2wpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93biAodXApCisg
ICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gc3VidHJlZS4KK0lmIFVQIGlzIG5vbi1uaWwsIG1v
dmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93bi4KK1ByZXNl
cnZlcyB0aGUgZm9sZGluZyBzdGF0ZSBvZiBib3RoIHNlY3Rpb25zLiIKKyAgKHdoZW4tbGV0KiAo
KHNlY3Rpb24gKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAg
KHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXByZXYtc2libGluZyBzZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtbmV4dC1zaWJsaW5nIHNlY3Rpb24pKSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0
LW5vZGUtdHlwZSBzaWJsaW5nKSAic2VjdGlvbiIpCisgICAgICAobGV0KiAoKGZpcnN0IChpZiB1
cCBzaWJsaW5nIHNlY3Rpb24pKQorICAgICAgICAgICAgIChzZWNvbmQgKGlmIHVwIHNlY3Rpb24g
c2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0LWZvbGRlZCAobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXAgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtZm9sZGVkIChtYXJrZG93
bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBzZWNvbmQpKQorICAgICAgICAgICAgIChmaXJzdC1zdGFy
dCAodHJlZXNpdC1ub2RlLXN0YXJ0IGZpcnN0KSkKKyAgICAgICAgICAgICAoc2Vjb25kLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgc2Vjb25kKSkKKyAgICAgICAgICAgICAoc2Vjb25kLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAgICAgIDs7IEV4dHJhY3Qgc2VwYXJh
dG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAg
KGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1zdGFydCBzZWNvbmQtc3RhcnQpKQor
ICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBmaXJzdC1yYXcpKQor
ICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBmaXJzdC1yYXcgKGxlbmd0aCBmaXJz
dC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcgKGJ1ZmZlci1zdWJzdHJpbmcgc2Vj
b25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtdGV4dCAoc3RyaW5n
LXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAgICAgKHRyYWlsaW5nIChzdWJzdHJp
bmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkpCisgICAgICAgICAgICAgKGxpbmUt
b2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IHNlY3Rp
b24pKSkpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQor
ICAgICAgICAoZ290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10
ZXh0IHNlcGFyYXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICA7OyBSZXN0b3JlIGZv
bGRpbmcgc3RhdGUKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hh
ciBmaXJzdC1zdGFydCkKKyAgICAgICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisg
ICAgICAgICAgICAoaWYgc2Vjb25kLWZvbGRlZAorICAgICAgICAgICAgICAgIChvdXRsaW5lLWhp
ZGUtc3VidHJlZSkKKyAgICAgICAgICAgICAgKG91dGxpbmUtc2hvdy1zdWJ0cmVlKSkpCisgICAg
ICAgICAgKG91dGxpbmUtbmV4dC1oZWFkaW5nKQorICAgICAgICAgICh3aGVuIChvdXRsaW5lLW9u
LWhlYWRpbmctcCkKKyAgICAgICAgICAgIChpZiBmaXJzdC1mb2xkZWQKKyAgICAgICAgICAgICAg
ICAob3V0bGluZS1oaWRlLXN1YnRyZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNob3ctc3Vi
dHJlZSkpKSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAg
ICAgZmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5n
dGggc2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRv
cikpKSkKKyAgICAgICAgKHdpdGgtc3VwcHJlc3NlZC13YXJuaW5ncyAoKGludGVyYWN0aXZlLW9u
bHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAobmV4dC1saW5lIGxpbmUtb2Zmc2V0KSkpKSkpCisK
Kzs7OyBMaXN0IG1hbmlwdWxhdGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVj
a2JveCAoKQorICAiVG9nZ2xlIHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1cnJlbnQg
bGluZS4KK1N3aXRjaGVzIGJldHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVyYWN0aXZl
KQorICAod2hlbi1sZXQqICgocG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlv
bikgKHBvaW50KSkpCisgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAg
ICAgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAg
ICh3aGVuLWxldCogKChtYXJrZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVl
c2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygidGFza19saXN0X21hcmtlcl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAobGV0ICgo
YmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xp
c3RfbWFya2VyX2NoZWNrZWQiKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
IChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAg
ICAgICAgKGluc2VydCAoaWYgY2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5uZXJtb3N0
IGxpc3RfaXRlbSBub2RlIGNvbnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhlIHBvc2l0
aW9uIGFmdGVyIGBiYWNrLXRvLWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCithIGxpbmUn
cyBsZWFkaW5nIHdoaXRlc3BhY2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBsaW5lLAor
bm90IHRvIGEgcHJlY2VkaW5nIGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVzcGFjZS4K
K0luc2lkZSBibG9jayBxdW90ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24g
cGFzdAordGhlIGA+JyBtYXJrZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNp
b24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAo
dHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9sIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5kLXBvc2l0
aW9uKSkpCisgICAgKG9yIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAg
ICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAg
ICAgIDs7IFZlcmlmeSB0aGUgY3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdzIHJhbmdl
LgorICAgICAgICAgIDs7IGB0cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2RlIGluc2lk
ZSBhIGxpc3RfaXRlbQorICAgICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBhIHByZWNl
ZGluZyBsaW5lLgorICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAg
ICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBpdGVtKSkK
KyAgICAgICAgOzsgV2hlbiBiYWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2NrIHF1b3Rl
IG1hcmtlcnMsCisgICAgICAgIDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0aGUgY29u
dGVudCBwb3NpdGlvbi4KKyAgICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdoZW4gKD4g
Y29udGVudC1wb3MgcG9zKQorICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0cmVlc2l0
LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChsZXQgKChp
dGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY25v
ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIp
KSkpKQorICAgICAgICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAg
ICAgICAgICAgICBpdGVtKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1hcmtl
ci13aWR0aCAoaXRlbSkKKyAgIlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3QgbWFya2Vy
IGluY2x1ZGluZyB0cmFpbGluZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpICh0cmVl
c2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRl
bS1yZWdpb24gKGl0ZW0pCisgICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBmb3IgSVRF
TSwgY2xhbXBlZCB0byBmdWxsIGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9m
IHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBpdCBkb2Vz
IG5vdCBleHRlbmQgaW50byB0aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGljaCB0cmVl
LXNpdHRlciBtYXkgaW5jbHVkZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRl
bSkpCisgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAg
KGVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1lbmQgaXRlbSkpCisgICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkgKGxpbmUt
YmVnaW5uaW5nLXBvc2l0aW9uKSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBub24tbmls
IGlmIElURU0gaXMgYW4gb3JkZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChsZXQgKCht
YXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIG1hcmtlcikgImxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVzdGluZyBv
ZiB0aGUgbGlzdCBpdGVtIGF0IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRlbW90ZSAo
aW5kZW50KTsgb3RoZXJ3aXNlIHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1iZXJlZCkg
bGlzdCBpdGVtcyBhcmUgc2tpcHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25vdCBzdXBw
b3J0IG5lc3RpbmcgdGhlbSBieSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChpdGVtICht
YXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJlZ2lvbiAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAgIChiZWcg
KGNhciByZWdpb24pKQorICAgICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisgICAgKHdo
ZW4gKG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAodXNlci1l
cnJvciAiT3JkZXJlZCBsaXN0IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIgbGltaXRh
dGlvbikiKSkKKyAgICAoaWYgZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50IGJ5IG1h
cmtlciB3aWR0aCwgb25seSBpZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7IHNpYmxp
bmcgdG8gbmVzdCB1bmRlciAobGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0cmVlc2l0
LW5vZGUtcHJldi1zaWJsaW5nIGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBl
bmQgKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7OyBQcm9t
b3RlOiBkZWRlbnQgdG8gZ3JhbmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBhcmVudC1s
aXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFuZHBhcmVu
dCAoYW5kIHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0KSkpCisg
ICAgICAgICAgICAgKGl0ZW0tY29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgYmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAg
KHdoZW4gKGFuZCBncmFuZHBhcmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgZ3JhbmRwYXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAgICAgICAg
ICg+IGl0ZW0tY29sIDApKQorICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBncmFuZHBhcmVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVu
dGF0aW9uKSkpKQorICAgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0gZ3AtY29s
IGl0ZW0tY29sKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIChu
b2RlKQorICAiUmV0dXJuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyBOT0RF
J3Mgc3RhcnQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpCisgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbGlzdC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRlbSBhdCBw
b2ludC4KK0lmIFVQIGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsg
b3RoZXJ3aXNlIG1vdmUgZG93bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIGl0ZW0p
KSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAibGlzdF9p
dGVtIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisgICAgICAg
ICAgICAgKHNlY29uZCAoaWYgdXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3Qt
c3RhcnQgKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAgICAgICAo
c2Vjb25kLXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQorICAgICAg
ICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAg
ICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVz
cGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0
YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmlt
LXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZp
cnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAo
YnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAg
KHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAg
ICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkK
KyAgICAgICAgICAgICAobGluZS1vZmZzZXQgKC0gKGxpbmUtbnVtYmVyLWF0LXBvcyAocG9pbnQp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1udW1iZXItYXQtcG9zCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKSkpKQor
ICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQorICAgICAgICAo
Z290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10ZXh0IHNlcGFy
YXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICAoZ290by1jaGFyIChpZiB1cAorICAg
ICAgICAgICAgICAgICAgICAgICBmaXJzdC1zdGFydAorICAgICAgICAgICAgICAgICAgICAgKCsg
Zmlyc3Qtc3RhcnQgKGxlbmd0aCBzZWNvbmQtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAg
IChsZW5ndGggc2VwYXJhdG9yKSkpKQorICAgICAgICAod2l0aC1zdXBwcmVzc2VkLXdhcm5pbmdz
ICgoaW50ZXJhY3RpdmUtb25seSBuZXh0LWxpbmUpKQorICAgICAgICAgIChuZXh0LWxpbmUgbGlu
ZS1vZmZzZXQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QgKCZvcHRp
b25hbCBzdGFydCkKKyAgIlJlbnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9pbnQuCitOdW1i
ZXJzIGFyZSBhc3NpZ25lZCBzZXF1ZW50aWFsbHkgc3RhcnRpbmcgZnJvbSB0aGUgZmlyc3QgaXRl
bSdzCitudW1iZXIuICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50IFNUQVJULCBzdGFydCBudW1iZXJp
bmcgZnJvbSB0aGF0Cit2YWx1ZSBpbnN0ZWFkLiAgRG9lcyBub3RoaW5nIGZvciB1bm9yZGVyZWQg
bGlzdHMuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgoaXRlbSAobWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChsaXN0LW5vZGUgKHRy
ZWVzaXQtbm9kZS1wYXJlbnQgaXRlbSkpKQorICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbGlzdC1ub2RlKSAibGlzdCIpCisgICAgICAobGV0KiAoKGNoaWxkcmVuICh0cmVlc2l0
LW5vZGUtY2hpbGRyZW4gbGlzdC1ub2RlKSkKKyAgICAgICAgICAgICAoaXRlbXMgKHNlcS1maWx0
ZXIgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0ZW0iKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRyZW4pKQorICAgICAgICAgICAgIChmaXJzdC1tYXJrZXIgKHRyZWVz
aXQtbm9kZS1jaGlsZCAoY2FyIGl0ZW1zKSAwKSkKKyAgICAgICAgICAgICAobWFya2VyLXR5cGUg
KHRyZWVzaXQtbm9kZS10eXBlIGZpcnN0LW1hcmtlcikpKQorICAgICAgICAod2hlbiAobWVtYmVy
IG1hcmtlci10eXBlICcoImxpc3RfbWFya2VyX2RvdCIgImxpc3RfbWFya2VyX3BhcmVudGhlc2lz
IikpCisgICAgICAgICAgKGxldCogKChiYXNlIChpZiBzdGFydAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHByZWZpeC1udW1lcmljLXZhbHVlIHN0YXJ0KQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChzdHJpbmctdG8tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtdGV4dCBmaXJzdC1tYXJrZXIgdCkpKSkKKyAgICAgICAgICAgICAgICAgKGNvdW50
IChsZW5ndGggaXRlbXMpKQorICAgICAgICAgICAgICAgICA7OyBTdGFydCBmcm9tIHRoZSBsYXN0
IG51bWJlciBhbmQgd29yayBiYWNrd2FyZHMgc28KKyAgICAgICAgICAgICAgICAgOzsgdGhhdCBl
YXJsaWVyIGJ1ZmZlciBwb3NpdGlvbnMgcmVtYWluIHZhbGlkLgorICAgICAgICAgICAgICAgICAo
bnVtICgrIGJhc2UgY291bnQgLTEpKSkKKyAgICAgICAgICAgIChkb2xpc3QgKGl0IChyZXZlcnNl
IGl0ZW1zKSkKKyAgICAgICAgICAgICAgKGxldCogKChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGls
ZCBpdCAwKSkKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItZW5kICh0cmVlc2l0LW5vZGUt
ZW5kIG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAoYm9sIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBtYXJrZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1w
b3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgOzsgRnVsbCB0ZXh0IGZyb20gYm9sIHRv
IGVuZCBvZiBtYXJrZXIgaW5jbHVkZXMKKyAgICAgICAgICAgICAgICAgICAgIDs7IGFueSBsZWFk
aW5nIHdoaXRlc3BhY2UsIHRoZSBudW1iZXIsIGFuZCB0aGUKKyAgICAgICAgICAgICAgICAgICAg
IDs7IHNlcGFyYXRvciAoZS5nLiwgIi4gIiBvciAiLlx0IikuCisgICAgICAgICAgICAgICAgICAg
ICAoZnVsbC10ZXh0IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvbCBtYXJrZXItZW5kKSkKKyAgICAgICAgICAgICAgICAg
ICAgIChpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBcXChbWzpibGFuazpdXSpcXClbMC05XSIg
ZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgZnVs
bC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAgICAgICAgICAgICAgICAg
ICAgKHN1ZmZpeC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1tYXRjaAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFtbOmJsYW5rOl1dKlswLTldK1xcKC4qXFwp
XFwnIiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcg
MSBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiLiAiKSkKKyAgICAgICAgICAg
ICAgICAgICAgIChuZXctdGV4dCAoY29uY2F0IGluZGVudC1zdHIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChudW1iZXItdG8tc3RyaW5nIG51bSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeC1zdHIpKSkKKyAgICAgICAgICAgICAg
ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJvbCBt
YXJrZXItZW5kKQorICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBib2wpCisgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0IG5ldy10ZXh0KSkpCisgICAgICAgICAgICAgIChjbC1kZWNmIG51bSkp
CisgICAgICAgICAgICAobWVzc2FnZSAiUmVudW1iZXJlZCAlZCBpdGVtcyIgY291bnQpKSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgKGl0ZW0pCisgICJS
ZXR1cm4gdGhlIG1hcmtlciBzdHJpbmcgZm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElURU0uCitG
b3IgdW5vcmRlcmVkIGl0ZW1zLCByZXVzZSB0aGUgc2FtZSBtYXJrZXIgY2hhcmFjdGVyLgorRm9y
IG9yZGVyZWQgaXRlbXMsIGluY3JlbWVudCB0aGUgbnVtYmVyLiIKKyAgKGxldCogKChtYXJrZXIg
KHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKQorICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9k
ZS10eXBlIG1hcmtlcikpCisgICAgICAgICAoaW5kZW50IChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAg
ICAgICAgICAgICAgICAoY3VycmVudC1pbmRlbnRhdGlvbikpKQorICAgICAgICAgKHByZWZpeCAo
bWFrZS1zdHJpbmcgaW5kZW50ID9ccykpKQorICAgIChwY2FzZSB0eXBlCisgICAgICAoImxpc3Rf
bWFya2VyX21pbnVzIiAoY29uY2F0IHByZWZpeCAiLSAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJf
cGx1cyIgIChjb25jYXQgcHJlZml4ICIrICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9zdGFyIiAg
KGNvbmNhdCBwcmVmaXggIiogIikpCisgICAgICAoImxpc3RfbWFya2VyX2RvdCIKKyAgICAgICAo
bGV0ICgobnVtIChzdHJpbmctdG8tbnVtYmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkp
KSkKKyAgICAgICAgIChjb25jYXQgcHJlZml4IChudW1iZXItdG8tc3RyaW5nICgxKyBudW0pKSAi
LiAiKSkpCisgICAgICAoImxpc3RfbWFya2VyX3BhcmVudGhlc2lzIgorICAgICAgIChsZXQgKChu
dW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQorICAg
ICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1zdHJpbmcgKDErIG51bSkpICIpICIpKSkK
KyAgICAgIChfIChjb25jYXQgcHJlZml4ICItICIpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LW5ldy1tYXJrZXItZm9yLWxpbmUgKGl0ZW0pCisgICJSZXR1cm4gdGhlIG1hcmtlciBzdHJpbmcg
Zm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElURU0uCitXaGVuIHRoZSBjdXJyZW50IGxpbmUgaGFz
IGEgbGlzdCBtYXJrZXIgcGF0dGVybiBhdCBhIGRpZmZlcmVudAoraW5kZW50YXRpb24gdGhhbiBJ
VEVNIChlLmcuLCBhIG5lc3RlZCBtYXJrZXIgdGhhdCB0aGUgZ3JhbW1hciBkaWQKK25vdCByZWNv
Z25pemUgYXMgYSBsaXN0X2l0ZW0pLCB1c2UgdGhlIGN1cnJlbnQgbGluZSdzIG1hcmtlci4KK090
aGVyd2lzZSwgZmFsbCBiYWNrIHRvIGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIn
LiIKKyAgKGxldCAoKG1hcmtlci1ub2RlICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisg
ICAgKGlmICg9IChsaW5lLW51bWJlci1hdC1wb3MpCisgICAgICAgICAgICAobGluZS1udW1iZXIt
YXQtcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyLW5vZGUpKSkKKyAgICAgICAgOzsgSXRl
bSdzIG1hcmtlciBpcyBvbiB0aGUgY3VycmVudCBsaW5lOiB1c2UgaXQgbm9ybWFsbHkuCisgICAg
ICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgaXRlbSkKKyAgICAgIDs7IEl0
ZW0ncyBtYXJrZXIgaXMgb24gYSBkaWZmZXJlbnQgbGluZS4gIFRoZSBwYXJzZXIgbWF5IGhhdmUK
KyAgICAgIDs7IGZhaWxlZCB0byByZWNvZ25pemUgYSBuZXN0ZWQgbWFya2VyIChlLmcuLCBhIGxv
bmUgYCAgLSAnCisgICAgICA7OyBwYXJzZWQgYXMgYSBzZXRleHQgaGVhZGluZykuICBSZWFkIHRo
ZSBjdXJyZW50IGxpbmUuCisgICAgICAobGV0ICgobGluZSAoYnVmZmVyLXN1YnN0cmluZy1uby1w
cm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAo
bGluZS1lbmQtcG9zaXRpb24pKSkpCisgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoCisgICAgICAg
ICAgICAgIlxcYFxcKFtbOmJsYW5rOl1dKlxcKVxcKFstKitdIFxcfFxcKFswLTldK1xcKVxcKFsu
KV0gXFwpXFwpIgorICAgICAgICAgICAgIGxpbmUpCisgICAgICAgICAgICAobGV0ICgoaW5kZW50
IChtYXRjaC1zdHJpbmcgMSBsaW5lKSkKKyAgICAgICAgICAgICAgICAgIChudW0gKG1hdGNoLXN0
cmluZyAzIGxpbmUpKQorICAgICAgICAgICAgICAgICAgKHN1ZmZpeCAobWF0Y2gtc3RyaW5nIDQg
bGluZSkpCisgICAgICAgICAgICAgICAgICAodW5vcmRlcmVkIChtYXRjaC1zdHJpbmcgMiBsaW5l
KSkpCisgICAgICAgICAgICAgIChpZiBudW0KKyAgICAgICAgICAgICAgICAgIChjb25jYXQgaW5k
ZW50IChudW1iZXItdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KDErIChzdHJpbmctdG8tbnVtYmVyIG51bSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBz
dWZmaXgpCisgICAgICAgICAgICAgICAgKGNvbmNhdCBpbmRlbnQgdW5vcmRlcmVkKSkpCisgICAg
ICAgICAgOzsgTm8gbWFya2VyIHBhdHRlcm4gb24gY3VycmVudCBsaW5lOiB1c2UgaXRlbSdzIG1h
cmtlci4KKyAgICAgICAgICAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIGl0ZW0p
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoICgmb3B0
aW9uYWwgcG9zKQorICAiQ291bnQgdGhlIG51bWJlciBvZiBgPicgYmxvY2sgcXVvdGUgbWFya2Vy
cyBvbiB0aGUgbGluZSBhdCBQT1MuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAod2hlbiBwb3Mg
KGdvdG8tY2hhciBwb3MpKQorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAobGV0ICgoY291
bnQgMCkpCisgICAgICAod2hpbGUgKGFuZCAobm90IChlb2xwKSkKKyAgICAgICAgICAgICAgICAg
IChtZW1xIChjaGFyLWFmdGVyKSAnKD8+ID9ccyA/XHQpKSkKKyAgICAgICAgKHdoZW4gKGVxIChj
aGFyLWFmdGVyKSA/PikKKyAgICAgICAgICAoc2V0cSBjb3VudCAoMSsgY291bnQpKSkKKyAgICAg
ICAgKGZvcndhcmQtY2hhciAxKSkKKyAgICAgIGNvdW50KSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy1uZXdsaW5lICgpCisgICJJbnNlcnQgYSBuZXdsaW5lLCBjb250aW51aW5nIHRoZSBjdXJyZW50
IGNvbnRleHQuCitJbnNpZGUgYSBsaXN0IGl0ZW0sIHRoZSBuZXcgbGluZSBpcyBpbmRlbnRlZCB0
byB0aGUgaXRlbSdzIHRleHQKK2NvbHVtbiBzbyB0aGUgcGFyYWdyYXBoIGNvbnRpbnVlcy4gIEEg
c2Vjb25kIFJFVCBvbiBhIGJsYW5rCitjb250aW51YXRpb24gbGluZSByZW1vdmVzIHRoZSBpbmRl
bnRhdGlvbiwgZHJvcHBpbmcgcG9pbnQgdG8KK2NvbHVtbiAwIHNvIHRoZSB0cmVlLXNpdHRlciBn
cmFtbWFyIGVuZHMgdGhlIGxpc3QuCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5ldyBsaW5l
IGluY2x1ZGVzIHRoZSBxdW90ZSBwcmVmaXguCitPdGhlcndpc2UsIGluc2VydCBhIHBsYWluIG5l
d2xpbmUuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0
CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAo
cG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICA7OyBUcmVlLXNp
dHRlciBtYXkgcmVwb3J0IGEgbm9kZSBpbnNpZGUgYSBibG9ja19xdW90ZSBldmVuCisgICAgICAg
ICA7OyB3aGVuIHBvaW50IGlzIG9uIGEgYmxhbmsgbGluZSBwYXN0IHRoZSBxdW90ZSAodGhlIG5v
ZGUKKyAgICAgICAgIDs7IHNwYW4gY2FuIGV4dGVuZCBiZXlvbmQgdGhlIGA+JyBsaW5lcykuICBP
bmx5IHRyZWF0IHRoZQorICAgICAgICAgOzsgbGluZSBhcyBpbnNpZGUgYSBibG9jayBxdW90ZSBp
ZiBpdCBhY3R1YWxseSBzdGFydHMgd2l0aAorICAgICAgICAgOzsgYSBgPicgbWFya2VyLgorICAg
ICAgICAgKGluLWJxIChhbmQgKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGJsb2NrX3F1
b3RlXFwnIikKKyAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg
IChsb29raW5nLWF0LXAgIlsgXHRdKj4iKSkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtkb3duLXRz
LS1saXN0LWl0ZW0tYXQtcG9pbnQpKSkKKyAgICAoY29uZAorICAgICAoaXRlbQorICAgICAgKGxl
dCogKChjb2wgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRlbSkpCisgICAg
ICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3Rl
LXByZWZpeCkpKQorICAgICAgICAgICAgIDs7IGBjb2wnIGlzIHRoZSBhYnNvbHV0ZSBjb2x1bW4g
b2YgdGhlIGl0ZW0ncyB0ZXh0LAorICAgICAgICAgICAgIDs7IHdoaWNoIGluc2lkZSBhIGJsb2Nr
IHF1b3RlIGluY2x1ZGVzIHRoZSAiPiAiIHByZWZpeAorICAgICAgICAgICAgIDs7IHdpZHRoLiAg
U2luY2Ugd2UgaW5zZXJ0IGBicS1wcmVmaXgnIHNlcGFyYXRlbHksIHdlCisgICAgICAgICAgICAg
OzsgbXVzdCBzdWJ0cmFjdCBpdHMgbGVuZ3RoIHRvIGF2b2lkIGRvdWJsaW5nIGl0LgorICAgICAg
ICAgICAgIChpbmRlbnQgKC0gY29sIChsZW5ndGggKG9yIGJxLXByZWZpeCAiIikpKSkKKyAgICAg
ICAgICAgICA7OyBUaGUgY3VycmVudCBsaW5lIGlzICJibGFuayIgaWYgaXQgY29udGFpbnMgb25s
eQorICAgICAgICAgICAgIDs7IHdoaXRlc3BhY2UgKG9yIHF1b3RlIHByZWZpeCArIHdoaXRlc3Bh
Y2UpIGFuZCBubworICAgICAgICAgICAgIDs7IGFjdHVhbCB0ZXh0IGZyb20gYSBwcmV2aW91cyBS
RVQncyBjb250aW51YXRpb24gaW5kZW50LgorICAgICAgICAgICAgIChibGFuay1saW5lLXAgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2Yt
bGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIl5bPiBcdF0qJCIpKSkKKyAgICAgICAgICAgICA7OyBQ
b2ludCBpcyBiZWZvcmUgdGhlIGl0ZW0ncyB0ZXh0IChhdCBvciBiZWZvcmUgdGhlCisgICAgICAg
ICAgICAgOzsgbWFya2VyKS4gIEEgcGxhaW4gbmV3bGluZSBpcyBhcHByb3ByaWF0ZSBoZXJlLCBh
ZGRpbmcKKyAgICAgICAgICAgICA7OyBjb250aW51YXRpb24gaW5kZW50IHdvdWxkIHNoaWZ0IHRo
ZSBleGlzdGluZyBjb250ZW50CisgICAgICAgICAgICAgOzsgdG8gdGhlIHJpZ2h0LgorICAgICAg
ICAgICAgIChiZWZvcmUtdGV4dC1wICg8PSAoY3VycmVudC1jb2x1bW4pIGNvbCkpKQorICAgICAg
ICAoY29uZAorICAgICAgICAgKGJsYW5rLWxpbmUtcAorICAgICAgICAgIDs7IFRoZSB1c2VyIHBy
ZXNzZWQgUkVUIG9uIGFuIGFscmVhZHktYmxhbmsgY29udGludWF0aW9uCisgICAgICAgICAgOzsg
bGluZS4gIEluc3RlYWQgb2YgYWRkaW5nIHlldCBhbm90aGVyIGluZGVudGVkIGJsYW5rCisgICAg
ICAgICAgOzsgbGluZSwgcmVtb3ZlIHRoZSBpbmRlbnRhdGlvbiBhbmQgaW5zZXJ0IGEgcGxhaW4K
KyAgICAgICAgICA7OyBuZXdsaW5lLiAgVGhpcyBkcm9wcyBwb2ludCB0byBjb2x1bW4gMCwgd2hp
Y2ggaXMgdGhlCisgICAgICAgICAgOzsgb25seSB3YXkgdGhlIHRyZWUtc2l0dGVyIG1hcmtkb3du
IGdyYW1tYXIgZW5kcyBhIGxpc3Q6CisgICAgICAgICAgOzsgYmxhbmsgbGluZXMgYWxvbmUgZG8g
Tk9UIGVuZCBhIGxpc3QsIG9ubHkKKyAgICAgICAgICA7OyBub24taW5kZW50ZWQgY29udGVudCBk
b2VzLiAgU28gdGhpcyBnaXZlcyB0aGUgdXNlciBhCisgICAgICAgICAgOzsgbmF0dXJhbCAiUkVU
IFJFVCB0byBleGl0IHRoZSBsaXN0IiB3b3JrZmxvdy4KKyAgICAgICAgICAoZGVsZXRlLXJlZ2lv
biAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpCisgICAgICAg
ICAgKG5ld2xpbmUpKQorICAgICAgICAgKGJlZm9yZS10ZXh0LXAKKyAgICAgICAgICA7OyBQb2lu
dCBpcyBvbiBvciBiZWZvcmUgdGhlIGxpc3QgbWFya2VyOyBqdXN0IGluc2VydCBhCisgICAgICAg
ICAgOzsgcGxhaW4gbmV3bGluZSBzbyB0aGUgaXRlbSBpcyBwdXNoZWQgZG93biB1bmNoYW5nZWQu
CisgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgKHQKKyAgICAgICAgICAoZGVsZXRlLWhv
cml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKHdoZW4gYnEt
cHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmlu
ZyBpbmRlbnQgP1xzKSkpKSkpCisgICAgIChpbi1icQorICAgICAgKGxldCAoKGJxLXByZWZpeCAo
bWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAgICA7OyBBIGxpbmUg
d2l0aCBvbmx5IHF1b3RlIG1hcmtlcnMgYW5kIHdoaXRlc3BhY2UgKGUuZy4sCisgICAgICAgICAg
ICA7OyAiPiAiKSBpcyAiYmxhbmsiIGluc2lkZSB0aGUgcXVvdGUuICBSRVQgaGVyZSBleGl0cyB0
aGUKKyAgICAgICAgICAgIDs7IHF1b3RlLCBzYW1lIGFzIFJFVCBvbiBhIGJsYW5rIGNvbnRpbnVh
dGlvbiBsaW5lIGV4aXRzIGEKKyAgICAgICAgICAgIDs7IGxpc3Q6IHJlbW92ZSB0aGUgcHJlZml4
IGFuZCBkcm9wIHRvIGNvbHVtbiAwLgorICAgICAgICAgICAgKGJsYW5rLWxpbmUtcCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcCAiXls+IFx0XSokIikp
KSkKKyAgICAgICAgKGlmIGJsYW5rLWxpbmUtcAorICAgICAgICAgICAgKHByb2duCisgICAgICAg
ICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5k
LXBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgIChkZWxldGUt
aG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAgICAgICAgICAoaW5zZXJ0
IGJxLXByZWZpeCkpKSkKKyAgICAgOzsgRGVmYXVsdDogcGxhaW4gbmV3bGluZS4gIFRoaXMgYWxz
byBoYW5kbGVzIGVtcHR5IGxpc3QgbWFya2VycworICAgICA7OyAoZS5nLiwgIi0gIiB3aXRoIG5v
IHRleHQpIHRoYXQgdGhlIGdyYW1tYXIgcGFyc2VzIGFzIEVSUk9SCisgICAgIDs7IG5vZGVzIHJh
dGhlciB0aGFuIGxpc3RfaXRlbSBub2Rlcy4KKyAgICAgOzsKKyAgICAgOzsgV2hlbiB0aGUgY3Vy
cmVudCBsaW5lIGlzIGJsYW5rICh3aGl0ZXNwYWNlIG9ubHkpLCBpdCBpcyBhCisgICAgIDs7IGNv
bnRpbnVhdGlvbi1pbmRlbnQgbGluZSBsZWZ0IGJ5IGEgcHJldmlvdXMgUkVUIHRoYXQKKyAgICAg
OzsgdHJlZS1zaXR0ZXIgbm8gbG9uZ2VyIGNvbnNpZGVycyBwYXJ0IG9mIGEgbGlzdF9pdGVtLiAg
Q2xlYXIKKyAgICAgOzsgdGhlIHdoaXRlc3BhY2Ugc28gbm8gdHJhaWxpbmcgc3BhY2VzIHJlbWFp
biwgYW5kIGluc2VydCBhCisgICAgIDs7IHBsYWluIG5ld2xpbmUgYXQgY29sdW1uIDAgdG8gZXhp
dCB0aGUgbGlzdCBjb250ZXh0LgorICAgICAodAorICAgICAgKHdoZW4gKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKGxvb2tp
bmctYXQtcCAiXlsgXHRdKyQiKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5u
aW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgIChuZXdsaW5lKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gKCkKKyAgIkluc2VydCBhIG5l
dyBsaXN0IGl0ZW0sIHNwbGl0dGluZyB0ZXh0IGF0IHBvaW50LgorVGV4dCBhZnRlciBwb2ludCBt
b3ZlcyB0byB0aGUgbmV3IGl0ZW0uICBBdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZSwKK2FuIGVt
cHR5IGl0ZW0gaXMgaW5zZXJ0ZWQgYWJvdmUgYW5kIHRoZSBjdXJyZW50IGNvbnRlbnQgaXMgcHVz
aGVkIGRvd24uCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5ldyBsaW5lIGluY2x1ZGVzIHRo
ZSBxdW90ZSBwcmVmaXguCitGb3Igb3JkZXJlZCBsaXN0cywgdGhlIG51bWJlciBpcyBpbmNyZW1l
bnRlZC4KK1doZW4gbm90IGluc2lkZSBhIGxpc3QsIGZhbGwgYmFjayB0byBgbWFya2Rvd24tdHMt
bmV3bGluZScuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNpdC1ub2Rl
LWF0CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9u
KSAocG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICAoaW4tYnEg
KGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwgbm9kZSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAg
ICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAg
IChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQt
cCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxIChtYXJrZG93
bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkpCisgICAgICAgICAoaXRlbSAobWFya2Rvd24tdHMt
LWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAgICgoYW5kIGl0ZW0KKyAgICAg
ICAgICAgKG9yIChub3QgaW4tYnEpCisgICAgICAgICAgICAgICAoPj0gKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKQorICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
bGluZS1ibG9jay1xdW90ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0ICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpKSkpCisgICAgICAobGV0KiAoKG5l
dy1tYXJrZXIgKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lIGl0ZW0pKQorICAgICAg
ICAgICAgIChhdC1ib2wgKDw9IChjdXJyZW50LWNvbHVtbikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRv
LWluZGVudGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1u
KSkpKQorICAgICAgICAgICAgICh0YWlsICh3aGVuIChhbmQgKG5vdCBhdC1ib2wpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobm90IChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkpCisg
ICAgICAgICAgICAgICAgICAgICAoZGVsZXRlLWFuZC1leHRyYWN0LXJlZ2lvbgorICAgICAgICAg
ICAgICAgICAgICAgIChwb2ludCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSkKKyAgICAgICAgKGlm
IGF0LWJvbAorICAgICAgICAgICAgOzsgQXQgQk9MOiBpbnNlcnQgZW1wdHkgaXRlbSBhYm92ZSwg
cHVzaCBjdXJyZW50IGxpbmUgZG93bi4KKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAg
ICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICh3aGVuIGJxLXByZWZpeCAoaW5z
ZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgICAgIChpbnNlcnQgbmV3LW1hcmtlciAiXG4iKQor
ICAgICAgICAgICAgICAoYmFjay10by1pbmRlbnRhdGlvbikpCisgICAgICAgICAgOzsgTWlkLWxp
bmUgb3IgRU9MOiBuZXcgaXRlbSBiZWxvdyB3aXRoIHRhaWwgdGV4dC4KKyAgICAgICAgICAoZGVs
ZXRlLWhvcml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKHdo
ZW4gYnEtcHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IG5ldy1t
YXJrZXIpCisgICAgICAgICAgKHdoZW4gdGFpbCAoc2F2ZS1leGN1cnNpb24gKGluc2VydCAoc3Ry
aW5nLXRyaW0tbGVmdCB0YWlsKSkpKSkpKQorCisgICAgIDs7IE5vdCBpbiBhIGxpc3Q6IGZhbGwg
YmFjayB0byBuZXdsaW5lIGJlaGF2aW9yLgorICAgICAodCAobWFya2Rvd24tdHMtbmV3bGluZSkp
KSkpCisKKzs7OyBGaWxsaW5nOgorCis7OyBUT0RPOiBSZW1vdmUgdGhlIHBpcGVfdGFibGUgYmxv
Y2sgaWYgd2UgaW1wbGVtZW50IHBpcGVfdGFibGUgZmlsbC4KKyhkZWZjb25zdCBtYXJrZG93bi10
cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICcoWyhmZW5jZWRfY29kZV9ibG9jaykg
KGluZGVudGVkX2NvZGVfYmxvY2spIChwaXBlX3RhYmxlKV0gQGJsb2NrKQorICAiVHJlZS1zaXR0
ZXIgcXVlcnkgbWF0Y2hpbmcgYmxvY2tzIHdoZXJlIGZpbGxpbmcgaXMgaW5oaWJpdGVkLiIpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIChpdGVtKQorICAiUmV0
dXJuIHRoZSBjb2x1bW4gd2hlcmUgdGhlIHRleHQgb2YgbGlzdCBJVEVNIHN0YXJ0cy4KK1RoaXMg
aXMgdGhlIGNvbHVtbiBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoIG5vZGUgaW5zaWRlIElURU0sIG9y
Cit0aGUgd2lkdGggb2YgdGhlIGxpc3QgbWFya2VyIGlmIG5vIHBhcmFncmFwaCBpcyBmb3VuZC4i
CisgIChsZXQgKChwYXJhZ3JhcGggKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxgcGFy
YWdyYXBoXFwnIikpKQorICAgIChpZiBwYXJhZ3JhcGgKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHBhcmFncmFwaCkpCisg
ICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQt
bm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQgbWFya2Vy
KQorICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIChpdGVtIGp1c3RpZnkpCisgICJGaWxsIHRoZSBj
b250ZW50cyBvZiBsaXN0IElURU0sIHByZXNlcnZpbmcgaXRzIGluZGVudGF0aW9uLgorTmFycm93
cyB0byBJVEVNJ3Mgb3duIHBhcmFncmFwaCBjb250ZW50IChleGNsdWRpbmcgbmVzdGVkIGxpc3Rz
KQorYW5kIHNldHMgYGZpbGwtcHJlZml4JyB0byBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0
aCB0aGUgc3RhcnQKK29mIHRoZSBpdGVtJ3MgdGV4dC4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwt
cGFyYWdyYXBoJy4iCisgIChsZXQqICgoZmlsbC1wcmVmaXggKG1ha2Utc3RyaW5nIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID9ccykpCisgICAgICAgICA7OyBGaW5kIHRoZSBpdGVtJ3Mgb3duIHBhcmFn
cmFwaCAoZmlyc3QgcGFyYWdyYXBoIGNoaWxkKS4KKyAgICAgICAgIDs7IElmIHRoZSBpdGVtIGhh
cyBuZXN0ZWQgbGlzdHMsIG5hcnJvdyB0byBqdXN0IHRoZQorICAgICAgICAgOzsgcGFyYWdyYXBo
IHNvIHdlIGRvbid0IG1lcmdlIG5lc3RlZCBpdGVtcy4KKyAgICAgICAgIChwYXJhICh0cmVlc2l0
LXNlYXJjaC1zdWJ0cmVlIGl0ZW0gIlxcYHBhcmFncmFwaFxcJyIgbmlsIG5pbCAxKSkKKyAgICAg
ICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAgICAgIChlbmQgKGlmIHBh
cmEKKyAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHBhcmEpCisgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpKQorICAgICAgICAgOzsgVXNlIGRlZmF1bHQg
cGFyYWdyYXBoIG1vdGlvbiBpbnNpZGUgdGhlIG5hcnJvd2VkIHJlZ2lvbgorICAgICAgICAgOzsg
c28gdGhhdCB0aGUgaW5uZXIgYGZpbGwtcGFyYWdyYXBoJyBkb2VzIG5vdCByZS1lbnRlciBvdXIK
KyAgICAgICAgIDs7IGN1c3RvbSBwYXJhZ3JhcGgtZmluZGluZyBsb2dpYy4KKyAgICAgICAgIChm
aWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgpKQorICAg
IChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAg
ICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgIDs7IFJldHVybiBub24tbmlsIHRvIHNp
Z25hbCB0aGF0IGZpbGxpbmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICA7OyBhcyBwZXIgdGhlIGNv
bnRyYWN0IG9mIGBmaWxsLXBhcmFncmFwaC1mdW5jdGlvbicuCisgICAgdCkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCAoKQorICAiUmV0dXJuIHRoZSBmaWxsIHByZWZpeCBm
b3IgdGhlIGN1cnJlbnQgbGluZSBpbiBNYXJrZG93bi4KK1doZW4gaW5zaWRlIGEgbGlzdCBpdGVt
LCByZXR1cm4gc3BhY2VzIG1hdGNoaW5nIHRoZSBjb2x1bW4gd2hlcmUKK3RoZSBpdGVtJ3MgdGV4
dCBzdGFydHMuIgorICAoYW5kLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAg
ICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9pbnQp
KQorICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChpdGVtICh0
cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAgKG1ha2Ut
c3RyaW5nIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pID9ccykpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGggKGFyZykKKyAgIk1v
dmUgZm9yd2FyZCBieSBBUkcgcGFyYWdyYXBocywgcmVzcGVjdGluZyBNYXJrZG93biBzdHJ1Y3R1
cmUuCitMaXN0IGl0ZW1zIGFyZSB0cmVhdGVkIGFzIGluZGl2aWR1YWwgcGFyYWdyYXBocy4gIEJs
b2NrcyBtYXRjaGVkCitieSBgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVy
eScgYXJlIHNraXBwZWQ6IGJvdGgKK2ZvcndhcmQgYW5kIGJhY2t3YXJkIG1vdGlvbiBtb3ZlIHRv
IHRoZSBlbmQgb2YgdGhlIGJsb2NrLCBzbworYGZpbGwtcmVnaW9uJyBzZWVzIGEgemVyby1sZW5n
dGggcmVnaW9uIGFuZCBsZWF2ZXMgdGhlIGJsb2NrCit1bmZpbGxlZC4iCisgIChsZXQgKChkaXJl
Y3Rpb24gKGlmICg+IGFyZyAwKSAxIC0xKSkKKyAgICAgICAgKGNvdW50IChhYnMgYXJnKSkKKyAg
ICAgICAgKG1vdmVkIDApKQorICAgIChkb3RpbWVzIChfIGNvdW50KQorICAgICAgOzsgRm9yIGJh
Y2t3YXJkIG1vdGlvbiwgc2tpcCBiYWNrIG92ZXIgd2hpdGVzcGFjZSB0byBmaW5kCisgICAgICA7
OyB0aGUgaXRlbSB3ZSBhcmUgbGVhdmluZywgbm90IHRoZSBuZXh0IG9uZS4KKyAgICAgIChsZXQq
ICgocG9zIChpZiAoPCBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIg
XHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAobWF4IChwb2ludC1taW4pICgxLSAocG9p
bnQpKSkpCisgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChibG9j
ayAoY2FyICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9zICgxKyBwb3MpKSkpCisgICAgICAgICAgICAgKGluZGVudGVk
LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0
aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAgICAgICAg
ICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IGluZGVudGVkLXBvcyAnbWFya2Rvd24pKQorICAgICAg
ICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCci
KSkpCisgICAgICAgIDs7IFdoZW4gbW92aW5nIGZvcndhcmQgZnJvbSB3aGl0ZXNwYWNlIGJldHdl
ZW4gbGlzdCBpdGVtcywKKyAgICAgICAgOzsgc2tpcCB0byB0aGUgbmV4dCBub24tYmxhbmsgcG9z
aXRpb24gYW5kIGNoZWNrIGFnYWluLgorICAgICAgICAod2hlbiAoYW5kIChub3QgaXRlbSkgKG5v
dCBibG9jaykgKD4gZGlyZWN0aW9uIDApKQorICAgICAgICAgIChsZXQgKChuZXh0LXBvcyAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3
YXJkICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICAgKHNldHEgbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJrZG93bikp
CisgICAgICAgICAgICAoc2V0cSBpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBs
aXN0X2l0ZW1cXCciKSkpKQorICAgICAgICAoY29uZAorICAgICAgICAgOzsgSW5zaWRlIGFuIHVu
ZmlsbGFibGUgYmxvY2s6IHNraXAgb3ZlciBpdCBlbnRpcmVseS4KKyAgICAgICAgIChibG9jawor
ICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgKGNkciBibG9jaykpKQorICAg
ICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKQorICAgICAgICAgOzsgSW5zaWRlIGEgbGlz
dCBpdGVtOiB0cmVhdCBhcyBwYXJhZ3JhcGggYm91bmRhcnkuCisgICAgICAgICAoaXRlbQorICAg
ICAgICAgIChpZiAoPiBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJl
ZXNpdC1ub2RlLWVuZCBpdGVtKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9k
ZS1zdGFydCBpdGVtKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkpCisgICAg
ICAgICA7OyBEZWZhdWx0OiB1c2Ugc3RhbmRhcmQgcGFyYWdyYXBoIG1vdGlvbi4KKyAgICAgICAg
ICh0CisgICAgICAgICAgKGZvcndhcmQtcGFyYWdyYXBoIGRpcmVjdGlvbikKKyAgICAgICAgICAo
c2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkpKSkKKyAgICA7OyBSZXR1cm4gdGhlIG51bWJlciBvZiBw
YXJhZ3JhcGhzIGxlZnQgdG8gbW92ZSAoMCA9IGFsbCBkb25lKS4KKyAgICAoLSBjb3VudCBtb3Zl
ZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVz
dGlmeSkKKyAgIkZpbGwgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCByZXNwZWN0aW5nIE1hcmtkb3du
IGJsb2NrIHN0cnVjdHVyZS4KK1RoaXMgZnVuY3Rpb24gcHJldmVudHMgZmlsbGluZyBpbnNpZGUg
YmxvY2tzIG1hdGNoZWQgYnkKK2BtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1
ZXJ5JywgYW5kIGZpbGxzIHdpdGhpbiBsaXN0CitpdGVtcyB3aXRob3V0IG1lcmdpbmcgYWRqYWNl
bnQgaXRlbXMuICBKVVNUSUZZIGlzIGFzIGluCitgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGNvbmQq
CisgICA7OyBEb24ndCBmaWxsIGluc2lkZSB1bmZpbGxhYmxlIGJsb2Nrcy4gIFVzZSBhIHF1ZXJ5
IGFnYWluc3QgdGhlCisgICA7OyByb290IG5vZGUgYmVjYXVzZSBgdHJlZXNpdC1ub2RlLWF0JyBt
YXkgbm90IHJldHVybiBhIG5vZGUKKyAgIDs7IGluc2lkZSB0aGUgYmxvY2sgd2hlbiBwb2ludCBp
cyBvbiBhbm9ueW1vdXMgKHVubmFtZWQpIHRleHQuCisgICAoKHRyZWVzaXQtcXVlcnktY2FwdHVy
ZQorICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgbWFya2Rv
d24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAocG9pbnQpIChtaW4gKDEr
IChwb2ludCkpIChwb2ludC1tYXgpKSkKKyAgICB0KQorICAgOzsgRmlsbCB3aXRoaW4gdGhlIGVu
Y2xvc2luZyBsaXN0IGl0ZW0uICBVc2UKKyAgIDs7IGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0
LXBvaW50JyB3aGljaCBoYW5kbGVzIGJsb2NrIHF1b3RlCisgICA7OyBtYXJrZXJzLiAgV2hlbiB0
aGUgbGlzdCBpdGVtIGlzIGluc2lkZSBhIGJsb2NrIHF1b3RlLCBkZWxlZ2F0ZQorICAgOzsgdG8g
dGhlIGJsb2NrIHF1b3RlIGZpbGxlciB3aGljaCBoYW5kbGVzIGA+ICcgcHJlZml4ZXMgY29ycmVj
dGx5LgorICAgKChiaW5kLWFuZCogKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9p
bnQpKSkKKyAgICAoaWYgKHRyZWVzaXQtcGFyZW50LXVudGlsIGl0ZW0gIlxcYGJsb2NrX3F1b3Rl
XFwnIikKKyAgICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkpCisg
ICAgICAobWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIGl0ZW0ganVzdGlmeSkpKQorICAgOzsg
UG9pbnQgaXMgb24gYSBibGFuayBsaW5lIGJlZm9yZSBhIGxpc3QuICBJZiB0aGUgbmV4dAorICAg
Ozsgbm9uLXdoaXRlc3BhY2UgcG9zaXRpb24gZmFsbHMgaW5zaWRlIGEgbGlzdCBpdGVtLCBmaWxs
IHRoYXQgaXRlbS4KKyAgICgoc2F2ZS1leGN1cnNpb24KKyAgICAgIChiZWdpbm5pbmctb2YtbGlu
ZSkKKyAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkKKyAgICAoYW5kLWxldCogKChuZXh0
LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNo
YXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkp
KQorICAgICAgICAgICAgICAgKG5leHQtbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAg
ICAgICAgICAgICAgICAgICAgICBuZXh0LW5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAg
IChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBGaWxs
IHdpdGhpbiBhIGJsb2NrIHF1b3RlLiAgTmFycm93IHRvIHRoZSBwYXJhZ3JhcGggbm9kZSBhdAor
ICAgOzsgcG9pbnQncyBuZXN0aW5nIGxldmVsIHNvIGxpbmVzIHdpdGggZGlmZmVyZW50IGA+ICcg
ZGVwdGhzCisgICA7OyBhcmUgbm90IG1lcmdlZC4KKyAgICgodHJlZXNpdC1wYXJlbnQtdW50aWwK
KyAgICAgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWlu
ZGVudGF0aW9uKSAocG9pbnQpKQorICAgICAgJ21hcmtkb3duKQorICAgICAiXFxgYmxvY2tfcXVv
dGVcXCciKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSBqdXN0aWZ5KSkKKyAg
IDs7IEZpbGwgd2l0aGluIGFuIEhUTUwgY29tbWVudC4gIFRoZSBub2RlIHR5cGUgaXMgImh0bWxf
YmxvY2siCisgICA7OyBpbiBncmFtbWFyIHYwLjQueCBhbmQgImNvbW1lbnQiIGluIHNvbWUgb3Ro
ZXIgdmVyc2lvbnMuCisgICAoKGJpbmQtYW5kKiAoYmxvY2sgKGxldCAoKG4gKHRyZWVzaXQtbm9k
ZS1hdCAocG9pbnQpICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG9yICh0
cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICJcXGBc
XCg/Omh0bWxfYmxvY2tcXHxjb21tZW50XFwpXFwnIikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYW5kIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcoImh0bWxfYmxvY2siICJjb21tZW50IikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLWZp
bGwtaHRtbC1jb21tZW50IGJsb2NrIGp1c3RpZnkpKQorICAgOzsgRGVmYXVsdDogbGV0IGZpbGwt
cGFyYWdyYXBoIGhhbmRsZSBpdC4KKyAgICh0IG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZpbGwtaHRtbC1jb21tZW50IChub2RlIGp1c3RpZnkpCisgICJGaWxsIEhUTUwgY29tbWVudCBO
T0RFLCBhbGlnbmluZyBjb250aW51YXRpb24gbGluZXMuCitSZXR1cm4gdCBpZiBOT0RFIGlzIGEg
Y29tbWVudCBhbmQgd2FzIGZpbGxlZCwgbmlsIG90aGVyd2lzZS4KK0pVU1RJRlkgaXMgYXMgaW4g
YGZpbGwtcGFyYWdyYXBoJy4iCisgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChn
b3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAobG9va2luZy1h
dC1wICI8IS0tIikpCisgICAgKGxldCAoKGZpbGwtcHJlZml4IChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKCsgKGN1cnJlbnQtY29s
dW1uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoICI8
IS0tICIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XHMpKSkKKyAg
ICAgICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgKGZpbGwtZm9y
d2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAo
ZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgIChzYXZlLXJlc3RyaWN0aW9uCisg
ICAgICAgIChuYXJyb3ctdG8tcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgIChm
aWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkKKyAgICAgIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1ibG9jay1xdW90ZS1wcmVmaXggKCkKKyAgIlJldHVybiB0aGUgYmxvY2sgcXVvdGUgcHJlZml4
IHN0cmluZyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuCitSZWFkIHRoZSBhY3R1YWwgYD4nIG1hcmtl
cnMgKHdpdGggd2hhdGV2ZXIgc3BhY2luZyB0aGUgdXNlciB3cm90ZSkKK2Zyb20gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgbGluZSBzbyB0aGF0IGZpbGwgcHJlc2VydmVzIHRoZSBleGlzdGluZworc3R5
bGUgKGUuZy4sIGA+Pj4gJyBzdGF5cyBgPj4+ICcsIGA+ID4gPiAnIHN0YXlzIGA+ID4gPiAnKS4i
CisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoaWYgKGxv
b2tpbmctYXQgIlxcKFs+IFx0XSo+XFwpWyBcdF0qIikKKyAgICAgICAgKGNvbmNhdCAobWF0Y2gt
c3RyaW5nIDApKQorICAgICAgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtYmxv
Y2stcXVvdGUgKGp1c3RpZnkpCisgICJGaWxsIHRoZSBwYXJhZ3JhcGggYXQgcG9pbnQgaW5zaWRl
IGEgYmxvY2sgcXVvdGUuCitGaW5kIHRoZSBwYXJhZ3JhcGggbm9kZSBhdCBwb2ludCB3aXRoaW4g
dGhlIGJsb2NrIHF1b3RlIGFuZCBmaWxsCitvbmx5IHRoYXQgcGFyYWdyYXBoLCBwcmVzZXJ2aW5n
IHRoZSBgPiAnIHByZWZpeC4gIFdoZW4gdGhlCitwYXJhZ3JhcGggaXMgaW5zaWRlIGEgbGlzdCBp
dGVtLCBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0aAordGhlIGl0ZW0ncyB0ZXh0IGNvbHVt
bi4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgIDs7IFNraXAgcGFzdCBg
PiAnIG1hcmtlcnMgYW5kIGFueSBsaXN0IG1hcmtlciB0byBsYW5kIGluc2lkZSB0aGUKKyAgOzsg
Y29udGVudCwgd2hlcmUgdGhlIHBhcmFncmFwaCBub2RlIGxpdmVzLgorICAobGV0KiAoKGNvbnRl
bnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmlu
Zy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAi
PiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB3ZSBsYW5kIG9uIGEgbGlzdCBt
YXJrZXIsIHNraXAgcGFzdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChsb29r
aW5nLWF0ICJbLSorXSBcXHxbMC05XStbLildXHMiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG1p
biAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKSkKKyAgICAgICAgIChub2RlICh0cmVlc2l0LW5v
ZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgIChwYXJhICh0cmVlc2l0LXBh
cmVudC11bnRpbAorICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAg
ICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAicGFyYWdyYXBoIikpKSkp
CisgICAgKHdoZW4gcGFyYQorICAgICAgOzsgVGhlIGdyYW1tYXIgbWF5IGluY2x1ZGUgdHJhaWxp
bmcgYmxvY2tfY29udGludWF0aW9uIG5vZGVzCisgICAgICA7OyAoYmxhbmsgYD4gPicgbGluZXMp
IGFzIGNoaWxkcmVuIG9mIHRoZSBwYXJhZ3JhcGguICBVc2UgdGhlCisgICAgICA7OyBlbmQgb2Yg
dGhlIGxhc3QgaW5saW5lIGNoaWxkIHNvIGZpbGwgZG9lcyBub3QgbWVyZ2UgYWNyb3NzCisgICAg
ICA7OyB3aGF0IHNob3VsZCBiZSBhIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgIChsZXQqICgo
bGFzdC1pbmxpbmUKKyAgICAgICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKGNoaWxkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAi
aW5saW5lIikpCisgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSAodHJlZXNpdC1ub2Rl
LWNoaWxkcmVuIHBhcmEpKSkpCisgICAgICAgICAgICAgKHBhcmEtZW5kIChpZiBsYXN0LWlubGlu
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFzdC1pbmxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkpKQor
ICAgICAgICAgICAgIChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgp
KQorICAgICAgICAgICAgIDs7IFdoZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCBleHRlbmQgdGhlIHBy
ZWZpeCB3aXRoIHNwYWNlcworICAgICAgICAgICAgIDs7IHNvIGNvbnRpbnVhdGlvbiBsaW5lcyBh
bGlnbiB3aXRoIHRoZSBpdGVtJ3MgdGV4dC4KKyAgICAgICAgICAgICAobGlzdC1pdGVtICh0cmVl
c2l0LXBhcmVudC11bnRpbCBwYXJhICJcXGBsaXN0X2l0ZW1cXCciKSkKKyAgICAgICAgICAgICAo
cHJlZml4IChpZiBsaXN0LWl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0KiAoKHRl
eHQtY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1pdGVtKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGV4dHJhIChtYXggMCAoLSB0ZXh0LWNvbCAobGVuZ3RoIGJxLXBy
ZWZpeCkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGJxLXByZWZpeCAo
bWFrZS1zdHJpbmcgZXh0cmEgP1xzKSkpCisgICAgICAgICAgICAgICAgICAgICAgIGJxLXByZWZp
eCkpCisgICAgICAgICAgICAgKGFkYXB0aXZlLWZpbGwtZnVuY3Rpb24gbmlsKQorICAgICAgICAg
ICAgIChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgp
CisgICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIG5pbCkpCisgICAgICAgIChz
YXZlLXJlc3RyaWN0aW9uCisgICAgICAgICAgOzsgTmFycm93IHRvIHRoZSBmdWxsIGxpbmVzIG9m
IHRoZSBwYXJhZ3JhcGggc28gdGhhdCB0aGUKKyAgICAgICAgICA7OyBgPiAnIG1hcmtlcnMgYXJl
IGluY2x1ZGVkIGluIHRoZSBmaWxsIHJlZ2lvbi4KKyAgICAgICAgICAobmFycm93LXRvLXJlZ2lv
bgorICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgcGFyYSkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l
KQorICAgICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgIHBhcmEtZW5kKQorICAgICAgICAg
IChsZXQgKChmaWxsLXByZWZpeCBwcmVmaXgpKQorICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBo
IGp1c3RpZnkpKSkpKSkKKyAgdCkKKworOzs7IENvZGUgYmxvY2tzOgorCisoZGVmdmFyLWxvY2Fs
IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcyBuaWwKKyAgIkFsaXN0IG1hcHBpbmcg
bGFuZ3VhZ2Ugbm9kZSBuYW1lcyB0byB0cyBsYW5ndWFnZS4KK0lmIGEgbGFuZ3VhZ2UgaXMgbm90
IGEgdHMgbGFuZ3VhZ2Ugb3IgaXMgbm90IG1hcHBlZCB0byBvbmUsIGl0IHdpbGwgYmUKK2luIGBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMnLiIpCisKKyhkZWZ2YXItbG9jYWwg
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzIG5pbAorICAiQWxpc3QgbWFwcGlu
ZyBsYW5ndWFnZXMgdG8gbm9uLXRyZWUtc2l0dGVyIG1vZGVzIGZvciBjb2RlIGJsb2Nrcy4KK1Bv
cHVsYXRlZCBieSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHRvIGlkZW50
aWZ5IGEKK2NvZGUtYmxvY2sgbGFuZ3VhZ2UgbW9kZSB3aGljaCBpcyBub3QgYSB0cmVlLXNpdHRl
ciBtb2RlIG9yIGZvciB3aGljaAordGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgaXMgdW5hdmFpbGFi
bGUuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25maWd1
cmF0aW9uIChtb2RlKQorICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWd1cmF0aW9uIGZyb20g
TU9ERS4KK1JldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1ZXM6
CiAKICAgICA6Zm9udC1sb2NrIChmcm9tIGB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncycpCiAg
ICAgOnNpbXBsZS1pbmRlbnQgKGZyb20gYHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcycpCiAg
ICAgOnJhbmdlIChmcm9tIGB0cmVlc2l0LXJhbmdlLXNldHRpbmdzJykiCi0gICh3aXRoLXRlbXAt
YnVmZmVyCi0gICAgKGZ1bmNhbGwgbW9kZSkKLSAgICAobGlzdCA6Zm9udC1sb2NrIHRyZWVzaXQt
Zm9udC1sb2NrLXNldHRpbmdzCisgICh3aXRoLXdvcmstYnVmZmVyCisgICAgKG1hcmtkb3duLXRz
LS1pbmhpYml0LW1lc3NhZ2VzLWFuZC13YXJuaW5ncworICAgICAgJ21hcmtkb3duLXRzLWluaGli
aXQtY29kZS1ibG9jay1tb2RlLXdhcm5pbmdzCisgICAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVu
Y2FsbCBtb2RlKSkpCisgICAgKGxpc3QgOmxhbmd1YWdlICh0cmVlc2l0LWxhbmd1YWdlLWF0IChw
b2ludC1taW4pKQorICAgICAgICAgIDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGlu
Z3MKICAgICAgICAgICA6c2ltcGxlLWluZGVudCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMK
ICAgICAgICAgICA6cmFuZ2UgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncykpKQogCi0oZGVmdW4gbWFy
a2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUgKGxhbmd1YWdlIG1vZGUpCi0gICJBZGQgY29u
ZmlndXJhdGlvbnMgZm9yIExBTkdVQUdFIGZyb20gTU9ERSB0byBjdXJyZW50IGJ1ZmZlci4KLQot
Q29uZmlndXJhdGlvbiBpbmNsdWRlcyBmb250LWxvY2sgYW5kIGluZGVudC4gIEZvciBmb250LWxv
Y2sgcnVsZXMsIHVzZQotdGhlIHNhbWUgZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIKLSAgKGxl
dCAoKGNvbmZpZ3MgKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyBtb2RlKSkp
Ci0gICAgKGlnbm9yZSBsYW5ndWFnZSkgOyBXZSBtaWdodCBtYWtlIHVzZSBvZiB0aGlzIGxhdGVy
LgotICAgIChzZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgKGFwcGVu
ZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgOzsgR2V0IGFs
bCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0Ci0gICAgICAgICAg
ICAgICAgICA7OyBkb24ndCBwZXJ0YWluIHRvIExBTkdVQUdFLiAgVGhpcyB3YXkgd2UgZ2V0IGpz
ZG9jCi0gICAgICAgICAgICAgICAgICA7OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFtcGxlLgot
ICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpmb250LWxvY2spKSkKLSAgICAo
c2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKLSAgICAgICAgICAoYXBwZW5kIHRyZWVz
aXQtc2ltcGxlLWluZGVudC1ydWxlcwotICAgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBn
ZXQgYWxsIGluZGVudCBydWxlcy4KLSAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmln
cyA6c2ltcGxlLWluZGVudCkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVu
dC1idWZmZXIgKGNvbmZpZ3VyYXRpb24pCisgICJBZGQgQ09ORklHVVJBVElPTiB0byB0aGUgY3Vy
cmVudCBidWZmZXIuCitDT05GSUdVUkFUSU9OIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50
IHJ1bGVzLiAgRm9yIGZvbnQtbG9jayBydWxlcywKK3VzZSB0aGUgc2FtZSBmZWF0dXJlcyBlbmFi
bGVkIGluIE1PREUuIgorICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAg
ICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgOzsg
R2V0IGFsbCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0CisgICAg
ICAgICAgICAgICAgOzsgZG9uJ3QgcGVydGFpbiB0byBNT0RFLiAgVGhpcyB3YXksIHdlIGdldCBq
c2RvYworICAgICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCisg
ICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKSkKKyAg
KHNldHEgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQg
YWxsIGluZGVudCBydWxlcy4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRp
b24gOnNpbXBsZS1pbmRlbnQpKSkKICAgICAoc2V0cSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAg
ICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAgICAgICAg
ICA7OyBGaWx0ZXIgb3V0IGZ1bmN0aW9uIHF1ZXJpZXMsIGJlY2F1c2UgdGhleSBhcmUKQEAgLTMw
Miw0NSArMjY0OSwxOTQ2IEBAIG1hcmtkb3duLXRzLS1hZGQtY29uZmlnLWZvci1tb2RlCiAgICAg
ICAgICAgICAgICAgICA7OyBDYXNlIGluIHBvaW50OiBjLXRzLW1vZGUncyByYW5nZSBzZXR0aW5n
LgogICAgICAgICAgICAgICAgICAgKHNlcS1maWx0ZXIgKGxhbWJkYSAoc2V0dGluZykKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZnVuY3Rpb25wIChjYXIgc2V0dGluZykp
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlncyA6cmFu
Z2UpKSkpCi0gICAgKHNldHEtbG9jYWwgaW5kZW50LWxpbmUtZnVuY3Rpb24gIyd0cmVlc2l0LWlu
ZGVudCkKLSAgICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0aW9uICMndHJlZXNpdC1p
bmRlbnQtcmVnaW9uKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOnJhbmdlKSkpKQorICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5j
dGlvbiAjJ3RyZWVzaXQtaW5kZW50KQorICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0
aW9uICMndHJlZXNpdC1pbmRlbnQtcmVnaW9uKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLS1jb252
ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2UgKG5vZGUpCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhbmd1
YWdlLWF0LW5vZGUgKG5vZGUpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBmb3IgY29k
ZV9mZW5jZV9jb250ZW50IE5PREUuIgorICAod2hlbi1sZXQqICgocGFyZW50ICh0cmVlc2l0LW5v
ZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgICAgICAobGFuZy1ub2RlICh3aGVuIHBhcmVudAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50
ICJcXGBsYW5ndWFnZVxcJyIpKSkpCisgICAgKGludGVybiAodHJlZXNpdC1ub2RlLXRleHQgbGFu
Zy1ub2RlIHQpKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5
LWNhY2hlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkKKyAgIkNhY2hlIGZvciBub24t
dHJlZS1zaXR0ZXIgY29kZSBibG9jayBmb250aWZpY2F0aW9uLgorS2V5cyBhcmUgKExBTkcgLiBD
T05URU5ULUhBU0gpIGNvbnMgY2VsbHMsIHZhbHVlcyBhcmUgbGlzdHMgb2YKK1woT0ZGU0VULVNU
QVJUIE9GRlNFVC1FTkQgRkFDRSkgdHJpcGxlcy4iKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3du
LXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10aWNrIG5pbAorICAiRm9yIGJsdW50IGBidWZmZXIt
Y2hhcnMtbW9kaWZpZWQtdGljaycgY2FjaGUgaW52YWxpZGF0aW9uLiIpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgY29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNpbmcgYSBu
b24tdHJlZS1zaXR0ZXIgbW9kZS4KK0FwcGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBjb252ZW50
aW9uYWwgZm9udC1sb2NrIGluIGEgdGVtcG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwgU1RBUlQs
IGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3Zl
cnJpZGUnLgorCitDYWNoZSByZXN1bHRzIHRvIGF2b2lkIGZvbnRpZmljYXRpb24gb2YgdW5jaGFu
Z2VkIGNvZGUgYmxvY2tzLgorCitOT0RFIHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2VkIHRocm91
Z2gKK2BtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5IGhhdmUg
Y2xhc3NpZmllZCB0aGlzCitub2RlIGFzIGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1sZXQqICgo
XyBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2ZWx5KQorICAgICAgICAgICAg
ICAobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAg
ICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMt
bW9kZXMpKQorICAgICAgICAgICAgICAodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2sp
KQorICAgICAgICAgICAgICAoYmxvY2stc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgICAgICAgOzsgQ2Fubm90IHVzZSBtYXJrZXJzICdtYXJrZG93bi10cy1jb2RlLWJl
Zy1tYXJrZXIKKyAgICAgICAgICAgICAgOzsgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlciB0
aGV5IGFyZSBzZXQgYWZ0ZXIgdGhpcworICAgICAgICAgICAgICA7OyBmdW5jdGlvbiBydW5zLgor
ICAgICAgICAgICAgICAobm9kZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAg
ICAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwb2ludCkpKSkKKyAgICAod2hlbiAoPiBub2RlLWVuZCBub2RlLXN0YXJ0KQor
ICAgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUt
dGljaykKKyAgICAgICAgKGNscmhhc2ggbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hl
KSkKKyAgICAgIChsZXQqICgoY2FjaGUta2V5IChjb25zIGxhbmcgKHNlY3VyZS1oYXNoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhMjU2CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpIG5vZGUtc3RhcnQgbm9kZS1lbmQp
KSkKKyAgICAgICAgICAgICAocHJvcHMKKyAgICAgICAgICAgICAgKG9yIChnZXRoYXNoIGNhY2hl
LWtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLW5vbi10cy1mb250
aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAgICAgKGxldCAoKHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcwor
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlIG5vZGUtc3RhcnQgbm9kZS1lbmQpKSkKKyAg
ICAgICAgICAgICAgICAgICAgKHB1dGhhc2ggY2FjaGUta2V5IHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpCisgICAg
ICAgICAgICAgICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10
aWNrIHRpY2spCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkpKSkKKyAgICAgICAgKGRvbGlz
dCAocmFuZ2UgcHJvcHMpCisgICAgICAgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
CisgICAgICAgICAgIChudGggMCByYW5nZSkKKyAgICAgICAgICAgKG50aCAxIHJhbmdlKQorICAg
ICAgICAgICAobnRoIDIgcmFuZ2UpCisgICAgICAgICAgIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMgKG1v
ZGUgYmVnIGVuZCkKKyAgIlJ1biBNT0RFIG9uIHRoZSBCRUcuLkVORCByZWdpb24ncyB0ZXh0IGFu
ZCBoYXJ2ZXN0IGZhY2UgcHJvcGVydGllcy4KK1JldHVybiBhIGxpc3Qgb2YgKEJVRi1CRUcgQlVG
LUVORCBGQUNFKSB0cmlwbGVzIGluIGJhc2UtYnVmZmVyCitjb29yZGluYXRlcy4KKworRm9yIG5v
bi10cmVlLXNpdHRlciBtb2RlcyB1c2UgYW4gaW5kaXJlY3QgYnVmZmVyIG5hcnJvd2VkIHRvIEJF
Ry4uRU5EOgorcmVnZXgvc3ludGFjdGljIGZvbnQtbG9jayBob25vcnMgbmFycm93aW5nIGFuZCB0
aGUgaW5kaXJlY3QgYnVmZmVyCitzaGFyZXMgdGV4dCB3aXRoIHRoZSBiYXNlLCBzbyB0aGlzIGlz
IGxlc3MgZXhwZW5zaXZlIGFuZCBjb3B5LWZyZWUuCisKK0ZvciB0cyBtb2RlcyBpbiBgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMnLCBmYWxsCitiYWNrIHRv
IGEgdGVtcCBidWZmZXIuICBBIHBhcnNlciBjcmVhdGVkIGluIHRoZSBzb3VyY2UgYnVmZmVyIGRv
ZXMgbm90CityZWFjdCB0byBuYXJyb3dpbmcgaW4gYW4gaW5kaXJlY3QgYnVmZmVyIGRlcml2ZWQg
ZnJvbSBpdCAob25seSBwYXJzZXJzCitjcmVhdGVkIGluIHRoYXQgaW5kaXJlY3QgYnVmZmVyIHdv
dWxkIGhvbm9yIGl0cyBuYXJyb3dpbmcpLCBzbyByZXVzaW5nCit0aGUgaG9zdCBwYXJzZXIgdmlh
IGFuIGluZGlyZWN0IGJ1ZmZlciBpcyBub3QgYW4gb3B0aW9uIGhlcmUuICBBbmQgaW4KK3RoZSBo
b3N0IGJ1ZmZlciBpdHNlbGYsIHRoZSBpbm5lciBjb250ZW50IG9mIGEgZmVuY2VkIGNvZGUgYmxv
Y2sgaXMKK2p1c3Qgb3BhcXVlIHRleHQgaW5zaWRlIGEgYGNvZGVfZmVuY2VfY29udGVudCcgbm9k
ZSwgbmV2ZXIgcmUtcGFyc2VkCithcyBhIGZyZXNoIGRvY3VtZW50LiAgQSB0ZW1wIGJ1ZmZlciB3
aXRoIGEgZnJlc2ggcGFyc2VyIHNlZXMgdGhlIGlubmVyCitjb250ZW50IGFzIGEgc3RhbmRhbG9u
ZSBtYXJrZG93biBkb2N1bWVudCwgd2hpY2ggaXMgd2hhdCB3ZSB3YW50LiIKKyAgKGNvbmQgKCht
ZW1xIG1vZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMp
CisgICAgICAgICAobGV0ICgoY29udGVudCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz
IGJlZyBlbmQpKQorICAgICAgICAgICAgICAgcmVzKQorICAgICAgICAgICAod2l0aC13b3JrLWJ1
ZmZlcgorICAgICAgICAgICAgIChpbnNlcnQgY29udGVudCkKKyAgICAgICAgICAgICAobWFya2Rv
d24tdHMtLWluaGliaXQtbWVzc2FnZXMtYW5kLXdhcm5pbmdzCisgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAgICAgICAg
IChkZWxheS1tb2RlLWhvb2tzCisgICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZG93bi10cy0t
c2V0LXVwLWlubGluZSB0KSkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtbW9kZSkp
KSkKKyAgICAgICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAgICAobGV0ICgo
cG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICh3aGlsZSAoPCBwb3MgKHBvaW50LW1h
eCkpCisgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1j
aGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBvaW50
LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZmFjZSAoZ2V0LXRleHQtcHJvcGVydHkg
cG9zICdmYWNlKSkpCisgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAgICAg
ICAgICAgICAgOzsgVHJhbnNsYXRlIHRlbXAtYnVmZmVyIG9mZnNldHMgYmFjayB0byBiYXNlLWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgICAgOzsgcG9zaXRpb25zOiB0ZW1wIGBwb2ludC1taW4n
IGNvcnJlc3BvbmRzIHRvIEJFRy4KKyAgICAgICAgICAgICAgICAgICAgIChwdXNoIChsaXN0ICgr
IGJlZyAoMS0gcG9zKSkgKCsgYmVnICgxLSBuZXh0KSkgZmFjZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcykpCisgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQpKSkpKQor
ICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAgICh0CisgICAgICAgICAobGV0ICgo
aW5kaXJlY3QtYnVmZmVyIChtYWtlLWluZGlyZWN0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAoYnVmZmVyLW5hbWUpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdpbmhpYml0LWJ1ZmZlci1ob29rcykpCisg
ICAgICAgICAgICAgICByZXMpCisgICAgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAg
ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAg
ICAgIChtYXJrZG93bi10cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MK
KyAgICAgICAgICAgICAgICAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkpCisg
ICAgICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgICAg
ICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgICAgICAgICAgICAobGV0ICgocG9zIChwb2lu
dC1taW4pKSkKKyAgICAgICAgICAgICAgICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQor
ICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNo
YW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBv
aW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXBy
b3BlcnR5IHBvcyAnZmFjZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBmYWNlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QgcG9zIG5leHQgZmFjZSkgcmVzKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQpKSkpKQorICAgICAgICAgICAg
IChraWxsLWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIpKQorICAgICAgICAgICAobnJldmVyc2UgcmVz
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgKGxh
bmcpCisgICJDb21wdXRlIGFuZCBjYWNoZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywgYSBzeW1i
b2wuCitDb25zdWx0IHRoZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycgY2FjaGUsIG9y
IGNvbnN1bHQKK2B0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QnIGFuZCBgbWFqb3ItbW9k
ZS1yZW1hcC1hbGlzdCcsIG9yIGJydXRlCitmb3JjZSBtb2RlIHByb2JlLiAgUmV0dXJuIGEgdmFs
aWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIKKyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAoY2FyIChh
bGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKSkpKQorICAgICAgbWFw
cGVkLW1vZGUKKyAgICAobGV0KiAoKGxhbmctc3RyaW5nIChzeW1ib2wtbmFtZSBsYW5nKSkKKyAg
ICAgICAgICAgKGxhbmctbW9kZSAoY29uY2F0IGxhbmctc3RyaW5nICItbW9kZSIpKQorICAgICAg
ICAgICAobW9kZSkpCisgICAgICAoaWYgKHNldHEgbW9kZSAoYWxpc3QtZ2V0IGxhbmctbW9kZSB0
cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QpKQorICAgICAgICAgIG1vZGUKKyAgICAgICAg
KGlmIChzZXRxIG1vZGUgKGFsaXN0LWdldCBsYW5nLW1vZGUgbWFqb3ItbW9kZS1yZW1hcC1hbGlz
dCkpCisgICAgICAgICAgICBtb2RlCisgICAgICAgICAgKGNhdGNoIDptb2RlCisgICAgICAgICAg
ICAoZG9saXN0IChtb2RlCisgICAgICAgICAgICAgICAgICAgICAobGlzdAorICAgICAgICAgICAg
ICAgICAgICAgIDs7IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmluZy4KKyAg
ICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMtbW9kZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIHJh
dyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgbGFuZy1tb2RlCisgICAgICAgICAgICAg
ICAgICAgICAgOzsgVHJ5IGEgdHJlZXNpdCBtb2RlIHVzaW5nIHRoZSBkb3duY2FzZWQgc3RyaW5n
LgorICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAi
LXRzLW1vZGUiKQorICAgICAgICAgICAgICAgICAgICAgIDs7IFRyeSBhIGNvbnZlbnRpb25hbCBt
b2RlIHVzaW5nIHRoZSBkb3duY2FzZWQgc3RyaW5nLgorICAgICAgICAgICAgICAgICAgICAgIChj
b25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAiLW1vZGUiKSkpCisgICAgICAgICAgICAgIChz
ZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGZib3VuZHAgbW9k
ZSkKKyAgICAgICAgICAgICAgICAocHVzaCAobGlzdCBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgICAgICAgKHRocm93IDptb2RlIG1vZGUpKSkpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlIChub2RlKQog
ICAiQ29udmVydCBOT0RFIHRvIGEgbGFuZ3VhZ2UgZm9yIHRoZSBjb2RlIGJsb2NrLiIKLSAgKGxl
dCogKChsYW5nLXN0cmluZyAoYWxpc3QtZ2V0ICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFu
Z3VhZ2UtbWFwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXRleHQgbm9kZSkgbmlsICMnZXF1YWwpKQotICAgICAgICAgKGxhbmcgKGlmIChzeW1ib2xwIGxh
bmctc3RyaW5nKQotICAgICAgICAgICAgICAgICAgIGxhbmctc3RyaW5nCi0gICAgICAgICAgICAg
ICAgIChpbnRlcm4gKGRvd25jYXNlIGxhbmctc3RyaW5nKSkpKSkKLSAgICA7OyBGSVhNRTogS2lu
ZCBvZiBhIGhhY2sgaGVyZTogd2UgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBob29rIGZvcgotICAg
IDs7IGxvYWRpbmcgdXAgY29uZmlncyBmb3IgdGhlIGxhbmd1YWdlIGZvciB0aGUgY29kZSBibG9j
ayBvbi1kZW1hbmQuCi0gICAgKGxldCAoKG1vZGUgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwKSkpCi0gICAgICA7OyBJZiB0aGVyZSdzIG5vIHN1
cHBvcnRlZCBtb2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHJldHVybiBuaWwsCi0gICAgICA7OyB3aGlj
aCBtYWtlcyBFbWFjcyBza2lwIHRoZSBjb2RlIGJsb2NrLgotICAgICAgKGlmIChub3QgKGFuZCBt
b2RlIChmYm91bmRwIG1vZGUpKSkKLSAgICAgICAgICBuaWwKLSAgICAgICAgOzsgSWYgdGhlcmUn
cyBhIG1ham9yIG1vZGUgZm9yIHRoZSBsYW5ndWFnZSwgc2V0IHVwIHRoZSBjb25maWcKLSAgICAg
ICAgOzsgYW5kIHJldHVybiB0aGUgbGFuZ3VhZ2UuCi0gICAgICAgICh3aGVuIChub3QgKG1lbXEg
bGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICAgIChtYXJr
ZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZSBsYW5nIG1vZGUpCi0gICAgICAgICAgKHB1c2gg
bGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICBsYW5nKSkp
KQorICAobGV0KiAoKGxhbmcgKGludGVybiAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkpKQorICAg
ICAgICAgKG1vZGUgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykp
CisgICAgICAgICAodHMtbGFuZ3VhZ2UgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWxhbmd1YWdlcykpCisgICAgICAgICAobm9uLXRzLWxhbmd1YWdlIChhbGlzdC1nZXQg
bGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKSkKKyAgICAoY29uZAor
ICAgICAoKGZib3VuZHAgbW9kZSkKKyAgICAgIChjb25kCisgICAgICAgOzsgUmV0dXJuIGtub3du
IHRyZWVzaXQgbGFuZ3VhZ2UuCisgICAgICAgKHRzLWxhbmd1YWdlIHRzLWxhbmd1YWdlKQorICAg
ICAgIDs7IFJldHVybiBuaWwgZm9yIGtub3duIG5vbi10cmVlc2l0IGxhbmd1YWdlIGZvciBmb250
LWxvY2suCisgICAgICAgKG5vbi10cy1sYW5ndWFnZSBuaWwpCisgICAgICAgOzsgTWFya2Rvd24g
aXRzZWxmIG5lZWRzIHR3byBwYXJzZXJzIChtYXJrZG93biArCisgICAgICAgOzsgbWFya2Rvd24t
aW5saW5lKSwgc28gdHJlZXNpdCBlbWJlZGRpbmcgKHdoaWNoIGNyZWF0ZXMgb25seQorICAgICAg
IDs7IG9uZSkgY2Fubm90IGZ1bGx5IGZvbnRpZnkgaXQuICBSb3V0ZSB0aHJvdWdoIHRoZSBub24t
dHMKKyAgICAgICA7OyBwYXRoIHNvIHRoZSB0ZW1wIGJ1ZmZlciBydW5zIHRoZSBmdWxsIG1vZGUg
d2l0aCBib3RoCisgICAgICAgOzsgcGFyc2Vycy4KKyAgICAgICAoKHByb3ZpZGVkLW1vZGUtZGVy
aXZlZC1wIG1vZGUgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAgICh1bmxlc3MgKGFzc3EgbGFu
ZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgKHB1c2gg
KGNvbnMgbGFuZyBtb2RlKSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQor
ICAgICAgICBuaWwpCisgICAgICAgKHQKKyAgICAgICAgKGxldCogKChjb25maWd1cmF0aW9uICht
YXJrZG93bi10cy0taGFydmVzdC1tb2RlLXRyZWVzaXQtY29uZmlndXJhdGlvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGUpKQorICAgICAgICAgICAgICAgKHRzLWxhbmd1YWdl
IChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6bGFuZ3VhZ2UpKSkKKyAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAoKGFuZCB0cy1sYW5ndWFnZQorICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOmZvbnQtbG9jaykpCisgICAgICAgICAgICAobWFya2Rvd24tdHMtLWNv
bmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciBjb25maWd1cmF0aW9uKQorICAgICAgICAgICAgKHVubGVz
cyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAgICAgICAg
ICAgICAgKHB1c2ggKGNvbnMgbGFuZyB0cy1sYW5ndWFnZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxv
Y2stbGFuZ3VhZ2VzKSkKKyAgICAgICAgICAgIHRzLWxhbmd1YWdlKQorICAgICAgICAgICA7OyBP
dGhlcndpc2UsIGNsYXNzaWZ5IG1vZGUgYXMgbm9uLXRyZWUtc2l0dGVyLgorICAgICAgICAgICAo
dAorICAgICAgICAgICAgKHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2Nr
LW5vbi10cy1tb2RlcykKKyAgICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFuZyBtb2RlKSBtYXJr
ZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgbmlsKSkpKSkp
CisgICAgICh0IG5pbCkpKSkKKworOzs7IENvZGUgYmxvY2sgbWlub3IgbW9kZSBzdXBwb3J0IGFu
ZCBjb2RlLWJsb2NrIGNvbnRleHQgY29tbWFuZHM6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1jb21tYW5kcyAnKGluZGVudC1mb3ItdGFiLWNvbW1hbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZWN0cmljLW5ld2xpbmUtYW5kLW1heWJlLWlu
ZGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlv
bi1hdC1wb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3
bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudC1k
d2ltCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50LWxp
bmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQtb3It
dW5jb21tZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ctZmlsbC1yZWluZGVudC1kZWZ1bikKKyAg
IkNvbW1hbmRzIHRvIGV4ZWN1dGUgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitTZWUgYG1hcmtk
b3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iKQorCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMgJyh4cmVmLWZpbmQtZGVmaW5pdGlvbnMpCisg
ICJDb21tYW5kcyB0aGF0IG5lZWQgYSBcInRoaW5nXCIgYXQgcG9pbnQgaW4gYSBjb2RlLWJsb2Nr
IGNvbnRleHQuCitTZWUgYG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4i
KQorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1hbmRzICcoY29t
bWVudC1vci11bmNvbW1lbnQtcmVnaW9uKQorICAiQ29tbWFuZHMgdGhhdCBuZWVkIGEgcmVnaW9u
IGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jaycuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1p
bi1jb250ZXh0LW1vZGUnIGlmIGluIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICAobWFya2Rvd24t
dHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMtYXQtY29k
ZS1ibG9jay1wKSAxIC0xKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRv
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1uZXdsaW5lICgmb3B0aW9uYWwgYXJnIGludGVyYWN0aXZlKQorICAiSW5zZXJ0
IGEgbmV3bGluZSwgYW5kIG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5ldyBsaW5lLgorV2l0
aCBwcmVmaXggYXJndW1lbnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xpbmVzLgorCitJZiBg
ZWxlY3RyaWMtaW5kZW50LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50cyB0aGUgZmluYWwg
bmV3IGxpbmUKK3RoYXQgaXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJlY2VkaW5nIGxpbmUu
ICBUbyBqdXN0IGluc2VydAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMtaW5kZW50LWp1c3Qt
bmV3bGluZV0uCisKK0lmIGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwgdGhpcyBtYXkgY2F1
c2UgYXV0b21hdGljIGxpbmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcgbGluZS4gIEEgbm9u
LW5pbCBBUkcgaW5oaWJpdHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1oYXJkLW5ld2xpbmVz
JyBpcyBlbmFibGVkLCB0aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhlIHRleHQtcHJvcGVy
dHkgYGhhcmQnLgorCitBIG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQgbWVhbnMgdG8gcnVu
IHRoZSBgcG9zdC1zZWxmLWluc2VydC1ob29rJy4iCisgIChpbnRlcmFjdGl2ZSAiKlBcbnAiKQor
ICAoaWYtbGV0KiAoKGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCkp
CisgICAgICAgICAgICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAgICAgKG1hcmtkb3duLXRz
LS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ25ld2xpbmUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZSkKKyAgICAoZnVuY2FsbC1pbnRlcmFj
dGl2ZWx5ICMnbmV3bGluZSBhcmcgaW50ZXJhY3RpdmUpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVzdGlmeSkKKyAgIlJlZmls
bCBvciByZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0aGF0IGNvbnRhaW5zIHBvaW50Lgor
SWYgdGhlIHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29tbWVudCwgZmlsbCB0aGUgcGFyYWdy
YXBoIHRoYXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3MgcG9pbnQuCisKK090aGVyd2lzZSwg
cmVpbmRlbnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhhdCBjb250YWlucyBwb2ludCBvcgor
Zm9sbG93cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24tbmlsIChpbnRlcmFjdGl2ZWx5LCB3
aXRoIHByZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dlbGwuIgorICAoaW50ZXJhY3RpdmUg
IlAiKQorICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9nLW1vZGUpCisgICAgICAgICAoY2Fs
bC1pbnRlcmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50LWRlZnVuIGp1c3RpZnkpKQorICAg
ICAgICAodAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcGFyYWdyYXBoIGp1
c3RpZnkpKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay14cmVmLWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3MpCisgICJIZWxwZXIgY29tbWFuZCBm
b3IgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitGaW5k
IHRoaW5nIGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVuY2VzIG9uIHRoZSB4cmVmIHN0YWNr
IHRvIHRoZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBBUkdTIGlmIG5vdCBpbiBhIGNvZGUg
YmxvY2sgd2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmLWxl
dCogKChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAg
ICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChjb25kaXRpb24tY2FzZSBlcnIK
KyAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAgKHByb2duCisgICAgICAg
ICAgICAgICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJlZiBtYXJrZXIgaW4gdGhlIGJhc2Ug
YnVmZmVyLiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdpbGwgYmUgcmV0YWluZWQgaWYgdGhl
IGNvbW1hbmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBpbgorICAgICAgICAgICAgICAgIDs7
IHRoZSBjb2RlLWJsb2NrIGJ1ZmZlciB3aGljaCB3ZSB3aWxsIHBvcC4KKyAgICAgICAgICAgICAg
ICAoeHJlZi1wdXNoLW1hcmtlci1zdGFjaykKKyAgICAgICAgICAgICAgICA7OyBgeHJlZi1maW5k
LWRlZmluaXRpb25zJyBpcyBhIHRoaW5nIGNvbW1hbmQgaW4KKyAgICAgICAgICAgICAgICA7OyBg
bWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcycuCisgICAgICAgICAgICAgICAg
KG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyd4cmVm
LWZpbmQtZGVmaW5pdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJncykpCisgICAgICAgICAgICA7OyBQb3AgdGhlIHRvcCB4cmVm
IG1hcmtlci4gIElmIHRoZSBjb21tYW5kIHN1Y2NlZWRlZCwgdGhlCisgICAgICAgICAgICA7OyB0
b3AgbWFya2VyIHdpbGwgYmUgdGhlIGNvZGUtYmxvY2sgYnVmZmVyIG1hcmtlci4gIElmIGl0Cisg
ICAgICAgICAgICA7OyBmYWlsZWQsIHdlJ2xsIHBvcCB0aGUgcGxhY2Vob2xkZXIgd2hpY2ggaXMg
bm93IG9mIG5vCisgICAgICAgICAgICA7OyB2YWx1ZS4KKyAgICAgICAgICAgIDs7IFRPRE86IFBy
b3Bvc2UgYW4gYHhyZWYnIHBvcCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgImdvCisgICAgICAgICAg
ICA7OyBiYWNrIi4KKyAgICAgICAgICAgIChsZXQgKChoaXN0b3J5ICh4cmVmLS1nZXQtaGlzdG9y
eSkpKQorICAgICAgICAgICAgICAodW5sZXNzIChudWxsIChjYXIgaGlzdG9yeSkpCisgICAgICAg
ICAgICAgICAgKHBvcCAoY2FyIGhpc3RvcnkpKSkpKQorICAgICAgICAoZXJyb3IKKyAgICAgICAg
IDs7IFByb3BhZ2F0ZSB0aGUgc2lnbmFsLgorICAgICAgICAgKHNpZ25hbCAoY2FyIGVycikgKGNk
ciBlcnIpKSkpCisgICAgOzsgTm90IGluIGEgY29kZSBibG9jayBjb250ZXh0LiAgVGhpcyBzaG91
bGQgcmVhbGx5IG5ldmVyIGhhcHBlbi4KKyAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5ICMneHJl
Zi1maW5kLWRlZmluaXRpb25zIGFyZ3MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tYXliZS1y
dW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrICgpCisgICJIZWxwZXIgZnVuY3Rpb24gdG8gd3JhcCBh
IGNvbW1hbmQgZm9yIGEgY29kZS1ibG9jayBjb250ZXh0LgorSWYgYHRoaXMtY29tbWFuZCcgaXMg
YSBtZW1iZXIgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnIGFuZAorcG9pbnQg
aXMgd2l0aGluIGEgY29kZSBibG9jayB3aXRoIGFuIGF2YWlsYWJsZSBtb2RlLCBpdCB3aWxsIHJ1
biBpbiB0aGF0Citjb2RlIGJsb2NrJ3MgbW9kZSBpbiBhIGJ1ZmZlciBuYXJyb3dlZCB0byBpdHMg
Y29udGVudC4gIE90aGVyd2lzZSwgdGhlCitjb21tYW5kIHdpbGwgcnVuIGluIHRoZSBjb250ZXh0
IG9mIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyLiIKKyAgKHdoZW4gKG1lbXEgdGhpcy1j
b21tYW5kIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMpCisgICAgKHdoZW4tbGV0KiAo
KGNvbW1hbmQgdGhpcy1jb21tYW5kKQorICAgICAgICAgICAgICAgIChibG9jay1tb2RlIChtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgICAgICgoZmJvdW5kcCBi
bG9jay1tb2RlKSkpCisgICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgKGxhbWJkYSAoJnJlc3QgYXJn
cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhcHBseSAjJ21hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2Rl
LWJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stbW9kZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcmdzKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcnVuLWNv
bW1hbmQtaW4tY29kZS1ibG9jayAoYmxvY2stbW9kZSBjb21tYW5kICZyZXN0IGFyZ3MpCisgICJS
dW4gQ09NTUFORCBpbiBCTE9DSy1NT0RFLgorQVJHUyBhcmUgY2FwdHVyZWQgYnkgYG1hcmtkb3du
LXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iCisgICh3aGVuLWxldCogKChi
ZWcgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtl
cikpCisgICAgICAgICAgICAgIChlbmQgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtk
b3duLXRzLWNvZGUtZW5kLW1hcmtlcikpCisgICAgICAgICAgICAgIChzdHIgKGJ1ZmZlci1zdWJz
dHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkpCisgICAgOzsgVXNlIGEgdGVtcCAob3Igd29y
aykgYnVmZmVyIGJlY2F1c2UgdHJlZXNpdCBjdXJyZW50bHkgY29uZnVzZXMKKyAgICA7OyBub2Rl
cyBpbiBhbiBpbmRpcmVjdCBidWZmZXIgZXZlbiBpZiB0aGUgaW5kaXJlY3QgYnVmZmVyIGlzIG5v
dAorICAgIDs7IG5hcnJvd2VkLgorICAgIChsZXQqICgodGVtcC1kZWFjdGl2YXRlLW1hcmspCisg
ICAgICAgICAgIChvcmlnLXBvaW50IChwb2ludCkpCisgICAgICAgICAgIChvcmlnLW1hcmsgKG1h
cmsgdCkpCisgICAgICAgICAgIChvcmlnLW1hcmstYWN0aXZlIG1hcmstYWN0aXZlKQorICAgICAg
ICAgICAocmVnaW9uLWJlZyAodXNlLXJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAocmVn
aW9uLWVuZCAodXNlLXJlZ2lvbi1lbmQpKQorICAgICAgICAgICAoYWRqLXBvaW50ICgxKyAoLSBv
cmlnLXBvaW50IGJlZykpKQorICAgICAgICAgICAoYWRqLW1hcmsgKHdoZW4gb3JpZy1tYXJrICgx
KyAoLSBvcmlnLW1hcmsgYmVnKSkpKQorICAgICAgICAgICAoYWRqLXJlZ2lvbi1iZWcgKHdoZW4g
cmVnaW9uLWJlZyAoMSsgKC0gb3JpZy1wb2ludCByZWdpb24tYmVnKSkpKQorICAgICAgICAgICAo
YWRqLXJlZ2lvbi1lbmQgKHdoZW4gcmVnaW9uLWVuZCAoMSsgKC0gb3JpZy1wb2ludCByZWdpb24t
ZW5kKSkpKQorICAgICAgICAgICAocG9pbnQtZGVsdGEgMCkKKyAgICAgICAgICAgKHNvdXJjZS1i
dWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAod2l0aC13b3JrLWJ1ZmZlcgorICAgICAg
ICAoaW5zZXJ0IHN0cikKKyAgICAgICAgKGdvdG8tY2hhciBhZGotcG9pbnQpCisgICAgICAgIDs7
IFByb3BhZ2F0ZSBtYXJrIChhbmQgcmVnaW9uKS4KKyAgICAgICAgKHdoZW4gb3JpZy1tYXJrLWFj
dGl2ZQorICAgICAgICAgIChzZXQtbWFyayBhZGotbWFyaykpCisgICAgICAgIChtYXJrZG93bi10
cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICAgICAnbWFya2Rvd24tdHMt
aW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAgICAoZGVsYXktbW9kZS1o
b29rcworICAgICAgICAgICAgKGxldCAoKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lCisgICAg
ICAgICAgICAgICAgICAgKHByb3ZpZGVkLW1vZGUtZGVyaXZlZC1wIGJsb2NrLW1vZGUgJ21hcmtk
b3duLXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAgKGZ1bmNhbGwgYmxvY2stbW9kZSkpKSkKKyAg
ICAgICAgKGxldCAoKHBvaW50IChwb2ludCkpCisgICAgICAgICAgICAgIChhcml0eSAoY2RyIChm
dW5jLWFyaXR5IGNvbW1hbmQpKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChtZW1x
IGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKyAgICAgICAg
ICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpKQorICAgICAg
ICAgICAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQgdGhpbmcpKSkKKyAgICAgICAg
ICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24tY29tbWFuZHMp
CisgICAgICAgICAgICAod2hlbiAoYW5kIGFkai1yZWdpb24tYmVnIGFkai1yZWdpb24tZW5kKQor
ICAgICAgICAgICAgICAoYXBwbHkgIydmdW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZAorICAg
ICAgICAgICAgICAgICAgICAgYWRqLXJlZ2lvbi1iZWcgYWRqLXJlZ2lvbi1lbmQgYXJncykpKQor
ICAgICAgICAgICAoKHplcm9wIGFyaXR5KQorICAgICAgICAgICAgKGZ1bmNhbGwtaW50ZXJhY3Rp
dmVseSBjb21tYW5kKSkKKyAgICAgICAgICAgKChlcSAxIGFyaXR5KQorICAgICAgICAgICAgKGZ1
bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIChjYXIgYXJncykpKQorICAgICAgICAgICAodAor
ICAgICAgICAgICAgKGFwcGx5ICMnZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQgYXJncykp
KQorICAgICAgICAgIChzZXRxIHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChw
b2ludC1taW4pIChwb2ludC1tYXgpKSkKKyAgICAgICAgICAoc2V0cSB0ZW1wLWRlYWN0aXZhdGUt
bWFyayBkZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgKHNldHEgcG9pbnQtZGVsdGEgKC0gKHBv
aW50KSBwb2ludCkpKQorICAgICAgICAobGV0ICgod29yay1idWZmZXIgKGN1cnJlbnQtYnVmZmVy
KSkpCisgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAg
ICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJlZyBlbmQgd29yay1idWZmZXIpCisgICAg
ICAgICAgICA7OyBQcm9wYWdhdGUgbWFyayBkZWFjdGl2YXRpb24gdG8gdGhlIHNvdXJjZSBidWZm
ZXIuCisgICAgICAgICAgICAoc2V0cSBkZWFjdGl2YXRlLW1hcmsgdGVtcC1kZWFjdGl2YXRlLW1h
cmspCisgICAgICAgICAgICA7OyBNb3ZlIHBvaW50IGlmIGl0IG1vdmVkIGluIHRoZSB0ZW1wIGJ1
ZmZlci4KKyAgICAgICAgICAgIChnb3RvLWNoYXIgKCsgb3JpZy1wb2ludCBwb2ludC1kZWx0YSkp
CisgICAgICAgICAgICA7OyBSZWNvcmQgdGhlIG9yaWdpbmFsIGNvbW1hbmQuCisgICAgICAgICAg
ICAoc2V0cSB0aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAgICAgIDs7IFRoaXMgaGVscHMg
bWFpbnRhaW4gZGlzY3JldGUgY29tbWFuZCBhY3Rpb25zLgorICAgICAgICAgICAgKHVuZG8tYm91
bmRhcnkpCisgICAgICAgICAgICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0aW5nIHJlZ2lvbiBp
cyByZWZvbnRpZmllZC4KKyAgICAgICAgICAgIChmb250LWxvY2stZmx1c2ggYmVnIGVuZCkpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyIChwb3Mg
Jm9wdGlvbmFsIGJhY2t3YXJkKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNl
ZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQg
UE9TLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgorICAodHJlZXNp
dC1zZWFyY2gtZm9yd2FyZCAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
ZmluZC1uZXh0LWNvZGUtYmxvY2stZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgYmFja3dhcmQgcmVtYWlu
KQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGlt
aXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBwb2ludCcsIGlm
IFBPUyBpcyBuaWwuCitTZWFyY2ggYmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9uLW5pbC4KK0lm
IFJFTUFJTiBpcyBub24tbmlsLCBtb3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZSBjdXJy
ZW50IGNvZGUKK2Jsb2NrLCBpZiBpbiBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAocG9pbnQp
KSkKKyAgKGFuZC1sZXQqICgobm9kZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxp
bWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgKGxldCAoKGluLWJsb2NrIChtYXJrZG93bi10cy1h
dC1jb2RlLWJsb2NrLXAgcG9zKSkpCisgICAgICAoY29uZAorICAgICAgICgoYW5kIHJlbWFpbiBp
bi1ibG9jaykKKyAgICAgICAgbm9kZSkKKyAgICAgICAocmVtYWluCisgICAgICAgIG5pbCkKKyAg
ICAgICAodAorICAgICAgICAod2hpbGUgKGFuZCBub2RlCisgICAgICAgICAgICAgICAgICAgIDs7
IElmIGJhY2t3YXJkLCBza2lwIHRoZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAgICAgICAgICAg
ICAgOzsgc3RhcnRpbmcgZGVsaW1pdGVyLgorICAgICAgICAgICAgICAgICAgICAob3IgKGFuZCBi
YWNrd2FyZCBpbi1ibG9jayAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBub2RlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkp
KSkKKyAgICAgICAgICAoc2V0cSBpbi1ibG9jayAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1w
IHBvcykpCisgICAgICAgICAgKHNldHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAgICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAgICAg
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2RlIChtYXJrZG93
bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkKKyAgICAgICAg
bm9kZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jayAo
YXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29kZSBibG9jay4K
K1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJlbnQg
Y29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2RlCisg
ICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRl
ciBuaWwgbmlsIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrIChh
cmcpCisgICJNb3ZlIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMgY29kZSBibG9j
ay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJl
bnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2Rl
CisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGlt
aXRlciBuaWwgJ2JhY2t3YXJkIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkpKQorCis7OzsgVGFibGVzIGFrYSBwaXBlIHRhYmxlczoKKworOzs7OyBVdGls
aXRpZXM6CisKKyhkZWZjb25zdCBtYXJrZG93bi10cy10YWJsZS1leHBvcnQtYnVmZmVyCisgICIq
bWFya2Rvd24tdHMtdGFibGUtZXhwb3J0KiIpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRjaGluZyBv
cmRlci4KKyhkZWZjb25zdCBtYXJrZG93bi10cy0tdGFibGUtcm93LXR5cGVzCisgICcoInBpcGVf
dGFibGVfcm93IgorICAgICJwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciCisgICAgInBpcGVfdGFi
bGVfaGVhZGVyIikpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRjaGluZyBvcmRlci4KKyhkZWZjb25z
dCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2NlbGwiCisg
ICAgInBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwiKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LS10YWJsZS1kZWxpbWl0ZXItY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2RlbGltaXRlcl9j
ZWxsIgorICAgICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFibGVfYWxpZ25f
cmlnaHQiKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcworICAnKCJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFibGVfYWxp
Z25fcmlnaHQiKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1hYnV0dGluZy1wb3MgKHBv
cykKKyAgIkFkanVzdCBQT1MgdG8gYWJ1dCBpdHMgY2xvc2VzdCB0ZXh0LgorUmV0dXJuIHBvcyBh
ZGp1c3RlZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNoYXJhY3Rl
ci4KK090aGVyd2lzZSwgcmV0dXJuIG5pbCwgZm9yIGV4YW1wbGUsIGlmIHRoZSBsaW5lIGlzIGVt
cHR5LiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGdvdG8tY2hhciBwb3MpCisgICAgKHNraXAt
Y2hhcnMtZm9yd2FyZCAiW1s6Ymxhbms6XV0iIChwb3MtZW9sKSkKKyAgICAoaWYgKGVxIHBvcyAo
cG9zLWVvbCkpCisgICAgICAgIChwcm9nbgorICAgICAgICAgIChnb3RvLWNoYXIgcG9zKQorICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICJbWzpibGFuazpdXSIgKHBvcy1ib2wpKQorICAg
ICAgICAgICh1bmxlc3MgKGVxIHBvcyAocG9zLWJvbCkpCisgICAgICAgICAgICAobWF4IChwb2lu
dC1taW4pICgxLSAocG9pbnQpKSkpKQorICAgICAgKG1pbiAocG9pbnQtbWF4KSAoMSsgKHBvaW50
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsICgmb3B0aW9uYWwg
bm9kZSBwb3MgYWJ1dHRpbmcpCisgICJDb21wdXRlIHRhYmxlIGNlbGwgZnJvbSBuYW1lZCBOT0RF
IGF0IFBPUy4KK0lmIE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYgUE9TIGlz
IG5pbCwgdXNlIGBwb2ludCcuCitJZiBOT0RFIGlzIGEgY2VsbCB0eXBlLCByZXR1cm4gaXQuCitJ
ZiBOT0RFIGlzIGEgc3VidHlwZSwgcHJvbW90ZSBpdC4KK0lmIEFCVVRUSU5HIGlzIG5vbi1uaWws
IGFkanVzdCBQT1MgdG8gdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNoYXJhY3Rlci4KK090aGVyd2lz
ZSwgcmV0dXJuIG5pbC4iCisgIDs7IFdlIGNvdWxkIHNhbml0eSBjaGVjayB2aWEgYHRyZWVzaXQt
bm9kZS1uYW1lZCcgYW5kIGVycm9yIGlmIG5vdC4KKyAgKHNldHEgcG9zIChvciBwb3MgKHBvaW50
KSkpCisgICh3aGVuIGFidXR0aW5nCisgICAgKHNldHEgcG9zIChvciAobWFya2Rvd24tdHMtLXRh
YmxlLWFidXR0aW5nLXBvcyBwb3MpIHBvcykpKQorICAod2hlbi1sZXQqICgobm9kZSAob3Igbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3du
ICduYW1lZCkpKQorICAgICAgICAgICAgICAodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkp
KQorICAgIChjb25kICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxlLWNlbGwtdHlwZXMp
CisgICAgICAgICAgIG5vZGUpCisgICAgICAgICAgKChtZW1iZXIgdHlwZSBtYXJrZG93bi10cy0t
dGFibGUtZGVsaW1pdGVyLWNlbGwtc3VidHlwZXMpCisgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
cGFyZW50IG5vZGUpKQorICAgICAgICAgICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxl
LXJvdy10eXBlcykKKyAgICAgICAgICAgKGNvbmQgKChlcSBhYnV0dGluZyAnbGVmdCkKKyAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgIDs7IEFjY291bnQgZm9yICdyaWdodCBvciB0LgorICAgICAgICAgICAgICAgICAo
dAorICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIC0xICduYW1lZCkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyAoJm9wdGlvbmFsIG5v
ZGUgcG9zKQorICAiQ29tcHV0ZSB0YWJsZSByb3cgZnJvbSBuYW1lZCBOT0RFIGF0IFBPUy4KK0lm
IE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNlIGBw
b2ludCcuCitJZiBOT0RFIGlzIGEgcm93IHR5cGUsIHJldHVybiBpdC4KK0lmIE5PREUgaXMgYSB0
YWJsZSBjZWxsIHR5cGUsIHJldHVybiBpdHMgcm93LgorT3RoZXJ3aXNlLCByZXR1cm4gbmlsLiIK
KyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJlZXNpdC1ub2RlLW5hbWVkJyBhbmQg
ZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgobm9kZSAob3Igbm9kZQorICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCAob3IgcG9zIChwb2ludCkpICdtYXJrZG93biAn
bmFtZWQpKSkKKyAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKSkK
KyAgICAoaWYgKG1lbWJlciB0eXBlIG1hcmtkb3duLXRzLS10YWJsZS1yb3ctdHlwZXMpCisgICAg
ICAgIG5vZGUKKyAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCAobWFya2Rvd24tdHMtLXRhYmxl
LW5vZGUtY2VsbCBub2RlKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1wYXJzZS1l
cnJvci1wICgmb3B0aW9uYWwgbm9kZSBwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBuYW1lZCBO
T0RFIGF0IFBPUyBpcyBpbiBhbiBcIkVSUk9SXCIgc3VidHJlZS4KK05PREUgbXVzdCBiZSBhIHRh
YmxlIGVsZW1lbnQ7IGkuZS4sIGl0cyB0eXBlIHByZWZpeCBpcyBcInBpcGVfdGFibGVcIi4KK0lm
IE5PREUgaXMgYSB0YWJsZSwgcmV0dXJuIG5pbCAoaXQgc2hvdWxkbid0IGJlIGluIEVSUk9SKS4K
K0lmIE5PREUgaXMgbm90IGEgdGFibGUgZWxlbWVudCwgcmV0dXJuIG5pbC4KK0lmIE5PREUncyBu
ZWFyYnkgYW5jZXN0b3IgaXMgYW4gXCJFUlJPUlwiIG5vZGUsIHJldHVybiB0LgorT3RoZXJ3aXNl
LCByZXR1cm4gbmlsLiIKKyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJlZXNpdC1u
b2RlLW5hbWVkJyBhbmQgZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgocm93IChtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1yb3cgbm9kZSBwb3MpKQorICAgICAgICAgICAgICAodHlwZSAodHJl
ZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAgICAgKHBhcmVudCAodHJlZXNpdC1ub2Rl
LXBhcmVudCByb3cpKQorICAgICAgICAgICAgICAocGFyZW50LXR5cGUgKHRyZWVzaXQtbm9kZS10
eXBlIHBhcmVudCkpKQorICAgIChjb25kICgoZXF1YWwgdHlwZSAicGlwZV90YWJsZSIpCisgICAg
ICAgICAgIG5pbCkKKyAgICAgICAgICAoKGVxdWFsIHBhcmVudC10eXBlICJwaXBlX3RhYmxlIikK
KyAgICAgICAgICAgbmlsKQorICAgICAgICAgICgoZXF1YWwgcGFyZW50LXR5cGUgIkVSUk9SIikK
KyAgICAgICAgICAgdCkKKyAgICAgICAgICAodAorICAgICAgICAgICAoZXJyb3IgIlNob3VsZCBu
ZXZlciBoYXBwZW4iKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgKCZvcHRp
b25hbCBwb3MgYWJ1dHRpbmcpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgYXQgb3IgaW4g
YSBwaXBlIHRhYmxlLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LgorUmV0dXJuIGNvbnMgKHBv
cyAuIHRhYmxlLW5vZGUpIGlmIFBPUyBpcyB3aXRoaW4gYSB0YWJsZSwgb3RoZXJ3aXNlCityZXR1
cm4gbmlsLgoraWYgUE9TIGlzIHdpdGhpbiBhIHRhYmxlIGJ1dCB3aXRoIHBhcnNlIGVycm9ycywg
c2lnbmFsIGFuIGVycm9yLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgYWRqdXN0IFBPUyB0byB0
aGUgbmVhcmVzdCBub24tYmxhbmsgY2hhcmFjdGVyLgorSWYgdGhlIHBhcnNlZCB0YWJsZSBpcyBp
biBFUlJPUiwgcmV0dXJuIG5pbC4iCisgIChzZXRxIHBvcyAob3IgcG9zIChwb2ludCkpKQorICAo
c2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyIHBvcykKKyAgICA7OyBJZiBwb2ludCBpcyBv
biBhbiBlbXB0eSBsaW5lLCBpdCBpcyBuZXZlciBhIHRhYmxlLgorICAgICh1bmxlc3MgKGFuZCAo
ZW9scCkgKGJvbHApKQorICAgICAgOzsgSWYgcG9pbnQgaXMgYm9sIG9yIGVvbCBpdCBtaWdodCBi
ZSBhYnV0dGluZyBhIHBpcGUgc3ltYm9sIHNvCisgICAgICA7OyBsb29rIGZvcndhcmRzIG9yIGJh
Y2t3YXJkcyBvbmUgY2hhcmFjdGVyIHRvIHRlc3QgaWYgdGhhdCBwb3MKKyAgICAgIDs7IGlzIGEg
dGFibGUuCisgICAgICAod2hlbiBhYnV0dGluZworICAgICAgICAoc2V0cSBwb3MgKG9yIChtYXJr
ZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zIHBvcykgcG9zKSkpCisgICAgICAod2hlbi1sZXQq
ICgocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbmlsIHBvcykpKQorICAgICAgICAo
aWYgKG1hcmtkb3duLXRzLS10YWJsZS1wYXJzZS1lcnJvci1wIHJvdykKKyAgICAgICAgICAgIDs7
IERvIG5vdCB1c2UgZXJyb3Igb3Igd2FybmluZyBoZXJlLiAgRXJyb3JzIGludGVyZmVyZSB3aXRo
CisgICAgICAgICAgICA7OyB0aGUgY29tbWFuZCBsb29wLiAgV2FybmluZ3MgYXJlIGFubm95aW5n
LgorICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgIChtZXNzYWdlICJJbmNvcnJlY3Rs
eSBmb3JtYXR0ZWQgTWFya2Rvd24gdGFibGUgKHBhcnNlciBlcnJvcikiKQorICAgICAgICAgICAg
ICBuaWwpCisgICAgICAgICAgKGNvbnMgcG9zICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAg
ICAgICAgICAgICAgICAgICByb3cKKyAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxl
XFwnIiAnYmFja3dhcmQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW5hYmxlLWluLXRh
YmxlLW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZScgaWYgaW4g
YSB0YWJsZS4KK0EgdGFibGUgd2l0aCBhIHBhcnNlciBFUlJPUiBpcyBpbmVsaWdpYmxlLiIKKyAg
KG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMtYXQtdGFibGUt
cCBuaWwgdCkgMSAtMSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLWJvZHktcm93LW5l
YXItcG9zICgmb3B0aW9uYWwgcG9zIGFidXR0aW5nKQorICAiUmV0dXJuIHRoZSByb3cgbmVhciBQ
T1MuCitSZXR1cm4gbmlsIGlmIG5vdCBhdCBhIHRhYmxlIG9yIHRoZXJlIGlzIG5vIHJvdy4KK090
aGVyd2lzZSByZXR1cm4gY29ucyAocm93IC4gaW4taGVhZGVyKSB3aGVyZSBpbi1oZWFkZXIgaXMg
bmlsIG9yIHQuCitUaGlzIGlzIHVzZWZ1bCB0byBpbnNlcnQgYSBuZXcgcm93IGp1c3QgYmVsb3cg
dGhlIGhlYWRlciBpbnN0ZWFkIG9mIGp1c3QKK2JlbG93IHRoZSBmaXJzdCByb3cuCitJZiBQT1Mg
aXMgbmlsIHVzZSBgcG9pbnQnLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgdXNlICgxLSBQT1Mp
IGlmIFBPUyBpcyBpbW1lZGlhdGVseSBhZnRlciBhIHBpcGUKK3N5bWJvbC4iCisgIChzZXRxIHBv
cyAob3IgcG9zIChwb2ludCkpKQorICAobGV0IChpbi1oZWFkZXIpCisgICAgKHdoZW4tbGV0KiAo
KGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJsZS1wIHBvcyBhYnV0dGluZykpCisgICAgICAg
ICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgICAodGFibGUgKGNk
ciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKGNlbGwgKG1hcmtkb3duLXRzLS10YWJsZS1u
b2RlLWNlbGwgbmlsIHBvcyBhYnV0dGluZykpCisgICAgICAgICAgICAgICAgKGNlbGwtdHlwZSAo
dHJlZXNpdC1ub2RlLXR5cGUgY2VsbCkpCisgICAgICAgICAgICAgICAgKHBhcmVudCAodHJlZXNp
dC1ub2RlLXBhcmVudCBjZWxsKSkKKyAgICAgICAgICAgICAgICAocGFyZW50LXR5cGUgKHRyZWVz
aXQtbm9kZS10eXBlIHBhcmVudCkpCisgICAgICAgICAgICAgICAgKGxpbmVhZ2UgKGxpc3QgY2Vs
bC10eXBlIHBhcmVudC10eXBlKSkKKyAgICAgICAgICAgICAgICA7OyBGaW5kIHRoZSBmaXJzdCBy
b3cgYWZ0ZXIgdGhlIGhlYWRlciBvciB0aGUgcm93IGF0IFBPUyBpcworICAgICAgICAgICAgICAg
IDs7IG9uIGFuZCBpbiB0aGUgc2FtZSB0YWJsZS4KKyAgICAgICAgICAgICAgICAocm93IChjb25k
ICgob3IgKG1lbWJlciAicGlwZV90YWJsZV9oZWFkZXIiIGxpbmVhZ2UpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChtZW1iZXIgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIgbGlu
ZWFnZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgaW4taGVhZGVyIHQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQgY2VsbCAi
XFxgcGlwZV90YWJsZV9yb3dcXCciKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1
YWwgY2VsbC10eXBlICJwaXBlX3RhYmxlX3JvdyIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2VsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwgcGFyZW50LXR5cGUg
InBpcGVfdGFibGVfcm93IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQpKSkp
CisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJjaC1mb3J3
YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAnYmFja3dhcmQpKQor
ICAgICAgICAoY29ucyByb3cgaW4taGVhZGVyKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10
YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIChyb3cgbm9kZSkKKyAgIkNvbXB1dGUgTk9ERSdzIGNv
bHVtbiBpbiBST1cuCitSZXR1cm4gbmlsIGlmIE5PREUgaXMgbm90IGluIFJPVyAodGhpcyBzaG91
bGQgbm90IGhhcHBlbikuCitOT0RFIG11c3QgYmUgYSBub2RlIGluIFJPVy4KK1JPVyBtdXN0IGJl
IGEgcGlwZV90YWJsZV9oZWFkZXIsIHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvdywgb3IKK3BpcGVf
dGFibGVfcm93LiIKKyAgKGNhdGNoIDpjb2x1bW4KKyAgICAobGV0ICgoY291bnQgMCkpCisgICAg
ICAoZG9saXN0IChjZWxsICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAg
ICAgICh3aGVuICh0cmVlc2l0LW5vZGUtZXEgbm9kZSBjZWxsKQorICAgICAgICAgICh0aHJvdyA6
Y29sdW1uIGNvdW50KSkKKyAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4gKGNvbHVtbiAmb3B0aW9uYWwgbm8t
ZXJyb3IpCisgICJNb3ZlIHBvaW50IG9uIHRoZSBjdXJyZW50IHJvdyB0byBDT0xVTU4uCitDT0xV
TU4gaXMgYSAwLWJhc2VkIGluZGV4LgorUmV0dXJuIG5vbi1uaWwgaWYgc3VjY2Vzc2Z1bC4KK0lm
IE5PLUVSUk9SIGlzIG5vbi1uaWwsIHJldHVybiBuaWwgaWYgdGhlIGN1cnJlbnQgcm93IGRvZXMg
bm90IGV4dGVuZCB0bworQ09MVU1OLCBvdGhlcndpc2Ugc2lnbmFsIGFuIGVycm9yLgorU2lnbmFs
IGFuIGVycm9yIGlmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLiIKKyAgKGlmLWxldCogKChjZWxs
IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5pbCBuaWwgdCkpCisgICAgICAgICAgICAo
cm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAgICAoY29s
cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFtZWQpKSkKKyAgICAgIChpZi1sZXQqICgo
dGFyZ2V0LWNlbGwgKG50aCBjb2x1bW4gY29scykpKQorICAgICAgICAgIChnb3RvLWNoYXIgKHRy
ZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICh1bmxlc3Mgbm8tZXJyb3IK
KyAgICAgICAgICAoZXJyb3IgIkNvbHVtbiAlUyBub3QgZm91bmQiIGNvbHVtbikpKQorICAgIChl
cnJvciAiTm90IGF0IGEgdGFibGUiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtYWxp
Z25lcnMgKHRhYmxlKQorICAiRXh0cmFjdCB0aGUgaGVhZGVyIGxpbmUgYWxpZ25lcnMgZnJvbSBu
b2RlIFRBQkxFLgorUmV0dXJuIGEgbGlzdCBvZiBsaXN0cyBvZiB0aGUgZm9ybToKKyAgKDpiZWcg
eHh4IDplbmQgeHh4IDphbGlnbiBsZWZ0KQorOmFsaWduIGlzIG9uZSBvZiBgbGVmdCcgYGNlbnRl
cicgYHJpZ2h0JyBgdW5zcGVjaWZpZWQnLiIKKyAgKGxldCogKChkZWxpbWl0ZXItcm93ICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93XFwnIikpCisg
ICAgICAgICAoYWxpZ25lcnMKKyAgICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAgICAoZG9s
aXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisg
ICAgICAgICAgICAgIChsZXQgKChhbGlnbi1iZWcgKHRyZWVzaXQtbm9kZS10eXBlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgZWx0IDAgJ25hbWUp
KSkKKyAgICAgICAgICAgICAgICAgICAgKGFsaWduLWVuZCAodHJlZXNpdC1ub2RlLXR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBlbHQgLTEg
J25hbWUpKSkpCisgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QKKyAgICAgICAgICAgICAgICAg
ICAgICAgOmJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IGVsdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgOmVuZCAodHJlZXNpdC1ub2RlLWVuZCBlbHQpCisgICAgICAgICAgICAgICAgICAgICAgIDph
bGlnbgorICAgICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGFuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1iZWcgInBpcGVfdGFibGVfYWxpZ25fbGVmdCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAicGlwZV90
YWJsZV9hbGlnbl9sZWZ0IikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZXF1YWwgYWxpZ24tYmVnICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1lbmQgInBpcGVfdGFibGVf
YWxpZ25fcmlnaHQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVxdWFsIGFsaWduLWJlZyAicGlwZV90YWJsZV9hbGlnbl9yaWdodCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAicGlwZV90YWJsZV9h
bGlnbl9yaWdodCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodCAndW5zcGVjaWZpZWQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICByZXMpKSkKKyAgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkpCisgICAgYWxp
Z25lcnMpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciAod2lkdGgg
YWxpZ24pCisgICJNYWtlIGEgTWFya2Rvd24gY29sdW1uIGFsaWduZXIuCitXSURUSCBpcyB0aGUg
Y29sdW1uIHdpZHRoLgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBgcmlnaHQnIGB1
bnNwZWNpZmllZCcuIgorICAocGNhc2UgYWxpZ24KKyAgICAoJ2xlZnQKKyAgICAgKGNvbmNhdCAi
OiIgKG1ha2Utc3RyaW5nICgxLSB3aWR0aCkgPy0pKSkKKyAgICAoJ2NlbnRlcgorICAgICAoY29u
Y2F0ICI6IiAobWFrZS1zdHJpbmcgKC0gd2lkdGggMikgPy0pICI6IikpCisgICAgKCdyaWdodAor
ICAgICAoY29uY2F0IChtYWtlLXN0cmluZyAoMS0gd2lkdGgpID8tKSAiOiIpKQorICAgIChfCisg
ICAgIChjb25jYXQgKG1ha2Utc3RyaW5nIHdpZHRoID8tKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS10YWJsZS1hbGlnbi1jZWxsICh0ZXh0IHdpZHRoIGFsaWduKQorICAiUmV0dXJuIFRFWFQg
cGFkZGVkIHRvIFdJRFRIIGFsaWduZWQgdXNpbmcgQUxJR04uCitUcnVuY2F0ZSBURVhUIHdpZGVy
IHRoYW4gV0lEVEguICBJdCBpcyB0aGUgY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8KK2Vuc3Vy
ZSB0ZXh0IHdpbGwgZml0LgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBgcmlnaHQn
IGB1bnNwZWNpZmllZCcuIgorICAobGV0KiAoKHN0cmxlbiAobGVuZ3RoIHRleHQpKQorICAgICAg
ICAgKHN0cmxlbjAgKG1pbiB3aWR0aCBzdHJsZW4pKQorICAgICAgICAgKHRleHQwIChzdWJzdHJp
bmcgdGV4dCAwIHN0cmxlbjApKQorICAgICAgICAgKHBhZCAoLSB3aWR0aCBzdHJsZW4wKSkpCisg
ICAgKHBjYXNlIGFsaWduCisgICAgICAoJ2NlbnRlcgorICAgICAgIChsZXQqICgoaGFsZi1wYWQg
KG1ha2Utc3RyaW5nIChmbG9vciAoLyBwYWQgMikpID9ccykpCisgICAgICAgICAgICAgIChzIChj
b25jYXQKKyAgICAgICAgICAgICAgICAgIGhhbGYtcGFkCisgICAgICAgICAgICAgICAgICB0ZXh0
MAorICAgICAgICAgICAgICAgICAgaGFsZi1wYWQpKSkKKyAgICAgICAgIChzdHJpbmctcGFkCisg
ICAgICAgICAgKHN1YnN0cmluZyBzIDAgKG1pbiAobGVuZ3RoIHMpIHdpZHRoKSkKKyAgICAgICAg
ICB3aWR0aCkpKQorICAgICAgKCdyaWdodAorICAgICAgIChzdHJpbmctcGFkIHRleHQgd2lkdGgg
bmlsICdzdGFydCkpCisgICAgICAoXworICAgICAgIChzdHJpbmctcGFkIHRleHQgd2lkdGgpKSkp
KQorCis7Ozs7IENvbW1hbmRzOgorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRh
YmxlICgmb3B0aW9uYWwgbnJvd3MgbmNvbHMgaGVhZGluZ3MgYm9keSkKKyAgIkluc2VydCBhIE1h
cmtkb3duIHBpcGUgdGFibGUuCitOUk9XUyBpcyB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIG5l
dyB0YWJsZSBhbmQgZGVmYXVsdHMgdG8gMy4KKworTkNPTFMgaXMgdGhlIG51bWJlciBvZiBjb2x1
bW5zIGFuZCBkZWZhdWx0cyB0byAzLgorCitIRUFESU5HUyBpcyBhIGxpc3Qgb2YgaGVhZGluZ3Mg
YW5kIGRlZmF1bHRzIHRvIGxlZnQtYWxpZ25lZCBzeW50aGVzaXplZAorY29sdW1uIG5hbWVzLiAg
SWYgTkNPTFMgaXMgbmlsLCB1c2UgSEVBRElOR1MgbGVuZ3RoLiAgSWYgYm90aCBOQ09MUyBhbmQK
K0hFQURJTkdTIGFyZSBub24tbmlsLCB1c2UgdXAgdG8gTkNPTFMgaGVhZGluZ3MsIHN5bnRoZXNp
emluZyB0aGUKK3JlbWFpbmRlci4KKworRWFjaCBoZWFkaW5nIGluIHRoZSBsaXN0IGNhbiBiZSBh
IHN0cmluZyBjb2x1bW4gbmFtZSBvciBhIGNvbnMgb2YgdGhlCitmb3JtIChuYW1lIC4gYWxpZ25t
ZW50KSB3aGVyZSBhbGlnbm1lbnQgaXMgb25lIG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywKK2ByaWdo
dCcsIG9yIGBjZW50ZXInLiAgSWYgYSBzdHJpbmcsIGRlZmF1bHQgYWxpZ25tZW50IGlzIHVuc3Bl
Y2lmaWVkLgorCitJZiBCT0RZIGlzIG5vbi1uaWwsIGl0IGlzIGEgbGlzdCBvZiBOUk9XUyByb3dz
IHdoZXJlIGVhY2ggcm93IGlzIGEgbGlzdAorb2YgTkNPTFMgYm9keSBjZWxscy4KKworRm9yIGNv
bnZlbmllbmNlIGFuZCBhZXN0aGV0aWNzLCBwYWQgZWFjaCBib2R5IGNlbGwgdG8gdGhlIHdpZHRo
IG9mIGl0cworY29sdW1uJ3MgaGVhZGVyLCBhbmQgYWNjb21tb2RhdGUgYWxpZ25tZW50IGluZGlj
YXRvcnMuICBJZiBhIEJPRFkgY2VsbAoraXMgbG9uZ2VyIHRoYW4gaXRzIGNvbHVtbiBoZWFkZXIs
IGluc2VydCBpdCB1bmNoYW5nZWQuCisKK05vdGU6IEEgYmxhbmsgbGluZSBpcyBuZWVkZWQgYmVm
b3JlIHRoZSB0YWJsZSBmb3IgaXQgdG8gcHJvcGVybHkgcmVuZGVyLgorSWYgdGhlIGxpbmUgcHJl
Y2VkaW5nIGBwb2ludCcgaXMgbm90IGJsYW5rLCBpbnNlcnQgb25lLgorCitOb3RlOiBEdWUgdG8g
YW4gaXNzdWUgd2l0aCB0aGUgdHJlZS1zaXR0ZXIgTWFya2Rvd24gZ3JhbW1hciwgYSByb3cgb2YK
K2VtcHR5IGNlbGxzIGNhdXNlcyBhIHBhcnNpbmcgZXJyb3IuICBUbyBhdm9pZCB0aGlzLCBhbiBl
bXB0eSByb3cgd2lsbAorY29udGFpbiBhIHNpbmdsZSBwZXJpb2QgaW4gaXRzIGZpcnN0IGNlbGwu
IgorICAoaW50ZXJhY3RpdmUpCisgIChzZXRxIG5yb3dzIChvciBucm93cyAzKSkKKyAgKHNldHEg
bmNvbHMgKG9yIG5jb2xzIChhbmQgaGVhZGluZ3MgKGxlbmd0aCBoZWFkaW5ncykpIDMpKQorICAo
c2V0cSBoZWFkaW5ncworICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAgKGRvdGltZXMgKHgg
bmNvbHMpCisgICAgICAgICAgICAocHVzaCAob3IgKG50aCB4IGhlYWRpbmdzKQorICAgICAgICAg
ICAgICAgICAgICAgIChmb3JtYXQgIkNvbHVtbiAlZCIgKDErIHgpKSkKKyAgICAgICAgICAgICAg
ICAgIHJlcykpCisgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKQorICAobGV0ICgoaGVhZGluZy13
aWR0aHMKKyAgICAgICAgIChsZXQgKHJlcykKKyAgICAgICAgICAgKGRvbGlzdCAoZWx0IGhlYWRp
bmdzKQorICAgICAgICAgICAgIChsZXQgKChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIgZWx0KSBl
bHQpKSkKKyAgICAgICAgICAgICAgIChwdXNoIChtYXggbWFya2Rvd24tdHMtdGFibGUtZGVmYXVs
dC1jb2x1bW4td2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBzdHIpKQor
ICAgICAgICAgICAgICAgICAgICAgcmVzKSkpCisgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkp
CisgICAgOzsgSWYgcG9pbnQgaXMgbm90IGF0IGJvbCwgaW5zZXJ0IGEgbmV3bGluZS4KKyAgICAo
dW5sZXNzIChlcSAocG9pbnQpIChwb3MtYm9sKSkKKyAgICAgIChpbnNlcnQgIlxuIikpCisgICAg
OzsgSW5zZXJ0IGFuIGVtcHR5IGxpbmUgaWYgbmVlZGVkLgorICAgICh1bmxlc3MgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgLTEpCisgICAgICAgICAgICAgIChl
cSAocG9zLWJvbCkgKHBvcy1lb2wpKSkKKyAgICAgIChpbnNlcnQgIlxuIikpCisgICAgOzsgSW5z
ZXJ0IHBhZGRlZCBoZWFkaW5nIHRleHQuCisgICAgKGluc2VydCAifCIpCisgICAgKGRvdGltZXMg
KHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3MpKQorICAgICAgICAg
ICAgIChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIgZWx0KSBlbHQpKQorICAgICAgICAgICAgICh3
aWR0aCAobWF4IDMgKG50aCB4IGhlYWRpbmctd2lkdGhzKSkpCisgICAgICAgICAgICAgKHBhZC13
aWR0aCAoLSB3aWR0aCAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGluc2VydCBzdHIgKG1ha2Ut
c3RyaW5nIHBhZC13aWR0aCA/XHMpICJ8IikpKQorICAgIChpbnNlcnQgIlxuIikKKyAgICA7OyBJ
bnNlcnQgcGFkZGVkIGhlYWRpbmcgYWxpZ25lcnMuCisgICAgKGluc2VydCAifCIpCisgICAgKGRv
dGltZXMgKHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3MpKQorICAg
ICAgICAgICAgIChhbGlnbiAoaWYgKGNvbnNwIGVsdCkgKGNkciBlbHQpICd1bnNwZWNpZmllZCkp
CisgICAgICAgICAgICAgKHdpZHRoIChtYXggMyAobnRoIHggaGVhZGluZy13aWR0aHMpKSkpCisg
ICAgICAgIChpbnNlcnQgKG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIgd2lkdGggYWxp
Z24pKSkKKyAgICAgIChpbnNlcnQgInwiKSkKKyAgICAoaW5zZXJ0ICJcbiIpCisgICAgOzsgSW5z
ZXJ0IEJPRFkgY2VsbHMgb3IgZW1wdHkgY2VsbHMuCisgICAgKGRvdGltZXMgKHkgbnJvd3MpCisg
ICAgICAoaW5zZXJ0ICJ8IikKKyAgICAgIChsZXQgKChyb3cgKG50aCB5IGJvZHkpKSkKKyAgICAg
ICAgKGRvdGltZXMgKHggbmNvbHMpCisgICAgICAgICAgOzsgVE9ETzogUmVtb3ZlIHRoZSBwbGFj
ZWhvbGRlciBjaGFyYWN0ZXIgaWYgdGhlIHRyZWUtc2l0dGVyCisgICAgICAgICAgOzsgZ3JhbW1h
ciBpcyByZXBhaXJlZC4KKyAgICAgICAgICAobGV0KiAoKHN0ciAob3IgKG50aCB4IHJvdykgKGFu
ZCAoZXEgeCAwKSAiLiIpICIiKSkKKyAgICAgICAgICAgICAgICAgKHN0cmxlbiAobGVuZ3RoIHN0
cikpCisgICAgICAgICAgICAgICAgICh3aWR0aCAobnRoIHggaGVhZGluZy13aWR0aHMpKQorICAg
ICAgICAgICAgICAgICAocGFkLXdpZHRoIChtYXggMCAoLSB3aWR0aCBzdHJsZW4pKSkpCisgICAg
ICAgICAgICAoaW5zZXJ0IHN0cgorICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgcGFk
LXdpZHRoID9ccykKKyAgICAgICAgICAgICAgICAgICAgInwiKSkpCisgICAgICAgIChpbnNlcnQg
IlxuIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUgKCkKKyAg
IlJlbW92ZSB0aGUgTWFya2Rvd24gdGFibGUgYXQgcG9pbnQuCitJZiBwb2ludCBpcyBub3QgYXQg
YSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1i
YXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUpCisgICh3aGVu
LWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAg
ICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkpCisgICAgOzsgVE9ETzogUmVtb3ZlIGFmdGVy
IGJ1ZyMyMzkwMyBVbmRvIGFmdGVyIGtiIGRpZmZlcnMgZnJvbSBhZnRlciBNLXgKKyAgICAocHVz
aCAocG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgKGRlbGV0ZS1yZWdpb24gKHRyZWVzaXQt
bm9kZS1zdGFydCB0YWJsZSkgKHRyZWVzaXQtbm9kZS1lbmQgdGFibGUpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgKCkKKyAgIk1vdmUgdG8gdGhlIHByZXZpb3Vz
IHJvdyBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChp
bnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93IC0xKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICgmb3B0aW9uYWwgbikKKyAgIk1vdmUgdG8gdGhl
IG5leHQgcm93IGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8gdGhlIHBy
ZXZpb3VzIHJvdy4KK0lmIHBvaW50IGlzIG9uIHRoZSBsYXN0IHJvdyBvZiB0aGUgdGFibGUsIGlu
c2VydCBhIG5ldyByb3cgYmVsb3cgYW5kCittb3ZlIGludG8gaXQuICBXaXRoIGEgcHJlZml4IGFy
Z3VtZW50LCBjbG9uZSB0aGUgZmluYWwgcm93IGludG8gdGhlIG5ldworb25lLgorSWYgbm90IGlu
IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cpCisgIChsZXQgKChi
YWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkKKyAgICA7OyBEb24ndCB1c2UgYG1hcmtkb3duLXRz
LS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcycgYmVjYXVzZSB3ZSB3YW50CisgICAgOzsgdG8gb3Bl
cmF0ZSBpbiB0aGUgaGVhZGVyLgorICAgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24t
dHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxl
KSkKKyAgICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAg
ICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IG5pbCBwb3MpKSkKKyAgICAgIDs7
IElmIG5vIG5leHQgb3IgcHJldiBzaWJsaW5nLCB3ZSdyZSBvbiB0aGUgbGFzdC9maXJzdCByb3cu
CisgICAgICAobGV0ICgoY3VycmVudC1jb2x1bW4gKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgICAg
ICAgIChuZXh0LXJvdyAoaWYgYmFja3dhcmRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyByb3cgJ25hbWVkKSkpKQorICAgICAgICAo
aWYgbmV4dC1yb3cKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBu
ZXh0LXJvdykpCisgICAgICAgICAgKHVubGVzcyBiYWNrd2FyZHMKKyAgICAgICAgICAgIChtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWJlbG93IGN1cnJlbnQtcHJlZml4LWFyZykpKQorICAg
ICAgICAobW92ZS10by1jb2x1bW4gY3VycmVudC1jb2x1bW4pKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtdGFibGUtcHJldmlvdXMtY2VsbCAoKQorICAiTW92ZSB0byB0aGUgcHJldmlvdXMgY2Vs
bCBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtY2VsbCAtMSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy10YWJsZS1uZXh0LWNlbGwgKCZvcHRpb25hbCBuKQorICAiTW92ZSB0byB0aGUg
bmV4dCBjZWxsIGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8gdGhlIHBy
ZXZpb3VzIGNlbGwuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFj
dGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJs
ZS1uZXh0LWNlbGwpCisgIChsZXQgKChiYWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkKKyAgICAo
d2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAg
ICAgICAgICAgICAgIChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKHRhYmxl
IChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQg
cG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10
cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUpKQorICAgICAgICAgICAgICAgIChjZWxsLXR5cGUgKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgICAgICAgIChyb3cgKG1hcmtkb3duLXRz
LS10YWJsZS1ub2RlLXJvdyBjZWxsKSkKKyAgICAgICAgICAgICAgICAocm93LXR5cGUgKHRyZWVz
aXQtbm9kZS10eXBlIHJvdykpCisgICAgICAgICAgICAgICAgKG5leHQtY2VsbAorICAgICAgICAg
ICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgOzsgSWYgaW4gYSBwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3cgYW5kIG5vdCB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgIDs7IG9yIGZp
bmFsIGNlbGwgaW4gdGhlIHJvdywgc3RheSB3aXRoaW4gdGhlIHJvdworICAgICAgICAgICAgICAg
ICAgOzsgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBjb25kaXRpb24gc2hvdWxkIG1hdGNoLgorICAg
ICAgICAgICAgICAgICAgKChhbmQgKGVxdWFsIHJvdy10eXBlICJwaXBlX3RhYmxlX2RlbGltaXRl
cl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGJhY2t3YXJkcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIGNlbGwgJ25hbWVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBj
ZWxsICduYW1lZCkpKQorICAgICAgICAgICAgICAgICAgIChpZiBiYWNrd2FyZHMKKyAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2LXNpYmxpbmcgY2VsbCAnbmFtZWQpCisg
ICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBjZWxsICduYW1l
ZCkpKQorICAgICAgICAgICAgICAgICAgOzsgSWYgb24gdGhlIGZpcnN0IHBpcGVfdGFibGVfcm93
J3MgZmlyc3QgY2VsbCBtb3ZpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGJhY2t3YXJkcywgbW92
ZSBpbnRvIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9kZWxpbWl0
ZXJfY2VsbC4KKyAgICAgICAgICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUgInBpcGVf
dGFibGVfY2VsbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJl
di1zaWJsaW5nIHJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
aXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAo
dHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBiYWNrd2FyZHMpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZv
cndhcmQKKyAgICAgICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxg
cGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAgICAgICAg
ICAgIDs7IElmIG9uIHRoZSBmaXJzdCBwaXBlX3RhYmxlX2hlYWRlcidzIGZpbmFsIGNlbGwKKyAg
ICAgICAgICAgICAgICAgIDs7IG1vdmluZyBmb3J3YXJkcywgbW92ZSBpbnRvIHRoZSBmaXJzdAor
ICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbC4KKyAgICAgICAg
ICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUgInBpcGVfdGFibGVfY2VsbCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFt
ZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaXBlX3RhYmxlX2RlbGltaXRl
cl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAodHJlZXNpdC1ub2RlLW5leHQt
c2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAobm90IGJhY2t3
YXJkcykpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQKKyAgICAg
ICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9k
ZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAgICAgICAgICAgICh0CisgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQKKyAgICAgICAgICAgICAgICAg
ICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9jZWxsXFwnIiBiYWNr
d2FyZHMpKSkpKQorICAgICAgOzsgS2VlcCBwb2ludCB3aXRoaW4gdGhlIGN1cnJlbnQgdGFibGUu
CisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJjaC1mb3J3
YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0LWNlbGwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAnYmFja3dh
cmQpKQorICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbmV4dC1jZWxsKSkp
CisgICAgICAod2hlbiAob3IgKGVxIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24gdCkKKyAg
ICAgICAgICAgICAgICAobWVtcSAnY2VsbC1uYXZpZ2F0aW9uIG1hcmtkb3duLXRzLXRhYmxlLWF1
dG8tYWxpZ24pKQorICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1iZWxvdyAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGJlbG93IHBvaW50LgorSWYgcG9pbnQgaXMgaW4g
dGhlIGhlYWRlciwgaW5zZXJ0IGJlbG93IHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYg
Q0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUgdGhlIGN1
cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1wcmVmaXgt
YXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYmVsb3cgY2xvbmUpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1hYm92ZSAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBvaW50LgorSWYgcG9pbnQgaXMgaW4g
dGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYg
Q0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUgdGhlIGN1
cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1wcmVmaXgt
YXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYWJvdmUgY2xvbmUpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93ICgpCisgICJJbnNlcnQg
YSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBwb2ludCBpcyBpbiB0aGUgaGVhZGVyLCBpbnNl
cnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUgdGFibGUuCitJZiBwb2ludCBpcyBub3QgYXQg
YSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRh
YmxlLWluc2VydC1yb3ctYmVsb3cgJ2Nsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxl
LWNsb25lLXJvdy1hYm92ZSAoKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBvaW50Lgor
SWYgcG9pbnQgaXMgaW4gdGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCByb3cgb2Yg
dGhlIHRhYmxlLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWFib3ZlICdjbG9u
ZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93ICgmb3B0aW9uYWwgYWJv
dmUgY2xvbmUpCisgICJJbnNlcnQgYSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBwb2ludCBp
cyBpbiB0aGUgaGVhZGVyLCBpbnNlcnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUgdGFibGUu
CitJZiBBQk9WRSBpcyBub24tbmlsIGFuZCBpcyBub3QgYGJlbG93Jywgb3Igd2l0aCBhIHByZWZp
eCBhcmd1bWVudCwKK2luc2VydCB0aGUgcm93IGFib3ZlIHBvaW50LgorSWYgQ0xPTkUgaXMgbm9u
LW5pbCwgY2xvbmUgdGhlIGN1cnJlbnQgcm93LCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5CitjZWxs
cy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0
aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93KQorICAoc2V0cSBhYm92ZSAoY29uZCAoKGVxIGFib3ZlICdiZWxvdykg
bmlsKQorICAgICAgICAgICAgICAgICAgICAoYWJvdmUgYWJvdmUpCisgICAgICAgICAgICAgICAg
ICAgIChjdXJyZW50LXByZWZpeC1hcmcgdCkpKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1h
cmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQt
dGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAg
ICAgIChkZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc
YHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAobmNvbHMgKHRy
ZWVzaXQtbm9kZS1jaGlsZC1jb3VudCBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAgICAgICAg
ICAgIChoZWFkaW5nLXdpZHRocworICAgICAgICAgICAgICAgKGxldCAocmVzKQorICAgICAgICAg
ICAgICAgICAoZG9saXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93
ICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxlbmd0aCAodHJlZXNpdC1ub2Rl
LXRleHQgZWx0KSkgcmVzKSkKKyAgICAgICAgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKSkKKyAg
ICAobGV0KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBwb3Mp
KQorICAgICAgICAgICAocm93IChjYXIgbmVhcikpCisgICAgICAgICAgIChjdXJyZW50LWNvbHVt
biAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIDs7IElmIHJvdyBpcyBuaWwsIHRoZXJlIGFyZSB6
ZXJvIHJvd3Mgc28gYWRkIG9uZSBiZWxvdyB0aGUKKyAgICAgIDs7IGRlbGltaXRlci1yb3cuCisg
ICAgICAodW5sZXNzIHJvdworICAgICAgICAoc2V0cSBjbG9uZSBuaWwpCisgICAgICAgIChzZXRx
IHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAoc2V0cSBhYm92ZSBuaWwpKQorICAgICAgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgIChjb25kIChhYm92ZQorICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHJvdykpKQorICAgICAgICAgICAgICAodAorICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCByb3cpKQorICAgICAgICAgICAg
ICAgKGluc2VydCAiXG4iKSkpCisgICAgICAgIChjb25kIChjbG9uZQorICAgICAgICAgICAgICAg
OzsgVGhlIGNsb25lIHN0cmF0ZWd5IGlzIFdZU0lXWUcuICBKdXN0IGNvcHkgdGhlIHRleHQKKyAg
ICAgICAgICAgICAgIDs7IGFuZCBkb24ndCBmdXNzIHdpdGggY2VsbCBjb250ZW50IGFuZCBwaXBl
IHN5bWJvbHMuCisgICAgICAgICAgICAgICA7OyBUaGUgZ3JhbW1hciBpbmNsdWRlcyB0aGUgZmlu
YWwgbmV3bGluZSAoYW5kCisgICAgICAgICAgICAgICA7OyBzb21ldGltZXMgbm90KS4KKyAgICAg
ICAgICAgICAgIChpbnNlcnQgKHN0cmluZy10cmltLXJpZ2h0CisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXRleHQgcm93ICduby1wcm9wZXJ0eSkgIlxuIikpKQorICAgICAg
ICAgICAgICAodAorICAgICAgICAgICAgICAgKGluc2VydCAifCIpCisgICAgICAgICAgICAgICAo
ZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBhZC13aWR0aCAobnRo
IHggaGVhZGluZy13aWR0aHMpKSkKKyAgICAgICAgICAgICAgICAgICA7OyBUT0RPOiBSZW1vdmUg
dGhlIHBsYWNlaG9sZGVyIGNoYXJhY3RlciBpZiB0aGUKKyAgICAgICAgICAgICAgICAgICA7OyB0
cmVlLXNpdHRlciBncmFtbWFyIGlzIHJlcGFpcmVkLgorICAgICAgICAgICAgICAgICAgIChpbnNl
cnQgKGlmIChlcSB4IDApICIuIiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtl
LXN0cmluZyAoLSBwYWQtd2lkdGggKGlmIChlcSB4IDApIDEgMCkpID9ccykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ8IikpKSkpCisgICAgICAgICh3aGVuIGFib3ZlCisgICAgICAgICAg
KGluc2VydCAiXG4iKSkpCisgICAgICAoY29uZCAoYWJvdmUKKyAgICAgICAgICAgICAod2hlbiAo
PiBjdXJyZW50LWNvbHVtbiAwKQorICAgICAgICAgICAgICAgKHdpdGgtc3VwcHJlc3NlZC13YXJu
aW5ncyAoKGludGVyYWN0aXZlLW9ubHkgcHJldmlvdXMtbGluZSkpCisgICAgICAgICAgICAgICAg
IChwcmV2aW91cy1saW5lKSkpKQorICAgICAgICAgICAgKHQgKHdpdGgtc3VwcHJlc3NlZC13YXJu
aW5ncyAoKGludGVyYWN0aXZlLW9ubHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAgICAgICAgKG5l
eHQtbGluZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cgKCkK
KyAgIkRlbGV0ZSB0aGUgdGFibGUgcm93IGF0IHBvaW50LgorSWYgcG9pbnQgaXMgb24gdGhlIGhl
YWRlciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90IGF0IGEg
dGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFy
Zi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLXJvdykKKyAgKHdoZW4tbGV0
KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBuaWwgdCkpCisg
ICAgICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBkZWxpbWl0
ZXIgcm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgZGVsZXRlIGEgYm9k
eSByb3cgdGhlIHVzZXIgZGlkIG5vdCBzZWxlY3QuCisgICAgICAgICAgICAgICgobm90IChjZHIg
bmVhcikpKQorICAgICAgICAgICAgICAocm93IChjYXIgbmVhcikpKQorICAgIChsZXQgKChjdXJy
ZW50LWNvbHVtbiAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIChkZWxldGUtcmVnaW9uICh0cmVl
c2l0LW5vZGUtc3RhcnQgcm93KQorICAgICAgICAgICAgICAgICAgICAgKG1pbiAoMSsgKHRyZWVz
aXQtbm9kZS1lbmQgcm93KSkgKHBvaW50LW1heCkpKQorICAgICAgKG1vdmUtdG8tY29sdW1uIGN1
cnJlbnQtY29sdW1uKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctdXAg
KCkKKyAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1cCBvbmUgbGluZS4KK0lmIHBvaW50IGlzIG5v
dCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24t
dHMtdGFibGUtbW92ZS1yb3cpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ct
ZG93biAoKQorICAiTW92ZSB0aGUgcm93IGF0IHBvaW50IGRvd24gb25lIGxpbmUuCitJZiBwb2lu
dCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1h
cmtkb3duLXRzLXRhYmxlLW1vdmUtcm93ICdkb3duKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtcm93ICgmb3B0aW9uYWwgZG93bikKKyAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1
cCBvbmUgbGluZS4KK0lmIERPV04gaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVu
dCwgbW92ZSB0aGUgcm93IGRvd24gb25lCitsaW5lLgorSWYgcG9pbnQgaXMgb24gdGhlIGhlYWRl
ciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFi
bGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1p
Zi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3cpCisgIChzZXRxIGRvd24gKG9y
IGRvd24gY3VycmVudC1wcmVmaXgtYXJnKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJr
ZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRh
YmxlKSkKKyAgICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAg
ICAobmVhciAobWFya2Rvd24tdHMtLXRhYmxlLWJvZHktcm93LW5lYXItcG9zIHBvcykpCisgICAg
ICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBkZWxpbWl0ZXIg
cm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgbW92ZSBhIGJvZHkgcm93
IHRoZSB1c2VyIGRpZCBub3Qgc2VsZWN0LgorICAgICAgICAgICAgICAoKG5vdCAoY2RyIG5lYXIp
KSkKKyAgICAgICAgICAgICAgKHJvdyAoY2FyIG5lYXIpKSkKKyAgICA7OyBEbyBub3QgbW92ZSBh
Ym92ZSB0aGUgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93LgorICAgIDs7IERvIG5vdCBtb3ZlIGJl
bG93IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLgorICAgICh1bmxlc3MgKG9yIChhbmQgKG5vdCBk
b3duKQorICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyByb3cg
J25hbWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGlwZV90YWJsZV9kZWxpbWl0
ZXJfcm93IikpCisgICAgICAgICAgICAgICAgKGFuZCBkb3duCisgICAgICAgICAgICAgICAgICAg
ICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpKSkpCisgICAgICAo
bGV0ICgocm93MiAoaWYgZG93bgorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
bmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpKSkKKyAgICAgICAgICAgIChyb3ctZW5kICh0cmVl
c2l0LW5vZGUtZW5kIHJvdykpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIgYnVnIzIz
OTAzIFVuZG8gYWZ0ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAocHVzaCAo
cG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgICAgIDs7IElmIHJvdyBwb2ludCBpcyBvdXRz
aWRlIGl0cyBzb3VyY2UgcmVnaW9uLCBlLmcuLCBhdCBlb2wsIG1vdmUKKyAgICAgICAgOzsgaXQg
aW5zaWRlIHRoZSByZWdpb24gZm9yIHN0YWJpbGl0eS4KKyAgICAgICAgKHdoZW4gKD49IChwb2lu
dCkgcm93LWVuZCkKKyAgICAgICAgICAoZ290by1jaGFyIChtYXggKHBvaW50LW1pbikgKDEtIHJv
dy1lbmQpKSkpCisgICAgICAgICh0cmFuc3Bvc2UtcmVnaW9ucyAodHJlZXNpdC1ub2RlLXN0YXJ0
IHJvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHJvdykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgcm93MikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHJvdzIpKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdCAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIHRvIHRoZSBsZWZ0IG9mIHBvaW50J3MgY29s
dW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xv
bmUgdGhlIGN1cnJlbnQKK2NvbHVtbiwgb3RoZXJ3aXNlIGluc2VydCBlbXB0eSBjZWxscy4KK1Bv
aW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBub3Qg
YXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgIChtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uICdsZWZ0IGNsb25lKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQgKCZvcHRpb25hbCBjbG9uZSkKKyAgIkluc2Vy
dCBhIHRhYmxlIGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQncyBjb2x1bW4uCitJZiBDTE9O
RSBpcyBub24tbmlsLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBjbG9uZSB0aGUgY3VycmVu
dAorY29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5IGNlbGxzLgorUG9pbnQgY2FuIGJlIGlu
IHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWlu
c2VydC1jb2x1bW4gJ3JpZ2h0IGNsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNs
b25lLWNvbHVtbi1sZWZ0ICgpCisgICJDbG9uZSB0aGUgY3VycmVudCBjb2x1bW4gdG8gaXRzIGxl
ZnQuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQg
aXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgJ2Nsb25lKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWNsb25lLWNvbHVtbi1yaWdodCAoKQorICAiQ2xvbmUgdGhlIGN1cnJlbnQg
Y29sdW1uIHRvIGl0cyByaWdodC4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9y
IGJvZHkuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQgJ2Nsb25l
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4gKCZvcHRpb25hbCBs
ZWZ0IGNsb25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIGFmdGVyIHBvaW50J3MgY3VycmVu
dCBjb2x1bW4uCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5vdCBgcmlnaHQnLCBvciB3aXRo
IGEgcHJlZml4IGFyZ3VtZW50LAoraW5zZXJ0IHRoZSBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgdGhl
IGN1cnJlbnQgY29sdW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgY2xvbmUgdGhlIGN1cnJlbnQg
Y29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5CitjZWxscy4KK0lmIENMT05FIGlzIGEgbGlz
dCwgaXRzIGZpcnN0IGVsZW1lbnQgaXMgdGFyZ2V0LWNvbHVtbi1udW1iZXIuICBJdCBpcwordGhl
IGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRoYXQgdGhpcyB2YWx1ZSBpcyB2YWxpZCBmb3IgdGhl
IHRhYmxlLAordGhvdWdoIGl0IG1heSBiZSBpbnZhbGlkIGZvciBhIG5vbi11bmlmb3JtIHJhZ2dl
ZCByb3cuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9p
bnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICht
YXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LWNv
bHVtbikKKyAgKHNldHEgbGVmdCAoY29uZCAoKGVxIGxlZnQgJ3JpZ2h0KSBuaWwpCisgICAgICAg
ICAgICAgICAgICAgKGxlZnQgbGVmdCkKKyAgICAgICAgICAgICAgICAgICAoY3VycmVudC1wcmVm
aXgtYXJnIHQpKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJs
ZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAg
ICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAoZGVsaW1pdGVyLXJv
dyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICA7
OyBDb2x1bW4gcG9zIGZvciBpbnNlcnRpbmcgbWlzc2luZyBsZWFkaW5nIHBpcGVzLgorICAgICAg
ICAgICAgICAoZGVsaW0wLXBpcGUtY29sCisgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgKGxldCogKChkZWxpbS1jZWxsICh0cmVlc2l0LW5vZGUtY2hpbGQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXItcm93IDAgJ25h
bWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBk
ZWxpbS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgKGlm
IChzZWFyY2gtZm9yd2FyZCAifCIgYmVnIHQpCisgICAgICAgICAgICAgICAgICAgICAgICgxLSAo
Y3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisg
ICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKSkpKQorICAgICAgICAgICAgICAo
bm9kZSAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24gJ25hbWVkKSkKKyAgICAgICAgICAg
ICAgKGNlbGwgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLWNlbGwgbm9kZSkpCisgICAgICAgICAg
ICAgIChwb2ludC1yb3cgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyBjZWxsKSkpCisgICAg
KGxldCAoKHRhYmxlLWNvbHVtbiAobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4gcG9pbnQtcm93IGNlbGwpKSkKKyAgICAgICh1bmxlc3MgdGFibGUtY29sdW1uCisgICAgICAg
IChlcnJvciAiQ291bGQgbm90IGNvbXB1dGUgdGhlIHRhYmxlIGNvbHVtbiIpKQorICAgICAgOzsg
Tk9URTogR0ZNIHRhYmxlcyBhbGxvdyBub24tdW5pZm9ybSB0YWJsZSByb3dzLiAgVGhlIGN1cnJl
bnQgcm93CisgICAgICA7OyBjb3VsZCBoYXZlIGEgZGlmZmVyaW5nIG51bWJlciBvZiBjb2x1bW5z
IGZyb20gb3RoZXIgcm93cy4gIFdlCisgICAgICA7OyBzaWxlbnRseSBkbyBub3RoaW5nIHRvIGEg
cm93IHRoYXQgZG9lcyBub3QgZXh0ZW5kIHRvIHRoZQorICAgICAgOzsgY29tcHV0ZWQgY29sdW1u
LgorICAgICAgOzsKKyAgICAgIDs7IE5PVEU6IFRoZSBncmFtbWFyIGFubm95aW5nbHkgaWdub3Jl
cyBjZWxsIGxlYWRpbmcgd2hpdGVzcGFjZQorICAgICAgOzsgYnV0IGluY2x1ZGVzIHRyYWlsaW5n
IHdoaXRlc3BhY2UsIHNvIGNlbGxzIGFyZSBib3VuZGVkIGJ5IHRoZQorICAgICAgOzsgZmlyc3Qg
Z3JhcGggY2hhcmFjdGVyIHVwIHRvIHRoZSBsYXN0IGNoYXJhY3RlciBqdXN0IGJlZm9yZSB0aGUK
KyAgICAgIDs7IHBpcGUgc3ltYm9sLCBpbmNsdWRpbmcgd2hpdGVzcGFjZS4gIFRoZSByZXN1bHQg
aXMgdGhlIHJhbmdlCisgICAgICA7OyBkb2VzIG5vdCBzdGFydCBpbW1lZGlhdGVseSBhZnRlciB0
aGUgb3B0aW9uYWwgbGVhZGluZyBwaXBlCisgICAgICA7OyBzeW1ib2wgeWV0IGluY29uc2lzdGVu
dGx5IGNvbnRpbnVlcyB1bnRpbCBqdXN0IGJlZm9yZSB0aGUKKyAgICAgIDs7IHRyYWlsaW5nIHBp
cGUuCisgICAgICAobGV0KiAoKGFkaiAwKSA7IEFkanVzdCBub2RlIHBvc2l0aW9uIG9mZnNldHMg
YnkgaW5zZXJ0ZWQgdGV4dC4KKyAgICAgICAgICAgICAod2lkdGggbWFya2Rvd24tdHMtdGFibGUt
ZGVmYXVsdC1jb2x1bW4td2lkdGgpCisgICAgICAgICAgICAgKGVtcHR5IChtYWtlLXN0cmluZyB3
aWR0aCA/XHMpKQorICAgICAgICAgICAgIDs7IFRPRE86IFJlbW92ZSB0aGUgcGxhY2Vob2xkZXIg
Y2hhcmFjdGVyIGlmIHRoZSB0cmVlLXNpdHRlcgorICAgICAgICAgICAgIDs7IGdyYW1tYXIgaXMg
cmVwYWlyZWQuCisgICAgICAgICAgICAgKHBsYWNlaG9sZGVyIChjb25jYXQgIi4iIChtYWtlLXN0
cmluZyAoMS0gd2lkdGgpID9ccykpKQorICAgICAgICAgICAgIChkZWxpbSAobWFrZS1zdHJpbmcg
d2lkdGggPy0pKQorICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFi
bGUgJ25hbWVkKSkKKyAgICAgICAgICAgICAobnJvd3MgKGxlbmd0aCByb3dzKSkKKyAgICAgICAg
ICAgICAodGFyZ2V0LWNvbHVtbi1udW1iZXIgKGFuZCAobGlzdHAgY2xvbmUpIChjYXIgY2xvbmUp
KSkKKyAgICAgICAgICAgICA7OyBQb3NpdGlvbiB0byBtb3ZlIHBvaW50IHRvIGFmdGVyIGFsbCBy
b3dzIGhhdmUgYmVlbgorICAgICAgICAgICAgIDs7IHVwZGF0ZWQuICBEZXRlcm1pbmlzdGljIHBs
YWNlbWVudCBhdm9pZHMgZGVwZW5kaW5nIG9uCisgICAgICAgICAgICAgOzsgdHJlZS1zaXR0ZXIg
bmF2aWdhdGlvbiB0aHJvdWdoIGZyZXNobHktaW5zZXJ0ZWQgZW1wdHkKKyAgICAgICAgICAgICA7
OyBjZWxscywgd2hpY2ggdGhlIGdyYW1tYXIgZG9lcyBub3QgYWx3YXlzIHJlcGFyc2UgYXMKKyAg
ICAgICAgICAgICA7OyBwaXBlX3RhYmxlX2NlbGwgbm9kZXMuCisgICAgICAgICAgICAgKHRhcmdl
dC1wb3MpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIgYnVnIzIzOTAzIFVuZG8gYWZ0
ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAocHVzaCAocG9pbnQpIGJ1ZmZl
ci11bmRvLWxpc3QpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICh3aXRob3V0
LXJlc3RyaWN0aW9uCisgICAgICAgICAgICAoZG90aW1lcyAoeCBucm93cykKKyAgICAgICAgICAg
ICAgKHdoZW4tbGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChyb3ctdHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IHNvdXJjZS1jZWxsIHdpbGwgYmUgbmlsIGlmIHRhYmxlLWNvbHVtbiBp
cyBiZXlvbmQgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByb3cncyBjb2x1bW4g
c2V0IGFuZCB0aGF0IHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzb3VyY2UtY2VsbCAobnRoIHRhYmxlLWNvbHVtbiBjb2xzKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgOzsgSWYgY2xvbmluZyB3aXRoIGEgc3BlY2lmaWVkIHRhcmdldC1jb2x1bW4t
bnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0YXJnZXQtY2VsbCB3aWxsIGJl
IG5pbCBhbmQgdGhlIHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0YXJnZXQtY2VsbCAoaWYgdGFyZ2V0LWNvbHVtbi1udW1iZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggdGFyZ2V0LWNvbHVtbi1udW1iZXIgY29s
cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UtY2VsbCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENvbXB1dGUgdGhlIGluc2VydGlvbiBwb2lu
dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBJZiBjbG9uaW5nIHRvIGEgc3BlY2lmaWVkIHRhcmdldCwgdXNl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRhcmdldC1jZWxsJ3MgZW5kLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0LWNvbHVtbi1udW1iZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgdGFyZ2V0LWNlbGwpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgaW5zZXJ0aW5nIHRvIHRoZSBsZWZ0IG9m
IHRoZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjb2x1bW4sIHVz
ZSBzb3VyY2UgY2VsbCdzIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7
IGFkanVzdGVkIGZvciBpdHMgb3B0aW9uYWwgcGlwZSB0bworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7OyBjYXB0dXJlIGl0cyB3aGl0ZXNwYWNlLiAgSWYgdGhlcmUgaXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbm8gcGlwZSwgdXNlIGJvbC4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgbGVmdCAoZXEgdGFibGUtY29sdW1uIDApKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHAgKCsgYWRqCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IHNvdXJjZS1jZWxsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290
by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
KHBvcy1ib2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHNlYXJj
aC1mb3J3YXJkICJ8IiBwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBwICgxLSAocG9pbnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBwIChwb3MtYm9sKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNlcnRpbmcg
bGVmdCBhbmQgYW55IG90aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGNv
bHVtbiwgdXNlIHRoZSBlbmQgb2YgdGhlIHByaW9yCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgxKyAodHJlZXNpdC1ub2RlLWVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobnRoICgxLSB0YWJsZS1jb2x1bW4pIGNvbHMpKSkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNlcnRpbmcgcmlnaHQs
IHVzZSB0aGUgZW5kIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRoZSBj
dXJyZW50IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHNvdXJjZS1jZWxsKSkpKSkpCisgICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAgICAgKGxldCogKChvcmlnLXBv
aW50IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgIChtaXNzaW5nLWxlYWRpbmctcGlw
ZQorICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRhYmxlLWNvbHVtbiAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyIChwb3MtYm9sKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodW5sZXNzIChzZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFk
aiAodHJlZXNpdC1ub2RlLXN0YXJ0IHNvdXJjZS1jZWxsKSkgdCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ8IikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKGNvbmQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIGNsb25pbmcsIHJldHJpZXZlIHRo
ZSBzb3VyY2UgY2VsbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25l
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOzsgQmFjayB1cCB0byBib2wgb3IgdGhlIHBpcGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdG8gY2FwdHVyZSB0aGUgd2hpdGVzcGFjZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGUgZ3JhbW1hciBsZWF2
ZXMgb3V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IHNvdXJjZS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHNraXAtY2hhcnMtYmFja3dhcmQgIltbOmJsYW5rOl1dIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3MtYm9sKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGogKHRyZWVzaXQtbm9kZS1lbmQgc291cmNl
LWNlbGwpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBuZXcgY29sdW1u
LCBhbmQgdGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGRlbGlt
aXRlciByb3csIGluc2VydCBhIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDs7IGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwgcm93
LXR5cGUgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVsaW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBuZXcg
Y29sdW1uLCBhbmQgdGhpcyBpcyB0aGUgYSBoZWFkZXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IG9yIGJvZHkgcm93LCBpbnNlcnQgYSBkZWZhdWx0IGVtcHR5CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5KSkpKQorICAgICAg
ICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoY2xvbmUKKyAgICAgICAgICAg
ICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgdGhlIGZpcnN0IGNv
bHVtbiB0byB0aGUgbGVmdC4gIElmIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgICAgIDs7IG5v
IHBpcGUgYmVmb3JlIHRoZSBjZWxsIGNvbnRlbnQsIGluc2VydCBvbmUuCisgICAgICAgICAgICAg
ICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciBtaXNzaW5nLWxlYWRpbmctcGlw
ZSAiIikpKQorICAgICAgICAgICAgICAgICAgICA7OyBDbG9uZSB0aGUgZmlyc3QgY29sdW1uIHRv
IHRoZSByaWdodC4KKyAgICAgICAgICAgICAgICAgICAgICgoYW5kIChub3QgbGVmdCkgKGVxIHRh
YmxlLWNvbHVtbiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICA7OyBG
b3IgYSBwb3NpdGl2ZSB1c2VyIGV4cGVyaWVuY2UgZ2l2ZW4gZ3JhbW1hcgorICAgICAgICAgICAg
ICAgICAgICAgIDs7IGJ1Z3MsIGFkZCBhIG1pc3NpbmcgbGVhZGluZyBwaXBlIHRvIHRoZSBmaXJz
dAorICAgICAgICAgICAgICAgICAgICAgIDs7IGNlbGwgYXQgYSBwbGVhc2luZyBwb3NpdGlvbiBh
ZnRlciBjbG9uaW5nLgorICAgICAgICAgICAgICAgICAgICAgICh3aGVuIG1pc3NpbmctbGVhZGlu
Zy1waXBlCisgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1vdmUtdG8tY29sdW1uIGRlbGltMC1waXBlLWNvbCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIpKSkpCisgICAgICAgICAgICAgICAgICAg
IDs7IENsb25lIHRoZSBmaW5hbCBjb2x1bW4gdG8gdGhlIGxlZnQuCisgICAgICAgICAgICAgICAg
ICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gKDEtIG5jb2xzKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgKGluc2VydCB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
fCIpKQorICAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgYSBtaWRkbGUgY29sdW1uIHRvIHRo
ZSBsZWZ0LgorICAgICAgICAgICAgICAgICAgICAgKGxlZnQKKyAgICAgICAgICAgICAgICAgICAg
ICAoaW5zZXJ0IHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ8IikpCisgICAg
ICAgICAgICAgICAgICAgICA7OyBDbG9uZSBhIG1pZGRsZSBvciBmaW5hbCBjb2x1bW4gdG8gdGhl
IHJpZ2h0LgorICAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgICAo
aW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkpKSkKKworICAg
ICAgICAgICAgICAgICAgIDs7IE5vdCBjbG9uaW5nLCBpbnNlcnQgYSBuZXcgY29sdW1uLgorICAg
ICAgICAgICAgICAgICAgICgoYW5kIGxlZnQgKGVxIHRhYmxlLWNvbHVtbiAwKSAoZXEgeCAoMS0g
bnJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxdWFsIHJvdy10eXBlICJw
aXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKSkpCisgICAgICAgICAgICAgICAgICAgOzsgVE9ETzog
cmVtb3ZlIHBsYWNlaG9sZGVyIGxvZ2ljLgorICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0Cisg
ICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVy
CisgICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2luZy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAg
ICAgICAgICAgICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydAorICAgICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2lu
Zy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAgICAgICAgICAgICAgICAgICAobGVmdAorICAgICAgICAg
ICAgICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAg
ICAgICAgICAgICAifCIpKQorICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAg
ICAgIChpbnNlcnQKKyAgICAgICAgICAgICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgICAg
ICAgdGV4dCkpKQorCisgICAgICAgICAgICAgICAgICA7OyBDYXB0dXJlIHRoZSBzdGFydCBvZiB0
aGUgbmV3IGNlbGwncyBjb250ZW50IGluCisgICAgICAgICAgICAgICAgICA7OyB0aGUgcm93IHRo
YXQgb3JpZ2luYWxseSBjb250YWluZWQgcG9pbnQuCisgICAgICAgICAgICAgICAgICAod2hlbiAo
YW5kIChub3QgdGFyZ2V0LXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtbm9kZS1lcSByb3cgcG9pbnQtcm93KSkKKyAgICAgICAgICAgICAgICAgICAgKHNldHEgdGFy
Z2V0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRhcmdldC1jb2x1bW4tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5kIGxlZnQg
KG5vdCAoZXEgdGFibGUtY29sdW1uIDApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOzsgInRleHQgfCIgaW5zZXJ0ZWQgYXQgYmVnLgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcmlnLXBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBBbGwg
b3RoZXIgYnJhbmNoZXMgaW5zZXJ0ICJ8IiBmaXJzdC4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgxKyBvcmlnLXBvaW50KSkpKSkpCisKKyAgICAgICAgICAgICAgICAgIDs7IEFkanVz
dCBvZmZzZXQgZm9yIGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgIChzZXRxIGFkaiAo
KyBhZGogKC0gKHBvaW50KSBvcmlnLXBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG9y
aWctcG9pbnQgKHBvaW50KSkpKSkpKQorICAgICAgICAod2hlbiB0YXJnZXQtcG9zCisgICAgICAg
ICAgKGdvdG8tY2hhciB0YXJnZXQtcG9zKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJs
ZS1kZWxldGUtY29sdW1uICgpCisgICJEZWxldGUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludC4K
K1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBu
b3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3du
LXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uKQor
ICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQor
ICAgICAgICAgICAgICAocG9zIChjYXIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAodGFibGUg
KGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUt
bm9kZS1jZWxsIG5pbCBwb3MpKQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFi
bGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAgICAgIChjb2xzICh0cmVlc2l0LW5vZGUtY2hp
bGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29scyAobGVuZ3RoIGNvbHMpKSkK
KyAgICAobGV0ICgodGFibGUtY29sdW1uIChtYXJrZG93bi10cy0tdGFibGUtY29tcHV0ZS1ub2Rl
LWNvbHVtbiByb3cgY2VsbCkpKQorICAgICAgKHVubGVzcyB0YWJsZS1jb2x1bW4KKyAgICAgICAg
KGVycm9yICJDb3VsZCBub3QgY29tcHV0ZSB0aGUgdGFibGUgY29sdW1uIikpCisgICAgICA7OyBO
T1RFOiBHRk0gdGFibGVzIGFsbG93IG5vbi11bmlmb3JtIHRhYmxlIHJvd3MuICBUaGUgY3VycmVu
dCByb3cKKyAgICAgIDs7IGNvdWxkIGhhdmUgYSBkaWZmZXJpbmcgbnVtYmVyIG9mIGNvbHVtbnMg
ZnJvbSBvdGhlciByb3dzLiAgV2UKKyAgICAgIDs7IHNpbGVudGx5IGRvIG5vdGhpbmcgdG8gYSBy
b3cgdGhhdCBkb2VzIG5vdCBleHRlbmQgdG8gdGhlCisgICAgICA7OyBjb21wdXRlZCBjb2x1bW4u
CisgICAgICA7OworICAgICAgOzsgTk9URTogVGhlIGdyYW1tYXIgYW5ub3lpbmdseSBpZ25vcmVz
IGNlbGwgbGVhZGluZyB3aGl0ZXNwYWNlCisgICAgICA7OyBidXQgZG9lcyBpbmNsdWRlIHRyYWls
aW5nIHdoaXRlc3BhY2Ugc28gY2VsbHMgYXJlIGJvdW5kZWQgYnkKKyAgICAgIDs7IHRoZSBmaXJz
dCBncmFwaCBjaGFyYWN0ZXIgdXAgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIGp1c3QgYmVmb3JlCisg
ICAgICA7OyB0aGUgcGlwZSBzeW1ib2wsIGluY2x1ZGluZyB3aGl0ZXNwYWNlLgorICAgICAgOzsK
KyAgICAgIDs7IFRoZSBncmFtbWFyIGFsc28gY29uc2lkZXJzIHRoZSB0cmFpbGluZyBwaXBlIHN5
bWJvbCB0byBiZSBhCisgICAgICA7OyBwYXJ0IG9mIGl0cyBwcmVjZWRpbmcgY2VsbCBzbyB0aGF0
J3Mgd2hhdCB3ZSBkZWxldGUgd2hlbiB3ZQorICAgICAgOzsgZGVsZXRlIGEgY29sdW1uJ3MgY2Vs
bDsgaS5lLiwgaWYgdGhlcmUgaXMgYSBwaXBlIGJlZm9yZSB0aGUKKyAgICAgIDs7IGZpcnN0IGNv
bHVtbiwgd2UgZGVsZXRlIGl0LgorICAgICAgKGxldCogKChhZGogMCkgOyBBZGp1c3Qgbm9kZSBw
b3NpdGlvbiBvZmZzZXRzIGJ5IGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAocm93cyAodHJl
ZXNpdC1ub2RlLWNoaWxkcmVuIHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgKG5yb3dzIChs
ZW5ndGggcm93cykpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAod2l0aG91
dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAg
ICAgIDs7IElmIGNlbGwgaXMgbmlsLCBpdCBpcyBiZXlvbmQgdGhlIHRhYmxlLWNvbHVtbiBhbmQg
aXRzCisgICAgICAgICAgICAgIDs7IHJvdyBpcyBpZ25vcmVkLgorICAgICAgICAgICAgICAod2hl
bi1sZXQqICgocm93IChudGggeCByb3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChjZWxsIChudGggdGFibGUtY29sdW1uIGNvbHMpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY2VsbC1iZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBjZWxsKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNlbGwtZW5kICh0cmVlc2l0LW5vZGUtZW5kIGNlbGwpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGp1c3QgYmVnIHRvIHRyaW0gdGhlIGdyYW1tYXIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgOzsgdW5hY2NvdW50ZWQtZm9yIGxlYWRpbmcgd2hpdGVzcGFjZS4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBJZiB0aGlzIGlzIHRoZSBzb2xlIGNvbHVtbiwgZGVsZXRlIGZyb20g
Ym9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxIG5jb2xzIDEpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtYmVnIGFkaikp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWJvbCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDs7IElmIHRoaXMgaXMgdGhlIGZpcnN0IGNvbHVtbiwgZGVs
ZXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGZyb20gdGhlIHBpcGUsIGlm
IHRoZXJlIGlzIG9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgb3RoZXJ3
aXNlIGNlbGwtYmVnLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxIHRhYmxl
LWNvbHVtbiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHAgKC0g
Y2VsbC1iZWcgYWRqKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
cG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoc2VhcmNo
LWZvcndhcmQgInwiIHAgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHApKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgdGhpcyBpcyB0aGUgZmluYWwg
Y29sdW1uLCBkZWxldGUgZnJvbSB0aGUgcHJpb3IgcGlwZSBzeW1ib2wuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgocCAoLSAodHJlZXNpdC1ub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggKDEtIHRh
YmxlLWNvbHVtbikgY29scykpIGFkaikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZ290by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp
ZiAoc2VhcmNoLWZvcndhcmQgInwiICgtIGNlbGwtYmVnIGFkaikgdCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IE90
aGVyd2lzZSwgc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOzsgcHJpb3IgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtICh0cmVlc2l0LW5vZGUtZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggKDEtIHRhYmxl
LWNvbHVtbikgY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGop
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBlbmQgdG8gdHJpbSB0aGUg
dHJhaWxpbmcgcGlwZSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgY29uc2lk
ZXJlZCBieSB0aGUgZ3JhbW1hciB0byBiZSBwYXJ0IG9mIGl0cworICAgICAgICAgICAgICAgICAg
ICAgICAgICA7OyBwcmVjZWRpbmcgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGVu
ZCAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB0aGlzIGlzIHRo
ZSBzb2xlIGNvbHVtbiwgZGVsZXRlIHVudGlsIGVvbC4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChlcSBuY29scyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGdvdG8tY2hhciAoLSBjZWxsLWJlZyBhZGopKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHBvcy1lb2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB0
aGlzIGlzIHRoZSBmaW5hbCBjb2x1bW4sIGRlbGV0ZSB1bnRpbCBlb2wuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtZW5kIGFkaikpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDs7IE90aGVyd2lzZSwgbG9vayBmb3J3YXJkIGZyb20gY2VsbC1l
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKHdoaWNoIGluY2x1ZGVzIHRo
ZSBjZWxsJ3MgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgd2hp
dGVzcGFjZSkgZm9yIGEgcGlwZSBzeW1ib2wuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNl
bGwtZW5kIGFkaikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHJlLXNl
YXJjaC1mb3J3YXJkICJ8Kz8iIChwb3MtZW9sKSB0KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjZWxsLWVuZCkpKSkpCisgICAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVu
ZCkKKyAgICAgICAgICAgICAgICAoc2V0cSBhZGogKCsgYWRqICgtIGVuZCBiZWcpKSkpKSkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdCAoKQorICAiTW92
ZSB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIGl0cyBsZWZ0LgorUG9pbnQgY2FuIGJlIGlu
IHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUtbW92ZS1j
b2x1bW4gJ2xlZnQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tcmln
aHQgKCkKKyAgIk1vdmUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byBpdHMgcmlnaHQuCitQ
b2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90
IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10
cy10YWJsZS1tb3ZlLWNvbHVtbiAncmlnaHQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUt
bW92ZS1jb2x1bW4gKCZvcHRpb25hbCBsZWZ0KQorICAiTW92ZSB0aGUgdGFibGUgY29sdW1uIGF0
IHBvaW50IHJpZ2h0IG9yIGxlZnQuCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5vdCBgcmln
aHQnLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LAorbW92ZSB0aGUgY29sdW1uIHRvIGl0cyBs
ZWZ0LgorRG8gbm90aGluZyBpZiBhIHJvdyBiZWluZyBtb3ZlZCBpcyBub3Qgd2l0aGluIHRoZSBj
b2x1bW5zIG9mIHRoZSBoZWFkZXIuCitEbyBub3RoaW5nIGlmIG1vdmluZyBsZWZ0IGFuZCB0aGUg
Y3VycmVudCBjb2x1bW4gaXMgdGhlIGZpcnN0IGNvbHVtbiBvZgordGhlIGN1cnJlbnQgcm93Lgor
RG8gbm90aGluZyBpZiBtb3ZpbmcgcmlnaHQgYW5kIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUg
ZmluYWwgY29sdW1uIG9mCit0aGUgY3VycmVudCByb3cuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRh
YmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhp
bmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAn
bWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4pCisgIChzZXRxIGxlZnQgKGNvbmQgKChlcSBs
ZWZ0ICdyaWdodCkgbmlsKQorICAgICAgICAgICAgICAgICAgIChsZWZ0IGxlZnQpCisgICAgICAg
ICAgICAgICAgICAgKGN1cnJlbnQtcHJlZml4LWFyZyB0KSkpCisgICh3aGVuLWxldCogKChhdC10
YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgIChwb3Mg
KGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAg
ICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duICduYW1lZCkp
CisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUp
KQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbm9kZSkp
CisgICAgICAgICAgICAgIChoZWFkZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlxcYHBpcGVfdGFibGVfaGVhZGVyXFwnIikpCisgICAgICAgICAgICAgIChuaGVhZGVy
cyAobGVuZ3RoICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gaGVhZGVyLXJvdyAnbmFtZWQpKSkKKyAg
ICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAg
ICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpKQorICAgIChsZXQgKCh0YWJsZS1jb2x1
bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIHJvdyBjZWxsKSkpCisg
ICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAoZXJyb3IgIkNvdWxkIG5vdCBjb21w
dXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIChpZiAoPj0gdGFibGUtY29sdW1uIG5oZWFk
ZXJzKQorICAgICAgICAgIChtZXNzYWdlICJSYWdnZWQvdW5ldmVuIGNvbHVtbiBjYW5ub3QgYmUg
bW92ZWQiKQorICAgICAgICA7OyBBIEIgQyBEIC0+IEIgQSBDIEQKKyAgICAgICAgOzsgTW92ZSBB
IGxlZnQ6IGRvIG5vdGhpbmcKKyAgICAgICAgOzsgTW92ZSBEIHJpZ2h0OiBkbyBub3RoaW5nCisg
ICAgICAgIDs7IE1vdmUgY3VycmVudCBjb2x1bW4gbGVmdDoKKyAgICAgICAgOzsgICBzb3VyY2Ug
Y29sdW1uID0gdCAtIDEKKyAgICAgICAgOzsgTW92ZSBjdXJyZW50IGNvbHVtbiByaWdodDoKKyAg
ICAgICAgOzsgICBjbG9uZSB0IHRvIHQrMSBpZiB0aGUgZmluYWwgY29sdW1uLCBvdGhlcndpc2Ug
dCsyCisgICAgICAgIDs7ICAgZGVsZXRlIHQKKyAgICAgICAgKGNvbmQgKChhbmQgbGVmdCAoZXEg
dGFibGUtY29sdW1uIDApKQorICAgICAgICAgICAgICAgKG1lc3NhZ2UgIkxlZnRtb3N0IGNvbHVt
biBjYW5ub3QgYmUgbW92ZWQgbGVmdCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAgICAgICAg
ICAgICgoYW5kIChub3QgbGVmdCkgKGVxIHRhYmxlLWNvbHVtbiAoMS0gbmNvbHMpKSkKKyAgICAg
ICAgICAgICAgIChtZXNzYWdlICJSaWdodG1vc3QgY29sdW1uIGNhbm5vdCBiZSBtb3ZlZCByaWdo
dCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAg
ICAobGV0ICgoc291cmNlLWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgxLSB0YWJsZS1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhYmxlLWNvbHVtbikpCisgICAgICAgICAgICAgICAgICAgICAodGFy
Z2V0LWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhYmxlLWNvbHVtbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
MSsgdGFibGUtY29sdW1uKSkpKQorICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAg
ICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1uIHNvdXJjZS1j
b2x1bW4pCisgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1
bW4KKyAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0IChsaXN0CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGFyZ2V0LWNvbHVtbikpKQorICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
dGFibGUtLWdvdG8tY29sdW1uIHNvdXJjZS1jb2x1bW4pCisgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uKQorICAgICAgICAgICAgICAgICA7OyBFbXB0eSBj
ZWxscyBjYW4gY29uZnVzZSB0aGUgZ3JhbW1hciwgc28gbm8tZXJyb3IgaGVyZS4KKyAgICAgICAg
ICAgICAgICAgKGlmIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy10YWJs
ZS0tZ290by1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UtY29sdW1uICduby1l
cnJvcikKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1u
CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC1jb2x1bW4gJ25vLWVycm9yKSkpKSkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4tbGVmdCAoKQorICAiQWxpZ24g
dGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byB0aGUgbGVmdC4KK0RvIHRoZSB3b3JrIHdpdGgg
YG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVtbicsIHdoaWNoIHNlZSBmb3IgbW9yZQorZGV0
YWlscy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVt
biAnbGVmdCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4tY2VudGVy
ICgpCisgICJBbGlnbiB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIHRoZSBjZW50ZXIuCitE
byB0aGUgd29yayB3aXRoIGBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4nLCB3aGljaCBz
ZWUgZm9yIG1vcmUKK2RldGFpbHMuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10
YWJsZS1hbGlnbi1jb2x1bW4gJ2NlbnRlcikpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1h
bGlnbi1jb2x1bW4tcmlnaHQgKCkKKyAgIkFsaWduIHRoZSB0YWJsZSBjb2x1bW4gYXQgcG9pbnQg
dG8gdGhlIHJpZ2h0LgorRG8gdGhlIHdvcmsgd2l0aCBgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24t
Y29sdW1uJywgd2hpY2ggc2VlIGZvciBtb3JlCitkZXRhaWxzLiIKKyAgKGludGVyYWN0aXZlKQor
ICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uICdyaWdodCkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4gKCZvcHRpb25hbCBhbGlnbikKKyAgIkFsdGVyIHRo
ZSB0YWJsZSBjb2x1bW4gYWxpZ25tZW50IGF0IHBvaW50LgorQWx0ZXIgdGhlIGNvbHVtbiBwb2lu
dCBpcyBpbi4KKworTm90ZTogVG8gY29tcHV0ZSB0aGUgY29sdW1uLCBwb2ludCBtdXN0IGJlIHdp
dGhpbiB0aGUgY29sdW1uIGFuZCBjYW5ub3QKK2JlIG9uIHRoZSBsZWFkaW5nIG9yIHRyYWlsaW5n
IHdoaXRlc3BhY2Ugb3Igb24gYSBjb2x1bW4gZGVsaW1pdGVyLgorCitBTElHTiBjYW4gYmUgb25l
IG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywgYGNlbnRlcicsIGByaWdodCcgb3IgbmlsIGZvcgordW5z
cGVjaWZpZWQgb3IgdGhlIGNoYXJhY3RlcnMgbCwgYywgb3Igci4KKworSWYgQUxJR04gaXMgbmls
LCBhc3N1bWUgdW5zcGVjaWZpZWQuICBNYWtlIHRoZSBhbGlnbm1lbnQgc3RyaW5nIGEKK21pbmlt
dW0gb2YgNSBjaGFyYWN0ZXJzIHRvIGFjY29tbW9kYXRlIE1hcmtkb3duIGNvbnZlbnRpb25zLgor
CitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2
ZSAiY0FsaWduIGNvbHVtbiBbbF1lZnQgW2NdZW50ZXIgW3JdaWdodCBbdV1uc3BlY2lmaWVkOiIp
CisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtYWxp
Z24tY29sdW1uKQorICAoc2V0cSBhbGlnbiAoaWYgKGNoYXJhY3RlcnAgYWxpZ24pCisgICAgICAg
ICAgICAgICAgICAocGNhc2UgYWxpZ24gKD9sICdsZWZ0KSAoP2MgJ2NlbnRlcikgKD9yICdyaWdo
dCkpCisgICAgICAgICAgICAgICAgYWxpZ24pKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1h
cmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQt
dGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAg
ICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAg
ICAgICAgICAoY2VsbCAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtY2VsbCBub2RlKSkKKyAgICAg
ICAgICAgICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IGNlbGwpKQorICAgICAg
ICAgICAgICAoYWxpZ25lcnMgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJsZSkpKQor
ICAgIChsZXQgKCh0YWJsZS1jb2x1bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUt
Y29sdW1uIHJvdyBjZWxsKSkpCisgICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAo
ZXJyb3IgIkNvdWxkIG5vdCBjb21wdXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIDs7IE5P
VEU6IEdGTSB0YWJsZXMgYWxsb3cgbm9uLXVuaWZvcm0gdGFibGUgcm93cy4gIFRoZSBjdXJyZW50
IHJvdworICAgICAgOzsgY291bGQgaGF2ZSBhIGRpZmZlcmluZyBudW1iZXIgb2YgY29sdW1ucyBm
cm9tIHRoZSBoZWFkZXIuICBXZQorICAgICAgOzsgc2lsZW50bHkgZG8gbm90aGluZyBpZiB3ZSBj
YW4ndCBmaW5kIGEgbWF0Y2hpbmcgaGVhZGVyIGNvbHVtbi4KKyAgICAgICh3aGVuLWxldCogKChh
bGlnbmVyIChudGggdGFibGUtY29sdW1uIGFsaWduZXJzKSkKKyAgICAgICAgICAgICAgICAgIChi
ZWcgKHBsaXN0LWdldCBhbGlnbmVyIDpiZWcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAocGxp
c3QtZ2V0IGFsaWduZXIgOmVuZCkpCisgICAgICAgICAgICAgICAgICAoc3RyIChidWZmZXItc3Vi
c3RyaW5nLW5vLXByb3BlcnRpZXMgYmVnIGVuZCkpCisgICAgICAgICAgICAgICAgICAoc3RybGVu
IChtYXggNSAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkK
KyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAg
ICAgICAgKGluc2VydCAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciBzdHJsZW4gYWxp
Z24pKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSAoJm9wdGlv
bmFsIGFsaWduLWNlbGxzKQorICAiQWxpZ24gdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50Lgor
QWRqdXN0IGVhY2ggY29sdW1uJ3Mgd2lkdGggdG8gYWNjb21tb2RhdGUgaXRzIHdpZGVzdCBjb25z
dGl0dWVudCBjZWxsLgorSWYgQUxJR04tQ0VMTFMgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZp
eCBhcmd1bWVudCwgYXBwbHkgdGhlCitkZWxpbWl0ZXIgcm93J3MgYWxpZ25tZW50IHRvIGNlbGwg
Y29udGVudC4gIEFMSUdOLUNFTExTIGlzIG5vbi1uaWwgaWYKK3RoZSB1c2VyIG9wdGlvbiBgbWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tZmVhdHVyZXMnIGluY2x1ZGVzCitganVzdGlmeS1jZWxscycu
CitBbmNob3IgdGhlIGNvbHVtbnMgdG8gdGhlIGRlbGltaXRlciByb3cuICBJZ25vcmUgcm93cyB0
aGF0IGNvbnRhaW4KK2NvbHVtbnMgYmV5b25kIHRoZSBkZWxpbWl0ZXIgcm93LgorSWYgbm90IGlu
IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAobWFya2Rvd24t
dHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKQorICAo
d2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAg
ICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChiZWcgKHRy
ZWVzaXQtbm9kZS1zdGFydCB0YWJsZSkpCisgICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9k
ZS1lbmQgdGFibGUpKQorICAgICAgICAgICAgICAoXyAobWFya2Rvd24tdHMtLXRhYmxlLXRpY2st
c3RhbGUtcCBiZWcpKQorICAgICAgICAgICAgICAocm93cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVu
IHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgIChucm93cyAobGVuZ3RoIHJvd3MpKQorICAg
ICAgICAgICAgICAoZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAg
ICAgICAgICAgICAgICAgICAgIHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYHBp
cGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAoYWxpZ25lcnMgKG1h
cmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJsZSkpCisgICAgICAgICAgICAgIChjb2xzICh0
cmVlc2l0LW5vZGUtY2hpbGRyZW4gZGVsaW1pdGVyLXJvdyAnbmFtZWQpKQorICAgICAgICAgICAg
ICAobmNvbHMgKGxlbmd0aCBjb2xzKSkKKyAgICAgICAgICAgICAgKGNvbC13aWR0aHMgKG1ha2Ut
aGFzaC10YWJsZSA6c2l6ZSBuY29scyA6dGVzdCAnZXF1YWwpKQorICAgICAgICAgICAgICAoY2Vs
bC10ZXh0IChtYWtlLWhhc2gtdGFibGUgOnNpemUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0ICdlcXVh
bCkpKQorICAgIChzZXRxIGFsaWduLWNlbGxzIChvciBhbGlnbi1jZWxscworICAgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50LXByZWZpeC1hcmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1lbXEgJ2p1c3RpZnktY2VsbHMgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tZmVhdHVyZXMp
KSkKKyAgICAod2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgOzsgQ29sbGVjdCBjZWxsIHRleHQg
YW5kIGNvbXB1dGUgbWF4IGNvbHVtbiB3aWR0aHMuCisgICAgICA7OyBEbyBub3QgdXNlIHRoZSBk
ZWxpbWl0ZXIgcm93IGZvciB3aWR0aCBjb21wdXRhdGlvbi4KKyAgICAgIChkb3RpbWVzICh4IG5y
b3dzKQorICAgICAgICAobGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAgICAgICAo
Y2VsbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkpCisgICAgICAgICAgKGRv
dGltZXMgKHkgbmNvbHMpCisgICAgICAgICAgICA7OyBTa2lwIG5pbCBjZWxscy0tdGhlIHBhcnNl
ciBnb3QgY29uZnVzZWQuCisgICAgICAgICAgICAod2hlbi1sZXQqICgoY2VsbCAobnRoIHkgY2Vs
bHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKHN0cmluZy10cmltLXJpZ2h0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGNlbGwgJ25v
LXByb3BlcnR5KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAodyAobGVuZ3RoIHRleHQpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgKHcwIChvciAoZ2V0aGFzaCB5IGNvbC13aWR0aHMpIDAp
KSkKKyAgICAgICAgICAgICAgOzsgRWxpZGUgZGVsaW1pdGVyIHdpZHRocy4KKyAgICAgICAgICAg
ICAgKHVubGVzcyAoZXEgeCAxKQorICAgICAgICAgICAgICAgICh3aGVuICg+IHcgdzApCisgICAg
ICAgICAgICAgICAgICAocHV0aGFzaCB5IHcgY29sLXdpZHRocykpKQorICAgICAgICAgICAgICAo
cHV0aGFzaCAoY29ucyB4IHkpIHRleHQgY2VsbC10ZXh0KSkpKSkKKworICAgICAgKGxldCAoKHNv
dXJjZS1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAgICh3aXRoLXRlbXAtYnVmZmVy
CisgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAgICAoZG90aW1lcyAoeSBu
Y29scykKKyAgICAgICAgICAgICAgKGxldCogKCh3aWR0aCAob3IgKGdldGhhc2ggeSBjb2wtd2lk
dGhzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy10YWJsZS1k
ZWZhdWx0LWNvbHVtbi13aWR0aCkpCisgICAgICAgICAgICAgICAgICAgICAoYWxpZ24gKG9yIChw
bGlzdC1nZXQgKG50aCB5IGFsaWduZXJzKSA6YWxpZ24pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd1bnNwZWNpZmllZCkpCisgICAgICAgICAgICAgICAgICAgICA7OyBDb25mdXNl
ZCBjZWxscyBoYXZlIG5pbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgKHRleHQgKG9yIChn
ZXRoYXNoIChjb25zIHggeSkgY2VsbC10ZXh0KSAiIikpCisgICAgICAgICAgICAgICAgICAgICAo
dGV4dDAgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbi1jZWxsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHQgd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGFs
aWduLWNlbGxzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpKSkKKyAgICAgICAgICAgICAg
ICAoY29uZAorICAgICAgICAgICAgICAgICA7OyBIZWFkZXIgcm93LgorICAgICAgICAgICAgICAg
ICAoKGVxIHggMCkKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkKKyAgICAg
ICAgICAgICAgICAgOzsgRGVsaW1pdGVyIHJvdy4gIFVzZSB1bmFsaWduZWQgdGV4dC4KKyAgICAg
ICAgICAgICAgICAgKChlcSB4IDEpCisgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciB3
aWR0aCBhbGlnbikpKQorICAgICAgICAgICAgICAgICA7OyBCb2R5IHJvdy4KKyAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkpKSkKKyAgICAg
ICAgICAgIChpbnNlcnQgInwiICJcbiIpKQorICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAo
Y3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJj
ZS1idWZmZXIKKyAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJlZyBlbmQg
dGVtcC1idWZmZXIpKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLXRhYmxlLXRpY2stdXBkYXRlIGJl
ZykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtdHJhbnNwb3NlLXRhYmxlICgpCisgICJU
cmFuc3Bvc2UgdGhlIHJvd3MgYW5kIGNvbHVtbnMgb2YgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBv
aW50LgorVXNlIHVuc3BlY2lmaWVkIGNvbHVtbiBhbGlnbm1lbnQgaW4gdGhlIHRyYW5zcG9zZWQg
dGFibGUuCitJZiB0YWJsZSdzIHJvd3MgYXJlIG5vdCB1bmlmb3JtIHdpdGggdGhvc2Ugb24gdGhl
IGRlbGltaXRlciByb3csIHNpZ25hbAorYW4gZXJyb3IuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8g
bm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1t
b2RlICdtYXJrZG93bi10cy10YWJsZS10cmFuc3Bvc2UtdGFibGUpCisgICh3aGVuLWxldCogKChh
dC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICh0
YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKGJlZyAodHJlZXNpdC1ub2RlLXN0
YXJ0IHRhYmxlKSkKKyAgICAgICAgICAgICAgKGVuZCAodHJlZXNpdC1ub2RlLWVuZCB0YWJsZSkp
CisgICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFibGUgJ25hbWVk
KSkKKyAgICAgICAgICAgICAgKG5yb3dzIChsZW5ndGggcm93cykpCisgICAgICAgICAgICAgIChk
ZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9kZWxp
bWl0ZXJfcm93XFwnIikpCisgICAgICAgICAgICAgIChhbGlnbmVycyAobWFya2Rvd24tdHMtLXRh
YmxlLWFsaWduZXJzIHRhYmxlKSkKKyAgICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1j
aGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29scyAobGVu
Z3RoIGNvbHMpKQorICAgICAgICAgICAgICAoY2VsbC10ZXh0IChtYWtlLWhhc2gtdGFibGUgOnNp
emUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0ICdlcXVhbCkpKQorICAgICh3aXRob3V0LXJlc3RyaWN0
aW9uCisgICAgICA7OyBDb2xsZWN0IGNlbGwgdGV4dCBhbmQgaW52ZXJ0IGNvb3JkaW5hdGVzLgor
ICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgIChsZXQqICgocm93IChudGggeCByb3dz
KSkKKyAgICAgICAgICAgICAgIChjZWxscyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFt
ZWQpKSkKKyAgICAgICAgICAoZG90aW1lcyAoeSBuY29scykKKyAgICAgICAgICAgIDs7IFNraXAg
bmlsIGNlbGxzLS10aGUgcGFyc2VyIGdvdCBjb25mdXNlZC4KKyAgICAgICAgICAgICh3aGVuLWxl
dCogKChjZWxsIChudGggeSBjZWxscykpCisgICAgICAgICAgICAgICAgICAgICAgICAodGV4dCAo
c3RyaW5nLXRyaW0tcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXRleHQgY2VsbCAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgIChwdXRoYXNo
IChjb25zIHkgeCkgdGV4dCBjZWxsLXRleHQpKSkpKQorCisgICAgICAobGV0ICgoc291cmNlLWJ1
ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAg
ICAgICAoZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgIDs7IFN5bnRoZXNpemUgYSBkZWxp
bWl0ZXIgcm93LgorICAgICAgICAgICAgKHdoZW4gKGVxIHggMSkKKyAgICAgICAgICAgICAgKGRv
dGltZXMgKF95ICgxLSBucm93cykpCisgICAgICAgICAgICAgICAgKGluc2VydCAifCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdGFibGUtbWFrZS1hbGlnbmVyCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1heCA1IG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpKQorICAg
ICAgICAgICAgICAoaW5zZXJ0ICJ8IiAiXG4iKSkKKyAgICAgICAgICAgIChkb3RpbWVzICh5IG5y
b3dzKQorICAgICAgICAgICAgICA7OyBTa2lwIHRoZSBvcmlnaW5hbCBkZWxpbWl0ZXIgcm93Lgor
ICAgICAgICAgICAgICAodW5sZXNzIChlcSB5IDEpCisgICAgICAgICAgICAgICAgOzsgQ29uZnVz
ZWQgY2VsbHMgaGF2ZSBuaWwgdGV4dC4KKyAgICAgICAgICAgICAgICAobGV0ICgodGV4dCAob3Ig
KGdldGhhc2ggKGNvbnMgeCB5KSBjZWxsLXRleHQpICIiKSkpCisgICAgICAgICAgICAgICAgICAo
aW5zZXJ0ICJ8IiB0ZXh0KSkpKQorICAgICAgICAgICAgKGluc2VydCAifCIgIlxuIikpCisgICAg
ICAgICAgKGxldCAoKHRlbXAtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpKQorICAgICAgICAgICAg
KHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAgICAgICAgICAocmVwbGFj
ZS1yZWdpb24tY29udGVudHMgYmVnIGVuZCB0ZW1wLWJ1ZmZlcikpKSkpKQorICAgICh3aGVuIChv
ciAoZXEgbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiB0KQorICAgICAgICAgICAgICAobWVt
cSAndHJhbnNwb3NlIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24pKQorICAgICAgKG1hcmtk
b3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUt
Y29udmVydC1jc3YtcmVnaW9uICggYmVnIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UpCisgICJDb252ZXJ0IHRoZSBj
b21tYS1zZXBhcmF0ZWQgcmVnaW9uIEJFRyB0byBFTkQgdG8gYSBNYXJrZG93biB0YWJsZS4KK0lm
IEhFQURFUi1MSU5FIGlzIG5vbi1uaWwsIHVzZSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgcmVnaW9u
IGFzIHRoZSB0YWJsZQorY29sdW1uIGhlYWRlci4gIElmIG5pbCwgaW5mZXIgdGhlIG51bWJlciBv
ZiBjb2x1bW5zIGFuZCBzeW50aGVzaXplCitjb2x1bW4gbmFtZXMgZnJvbSB0aGUgZmlyc3QgbGlu
ZS4KKworTm90ZTogQm9keSBjb2x1bW5zIGJleW9uZCB0aGUgcHJvdmlkZWQgb3IgaW5mZXJyZWQg
bnVtYmVyIG9mIGNvbHVtbnMgYXJlCitkcm9wcGVkLgorCitJZiBSRVBMQUNFIGlzIG5vbi1uaWws
IG92ZXJ3cml0ZSB0aGUgcmVnaW9uIEJFRyBFTkQgd2l0aCB0aGUgTWFya2Rvd24KK3RhYmxlLCBv
dGhlcndpc2UgaW5zZXJ0IHRoZSB0YWJsZSBhZnRlciBFTkQuCisKK1dpdGggYSBzaW5nbGUgcHJl
Zml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24tbmlsLgorV2l0aCBhIGRvdWJsZSBwcmVm
aXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4KK1dpdGggYSB0cmlwbGUgcHJlZml4IGFy
Z3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGludGVyYWN0aXZlICJSIikKKyAgKG1hcmtk
b3duLXRzLXRhYmxlLWNvbnZlcnQtcmVnaW9uIGJlZyBlbmQgaGVhZGVyLWxpbmUgcmVwbGFjZSAn
Y3N2KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lvbiAoIGJl
ZyBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0
aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFk
ZXItbGluZSByZXBsYWNlKQorICAiQ29udmVydCB0aGUgdGFiLXNlcGFyYXRlZCByZWdpb24gQkVH
IHRvIEVORCB0byBhIE1hcmtkb3duIHRhYmxlLgorSWYgSEVBREVSLUxJTkUgaXMgbm9uLW5pbCwg
dXNlIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSByZWdpb24gYXMgdGhlIHRhYmxlCitjb2x1bW4gaGVh
ZGVyLiAgSWYgbmlsLCBpbmZlciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHN5bnRoZXNpemUK
K2NvbHVtbiBuYW1lcyBmcm9tIHRoZSBmaXJzdCBsaW5lLgorCitOb3RlOiBCb2R5IGNvbHVtbnMg
YmV5b25kIHRoZSBwcm92aWRlZCBvciBpbmZlcnJlZCBudW1iZXIgb2YgY29sdW1ucyBhcmUKK2Ry
b3BwZWQuCisKK0lmIFJFUExBQ0UgaXMgbm9uLW5pbCwgb3ZlcndyaXRlIHRoZSByZWdpb24gQkVH
IEVORCB3aXRoIHRoZSBNYXJrZG93bgordGFibGUsIG90aGVyd2lzZSBpbnNlcnQgdGhlIHRhYmxl
IGFmdGVyIEVORC4KKworV2l0aCBhIHNpbmdsZSBwcmVmaXggYXJndW1lbnQsIEhFQURFUi1MSU5F
IGlzIG5vbi1uaWwuCitXaXRoIGEgZG91YmxlIHByZWZpeCBhcmd1bWVudCwgUkVQTEFDRSBpcyBu
b24tbmlsLgorV2l0aCBhIHRyaXBsZSBwcmVmaXggYXJndW1lbnQsIGJvdGggYXJlIG5vbi1uaWwu
IgorICAoaW50ZXJhY3RpdmUgIlIiKQorICAobWFya2Rvd24tdHMtdGFibGUtY29udmVydC1yZWdp
b24gYmVnIGVuZCBoZWFkZXItbGluZSByZXBsYWNlICd0c3YpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtdGFibGUtY29udmVydC1yZWdpb24gKCBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UgZm9ybWF0KQorICAiQ29udmVydCB0
aGUgY29tbWEtc2VwYXJhdGVkIHJlZ2lvbiBCRUcgdG8gRU5EIHRvIGEgTWFya2Rvd24gdGFibGUu
CitJZiBIRUFERVItTElORSBpcyBub24tbmlsLCB1c2UgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHJl
Z2lvbiBhcyB0aGUgdGFibGUKK2NvbHVtbiBoZWFkZXIuICBJZiBuaWwsIGluZmVyIHRoZSBudW1i
ZXIgb2YgY29sdW1ucyBhbmQgc3ludGhlc2l6ZQorY29sdW1uIG5hbWVzIGZyb20gdGhlIGZpcnN0
IGxpbmUuCisKK05vdGU6IEJvZHkgY29sdW1ucyBiZXlvbmQgdGhlIHByb3ZpZGVkIG9yIGluZmVy
cmVkIG51bWJlciBvZiBjb2x1bW5zIGFyZQorZHJvcHBlZC4KKworSWYgUkVQTEFDRSBpcyBub24t
bmlsLCBvdmVyd3JpdGUgdGhlIHJlZ2lvbiBCRUcgRU5EIHdpdGggdGhlIE1hcmtkb3duCit0YWJs
ZSwgb3RoZXJ3aXNlIGluc2VydCB0aGUgdGFibGUgYWZ0ZXIgRU5ELgorCitGT1JNQVQgaXMgb25l
IG9mIHRoZSBzeW1ib2xzIGBjc3YnIGZvciBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzLCBvciBgdHN2
JworZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzLiAgSWYgYW55IG90aGVyIHZhbHVlLCB1c2UgYGNz
dicuCisKK1dpdGggYSBzaW5nbGUgcHJlZml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24t
bmlsLgorV2l0aCBhIGRvdWJsZSBwcmVmaXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4K
K1dpdGggYSB0cmlwbGUgcHJlZml4IGFyZ3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGlu
dGVyYWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93
bi10cy10YWJsZS1jb252ZXJ0LXJlZ2lvbikKKworICAoY29uZCAoKGVxdWFsIGN1cnJlbnQtcHJl
Zml4LWFyZyAnKDQpKQorICAgICAgICAgKHNldHEgaGVhZGVyLWxpbmUgdCkpCisgICAgICAgICgo
ZXF1YWwgY3VycmVudC1wcmVmaXgtYXJnICcoMTYpKQorICAgICAgICAgKHNldHEgcmVwbGFjZSB0
KSkKKyAgICAgICAgKChlcXVhbCBjdXJyZW50LXByZWZpeC1hcmcgJyg2NCkpCisgICAgICAgICAo
c2V0cSBoZWFkZXItbGluZSB0CisgICAgICAgICAgICAgICByZXBsYWNlIHQpKSkKKyAgKGxldCAo
cm93cykKKyAgICAoc2F2ZS1yZXN0cmljdGlvbgorICAgICAgKG5hcnJvdy10by1yZWdpb24gYmVn
IGVuZCkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAod2hpbGUgKDwgKHBv
aW50KSAocG9pbnQtbWF4KSkKKyAgICAgICAgKHBjYXNlIGZvcm1hdAorICAgICAgICAgICgndHN2
CisgICAgICAgICAgICAgKHB1c2gKKyAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZworICAgICAg
ICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9s
KSkgIlx0IikKKyAgICAgICAgICAgICAgcm93cykpCisgICAgICAgICAgIChfCisgICAgICAgICAg
ICAobGV0IChyb3cpCisgICAgICAgICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQKKyAg
ICAgICAgICAgICAgICAgICAgICAiXCJcXCg/OlteXCJdXFx8XCJcIlxcKSpcIlxcfFteLF0rXFx8
XCJcIiIKKyAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkgdCkKKyAgICAgICAgICAgICAg
ICAocHVzaAorICAgICAgICAgICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAg
ICAgICAgICAgICAgICAiXCJcIiIgIlwiIgorICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVn
ZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICJcXGBcIlxcKFwuKlxcKVwiXFwnIgor
ICAgICAgICAgICAgICAgICAgICJcXDEiCisgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZy1u
by1wcm9wZXJ0aWVzIChtYXRjaC1zdHJpbmcgMCkpKSkKKyAgICAgICAgICAgICAgICAgcm93KSkK
KyAgICAgICAgICAgICAgKHB1c2ggKG5yZXZlcnNlIHJvdykgcm93cykpKSkKKyAgICAgICAgKGZv
cndhcmQtbGluZSAxKSkKKyAgICAgICAgKHNldHEgcm93cyAobnJldmVyc2Ugcm93cykpCisgICAg
ICAgIChjb25kIChyZXBsYWNlIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpKQorICAgICAgICAgICAg
ICAodCAoZ290by1jaGFyIGVuZCkpKQorICAgICAgICAoaWYgaGVhZGVyLWxpbmUKKyAgICAgICAg
ICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKDEtIChsZW5ndGggcm93cykpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNhciBy
b3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciBy
b3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIHJv
d3MpKQorICAgICAgICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKGxlbmd0aCBy
b3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAo
Y2FyIHJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZS1jc3YgKCZvcHRpb25hbCBkaXNw
bGF5KQorICAiRXhwb3J0IHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludCB0byBjb21tYS1zZXBh
cmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVm
aXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9ydGluZy4K
K0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZl
ICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICdjc3YpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdiAoJm9wdGlvbmFsIGRp
c3BsYXkpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRvIHRhYi1zZXBh
cmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVm
aXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9ydGluZy4K
K0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZl
ICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICd0c3YpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlICgmb3B0aW9uYWwgZGlzcGxh
eSBmb3JtYXQpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRvIENTViBp
biBhIGJ1ZmZlci4KK0lmIERJU1BMQVkgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1
bWVudCwgZGlzcGxheSB0aGUgZXhwb3J0CitidWZmZXIgYWZ0ZXIgZXhwb3J0aW5nLgorRk9STUFU
IGlzIG9uZSBvZiB0aGUgc3ltYm9scyBgY3N2JyBmb3IgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBh
a2EgQ1NWLAorb3IgYHRzdicgZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGFrYSBUU1YuICBJZiBh
bnkgb3RoZXIgdmFsdWUsIHVzZQorYGNzdicuICBJZiBUU1YsIHJlcGxhY2UgYW55IHRhYnMgd2l0
aGluIGEgZmllbGQgd2l0aCBhIHNwYWNlLgorRG8gbm90IGV4cG9ydCB0aGUgdGFibGUncyBoZWFk
ZXIgZGVsaW1pdGVyIHJvdy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5n
LiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2Rl
ICdtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUpCisgICh3aGVuLWxldCogKChhdC10YWJs
ZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICh0YWJsZSAo
Y2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKHJvd3MgKHRyZWVzaXQtbm9kZS1jaGlsZHJl
biB0YWJsZSAnbmFtZWQpKQorICAgICAgICAgICAgICAoaGVhZGVyICh0cmVlc2l0LXNlYXJjaC1z
dWJ0cmVlIHRhYmxlICJcXGBwaXBlX3RhYmxlX2hlYWRlclxcJyIpKQorICAgICAgICAgICAgICAo
ZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAg
ICAgICAgICAgICAoZXhwb3J0LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpKSkKKyAg
ICAod2l0aC1jdXJyZW50LWJ1ZmZlciBleHBvcnQtYnVmZmVyCisgICAgICAoc3BlY2lhbC1tb2Rl
KQorICAgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQorICAgICAgICAod2lkZW4pCisg
ICAgICAgIChlcmFzZS1idWZmZXIpCisgICAgICAgIChkb2xpc3QgKHJvdyByb3dzKQorICAgICAg
ICAgICh1bmxlc3MgKGVxdWFsIHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAgICAgKGxldCog
KChlbHRzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAg
ICAgICAgKGxlbiAobGVuZ3RoIGVsdHMpKSkKKyAgICAgICAgICAgICAgKGRvdGltZXMgKHggbGVu
KQorICAgICAgICAgICAgICAgIChsZXQgKChzIChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRl
eHQgKG50aCB4IGVsdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgICAgICAocGNh
c2UgZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICgndHN2CisgICAgICAgICAgICAgICAgICAg
ICAoaW5zZXJ0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlx0IiAiXHMiIHMpKQorICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKDwgeCAoMS0gbGVuKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgKGluc2VydCAiXHQiKSkpCisgICAgICAgICAgICAgICAgICAgIChfCisgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gg
IltcIixdIiBzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcIiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdpZGVudGl0eSAoc3BsaXQtc3RyaW5nIHMgIlwiIikgIlwiXCIi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBzKSkKKyAgICAgICAgICAgICAgICAgICAgICh3aGVuICg8IHggKDEtIGxlbikp
CisgICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIiwiKSkpKSkpCisgICAgICAgICAgICAg
IChpbnNlcnQgIlxuIikpKSkKKyAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKQorICAg
ICh3aGVuIGRpc3BsYXkKKyAgICAgIChkaXNwbGF5LWJ1ZmZlciBleHBvcnQtYnVmZmVyKSkpKQor
Cis7OzsgSGVscGVyczoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1w
IChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9s
ZGVkIHJlZ2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEgKG92KSAoZXEgKG92ZXJsYXktZ2V0IG92
ICdpbnZpc2libGUpICdvdXRsaW5lKSkKKyAgICAgICAgICAgKG92ZXJsYXlzLWF0IHBvcykpKQog
CiAoZGVmdW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzICgpCiAgICJSZXR1cm4gcmFuZ2Ug
c2V0dGluZ3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0gICh0cmVlc2l0LXJhbmdlLXJ1bGVz
Ci0gICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQotICAgOmhvc3QgJ21hcmtkb3duCi0gICA6cmFu
Z2UtZm4gIyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4KLSAgICcoKGlubGluZSkg
QG1hcmtkb3duLWlubGluZSkKLQotICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvbnZlcnQtY29k
ZS1ibG9jay1sYW5ndWFnZQotICAgOmhvc3QgJ21hcmtkb3duCi0gICA6bG9jYWwgdAotICAgJygo
ZmVuY2VkX2NvZGVfYmxvY2sgKGluZm9fc3RyaW5nIChsYW5ndWFnZSkgQGxhbmd1YWdlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVudCkgQGNvbnRlbnQpKSkpCisg
IChhcHBseQorICAgIyd0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICBgKDplbWJlZCBtYXJrZG93bi1p
bmxpbmUKKyAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgKChpbmxpbmUpIEBtYXJrZG93bi1pbmxp
bmUpCisgICAgICxAKHdoZW4gbWFya2Rvd24tdHMtZm9udGlmeS1jb2RlLWJsb2Nrcy1uYXRpdmVs
eQorICAgICAgICAgJyg6ZW1iZWQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UK
KyAgICAgICAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAg
ICAgKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbGFuZ3VhZ2Up
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVudCkgQGNv
bnRlbnQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlz
ICgpCisgICJSZW1vdmUgYWxsIGlubGluZSBpbWFnZSBvdmVybGF5cyBmcm9tIHRoZSBjdXJyZW50
IGJ1ZmZlci4iCisgIChkb2xpc3QgKG92IChvdmVybGF5cy1pbiAocG9pbnQtbWluKSAocG9pbnQt
bWF4KSkpCisgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10cy1pbWFnZSkKKyAg
ICAgIChkZWxldGUtb3ZlcmxheSBvdikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5l
LXZpZXctY2hhbmdlICgpCisgICJVcGRhdGUgaW1hZ2Ugb3ZlcmxheXMgYWZ0ZXIgb3V0bGluZSBm
b2xkL3VuZm9sZC4KK1JlbW92ZXMgaW1hZ2Ugb3ZlcmxheXMgaW4gZm9sZGVkIHJlZ2lvbnMgYW5k
IHRyaWdnZXJzCityZWZvbnRpZmljYXRpb24gc28gdGhhdCBpbWFnZXMgaW4gdW5mb2xkZWQgcmVn
aW9ucyBhcmUgcmVjcmVhdGVkLiIKKyAgKHdoZW4gbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcwor
ICAgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQorICAgIChmb250LWxvY2st
Zmx1c2gpKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJrdXAgKHZhbHVlKQog
ICAiU2V0IGhpZGluZyBvZiBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGUgY3VycmVu
dCBidWZmZXIuCkBAIC0zNDgsNiArNDU5Niw4IEBAIG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJr
dXAKICAgKGlmIHZhbHVlCiAgICAgICAoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVjICdtYXJrZG93
bi10cy0tbWFya3VwKQogICAgIChyZW1vdmUtZnJvbS1pbnZpc2liaWxpdHktc3BlYyAnbWFya2Rv
d24tdHMtLW1hcmt1cCkpCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAo
bWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykpCiAgIChmb250LWxvY2stZmx1c2gp
KQogCiAoZGVmdW4gbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwICgpCkBAIC0zNTYsMTIy
ICs0NjA2LDcyNiBAQCBtYXJrZG93bi10cy10b2dnbGUtaGlkZS1tYXJrdXAKICAgKHNldHEgbWFy
a2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCiAgICht
YXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKSkKIAor
KGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdlcyAodmFsdWUpCisgICJTZXQgZGlz
cGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4KK1ZBTFVFIG5vbi1u
aWwgZGlzcGxheXMgaW1hZ2VzLCBuaWwgcmVtb3ZlcyB0aGVtLiIKKyAgKGlmIHZhbHVlCisgICAg
ICAodHJlZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1cmVzICcoaW1hZ2UtcHJldmlldykp
CisgICAgKHRyZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyBuaWwgJyhpbWFnZS1w
cmV2aWV3KSkpCisgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQorICAoZm9u
dC1sb2NrLWZsdXNoKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1hZ2Vz
ICgpCisgICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1
ZmZlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgbWFya2Rvd24tdHMtaW5saW5lLWltYWdl
cyAobm90IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpKQorICAobWFya2Rvd24tdHMtLXNldC1p
bmxpbmUtaW1hZ2VzIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpCisgIChtZXNzYWdlICJJbmxp
bmUgaW1hZ2VzICVzIiAoaWYgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJlbmFibGVkIiAiZGlzYWJsZWQiKSkpCisKKzs7OyBFbXBo
YXNpczoKKworKGRlZnZhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdAorICAnKCg/YiAuICIq
KiIpCisgICAgKD9CIC4gIl9fIikKKyAgICAoP2kgLiAiKiIpCisgICAgKD9JIC4gIl8iKQorICAg
ICg/cyAuICJ+fiIpCisgICAgKD9jIC4gImAiKQorICAgICg/YSAuICIqKioiKSkKKyAgIkFsaXN0
IG9mIGVtcGhhc2lzIG1hcmtlcnMgZm9yIGBtYXJrZG93bi10cy1lbXBoYXNpemUnLgorRWFjaCBl
bnRyeSBpcyAoS0VZIC4gTUFSS0VSKSB3aGVyZSBLRVkgaXMgYSBjaGFyYWN0ZXIgKG5vdCBhIHN0
cmluZykgYW5kCitNQVJLRVIgaXMgdGhlIE1hcmtkb3duIGVtcGhhc2l6ZWQgdGV4dCBwcmVmaXgv
c3VmZml4LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCAo
KQorICAiUmV0dXJuIHRoZSBlbXBoYXNpcyBub2RlIGF0IHBvaW50LCBvciBuaWwuCitGaW5kcyB0
aGUgaW5uZXJtb3N0IGBlbXBoYXNpcycsIGBzdHJvbmdfZW1waGFzaXMnLAorYHN0cmlrZXRocm91
Z2gnLCBvciBgY29kZV9zcGFuJyBub2RlLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRyZWVzaXQt
bm9kZS1hdCAocG9pbnQpICdtYXJrZG93bi1pbmxpbmUpKSkKKyAgICAodHJlZXNpdC1wYXJlbnQt
dW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgKG1lbWJlciAodHJlZXNp
dC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgJygiZW1waGFzaXMiICJzdHJvbmdf
ZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giICJjb2RlX3Nw
YW4iKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMgKCkKKyAgIlJl
bW92ZSBlbXBoYXNpcyBhcm91bmQgcG9pbnQgb3IgcmVnaW9uLgorV2l0aCBhbiBhY3RpdmUgcmVn
aW9uLCBzdHJpcCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG1hcmtlcnMgZnJvbQordGhlIHNlbGVj
dGVkIHRleHQuICBXaXRob3V0IGEgcmVnaW9uLCBmaW5kIHRoZSBlbXBoYXNpcyBub2RlIGF0Citw
b2ludCB1c2luZyB0cmVlLXNpdHRlciBhbmQgcmVtb3ZlIGl0cyBtYXJrZXJzLiIKKyAgKGludGVy
YWN0aXZlKQorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQqICgoYmVnIChyZWdpb24t
YmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkKKyAgICAgICAgICAg
ICAodGV4dCAoYnVmZmVyLXN1YnN0cmluZyBiZWcgZW5kKSkKKyAgICAgICAgICAgICAoc3RyaXBw
ZWQgbmlsKSkKKyAgICAgICAgKGNsLWxvb3AgZm9yIChfa2V5IC4gbSkgaW4gKHNvcnQgKGNvcHkt
c2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtk
b3duLXRzLWVtcGhhc2lzLWFsaXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKD4gKGxlbmd0aCAoY2RyIGEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNkciBiKSkpKSkKKyAgICAgICAgICAgICAgICAg
Zm9yIHJlID0gKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIG0pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlxcKFxcKD86LlxcfFxuXFwpKlxcKSIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAocmVnZXhwLXF1b3RlIG0pICJcXCciKQorICAgICAgICAgICAg
ICAgICB3aGVuIChzdHJpbmctbWF0Y2ggcmUgdGV4dCkKKyAgICAgICAgICAgICAgICAgZG8gKHNl
dHEgc3RyaXBwZWQgKG1hdGNoLXN0cmluZyAxIHRleHQpKQorICAgICAgICAgICAgICAgICBhbmQg
cmV0dXJuIG5pbCkKKyAgICAgICAgKHdoZW4gc3RyaXBwZWQKKyAgICAgICAgICAoZGVsZXRlLXJl
Z2lvbiBiZWcgZW5kKQorICAgICAgICAgIChpbnNlcnQgc3RyaXBwZWQpKSkKKyAgICA7OyBGaW5k
IHRoZSBvdXRlcm1vc3QgZW1waGFzaXMgbm9kZSBhdCBwb2ludC4KKyAgICAod2hlbi1sZXQqICgo
aW5uZXIgKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KSkKKyAgICAgICAgICAg
ICAgICAobm9kZSAobGV0ICgobiBpbm5lcikpCisgICAgICAgICAgICAgICAgICAgICAgICAod2hp
bGUgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBuKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIHBhcmVudAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBwYXJl
bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygiZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9zcGFuIikpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBuIHBhcmVudCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG4pKQorICAgICAgICAgICAgICAgIChzdGFydCAodHJlZXNp
dC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkpCisgICAgICAgICAgICAgICAgKHRleHQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUg
dCkpCisgICAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAg
ICAgICAgICAgICAgIChtbGVuIChwY2FzZSB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAo
InN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1w
cmVmaXgtcCAiXyIgdGV4dCkgMiAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgiZW1waGFz
aXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4LXAgIl8iIHRl
eHQpIDEgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoInN0cmlrZXRocm91Z2giIDIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAoImNvZGVfc3BhbiIgMSkpKQorICAgICAgICAgICAgICAg
IChpbm5lci10ZXh0IChzdWJzdHJpbmcgdGV4dCBtbGVuICgtIChsZW5ndGggdGV4dCkgbWxlbikp
KSkKKyAgICAgIChsZXQgKChvZmZzZXQgKC0gKHBvaW50KSBzdGFydCBtbGVuKSkpCisgICAgICAg
IChkZWxldGUtcmVnaW9uIHN0YXJ0IGVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBzdGFydCkKKyAg
ICAgICAgKGluc2VydCBpbm5lci10ZXh0KQorICAgICAgICAoZ290by1jaGFyICgrIHN0YXJ0ICht
YXggMCBvZmZzZXQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1lbXBoYXNpemUgKCZvcHRp
b25hbCBjaGFyKQorICAiSW5zZXJ0IG9yIGNoYW5nZSBlbXBoYXNpcyBvbiB0ZXh0LgorSWYgdGhl
cmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdCB3aXRoIGVtcGhhc2lzIG1hcmtlcnMuCitJ
ZiB0aGVyZSBpcyBubyByZWdpb24sIGluc2VydCBtYXJrZXIgcGFpcnMgYW5kIHBsYWNlIHBvaW50
IGJldHdlZW4KK3RoZW0uICBDSEFSIHNlbGVjdHMgdGhlIGVtcGhhc2lzIHR5cGU6CisKKyAgYiAg
ICoqYm9sZCoqICAgICAgIEIgIF9fYm9sZF9fCisgIGkgICAqaXRhbGljKiAgICAgICBJICBfaXRh
bGljXworICBhICAgKioqYm9sZCtpdGFsaWMqKioKKyAgcyAgIH5+c3RyaWtldGhyb3VnaH5+Cisg
IGMgICBgY29kZWAKKyAgU1BDIHJlbW92ZSBlbXBoYXNpcyBhdCBwb2ludCBvciByZWdpb24iCisg
IChpbnRlcmFjdGl2ZQorICAgImNFbXBoYXNpcyBbYl1vbGQgW0Jdb2xkXyBbaV10YWxpYyBbSV10
YWxpY18gW2FdbGwgW3NddHJpa2UgW2Ndb2RlIFNQQyByZW1vdmU6IikKKyAgKGlmIChlcSBjaGFy
ID9ccykKKyAgICAgIChtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMpCisgICAgKGlmLWxldCog
KChtYXJrZXIgKGNkciAoYXNzcSBjaGFyIG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KSkpKQor
ICAgICAgICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgICAgICAgIChsZXQgKChiZWcgKHJlZ2lv
bi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAoY29weS1tYXJrZXIgKHJlZ2lv
bi1lbmQpKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2VyKQorICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2Vy
KSkpCisgICAgICAgICAgKGlmLWxldCogKChib3VuZHMgKGJvdW5kcy1vZi10aGluZy1hdC1wb2lu
dCAnd29yZCkpKQorICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIChjZHIgYm91bmRzKSkKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtl
cikKKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgYm91bmRzKSkKKyAgICAgICAgICAg
ICAgICAoaW5zZXJ0IG1hcmtlcikpCisgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlciBtYXJrZXIp
CisgICAgICAgICAgICAoYmFja3dhcmQtY2hhciAobGVuZ3RoIG1hcmtlcikpKSkKKyAgICAgICh1
c2VyLWVycm9yICJObyBzdWNoIGVtcGhhc2lzIG1hcmtlcjogJWMiIGNoYXIpKSkpCisKKzs7OyBC
bG9jayBzdHJ1Y3R1cmU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtc3RydWN0dXJlICgm
b3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGJsb2NrIHN0cnVjdHVyZS4KK0lmIHRoZXJlIGlz
IGFuIGFjdGl2ZSByZWdpb24sIHdyYXAgaXQuICBPdGhlcndpc2UsIGluc2VydCBhbiBlbXB0eQor
YmxvY2sgYW5kIHBsYWNlIHBvaW50IGluc2lkZS4gIENIQVIgc2VsZWN0cyB0aGUgc3RydWN0dXJl
IHR5cGU6CisKKyAgYCAgZmVuY2VkIGNvZGUgYmxvY2sgKGBgYCkKKyAgfiAgdGlsZGUgZmVuY2Vk
IGNvZGUgYmxvY2sgKH5+fikKKyAgcSAgYmxvY2sgcXVvdGUgKD4gKQorICBkICBob3Jpem9udGFs
IGRpdmlkZXIvcnVsZSAoLS0tKQorICB0ICB0YWJsZSIKKyAgKGludGVyYWN0aXZlCisgICAiY1N0
cnVjdHVyZSBbYF1iYWNrLXRpY2sgY29kZSBibG9jayBbfl10aWxkZSBjb2RlIGJsb2NrIFtxXXVv
dGUgW2RdaXZpZGVyIFt0XWFibGU6IikKKyAgKHBjYXNlIGNoYXIKKyAgICAoP2AgKG1hcmtkb3du
LXRzLS1pbnNlcnQtY29kZS1ibG9jayA/YCkpCisgICAgKD9+IChtYXJrZG93bi10cy0taW5zZXJ0
LWNvZGUtYmxvY2sgP34pKQorICAgICg/cSAobWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90
ZSkpCisgICAgKD9kIChtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpKQorICAgICg/dCAobWFy
a2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRhYmxlKSkKKyAgICAoXyAodXNlci1lcnJvciAiTm8gc3Vj
aCBzdHJ1Y3R1cmU6ICVjIiBjaGFyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1j
b2RlLWJsb2NrIChjaGFyICZvcHRpb25hbCBsYW5ndWFnZSkKKyAgIkluc2VydCBhIGZlbmNlZCBj
b2RlIGJsb2NrIHVzaW5nIGEgQ0hBUiBzZXF1ZW5jZS4KK0NIQVIgc2hvdWxkIGJlIG9uZSBvZiBh
IGJhY2t0aWNrIG9yIGEgdGlsZGUuCitMQU5HVUFHRSBpcyBhIHdoaXRlc3BhY2UgZnJlZSBsYW5n
dWFnZSBzdHJpbmcuIgorICAoc2V0cSBsYW5ndWFnZQorICAgICAgICAob3IgbGFuZ3VhZ2UKKyAg
ICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAiW1s6Ymxh
bms6XV0iICIiCisgICAgICAgICAgICAgKGxldCAoKGNvbXBsZXRpb24taWdub3JlLWNhc2Ugbmls
KQorICAgICAgICAgICAgICAgICAgIChjYW5kaWRhdGVzCisgICAgICAgICAgICAgICAgICAgIChz
ZXEtbWFwCisgICAgICAgICAgICAgICAgICAgICAjJ3N5bWJvbC1uYW1lCisgICAgICAgICAgICAg
ICAgICAgICAoc2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChtYXBjYXIg
IydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24t
dHMtbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2FyIG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMpKSkpKSkKKyAgICAgICAgICAgICAgIChjb21wbGV0
aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAiQ29kZSBibG9jayBsYW5ndWFnZTogIgorICAgICAg
ICAgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAg
ICAnY29uZmlybSA7IFByb21wdCBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IG9uIG91ciBsaXN0Lgor
ICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1sYW5ndWFn
ZS1oaXN0b3J5KSkpKSkKKyAgKGxldCAoKGZlbmNlLXN0cmluZyAobWFrZS1zdHJpbmcgMyBjaGFy
KSkpCisgICAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAgIChsZXQgKChiZWcgKHJlZ2lvbi1i
ZWdpbm5pbmcpKQorICAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkpCisgICAgICAgICAg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAoZ290by1jaGFyIGVuZCkKKyAgICAgICAgICAg
ICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxuIikpCisgICAgICAgICAgICAoaW5zZXJ0IGZlbmNl
LXN0cmluZyAiXG4iKQorICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAo
aW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG4iKSkpCisgICAgICAoaW5zZXJ0IGZlbmNl
LXN0cmluZyBsYW5ndWFnZSAiXG5cbiIgZmVuY2Utc3RyaW5nKQorICAgICAgKGZvcndhcmQtbGlu
ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUgKCkKKyAg
Ikluc2VydCBhIGJsb2NrIHF1b3RlLiIKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0
ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgIChlbmQgKGNvcHktbWFya2Vy
IChyZWdpb24tZW5kKSkpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290
by1jaGFyIGJlZykKKyAgICAgICAgICAod2hpbGUgKDwgKHBvaW50KSBlbmQpCisgICAgICAgICAg
ICAoaW5zZXJ0ICI+ICIpCisgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkpCisgICAgKGlu
c2VydCAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIgKCkKKyAg
Ikluc2VydCBhIGhvcml6b250YWwgcnVsZS4iCisgICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxu
IikpCisgIChpbnNlcnQgIlxuLS0tXG5cbiIpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWFwcGx5
LWVsbGlwc2lzICgpCisgICJBcHBseSBgbWFya2Rvd24tdHMtZWxsaXBzaXMnIHRvIHRoZSBjdXJy
ZW50IGJ1ZmZlcidzIGRpc3BsYXkgdGFibGUuIgorICAoaWYgKGFuZCAoc3RyaW5ncCBtYXJrZG93
bi10cy1lbGxpcHNpcykKKyAgICAgICAgICAgKG5vdCAoc3RyaW5nLWVtcHR5LXAgbWFya2Rvd24t
dHMtZWxsaXBzaXMpKSkKKyAgICAgIChsZXQgKCh0YWJsZSAob3IgYnVmZmVyLWRpc3BsYXktdGFi
bGUKKyAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZGlzcGxheS10YWJsZSkpKSkKKyAgICAg
ICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QKKyAgICAgICAgIHRhYmxlIDQKKyAgICAgICAgICh2
Y29uY2F0IChtYXBjYXIgKGxhbWJkYSAoYykgKG1ha2UtZ2x5cGgtY29kZSBjICdzaGFkb3cpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbGxpcHNpcykpKQorICAgICAg
ICAoc2V0cSBidWZmZXItZGlzcGxheS10YWJsZSB0YWJsZSkpCisgICAgKHdoZW4gYnVmZmVyLWRp
c3BsYXktdGFibGUKKyAgICAgIChzZXQtZGlzcGxheS10YWJsZS1zbG90IGJ1ZmZlci1kaXNwbGF5
LXRhYmxlIDQgbmlsKSkpKQorCis7OzsgTWFqb3IgbW9kZToKKworKGRlZnVuIG1hcmtkb3duLXRz
LW91dGxpbmUtY3ljbGUgKCkKKyAgIkN5Y2xlIHZpc2liaWxpdHkgb2YgdGhlIGhlYWRpbmcgYXQg
cG9pbnQuCitPbiBhIGhlYWRpbmcsIGNhbGwgYG91dGxpbmUtY3ljbGUnLiAgT3RoZXJ3aXNlIGRv
IG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICh3aGVuIChvdXRsaW5lLW9uLWhlYWRpbmct
cCkKKyAgICAob3V0bGluZS1jeWNsZSkpKQorCisoZGVmdmFyLWtleW1hcCBtYXJrZG93bi10cy1t
b2RlLW1hcAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCisgICJNLTxs
ZWZ0PiIgICAgIydtYXJrZG93bi10cy1wcm9tb3RlCisgICJNLTxyaWdodD4iICAgIydtYXJrZG93
bi10cy1kZW1vdGUKKyAgIk0tPHVwPiIgICAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11
cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24KKyAgIkMt
YyBDLW4iICAgICAjJ291dGxpbmUtbmV4dC1oZWFkaW5nCisgICJDLWMgQy1wIiAgICAgIydvdXRs
aW5lLXByZXZpb3VzLWhlYWRpbmcKKyAgIkMtYyBDLXUiICAgICAjJ291dGxpbmUtdXAtaGVhZGlu
ZworICAiQy1jIEMtZiIgICAgICMnb3V0bGluZS1mb3J3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBD
LWIiICAgICAjJ291dGxpbmUtYmFja3dhcmQtc2FtZS1sZXZlbAorICAiQy1jIEMteCBDLWYiICMn
bWFya2Rvd24tdHMtZW1waGFzaXplCisgICJDLWMgQy14IEMtbSIgIydtYXJrZG93bi10cy10b2dn
bGUtaGlkZS1tYXJrdXAKKyAgIkMtYyBDLXggQy12IiAjJ21hcmtkb3duLXRzLXRvZ2dsZS1pbmxp
bmUtaW1hZ2VzCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10cy10b2dnbGUtY2hlY2tib3gK
KyAgIkMtYyBDLXIiICAgICAjJ21hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QKKyAgIkMtYyBDLSwi
ICAgICAjJ21hcmtkb3duLXRzLWluc2VydC1zdHJ1Y3R1cmUKKyAgIkMtYyBDLXYgbiIgICAjJ21h
cmtkb3duLXRzLW1vdmUtdG8tbmV4dC1jb2RlLWJsb2NrCisgICJDLWMgQy12IHAiICAgIydtYXJr
ZG93bi10cy1tb3ZlLXRvLXByZXZpb3VzLWNvZGUtYmxvY2sKKyAgIlJFVCIgICAgICAgICAjJ21h
cmtkb3duLXRzLW5ld2xpbmUKKyAgIk0tUkVUIiAgICAgICAjJ21hcmtkb3duLXRzLWluc2VydC1s
aXN0LWl0ZW0KKyAgIlRBQiIgICAgICAgICAjJ21hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpCisK
KyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW1h
cAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQt
bW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGluIGBtYXJrZG93bi10cy1tb2RlLW1hcCcgdG8g
c3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1hbmRzIGluIGEgY29kZS1ibG9jayBjb250ZXh0
LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2RlLW1hcAorICA6bWVudSBuaWwKKyAgIk0tLiIg
ICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXhyZWYtZmluZC1kZWZpbml0aW9ucwor
ICAiVEFCIiAgICAgICAgICMnaW5kZW50LWZvci10YWItY29tbWFuZAorICAiUkVUIiAgICAgICAg
ICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiQy1qIiAgICAgICAgICMnbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1SRVQiICAgICAgICMnbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1xIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgpCisKKyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLWlu
LXRhYmxlLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBmb3IgYG1hcmtkb3duLXRzLWluLXRhYmxl
LW1vZGUnLgorVGhlc2Ugb3ZlcnJpZGUga2V5cyBpbiBgbWFya2Rvd24tdHMtbW9kZS1tYXAnIHRv
IHN1cHBvcnQgZXhlY3V0aW5nIHRoZWlyCitjb21tYW5kcyBpbiBhIHRhYmxlIGNvbnRleHQuIgor
ICA6cGFyZW50IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgIDptZW51IG5pbAorICAiPHJldHVybj4i
ICAgICMnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cKKyAgIlMtPHJldHVybj4iICAjJ21hcmtk
b3duLXRzLXRhYmxlLXByZXZpb3VzLXJvdworICAiPHRhYj4iICAgICAgICMnbWFya2Rvd24tdHMt
dGFibGUtbmV4dC1jZWxsCisgICI8YmFja3RhYj4iICAgIydtYXJrZG93bi10cy10YWJsZS1wcmV2
aW91cy1jZWxsCisgICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdy11
cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctZG93bgorICAi
TS08bGVmdD4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdAorICAiTS08
cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tcmlnaHQKKyAgIk0tUy08
dXA+IiAgICAjJ21hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUKKyAgIk0tUy08ZG93
bj4iICAjJ21hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cKKyAgIk0tUy08cmlnaHQ+IiAjJ21h
cmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdAorICAiTS1TLTxsZWZ0PiIgICMnbWFy
a2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbgorICAiQy1jIEMtdCBhIiAgICMnbWFya2Rvd24t
dHMtdGFibGUtYWxpZ24tY29sdW1uCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10cy10YWJs
ZS1hbGlnbi10YWJsZQorICAiQy1jIEMtdCB0IiAgICMnbWFya2Rvd24tdHMtdGFibGUtdHJhbnNw
b3NlLXRhYmxlKQorCisoZWFzeS1tZW51LWRlZmluZSBtYXJrZG93bi10cy1tb2RlLW1lbnUgbWFy
a2Rvd24tdHMtbW9kZS1tYXAKKyAgImBtYXJrZG93bi10cy1tb2RlJyBtZW51LiIKKyAgJygiTWFy
a2Rvd24iIDp2aXNpYmxlIG1hcmtkb3duLXRzLW1lbnUtYmFyLXNob3cKKyAgICAiLS0iCisgICAg
WyJDeWNsZSBPdXRsaW5lIFZpc2liaWxpdHkiICBtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlICAg
ICAgICAgICAgICA6aGVscCAiQ3ljbGUgaGVhZGluZyB2aXNpYmlsaXR5IGZyb20gcG9pbnQiXQor
ICAgIFsiVG9nZ2xlIEhpZGUgTWFya3VwIiAgICAgICAgbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUt
bWFya3VwICAgICAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIG1hcmt1cCBjaGFyYWN0ZXJz
IiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cF0KKyAgICBb
IlRvZ2dsZSBJbmxpbmUgSW1hZ2VzIiAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1h
Z2VzICAgICAgIDpoZWxwICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGJlbG93IGxp
bmtzIiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzXQor
ICAgICItLSIKKyAgICBbIlVwIiAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmUtdXAtaGVh
ZGluZyAgICAgICAgICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwYXJlbnQgaGVhZGlu
ZyJdCisgICAgWyJOZXh0IiAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLW5leHQtaGVhZGlu
ZyAgICAgICAgICAgICAgICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIl0KKyAg
ICBbIlByZXZpb3VzIiAgICAgICAgICAgICAgICAgIG91dGxpbmUtcHJldmlvdXMtaGVhZGluZyAg
ICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91cyBoZWFkaW5nIl0KKyAgICBb
Ik5leHQgU2FtZSBMZXZlbCIgICAgICAgICAgIG91dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsICAg
ICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmcgYXQgdGhlIHNhbWUgbGV2
ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgICAgICAgb3V0bGluZS1iYWNrd2FyZC1z
YW1lLWxldmVsICAgICAgICAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIHByZXZpb3VzIGhlYWRpbmcg
YXQgdGhlIHNhbWUgbGV2ZWwiXQorICAgICItLSIKKyAgICBbIkp1bXAiICAgICAgICAgICAgICAg
ICAgICAgIGltZW51ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpoZWxwICJKdW1w
IHRvIGEgaGVhZGluZyB2aWEgY29tcGxldGlvbiJdCisgICAgIi0tIgorICAgIFsiTW92ZSBTdWJ0
cmVlIFVwIiAgICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwICAgICAgICAgICAg
OmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAiXQorICAgIFsi
TW92ZSBTdWJ0cmVlIERvd24iICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24g
ICAgICAgICAgOmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93
biJdCisgICAgWyJQcm9tb3RlIiAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1wcm9tb3Rl
ICAgICAgICAgICAgICAgICAgICA6aGVscCAiUHJvbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJd
CisgICAgWyJEZW1vdGUiICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1kZW1vdGUgICAg
ICAgICAgICAgICAgICAgICA6aGVscCAiRGVtb3RlIGhlYWRpbmcgb3IgbGlzdCBpdGVtIl0KKyAg
ICAiLS0iCisgICAgWyJFbXBoYXNpcy4uLiIgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbXBo
YXNpemUgICAgICAgICAgICAgICAgICA6aGVscCAiQWRkIG9yIGNoYW5nZSBlbXBoYXNpcyBvbiBy
ZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgICAgICAgbWFya2Rvd24tdHMtaW5z
ZXJ0LXN0cnVjdHVyZSAgICAgICAgICAgOmhlbHAgIkluc2VydCBhIGNvZGUgYmxvY2ssIHF1b3Rl
LCBvciBvdGhlciBzdHJ1Y3R1cmUiXQorICAgICItLSIKKyAgICBbIlRvZ2dsZSBDaGVja2JveCIg
ICAgICAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveCAgICAgICAgICAgIDpoZWxwICJU
b2dnbGUgdGFzayBsaXN0IGNoZWNrYm94IGF0IHBvaW50Il0KKyAgICBbIk5ldyBMaXN0IEl0ZW0i
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gICAgICAgICAgIDpoZWxw
ICJJbnNlcnQgYSBuZXcgbGlzdCBpdGVtIGFmdGVyIHRoZSBjdXJyZW50IG9uZSJdCisgICAgWyJS
ZW51bWJlciBMaXN0IiAgICAgICAgICAgICBtYXJrZG93bi10cy1yZW51bWJlci1saXN0ICAgICAg
ICAgICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2ludCJdCisgICAg
Ii0tIgorICAgICgiVGFibGUiCisgICAgIFsiSW5zZXJ0IHRhYmxlIiAgICAgICAgICAgICBtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgICAgICAgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5
IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJEZWxldGUgdGFibGUiICAgICAgICAgICAgIG1hcmtk
b3duLXRzLXRhYmxlLWRlbGV0ZS10YWJsZSAgICAgICAgIDpoZWxwICJEZWxldGUgdGhlIHRhYmxl
IGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIk5leHQgY2VsbCIgICAgICAgICAgICAgICAg
bWFya2Rvd24tdHMtdGFibGUtbmV4dC1jZWxsICAgICAgICAgICAgOmhlbHAgIk1vdmUgcG9pbnQg
dG8gdGhlIG5leHQgY2VsbCJdCisgICAgIFsiUHJldmlvdXMgY2VsbCIgICAgICAgICAgICBtYXJr
ZG93bi10cy10YWJsZS1wcmV2aW91cy1jZWxsICAgICAgICA6aGVscCAiTW92ZSBwb2ludCB0byB0
aGUgcHJldmlvdXMgY2VsbCJdCisgICAgICItLSIKKyAgICAgWyJOZXh0IHJvdyIgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICAgICAgICAgICAgIDpoZWxwICJNb3Zl
IHBvaW50IHRvIHRoZSBuZXh0IHJvdyJdCisgICAgIFsiUHJldmlvdXMgcm93IiAgICAgICAgICAg
ICBtYXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgICAgICAgICA6aGVscCAiTW92ZSBwb2lu
dCB0byB0aGUgcHJldmlvdXMgcm93Il0KKyAgICAgWyJJbnNlcnQgcm93IGJlbG93IiAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cgICAgIDpoZWxwICJJbnNlcnQgYW4g
ZW1wdHkgcm93IGJlbG93IHBvaW50Il0KKyAgICAgWyJJbnNlcnQgcm93IGFib3ZlIiAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUgICAgIDpoZWxwICJJbnNlcnQgYW4g
ZW1wdHkgcm93IGFib3ZlIHBvaW50Il0KKyAgICAgWyJDbG9uZSByb3cgYmVsb3ciICAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWNsb25lLXJvdy1iZWxvdyAgICAgIDpoZWxwICJDbG9uZSB0aGUg
Y3VycmVudCByb3cgYmVsb3cgaXQiXQorICAgICBbIkNsb25lIHJvdyBhYm92ZSIgICAgICAgICAg
bWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlICAgICAgOmhlbHAgIkNsb25lIHRoZSBj
dXJyZW50IHJvdyBhYm92ZSBpdCJdCisgICAgIFsiTW92ZSByb3cgdXAiICAgICAgICAgICAgICBt
YXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdy11cCAgICAgICAgICA6aGVscCAiTW92ZSB0aGUgcm93
IGF0IHBvaW50IHVwIl0KKyAgICAgWyJNb3ZlIHJvdyBkb3duIiAgICAgICAgICAgIG1hcmtkb3du
LXRzLXRhYmxlLW1vdmUtcm93LWRvd24gICAgICAgIDpoZWxwICJNb3ZlIHRoZSByb3cgYXQgcG9p
bnQgZG93biJdCisgICAgIFsiRGVsZXRlIHJvdyIgICAgICAgICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1kZWxldGUtcm93ICAgICAgICAgICA6aGVscCAiRGVsZXRlIHRoZSByb3cgYXQgcG9pbnQi
XQorICAgICAiLS0iCisgICAgIFsiSW5zZXJ0IGNvbHVtbiBsZWZ0IiAgICAgICBtYXJrZG93bi10
cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5IGNvbHVt
biB0byB0aGUgbGVmdCBvZiBwb2ludCJdCisgICAgIFsiSW5zZXJ0IGNvbHVtbiByaWdodCIgICAg
ICBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0ICA6aGVscCAiSW5zZXJ0IGFu
IGVtcHR5IGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQiXQorICAgICBbIkNsb25lIGNvbHVt
biBsZWZ0IiAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtY29sdW1uLWxlZnQgICAgOmhl
bHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgcG9pbnQiXQorICAgICBb
IkNsb25lIGNvbHVtbiByaWdodCIgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtY29sdW1u
LXJpZ2h0ICAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIHJpZ2h0IG9mIHBv
aW50Il0KKyAgICAgWyJNb3ZlIGNvbHVtbiBsZWZ0IiAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxl
LW1vdmUtY29sdW1uLWxlZnQgICAgIDpoZWxwICJNb3ZlIHRoZSBjdXJyZW50IGNvbHVtbiB0byBp
dHMgbGVmdCJdCisgICAgIFsiTW92ZSBjb2x1bW4gcmlnaHQiICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1tb3ZlLWNvbHVtbi1yaWdodCAgICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBjb2x1bW4g
dG8gaXRzIHJpZ2h0Il0KKyAgICAgWyJBbGlnbiBjb2x1bW4uLi4iICAgICAgICAgIG1hcmtkb3du
LXRzLXRhYmxlLWFsaWduLWNvbHVtbiAgICAgICAgIDpoZWxwICJBbGlnbiBjb2x1bW4gYXQgcG9p
bnQgdG8gdGhlIGxlZnQsIGNlbnRlciwgb3IgcmlnaHQiXQorICAgICBbIkRlbGV0ZSBjb2x1bW4i
ICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbiAgICAgICAgOmhlbHAg
IkRlbGV0ZSB0aGUgY29sdW1uIGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIkFsaWduIHRh
YmxlIGNvbHVtbnMiICAgICAgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUgICAgICAgICAg
OmhlbHAgIkFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBpbiBhbiBlYXN5LXRvLWVkaXQgZm9ybWF0
Il0KKyAgICAgWyJUcmFuc3Bvc2UgdGFibGUiICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLXRy
YW5zcG9zZS10YWJsZSAgICAgIDpoZWxwICJUcmFuc3Bvc2UgdGhlIHRhYmxlIGF0IHBvaW50IHN3
YXBwaW5nIGl0cyByb3dzIGFuZCBjb2x1bW5zIl0KKyAgICAgIi0tIgorICAgICBbIkNvbnZlcnQg
Q1NWIHRvIHRhYmxlIiAgICAgbWFya2Rvd24tdHMtdGFibGUtY29udmVydC1jc3YtcmVnaW9uICAg
OmhlbHAgIkNvbnZlcnQgYSByYW5nZSBvZiBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzIHRvIGEgbmV3
IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJDb252ZXJ0IFRTViB0byB0YWJsZSIgICAgIG1hcmtk
b3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lvbiAgIDpoZWxwICJDb252ZXJ0IGEgcmFuZ2Ug
b2YgdGFiLXNlcGFyYXRlZCB2YWx1ZXMgdG8gYSBuZXcgdGFibGUgYXQgcG9pbnQiXQorICAgICBb
IkV4cG9ydCB0YWJsZSB0byBDU1YiICAgICAgbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxl
LWNzdiAgICAgOmhlbHAgIkV4cG9ydCB0aGUgdGFibGUgYXQgcG9pbnQgdG8gYSBjb21tYS1zZXBh
cmF0ZWQgdmFsdWVzIGJ1ZmZlciJdCisgICAgIFsiRXhwb3J0IHRhYmxlIHRvIFRTViIgICAgICBt
YXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtdHN2ICAgICA6aGVscCAiRXhwb3J0IHRoZSB0
YWJsZSBhdCBwb2ludCB0byBhIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGJ1ZmZlciJdKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tc2V0LXVwICgpCisgICJTZXQgdXAgdGhlIGJ1ZmZlciBmb3IgYG1h
cmtkb3duLXRzLW1vZGUnLgorSWYgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lJyBpcyBub24t
bmlsLCB1c2UgYSBsaWdodHdlaWdodCBzZXQgdXAgZm9yCitlbWJlZGRlZCBpbmxpbmUgYG1hcmtk
b3duLXRzLW1vZGUnIGJ1ZmZlcnMuCiAKLTs7OyBNYWpvciBtb2RlCitOT1RFOiBDYWxsIHRoaXMg
ZnVuY3Rpb24gb25seSB3aGVuIHRoZSB0cmVlc2l0IGBtYXJrZG93bicgYW5kCitgbWFya2Rvd24t
aW5saW5lJyBwYXJzZXJzIGFyZSBhdmFpbGFibGUuIgogCi0oZGVmdW4gbWFya2Rvd24tdHMtc2V0
dXAgKCkKLSAgIlNldHVwIHRyZWVzaXQgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0gIChtYWtl
LWxvY2FsLXZhcmlhYmxlICdtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgOzsgU2V0IHRoZXNl
IHVwIGZvciBib3RoIG1hc3RlciBhbmQgaW5saW5lIGZvciBjb2RlLWJsb2NrIGJ1ZmZlcnMuCisg
IChzZXRxLWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIgorICAgICAgICAgICAgICBjb21tZW50
LWVuZCAiIC0tPiIKKyAgICAgICAgICAgICAgY29tbWVudC1zdGFydC1za2lwICI8IS0tWyBcdF0q
IgorICAgICAgICAgICAgICBjb21tZW50LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAgICAgICAg
ICAgIGNvbW1lbnQtdXNlLXN5bnRheCBuaWwpCisKKyAgKHNldHEtbG9jYWwgZmlsbC1wYXJhZ3Jh
cGgtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGgK
KyAgICAgICAgICAgICAgZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbgorICAgICAgICAg
ICAgICAjJ21hcmtkb3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKQorCisgIDs7IGBhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uJyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKKyAgOzsgYGFkYXB0aXZl
LWZpbGwtcmVnZXhwJzsgdGhlIGRlZmF1bHQgcmVnZXhwIGlzIGZpbmUgYXMgYQorICA7OyBmYWxs
YmFjayBmb3IgcGxhaW4gKG5vbi1saXN0KSBwYXJhZ3JhcGhzLgorICAoc2V0cS1sb2NhbCBhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uICMnbWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpCisKKyAgOzsg
Q3JlYXRlIGFuZCBjb25maWd1cmUgdGhlIHBhcnNlcnMuCisgICh0cmVlc2l0LXBhcnNlci1jcmVh
dGUgJ21hcmtkb3duLWlubGluZSkKKyAgKHNldHEgdHJlZXNpdC1wcmltYXJ5LXBhcnNlcgorICAg
ICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikpCisKKyAgKHNldHEtbG9jYWwg
Zm9udC1sb2NrLWRlZmF1bHRzIG5pbCkKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpCi0gIChzZXRxLWxvY2FsIHRy
ZWVzaXQtcmFuZ2Utc2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykpCi0gIChh
ZGQtdG8tbGlzdCAnZm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgJ2ludmlzaWJsZSkKLQot
ICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNy
ZWF0ZSAnaHRtbCkKLSAgICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQotICAgIChkZWZ2YXIgaHRt
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciBodG1sLXRzLW1vZGUt
LXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250
LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0
dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVy
ZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAot
ICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdCkpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAg
ICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1i
ZWQgJ2h0bWwKLSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAgICAg
ICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgICco
KGh0bWxfYmxvY2spIEBodG1sKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdo
dG1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCi0KLSAgKHdoZW4g
KHRyZWVzaXQtcmVhZHktcCAneWFtbCB0KQotICAgIChyZXF1aXJlICd5YW1sLXRzLW1vZGUpCi0g
ICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFy
IHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9k
ZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9j
ay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2st
ZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdAotICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAg
ICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVk
ICd5YW1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAnKCht
aW51c19tZXRhZGF0YSkgQHlhbWwpKSkpKQotCi0gICh3aGVuICh0cmVlc2l0LXJlYWR5LXAgJ3Rv
bWwgdCkKLSAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQotICAgIChkZWZ2YXIgdG9tbC10cy1t
b2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUtLWZvbnQt
bG9jay1mZWF0dXJlLWxpc3QpCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MK
LSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAg
ICAgICAgICB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykpCi0gICAgKHNldHEtbG9j
YWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgKHRyZWVz
aXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0cmVlc2l0
LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1m
b250LWxvY2stZmVhdHVyZS1saXN0KSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNl
dHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0g
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAgICAgICAg
ICAgICAgICAgICAgIDplbWJlZCAndG9tbAotICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0
ICdtYXJrZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorICAoc2V0cS1sb2Nh
bCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1pdGVyIGhlYWRpbmcpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3JhcGgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3Jh
cGgtaW5saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoaW1hZ2UtcHJldmlldyBlcnJvcikpKQorCisgIChjb25kIChtYXJrZG93bi10cy0tc2V0LXVw
LWlubGluZQorICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAg
ICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAg
ICAgICAgICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICA6
aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgJygoaW5saW5lKSBAbWFya2Rv
d24taW5saW5lKSkpKQorICAgICAgICAodAorICAgICAgICAgOzsgUmFuZ2Ugc2V0dGluZ3MgZGlm
ZmVyIGluIHRoZSBtYXN0ZXIgYnVmZmVyIHZzLiBpbmxpbmUgYWJvdmUuCisgICAgICAgICAoc2V0
cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzIChtYXJrZG93bi10cy0tcmFuZ2Utc2V0dGlu
Z3MpKQorCisgICAgICAgICA7OyBDb25maWd1cmUgZmVhdHVyZXMgbmVlZGVkIG9ubHkgaW4gdGhl
IG1hc3RlciBidWZmZXIuCisKKyAgICAgICAgIDs7IEltZW51IHN1cHBvcnQuCisgICAgICAgICAo
c2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGlu
Zy1uYW1lLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAoIkNvZGUgQmxvY2tzIiAs
IydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0aW9u
KSkpCisKKyAgICAgICAgIDs7IE91dGxpbmUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRxLWxvY2Fs
IHRyZWVzaXQtb3V0bGluZS1wcmVkaWNhdGUgIydtYXJrZG93bi10cy0tb3V0bGluZS1wcmVkaWNh
dGUpCisgICAgICAgICAoc2V0cS1sb2NhbCBvdXRsaW5lLW1pbm9yLW1vZGUtY3ljbGUgdCkKKyAg
ICAgICAgIChvdXRsaW5lLW1pbm9yLW1vZGUgMSkKKyAgICAgICAgIChtYXJrZG93bi10cy0tYXBw
bHktZWxsaXBzaXMpCisKKyAgICAgICAgIDs7IE5PVEU6IGBvdXRsaW5lLXZpZXctY2hhbmdlLWhv
b2snIHdhcyBvYnNvbGV0ZWQgaW4gMjkuMSAoY29tbWl0CisgICAgICAgICA7OyA1M2IxZTZmOTZj
Yikgb24gdGhlIGdyb3VuZHMgdGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQgbm8KKyAg
ICAgICAgIDs7IHJlcGxhY2VtZW50IHdhcyBwcm92aWRlZCBhbmQgb3V0bGluZS5lbCBpdHNlbGYg
c3RpbGwgcnVucyB0aGUgaG9vaworICAgICAgICAgOzsgaW4gMTArIHBsYWNlcy4KKyAgICAgICAg
ICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChvYnNvbGV0ZSBvdXRsaW5lLXZpZXctY2hhbmdl
LWhvb2spKQorICAgICAgICAgICAoYWRkLWhvb2sgJ291dGxpbmUtdmlldy1jaGFuZ2UtaG9vawor
ICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSBu
aWwgdCkpCisKKyAgICAgICAgIChwcm9nbgorICAgICAgICAgICAobWFrZS1sb2NhbC12YXJpYWJs
ZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlh
YmxlICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcykKKyAgICAgICAgICAgKGRvbGlzdCAo
cHJvcCAnKGludmlzaWJsZSBkaXNwbGF5IGJ1dHRvbiBjYXRlZ29yeSBhY3Rpb24gaGVscC1lY2hv
KSkKKyAgICAgICAgICAgICAoYWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2VkLXBy
b3BzIHByb3ApKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAnaHRtbCB0KQor
ICAgICAgICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdodG1sKQorICAgICAgICAgICAocmVx
dWlyZSAnaHRtbC10cy1tb2RlKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tdHJlZXNp
dC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVz
aXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRt
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAg
ICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAg
ICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCisgICAgICAg
ICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAg
ICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOmVtYmVkICdodG1sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpo
b3N0ICdtYXJrZG93bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX2Jsb2NrKSBAaHRtbCkKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQorCisgICAgICAgICAo
d2hlbiAodHJlZXNpdC1yZWFkeS1wICd5YW1sIHQpCisgICAgICAgICAgIChyZXF1aXJlICd5YW1s
LXRzLW1vZGUpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stc2V0
dGluZ3MpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVy
ZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRp
bmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxv
Y2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJh
bmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5n
ZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdl
LXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAneWFtbAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygobWludXNfbWV0YWRhdGEpIEB5YW1sKSkpKSkKKworICAgICAgICAgKHdoZW4gKHRy
ZWVzaXQtcmVhZHktcCAndG9tbCB0KQorICAgICAgICAgICAocmVxdWlyZSAndG9tbC10cy1tb2Rl
KQorICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQor
ICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkK
KyAgICAgICAgICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgICAg
ICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgICAgIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKKyAgICAgICAgICAg
KHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAg
ICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKKyAg
ICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAg
ICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ZW1iZWQgJ3RvbWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmhvc3QgJ21hcmtkb3duCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2Nh
bCB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKHBsdXNfbWV0YWRhdGEpIEB0
b21sKSkpKSkKKworICAgICAgICAgOzsgU3VwcG9ydCBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzIGlu
IGEgY29kZS1ibG9jayBjb250ZXh0LgorICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMtZW5hYmxl
LWNvZGUtYmxvY2stY29udGV4dC1tb2RlCisgICAgICAgICAgIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLWNvbnRleHQtbW9kZSkpCisKKyAgICAgICAgIDs7IFN1cHBvcnQgZm9yIHRhYmxlIG1vZGUu
CisgICAgICAgICAod2hlbiBtYXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZQorICAgICAgICAg
ICAobWFya2Rvd24tdHMtdGFibGUtbW9kZSkpKSkKIAogICAodHJlZXNpdC1tYWpvci1tb2RlLXNl
dHVwKQotICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1h
cmt1cCkpCisKKyAgOzsgRG8gbm90IGVuYWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5kaXJlY3Qg
YnVmZmVycyBzdWNoIGFzIHRoZSBvbmUKKyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2NrIGNvbW1h
bmRzLgorICAodW5sZXNzIChidWZmZXItYmFzZS1idWZmZXIpCisgICAgKGppdC1sb2NrLXJlZ2lz
dGVyICMnbWFya2Rvd24tdHMtLWZvbnRpZnktYmFyZS11cmkpKQorCisgICh1bmxlc3MgbWFya2Rv
d24tdHMtLXNldC11cC1pbmxpbmUKKyAgICA7OyBPcmRlciBtYXR0ZXJzOiBgbWFya2Rvd24tdHMt
LXNldC1oaWRlLW1hcmt1cCcgY2FsbHMgYGZvbnQtbG9jay1mbHVzaCcKKyAgICA7OyAob25seSBt
ZWFuaW5nZnVsIG9uY2UgYHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCcgaGFzIHdpcmVkIHVwCisg
ICAgOzsgZm9udC1sb2NrKSwgYW5kIGBtYXJrZG93bi10cy1kZWZhdWx0LWZvbGRpbmcnIGNhbGxz
IG91dGxpbmUKKyAgICA7OyBjb21tYW5kcyB0aGF0IHJlbHkgb24gYG91dGxpbmUtc2VhcmNoLWZ1
bmN0aW9uJywgd2hpY2gKKyAgICA7OyBgdHJlZXNpdC1tYWpvci1tb2RlLXNldHVwJyBpbnN0YWxs
cyBmcm9tIGB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlJy4KKyAgICAobWFya2Rvd24tdHMtLXNl
dC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICA7OyBSZXNwZWN0IHRo
ZSB1c2VyJ3MgZGVmYXVsdCBvdXRsaW5lIGZvbGRpbmcuCisgICAgKHBjYXNlIG1hcmtkb3duLXRz
LWRlZmF1bHQtZm9sZGluZworICAgICAgKCdzaG93LWFsbCAoaWdub3JlKSkKKyAgICAgICgnZm9s
ZC1hbGwgKG91dGxpbmUtaGlkZS1zdWJsZXZlbHMgMSkpCisgICAgICAoJ2ZvbGQtaGVhZGluZ3Mg
KG91dGxpbmUtc2hvdy1hbGwpCisgICAgICAgICAgICAgICAgICAgICAgKG91dGxpbmUtaGlkZS1y
ZWdpb24tYm9keSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycyAoYXJnKQorICAiSW5zdGFsbCBgbWFya2Rvd24tdHMt
bW9kZScgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgcGFyc2Vycy4KK0lmIG5lZWRlZCwgaW5zdGFsbCB0
aGUgcmVxdWlyZWQgcGFyc2VycyBmb3IgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScu
CitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBBUkcsIGlmIG5lZWRlZCwgaW5zdGFsbCBwYXJzZXJz
IGZvciBgaHRtbCcsCitgeWFtbCcsIGFuZCBgdG9tbCcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQor
ICAodW5sZXNzICh0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICdtYXJrZG93bikKKyAgICAo
dHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ21hcmtkb3duKSkKKyAgKHVubGVzcyAo
dHJlZXNpdC1sYW5ndWFnZS1hdmFpbGFibGUtcCAnbWFya2Rvd24taW5saW5lKQorICAgICh0cmVl
c2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAnbWFya2Rvd24taW5saW5lKSkKKyAgKHdoZW4g
YXJnCisgICAgKHVubGVzcyAodHJlZXNpdC1sYW5ndWFnZS1hdmFpbGFibGUtcCAnaHRtbCkKKyAg
ICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCisgICAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1
YWdlLWdyYW1tYXIgJ2h0bWwpKQorICAgICh1bmxlc3MgKHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxh
YmxlLXAgJ3lhbWwpCisgICAgICAocmVxdWlyZSAneWFtbC10cy1tb2RlKQorICAgICAgKHRyZWVz
aXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICd5YW1sKSkKKyAgICAodW5sZXNzICh0cmVlc2l0
LWxhbmd1YWdlLWF2YWlsYWJsZS1wICd0b21sKQorICAgICAgKHJlcXVpcmUgJ3RvbWwtdHMtbW9k
ZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAndG9tbCkpKSkKIAog
Ozs7IyMjYXV0b2xvYWQKIChkZWZpbmUtZGVyaXZlZC1tb2RlIG1hcmtkb3duLXRzLW1vZGUgdGV4
dC1tb2RlICJNYXJrZG93biIKLSAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFya2Rvd24gdXNp
bmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iCisgICJNYWpvciBtb2RlIGZvciBlZGl0aW5nIE1hcmtk
b3duIHVzaW5nIHRyZWUtc2l0dGVyIGdyYW1tYXIuCitOT1RFOiBTZWUgYG1hcmtkb3duLXRzLS1z
ZXQtdXAtaW5saW5lJy4iCisgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3duKQor
ICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpCisgIDs7IEJ5cGFz
cyBgdHJlZXNpdC1tYXgtYnVmZmVyLXNpemUnIHNvIHRoZSBtb2RlIGFjdGl2YXRlcyBpbiBsYXJn
ZQorICA7OyBidWZmZXJzIGluc3RlYWQgb2YgcmVmdXNpbmcuICBgdHJlZXNpdC1yZWFkeS1wJyB3
b3VsZCBvdGhlcndpc2UKKyAgOzsgcmVmdXNlIGFuZCBlbWl0IGEgbWlzbGVhZGluZyAicGFyc2Vy
cyBub3QgZm91bmQiIG1lc3NhZ2UgZXZlbiB3aGVuCisgIDs7IHRoZXkgYXJlIGluc3RhbGxlZC4g
IFJldmlzaXQgaWYgYHRyZWVzaXQtcGFyc2VyLWNyZWF0ZScgZ2FpbnMgaXRzCisgIDs7IG93biBi
dWZmZXItc2l6ZSBndWFyZCAoc2VlIGJ1ZyM4MDkwOSkuCisgIChsZXQgKCh0cmVlc2l0LW1heC1i
dWZmZXItc2l6ZSBtb3N0LXBvc2l0aXZlLWZpeG51bSkpCisgICAgKGlmICh0cmVlc2l0LXJlYWR5
LXAgJyhtYXJrZG93biBtYXJrZG93bi1pbmxpbmUpIHQpCisgICAgICAgIChtYXJrZG93bi10cy0t
c2V0LXVwKQorICAgICAgKHdhcm4gIm1hcmtkb3duLXRzLW1vZGUgY2Fubm90IGJlIHNldCB1cDsg
dXNpbmcgZnVuZGFtZW50YWwtbW9kZS4KK1RoZSB0cmVlLXNpdHRlciBwYXJzZXJzIGBtYXJrZG93
bicgYW5kIGBtYXJrZG93bi1pbmxpbmUnIHdlcmUgbm90IGZvdW5kLgorVXNlIHRoZSBjb21tYW5k
IGBtYXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycycgdG8gaW5zdGFsbCB0aGVtLgorV2l0
aCBhIHByZWZpeCBhcmd1bWVudCwgaXQgY2FuIGFsc28gaW5zdGFsbCBvcHRpb25hbCBwYXJzZXJz
LiIpCisgICAgICAoZnVuZGFtZW50YWwtbW9kZSkpKSkKIAotICAoc2V0cS1sb2NhbCBjb21tZW50
LXN0YXJ0ICI8IS0tICIpCi0gIChzZXRxLWxvY2FsIGNvbW1lbnQtZW5kICIgLS0+IikKKyhkZXJp
dmVkLW1vZGUtYWRkLXBhcmVudHMgJ21hcmtkb3duLXRzLW1vZGUgJyhtYXJrZG93bi1tb2RlKSkK
IAotICAoc2V0cS1sb2NhbCBmb250LWxvY2stZGVmYXVsdHMgbmlsCi0JICAgICAgdHJlZXNpdC1m
b250LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBoZWFkaW5nKQotCQkJCQkgICAgICAg
KHBhcmFncmFwaCkKLQkJCQkJICAgICAgIChwYXJhZ3JhcGgtaW5saW5lKSkpCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgKCZvcHRpb25hbCBjb250ZXh0KQorICAiU2lnbmFs
IGFuIGVycm9yIGlmIHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBub3QgYSBgbWFya2Rvd24tdHMtbW9k
ZScgYnVmZmVyLgorUHJlZml4IHRoZSBlcnJvciBtZXNzYWdlIHdpdGggQ09OVEVYVC4iCisgICh1
bmxlc3MgKGRlcml2ZWQtbW9kZS1wICdtYXJrZG93bi10cy1tb2RlKQorICAgICh1c2VyLWVycm9y
ICIlc2lzIHZhbGlkIG9ubHkgaW4gYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcnMiCisgICAgICAg
ICAgICAgICAgKGlmIGNvbnRleHQgKGZvcm1hdCAiJXM6ICIgY29udGV4dCkgIiIpKSkpCiAKLSAg
KHNldHEtbG9jYWwgdHJlZXNpdC1zaW1wbGUtaW1lbnUtc2V0dGluZ3MKLSAgICAgICAgICAgICAg
YCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy1pbWVudS1ub2RlLXAKLSAgICAgICAgICAgICAg
ICAgbmlsICwjJ21hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24pKSkKLSAgKHNldHEtbG9j
YWwgdHJlZXNpdC1vdXRsaW5lLXByZWRpY2F0ZSAjJ21hcmtkb3duLXRzLW91dGxpbmUtcHJlZGlj
YXRlKQorKGRlZmluZS1taW5vci1tb2RlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4
dC1tb2RlCisgICJNaW5vciBtb2RlIGVuYWJsZWQgaWYgcG9pbnQgaXMgd2l0aGluIGEgZmVuY2Vk
IGNvZGUgYmxvY2suCitUaGlzIGVuYWJsZXMgdGhlIGtleW1hcCBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1pbi1jb250ZXh0LW1vZGUtbWFwJy4iCisgIDpncm91cCAnbWFya2Rvd24tdHMKKyAgOmxp
Z2h0ZXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbGlnaHRlcgorICA6
aW50ZXJhY3RpdmUgbmlsCisgIChtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1v
ZGUtdXBkYXRlLW92KSkKIAotICAod2hlbiAoYW5kICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQg
J21hcmtkb3duKQotICAgICAgICAgICAgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtk
b3duLWlubGluZSkpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFya2Rvd24taW5saW5l
KQotICAgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3duKQotICAgIChtYXJrZG93bi10
cy1zZXR1cCkpKQorKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250
ZXh0LW1vZGUtb3YgbmlsKQogCi0oZGVyaXZlZC1tb2RlLWFkZC1wYXJlbnRzICdtYXJrZG93bi10
cy1tb2RlICcobWFya2Rvd24tbW9kZSkpCisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUtYmxvY2st
aW4tY29udGV4dC1tb2RlLXVwZGF0ZS1vdiAoKQorICAiTWFuYWdlIGBtYXJrZG93bi10cy0tY29k
ZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YnLiIKKyAgKGNvbmQgKG1hcmtkb3duLXRzLWNvZGUt
YmxvY2staW4tY29udGV4dC1tb2RlCisgICAgICAgICAobGV0ICgoYmVnIChnZXQtY2hhci1wcm9w
ZXJ0eSAocG9pbnQpICdtYXJrZG93bi10cy1jb2RlLWJlZy1tYXJrZXIpKQorICAgICAgICAgICAg
ICAgKGVuZCAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29kZS1lbmQt
bWFya2VyKSkpCisgICAgICAgICAgIChpZiBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250
ZXh0LW1vZGUtb3YKKyAgICAgICAgICAgICAgIChtb3ZlLW92ZXJsYXkgbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92IGJlZyBlbmQpCisgICAgICAgICAgICAgKHNldHEg
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAgICAgICAgICAg
ICAgICAgKG1ha2Utb3ZlcmxheSBiZWcgZW5kIG5pbCB0IG5pbCkpKQorICAgICAgICAgICAob3Zl
cmxheS1wdXQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaW4tY29kZS1ibG9jayB0KQorICAgICAg
ICAgICAob3ZlcmxheS1wdXQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2Rl
LW92CisgICAgICAgICAgICAgICAgICAgICAgICAnZXZhcG9yYXRlIHQpCisgICAgICAgICAgIChv
dmVybGF5LXB1dCBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eSAnKG5pbCAuIDIwKSkKKyAgICAgICAgICAg
KG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgor
ICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhY2UgJ21hcmtkb3duLXRzLWluLWNvZGUtYmxvY2sp
KSkKKyAgICAgICAgKHQKKyAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWlu
LWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgbWFya2Rvd24tdHMt
LWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92KSkpKSkKIAotOzs7IyMjYXV0b2xvYWQKLShk
ZWZ1biBtYXJrZG93bi10cy1tb2RlLW1heWJlICgpCi0gICJFbmFibGUgYG1hcmtkb3duLXRzLW1v
ZGUnIHdoZW4gaXRzIGdyYW1tYXIgaXMgYXZhaWxhYmxlLgotQWxzbyBwcm9wb3NlIHRvIGluc3Rh
bGwgdGhlIGdyYW1tYXIgd2hlbiBgdHJlZXNpdC1lbmFibGVkLW1vZGVzJwotaXMgdCBvciBjb250
YWlucyB0aGUgbW9kZSBuYW1lLiIKLSAgKGRlY2xhcmUtZnVuY3Rpb24gdHJlZXNpdC1sYW5ndWFn
ZS1hdmFpbGFibGUtcCAidHJlZXNpdC5jIikKLSAgKGlmIChvciAodHJlZXNpdC1sYW5ndWFnZS1h
dmFpbGFibGUtcCAnbWFya2Rvd24pCi0gICAgICAgICAgKGVxIHRyZWVzaXQtZW5hYmxlZC1tb2Rl
cyB0KQotICAgICAgICAgIChtZW1xICdtYXJrZG93bi10cy1tb2RlIHRyZWVzaXQtZW5hYmxlZC1t
b2RlcykpCi0gICAgICAobWFya2Rvd24tdHMtbW9kZSkKLSAgICAoZnVuZGFtZW50YWwtbW9kZSkp
KQorKGRlZmluZS1taW5vci1tb2RlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29udGV4dC1tb2Rl
CisgICJNaW5vciBtb2RlIHRvIGVuYWJsZSBjb21tYW5kcyBpbiBmZW5jZWQgY29kZSBibG9jayBj
b250ZXh0LgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIGZlbmNlZCBjb2RlIGJsb2Nr
LCBydW4gYGluZGVudC1mb3ItdGFiLWNvbW1hbmQnLAorYG5ld2xpbmUnLCBldC5hbC4sIGluIHRo
ZSBtb2RlIG9mIHRoZSBjb2RlIGJsb2NrLiIKKyAgOmdyb3VwICdtYXJrZG93bi10cworICA6aW50
ZXJhY3RpdmUgbmlsCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24t
dHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUpCisgIChjb25kIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLWNvbnRleHQtbW9kZQorICAgICAgICAgOzsgRW5hYmxlIHRoZSBtaW5vciBtb2RlIGBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZScgYW5kCisgICAgICAgICA7OyBpdHMg
a2V5bWFwIHdoZW4gcG9pbnQgaXMgd2l0aGluIGEgY29kZSBibG9jay4KKyAgICAgICAgIChhZGQt
aG9vayAncG9zdC1jb21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRz
LS1lbmFibGUtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUgbmlsICdsb2NhbCkKKyAgICAgICAg
IDs7IElmIGBzYXZlLXBsYWNlLW1vZGUnIG9yIHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQgY291bGQg
c3RhcnQgd2l0aGluCisgICAgICAgICA7OyBhIGNvZGUgYmxvY2sgc28gaW5pdGlhbGl6ZSBmcm9t
IHRoYXQgc3RhdGUuCisgICAgICAgICAocnVuLXdpdGgtdGltZXIgMC4wMSBuaWwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9jay1pbi1jb250
ZXh0LW1vZGUpCisgICAgICAgICA7OyBGb3IgZWFjaCBlbGlnaWJsZSBjb21tYW5kLCBleGVjdXRl
IGl0IGluIGEgY29kZS1ibG9jayBjb250ZXh0LAorICAgICAgICAgOzsgb3RoZXJ3aXNlIGluIHRo
ZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyJ3MgY29udGV4dC4KKyAgICAgICAgIChhZGQtaG9v
ayAncHJlLWNvbW1hbmQtaG9vaworICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLW1h
eWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgbmlsICdsb2NhbCkKKyAgICAgICAgIDs7IFBy
dW5lIHN0YWxlIGNvZGUgYmxvY2sgb3ZlcmxheXMgd2hlbiB0aGUgaG9zdCBwYXJzZSB0cmVlCisg
ICAgICAgICA7OyBjaGFuZ2VzIChlLmcuLCB3aGVuIGZlbmNlZCBjb2RlIGJsb2NrIGRlbGltaXRl
cnMgYXJlCisgICAgICAgICA7OyBkZWxldGVkIGJ1dCB0aGUgb3ZlcmxheSBmcm9tIGEgcHJpb3Ig
Zm9udGlmaWNhdGlvbiByZW1haW5zKS4KKyAgICAgICAgICh0cmVlc2l0LXBhcnNlci1hZGQtbm90
aWZpZXIKKyAgICAgICAgICB0cmVlc2l0LXByaW1hcnktcGFyc2VyCisgICAgICAgICAgIydtYXJr
ZG93bi10cy0taG9zdC1yYW5nZXMtbm90aWZpZXIpKQorICAgICAgICAodAorICAgICAgICAgKHJl
bW92ZS1ob29rICdwb3N0LWNvbW1hbmQtaG9vaworICAgICAgICAgICAgICAgICAgICAgICMnbWFy
a2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSAnbG9jYWwpCisgICAg
ICAgICAocmVtb3ZlLWhvb2sgJ3ByZS1jb21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAgICAg
ICAjJ21hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrICdsb2NhbCkK
KyAgICAgICAgICh0cmVlc2l0LXBhcnNlci1yZW1vdmUtbm90aWZpZXIKKyAgICAgICAgICB0cmVl
c2l0LXByaW1hcnktcGFyc2VyCisgICAgICAgICAgIydtYXJrZG93bi10cy0taG9zdC1yYW5nZXMt
bm90aWZpZXIpKSkpCisKKyhkZWZpbmUtbWlub3ItbW9kZSBtYXJrZG93bi10cy1pbi10YWJsZS1t
b2RlCisgICJNaW5vciBtb2RlIGVuYWJsZWQgaWYgcG9pbnQgaXMgd2l0aGluIGEgdGFibGUuCitU
aGlzIGVuYWJsZXMgdGhlIGtleW1hcCBgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZS1tYXAnLiIK
KyAgOmdyb3VwICdtYXJrZG93bi10cworICA6bGlnaHRlciBtYXJrZG93bi10cy1pbi10YWJsZS1t
b2RlLWxpZ2h0ZXIKKyAgOmludGVyYWN0aXZlIG5pbAorICAobWFya2Rvd24tdHMtLWluLXRhYmxl
LW1vZGUtdXBkYXRlLW92KSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0taW4tdGFibGUt
bW9kZS1vdiBuaWwpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3Yg
KHBvcykKKyAgIlJldHVybiB0aGUgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnIG92ZXJsYXkg
YXQgUE9TLiIKKyAgKHNlcS1maW5kIChsYW1iZGEgKG92KQorICAgICAgICAgICAgICAod2hlbiAo
b3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWluLXRhYmxlKQorICAgICAgICAgICAgICAgIG92
KSkKKyAgICAgICAgICAgIChvdmVybGF5cy1hdCBwb3MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS10YWJsZS10aWNrLXVwZGF0ZSAocG9zKQorICAiVXBkYXRlIHRoZSBgbWFya2Rvd24tdHMtaW4t
dGFibGUtbW9kZScgb3ZlcmxheSB0aWNrIGF0IFBPUy4KK0lmIHRoZSBvdmVybGF5IGlzIG5vdCBm
b3VuZCwgZG8gbm90aGluZy4iCisgICh3aGVuLWxldCogKChvdiAobWFya2Rvd24tdHMtLWluLXRh
YmxlLW1vZGUtZ2V0LW92IHBvcykpKQorICAgIChvdmVybGF5LXB1dCBvdgorICAgICAgICAgICAg
ICAgICAnbWFya2Rvd24tdHMtaW4tdGFibGUtdGljaworICAgICAgICAgICAgICAgICAoYnVmZmVy
LWNoYXJzLW1vZGlmaWVkLXRpY2spKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtdGlj
ay1zdGFsZS1wIChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiB0aGUgdGFibGUgYXQgUE9TIG1p
Z2h0IGhhdmUgY2hhbmdlZC4KK0l0IGlzIHVwIHRvIHRoaXMgZnVuY3Rpb24ncyBjYWxsZXJzIHRv
IGNhbGwKK2BtYXJrZG93bi10cy0tdGFibGUtdGljay11cGRhdGUnLiIKKyAgKHdoZW4tbGV0KiAo
KG92IChtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YgcG9zKSkpCisgICAgKG5vdCAo
ZXEgKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10cy1pbi10YWJsZS10aWNrKQorICAgICAgICAg
ICAgIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaykpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0taW4tdGFibGUtbW9kZS11cGRhdGUtb3YgKCkKKyAgIk1hbmFnZSBgbWFya2Rvd24tdHMtLWlu
LXRhYmxlLW1vZGUtb3YnLiIKKyAgKGNvbmQgKG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUKKyAg
ICAgICAgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwg
dCkpCisgICAgICAgICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAg
ICAgICAgICAgICAgICAoYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgdGFibGUpKQorICAgICAgICAg
ICAgICAgICAgICAgKGVuZCAodHJlZXNpdC1ub2RlLWVuZCB0YWJsZSkpKQorICAgICAgICAgICAo
aWYgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgIDs7IE1vdmUg
dGhlIG92ZXJsYXksIGlmIG5lZWRlZCwgYW5kIHJlc2V0IHRoZSB0aWNrIGlmIHNvLgorICAgICAg
ICAgICAgICAgKHdoZW4gKG5vdCAoZXEgKG92ZXJsYXktc3RhcnQgbWFya2Rvd24tdHMtLWluLXRh
YmxlLW1vZGUtb3YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWcpKQorICAgICAg
ICAgICAgICAgICAobW92ZS1vdmVybGF5IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92IGJl
ZyBlbmQpCisgICAgICAgICAgICAgICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0taW4tdGFi
bGUtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWlu
LXRhYmxlLXRpY2sgbmlsKSkKKyAgICAgICAgICAgICAoc2V0cSBtYXJrZG93bi10cy0taW4tdGFi
bGUtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgIChtYWtlLW92ZXJsYXkgYmVnIGVuZCBuaWwg
dCBuaWwpKSkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1t
b2RlLW92CisgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaW4tdGFibGUgdCkK
KyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92Cisg
ICAgICAgICAgICAgICAgICAgICAgICAnZXZhcG9yYXRlIHQpCisgICAgICAgICAgIChvdmVybGF5
LXB1dCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgICAg
ICAgJ3ByaW9yaXR5ICcobmlsIC4gMjApKQorICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rv
d24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdmYWNlICdt
YXJrZG93bi10cy1pbi10YWJsZSkKKyAgICAgICAgICAgKSkKKyAgICAgICAgKHQKKyAgICAgICAg
ICh3aGVuIG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92CisgICAgICAgICAgIChkZWxldGUt
b3ZlcmxheSBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdikpKSkpCisKKyhkZWZpbmUtbWlu
b3ItbW9kZSBtYXJrZG93bi10cy10YWJsZS1tb2RlCisgICJNaW5vciBtb2RlIHRvIGVuYWJsZSBj
b21tYW5kcyBpbiB0YWJsZXMuCitJZiBub24tbmlsIGFuZCBgcG9pbnQnIGlzIGluIGEgdGFibGUs
IGVuYWJsZQorYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnLiIKKyAgOmdyb3VwICdtYXJrZG93
bi10cworICA6aW50ZXJhY3RpdmUgbmlsCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9k
ZSAnbWFya2Rvd24tdHMtdGFibGUtbW9kZSkKKyAgKGNvbmQgKG1hcmtkb3duLXRzLXRhYmxlLW1v
ZGUKKyAgICAgICAgIDs7IEVuYWJsZSB0aGUgbWlub3IgbW9kZSBgbWFya2Rvd24tdHMtaW4tdGFi
bGUtbW9kZScgYW5kCisgICAgICAgICA7OyBpdHMga2V5bWFwIHdoZW4gcG9pbnQgaXMgd2l0aGlu
IGEgY29kZSBibG9jay4KKyAgICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhvb2sKKyAg
ICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtaW4tdGFibGUtbW9kZSBuaWwg
J2xvY2FsKQorICAgICAgICAgOzsgSWYgYHNhdmUtcGxhY2UtbW9kZScgb3Igc2ltaWxhciBpcyB1
c2VkLCBwb2ludCBjb3VsZCBzdGFydCB3aXRoaW4KKyAgICAgICAgIDs7IGEgdGFibGUsIHNvIGlu
aXRpYWxpemUgZnJvbSB0aGF0IHN0YXRlLgorICAgICAgICAgKHJ1bi13aXRoLXRpbWVyIDAuMDEg
bmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZW5hYmxlLWluLXRh
YmxlLW1vZGUpKQorICAgICAgICAodAorICAgICAgICAgKHJlbW92ZS1ob29rICdwb3N0LWNvbW1h
bmQtaG9vaworICAgICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWVuYWJsZS1pbi10
YWJsZS1tb2RlICdsb2NhbCkpKSkKIAogOzs7IyMjYXV0b2xvYWQKICh3aGVuIChib3VuZHAgJ3Ry
ZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdCkKLSAgKGFkZC10by1saXN0ICdhdXRvLW1vZGUt
YWxpc3QgJygiXFwubWRcXCciIC4gbWFya2Rvd24tdHMtbW9kZS1tYXliZSkpCi0gIDs7IFRvIGJl
IGFibGUgdG8gdG9nZ2xlIGJldHdlZW4gYW4gZXh0ZXJuYWwgcGFja2FnZSBhbmQgY29yZSB0cy1t
b2RlOgorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZFxcJyIgLiBtYXJr
ZG93bi10cy1tb2RlKSkKKyAgKGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwubWFy
a2Rvd25cXCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCisgIChhZGQtdG8tbGlzdCAnYXV0by1tb2Rl
LWFsaXN0ICcoIlxcLm1keFxcJyIgLiBtYXJrZG93bi10cy1tb2RlKSkKICAgKGFkZC10by1saXN0
ICd0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QKICAgICAgICAgICAgICAgICcobWFya2Rv
d24tbW9kZSAuIG1hcmtkb3duLXRzLW1vZGUpKSkKIAotLSAKMi41NC4wCgo=
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 1 May 2026 17:57:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 01 13:57:22 2026
Received: from localhost ([127.0.0.1]:38122 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIs77-0002th-DV
	for submit <at> debbugs.gnu.org; Fri, 01 May 2026 13:57:22 -0400
Received: from mail-vs1-xe2e.google.com ([2607:f8b0:4864:20::e2e]:51478)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1wIs75-0002tY-DK
 for 80740 <at> debbugs.gnu.org; Fri, 01 May 2026 13:57:20 -0400
Received: by mail-vs1-xe2e.google.com with SMTP id
 ada2fe7eead31-605a3cff8d0so1259641137.3
 for <80740 <at> debbugs.gnu.org>; Fri, 01 May 2026 10:57:19 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1777658238; cv=none;
 d=google.com; s=arc-20240605;
 b=Z35xljUySOUhZcIYE+fbi/FBs7RIiXYXNLUUHUi/aLPCLovg0Td5bvjF+BLDA7G/QT
 0ke5pQNmOlIfb7C8P0aRjVvvflFTc48hDpQIeEEnMX3piVSvc2Tvl7t9liasyy3Oky4y
 r+PAtGuQfvGhPayAw3KPnq/wTLXwESOsgNO10xLgDG4OGssjtGSjN7NinnG2YYyyd0I+
 l0LpBmTRmjwjoec/Q5L+JeB0JVjBuo/M9Vc3IpFRKpC6kpKEc+KFhMFoYZyNUdw1U/l4
 RKjL72X5AoTeE5q4r1ikgVcOTfnCowPmTdIpHCW7uEe4uaN6LDzO5TQnjVVsgI+9iO/t
 mepQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=wxoz6zEv2sfWBzF6n4KewgSmdRCcN2kqMbXDRpFDcms=;
 fh=eKBMKJVzHciH19GVABvR1b7EE+XTssMG3Vg35Io71LM=;
 b=GfN/NjnWoVYy0aXdy2FovOhBBzO67qhE4wcPNna1zk65oM8x0iKRtG4sYBt/j6gQ7A
 YiGEsTLWZb3OwEo4FQmfMe35pqRK+kfcRSOp54S2m7VVffeou8R1VA/xDWmu9Kwt3xzK
 hS6tvvYugCwX5yv0ZFPUVER8Ono54JONf42nOR75FS4to6CN8Duk7wqPGMKu2WZmfjiE
 8CrWgKHA+I4D8HMQnPRpimgIXwRytvo6+zDy23uuEs6XEJz57r4Wlkt5Z4PttGoMFi7b
 0L1L/cU2ncNZqOGDQ1lsjOcTe1NlUGTk8gnQ62H3IAiASgScQvTEl7/LZ2WmeUwWW3wI
 lRkg==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777658238; x=1778263038; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=wxoz6zEv2sfWBzF6n4KewgSmdRCcN2kqMbXDRpFDcms=;
 b=Fr2KcMC88MWklj7ztSbq7RMibpC83N+Wj1mEEuiPezHRTxSsuYKj6YF/0FAL4R43u2
 rI7O5WNAxE/jC+xokj0/lhY1AIqcxgU1vSikrrJJD4etyDcjKyGqVBS3bR031gSiedOg
 vGn/5puHbP+68SSJBPYppaHscePv4A9/SDT+sq+QU4t7xpYnoiwiYsDHS5AQkx3cMv5b
 Brmhnjs8fQrxtFmuUIjRCKVPr5+h41/9TCusMnr6XzedzfWFEpSH0Dup21hXUy3q+R6R
 nMvfZ0nCcGqHvYG70B76LfIQKmf7uYlMmF60S7pZJmsl//ioMMVw9lB+VfXxvtLtesTc
 sJMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777658238; x=1778263038;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=wxoz6zEv2sfWBzF6n4KewgSmdRCcN2kqMbXDRpFDcms=;
 b=NQFn5yKgDx/EvVfWbvnLzKZaDqnQp3ll/NJKh/JOAQEqQdyd2SQmfdCaf5SAyGFRLP
 zJCCLyA5XpKYr+GHhhitJKC8tTKxl0muJnaq4b1VIfil88Ywms9O7eJRnJHQYPpVdk++
 +sZyOFNkcjzI/sF3dTzPzOEHMJ54VWKqHv182hxJRbnW9XZPhDN+9xWC70lpfxGd3y02
 gF7LKYYzqRc932t5F8m4ccjKYac+PPHUee0hZDPL5PZPrtyVRNHz6hGdDMSdjz25plSZ
 aLt5Bqr65u8q1x4H33HETxVkFtpkOoFUdC2gERVyZUDvty5uEWArXaiLq56UoN64eLkJ
 ycTA==
X-Forwarded-Encrypted: i=1;
 AFNElJ8HcNHHL83FXEdy4yM3wPyHsglTLy2IXWuBrdK62d1heBLWEm2dxmarMskDVJJB2oOOAhIafQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwlTL6l/p0e+VD+fLZhUI1hGP1E6KrbB00puA1E4QVSxygplBqA
 tZx/4K/xZ969xPEZdgEaAQYTWOJTnYa0cbTkLF1lbI6JXpKSrTskZWmDJ76cVPf2/7uv+iMtlAi
 abFb3OM5bCVEtTcX3QZuIIiN9aZSOU4I=
X-Gm-Gg: AeBDietsx4ijqXId51UJSWO5mMWNK3aLb2G8Yw6B+hhLlL5BoljDYg/A0agrxrPYoVZ
 B312UlXFNgbHMbCJr7L0Evba33PiaAz3gBJvRgJD/4V799DwIZiYR5Ld2GQztLG3vSXa6hewF9d
 cWQn3UhBNfH3iZnbsyKBRdoyzyYpGYnQjscfkycnUp0e48/zV3FP8nhHBBz6yzKMhQN8PTkOh/p
 zAJhq8t/aNuc9Qbb7jTX6oyYQUjFS40Dyz16V6i498L7Ds1IH4BAM1YRNujd7L0OwHcF/44poGs
 KtlvHYvYD62fn9cjdy6VhayszYoILRnm32jBjhq/Nr8XUDtPomtBtrzV/YtAbspQ/RBOgdOJlTZ
 GREVmutmUPQ3WzWCoaIHOHZOl9Nd3aHOoSFZbTVijop8cq1GHmnDhS06LNA==
X-Received: by 2002:a05:6102:3908:b0:607:7991:8edd with SMTP id
 ada2fe7eead31-62d86a1d095mr164680137.19.1777658238552; Fri, 01 May 2026
 10:57:18 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN> <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN> <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN> <m2fr4ldxl3.fsf@HIDDEN>
 <m2ik982h8d.fsf@HIDDEN> <871pfvtso9.fsf@HIDDEN>
 <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
 <87cxzfkocq.fsf@HIDDEN>
In-Reply-To: <87cxzfkocq.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Fri, 1 May 2026 13:57:06 -0400
X-Gm-Features: AVHnY4KxgFhzHZYS2vwxpXWmwAu7DMQjSoWtGUEh-rsKNBYKiTpFl2kvzPWpEwE
Message-ID: <CAN+1HboiDuZVrFPmmPa8W0GsO8ePy+P-d3EvQHtmFyGmP6wP9g@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Eshel Yaron <me@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000d74e340650c54f84"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

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

On Fri, May 1, 2026 at 1:54=E2=80=AFPM Eshel Yaron <me@HIDDEN> wrot=
e:

> Hi,
>
> St=C3=A9phane Marks <shipmints@HIDDEN> writes:
>
> > On Fri, May 1, 2026 at 10:26=E2=80=AFAM Rahul Martim Juliato <
> rahuljuliato@HIDDEN> wrote:
> >
> >  Eshel Yaron <me@HIDDEN> writes:
> >
> >  > Hi,
> >  >
> >  > Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
> >  >
> >  >> +(defun markdown-ts-mode-install-parsers (arg)
> >  >> +  "Install `markdown-ts-mode' tree-sitter language parsers.
> >  >> +If needed, install the required parsers for `markdown' and
> `markdown-inline'.
> >  >> +With a prefix argument, ARG, if needed, install parsers for `html'=
,
> >  >> +`yaml', and `toml'."
> >  >> +  (interactive "P")
> >  >> +  (unless (treesit-ready-p 'markdown t)
> >  >> +    (treesit-install-language-grammar 'markdown))
> >  >
> >  > Note that this `treesit-ready-p' is not quite right, because
> >  > treesit-ready-p is sensitive to the current buffer.  Namely, this wi=
ll
> >  > return nil if you invoke this command in a large buffer of any kind,
> >  > even if the markdown parser is already installed.
> >  > Yes, treesit-ready-p is confusing.  See also bug#80909.
> >  >
> >  >> +  (unless (treesit-ready-p 'markdown-inline t)
> >  >> +    (treesit-install-language-grammar 'markdown-inline))
> >  >> +  (when arg
> >  >> +    (unless (treesit-ready-p 'html t)
> >  >> +      (require 'html-ts-mode)
> >  >> +      (treesit-install-language-grammar 'html))
> >  >> +    (unless (treesit-ready-p 'yaml t)
> >  >> +      (require 'yaml-ts-mode)
> >  >> +      (treesit-install-language-grammar 'yaml))
> >  >> +    (unless (treesit-ready-p 'toml t)
> >  >> +      (require 'toml-ts-mode)
> >  >> +      (treesit-install-language-grammar 'toml))))
> >  >>
> >  >>  ;;;###autoload
> >  >>  (define-derived-mode markdown-ts-mode text-mode "Markdown"
> >  >> -  "Major mode for editing Markdown using tree-sitter grammar."
> >  >> +  "Major mode for editing Markdown using tree-sitter grammar.
> >  >> +NOTE: See `markdown-ts--set-up-inline'."
> >  >> +  (if (and (treesit-ensure-installed 'markdown)
> >  >> +           (treesit-ensure-installed 'markdown-inline))
> >  >> +      (markdown-ts--set-up)
> >  >
> >  > Here there is another, related problem: since commit d9691858,
> >  > treesit-ensure-installed no longer checks treesit-max-buffer-size,
> >  > so this will try to create a parser even in a buffer that is too big=
.
> >  > (This problem is common to many TS-modes in core.)
> >  >
> >  > FWIW, my suggestion in bug#80909 was to move the buffer size check o=
ut
> >  > of treesit-ready-p and into treesit-parser-create, which would have
> >  > nullified both of these issues.
> >  >
> >  >
> >  > Best,
> >  >
> >  > Eshel
> >
> >  Hi!
> >
> >  Eshel, thank you for noticing these issues, and for the pointer to
> >  bug#80909.  I spent some time reading what you provided and digging in=
to
> >  the recent change in d9691858.
> >
> >  The attached patch (new) addresses both problems:
> >
> >  - In markdown-ts-mode-install-parsers, replace treesit-ready-p with
> >    treesit-language-available-p.  The install function only needs to
> >    know whether the grammar library is on disk, not whether the current
> >    buffer is within size limits.
>
> LGTM.
>
> >  - In define-derived-mode markdown-ts-mode, separate the two concerns:
> >    call treesit-ensure-installed for both languages first (which handle=
s
> >    auto-install if treesit-auto-install-grammar is set), then gate the
> >    actual mode setup on treesit-ready-p, which checks both language
> >    availability and buffer size.
>
> This one also look good, with a little caveat about this part:
>
>    ;;;###autoload
>    (define-derived-mode markdown-ts-mode text-mode "Markdown"
>   -  "Major mode for editing Markdown using tree-sitter grammar."
>   +  "Major mode for editing Markdown using tree-sitter grammar.
>   +NOTE: See `markdown-ts--set-up-inline'."
>   +  (treesit-ensure-installed 'markdown)
>   +  (treesit-ensure-installed 'markdown-inline)
>   +  (if (and (treesit-ready-p 'markdown t)
>   +           (treesit-ready-p 'markdown-inline t))
>   +      (markdown-ts--set-up)
>   +    (warn "markdown-ts-mode cannot be set up; using fundamental-mode.
>   +The tree-sitter parsers `markdown' and `markdown-inline' were not foun=
d.
>   +Use the command `markdown-ts-mode-install-parsers' to install them.
>   +With a prefix argument, it can also install optional parsers.")
>   +    (fundamental-mode)))
>
> Note that this triggers the warning also when the current buffer is too
> large, in which case the first sentence is correct, but the rest might
> be false (the parsers may be available, perhaps even just-installed.)
> You could call treesit-ready-p without the QUIET=3Dt argument, and it
> should yield the correct error message on failure.  Of course, it
> doesn't include the hint about markdown-ts-mode-install-parsers...
>

So maybe until treesit-max-buffer-size checking is better rationalized, we
let bind treesit-max-buffer-size to most-positive-fixnum and provide a
warning rather than refusal.

>  Yuan, St=C3=A9phane, Eshel, does this look right to you?
> >
> > Seems good at first glance.
> >
> > One can always let-bind treesit-max-buffer-size around treesit-ready-p
> to avoid the buffer size
> > restriction, though I'd prefer an argument be exposed to inhibit that
> check,  better invert it so that
> > it's an extra check not the default check.  One can install a parser in
> a small buffer that grows beyond
> > the size check which is a false sense of security.
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Fri, May 1, 2026 at 1:54=E2=80=AFPM Eshel Yaron &lt;<a href=3D"mailto:me=
@eshelyaron.com">me@HIDDEN</a>&gt; wrote:</span></div></div><div cl=
ass=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote"=
 style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);p=
adding-left:1ex">Hi,<br>
<br>
St=C3=A9phane Marks &lt;<a href=3D"mailto:shipmints@HIDDEN" target=3D"_b=
lank">shipmints@HIDDEN</a>&gt; writes:<br>
<br>
&gt; On Fri, May 1, 2026 at 10:26=E2=80=AFAM Rahul Martim Juliato &lt;<a hr=
ef=3D"mailto:rahuljuliato@HIDDEN" target=3D"_blank">rahuljuliato@HIDDEN=
om</a>&gt; wrote:<br>
&gt;<br>
&gt;=C2=A0 Eshel Yaron &lt;<a href=3D"mailto:me@HIDDEN" target=3D"_=
blank">me@HIDDEN</a>&gt; writes:<br>
&gt;<br>
&gt;=C2=A0 &gt; Hi,<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt; Rahul Martim Juliato &lt;<a href=3D"mailto:rahuljuliato@gma=
il.com" target=3D"_blank">rahuljuliato@HIDDEN</a>&gt; writes:<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt;&gt; +(defun markdown-ts-mode-install-parsers (arg)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 &quot;Install `markdown-ts-mode&#39; tree-sitte=
r language parsers.<br>
&gt;=C2=A0 &gt;&gt; +If needed, install the required parsers for `markdown&=
#39; and `markdown-inline&#39;.<br>
&gt;=C2=A0 &gt;&gt; +With a prefix argument, ARG, if needed, install parser=
s for `html&#39;,<br>
&gt;=C2=A0 &gt;&gt; +`yaml&#39;, and `toml&#39;.&quot;<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 (interactive &quot;P&quot;)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 (unless (treesit-ready-p &#39;markdown t)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 (treesit-install-language-grammar &#39;m=
arkdown))<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt; Note that this `treesit-ready-p&#39; is not quite right, be=
cause<br>
&gt;=C2=A0 &gt; treesit-ready-p is sensitive to the current buffer.=C2=A0 N=
amely, this will<br>
&gt;=C2=A0 &gt; return nil if you invoke this command in a large buffer of =
any kind,<br>
&gt;=C2=A0 &gt; even if the markdown parser is already installed.<br>
&gt;=C2=A0 &gt; Yes, treesit-ready-p is confusing.=C2=A0 See also bug#80909=
.<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 (unless (treesit-ready-p &#39;markdown-inline t=
)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 (treesit-install-language-grammar &#39;m=
arkdown-inline))<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 (when arg<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 (unless (treesit-ready-p &#39;html t)<br=
>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (require &#39;html-ts-mode)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (treesit-install-language-grammar=
 &#39;html))<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 (unless (treesit-ready-p &#39;yaml t)<br=
>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (require &#39;yaml-ts-mode)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (treesit-install-language-grammar=
 &#39;yaml))<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 (unless (treesit-ready-p &#39;toml t)<br=
>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (require &#39;toml-ts-mode)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (treesit-install-language-grammar=
 &#39;toml))))<br>
&gt;=C2=A0 &gt;&gt;=C2=A0 <br>
&gt;=C2=A0 &gt;&gt;=C2=A0 ;;;###autoload<br>
&gt;=C2=A0 &gt;&gt;=C2=A0 (define-derived-mode markdown-ts-mode text-mode &=
quot;Markdown&quot;<br>
&gt;=C2=A0 &gt;&gt; -=C2=A0 &quot;Major mode for editing Markdown using tre=
e-sitter grammar.&quot;<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 &quot;Major mode for editing Markdown using tre=
e-sitter grammar.<br>
&gt;=C2=A0 &gt;&gt; +NOTE: See `markdown-ts--set-up-inline&#39;.&quot;<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 (if (and (treesit-ensure-installed &#39;markdow=
n)<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(treesit-ensu=
re-installed &#39;markdown-inline))<br>
&gt;=C2=A0 &gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (markdown-ts--set-up)<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt; Here there is another, related problem: since commit d96918=
58,<br>
&gt;=C2=A0 &gt; treesit-ensure-installed no longer checks treesit-max-buffe=
r-size, <br>
&gt;=C2=A0 &gt; so this will try to create a parser even in a buffer that i=
s too big.<br>
&gt;=C2=A0 &gt; (This problem is common to many TS-modes in core.)<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt; FWIW, my suggestion in bug#80909 was to move the buffer siz=
e check out<br>
&gt;=C2=A0 &gt; of treesit-ready-p and into treesit-parser-create, which wo=
uld have<br>
&gt;=C2=A0 &gt; nullified both of these issues.<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt; Best,<br>
&gt;=C2=A0 &gt;<br>
&gt;=C2=A0 &gt; Eshel<br>
&gt;<br>
&gt;=C2=A0 Hi!<br>
&gt;<br>
&gt;=C2=A0 Eshel, thank you for noticing these issues, and for the pointer =
to<br>
&gt;=C2=A0 bug#80909.=C2=A0 I spent some time reading what you provided and=
 digging into<br>
&gt;=C2=A0 the recent change in d9691858.<br>
&gt;<br>
&gt;=C2=A0 The attached patch (new) addresses both problems:<br>
&gt;<br>
&gt;=C2=A0 - In markdown-ts-mode-install-parsers, replace treesit-ready-p w=
ith<br>
&gt;=C2=A0 =C2=A0 treesit-language-available-p.=C2=A0 The install function =
only needs to<br>
&gt;=C2=A0 =C2=A0 know whether the grammar library is on disk, not whether =
the current<br>
&gt;=C2=A0 =C2=A0 buffer is within size limits.<br>
<br>
LGTM.<br>
<br>
&gt;=C2=A0 - In define-derived-mode markdown-ts-mode, separate the two conc=
erns:<br>
&gt;=C2=A0 =C2=A0 call treesit-ensure-installed for both languages first (w=
hich handles<br>
&gt;=C2=A0 =C2=A0 auto-install if treesit-auto-install-grammar is set), the=
n gate the<br>
&gt;=C2=A0 =C2=A0 actual mode setup on treesit-ready-p, which checks both l=
anguage<br>
&gt;=C2=A0 =C2=A0 availability and buffer size.<br>
<br>
This one also look good, with a little caveat about this part:<br>
<br>
=C2=A0 =C2=A0;;;###autoload<br>
=C2=A0 =C2=A0(define-derived-mode markdown-ts-mode text-mode &quot;Markdown=
&quot;<br>
=C2=A0 -=C2=A0 &quot;Major mode for editing Markdown using tree-sitter gram=
mar.&quot;<br>
=C2=A0 +=C2=A0 &quot;Major mode for editing Markdown using tree-sitter gram=
mar.<br>
=C2=A0 +NOTE: See `markdown-ts--set-up-inline&#39;.&quot;<br>
=C2=A0 +=C2=A0 (treesit-ensure-installed &#39;markdown)<br>
=C2=A0 +=C2=A0 (treesit-ensure-installed &#39;markdown-inline)<br>
=C2=A0 +=C2=A0 (if (and (treesit-ready-p &#39;markdown t)<br>
=C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(treesit-ready-p &#39;mark=
down-inline t))<br>
=C2=A0 +=C2=A0 =C2=A0 =C2=A0 (markdown-ts--set-up)<br>
=C2=A0 +=C2=A0 =C2=A0 (warn &quot;markdown-ts-mode cannot be set up; using =
fundamental-mode.<br>
=C2=A0 +The tree-sitter parsers `markdown&#39; and `markdown-inline&#39; we=
re not found.<br>
=C2=A0 +Use the command `markdown-ts-mode-install-parsers&#39; to install t=
hem.<br>
=C2=A0 +With a prefix argument, it can also install optional parsers.&quot;=
)<br>
=C2=A0 +=C2=A0 =C2=A0 (fundamental-mode)))<br>
<br>
Note that this triggers the warning also when the current buffer is too<br>
large, in which case the first sentence is correct, but the rest might<br>
be false (the parsers may be available, perhaps even just-installed.)<br>
You could call treesit-ready-p without the QUIET=3Dt argument, and it<br>
should yield the correct error message on failure.=C2=A0 Of course, it<br>
doesn&#39;t include the hint about markdown-ts-mode-install-parsers...<br><=
/blockquote><div><br></div><div><div class=3D"gmail_default" style=3D"font-=
family:monospace">So maybe until treesit-max-buffer-size checking is better=
 rationalized, we let bind treesit-max-buffer-size to=C2=A0most-positive-fi=
xnum and provide a warning rather than refusal.</div></div><div><br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 Yuan, St=C3=A9phane, Eshel, does this look right to you?<br>
&gt;<br>
&gt; Seems good at first glance.<br>
&gt;<br>
&gt; One can always let-bind treesit-max-buffer-size around treesit-ready-p=
 to avoid the buffer size<br>
&gt; restriction, though I&#39;d prefer an argument be exposed to inhibit t=
hat check,=C2=A0 better invert it so that<br>
&gt; it&#39;s an extra check not the default check.=C2=A0 One can install a=
 parser in a small buffer that grows beyond<br>
&gt; the size check which is a false sense of security.<br>
</blockquote></div></div>

--000000000000d74e340650c54f84--




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

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


Received: (at 80740) by debbugs.gnu.org; 1 May 2026 17:54:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 01 13:54:06 2026
Received: from localhost ([127.0.0.1]:38098 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIs3y-0002g8-6f
	for submit <at> debbugs.gnu.org; Fri, 01 May 2026 13:54:06 -0400
Received: from mail.eshelyaron.com ([107.175.124.16]:56914 helo=eshelyaron.com)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <me@HIDDEN>) id 1wIs3v-0002fv-KK
 for 80740 <at> debbugs.gnu.org; Fri, 01 May 2026 13:54:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com;
 s=mail; t=1777658042;
 bh=wLe7S8Wvk2c+I3YM/Xp5qCnTmRywBvxiYBotoTb0Oi8=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=XQjykAW3gS2vV1fLMRTayU1hU3w05BBaKd5UhIJsfejWZfH0wL5td8rB7L1yP0SK0
 FrPNQTY5dO93aXaRpCeO6kcXGyfSn+oYuQdU/hnVa9Tfj40YaSHawiw0Uffy/jcsRe
 m5gEmQn5huFNhff+B6OtRAVnqnAfSBMRXjoADH1DzIUebN8OEzPArfIOSUc3vID2pj
 N6eYZpkIX1mSSPxmeQArYB58ezIt856r4XX8vujDIH0FI8ikUphF8uoy0v4L2LuaRH
 OvD+7+UKBr8iUx008pH7YjT2BslCYPvjasa3wTuMy2YYh5ZTBkaQHmTBeQeSc8+wc6
 w2eAB7WJjxCUw==
From: Eshel Yaron <me@HIDDEN>
To: =?utf-8?Q?St=C3=A9phane?= Marks <shipmints@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN>
 <86ldekiucu.fsf@HIDDEN> <m2tst8jnst.fsf@HIDDEN>
 <86qzocgu9t.fsf@HIDDEN> <m2fr4ldxl3.fsf@HIDDEN>
 <m2ik982h8d.fsf@HIDDEN> <871pfvtso9.fsf@HIDDEN>
 <m2lde3i4t8.fsf@HIDDEN>
 <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
Date: Fri, 01 May 2026 19:53:57 +0200
Message-ID: <87cxzfkocq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

St=C3=A9phane Marks <shipmints@HIDDEN> writes:

> On Fri, May 1, 2026 at 10:26=E2=80=AFAM Rahul Martim Juliato <rahuljuliat=
o@HIDDEN> wrote:
>
>  Eshel Yaron <me@HIDDEN> writes:
>
>  > Hi,
>  >
>  > Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
>  >
>  >> +(defun markdown-ts-mode-install-parsers (arg)
>  >> +  "Install `markdown-ts-mode' tree-sitter language parsers.
>  >> +If needed, install the required parsers for `markdown' and `markdown=
-inline'.
>  >> +With a prefix argument, ARG, if needed, install parsers for `html',
>  >> +`yaml', and `toml'."
>  >> +  (interactive "P")
>  >> +  (unless (treesit-ready-p 'markdown t)
>  >> +    (treesit-install-language-grammar 'markdown))
>  >
>  > Note that this `treesit-ready-p' is not quite right, because
>  > treesit-ready-p is sensitive to the current buffer.  Namely, this will
>  > return nil if you invoke this command in a large buffer of any kind,
>  > even if the markdown parser is already installed.
>  > Yes, treesit-ready-p is confusing.  See also bug#80909.
>  >
>  >> +  (unless (treesit-ready-p 'markdown-inline t)
>  >> +    (treesit-install-language-grammar 'markdown-inline))
>  >> +  (when arg
>  >> +    (unless (treesit-ready-p 'html t)
>  >> +      (require 'html-ts-mode)
>  >> +      (treesit-install-language-grammar 'html))
>  >> +    (unless (treesit-ready-p 'yaml t)
>  >> +      (require 'yaml-ts-mode)
>  >> +      (treesit-install-language-grammar 'yaml))
>  >> +    (unless (treesit-ready-p 'toml t)
>  >> +      (require 'toml-ts-mode)
>  >> +      (treesit-install-language-grammar 'toml))))
>  >>=20=20
>  >>  ;;;###autoload
>  >>  (define-derived-mode markdown-ts-mode text-mode "Markdown"
>  >> -  "Major mode for editing Markdown using tree-sitter grammar."
>  >> +  "Major mode for editing Markdown using tree-sitter grammar.
>  >> +NOTE: See `markdown-ts--set-up-inline'."
>  >> +  (if (and (treesit-ensure-installed 'markdown)
>  >> +           (treesit-ensure-installed 'markdown-inline))
>  >> +      (markdown-ts--set-up)
>  >
>  > Here there is another, related problem: since commit d9691858,
>  > treesit-ensure-installed no longer checks treesit-max-buffer-size,=20
>  > so this will try to create a parser even in a buffer that is too big.
>  > (This problem is common to many TS-modes in core.)
>  >
>  > FWIW, my suggestion in bug#80909 was to move the buffer size check out
>  > of treesit-ready-p and into treesit-parser-create, which would have
>  > nullified both of these issues.
>  >
>  >
>  > Best,
>  >
>  > Eshel
>
>  Hi!
>
>  Eshel, thank you for noticing these issues, and for the pointer to
>  bug#80909.  I spent some time reading what you provided and digging into
>  the recent change in d9691858.
>
>  The attached patch (new) addresses both problems:
>
>  - In markdown-ts-mode-install-parsers, replace treesit-ready-p with
>    treesit-language-available-p.  The install function only needs to
>    know whether the grammar library is on disk, not whether the current
>    buffer is within size limits.

LGTM.

>  - In define-derived-mode markdown-ts-mode, separate the two concerns:
>    call treesit-ensure-installed for both languages first (which handles
>    auto-install if treesit-auto-install-grammar is set), then gate the
>    actual mode setup on treesit-ready-p, which checks both language
>    availability and buffer size.

This one also look good, with a little caveat about this part:

   ;;;###autoload
   (define-derived-mode markdown-ts-mode text-mode "Markdown"
  -  "Major mode for editing Markdown using tree-sitter grammar."
  +  "Major mode for editing Markdown using tree-sitter grammar.
  +NOTE: See `markdown-ts--set-up-inline'."
  +  (treesit-ensure-installed 'markdown)
  +  (treesit-ensure-installed 'markdown-inline)
  +  (if (and (treesit-ready-p 'markdown t)
  +           (treesit-ready-p 'markdown-inline t))
  +      (markdown-ts--set-up)
  +    (warn "markdown-ts-mode cannot be set up; using fundamental-mode.
  +The tree-sitter parsers `markdown' and `markdown-inline' were not found.
  +Use the command `markdown-ts-mode-install-parsers' to install them.
  +With a prefix argument, it can also install optional parsers.")
  +    (fundamental-mode)))

Note that this triggers the warning also when the current buffer is too
large, in which case the first sentence is correct, but the rest might
be false (the parsers may be available, perhaps even just-installed.)
You could call treesit-ready-p without the QUIET=3Dt argument, and it
should yield the correct error message on failure.  Of course, it
doesn't include the hint about markdown-ts-mode-install-parsers...

>  Yuan, St=C3=A9phane, Eshel, does this look right to you?
>
> Seems good at first glance.
>
> One can always let-bind treesit-max-buffer-size around treesit-ready-p to=
 avoid the buffer size
> restriction, though I'd prefer an argument be exposed to inhibit that che=
ck,  better invert it so that
> it's an extra check not the default check.  One can install a parser in a=
 small buffer that grows beyond
> the size check which is a false sense of security.




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

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


Received: (at 80740) by debbugs.gnu.org; 1 May 2026 14:52:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 01 10:52:11 2026
Received: from localhost ([127.0.0.1]:36707 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIpDu-00044L-7q
	for submit <at> debbugs.gnu.org; Fri, 01 May 2026 10:52:11 -0400
Received: from mail-vs1-xe32.google.com ([2607:f8b0:4864:20::e32]:52331)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1wIpDr-00043j-1d
 for 80740 <at> debbugs.gnu.org; Fri, 01 May 2026 10:52:08 -0400
Received: by mail-vs1-xe32.google.com with SMTP id
 ada2fe7eead31-6201fc9ac0eso753798137.0
 for <80740 <at> debbugs.gnu.org>; Fri, 01 May 2026 07:52:07 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1777647126; cv=none;
 d=google.com; s=arc-20240605;
 b=hKXElz83BUrZsNIX5FZqjxpxK9l6h5vHuaPZEGdjOpMPnVlJlWnRhYtN+T+QAWcFgo
 2apR1IUfLeNu7dpB0kpiNSKn9WQbHkaHegOHSFu2dZH+h2P3ycuYYqPz8i3ubXc1IwsO
 Jz2p+S0a1mzh6LZm89hjbSFjOjY/MY3UcE+WgKv0ISKAbM8eQ3QDTamxRBL6uVGJGCrJ
 DOpa7VKyZ2iWYJy7C4ms00QwH1pYMBVmy0FyEGuK3WJ5rwcYvjEWotxg1MAwuPNEkppG
 zcAoQwny8fBsMrH2TYQGskcNJaV5ClqP7fPbuKVMWq5AQEXmPXkcS9XJ0aRz7dek1bC/
 qU0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=iq9Cx0uWE2yioF24GX2qvBO7TddgelM1sftwcA87G3c=;
 fh=rZLVAdrmDhtTc7akXwQ1yJykSoLoxVy7MNzCMHsNz8k=;
 b=j6jkR1jGqwWqGPakEqLjiGK6lwSo8SilttywVqpKRLLCL3eRT0lvE3IC6Lw3uFBuou
 sCKTAtLM5QV6aBiOuQ0Sx4Znuknt19fsFZvFK3lDXr1KpWQA+gdhk1m9ZJfqVyPXtPmo
 MccFcDgw7hiCfrR8iiE3Uu1S8zCFwlZTmlAcjrtmRx7J86TV9WV/GPjr4A480IWR6DWY
 wy/p5isvSK8hQrmNNNsOgyKHf0+0/FRw9FaIKzfSiE4yxaSEZMwbrTq56qG9++T3Mp+d
 jIW/r1ffZaoxzCeFR0t+3hF8D3PIwOy6kmIA6kKhe+y7Wr+uchga6zM3Uv0sq1nv02q/
 3rtA==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777647126; x=1778251926; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=iq9Cx0uWE2yioF24GX2qvBO7TddgelM1sftwcA87G3c=;
 b=K1akH4U0yEcxohaM7Qj3lUd5m4+A+FmvCExZPunuZuX+ktYrH4Y/KcP2tYcqHxXlYc
 PV53nrVqCYXouFbWlJclmU8Rr5cj1CxVtRwo5NDsbvw8V4BeAMKUzkOCXS1MZ9XUDRl2
 E5iqs+MPcueJ7GfZ4MXCmgICPEkM/G0FTNwv27+vNm5+PR3p4tUpGvkWit0criqaKb19
 Sz2ThZVVaQd1EifF/jNSWpSDSAhUv8a0/86Y9jne7K3xpTDEki8XtXy4+ZQnnB5zOn3J
 D1FOQgzYjYCs827VeeI07SzKQ7XGXFjSbbFn4h+ACTJw/8HjWlUjNZyRC50Zoc+obxSt
 treg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777647126; x=1778251926;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=iq9Cx0uWE2yioF24GX2qvBO7TddgelM1sftwcA87G3c=;
 b=TnXNn3LPjcJoRaJpAsC+rpVRVaRo4obWmoqcgZTI1uVQUefj24/w0UcS4V3jMkzyfU
 Dir42EAX5olNicVRTfaEQefn/rlTnrQFv1rmDRe/8sYKAEfD06Ne6JJtP+4kY1KOYYht
 xpxLWg+Cp5y/upli+CGyLVV9b0FZpCE21HDVjy1EzZGGd1iWojnL/47KAsKVQUM4Je4z
 DMa577UpUNbGXN5HzBtW1yyBowvkXkfqvRB0a9fm7GvlV0XOZKl7riiutWYzaXIcAAk2
 kqHQAJbfSrcOksL7l+a7SSMFBRWxfYegtmnHSyfYcrw81H+itAXJFPPXT0TfMGOru07a
 7VOQ==
X-Forwarded-Encrypted: i=1;
 AFNElJ9TXDnSj1KeZ2vze3BlSJbTR/4DHFMcgGzF1JlEqkhmgOuj0cygRe6H8Ffo/tpIqZd2oPoc/Q==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzZcVoAaF3v0dMR3zrhRY6u7K5qT5XZg0Cl3LAq3W89y1cFbekr
 Vkr7qTr+f8YoOhCCKB0MjmiJqLCULZLEhTE40EBArC2qBUz5sxEBHPAEY0p48VFkMq3rpehggzT
 T92IH07DsN1m1qa+ZH0nQgwaX+aJGMNU=
X-Gm-Gg: AeBDievKW+Ui8NEnj18TqpkQzQyC2gqr8n3eMDUGhdGi84vBlisgCM6eNTIZFt/7Shw
 w4THHOsAHvSEtx7XJ852ayvmQJfHdN7I3qPeIFKtKyQ/KBWG73yyQWbLi/1FogMTQAvSqxR24GT
 MIHvGVX+ua1ZgFWe8YQPZBgXE8CzQLcJv/JHu2qKllYfuztOAzqQoAsEaG7NFhV8im988NdpQUD
 WD4Ih9irBDgFeZinvKRXy63FRDPORXqYFujvKiQFV8euBKuUtAOGXjZ4aWUYbQ/FsoDO4PZec2u
 4OcqZYsBfM1oKcOnU+onBdhJ5tfVeegnTz/M7kwvOXFmKxk42Z+n91ntnYQEb5gb6vFvQbM38Mm
 1eXYXOHGTNxWCz5WJtPtKTGfKYJj957Wv3hIaOqdncfHUrjW5NWLzt/cq+A==
X-Received: by 2002:a05:6102:6a85:b0:607:4fe2:a647 with SMTP id
 ada2fe7eead31-62ad4467a63mr3922652137.21.1777647125954; Fri, 01 May 2026
 07:52:05 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN> <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN> <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN> <m2fr4ldxl3.fsf@HIDDEN>
 <m2ik982h8d.fsf@HIDDEN> <871pfvtso9.fsf@HIDDEN>
 <m2lde3i4t8.fsf@HIDDEN>
In-Reply-To: <m2lde3i4t8.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Fri, 1 May 2026 10:51:53 -0400
X-Gm-Features: AVHnY4ICM6LPilwWL3P7Tq_blcltv-Wf6zdnti0FXV3c1LmOSxu-zx8SmKbriRQ
Message-ID: <CAN+1HbpfowV03Cyej3Do0pv+UOAZUPFXwR2jicBaUCGjy5oZ_Q@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000007a83a50650c2b967"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Eshel Yaron <me@HIDDEN>, Yuan Fu <casouri@HIDDEN>,
 80740 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

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

On Fri, May 1, 2026 at 10:26=E2=80=AFAM Rahul Martim Juliato <rahuljuliato@=
gmail.com>
wrote:

> Eshel Yaron <me@HIDDEN> writes:
>
> > Hi,
> >
> > Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
> >
> >> +(defun markdown-ts-mode-install-parsers (arg)
> >> +  "Install `markdown-ts-mode' tree-sitter language parsers.
> >> +If needed, install the required parsers for `markdown' and
> `markdown-inline'.
> >> +With a prefix argument, ARG, if needed, install parsers for `html',
> >> +`yaml', and `toml'."
> >> +  (interactive "P")
> >> +  (unless (treesit-ready-p 'markdown t)
> >> +    (treesit-install-language-grammar 'markdown))
> >
> > Note that this `treesit-ready-p' is not quite right, because
> > treesit-ready-p is sensitive to the current buffer.  Namely, this will
> > return nil if you invoke this command in a large buffer of any kind,
> > even if the markdown parser is already installed.
> > Yes, treesit-ready-p is confusing.  See also bug#80909.
> >
> >> +  (unless (treesit-ready-p 'markdown-inline t)
> >> +    (treesit-install-language-grammar 'markdown-inline))
> >> +  (when arg
> >> +    (unless (treesit-ready-p 'html t)
> >> +      (require 'html-ts-mode)
> >> +      (treesit-install-language-grammar 'html))
> >> +    (unless (treesit-ready-p 'yaml t)
> >> +      (require 'yaml-ts-mode)
> >> +      (treesit-install-language-grammar 'yaml))
> >> +    (unless (treesit-ready-p 'toml t)
> >> +      (require 'toml-ts-mode)
> >> +      (treesit-install-language-grammar 'toml))))
> >>
> >>  ;;;###autoload
> >>  (define-derived-mode markdown-ts-mode text-mode "Markdown"
> >> -  "Major mode for editing Markdown using tree-sitter grammar."
> >> +  "Major mode for editing Markdown using tree-sitter grammar.
> >> +NOTE: See `markdown-ts--set-up-inline'."
> >> +  (if (and (treesit-ensure-installed 'markdown)
> >> +           (treesit-ensure-installed 'markdown-inline))
> >> +      (markdown-ts--set-up)
> >
> > Here there is another, related problem: since commit d9691858,
> > treesit-ensure-installed no longer checks treesit-max-buffer-size,
> > so this will try to create a parser even in a buffer that is too big.
> > (This problem is common to many TS-modes in core.)
> >
> > FWIW, my suggestion in bug#80909 was to move the buffer size check out
> > of treesit-ready-p and into treesit-parser-create, which would have
> > nullified both of these issues.
> >
> >
> > Best,
> >
> > Eshel
>
>
> Hi!
>
> Eshel, thank you for noticing these issues, and for the pointer to
> bug#80909.  I spent some time reading what you provided and digging into
> the recent change in d9691858.
>
> The attached patch (new) addresses both problems:
>
> - In markdown-ts-mode-install-parsers, replace treesit-ready-p with
>   treesit-language-available-p.  The install function only needs to
>   know whether the grammar library is on disk, not whether the current
>   buffer is within size limits.
>
> - In define-derived-mode markdown-ts-mode, separate the two concerns:
>   call treesit-ensure-installed for both languages first (which handles
>   auto-install if treesit-auto-install-grammar is set), then gate the
>   actual mode setup on treesit-ready-p, which checks both language
>   availability and buffer size.
>
> Yuan, St=C3=A9phane, Eshel, does this look right to you?
>

Seems good at first glance.

One can always let-bind treesit-max-buffer-size around treesit-ready-p to
avoid the buffer size restriction, though I'd prefer an argument be exposed
to inhibit that check,  better invert it so that it's an extra check not
the default check.  One can install a parser in a small buffer that grows
beyond the size check which is a false sense of security.

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

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Fri, May 1, 2026 at 10:26=E2=80=AFAM Rahul Martim Juliato &lt;<a href=3D=
"mailto:rahuljuliato@HIDDEN">rahuljuliato@HIDDEN</a>&gt; wrote:</span=
></div></div><div class=3D"gmail_quote gmail_quote_container"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">Eshel Yaron &lt;<a href=3D"mailto:me@e=
shelyaron.com" target=3D"_blank">me@HIDDEN</a>&gt; writes:<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; Rahul Martim Juliato &lt;<a href=3D"mailto:rahuljuliato@HIDDEN" tar=
get=3D"_blank">rahuljuliato@HIDDEN</a>&gt; writes:<br>
&gt;<br>
&gt;&gt; +(defun markdown-ts-mode-install-parsers (arg)<br>
&gt;&gt; +=C2=A0 &quot;Install `markdown-ts-mode&#39; tree-sitter language =
parsers.<br>
&gt;&gt; +If needed, install the required parsers for `markdown&#39; and `m=
arkdown-inline&#39;.<br>
&gt;&gt; +With a prefix argument, ARG, if needed, install parsers for `html=
&#39;,<br>
&gt;&gt; +`yaml&#39;, and `toml&#39;.&quot;<br>
&gt;&gt; +=C2=A0 (interactive &quot;P&quot;)<br>
&gt;&gt; +=C2=A0 (unless (treesit-ready-p &#39;markdown t)<br>
&gt;&gt; +=C2=A0 =C2=A0 (treesit-install-language-grammar &#39;markdown))<b=
r>
&gt;<br>
&gt; Note that this `treesit-ready-p&#39; is not quite right, because<br>
&gt; treesit-ready-p is sensitive to the current buffer.=C2=A0 Namely, this=
 will<br>
&gt; return nil if you invoke this command in a large buffer of any kind,<b=
r>
&gt; even if the markdown parser is already installed.<br>
&gt; Yes, treesit-ready-p is confusing.=C2=A0 See also bug#80909.<br>
&gt;<br>
&gt;&gt; +=C2=A0 (unless (treesit-ready-p &#39;markdown-inline t)<br>
&gt;&gt; +=C2=A0 =C2=A0 (treesit-install-language-grammar &#39;markdown-inl=
ine))<br>
&gt;&gt; +=C2=A0 (when arg<br>
&gt;&gt; +=C2=A0 =C2=A0 (unless (treesit-ready-p &#39;html t)<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (require &#39;html-ts-mode)<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (treesit-install-language-grammar &#39;html)=
)<br>
&gt;&gt; +=C2=A0 =C2=A0 (unless (treesit-ready-p &#39;yaml t)<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (require &#39;yaml-ts-mode)<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (treesit-install-language-grammar &#39;yaml)=
)<br>
&gt;&gt; +=C2=A0 =C2=A0 (unless (treesit-ready-p &#39;toml t)<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (require &#39;toml-ts-mode)<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (treesit-install-language-grammar &#39;toml)=
)))<br>
&gt;&gt;=C2=A0 <br>
&gt;&gt;=C2=A0 ;;;###autoload<br>
&gt;&gt;=C2=A0 (define-derived-mode markdown-ts-mode text-mode &quot;Markdo=
wn&quot;<br>
&gt;&gt; -=C2=A0 &quot;Major mode for editing Markdown using tree-sitter gr=
ammar.&quot;<br>
&gt;&gt; +=C2=A0 &quot;Major mode for editing Markdown using tree-sitter gr=
ammar.<br>
&gt;&gt; +NOTE: See `markdown-ts--set-up-inline&#39;.&quot;<br>
&gt;&gt; +=C2=A0 (if (and (treesit-ensure-installed &#39;markdown)<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(treesit-ensure-installe=
d &#39;markdown-inline))<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (markdown-ts--set-up)<br>
&gt;<br>
&gt; Here there is another, related problem: since commit d9691858,<br>
&gt; treesit-ensure-installed no longer checks treesit-max-buffer-size, <br=
>
&gt; so this will try to create a parser even in a buffer that is too big.<=
br>
&gt; (This problem is common to many TS-modes in core.)<br>
&gt;<br>
&gt; FWIW, my suggestion in bug#80909 was to move the buffer size check out=
<br>
&gt; of treesit-ready-p and into treesit-parser-create, which would have<br=
>
&gt; nullified both of these issues.<br>
&gt;<br>
&gt;<br>
&gt; Best,<br>
&gt;<br>
&gt; Eshel<br>
<br>
<br>
Hi!<br>
<br>
Eshel, thank you for noticing these issues, and for the pointer to<br>
bug#80909.=C2=A0 I spent some time reading what you provided and digging in=
to<br>
the recent change in d9691858.<br>
<br>
The attached patch (new) addresses both problems:<br>
<br>
- In markdown-ts-mode-install-parsers, replace treesit-ready-p with<br>
=C2=A0 treesit-language-available-p.=C2=A0 The install function only needs =
to<br>
=C2=A0 know whether the grammar library is on disk, not whether the current=
<br>
=C2=A0 buffer is within size limits.<br>
<br>
- In define-derived-mode markdown-ts-mode, separate the two concerns:<br>
=C2=A0 call treesit-ensure-installed for both languages first (which handle=
s<br>
=C2=A0 auto-install if treesit-auto-install-grammar is set), then gate the<=
br>
=C2=A0 actual mode setup on treesit-ready-p, which checks both language<br>
=C2=A0 availability and buffer size.<br>
<br>
Yuan, St=C3=A9phane, Eshel, does this look right to you?<br></blockquote><d=
iv><br></div><div class=3D"gmail_default" style=3D"font-family:monospace">S=
eems good at first glance.</div><div class=3D"gmail_default" style=3D"font-=
family:monospace"><br></div><div class=3D"gmail_default" style=3D"font-fami=
ly:monospace">One can always let-bind=C2=A0treesit-max-buffer-size around t=
reesit-ready-p=C2=A0to avoid the buffer size restriction, though I&#39;d pr=
efer an argument be exposed to inhibit that check,=C2=A0 better invert it s=
o that it&#39;s an extra check not the default check.=C2=A0 One can install=
 a parser in a small buffer that grows beyond the size check which is a fal=
se sense of security.</div></div></div>

--0000000000007a83a50650c2b967--




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

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


Received: (at 80740) by debbugs.gnu.org; 1 May 2026 14:26:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 01 10:26:58 2026
Received: from localhost ([127.0.0.1]:36652 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIopW-0000Aj-Jb
	for submit <at> debbugs.gnu.org; Fri, 01 May 2026 10:26:58 -0400
Received: from mail-dy1-x132d.google.com ([2607:f8b0:4864:20::132d]:43151)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wIopU-0000A8-6r
 for 80740 <at> debbugs.gnu.org; Fri, 01 May 2026 10:26:56 -0400
Received: by mail-dy1-x132d.google.com with SMTP id
 5a478bee46e88-2dec803f9f0so1870391eec.0
 for <80740 <at> debbugs.gnu.org>; Fri, 01 May 2026 07:26:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777645615; x=1778250415; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=JFBMBoZNwjEzHQRMhYqriVjRDcXnD3zyQakLqla5iUE=;
 b=SFOoJeFke7M0rZVQU0htDhTAMCQ+mbtgYbdFxTZQfR6OZk0sTIxYOgE/aROFhcaGHK
 F0kDaiERa/f4xtAB85qh5kUvMOA2HaJfqNgyeSjX/t1xi/hX8ur4EnSoKTxawBUp17Vz
 gZbQdVIaHAQQb+DFlZ4Rp1WtRgGcYQ7dOWzDNIJF8PMUMQ+bcblRTPTms17wmpvb4CTc
 KAFuimrb+6M9zDQH6w7nZ19iIGi3c/9iQbbDxCaqkQQgSaY+p5Aqm8/w3rDCpk91eVoa
 qzRvpmPq+ibs7LfMSsxjqix0PK6ndLhFpJKnlIcqwet1+h/Q4XYdmFqPNd/QkTtu9R1d
 A+9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777645615; x=1778250415;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=JFBMBoZNwjEzHQRMhYqriVjRDcXnD3zyQakLqla5iUE=;
 b=AHWvMZaXcnvND685JrwKtYqYcH7wOCBTI1dDg177mXUnJtoazLH3d75ScFfufKmq+u
 e6NghQ5g9aJsVnL3UwVB/1WVj3D4muXPTd41iSxkSDkmhMQfbFT/dHyyh3BJHtGnvpu4
 EclDLtRopmDLnm3kntB3oftCcooVVFzGJ7I/69gK0scC+L21MNmHVBIEfs68N4X1XMg+
 uA8bCUYiSxXwNVDtqO9rx6dnr78QixNL2dIS+v7vhdX5qDF/VyVnHncOamVzxmJYHP1S
 hVW7djchMtZpZl7GV9rBKOxUyipVieCMoXFgrkW7UGiTMx3lbr4Wu7BSwT+PGp58okB8
 cu7w==
X-Forwarded-Encrypted: i=1;
 AFNElJ+41HkzEN+8DmF62DMP0wb+qiUxRBMDnDTGmyhO3oY20fEC5nLY7d1bCTtYpMkjEY1iusOR2A==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YypsHkgBfJgoUPirL4VXcHyPDszpkXOkiyk7l8/5c3Lg93G5HHg
 tVHE8XxxwBqs0v3fw834TXOznRl6t6MZ8kgMjHsHIgEPkDl4OQELzXHo
X-Gm-Gg: AeBDiesMtUXrVE6dwZLOlNoTzk2fT7yyS2nNP9tyabbfJldNtmjabuzncah7vezEuMc
 7YJrsMAFcge6MFeyLL+RVwNnBtWAVehvqwnKZrbcl9vi/cnruFtbOJ0bTzPfYUcltqrcYw248hu
 FQ5zoeu2eQbC32gbPTKJ6BnGUtXzI9WQayatRTk4jvj1K9BqXtO5ia5Q2sofiKDkDZ5E6ah3mvE
 WfNdLP5wHUsXEtLL0n0Ux3jss7G0+sgi7F9WWScRxM+HkcIEYr/M9CcIZNVYNO/77H4pKgti5H+
 BHfrtffvHgGLwUM5rM2IbUmVBp5kKJjRWvU3v+l75S3gU4uofrt/5aQcHGcR9Jxv1nNyzKDdK9E
 mwoCyWhLXtXwH6s6uqlnSOSuqWGjdYJwZ3ILBW/23tfdpdB0JpT5glOhpeyPOSiAZknDIkZWS3e
 SaVbcPTkSsMKNvivmgKx63m3ROlcQMISF/uxz09WHVN+IrrcF/GEx8iWX9tqcOES7G8k6o6IG6T
 v0MS/Db3lWroXEIDVwjv0YhuIIQkzu+8fF1XeObsYvWuT+dtNce11p6
X-Received: by 2002:a05:7300:2d24:b0:2e7:190:41d6 with SMTP id
 5a478bee46e88-2ed4d51476fmr2977776eec.2.1777645614461; 
 Fri, 01 May 2026 07:26:54 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-77.dial-up.telesp.net.br.
 [201.93.59.77]) by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2ee3bf6811fsm4607153eec.29.2026.05.01.07.26.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 May 2026 07:26:53 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <871pfvtso9.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN> <m2ik982h8d.fsf@HIDDEN>
 <871pfvtso9.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Fri, 01 May 2026 11:26:43 -0300
Message-ID: <m2lde3i4t8.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: Eshel Yaron <me@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 Rahul Martim Juliato <rahuljuliato@HIDDEN>, 80740 <at> debbugs.gnu.org,
 shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

Eshel Yaron <me@HIDDEN> writes:

> Hi,
>
> Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
>
>> +(defun markdown-ts-mode-install-parsers (arg)
>> +  "Install `markdown-ts-mode' tree-sitter language parsers.
>> +If needed, install the required parsers for `markdown' and `markdown-in=
line'.
>> +With a prefix argument, ARG, if needed, install parsers for `html',
>> +`yaml', and `toml'."
>> +  (interactive "P")
>> +  (unless (treesit-ready-p 'markdown t)
>> +    (treesit-install-language-grammar 'markdown))
>
> Note that this `treesit-ready-p' is not quite right, because
> treesit-ready-p is sensitive to the current buffer.  Namely, this will
> return nil if you invoke this command in a large buffer of any kind,
> even if the markdown parser is already installed.
> Yes, treesit-ready-p is confusing.  See also bug#80909.
>
>> +  (unless (treesit-ready-p 'markdown-inline t)
>> +    (treesit-install-language-grammar 'markdown-inline))
>> +  (when arg
>> +    (unless (treesit-ready-p 'html t)
>> +      (require 'html-ts-mode)
>> +      (treesit-install-language-grammar 'html))
>> +    (unless (treesit-ready-p 'yaml t)
>> +      (require 'yaml-ts-mode)
>> +      (treesit-install-language-grammar 'yaml))
>> +    (unless (treesit-ready-p 'toml t)
>> +      (require 'toml-ts-mode)
>> +      (treesit-install-language-grammar 'toml))))
>>=20=20
>>  ;;;###autoload
>>  (define-derived-mode markdown-ts-mode text-mode "Markdown"
>> -  "Major mode for editing Markdown using tree-sitter grammar."
>> +  "Major mode for editing Markdown using tree-sitter grammar.
>> +NOTE: See `markdown-ts--set-up-inline'."
>> +  (if (and (treesit-ensure-installed 'markdown)
>> +           (treesit-ensure-installed 'markdown-inline))
>> +      (markdown-ts--set-up)
>
> Here there is another, related problem: since commit d9691858,
> treesit-ensure-installed no longer checks treesit-max-buffer-size,=20
> so this will try to create a parser even in a buffer that is too big.
> (This problem is common to many TS-modes in core.)
>
> FWIW, my suggestion in bug#80909 was to move the buffer size check out
> of treesit-ready-p and into treesit-parser-create, which would have
> nullified both of these issues.
>
>
> Best,
>
> Eshel


Hi!

Eshel, thank you for noticing these issues, and for the pointer to
bug#80909.  I spent some time reading what you provided and digging into
the recent change in d9691858.

The attached patch (new) addresses both problems:

- In markdown-ts-mode-install-parsers, replace treesit-ready-p with
  treesit-language-available-p.  The install function only needs to
  know whether the grammar library is on disk, not whether the current
  buffer is within size limits.

- In define-derived-mode markdown-ts-mode, separate the two concerns:
  call treesit-ensure-installed for both languages first (which handles
  auto-install if treesit-auto-install-grammar is set), then gate the
  actual mode setup on treesit-ready-p, which checks both language
  availability and buffer size.

Yuan, St=C3=A9phane, Eshel, does this look right to you?

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSA1NWVhMDBkYWU3ZWQ2ZmU2NTAxYzgxYzQ2NWM5Y2MyZWRkN2QyODUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYSBtb2RlIG1lbnUs
IGFuZCB0YWJsZSBlZGl0aW5nLiAgQWRkCidtYXJrZG93bi10cy1tb2RlLXguZWwnIHdpdGggY29u
dmVyc2lvbi9leHBvcnQgYW5kIFRPQyBzdXBwb3J0LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwKUGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRz
IGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29tbWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9y
IGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMsIGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0
aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUtc2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUg
J2dvdG8tYWRkciwgeHJlZiwgaWNvbnMpOiBOZXcgcmVxdWlyZW1lbnRzLgoobWFya2Rvd24tdHMp
OiBOZXcgY3VzdG9taXphdGlvbiBncm91cCB3aXRoIDp2ZXJzaW9uIGFuZAo6cGFja2FnZS12ZXJz
aW9uIHRhZ3MuCihtYXJrZG93bi10cy1oaWRlLW1hcmt1cCk6IEFkZCA6dmVyc2lvbiBhbmQgOnBh
Y2thZ2UtdmVyc2lvbi4KKG1hcmtkb3duLXRzLWVsbGlwc2lzKTogTmV3IG9wdGlvbiBmb3IgZm9s
ZGVkIGhlYWRpbmcgZWxsaXBzaXMuCihtYXJrZG93bi10cy1tZW51LWJhci1zaG93KTogTmV3IG9w
dGlvbiB0byB0b2dnbGUgbW9kZSBtZW51LgoobWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nKTog
TmV3IG9wdGlvbiBmb3IgZGVmYXVsdCBmb2xkCmxldmVsLgoobWFya2Rvd24tdHMtaW5saW5lLWlt
YWdlcyk6IE5ldyBvcHRpb24gdG8gZGlzcGxheSBpbmxpbmUKaW1hZ2VzLgoobWFya2Rvd24tdHMt
aW1hZ2UtbWF4LXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgaW1hZ2UgbWF4IHdpZHRoLgoobWFya2Rv
d24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcyk6IE5ldyBvcHRpb24gZm9yCnJlbW90
ZSBpbWFnZSBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUpOiBO
ZXcgaGVscGVyIHRvIHJlc29sdmUKZGlzcGxheSB2YWx1ZXMgdXNpbmcgY2hhci1kaXNwbGF5YWJs
ZS1wLgoobWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNr
ZWQgY2hlY2tib3gKZGlzcGxheSBzdHJpbmcgb3IgaWNvbi4KKG1hcmtkb3duLXRzLWNoZWNrZWQt
Y2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKY2hlY2tlZCB2YXJpYW50
LgoobWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgdW5jaGVj
a2VkCmNoZWNrYm94IGRpc3BsYXkgc3RyaW5nIG9yIGljb24uCihtYXJrZG93bi10cy11bmNoZWNr
ZWQtY2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKdW5jaGVja2VkIHZh
cmlhbnQuCihtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9u
IGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5IGNoYXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcgb3B0aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4g
cGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xhc2ggaGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3Vw
IGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRp
b24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBwbGFjZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJk
IGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCmNvZGUgYmxvY2sgY29u
dGV4dCBtb2RlIGxpZ2h0ZXIgc3RyaW5nLgoobWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2Nr
LW1vZGUtd2FybmluZ3MpOiBOZXcgb3B0aW9uIHRvCmluaGliaXQgY29kZS1ibG9jayBtYWpvci1t
b2RlIG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgZGVmYXVsdAp0YWJsZSBjb2x1bW4gd2lkdGguCiht
YXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZSk6IE5ldyBvcHRpb24gdG8gZW5hYmxlIHRhYmxl
Cm1vZGUuCihtYXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduKTogTmV3IG9wdGlvbiBmb3IgdHJp
Z2dlcnMgdGhhdApjYXVzZSBhdXRvbWF0aWMgdGFibGUgYWxpZ25tZW50LgoobWFya2Rvd24tdHMt
dGFibGUtYWxpZ24tZmVhdHVyZXMpOiBOZXcgb3B0aW9uIGZvciB0YWJsZSBhbGlnbgpmZWF0dXJl
cy4KKG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCm1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUgbGlnaHRlciBzdHJpbmcuCihtYXJrZG93bi10cy1lbXBo
YXNpcywgbWFya2Rvd24tdHMtYm9sZCkKKG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gsIG1hcmtk
b3duLXRzLWxpbmspCihtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uLCBtYXJrZG93bi10cy1j
b2RlLXNwYW4pCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLCBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1hcmt1cC1oaWRkZW4pCihtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrLCBtYXJrZG93
bi10cy1odG1sLXRhZykKKG1hcmtkb3duLXRzLWh0bWwtYmxvY2ssIG1hcmtkb3duLXRzLXRoZW1h
dGljLWJyZWFrKQoobWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSkKKG1hcmtkb3duLXRzLW51
bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSwgbWFya2Rvd24tdHMtbGF0ZXgpCihtYXJrZG93bi10
cy10YWJsZS1oZWFkZXIsIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCihtYXJrZG93bi10cy10YWJs
ZS1kZWxpbWl0ZXItY2VsbCwgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpCihtYXJrZG93bi10
cy10YXNrLWNoZWNrZWQpOiBOZXcgZmFjZXMuCihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
YmFja3NsYXNoKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4p
CihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpCihtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstc3BhY2UtaGlkZGVuKTogTmV3IGZhY2VzIGZvciB0aGUKdHdvIGhhcmQtbGluZS1i
cmVhayB2YXJpYW50cywgd2l0aCBkaXN0aW5jdCBzaG93bi9oaWRkZW4KYXBwZWFyYW5jZXMuCiht
YXJrZG93bi10cy1pbi1jb2RlLWJsb2NrKTogTmV3IGZhY2UgZm9yIHdoZW4gcG9pbnQgaXMgaW5z
aWRlIGEKZmVuY2VkIGNvZGUgYmxvY2suCihtYXJrZG93bi10cy10YWJsZSk6IE5ldyBmYWNlIGZv
ciBNYXJrZG93biBwaXBlIHRhYmxlCmJhY2tncm91bmQuCihtYXJrZG93bi10cy1pbi10YWJsZSk6
IE5ldyBmYWNlIGZvciBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlCndoZW4gcG9pbnQgaXMgaW4g
YSB0YWJsZS4KKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lKTogTmV3IHZhcmlhYmxlIGZvciBs
aWdodHdlaWdodCBzZXR1cAppbiBlbWJlZGRlZCBpbmxpbmUgbWFya2Rvd24tdHMtbW9kZSBidWZm
ZXJzIHVzZWQgYnkgY29kZSBibG9jawpjb21tYW5kcy4KKG1hcmtkb3duLXRzLWRlZmF1bHQtY29k
ZS1ibG9jay1tb2RlKTogTmV3IHZhcmlhYmxlIHRvIGRlZmluZQpkZWZhdWx0IG1vZGUgZm9yIGFu
b255bW91cyBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZvbnRpZnktY29kZS1ibG9ja3MtbmF0
aXZlbHkpOiBOZXcgb3B0aW9uIHRvCmVuYWJsZS9kaXNhYmxlIG5hdGl2ZSBmb250aWZpY2F0aW9u
IG9mIGZlbmNlZCBjb2RlIGJsb2NrCmNvbnRlbnRzLgoobWFya2Rvd24tdHMtZW5hYmxlLWNvZGUt
YmxvY2stY29udGV4dC1tb2RlKTogTmV3IG9wdGlvbiB0bwplbmFibGUvZGlzYWJsZSBjb2RlIGJs
b2NrIGNvbnRleHQgaW50ZWdyYXRpb24uCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKTog
TmV3IHZhcmlhYmxlIHJlcGxhY2luZwptYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1t
YXAgYW5kCm1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwIHdpdGggdW5pZmll
ZCBsYW5ndWFnZSB0bwptb2RlIG1hcHBpbmcgaW5jbHVkaW5nIGhldXJpc3RpYyBsb29rdXAuCiht
YXJrZG93bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcyk6IE5ldyB2YXJp
YWJsZQpsaXN0aW5nIHRyZWUtc2l0dGVyIG1vZGVzIHdob3NlIGZvbnRpZmljYXRpb24gb2YgY29k
ZSBibG9jawpjb250ZW50IHNob3VsZCBiZSBoYXJ2ZXN0ZWQgdmlhIGEgdGVtcG9yYXJ5IGJ1ZmZl
ci4KKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpOiBOZXcgY29uc3RhbnQgZm9yIHRh
YmxlIGV4cG9ydApvdXRwdXQgYnVmZmVyIG5hbWUuCihtYXJrZG93bi10cy0tdGFibGUtcm93LXR5
cGVzLCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1k
ZWxpbWl0ZXItY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcyk6IE5ldyBjb25zdGFudHMgZm9yCnBpcGUgdGFibGUgbm9kZSB0eXBlIGNsYXNzaWZp
Y2F0aW9uLgoobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24pOiBOZXcgZnVuY3Rpb24gdG8g
Y3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMgd2l0aCBtYWlsdG8sIGJyb3dzZS11cmwsIGFu
ZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0
aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGxpbmsgZGVzdGluYXRpb25zIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSwgbWFya2Rvd24tdHMt
LWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMp
CihtYXJrZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZik6IE5ldyBsaW5rIHJlZmVyZW5jZSBkZWZp
bml0aW9uCmNhY2hlIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBwZXIgQ29tbW9uTWFy
ayBzcGVjLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKTogTmV3IGZvbnRpZmllciBm
b3IgaW5saW5lLApyZWZlcmVuY2UsIHNob3J0Y3V0LCBhbmQgY29sbGFwc2VkIGxpbmtzIGFzIGNs
aWNrYWJsZSBidXR0b25zLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspOiBOZXcgZm9u
dGlmaWVyIGZvciBVUkkgYW5kIGVtYWlsCmF1dG9saW5rcyB3aXRoIGFuZ2xlIGJyYWNrZXQgaGlk
aW5nLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCihtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbik6IE5ldyBmb250aWZpZXJzIGZvcgpsaW5rIHJl
ZmVyZW5jZSBkZWZpbml0aW9ucy4KKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1Yi1zdHJpcC1yZSwg
bWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQoobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jLCBtYXJr
ZG93bi10cy0tZXhwbGljaXQtaWQtcmUpCihtYXJrZG93bi10cy0taGVhZGluZy10ZXh0LWFuZC1p
ZCkKKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlKQoobWFya2Rvd24tdHMtLWhlYWRpbmct
aWQtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24t
dHMtLWhlYWRpbmctaWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFn
bWVudCBsaW5rIHN1cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMu
CihtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5
LWxhdGV4LWJsb2NrKTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdy
YXBoIHZhbGlkYXRpb24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTog
TmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNp
ZGUgTGFUZVggYmxvY2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIg
dXNpbmcgb3JnLWVudGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3Bl
cnR5IGZvciBkZWNvZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTog
TmV3IGZvbnRpZmllciBzaG93aW5nIHRoZQpjb25maWd1cmVkIGNoZWNrYm94IGdseXBoIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhayk6
IE5ldyBmb250aWZpZXIgZm9yCidoYXJkX2xpbmVfYnJlYWsnIG5vZGVzLgoobWFya2Rvd24tdHMt
LWZvbnRpZnktaGVhZGluZyk6IE5ldyBmb250aWZpZXIgZm9yIEFUWCBhbmQgU2V0ZXh0CmhlYWRp
bmdzLgoobWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspOiBOZXcgZm9udGlmaWVy
IHNob3dpbmcKaG9yaXpvbnRhbCBsaW5lIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3du
LXRzLS1mb250aWZ5LWNvZGUtYmxvY2spOiBOZXcgZm9udGlmaWVyIGFwcGx5aW5nCmJhY2tncm91
bmQgb3ZlcmxheSB0byBjb2RlIGJsb2NrcyB3aXRoIGxhbmd1YWdlIGFuZCBtb2RlCnByb3BlcnRp
ZXMuCihtYXJrZG93bi10cy1hdC1jb2RlLWJsb2NrLXApCihtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LWxhbmd1YWdlLWF0KQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vz
c29ycyBmb3IgY29kZSBibG9jawpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1l
bnUtY29kZS1ibG9jay1ub2RlLXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRl
dGVjdGlvbi4KKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXApCihtYXJrZG93bi10
cy0tZm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0YW5kYWxv
bmUgYW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAp
CihtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMtLWZvbnRp
ZnktYmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEgaml0LWxv
Y2sgdXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5n
cyk6IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJzLCBhbmQg
bmV3IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxlbWVudHMu
ICBBbHNvIGFkZCBhIG5ldyAnZXJyb3InIGZvbnQtbG9jayBmZWF0dXJlCmhpZ2hsaWdodGluZyB0
cmVlLXNpdHRlciBFUlJPUiBub2Rlcy4KKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdl
cykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rlcyk6IE5ldyBidWZmZXItbG9j
YWwgYWxpc3RzCmZvciBjb2RlIGJsb2NrIGxhbmd1YWdlIHRyYWNraW5nLgoobWFya2Rvd24tdHMt
LWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24pOiBSZW5hbWUgZnJvbQptYXJrZG93
bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZpZ3Mgd2l0aCBkZWxheS1tb2RlLWhvb2tzLgoobWFy
a2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlcik6IFJlbmFtZSBmcm9tCm1hcmtkb3du
LXRzLS1hZGQtY29uZmlnLWZvci1tb2RlLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUp
OiBOZXcgaGVscGVyIGV4dHJhY3RpbmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9j
b250ZW50IG5vZGUuCihtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpOiBOZXcgYnVm
ZmVyLWxvY2FsIGhhc2ggdGFibGUKY2FjaGluZyBmb250aWZpY2F0aW9uIHJlc3VsdHMgZm9yIG5v
bi10cmVlLXNpdHRlciBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1j
b2xsZWN0LWZhY2VzKTogTmV3IGZ1bmN0aW9uCmhhcnZlc3RpbmcgZmFjZSBwcm9wZXJ0aWVzIGZy
b20gYSBtb2RlIGluIGFuIGluZGlyZWN0IG9yCnRlbXBvcmFyeSBidWZmZXIuCihtYXJrZG93bi10
cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10cmVl
LXNpdHRlciBtb2RlcyB2aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlzdGlj
IG1vZGUgbmFtZSBwcm9iaW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2Up
OiBSZW5hbWUgZnJvbQptYXJrZG93bi10cy0tY29udmVydC1jb2RlLWJsb2NrLWxhbmd1YWdlIHdp
dGggc3VwcG9ydCBmb3Igbm9uLXRzCm1vZGVzIGFuZCByZWN1cnNpdmUgbWFya2Rvd24gaGFuZGxp
bmcuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQoobWFya2Rvd24tdHMtY29kZS1i
bG9jay10aGluZy1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1h
bmRzKTogTmV3IGNvbW1hbmQgbGlzdHMgZm9yCmNvZGUtYmxvY2sgY29udGV4dCBleGVjdXRpb24u
CihtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlKQoobWFya2Rv
d24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2spCihtYXJrZG93bi10cy0tY29k
ZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMpCihtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jayk6IE5ldyBjb2RlIGJsb2NrIG1pbm9yCm1vZGUgd2l0aCB0ZW1wLWJ1ZmZl
ciBjb21tYW5kIGRpc3BhdGNoLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZSk6IE5l
dyBjb21tYW5kIGZvciBuZXdsaW5lCmluc2lkZSBjb2RlIGJsb2NrcywgZGlzcGF0Y2hpbmcgdG8g
dGhlIGJsb2NrJ3MgbW9kZS4KKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyk6IFVwZGF0ZSBy
YW5nZSBjb25maWd1cmF0aW9uOwpyZW1vdmUgOnJhbmdlLWZuIHRyZWVzaXQtcmFuZ2UtZm4tZXhj
bHVkZS1jaGlsZHJlbi4KKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCihtYXJr
ZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSk6IE5ldyBoZWxwZXJzIGZvciBpbWFnZQpvdmVy
bGF5IG1hbmFnZW1lbnQgZHVyaW5nIG91dGxpbmUgZm9sZC91bmZvbGQuCihtYXJrZG93bi10cy0t
b3V0bGluZS1pbnZpc2libGUtcCk6IE5ldyBoZWxwZXIgdGVzdGluZyB3aGV0aGVyIGEKcG9zaXRp
b24gaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJlZ2lvbi4KKG1hcmtkb3duLXRzLS1ob3N0
LXJhbmdlcy1ub3RpZmllcik6IE5ldyBmdW5jdGlvbiBwcnVuaW5nIHN0YWxlCmNvZGUgYmxvY2sg
b3ZlcmxheXMgd2hlbiB0aGUgaG9zdCBwYXJzZSB0cmVlIGNoYW5nZXMuCihtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSk6IE5ldyBoZWxwZXIgc2lnbmFsaW5nIGEKdXNlci1lcnJvciB3aGVu
IHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBub3QgZGVyaXZlZCBmcm9tCm1hcmtkb3duLXRzLW1vZGUu
CihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2Rl
IGVuYWJsZWQKd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBmZW5jZWQgY29kZSBibG9jaywgYWN0aXZh
dGluZwptYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1tYXAgc28gZWxpZ2li
bGUgY29tbWFuZHMKZGlzcGF0Y2ggdG8gdGhlIGJsb2NrJ3MgbWFqb3IgbW9kZS4KKG1hcmtkb3du
LXRzLS1zZXQtaGlkZS1tYXJrdXApOiBDbGVhciBpbWFnZSBvdmVybGF5cyB3aGVuCnRvZ2dsaW5n
IG1hcmt1cCB2aXNpYmlsaXR5LgoobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzKQoobWFy
a2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMpOiBOZXcgZnVuY3Rpb25zIGZvciB0b2dnbGlu
ZwppbmxpbmUgaW1hZ2UgZGlzcGxheS4KKG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgt
bGV2ZWwpOiBOZXcgY29uc3RhbnQuCihtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2ludCwgbWFy
a2Rvd24tdHMtLWhlYWRpbmctbGV2ZWwpCihtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCk6
IE5ldyBoZWFkaW5nIG5hdmlnYXRpb24gaGVscGVycy4KKG1hcmtkb3duLXRzLXByb21vdGUsIG1h
cmtkb3duLXRzLWRlbW90ZSk6IE5ldyBjb21tYW5kcyBmb3IKaGVhZGluZyBhbmQgbGlzdCBpdGVt
IHByb21vdGlvbi9kZW1vdGlvbiB3aXRoIHJlZ2lvbiBzdXBwb3J0LgoobWFya2Rvd24tdHMtLXBy
b21vdGUtb3ItZGVtb3RlKQoobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbik6
IE5ldyBoZWFkaW5nIGxldmVsCmFkanVzdG1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtbW92
ZS1zdWJ0cmVlLXVwLCBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bik6Ck5ldyBjb21tYW5k
cyBmb3IgbW92aW5nIHNlY3Rpb25zIGFuZCBsaXN0IGl0ZW1zLgoobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXApCihtYXJrZG93bi10cy0tbW92ZS1zdWJ0cmVlLXVwLW9yLWRvd24pOiBOZXcg
c3VidHJlZSBtb3ZlIHdpdGgKZm9sZGluZyBzdGF0ZSBwcmVzZXJ2YXRpb24uCihtYXJrZG93bi10
cy10b2dnbGUtY2hlY2tib3gpOiBOZXcgY29tbWFuZCB0byB0b2dnbGUgdGFzayBsaXN0CmNoZWNr
Ym94ZXMuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KTogTmV3IGhlbHBlciB3aXRo
IGJsb2NrIHF1b3RlCm1hcmtlciBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13
aWR0aCwgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24pCihtYXJrZG93bi10cy0tbGlzdC1v
cmRlcmVkLWl0ZW0tcCk6IE5ldyBsaXN0IGl0ZW0gaGVscGVycy4KKG1hcmtkb3duLXRzLS1saXN0
LXByb21vdGUtb3ItZGVtb3RlKTogTmV3IGZ1bmN0aW9uIHdpdGggb3JkZXJlZApsaXN0IG5lc3Rp
bmcgZ3VhcmQuCihtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCwgbWFya2Rvd24tdHMtLWxpc3Qt
bW92ZSk6IE5ldyBsaXN0Cml0ZW0gbW92ZW1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtcmVu
dW1iZXItbGlzdCk6IE5ldyBjb21tYW5kIGZvciBzZXF1ZW50aWFsIGxpc3QKcmVudW1iZXJpbmcg
d2l0aCBwcmVmaXggYXJndW1lbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3
LW1hcmtlcikKKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lKTogTmV3IG1hcmtlciBz
dHJpbmcgZ2VuZXJhdG9ycwpmb3IgbGlzdCBpdGVtIGluc2VydGlvbi4KKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKTogTmV3IGhlbHBlciBjb3VudGluZyBibG9jawpxdW90ZSBk
ZXB0aC4KKG1hcmtkb3duLXRzLW5ld2xpbmUpOiBOZXcgUkVUIGNvbW1hbmQgZm9yIGNvbnRleHQt
YXdhcmUKbmV3bGluZS4KKG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0pOiBOZXcgTS1SRVQg
Y29tbWFuZCB0aGF0IGNyZWF0ZXMgYQpuZXcgbGlzdCBpdGVtLgoobWFya2Rvd24tdHMtLWZpbGwt
dW5maWxsYWJsZS1ibG9jay1xdWVyeSk6IE5ldyB0cmVlLXNpdHRlcgpxdWVyeSBmb3IgdW5maWxs
YWJsZSBibG9ja3MuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uKTogTmV3IGhl
bHBlciBmb3IgbGlzdCBpdGVtCnRleHQgYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWZpbGwtbGlz
dC1pdGVtKTogTmV3IGZ1bmN0aW9uIGZpbGxpbmcgd2l0aGluIGxpc3QKaXRlbXMgd2l0aG91dCBt
ZXJnaW5nIGFkamFjZW50IGl0ZW1zLgoobWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpOiBOZXcg
YWRhcHRpdmUgZmlsbCBmdW5jdGlvbiBmb3IKbGlzdCBpdGVtIGNvbnRpbnVhdGlvbi4KKG1hcmtk
b3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKTogTmV3IHBhcmFncmFwaCBtb3Rpb24KcmVz
cGVjdGluZyBsaXN0IGl0ZW1zIGFuZCB1bmZpbGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZp
bGwtcGFyYWdyYXBoKTogTmV3IGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIHdpdGgKY29uZCogZGlz
cGF0Y2ggZm9yIGxpc3RzLCBibG9jayBxdW90ZXMsIEhUTUwgY29tbWVudHMsIGFuZAp1bmZpbGxh
YmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1maWxsLWh0bWwtY29tbWVudCk6IE5ldyBIVE1MIGNv
bW1lbnQgZmlsbGVyIHdpdGgKY29udGludWF0aW9uIGFsaWdubWVudC4KKG1hcmtkb3duLXRzLS1i
bG9jay1xdW90ZS1wcmVmaXgpOiBOZXcgaGVscGVyIHByZXNlcnZpbmcKZXhpc3RpbmcgYmxvY2sg
cXVvdGUgbWFya2VyIHN0eWxlLgoobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUpOiBOZXcg
YmxvY2sgcXVvdGUgZmlsbGVyIHdpdGgKbGlzdCBpdGVtIHRleHQgY29sdW1uIGFsaWdubWVudC4K
KG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KTogTmV3IGFsaXN0IG9mIGVtcGhhc2lzIG1hcmtl
cnMuCihtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCk6IE5ldyB0cmVlLXNpdHRl
ciBiYXNlZAplbXBoYXNpcyBkZXRlY3Rpb24uCihtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMp
OiBOZXcgY29tbWFuZCByZW1vdmluZyBlbXBoYXNpcyBhdApwb2ludCBvciByZWdpb24uCihtYXJr
ZG93bi10cy1lbXBoYXNpemUpOiBOZXcgaW50ZXJhY3RpdmUgZW1waGFzaXMgaW5zZXJ0aW9uIHdp
dGgKcmVnaW9uIHdyYXBwaW5nIGFuZCB3b3JkLWF0LXBvaW50IHN1cHBvcnQuCihtYXJrZG93bi10
cy1pbnNlcnQtc3RydWN0dXJlKTogTmV3IGNvbW1hbmQgZm9yIGluc2VydGluZyBjb2RlCmJsb2Nr
cywgYmxvY2sgcXVvdGVzLCBhbmQgZGl2aWRlcnMuCihtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUt
YmxvY2spOiBOZXcgZnVuY3Rpb24gd2l0aCBsYW5ndWFnZQpjb21wbGV0aW9uIGZyb20ga25vd24g
bW9kZXMuCihtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKTogTmV3IGZ1bmN0aW9uIHdp
dGggcmVnaW9uCndyYXBwaW5nLgoobWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKTogTmV3IGZ1
bmN0aW9uIGZvciBob3Jpem9udGFsCnJ1bGVzLgoobWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lz
KTogTmV3IGZ1bmN0aW9uIGFwcGx5aW5nIGN1c3RvbQplbGxpcHNpcyB2aWEgZGlzcGxheSB0YWJs
ZS4KKG1hcmtkb3duLXRzLS1zZXQtdXApOiBSZW5hbWUgZnJvbSBtYXJrZG93bi10cy1zZXR1cC4K
KG1hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBvdXRs
aW5lCnZpc2liaWxpdHkgb24gaGVhZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5ldyBr
ZXltYXAgZm9yIGNvZGUgYmxvY2sgbmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcgbmF2
aWdhdGlvbiwgc3RydWN0dXJlIGVkaXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRpb25z
LgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbWFwKTogTmV3IGtleW1h
cCBmb3IKY29kZSBibG9jayBjb250ZXh0LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTogTmV3IG1l
bnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1Y3R1cmUs
IGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRsaW5lLW1p
bm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3JhdGlvbiwg
Y29kZS1ibG9jay1jb250ZXh0LW1vZGUgaG9va3MsCmNvbW1lbnQgc2V0dGluZ3MsIGFuZCBvdXRs
aW5lLXZpZXctY2hhbmdlLWhvb2suICBVc2UKbWFya2Rvd24tdHMtbW9kZSBkaXJlY3RseSBpbiBh
dXRvLW1vZGUtYWxpc3QgaW5zdGVhZCBvZgptYXJrZG93bi10cy1tb2RlLW1heWJlLgoobWFya2Rv
d24tdHMtbW9kZS1pbnN0YWxsLXBhcnNlcnMpOiBOZXcgY29tbWFuZCBmb3IgaW5zdGFsbGluZwpy
ZXF1aXJlZCBhbmQgb3B0aW9uYWwgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgZ3JhbW1hcnMuCihtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2Rl
CmJsb2NrIGNvbnRleHQuCihtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlcikK
KG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIpOiBOZXcgaGVscGVy
cyBmb3IKbG9jYXRpbmcgZmVuY2VkIGNvZGUgYmxvY2sgZGVsaW1pdGVyIG5vZGVzLgoobWFya2Rv
d24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxvY2spCihtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZp
b3VzLWNvZGUtYmxvY2spOiBOZXcgY29tbWFuZHMgZm9yCm5hdmlnYXRpbmcgYmV0d2VlbiBmZW5j
ZWQgY29kZSBibG9ja3MuCihtYXJrZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zLCBtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1jZWxsKQoobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93LCBtYXJr
ZG93bi10cy0tdGFibGUtcGFyc2UtZXJyb3ItcCk6Ck5ldyBwaXBlIHRhYmxlIG5vZGUgaGVscGVy
cy4KKG1hcmtkb3duLXRzLWF0LXRhYmxlLXApOiBOZXcgcHJlZGljYXRlIHJldHVybmluZyBub24t
bmlsIHdoZW4KcG9pbnQgaXMgYXQgb3Igd2l0aGluIGEgcGlwZSB0YWJsZS4KKG1hcmtkb3duLXRz
LS1lbmFibGUtaW4tdGFibGUtbW9kZSk6IE5ldyBoZWxwZXIgZW5hYmxpbmcKbWFya2Rvd24tdHMt
aW4tdGFibGUtbW9kZSBmcm9tIHBvc3QtY29tbWFuZC1ob29rLgoobWFya2Rvd24tdHMtLXRhYmxl
LWJvZHktcm93LW5lYXItcG9zKTogTmV3IGhlbHBlciBsb2NhdGluZyB0aGUKbmVhcmVzdCBib2R5
IHJvdyB0byBhIHBvc2l0aW9uLgoobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4pOiBOZXcgaGVscGVycyBmb3IgY29s
dW1uLWJhc2VkCnRhYmxlIG5hdmlnYXRpb24uCihtYXJrZG93bi10cy0tdGFibGUtYWxpZ25lcnMs
IG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIpCihtYXJrZG93bi10cy0tdGFibGUtYWxp
Z24tY2VsbCk6IE5ldyB0YWJsZSBjZWxsIGFsaWdubWVudApoZWxwZXJzLgoobWFya2Rvd24tdHMt
dGFibGUtaW5zZXJ0LXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gaW5zZXJ0IGEgcGlwZQp0YWJsZSB3
aXRoIGNvbmZpZ3VyYWJsZSByb3dzIGFuZCBjb2x1bW5zLgoobWFya2Rvd24tdHMtdGFibGUtZGVs
ZXRlLXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gZGVsZXRlIHRoZSBwaXBlCnRhYmxlIGF0IHBvaW50
LgoobWFya2Rvd24tdHMtdGFibGUtcHJldmlvdXMtcm93LCBtYXJrZG93bi10cy10YWJsZS1uZXh0
LXJvdykKKG1hcmtkb3duLXRzLXRhYmxlLXByZXZpb3VzLWNlbGwsIG1hcmtkb3duLXRzLXRhYmxl
LW5leHQtY2VsbCk6Ck5ldyBjb21tYW5kcyBmb3IgbmF2aWdhdGluZyB0YWJsZSByb3dzIGFuZCBj
ZWxscy4KKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cpCihtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93
KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LXJvdyk6IE5ldyBjb21tYW5kcyBmb3IgaW5zZXJ0aW5nIGFuZApjbG9uaW5nIHRhYmxl
IHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1kZWxldGUtcm93LCBtYXJrZG93bi10cy10YWJsZS1t
b3ZlLXJvdy11cCkKKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24sIG1hcmtkb3duLXRz
LXRhYmxlLW1vdmUtcm93KToKTmV3IGNvbW1hbmRzIGZvciBkZWxldGluZyBhbmQgbW92aW5nIHRh
YmxlIHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQpCihtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUt
Y29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1jbG9uZS1jb2x1bW4tcmlnaHQpCihtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBpbnNlcnRpbmcK
YW5kIGNsb25pbmcgdGFibGUgY29sdW1ucy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbi1sZWZ0KQoobWFya2Rvd24tdHMtdGFi
bGUtbW92ZS1jb2x1bW4tcmlnaHQpCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbik6IE5l
dyBjb21tYW5kcyBmb3IgZGVsZXRpbmcgYW5kCm1vdmluZyB0YWJsZSBjb2x1bW5zLgoobWFya2Rv
d24tdHMtdGFibGUtYWxpZ24tY29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi1j
b2x1bW4tY2VudGVyKQoobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uLXJpZ2h0KQoobWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBzZXR0aW5nCmNv
bHVtbiBhbGlnbm1lbnQuCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSk6IE5ldyBjb21t
YW5kIHRvIGFsaWduIGFsbApjb2x1bW5zIGluIHRoZSB0YWJsZSBhdCBwb2ludC4KKG1hcmtkb3du
LXRzLXRhYmxlLXRyYW5zcG9zZS10YWJsZSk6IE5ldyBjb21tYW5kIHRvIHRyYW5zcG9zZQp0aGUg
dGFibGUgYXQgcG9pbnQuCihtYXJrZG93bi10cy10YWJsZS1jb252ZXJ0LWNzdi1yZWdpb24pCiht
YXJrZG93bi10cy10YWJsZS1jb252ZXJ0LXRzdi1yZWdpb24pCihtYXJrZG93bi10cy10YWJsZS1j
b252ZXJ0LXJlZ2lvbik6IE5ldyBjb21tYW5kcyB0byBjb252ZXJ0CmRlbGltaXRlZCB0ZXh0IHJl
Z2lvbnMgdG8gcGlwZSB0YWJsZXMuCihtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtY3N2
KQoobWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdikKKG1hcmtkb3duLXRzLXRhYmxl
LWV4cG9ydC10YWJsZSk6IE5ldyBjb21tYW5kcyB0byBleHBvcnQgdGhlCnBpcGUgdGFibGUgYXQg
cG9pbnQgdG8gQ1NWIG9yIFRTViBmb3JtYXQuCihtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlLW1h
cCk6IE5ldyBrZXltYXAgZm9yCm1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUuCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YpOiBOZXcgYnVmZmVyLWxvY2FsCnZhcmlh
YmxlIGZvciBjb2RlIGJsb2NrIGNvbnRleHQgb3ZlcmxheS4KKG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWluLWNvbnRleHQtbW9kZS11cGRhdGUtb3YpOiBOZXcKZnVuY3Rpb24gdXBkYXRpbmcgdGhl
IGNvZGUgYmxvY2sgY29udGV4dCBvdmVybGF5LgoobWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZSk6
IE5ldyBtaW5vciBtb2RlIGVuYWJsZWQgd2hlbiBwb2ludAppcyB3aXRoaW4gYSBwaXBlIHRhYmxl
LCBhY3RpdmF0aW5nIG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbWFwLgoobWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtb3YpCihtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YpCiht
YXJrZG93bi10cy0tdGFibGUtdGljay11cGRhdGUpCihtYXJrZG93bi10cy0tdGFibGUtdGljay1z
dGFsZS1wKQoobWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtdXBkYXRlLW92KTogTmV3IGhlbHBl
cnMgc3VwcG9ydGluZwptYXJrZG93bi10cy1pbi10YWJsZS1tb2RlIG92ZXJsYXkgbWFuYWdlbWVu
dC4KKG1hcmtkb3duLXRzLXRhYmxlLW1vZGUpOiBOZXcgbWlub3IgbW9kZSBwcm92aWRpbmcgdGFi
bGUgZWRpdGluZwpjb21tYW5kcyBhbmQgYXV0by1hbGlnbm1lbnQuCihtYXJrZG93bi10cy1tb2Rl
LW1heWJlKTogUmVtb3ZlOyBhdXRvLW1vZGUtYWxpc3Qgbm93IHVzZXMKbWFya2Rvd24tdHMtbW9k
ZSBkaXJlY3RseS4KQXV0by1tb2RlLWFsaXN0OiBBZGQgLm1hcmtkb3duIGFuZCAubWR4IGV4dGVu
c2lvbnMuCgoqIGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbDogTmV3IGZpbGUg
cHJvdmlkaW5nIGV4dHJhCmZlYXR1cmVzIGZvciBtYXJrZG93bi10cy1tb2RlLgoobWFya2Rvd24t
dHMtY29tbW9ubWFyay1zcGVjLXVybCwgbWFya2Rvd24tdHMtZ2ZtLXNwZWMtdXJsKTogTmV3CmNv
bnN0YW50cyBmb3IgQ29tbW9uTWFyayBhbmQgR0ZNIHNwZWNpZmljYXRpb24gVVJMcy4KKG1hcmtk
b3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMpCihtYXJrZG93bi10cy1icm93c2UtZ2ZtLXNw
ZWMpOiBOZXcgY29tbWFuZHMgdG8gYnJvd3NlIHRoZQpDb21tb25NYXJrIGFuZCBHRk0gc3BlY2lm
aWNhdGlvbnMuCihtYXJrZG93bi10cy1jb252ZXJ0KTogTmV3IGN1c3RvbWl6YXRpb24gZ3JvdXAg
Zm9yIE1hcmtkb3duCmNvbnZlcnNpb24vZXhwb3J0IGZlYXR1cmVzLgoobWFya2Rvd24tdHMtZGVm
YXVsdC1jb252ZXJ0ZXIpOiBOZXcgb3B0aW9uIHRvIHNldCB0aGUgZGVmYXVsdApmb3JtYXQgYW5k
IGNvbnZlcnRlciBmb3IgTWFya2Rvd24gZXhwb3J0LgoobWFya2Rvd24tdHMtY29udmVydC1kaXNw
bGF5LWZ1bmN0aW9uKTogTmV3IG9wdGlvbiBzcGVjaWZ5aW5nCnRoZSBmdW5jdGlvbiB1c2VkIHRv
IGRpc3BsYXkgY29udmVydGVkIG91dHB1dC4KKG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpOiBOZXcg
dmFyaWFibGUgbGlzdGluZyBmb3JtYXQvY29udmVydGVyCmNvbmZpZ3VyYXRpb25zIGZvciBwYW5k
b2MsIGNtYXJrLCBjbWFyay1nZm0sIG1hcmtkb3duLCBhbmQKbWFya2Rvd24ucGwuCihtYXJrZG93
bi10cy1jb252ZXJ0LWZpbGUsIG1hcmtkb3duLXRzLWNvbnZlcnQpOiBOZXcgY29tbWFuZHMgdG8K
Y29udmVydCBNYXJrZG93biBidWZmZXJzIG9yIGZpbGVzIHRvIEhUTUwsIFBERiwgYW5kIG90aGVy
CmZvcm1hdHMgdmlhIGV4dGVybmFsIGNvbnZlcnRlcnMuCihtYXJrZG93bi10cy10b2MpOiBOZXcg
Y3VzdG9taXphdGlvbiBncm91cCBmb3IgdGFibGUgb2YgY29udGVudHMKZmVhdHVyZXMuCihtYXJr
ZG93bi10cy10b2MtZ2VuZXJhdGUtd2Fybi1pZi1ub25lKTogTmV3IG9wdGlvbiBjb250cm9sbGlu
ZwpiZWhhdmlvciB3aGVuIG5vIFRPQyBpcyBmb3VuZCBkdXJpbmcgZ2VuZXJhdGlvbi4KKG1hcmtk
b3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyKTogTmV3IG9wdGlvbgpm
b3IgdGhlIGJlZm9yZS1zYXZlIFRPQyB1cGRhdGUgbWlub3IgbW9kZSBsaWdodGVyIHN0cmluZy4K
KG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uKTogTmV3IG9wdGlvbiB0byBzZWxlY3QgdGhl
IHNsdWcKYWxnb3JpdGhtIHVzZWQgZm9yIFRPQyBoZWFkaW5nIGFuY2hvcnMuCihtYXJrZG93bi10
cy0tdG9jLWhhbmRsZXMsIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlLWNsYXNzZXMpOiBOZXcKdmFy
aWFibGVzIGRlZmluaW5nIFRPQyBoYW5kbGUgdHlwZXMgYW5kIGNsYXNzZXMuCihtYXJrZG93bi10
cy0tdG9jLWV4cGFuZC1jYW5kaWRhdGUtaGFuZGxlcywgbWFya2Rvd24tdHMtLXRvY3MpCihtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2spCihtYXJrZG93bi10cy0tdG9jLWNvbGxlY3QtY2Fu
ZGlkYXRlcykKKG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoKQoobWFya2Rvd24tdHMt
LXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emVycykKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxpemUpOiBOZXcgaW50ZXJuYWwgaGVs
cGVycyBmb3IgVE9DCnBhcnNpbmcgYW5kIHRleHQgbm9ybWFsaXphdGlvbi4KKG1hcmtkb3duLXRz
LXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZSk6IE5ldyBtaW5vciBtb2RlIHRoYXQKcmVnZW5l
cmF0ZXMgdGFibGVzIG9mIGNvbnRlbnRzIGJlZm9yZSBzYXZpbmcuCihtYXJrZG93bi10cy10b2Mt
Y2xlYXItYW5kLXJlbW92ZSwgbWFya2Rvd24tdHMtdG9jLWNsZWFyKTogTmV3CmNvbW1hbmRzIHRv
IHJlbW92ZSBvciBjbGVhciBUT0MgYm9kaWVzLgoobWFya2Rvd24tdHMtdG9jLWluc2VydC10ZW1w
bGF0ZSk6IE5ldyBjb21tYW5kIHRvIGluc2VydCBhIFRPQwp0ZW1wbGF0ZSBhdCBwb2ludC4KKG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZSk6IE5ldyBjb21tYW5kIHRvIGdlbmVyYXRlIHRhYmxlcyBv
Zgpjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCgpJbmNsdWRlcyBmaXhlcyBmb3I6IChi
dWcjODA2MTMpIChidWcjODA2MjUpIChidWcjODA2OTApCgpDby1hdXRob3JlZC1ieTogU3TDqXBo
YW5lIE1hcmtzIDxzaGlwbWludHNAZ21haWwuY29tPgotLS0KIGxpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUteC5lbCB8IDExMzQgKysrKysrCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsICAgfCA1NDE5ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNo
YW5nZWQsIDYyNjggaW5zZXJ0aW9ucygrKSwgMjg1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbAoKZGlmZiAtLWdpdCBh
L2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbCBiL2xpc3AvdGV4dG1vZGVzL21h
cmtkb3duLXRzLW1vZGUteC5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNzQwNTA3OGFiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLXguZWwKQEAgLTAsMCArMSwxMTM0IEBACis7OzsgbWFya2Rvd24tdHMtbW9kZS14
LmVsIC0tLSBtYXJrZG93bi10cy1tb2RlIGV4dHJhcyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAt
Ki0KKworOzsgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgorCis7OyBBdXRob3IgICAgICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1
bGlhdG9AZ21haWwuY29tPgorOzsgICAgICAgICAgICAgICAgICA6IFN0w6lwaGFuZSBNYXJrcyA8
c2hpcG1pbnRzQGdtYWlsLmNvbT4KKzs7IE1haW50YWluZXIgICAgICAgOiBSYWh1bCBNYXJ0aW0g
SnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBDcmVhdGVkICAgICAgICAgIDog
QXByaWwgMjAyNgorOzsgVmVyc2lvbiAgICAgICAgICA6IDEuMAorOzsgUGFja2FnZS1SZXF1aXJl
cyA6ICgoZW1hY3MgIjMxLjEiKSkKKzs7IEtleXdvcmRzICAgICAgICAgOiBtYXJrZG93biBtZCB0
ZXh0IGVkaXQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVyCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor
OzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUg
PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7
OyBDb2RlOgorCisocmVxdWlyZSAnbWFya2Rvd24tdHMtbW9kZSkKKworOzs7IENvbnZlbmllbmNl
OgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMtY29tbW9ubWFyay1zcGVjLXVybAorICAiaHR0cHM6
Ly9zcGVjLmNvbW1vbm1hcmsub3JnL2N1cnJlbnQvIikKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LWdmbS1zcGVjLXVybAorICAiaHR0cHM6Ly9naXRodWIuZ2l0aHViLmNvbS9nZm0vIikKKworKGRl
ZnVuIG1hcmtkb3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMgKCkKKyAgIkJyb3dzZSB0aGUg
Q29tbW9uTWFyayBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWNvbW1vbm1hcmstc3BlYy11cmwpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtYnJvd3NlLWdmbS1zcGVjICgpCisgICJCcm93c2UgdGhlIEdpdEh1
YiBGbGF2b3JlZCBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWdmbS1zcGVjLXVybCkpCisKKzs7OyBFeHBv
cnQgYW5kIHByZXZpZXc6CisKKyhkZWZncm91cCBtYXJrZG93bi10cy1jb252ZXJ0IG5pbAorICAi
Q29udmVydCBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycyBvciBmaWxlcy4iCisgIDpwcmVmaXgg
Im1hcmtkb3duLXRzLWNvbnZlcnQtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5n
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kZWZhdWx0LWNv
bnZlcnRlciBuaWwKKyAgIkRlZmF1bHQgTWFya2Rvd24gZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCitJ
ZiBuaWwsIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGZvcm1hdCBhbmQgYSBjb252ZXJ0ZXIu
CitTZWUgYG1hcmtkb3duLXRzLWNvbnZlcnRlcnMnLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0
IDp0YWcgIlByb21wdCBmb3IgZm9ybWF0IGFuZCBjb252ZXJ0ZXIiIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIlBERiB2aWEgUGFuZG9jIiAocGRmIC4gcGFuZG9jKSkKKyAgICAg
ICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkhUTUwgdmlhIFBhbmRvYyIgKGh0bWwgLiBwYW5kb2Mp
KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmsiIChodG1sIC4g
Y21hcmspKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmstZ2Zt
IChHaXRIdWIgYmVsbHMgYW5kIHdoaXN0bGVzKSIgKGh0bWwgLiBjbWFyay1nZm0pKQorICAgICAg
ICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24iIChodG1sIC4gbWFya2Rv
d24pKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24ucGwi
IChodG1sIC4gbWFya2Rvd24ucGwpKQorICAgICAgICAgICAgICAgICAoY29ucyAgOnRhZyAiRm9y
bWF0IGFuZCBDb252ZXJ0ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcg
IkZvcm1hdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcgIkNvbnZlcnRl
ciIpKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhk
ZWZjdXN0b20gbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uICMnZXd3LW9wZW4t
ZmlsZQorICAiRnVuY3Rpb24gdG8gZGlzcGxheSBjb252ZXJ0ZWQgTWFya2Rvd24gdGhlIG91dHB1
dCBmaWxlLgorVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCwgdGhlIGZp
bGUgbmFtZS4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJEaXNwbGF5IHVzaW5nIGBl
d3cnIiBld3ctb3Blbi1maWxlKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBpbiBhIGJyb3dzZXIiIGJyb3dzZS11cmwtb2YtZmlsZSkKKyAgICAgICAgICAgICAgICAgKGNv
bnN0IDp0YWcgIkRpc3BsYXkgb3V0cHV0IGZpbGUgaW4gYSBidWZmZXIiIGZpbmQtZmlsZS1vdGhl
ci13aW5kb3cpCisgICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJPdGhlciBmdW5jdGlv
biIpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmNvbnN0IG1hcmtkb3duLXRzLS1jb252ZXJ0LWVycm9yLWJ1ZmZlcgorICAiKm1hcmtkb3duLXRz
LWNvbnZlcnQgZXJyb3JzKiIpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tY29udmVydC1vdXRw
dXQtYnVmZmVyCisgICIqbWFya2Rvd24tdHMtY29udmVydCBvdXRwdXQqIikKKworKGRlZnZhciBt
YXJrZG93bi10cy1jb252ZXJ0ZXJzCisgIChsaXN0CisgICAoY29ucyAnaHRtbAorICAgICAgICAg
KGxpc3QKKyAgICAgICAgICAoY29ucyAncGFuZG9jCisgICAgICAgICAgICAgICAgKGxpc3QgOmNv
bW1hbmQgInBhbmRvYyIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGlu
KQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhmaWxlKQorICAgICAgICAgICAgICAg
ICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpbnB1dC1maWxlIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLWYiICJnZm0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItdCIgImh0bWw1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1z
dGFuZGFsb25lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iIG91
dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1m
aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkp
KSkpKQorICAgICAgICAgIChjb25zICdjbWFyaworICAgICAgICAgICAgICAgIChsaXN0IDpjb21t
YW5kICJjbWFyayIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGluKQor
ICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQpCisgICAgICAgICAgICAgICAg
ICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg
KGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLXQiICJodG1sIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdo
ZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGlu
cHV0LWZpbGUpKSkpKSkKKyAgICAgICAgICAoY29ucyAnY21hcmstZ2ZtCisgICAgICAgICAgICAg
ICAgKGxpc3QgOmNvbW1hbmQgImNtYXJrLWdmbSIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5w
dXQgJyhmaWxlIHN0ZGluKQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQp
CisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCAobGlzdCAiLXQiICJodG1sIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBVc2UgR2l0SHViLXN0eWxlIDxwcmUgbGFuZz4gZm9yIGNv
ZGUgYmxvY2tzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWdpdGh1
Yi1wcmUtbGFuZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5j
bHVkZSByZW1haW5kZXIgb2YgY29kZSBibG9jayBpbmZvCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDs7IHN0cmluZyBpbiBhIHNlcGFyYXRlIGF0dHJpYnV0ZS4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZnVsbC1pbmZvLXN0cmluZyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgVXNlIHN0eWxlIGF0dHJpYnV0
ZXMgdG8gYWxpZ24gdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgY2VsbHMgaW5zdGVhZCBvZiBhbGlnbiBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLS10YWJsZS1wcmVmZXItc3R5bGUtYXR0cmlidXRlcyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAiZm9vdG5v
dGVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1leHRlbnNpb24i
ICJ0YWJsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5z
aW9uIiAic3RyaWtldGhyb3VnaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0tZXh0ZW5zaW9uIiAiYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWV4dGVuc2lvbiIgInRhZ2ZpbHRlciIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAidGFza2xpc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKQorICAgICAgICAgIDs7ICdtYXJr
ZG93bi5wbCBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24gd2l0aCBhbm90aGVyIGNvbW1vbiBmaWxl
CisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rvd24ucGwKKyAgICAg
ICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24ucGwiCisgICAgICAgICAgICAgICAg
ICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6b3V0cHV0
ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKQorICAgICAg
ICAgIDs7ICdtYXJrZG93biBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24ucGwgd2l0aCBhbm90aGVy
IGNvbW1vbiBmaWxlCisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rv
d24KKyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24iCisgICAgICAgICAg
ICAgICAgICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6
b3V0cHV0ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rp
b24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKSkp
CisgICAoY29ucyAncGRmCisgICAgICAgICAobGlzdAorICAgICAgICAgIChjb25zICdwYW5kb2MK
KyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAicGFuZG9jIgorICAgICAgICAgICAgICAg
ICAgICAgIDppbnB1dCAnKGZpbGUgc3RkaW4pCisgICAgICAgICAgICAgICAgICAgICAgOm91dHB1
dCAnKGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgb3V0cHV0LWZpbGUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChsaXN0ICItZiIgImdmbSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi10IiAicGRmIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLW8iIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKSkpKQorICAiQW4gYWxpc3Qgb2YgZm9ybWF0
L2NvbnZlcnRlciBjb25maWd1cmF0aW9ucy4KK0l0IGlzIGEgdHdvIGxldmVsIGFsaXN0IHdpdGgg
dGhlIGZpcnN0IGxldmVsIGJlaW5nIGZvcm1hdCwgZm9yIGV4YW1wbGUKK2BodG1sJyBvciBgcGRm
JywgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIGNvbnZlcnRlciBuYW1lLCBmb3IgZXhhbXBsZQor
YHBhbmRvYycuICBBIGNvbnZlcnRlciBjb25maWd1cmF0aW9uIGVudHJ5IGlzIGEgcGxpc3Qgb2Yg
dGhlIGZvcm06CisKKyAgXFw9Jyg6Y29tbWFuZCBcImNvbW1hbmQgbmFtZVwiCisgICAgOmlucHV0
IChmaWxlIHN0ZGluKSA7IGFjY2VwdHMgZmlsZSBuYW1lIG9yIHN0ZGluCisgICAgOm91dHB1dCAo
c3Rkb3V0KSAgICA7IHByb2R1Y2VzIHN0ZG91dCBvbmx5CisgICAgOmFyZ3VtZW50cy1mdW5jdGlv
biA7IGZ1bmN0aW9uOyBlLmcuLAorICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAoYXBwZW5kIChsaXN0IFwiLXRcIiBcImh0bWxcIikKKyAgICAgICAgICAgICAg
ICh3aGVuIGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkp
CisKK2Bhcmd1bWVudHMtZnVuY3Rpb24nIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzLCBJTlBVVC1G
SUxFIGFuZAorT1VUUFVULUZJTEUuICBJZiBJTlBVVC1GSUxFIGlzIG5pbCwgYXNzdW1lIHN0ZGlu
LCBvciBpdCBpcyBhCitmdWxseS1xdWFsaWZpZWQgZmlsZSBuYW1lLiAgSWYgT1VUUFVULUZJTEUg
aXMgbmlsLCBhc3N1bWUgc3Rkb3V0LCBvciBpdAoraXMgYSBmdWxseS1xdWFsaWZpZWQgZmlsZSBu
YW1lLiAgSXQgc2hvdWxkIHJldHVybiBhIGxpc3Qgb2YKK2FyZ3VtZW50cyBzdWl0YWJsZSBmb3Ig
YGNhbGwtcHJvY2VzcycuIikKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93bi10cy1j
b252ZXJ0LWZpbGUgKGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IE1h
cmtkb3duIElOUFVULUZJTEUgdG8gRk9STUFULgorSWYgb3B0aW9uYWwgRElTUExBWSBpcyBub24t
bmlsLCBzaG93IHRoZSBvdXRwdXQgZmlsZSBpbiBhIGJ1ZmZlciwgaWYKK3Bvc3NpYmxlLCB1c2lu
ZyB0aGUgZnVuY3Rpb24gYG1hcmtkb3duLXRzLWNvbnZlcnQtZGlzcGxheS1mdW5jdGlvbicuCisK
K1dpdGggYSBwcmVmaXggYXJndW1lbnQsIERJU1BMQVkgd2lsbCBiZSBub24tbmlsLgorCitPcHRp
b25hbCBGT1JNQVQgaXMgYSBmb3JtYXQvY29udmVydGVyIHBhaXIgc3BlY2lmaWVkIGFzIGEgY29u
cworXFw9Jyhmb3JtYXQgLiBjb252ZXJ0ZXIpIGZvciBleGFtcGxlIFxcPScoaHRtbCAuIHBhbmRv
YykuICBTZWUKK2BtYXJrZG93bi10cy1jb252ZXJ0ZXJzJy4gIElmIG5pbCwgcHJvbXB0IGZvciB0
aGUgZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCisKK0lmIG9wdGlvbmFsIE9WRVJXUklURSBpcyBub24t
bmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUgaWYgaXQKK2V4aXN0cy4KKworSWYg
UVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNvbnZlcnNpb24gd2FybmluZ3Mgb3Ig
ZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBzcGVjaWZpZWQgYnkgYSBjb252ZXJ0
ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2VlIHRoZSB2YXJpYWJsZSBgZXhlYy1w
YXRoJy4iCisgIChpbnRlcmFjdGl2ZSAiZkNvbnZlcnQgTWFya2Rvd24gZmlsZTogIikKKyAgKG1h
cmtkb3duLXRzLWNvbnZlcnQgaW5wdXQtZmlsZSBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICBmb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgKG9yIGRpc3BsYXkgY3VycmVu
dC1wcmVmaXgtYXJnKQorICAgICAgICAgICAgICAgICAgICAgICBvdmVyd3JpdGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgcXVpZXQpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIG1hcmtkb3du
LXRzLWNvbnZlcnQgKCZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0
LWZpbGUgb3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgZGlz
cGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IGEgYG1hcmtkb3duLXRzLW1vZGUnIGJ1
ZmZlciBvciBmaWxlIHRvIEZPUk1BVC4KK0NvbnZlcnQgSU5QVVQtRklMRSB0byBPVVRQVVQtRklM
RS4KKworSWYgSU5QVVQtRklMRSBpcyBuaWwsIHVzZSB0aGUgY3VycmVudCBidWZmZXIuCisKK0lm
IE9VVFBVVC1GSUxFIGlzIG5pbCwgcHJvbXB0IGZvciBhbiBvdXRwdXQgZmlsZS4KKworT3B0aW9u
YWwgRk9STUFUIGlzIGEgZm9ybWF0L2NvbnZlcnRlciBwYWlyIHNwZWNpZmllZCBhcyBhIGNvbnMK
K1xcPScoZm9ybWF0IC4gY29udmVydGVyKSBmb3IgZXhhbXBsZSBcXD0nKGh0bWwgLiBwYW5kb2Mp
LiAgU2VlCitgbWFya2Rvd24tdHMtY29udmVydGVycycuICBJZiBuaWwsIHByb21wdCBmb3IgdGhl
IGZvcm1hdCBhbmQgY29udmVydGVyLgorCitJZiBvcHRpb25hbCBESVNQTEFZIGlzIG5vbi1uaWws
IHNob3cgdGhlIG91dHB1dCBmaWxlIGluIGEgYnVmZmVyLCBpZgorcG9zc2libGUsIHVzaW5nIHRo
ZSBmdW5jdGlvbiBgbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uJy4KKworV2l0
aCBhIHByZWZpeCBhcmd1bWVudCwgRElTUExBWSB3aWxsIGJlIG5vbi1uaWwuCisKK0lmIG9wdGlv
bmFsIE9WRVJXUklURSBpcyBub24tbmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUg
aWYgaXQKK2V4aXN0cy4KKworSWYgUVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNv
bnZlcnNpb24gd2FybmluZ3Mgb3IgZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBz
cGVjaWZpZWQgYnkgYSBjb252ZXJ0ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2Vl
IHRoZSB2YXJpYWJsZSBgZXhlYy1wYXRoJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKGFu
ZCBpbnB1dC1maWxlCisgICAgICAgICAgICAgKGVxdWFsIGJ1ZmZlci1maWxlLW5hbWUgKGV4cGFu
ZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgKGJ1ZmZlci1tb2RpZmllZC1w
KSkKKyAgICAod2hlbiAoeWVzLW9yLW5vLXAgIlNhdmUgbW9kaWZpZWQgYnVmZmVyIGJlZm9yZSBj
b252ZXJ0aW5nPyAiKQorICAgICAgKHNhdmUtYnVmZmVyKSkpCisgICh1bmxlc3MgaW5wdXQtZmls
ZQorICAgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtY29udmVy
dCkpCisKKyAgKHNldHEgZGlzcGxheSAob3IgZGlzcGxheSBjdXJyZW50LXByZWZpeC1hcmcpKQor
CisgIChsZXQqICgoY29udmVydGVyLWZvcm1hdAorICAgICAgICAgIChvciAoY2FyIGZvcm1hdCkK
KyAgICAgICAgICAgICAgKGNhciBtYXJrZG93bi10cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAg
ICAgICAgICAgKGludGVybgorICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAg
ICAgICAgICAgICJTZWxlY3QgYW4gb3V0cHV0IGZvcm1hdDogIgorICAgICAgICAgICAgICAgICht
YXBjYXIgKGxhbWJkYSAoZWx0KSAoc3ltYm9sLW5hbWUgKGNhciBlbHQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpCisgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy1jb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgICAgKGNvbnZlcnRlcgor
ICAgICAgICAgIChvciAoY2RyIGZvcm1hdCkKKyAgICAgICAgICAgICAgKGNkciBtYXJrZG93bi10
cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAgICAgICAgICAgKGludGVybgorICAgICAgICAgICAg
ICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAgICAgICAgICAgICJTZWxlY3QgYSBjb252ZXJ0ZXI6
ICIKKyAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGVsdCkgKHN5bWJvbC1uYW1lIChj
YXIgZWx0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtZ2V0IGNvbnZlcnRlci1m
b3JtYXQgbWFya2Rvd24tdHMtY29udmVydGVycykpCisgICAgICAgICAgICAgICAgbmlsCisgICAg
ICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJr
ZG93bi10cy1jb252ZXJ0ZXIpKSkpCisgICAgICAgICAoY29uZmlnIChhbGlzdC1nZXQgY29udmVy
dGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LWdldCBjb252ZXJ0ZXItZm9y
bWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1j
b252ZXJ0ZXJzKSkpCisgICAgICAgICAoY29tbWFuZCAocGxpc3QtZ2V0IGNvbmZpZyA6Y29tbWFu
ZCkpCisgICAgICAgICAoY29tbWFuZC1pbnB1dCAocGxpc3QtZ2V0IGNvbmZpZyA6aW5wdXQpKQor
ICAgICAgICAgKGNvbW1hbmQtb3V0cHV0IChwbGlzdC1nZXQgY29uZmlnIDpvdXRwdXQpKQorICAg
ICAgICAgKHN0ZGluLW9ubHkgKGVxdWFsIGNvbW1hbmQtaW5wdXQgJyhzdGRpbikpKQorICAgICAg
ICAgKHN0ZG91dC1vbmx5IChlcXVhbCBjb21tYW5kLW91dHB1dCAnKHN0ZG91dCkpKSkKKyAgICAo
dW5sZXNzIG91dHB1dC1maWxlCisgICAgICAoc2V0cSBvdXRwdXQtZmlsZQorICAgICAgICAgICAg
KHJlYWQtZmlsZS1uYW1lICJPdXRwdXQgZmlsZSBuYW1lOiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNh
dCAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGZpbGUtcmVsYXRpdmUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAob3IgaW5wdXQtZmlsZSBidWZmZXItZmlsZS1uYW1lKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzeW1ib2wtbmFtZSBjb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgKHVubGVz
cyBvdXRwdXQtZmlsZQorICAgICAgICAodXNlci1lcnJvciAiT3V0cHV0IGZpbGUgbmFtZSBpcyBy
ZXF1aXJlZCIpKSkKKyAgICAod2hlbiBvdXRwdXQtZmlsZQorICAgICAgKHdoZW4gKGFuZCAobm90
IG92ZXJ3cml0ZSkKKyAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgb3V0cHV0LWZpbGUp
CisgICAgICAgICAgICAgICAgIChub3QgKHllcy1vci1uby1wIChmb3JtYXQgIiVzIGV4aXN0czsg
b3ZlcndyaXRlPyIgb3V0cHV0LWZpbGUpKSkpCisgICAgICAgICh1c2VyLWVycm9yICJOb3Qgb3Zl
cndyaXRpbmcgZXhpc3RpbmcgZmlsZTogJXMiIG91dHB1dC1maWxlKSkKKyAgICAgIChzZXRxIG91
dHB1dC1maWxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dC1maWxlKSkpCisKKworICAgIChsZXQg
KChjb21tYW5kLWFyZ3MgKGZ1bmNhbGwgKHBsaXN0LWdldCBjb25maWcgOmFyZ3VtZW50cy1mdW5j
dGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIGlucHV0LWZpbGUg
KGV4cGFuZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQtZmlsZSkpKQorICAgICAgKHVubGVzcyAoZXhlY3V0YWJsZS1maW5kIGNv
bW1hbmQpCisgICAgICAgICh1c2VyLWVycm9yICJgJXMnIGV4ZWN1dGFibGUgbm90IGZvdW5kIiBj
b21tYW5kKSkKKyAgICAgIChsZXQgKChlcnJvci1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZm
ZXIpKQorICAgICAgICAgICAgKGVycm9yLXRlbXAtZmlsZSAobWFrZS10ZW1wLWZpbGUgIm1hcmtk
b3duLXRzLWNvbnZlcnQtc3RkZXJyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmlsICIubG9nIikpCisgICAgICAgICAgICAoc3Rkb3V0LWJ1ZmZlciAod2hl
biBzdGRvdXQtb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0LWJ1ZmZlci1j
cmVhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb252ZXJ0
LW91dHB1dC1idWZmZXIpKSkpCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAg
KGxldCAoZXhpdC1zdGF0dXMpCisgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGVy
cm9yLWJ1ZmZlcgorICAgICAgICAgICAgICAgIChzcGVjaWFsLW1vZGUpCisgICAgICAgICAgICAg
ICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCisgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIpKQorICAgICAgICAgICAgICAod2hlbiBzdGRv
dXQtYnVmZmVyCisgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc3Rkb3V0LWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgKHNwZWNpYWwtbW9kZSkKKyAgICAgICAgICAgICAgICAg
IChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikpKQorICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgKChhbmQgaW5wdXQtZmlsZSAobm90IHN0ZGluLW9ubHkpKQorICAgICAg
ICAgICAgICAgIChzZXRxIGV4aXQtc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5
ICMnY2FsbC1wcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsaXN0IHN0ZG91dC1idWZmZXIgZXJyb3ItdGVtcC1maWxlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC1h
cmdzKSkpCisgICAgICAgICAgICAgICAoKGFuZCBpbnB1dC1maWxlIHN0ZGluLW9ubHkpCisgICAg
ICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQt
ZmlsZS1jb250ZW50cyBpbnB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1z
dGF0dXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZC1hcmdzKSkpKQorICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAo
d2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1zdGF0dXMK
KyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZC1hcmdzKSkpKSkKKyAgICAgICAgICAgICAgKGxldCAoKGVycm9yLXNpemUgKGZpbGUtYXR0
cmlidXRlLXNpemUgKGZpbGUtYXR0cmlidXRlcyBlcnJvci10ZW1wLWZpbGUpKSkpCisgICAgICAg
ICAgICAgICAgKHdoZW4gKGFuZCBlcnJvci1zaXplICg+IGVycm9yLXNpemUgMCkpCisgICAgICAg
ICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBlcnJvci1idWZmZXIKKyAgICAgICAgICAg
ICAgICAgICAgKGluc2VydC1maWxlLWNvbnRlbnRzIGVycm9yLXRlbXAtZmlsZSkKKyAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKSkKKyAgICAgICAgICAgICAgKGNv
bmQgKChlcSAwIGV4aXQtc3RhdHVzKSA7IEludGVnZXIgb3Igc3RyaW5nLgorICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gc3Rkb3V0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAod2l0
aC1jdXJyZW50LWJ1ZmZlciBzdGRvdXQtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSBvdXRwdXQtZmlsZSkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHdoZW4gZGlzcGxheQorICAgICAgICAgICAgICAgICAgICAgICAo
ZnVuY2FsbCBtYXJrZG93bi10cy1jb252ZXJ0LWRpc3BsYXktZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LWZpbGUpKQorICAgICAgICAgICAgICAgICAgICAg
KHdoZW4gKGFuZCAobm90IHF1aWV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bm90ICh6ZXJvcCAoYnVmZmVyLXNpemUgZXJyb3ItYnVmZmVyKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh5ZXMtb3Itbm8tcAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZvcm1hdC1tZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkNvbnZlcnNpb24gZmlsZSBgJXMnIHN1Y2Nlc3NmdWxseSBjcmVhdGVkIHdpdGggd2FybmluZ3M7
IGRpc3BsYXkgdGhlbT8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
LWZpbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyIGVycm9yLWJ1
ZmZlcikpCisgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiQ29udmVyc2lvbiBmaWxlIHN1
Y2Nlc3NmdWxseSBjcmVhdGVkIGAlcyclcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHplcm9wIChi
dWZmZXItc2l6ZSBlcnJvci1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiB3aXRoIHdh
cm5pbmdzOyBzZWUgYnVmZmVyIGAlcyciIGVycm9yLWJ1ZmZlcikpKSkKKyAgICAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgIChpZiBxdWlldAorICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udmVydGVyIGFi
b3J0ZWQgd2l0aCBleGl0IGNvZGUgJVM7IHNlZSBidWZmZXIgYCVzJyBmb3IgZXJyb3JzIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGl0LXN0YXR1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZmZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICh3aGVuICh5ZXMtb3Itbm8tcCAoZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNvbnZlcnRlciBhYm9ydGVkIHdpdGggZXhpdCBjb2RlICVT
OyBkaXNwbGF5IGVycm9ycz8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXhpdC1zdGF0dXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5LWJ1
ZmZlciBlcnJvci1idWZmZXIpKSkpKSkKKyAgICAgICAgICAoZGVsZXRlLWZpbGUgZXJyb3ItdGVt
cC1maWxlKSkpKSkpCisKKzs7OyBUYWJsZSBvZiBjb250ZW50czoKKworKGRlZmdyb3VwIG1hcmtk
b3duLXRzLXRvYyBuaWwKKyAgIlRhYmxlIG9mIGNvbnRlbnRzIGZvciBgbWFya2Rvd24tdHMtbW9k
ZScgYnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLXRvYy0iCisgIDpncm91cCAndGV4
dAorICA6Z3JvdXAgJ2VkaXRpbmcKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUgJ2luc2VydC10ZW1wbGF0ZQorICAi
V2FybiBpZiBubyB0YWJsZXMgd2VyZSBwcm9jZXNzZWQgd2hlbiBjYWxsaW5nIGBtYXJrZG93bi10
cy10b2MtZ2VuZXJhdGUnLgorSWYgbmlsLCBkbyBub3RoaW5nLiAgSWYgdGhlIHN5bWJvbCBgaW5z
ZXJ0LXRlbXBsYXRlJyBhbmQKK2BtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUnIHdhcyBjYWxsZWQg
aW50ZXJhY3RpdmVseSwgb2ZmZXIgdG8gaW5zZXJ0IGEKK3RlbXBsYXRlIGlmIHRoZXJlIGFyZSBu
b25lLiAgSWYgYG5vLXRhYmxlcycsIHdhcm4gd2hlbiB0aGVyZSBhcmUgbm8KK3RhYmxlcyBpbiB0
aGUgYnVmZmVyLiAgYG5vLWFjdGl2ZS10YWJsZXMnLCBpcyB0aGUgc2FtZSBhcyBgbm8tdGFibGVz
Jword2l0aCB0aGUgYWRkaXRpb24gb2YgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0YWJsZXMsIGJ1
dCBub25lIGFyZSBhY3RpdmUuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiTm8gd2Fy
bmluZ3MiIG5pbCkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkluc2VydCBhIHRhYmxl
IHRlbXBsYXRlIChpZiBpbnRlcmFjdGl2ZSkiIGluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIldhcm4gaWYgbm8gdGFibGVzIHdlcmUgcHJvY2Vzc2VkIiBuby10
YWJsZXMpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJXYXJuIGlmIG5vIGFjdGl2ZSB0
YWJsZXMgd2VyZSBwcm9jZXNzZWQiIG5vLWFjdGl2ZS10YWJsZXMpKQorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy10
b2MtdXBkYXRlLWJlZm9yZS1zYXZlLW1vZGUtbGlnaHRlciAiIFt0b2Mgb24gc2F2ZV0iCisgICJN
aW5vci1tb2RlIFwibGlnaHRlclwiIGZvciBgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUt
c2F2ZS1tb2RlJy4KK05vdGUgdGhlIHNpbmdsZSBzcGFjZSBwcmVmaXguIgorICA6dHlwZSAnKGNo
b2ljZSAoY29uc3QgOnRhZyAiRGVmYXVsdCIgIiBbdG9jIG9uIHNhdmVdIikKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKKyAgICAgICAgICAgICAgICAgKHN0cmluZyA6
dGFnICJPdGhlciBzdHJpbmciKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNp
b24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdG9jLXNsdWctZnVuY3Rpb24gIydt
YXJrZG93bi10cy0tc2x1Zy1naXRodWIKKyAgIkZ1bmN0aW9uIHRvIGdlbmVyYXRlIE1hcmtkb3du
IGhlYWRpbmcgXCJzbHVnc1wiIGluIHRhYmxlcyBvZiBjb250ZW50cy4iCisgIDp0eXBlICcoY2hv
aWNlIChjb25zdCA6dGFnICJHaXRIdWIgc2x1ZyIgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiUGFuZG9jIHNsdWciIG1hcmtkb3duLXRzLS1z
bHVnLXBhbmRvYykKKyAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgIk90aGVyIGZ1bmN0
aW9uIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmdmFyIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcworICAnKChoZWFkaW5nIC4gKGgxIGgyIGgz
IGg0IGg1IGg2KSkKKyAgICAoc2V0ZXh0IC4gKHNoMSBzaDIpKQorICAgIChpdGVtIC4gKG1pbnVz
IHBsdXMgc3RhcikpCisgICAgKG51bWJlcmVkLWl0ZW0gLiAoZG90IHBhcmVuKSkKKyAgICAoY29k
ZSAuIChjb2RlKSkpCisgICJNYXAgaGlnaCBsZXZlbCBub2RlIGhhbmRsZXMgdG8gdGhlaXIgYmFz
ZSBjb25zdGl0dWVudHMuCitUaGUgc3BlY2lhbCBzeW1ib2wgYGFsbCcgbWVhbnMgYWxsIGhhbmRs
ZXMuIikKKworKGRlZnZhciBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2VzCisgIChsZXQg
KCh4KSkKKyAgICAoZG9saXN0IChlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKQorICAgICAg
KGRvbGlzdCAodmFsIChjZHIgZWx0KSkKKyAgICAgICAgKHB1c2ggYCgsdmFsIC4gLChjYXIgZWx0
KSkgeCkpKQorICAgIHgpCisiSW52ZXJzZSBvZiBgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzJy4i
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy1leHBhbmQtY2FuZGlkYXRlLWhhbmRsZXMgKGhh
bmRsZXMpCisgICJFeHBhbmQgY2FuZGlkYXRlIEhBTkRMRVMgYW5kIGtlZXAgb25seSBiYXNlIGhh
bmRsZXMuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuIgorICAobGV0ICgoZXhwYW5k
ZWQgKG1ha2UtaGFzaC10YWJsZSkpCisgICAgICAgIChyZXMpKQorICAgICh1bmxlc3MgKGxpc3Rw
IGhhbmRsZXMpCisgICAgICAoc2V0cSBoYW5kbGVzIChsaXN0IGhhbmRsZXMpKSkKKyAgICAod2hl
biAoZXF1YWwgaGFuZGxlcyAnKGFsbCkpCisgICAgICAoc2V0cSBoYW5kbGVzIChtYXBjYXIgIydj
YXIgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKSkpCisgICAgKGRvbGlzdCAoZWx0IGhhbmRsZXMp
CisgICAgICAoc2V0cSBlbHQgKGFsaXN0LWdldCBlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVz
IGVsdCkpCisgICAgICAoY29uZCAoKGNvbnNwIGVsdCkKKyAgICAgICAgICAgICAoZG9saXN0IChr
IGVsdCkgKHB1dGhhc2ggayB0IGV4cGFuZGVkKSkpCisgICAgICAgICAgICAodCAocHV0aGFzaCBl
bHQgdCBleHBhbmRlZCkpKSkKKyAgICAobWFwaGFzaCAobGFtYmRhIChrIF92KSAocHVzaCBrIHJl
cykpIGV4cGFuZGVkKQorICAgIHJlcykpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdG9jcyAoJm9w
dGlvbmFsIGJlZyBlbmQpCisgICJTY2FuIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgdG9jIGVudHJp
ZXMgZnJvbSBCRUcgdG8gRU5ELgorSWYgQkVHIGlzIG5pbCwgdXNlIGBwb2ludC1taW4nLiAgSWYg
RU5EIGlzIG5pbCwgdXNlIGBwb2ludC1tYXgnLgorCitSZXR1cm4gYW4gYWxpc3Qgb2YgdGhlIGZv
cm06CisgIFxcPScoKGtleXdvcmQgKG5vZGUgYmVnIGVuZCB2YXJzKSkpCisKK1ZhcnMgYXJlIGV4
cGFuZGVkIHZpYSBgaGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lJy4KKworUmV0dXJuIHRo
ZSBsaXN0IGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlIGluIHRoZSBidWZmZXIuIgorICA7OyBO
T1RFOiBUaGlzIHNjYW5zIGFsbCBtYXRjaGluZyBub2RlcyBiZWxvdyBCRUcgd2l0aCBubyBtYXhp
bXVtIGNvdW50CisgIDs7IGV2ZW4gd2hlbiB3ZSB3YW50IG9ubHkgYSBzaW5nbGUgbmV4dCBtYXRj
aGluZyBpdGVtLiAgUGVyaGFwcworICA7OyBgdHJlZXNpdC1xdWVyeS1jYXB0dXJlJyBjb3VsZCBi
ZSBpbXByb3ZlZCB0byBhY2NlcHQgYSBtYXgtY291bnQKKyAgOzsgYXJndW1lbnQuCisgIDs7Cisg
IDs7IE1hdGNoICJtYXJrZG93bi10cy10b2M6IiwgIm1hcmtkb3duLXRzLXRvYy1hYmMxMjM6IiBi
dXQgbm90CisgIDs7ICJtYXJrZG93bi10cy10b2N4eHg6Ii4KKyAgKGxldCAoKHJlcykpCisgICAg
KGRvbGlzdCAobm9kZQorICAgICAgICAgICAgICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgJ21hcmtkb3duCisgICAgICAgICAgICAgICcoKCgoaHRtbF9ibG9jaykgQG1hcmtk
b3duLXRzLXRvYykKKyAgICAgICAgICAgICAgICAgKDptYXRjaCAiPCEtLVtbOmJsYW5rOl1dKm1h
cmtkb3duLXRzLXRvY1xcKC1bWzphbG51bTpdXStcXCkqOiIgQG1hcmtkb3duLXRzLXRvYykpKQor
ICAgICAgICAgICAgICAob3IgYmVnIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAob3IgZW5k
IChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAnbm9kZS1vbmx5KSkKKyAgICAgIChsZXQqICgo
cyAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKQorICAgICAgICAgICAgICht
YXRjaCAoc3RyaW5nLW1hdGNoICJcXChtYXJrZG93bi10cy10b2NcXCgtW1s6YWxudW06XV0rXFwp
KlxcKTouKiIgcykpCisgICAgICAgICAgICAgKGtleXdvcmQgKHdoZW4gbWF0Y2ggKG1hdGNoLXN0
cmluZyAxIHMpKSkpCisgICAgICAgIChsZXQgKCh2YXJzKSkKKyAgICAgICAgICAod2l0aC13b3Jr
LWJ1ZmZlcgorICAgICAgICAgICAgKGluc2VydCBzKQorICAgICAgICAgICAgKHNldHEgdmFycyAo
aGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lKSkpCisgICAgICAgICAgKHB1c2gKKyAgICAg
ICAgICAgYCgsa2V5d29yZAorICAgICAgICAgICAgIChub2RlIC4gLG5vZGUpCisgICAgICAgICAg
ICAgKGJlZyAuICwodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgIChlbmQg
LiAsKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgKHZhcnMgLiAsdmFycykp
CisgICAgICAgICAgIHJlcykpKSkKKyAgICAobnJldmVyc2UgcmVzKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2sgKHRvY3MpCisgICJTYW5pdHkgY2hlY2sgVE9DUyBm
b3IgcGFpcmVkIG1hcmtkb3duLXRzLXRvYzogbWFya2Rvd24tdHMtdG9jLWVuZDogbm9kZXMuCitT
aWduYWwgYW4gZXJyb3IgaWYgVE9DUyBhcmUgaW5zYW5lLgorU2VlIGBtYXJrZG93bi10cy0tdG9j
cycuIgorICAoc2VxLW1hcC1pbmRleGVkCisgICAobGFtYmRhIChlbHQgaWR4KQorICAgICAod2hl
biAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciBlbHQpKQorICAgICAgICh1bmxlc3MgKGVx
dWFsICJtYXJrZG93bi10cy10b2MtZW5kIiAoY2FyIChudGggKDErIGlkeCkgdG9jcykpKQorICAg
ICAgICAgKHVzZXItZXJyb3IKKyAgICAgICAgICAiXCJtYXJrZG93bi10cy10b2NcIiBhdCBwb3Np
dGlvbiAlZCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbWF0Y2hpbmcgXCJtYXJrZG93bi10cy10b2Mt
ZW5kXCIiCisgICAgICAgICAgKGFsaXN0LWdldCAnYmVnIGVsdCkpKSkpCisgICB0b2NzKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS10b2MtY29sbGVjdC1jYW5kaWRhdGVzICh0b2Mtc3RhcnQtbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2MtZW5kLW5v
ZGUgaGFuZGxlcyBmcm9tKQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIHRvYyBlbnRyeSBjYW5kaWRh
dGVzIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyLgorSEFORExFUyBpcyBhIGxpc3Qgb2YgYmFzZSBo
YW5kbGVzOyBzZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuCisKK1RPQy1TVEFSVC1OT0RF
IGlzIHRoZSBcIm1hcmtkb3duLXRzLXRvYy1zdGFydFwiIG5vZGUuCitUT0MtRU5ELU5PREUgaXMg
dGhlIFwibWFya2Rvd24tdHMtdG9jLWVuZFwiIG5vZGUuCisKK0lmIEZST00gaXMgdGhlIHN5bWJv
bCBgYWJvdmUnLCBzb3VyY2UgY2FuZGlkYXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YKK3RoZSBi
dWZmZXIgdW50aWwgdGhlIHRvYyBzdGFydCBub2RlLiAgSWYgYGJlbG93Jywgc291cmNlIGNhbmRp
ZGF0ZXMgZnJvbQordG9jIHN0YXJ0IG5vZGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAg
SWYgYGFsbCcsIHVzZSB0aGUgd2hvbGUKK2J1ZmZlci4KKworUmVtb3ZlIGlnbm9yZWQgY2FuZGlk
YXRlcyBjb250YWluaW5nIFwiPCEtLSBtYXJrZG93bi10cy1pZ25vcmU6IC0tPlwiLgorCitTb3J0
IHRoZSBsaXN0IGJ5IHRoZSBzdGFydGluZyBjaGFyYWN0ZXIgcG9zaXRpb25zIG9mIG5vZGVzLgor
CitUaGUgYWxpc3QgaXMgb2YgdGhlIGZvcm06CisgIFxcPScoKGhhbmRsZSAuIG5vZGUpKSIKKyAg
KGxldCAoY2FuZGlkYXRlcyBiZWcgZW5kKQorICAgIChwY2FzZSBmcm9tCisgICAgICAoJ2Fib3Zl
CisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4pKQorICAgICAgIChzZXRxIGVuZCAodHJlZXNp
dC1ub2RlLXN0YXJ0IHRvYy1zdGFydC1ub2RlKSkpCisgICAgICAoJ2JlbG93CisgICAgICAgKHNl
dHEgYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1lbmQtbm9kZSkpCisgICAgICAgKHNldHEgZW5k
IChwb2ludC1tYXgpKSkKKyAgICAgICgnYWxsCisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4p
KQorICAgICAgIChzZXRxIGVuZCAocG9pbnQtbWF4KSkpKQorCisgICAgOzsgSXQgbG9va3MgbGlr
ZSB3ZSBjYW5ub3QgZ2V0IHRoZW0gaW4gb25lIGZlbGwgc3dvb3AuCisgICAgKGRvbGlzdCAoZWx0
IGhhbmRsZXMpCisgICAgICAoc2V0cQorICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAoYXBwZW5k
CisgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgKHBjYXNlIGVsdAorICAgICAgICAgICgnaDEg
KHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChhdHhf
aGVhZGluZyAoYXR4X2gxX21hcmtlcikgKGlubGluZSkgQGgxKSkgYmVnIGVuZCkpCisgICAgICAg
ICAgKCdoMiAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgJ21hcmtkb3du
ICcoKGF0eF9oZWFkaW5nIChhdHhfaDJfbWFya2VyKSAoaW5saW5lKSBAaDIpKSBiZWcgZW5kKSkK
KyAgICAgICAgICAoJ2gzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAn
bWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oM19tYXJrZXIpIChpbmxpbmUpIEBoMykpIGJl
ZyBlbmQpKQorICAgICAgICAgICgnaDQgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICdtYXJrZG93biAnKChhdHhfaGVhZGluZyAoYXR4X2g0X21hcmtlcikgKGlubGluZSkg
QGg0KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdoNSAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisg
ICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKGF0eF9oZWFkaW5nIChhdHhfaDVfbWFya2VyKSAo
aW5saW5lKSBAaDUpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ2g2ICh0cmVlc2l0LXF1ZXJ5LWNh
cHR1cmUKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oNl9t
YXJrZXIpIChpbmxpbmUpIEBoNikpIGJlZyBlbmQpKQorICAgICAgICAgICgnc2gxICh0cmVlc2l0
LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKHNldGV4dF9oZWFk
aW5nIGhlYWRpbmdfY29udGVudDogKF8pIEBzaDEgKHNldGV4dF9oMV91bmRlcmxpbmUpKSkgYmVn
IGVuZCkpCisgICAgICAgICAgKCdzaDIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICAnbWFya2Rvd24gJygoc2V0ZXh0X2hlYWRpbmcgaGVhZGluZ19jb250ZW50OiAoXykg
QHNoMiAoc2V0ZXh0X2gyX3VuZGVybGluZSkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ21pbnVz
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygo
bGlzdF9pdGVtIChsaXN0X21hcmtlcl9taW51cykgKHBhcmFncmFwaCAoaW5saW5lKSBAbWludXMp
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdwbHVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMp
IChwYXJhZ3JhcGggKGlubGluZSkgQHBsdXMpKSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdzdGFy
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChs
aXN0X2l0ZW0gKGxpc3RfbWFya2VyX3N0YXIpIChwYXJhZ3JhcGggKGlubGluZSkgQHN0YXIpKSkg
YmVnIGVuZCkpCisgICAgICAgICAgKCdkb3QgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIChwYXJh
Z3JhcGggKGlubGluZSkgQGRvdCkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ3BhcmVuICh0cmVl
c2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9wYXJlbnRoZXNpcykgKHBhcmFncmFwaCAoaW5saW5lKSBAcGFyZW4p
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdjb2RlICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJp
bmcgKGxhbmd1YWdlKSkgQGNvZGUpKSBiZWcgZW5kKSkpKSkpCisgICAgKHNvcnQKKyAgICAgKHNl
cS1yZW1vdmUKKyAgICAgIChsYW1iZGEgKGVsdCkKKyAgICAgICAgKHN0cmluZy1tYXRjaC1wICI8
IS0tW1s6Ymxhbms6XV0qbWFya2Rvd24tdHMtaWdub3JlOltbOmJsYW5rOl1dKi0tPiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCAoY2RyIGVsdCkgdCkpKQorICAg
ICAgY2FuZGlkYXRlcykKKyAgICAgOmtleSAobGFtYmRhIChlbHQpCisgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLXN0YXJ0IChjZHIgZWx0KSkpCisgICAgIDpsZXNzcCAjJzwKKyAgICAgOmluLXBs
YWNlIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoIChub2Rl
KQorICAiUmV0dXJuIE5PREUncyBpdGVtIGRlcHRoIHJlbGF0aXZlIHRvIGl0cyBwcmVkZWNlc3Nv
cnMuCitJZiBOT0RFIGlzIG5vdCBwYXJ0IG9mIGEgbGlzdCwgcmV0dXJuIG5pbC4iCisgICAgKGxl
dCAoKGRlcHRoIG5pbCkgKG4gKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgKHdo
aWxlIG4KKyAgICAgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdCIp
CisgICAgICAgICAgKHNldHEgZGVwdGggKDErIChvciBkZXB0aCAwKSkpKQorICAgICAgICAoc2V0
cSBuICh0cmVlc2l0LW5vZGUtcGFyZW50IG4pKSkKKyAgICAgIGRlcHRoKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUgKHRleHQpCisgICJSZW1vdmUgdHJh
aWxpbmcgIyBmcm9tIFRFWFQgdW5sZXNzIHRoZXkgYXJlIGJhY2tzbGFzaCBlc2NhcGVkLgorRmly
c3QgcmVtb3ZlIEhUTUwgY29tbWVudHMuIgorICAoaWYgKHN0cmluZy1tYXRjaC1wICJbWzpibGFu
azpdXSpcXFxcKyMrW1s6Ymxhbms6XV0qXG4qXFwnIiB0ZXh0KQorICAgICAgdGV4dAorICAgIChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIltbOmJsYW5rOl1dKiMrW1s6Ymxhbms6XV0qXG4qXFwn
IiAiIiB0ZXh0KSkpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXRvYy10ZXh0LW5vcm1hbGl6ZXJz
CisgIGAoKGhlYWRpbmcgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQor
ICAgIChoMSAuIG1hcmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGgy
IC4gbWFya2Rvd24tdHMtLXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDMgLiBtYXJr
ZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQorICAgIChoNCAuIG1hcmtkb3duLXRz
LS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGg1IC4gbWFya2Rvd24tdHMtLXRvYy1h
dHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDYgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFk
ZXItbm9ybWFsaXplKSkKKyAgIk1hcCBub2RlIHR5cGUgaGFuZGxlcyB0byBmdW5jdGlvbnMgdGhh
dCBub3JtYWxpemUgaXRzIHRleHQuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emUnLgorRWFjaCBmdW5jdGlvbiBhY2NlcHRzIG9uZSBhcmd1bWVudCwgdGhlIHN0cmluZyBURVhU
LCBhbmQgcmV0dXJucyBhIHN0cmluZy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy10ZXh0
LW5vcm1hbGl6ZSAoaGFuZGxlIG5vZGUgJm9wdGlvbmFsIHRleHQpCisgICJOb3JtYWxpemUgTk9E
RSdzIFRFWFQgYWNjb3JkaW5nIHRvIGl0cyBIQU5ETEUuCitURVhUIHNob3VsZCBoYXZlIG5vIHRl
eHQgcHJvcGVydGllcy4gIElmIFRFWFQgaXMgbmlsLCB1c2UgdGhlIE5PREUncwordGV4dC4gIFRo
aXMgaXMgbm90IGFsd2F5cyBjb3JyZWN0IHNvIGl0J3MgYmVzdCB0byBwYXNzIFRFWFQgaWYgeW91
IGtub3cKK2l0IGluIHRoZSBjYWxsaW5nIGNvbnRleHQuCisKK0lmIG5vIG5vcm1hbGl6ZXIgaXMg
Zm91bmQsIHJldHVybiBURVhULgorCitPbmUgZXhhbXBsZSBub3JtYWxpemF0aW9uIGlzIGF0eF9o
ZWFkaW5nIHRleHQgdGhhdCBlbmRzIGluIHRyYWlsaW5nIGhhc2gKK3NpZ25zIHdoaWNoIGFyZSBp
bnRlbmRlZCB0byBiZSBlbGlkZWQgc28gXCJIZWFkaW5nIFRleHQgIyNcIiBpcwordHJhbnNmb3Jt
ZWQgaW50byBcIkhlYWRpbmcgVGV4dFwiLiIKKyAgKHNldHEgdGV4dCAob3IgdGV4dCAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKSkKKyAgKGlmLWxldCogKChmaXhlciAoYWxp
c3QtZ2V0IGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplcnMpKSkKKyAgICAg
IChmdW5jYWxsIGZpeGVyIHRleHQpCisgICAgdGV4dCkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVm
aW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisg
ICJJZiBlbmFibGVkLCB1cGRhdGUgYG1hcmtkb3duLXRzLW1vZGUnIHRhYmxlcyBvZiBjb250ZW50
cyBiZWZvcmUgc2F2aW5nLiIKKyAgOmluaXQtdmFsdWUgbmlsCisgIDpnbG9iYWwgbmlsCisgIDps
aWdodGVyIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyCisg
IChpZiAoZGVyaXZlZC1tb2RlLXAgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAoaWYgbWFya2Rv
d24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisgICAgICAgICAgKGFkZC1ob29rICdi
ZWZvcmUtc2F2ZS1ob29rICMnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlIG5pbCAnbG9jYWwpCisg
ICAgICAgIChyZW1vdmUtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAjJ21hcmtkb3duLXRzLXRvYy1n
ZW5lcmF0ZSAnbG9jYWwpKQorICAgIChzZXRxIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3Jl
LXNhdmUtbW9kZSBuaWwpCisgICAgKGx3YXJuICdtYXJrZG93bi10cy10b2MtdXBkYXRlLWJlZm9y
ZS1zYXZlLW1vZGUKKyAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgIk1pbm9yIG1vZGUg
dmFsaWQgb25seSBpbiBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKSkpCisKKzs7OyMjI2F1
dG9sb2FkCisoZGVmdW4gbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUgKCZvcHRpb25h
bCBiZWcgZW5kKQorICAiUmVtb3ZlIGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50
cyBib2RpZXMgYW5kIHRlbXBsYXRlcy4KK09wZXJhdGUgb24gdGhlIGFjdGl2ZSByZWdpb24gQkVH
IHRvIEVORCwgb3RoZXJ3aXNlIG9wZXJhdGUgb24gdGhlCitidWZmZXIsIHdoaWNoIG1heSBiZSBu
YXJyb3dlZC4iCisgIChpbnRlcmFjdGl2ZSAiUiIpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1u
b3QtbW9kZSAnbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUpCisgIChtYXJrZG93bi10
cy10b2MtY2xlYXIgYmVnIGVuZCAncmVtb3ZlKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBt
YXJrZG93bi10cy10b2MtY2xlYXIgKCZvcHRpb25hbCBiZWcgZW5kIHJlbW92ZSkKKyAgIkNsZWFy
IGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50cyBib2RpZXMuCitPcGVyYXRlIG9u
IHRoZSBhY3RpdmUgcmVnaW9uIEJFRyB0byBFTkQsIG90aGVyd2lzZSBvcGVyYXRlIG9uIHRoZQor
YnVmZmVyLCB3aGljaCBtYXkgYmUgbmFycm93ZWQuCitJZiBvcHRpb25hbCBSRU1PVkUgaXMgbm9u
LW5pbCwgcmVtb3ZlIHRhYmxlcyBpbmNsdWRpbmcgdGhlaXIgdGVtcGxhdGVzLiIKKyAgKGludGVy
YWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10
cy10b2MtY2xlYXIpCisgIChzZXRxIGJlZyAob3IgYmVnIChwb2ludC1taW4pKSkKKyAgKHNldHEg
ZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNzIChlcSBiZWcgZW5kKQorICAgIDs7
IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlvbnMuCisgICAgKHNldHEgYmVnIChp
ZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVnKSBiZWcpKQorICAgIChzZXRxIGVu
ZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9uIGVuZCkgZW5kKSkKKyAgICA7OyBO
T1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0byBhdm9pZCB0cmVlc2l0ZXIgY3Jh
c2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9uCisgICAgICAobGV0ICgodG9jcykK
KyAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgIChlbmQtcG9zIGVuZCkpCisg
ICAgICAgIDs7IFdlIHNjYW4gZWFjaCBwYXNzIGJlY2F1c2UgdGhlaXIgcG9zaXRpb25zIGNoYW5n
ZS4KKyAgICAgICAgKHdoaWxlIChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAg
ICAgICAgICAoc2V0cSB0b2NzIChtYXJrZG93bi10cy0tdG9jcyBiZWctcG9zIGVuZC1wb3MpKSkK
KyAgICAgICAgICAobWFya2Rvd24tdHMtLXRvY3Mtc2FuaXR5LWNoZWNrIHRvY3MpCisgICAgICAg
ICAgOzsgQWZ0ZXIgc2FuaXR5IGNoZWNraW5nLCB3ZSBrbm93IHRoZSBzZWNvbmQgZWxlbWVudCBp
cyBhCisgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAobGV0KiAoKHRvYyAobnRoIDAg
dG9jcykpCisgICAgICAgICAgICAgICAgICh0b2MtZW5kIChudGggMSB0b2NzKSkKKyAgICAgICAg
ICAgICAgICAgKHJlZy1iZWcgKGlmIHJlbW92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFsaXN0LWdldCAnYmVnIHRvYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxp
c3QtZ2V0ICdlbmQgdG9jKSkpCisgICAgICAgICAgICAgICAgIChyZWctZW5kIChpZiByZW1vdmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2JlZyB0b2MtZW5kKSkpCisg
ICAgICAgICAgICAgICAgIChyZWctc2l6ZSAoLSByZWctZW5kIHJlZy1iZWcpKSkKKyAgICAgICAg
ICAgIChkZWxldGUtcmVnaW9uIHJlZy1iZWcgcmVnLWVuZCkKKyAgICAgICAgICAgIDs7IFN0YXJ0
IHRoZSBuZXh0IHBhc3MgYWZ0ZXIgdGhpcyB0b2MtZW5kLiAgQWRqdXN0IGZvciB0aGUKKyAgICAg
ICAgICAgIDs7IGRlbGV0ZWQgcmVnaW9uLgorICAgICAgICAgICAgKHNldHEgYmVnLXBvcyAoLSAo
YWxpc3QtZ2V0ICdlbmQgdG9jLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
LXNpemUpKQorICAgICAgICAgICAgKHNldHEgZW5kLXBvcyAobWluIChwb2ludC1tYXgpICgtIGVu
ZC1wb3MgcmVnLXNpemUpKSkpKSkpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93
bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGBt
YXJrZG93bi10cy1tb2RlYCB0YWJsZSBvZiBjb250ZW50cyB0ZW1wbGF0ZSBhdCBwb2ludC4KKwor
Q0hBUiBpcyB0aGUgdGVtcGxhdGUgdHlwZSBcImJcIiBmb3IgYmFzaWMsIFwiY1wiIGZvciBjb21w
bGV0ZS4gIElmIENIQVIKK2lzIG5pbCBhbmQgdGhlIGNvbW1hbmQgaXMgcnVuIGludGVyYWN0aXZl
bHksIHByb21wdCBmb3IgYSB0ZW1wbGF0ZS4KKworVGhlIGJhc2ljIHRlbXBsYXRlIHVzZXMgYWxs
IGRlZmF1bHRzIGFuZCBpcyBsaWtlbHkgdGhlIGJlc3QgY2hvaWNlIGZvcgorbW9zdCB1c2VzLiAg
VGhlIGNvbXBsZXRlIHRlbXBsYXRlIGlsbHVzdHJhdGVzIGFsbCBwYXJhbWV0ZXJzIHNldCB0bwor
dGhlaXIgZGVmYXVsdHMgYW5kIGlzIHVzZWZ1bCBhcyBhIHN0YXJ0aW5nIHBvaW50IHRvIGN1c3Rv
bWl6ZSBhIHRhYmxlLiIKKyAgKGludGVyYWN0aXZlICJjVGVtcGxhdGUgW2JdYXNpYyBbY11vbXBs
ZXRlOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9iCisgICAgIChpbnNlcnQgIjwhLS0gbWFya2Rv
d24tdHMtdG9jOiAtLT5cbiIKKyAgICAgICAgICAgICAiPCEtLSBtYXJrZG93bi10cy10b2MtZW5k
OiAtLT5cbiIpKQorICAgICg/YworICAgICAoaW5zZXJ0ICI8IS0tIG1hcmtkb3duLXRzLXRvYzog
LSotICIKKyAgICAgICAgICAgICAibWluLWRlcHRoOiAxOyAiCisgICAgICAgICAgICAgIm1heC1k
ZXB0aDogbmlsOyAiCisgICAgICAgICAgICAgImNhbmRpZGF0ZXM6IChoZWFkaW5nKTsgIgorICAg
ICAgICAgICAgICJmcm9tOiBiZWxvdzsgIgorICAgICAgICAgICAgICJzdHlsZTogaXRlbTsgIgor
ICAgICAgICAgICAgICJpbmRlbnQ6IDE7ICIKKyAgICAgICAgICAgICAibm8tbGluazogbmlsOyAi
CisgICAgICAgICAgICAgInJlbGF0aXZlLWRlcHRoOiBuaWw7ICIKKyAgICAgICAgICAgICAiaWdu
b3JlOiBuaWw7ICIKKyAgICAgICAgICAgICAiLSotIC0tPlxuIgorICAgICAgICAgICAgICI8IS0t
IG1hcmtkb3duLXRzLXRvYy1lbmQ6IC0tPlxuIikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1
Y2ggdGVtcGxhdGUgdHlwZTogJWMiIGNoYXIpKSkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4g
bWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlICgmb3B0aW9uYWwgaW50ZXJhY3RpdmUgYmVnIGVuZCkK
KyAgIkdlbmVyYXRlIHRhYmxlcyBvZiBjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitg
bWFya2Rvd24tdHMtbW9kZScgdXNlcyBNYXJrZG93biBIVE1MIGNvbW1lbnQgZWxlbWVudHMgdG8g
aWRlbnRpZnkgdGFibGUKK29mIGNvbnRlbnRzIChha2EgdG9jKSBpbnNlcnRpb24gYm91bmRhcmll
cyBhbmQgdGhlIHBhcmFtZXRlcnMgZm9yIGVhY2gKK3RhYmxlLiAgRGVyaXZlIHRhYmxlIGNvbnRl
bnQgZnJvbSB0aGUgTWFya2Rvd24gZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQKK2J1ZmZlciB3aGlj
aCBhcmUgdXN1YWxseSBoZWFkaW5ncyBidXQgY2FuIGFsc28gYmUgbGlzdCBpdGVtcywgc2V0ZXh0
CitoZWFkZXJzLCBuYW1lZCBjb2RlIGJsb2Nrcy4KKworT3BlcmF0ZSBvbiB0aGUgYWN0aXZlIHJl
Z2lvbiBCRUcgdG8gRU5ELCBvdGhlcndpc2Ugb3BlcmF0ZSBvbiB0aGUKK2J1ZmZlciwgd2hpY2gg
bWF5IGJlIG5hcnJvd2VkLgorCitFYWNoIHRpbWUgeW91IHJ1biB0aGlzIGNvbW1hbmQsIGV4aXN0
aW5nIHRhYmxlcyBvZiBjb250ZW50cyBhcmUgY2xlYXJlZAorYW5kIHJlZnJlc2hlZCB3aXRoIG5l
dyBjb250ZW50LiAgU28gZG9uJ3QgcGxhY2UgdG9jIGVsZW1lbnRzIGFyb3VuZAoraW1wb3J0YW50
IHRleHQuCisKK1RoZSBidWZmZXIgY2FuIGhhdmUgb25lIG9yIG1vcmUgdG9jcy4gIEJ5IGRlZmF1
bHQsIHBvcHVsYXRlIGVhY2ggdG9jCit3aXRoIGVsZW1lbnRzIHRoYXQgYXBwZWFyIGluIHRoZSBi
dWZmZXIgYmVsb3cgdGhlIHRvYy4gIFRoZXJlZm9yZSwgdGhlCitlYXNpZXN0IHdheSB0byBpbnNl
cnQgYSBjb21wbGV0ZSB0YWJsZSBvZiBjb250ZW50cywgaXMgdG8gcHV0IHRoZSB0b2MKK3RlbXBs
YXRlIG5lYXIgdGhlIHRvcCBvZiB5b3VyIGJ1ZmZlci4KKworQSBiYXNpYyBlbXB0eSB0b2MgdGVt
cGxhdGUgbG9va3MgbGlrZSB0aGlzOgorCitIZWFkZXIgdGV4dCB5b3Ugd2FudCBoZXJlLgorCis8
IS0tIG1hcmtkb3duLXRzLXRvYzogLS0+CitDb250ZW50cyBpbnNlcnRlZCBiZXR3ZWVuIHRoZXNl
IGVsZW1lbnRzLgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworRm9vdGVyIHRleHQg
eW91IHdhbnQgaGVyZS4KKworVXNlIHRoZSBjb21tYW5kIGBtYXJrZG93bi10cy10b2MtaW5zZXJ0
LXRlbXBsYXRlJyB0byBpbnNlcnQgYSB0YWJsZSBvZgorY29udGVudHMgdGVtcGxhdGUuCisKK1Vz
ZSB0aGUgY29tbWFuZCBgbWFya2Rvd24tdHMtdG9jLWNsZWFyJyB0byBjbGVhciB0YWJsZSBjb250
ZW50LCBhbmQgdGhlCitjb21tYW5kIGBtYXJrZG93bi10cy10b2MtY2xlYXItYW5kLXJlbW92ZScg
dG8gYm90aCBjbGVhciBhbmQgcmVtb3ZlCit0YWJsZSBjb250ZW50IGFuZCB0ZW1wbGF0ZXMuCisK
K0J5IGRlZmF1bHQsIGEgdG9jIGluY2x1ZGVzIGhlYWRlcnMgYXQgYWxsIGxldmVscyBiZWxvdyB0
aGUgdG9jIHdoaWNoIGFyZQorcHJlc2VudGVkIGFzIGxpc3QgaXRlbXMgd2l0aCBsaW5rcy4KKwor
VG8gaWdub3JlIGEgTWFya2Rvd24gZWxlbWVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBpbmNs
dWRlZCBpbiB0aGUKK3RvYywgYWRkIGEgdG9jIGlnbm9yZSBlbGVtZW50OgorCisjIyBJZ25vcmUg
TWUgPCEtLSBtYXJrZG93bi10cy10b2MtaWdub3JlOiAtLT4KKworVGhlIHN0YXJ0aW5nIHRvYyBl
bGVtZW50IGFjY2VwdHMgcGFyYW1ldGVycyBpbiB0aGUgc3ludGF4IG9mIEVtYWNzIGZpbGUKK3Zh
cmlhYmxlcy4KKworRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgdGFibGUg
b2YgY29udGVudHMgbGltaXRlZCB0bworaGVhZGluZ3MgdHdvIGxldmVscyBkZWVwOgorCis8IS0t
IG1hcmtkb3duLXRzLXRvYzogLSotIG1heC1kZXB0aDogMjsgLSotIC0tPgorPCEtLSBtYXJrZG93
bi10cy10b2MtZW5kOiAtLT4KKworT3IgdXNlIG9ubHkgaGVhZGluZ3MgdHdvIGFuZCB0aHJlZSBs
ZXZlbHMgZGVlcC4KKworPCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSBtaW4tZGVwdGg6IDI7IG1h
eC1kZXB0aDogMzsgLSotIC0tPgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworVGhl
c2UgYXJlIHRoZSBzdXBwb3J0ZWQgcGFyYW1ldGVycyB3aGljaCBhcmUgb3B0aW9uYWwuICBUaGV5
IGVhY2ggbGlzdAordGhlaXIgZGVmYXVsdHMuCisKKyAgbWluLWRlcHRoOiAxICAgICAgICAgIDsg
YW4gaW50ZWdlcgorICBtYXgtZGVwdGg6IG5pbCAgICAgICAgOyBhbiBpbnRlZ2VyCisgIGNhbmRp
ZGF0ZXM6IChoZWFkaW5nKSA7IGEgbGlzdAorICBmcm9tOiBiZWxvdyAgICAgICAgICAgOyBhIHN5
bWJvbAorICBzdHlsZTogaXRlbSAgICAgICAgICAgOyBhIHN5bWJvbAorICBpbmRlbnQ6IDEgICAg
ICAgICAgICAgOyBhIG51bWJlcgorICBuby1saW5rOiBuaWwgICAgICAgICAgOyBhIGJvb2xlYW4K
KyAgcmVsYXRpdmUtZGVwdGg6IG5pbCAgIDsgYSBib29sZWFuCisgIGlnbm9yZTogbmlsICAgICAg
ICAgICA7IGEgYm9vbGVhbgorCitgbWluLWRlcHRoJyBhbmQgYG1heC1kZXB0aCcgYm90aCBkZWZh
dWx0IHRvIHVzaW5nIGFsbCBjYW5kaWRhdGVzIGF0CitldmVyeSBsZXZlbC4gIFVzZSBgbWluLWRl
cHRoJyB0byBpZ25vcmUgbGV2ZWwgMSBoZWFkaW5ncyBsaWtlIFwiIworSGVhZGluZ1wiLCBieSB1
c2luZyAyLiAgVXNlIGBtYXgtZGVwdGgnIHRvIGNvbnRyb2wgaG93IGRlZXAgaW50byB0aGUKK2hl
YWRpbmcgaGllcmFyY2h5IHlvdSBuZWVkIHlvdXIgdG9jIHRvIGdvLiAgVXNlIDMgdG8gc3RvcCBh
dCBsZXZlbCB0aHJlZQoraGVhZGluZ3MuCisKK0hlYWRpbmdzIGRpY3RhdGUgdGhlIGxldmVsIG9m
IHRoZWlyIGNoaWxkcmVuIGV2ZW4gaWYgaGVhZGluZ3MgYXJlCitleGNsdWRlZCBmcm9tIGNhbmRp
ZGF0ZXMuICBPdGhlciBlbGVtZW50IHR5cGVzIGluaGVyaXQgdGhlIGxldmVsIG9mCit0aGVpciBw
cmVjZWRpbmcgaGVhZGluZy4KKworYGNhbmRpZGF0ZXMnIGlzIGEgbGlzdCBhbmQgY2FuIGNvbnRh
aW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgTWFya2Rvd24KK2VsZW1lbnQgc2hvcnRjdXQgbmFtZXMu
ICBZb3UgY2FuIG1peCBoaWdoZXItbGV2ZWwgZ3JvdXBpbmcgc3ltYm9scyBhbmQKK2xvd2VyIGxl
dmVsIHN5bWJvbHMuCisKKyAgYWxsIChpbmNsdWRlcyBldmVyeXRoaW5nKQorICBoZWFkaW5nIChp
bmNsdWRlcyB0aGUgYmVsb3cpCisgICAgaDEgaDIgaDMgaDQgaDUgaDYKKyAgc2V0ZXh0IChpbmNs
dWRlcyB0aGUgYmVsb3cpCisgICAgc2gxIHNoMgorICBpdGVtIChpbmNsdWRlcyB0aGUgYmVsb3cp
CisgICAgbWludXMgcGx1cyBzdGFyCisgIG51bWJlcmVkLWl0ZW0gKGluY2x1ZGVzIHRoZSBiZWxv
dykKKyAgICBkb3QgcGFyZW4KKyAgY29kZSAobmFtZWQgY29kZSBibG9ja3MpCisKK2Bmcm9tJyBj
b250cm9scyB0aGUgZGlyZWN0aW9uIGFuZCBzY29wZSBmcm9tIHdoaWNoIGNhbmRpZGF0ZXMgYXJl
CitzZWxlY3RlZC4gIFR5cGljYWxseSwgYSB0b2MgaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBidWZmZXIgYW5kCitgZnJvbScgaXMgYGJlbG93JyB0byBjYXB0dXJlIGVudHJ5IGNhbmRp
ZGF0ZXMgYWZ0ZXIgdGhlIHRvYy4gIElmIHlvdSBzZXQKK2Bmcm9tJyB0byBgYWJvdmUnLCBjYW5k
aWRhdGVzIGFyZSBzZWxlY3RlZCBmcm9tIGFib3ZlIHRoZSB0b2MuICBVc2UKK2BhbGwnIHRvIGNh
cHR1cmUgZXZlcnkgZW50cnkgY2FuZGlkYXRlLiAgVGhpcyBpcyB1c2VmdWwgdG8gY3JlYXRlIGEK
K2NvbXBsZXRlIHRvYyBhdCB0aGUgZW5kIG9mIHlvdXIgYnVmZmVyLgorCitUaGUgYHN0eWxlJyBw
YXJhbWV0ZXIgY2FuIGJlIG5pbCwgYGl0ZW0nLCBgbnVtYmVyJyBvciBgbnVtYmVyLicuICBVbmRl
cgorbmlsLCBlbnRyaWVzIGhhdmUgbm8gZGVjb3JhdGlvbnMuICBJZiBgaXRlbScsIGVudHJpZXMg
YXJlIHByZWZpeGVkIHdpdGgKK1wiLVwiLiAgSWYgYGJ1bGxldCcsIHByZWZpeCB3aXRoIFwiKlwi
LiAgSWYgYG51bWJlcicsIG51bWVyaWMgcHJlZml4ZXMKK2FyZSBnZW5lcmF0ZWQsIGZvciBleGFt
cGxlIDEsIDEuMSwgMiwgMi4xLCAyLjEuMSwgMi4xLjIuICBVc2UgYG51bWJlci4nCit0byBhZGQg
YSBwZXJpb2QgdG8gZWFjaCBlbnRyeSdzIG51bWJlci4KKworYGluZGVudCcgaXMgYW4gaW50ZWdl
ciBiZXR3ZWVuIDAgYW5kIDEwLiAgMCBtZWFucyBub3RoaW5nIHNob3VsZCBiZQoraW5kZW50ZWQu
ICBPdGhlcndpc2UsIGVhY2ggZW50cnkgaXMgaW5kZW50ZWQgYnkgdGhlIG51bWJlciBvZiBzcGFj
ZXMgb2YKK2l0cyBNYXJrZG93biBsZXZlbCBtdWx0aXBsaWVkIGJ5IHRoaXMgdmFsdWUuICBDYW5k
aWRhdGVzIHRoYXQgaGF2ZSBubworbmF0aXZlIGxldmVsIHN1Y2ggYXMgbGlzdCBpdGVtcyBpbmhl
cml0IHRoZSBiYXNlIGluZGVudGF0aW9uIGxldmVsIG9mCitpdHMgcHJlY2VkaW5nIGhlYWRlci4g
IExpc3QgaXRlbSBoaWVyYXJjaGllcyBhbmQgY29kZSBibG9ja3MgaW5kZW50Cit1bmRlciB0aGF0
IGJhc2UuCisKK1NldCBgbm8tbGluaycgdG8gdCBpZiB5b3UgZG8gbm90IHdhbnQgeW91ciBlbnRy
aWVzIHRvIGhhdmUgaGVhZGVyIGxpbmtzLgorQnkgZGVmYXVsdCwgZWFjaCBlbnRyeSBkZXJpdmVk
IGZyb20gYSBoZWFkaW5nIGlzIHByZXNlbnRlZCBhcyBhIGxpbmsgdG8KK2l0cyBzb3VyY2UgaGVh
ZGluZy4gIE5PVEU6IFRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSBgc2V0ZXh0JywgYGl0ZW0n
LAorYG51bWJlcmVkLWl0ZW0nLCBgY29kZScgZG8gbm90IHN1cHBvcnQgbGlua3MuCisKK1VzZSBg
cmVsYXRpdmUtZGVwdGgnIHRvIGNyZWF0ZSBhIHRvYyB1bmRlcm5lYXRoIGEgaGVhZGluZywgbGlt
aXRpbmcgdGhlCit0b2MgdG8gaGVhZGluZyBkZXB0aHMgdW5kZXJuZWF0aCB0aGUgcHJlY2VkaW5n
IGhlYWRlciBhbmQgc3BlY2lmeSB0aGUKK2xldmVscyByZWxhdGl2ZSB0byB0aGF0IGhlYWRlci4g
IE1vcmUgY29uY3JldGVseSwgaWYgdGhlIHByZWNlZGluZworaGVhZGVyIGlzIGEgbGV2ZWwgMSBc
IiNcIiBoZWFkZXIsIGBtaW4tZGVwdGgnIDEgYW5kIGBtYXgtZGVwdGgnIDIgd2lsbAorYmUgaW50
ZXJwcmV0ZWQgdG8gYmUgMiBhbmQgMy4gIElmIHlvdSBkZW1vdGUgdGhlIGhlYWRlciB0byBsZXZl
bCAyCitcIiMjXCIgdGhleSB3aWxsIGJlIGludGVycHJldGVkIGFzIDMgYW5kIDQuICBUaGlzIGlz
IHVzZWZ1bCB0byBhdm9pZAorZnVzc2luZyB3aXRoIHRvYyBjb25maWd1cmF0aW9ucyB1bmRlciBo
ZWFkZXJzIHdoZW4geW91IGNoYW5nZSB0aGVpcgorbGV2ZWxzLgorCitGb3IgZXhhbXBsZToKKwor
PCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSByZWxhdGl2ZS1kZXB0aDogdDsgbWluLWRlcHRoOiAx
OyBtYXgtZGVwdGg6IDI7IC0qLSAtLT4KKzwhLS0gbWFya2Rvd24tdHMtdG9jLWVuZDogLS0+CisK
K0ZpbmFsbHksIGlmIGBpZ25vcmUnIGlzIHQsIHlvdSBjYW4ga2VlcCBhIHRvYyBlbGVtZW50IGlu
IHBsYWNlIGFuZCBza2lwCitpdC4KKworSU5URVJBQ1RJVkUgd2lsbCBiZSBub24tbmlsIGlmIHRo
aXMgY29tbWFuZCB3YXMgaW52b2tlZCBpbnRlcmFjdGl2ZWx5LgorCitTZWUgYG1hcmtkb3duLXRz
LXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUnIHRvIGNvbmZpZ3VyZSB3YXJuaW5ncyBhYm91dAor
dGFibGVzIG5vdCBiZWluZyBwcm9jZXNzZWQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4i
CisgIChpbnRlcmFjdGl2ZSAicFxuUiIpCisgIDs7IE5PVEU6IElmIHBhcmFtZXRlcnMgb3IgdGhl
aXIgZGVmYXVsdHMgY2hhbmdlLCBiZSBzdXJlIHRvIG1pcnJvcgorICA7OyB0aGVtIGluIGBtYXJr
ZG93bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlJy4KKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5v
dC1tb2RlICdtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUpCisgIChzZXRxIGJlZyAob3IgYmVnIChw
b2ludC1taW4pKSkKKyAgKHNldHEgZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNz
IChlcSBiZWcgZW5kKQorICAgIDs7IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlv
bnMuCisgICAgKHNldHEgYmVnIChpZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVn
KSBiZWcpKQorICAgIChzZXRxIGVuZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9u
IGVuZCkgZW5kKSkKKyAgICA7OyBOT1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0
byBhdm9pZCB0cmVlc2l0ZXIgY3Jhc2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9u
CisgICAgICAobGV0ICgodG9jcyAobWFya2Rvd24tdHMtLXRvY3MgYmVnIGVuZCkpKQorICAgICAg
ICAodW5sZXNzIHRvY3MKKyAgICAgICAgICAoaWYgKGFuZCBpbnRlcmFjdGl2ZQorICAgICAgICAg
ICAgICAgICAgIChlcSAnaW5zZXJ0LXRlbXBsYXRlIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13
YXJuLWlmLW5vbmUpKQorICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtdG9jLWluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAgICAgICA7OyBJZiB0aGUg
dXNlciBkaWRuJ3QgcXVpdCB0aGUgcHJvbXB0LCBhIHRlbXBsYXRlIG1heSBoYXZlCisgICAgICAg
ICAgICAgICAgOzsgYmVlbiBhZGRlZCwgc28gcmVzY2FuIHRoZSBidWZmZXIuCisgICAgICAgICAg
ICAgICAgKHNldHEgdG9jcyAobWFya2Rvd24tdHMtLXRvY3MpKSkKKyAgICAgICAgICAgICh3aGVu
IChlcSAnbm8tdGFibGVzIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUpCisg
ICAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlCisgICAgICAgICAg
ICAgICAgICAgICA6d2FybmluZworICAgICAgICAgICAgICAgICAgICAgIk5vIHRhYmxlcyBvZiBj
b250ZW50cyBmb3VuZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUg
KGN1cnJlbnQtYnVmZmVyKSkpKSkpCisgICAgICAgIChtYXJrZG93bi10cy0tdG9jcy1zYW5pdHkt
Y2hlY2sgdG9jcykKKworICAgICAgICA7OyBTdHJhdGVneSBpcyBwcm9jZXNzIG9uZSB0b2MgYXQg
YSB0aW1lIGZyb20gdGhlIHRvcCB0byB0aGUKKyAgICAgICAgOzsgYm90dG9tIG9mIHRoZSByYW5n
ZSBCRUcgRU5ELiAgU3Vic2VxdWVudCB0b2MgYW5kIGVudHJ5CisgICAgICAgIDs7IGNhbmRpZGF0
ZSBub2RlIHBvc2l0aW9ucyBjaGFuZ2UgYXMgd2UgdXBkYXRlIGVhY2ggdG9jIHRleHQgc28KKyAg
ICAgICAgOzsgd2UgaGF2ZSB0byByZXRyaWV2ZSB0aGVtIGZyZXNoIGZyb20gdGhlIGVuZCBvZiB0
aGUgbW9zdCByZWNlbnQKKyAgICAgICAgOzsgdG9jLgorICAgICAgICAobGV0ICgodG9jcykKKyAg
ICAgICAgICAgICAgKG51bS10b2NzLXByb2Nlc3NlZCAwKQorICAgICAgICAgICAgICAodG9jKQor
ICAgICAgICAgICAgICAodG9jLWVuZCkKKyAgICAgICAgICAgICAgKHRvYy1zaXplKQorICAgICAg
ICAgICAgICA7OyBUaGVzZSBhcmUgYWRqdXN0ZWQgYnkgdGhlIHNpemUgb2YgaW5zZXJ0ZWQgdGV4
dCBlYWNoIHBhc3MuCisgICAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgICAg
KGVuZC1wb3MgZW5kKQorICAgICAgICAgICAgICAoc291cmNlLWJ1ZmZlciAoY3VycmVudC1idWZm
ZXIpKSkKKyAgICAgICAgICA7OyBGaW5kIGVhY2ggIm1hcmtkb3duLXRzLXRvYyIgaW4gc3VjY2Vz
c2lvbiBzdGFydGluZyBhdCB0aGUgZW5kCisgICAgICAgICAgOzsgb2YgZWFjaCBwcmV2aW91cyBv
bmUgd2UgZmluZCB3aXRoaW4gdGhlIHJlcXVlc3RlZCByZWdpb24uCisgICAgICAgICAgKHdoaWxl
IChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHRv
Y3MgKG1hcmtkb3duLXRzLS10b2NzIGJlZy1wb3MgZW5kLXBvcykpKQorICAgICAgICAgICAgKHNl
dHEgdG9jIChjYXIgdG9jcykpCisgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAwKQorCisgICAg
ICAgICAgICAod2hlbiAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciB0b2MpKQorICAgICAg
ICAgICAgICA7OyBBZnRlciBzYW5pdHkgY2hlY2tpbmcsIHdlIGtub3cgdGhlIHNlY29uZCBlbGVt
ZW50IGlzIGEKKyAgICAgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAgICAgKHNldHEg
dG9jLWVuZCAobnRoIDEgdG9jcykpCisgICAgICAgICAgICAgIChsZXQqICgodG9jLW5vZGUgKGFs
aXN0LWdldCAnbm9kZSB0b2MpKQorICAgICAgICAgICAgICAgICAgICAgKHRvYy12YXJzIChhbGlz
dC1nZXQgJ3ZhcnMgdG9jKSkKKyAgICAgICAgICAgICAgICAgICAgICh0b2MtaWdub3JlIChhbGlz
dC1nZXQgJ2lnbm9yZSB0b2MtdmFycykpKQorICAgICAgICAgICAgICAgICh1bmxlc3MgdG9jLWln
bm9yZQorICAgICAgICAgICAgICAgICAgOzsgQnVpbGQgdGhlIHRvYyBvbmUgY2FuZGlkYXRlIGF0
IGEgdGltZSwgdHJhY2tpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGluZGVudGF0aW9uIGFuZCBj
cmVhdGluZyBsaW5rcyBpZiBuZWVkZWQuCisgICAgICAgICAgICAgICAgICAobGV0KiAoKHRvYy1l
bmQtbm9kZSAoYWxpc3QtZ2V0ICdub2RlIHRvYy1lbmQpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgIChyZWctYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1ub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVnLWVuZCAodHJlZXNpdC1ub2RlLXN0YXJ0IHRvYy1lbmQtbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1oYW5kbGVzIChtYXJrZG93bi10cy0tdG9jLWV4
cGFuZC1jYW5kaWRhdGUtaGFuZGxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG9yIChjZHItc2FmZSAoYXNzcSAnY2FuZGlkYXRlcyB0b2MtdmFycykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRpbmcpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBOb3cgYWRkIGhlYWRpbmdzIHRvIGFsd2F5cyByZXRyaWV2ZSBh
bmQgZGVyaXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbGV2ZWxzIGV2ZW4gaWYgdGhl
eSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgdG9jLgorICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWVkLWhhbmRsZXMgKGNvcHktdHJlZSB0b2MtaGFuZGxlcykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKF8gKGRvbGlzdCAoZWx0IChhbGlzdC1nZXQgJ2hlYWRpbmcgbWFya2Rvd24tdHMtLXRv
Yy1oYW5kbGVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1wdXNobmV3IGVs
dCBzZWVkLWhhbmRsZXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLWZyb20gKG9y
IChjZHItc2FmZSAoYXNzcSAnZnJvbSB0b2MtdmFycykpICdiZWxvdykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRvYy1zdHlsZSAob3IgKGNkci1zYWZlIChhc3NxICdzdHlsZSB0b2MtdmFy
cykpICdpdGVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLW5vLWxpbmsgKGFsaXN0
LWdldCAnbm8tbGluayB0b2MtdmFycykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1p
bmRlbnQgKG1pbiAxMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1heCAwIChvciAoY2RyLXNhZmUgKGFzc3EgJ2luZGVudCB0b2MtdmFycykpIDEpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRvYy1taW4tZGVwdGggKG1heCAxCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtaW4t
ZGVwdGggdG9jLXZhcnMpKSAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1tYXgt
ZGVwdGggKG1heCB0b2MtbWluLWRlcHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtYXgtZGVwdGggdG9jLXZhcnMpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3QtcG9z
aXRpdmUtZml4bnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1k
ZXB0aCAoY2RyLXNhZmUgKGFzc3EgJ3JlbGF0aXZlLWRlcHRoIHRvYy12YXJzKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRvYy1jYW5kaWRhdGVzIChtYXJrZG93bi10cy0tdG9jLWNvbGxl
Y3QtY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9jLW5vZGUgdG9jLWVuZC1ub2RlIHNlZWQtaGFuZGxlcyB0b2MtZnJvbSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1oZWFkaW5nLWRlcHRoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxKyAob3IgKHNlcS1wb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKCJhdHhfaDFfbWFya2VyIiAiYXR4X2gyX21hcmtlciIgImF0eF9oM19t
YXJrZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0eF9oNF9tYXJr
ZXIiICJhdHhfaDVfbWFya2VyIiAiYXR4X2g2X21hcmtlciIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRvYy1ub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhdHhfaGVhZGluZyIgJ2JhY2t3YXJkKSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZXF1YWwpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLTEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2x1Zy10by1w
b3MgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkcykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHBvcy10by1zbHVnCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChodCAobWFrZS1o
YXNoLXRhYmxlIDpzaXplIChoYXNoLXRhYmxlLWNvdW50IHNsdWctdG8tcG9zKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ2VxdWFs
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGhhc2ggKGxhbWJkYSAoayB2KSAo
cHV0aGFzaCB2IGsgaHQpKSBzbHVnLXRvLXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBodCkpKQorCisgICAgICAgICAgICAgICAgICAgICh3aXRoLXdvcmstYnVmZmVyCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydCAiPCEtLSBOT1RFOiBtYXJrZG93bi10cy10b2MgZ2VuZXJh
dGVkIHRleHQgc2VjdGlvbiBtYXkgYmUgb3ZlcndyaXR0ZW4uIC0tPlxuIikKKyAgICAgICAgICAg
ICAgICAgICAgICAobGV0ICgoaGFuZGxlKSAoaGFuZGxlLWNsYXNzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmRlbnQg
MCkgKGxldmVsIDEpIChsZXZlbC1wcmV2IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgSGVhZGluZyBsZXZlbCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaXRlbXMgdW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7OyBpdC4gIElmIHRoZXJlIGFyZSBubyBoZWFkaW5ncywg
aXQgd2lsbCByZW1haW4gMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV2ZWwtaGVh
ZGluZyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBmb3Igbm9uIGhl
YWRpbmdzIHVuZGVyIGhlYWRpbmdzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudW1i
ZXItc3RhY2spKQorCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBDYW5kaWRhdGVzIHNob3Vs
ZCBiZSBpbiBidWZmZXIgb3JkZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChj
YW5kaWRhdGUgdG9jLWNhbmRpZGF0ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg
KChzbHVnLXBvcykgKHRleHQpIChsaW5rLXRhcmdldCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxldmVsLWFkaiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBoYW5kbGUgKGNhciBjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlLWNsYXNzIChhbGlzdC1nZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2Vz
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBub2RlIChjZHIgY2FuZGlkYXRl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBzbHVnLXBvcyBuaWwpCisKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTdHJpcCB0cmFpbGluZyBuZXdsaW5lcy4gIEFk
ZCB0aGVtIGNvbnNpc3RlbnRseSBiZWxvdy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2V0cSB0ZXh0IChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZSBub2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlICduby1w
cm9wZXJ0eSkpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZSBu
b2RlIHR5cGUgbG9naWMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlIGhhbmRs
ZS1jbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdoZWFkaW5nCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHNlcS1wb3NpdGlvbiAnKGgxIGgyIGgz
IGg0IGg1IGg2KSBoYW5kbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZXRxIHNsdWctcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCBub2RlICJh
dHhfaGVhZGluZyIgJ2JhY2t3YXJkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBsZXZlbCAoc2V0cSBsZXZlbC1oZWFkaW5nICgxKyB4KSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgdGV4dCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCdzZXRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoeCAoc2VxLXBvc2l0aW9uICcoc2gxIHNoMikgaGFuZGxlKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbCAoMSsgeCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgbmlsKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKG9yICdpdGVtICdudW1iZXJlZC1pdGVtKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXRxIGxldmVsIGxldmVsLWhlYWRpbmcpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtYWRqIChtYXJrZG93bi10cy0tdG9jLWxp
c3QtaXRlbS1kZXB0aCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBpbmRlbnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCdjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5oZXJp
dCB0aGUgYW1iaWVudCBsZXZlbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBsZXZlbC1hZGogMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBpbmRl
bnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDs7IEZpbHRlciBkZXNpcmVkIGhhbmRsZXMgYW5kIGxldmVscy4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiAoYW5kIChtZW1xIGhhbmRsZSB0b2MtaGFuZGxlcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSBsZXZlbCAoKyB0b2MtbWluLWRl
cHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIHRvYy1yZWxhdGl2ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b2MtcmVsYXRpdmUtaGVhZGluZy1kZXB0aCAwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gbGV2ZWwgKCsgdG9jLW1h
eC1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpZiB0b2MtcmVsYXRpdmUtZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9jLXJlbGF0aXZlLWhlYWRpbmctZGVwdGggMCkp
KSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgQ3JlYXRlIHRoZSBlbnRyeSB3
aXRoIGluZGVudCwgaXRlbS9udW1iZXIgcHJlZml4LCBsaW5rLgorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBDb3JuZXIgY2FzZTogaW5pdGlhbCBsZXZlbCBoaWdoZXIgdGhhbiAx
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPiBsZXZlbCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgbGV2ZWwtcHJldiAw
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwgMSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChub3QgdG9jLW5vLWxpbmspIGxp
bmstdGFyZ2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTYW5pdGl6ZSB0
aGUgaWQgdG8gY29uZm9ybSB0byBDU1MgaWRlbnQgc3ludGF4LgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2V0cSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChmb3JtYXQgIlslc10oIyVzKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGlmLWxldCogKChzbHVnIChnZXRoYXNoIHNsdWctcG9zIHBvcy10by1zbHVn
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs
dWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5j
YWxsIG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLXRhcmdldCkpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyAoKiAoMS0gKG1h
eCBpbmRlbnQgMSkpIHRvYy1pbmRlbnQpID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBjYXNlIHRvYy1zdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgnaXRlbSAiLSAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgnYnVsbGV0ICIqICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChvciAnbnVtYmVyICdudW1iZXIuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgobGV2ZWwgKCsgbGV2ZWwgbGV2ZWwtYWRqKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChvciAobm90IG51
bWJlci1zdGFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGxldmVsIChjYWFyIG51bWJlci1zdGFjaykpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBgKCxsZXZlbCAuIDApIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChhbmQgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKDwgbGV2ZWwgKGNhYXIgbnVtYmVyLXN0YWNrKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGlsZSAo
YW5kIG51bWJlci1zdGFjaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoPCBsZXZlbCAoY2FhciBudW1iZXItc3RhY2spKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9wIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh1bmxlc3MgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggYCgsbGV2ZWwgLiAwKSBudW1iZXItc3RhY2sp
KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0Y2RyIChj
YXIgbnVtYmVyLXN0YWNrKSAoMSsgKGNkYXIgbnVtYmVyLXN0YWNrKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChzKSAobiAobGVuZ3RoIG51bWJlci1z
dGFjaykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEt
bWFwLWluZGV4ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoZWx0IGlkeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChmb3JtYXQgIiVkIiAoY2RyIGVsdCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgKDErIGlkeCkgbikg
IiIgIi4iKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmV2ZXJzZSBudW1iZXItc3RhY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb25jYXQgcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRvYy1zdHlsZSAnbnVtYmVyLikgIi4iKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgIikpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfICIiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGQgYSBoYXJkIGxpbmUgYnJlYWsuICBCYWNrc2xhc2gKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc2VlbXMgbGVzcyB3ZWxsIHN1cHBv
cnRlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByZW5kZXJl
cnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAy
ID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtcHJldiBsZXZlbCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAoYnVmZmVyLXNpemUpKQorICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJjZS1idWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIHJlZy1iZWcg
cmVnLWVuZCB0ZW1wLWJ1ZmZlcikpKSkpCisgICAgICAgICAgICAgICAgICAoc2V0cSBudW0tdG9j
cy1wcm9jZXNzZWQgKDErIG51bS10b2NzLXByb2Nlc3NlZCkpKSkpCisgICAgICAgICAgICA7OyBT
dGFydCB0aGUgbmV4dCBwYXNzIGFmdGVyIHRoaXMgdG9jLWVuZC4gIEFkanVzdCBmb3IgdGhlCisg
ICAgICAgICAgICA7OyBpbnNlcnRlZCB0ZXh0IHNpemUuCisgICAgICAgICAgICAoc2V0cSBiZWct
cG9zICgrIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKSB0b2Mtc2l6ZSkpCisgICAgICAgICAgICAo
c2V0cSBlbmQtcG9zIChtaW4gKHBvaW50LW1heCkgKCsgZW5kLXBvcyB0b2Mtc2l6ZSkpKSkKKyAg
ICAgICAgICAod2hlbiAoYW5kIChlcSBudW0tdG9jcy1wcm9jZXNzZWQgMCkKKyAgICAgICAgICAg
ICAgICAgICAgIChlcSAnbm8tYWN0aXZlLXRhYmxlcyBtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUt
d2Fybi1pZi1ub25lKSkKKyAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVy
YXRlCisgICAgICAgICAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAiTm8g
dGFibGVzIG9mIGNvbnRlbnRzIGdlbmVyYXRlZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAg
KGJ1ZmZlci1uYW1lIChjdXJyZW50LWJ1ZmZlcikpKSkpKSkpKQorCisocHJvdmlkZSAnbWFya2Rv
d24tdHMtbW9kZS14KQorOzs7IG1hcmtkb3duLXRzLW1vZGUteC5lbCBlbmRzIGhlcmUKZGlmZiAt
LWdpdCBhL2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUuZWwgYi9saXNwL3RleHRtb2Rl
cy9tYXJrZG93bi10cy1tb2RlLmVsCmluZGV4IDY1N2Q2YmM0NjZkLi4wMTU5OGEyMGY3YyAxMDA2
NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbAorKysgYi9saXNwL3Rl
eHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCkBAIC0xLDExICsxLDE0IEBACi07OzsgbWFya2Rv
d24tdHMtbW9kZS5lbCAtLS0gdHJlZSBzaXR0ZXIgc3VwcG9ydCBmb3IgTWFya2Rvd24gIC0qLSBs
ZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwgLS0tIHRyZWUg
c2l0dGVyIHN1cHBvcnQgZm9yIE1hcmtkb3duIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQog
CiA7OyBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KIAotOzsgQXV0aG9yICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRv
QGdtYWlsLmNvbT4KLTs7IE1haW50YWluZXIgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwu
anVsaWF0b0BnbWFpbC5jb20+Ci07OyBDcmVhdGVkICAgIDogQXByaWwgMjAyNAotOzsgS2V5d29y
ZHMgICA6IG1hcmtkb3duIG1kIGxhbmd1YWdlcyB0cmVlLXNpdHRlcgorOzsgQXV0aG9yICAgICAg
ICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KKzs7
ICAgICAgICAgICAgICAgICAgOiBTdMOpcGhhbmUgTWFya3MgPHNoaXBtaW50c0BnbWFpbC5jb20+
Cis7OyBNYWludGFpbmVyICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlh
dG9AZ21haWwuY29tPgorOzsgQ3JlYXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNp
b24gICAgICAgICAgOiAxLjAKKzs7IFBhY2thZ2UtUmVxdWlyZXMgOiAoKGVtYWNzICIzMS4xIikp
Cis7OyBLZXl3b3JkcyAgICAgICAgIDogbWFya2Rvd24gbWQgdGV4dCBlZGl0IGxhbmd1YWdlcyB0
cmVlLXNpdHRlcgogCiA7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTIy
LDEzOCArMjUsNzM4IEBACiA7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJ
ZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi07OzsgVHJlZS1z
aXR0ZXIgbGFuZ3VhZ2UgdmVyc2lvbnMKKzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IFRyZWUtc2l0
dGVyIExhbmd1YWdlIFZlcnNpb25zCiA7OwogOzsgbWFya2Rvd24tdHMtbW9kZSBoYXMgYmVlbiB0
ZXN0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGdyYW1tYXJzIGFuZCB2ZXJzaW9uOgogOzsgLSB0cmVl
LXNpdHRlci1tYXJrZG93bjogdjAuNC4xCiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGlu
ZTogdjAuNC4xCiA7OwotOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHRpbiBtb2RlcyB3
b3JrIHdpdGggbGF0ZXN0IGdyYW1tYXIKLTs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdy
YW1tYXIgaGFzIGEgZ29vZCBjaGFuY2UgdG8gd29yayB0b28uCi07OyBTZW5kIHVzIGEgYnVnIHJl
cG9ydCBpZiBpdCBkb2Vzbid0LgotCi07OzsgQ29tbWVudGFyeToKKzs7IFdlIHRyeSBvdXIgYmVz
dCB0byBtYWtlIGJ1aWx0LWluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1hcgorOzsgdmVy
c2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5jZSB0byB3b3Jr
LiAgU2VuZAorOzsgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCis7OworOzsgQmlkaXJl
Y3Rpb25hbCBUZXh0IENvbnNpZGVyYXRpb25zCis7OworOzsgVGV4dCB3aXRoIG1hcmt1cCBtYXkg
bmVlZCBhbiBleHRyYSBuZXdsaW5lIGJlZm9yZSBiaWRpcmVjdGlvbmFsIHRleHQKKzs7IGZvciBp
dCB0byBzaG93IGNvcnJlY3RseS4gIFRoaXMgaXMgYSBsaW1pdGF0aW9uIGluIHRoZSBFbWFjcyBk
aXNwbGF5Cis7OyBlbmdpbmUuCis7OworOzsgQ29kZSBCbG9jayBMYW5ndWFnZSBNb2RlIENvbnNp
ZGVyYXRpb25zCis7OworOzsgRmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMgYXJlIGRl
cml2ZWQgZnJvbSB0aGUgdGFibGUKKzs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJyBh
bmQgaGV1cmlzdGljcyBhZGRpbmcgIi10cy1tb2RlIiBhbmQKKzs7ICItbW9kZSIgdG8gdGhlIGxh
bmd1YWdlIG5hbWUuICBJZiB5b3VyIGxhbmd1YWdlJ3MgbW9kZSBpcyBub3QKKzs7IHByb3Blcmx5
IHJlY29nbml6ZWQsIGFkZCBpdCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycsIHdo
aWNoCis7OyBzZWUuCis7OworOzsgRWFjaCBsYW5ndWFnZSdzIG1ham9yIG1vZGUgaXMgZW5hYmxl
ZCBvbmNlIHBlciBgbWFya2Rvd24tdHMtbW9kZScKKzs7IGJ1ZmZlciBpbiBhIHRlbXBvcmFyeSBi
dWZmZXIgdG8gZXh0cmFjdCBpdHMgZGVmYXVsdCBmb250LWxvY2sgYW5kCis7OyB0cmVlLXNpdHRl
ciBzZXR0aW5ncy4gIEluIGNvbnZlbnRpb25hbCBub24tdHJlZXNpdCBjb2RlIGJsb2NrcywgdGhl
Cis7OyBtYWpvciBtb2RlIGlzIGVuYWJsZWQgZWFjaCB0aW1lIHRoZSBibG9jayBpcyBmb250aWZp
ZWQuCis7OworOzsgTk9URTogTWFqb3IgbW9kZSBob29rcyBhcmUgbm90IHJ1biBhbmQgZm9udC1s
b2NrLCB0cmVlc2l0LCBpbmRlbnQsCis7OyBjb21tZW50IHJlY29nbml0aW9uLCBldGMuIGN1c3Rv
bWl6YXRpb25zIHRoYXQgeW91IG1pZ2h0IGhhdmUgaW4geW91cgorOzsgaG9va3MgYXJlIG5vdCBh
cHBsaWVkLiAgQXMgYSByZXN1bHQsIHlvdXIgY29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBk
aWZmZXJlbnQgaW4gYG1hcmtkb3duLXRzLW1vZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbWFqb3Ig
bW9kZQorOzsgYnVmZmVycy4gIE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBl
YWNoIG1vZGUgaG9vayBhbmQKKzs7IGF2b2lkcyBwb3RlbnRpYWwgcmVjdXJzaXZlIHRyZWVzaXQg
Y2FsbGJhY2sgaXNzdWVzLgorOzsKKzs7OzsgQ29kZSBCbG9jayBDb21tYW5kcworOzsKKzs7IFNv
bWUgY29tbW9uIGNvbW1hbmRzIHdpbGwgb3BlcmF0ZSB3aXRoaW4gYSBjb2RlIGJsb2NrIGFuZCBp
biBpdHMKKzs7IG1vZGUuICBUaGVzZSBvcGVyYXRlIGluIGFuIGluZGlyZWN0IGJ1ZmZlciBhbmQg
c29tZSBjb21tYW5kcyBtYXkKKzs7IG9wZXJhdGUgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdG8gdGhl
IHNhbWUgY29tbWFuZHMgaW52b2tlZCBpbiBhIG5hdGl2ZQorOzsgbW9kZSBidWZmZXIuICBgaW5k
ZW50LWZvci10YWItY29tbWFuZCcgbWF5IGludm9rZQorOzsgYGNvbXBsZXRpb24tYXQtcG9pbnQn
IHVuZGVyIHRoZSBjb3ZlcnMgYW5kIG1heSByZXR1cm4gcmVzdWx0cyBmcm9tCis7OyB0aGUgc3Vy
cm91bmRpbmcgTWFya2Rvd24gYnVmZmVyIGluc3RlYWQgb2YgdGhlIGNvZGUgYmxvY2sncyBjb250
ZXh0LgorOzsgWW91IGNhbiBpbnZva2UgYGNvbXBsZXRpb24tYXQtcG9pbnQnIGRpcmVjdGx5IGJ5
IHVzaW5nIGl0cyBrZXkKKzs7IGJpbmRpbmcsIGBDLU0taWAuCis7OworOzs7OyBQaXBlIFRhYmxl
cworOzsKKzs7IFRoZXNlIGFyZSBhIEdpdEh1YiBGbGF2b3JlZCBNYXJrZG93biAoR0ZNKSBleHRl
bnNpb24gYW5kIGFyZSBhIGRlCis7OyBmYWN0byBzdGFuZGFyZCBnaXZlbiB0aGVpciBwb3B1bGFy
aXR5IGFuZCBpbXBsZW1lbnRhdGlvbnMgYWNyb3NzCis7OyBwcm9kdWN0cy4gIFRoZXkgbWlnaHQg
YXMgd2VsbCBiZSBmb2xkZWQgaW50byB0aGUgQ29tbW9uTWFyayBzdGFuZGFyZC4KKzs7Cis7OyBB
IHBpcGUgdGFibGUgaXMgYSByZWN0YW5nbGUgb2YgdGV4dCBzdXJyb3VuZGVkIHRvIHRoZSBlYXN0
IGFuZCB3ZXN0Cis7OyBieSBwaXBlIHN5bWJvbHMgYW5kIHdoZXJlIHBpcGVzIHNlcGFyYXRlIGNv
bHVtbnMuICBJdCBoYXMgYSBoZWFkZXIKKzs7IHJvdyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBo
ZWFkZXIgYWxpZ25tZW50IHJvdywgYm90aCBvZiB3aGljaCBtdXN0Cis7OyBjb250YWluIHRoZSBz
YW1lIG51bWJlciBvZiBjZWxscy4gIEJvZHkgcm93cyBhcmUgb3B0aW9uYWwuICBBIHRhYmxlCis7
OyBlbmRzIHdpdGggYSBibGFuayBsaW5lIG9yIGF0IHRoZSBzdGFydCBvZiBhIG5ldyBNYXJrZG93
biBibG9jaworOzsgZWxlbWVudC4KKzs7Cis7OyBUaGUgaGVhZGVyIGFsaWdubWVudCByb3cgY29s
dW1uIG11c3QgaGF2ZSBhIG1pbmltdW0gb2YgdGhyZWUgaHlwaGVucworOzsgd2hpY2ggaW5kaWNh
dGVzIGRlZmF1bHQgYWxpZ25tZW50IChpLmUuLCB3aGF0ZXZlciBhIHJlbmRlcmVyCis7OyBjaG9v
c2VzKS4gIFRvIGluZGljYXRlIGxlZnQgYWxpZ25tZW50LCBwcmVmaXggdGhlIGh5cGhlbiBzdHJp
bmcgd2l0aAorOzsgYSBjb2xvbiBsaWtlIHRoaXMgOi0tLS4gIEZvciBjZW50ZXIgYWxpZ25tZW50
LCBwcmVmaXggYW5kIHN1ZmZpeCB3aXRoCis7OyBjb2xvbnMgbGlrZSB0aGlzIDotLS06LiAgRm9y
IHJpZ2h0IGFsaWdubWVudCwgc3VmZml4IHdpdGggYSBjb2xvbgorOzsgbGlrZSB0aGlzIC0tLTou
Cis7OworOzsgRWFjaCB0YWJsZSBoZWFkZXIgb3IgYm9keSBjZWxsIGNhbiBjb250YWluIHRoZSB1
c3VhbCBNYXJrZG93biBpbmxpbmUKKzs7IHN0eWxlIGluZGljYXRvcnMuICBBIGNlbGwgY2Fubm90
IGNvbnRhaW4gYSBibG9jayBlbGVtZW50IHN1Y2ggYXMgYQorOzsgaGVhZGluZ3MsIHRoZW1hdGlj
IGJyZWFrcywgYmxvY2sgcXVvdGVzLCBmZW5jZWQgY29kZSBibG9ja3MuCis7OworOzsgVGFibGUg
Y2VsbHMgZG8gbm90IG5lZWQgdG8gYWxpZ24gdmlzdWFsbHk7IGkuZS4sIHRoZSBwaXBlIHN5bWJv
bHMgZG8KKzs7IG5vdCBuZWVkIHRvIGxpbmUgdXAgdmVydGljYWxseS4gIFRoZSB0cmVlLXNpdHRl
ciBwYXJzZXIgYW5kIHJlbmRlcmVycworOzsgZGV0ZWN0IGNlbGwgYm91bmRhcmllcyB1c2luZyBw
aXBlIHN5bWJvbHMsIG5vdCB0aGVpciByZWxhdGl2ZSBhbGlnbm1lbnQuCis7OworOzsgSWYgeW91
IHdhbnQgdG8gaW5jbHVkZSB3aGF0IGxvb2tzIGxpa2UgY29kZSwgeW91IGNhbiB1c2UgYmFja3Rp
Y2tzIHRvCis7OyB3cmFwIHN1Y2ggdGV4dCBhbGEgYHRoaXMgaXMgY29kZWAuICBUaGlzIG1vZGUg
d2lsbCBub3QgZm9udGlmeSBzdWNoCis7OyBjb2RlLgorOzsKKzs7IElmIHlvdSB3YW50IHRvIGlu
Y2x1ZGUgYSBwaXBlIHN5bWJvbCBpbiBhIGNlbGwsIGVzY2FwZSBpdCB0aHVzbHkgXHwuCis7Owor
OzsgVGVjaG5pY2FsbHksIGJvZHkgcm93cyBkbyBub3QgbmVlZCB0byBjb250YWluIHRoZSBzYW1l
IG51bWJlciBvZgorOzsgY2VsbHMgYXMgdGhlIGhlYWRlciBoYXMgY29sdW1ucyBhbmQgcm93cyBk
byBub3QgbmVlZCB0byBzaGFyZSB0aGUKKzs7IHNhbWUgbnVtYmVyIG9mIGNlbGxzIGFtb25nIHRo
ZW1zZWx2ZXMuICBOb3RlOiBNYW55IHJlbmRlcmVycyBnZXQKKzs7IGNvbmZ1c2VkIGlmIHRoZSB0
YWJsZSBpcyAicmFnZ2VkIiB3aXRoIGFuIHVuZXZlbiBudW1iZXIgb2YgY29sdW1ucworOzsgYW1v
bmcgcm93cy4gIFNvbWUgcmVuZGVyZXJzIHdpbGwgaW5zZXJ0IGVtcHR5IGNlbGxzIG9uIGEgcm93
IHRoYXQKKzs7IGNvbnRhaW5zIGZld2VyIGNlbGxzIHRoYW4gdGhlIGhlYWRlciBoYXMgY29sdW1u
cy4gIFNvbWUgZWxpZGUgY2VsbHMKKzs7IHRoYXQgZXhjZWVkIHRoZSBudW1iZXIgb2YgY29sdW1u
cyBpbiB0aGUgaGVhZGVyLgorOzsKKzs7OzsgUGlwZSBUYWJsZSBSZWNvbW1lbmRhdGlvbnMKKzs7
Cis7OyAtIEFsd2F5cyB1c2UgcGlwZSBzeW1ib2xzIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIGVh
Y2ggdGFibGUgbGluZS4KKzs7IC0gVXNlIGEgdW5pZm9ybSBudW1iZXIgb2YgY29sdW1ucyBzcGFu
bmluZyB0aGUgdGFibGUuCis7OyAtIElmIHlvdSBkZXRlY3QgYSBwYXJzaW5nIGVycm9yIHdoaWNo
IHByZXNlbnRzIGFzIGRpZmZlcmVudAorOzsgICBmb250aWZpY2F0aW9uIGFuZCB3aGljaCBpcyBv
ZnRlbiBjYXVzZWQgYnkgYW4gZW1wdHkgZmlyc3QgY2VsbCBvbiB0aGUKKzs7ICAgZmluYWwgcm93
LCB0cnkgcHV0dGluZyBzb21lIGNoYXJhY3RlcnMgaW4gdGhhdCBjZWxsLgorOzsgLSBSZW5kZXJl
cnMgb2Z0ZW4gZXhjbHVkZSBjZXJ0YWluIGVtcHR5IGNlbGxzIHN1Y2ggYXMgYW4gImVtcHR5IiBm
aW5hbAorOzsgICBjZWxsIGluIGEgdGFibGUuICBGb2xsb3cgdGhlIG5leHQgaXRlbSB0byBhdm9p
ZCB0aGlzLgorOzsgLSBJZiB5b3UgbmVlZCB0aGF0IGNlbGwgdG8gYXBwZWFyIGJsYW5rIGFuZCBh
cmUgY29udmVydGluZyB0byBIVE1MLAorOzsgICB0cnkgdXNpbmcgYSBub24tcHJpbnRpbmcgSFRN
TCBlbnRpdHksIHN1Y2ggYXMgYSBub24tYnJlYWtpbmcgc3BhY2UKKzs7ICAgIiZuYnNwOyIsIHdo
aWNoIHBhcnNlIGFzIGNvbmNyZXRlIGNoYXJhY3RlcnMgeWV0IHJlbmRlciBhcyBibGFuay4KKzs7
IC0gSFRNTCBjb21tZW50cyA8IS0tIC0tPiBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm9uLWJsYW5r
IGNoYXJhY3RlcgorOzsgICBzdHJpbmcgdGhhdCBkb2VzIG5vdCBnZXQgcmVuZGVyZWQuICBUaGVz
ZSBhcmUgY29uc2lkZXJlZCBjZWxsIHRleHQKKzs7ICAgYW5kIHdoZW4gcGxhY2VkIGF0IHRoZSBl
bmQgb2YgYSByb3csIHRoYXQgcm93J3MgbnVtYmVyIG9mIGNvbHVtbnMgaXMKKzs7ICAgaW5jcmVh
c2VkIGFuZCBtaWdodCBleGNlZWQgdGhlIG51bWJlciBvZiBoZWFkZXIgY29sdW1ucy4KKzs7IC0g
VGhlcmUgYXJlIHRyZWUtc2l0dGVyIHBhcnNlciBxdWlya3MuICBDb21tYW5kcyBzdWNoIGFzCis7
OyAgIGBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uJyBhbmQgYG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtY29sdW1uJworOzsgICBmb2xsb3cgdGhlIHBhcnNlciB0cmVlIGFuZCBjYW4gbGVh
ZCB0byB1bmV4cGVjdGVkIHJlc3VsdHMgc28gZm9sbG93Cis7OyAgIHRoZXNlIHJlY29tbWVuZGF0
aW9ucyBhbmQgdGFibGUgb3BlcmF0aW9ucyBzaG91bGQgYmUgYXMgZXhwZWN0ZWQuCis7OworOzs7
OyBUcmVlIFNpdHRlciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0
aGUgdW5kZXJseWluZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0
IGl0cyBidWlsZCB0aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0
YWxsZWQuICBUaGVyZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVs
eSBhZmZlY3QKKzs7IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQg
YXMgdGhlc2UgYnVncyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBU
aGUgTWFya2Rvd24gZ3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBj
aGlsZHJlbgorOzsgICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGgg
dGhlIGluc3BlY3RvciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0
cyBjb2RlIGJsb2NrcyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0
eXBlIDQgKGA8IScgZm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAg
YDwhRE9DVFlQRSBodG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNl
cXVlbnQKKzs7ICAgY29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBh
cyBhIHdvcmthcm91bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVy
LWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3Vw
ZXJzY3JpcHQgKGBedGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5v
dAorOzsgICBzdXBwb3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZs
YWcgZXhpc3RzIGZvcgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24g
RXh0cmEgc3ludGF4LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRl
cmVkIChudW1iZXJlZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRp
bmcKKzs7ICAgYSBgMS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3Qg
cHJvZHVjZSBhIG5lc3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0
cyBpdCBhcyBhIGZsYXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVu
dCBpdGVtJ3MgcGFyYWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRl
cmVkIChgLScsIGAqJywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9w
cm9tb3RlIG9mIG9yZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQu
Cis7OworOzsgLSBSZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1i
ZXItbGlzdCcpIG1heSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJk
IGlmIHRoZSBwYXJzZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBg
bGlzdCcgbm9kZXMsIG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBz
ZXBhcmF0ZSBsaXN0cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7
OworOzsgLSBFbXB0eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1h
eSBiZSBjbGFpbWVkIGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9m
IHRoYXQgYmxvY2ssIHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2Vw
YXJhdG9ycy4KIDs7Cis7OyAtIFBpcGUgdGFibGVzIGFyZSBpbmNvbnNpc3RlbnRseSBwYXJzZWQu
ICBXaGl0ZXNwYWNlIGlzIGNvcnJlY3RseQorOzsgICB0cmltbWVkIGF0IHRoZSBzdGFydCBvZiBh
IGNlbGwgY29udGVudCBidXQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcworOzsgICBpbmNvcnJlY3Rs
eSBpbmNsdWRlZC4gIEVtcHR5IGNlbGxzIGNhbiBjb250YWluIHVuZXZlbiAicmFnZ2VkIiByb3cK
Kzs7ICAgY29sdW1uIGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGNvbmZ1c2UgdGhlIHBhcnNlci4K
Kzs7Cis7OyAgIE1hcmtkb3duIHBpcGUgdGFibGVzIHdpdGggcGFyc2luZyBpc3N1ZXM6Cis7Owor
OzsgICB8Q29sdW1uIDF8Q29sdW1uIDJ8Q29sdW1uIDN8Cis7OyAgIHwtLS0tLS0tLXwtLS0tLS0t
LXwtLS0tLS0tLXwKKzs7ICAgfCAgICAgICAgfCAgICAgICAgfCAgICAgICAgfAorOzsgICB8ICAg
ICAgICB8ICAgICAgICB8ICAgICAgICB8IDwtLSBwYXJzZSBlcnJvcgorOzsKKzs7ICAgfENvbHVt
biAxfENvbHVtbiAyfENvbHVtbiAzfAorOzsgICB8LS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS18
Cis7OyAgIHwgICAgICAgIHwgICAgICAgIHwgICAgICAgIHwKKzs7ICAgfCB4eHggICAgfCAgICAg
ICAgfCAgICAgICAgfCA8LS0gcGFyc2VkIGNvcnJlY3RseQorOzsKKzs7ICAgfENvbHVtbiAxfENv
bHVtbiAyfCA8LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgfC0tLS0tLS0tfC0tLS0tLS0tfCA8
LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgICAgICAgICAgfCAgICAgICAgfCA8LS0gMSBjb2x1
bW4gaW5jb3JyZWN0Cis7OyAgICAgICAgICAgIHwgICAgICAgIHwgPC0tIHBhcnNlIGVycm9yCis7
OyAgIHwgICAgICAgIHwgICAgICAgIHwgPC0tIG5vdCBhIHJvdyBhZnRlciB0aGUgZXJyb3IsIGFi
b3ZlCis7OworOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFy
cy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjQxPgorOzsgICAgICAgPGh0dHBzOi8vZ2l0
aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMv
MjQyPgogCiA7OzsgQ29kZToKIAogKHJlcXVpcmUgJ3RyZWVzaXQpCiAocmVxdWlyZSAnc3Vici14
KQotKHJlcXVpcmUgJ291dGxpbmUpCiAocmVxdWlyZSAnc2VxKQorKHJlcXVpcmUgJ291dGxpbmUp
CisocmVxdWlyZSAnZ290by1hZGRyKQorKHJlcXVpcmUgJ3hyZWYpCisocmVxdWlyZSAnaWNvbnMp
CiAKLSh0cmVlc2l0LWRlY2xhcmUtdW5hdmFpbGFibGUtZnVuY3Rpb25zKQotCi0oYWRkLXRvLWxp
c3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duCi0gICAiaHR0
cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3du
IgotICAgOmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIK
LSAgIDpzb3VyY2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi9zcmMiKQotIHQpCi0oYWRkLXRv
LWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duLWlubGlu
ZQotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRl
ci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4
YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFya2Rvd24taW5saW5lL3Ny
YyIpCi0gdCkKKzs7OyBDdXN0b21pemF0aW9uczoKIAotOzs7IEhlbHBlciBmdW5jdGlvbnMKLQot
KGRlZnZhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgJygoImMrKyIg
LiBjcHApCi0gICAgKCJjIyIgLiBjLXNoYXJwKQotICAgICgic2giIC4gYmFzaCkpCi0gICJBbGlz
dCBtYXBwaW5nIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbmFtZXMgdG8gdHJlZS1zaXR0ZXIgbGFuZ3Vh
Z2VzLgotCi1LZXlzIHNob3VsZCBiZSBzdHJpbmdzLCBhbmQgdmFsdWVzIHNob3VsZCBiZSBsYW5n
dWFnZSBzeW1ib2xzLgotCi1Gb3IgZXhhbXBsZSwgXCJjKytcIiBpbgotCi0gICAgYGBgYysrCi0g
ICAgaW50IG1haW4oKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBgYGAKLQotbWFw
cyB0byB0cmVlLXNpdHRlciBsYW5ndWFnZSBgY3BwJy4iKQotCi0oZGVmdmFyIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwCi0gICcoKGJhc2ggLiBiYXNoLXRzLW1vZGUpCi0g
ICAgKGMgLiBjLXRzLW1vZGUpCi0gICAgKGMtc2hhcnAgLiBjc2hhcnAtdHMtbW9kZSkKLSAgICAo
Y21ha2UgLiBjbWFrZS10cy1tb2RlKQotICAgIChjcHAgLiBjKystdHMtbW9kZSkKLSAgICAoY3Nz
IC4gY3NzLXRzLW1vZGUpCi0gICAgKGRvY2tlcmZpbGUgLiBkb2NrZXJmaWxlLXRzLW1vZGUpCi0g
ICAgKGVsaXhpciAuIGVsaXhpci10cy1tb2RlKQotICAgIChnbyAuIGdvLXRzLW1vZGUpCi0gICAg
KGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCi0gICAgKGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkK
LSAgICAoaGVleCAuIGhlZXgtdHMtbW9kZSkKLSAgICAoaHRtbCAuIGh0bWwtdHMtbW9kZSkKLSAg
ICAoamF2YSAuIGphdmEtdHMtbW9kZSkKLSAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCi0g
ICAgKGpzb24gLiBqc29uLXRzLW1vZGUpCi0gICAgKGx1YSAuIGx1YS10cy1tb2RlKQotICAgIChw
aHAgLiBwaHAtdHMtbW9kZSkKLSAgICAocHl0aG9uIC4gcHl0aG9uLXRzLW1vZGUpCi0gICAgKHJ1
YnkgLiBydWJ5LXRzLW1vZGUpCi0gICAgKHJ1c3QgLiBydXN0LXRzLW1vZGUpCi0gICAgKHRvbWwg
LiB0b21sLXRzLW1vZGUpCi0gICAgKHRzeCAuIHRzeC10cy1tb2RlKQotICAgICh0eXBlc2NyaXB0
IC4gdHlwZXNjcmlwdC10cy1tb2RlKQotICAgICh5YW1sIC4geWFtbC10cy1tb2RlKSkKLSAgIkFu
IGFsaXN0IG9mIHN1cHBvcnRlZCBjb2RlIGJsb2NrIGxhbmd1YWdlcyBhbmQgdGhlaXIgbWFqb3Ig
bW9kZS4iKQorKGRlZmdyb3VwIG1hcmtkb3duLXRzIG5pbAorICAiTWFqb3IgbW9kZSBmb3Igdmll
d2luZyBhbmQgZWRpdGluZyBNYXJrZG93biBidWZmZXJzLiIKKyAgOnByZWZpeCAibWFya2Rvd24t
dHMtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5nCisgIDp2ZXJzaW9uICIzMS4x
IikKIAogKGRlZmN1c3RvbSBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCBuaWwKICAgIk5vbi1uaWwg
bWVhbnMgaGlkZSBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGlzIGJ1ZmZlci4iCiAg
IDp0eXBlICdib29sZWFuCisgIDpsb2NhbCB0CiAgIDpzYWZlICMnYm9vbGVhbnAKLSAgOmdyb3Vw
ICdtYXJrZG93bi10cykKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZWxsaXBzaXMgbmlsCisgICJUaGUgZWxsaXBz
aXMgdG8gdXNlIGluIGZvbGRlZCBoZWFkaW5ncy4KK1doZW4gbmlsLCB1c2UgdGhlIHN0YW5kYXJk
IHRocmVlIGRvdHMuICBXaGVuIGEgbm9uLWVtcHR5IHN0cmluZywKK3VzZSB0aGF0IHN0cmluZyBp
bnN0ZWFkLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJEZWZhdWx0ICguLi4pIiBu
aWwpCisgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiU3RyaW5nIiA6dmFsdWUgIiDijIQi
KSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZj
dXN0b20gbWFya2Rvd24tdHMtbWVudS1iYXItc2hvdyB0CisgICJOb24tbmlsIG1lYW5zIHNob3cg
dGhlIE1hcmtkb3duIG1lbnUgaW4gdGhlIG1lbnUgYmFyLiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAg
OnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20g
bWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nICdzaG93LWFsbAorICAiRGVmYXVsdCBoZWFkaW5n
IGZvbGRpbmcgbGV2ZWwuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFn
ICJTaG93IGV2ZXJ5dGhpbmciIHNob3ctYWxsKQorICAgICAgICAgIChjb25zdCA6dGFnICJGb2xk
IGV2ZXJ5dGhpbmcsIHNob3dpbmcgdG9wLWxldmVsIGhlYWRpbmdzIiBmb2xkLWFsbCkKKyAgICAg
ICAgICAoY29uc3QgOnRhZyAiRm9sZCBoZWFkaW5ncywgc2hvd2luZyBhbGwgaGVhZGluZyBsZXZl
bHMiIGZvbGQtaGVhZGluZ3MpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lv
biAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIG5pbAorICAi
Tm9uLW5pbCBtZWFucyBkaXNwbGF5IGlubGluZSBpbWFnZXMgYmVsb3cgaW1hZ2UgbGlua3MuIgor
ICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdwor
ICAiTWF4aW11bSB3aWR0aCBvZiBpbmxpbmUgaW1hZ2VzIGluIHBpeGVscy4KK1doZW4gYHdpbmRv
dycsIHVzZSB0aGUgd2luZG93IGJvZHkgd2lkdGguICBXaGVuIGEgbnVtYmVyLCB1c2UKK3RoYXQg
YXMgdGhlIG1heGltdW0gcGl4ZWwgd2lkdGguIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0
YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAgICAobmF0bnVtIDp0YWcg
IlBpeGVsIHdpZHRoIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQogCi07OzsgRmFjZXMKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUt
aW5saW5lLWltYWdlcyBuaWwKKyAgIkhvdyB0byBkaXNwbGF5IHJlbW90ZSBpbmxpbmUgaW1hZ2Vz
LgorV2hlbiBuaWwsIGRvIG5vdCBkaXNwbGF5IHJlbW90ZSBpbWFnZXMuICBXaGVuIGBkb3dubG9h
ZCcsIGZldGNoIHRoZQoraW1hZ2UgaW50byBhIHRlbXBvcmFyeSBidWZmZXIgYW5kIGRpc3BsYXkg
aXQuCisKK1JlbW90ZSBpbWFnZXMgYXJlIHNraXBwZWQgYnkgZGVmYXVsdCBmb3Igc2VjdXJpdHku
IgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiU2tpcCByZW1vdGUgaW1hZ2VzIiBuaWwp
CisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEb3dubG9hZCByZW1vdGUgaW1hZ2VzIiBk
b3dubG9hZCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3ggJygi4piRIiAuICIrIikK
KyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSBjaGVja2VkIHRhc2sg
bGlzdCBtYXJrZXIuCitWYWx1ZSBmb3JtczoKKyAtIGNvbnMgKFBSRUZFUlJFRCAuIEZBTExCQUNL
KTogUFJFRkVSUkVEIGlzIHVzZWQgaWYgaXRzIGZpcnN0IGNoYXJhY3RlcgorICAgcGFzc2VzIGBj
aGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0suCisgLSBzeW1ib2wgYGljb24n
OiBkZWZlciB0byB0aGUgaWNvbnMuZWwgaWNvbgorICAgYG1hcmtkb3duLXRzLWNoZWNrZWQtY2hl
Y2tib3gtaWNvbic7IGN1c3RvbWl6ZSB2aWEKKyAgIFxcW2N1c3RvbWl6ZS1pY29uXS4KKyAtIG5p
bDogZGlzcGxheSB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zIChzdHJp
bmcgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu
ZyA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAi
VXNlIGljb25zLmVsIGljb24iIGljb24pCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJE
aXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZpbmUtaWNvbiBtYXJrZG93bi10cy1jaGVja2VkLWNo
ZWNrYm94LWljb24gbmlsCisgICcoKGltYWdlICJjaGVja2VkLnN2ZyIgOmhlaWdodCBsaW5lIDph
c2NlbnQgY2VudGVyKQorICAgIChzeW1ib2wgIuKYkSIpCisgICAgKHRleHQgIisiKSkKKyAgIklj
b24gdXNlZCBmb3IgYSBjaGVja2VkIHRhc2sgbGlzdCBtYXJrZXIgd2hlbiBtYXJrdXAgaXMgaGlk
ZGVuLgorQ29uc3VsdGVkIG9ubHkgd2hlbiBgbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCcg
aXMgdGhlIHN5bWJvbAorYGljb24nLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9t
IG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCAnKCLimJAiIC4gIi0iKQorICAiSWYgbWFy
a3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1h
cmtlci4KK1ZhbHVlIGZvcm1zOgorIC0gY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVG
RVJSRUQgaXMgdXNlZCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyCisgICBwYXNzZXMgYGNoYXItZGlz
cGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSy4KKyAtIHN5bWJvbCBgaWNvbic6IGRlZmVy
IHRvIHRoZSBpY29ucy5lbCBpY29uCisgICBgbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94
LWljb24nOyBjdXN0b21pemUgdmlhCisgICBcXFtjdXN0b21pemUtaWNvbl0uCisgLSBuaWw6IGRp
c3BsYXkgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0
YWcgIlByZWZlcnJlZCAoR1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRh
ZyAiRmFsbGJhY2sgKFRUWSkiKSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIlVzZSBp
Y29ucy5lbCBpY29uIiBpY29uKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12
ZXJzaW9uICIxLjAiKQorCisoZGVmaW5lLWljb24gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNr
Ym94LWljb24gbmlsCisgICcoKGltYWdlICJ1bmNoZWNrZWQuc3ZnIiA6aGVpZ2h0IGxpbmUgOmFz
Y2VudCBjZW50ZXIpCisgICAgKHN5bWJvbCAi4piQIikKKyAgICAodGV4dCAiLSIpKQorICAiSWNv
biB1c2VkIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlciB3aGVuIG1hcmt1cCBpcyBo
aWRkZW4uCitDb25zdWx0ZWQgb25seSB3aGVuIGBtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2ti
b3gnIGlzIHRoZSBzeW1ib2wKK2BpY29uJy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1
c3RvbSBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIgJyg/4pSAIC4gPy0pCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgY2hhcmFjdGVyIGZvciB0aGVtYXRp
YyBicmVha3MuCitJdCBpcyByZXBlYXRlZCB0byBmaWxsIHRoZSB3aW5kb3cgd2lkdGguCitUaGUg
dmFsdWUgaXMgYSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZFUlJFRCBpcyB1c2Vk
IGlmIGl0IHBhc3NlcworYGNoYXItZGlzcGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSyBp
cyB1c2VkLgorbmlsIGRpc3BsYXlzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5cGUgJyhjaG9pY2Ug
KGNvbnMgKGNoYXJhY3RlciA6dGFnICJQcmVmZXJyZWQgKEdVSSkiKQorICAgICAgICAgICAgICAg
ICAgICAgICAoY2hhcmFjdGVyIDp0YWcgIkZhbGxiYWNrIChUVFkpIikpCisgICAgICAgICAgICAg
ICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNp
b24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCAnKD/CtiAuID98KQorICAiSWYgbWFya3Vw
IGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoYXJhY3RlciBmb3IgYSBiYWNrc2xhc2ggaGFyZCBs
aW5lIGJyZWFrLgorVGhlIHZhbHVlIGlzIGEgY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQ
UkVGRVJSRUQgaXMgdXNlZCBpZiBpdCBwYXNzZXMKK2BjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhl
cndpc2UgRkFMTEJBQ0sgaXMgdXNlZC4KK25pbCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0
eXBlICcoY2hvaWNlIChjb25zIChjaGFyYWN0ZXIgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGNoYXJhY3RlciA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5p
bCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVm
Y3VzdG9tIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZQorICAobGFtYmRhIChuKQor
ICAgIChsZXQqICgodmFsIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlCisgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpKQorICAg
ICAgICAgICAoY2ggKGlmIChjaGFyYWN0ZXJwIHZhbCkgdmFsID98KSkpCisgICAgICAobWFrZS1z
dHJpbmcgbiBjaCkpKQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBh
IHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsuCitUaGUgdmFsdWUgY2FuIGJlOgorLSBh
IGNoYXJhY3RlciBvciBzdHJpbmc6IHNob3duIG9uY2UgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFp
bGluZyBzcGFjZXMsCisgIHdpdGggbm8gcmVwZXRpdGlvbiAodGhlIHJlbWFpbmluZyBzcGFjZXMg
c3RheSBpbnZpc2libGUpOworLSBhIGZ1bmN0aW9uOiBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQs
IHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgc3BhY2VzLAorICBhbmQgbXVzdCByZXR1cm4gdGhlIHN0
cmluZyB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBydW47CistIG5pbDoga2VlcCB0aGUgcmF3
IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRhZyAiRGlzcGxheSBzcGVj
aWZpZWQgY2hhcmFjdGVyIChubyByZXBldGl0aW9uKSIpCisgICAgICAgICAgICAgICAgIChzdHJp
bmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIChubyByZXBldGl0aW9uKSIpCisgICAg
ICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlvbiBmcm9tIGNvdW50IHRvIGRpc3Bs
YXkgc3RyaW5nIikKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2lu
YWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2
ZWx5IHQKKyAgIk5vbi1uaWwgbWVhbnMgZm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnRzIHVzaW5n
IHRoZSBsYW5ndWFnZSdzIG1vZGUuCitXaGVuIG5vbi1uaWwsIGZlbmNlZCBjb2RlIGJsb2NrcyBh
cmUgaGlnaGxpZ2h0ZWQgd2l0aCBzeW50YXggb2YgdGhlCitlbWJlZGRlZCBsYW5ndWFnZSAodmlh
IHRyZWUtc2l0dGVyIGZvciBsYW5ndWFnZXMgd2l0aCBhIHRyZWUtc2l0dGVyCittb2RlLCBvciB2
aWEgY29udmVudGlvbmFsIGZvbnQtbG9jayBmb3IgdGhlIHJlc3QpLiAgV2hlbiBuaWwsIGNvZGUK
K2Jsb2NrcyBrZWVwIG9ubHkgdGhlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBiYWNrZ3JvdW5k
IGZhY2UuICBUb2dnbGluZworZm9yIHRoZSB0cy1lbWJlZGRlZCBwYXRoIHRha2VzIGVmZmVjdCBh
ZnRlciByZXN0YXJ0aW5nCitgbWFya2Rvd24tdHMtbW9kZScgaW4gdGhlIGJ1ZmZlci4iCisgIDp0
eXBlICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAi
KQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWVuYWJsZS1jb2RlLWJsb2NrLWNvbnRleHQtbW9k
ZSB0CisgICJOb24tbmlsIGF1dG9tYXRpY2FsbHkgZW5hYmxlcyBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1jb250ZXh0LW1vZGUnLgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIGZlbmNl
ZCBjb2RlIGJsb2NrLCB0aGlzIHJ1bnMKK2BpbmRlbnQtZm9yLXRhYi1jb21tYW5kJywgYG5ld2xp
bmUnLCBldC5hbC4sIGluIHRoZSBtb2RlIG9mIHRoZSBjb2RlCitibG9jay4iCisgIDp0eXBlICdi
b29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLWxpZ2h0ZXIg
IiBbY29kZV0iCisgICJNaW5vciBtb2RlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQt
bW9kZScgbGlnaHRlciBzdHJpbmcuCitTZXQgdG8gbmlsIHRvIGRpc2FibGUgdGhlIGxpZ2h0ZXIu
IgorICA6dHlwZSAnc3RyaW5nCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9u
ICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWluaGliaXQtY29kZS1ibG9jay1tb2Rl
LXdhcm5pbmdzIHQKKyAgIklmIG5vbi1uaWwsIGluaGliaXQgY29kZS1ibG9jayBtYWpvci1tb2Rl
IG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KK1NvbWUgZmVuY2VkIGNvZGUtYmxvY2sgbWFqb3IgbW9k
ZXMgcHJvZHVjZSBtZXNzYWdlcyBvciB3YXJuaW5ncyB3aGljaAoraGF2ZSBsaXR0bGUgcmVsZXZh
bmNlIHRvIE1hcmtkb3duIGJ1ZmZlcnMuICBVc2UgdGhpcyBvcHRpb24gdG8gaW5oaWJpdAordGhl
bS4gIE1ham9yIG1vZGVzIG1heSBiZSBlbmFibGVkIGZvciBmb250aWZpY2F0aW9uIG9yIGVkaXRp
bmcgaW4gdGhlCittb2RlJ3MgY29udGV4dC4iCisgIDp0eXBlICdib29sZWFuCisgIDp2ZXJzaW9u
ICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmdmFyIHdhcm5pbmctbWlu
aW11bS1sZXZlbCkKKworKGRlZm1hY3JvIG1hcmtkb3duLXRzLS1pbmhpYml0LW1lc3NhZ2VzLWFu
ZC13YXJuaW5ncyAodmFyICZyZXN0IGJvZHkpCisgICJFeGVjdXRlIEJPRFkgd2l0aCBtZXNzYWdl
cyBhbmQgd2FybmluZ3MgaW5oaWJpdGVkLgorVkFSIGlzIGEgdmFyaWFibGUncyBzeW1ib2w7IGUu
Zy4sCitcXD0nbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MuICBJ
ZiB0aGUgc3ltYm9sJ3MgdmFsdWUKK2lzIG5vbi1uaWwsIGRvIHdoYXQgaXQgc2F5cyBvbiB0aGUg
dGluLgorSW5oaWJpdCBtZXNzYWdlcyBpbiB0aGUgZWNobyBhcmVhLgorSW5oaWJpdCBtZXNzYWdl
cyBpbiB0aGUgbG9nLgorSW5oaWJpdCB3YXJuaW5ncyB3aXRoIGxldmVsIDwgOmVycm9yLiIKKyAg
KGRlY2xhcmUgKGluZGVudCBkZWZ1bikpCisgIGAobGV0KiAoKHZhbCAoc3ltYm9sLXZhbHVlICx2
YXIpKQorICAgICAgICAgIChpbmhpYml0LW1lc3NhZ2UgdmFsKQorICAgICAgICAgOzsgQWxzbyBp
bmhpYml0IGxvZ2dpbmcgdG8gKk1lc3NhZ2VzKgorICAgICAgICAgKG1lc3NhZ2UtbG9nLW1heCAo
aWYgdmFsIG5pbCBtZXNzYWdlLWxvZy1tYXgpKQorICAgICAgICAgKHdhcm5pbmctbWluaW11bS1s
ZXZlbAorICAgICAgICAgIChpZiB2YWwgOmVycm9yIHdhcm5pbmctbWluaW11bS1sZXZlbCkpKQor
ICAgICAocHJvZ24gLEBib2R5KSkpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1j
b2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9kZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMg
Y29kZSBibG9ja3MuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAi
VGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisgICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRh
bCBtb2RlIiBmdW5kYW1lbnRhbC1tb2RlKQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIg
bW9kZSBzeW1ib2wiCisgICAgICAgICAgICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdp
ZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChl
cSAnc3ltYm9sICh0eXBlLW9mIHZhbCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJyb3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkKSkpKSkKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMt
dGFibGUtZGVmYXVsdC1jb2x1bW4td2lkdGggNQorICAiQ29sdW1uIHdpZHRoIGZvciBuZXcgY29s
dW1ucy4KK1lvdSBtYXkgbWFrZSB0aGlzIHdpZGVyLCBidXQgc21hbGxlciB0aGFuIDUgaXMgbm90
IHJlY29tbWVuZGVkLiIKKyAgOnR5cGUgJ2ludGVnZXIKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpw
YWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZW5hYmxlLXRh
YmxlLW1vZGUgdAorICAiTm9uLW5pbCBhdXRvbWF0aWNhbGx5IGVuYWJsZXMgYG1hcmtkb3duLXRz
LXRhYmxlLW1vZGUnLgorSWYgbm9uLW5pbCwgZW5hYmxlIGBtYXJrZG93bi10cy10YWJsZS1tb2Rl
JyBpZiBgcG9pbnQnIGlzIGluIGEgTWFya2Rvd24KK3RhYmxlLiIKKyAgOnR5cGUgJ2Jvb2xlYW4K
KyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0
b20gbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiAnKGNlbGwtbmF2aWdhdGlvbiB0cmFuc3Bv
c2UpCisgICJBdXRvbWF0aWNhbGx5IGFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBkdXJpbmcgdGhl
c2Ugb3BlcmF0aW9ucy4KK0lmIHQsIHRyaWdnZXIgb24gYWxsIHN1cHBvcnRlZCBvcGVyYXRpb25z
LgorSWYgbmlsLCBkbyBub3QgYXV0byBhbGlnbi4KK090aGVyd2lzZSwgaXQgaXMgYSBsaXN0IG9m
IHN5bWJvbHMgcmVwcmVzZW50aW5nIHRhYmxlIG9wZXJhdGlvbnMuIgorICA6dHlwZSAnKGNob2lj
ZQorICAgICAgICAgIChjb25zdCA6dGFnICJEbyBub3QgYXV0b21hdGljYWxseSBhbGlnbiIgbmls
KQorICAgICAgICAgIChjb25zdCA6dGFnICJBbHdheXMgYXV0b21hdGljYWxseSBhbGlnbiIgdCkK
KyAgICAgICAgICAoc2V0CisgICAgICAgICAgIChjb25zdCA6dGFnICJDZWxsIG5hdmlnYXRpb24i
IGNlbGwtbmF2aWdhdGlvbikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIlRyYW5zcG9zZSIgdHJh
bnNwb3NlKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWZlYXR1cmVzICcoanVzdGlmeS1j
ZWxscykKKyAgIlVzZSB0aGVzZSBvcHRpb25hbCBmZWF0dXJlcyB3aGVuIGFsaWduaW5nIGEgdGFi
bGUuCitBbGlnbmluZyBhIHRhYmxlIGFsaWducyBlYWNoIGNvbHVtbiB0byB0aGUgd2lkdGggb2Yg
aXRzIHdpZGVzdCBjZWxsLiAgSXQKK2NhbiBhbHNvIGp1c3RpZnkgZWFjaCBjZWxsIGFjY29yZGlu
ZyB0byB0aGUgdGFibGUncyBkZWxpbWl0ZXIgbGluZSBsZWZ0LAorY2VudGVyLCBvciByaWdodC1o
YW5kIGp1c3RpZmljYXRpb24gcnVsZXMuCisKK0N1c3RvbWl6aW5nIHRoaXMgdXNlciBvcHRpb24g
aXMgbW9zdCB1c2VmdWwgd2hlbiB0aGUgdXNlciBvcHRpb24KK2BtYXJrZG93bi10cy10YWJsZS1h
dXRvLWFsaWduJyBpcyBlbmFibGVkIGFuZCB0byBhdm9pZCBoYXZpbmcgdG8gdXNlIGEKK3ByZWZp
eCBhcmd1bWVudCBiZWZvcmUgZXZlcnkgYXV0by1hbGlnbm1lbnQgb3BlcmF0aW9uLgorCitJZiB0
LCBlbmFibGUgYWxsIG9wdGlvbmFsIGFsaWdubWVudCBvcGVyYXRpb25zLgorSWYgbmlsLCBvcGVy
YXRpb25zIGFyZSBlbmFibGVkIGJleW9uZCBiYXNpYyBjb2x1bW4gYWxpZ25tZW50LgorT3RoZXJ3
aXNlLCBpdCBpcyBhIGxpc3Qgb2Ygc3ltYm9scy4iCisgIDp0eXBlICcoY2hvaWNlCisgICAgICAg
ICAgKGNvbnN0IDp0YWcgIk5vIG9wdGlvbmFsIGZlYXR1cmVzIiBuaWwpCisgICAgICAgICAgKGNv
bnN0IDp0YWcgIkFsbCBvcHRpb25hbCBmZWF0dXJlcyIgdCkKKyAgICAgICAgICAoc2V0CisgICAg
ICAgICAgIChjb25zdCA6dGFnICJKdXN0aWZ5IGNlbGxzIiBqdXN0aWZ5LWNlbGxzKSkpCisgIDp2
ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlciAiIFt0YWJsZV0iCisgICJNaW5vciBtb2Rl
IGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBsaWdodGVyIHN0cmluZy4KK1NldCB0byBuaWwg
dG8gZGlzYWJsZSB0aGUgbGlnaHRlci4iCisgIDp0eXBlICdzdHJpbmcKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKzs7OyBGYWNlczoKIAogKGRlZmdyb3Vw
IG1hcmtkb3duLXRzLWZhY2VzIG5pbAotICAiRmFjZXMgdXNlZCBpbiBNYXJrZG93biBUUyBNb2Rl
LiIKKyAgIkZhY2VzIHVzZWQgYnkgTWFya2Rvd24tVFMuIgogICA6Z3JvdXAgJ21hcmtkb3duLXRz
LWZhY2VzCiAgIDpncm91cCAnZmFjZXMpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWRlbGltaXRl
ciAnKCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKLSAgIkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJr
ZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgdGhlICMgYmVmb3JlIE1hcmtkb3duIGhlYWRp
bmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5n
LTEgJygodCAoOmluaGVyaXQgb3V0bGluZS0xKSkpCi0gICJGYWNlIGZvciBmaXJzdCBsZXZlbCBN
YXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rvd24gaGVh
ZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLXNldGV4
dC1oZWFkaW5nICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWhlYWRpbmctMSkpKQotICAiRmFj
ZSBmb3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1bmRlcmxpbmVkIGJ5ID09
PSBvciAtLS0pLiIpCisgICJGYWNlIGZvciBzZXRleHQgTWFya2Rvd24gaGVhZGluZ3MgKGhlYWRp
bmdzIHVuZGVybGluZWQgYnkgPT09IG9yIC0tLSkuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChk
ZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctMiAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTIpKSkK
LSAgIkZhY2UgZm9yIHNlY29uZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBm
b3Igc2Vjb25kIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQog
CiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTMgJygodCAoOmluaGVyaXQgb3V0bGluZS0z
KSkpCi0gICJGYWNlIGZvciB0aGlyZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFj
ZSBmb3IgdGhpcmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNCAnKCh0ICg6aW5oZXJpdCBvdXRsaW5l
LTQpKSkKLSAgIkZhY2UgZm9yIGZvdXJ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAi
RmFjZSBmb3IgZm91cnRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMx
LjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTUgJygodCAoOmluaGVyaXQgb3V0
bGluZS01KSkpCi0gICJGYWNlIGZvciBmaWZ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQor
ICAiRmFjZSBmb3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAi
MzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNiAnKCh0ICg6aW5oZXJpdCBv
dXRsaW5lLTYpKSkKLSAgIkZhY2UgZm9yIHNpeHRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIp
CisgICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9u
ICIzMS4xIikKIAotKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygodCAoOmluaGVy
aXQgc2hhZG93KSkpCi0gICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMgbGlrZSAtIGFu
ZCAqLiIpCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbXBoYXNpcyAnKCh0ICg6aW5oZXJpdCBpdGFs
aWMpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGVtcGhhc2lzIChpdGFsaWMpIHRleHQuIgorICA6
dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWJvbGQgJygodCAoOmluaGVy
aXQgYm9sZCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3Ryb25nIGVtcGhhc2lzIChib2xkKSB0
ZXh0LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1zdHJpa2V0
aHJvdWdoICcoKHQgKDpzdHJpa2UtdGhyb3VnaCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBz
dHJpa2V0aHJvdWdoIHRleHQuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtk
b3duLXRzLWJsb2NrLXF1b3RlICcoKHQgKDppbmhlcml0IGl0YWxpYykpKQotICAiRmFjZSBmb3Ig
TWFya2Rvd24gYmxvY2sgcXVvdGVzLiIpCisgICJGYWNlIGZvciBNYXJrZG93biBibG9jayBxdW90
ZXMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpbmsgJygo
dCAoOmluaGVyaXQgbGluaykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGluayB0ZXh0IGFuZCBp
bWFnZSBkZXNjcmlwdGlvbnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtk
b3duLXRzLWxpbmstZGVzdGluYXRpb24gJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1m
YWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaW5rIGRlc3RpbmF0aW9ucyAoVVJMcykuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNvZGUtc3BhbiAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IGlubGluZSBjb2RlIHNwYW5zLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrICcoKHQgKDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudC4KK0FsdGVyIHRoaXMgZmFjZSB0byBhZGQgYSBg
OmJhY2tncm91bmQnIGZvciBhIHZpc3VhbGx5IGRpc3RpbmN0Citjb2RlIGJsb2NrIHJlZ2lvbiwg
ZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jayBu
aWwgOmJhY2tncm91bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZh
Y2UgbWFya2Rvd24tdHMtaW4tY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2Ug
Zm9yIHdoZW4gcG9pbnQgaXMgaW4gYSBNYXJrZG93biBjb2RlIGJsb2NrLgorU2VlIGBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZScuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRk
IGEgYDpiYWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBl
LmcuOgorICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy1pbi1jb2RlLWJsb2Nr
IDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNl
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQg
bGlnaHQpKSAoOmJhY2tncm91bmQgImdyYXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3Jv
dW5kIGRhcmspKSAgKDpiYWNrZ3JvdW5kICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBm
b3IgTWFya2Rvd24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRk
ZW4uCitVc2VkIGluc3RlYWQgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwJworaXMgbm9uLW5pbC4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29kZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBm
b250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGluZGVudGVkIGNv
ZGUgYmxvY2tzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1o
dG1sLXRhZyAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1cC1mYWNlKSkpCisgICJG
YWNlIGZvciBpbmxpbmUgSFRNTCB0YWdzIGluIE1hcmtkb3duLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQt
bG9jay1kb2MtbWFya3VwLWZhY2UpKSkKKyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtk
b3duLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10aGVtYXRp
Yy1icmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBN
YXJrZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250YWwgcnVsZXMpLgorQ3VzdG9taXplIHRo
aXMgZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3IgYSBmdWxsLXdpZHRoIHZpc3VhbCBydWxl
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbnRpdHktcmVm
ZXJlbmNlICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIG5hbWVkIEhUTUwgZW50aXR5IHJlZmVyZW5jZXMgbGlrZSAmYW1wOyBhbmQgJmNvcHk7LiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJh
Y3Rlci1yZWZlcmVuY2UKKyAgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkp
CisgICJGYWNlIGZvciBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5k
ICYjeDQxOy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0
ZXggJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBM
YVRlWCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAoJC4uLiQgYW5kICQkLi4uJCQpLiIKKyAg
OnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIgJygo
dCAoOmluaGVyaXQgKGJvbGQgZm9udC1sb2NrLWRvYy1mYWNlKSkpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gcGlwZSB0YWJsZSBoZWFkZXIgY2VsbHMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhk
ZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkYXRhIGNlbGxzLiIKKyAgOnZlcnNpb24g
IjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHBp
cGUgdGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2VwYXJhdG9ycykuIgorICA6dmVyc2lvbiAi
MzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlICcoKHQgKDpleHRlbmQgdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gdGFibGUuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRkIGEgYDpi
YWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBlLmcuOgor
ICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy10YWJsZSBuaWwgOmJhY2tncm91
bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24t
dHMtaW4tdGFibGUgJygodCAoOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBgbWFy
a2Rvd24tdHMtaW4tdGFibGUtbW9kZScgd2hlbiBwb2ludCBpcyBpbiBhIHRhYmxlLgorQWx0ZXIg
dGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dyb3VuZCcgZm9yIGEgdmlzdWFsbHkgZGlzdGluY3Qg
dGFibGUKK3JlZ2lvbiwgZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24t
dHMtaW4tdGFibGUgbmlsIDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQgJygodCAoOmluaGVy
aXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpKQotICAiRmFjZSBmb3IgdGhlIGxhbmd1YWdlIGtl
eXdvcmQgZm9yIE1hcmtkb3duIGNvZGUgYmxvY2tzLiIpCisgICJGYWNlIGZvciB0aGUgbGFuZ3Vh
Z2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNoYWRv
dykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4iCisg
IDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFr
LWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisg
ICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFp
bGluZyBiYWNrc2xhc2guIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuCisgICcoKHQgKDppbmhlcml0IG91
dGxpbmUtNCA6d2VpZ2h0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIHRyYWlsaW5nLWJhY2tzbGFzaCBo
YXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgJygoKChi
YWNrZ3JvdW5kIGxpZ2h0KSkgKDpiYWNrZ3JvdW5kICJncmF5NzAiIDp3ZWlnaHQgYm9sZCkpCisg
ICAgKCgoYmFja2dyb3VuZCBkYXJrKSkgICg6YmFja2dyb3VuZCAiZ3JheTQwIiA6d2VpZ2h0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGhhcmQgbGluZSBicmVha3MgaW50cm9kdWNlZCBi
eSB0d28gdHJhaWxpbmcgc3BhY2VzLgorVGhlIHRyYWlsaW5nIHNwYWNlcyBhcmUgb3RoZXJ3aXNl
IGludmlzaWJsZSwgc28gdGhleSBhcmUgc2hvd24gYXMgYQorc2hhZG93LWNvbG9yZWQgYmxvY2su
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9s
ZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWxpc3QtbWFya2Vy
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlcnMuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stY2hlY2tlZCAn
KCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1saXN0LW1hcmtlcikpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gY2hlY2tlZCB0YXNrIGxpc3QgbWFya2Vycy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCisKKyhhZGQtdG8tbGlzdAor
ICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rvd24KKyAgICJodHRwczov
L2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisg
ICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAg
OnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCisgdCkKKworKGFkZC10by1s
aXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CisgJyhtYXJrZG93bi1pbmxpbmUK
KyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXIt
bWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFh
NzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMi
KQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXNldC11cC1p
bmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRvIG5vbi1uaWwgZm9yIGlubGluZSBgbWFya2Rv
d24tdHMtbW9kZScgYnVmZmVycy4iKQorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
bW9kZXMKKyAgYCgoc2ggYmFzaC10cy1tb2RlKQorICAgIChzaGVsbCBiYXNoLXRzLW1vZGUpCisg
ICAgKCwoaW50ZXJuICJjIyIpIGNzaGFycC10cy1tb2RlKQorICAgIChjcHAgYysrLXRzLW1vZGUp
CisgICAgKGVsIGVtYWNzLWxpc3AtbW9kZSkKKyAgICAoZWxpc3AgZW1hY3MtbGlzcC1tb2RlKQor
ICAgIChnb2xhbmcgZ28tdHMtbW9kZSkKKyAgICAoZ29tb2QgZ28tbW9kLXRzLW1vZGUpCisgICAg
KGdvd29yayBnby13b3JrLXRzLW1vZGUpCisgICAgKGphdmFzY3JpcHQganMtdHMtbW9kZSkKKyAg
ICAobWQgbWFya2Rvd24tdHMtbW9kZSkKKyAgICAocHkgcHl0aG9uLXRzLW1vZGUpCisgICAgKHJi
IHJ1YnktdHMtbW9kZSkKKyAgICAocnMgcnVzdC10cy1tb2RlKQorICAgICh0ZXggbGF0ZXgtbW9k
ZSkKKyAgICAodHMgdHlwZXNjcmlwdC10cy1tb2RlKQorICAgICh5bWwgeWFtbC10cy1tb2RlKSkK
KyAgIkV4dHJhIG1hcHBpbmdzIGZyb20gY29kZSBibG9jayBsYW5ndWFnZSB0YWdzIHRvIG1ham9y
IG1vZGVzLgogCi07OzsgRm9udC1sb2NrCitFbnRyaWVzIGhlcmUgYXJlIG9ubHkgbmVlZGVkIHdo
ZW4gdGhlIGxhbmd1YWdlIHRhZyBpbiBhIGZlbmNlZCBjb2RlCitibG9jayBkb2VzIE5PVCBtYXRj
aCB0aGUgY29udmVudGlvbmFsIG1vZGUgbmFtZSBkZXJpdmF0aW9uLCBlLmcuIHRoZQordXNlciB3
cml0ZXMgXFw9YFxcPWBcXD1gdHMgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWB0eXBlc2NyaXB0LCBv
cgorXFw9YFxcPWBcXD1gcHkgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWBweXRob24uICBGb3IgdGFn
cyB0aGF0IGFscmVhZHkKK3Jlc29sdmUgdmlhIHRoZSBzdGFuZGFyZCBcIi10cy1tb2RlXCIvXCIt
bW9kZVwiIGhldXJpc3RpY3MgdGhlcmUgaXMgbm8KK25lZWQgdG8gYWRkIGFuIGVudHJ5LgorCitU
aGUgYWxpc3QgaXMgb2YgdGhlIGZvcm0gKExBTkdVQUdFIE1BSk9SLU1PREUpLiBNQUpPUi1NT0RF
IGNhbiBiZSBhCit0cmVlLXNpdHRlciBvciBhIGNvbnZlbnRpb25hbCBtb2RlLgorCitJZiB5b3Ug
cHJlZmVyIGEgY29udmVudGlvbmFsIG1vZGUgb3ZlciBpdHMgdHJlZS1zaXR0ZXIgdmFyaWFudCwg
YWRkIG9yCityZXBsYWNlIHJlbGV2YW50IGVudHJpZXMuICBGb3IgZXhhbXBsZToKKworICAgIChh
ZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9Jyhw
eXRob24gcHl0aG9uLW1vZGUpKQorICAgIChzZXRmIChhbGlzdC1nZXQgXFw9J3B5IG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgXFw9JyhweXRob24tbW9kZSkpCisKK0Nv
ZGUgYmxvY2tzIGZvciB0aGF0IG5vbiB0cmVlLXNpdHRlciBtb2RlcyB3aWxsIGJlIGZvbnRpZmll
ZCB1c2luZyB0aGUKK21vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2NrIHJ1bGVzLiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMKKyAg
JyhtYXJrZG93bi10cy1tb2RlCisgICAgcGhwLXRzLW1vZGUpCisgICJUcmVhdCB0aGVzZSBjb2Rl
IGJsb2NrIHRyZWUtc2l0dGVyIG1vZGVzIGFzIGNvbnZlbnRpb25hbC4KK1NvbWUgbW9kZXMgdGhh
dCBlbWJlZCBtdWx0aXBsZSBgdHJlZXNpdCcgcGFyc2VycyBuZWVkIHRvIGJlIHRyZWF0ZWQgd2l0
aAorY29udmVudGlvbmFsIGZvbnQtbG9jay4gIGBtYXJrZG93bi10cy1tb2RlJyBpdHNlbGYgaXMg
b25lIG9mIHRoZW0uIikKKworOzs7IEZvbnQtbG9jazoKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWRlbGltaXRlciAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKICAgIkZv
bnRpZnkgZGVsaW1pdGVyIE5PREUgYW5kIG9wdGlvbmFsbHkgaGlkZSBpdHMgbWFya3VwLgpAQCAt
MTY4LDIzICs3NzEsODMzIEBAIG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRz
LS1tYXJrdXApKSkKIAorKGRlZnZhciB1cmwtbWFpbC1jb21tYW5kKSA7IHVybC91cmwtdmFycy5l
bAorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKGJlZyBlbmQgdXJsKQor
ICAiTWFrZSB0aGUgcmVnaW9uIGZyb20gQkVHIHRvIEVORCBhIGNsaWNrYWJsZSBidXR0b24gZm9y
IFVSTC4KK0ZvciBtYWlsdG86IFVSSXMsIHVzZSBgdXJsLW1haWwtY29tbWFuZCcuICBGb3Igb3Ro
ZXIgc2NoZW1lcworXChlLmcuLCBodHRwLCBmdHApLCBvcGVuIHdpdGggYGJyb3dzZS11cmwnLiAg
T3RoZXJ3aXNlLCB0cmVhdCBhcworYSByZWxhdGl2ZSBmaWxlIHBhdGggYW5kIG9wZW4gd2l0aCBg
ZmluZC1maWxlJy4KKworRG8gbm90IHBhc3MgYGZhY2UnIHRvIGBtYWtlLXRleHQtYnV0dG9uJzog
dGhlIGxpbmsgZmFjZSBpcyBhbHJlYWR5CithcHBsaWVkIGJ5IGBtYXJrZG93bi10cy0tZm9udGlm
eS1saW5rLW5vZGUnIHZpYQorYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJyAod2l0aCBg
Om92ZXJyaWRlIGFwcGVuZCcpLCBhbmQKK2BhZGQtdGV4dC1wcm9wZXJ0aWVzJyB3b3VsZCBvdGhl
cndpc2UgcmVwbGFjZSB0aGUgYXBwZW5kZWQgZmFjZQorbGlzdCB3aXRoIGEgc2luZ2xlIGBtYXJr
ZG93bi10cy1saW5rJywgY2xvYmJlcmluZyBhbiBlbmNsb3NpbmcKK2hlYWRpbmcgZmFjZS4iCisg
IDs7IE5PVEU6IFVSSSBzY2hlbWUgYW5kIGhvc3QgbmFtZSBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBw
ZXIgUkZDIDM5ODYKKyAgOzsgYW5kIFJGQyA3MjMwLgorICAobGV0ICgoY2FzZS1mb2xkLXNlYXJj
aCBuaWwpKQorICAgIChtYWtlLXRleHQtYnV0dG9uIGJlZyBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAnYWN0aW9uIChsYW1iZGEgKF9idXR0b24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1w
cmVmaXgtcCAiIyIgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy0tZm9sbG93LWZyYWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzdWJzdHJpbmcgdXJsIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoc3RyaW5nLW1hdGNoLXAgIlxcYG1haWx0bzoiIHVybCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZnVuY2FsbCB1cmwtbWFpbC1jb21tYW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgbWFpbHRvOiIgIiIg
dXJsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaC1w
ICJcXGBbYS16XSs6IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJy
b3dzZS11cmwgdXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IChmaW5k
LWZpbGUgdXJsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICdoZWxwLWVjaG8gdXJsKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIGRlc3RpbmF0aW9uIE5PREUg
YW5kIGhpZGUgaXQgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgJ21hcmtkb3duLXRzLWxpbmst
ZGVzdGluYXRpb24gb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAod2hlbiBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cAorICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUp
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2li
bGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0t
bGluay1yZWYtY2FjaGUgbmlsCisgICJDYWNoZWQgYWxpc3Qgb2YgKExBQkVMIC4gVVJMKSBmcm9t
IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorRWFjaCBlbnRyeSBpcyBhIGNvbnMgY2VsbCBt
YXBwaW5nIGEgZG93bmNhc2VkIGxhYmVsIHN0cmluZyB0byBpdHMKK2Rlc3RpbmF0aW9uIFVSTC4i
KQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNrIG5pbAor
ICAiVmFsdWUgb2YgYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyB3aGVuIHRoZSBjYWNoZSB3
YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucyAo
KQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBsaW5rIHJlZmVyZW5j
ZSBkZWZpbml0aW9ucy4KK0xBQkVMIGlzIGRvd25jYXNlZCBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBt
YXRjaGluZy4gIFJlc3VsdHMgYXJlCitjYWNoZWQgYW5kIHJlYnVpbHQgb25seSB3aGVuIHRoZSBi
dWZmZXIgY2hhbmdlcy4iCisgIChsZXQgKCh0aWNrIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGlj
aykpKQorICAgICh1bmxlc3MgKGVxIHRpY2sgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRp
Y2spCisgICAgICAobGV0KiAoKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rv
d24pKQorICAgICAgICAgICAgIChtYXRjaGVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgcm9vdAorICAgICAgICAgICAgICAgICAgICAgICAnKChsaW5rX3Jl
ZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2xhYmVs
KSBAbGFiZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtfZGVzdGluYXRpb24pIEBk
ZXN0KSkpKQorICAgICAgICAgICAgIGRlZnMpCisgICAgICAgICh3aGlsZSBtYXRjaGVzCisgICAg
ICAgICAgKGxldCogKChsYWJlbC1wYWlyIChwb3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAg
IChkZXN0LXBhaXIgKHBvcCBtYXRjaGVzKSkKKyAgICAgICAgICAgICAgICAgKGxibC10ZXh0IChz
dHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBsYWJlbC1wYWlyKSB0KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXFsiICJcXF0iKSkpCisgICAgICAg
ICAgICAocHVzaCAoY29ucyAoZG93bmNhc2UgbGJsLXRleHQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBkZXN0LXBhaXIpIHQpKQorICAgICAgICAgICAg
ICAgICAgZGVmcykpKQorICAgICAgICAoc2V0cSBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUg
KG5yZXZlcnNlIGRlZnMpCisgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNo
ZS10aWNrIHRpY2spKSkKKyAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLXJlc29sdmUtbGluay1yZWYgKGxhYmVsKQorICAiUmVzb2x2ZSBMQUJF
TCB0byBhIFVSTCB2aWEgbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMuCitMQUJFTCBzaG91bGQg
YmUgdGhlIHRleHQgd2l0aG91dCBicmFja2V0cy4gIE1hdGNoaW5nIGlzCitjYXNlLWluc2Vuc2l0
aXZlIHBlciBDb21tb25NYXJrIHNwZWMgc2VjdGlvbiA0LjcuIgorICAoYWxpc3QtZ2V0IChkb3du
Y2FzZSBsYWJlbCkgKG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucykKKyAgICAgICAg
ICAgICBuaWwgbmlsICMnZXF1YWwpKQorCis7OzsgRnJhZ21lbnQgbGlua3M6CisKKyhkZWZjb25z
dCBtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUKKyAgIltdWyFcIiMkJSYnKCkqKywu
Lzo7PD0+P0BcXF5ge3x9fl0iCisgICJQdW5jdHVhdGlvbiBzdHJpcHBlZCBieSBHaXRIdWIncyBn
aC1zbHVnZ2VyIGJlZm9yZSBoeXBoZW5hdGlvbi4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNs
dWctZ2l0aHViICh0ZXh0KQorICAiUmV0dXJuIHRoZSBHaXRIdWItZmxhdm9yIHNsdWcgZm9yIGhl
YWRpbmcgVEVYVC4KK01pcnJvcnMgdGhlIGdoLXNsdWdnZXIgYWxnb3JpdGhtOiBsb3dlcmNhc2Us
IHN0cmlwIGEgZml4ZWQKK3B1bmN0dWF0aW9uIHNldCwgcmVwbGFjZSBzcGFjZXMgd2l0aCBoeXBo
ZW5zLiIKKyAgKGxldCogKChsYyAoZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoc3RyaXBwZWQg
KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10
cy0tc2x1Zy1naXRodWItc3RyaXAtcmUgIiIgbGMpKSkKKyAgICAocmVwbGFjZS1yZWdleHAtaW4t
c3RyaW5nICJbWzpibGFuazpdXSIgIi0iIHN0cmlwcGVkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tc2x1Zy1wYW5kb2MgKHRleHQpCisgICJSZXR1cm4gdGhlIFBhbmRvYy1mbGF2b3IgYXV0by1p
ZCBzbHVnIGZvciBoZWFkaW5nIFRFWFQuCitNaXJyb3JzIFBhbmRvYydzIGFsZ29yaXRobTogZHJv
cCBldmVyeXRoaW5nIGJlZm9yZSB0aGUgZmlyc3QKK2xldHRlciwga2VlcCBhbHBoYW51bWVyaWNz
IGFuZCBgXy0uJywgY29sbGFwc2Ugd2hpdGVzcGFjZSBydW5zIHRvCitoeXBoZW5zLCBsb3dlcmNh
c2UuICBGYWxscyBiYWNrIHRvIFwic2VjdGlvblwiIGlmIGVtcHR5LiIKKyAgKGxldCogKChsYyAo
ZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoZnJvbS1sZXR0ZXIgKGlmIChzdHJpbmctbWF0Y2gg
IltbOmFscGhhOl1dIiBsYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBs
YyAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAg
ICAgICAgKGtlcHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICJb
Xls6YWxudW06XV8uXG5cdFs6Ymxhbms6XS1dIiAiIiBmcm9tLWxldHRlcikpCisgICAgICAgICAo
aHlwaGVuYXRlZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJbWzpibGFuazpdXHRcbl0rIiAi
LSIga2VwdCkpCisgICAgICAgICAodHJpbW1lZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICIt
K1xcJyIgIiIgaHlwaGVuYXRlZCkpKQorICAgIChpZiAoc3RyaW5nLWVtcHR5LXAgdHJpbW1lZCkg
InNlY3Rpb24iIHRyaW1tZWQpKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1leHBsaWNpdC1p
ZC1yZQorICAiWyBcdF0qe1sgXHRdKiNcXChbXn0gXHRdK1xcKVsgXHRdKn1bIFx0XSpcXCciCisg
ICJNYXRjaCBhIFBhbmRvYy1zdHlsZSB0cmFpbGluZyBgeyNpZH0nIG9uIGEgaGVhZGluZyBsaW5l
LgorQ2FwdHVyZSBncm91cCAxIGlzIHRoZSBleHBsaWNpdCBpZC4iKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgKHJhdykKKyAgIlNwbGl0IFJBVyBoZWFkaW5nIHRl
eHQgaW50byAoVklTSUJMRSAuIEVYUExJQ0lULUlEKS4KK0VYUExJQ0lULUlEIGlzIG5vbi1uaWwg
aWYgUkFXIGVuZHMgd2l0aCBhIFBhbmRvYy1zdHlsZSBgeyNpZH0nLAoraW4gd2hpY2ggY2FzZSBW
SVNJQkxFIGlzIFJBVyB3aXRoIHRoYXQgc3VmZml4IHJlbW92ZWQuIgorICAoaWYgKHN0cmluZy1t
YXRjaCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUgcmF3KQorICAgICAgKGNvbnMgKHN1YnN0
cmluZyByYXcgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgKG1hdGNoLXN0cmlu
ZyAxIHJhdykpCisgICAgKGNvbnMgcmF3IG5pbCkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3du
LXRzLS1oZWFkaW5nLWlkLWNhY2hlIG5pbAorICAiQ2FjaGVkIGhhc2ggdGFibGUgbWFwcGluZyBo
ZWFkaW5nIHNsdWcgc3RyaW5ncyB0byBidWZmZXIgcG9zaXRpb25zLgorRWFjaCB2YWx1ZSBpcyB0
aGUgYnVmZmVyIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2hpbmcKK2BhdHhfaGVh
ZGluZycgb3IgYHNldGV4dF9oZWFkaW5nJyBub2RlLiAgQnVpbHQgbGF6aWx5IGJ5CitgbWFya2Rv
d24tdHMtLWhlYWRpbmctaWRzJywgaW52YWxpZGF0ZWQgYnkgYnVmZmVyLXRpY2sgY2hhbmdlLiIp
CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayBuaWwK
KyAgIlZhbHVlIG9mIGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgaGVhZGlu
Zy1pZCBjYWNoZSB3YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1idWlsZC1oZWFk
aW5nLWlkcyAoKQorICAiV2FsayBhbGwgaGVhZGluZ3MgaW4gdGhlIGJ1ZmZlciBhbmQgcmV0dXJu
IGEgaGFzaCB0YWJsZS4KK1doaWNoIG1hcHMgZWFjaCBzbHVnIHRvIHRoZSBidWZmZXIgcG9zaXRp
b24gb2YgaXRzIGhlYWRpbmcuICBFYWNoCitoZWFkaW5nIGNvbnRyaWJ1dGVzIGl0cyBHaXRIdWIg
c2x1ZywgaXRzIFBhbmRvYyBzbHVnLCBhbmQgaXRzIGV4cGxpY2l0CitgeyNpZH0nIGlmIHByZXNl
bnQuICBCb3RoIHNsdWcgYWxnb3JpdGhtcyBhcmUgc3RvcmVkIGluIHRoZSBzYW1lIGJ1ZmZlcgor
YmVjYXVzZSBhIG1hcmtkb3duIGZpbGUgaXMgb2Z0ZW4gcHJldmlld2VkIGJ5IHNldmVyYWwgcmVu
ZGVyZXJzIChHaXRIdWIKK3dlYiBVSSwgUGFuZG9jLCBtZEJvb2ssIEh1Z28sIGFuZCBzbyBvbikg
YW5kIHRoZSBzYW1lIHNvdXJjZSBzaG91bGQKK3Jlc29sdmUgcmVnYXJkbGVzcyBvZiB3aGljaCBv
bmUgdGhlIGF1dGhvciB3cm90ZSB0aGUgbGluayBmb3IuICBGb3IgbW9zdAoraGVhZGluZ3MgdGhl
IHR3byBhbGdvcml0aG1zIHByb2R1Y2UgdGhlIHNhbWUgc2x1ZyBhbnl3YXkuCitEdXBsaWNhdGUg
c2x1Z3MgKHdpdGhpbiBvbmUgYWxnb3JpdGhtKSBhcmUgZGlzYW1iaWd1YXRlZCBieSBhcHBlbmRp
bmcKK2AtMScsIGAtMicsIGFuZCBzbyBvbiwgaW4gZG9jdW1lbnQgb3JkZXIsIG1hdGNoaW5nIEdp
dEh1YidzIGJlaGF2aW9yLgorV2hlbiB0d28gZGlzdGluY3QgaGVhZGluZ3Mgd291bGQgb3RoZXJ3
aXNlIHNoYXJlIGEgc2x1ZywgdGhlIGZpcnN0CitvY2N1cnJlbmNlIGluIGRvY3VtZW50IG9yZGVy
IHdpbnMuIgorICAobGV0ICgodGFibGUgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFsKSkK
KyAgICAgICAgOzsgUGVyLWFsZ29yaXRobSBkZWR1cGUgY291bnRlcnM6IGhvdyBtYW55IHRpbWVz
IHRoaXMgYmFzZSBzbHVnCisgICAgICAgIDs7IGhhcyBiZWVuIHNlZW4gc28gZmFyIGluIGRvY3Vt
ZW50IG9yZGVyLgorICAgICAgICAoZ2gtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydl
cXVhbCkpCisgICAgICAgIChwZC1jb3VudHMgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFs
KSkKKyAgICAgICAgKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pKSkK
KyAgICAoZG9saXN0IChjYXAgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAg
ICAgcm9vdAorICAgICAgICAgICAgICAgICAgJygoKGF0eF9oZWFkaW5nKSBAaCkKKyAgICAgICAg
ICAgICAgICAgICAgKChzZXRleHRfaGVhZGluZykgQGgpKSkpCisgICAgICAobGV0KiAoKG5vZGUg
KGNkciBjYXApKQorICAgICAgICAgICAgIChwb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgICAgICAocmF3IChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0
KSkpCisgICAgICAgICAgICAgOzsgU3RyaXAgdGhlIGxlYWRpbmcgbWFya2VyICgjIyMgb3IgPT09
PS8tLS0tKS4KKyAgICAgICAgICAgICA7OyBGb3IgYXR4LCBkcm9wIGxlYWRpbmcgIydzIGFuZCBm
b2xsb3dpbmcgc3BhY2UuCisgICAgICAgICAgICAgOzsgRm9yIHNldGV4dCwgZHJvcCB0aGUgdHJh
aWxpbmcgdW5kZXJsaW5lIGxpbmUuCisgICAgICAgICAgICAgKHRleHQgKGNvbmQKKyAgICAgICAg
ICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYCMrWyBcdF0qXFwoLio/XFwpWyBcdF0qIypb
IFx0XSpcXCciIHJhdykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcp
KQorICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFxgXFwoLio/XFwpXG5bPS1d
K1sgXHRdKlxcJyIgcmF3KQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIHJh
dykpCisgICAgICAgICAgICAgICAgICAgICh0IHJhdykpKQorICAgICAgICAgICAgIChzcGxpdCAo
bWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgdGV4dCkpCisgICAgICAgICAgICAgKHZp
c2libGUgKGNhciBzcGxpdCkpCisgICAgICAgICAgICAgKGV4cGxpY2l0IChjZHIgc3BsaXQpKSkK
KyAgICAgICAgOzsgRXhwbGljaXQgeyNpZH0gd2lucyBvdXRyaWdodDsgZmlyc3Qgb2NjdXJyZW5j
ZSBrZWVwcyBpdC4KKyAgICAgICAgKHdoZW4gKGFuZCBleHBsaWNpdCAobm90IChnZXRoYXNoIGV4
cGxpY2l0IHRhYmxlKSkpCisgICAgICAgICAgKHB1dGhhc2ggZXhwbGljaXQgcG9zIHRhYmxlKSkK
KyAgICAgICAgOzsgQXV0byBzbHVncyAoR2l0SHViICsgUGFuZG9jKSwgZGVkdXBlZCBwZXIgYWxn
b3JpdGhtLgorICAgICAgICAobGV0KiAoKGdoLWJhc2UgKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1
YiB2aXNpYmxlKSkKKyAgICAgICAgICAgICAgIChwZC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1w
YW5kb2MgdmlzaWJsZSkpCisgICAgICAgICAgICAgICAoZ2gtbiAoZ2V0aGFzaCBnaC1iYXNlIGdo
LWNvdW50cyAwKSkKKyAgICAgICAgICAgICAgIChwZC1uIChnZXRoYXNoIHBkLWJhc2UgcGQtY291
bnRzIDApKQorICAgICAgICAgICAgICAgKGdoLWlkIChpZiAoemVyb3AgZ2gtbikgZ2gtYmFzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIGdoLWJhc2UgZ2gtbikpKQor
ICAgICAgICAgICAgICAgKHBkLWlkIChpZiAoemVyb3AgcGQtbikgcGQtYmFzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIHBkLWJhc2UgcGQtbikpKSkKKyAgICAgICAg
ICAocHV0aGFzaCBnaC1iYXNlICgxKyBnaC1uKSBnaC1jb3VudHMpCisgICAgICAgICAgKHB1dGhh
c2ggcGQtYmFzZSAoMSsgcGQtbikgcGQtY291bnRzKQorICAgICAgICAgIDs7IEZpcnN0LXdyaXRl
ci13aW5zIHNvIGRvY3VtZW50IG9yZGVyIHRpZWJyZWFrcyBjb2xsaXNpb25zLgorICAgICAgICAg
ICh1bmxlc3MgKGdldGhhc2ggZ2gtaWQgdGFibGUpIChwdXRoYXNoIGdoLWlkIHBvcyB0YWJsZSkp
CisgICAgICAgICAgKHVubGVzcyAoZ2V0aGFzaCBwZC1pZCB0YWJsZSkgKHB1dGhhc2ggcGQtaWQg
cG9zIHRhYmxlKSkpKSkKKyAgICB0YWJsZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGlu
Zy1pZHMgKCkKKyAgIlJldHVybiB0aGUgaGVhZGluZy1pZCBoYXNoIHRhYmxlIGZvciB0aGUgY3Vy
cmVudCBidWZmZXIuCitDYWNoZSBpcyByZWJ1aWx0IG9ubHkgd2hlbiBgYnVmZmVyLWNoYXJzLW1v
ZGlmaWVkLXRpY2snIGhhcyBhZHZhbmNlZAorc2luY2UgdGhlIGxhc3QgY2FsbCAobWlycm9ycyBg
bWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlJykuIgorICAobGV0ICgodGljayAoYnVmZmVyLWNo
YXJzLW1vZGlmaWVkLXRpY2spKSkKKyAgICAodW5sZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1o
ZWFkaW5nLWlkLWNhY2hlLXRpY2spCisgICAgICAoc2V0cSBtYXJrZG93bi10cy0taGVhZGluZy1p
ZC1jYWNoZSAobWFya2Rvd24tdHMtLWJ1aWxkLWhlYWRpbmctaWRzKQorICAgICAgICAgICAgbWFy
a2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayB0aWNrKSkKKyAgICBtYXJrZG93bi10cy0t
aGVhZGluZy1pZC1jYWNoZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9sbG93LWZyYWdtZW50
IChpZCkKKyAgIkp1bXAgdG8gdGhlIGhlYWRpbmcgd2hvc2Ugc2x1ZyBtYXRjaGVzIElEICh3aXRo
b3V0IGxlYWRpbmcgYCMnKS4KK1B1c2hlcyB0aGUgbWFyayBiZWZvcmUgbW92aW5nIHNvIGBDLXUg
Qy1TUEMnIHJldHVybnMuICBTaWduYWxzCitgdXNlci1lcnJvcicgaWYgbm8gaGVhZGluZyBtYXRj
aGVzLiIKKyAgKGlmLWxldCogKChwb3MgKGdldGhhc2ggaWQgKG1hcmtkb3duLXRzLS1oZWFkaW5n
LWlkcykpKSkKKyAgICAgIChwcm9nbgorICAgICAgICAocHVzaC1tYXJrKQorICAgICAgICAoZ290
by1jaGFyIHBvcykKKyAgICAgICAgKHJlY2VudGVyKSkKKyAgICAodXNlci1lcnJvciAiTm8gaGVh
ZGluZyBmb3IgZnJhZ21lbnQ6ICMlcyIgaWQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250
aWZ5LWhlYWRpbmcgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBfZW5kICZyZXN0IF8pCisgICJBcHBs
eSB0aGUgaGVhZGluZyBmYWNlIHRvIE5PREUncyBmdWxsIGV4dGVudC4KK1VzZSBgZm9udC1sb2Nr
LWFwcGVuZC10ZXh0LXByb3BlcnR5JyBkaXJlY3RseSBzbyB0aGUgZmFjZSBpcyBhcHBsaWVkCith
Y3Jvc3MgdGhlIGVudGlyZSBoZWFkaW5nIGV2ZW4gd2hlbiBjaGlsZCBzdWItbm9kZXMgKGUuZy4g
YW4gaW5saW5lCitsaW5rKSB3b3VsZCBvdGhlcndpc2UgcHJldmVudCB0aGUgcmVndWxhciB0cmVl
LXNpdHRlciBmYWNlIHJ1bGUgZnJvbQorY292ZXJpbmcgdGhlbS4KKworRm9yIEFUWCBoZWFkaW5n
cywgYWxzbyBmb250aWZ5IGFueSBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJworc2VxdWVu
Y2UgYXMgYSBkZWxpbWl0ZXIuICBUaGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBkb2VzIG5vdCBwcm9k
dWNlIGEKK3NlcGFyYXRlIG5vZGUgZm9yIHRoZXNlOyBwZXIgQ29tbW9uTWFyayB0aGV5IGFyZSBk
ZWNvcmF0aXZlIGFuZAorbXVzdCBiZSBwcmVjZWRlZCBieSBhIHNwYWNlIG9yIHRhYi4iCisgIChs
ZXQqICgodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAobi1zdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG4tZW5kICAgKHRyZWVzaXQtbm9k
ZS1lbmQgbm9kZSkpCisgICAgICAgICAoZmFjZSAoY29uZAorICAgICAgICAgICAgICAgICgoZXF1
YWwgdHlwZSAic2V0ZXh0X2hlYWRpbmciKQorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMt
c2V0ZXh0LWhlYWRpbmcpCisgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgKGxl
dCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCkpKQorICAgICAgICAgICAgICAg
ICAgIChpbnRlcm4gKGZvcm1hdCAibWFya2Rvd24tdHMtaGVhZGluZy0lZCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQgbWFya2Vy
IHQpKSkpKSkpKSkKKyAgICAoZm9udC1sb2NrLWFwcGVuZC10ZXh0LXByb3BlcnR5IG4tc3RhcnQg
bi1lbmQgJ2ZhY2UgZmFjZSkKKyAgICAod2hlbiAoc3RyaW5nLXByZWZpeC1wICJhdHhfIiB0eXBl
KQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgbi1lbmQpCisgICAg
ICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHRcbiIgbi1zdGFydCkKKyAgICAgICAgKGxldCAo
KGxpbmUtZW5kIChwb2ludCkpKQorICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQi
IG4tc3RhcnQpCisgICAgICAgICAgKGxldCAoKHRyYWlsaW5nLWVuZCAocG9pbnQpKSkKKyAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBuLXN0YXJ0KQorICAgICAgICAgICAgKGxl
dCAoKHRyYWlsaW5nLXN0YXJ0IChwb2ludCkpKQorICAgICAgICAgICAgICAod2hlbiAoYW5kICg8
IHRyYWlsaW5nLXN0YXJ0IHRyYWlsaW5nLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
PiB0cmFpbGluZy1zdGFydCBuLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1x
IChjaGFyLWJlZm9yZSB0cmFpbGluZy1zdGFydCkgJyg/XHMgP1x0KSkpCisgICAgICAgICAgICAg
ICAgKGZvbnQtbG9jay1wcmVwZW5kLXRleHQtcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgdHJh
aWxpbmctc3RhcnQgdHJhaWxpbmctZW5kCisgICAgICAgICAgICAgICAgICdmYWNlICdtYXJrZG93
bi10cy1kZWxpbWl0ZXIpCisgICAgICAgICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1t
YXJrdXAKKyAgICAgICAgICAgICAgICAgIDs7IEFsc28gaGlkZSB0aGUgc3BhY2UocykgcHJlY2Vk
aW5nIHRoZSBjbG9zZXIgYW5kIGFueQorICAgICAgICAgICAgICAgICAgOzsgdHJhaWxpbmcgd2hp
dGVzcGFjZSwgc28gdGhlIGhlYWRpbmcgbG9va3MgY2xlYW4uCisgICAgICAgICAgICAgICAgICAo
bGV0ICgoaGlkZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciB0cmFpbGluZy1zdGFydCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIgbi1zdGFy
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgaGlkZS1zdGFydCBsaW5lLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkp
KSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlIChub2RlIG92
ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIG9yIGltYWdlIHRleHQg
Tk9ERSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitXb3JrcyBmb3IgaW5saW5lIGxpbmtzLCByZWZl
cmVuY2UgbGlua3MsIHNob3J0Y3V0IGxpbmtzLCBhbmQKK2ltYWdlIGRlc2NyaXB0aW9ucy4gIFRo
ZSBVUkwgaXMgdGFrZW4gZnJvbSBhIHNpYmxpbmcKK2BsaW5rX2Rlc3RpbmF0aW9uJyBub2RlIHdo
ZW4gcHJlc2VudCwgb3IgcmVzb2x2ZWQgZnJvbSBhCitsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9u
LCBvciB0aGUgbm9kZSB0ZXh0IGl0c2VsZiBpcyB1c2VkIGFzCitmYWxsYmFjay4gIE9WRVJSSURF
LCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnkt
d2l0aC1vdmVycmlkZScuIgorICAobGV0ICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5v
ZGUpKSkKKyAgICA7OyBXaGVuIE5PREUgaXMgYSBsaW5rX2xhYmVsIGluc2lkZSBhIGZ1bGxfcmVm
ZXJlbmNlX2xpbmsgdGhhdAorICAgIDs7IGFsc28gaGFzIGEgbGlua190ZXh0LCBza2lwIGl0LCBs
aW5rX3RleHQgaGFuZGxlcyB0aGF0IGxpbmsuCisgICAgKHVubGVzcyAoYW5kIChzdHJpbmc9ICh0
cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAibGlua19sYWJlbCIpCisgICAgICAgICAgICAgICAgICh0
cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua190ZXh0XFwnIikpCisgICAgICAo
dHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgJ21hcmtkb3duLXRzLWxpbmsg
b3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNlYXJjaC1z
dWJ0cmVlIHBhcmVudCAiXFxgbGlua19kZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgICAgICh1
cmwgKGlmIGRlc3QKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgZGVz
dCB0KQorICAgICAgICAgICAgICAgICAgICA7OyBSZWZlcmVuY2UgbGlua3M6IHJlc29sdmUgdmlh
IGxpbmtfbGFiZWwgb3IgbGlua190ZXh0LgorICAgICAgICAgICAgICAgICAgICAobGV0KiAoKGxh
YmVsLW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJlbnQgIlxcYGxpbmtfbGFiZWxcXCciKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYWJlbCAoaWYgbGFiZWwtbm9kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwtbm9k
ZSB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlxcWyIgIlxcXSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSB0KSkpKQorICAgICAgICAgICAgICAgICAgICAgIChvciAobWFya2Rv
d24tdHMtLXJlc29sdmUtbGluay1yZWYgbGFiZWwpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IGxhYmVsKSkpKSkKKyAgICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uCisgICAg
ICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpIHVy
bCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluayAobm9kZSBvdmVy
cmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgYXV0b2xpbmsgTk9ERSAoVVJJIG9y
IGVtYWlsKSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitGb3IgZW1haWwgYXV0b2xpbmtzLCB0aGUg
VVJMIGlzIHByZWZpeGVkIHdpdGggXCJtYWlsdG86XCIuCitBbmdsZSBicmFja2V0IGRlbGltaXRl
cnMgYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFu
ZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp
ZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoaW5u
ZXIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAgICAoMSsg
bm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSkpCisgICAgICAgICAodXJsIChpZiAoc3RyaW5nPSAo
dHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImVtYWlsX2F1dG9saW5rIikKKyAgICAgICAgICAgICAg
ICAgIChjb25jYXQgIm1haWx0bzoiIGlubmVyKQorICAgICAgICAgICAgICAgIGlubmVyKSkpCisg
ICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQgbm9kZS1l
bmQgJ21hcmtkb3duLXRzLWxpbmsgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChtYXJrZG93bi10
cy0tbWFrZS1saW5rLWJ1dHRvbiBub2RlLXN0YXJ0IG5vZGUtZW5kIHVybCkKKyAgICAod2hlbiBt
YXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgKDErIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAn
bWFya2Rvd24tdHMtLW1hcmt1cCkKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoMS0gbm9kZS1l
bmQpIG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rv
d24tdHMtLW1hcmt1cCkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVm
LWxhYmVsIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5r
IHJlZmVyZW5jZSBkZWZpbml0aW9uIGxhYmVsIE5PREUgYXMgYSBjbGlja2FibGUgYnV0dG9uLgor
VGhlIGJyYWNrZXRzIGFuZCBjb2xvbiBhcmUgaGlkZGVuIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4K
K09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBu
b2RlKSkKKyAgICAgICAgIChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAg
ICAgICAoZGVzdC1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua19k
ZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgKHVybCAod2hlbiBkZXN0LW5vZGUgKHRyZWVzaXQt
bm9kZS10ZXh0IGRlc3Qtbm9kZSB0KSkpKQorICAgIDs7IEZvbnRpZnkgdGhlIGxhYmVsIHRleHQg
KGluc2lkZSBicmFja2V0cykuCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisg
ICAgICgxKyBub2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpCisgICAgICdtYXJrZG93bi10cy1saW5r
IG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICA7OyBNYWtlIGl0IGEgY2xpY2thYmxlIGJ1dHRvbi4K
KyAgICAod2hlbiB1cmwKKyAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbiAoMSsg
bm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSB1cmwpKQorICAgIDs7IEhpZGUgIlsiIGJlZm9yZSBs
YWJlbCBhbmQgIl06ICIgYmV0d2VlbiBsYWJlbCBhbmQgZGVzdGluYXRpb24uCisgICAgKHdoZW4g
bWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0
YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUg
J21hcmtkb3duLXRzLS1tYXJrdXApCisgICAgICAobGV0ICgoY29sb24tZW5kIChpZiBkZXN0LW5v
ZGUgKHRyZWVzaXQtbm9kZS1zdGFydCBkZXN0LW5vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgKDErIG5vZGUtZW5kKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUt
ZW5kKSBjb2xvbi1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21h
cmtkb3duLXRzLS1tYXJrdXApKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1yZWYtZGVzdGluYXRpb24gKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3QgXykKKyAgIkZv
bnRpZnkgbGluayByZWZlcmVuY2UgZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3aGVuIG1hcmt1
cCBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRv
CitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVycmlkZSBzdGFy
dCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1dC10ZXh0LXBy
b3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5vZGUpCisgICJS
ZXR1cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNpbmdsZSBpbmxp
bmUgc2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBmYWxzZSBgbGF0
ZXhfYmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4g
IENoZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMgc2hhcmUgdGhl
IHNhbWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9kZS1zdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEtICh0cmVlc2l0
LW5vZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0cmVlc2l0LW5v
ZGUtYXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChtZC1lbmQgKHRy
ZWVzaXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChpbmxp
bmUtc3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChu
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUt
dHlwZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVuZCAodHJlZXNp
dC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQtZW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkpCisg
ICAgICAoZXEgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisgICAgICAgICAgKHRy
ZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAi
Rm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxpbWl0ZXJzIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFsc2UgbWF0Y2hlcyB0aGF0
IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCBub2RlKQorICAg
ICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJrZG93bi10cy1sYXRleCBv
dmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAg
ICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQgbm9kZSkpCisgICAgICAg
IChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkpKQorICAgICAgICAgICh3
aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRleF9zcGFuX2RlbGltaXRl
ciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBj
aGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBj
aGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93
bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3Ns
YXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkg
YmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFzaCB3aGVuIG1hcmt1cCBp
cyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2NrJyB3aGVyZSBiYWNrc2xh
c2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNz
ZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQg
KChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChpbi1sYXRl
eCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkKKyAg
ICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4g
KGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4KSkKKyAgICAgIChwdXQt
dGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkpCisKKyhkZWZ2YXIg
c2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudGl0eS1nZXQgIm9yZy9v
cmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHkgKHRl
eHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCImYW1wO1wiKSB0byBpdHMg
Y2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJpbmcsIG9yIG5pbCBpZiB0
aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVtZXJpYyBoZXggJiN4MUY0
QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0Ol1dK1xcKTtcXCciIHRl
eHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJpbmcg
MSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIzOworICAgKChzdHJpbmct
bWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAoY2hhci10by1z
dHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRleHQpKSkpCisgICA7OyBO
YW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBiYWNrIHRvIHNnbWwtY2hh
ci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51bTpdXStcXCk7XFwnIiB0
ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkpCisgICAgICAocmVx
dWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRyeSAob3JnLWVudGl0eS1n
ZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVudHJ5KSkpCisgICAgICAg
ICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAgICAgICAod2hlbi1sZXQq
ICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1lICMnZXF1YWwpKSkKKyAg
ICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZv
bnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFsdWUgd2hlbiBtYXJrdXAg
aXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0
bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChub2RlLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAgICAgICAgJ21hcmtkb3du
LXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbnVtZXJp
Yy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtkb3duLXRzLWhpZGUtbWFy
a3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93bi10cy0tZGVjb2RlLWVu
dGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5v
ZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiBk
ZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3RhcnQgbm9k
ZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyBu
b2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZSAodmFsKQorICAiUmVzb2x2ZSBWQUwsIGEgY29ucyAo
UFJFRkVSUkVEIC4gRkFMTEJBQ0spLCB0byBhIGRpc3BsYXlhYmxlIHZhbHVlLgorUmV0dXJuIFBS
RUZFUlJFRCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyIHBhc3NlcyBgY2hhci1kaXNwbGF5YWJsZS1w
JywKK290aGVyd2lzZSByZXR1cm4gRkFMTEJBQ0suICBSZXR1cm4gbmlsIGlmIFZBTCBpcyBuaWwu
IgorICAod2hlbiB2YWwKKyAgICAobGV0KiAoKHByZWZlcnJlZCAoY2FyIHZhbCkpCisgICAgICAg
ICAgIChjaCAoaWYgKGNoYXJhY3RlcnAgcHJlZmVycmVkKSBwcmVmZXJyZWQgKGFyZWYgcHJlZmVy
cmVkIDApKSkpCisgICAgICAoaWYgKGNoYXItZGlzcGxheWFibGUtcCBjaCkgKGNhciB2YWwpIChj
ZHIgdmFsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94IChub2Rl
IG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3QgY2hlY2ti
b3ggTk9ERSwgc2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09W
RVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9k
ZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2Rl
KSkKKyAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgInRh
c2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNrZWQgJ21h
cmtkb3duLXRzLXRhc2stY2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGFz
ay11bmNoZWNrZWQpKQorICAgICAgICAgKHZhbHVlIChpZiBjaGVja2VkCisgICAgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gKKyAgICAgICAgICAgICAgICAgIG1h
cmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCkpCisgICAgICAgICAocmVwbGFjZW1lbnQKKyAg
ICAgICAgICAoY29uZCAoKGVxIHZhbHVlICdpY29uKQorICAgICAgICAgICAgICAgICAoaWNvbi1z
dHJpbmcgKGlmIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveC1pY29uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gtaWNvbikpKQorICAgICAgICAg
ICAgICAgICh0IChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlIHZhbHVlKSkpKQor
ICAgICAgICAgOzsgSWYgYGljb24tc3RyaW5nJyByZXR1cm5lZCBhbiBpbWFnZSwgaXRzIGBkaXNw
bGF5JyBwcm9wZXJ0eQorICAgICAgICAgOzsgb24gY2hhciAwIGhvbGRzIHRoZSBhY3R1YWwgaW1h
Z2Ugc3BlYzsgbmVzdGVkIGBkaXNwbGF5JworICAgICAgICAgOzsgcHJvcHMgYXJlIG5vdCBob25v
cmVkIHdoZW4gYSBzdHJpbmcgaXMgdGhlIHZhbHVlIG9mIGEKKyAgICAgICAgIDs7IGBkaXNwbGF5
JyB0ZXh0LXByb3BlcnR5LCBzbyBhcHBseSB0aGUgc3BlYyBkaXJlY3RseS4KKyAgICAgICAgIChk
aXNwbGF5LXNwZWMKKyAgICAgICAgICAob3IgKGFuZCAoZXEgdmFsdWUgJ2ljb24pIHJlcGxhY2Vt
ZW50CisgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2Rpc3BsYXkgcmVw
bGFjZW1lbnQpKQorICAgICAgICAgICAgICByZXBsYWNlbWVudCkpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAoYW5k
IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50CisgICAgICAgICAgICAgKG9yIChl
cSB2YWx1ZSAnaWNvbikKKyAgICAgICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJl
ZiByZXBsYWNlbWVudCAwKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFy
dCBub2RlLWVuZCAnZGlzcGxheSBkaXNwbGF5LXNwZWMpCisgICAgICAocmVtb3ZlLXRleHQtcHJv
cGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1saW5lLWJyZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0
IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBoYXJkIGxpbmUgYnJlYWsgTk9ERTsgc2hvdyBhIFVu
aWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK0EgYmFja3NsYXNoIGJyZWFrIGdl
dHMgYG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gnIChvciBpdHMKK2AtaGlk
ZGVuJyB2YXJpYW50IHdoZW4gbWFya3VwIGlzIGhpZGRlbik7IGEgdHJhaWxpbmctc3BhY2VzIGJy
ZWFrIGdldHMKK2BtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UnIChvciBgLWhpZGRl
bicpLiAgV2hlbiBoaWRkZW4sIGEKK2JhY2tzbGFzaCBicmVhayBpcyByZXBsYWNlZCBieSBhIHNp
bmdsZSBgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrJworZ2x5cGg7IGEgdHJhaWxpbmctc3Bh
Y2VzIGJyZWFrIHJlcGxhY2VzIGVhY2ggc3BhY2Ugd2l0aCB0aGUgZ2x5cGgsIHNvIHRoZSBydW4K
K29mIHBpbGNyb3dzIGZpbGxzIHRoZSBsaW5lIHVwIHRvIHRoZSBuZXdsaW5lLgorT1ZFUlJJREUs
IFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisg
ICAgICAgICAodGV4dCAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkKKyAgICAgICAg
IChiYWNrc2xhc2ggIChhbmQgKD4gKGxlbmd0aCB0ZXh0KSAwKSAoZXEgKGFyZWYgdGV4dCAwKSA/
XFwpKSkKKyAgICAgICAgIDs7IERldGVybWluZSB0aGUgYWN0dWFsIHJhbmdlIHRvIGZvbnRpZnkg
YW5kIHJlcGxhY2UuICBUaGUKKyAgICAgICAgIDs7IGhhcmRfbGluZV9icmVhayBub2RlIG1heSBu
b3QgY292ZXIgdGhlIGZ1bGwgcnVuIG9mIHRyYWlsaW5nCisgICAgICAgICA7OyBzcGFjZXMsIHNv
IHdhbGsgYmFjayBmcm9tIGVuZC1vZi1saW5lIG91cnNlbHZlcyBmb3IgdGhlCisgICAgICAgICA7
OyBzcGFjZXMgdmFyaWFudC4KKyAgICAgICAgIChyZWdpb24gICAgIChpZiBiYWNrc2xhc2gKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBub2RlLXN0YXJ0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGlmIChhbmQgKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNoYXItYmVmb3JlIG5vZGUtZW5k
KSA/XG4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gbm9kZS1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLWVuZCkpCisgICAgICAgICAg
ICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChn
b3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZW9s
IChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFy
cy1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlb2wpKSkpKQorICAg
ICAgICAgKHJlZ2lvbi1zdGFydCAoY2FyIHJlZ2lvbikpCisgICAgICAgICAocmVnaW9uLWVuZCAg
IChjZHIgcmVnaW9uKSkKKyAgICAgICAgIChmYWNlICAgICAgIChjb25kCisgICAgICAgICAgICAg
ICAgICAgICAgKChhbmQgYmFja3NsYXNoIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKQorICAgICAg
ICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1o
aWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tzbGFzaCAnbWFya2Rvd24tdHMtaGFy
ZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24t
dHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1zcGFjZS1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKHQgJ21hcmtk
b3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSkpKSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdp
dGgtb3ZlcnJpZGUgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgZmFjZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsgQWx3YXlzIHN0
YXJ0IGJ5IGNsZWFyaW5nIGFueSBzdGFsZSBgZGlzcGxheScgcHJvcGVydHkuICBXZSBuZXZlcgor
ICAgIDs7IHNwYW4gdGhlIHRyYWlsaW5nIG5ld2xpbmUgd2l0aCBgZGlzcGxheScgKGl0IGNvbmZ1
c2VzCisgICAgOzsgcmVkaXNwbGF5J3MgY3Vyc29yIHBsYWNlbWVudCksIGFuZCB3ZSBvbmx5IHBh
aW50IGEgc2luZ2xlCisgICAgOzsgY29tYmluZWQgc3RyaW5nIG9udG8gdGhlIGZpcnN0IGNoYXJh
Y3RlciBvZiB0aGUgcnVuLCBsZWF2aW5nCisgICAgOzsgdGhlIHJlc3Qgb2YgdGhlIG1hcmt1cCBh
bG9uZS4KKyAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyByZWdpb24tc3RhcnQgcmVnaW9uLWVu
ZCAnKGRpc3BsYXkgbmlsKSkKKyAgICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAg
ICAgKGxldCogKChzcGVjIChpZiBiYWNrc2xhc2gKKyAgICAgICAgICAgICAgICAgICAgICAgKG1h
cmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpCisgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpKQorICAgICAgICAgICAgIChz
dHIgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoKG51bGwgc3BlYykgbmlsKQorICAgICAgICAg
ICAgICAgICAgICgoY2hhcmFjdGVycCBzcGVjKSAoY2hhci10by1zdHJpbmcgc3BlYykpCisgICAg
ICAgICAgICAgICAgICAgKChzdHJpbmdwIHNwZWMpIHNwZWMpCisgICAgICAgICAgICAgICAgICAg
KChmdW5jdGlvbnAgc3BlYykKKyAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc3BlYyAoLSBy
ZWdpb24tZW5kIHJlZ2lvbi1zdGFydCkpKSkpKQorICAgICAgICAod2hlbiAoYW5kIChzdHJpbmdw
IHN0cikKKyAgICAgICAgICAgICAgICAgICAoPiAobGVuZ3RoIHN0cikgMCkKKyAgICAgICAgICAg
ICAgICAgICAoY2hhci1kaXNwbGF5YWJsZS1wIChhcmVmIHN0ciAwKSkpCisgICAgICAgICAgKHB1
dC10ZXh0LXByb3BlcnR5IHJlZ2lvbi1zdGFydCAoMSsgcmVnaW9uLXN0YXJ0KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnZGlzcGxheSBzdHIpCisgICAgICAgICAgOzsgRm9yIHRoZSB0
cmFpbGluZy1zcGFjZXMgdmFyaWFudCwgaGlkZSB0aGUgcmVtYWluaW5nCisgICAgICAgICAgOzsg
c3BhY2VzIGluIHRoZSBydW4gc28gdGhlIGxpbmUgZG9lc24ndCBlbmQgd2l0aCBsZWZ0b3Zlcgor
ICAgICAgICAgIDs7IHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIHN1YnN0aXR1dGVkIGdseXBoLiAgRWFj
aCBwb3NpdGlvbgorICAgICAgICAgIDs7IGdldHMgaXRzIG93biBlbXB0eS1zdHJpbmcgYGRpc3Bs
YXknIHNvIGN1cnNvciBwbGFjZW1lbnQKKyAgICAgICAgICA7OyBzdGF5cyB1bmFtYmlndW91cy4K
KyAgICAgICAgICAodW5sZXNzIGJhY2tzbGFzaAorICAgICAgICAgICAgKGxldCAoKGkgKDErIHJl
Z2lvbi1zdGFydCkpKQorICAgICAgICAgICAgICAod2hpbGUgKDwgaSByZWdpb24tZW5kKQorICAg
ICAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBpICgxKyBpKSAnZGlzcGxheSAiIikKKyAg
ICAgICAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWsgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0
IF8pCisgICJGb250aWZ5IHRoZW1hdGljIGJyZWFrIE5PREUgYW5kIHNob3cgYSBsaW5lIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRo
cm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0ICgobm9k
ZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKHRy
ZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlk
ZSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGxldCAoKGNoYXIgKG1hcmtkb3duLXRz
LS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyKSkpCisgICAgICAoaWYgKGFuZCBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cCBjaGFyIChjaGFyLWRpc3BsYXlhYmxlLXAgY2hhcikpCisgICAgICAgICAgKGxldCog
KChjb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkpCisgICAgICAgICAg
ICAgICAgIDs7IFNwYW4gaWYgdGhlIGZhY2UgaGFzIG5vbi1uaWwgOmV4dGVuZC4KKyAgICAgICAg
ICAgICAgICAgKHNwYW4tbGVuZ3RoIChpZiAoZmFjZS1hdHRyaWJ1dGUgJ21hcmtkb3duLXRzLXRo
ZW1hdGljLWJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDpleHRlbmQgbmlsICdkZWZhdWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgtICh3aW5kb3ctYm9keS13aWR0aCkgY29sKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMikpKQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzcGxheQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2Utc3RyaW5nIHNwYW4tbGVuZ3RoIGNoYXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJcbiIpKSkKKyAgICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRp
ZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAm
cmVzdCBfKQorICAiRm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnQgTk9ERSB3aXRoIGEgYmFja2dy
b3VuZCBvdmVybGF5LgorVXNlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1hcmt1cC1oaWRkZW4n
IHdoZW4gbWFya3VwIGlzIGhpZGRlbiwKK2BtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBvdGhlcndp
c2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0aGUKK2JhY2tncm91bmQgbGF5ZXJzIGl0c2VsZiBiZWhp
bmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9udGlmaWNhdGlvbi4KK1RoZSBvdmVybGF5IGFsc28gc3Rv
cmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1YWdlIGFuZCBtb2RlIGFzCitwcm9wZXJ0aWVzIGBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlJyBhbmQKK2BtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQorYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2Ut
YXQnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAg
ICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgKG5v
ZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJz
LWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAg
ICAoZmFjZSAoaWYgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisgICAgICAgICAgICAgICAgICdt
YXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgIChsYW5nIChtYXJrZG93bi10cy0tbGFu
Z3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAgICAgICAgIChtb2RlICh3aGVuIGxhbmcKKyAgICAgICAg
ICAgICAgICAgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykpKQor
ICAgICAgICAgKGV4aXN0aW5nIChzZXEtZmluZCAobGFtYmRhIChvdikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2sp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheXMtYXQgbm9kZS1zdGFydCkp
KSkKKyAgICAoaWYgZXhpc3RpbmcKKyAgICAgICAgKHByb2duCisgICAgICAgICAgKG1vdmUtb3Zl
cmxheSBleGlzdGluZyBub2RlLXN0YXJ0IG5vZGUtZW5kKQorICAgICAgICAgIChvdmVybGF5LXB1
dCBleGlzdGluZyAnZmFjZSBmYWNlKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAgIChvdmVybGF5
LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlIG1vZGUpKQorICAgICAg
KGxldCAoKG92IChtYWtlLW92ZXJsYXkgbm9kZS1zdGFydCBub2RlLWVuZCBuaWwgdCBuaWwpKSkK
KyAgICAgICAgOzsgTWFya2VycyBuZWVkIHRvIGJlIHNldCBvbmx5IG9uY2UuCisgICAgICAgIChv
dmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyIChzZXQtbWFya2VyICht
YWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS1zdGFydCkpCisgICAgICAgIChvdmVybGF5LXB1dCBv
diAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRz
LWNvZGUtYmxvY2sgdCkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92ICdmYWNlIGZhY2UpCisgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAncHJpb3JpdHkgJyhuaWwgLiAxMCkpCisgICAgICAgIChvdmVy
bGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAg
ICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKQorICAg
ICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLWF0LWNvZGUtYmxvY2stcCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiBub24gbmlsIGlm
IHBvaW50IGlzIGluIGEgY29kZSBibG9jay4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4iCisg
IChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJs
b2NrKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQgKCZvcHRp
b25hbCBwb3MpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBvZiB0aGUgY29kZSBibG9j
ayBhdCBQT1MuCitJZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuICBSZXR1cm5zIG5pbCBpZiBQT1Mg
aXMgbm90IGluc2lkZSBhIGZlbmNlZAorY29kZSBibG9jay4gIFRoaXMgd29ya3MgcmVnYXJkbGVz
cyBvZiB3aGV0aGVyIGEgZ3Vlc3QgdHJlZS1zaXR0ZXIgcGFyc2VyCitpcyBhY3RpdmUsIHNpbmNl
IHRoZSBsYW5ndWFnZSBpcyBzdG9yZWQgb24gdGhlIGNvZGUgYmxvY2sgb3ZlcmxheSBieSB0aGUK
K2hvc3QgcGFyc2VyJ3MgZm9udGlmaWNhdGlvbi4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3Ig
cG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVy
biB0aGUgbWFqb3IgbW9kZSBmb3IgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5p
bCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQK
K2NvZGUgYmxvY2sgb3IgaWYgdGhlIGxhbmd1YWdlIGhhcyBubyByZWNvZ25pemVkIG1vZGUuIgor
ICAod2hlbiAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1wIHBvcykKKyAgICAob3IgKGdldC1j
aGFyLXByb3BlcnR5IChvciBwb3MgKHBvaW50KSkgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9k
ZSkKKyAgICAgICAgbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1ob3N0LXJhbmdlcy1ub3RpZmllciAocmFuZ2VzIF9wYXJzZXIpCisg
ICJQcnVuZSBzdGFsZSBjb2RlIGJsb2NrIG92ZXJsYXlzIGFmdGVyIHRoZSBob3N0IHBhcnNlciBy
ZXBhcnNlcy4KK1JBTkdFUyBpcyBhIGxpc3Qgb2YgKFNUQVJUIC4gRU5EKSBjb25zIGNlbGxzIG1h
cmtpbmcgcmVnaW9ucyB3aGVyZQordGhlIG1hcmtkb3duIHBhcnNlIHRyZWUgY2hhbmdlZC4gIEZv
ciBlYWNoIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJworb3ZlcmxheSBpbnRlcnNlY3RpbmcgYSBj
aGFuZ2VkIHJhbmdlLCB2ZXJpZnkgdGhhdCBhIGNvbnRhaW5pbmcKK2BmZW5jZWRfY29kZV9ibG9j
aycgbm9kZSBzdGlsbCBleGlzdHMgaW4gdGhlIGhvc3QgdHJlZS4gIElmIG5vdCwKK3RoZSBmZW5j
ZXMgd2VyZSBkZWxldGVkLCBzbyBkZWxldGUgdGhlIG92ZXJsYXkgdG8gYXZvaWQgcnVubmluZwor
Y29tbWFuZHMgaW4gYSBzdGFsZSBibG9jayBjb250ZXh0LiIKKyAgKGRvbGlzdCAocmFuZ2UgcmFu
Z2VzKQorICAgIChsZXQgKChiZWcgKGNhciByYW5nZSkpCisgICAgICAgICAgKGVuZCAoY2RyIHJh
bmdlKSkpCisgICAgICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gYmVnIGVuZCkpCisgICAgICAg
ICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykKKyAgICAgICAg
ICAobGV0KiAoKG92LXN0YXJ0IChvdmVybGF5LXN0YXJ0IG92KSkKKyAgICAgICAgICAgICAgICAg
KG5vZGUgKGFuZCBvdi1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtYXQgb3Ytc3RhcnQgJ21hcmtkb3duKSkpKQorICAgICAgICAgICAgKHVubGVzcyAoYW5k
IG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAiXFxgZmVuY2VkX2NvZGVfYmxvY2tcXCciIHQp
KQorICAgICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpKSkpKQorCis7OzsgSW1hZ2Ug
aGFuZGxpbmc6CisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGluZS1wIChu
b2RlKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgaW1hZ2UgTk9ERSBpcyB0aGUgb25seSBjb250ZW50
IG9uIGl0cyBsaW5lLgorV2hpdGVzcGFjZSwgYmxvY2sgcXVvdGUgbWFya2VycyAoYD4nKSwgYW5k
IGxpc3QgbWFya2VycworXChgLScsIGAqJywgYCsnLCBgMS4nKSBiZWZvcmUgdGhlIGltYWdlIGFy
ZSBpZ25vcmVkLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAoc2F2
ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgIChsZXQgKChi
b2wgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKKyAgICAgICAgICAgIChlb2wgKGxpbmUtZW5k
LXBvc2l0aW9uKSkpCisgICAgICAgIDs7IEJlZm9yZSB0aGUgaW1hZ2U6IG9ubHkgYmxvY2sgcXVv
dGUgbWFya2Vycywgd2hpdGVzcGFjZSwKKyAgICAgICAgOzsgYW5kIGFuIG9wdGlvbmFsIGxpc3Qg
bWFya2VyIGFyZSBhbGxvd2VkLgorICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2gtcAorICAgICAg
ICAgICAgICAocnggYm9zCisgICAgICAgICAgICAgICAgICAoemVyby1vci1tb3JlIChhbnkgIj4g
XHQiKSkKKyAgICAgICAgICAgICAgICAgIChvcHRpb25hbCAob3IgKHNlcSAoYW55ICItKisiKSAi
ICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEgKG9uZS1vci1tb3JlIGRp
Z2l0KSAoYW55ICIuKSIgKSAiICIpKSkKKyAgICAgICAgICAgICAgICAgIGVvcykKKyAgICAgICAg
ICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBib2wgbm9kZS1zdGFydCkpCisg
ICAgICAgICAgICAgOzsgQWZ0ZXIgdGhlIGltYWdlOiBvbmx5IHRyYWlsaW5nIHdoaXRlc3BhY2Ug
YWxsb3dlZC4KKyAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAgICAgICAgKHJ4
IGJvcyAoemVyby1vci1tb3JlIChhbnkgIiBcdCIpKSBlb3MpCisgICAgICAgICAgICAgIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbm9kZS1lbmQgZW9sKSkpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZvbnRpZnktaW1hZ2UgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBfZW5kICZy
ZXN0IF8pCisgICJTaG93IGFuIGlubGluZSBpbWFnZSBhdCBOT0RFLgorV2hlbiBgbWFya2Rvd24t
dHMtaW5saW5lLWltYWdlcycgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGUgaW1hZ2UuCitJZiB0aGUg
aW1hZ2UgbGluayBpcyB0aGUgb25seSBjb250ZW50IG9uIGl0cyBsaW5lLCBkaXNwbGF5IHRoZQor
aW1hZ2UgYmVsb3cgdGhlIGxpbmsuICBJZiB0aGUgaW1hZ2UgaXMgaW5saW5lIHdpdGhpbiBhIHBh
cmFncmFwaCwKK2Rpc3BsYXkgaXQgcmlnaHQgYWZ0ZXIgdGhlIGxpbmsgdGV4dC4KK1JlbW90ZSBp
bWFnZXMgYXJlIGNvbnRyb2xsZWQgYnkKK2BtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxp
bmUtaW1hZ2VzJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5v
ZGUpKQorICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAg
ICAgKGVvbCAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBub2RlLWVuZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgKHNlYXJj
aC1lbmQgKG1pbiAoMSsgZW9sKSAocG9pbnQtbWF4KSkpKQorICAgIDs7IEFsd2F5cyBjbGVhciBz
dGFsZSBvdmVybGF5cyBmb3IgdGhpcyBub2RlJ3MgcmFuZ2UuCisgICAgKGRvbGlzdCAob3YgKG92
ZXJsYXlzLWluIG5vZGUtc3RhcnQgc2VhcmNoLWVuZCkpCisgICAgICAod2hlbiAoYW5kIChvdmVy
bGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisgICAgICAgICAgICAgICAgICg+PSAob3Zl
cmxheS1zdGFydCBvdikgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgKDw9IChvdmVybGF5
LWVuZCBvdikgc2VhcmNoLWVuZCkpCisgICAgICAgIChkZWxldGUtb3ZlcmxheSBvdikpKQorICAg
ICh3aGVuIChhbmQgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAgICAgICAgICAgOzsg
RG9uJ3QgY3JlYXRlIGltYWdlIG92ZXJsYXlzIGZvciBub2RlcyBpbnNpZGUKKyAgICAgICAgICAg
ICAgIDs7IGZvbGRlZCAob3V0bGluZS1pbnZpc2libGUpIGhlYWRpbmdzLCBzaW5jZSB0aGUKKyAg
ICAgICAgICAgICAgIDs7IGltYWdlcyB3b3VsZG4ndCBiZSB2aXNpYmxlIGFuZCBjb3VsZCBpbnRl
cmZlcmUKKyAgICAgICAgICAgICAgIDs7IHdpdGggdGhlIGZvbGRlZCBkaXNwbGF5LgorICAgICAg
ICAgICAgICAgKG5vdCAobWFya2Rvd24tdHMtLW91dGxpbmUtaW52aXNpYmxlLXAgbm9kZS1zdGFy
dCkpKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5vZGUgIlxc
YGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJsIChhbmQgZGVzdCAodHJl
ZXNpdC1ub2RlLXRleHQgZGVzdCB0KSkpCisgICAgICAgICAgICAgKHJlbW90ZXAgKGFuZCB1cmwg
KHN0cmluZy1tYXRjaC1wICJcXGBodHRwcz86Ly8iIHVybCkpKQorICAgICAgICAgICAgIChkaXNw
bGF5YWJsZQorICAgICAgICAgICAgICAod2hlbiB1cmwKKyAgICAgICAgICAgICAgICAoaWYgcmVt
b3RlcAorICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXEgbWFya2Rvd24tdHMtZGlzcGxheS1y
ZW1vdGUtaW5saW5lLWltYWdlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rvd25s
b2FkKQorICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCisgICAgICAgICAgICAg
ICAgICAgICAgICAocmVxdWlyZSAndXJsLWhhbmRsZXJzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgKHdpdGgtd29yay1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1idWZm
ZXItbXVsdGlieXRlIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHVybC1pbnNlcnQt
ZmlsZS1jb250ZW50cyB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Ry
aW5nKSkpKQorICAgICAgICAgICAgICAgICAgKGxldCAoKGZpbGUgKGV4cGFuZC1maWxlLW5hbWUg
dXJsKSkpCisgICAgICAgICAgICAgICAgICAgIChhbmQgKG5vdCAoZmlsZS1yZW1vdGUtcCBmaWxl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1leGlzdHMtcCBmaWxlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbWFnZS1zdXBwb3J0ZWQtZmlsZS1wIGZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgZmlsZSkpKSkpCisgICAgICAgICAgICAgKG1heC13IChhbmQgZGlz
cGxheWFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIG1hcmtkb3duLXRzLWlt
YWdlLW1heC13aWR0aCAnd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lu
ZG93LWJvZHktd2lkdGggbmlsIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93
bi10cy1pbWFnZS1tYXgtd2lkdGgpKSkKKyAgICAgICAgICAgICAoaW1nIChhbmQgbWF4LXcKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZS1pbWFnZSBkaXNwbGF5YWJsZSBuaWwgcmVtb3Rl
cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXgtd2lkdGggbWF4LXcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2NhbGUgMSkpKSkKKyAgICAg
ICAgKHdoZW4gaW1nCisgICAgICAgICAgKGxldCogKChhbG9uZSAobWFya2Rvd24tdHMtLWltYWdl
LWFsb25lLW9uLWxpbmUtcCBub2RlKSkKKyAgICAgICAgICAgICAgICAgKHN0ciAoaWYgYWxvbmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXG4iIChwcm9wZXJ0aXplICIgIiAn
ZGlzcGxheSBpbWcpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUgIiAiICdk
aXNwbGF5IGltZykpKQorICAgICAgICAgICAgICAgICAob3YgKG1ha2Utb3ZlcmxheSAoMS0gbm9k
ZS1lbmQpIG5vZGUtZW5kIG5pbCB0IG5pbCkpKQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92
ICdtYXJrZG93bi10cy1pbWFnZSB0KQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdhZnRl
ci1zdHJpbmcgc3RyKQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdldmFwb3JhdGUgdCkp
KSkpKSkKKworOzs7IFVSTC9VUkkgaGFuZGxpbmc6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLWJh
cmUtdXJsLXJlZ2V4cCBnb3RvLWFkZHJlc3MtdXJsLXJlZ2V4cAorICAiUmVnZXhwIG1hdGNoaW5n
IGJhcmUgVVJMcyBub3Qgd3JhcHBlZCBpbiBhbmdsZSBicmFja2V0cyBvciBsaW5rIHN5bnRheC4i
KQorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1yZWdleHAgZ290by1hZGRy
ZXNzLW1haWwtcmVnZXhwCisgICJSZWdleHAgbWF0Y2hpbmcgYmFyZSBlbWFpbCBhZGRyZXNzZXMg
bm90IHdyYXBwZWQgaW4gYW5nbGUgYnJhY2tldHMuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWJhcmUtdXJpIChzdGFydCBlbmQpCisgICJGb250aWZ5IGJhcmUgVVJMIG9yIGVtYWls
IFVSSSBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuCitTa2lwIG1hdGNoZXMgYWxyZWFkeSBpbnNpZGUg
dHJlZS1zaXR0ZXIgbGluayBvciBhdXRvbGluayBub2Rlcy4iCisgIChkb2xpc3QgKHJlIChsaXN0
IG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rv
d24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCkpCisgICAgKGdvdG8tY2hhciBzdGFydCkKKyAg
ICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIGVuZCB0KQorICAgICAgKGxldCogKCh1cmkt
c3RhcnQgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgICAodXJpLWVuZCAobWF0Y2gt
ZW5kIDApKQorICAgICAgICAgICAgICh1cmkgKG1hdGNoLXN0cmluZyAwKSkKKyAgICAgICAgICAg
ICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHVyaS1zdGFydCAnbWFya2Rvd24taW5saW5lKSkKKyAg
ICAgICAgICAgICAocGFyZW50IChhbmQgbm9kZSAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkp
CisgICAgICAgICAgICAgKHBhcmVudC10eXBlIChhbmQgcGFyZW50ICh0cmVlc2l0LW5vZGUtdHlw
ZSBwYXJlbnQpKSkpCisgICAgICAgICh1bmxlc3MgKG9yIChtZW1iZXIgcGFyZW50LXR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJpbmxpbmVfbGluayIgImZ1bGxfcmVmZXJlbmNl
X2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGFwc2VkX3JlZmVyZW5j
ZV9saW5rIiAic2hvcnRjdXRfbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJp
bWFnZSIgInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iKSkKKyAgICAgICAgICAgICAgICAgICAgKG1l
bWJlciAoYW5kIG5vZGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcoInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iICJjb2RlX3NwYW4iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9mZW5jZV9jb250ZW50IiAiaW5mb19zdHJp
bmciKSkKKyAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IHVyaS1zdGFydCAn
YnV0dG9uKSkKKyAgICAgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24KKyAgICAg
ICAgICAgdXJpLXN0YXJ0IHVyaS1lbmQKKyAgICAgICAgICAgKGlmIChlcSB1cmktc3RhcnQgMCkK
KyAgICAgICAgICAgICAgIHVyaQorICAgICAgICAgICAgIChjb25jYXQgIm1haWx0bzoiIHVyaSkp
KSkpKSkpCisKKzs7OyB0cmVlc2l0IHNldHRpbmdzOgorCiAoZGVmdmFyIG1hcmtkb3duLXRzLS10
cmVlc2l0LXNldHRpbmdzCiAgICh0cmVlc2l0LWZvbnQtbG9jay1ydWxlcworICAgOmxhbmd1YWdl
ICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ2Vycm9yCisgICA6b3ZlcnJpZGUgdAorICAgJygoRVJS
T1IpIEBmb250LWxvY2std2FybmluZy1mYWNlKQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlu
bGluZQogICAgOm92ZXJyaWRlIHQKICAgIDpmZWF0dXJlICdkZWxpbWl0ZXIKLSAgICcoKGlubGlu
ZV9saW5rIFsgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykKLSAgICAgKGltYWdlIFsgIiEiICJb
IiAiXSIgIigiICIpIiBdIEBzaGFkb3cpKQorICAgJygoaW5saW5lX2xpbmsgWyAiWyIgIl0iICIo
IiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoZnVsbF9yZWZl
cmVuY2VfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQor
ICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChzaG9ydGN1dF9saW5rIFsgIlsiICJdIiBdIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChpbWFnZSBbICIhIiAiWyIgIl0iICIo
IiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkKIAogICAgOmxhbmd1YWdl
ICdtYXJrZG93bgogICAgOmZlYXR1cmUgJ2hlYWRpbmcKLSAgICcoKGF0eF9oZWFkaW5nIChhdHhf
aDFfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMQotICAgICAoYXR4X2hlYWRpbmcgKGF0
eF9oMl9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy0yCi0gICAgIChhdHhfaGVhZGluZyAo
YXR4X2gzX21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTMKLSAgICAgKGF0eF9oZWFkaW5n
IChhdHhfaDRfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNAotICAgICAoYXR4X2hlYWRp
bmcgKGF0eF9oNV9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy01Ci0gICAgIChhdHhfaGVh
ZGluZyAoYXR4X2g2X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTYKLSAgICAgKHNldGV4
dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAnKCgoYXR4X2hlYWRp
bmcpICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKQorICAgICAoKHNldGV4dF9oZWFk
aW5nKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGVhZGluZykpCiAKICAgIDpsYW5ndWFnZSAnbWFy
a2Rvd24KICAgIDpmZWF0dXJlICdoZWFkaW5nCkBAIC0xOTQsMTYgKzE2MDcsNDAgQEAgbWFya2Rv
d24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgKGF0eF9oM19tYXJrZXIpIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNF9tYXJrZXIpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnkt
ZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAn
cGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJlYWspIEBtYXJrZG93bi10cy1kZWxpbWl0ZXIp
Ci0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAg
ICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFr
KQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93bi10cy1odG1sLWJsb2NrKQorICAgICAoKGlu
ZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrKQogICAg
ICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFyKSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIp
CiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMpIEBtYXJrZG93bi10cy1saXN0LW1h
cmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfbWludXMpIEBtYXJrZG93bi10cy1s
aXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFya2Rvd24t
dHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJr
ZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfcGFyZW50
aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAodGFza19s
aXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2JveCkKKyAg
ICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl9jaGVja2VkKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktY2hlY2tib3gpCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAo
bGlua19sYWJlbCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQorICAgICAo
bGlua19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfZGVzdGluYXRpb24pIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbikKKyAgICAgKGxpbmtfcmVmZXJl
bmNlX2RlZmluaXRpb24KKyAgICAgIChsaW5rX3RpdGxlKSBAbWFya2Rvd24tdHMtbGluay1kZXN0
aW5hdGlvbikpCisKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3Jh
cGgKKyAgIDpvdmVycmlkZSAncHJlcGVuZAorICAgJygocGlwZV90YWJsZV9oZWFkZXIgInwiIEBt
YXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisgICAgIChwaXBlX3RhYmxlX2hlYWRlciAocGlwZV90
YWJsZV9jZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtaGVhZGVyKQorICAgICAocGlwZV90YWJsZV9y
b3cgInwiIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCkKKyAgICAgKHBpcGVfdGFi
bGVfcm93IChwaXBlX3RhYmxlX2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1jZWxsKQorICAgICAo
cGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93ICJ8IiBAbWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVy
LWNlbGwpCisgICAgICgocGlwZV90YWJsZSkgQG1hcmtkb3duLXRzLXRhYmxlKQorICAgICAocGlw
ZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3RhYmxlX2RlbGltaXRlcl9jZWxsKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2Vs
bCkpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgKQEAg
LTIxMiw4OSArMTY0OSw5OTkgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAg
KGJsb2NrX3F1b3RlX21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAg
ICAoZmVuY2VkX2NvZGVfYmxvY2tfZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVs
aW1pdGVyCiAgICAgIChmZW5jZWRfY29kZV9ibG9jawotICAgICAgKGluZm9fc3RyaW5nIChsYW5n
dWFnZSkgQG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIpCisgICAgICAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbWFya2Rvd24tdHMt
bGFuZ3VhZ2Uta2V5d29yZCkKKyAgICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIp
CiAgICAgIChibG9ja19xdW90ZQogICAgICAgKGJsb2NrX3F1b3RlX21hcmtlcikgQG1hcmtkb3du
LXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgICAgKHBhcmFncmFwaCAoaW5saW5lIChibG9ja19j
b250aW51YXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpKSkpCiAKKyAgIDps
YW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3JhcGgKKyAgIDpvdmVycmlkZSAn
YXBwZW5kCisgICAnKChmZW5jZWRfY29kZV9ibG9jaworICAgICAgKGluZm9fc3RyaW5nIChsYW5n
dWFnZSkpCisgICAgICAoY29kZV9mZW5jZV9jb250ZW50KSBAbWFya2Rvd24tdHMtLWZvbnRpZnkt
bm9uLXRzLWNvZGUtYmxvY2spKQorCisgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCisgICA6ZmVhdHVy
ZSAncGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoZmVuY2VkX2NvZGVfYmxv
Y2sgKGNvZGVfZmVuY2VfY29udGVudCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWNvZGUtYmxvY2sp
KQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOm92ZXJyaWRlICdhcHBlbmQK
ICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgtaW5saW5lCi0gICAnKCgoaW1hZ2VfZGVzY3JpcHRpb24p
IEBsaW5rKQotICAgICAoKGxpbmtfZGVzdGluYXRpb24pIEBmb250LWxvY2stc3RyaW5nLWZhY2Up
Ci0gICAgICgoY29kZV9zcGFuKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQorICAgJygoKGxpbmtf
ZGVzdGluYXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uKQorICAg
ICAoKGNvZGVfc3BhbikgQG1hcmtkb3duLXRzLWNvZGUtc3BhbikKICAgICAgKChjb2RlX3NwYW5f
ZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQotICAgICAoKGVtcGhh
c2lzKSBAaXRhbGljKQotICAgICAoKHN0cm9uZ19lbXBoYXNpcykgQGJvbGQpCi0gICAgIChpbmxp
bmVfbGluayAobGlua190ZXh0KSBAbGluaykKLSAgICAgKGlubGluZV9saW5rIChsaW5rX2Rlc3Rp
bmF0aW9uKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoc2hvcnRjdXRfbGluayAobGlu
a190ZXh0KSBAbGluaykpCisgICAgICgoZW1waGFzaXMpIEBtYXJrZG93bi10cy1lbXBoYXNpcykK
KyAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBtYXJrZG93bi10cy1ib2xkKQorICAgICAoKHN0cmlr
ZXRocm91Z2gpIEBtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoKQorICAgICAoaW5saW5lX2xpbmsg
KGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGZ1bGxf
cmVmZXJlbmNlX2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9k
ZSkKKyAgICAgKGZ1bGxfcmVmZXJlbmNlX2xpbmsgKGxpbmtfbGFiZWwpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLW5vZGUpCisgICAgIChjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsgKGxpbmtf
dGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKHNob3J0Y3V0X2xp
bmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGlt
YWdlIChpbWFnZV9kZXNjcmlwdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkK
KyAgICAgKCh1cmlfYXV0b2xpbmspIEBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluaykKKyAg
ICAgKChlbWFpbF9hdXRvbGluaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKQorICAg
ICAoaW5saW5lX2xpbmsgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9u
KQorICAgICAoKGJhY2tzbGFzaF9lc2NhcGUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xh
c2gtZXNjYXBlKQorICAgICAoKGVudGl0eV9yZWZlcmVuY2UpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1lbnRpdHkpCisgICAgICgobnVtZXJpY19jaGFyYWN0ZXJfcmVmZXJlbmNlKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktZW50aXR5KQorICAgICAoKGh0bWxfdGFnKSBAbWFya2Rvd24tdHMtaHRtbC10
YWcpCisgICAgICgoaGFyZF9saW5lX2JyZWFrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1s
aW5lLWJyZWFrKQorICAgICAoKGxhdGV4X2Jsb2NrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGF0
ZXgtYmxvY2spKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOmZlYXR1cmUg
J3BhcmFncmFwaC1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICAnKChlbXBoYXNpc19k
ZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCi0gICApKQogCi07Ozsg
SW1lbnUKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCisgICA6ZmVhdHVyZSAnaW1hZ2Ut
cHJldmlldworICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGltYWdlKSBAbWFya2Rvd24tdHMt
LWZvbnRpZnktaW1hZ2UpKSkKKworOzs7IEltZW51OgogCi0oZGVmdW4gbWFya2Rvd24tdHMtaW1l
bnUtbm9kZS1wIChub2RlKQorKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5vZGUt
cCAobm9kZSkKICAgIkNoZWNrIGlmIE5PREUgaXMgYSB2YWxpZCBlbnRyeSB0byBpbWVudS4iCi0g
IChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCi0g
ICAgICAgICAiYXR4X2hlYWRpbmciKSkKKyAgKGFuZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBl
IG5vZGUpICJpbmxpbmUiKQorICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVz
aXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAgICAgICJhdHhfaGVhZGluZyIpKSkKIAot
KGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24gKG5vZGUpCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWltZW51LWhlYWRpbmctbmFtZS1mdW5jdGlvbiAobm9kZSkKICAgIlJldHVybiBh
biBpbWVudSBlbnRyeSBpZiBOT0RFIGlzIGEgdmFsaWQgaGVhZGVyLiIKICAgKGxldCAoKG5hbWUg
KHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKLSAgICAoaWYgKG1hcmtkb3duLXRzLWltZW51LW5v
ZGUtcCBub2RlKQotCSh0aHJlYWQtZmlyc3QgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkgKHRy
ZWVzaXQtbm9kZS10ZXh0KSkKKyAgICAoaWYgKG1hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5v
ZGUtcCBub2RlKQorICAgICAgICAoY2FyIChzcGxpdC1zdHJpbmcgKHRyZWVzaXQtbm9kZS10ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIiB0ICIgIikpCiAgICAgICBuYW1lKSkpCiAK
LShkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSAobm9kZSkKLSAgIk1hdGNoIGEg
aGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIKKyhkZWZ1biBtYXJrZG93
bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAgKG5vZGUpCisgICJDaGVjayBpZiBOT0RFIGlz
IGFuIGluZm9fc3RyaW5nIHdpdGggZGVzY3JpcHRpdmUgdGV4dCBhZnRlciB0aGUgbGFuZ3VhZ2Uu
IgorICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImluZm9fc3RyaW5nIikK
KyAgICAgICAod2hlbi1sZXQqICgobGFuZy1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5v
ZGUgImxhbmd1YWdlIikpCisgICAgICAgICAgICAgICAgICAgKCg8ICh0cmVlc2l0LW5vZGUtZW5k
IGxhbmctbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9k
ZSkpKSkKKyAgICAgICAgIChub3QgKHN0cmluZy1ibGFuay1wCisgICAgICAgICAgICAgICAoYnVm
ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1lbmQgbGFuZy1ub2RlKQorICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUp
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0
aW9uIChub2RlKQorICAiUmV0dXJuIGFuIGltZW51IGVudHJ5IG5hbWUgZm9yIGEgY29kZSBibG9j
ayBpbmZvX3N0cmluZyBOT0RFLgorVXNlcyB0aGUgZGVzY3JpcHRpdmUgdGV4dCBhZnRlciB0aGUg
bGFuZ3VhZ2UgbmFtZS4iCisgICh3aGVuLWxldCogKChsYW5nLW5vZGUgKHRyZWVzaXQtc2VhcmNo
LXN1YnRyZWUgbm9kZSAibGFuZ3VhZ2UiKSkKKyAgICAgICAgICAgICAgKGRlc2MgKHN0cmluZy10
cmltCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz
CisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFuZy1ub2RlKQorICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpKQorICAgIChmb3Jt
YXQgIiVzOiAlcyIgKHRyZWVzaXQtbm9kZS10ZXh0IGxhbmctbm9kZSkgZGVzYykpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLW91dGxpbmUtcHJlZGljYXRlIChub2RlKQorICAiTWF0Y2ggTk9ERSBp
ZiBpdCBpcyBhIGhpZXJhcmNoaWNhbCBzZWN0aW9uIHRoYXQgaGFzIGEgaGVhZGluZy4iCiAgIChh
bmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAic2VjdGlvbiIpCiAgICAgICAgKHdo
ZW4tbGV0KiAoKGNoaWxkICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwKSkpCiAgICAgICAgICAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAiYXR4X2hlYWRpbmciKSkpKQogCi07Ozsg
Q29kZSBibG9ja3MKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKKworKGRlZmNvbnN0IG1hcmtk
b3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11bSBBVFggaGVhZGlu
ZyBsZXZlbCBpbiBNYXJrZG93biAoaDEtaDYpLgorRGVmaW5lZCBieSB0aGUgQ29tbW9uTWFyayBz
cGVjIGFuZCB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iKQogCi0oZGVmdmFyLWxvY2FsIG1hcmtk
b3duLXRzLS1jb25maWd1cmVkLWxhbmd1YWdlcyBuaWwKLSAgIkEgbGlzdCBvZiBsYW5ndWFnZXMg
dGhhdCBoYXZlIGJlZW4gc2V0dXAgaW4gdGhpcyBidWZmZXIuCisoZGVmdW4gbWFya2Rvd24tdHMt
LWhlYWRpbmctYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgYXR4X2hlYWRpbmcgbm9kZSBhdCBv
ciBiZWZvcmUgcG9pbnQsIG9yIG5pbC4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5v
ZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAoaWYgKGVxdWFsICh0cmVlc2l0LW5vZGUt
dHlwZSBub2RlKSAiYXR4X2hlYWRpbmciKQorICAgICAgICBub2RlCisgICAgICAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbikgImF0eF9oZWFkaW5nIikpKSkpKQogCi1XaGVuIGEgY29kZSBibG9jayBvZiBhIGxh
bmd1YWdlIGFwcGVhcnMsIGBtYXJrZG93bi10cy1tb2RlJyBsb2FkcwotbGFuZ3VhZ2Ugc2V0dXBz
IGxpa2UgZm9udC1sb2NrIGFuZCBpbmRlbnRhdGlvbiBmb3IgdGhhdCBsYW5ndWFnZSwgYW5kCi1h
ZGRzIHRoYXQgbGFuZ3VhZ2UgdG8gdGhpcyBsaXN0LiIpCisoZGVmdW4gbWFya2Rvd24tdHMtLWhl
YWRpbmctbGV2ZWwgKGhlYWRpbmcpCisgICJSZXR1cm4gSEVBRElORyBsZXZlbCAocmFuZ2UgMSB0
byBgbWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCcpLiIKKyAgKGxldCAoKG1h
cmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpKQorICAgIChsZW5ndGggKHRyZWVz
aXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMtLWhhcnZlc3Qt
dHJlZXNpdC1jb25maWdzIChtb2RlKQotICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWdzIGZy
b20gTU9ERS4KLVJldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1
ZToKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRo
ZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4iCisgICh3aGVuLWxldCogKChub2RlICh0
cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAodHJlZXNpdC1wYXJlbnQt
dW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4p
ICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1wcm9tb3RlICgpCisgICJQcm9t
b3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5ncywgZGVj
cmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4KK0ZvciBsaXN0IGl0ZW1zLCBkZWNyZWFz
ZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24gYW5kIG1h
cmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3MgaW4gdGhlIHJlZ2lvbi4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5zaWVudC1tYXJrLW1vZGUgbWFyay1hY3Rp
dmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZS1yZWdpb24gLTEpKQorICAg
KChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgIChtYXJrZG93bi10cy0tbGlz
dC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9y
LWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWRlbW90ZSAoKQorICAiRGVtb3Rl
IHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5ncywgaW5jcmVh
c2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0ZvciBsaXN0IGl0ZW1zLCBpbmNyZWFzZSBu
ZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24gYW5kIG1hcmsg
YWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0aGUgcmVnaW9uLiIKKyAgKGludGVyYWN0
aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50LW1hcmstbW9kZSBtYXJrLWFjdGl2ZSkK
KyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbiAxKSkKKyAgICgobWFy
a2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAobWFya2Rvd24tdHMtLWxpc3QtcHJv
bW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3Rl
IDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUgKGRlbHRhKQor
ICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5IERFTFRBIGxldmVscy4KK05lZ2F0aXZl
IERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRpdmUgZGVtb3RlcyAobW9yZSAjKS4KK0lm
IHRoZSBoZWFkaW5nIGhhcyBhbiBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJyBzZXF1ZW5j
ZSwgdGhhdAorc2VxdWVuY2UgaXMgcmVzaXplZCB0byBtYXRjaCB0aGUgbmV3IGxldmVsLiIKKyAg
KHdoZW4tbGV0KiAoKGhlYWRpbmcgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50KSkKKyAg
ICAgICAgICAgICAgKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpCisgICAg
ICAgICAgICAgIChsZXZlbCAobGVuZ3RoICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkpKQor
ICAgICAgICAgICAgICAobmV3LWxldmVsICgrIGxldmVsIGRlbHRhKSkpCisgICAgKHdoZW4gKGFu
ZCAoPj0gbmV3LWxldmVsIDEpCisgICAgICAgICAgICAgICAoPD0gbmV3LWxldmVsIG1hcmtkb3du
LXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQorICAgICAgKGxldCogKChvcGVuZXItYmVn
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgICAob3BlbmVyLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAgICAgICAgICAgIChsaW5lLWVuZCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG9wZW5lci1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAg
ICAgICAgOzsgRGV0ZWN0IGEgQ29tbW9uTWFyayBjbG9zaW5nLWAjJyBzZXF1ZW5jZTogb3B0aW9u
YWwKKyAgICAgICAgICAgICA7OyB0cmFpbGluZyB3aGl0ZXNwYWNlLCBhIHJ1biBvZiBgIycsIGFu
ZCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICA7OyBzcGFjZS90YWIgYmV0d2VlbiBpdCBhbmQg
dGhlIGhlYWRpbmcgdGV4dC4KKyAgICAgICAgICAgICAoY2xvc2VyIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGxpbmUtZW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBvcGVuZXItZW5kKQorICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgoZW5kIChwb2ludCkpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBvcGVuZXItZW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKChiZWcgKHBvaW50KSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAod2hlbiAoYW5kICg8IGJlZyBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGJlZyBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUgYmVnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKD9ccyA/XHQpKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbnMgYmVnIGVuZCkpKSkpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgOzsgUmVzaXplIHRoZSBjbG9zZXIgZmlyc3Qgc28gaXQgZG9lc24ndCBzaGlmdCB0
aGUgb3BlbmVyLgorICAgICAgICAgICh3aGVuIGNsb3NlcgorICAgICAgICAgICAgKGRlbGV0ZS1y
ZWdpb24gKGNhciBjbG9zZXIpIChjZHIgY2xvc2VyKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIg
KGNhciBjbG9zZXIpKQorICAgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgbmV3LWxldmVs
ID8jKSkpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gb3BlbmVyLWJlZyBvcGVuZXItZW5kKQor
ICAgICAgICAgIChnb3RvLWNoYXIgb3BlbmVyLWJlZykKKyAgICAgICAgICAoaW5zZXJ0IChtYWtl
LXN0cmluZyBuZXctbGV2ZWwgPyMpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90
ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNoYW5nZSBhbGwgaGVhZGluZ3MgaW4gdGhl
IGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgorTmVnYXRpdmUgREVMVEEgcHJvbW90ZXMg
KGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3JlICMpLiIKKyAgKGxldCAoKGJlZyAocmVn
aW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgKHdoaWxlICg8IChwb2ludCkg
ZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQpCisgICAg
ICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSBkZWx0YSkpCisgICAgICAgIChm
b3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAg
KCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAgcGFzdCB0aGUg
cHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtkb3duLXRzLS1saXN0LW1vdmUgdCkKKyAg
ICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIHQpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICgpCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rp
b24gb3IgbGlzdCBpdGVtIGRvd24gcGFzdCB0aGUgbmV4dCBzaWJsaW5nLiIKKyAgKGludGVyYWN0
aXZlKQorICAoaWYgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisgICAgICAobWFy
a2Rvd24tdHMtLWxpc3QtbW92ZSBuaWwpCisgICAgKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUt
dXAtb3ItZG93biBuaWwpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZWN0aW9uLWZvbGRlZC1w
IChzZWN0aW9uKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU0VDVElPTidzIGhlYWRpbmcgaXMgZm9s
ZGVkLgorQ2hlY2tzIHdoZXRoZXIgdGhlIGVuZCBvZiB0aGUgaGVhZGluZyBsaW5lIGhhcyBhbiBv
dXRsaW5lCitpbnZpc2libGUgb3ZlcmxheS4iCisgIChsZXQgKChoZWFkaW5nICh0cmVlc2l0LW5v
ZGUtY2hpbGQgc2VjdGlvbiAwKSkpCisgICAgKHdoZW4gKGFuZCBoZWFkaW5nCisgICAgICAgICAg
ICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGhlYWRpbmcpICJhdHhfaGVhZGluZyIpKQor
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBoZWFkaW5nKSkKKyAgICAgICAgKG91dGxpbmUtaW52aXNpYmxlLXAgKHBvcy1lb2wpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93biAodXApCisg
ICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gc3VidHJlZS4KK0lmIFVQIGlzIG5vbi1uaWwsIG1v
dmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93bi4KK1ByZXNl
cnZlcyB0aGUgZm9sZGluZyBzdGF0ZSBvZiBib3RoIHNlY3Rpb25zLiIKKyAgKHdoZW4tbGV0KiAo
KHNlY3Rpb24gKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAg
KHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXByZXYtc2libGluZyBzZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtbmV4dC1zaWJsaW5nIHNlY3Rpb24pKSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0
LW5vZGUtdHlwZSBzaWJsaW5nKSAic2VjdGlvbiIpCisgICAgICAobGV0KiAoKGZpcnN0IChpZiB1
cCBzaWJsaW5nIHNlY3Rpb24pKQorICAgICAgICAgICAgIChzZWNvbmQgKGlmIHVwIHNlY3Rpb24g
c2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0LWZvbGRlZCAobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXAgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtZm9sZGVkIChtYXJrZG93
bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBzZWNvbmQpKQorICAgICAgICAgICAgIChmaXJzdC1zdGFy
dCAodHJlZXNpdC1ub2RlLXN0YXJ0IGZpcnN0KSkKKyAgICAgICAgICAgICAoc2Vjb25kLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgc2Vjb25kKSkKKyAgICAgICAgICAgICAoc2Vjb25kLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAgICAgIDs7IEV4dHJhY3Qgc2VwYXJh
dG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAg
KGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1zdGFydCBzZWNvbmQtc3RhcnQpKQor
ICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBmaXJzdC1yYXcpKQor
ICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBmaXJzdC1yYXcgKGxlbmd0aCBmaXJz
dC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcgKGJ1ZmZlci1zdWJzdHJpbmcgc2Vj
b25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtdGV4dCAoc3RyaW5n
LXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAgICAgKHRyYWlsaW5nIChzdWJzdHJp
bmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkpCisgICAgICAgICAgICAgKGxpbmUt
b2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IHNlY3Rp
b24pKSkpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQor
ICAgICAgICAoZ290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10
ZXh0IHNlcGFyYXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICA7OyBSZXN0b3JlIGZv
bGRpbmcgc3RhdGUKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hh
ciBmaXJzdC1zdGFydCkKKyAgICAgICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisg
ICAgICAgICAgICAoaWYgc2Vjb25kLWZvbGRlZAorICAgICAgICAgICAgICAgIChvdXRsaW5lLWhp
ZGUtc3VidHJlZSkKKyAgICAgICAgICAgICAgKG91dGxpbmUtc2hvdy1zdWJ0cmVlKSkpCisgICAg
ICAgICAgKG91dGxpbmUtbmV4dC1oZWFkaW5nKQorICAgICAgICAgICh3aGVuIChvdXRsaW5lLW9u
LWhlYWRpbmctcCkKKyAgICAgICAgICAgIChpZiBmaXJzdC1mb2xkZWQKKyAgICAgICAgICAgICAg
ICAob3V0bGluZS1oaWRlLXN1YnRyZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNob3ctc3Vi
dHJlZSkpKSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAg
ICAgZmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5n
dGggc2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRv
cikpKSkKKyAgICAgICAgKHdpdGgtc3VwcHJlc3NlZC13YXJuaW5ncyAoKGludGVyYWN0aXZlLW9u
bHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAobmV4dC1saW5lIGxpbmUtb2Zmc2V0KSkpKSkpCisK
Kzs7OyBMaXN0IG1hbmlwdWxhdGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVj
a2JveCAoKQorICAiVG9nZ2xlIHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1cnJlbnQg
bGluZS4KK1N3aXRjaGVzIGJldHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVyYWN0aXZl
KQorICAod2hlbi1sZXQqICgocG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlv
bikgKHBvaW50KSkpCisgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAg
ICAgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAg
ICh3aGVuLWxldCogKChtYXJrZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVl
c2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygidGFza19saXN0X21hcmtlcl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAobGV0ICgo
YmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xp
c3RfbWFya2VyX2NoZWNrZWQiKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
IChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAg
ICAgICAgKGluc2VydCAoaWYgY2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5uZXJtb3N0
IGxpc3RfaXRlbSBub2RlIGNvbnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhlIHBvc2l0
aW9uIGFmdGVyIGBiYWNrLXRvLWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCithIGxpbmUn
cyBsZWFkaW5nIHdoaXRlc3BhY2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBsaW5lLAor
bm90IHRvIGEgcHJlY2VkaW5nIGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVzcGFjZS4K
K0luc2lkZSBibG9jayBxdW90ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24g
cGFzdAordGhlIGA+JyBtYXJrZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNp
b24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAo
dHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9sIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5kLXBvc2l0
aW9uKSkpCisgICAgKG9yIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAg
ICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAg
ICAgIDs7IFZlcmlmeSB0aGUgY3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdzIHJhbmdl
LgorICAgICAgICAgIDs7IGB0cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2RlIGluc2lk
ZSBhIGxpc3RfaXRlbQorICAgICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBhIHByZWNl
ZGluZyBsaW5lLgorICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAg
ICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBpdGVtKSkK
KyAgICAgICAgOzsgV2hlbiBiYWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2NrIHF1b3Rl
IG1hcmtlcnMsCisgICAgICAgIDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0aGUgY29u
dGVudCBwb3NpdGlvbi4KKyAgICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdoZW4gKD4g
Y29udGVudC1wb3MgcG9zKQorICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0cmVlc2l0
LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChsZXQgKChp
dGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY25v
ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIp
KSkpKQorICAgICAgICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAg
ICAgICAgICAgICBpdGVtKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1hcmtl
ci13aWR0aCAoaXRlbSkKKyAgIlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3QgbWFya2Vy
IGluY2x1ZGluZyB0cmFpbGluZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpICh0cmVl
c2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRl
bS1yZWdpb24gKGl0ZW0pCisgICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBmb3IgSVRF
TSwgY2xhbXBlZCB0byBmdWxsIGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9m
IHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBpdCBkb2Vz
IG5vdCBleHRlbmQgaW50byB0aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGljaCB0cmVl
LXNpdHRlciBtYXkgaW5jbHVkZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRl
bSkpCisgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAg
KGVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1lbmQgaXRlbSkpCisgICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkgKGxpbmUt
YmVnaW5uaW5nLXBvc2l0aW9uKSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBub24tbmls
IGlmIElURU0gaXMgYW4gb3JkZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChsZXQgKCht
YXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIG1hcmtlcikgImxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVzdGluZyBv
ZiB0aGUgbGlzdCBpdGVtIGF0IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRlbW90ZSAo
aW5kZW50KTsgb3RoZXJ3aXNlIHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1iZXJlZCkg
bGlzdCBpdGVtcyBhcmUgc2tpcHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25vdCBzdXBw
b3J0IG5lc3RpbmcgdGhlbSBieSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChpdGVtICht
YXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJlZ2lvbiAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAgIChiZWcg
KGNhciByZWdpb24pKQorICAgICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisgICAgKHdo
ZW4gKG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAodXNlci1l
cnJvciAiT3JkZXJlZCBsaXN0IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIgbGltaXRh
dGlvbikiKSkKKyAgICAoaWYgZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50IGJ5IG1h
cmtlciB3aWR0aCwgb25seSBpZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7IHNpYmxp
bmcgdG8gbmVzdCB1bmRlciAobGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0cmVlc2l0
LW5vZGUtcHJldi1zaWJsaW5nIGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBl
bmQgKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7OyBQcm9t
b3RlOiBkZWRlbnQgdG8gZ3JhbmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBhcmVudC1s
aXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFuZHBhcmVu
dCAoYW5kIHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0KSkpCisg
ICAgICAgICAgICAgKGl0ZW0tY29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgYmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAg
KHdoZW4gKGFuZCBncmFuZHBhcmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgZ3JhbmRwYXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAgICAgICAg
ICg+IGl0ZW0tY29sIDApKQorICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBncmFuZHBhcmVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVu
dGF0aW9uKSkpKQorICAgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0gZ3AtY29s
IGl0ZW0tY29sKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIChu
b2RlKQorICAiUmV0dXJuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyBOT0RF
J3Mgc3RhcnQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpCisgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbGlzdC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRlbSBhdCBw
b2ludC4KK0lmIFVQIGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsg
b3RoZXJ3aXNlIG1vdmUgZG93bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIGl0ZW0p
KSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAibGlzdF9p
dGVtIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisgICAgICAg
ICAgICAgKHNlY29uZCAoaWYgdXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3Qt
c3RhcnQgKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAgICAgICAo
c2Vjb25kLXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQorICAgICAg
ICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAg
ICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVz
cGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0
YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmlt
LXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZp
cnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAo
YnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAg
KHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAg
ICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkK
KyAgICAgICAgICAgICAobGluZS1vZmZzZXQgKC0gKGxpbmUtbnVtYmVyLWF0LXBvcyAocG9pbnQp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1udW1iZXItYXQtcG9zCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKSkpKQor
ICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQorICAgICAgICAo
Z290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10ZXh0IHNlcGFy
YXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICAoZ290by1jaGFyIChpZiB1cAorICAg
ICAgICAgICAgICAgICAgICAgICBmaXJzdC1zdGFydAorICAgICAgICAgICAgICAgICAgICAgKCsg
Zmlyc3Qtc3RhcnQgKGxlbmd0aCBzZWNvbmQtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAg
IChsZW5ndGggc2VwYXJhdG9yKSkpKQorICAgICAgICAod2l0aC1zdXBwcmVzc2VkLXdhcm5pbmdz
ICgoaW50ZXJhY3RpdmUtb25seSBuZXh0LWxpbmUpKQorICAgICAgICAgIChuZXh0LWxpbmUgbGlu
ZS1vZmZzZXQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QgKCZvcHRp
b25hbCBzdGFydCkKKyAgIlJlbnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9pbnQuCitOdW1i
ZXJzIGFyZSBhc3NpZ25lZCBzZXF1ZW50aWFsbHkgc3RhcnRpbmcgZnJvbSB0aGUgZmlyc3QgaXRl
bSdzCitudW1iZXIuICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50IFNUQVJULCBzdGFydCBudW1iZXJp
bmcgZnJvbSB0aGF0Cit2YWx1ZSBpbnN0ZWFkLiAgRG9lcyBub3RoaW5nIGZvciB1bm9yZGVyZWQg
bGlzdHMuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgoaXRlbSAobWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChsaXN0LW5vZGUgKHRy
ZWVzaXQtbm9kZS1wYXJlbnQgaXRlbSkpKQorICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbGlzdC1ub2RlKSAibGlzdCIpCisgICAgICAobGV0KiAoKGNoaWxkcmVuICh0cmVlc2l0
LW5vZGUtY2hpbGRyZW4gbGlzdC1ub2RlKSkKKyAgICAgICAgICAgICAoaXRlbXMgKHNlcS1maWx0
ZXIgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0ZW0iKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRyZW4pKQorICAgICAgICAgICAgIChmaXJzdC1tYXJrZXIgKHRyZWVz
aXQtbm9kZS1jaGlsZCAoY2FyIGl0ZW1zKSAwKSkKKyAgICAgICAgICAgICAobWFya2VyLXR5cGUg
KHRyZWVzaXQtbm9kZS10eXBlIGZpcnN0LW1hcmtlcikpKQorICAgICAgICAod2hlbiAobWVtYmVy
IG1hcmtlci10eXBlICcoImxpc3RfbWFya2VyX2RvdCIgImxpc3RfbWFya2VyX3BhcmVudGhlc2lz
IikpCisgICAgICAgICAgKGxldCogKChiYXNlIChpZiBzdGFydAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHByZWZpeC1udW1lcmljLXZhbHVlIHN0YXJ0KQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChzdHJpbmctdG8tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtdGV4dCBmaXJzdC1tYXJrZXIgdCkpKSkKKyAgICAgICAgICAgICAgICAgKGNvdW50
IChsZW5ndGggaXRlbXMpKQorICAgICAgICAgICAgICAgICA7OyBTdGFydCBmcm9tIHRoZSBsYXN0
IG51bWJlciBhbmQgd29yayBiYWNrd2FyZHMgc28KKyAgICAgICAgICAgICAgICAgOzsgdGhhdCBl
YXJsaWVyIGJ1ZmZlciBwb3NpdGlvbnMgcmVtYWluIHZhbGlkLgorICAgICAgICAgICAgICAgICAo
bnVtICgrIGJhc2UgY291bnQgLTEpKSkKKyAgICAgICAgICAgIChkb2xpc3QgKGl0IChyZXZlcnNl
IGl0ZW1zKSkKKyAgICAgICAgICAgICAgKGxldCogKChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGls
ZCBpdCAwKSkKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItZW5kICh0cmVlc2l0LW5vZGUt
ZW5kIG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAoYm9sIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBtYXJrZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1w
b3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgOzsgRnVsbCB0ZXh0IGZyb20gYm9sIHRv
IGVuZCBvZiBtYXJrZXIgaW5jbHVkZXMKKyAgICAgICAgICAgICAgICAgICAgIDs7IGFueSBsZWFk
aW5nIHdoaXRlc3BhY2UsIHRoZSBudW1iZXIsIGFuZCB0aGUKKyAgICAgICAgICAgICAgICAgICAg
IDs7IHNlcGFyYXRvciAoZS5nLiwgIi4gIiBvciAiLlx0IikuCisgICAgICAgICAgICAgICAgICAg
ICAoZnVsbC10ZXh0IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvbCBtYXJrZXItZW5kKSkKKyAgICAgICAgICAgICAgICAg
ICAgIChpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBcXChbWzpibGFuazpdXSpcXClbMC05XSIg
ZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgZnVs
bC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAgICAgICAgICAgICAgICAg
ICAgKHN1ZmZpeC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1tYXRjaAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFtbOmJsYW5rOl1dKlswLTldK1xcKC4qXFwp
XFwnIiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcg
MSBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiLiAiKSkKKyAgICAgICAgICAg
ICAgICAgICAgIChuZXctdGV4dCAoY29uY2F0IGluZGVudC1zdHIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChudW1iZXItdG8tc3RyaW5nIG51bSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeC1zdHIpKSkKKyAgICAgICAgICAgICAg
ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJvbCBt
YXJrZXItZW5kKQorICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBib2wpCisgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0IG5ldy10ZXh0KSkpCisgICAgICAgICAgICAgIChjbC1kZWNmIG51bSkp
CisgICAgICAgICAgICAobWVzc2FnZSAiUmVudW1iZXJlZCAlZCBpdGVtcyIgY291bnQpKSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgKGl0ZW0pCisgICJS
ZXR1cm4gdGhlIG1hcmtlciBzdHJpbmcgZm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElURU0uCitG
b3IgdW5vcmRlcmVkIGl0ZW1zLCByZXVzZSB0aGUgc2FtZSBtYXJrZXIgY2hhcmFjdGVyLgorRm9y
IG9yZGVyZWQgaXRlbXMsIGluY3JlbWVudCB0aGUgbnVtYmVyLiIKKyAgKGxldCogKChtYXJrZXIg
KHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKQorICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9k
ZS10eXBlIG1hcmtlcikpCisgICAgICAgICAoaW5kZW50IChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAg
ICAgICAgICAgICAgICAoY3VycmVudC1pbmRlbnRhdGlvbikpKQorICAgICAgICAgKHByZWZpeCAo
bWFrZS1zdHJpbmcgaW5kZW50ID9ccykpKQorICAgIChwY2FzZSB0eXBlCisgICAgICAoImxpc3Rf
bWFya2VyX21pbnVzIiAoY29uY2F0IHByZWZpeCAiLSAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJf
cGx1cyIgIChjb25jYXQgcHJlZml4ICIrICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9zdGFyIiAg
KGNvbmNhdCBwcmVmaXggIiogIikpCisgICAgICAoImxpc3RfbWFya2VyX2RvdCIKKyAgICAgICAo
bGV0ICgobnVtIChzdHJpbmctdG8tbnVtYmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkp
KSkKKyAgICAgICAgIChjb25jYXQgcHJlZml4IChudW1iZXItdG8tc3RyaW5nICgxKyBudW0pKSAi
LiAiKSkpCisgICAgICAoImxpc3RfbWFya2VyX3BhcmVudGhlc2lzIgorICAgICAgIChsZXQgKChu
dW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQorICAg
ICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1zdHJpbmcgKDErIG51bSkpICIpICIpKSkK
KyAgICAgIChfIChjb25jYXQgcHJlZml4ICItICIpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LW5ldy1tYXJrZXItZm9yLWxpbmUgKGl0ZW0pCisgICJSZXR1cm4gdGhlIG1hcmtlciBzdHJpbmcg
Zm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElURU0uCitXaGVuIHRoZSBjdXJyZW50IGxpbmUgaGFz
IGEgbGlzdCBtYXJrZXIgcGF0dGVybiBhdCBhIGRpZmZlcmVudAoraW5kZW50YXRpb24gdGhhbiBJ
VEVNIChlLmcuLCBhIG5lc3RlZCBtYXJrZXIgdGhhdCB0aGUgZ3JhbW1hciBkaWQKK25vdCByZWNv
Z25pemUgYXMgYSBsaXN0X2l0ZW0pLCB1c2UgdGhlIGN1cnJlbnQgbGluZSdzIG1hcmtlci4KK090
aGVyd2lzZSwgZmFsbCBiYWNrIHRvIGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIn
LiIKKyAgKGxldCAoKG1hcmtlci1ub2RlICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisg
ICAgKGlmICg9IChsaW5lLW51bWJlci1hdC1wb3MpCisgICAgICAgICAgICAobGluZS1udW1iZXIt
YXQtcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyLW5vZGUpKSkKKyAgICAgICAgOzsgSXRl
bSdzIG1hcmtlciBpcyBvbiB0aGUgY3VycmVudCBsaW5lOiB1c2UgaXQgbm9ybWFsbHkuCisgICAg
ICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgaXRlbSkKKyAgICAgIDs7IEl0
ZW0ncyBtYXJrZXIgaXMgb24gYSBkaWZmZXJlbnQgbGluZS4gIFRoZSBwYXJzZXIgbWF5IGhhdmUK
KyAgICAgIDs7IGZhaWxlZCB0byByZWNvZ25pemUgYSBuZXN0ZWQgbWFya2VyIChlLmcuLCBhIGxv
bmUgYCAgLSAnCisgICAgICA7OyBwYXJzZWQgYXMgYSBzZXRleHQgaGVhZGluZykuICBSZWFkIHRo
ZSBjdXJyZW50IGxpbmUuCisgICAgICAobGV0ICgobGluZSAoYnVmZmVyLXN1YnN0cmluZy1uby1w
cm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAo
bGluZS1lbmQtcG9zaXRpb24pKSkpCisgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoCisgICAgICAg
ICAgICAgIlxcYFxcKFtbOmJsYW5rOl1dKlxcKVxcKFstKitdIFxcfFxcKFswLTldK1xcKVxcKFsu
KV0gXFwpXFwpIgorICAgICAgICAgICAgIGxpbmUpCisgICAgICAgICAgICAobGV0ICgoaW5kZW50
IChtYXRjaC1zdHJpbmcgMSBsaW5lKSkKKyAgICAgICAgICAgICAgICAgIChudW0gKG1hdGNoLXN0
cmluZyAzIGxpbmUpKQorICAgICAgICAgICAgICAgICAgKHN1ZmZpeCAobWF0Y2gtc3RyaW5nIDQg
bGluZSkpCisgICAgICAgICAgICAgICAgICAodW5vcmRlcmVkIChtYXRjaC1zdHJpbmcgMiBsaW5l
KSkpCisgICAgICAgICAgICAgIChpZiBudW0KKyAgICAgICAgICAgICAgICAgIChjb25jYXQgaW5k
ZW50IChudW1iZXItdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KDErIChzdHJpbmctdG8tbnVtYmVyIG51bSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBz
dWZmaXgpCisgICAgICAgICAgICAgICAgKGNvbmNhdCBpbmRlbnQgdW5vcmRlcmVkKSkpCisgICAg
ICAgICAgOzsgTm8gbWFya2VyIHBhdHRlcm4gb24gY3VycmVudCBsaW5lOiB1c2UgaXRlbSdzIG1h
cmtlci4KKyAgICAgICAgICAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIGl0ZW0p
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoICgmb3B0
aW9uYWwgcG9zKQorICAiQ291bnQgdGhlIG51bWJlciBvZiBgPicgYmxvY2sgcXVvdGUgbWFya2Vy
cyBvbiB0aGUgbGluZSBhdCBQT1MuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAod2hlbiBwb3Mg
KGdvdG8tY2hhciBwb3MpKQorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAobGV0ICgoY291
bnQgMCkpCisgICAgICAod2hpbGUgKGFuZCAobm90IChlb2xwKSkKKyAgICAgICAgICAgICAgICAg
IChtZW1xIChjaGFyLWFmdGVyKSAnKD8+ID9ccyA/XHQpKSkKKyAgICAgICAgKHdoZW4gKGVxIChj
aGFyLWFmdGVyKSA/PikKKyAgICAgICAgICAoc2V0cSBjb3VudCAoMSsgY291bnQpKSkKKyAgICAg
ICAgKGZvcndhcmQtY2hhciAxKSkKKyAgICAgIGNvdW50KSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy1uZXdsaW5lICgpCisgICJJbnNlcnQgYSBuZXdsaW5lLCBjb250aW51aW5nIHRoZSBjdXJyZW50
IGNvbnRleHQuCitJbnNpZGUgYSBsaXN0IGl0ZW0sIHRoZSBuZXcgbGluZSBpcyBpbmRlbnRlZCB0
byB0aGUgaXRlbSdzIHRleHQKK2NvbHVtbiBzbyB0aGUgcGFyYWdyYXBoIGNvbnRpbnVlcy4gIEEg
c2Vjb25kIFJFVCBvbiBhIGJsYW5rCitjb250aW51YXRpb24gbGluZSByZW1vdmVzIHRoZSBpbmRl
bnRhdGlvbiwgZHJvcHBpbmcgcG9pbnQgdG8KK2NvbHVtbiAwIHNvIHRoZSB0cmVlLXNpdHRlciBn
cmFtbWFyIGVuZHMgdGhlIGxpc3QuCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5ldyBsaW5l
IGluY2x1ZGVzIHRoZSBxdW90ZSBwcmVmaXguCitPdGhlcndpc2UsIGluc2VydCBhIHBsYWluIG5l
d2xpbmUuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0
CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAo
cG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICA7OyBUcmVlLXNp
dHRlciBtYXkgcmVwb3J0IGEgbm9kZSBpbnNpZGUgYSBibG9ja19xdW90ZSBldmVuCisgICAgICAg
ICA7OyB3aGVuIHBvaW50IGlzIG9uIGEgYmxhbmsgbGluZSBwYXN0IHRoZSBxdW90ZSAodGhlIG5v
ZGUKKyAgICAgICAgIDs7IHNwYW4gY2FuIGV4dGVuZCBiZXlvbmQgdGhlIGA+JyBsaW5lcykuICBP
bmx5IHRyZWF0IHRoZQorICAgICAgICAgOzsgbGluZSBhcyBpbnNpZGUgYSBibG9jayBxdW90ZSBp
ZiBpdCBhY3R1YWxseSBzdGFydHMgd2l0aAorICAgICAgICAgOzsgYSBgPicgbWFya2VyLgorICAg
ICAgICAgKGluLWJxIChhbmQgKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGJsb2NrX3F1
b3RlXFwnIikKKyAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg
IChsb29raW5nLWF0LXAgIlsgXHRdKj4iKSkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtkb3duLXRz
LS1saXN0LWl0ZW0tYXQtcG9pbnQpKSkKKyAgICAoY29uZAorICAgICAoaXRlbQorICAgICAgKGxl
dCogKChjb2wgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRlbSkpCisgICAg
ICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3Rl
LXByZWZpeCkpKQorICAgICAgICAgICAgIDs7IGBjb2wnIGlzIHRoZSBhYnNvbHV0ZSBjb2x1bW4g
b2YgdGhlIGl0ZW0ncyB0ZXh0LAorICAgICAgICAgICAgIDs7IHdoaWNoIGluc2lkZSBhIGJsb2Nr
IHF1b3RlIGluY2x1ZGVzIHRoZSAiPiAiIHByZWZpeAorICAgICAgICAgICAgIDs7IHdpZHRoLiAg
U2luY2Ugd2UgaW5zZXJ0IGBicS1wcmVmaXgnIHNlcGFyYXRlbHksIHdlCisgICAgICAgICAgICAg
OzsgbXVzdCBzdWJ0cmFjdCBpdHMgbGVuZ3RoIHRvIGF2b2lkIGRvdWJsaW5nIGl0LgorICAgICAg
ICAgICAgIChpbmRlbnQgKC0gY29sIChsZW5ndGggKG9yIGJxLXByZWZpeCAiIikpKSkKKyAgICAg
ICAgICAgICA7OyBUaGUgY3VycmVudCBsaW5lIGlzICJibGFuayIgaWYgaXQgY29udGFpbnMgb25s
eQorICAgICAgICAgICAgIDs7IHdoaXRlc3BhY2UgKG9yIHF1b3RlIHByZWZpeCArIHdoaXRlc3Bh
Y2UpIGFuZCBubworICAgICAgICAgICAgIDs7IGFjdHVhbCB0ZXh0IGZyb20gYSBwcmV2aW91cyBS
RVQncyBjb250aW51YXRpb24gaW5kZW50LgorICAgICAgICAgICAgIChibGFuay1saW5lLXAgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2Yt
bGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIl5bPiBcdF0qJCIpKSkKKyAgICAgICAgICAgICA7OyBQ
b2ludCBpcyBiZWZvcmUgdGhlIGl0ZW0ncyB0ZXh0IChhdCBvciBiZWZvcmUgdGhlCisgICAgICAg
ICAgICAgOzsgbWFya2VyKS4gIEEgcGxhaW4gbmV3bGluZSBpcyBhcHByb3ByaWF0ZSBoZXJlLCBh
ZGRpbmcKKyAgICAgICAgICAgICA7OyBjb250aW51YXRpb24gaW5kZW50IHdvdWxkIHNoaWZ0IHRo
ZSBleGlzdGluZyBjb250ZW50CisgICAgICAgICAgICAgOzsgdG8gdGhlIHJpZ2h0LgorICAgICAg
ICAgICAgIChiZWZvcmUtdGV4dC1wICg8PSAoY3VycmVudC1jb2x1bW4pIGNvbCkpKQorICAgICAg
ICAoY29uZAorICAgICAgICAgKGJsYW5rLWxpbmUtcAorICAgICAgICAgIDs7IFRoZSB1c2VyIHBy
ZXNzZWQgUkVUIG9uIGFuIGFscmVhZHktYmxhbmsgY29udGludWF0aW9uCisgICAgICAgICAgOzsg
bGluZS4gIEluc3RlYWQgb2YgYWRkaW5nIHlldCBhbm90aGVyIGluZGVudGVkIGJsYW5rCisgICAg
ICAgICAgOzsgbGluZSwgcmVtb3ZlIHRoZSBpbmRlbnRhdGlvbiBhbmQgaW5zZXJ0IGEgcGxhaW4K
KyAgICAgICAgICA7OyBuZXdsaW5lLiAgVGhpcyBkcm9wcyBwb2ludCB0byBjb2x1bW4gMCwgd2hp
Y2ggaXMgdGhlCisgICAgICAgICAgOzsgb25seSB3YXkgdGhlIHRyZWUtc2l0dGVyIG1hcmtkb3du
IGdyYW1tYXIgZW5kcyBhIGxpc3Q6CisgICAgICAgICAgOzsgYmxhbmsgbGluZXMgYWxvbmUgZG8g
Tk9UIGVuZCBhIGxpc3QsIG9ubHkKKyAgICAgICAgICA7OyBub24taW5kZW50ZWQgY29udGVudCBk
b2VzLiAgU28gdGhpcyBnaXZlcyB0aGUgdXNlciBhCisgICAgICAgICAgOzsgbmF0dXJhbCAiUkVU
IFJFVCB0byBleGl0IHRoZSBsaXN0IiB3b3JrZmxvdy4KKyAgICAgICAgICAoZGVsZXRlLXJlZ2lv
biAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpCisgICAgICAg
ICAgKG5ld2xpbmUpKQorICAgICAgICAgKGJlZm9yZS10ZXh0LXAKKyAgICAgICAgICA7OyBQb2lu
dCBpcyBvbiBvciBiZWZvcmUgdGhlIGxpc3QgbWFya2VyOyBqdXN0IGluc2VydCBhCisgICAgICAg
ICAgOzsgcGxhaW4gbmV3bGluZSBzbyB0aGUgaXRlbSBpcyBwdXNoZWQgZG93biB1bmNoYW5nZWQu
CisgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgKHQKKyAgICAgICAgICAoZGVsZXRlLWhv
cml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKHdoZW4gYnEt
cHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmlu
ZyBpbmRlbnQgP1xzKSkpKSkpCisgICAgIChpbi1icQorICAgICAgKGxldCAoKGJxLXByZWZpeCAo
bWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAgICA7OyBBIGxpbmUg
d2l0aCBvbmx5IHF1b3RlIG1hcmtlcnMgYW5kIHdoaXRlc3BhY2UgKGUuZy4sCisgICAgICAgICAg
ICA7OyAiPiAiKSBpcyAiYmxhbmsiIGluc2lkZSB0aGUgcXVvdGUuICBSRVQgaGVyZSBleGl0cyB0
aGUKKyAgICAgICAgICAgIDs7IHF1b3RlLCBzYW1lIGFzIFJFVCBvbiBhIGJsYW5rIGNvbnRpbnVh
dGlvbiBsaW5lIGV4aXRzIGEKKyAgICAgICAgICAgIDs7IGxpc3Q6IHJlbW92ZSB0aGUgcHJlZml4
IGFuZCBkcm9wIHRvIGNvbHVtbiAwLgorICAgICAgICAgICAgKGJsYW5rLWxpbmUtcCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcCAiXls+IFx0XSokIikp
KSkKKyAgICAgICAgKGlmIGJsYW5rLWxpbmUtcAorICAgICAgICAgICAgKHByb2duCisgICAgICAg
ICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5k
LXBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgIChkZWxldGUt
aG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAgICAgICAgICAoaW5zZXJ0
IGJxLXByZWZpeCkpKSkKKyAgICAgOzsgRGVmYXVsdDogcGxhaW4gbmV3bGluZS4gIFRoaXMgYWxz
byBoYW5kbGVzIGVtcHR5IGxpc3QgbWFya2VycworICAgICA7OyAoZS5nLiwgIi0gIiB3aXRoIG5v
IHRleHQpIHRoYXQgdGhlIGdyYW1tYXIgcGFyc2VzIGFzIEVSUk9SCisgICAgIDs7IG5vZGVzIHJh
dGhlciB0aGFuIGxpc3RfaXRlbSBub2Rlcy4KKyAgICAgOzsKKyAgICAgOzsgV2hlbiB0aGUgY3Vy
cmVudCBsaW5lIGlzIGJsYW5rICh3aGl0ZXNwYWNlIG9ubHkpLCBpdCBpcyBhCisgICAgIDs7IGNv
bnRpbnVhdGlvbi1pbmRlbnQgbGluZSBsZWZ0IGJ5IGEgcHJldmlvdXMgUkVUIHRoYXQKKyAgICAg
OzsgdHJlZS1zaXR0ZXIgbm8gbG9uZ2VyIGNvbnNpZGVycyBwYXJ0IG9mIGEgbGlzdF9pdGVtLiAg
Q2xlYXIKKyAgICAgOzsgdGhlIHdoaXRlc3BhY2Ugc28gbm8gdHJhaWxpbmcgc3BhY2VzIHJlbWFp
biwgYW5kIGluc2VydCBhCisgICAgIDs7IHBsYWluIG5ld2xpbmUgYXQgY29sdW1uIDAgdG8gZXhp
dCB0aGUgbGlzdCBjb250ZXh0LgorICAgICAodAorICAgICAgKHdoZW4gKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKGxvb2tp
bmctYXQtcCAiXlsgXHRdKyQiKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5u
aW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgIChuZXdsaW5lKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gKCkKKyAgIkluc2VydCBhIG5l
dyBsaXN0IGl0ZW0sIHNwbGl0dGluZyB0ZXh0IGF0IHBvaW50LgorVGV4dCBhZnRlciBwb2ludCBt
b3ZlcyB0byB0aGUgbmV3IGl0ZW0uICBBdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZSwKK2FuIGVt
cHR5IGl0ZW0gaXMgaW5zZXJ0ZWQgYWJvdmUgYW5kIHRoZSBjdXJyZW50IGNvbnRlbnQgaXMgcHVz
aGVkIGRvd24uCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5ldyBsaW5lIGluY2x1ZGVzIHRo
ZSBxdW90ZSBwcmVmaXguCitGb3Igb3JkZXJlZCBsaXN0cywgdGhlIG51bWJlciBpcyBpbmNyZW1l
bnRlZC4KK1doZW4gbm90IGluc2lkZSBhIGxpc3QsIGZhbGwgYmFjayB0byBgbWFya2Rvd24tdHMt
bmV3bGluZScuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNpdC1ub2Rl
LWF0CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9u
KSAocG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICAoaW4tYnEg
KGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwgbm9kZSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAg
ICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAg
IChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQt
cCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxIChtYXJrZG93
bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkpCisgICAgICAgICAoaXRlbSAobWFya2Rvd24tdHMt
LWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAgICgoYW5kIGl0ZW0KKyAgICAg
ICAgICAgKG9yIChub3QgaW4tYnEpCisgICAgICAgICAgICAgICAoPj0gKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKQorICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
bGluZS1ibG9jay1xdW90ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0ICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpKSkpCisgICAgICAobGV0KiAoKG5l
dy1tYXJrZXIgKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lIGl0ZW0pKQorICAgICAg
ICAgICAgIChhdC1ib2wgKDw9IChjdXJyZW50LWNvbHVtbikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRv
LWluZGVudGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1u
KSkpKQorICAgICAgICAgICAgICh0YWlsICh3aGVuIChhbmQgKG5vdCBhdC1ib2wpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobm90IChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkpCisg
ICAgICAgICAgICAgICAgICAgICAoZGVsZXRlLWFuZC1leHRyYWN0LXJlZ2lvbgorICAgICAgICAg
ICAgICAgICAgICAgIChwb2ludCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSkKKyAgICAgICAgKGlm
IGF0LWJvbAorICAgICAgICAgICAgOzsgQXQgQk9MOiBpbnNlcnQgZW1wdHkgaXRlbSBhYm92ZSwg
cHVzaCBjdXJyZW50IGxpbmUgZG93bi4KKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAg
ICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICh3aGVuIGJxLXByZWZpeCAoaW5z
ZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgICAgIChpbnNlcnQgbmV3LW1hcmtlciAiXG4iKQor
ICAgICAgICAgICAgICAoYmFjay10by1pbmRlbnRhdGlvbikpCisgICAgICAgICAgOzsgTWlkLWxp
bmUgb3IgRU9MOiBuZXcgaXRlbSBiZWxvdyB3aXRoIHRhaWwgdGV4dC4KKyAgICAgICAgICAoZGVs
ZXRlLWhvcml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKHdo
ZW4gYnEtcHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IG5ldy1t
YXJrZXIpCisgICAgICAgICAgKHdoZW4gdGFpbCAoc2F2ZS1leGN1cnNpb24gKGluc2VydCAoc3Ry
aW5nLXRyaW0tbGVmdCB0YWlsKSkpKSkpKQorCisgICAgIDs7IE5vdCBpbiBhIGxpc3Q6IGZhbGwg
YmFjayB0byBuZXdsaW5lIGJlaGF2aW9yLgorICAgICAodCAobWFya2Rvd24tdHMtbmV3bGluZSkp
KSkpCisKKzs7OyBGaWxsaW5nOgorCis7OyBUT0RPOiBSZW1vdmUgdGhlIHBpcGVfdGFibGUgYmxv
Y2sgaWYgd2UgaW1wbGVtZW50IHBpcGVfdGFibGUgZmlsbC4KKyhkZWZjb25zdCBtYXJrZG93bi10
cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICcoWyhmZW5jZWRfY29kZV9ibG9jaykg
KGluZGVudGVkX2NvZGVfYmxvY2spIChwaXBlX3RhYmxlKV0gQGJsb2NrKQorICAiVHJlZS1zaXR0
ZXIgcXVlcnkgbWF0Y2hpbmcgYmxvY2tzIHdoZXJlIGZpbGxpbmcgaXMgaW5oaWJpdGVkLiIpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIChpdGVtKQorICAiUmV0
dXJuIHRoZSBjb2x1bW4gd2hlcmUgdGhlIHRleHQgb2YgbGlzdCBJVEVNIHN0YXJ0cy4KK1RoaXMg
aXMgdGhlIGNvbHVtbiBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoIG5vZGUgaW5zaWRlIElURU0sIG9y
Cit0aGUgd2lkdGggb2YgdGhlIGxpc3QgbWFya2VyIGlmIG5vIHBhcmFncmFwaCBpcyBmb3VuZC4i
CisgIChsZXQgKChwYXJhZ3JhcGggKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxgcGFy
YWdyYXBoXFwnIikpKQorICAgIChpZiBwYXJhZ3JhcGgKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHBhcmFncmFwaCkpCisg
ICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQt
bm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQgbWFya2Vy
KQorICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIChpdGVtIGp1c3RpZnkpCisgICJGaWxsIHRoZSBj
b250ZW50cyBvZiBsaXN0IElURU0sIHByZXNlcnZpbmcgaXRzIGluZGVudGF0aW9uLgorTmFycm93
cyB0byBJVEVNJ3Mgb3duIHBhcmFncmFwaCBjb250ZW50IChleGNsdWRpbmcgbmVzdGVkIGxpc3Rz
KQorYW5kIHNldHMgYGZpbGwtcHJlZml4JyB0byBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0
aCB0aGUgc3RhcnQKK29mIHRoZSBpdGVtJ3MgdGV4dC4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwt
cGFyYWdyYXBoJy4iCisgIChsZXQqICgoZmlsbC1wcmVmaXggKG1ha2Utc3RyaW5nIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID9ccykpCisgICAgICAgICA7OyBGaW5kIHRoZSBpdGVtJ3Mgb3duIHBhcmFn
cmFwaCAoZmlyc3QgcGFyYWdyYXBoIGNoaWxkKS4KKyAgICAgICAgIDs7IElmIHRoZSBpdGVtIGhh
cyBuZXN0ZWQgbGlzdHMsIG5hcnJvdyB0byBqdXN0IHRoZQorICAgICAgICAgOzsgcGFyYWdyYXBo
IHNvIHdlIGRvbid0IG1lcmdlIG5lc3RlZCBpdGVtcy4KKyAgICAgICAgIChwYXJhICh0cmVlc2l0
LXNlYXJjaC1zdWJ0cmVlIGl0ZW0gIlxcYHBhcmFncmFwaFxcJyIgbmlsIG5pbCAxKSkKKyAgICAg
ICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAgICAgIChlbmQgKGlmIHBh
cmEKKyAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHBhcmEpCisgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpKQorICAgICAgICAgOzsgVXNlIGRlZmF1bHQg
cGFyYWdyYXBoIG1vdGlvbiBpbnNpZGUgdGhlIG5hcnJvd2VkIHJlZ2lvbgorICAgICAgICAgOzsg
c28gdGhhdCB0aGUgaW5uZXIgYGZpbGwtcGFyYWdyYXBoJyBkb2VzIG5vdCByZS1lbnRlciBvdXIK
KyAgICAgICAgIDs7IGN1c3RvbSBwYXJhZ3JhcGgtZmluZGluZyBsb2dpYy4KKyAgICAgICAgIChm
aWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgpKQorICAg
IChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAg
ICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgIDs7IFJldHVybiBub24tbmlsIHRvIHNp
Z25hbCB0aGF0IGZpbGxpbmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICA7OyBhcyBwZXIgdGhlIGNv
bnRyYWN0IG9mIGBmaWxsLXBhcmFncmFwaC1mdW5jdGlvbicuCisgICAgdCkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCAoKQorICAiUmV0dXJuIHRoZSBmaWxsIHByZWZpeCBm
b3IgdGhlIGN1cnJlbnQgbGluZSBpbiBNYXJrZG93bi4KK1doZW4gaW5zaWRlIGEgbGlzdCBpdGVt
LCByZXR1cm4gc3BhY2VzIG1hdGNoaW5nIHRoZSBjb2x1bW4gd2hlcmUKK3RoZSBpdGVtJ3MgdGV4
dCBzdGFydHMuIgorICAoYW5kLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAg
ICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9pbnQp
KQorICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChpdGVtICh0
cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAgKG1ha2Ut
c3RyaW5nIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pID9ccykpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGggKGFyZykKKyAgIk1v
dmUgZm9yd2FyZCBieSBBUkcgcGFyYWdyYXBocywgcmVzcGVjdGluZyBNYXJrZG93biBzdHJ1Y3R1
cmUuCitMaXN0IGl0ZW1zIGFyZSB0cmVhdGVkIGFzIGluZGl2aWR1YWwgcGFyYWdyYXBocy4gIEJs
b2NrcyBtYXRjaGVkCitieSBgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVy
eScgYXJlIHNraXBwZWQ6IGJvdGgKK2ZvcndhcmQgYW5kIGJhY2t3YXJkIG1vdGlvbiBtb3ZlIHRv
IHRoZSBlbmQgb2YgdGhlIGJsb2NrLCBzbworYGZpbGwtcmVnaW9uJyBzZWVzIGEgemVyby1sZW5n
dGggcmVnaW9uIGFuZCBsZWF2ZXMgdGhlIGJsb2NrCit1bmZpbGxlZC4iCisgIChsZXQgKChkaXJl
Y3Rpb24gKGlmICg+IGFyZyAwKSAxIC0xKSkKKyAgICAgICAgKGNvdW50IChhYnMgYXJnKSkKKyAg
ICAgICAgKG1vdmVkIDApKQorICAgIChkb3RpbWVzIChfIGNvdW50KQorICAgICAgOzsgRm9yIGJh
Y2t3YXJkIG1vdGlvbiwgc2tpcCBiYWNrIG92ZXIgd2hpdGVzcGFjZSB0byBmaW5kCisgICAgICA7
OyB0aGUgaXRlbSB3ZSBhcmUgbGVhdmluZywgbm90IHRoZSBuZXh0IG9uZS4KKyAgICAgIChsZXQq
ICgocG9zIChpZiAoPCBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIg
XHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAobWF4IChwb2ludC1taW4pICgxLSAocG9p
bnQpKSkpCisgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChibG9j
ayAoY2FyICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9zICgxKyBwb3MpKSkpCisgICAgICAgICAgICAgKGluZGVudGVk
LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0
aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAgICAgICAg
ICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IGluZGVudGVkLXBvcyAnbWFya2Rvd24pKQorICAgICAg
ICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCci
KSkpCisgICAgICAgIDs7IFdoZW4gbW92aW5nIGZvcndhcmQgZnJvbSB3aGl0ZXNwYWNlIGJldHdl
ZW4gbGlzdCBpdGVtcywKKyAgICAgICAgOzsgc2tpcCB0byB0aGUgbmV4dCBub24tYmxhbmsgcG9z
aXRpb24gYW5kIGNoZWNrIGFnYWluLgorICAgICAgICAod2hlbiAoYW5kIChub3QgaXRlbSkgKG5v
dCBibG9jaykgKD4gZGlyZWN0aW9uIDApKQorICAgICAgICAgIChsZXQgKChuZXh0LXBvcyAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3
YXJkICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICAgKHNldHEgbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJrZG93bikp
CisgICAgICAgICAgICAoc2V0cSBpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBs
aXN0X2l0ZW1cXCciKSkpKQorICAgICAgICAoY29uZAorICAgICAgICAgOzsgSW5zaWRlIGFuIHVu
ZmlsbGFibGUgYmxvY2s6IHNraXAgb3ZlciBpdCBlbnRpcmVseS4KKyAgICAgICAgIChibG9jawor
ICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgKGNkciBibG9jaykpKQorICAg
ICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKQorICAgICAgICAgOzsgSW5zaWRlIGEgbGlz
dCBpdGVtOiB0cmVhdCBhcyBwYXJhZ3JhcGggYm91bmRhcnkuCisgICAgICAgICAoaXRlbQorICAg
ICAgICAgIChpZiAoPiBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJl
ZXNpdC1ub2RlLWVuZCBpdGVtKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9k
ZS1zdGFydCBpdGVtKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkpCisgICAg
ICAgICA7OyBEZWZhdWx0OiB1c2Ugc3RhbmRhcmQgcGFyYWdyYXBoIG1vdGlvbi4KKyAgICAgICAg
ICh0CisgICAgICAgICAgKGZvcndhcmQtcGFyYWdyYXBoIGRpcmVjdGlvbikKKyAgICAgICAgICAo
c2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkpKSkKKyAgICA7OyBSZXR1cm4gdGhlIG51bWJlciBvZiBw
YXJhZ3JhcGhzIGxlZnQgdG8gbW92ZSAoMCA9IGFsbCBkb25lKS4KKyAgICAoLSBjb3VudCBtb3Zl
ZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVz
dGlmeSkKKyAgIkZpbGwgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCByZXNwZWN0aW5nIE1hcmtkb3du
IGJsb2NrIHN0cnVjdHVyZS4KK1RoaXMgZnVuY3Rpb24gcHJldmVudHMgZmlsbGluZyBpbnNpZGUg
YmxvY2tzIG1hdGNoZWQgYnkKK2BtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1
ZXJ5JywgYW5kIGZpbGxzIHdpdGhpbiBsaXN0CitpdGVtcyB3aXRob3V0IG1lcmdpbmcgYWRqYWNl
bnQgaXRlbXMuICBKVVNUSUZZIGlzIGFzIGluCitgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGNvbmQq
CisgICA7OyBEb24ndCBmaWxsIGluc2lkZSB1bmZpbGxhYmxlIGJsb2Nrcy4gIFVzZSBhIHF1ZXJ5
IGFnYWluc3QgdGhlCisgICA7OyByb290IG5vZGUgYmVjYXVzZSBgdHJlZXNpdC1ub2RlLWF0JyBt
YXkgbm90IHJldHVybiBhIG5vZGUKKyAgIDs7IGluc2lkZSB0aGUgYmxvY2sgd2hlbiBwb2ludCBp
cyBvbiBhbm9ueW1vdXMgKHVubmFtZWQpIHRleHQuCisgICAoKHRyZWVzaXQtcXVlcnktY2FwdHVy
ZQorICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgbWFya2Rv
d24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAocG9pbnQpIChtaW4gKDEr
IChwb2ludCkpIChwb2ludC1tYXgpKSkKKyAgICB0KQorICAgOzsgRmlsbCB3aXRoaW4gdGhlIGVu
Y2xvc2luZyBsaXN0IGl0ZW0uICBVc2UKKyAgIDs7IGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0
LXBvaW50JyB3aGljaCBoYW5kbGVzIGJsb2NrIHF1b3RlCisgICA7OyBtYXJrZXJzLiAgV2hlbiB0
aGUgbGlzdCBpdGVtIGlzIGluc2lkZSBhIGJsb2NrIHF1b3RlLCBkZWxlZ2F0ZQorICAgOzsgdG8g
dGhlIGJsb2NrIHF1b3RlIGZpbGxlciB3aGljaCBoYW5kbGVzIGA+ICcgcHJlZml4ZXMgY29ycmVj
dGx5LgorICAgKChiaW5kLWFuZCogKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9p
bnQpKSkKKyAgICAoaWYgKHRyZWVzaXQtcGFyZW50LXVudGlsIGl0ZW0gIlxcYGJsb2NrX3F1b3Rl
XFwnIikKKyAgICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkpCisg
ICAgICAobWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIGl0ZW0ganVzdGlmeSkpKQorICAgOzsg
UG9pbnQgaXMgb24gYSBibGFuayBsaW5lIGJlZm9yZSBhIGxpc3QuICBJZiB0aGUgbmV4dAorICAg
Ozsgbm9uLXdoaXRlc3BhY2UgcG9zaXRpb24gZmFsbHMgaW5zaWRlIGEgbGlzdCBpdGVtLCBmaWxs
IHRoYXQgaXRlbS4KKyAgICgoc2F2ZS1leGN1cnNpb24KKyAgICAgIChiZWdpbm5pbmctb2YtbGlu
ZSkKKyAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkKKyAgICAoYW5kLWxldCogKChuZXh0
LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNo
YXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkp
KQorICAgICAgICAgICAgICAgKG5leHQtbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAg
ICAgICAgICAgICAgICAgICAgICBuZXh0LW5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAg
IChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBGaWxs
IHdpdGhpbiBhIGJsb2NrIHF1b3RlLiAgTmFycm93IHRvIHRoZSBwYXJhZ3JhcGggbm9kZSBhdAor
ICAgOzsgcG9pbnQncyBuZXN0aW5nIGxldmVsIHNvIGxpbmVzIHdpdGggZGlmZmVyZW50IGA+ICcg
ZGVwdGhzCisgICA7OyBhcmUgbm90IG1lcmdlZC4KKyAgICgodHJlZXNpdC1wYXJlbnQtdW50aWwK
KyAgICAgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWlu
ZGVudGF0aW9uKSAocG9pbnQpKQorICAgICAgJ21hcmtkb3duKQorICAgICAiXFxgYmxvY2tfcXVv
dGVcXCciKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSBqdXN0aWZ5KSkKKyAg
IDs7IEZpbGwgd2l0aGluIGFuIEhUTUwgY29tbWVudC4gIFRoZSBub2RlIHR5cGUgaXMgImh0bWxf
YmxvY2siCisgICA7OyBpbiBncmFtbWFyIHYwLjQueCBhbmQgImNvbW1lbnQiIGluIHNvbWUgb3Ro
ZXIgdmVyc2lvbnMuCisgICAoKGJpbmQtYW5kKiAoYmxvY2sgKGxldCAoKG4gKHRyZWVzaXQtbm9k
ZS1hdCAocG9pbnQpICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG9yICh0
cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICJcXGBc
XCg/Omh0bWxfYmxvY2tcXHxjb21tZW50XFwpXFwnIikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYW5kIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcoImh0bWxfYmxvY2siICJjb21tZW50IikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLWZp
bGwtaHRtbC1jb21tZW50IGJsb2NrIGp1c3RpZnkpKQorICAgOzsgRGVmYXVsdDogbGV0IGZpbGwt
cGFyYWdyYXBoIGhhbmRsZSBpdC4KKyAgICh0IG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZpbGwtaHRtbC1jb21tZW50IChub2RlIGp1c3RpZnkpCisgICJGaWxsIEhUTUwgY29tbWVudCBO
T0RFLCBhbGlnbmluZyBjb250aW51YXRpb24gbGluZXMuCitSZXR1cm4gdCBpZiBOT0RFIGlzIGEg
Y29tbWVudCBhbmQgd2FzIGZpbGxlZCwgbmlsIG90aGVyd2lzZS4KK0pVU1RJRlkgaXMgYXMgaW4g
YGZpbGwtcGFyYWdyYXBoJy4iCisgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChn
b3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAobG9va2luZy1h
dC1wICI8IS0tIikpCisgICAgKGxldCAoKGZpbGwtcHJlZml4IChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKCsgKGN1cnJlbnQtY29s
dW1uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoICI8
IS0tICIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XHMpKSkKKyAg
ICAgICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgKGZpbGwtZm9y
d2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAo
ZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgIChzYXZlLXJlc3RyaWN0aW9uCisg
ICAgICAgIChuYXJyb3ctdG8tcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgIChm
aWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkKKyAgICAgIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1ibG9jay1xdW90ZS1wcmVmaXggKCkKKyAgIlJldHVybiB0aGUgYmxvY2sgcXVvdGUgcHJlZml4
IHN0cmluZyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuCitSZWFkIHRoZSBhY3R1YWwgYD4nIG1hcmtl
cnMgKHdpdGggd2hhdGV2ZXIgc3BhY2luZyB0aGUgdXNlciB3cm90ZSkKK2Zyb20gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgbGluZSBzbyB0aGF0IGZpbGwgcHJlc2VydmVzIHRoZSBleGlzdGluZworc3R5
bGUgKGUuZy4sIGA+Pj4gJyBzdGF5cyBgPj4+ICcsIGA+ID4gPiAnIHN0YXlzIGA+ID4gPiAnKS4i
CisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoaWYgKGxv
b2tpbmctYXQgIlxcKFs+IFx0XSo+XFwpWyBcdF0qIikKKyAgICAgICAgKGNvbmNhdCAobWF0Y2gt
c3RyaW5nIDApKQorICAgICAgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtYmxv
Y2stcXVvdGUgKGp1c3RpZnkpCisgICJGaWxsIHRoZSBwYXJhZ3JhcGggYXQgcG9pbnQgaW5zaWRl
IGEgYmxvY2sgcXVvdGUuCitGaW5kIHRoZSBwYXJhZ3JhcGggbm9kZSBhdCBwb2ludCB3aXRoaW4g
dGhlIGJsb2NrIHF1b3RlIGFuZCBmaWxsCitvbmx5IHRoYXQgcGFyYWdyYXBoLCBwcmVzZXJ2aW5n
IHRoZSBgPiAnIHByZWZpeC4gIFdoZW4gdGhlCitwYXJhZ3JhcGggaXMgaW5zaWRlIGEgbGlzdCBp
dGVtLCBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0aAordGhlIGl0ZW0ncyB0ZXh0IGNvbHVt
bi4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgIDs7IFNraXAgcGFzdCBg
PiAnIG1hcmtlcnMgYW5kIGFueSBsaXN0IG1hcmtlciB0byBsYW5kIGluc2lkZSB0aGUKKyAgOzsg
Y29udGVudCwgd2hlcmUgdGhlIHBhcmFncmFwaCBub2RlIGxpdmVzLgorICAobGV0KiAoKGNvbnRl
bnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmlu
Zy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAi
PiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB3ZSBsYW5kIG9uIGEgbGlzdCBt
YXJrZXIsIHNraXAgcGFzdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChsb29r
aW5nLWF0ICJbLSorXSBcXHxbMC05XStbLildXHMiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG1p
biAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKSkKKyAgICAgICAgIChub2RlICh0cmVlc2l0LW5v
ZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgIChwYXJhICh0cmVlc2l0LXBh
cmVudC11bnRpbAorICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAg
ICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAicGFyYWdyYXBoIikpKSkp
CisgICAgKHdoZW4gcGFyYQorICAgICAgOzsgVGhlIGdyYW1tYXIgbWF5IGluY2x1ZGUgdHJhaWxp
bmcgYmxvY2tfY29udGludWF0aW9uIG5vZGVzCisgICAgICA7OyAoYmxhbmsgYD4gPicgbGluZXMp
IGFzIGNoaWxkcmVuIG9mIHRoZSBwYXJhZ3JhcGguICBVc2UgdGhlCisgICAgICA7OyBlbmQgb2Yg
dGhlIGxhc3QgaW5saW5lIGNoaWxkIHNvIGZpbGwgZG9lcyBub3QgbWVyZ2UgYWNyb3NzCisgICAg
ICA7OyB3aGF0IHNob3VsZCBiZSBhIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgIChsZXQqICgo
bGFzdC1pbmxpbmUKKyAgICAgICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKGNoaWxkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAi
aW5saW5lIikpCisgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSAodHJlZXNpdC1ub2Rl
LWNoaWxkcmVuIHBhcmEpKSkpCisgICAgICAgICAgICAgKHBhcmEtZW5kIChpZiBsYXN0LWlubGlu
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFzdC1pbmxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkpKQor
ICAgICAgICAgICAgIChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgp
KQorICAgICAgICAgICAgIDs7IFdoZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCBleHRlbmQgdGhlIHBy
ZWZpeCB3aXRoIHNwYWNlcworICAgICAgICAgICAgIDs7IHNvIGNvbnRpbnVhdGlvbiBsaW5lcyBh
bGlnbiB3aXRoIHRoZSBpdGVtJ3MgdGV4dC4KKyAgICAgICAgICAgICAobGlzdC1pdGVtICh0cmVl
c2l0LXBhcmVudC11bnRpbCBwYXJhICJcXGBsaXN0X2l0ZW1cXCciKSkKKyAgICAgICAgICAgICAo
cHJlZml4IChpZiBsaXN0LWl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0KiAoKHRl
eHQtY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1pdGVtKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGV4dHJhIChtYXggMCAoLSB0ZXh0LWNvbCAobGVuZ3RoIGJxLXBy
ZWZpeCkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGJxLXByZWZpeCAo
bWFrZS1zdHJpbmcgZXh0cmEgP1xzKSkpCisgICAgICAgICAgICAgICAgICAgICAgIGJxLXByZWZp
eCkpCisgICAgICAgICAgICAgKGFkYXB0aXZlLWZpbGwtZnVuY3Rpb24gbmlsKQorICAgICAgICAg
ICAgIChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgp
CisgICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIG5pbCkpCisgICAgICAgIChz
YXZlLXJlc3RyaWN0aW9uCisgICAgICAgICAgOzsgTmFycm93IHRvIHRoZSBmdWxsIGxpbmVzIG9m
IHRoZSBwYXJhZ3JhcGggc28gdGhhdCB0aGUKKyAgICAgICAgICA7OyBgPiAnIG1hcmtlcnMgYXJl
IGluY2x1ZGVkIGluIHRoZSBmaWxsIHJlZ2lvbi4KKyAgICAgICAgICAobmFycm93LXRvLXJlZ2lv
bgorICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgcGFyYSkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l
KQorICAgICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgIHBhcmEtZW5kKQorICAgICAgICAg
IChsZXQgKChmaWxsLXByZWZpeCBwcmVmaXgpKQorICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBo
IGp1c3RpZnkpKSkpKSkKKyAgdCkKKworOzs7IENvZGUgYmxvY2tzOgorCisoZGVmdmFyLWxvY2Fs
IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcyBuaWwKKyAgIkFsaXN0IG1hcHBpbmcg
bGFuZ3VhZ2Ugbm9kZSBuYW1lcyB0byB0cyBsYW5ndWFnZS4KK0lmIGEgbGFuZ3VhZ2UgaXMgbm90
IGEgdHMgbGFuZ3VhZ2Ugb3IgaXMgbm90IG1hcHBlZCB0byBvbmUsIGl0IHdpbGwgYmUKK2luIGBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMnLiIpCisKKyhkZWZ2YXItbG9jYWwg
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzIG5pbAorICAiQWxpc3QgbWFwcGlu
ZyBsYW5ndWFnZXMgdG8gbm9uLXRyZWUtc2l0dGVyIG1vZGVzIGZvciBjb2RlIGJsb2Nrcy4KK1Bv
cHVsYXRlZCBieSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHRvIGlkZW50
aWZ5IGEKK2NvZGUtYmxvY2sgbGFuZ3VhZ2UgbW9kZSB3aGljaCBpcyBub3QgYSB0cmVlLXNpdHRl
ciBtb2RlIG9yIGZvciB3aGljaAordGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgaXMgdW5hdmFpbGFi
bGUuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25maWd1
cmF0aW9uIChtb2RlKQorICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWd1cmF0aW9uIGZyb20g
TU9ERS4KK1JldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1ZXM6
CiAKICAgICA6Zm9udC1sb2NrIChmcm9tIGB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncycpCiAg
ICAgOnNpbXBsZS1pbmRlbnQgKGZyb20gYHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcycpCiAg
ICAgOnJhbmdlIChmcm9tIGB0cmVlc2l0LXJhbmdlLXNldHRpbmdzJykiCi0gICh3aXRoLXRlbXAt
YnVmZmVyCi0gICAgKGZ1bmNhbGwgbW9kZSkKLSAgICAobGlzdCA6Zm9udC1sb2NrIHRyZWVzaXQt
Zm9udC1sb2NrLXNldHRpbmdzCisgICh3aXRoLXdvcmstYnVmZmVyCisgICAgKG1hcmtkb3duLXRz
LS1pbmhpYml0LW1lc3NhZ2VzLWFuZC13YXJuaW5ncworICAgICAgJ21hcmtkb3duLXRzLWluaGli
aXQtY29kZS1ibG9jay1tb2RlLXdhcm5pbmdzCisgICAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVu
Y2FsbCBtb2RlKSkpCisgICAgKGxpc3QgOmxhbmd1YWdlICh0cmVlc2l0LWxhbmd1YWdlLWF0IChw
b2ludC1taW4pKQorICAgICAgICAgIDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGlu
Z3MKICAgICAgICAgICA6c2ltcGxlLWluZGVudCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMK
ICAgICAgICAgICA6cmFuZ2UgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncykpKQogCi0oZGVmdW4gbWFy
a2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUgKGxhbmd1YWdlIG1vZGUpCi0gICJBZGQgY29u
ZmlndXJhdGlvbnMgZm9yIExBTkdVQUdFIGZyb20gTU9ERSB0byBjdXJyZW50IGJ1ZmZlci4KLQot
Q29uZmlndXJhdGlvbiBpbmNsdWRlcyBmb250LWxvY2sgYW5kIGluZGVudC4gIEZvciBmb250LWxv
Y2sgcnVsZXMsIHVzZQotdGhlIHNhbWUgZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIKLSAgKGxl
dCAoKGNvbmZpZ3MgKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyBtb2RlKSkp
Ci0gICAgKGlnbm9yZSBsYW5ndWFnZSkgOyBXZSBtaWdodCBtYWtlIHVzZSBvZiB0aGlzIGxhdGVy
LgotICAgIChzZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgKGFwcGVu
ZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgOzsgR2V0IGFs
bCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0Ci0gICAgICAgICAg
ICAgICAgICA7OyBkb24ndCBwZXJ0YWluIHRvIExBTkdVQUdFLiAgVGhpcyB3YXkgd2UgZ2V0IGpz
ZG9jCi0gICAgICAgICAgICAgICAgICA7OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFtcGxlLgot
ICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpmb250LWxvY2spKSkKLSAgICAo
c2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKLSAgICAgICAgICAoYXBwZW5kIHRyZWVz
aXQtc2ltcGxlLWluZGVudC1ydWxlcwotICAgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBn
ZXQgYWxsIGluZGVudCBydWxlcy4KLSAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmln
cyA6c2ltcGxlLWluZGVudCkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVu
dC1idWZmZXIgKGNvbmZpZ3VyYXRpb24pCisgICJBZGQgQ09ORklHVVJBVElPTiB0byB0aGUgY3Vy
cmVudCBidWZmZXIuCitDT05GSUdVUkFUSU9OIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50
IHJ1bGVzLiAgRm9yIGZvbnQtbG9jayBydWxlcywKK3VzZSB0aGUgc2FtZSBmZWF0dXJlcyBlbmFi
bGVkIGluIE1PREUuIgorICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAg
ICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgOzsg
R2V0IGFsbCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0CisgICAg
ICAgICAgICAgICAgOzsgZG9uJ3QgcGVydGFpbiB0byBNT0RFLiAgVGhpcyB3YXksIHdlIGdldCBq
c2RvYworICAgICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCisg
ICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKSkKKyAg
KHNldHEgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQg
YWxsIGluZGVudCBydWxlcy4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRp
b24gOnNpbXBsZS1pbmRlbnQpKSkKICAgICAoc2V0cSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAg
ICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAgICAgICAg
ICA7OyBGaWx0ZXIgb3V0IGZ1bmN0aW9uIHF1ZXJpZXMsIGJlY2F1c2UgdGhleSBhcmUKQEAgLTMw
Miw0NSArMjY0OSwxOTQ2IEBAIG1hcmtkb3duLXRzLS1hZGQtY29uZmlnLWZvci1tb2RlCiAgICAg
ICAgICAgICAgICAgICA7OyBDYXNlIGluIHBvaW50OiBjLXRzLW1vZGUncyByYW5nZSBzZXR0aW5n
LgogICAgICAgICAgICAgICAgICAgKHNlcS1maWx0ZXIgKGxhbWJkYSAoc2V0dGluZykKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZnVuY3Rpb25wIChjYXIgc2V0dGluZykp
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlncyA6cmFu
Z2UpKSkpCi0gICAgKHNldHEtbG9jYWwgaW5kZW50LWxpbmUtZnVuY3Rpb24gIyd0cmVlc2l0LWlu
ZGVudCkKLSAgICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0aW9uICMndHJlZXNpdC1p
bmRlbnQtcmVnaW9uKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOnJhbmdlKSkpKQorICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5j
dGlvbiAjJ3RyZWVzaXQtaW5kZW50KQorICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0
aW9uICMndHJlZXNpdC1pbmRlbnQtcmVnaW9uKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYW5n
dWFnZS1hdC1ub2RlIChub2RlKQorICAiUmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgZm9yIGNv
ZGVfZmVuY2VfY29udGVudCBOT0RFLiIKKyAgKHdoZW4tbGV0KiAoKHBhcmVudCAodHJlZXNpdC1u
b2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgKGxhbmctbm9kZSAod2hlbiBwYXJlbnQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVu
dCAiXFxgbGFuZ3VhZ2VcXCciKSkpKQorICAgIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IGxh
bmctbm9kZSB0KSkpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1s
YW5ndWFnZSAobm9kZSkKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5
LWNhY2hlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkKKyAgIkNhY2hlIGZvciBub24t
dHJlZS1zaXR0ZXIgY29kZSBibG9jayBmb250aWZpY2F0aW9uLgorS2V5cyBhcmUgKExBTkcgLiBD
T05URU5ULUhBU0gpIGNvbnMgY2VsbHMsIHZhbHVlcyBhcmUgbGlzdHMgb2YKK1woT0ZGU0VULVNU
QVJUIE9GRlNFVC1FTkQgRkFDRSkgdHJpcGxlcy4iKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3du
LXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10aWNrIG5pbAorICAiRm9yIGJsdW50IGBidWZmZXIt
Y2hhcnMtbW9kaWZpZWQtdGljaycgY2FjaGUgaW52YWxpZGF0aW9uLiIpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgY29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNpbmcgYSBu
b24tdHJlZS1zaXR0ZXIgbW9kZS4KK0FwcGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBjb252ZW50
aW9uYWwgZm9udC1sb2NrIGluIGEgdGVtcG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwgU1RBUlQs
IGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3Zl
cnJpZGUnLgorCitDYWNoZSByZXN1bHRzIHRvIGF2b2lkIGZvbnRpZmljYXRpb24gb2YgdW5jaGFu
Z2VkIGNvZGUgYmxvY2tzLgorCitOT0RFIHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2VkIHRocm91
Z2gKK2BtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5IGhhdmUg
Y2xhc3NpZmllZCB0aGlzCitub2RlIGFzIGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1sZXQqICgo
XyBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2ZWx5KQorICAgICAgICAgICAg
ICAobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAg
ICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMt
bW9kZXMpKQorICAgICAgICAgICAgICAodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2sp
KQorICAgICAgICAgICAgICAoYmxvY2stc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgICAgICAgOzsgQ2Fubm90IHVzZSBtYXJrZXJzICdtYXJrZG93bi10cy1jb2RlLWJl
Zy1tYXJrZXIKKyAgICAgICAgICAgICAgOzsgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlciB0
aGV5IGFyZSBzZXQgYWZ0ZXIgdGhpcworICAgICAgICAgICAgICA7OyBmdW5jdGlvbiBydW5zLgor
ICAgICAgICAgICAgICAobm9kZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAg
ICAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwb2ludCkpKSkKKyAgICAod2hlbiAoPiBub2RlLWVuZCBub2RlLXN0YXJ0KQor
ICAgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUt
dGljaykKKyAgICAgICAgKGNscmhhc2ggbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hl
KSkKKyAgICAgIChsZXQqICgoY2FjaGUta2V5IChjb25zIGxhbmcgKHNlY3VyZS1oYXNoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhMjU2CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpIG5vZGUtc3RhcnQgbm9kZS1lbmQp
KSkKKyAgICAgICAgICAgICAocHJvcHMKKyAgICAgICAgICAgICAgKG9yIChnZXRoYXNoIGNhY2hl
LWtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLW5vbi10cy1mb250
aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAgICAgKGxldCAoKHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcwor
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlIG5vZGUtc3RhcnQgbm9kZS1lbmQpKSkKKyAg
ICAgICAgICAgICAgICAgICAgKHB1dGhhc2ggY2FjaGUta2V5IHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpCisgICAg
ICAgICAgICAgICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10
aWNrIHRpY2spCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkpKSkKKyAgICAgICAgKGRvbGlz
dCAocmFuZ2UgcHJvcHMpCisgICAgICAgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
CisgICAgICAgICAgIChudGggMCByYW5nZSkKKyAgICAgICAgICAgKG50aCAxIHJhbmdlKQorICAg
ICAgICAgICAobnRoIDIgcmFuZ2UpCisgICAgICAgICAgIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMgKG1v
ZGUgYmVnIGVuZCkKKyAgIlJ1biBNT0RFIG9uIHRoZSBCRUcuLkVORCByZWdpb24ncyB0ZXh0IGFu
ZCBoYXJ2ZXN0IGZhY2UgcHJvcGVydGllcy4KK1JldHVybiBhIGxpc3Qgb2YgKEJVRi1CRUcgQlVG
LUVORCBGQUNFKSB0cmlwbGVzIGluIGJhc2UtYnVmZmVyCitjb29yZGluYXRlcy4KKworRm9yIG5v
bi10cmVlLXNpdHRlciBtb2RlcyB1c2UgYW4gaW5kaXJlY3QgYnVmZmVyIG5hcnJvd2VkIHRvIEJF
Ry4uRU5EOgorcmVnZXgvc3ludGFjdGljIGZvbnQtbG9jayBob25vcnMgbmFycm93aW5nIGFuZCB0
aGUgaW5kaXJlY3QgYnVmZmVyCitzaGFyZXMgdGV4dCB3aXRoIHRoZSBiYXNlLCBzbyB0aGlzIGlz
IGxlc3MgZXhwZW5zaXZlIGFuZCBjb3B5LWZyZWUuCisKK0ZvciB0cyBtb2RlcyBpbiBgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMnLCBmYWxsCitiYWNrIHRv
IGEgdGVtcCBidWZmZXIuICBBIHBhcnNlciBjcmVhdGVkIGluIHRoZSBzb3VyY2UgYnVmZmVyIGRv
ZXMgbm90CityZWFjdCB0byBuYXJyb3dpbmcgaW4gYW4gaW5kaXJlY3QgYnVmZmVyIGRlcml2ZWQg
ZnJvbSBpdCAob25seSBwYXJzZXJzCitjcmVhdGVkIGluIHRoYXQgaW5kaXJlY3QgYnVmZmVyIHdv
dWxkIGhvbm9yIGl0cyBuYXJyb3dpbmcpLCBzbyByZXVzaW5nCit0aGUgaG9zdCBwYXJzZXIgdmlh
IGFuIGluZGlyZWN0IGJ1ZmZlciBpcyBub3QgYW4gb3B0aW9uIGhlcmUuICBBbmQgaW4KK3RoZSBo
b3N0IGJ1ZmZlciBpdHNlbGYsIHRoZSBpbm5lciBjb250ZW50IG9mIGEgZmVuY2VkIGNvZGUgYmxv
Y2sgaXMKK2p1c3Qgb3BhcXVlIHRleHQgaW5zaWRlIGEgYGNvZGVfZmVuY2VfY29udGVudCcgbm9k
ZSwgbmV2ZXIgcmUtcGFyc2VkCithcyBhIGZyZXNoIGRvY3VtZW50LiAgQSB0ZW1wIGJ1ZmZlciB3
aXRoIGEgZnJlc2ggcGFyc2VyIHNlZXMgdGhlIGlubmVyCitjb250ZW50IGFzIGEgc3RhbmRhbG9u
ZSBtYXJrZG93biBkb2N1bWVudCwgd2hpY2ggaXMgd2hhdCB3ZSB3YW50LiIKKyAgKGNvbmQgKCht
ZW1xIG1vZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMp
CisgICAgICAgICAobGV0ICgoY29udGVudCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz
IGJlZyBlbmQpKQorICAgICAgICAgICAgICAgcmVzKQorICAgICAgICAgICAod2l0aC13b3JrLWJ1
ZmZlcgorICAgICAgICAgICAgIChpbnNlcnQgY29udGVudCkKKyAgICAgICAgICAgICAobWFya2Rv
d24tdHMtLWluaGliaXQtbWVzc2FnZXMtYW5kLXdhcm5pbmdzCisgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAgICAgICAg
IChkZWxheS1tb2RlLWhvb2tzCisgICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZG93bi10cy0t
c2V0LXVwLWlubGluZSB0KSkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtbW9kZSkp
KSkKKyAgICAgICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAgICAobGV0ICgo
cG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICh3aGlsZSAoPCBwb3MgKHBvaW50LW1h
eCkpCisgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1j
aGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBvaW50
LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZmFjZSAoZ2V0LXRleHQtcHJvcGVydHkg
cG9zICdmYWNlKSkpCisgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAgICAg
ICAgICAgICAgOzsgVHJhbnNsYXRlIHRlbXAtYnVmZmVyIG9mZnNldHMgYmFjayB0byBiYXNlLWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgICAgOzsgcG9zaXRpb25zOiB0ZW1wIGBwb2ludC1taW4n
IGNvcnJlc3BvbmRzIHRvIEJFRy4KKyAgICAgICAgICAgICAgICAgICAgIChwdXNoIChsaXN0ICgr
IGJlZyAoMS0gcG9zKSkgKCsgYmVnICgxLSBuZXh0KSkgZmFjZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcykpCisgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQpKSkpKQor
ICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAgICh0CisgICAgICAgICAobGV0ICgo
aW5kaXJlY3QtYnVmZmVyIChtYWtlLWluZGlyZWN0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAoYnVmZmVyLW5hbWUpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdpbmhpYml0LWJ1ZmZlci1ob29rcykpCisg
ICAgICAgICAgICAgICByZXMpCisgICAgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAg
ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAg
ICAgIChtYXJrZG93bi10cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MK
KyAgICAgICAgICAgICAgICAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkpCisg
ICAgICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgICAg
ICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgICAgICAgICAgICAobGV0ICgocG9zIChwb2lu
dC1taW4pKSkKKyAgICAgICAgICAgICAgICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQor
ICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNo
YW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBv
aW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXBy
b3BlcnR5IHBvcyAnZmFjZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBmYWNlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QgcG9zIG5leHQgZmFjZSkgcmVzKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQpKSkpKQorICAgICAgICAgICAg
IChraWxsLWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIpKQorICAgICAgICAgICAobnJldmVyc2UgcmVz
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgKGxh
bmcpCisgICJDb21wdXRlIGFuZCBjYWNoZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywgYSBzeW1i
b2wuCitDb25zdWx0IHRoZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycgY2FjaGUsIG9y
IGNvbnN1bHQKK2B0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QnIGFuZCBgbWFqb3ItbW9k
ZS1yZW1hcC1hbGlzdCcsIG9yIGJydXRlCitmb3JjZSBtb2RlIHByb2JlLiAgUmV0dXJuIGEgdmFs
aWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIKKyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAoY2FyIChh
bGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKSkpKQorICAgICAgbWFw
cGVkLW1vZGUKKyAgICAobGV0KiAoKGxhbmctc3RyaW5nIChzeW1ib2wtbmFtZSBsYW5nKSkKKyAg
ICAgICAgICAgKGxhbmctbW9kZSAoY29uY2F0IGxhbmctc3RyaW5nICItbW9kZSIpKQorICAgICAg
ICAgICAobW9kZSkpCisgICAgICAoaWYgKHNldHEgbW9kZSAoYWxpc3QtZ2V0IGxhbmctbW9kZSB0
cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QpKQorICAgICAgICAgIG1vZGUKKyAgICAgICAg
KGlmIChzZXRxIG1vZGUgKGFsaXN0LWdldCBsYW5nLW1vZGUgbWFqb3ItbW9kZS1yZW1hcC1hbGlz
dCkpCisgICAgICAgICAgICBtb2RlCisgICAgICAgICAgKGNhdGNoIDptb2RlCisgICAgICAgICAg
ICAoZG9saXN0IChtb2RlCisgICAgICAgICAgICAgICAgICAgICAobGlzdAorICAgICAgICAgICAg
ICAgICAgICAgIDs7IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmluZy4KKyAg
ICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMtbW9kZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIHJh
dyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgbGFuZy1tb2RlCisgICAgICAgICAgICAg
ICAgICAgICAgOzsgVHJ5IGEgdHJlZXNpdCBtb2RlIHVzaW5nIHRoZSBkb3duY2FzZWQgc3RyaW5n
LgorICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAi
LXRzLW1vZGUiKQorICAgICAgICAgICAgICAgICAgICAgIDs7IFRyeSBhIGNvbnZlbnRpb25hbCBt
b2RlIHVzaW5nIHRoZSBkb3duY2FzZWQgc3RyaW5nLgorICAgICAgICAgICAgICAgICAgICAgIChj
b25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAiLW1vZGUiKSkpCisgICAgICAgICAgICAgIChz
ZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGZib3VuZHAgbW9k
ZSkKKyAgICAgICAgICAgICAgICAocHVzaCAobGlzdCBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgICAgICAgKHRocm93IDptb2RlIG1vZGUpKSkpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlIChub2RlKQog
ICAiQ29udmVydCBOT0RFIHRvIGEgbGFuZ3VhZ2UgZm9yIHRoZSBjb2RlIGJsb2NrLiIKLSAgKGxl
dCogKChsYW5nLXN0cmluZyAoYWxpc3QtZ2V0ICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFu
Z3VhZ2UtbWFwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXRleHQgbm9kZSkgbmlsICMnZXF1YWwpKQotICAgICAgICAgKGxhbmcgKGlmIChzeW1ib2xwIGxh
bmctc3RyaW5nKQotICAgICAgICAgICAgICAgICAgIGxhbmctc3RyaW5nCi0gICAgICAgICAgICAg
ICAgIChpbnRlcm4gKGRvd25jYXNlIGxhbmctc3RyaW5nKSkpKSkKLSAgICA7OyBGSVhNRTogS2lu
ZCBvZiBhIGhhY2sgaGVyZTogd2UgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBob29rIGZvcgotICAg
IDs7IGxvYWRpbmcgdXAgY29uZmlncyBmb3IgdGhlIGxhbmd1YWdlIGZvciB0aGUgY29kZSBibG9j
ayBvbi1kZW1hbmQuCi0gICAgKGxldCAoKG1vZGUgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwKSkpCi0gICAgICA7OyBJZiB0aGVyZSdzIG5vIHN1
cHBvcnRlZCBtb2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHJldHVybiBuaWwsCi0gICAgICA7OyB3aGlj
aCBtYWtlcyBFbWFjcyBza2lwIHRoZSBjb2RlIGJsb2NrLgotICAgICAgKGlmIChub3QgKGFuZCBt
b2RlIChmYm91bmRwIG1vZGUpKSkKLSAgICAgICAgICBuaWwKLSAgICAgICAgOzsgSWYgdGhlcmUn
cyBhIG1ham9yIG1vZGUgZm9yIHRoZSBsYW5ndWFnZSwgc2V0IHVwIHRoZSBjb25maWcKLSAgICAg
ICAgOzsgYW5kIHJldHVybiB0aGUgbGFuZ3VhZ2UuCi0gICAgICAgICh3aGVuIChub3QgKG1lbXEg
bGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICAgIChtYXJr
ZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZSBsYW5nIG1vZGUpCi0gICAgICAgICAgKHB1c2gg
bGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICBsYW5nKSkp
KQorICAobGV0KiAoKGxhbmcgKGludGVybiAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkpKQorICAg
ICAgICAgKG1vZGUgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykp
CisgICAgICAgICAodHMtbGFuZ3VhZ2UgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWxhbmd1YWdlcykpCisgICAgICAgICAobm9uLXRzLWxhbmd1YWdlIChhbGlzdC1nZXQg
bGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKSkKKyAgICAoY29uZAor
ICAgICAoKGZib3VuZHAgbW9kZSkKKyAgICAgIChjb25kCisgICAgICAgOzsgUmV0dXJuIGtub3du
IHRyZWVzaXQgbGFuZ3VhZ2UuCisgICAgICAgKHRzLWxhbmd1YWdlIHRzLWxhbmd1YWdlKQorICAg
ICAgIDs7IFJldHVybiBuaWwgZm9yIGtub3duIG5vbi10cmVlc2l0IGxhbmd1YWdlIGZvciBmb250
LWxvY2suCisgICAgICAgKG5vbi10cy1sYW5ndWFnZSBuaWwpCisgICAgICAgOzsgTWFya2Rvd24g
aXRzZWxmIG5lZWRzIHR3byBwYXJzZXJzIChtYXJrZG93biArCisgICAgICAgOzsgbWFya2Rvd24t
aW5saW5lKSwgc28gdHJlZXNpdCBlbWJlZGRpbmcgKHdoaWNoIGNyZWF0ZXMgb25seQorICAgICAg
IDs7IG9uZSkgY2Fubm90IGZ1bGx5IGZvbnRpZnkgaXQuICBSb3V0ZSB0aHJvdWdoIHRoZSBub24t
dHMKKyAgICAgICA7OyBwYXRoIHNvIHRoZSB0ZW1wIGJ1ZmZlciBydW5zIHRoZSBmdWxsIG1vZGUg
d2l0aCBib3RoCisgICAgICAgOzsgcGFyc2Vycy4KKyAgICAgICAoKHByb3ZpZGVkLW1vZGUtZGVy
aXZlZC1wIG1vZGUgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAgICh1bmxlc3MgKGFzc3EgbGFu
ZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgKHB1c2gg
KGNvbnMgbGFuZyBtb2RlKSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQor
ICAgICAgICBuaWwpCisgICAgICAgKHQKKyAgICAgICAgKGxldCogKChjb25maWd1cmF0aW9uICht
YXJrZG93bi10cy0taGFydmVzdC1tb2RlLXRyZWVzaXQtY29uZmlndXJhdGlvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGUpKQorICAgICAgICAgICAgICAgKHRzLWxhbmd1YWdl
IChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6bGFuZ3VhZ2UpKSkKKyAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAoKGFuZCB0cy1sYW5ndWFnZQorICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOmZvbnQtbG9jaykpCisgICAgICAgICAgICAobWFya2Rvd24tdHMtLWNv
bmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciBjb25maWd1cmF0aW9uKQorICAgICAgICAgICAgKHVubGVz
cyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAgICAgICAg
ICAgICAgKHB1c2ggKGNvbnMgbGFuZyB0cy1sYW5ndWFnZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxv
Y2stbGFuZ3VhZ2VzKSkKKyAgICAgICAgICAgIHRzLWxhbmd1YWdlKQorICAgICAgICAgICA7OyBP
dGhlcndpc2UsIGNsYXNzaWZ5IG1vZGUgYXMgbm9uLXRyZWUtc2l0dGVyLgorICAgICAgICAgICAo
dAorICAgICAgICAgICAgKHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2Nr
LW5vbi10cy1tb2RlcykKKyAgICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFuZyBtb2RlKSBtYXJr
ZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgbmlsKSkpKSkp
CisgICAgICh0IG5pbCkpKSkKKworOzs7IENvZGUgYmxvY2sgbWlub3IgbW9kZSBzdXBwb3J0IGFu
ZCBjb2RlLWJsb2NrIGNvbnRleHQgY29tbWFuZHM6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1jb21tYW5kcyAnKGluZGVudC1mb3ItdGFiLWNvbW1hbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZWN0cmljLW5ld2xpbmUtYW5kLW1heWJlLWlu
ZGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlv
bi1hdC1wb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3
bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudC1k
d2ltCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50LWxp
bmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQtb3It
dW5jb21tZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ctZmlsbC1yZWluZGVudC1kZWZ1bikKKyAg
IkNvbW1hbmRzIHRvIGV4ZWN1dGUgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitTZWUgYG1hcmtk
b3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iKQorCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMgJyh4cmVmLWZpbmQtZGVmaW5pdGlvbnMpCisg
ICJDb21tYW5kcyB0aGF0IG5lZWQgYSBcInRoaW5nXCIgYXQgcG9pbnQgaW4gYSBjb2RlLWJsb2Nr
IGNvbnRleHQuCitTZWUgYG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4i
KQorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1hbmRzICcoY29t
bWVudC1vci11bmNvbW1lbnQtcmVnaW9uKQorICAiQ29tbWFuZHMgdGhhdCBuZWVkIGEgcmVnaW9u
IGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jaycuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1p
bi1jb250ZXh0LW1vZGUnIGlmIGluIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICAobWFya2Rvd24t
dHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMtYXQtY29k
ZS1ibG9jay1wKSAxIC0xKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRv
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1uZXdsaW5lICgmb3B0aW9uYWwgYXJnIGludGVyYWN0aXZlKQorICAiSW5zZXJ0
IGEgbmV3bGluZSwgYW5kIG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5ldyBsaW5lLgorV2l0
aCBwcmVmaXggYXJndW1lbnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xpbmVzLgorCitJZiBg
ZWxlY3RyaWMtaW5kZW50LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50cyB0aGUgZmluYWwg
bmV3IGxpbmUKK3RoYXQgaXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJlY2VkaW5nIGxpbmUu
ICBUbyBqdXN0IGluc2VydAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMtaW5kZW50LWp1c3Qt
bmV3bGluZV0uCisKK0lmIGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwgdGhpcyBtYXkgY2F1
c2UgYXV0b21hdGljIGxpbmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcgbGluZS4gIEEgbm9u
LW5pbCBBUkcgaW5oaWJpdHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1oYXJkLW5ld2xpbmVz
JyBpcyBlbmFibGVkLCB0aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhlIHRleHQtcHJvcGVy
dHkgYGhhcmQnLgorCitBIG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQgbWVhbnMgdG8gcnVu
IHRoZSBgcG9zdC1zZWxmLWluc2VydC1ob29rJy4iCisgIChpbnRlcmFjdGl2ZSAiKlBcbnAiKQor
ICAoaWYtbGV0KiAoKGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCkp
CisgICAgICAgICAgICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAgICAgKG1hcmtkb3duLXRz
LS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ25ld2xpbmUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZSkKKyAgICAoZnVuY2FsbC1pbnRlcmFj
dGl2ZWx5ICMnbmV3bGluZSBhcmcgaW50ZXJhY3RpdmUpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVzdGlmeSkKKyAgIlJlZmls
bCBvciByZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0aGF0IGNvbnRhaW5zIHBvaW50Lgor
SWYgdGhlIHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29tbWVudCwgZmlsbCB0aGUgcGFyYWdy
YXBoIHRoYXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3MgcG9pbnQuCisKK090aGVyd2lzZSwg
cmVpbmRlbnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhhdCBjb250YWlucyBwb2ludCBvcgor
Zm9sbG93cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24tbmlsIChpbnRlcmFjdGl2ZWx5LCB3
aXRoIHByZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dlbGwuIgorICAoaW50ZXJhY3RpdmUg
IlAiKQorICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9nLW1vZGUpCisgICAgICAgICAoY2Fs
bC1pbnRlcmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50LWRlZnVuIGp1c3RpZnkpKQorICAg
ICAgICAodAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcGFyYWdyYXBoIGp1
c3RpZnkpKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay14cmVmLWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3MpCisgICJIZWxwZXIgY29tbWFuZCBm
b3IgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitGaW5k
IHRoaW5nIGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVuY2VzIG9uIHRoZSB4cmVmIHN0YWNr
IHRvIHRoZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBBUkdTIGlmIG5vdCBpbiBhIGNvZGUg
YmxvY2sgd2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmLWxl
dCogKChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAg
ICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChjb25kaXRpb24tY2FzZSBlcnIK
KyAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAgKHByb2duCisgICAgICAg
ICAgICAgICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJlZiBtYXJrZXIgaW4gdGhlIGJhc2Ug
YnVmZmVyLiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdpbGwgYmUgcmV0YWluZWQgaWYgdGhl
IGNvbW1hbmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBpbgorICAgICAgICAgICAgICAgIDs7
IHRoZSBjb2RlLWJsb2NrIGJ1ZmZlciB3aGljaCB3ZSB3aWxsIHBvcC4KKyAgICAgICAgICAgICAg
ICAoeHJlZi1wdXNoLW1hcmtlci1zdGFjaykKKyAgICAgICAgICAgICAgICA7OyBgeHJlZi1maW5k
LWRlZmluaXRpb25zJyBpcyBhIHRoaW5nIGNvbW1hbmQgaW4KKyAgICAgICAgICAgICAgICA7OyBg
bWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcycuCisgICAgICAgICAgICAgICAg
KG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyd4cmVm
LWZpbmQtZGVmaW5pdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJncykpCisgICAgICAgICAgICA7OyBQb3AgdGhlIHRvcCB4cmVm
IG1hcmtlci4gIElmIHRoZSBjb21tYW5kIHN1Y2NlZWRlZCwgdGhlCisgICAgICAgICAgICA7OyB0
b3AgbWFya2VyIHdpbGwgYmUgdGhlIGNvZGUtYmxvY2sgYnVmZmVyIG1hcmtlci4gIElmIGl0Cisg
ICAgICAgICAgICA7OyBmYWlsZWQsIHdlJ2xsIHBvcCB0aGUgcGxhY2Vob2xkZXIgd2hpY2ggaXMg
bm93IG9mIG5vCisgICAgICAgICAgICA7OyB2YWx1ZS4KKyAgICAgICAgICAgIDs7IFRPRE86IFBy
b3Bvc2UgYW4gYHhyZWYnIHBvcCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgImdvCisgICAgICAgICAg
ICA7OyBiYWNrIi4KKyAgICAgICAgICAgIChsZXQgKChoaXN0b3J5ICh4cmVmLS1nZXQtaGlzdG9y
eSkpKQorICAgICAgICAgICAgICAodW5sZXNzIChudWxsIChjYXIgaGlzdG9yeSkpCisgICAgICAg
ICAgICAgICAgKHBvcCAoY2FyIGhpc3RvcnkpKSkpKQorICAgICAgICAoZXJyb3IKKyAgICAgICAg
IDs7IFByb3BhZ2F0ZSB0aGUgc2lnbmFsLgorICAgICAgICAgKHNpZ25hbCAoY2FyIGVycikgKGNk
ciBlcnIpKSkpCisgICAgOzsgTm90IGluIGEgY29kZSBibG9jayBjb250ZXh0LiAgVGhpcyBzaG91
bGQgcmVhbGx5IG5ldmVyIGhhcHBlbi4KKyAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5ICMneHJl
Zi1maW5kLWRlZmluaXRpb25zIGFyZ3MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tYXliZS1y
dW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrICgpCisgICJIZWxwZXIgZnVuY3Rpb24gdG8gd3JhcCBh
IGNvbW1hbmQgZm9yIGEgY29kZS1ibG9jayBjb250ZXh0LgorSWYgYHRoaXMtY29tbWFuZCcgaXMg
YSBtZW1iZXIgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnIGFuZAorcG9pbnQg
aXMgd2l0aGluIGEgY29kZSBibG9jayB3aXRoIGFuIGF2YWlsYWJsZSBtb2RlLCBpdCB3aWxsIHJ1
biBpbiB0aGF0Citjb2RlIGJsb2NrJ3MgbW9kZSBpbiBhIGJ1ZmZlciBuYXJyb3dlZCB0byBpdHMg
Y29udGVudC4gIE90aGVyd2lzZSwgdGhlCitjb21tYW5kIHdpbGwgcnVuIGluIHRoZSBjb250ZXh0
IG9mIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyLiIKKyAgKHdoZW4gKG1lbXEgdGhpcy1j
b21tYW5kIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMpCisgICAgKHdoZW4tbGV0KiAo
KGNvbW1hbmQgdGhpcy1jb21tYW5kKQorICAgICAgICAgICAgICAgIChibG9jay1tb2RlIChtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgICAgICgoZmJvdW5kcCBi
bG9jay1tb2RlKSkpCisgICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgKGxhbWJkYSAoJnJlc3QgYXJn
cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhcHBseSAjJ21hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2Rl
LWJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stbW9kZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcmdzKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcnVuLWNv
bW1hbmQtaW4tY29kZS1ibG9jayAoYmxvY2stbW9kZSBjb21tYW5kICZyZXN0IGFyZ3MpCisgICJS
dW4gQ09NTUFORCBpbiBCTE9DSy1NT0RFLgorQVJHUyBhcmUgY2FwdHVyZWQgYnkgYG1hcmtkb3du
LXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iCisgICh3aGVuLWxldCogKChi
ZWcgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtl
cikpCisgICAgICAgICAgICAgIChlbmQgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtk
b3duLXRzLWNvZGUtZW5kLW1hcmtlcikpCisgICAgICAgICAgICAgIChzdHIgKGJ1ZmZlci1zdWJz
dHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkpCisgICAgOzsgVXNlIGEgdGVtcCAob3Igd29y
aykgYnVmZmVyIGJlY2F1c2UgdHJlZXNpdCBjdXJyZW50bHkgY29uZnVzZXMKKyAgICA7OyBub2Rl
cyBpbiBhbiBpbmRpcmVjdCBidWZmZXIgZXZlbiBpZiB0aGUgaW5kaXJlY3QgYnVmZmVyIGlzIG5v
dAorICAgIDs7IG5hcnJvd2VkLgorICAgIChsZXQqICgodGVtcC1kZWFjdGl2YXRlLW1hcmspCisg
ICAgICAgICAgIChvcmlnLXBvaW50IChwb2ludCkpCisgICAgICAgICAgIChvcmlnLW1hcmsgKG1h
cmsgdCkpCisgICAgICAgICAgIChvcmlnLW1hcmstYWN0aXZlIG1hcmstYWN0aXZlKQorICAgICAg
ICAgICAocmVnaW9uLWJlZyAodXNlLXJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAocmVn
aW9uLWVuZCAodXNlLXJlZ2lvbi1lbmQpKQorICAgICAgICAgICAoYWRqLXBvaW50ICgxKyAoLSBv
cmlnLXBvaW50IGJlZykpKQorICAgICAgICAgICAoYWRqLW1hcmsgKHdoZW4gb3JpZy1tYXJrICgx
KyAoLSBvcmlnLW1hcmsgYmVnKSkpKQorICAgICAgICAgICAoYWRqLXJlZ2lvbi1iZWcgKHdoZW4g
cmVnaW9uLWJlZyAoMSsgKC0gb3JpZy1wb2ludCByZWdpb24tYmVnKSkpKQorICAgICAgICAgICAo
YWRqLXJlZ2lvbi1lbmQgKHdoZW4gcmVnaW9uLWVuZCAoMSsgKC0gb3JpZy1wb2ludCByZWdpb24t
ZW5kKSkpKQorICAgICAgICAgICAocG9pbnQtZGVsdGEgMCkKKyAgICAgICAgICAgKHNvdXJjZS1i
dWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAod2l0aC13b3JrLWJ1ZmZlcgorICAgICAg
ICAoaW5zZXJ0IHN0cikKKyAgICAgICAgKGdvdG8tY2hhciBhZGotcG9pbnQpCisgICAgICAgIDs7
IFByb3BhZ2F0ZSBtYXJrIChhbmQgcmVnaW9uKS4KKyAgICAgICAgKHdoZW4gb3JpZy1tYXJrLWFj
dGl2ZQorICAgICAgICAgIChzZXQtbWFyayBhZGotbWFyaykpCisgICAgICAgIChtYXJrZG93bi10
cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICAgICAnbWFya2Rvd24tdHMt
aW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAgICAoZGVsYXktbW9kZS1o
b29rcworICAgICAgICAgICAgKGxldCAoKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lCisgICAg
ICAgICAgICAgICAgICAgKHByb3ZpZGVkLW1vZGUtZGVyaXZlZC1wIGJsb2NrLW1vZGUgJ21hcmtk
b3duLXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAgKGZ1bmNhbGwgYmxvY2stbW9kZSkpKSkKKyAg
ICAgICAgKGxldCAoKHBvaW50IChwb2ludCkpCisgICAgICAgICAgICAgIChhcml0eSAoY2RyIChm
dW5jLWFyaXR5IGNvbW1hbmQpKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChtZW1x
IGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKyAgICAgICAg
ICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpKQorICAgICAg
ICAgICAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQgdGhpbmcpKSkKKyAgICAgICAg
ICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24tY29tbWFuZHMp
CisgICAgICAgICAgICAod2hlbiAoYW5kIGFkai1yZWdpb24tYmVnIGFkai1yZWdpb24tZW5kKQor
ICAgICAgICAgICAgICAoYXBwbHkgIydmdW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZAorICAg
ICAgICAgICAgICAgICAgICAgYWRqLXJlZ2lvbi1iZWcgYWRqLXJlZ2lvbi1lbmQgYXJncykpKQor
ICAgICAgICAgICAoKHplcm9wIGFyaXR5KQorICAgICAgICAgICAgKGZ1bmNhbGwtaW50ZXJhY3Rp
dmVseSBjb21tYW5kKSkKKyAgICAgICAgICAgKChlcSAxIGFyaXR5KQorICAgICAgICAgICAgKGZ1
bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIChjYXIgYXJncykpKQorICAgICAgICAgICAodAor
ICAgICAgICAgICAgKGFwcGx5ICMnZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQgYXJncykp
KQorICAgICAgICAgIChzZXRxIHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChw
b2ludC1taW4pIChwb2ludC1tYXgpKSkKKyAgICAgICAgICAoc2V0cSB0ZW1wLWRlYWN0aXZhdGUt
bWFyayBkZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgKHNldHEgcG9pbnQtZGVsdGEgKC0gKHBv
aW50KSBwb2ludCkpKQorICAgICAgICAobGV0ICgod29yay1idWZmZXIgKGN1cnJlbnQtYnVmZmVy
KSkpCisgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAg
ICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJlZyBlbmQgd29yay1idWZmZXIpCisgICAg
ICAgICAgICA7OyBQcm9wYWdhdGUgbWFyayBkZWFjdGl2YXRpb24gdG8gdGhlIHNvdXJjZSBidWZm
ZXIuCisgICAgICAgICAgICAoc2V0cSBkZWFjdGl2YXRlLW1hcmsgdGVtcC1kZWFjdGl2YXRlLW1h
cmspCisgICAgICAgICAgICA7OyBNb3ZlIHBvaW50IGlmIGl0IG1vdmVkIGluIHRoZSB0ZW1wIGJ1
ZmZlci4KKyAgICAgICAgICAgIChnb3RvLWNoYXIgKCsgb3JpZy1wb2ludCBwb2ludC1kZWx0YSkp
CisgICAgICAgICAgICA7OyBSZWNvcmQgdGhlIG9yaWdpbmFsIGNvbW1hbmQuCisgICAgICAgICAg
ICAoc2V0cSB0aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAgICAgIDs7IFRoaXMgaGVscHMg
bWFpbnRhaW4gZGlzY3JldGUgY29tbWFuZCBhY3Rpb25zLgorICAgICAgICAgICAgKHVuZG8tYm91
bmRhcnkpCisgICAgICAgICAgICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0aW5nIHJlZ2lvbiBp
cyByZWZvbnRpZmllZC4KKyAgICAgICAgICAgIChmb250LWxvY2stZmx1c2ggYmVnIGVuZCkpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyIChwb3Mg
Jm9wdGlvbmFsIGJhY2t3YXJkKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNl
ZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQg
UE9TLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgorICAodHJlZXNp
dC1zZWFyY2gtZm9yd2FyZCAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
ZmluZC1uZXh0LWNvZGUtYmxvY2stZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgYmFja3dhcmQgcmVtYWlu
KQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGlt
aXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBwb2ludCcsIGlm
IFBPUyBpcyBuaWwuCitTZWFyY2ggYmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9uLW5pbC4KK0lm
IFJFTUFJTiBpcyBub24tbmlsLCBtb3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZSBjdXJy
ZW50IGNvZGUKK2Jsb2NrLCBpZiBpbiBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAocG9pbnQp
KSkKKyAgKGFuZC1sZXQqICgobm9kZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxp
bWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgKGxldCAoKGluLWJsb2NrIChtYXJrZG93bi10cy1h
dC1jb2RlLWJsb2NrLXAgcG9zKSkpCisgICAgICAoY29uZAorICAgICAgICgoYW5kIHJlbWFpbiBp
bi1ibG9jaykKKyAgICAgICAgbm9kZSkKKyAgICAgICAocmVtYWluCisgICAgICAgIG5pbCkKKyAg
ICAgICAodAorICAgICAgICAod2hpbGUgKGFuZCBub2RlCisgICAgICAgICAgICAgICAgICAgIDs7
IElmIGJhY2t3YXJkLCBza2lwIHRoZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAgICAgICAgICAg
ICAgOzsgc3RhcnRpbmcgZGVsaW1pdGVyLgorICAgICAgICAgICAgICAgICAgICAob3IgKGFuZCBi
YWNrd2FyZCBpbi1ibG9jayAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBub2RlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkp
KSkKKyAgICAgICAgICAoc2V0cSBpbi1ibG9jayAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1w
IHBvcykpCisgICAgICAgICAgKHNldHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAgICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAgICAg
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2RlIChtYXJrZG93
bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkKKyAgICAgICAg
bm9kZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jayAo
YXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29kZSBibG9jay4K
K1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJlbnQg
Y29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2RlCisg
ICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRl
ciBuaWwgbmlsIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrIChh
cmcpCisgICJNb3ZlIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMgY29kZSBibG9j
ay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJl
bnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2Rl
CisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGlt
aXRlciBuaWwgJ2JhY2t3YXJkIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkpKQorCis7OzsgVGFibGVzIGFrYSBwaXBlIHRhYmxlczoKKworOzs7OyBVdGls
aXRpZXM6CisKKyhkZWZjb25zdCBtYXJrZG93bi10cy10YWJsZS1leHBvcnQtYnVmZmVyCisgICIq
bWFya2Rvd24tdHMtdGFibGUtZXhwb3J0KiIpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRjaGluZyBv
cmRlci4KKyhkZWZjb25zdCBtYXJrZG93bi10cy0tdGFibGUtcm93LXR5cGVzCisgICcoInBpcGVf
dGFibGVfcm93IgorICAgICJwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciCisgICAgInBpcGVfdGFi
bGVfaGVhZGVyIikpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRjaGluZyBvcmRlci4KKyhkZWZjb25z
dCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2NlbGwiCisg
ICAgInBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwiKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LS10YWJsZS1kZWxpbWl0ZXItY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2RlbGltaXRlcl9j
ZWxsIgorICAgICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFibGVfYWxpZ25f
cmlnaHQiKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcworICAnKCJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFibGVfYWxp
Z25fcmlnaHQiKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1hYnV0dGluZy1wb3MgKHBv
cykKKyAgIkFkanVzdCBQT1MgdG8gYWJ1dCBpdHMgY2xvc2VzdCB0ZXh0LgorUmV0dXJuIHBvcyBh
ZGp1c3RlZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNoYXJhY3Rl
ci4KK090aGVyd2lzZSwgcmV0dXJuIG5pbCwgZm9yIGV4YW1wbGUsIGlmIHRoZSBsaW5lIGlzIGVt
cHR5LiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGdvdG8tY2hhciBwb3MpCisgICAgKHNraXAt
Y2hhcnMtZm9yd2FyZCAiW1s6Ymxhbms6XV0iIChwb3MtZW9sKSkKKyAgICAoaWYgKGVxIHBvcyAo
cG9zLWVvbCkpCisgICAgICAgIChwcm9nbgorICAgICAgICAgIChnb3RvLWNoYXIgcG9zKQorICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICJbWzpibGFuazpdXSIgKHBvcy1ib2wpKQorICAg
ICAgICAgICh1bmxlc3MgKGVxIHBvcyAocG9zLWJvbCkpCisgICAgICAgICAgICAobWF4IChwb2lu
dC1taW4pICgxLSAocG9pbnQpKSkpKQorICAgICAgKG1pbiAocG9pbnQtbWF4KSAoMSsgKHBvaW50
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsICgmb3B0aW9uYWwg
bm9kZSBwb3MgYWJ1dHRpbmcpCisgICJDb21wdXRlIHRhYmxlIGNlbGwgZnJvbSBuYW1lZCBOT0RF
IGF0IFBPUy4KK0lmIE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYgUE9TIGlz
IG5pbCwgdXNlIGBwb2ludCcuCitJZiBOT0RFIGlzIGEgY2VsbCB0eXBlLCByZXR1cm4gaXQuCitJ
ZiBOT0RFIGlzIGEgc3VidHlwZSwgcHJvbW90ZSBpdC4KK0lmIEFCVVRUSU5HIGlzIG5vbi1uaWws
IGFkanVzdCBQT1MgdG8gdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNoYXJhY3Rlci4KK090aGVyd2lz
ZSwgcmV0dXJuIG5pbC4iCisgIDs7IFdlIGNvdWxkIHNhbml0eSBjaGVjayB2aWEgYHRyZWVzaXQt
bm9kZS1uYW1lZCcgYW5kIGVycm9yIGlmIG5vdC4KKyAgKHNldHEgcG9zIChvciBwb3MgKHBvaW50
KSkpCisgICh3aGVuIGFidXR0aW5nCisgICAgKHNldHEgcG9zIChvciAobWFya2Rvd24tdHMtLXRh
YmxlLWFidXR0aW5nLXBvcyBwb3MpIHBvcykpKQorICAod2hlbi1sZXQqICgobm9kZSAob3Igbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3du
ICduYW1lZCkpKQorICAgICAgICAgICAgICAodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkp
KQorICAgIChjb25kICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxlLWNlbGwtdHlwZXMp
CisgICAgICAgICAgIG5vZGUpCisgICAgICAgICAgKChtZW1iZXIgdHlwZSBtYXJrZG93bi10cy0t
dGFibGUtZGVsaW1pdGVyLWNlbGwtc3VidHlwZXMpCisgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
cGFyZW50IG5vZGUpKQorICAgICAgICAgICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxl
LXJvdy10eXBlcykKKyAgICAgICAgICAgKGNvbmQgKChlcSBhYnV0dGluZyAnbGVmdCkKKyAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgIDs7IEFjY291bnQgZm9yICdyaWdodCBvciB0LgorICAgICAgICAgICAgICAgICAo
dAorICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIC0xICduYW1lZCkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyAoJm9wdGlvbmFsIG5v
ZGUgcG9zKQorICAiQ29tcHV0ZSB0YWJsZSByb3cgZnJvbSBuYW1lZCBOT0RFIGF0IFBPUy4KK0lm
IE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNlIGBw
b2ludCcuCitJZiBOT0RFIGlzIGEgcm93IHR5cGUsIHJldHVybiBpdC4KK0lmIE5PREUgaXMgYSB0
YWJsZSBjZWxsIHR5cGUsIHJldHVybiBpdHMgcm93LgorT3RoZXJ3aXNlLCByZXR1cm4gbmlsLiIK
KyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJlZXNpdC1ub2RlLW5hbWVkJyBhbmQg
ZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgobm9kZSAob3Igbm9kZQorICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCAob3IgcG9zIChwb2ludCkpICdtYXJrZG93biAn
bmFtZWQpKSkKKyAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKSkK
KyAgICAoaWYgKG1lbWJlciB0eXBlIG1hcmtkb3duLXRzLS10YWJsZS1yb3ctdHlwZXMpCisgICAg
ICAgIG5vZGUKKyAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCAobWFya2Rvd24tdHMtLXRhYmxl
LW5vZGUtY2VsbCBub2RlKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1wYXJzZS1l
cnJvci1wICgmb3B0aW9uYWwgbm9kZSBwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBuYW1lZCBO
T0RFIGF0IFBPUyBpcyBpbiBhbiBcIkVSUk9SXCIgc3VidHJlZS4KK05PREUgbXVzdCBiZSBhIHRh
YmxlIGVsZW1lbnQ7IGkuZS4sIGl0cyB0eXBlIHByZWZpeCBpcyBcInBpcGVfdGFibGVcIi4KK0lm
IE5PREUgaXMgYSB0YWJsZSwgcmV0dXJuIG5pbCAoaXQgc2hvdWxkbid0IGJlIGluIEVSUk9SKS4K
K0lmIE5PREUgaXMgbm90IGEgdGFibGUgZWxlbWVudCwgcmV0dXJuIG5pbC4KK0lmIE5PREUncyBu
ZWFyYnkgYW5jZXN0b3IgaXMgYW4gXCJFUlJPUlwiIG5vZGUsIHJldHVybiB0LgorT3RoZXJ3aXNl
LCByZXR1cm4gbmlsLiIKKyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJlZXNpdC1u
b2RlLW5hbWVkJyBhbmQgZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgocm93IChtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1yb3cgbm9kZSBwb3MpKQorICAgICAgICAgICAgICAodHlwZSAodHJl
ZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAgICAgKHBhcmVudCAodHJlZXNpdC1ub2Rl
LXBhcmVudCByb3cpKQorICAgICAgICAgICAgICAocGFyZW50LXR5cGUgKHRyZWVzaXQtbm9kZS10
eXBlIHBhcmVudCkpKQorICAgIChjb25kICgoZXF1YWwgdHlwZSAicGlwZV90YWJsZSIpCisgICAg
ICAgICAgIG5pbCkKKyAgICAgICAgICAoKGVxdWFsIHBhcmVudC10eXBlICJwaXBlX3RhYmxlIikK
KyAgICAgICAgICAgbmlsKQorICAgICAgICAgICgoZXF1YWwgcGFyZW50LXR5cGUgIkVSUk9SIikK
KyAgICAgICAgICAgdCkKKyAgICAgICAgICAodAorICAgICAgICAgICAoZXJyb3IgIlNob3VsZCBu
ZXZlciBoYXBwZW4iKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgKCZvcHRp
b25hbCBwb3MgYWJ1dHRpbmcpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgYXQgb3IgaW4g
YSBwaXBlIHRhYmxlLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LgorUmV0dXJuIGNvbnMgKHBv
cyAuIHRhYmxlLW5vZGUpIGlmIFBPUyBpcyB3aXRoaW4gYSB0YWJsZSwgb3RoZXJ3aXNlCityZXR1
cm4gbmlsLgoraWYgUE9TIGlzIHdpdGhpbiBhIHRhYmxlIGJ1dCB3aXRoIHBhcnNlIGVycm9ycywg
c2lnbmFsIGFuIGVycm9yLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgYWRqdXN0IFBPUyB0byB0
aGUgbmVhcmVzdCBub24tYmxhbmsgY2hhcmFjdGVyLgorSWYgdGhlIHBhcnNlZCB0YWJsZSBpcyBp
biBFUlJPUiwgcmV0dXJuIG5pbC4iCisgIChzZXRxIHBvcyAob3IgcG9zIChwb2ludCkpKQorICAo
c2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyIHBvcykKKyAgICA7OyBJZiBwb2ludCBpcyBv
biBhbiBlbXB0eSBsaW5lLCBpdCBpcyBuZXZlciBhIHRhYmxlLgorICAgICh1bmxlc3MgKGFuZCAo
ZW9scCkgKGJvbHApKQorICAgICAgOzsgSWYgcG9pbnQgaXMgYm9sIG9yIGVvbCBpdCBtaWdodCBi
ZSBhYnV0dGluZyBhIHBpcGUgc3ltYm9sIHNvCisgICAgICA7OyBsb29rIGZvcndhcmRzIG9yIGJh
Y2t3YXJkcyBvbmUgY2hhcmFjdGVyIHRvIHRlc3QgaWYgdGhhdCBwb3MKKyAgICAgIDs7IGlzIGEg
dGFibGUuCisgICAgICAod2hlbiBhYnV0dGluZworICAgICAgICAoc2V0cSBwb3MgKG9yIChtYXJr
ZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zIHBvcykgcG9zKSkpCisgICAgICAod2hlbi1sZXQq
ICgocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbmlsIHBvcykpKQorICAgICAgICAo
aWYgKG1hcmtkb3duLXRzLS10YWJsZS1wYXJzZS1lcnJvci1wIHJvdykKKyAgICAgICAgICAgIDs7
IERvIG5vdCB1c2UgZXJyb3Igb3Igd2FybmluZyBoZXJlLiAgRXJyb3JzIGludGVyZmVyZSB3aXRo
CisgICAgICAgICAgICA7OyB0aGUgY29tbWFuZCBsb29wLiAgV2FybmluZ3MgYXJlIGFubm95aW5n
LgorICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgIChtZXNzYWdlICJJbmNvcnJlY3Rs
eSBmb3JtYXR0ZWQgTWFya2Rvd24gdGFibGUgKHBhcnNlciBlcnJvcikiKQorICAgICAgICAgICAg
ICBuaWwpCisgICAgICAgICAgKGNvbnMgcG9zICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAg
ICAgICAgICAgICAgICAgICByb3cKKyAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxl
XFwnIiAnYmFja3dhcmQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW5hYmxlLWluLXRh
YmxlLW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZScgaWYgaW4g
YSB0YWJsZS4KK0EgdGFibGUgd2l0aCBhIHBhcnNlciBFUlJPUiBpcyBpbmVsaWdpYmxlLiIKKyAg
KG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMtYXQtdGFibGUt
cCBuaWwgdCkgMSAtMSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLWJvZHktcm93LW5l
YXItcG9zICgmb3B0aW9uYWwgcG9zIGFidXR0aW5nKQorICAiUmV0dXJuIHRoZSByb3cgbmVhciBQ
T1MuCitSZXR1cm4gbmlsIGlmIG5vdCBhdCBhIHRhYmxlIG9yIHRoZXJlIGlzIG5vIHJvdy4KK090
aGVyd2lzZSByZXR1cm4gY29ucyAocm93IC4gaW4taGVhZGVyKSB3aGVyZSBpbi1oZWFkZXIgaXMg
bmlsIG9yIHQuCitUaGlzIGlzIHVzZWZ1bCB0byBpbnNlcnQgYSBuZXcgcm93IGp1c3QgYmVsb3cg
dGhlIGhlYWRlciBpbnN0ZWFkIG9mIGp1c3QKK2JlbG93IHRoZSBmaXJzdCByb3cuCitJZiBQT1Mg
aXMgbmlsIHVzZSBgcG9pbnQnLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgdXNlICgxLSBQT1Mp
IGlmIFBPUyBpcyBpbW1lZGlhdGVseSBhZnRlciBhIHBpcGUKK3N5bWJvbC4iCisgIChzZXRxIHBv
cyAob3IgcG9zIChwb2ludCkpKQorICAobGV0IChpbi1oZWFkZXIpCisgICAgKHdoZW4tbGV0KiAo
KGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJsZS1wIHBvcyBhYnV0dGluZykpCisgICAgICAg
ICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgICAodGFibGUgKGNk
ciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKGNlbGwgKG1hcmtkb3duLXRzLS10YWJsZS1u
b2RlLWNlbGwgbmlsIHBvcyBhYnV0dGluZykpCisgICAgICAgICAgICAgICAgKGNlbGwtdHlwZSAo
dHJlZXNpdC1ub2RlLXR5cGUgY2VsbCkpCisgICAgICAgICAgICAgICAgKHBhcmVudCAodHJlZXNp
dC1ub2RlLXBhcmVudCBjZWxsKSkKKyAgICAgICAgICAgICAgICAocGFyZW50LXR5cGUgKHRyZWVz
aXQtbm9kZS10eXBlIHBhcmVudCkpCisgICAgICAgICAgICAgICAgKGxpbmVhZ2UgKGxpc3QgY2Vs
bC10eXBlIHBhcmVudC10eXBlKSkKKyAgICAgICAgICAgICAgICA7OyBGaW5kIHRoZSBmaXJzdCBy
b3cgYWZ0ZXIgdGhlIGhlYWRlciBvciB0aGUgcm93IGF0IFBPUyBpcworICAgICAgICAgICAgICAg
IDs7IG9uIGFuZCBpbiB0aGUgc2FtZSB0YWJsZS4KKyAgICAgICAgICAgICAgICAocm93IChjb25k
ICgob3IgKG1lbWJlciAicGlwZV90YWJsZV9oZWFkZXIiIGxpbmVhZ2UpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChtZW1iZXIgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIgbGlu
ZWFnZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgaW4taGVhZGVyIHQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQgY2VsbCAi
XFxgcGlwZV90YWJsZV9yb3dcXCciKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1
YWwgY2VsbC10eXBlICJwaXBlX3RhYmxlX3JvdyIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2VsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwgcGFyZW50LXR5cGUg
InBpcGVfdGFibGVfcm93IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQpKSkp
CisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJjaC1mb3J3
YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAnYmFja3dhcmQpKQor
ICAgICAgICAoY29ucyByb3cgaW4taGVhZGVyKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10
YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIChyb3cgbm9kZSkKKyAgIkNvbXB1dGUgTk9ERSdzIGNv
bHVtbiBpbiBST1cuCitSZXR1cm4gbmlsIGlmIE5PREUgaXMgbm90IGluIFJPVyAodGhpcyBzaG91
bGQgbm90IGhhcHBlbikuCitOT0RFIG11c3QgYmUgYSBub2RlIGluIFJPVy4KK1JPVyBtdXN0IGJl
IGEgcGlwZV90YWJsZV9oZWFkZXIsIHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvdywgb3IKK3BpcGVf
dGFibGVfcm93LiIKKyAgKGNhdGNoIDpjb2x1bW4KKyAgICAobGV0ICgoY291bnQgMCkpCisgICAg
ICAoZG9saXN0IChjZWxsICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAg
ICAgICh3aGVuICh0cmVlc2l0LW5vZGUtZXEgbm9kZSBjZWxsKQorICAgICAgICAgICh0aHJvdyA6
Y29sdW1uIGNvdW50KSkKKyAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4gKGNvbHVtbiAmb3B0aW9uYWwgbm8t
ZXJyb3IpCisgICJNb3ZlIHBvaW50IG9uIHRoZSBjdXJyZW50IHJvdyB0byBDT0xVTU4uCitDT0xV
TU4gaXMgYSAwLWJhc2VkIGluZGV4LgorUmV0dXJuIG5vbi1uaWwgaWYgc3VjY2Vzc2Z1bC4KK0lm
IE5PLUVSUk9SIGlzIG5vbi1uaWwsIHJldHVybiBuaWwgaWYgdGhlIGN1cnJlbnQgcm93IGRvZXMg
bm90IGV4dGVuZCB0bworQ09MVU1OLCBvdGhlcndpc2Ugc2lnbmFsIGFuIGVycm9yLgorU2lnbmFs
IGFuIGVycm9yIGlmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLiIKKyAgKGlmLWxldCogKChjZWxs
IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5pbCBuaWwgdCkpCisgICAgICAgICAgICAo
cm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAgICAoY29s
cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFtZWQpKSkKKyAgICAgIChpZi1sZXQqICgo
dGFyZ2V0LWNlbGwgKG50aCBjb2x1bW4gY29scykpKQorICAgICAgICAgIChnb3RvLWNoYXIgKHRy
ZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICh1bmxlc3Mgbm8tZXJyb3IK
KyAgICAgICAgICAoZXJyb3IgIkNvbHVtbiAlUyBub3QgZm91bmQiIGNvbHVtbikpKQorICAgIChl
cnJvciAiTm90IGF0IGEgdGFibGUiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtYWxp
Z25lcnMgKHRhYmxlKQorICAiRXh0cmFjdCB0aGUgaGVhZGVyIGxpbmUgYWxpZ25lcnMgZnJvbSBu
b2RlIFRBQkxFLgorUmV0dXJuIGEgbGlzdCBvZiBsaXN0cyBvZiB0aGUgZm9ybToKKyAgKDpiZWcg
eHh4IDplbmQgeHh4IDphbGlnbiBsZWZ0KQorOmFsaWduIGlzIG9uZSBvZiBgbGVmdCcgYGNlbnRl
cicgYHJpZ2h0JyBgdW5zcGVjaWZpZWQnLiIKKyAgKGxldCogKChkZWxpbWl0ZXItcm93ICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93XFwnIikpCisg
ICAgICAgICAoYWxpZ25lcnMKKyAgICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAgICAoZG9s
aXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisg
ICAgICAgICAgICAgIChsZXQgKChhbGlnbi1iZWcgKHRyZWVzaXQtbm9kZS10eXBlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgZWx0IDAgJ25hbWUp
KSkKKyAgICAgICAgICAgICAgICAgICAgKGFsaWduLWVuZCAodHJlZXNpdC1ub2RlLXR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBlbHQgLTEg
J25hbWUpKSkpCisgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QKKyAgICAgICAgICAgICAgICAg
ICAgICAgOmJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IGVsdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgOmVuZCAodHJlZXNpdC1ub2RlLWVuZCBlbHQpCisgICAgICAgICAgICAgICAgICAgICAgIDph
bGlnbgorICAgICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGFuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1iZWcgInBpcGVfdGFibGVfYWxpZ25fbGVmdCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAicGlwZV90
YWJsZV9hbGlnbl9sZWZ0IikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZXF1YWwgYWxpZ24tYmVnICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1lbmQgInBpcGVfdGFibGVf
YWxpZ25fcmlnaHQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVxdWFsIGFsaWduLWJlZyAicGlwZV90YWJsZV9hbGlnbl9yaWdodCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAicGlwZV90YWJsZV9h
bGlnbl9yaWdodCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodCAndW5zcGVjaWZpZWQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICByZXMpKSkKKyAgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkpCisgICAgYWxp
Z25lcnMpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciAod2lkdGgg
YWxpZ24pCisgICJNYWtlIGEgTWFya2Rvd24gY29sdW1uIGFsaWduZXIuCitXSURUSCBpcyB0aGUg
Y29sdW1uIHdpZHRoLgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBgcmlnaHQnIGB1
bnNwZWNpZmllZCcuIgorICAocGNhc2UgYWxpZ24KKyAgICAoJ2xlZnQKKyAgICAgKGNvbmNhdCAi
OiIgKG1ha2Utc3RyaW5nICgxLSB3aWR0aCkgPy0pKSkKKyAgICAoJ2NlbnRlcgorICAgICAoY29u
Y2F0ICI6IiAobWFrZS1zdHJpbmcgKC0gd2lkdGggMikgPy0pICI6IikpCisgICAgKCdyaWdodAor
ICAgICAoY29uY2F0IChtYWtlLXN0cmluZyAoMS0gd2lkdGgpID8tKSAiOiIpKQorICAgIChfCisg
ICAgIChjb25jYXQgKG1ha2Utc3RyaW5nIHdpZHRoID8tKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS10YWJsZS1hbGlnbi1jZWxsICh0ZXh0IHdpZHRoIGFsaWduKQorICAiUmV0dXJuIFRFWFQg
cGFkZGVkIHRvIFdJRFRIIGFsaWduZWQgdXNpbmcgQUxJR04uCitUcnVuY2F0ZSBURVhUIHdpZGVy
IHRoYW4gV0lEVEguICBJdCBpcyB0aGUgY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8KK2Vuc3Vy
ZSB0ZXh0IHdpbGwgZml0LgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBgcmlnaHQn
IGB1bnNwZWNpZmllZCcuIgorICAobGV0KiAoKHN0cmxlbiAobGVuZ3RoIHRleHQpKQorICAgICAg
ICAgKHN0cmxlbjAgKG1pbiB3aWR0aCBzdHJsZW4pKQorICAgICAgICAgKHRleHQwIChzdWJzdHJp
bmcgdGV4dCAwIHN0cmxlbjApKQorICAgICAgICAgKHBhZCAoLSB3aWR0aCBzdHJsZW4wKSkpCisg
ICAgKHBjYXNlIGFsaWduCisgICAgICAoJ2NlbnRlcgorICAgICAgIChsZXQqICgoaGFsZi1wYWQg
KG1ha2Utc3RyaW5nIChmbG9vciAoLyBwYWQgMikpID9ccykpCisgICAgICAgICAgICAgIChzIChj
b25jYXQKKyAgICAgICAgICAgICAgICAgIGhhbGYtcGFkCisgICAgICAgICAgICAgICAgICB0ZXh0
MAorICAgICAgICAgICAgICAgICAgaGFsZi1wYWQpKSkKKyAgICAgICAgIChzdHJpbmctcGFkCisg
ICAgICAgICAgKHN1YnN0cmluZyBzIDAgKG1pbiAobGVuZ3RoIHMpIHdpZHRoKSkKKyAgICAgICAg
ICB3aWR0aCkpKQorICAgICAgKCdyaWdodAorICAgICAgIChzdHJpbmctcGFkIHRleHQgd2lkdGgg
bmlsICdzdGFydCkpCisgICAgICAoXworICAgICAgIChzdHJpbmctcGFkIHRleHQgd2lkdGgpKSkp
KQorCis7Ozs7IENvbW1hbmRzOgorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRh
YmxlICgmb3B0aW9uYWwgbnJvd3MgbmNvbHMgaGVhZGluZ3MgYm9keSkKKyAgIkluc2VydCBhIE1h
cmtkb3duIHBpcGUgdGFibGUuCitOUk9XUyBpcyB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIG5l
dyB0YWJsZSBhbmQgZGVmYXVsdHMgdG8gMy4KKworTkNPTFMgaXMgdGhlIG51bWJlciBvZiBjb2x1
bW5zIGFuZCBkZWZhdWx0cyB0byAzLgorCitIRUFESU5HUyBpcyBhIGxpc3Qgb2YgaGVhZGluZ3Mg
YW5kIGRlZmF1bHRzIHRvIGxlZnQtYWxpZ25lZCBzeW50aGVzaXplZAorY29sdW1uIG5hbWVzLiAg
SWYgTkNPTFMgaXMgbmlsLCB1c2UgSEVBRElOR1MgbGVuZ3RoLiAgSWYgYm90aCBOQ09MUyBhbmQK
K0hFQURJTkdTIGFyZSBub24tbmlsLCB1c2UgdXAgdG8gTkNPTFMgaGVhZGluZ3MsIHN5bnRoZXNp
emluZyB0aGUKK3JlbWFpbmRlci4KKworRWFjaCBoZWFkaW5nIGluIHRoZSBsaXN0IGNhbiBiZSBh
IHN0cmluZyBjb2x1bW4gbmFtZSBvciBhIGNvbnMgb2YgdGhlCitmb3JtIChuYW1lIC4gYWxpZ25t
ZW50KSB3aGVyZSBhbGlnbm1lbnQgaXMgb25lIG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywKK2ByaWdo
dCcsIG9yIGBjZW50ZXInLiAgSWYgYSBzdHJpbmcsIGRlZmF1bHQgYWxpZ25tZW50IGlzIHVuc3Bl
Y2lmaWVkLgorCitJZiBCT0RZIGlzIG5vbi1uaWwsIGl0IGlzIGEgbGlzdCBvZiBOUk9XUyByb3dz
IHdoZXJlIGVhY2ggcm93IGlzIGEgbGlzdAorb2YgTkNPTFMgYm9keSBjZWxscy4KKworRm9yIGNv
bnZlbmllbmNlIGFuZCBhZXN0aGV0aWNzLCBwYWQgZWFjaCBib2R5IGNlbGwgdG8gdGhlIHdpZHRo
IG9mIGl0cworY29sdW1uJ3MgaGVhZGVyLCBhbmQgYWNjb21tb2RhdGUgYWxpZ25tZW50IGluZGlj
YXRvcnMuICBJZiBhIEJPRFkgY2VsbAoraXMgbG9uZ2VyIHRoYW4gaXRzIGNvbHVtbiBoZWFkZXIs
IGluc2VydCBpdCB1bmNoYW5nZWQuCisKK05vdGU6IEEgYmxhbmsgbGluZSBpcyBuZWVkZWQgYmVm
b3JlIHRoZSB0YWJsZSBmb3IgaXQgdG8gcHJvcGVybHkgcmVuZGVyLgorSWYgdGhlIGxpbmUgcHJl
Y2VkaW5nIGBwb2ludCcgaXMgbm90IGJsYW5rLCBpbnNlcnQgb25lLgorCitOb3RlOiBEdWUgdG8g
YW4gaXNzdWUgd2l0aCB0aGUgdHJlZS1zaXR0ZXIgTWFya2Rvd24gZ3JhbW1hciwgYSByb3cgb2YK
K2VtcHR5IGNlbGxzIGNhdXNlcyBhIHBhcnNpbmcgZXJyb3IuICBUbyBhdm9pZCB0aGlzLCBhbiBl
bXB0eSByb3cgd2lsbAorY29udGFpbiBhIHNpbmdsZSBwZXJpb2QgaW4gaXRzIGZpcnN0IGNlbGwu
IgorICAoaW50ZXJhY3RpdmUpCisgIChzZXRxIG5yb3dzIChvciBucm93cyAzKSkKKyAgKHNldHEg
bmNvbHMgKG9yIG5jb2xzIChhbmQgaGVhZGluZ3MgKGxlbmd0aCBoZWFkaW5ncykpIDMpKQorICAo
c2V0cSBoZWFkaW5ncworICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAgKGRvdGltZXMgKHgg
bmNvbHMpCisgICAgICAgICAgICAocHVzaCAob3IgKG50aCB4IGhlYWRpbmdzKQorICAgICAgICAg
ICAgICAgICAgICAgIChmb3JtYXQgIkNvbHVtbiAlZCIgKDErIHgpKSkKKyAgICAgICAgICAgICAg
ICAgIHJlcykpCisgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKQorICAobGV0ICgoaGVhZGluZy13
aWR0aHMKKyAgICAgICAgIChsZXQgKHJlcykKKyAgICAgICAgICAgKGRvbGlzdCAoZWx0IGhlYWRp
bmdzKQorICAgICAgICAgICAgIChsZXQgKChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIgZWx0KSBl
bHQpKSkKKyAgICAgICAgICAgICAgIChwdXNoIChtYXggbWFya2Rvd24tdHMtdGFibGUtZGVmYXVs
dC1jb2x1bW4td2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBzdHIpKQor
ICAgICAgICAgICAgICAgICAgICAgcmVzKSkpCisgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkp
CisgICAgOzsgSWYgcG9pbnQgaXMgbm90IGF0IGJvbCwgaW5zZXJ0IGEgbmV3bGluZS4KKyAgICAo
dW5sZXNzIChlcSAocG9pbnQpIChwb3MtYm9sKSkKKyAgICAgIChpbnNlcnQgIlxuIikpCisgICAg
OzsgSW5zZXJ0IGFuIGVtcHR5IGxpbmUgaWYgbmVlZGVkLgorICAgICh1bmxlc3MgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgLTEpCisgICAgICAgICAgICAgIChl
cSAocG9zLWJvbCkgKHBvcy1lb2wpKSkKKyAgICAgIChpbnNlcnQgIlxuIikpCisgICAgOzsgSW5z
ZXJ0IHBhZGRlZCBoZWFkaW5nIHRleHQuCisgICAgKGluc2VydCAifCIpCisgICAgKGRvdGltZXMg
KHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3MpKQorICAgICAgICAg
ICAgIChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIgZWx0KSBlbHQpKQorICAgICAgICAgICAgICh3
aWR0aCAobWF4IDMgKG50aCB4IGhlYWRpbmctd2lkdGhzKSkpCisgICAgICAgICAgICAgKHBhZC13
aWR0aCAoLSB3aWR0aCAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGluc2VydCBzdHIgKG1ha2Ut
c3RyaW5nIHBhZC13aWR0aCA/XHMpICJ8IikpKQorICAgIChpbnNlcnQgIlxuIikKKyAgICA7OyBJ
bnNlcnQgcGFkZGVkIGhlYWRpbmcgYWxpZ25lcnMuCisgICAgKGluc2VydCAifCIpCisgICAgKGRv
dGltZXMgKHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3MpKQorICAg
ICAgICAgICAgIChhbGlnbiAoaWYgKGNvbnNwIGVsdCkgKGNkciBlbHQpICd1bnNwZWNpZmllZCkp
CisgICAgICAgICAgICAgKHdpZHRoIChtYXggMyAobnRoIHggaGVhZGluZy13aWR0aHMpKSkpCisg
ICAgICAgIChpbnNlcnQgKG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIgd2lkdGggYWxp
Z24pKSkKKyAgICAgIChpbnNlcnQgInwiKSkKKyAgICAoaW5zZXJ0ICJcbiIpCisgICAgOzsgSW5z
ZXJ0IEJPRFkgY2VsbHMgb3IgZW1wdHkgY2VsbHMuCisgICAgKGRvdGltZXMgKHkgbnJvd3MpCisg
ICAgICAoaW5zZXJ0ICJ8IikKKyAgICAgIChsZXQgKChyb3cgKG50aCB5IGJvZHkpKSkKKyAgICAg
ICAgKGRvdGltZXMgKHggbmNvbHMpCisgICAgICAgICAgOzsgVE9ETzogUmVtb3ZlIHRoZSBwbGFj
ZWhvbGRlciBjaGFyYWN0ZXIgaWYgdGhlIHRyZWUtc2l0dGVyCisgICAgICAgICAgOzsgZ3JhbW1h
ciBpcyByZXBhaXJlZC4KKyAgICAgICAgICAobGV0KiAoKHN0ciAob3IgKG50aCB4IHJvdykgKGFu
ZCAoZXEgeCAwKSAiLiIpICIiKSkKKyAgICAgICAgICAgICAgICAgKHN0cmxlbiAobGVuZ3RoIHN0
cikpCisgICAgICAgICAgICAgICAgICh3aWR0aCAobnRoIHggaGVhZGluZy13aWR0aHMpKQorICAg
ICAgICAgICAgICAgICAocGFkLXdpZHRoIChtYXggMCAoLSB3aWR0aCBzdHJsZW4pKSkpCisgICAg
ICAgICAgICAoaW5zZXJ0IHN0cgorICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgcGFk
LXdpZHRoID9ccykKKyAgICAgICAgICAgICAgICAgICAgInwiKSkpCisgICAgICAgIChpbnNlcnQg
IlxuIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUgKCkKKyAg
IlJlbW92ZSB0aGUgTWFya2Rvd24gdGFibGUgYXQgcG9pbnQuCitJZiBwb2ludCBpcyBub3QgYXQg
YSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1i
YXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUpCisgICh3aGVu
LWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAg
ICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkpCisgICAgOzsgVE9ETzogUmVtb3ZlIGFmdGVy
IGJ1ZyMyMzkwMyBVbmRvIGFmdGVyIGtiIGRpZmZlcnMgZnJvbSBhZnRlciBNLXgKKyAgICAocHVz
aCAocG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgKGRlbGV0ZS1yZWdpb24gKHRyZWVzaXQt
bm9kZS1zdGFydCB0YWJsZSkgKHRyZWVzaXQtbm9kZS1lbmQgdGFibGUpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgKCkKKyAgIk1vdmUgdG8gdGhlIHByZXZpb3Vz
IHJvdyBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChp
bnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93IC0xKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICgmb3B0aW9uYWwgbikKKyAgIk1vdmUgdG8gdGhl
IG5leHQgcm93IGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8gdGhlIHBy
ZXZpb3VzIHJvdy4KK0lmIHBvaW50IGlzIG9uIHRoZSBsYXN0IHJvdyBvZiB0aGUgdGFibGUsIGlu
c2VydCBhIG5ldyByb3cgYmVsb3cgYW5kCittb3ZlIGludG8gaXQuICBXaXRoIGEgcHJlZml4IGFy
Z3VtZW50LCBjbG9uZSB0aGUgZmluYWwgcm93IGludG8gdGhlIG5ldworb25lLgorSWYgbm90IGlu
IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cpCisgIChsZXQgKChi
YWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkKKyAgICA7OyBEb24ndCB1c2UgYG1hcmtkb3duLXRz
LS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcycgYmVjYXVzZSB3ZSB3YW50CisgICAgOzsgdG8gb3Bl
cmF0ZSBpbiB0aGUgaGVhZGVyLgorICAgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24t
dHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxl
KSkKKyAgICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAg
ICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IG5pbCBwb3MpKSkKKyAgICAgIDs7
IElmIG5vIG5leHQgb3IgcHJldiBzaWJsaW5nLCB3ZSdyZSBvbiB0aGUgbGFzdC9maXJzdCByb3cu
CisgICAgICAobGV0ICgoY3VycmVudC1jb2x1bW4gKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgICAg
ICAgIChuZXh0LXJvdyAoaWYgYmFja3dhcmRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyByb3cgJ25hbWVkKSkpKQorICAgICAgICAo
aWYgbmV4dC1yb3cKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBu
ZXh0LXJvdykpCisgICAgICAgICAgKHVubGVzcyBiYWNrd2FyZHMKKyAgICAgICAgICAgIChtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWJlbG93IGN1cnJlbnQtcHJlZml4LWFyZykpKQorICAg
ICAgICAobW92ZS10by1jb2x1bW4gY3VycmVudC1jb2x1bW4pKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtdGFibGUtcHJldmlvdXMtY2VsbCAoKQorICAiTW92ZSB0byB0aGUgcHJldmlvdXMgY2Vs
bCBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtY2VsbCAtMSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy10YWJsZS1uZXh0LWNlbGwgKCZvcHRpb25hbCBuKQorICAiTW92ZSB0byB0aGUg
bmV4dCBjZWxsIGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8gdGhlIHBy
ZXZpb3VzIGNlbGwuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFj
dGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJs
ZS1uZXh0LWNlbGwpCisgIChsZXQgKChiYWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkKKyAgICAo
d2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAg
ICAgICAgICAgICAgIChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKHRhYmxl
IChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQg
cG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10
cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUpKQorICAgICAgICAgICAgICAgIChjZWxsLXR5cGUgKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgICAgICAgIChyb3cgKG1hcmtkb3duLXRz
LS10YWJsZS1ub2RlLXJvdyBjZWxsKSkKKyAgICAgICAgICAgICAgICAocm93LXR5cGUgKHRyZWVz
aXQtbm9kZS10eXBlIHJvdykpCisgICAgICAgICAgICAgICAgKG5leHQtY2VsbAorICAgICAgICAg
ICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgOzsgSWYgaW4gYSBwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3cgYW5kIG5vdCB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgIDs7IG9yIGZp
bmFsIGNlbGwgaW4gdGhlIHJvdywgc3RheSB3aXRoaW4gdGhlIHJvdworICAgICAgICAgICAgICAg
ICAgOzsgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBjb25kaXRpb24gc2hvdWxkIG1hdGNoLgorICAg
ICAgICAgICAgICAgICAgKChhbmQgKGVxdWFsIHJvdy10eXBlICJwaXBlX3RhYmxlX2RlbGltaXRl
cl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGJhY2t3YXJkcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIGNlbGwgJ25hbWVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBj
ZWxsICduYW1lZCkpKQorICAgICAgICAgICAgICAgICAgIChpZiBiYWNrd2FyZHMKKyAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2LXNpYmxpbmcgY2VsbCAnbmFtZWQpCisg
ICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBjZWxsICduYW1l
ZCkpKQorICAgICAgICAgICAgICAgICAgOzsgSWYgb24gdGhlIGZpcnN0IHBpcGVfdGFibGVfcm93
J3MgZmlyc3QgY2VsbCBtb3ZpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGJhY2t3YXJkcywgbW92
ZSBpbnRvIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9kZWxpbWl0
ZXJfY2VsbC4KKyAgICAgICAgICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUgInBpcGVf
dGFibGVfY2VsbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJl
di1zaWJsaW5nIHJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
aXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAo
dHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBiYWNrd2FyZHMpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZv
cndhcmQKKyAgICAgICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxg
cGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAgICAgICAg
ICAgIDs7IElmIG9uIHRoZSBmaXJzdCBwaXBlX3RhYmxlX2hlYWRlcidzIGZpbmFsIGNlbGwKKyAg
ICAgICAgICAgICAgICAgIDs7IG1vdmluZyBmb3J3YXJkcywgbW92ZSBpbnRvIHRoZSBmaXJzdAor
ICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbC4KKyAgICAgICAg
ICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUgInBpcGVfdGFibGVfY2VsbCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFt
ZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaXBlX3RhYmxlX2RlbGltaXRl
cl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAodHJlZXNpdC1ub2RlLW5leHQt
c2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAobm90IGJhY2t3
YXJkcykpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQKKyAgICAg
ICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9k
ZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAgICAgICAgICAgICh0CisgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQKKyAgICAgICAgICAgICAgICAg
ICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9jZWxsXFwnIiBiYWNr
d2FyZHMpKSkpKQorICAgICAgOzsgS2VlcCBwb2ludCB3aXRoaW4gdGhlIGN1cnJlbnQgdGFibGUu
CisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJjaC1mb3J3
YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0LWNlbGwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAnYmFja3dh
cmQpKQorICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbmV4dC1jZWxsKSkp
CisgICAgICAod2hlbiAob3IgKGVxIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24gdCkKKyAg
ICAgICAgICAgICAgICAobWVtcSAnY2VsbC1uYXZpZ2F0aW9uIG1hcmtkb3duLXRzLXRhYmxlLWF1
dG8tYWxpZ24pKQorICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1iZWxvdyAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGJlbG93IHBvaW50LgorSWYgcG9pbnQgaXMgaW4g
dGhlIGhlYWRlciwgaW5zZXJ0IGJlbG93IHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYg
Q0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUgdGhlIGN1
cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1wcmVmaXgt
YXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYmVsb3cgY2xvbmUpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1hYm92ZSAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBvaW50LgorSWYgcG9pbnQgaXMgaW4g
dGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYg
Q0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUgdGhlIGN1
cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1wcmVmaXgt
YXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYWJvdmUgY2xvbmUpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93ICgpCisgICJJbnNlcnQg
YSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBwb2ludCBpcyBpbiB0aGUgaGVhZGVyLCBpbnNl
cnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUgdGFibGUuCitJZiBwb2ludCBpcyBub3QgYXQg
YSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRh
YmxlLWluc2VydC1yb3ctYmVsb3cgJ2Nsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxl
LWNsb25lLXJvdy1hYm92ZSAoKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBvaW50Lgor
SWYgcG9pbnQgaXMgaW4gdGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCByb3cgb2Yg
dGhlIHRhYmxlLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWFib3ZlICdjbG9u
ZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93ICgmb3B0aW9uYWwgYWJv
dmUgY2xvbmUpCisgICJJbnNlcnQgYSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBwb2ludCBp
cyBpbiB0aGUgaGVhZGVyLCBpbnNlcnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUgdGFibGUu
CitJZiBBQk9WRSBpcyBub24tbmlsIGFuZCBpcyBub3QgYGJlbG93Jywgb3Igd2l0aCBhIHByZWZp
eCBhcmd1bWVudCwKK2luc2VydCB0aGUgcm93IGFib3ZlIHBvaW50LgorSWYgQ0xPTkUgaXMgbm9u
LW5pbCwgY2xvbmUgdGhlIGN1cnJlbnQgcm93LCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5CitjZWxs
cy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0
aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93KQorICAoc2V0cSBhYm92ZSAoY29uZCAoKGVxIGFib3ZlICdiZWxvdykg
bmlsKQorICAgICAgICAgICAgICAgICAgICAoYWJvdmUgYWJvdmUpCisgICAgICAgICAgICAgICAg
ICAgIChjdXJyZW50LXByZWZpeC1hcmcgdCkpKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1h
cmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQt
dGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAg
ICAgIChkZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc
YHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAobmNvbHMgKHRy
ZWVzaXQtbm9kZS1jaGlsZC1jb3VudCBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAgICAgICAg
ICAgIChoZWFkaW5nLXdpZHRocworICAgICAgICAgICAgICAgKGxldCAocmVzKQorICAgICAgICAg
ICAgICAgICAoZG9saXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93
ICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxlbmd0aCAodHJlZXNpdC1ub2Rl
LXRleHQgZWx0KSkgcmVzKSkKKyAgICAgICAgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKSkKKyAg
ICAobGV0KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBwb3Mp
KQorICAgICAgICAgICAocm93IChjYXIgbmVhcikpCisgICAgICAgICAgIChjdXJyZW50LWNvbHVt
biAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIDs7IElmIHJvdyBpcyBuaWwsIHRoZXJlIGFyZSB6
ZXJvIHJvd3Mgc28gYWRkIG9uZSBiZWxvdyB0aGUKKyAgICAgIDs7IGRlbGltaXRlci1yb3cuCisg
ICAgICAodW5sZXNzIHJvdworICAgICAgICAoc2V0cSBjbG9uZSBuaWwpCisgICAgICAgIChzZXRx
IHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAoc2V0cSBhYm92ZSBuaWwpKQorICAgICAgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgIChjb25kIChhYm92ZQorICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHJvdykpKQorICAgICAgICAgICAgICAodAorICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCByb3cpKQorICAgICAgICAgICAg
ICAgKGluc2VydCAiXG4iKSkpCisgICAgICAgIChjb25kIChjbG9uZQorICAgICAgICAgICAgICAg
OzsgVGhlIGNsb25lIHN0cmF0ZWd5IGlzIFdZU0lXWUcuICBKdXN0IGNvcHkgdGhlIHRleHQKKyAg
ICAgICAgICAgICAgIDs7IGFuZCBkb24ndCBmdXNzIHdpdGggY2VsbCBjb250ZW50IGFuZCBwaXBl
IHN5bWJvbHMuCisgICAgICAgICAgICAgICA7OyBUaGUgZ3JhbW1hciBpbmNsdWRlcyB0aGUgZmlu
YWwgbmV3bGluZSAoYW5kCisgICAgICAgICAgICAgICA7OyBzb21ldGltZXMgbm90KS4KKyAgICAg
ICAgICAgICAgIChpbnNlcnQgKHN0cmluZy10cmltLXJpZ2h0CisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXRleHQgcm93ICduby1wcm9wZXJ0eSkgIlxuIikpKQorICAgICAg
ICAgICAgICAodAorICAgICAgICAgICAgICAgKGluc2VydCAifCIpCisgICAgICAgICAgICAgICAo
ZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBhZC13aWR0aCAobnRo
IHggaGVhZGluZy13aWR0aHMpKSkKKyAgICAgICAgICAgICAgICAgICA7OyBUT0RPOiBSZW1vdmUg
dGhlIHBsYWNlaG9sZGVyIGNoYXJhY3RlciBpZiB0aGUKKyAgICAgICAgICAgICAgICAgICA7OyB0
cmVlLXNpdHRlciBncmFtbWFyIGlzIHJlcGFpcmVkLgorICAgICAgICAgICAgICAgICAgIChpbnNl
cnQgKGlmIChlcSB4IDApICIuIiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtl
LXN0cmluZyAoLSBwYWQtd2lkdGggKGlmIChlcSB4IDApIDEgMCkpID9ccykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ8IikpKSkpCisgICAgICAgICh3aGVuIGFib3ZlCisgICAgICAgICAg
KGluc2VydCAiXG4iKSkpCisgICAgICAoY29uZCAoYWJvdmUKKyAgICAgICAgICAgICAod2hlbiAo
PiBjdXJyZW50LWNvbHVtbiAwKQorICAgICAgICAgICAgICAgKHdpdGgtc3VwcHJlc3NlZC13YXJu
aW5ncyAoKGludGVyYWN0aXZlLW9ubHkgcHJldmlvdXMtbGluZSkpCisgICAgICAgICAgICAgICAg
IChwcmV2aW91cy1saW5lKSkpKQorICAgICAgICAgICAgKHQgKHdpdGgtc3VwcHJlc3NlZC13YXJu
aW5ncyAoKGludGVyYWN0aXZlLW9ubHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAgICAgICAgKG5l
eHQtbGluZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cgKCkK
KyAgIkRlbGV0ZSB0aGUgdGFibGUgcm93IGF0IHBvaW50LgorSWYgcG9pbnQgaXMgb24gdGhlIGhl
YWRlciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90IGF0IGEg
dGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFy
Zi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLXJvdykKKyAgKHdoZW4tbGV0
KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBuaWwgdCkpCisg
ICAgICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBkZWxpbWl0
ZXIgcm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgZGVsZXRlIGEgYm9k
eSByb3cgdGhlIHVzZXIgZGlkIG5vdCBzZWxlY3QuCisgICAgICAgICAgICAgICgobm90IChjZHIg
bmVhcikpKQorICAgICAgICAgICAgICAocm93IChjYXIgbmVhcikpKQorICAgIChsZXQgKChjdXJy
ZW50LWNvbHVtbiAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIChkZWxldGUtcmVnaW9uICh0cmVl
c2l0LW5vZGUtc3RhcnQgcm93KQorICAgICAgICAgICAgICAgICAgICAgKG1pbiAoMSsgKHRyZWVz
aXQtbm9kZS1lbmQgcm93KSkgKHBvaW50LW1heCkpKQorICAgICAgKG1vdmUtdG8tY29sdW1uIGN1
cnJlbnQtY29sdW1uKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctdXAg
KCkKKyAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1cCBvbmUgbGluZS4KK0lmIHBvaW50IGlzIG5v
dCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24t
dHMtdGFibGUtbW92ZS1yb3cpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ct
ZG93biAoKQorICAiTW92ZSB0aGUgcm93IGF0IHBvaW50IGRvd24gb25lIGxpbmUuCitJZiBwb2lu
dCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1h
cmtkb3duLXRzLXRhYmxlLW1vdmUtcm93ICdkb3duKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtcm93ICgmb3B0aW9uYWwgZG93bikKKyAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1
cCBvbmUgbGluZS4KK0lmIERPV04gaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVu
dCwgbW92ZSB0aGUgcm93IGRvd24gb25lCitsaW5lLgorSWYgcG9pbnQgaXMgb24gdGhlIGhlYWRl
ciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFi
bGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1p
Zi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3cpCisgIChzZXRxIGRvd24gKG9y
IGRvd24gY3VycmVudC1wcmVmaXgtYXJnKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJr
ZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRh
YmxlKSkKKyAgICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAg
ICAobmVhciAobWFya2Rvd24tdHMtLXRhYmxlLWJvZHktcm93LW5lYXItcG9zIHBvcykpCisgICAg
ICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBkZWxpbWl0ZXIg
cm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgbW92ZSBhIGJvZHkgcm93
IHRoZSB1c2VyIGRpZCBub3Qgc2VsZWN0LgorICAgICAgICAgICAgICAoKG5vdCAoY2RyIG5lYXIp
KSkKKyAgICAgICAgICAgICAgKHJvdyAoY2FyIG5lYXIpKSkKKyAgICA7OyBEbyBub3QgbW92ZSBh
Ym92ZSB0aGUgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93LgorICAgIDs7IERvIG5vdCBtb3ZlIGJl
bG93IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLgorICAgICh1bmxlc3MgKG9yIChhbmQgKG5vdCBk
b3duKQorICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyByb3cg
J25hbWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGlwZV90YWJsZV9kZWxpbWl0
ZXJfcm93IikpCisgICAgICAgICAgICAgICAgKGFuZCBkb3duCisgICAgICAgICAgICAgICAgICAg
ICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpKSkpCisgICAgICAo
bGV0ICgocm93MiAoaWYgZG93bgorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
bmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpKSkKKyAgICAgICAgICAgIChyb3ctZW5kICh0cmVl
c2l0LW5vZGUtZW5kIHJvdykpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIgYnVnIzIz
OTAzIFVuZG8gYWZ0ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAocHVzaCAo
cG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgICAgIDs7IElmIHJvdyBwb2ludCBpcyBvdXRz
aWRlIGl0cyBzb3VyY2UgcmVnaW9uLCBlLmcuLCBhdCBlb2wsIG1vdmUKKyAgICAgICAgOzsgaXQg
aW5zaWRlIHRoZSByZWdpb24gZm9yIHN0YWJpbGl0eS4KKyAgICAgICAgKHdoZW4gKD49IChwb2lu
dCkgcm93LWVuZCkKKyAgICAgICAgICAoZ290by1jaGFyIChtYXggKHBvaW50LW1pbikgKDEtIHJv
dy1lbmQpKSkpCisgICAgICAgICh0cmFuc3Bvc2UtcmVnaW9ucyAodHJlZXNpdC1ub2RlLXN0YXJ0
IHJvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHJvdykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgcm93MikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHJvdzIpKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdCAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIHRvIHRoZSBsZWZ0IG9mIHBvaW50J3MgY29s
dW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xv
bmUgdGhlIGN1cnJlbnQKK2NvbHVtbiwgb3RoZXJ3aXNlIGluc2VydCBlbXB0eSBjZWxscy4KK1Bv
aW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBub3Qg
YXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgIChtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uICdsZWZ0IGNsb25lKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQgKCZvcHRpb25hbCBjbG9uZSkKKyAgIkluc2Vy
dCBhIHRhYmxlIGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQncyBjb2x1bW4uCitJZiBDTE9O
RSBpcyBub24tbmlsLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBjbG9uZSB0aGUgY3VycmVu
dAorY29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5IGNlbGxzLgorUG9pbnQgY2FuIGJlIGlu
IHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWlu
c2VydC1jb2x1bW4gJ3JpZ2h0IGNsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNs
b25lLWNvbHVtbi1sZWZ0ICgpCisgICJDbG9uZSB0aGUgY3VycmVudCBjb2x1bW4gdG8gaXRzIGxl
ZnQuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQg
aXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgJ2Nsb25lKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWNsb25lLWNvbHVtbi1yaWdodCAoKQorICAiQ2xvbmUgdGhlIGN1cnJlbnQg
Y29sdW1uIHRvIGl0cyByaWdodC4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9y
IGJvZHkuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQgJ2Nsb25l
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4gKCZvcHRpb25hbCBs
ZWZ0IGNsb25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIGFmdGVyIHBvaW50J3MgY3VycmVu
dCBjb2x1bW4uCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5vdCBgcmlnaHQnLCBvciB3aXRo
IGEgcHJlZml4IGFyZ3VtZW50LAoraW5zZXJ0IHRoZSBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgdGhl
IGN1cnJlbnQgY29sdW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgY2xvbmUgdGhlIGN1cnJlbnQg
Y29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5CitjZWxscy4KK0lmIENMT05FIGlzIGEgbGlz
dCwgaXRzIGZpcnN0IGVsZW1lbnQgaXMgdGFyZ2V0LWNvbHVtbi1udW1iZXIuICBJdCBpcwordGhl
IGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRoYXQgdGhpcyB2YWx1ZSBpcyB2YWxpZCBmb3IgdGhl
IHRhYmxlLAordGhvdWdoIGl0IG1heSBiZSBpbnZhbGlkIGZvciBhIG5vbi11bmlmb3JtIHJhZ2dl
ZCByb3cuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9p
bnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICht
YXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LWNv
bHVtbikKKyAgKHNldHEgbGVmdCAoY29uZCAoKGVxIGxlZnQgJ3JpZ2h0KSBuaWwpCisgICAgICAg
ICAgICAgICAgICAgKGxlZnQgbGVmdCkKKyAgICAgICAgICAgICAgICAgICAoY3VycmVudC1wcmVm
aXgtYXJnIHQpKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJs
ZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAg
ICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAoZGVsaW1pdGVyLXJv
dyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICA7
OyBDb2x1bW4gcG9zIGZvciBpbnNlcnRpbmcgbWlzc2luZyBsZWFkaW5nIHBpcGVzLgorICAgICAg
ICAgICAgICAoZGVsaW0wLXBpcGUtY29sCisgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgKGxldCogKChkZWxpbS1jZWxsICh0cmVlc2l0LW5vZGUtY2hpbGQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXItcm93IDAgJ25h
bWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBk
ZWxpbS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgKGlm
IChzZWFyY2gtZm9yd2FyZCAifCIgYmVnIHQpCisgICAgICAgICAgICAgICAgICAgICAgICgxLSAo
Y3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisg
ICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKSkpKQorICAgICAgICAgICAgICAo
bm9kZSAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24gJ25hbWVkKSkKKyAgICAgICAgICAg
ICAgKGNlbGwgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLWNlbGwgbm9kZSkpCisgICAgICAgICAg
ICAgIChwb2ludC1yb3cgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyBjZWxsKSkpCisgICAg
KGxldCAoKHRhYmxlLWNvbHVtbiAobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4gcG9pbnQtcm93IGNlbGwpKSkKKyAgICAgICh1bmxlc3MgdGFibGUtY29sdW1uCisgICAgICAg
IChlcnJvciAiQ291bGQgbm90IGNvbXB1dGUgdGhlIHRhYmxlIGNvbHVtbiIpKQorICAgICAgOzsg
Tk9URTogR0ZNIHRhYmxlcyBhbGxvdyBub24tdW5pZm9ybSB0YWJsZSByb3dzLiAgVGhlIGN1cnJl
bnQgcm93CisgICAgICA7OyBjb3VsZCBoYXZlIGEgZGlmZmVyaW5nIG51bWJlciBvZiBjb2x1bW5z
IGZyb20gb3RoZXIgcm93cy4gIFdlCisgICAgICA7OyBzaWxlbnRseSBkbyBub3RoaW5nIHRvIGEg
cm93IHRoYXQgZG9lcyBub3QgZXh0ZW5kIHRvIHRoZQorICAgICAgOzsgY29tcHV0ZWQgY29sdW1u
LgorICAgICAgOzsKKyAgICAgIDs7IE5PVEU6IFRoZSBncmFtbWFyIGFubm95aW5nbHkgaWdub3Jl
cyBjZWxsIGxlYWRpbmcgd2hpdGVzcGFjZQorICAgICAgOzsgYnV0IGluY2x1ZGVzIHRyYWlsaW5n
IHdoaXRlc3BhY2UsIHNvIGNlbGxzIGFyZSBib3VuZGVkIGJ5IHRoZQorICAgICAgOzsgZmlyc3Qg
Z3JhcGggY2hhcmFjdGVyIHVwIHRvIHRoZSBsYXN0IGNoYXJhY3RlciBqdXN0IGJlZm9yZSB0aGUK
KyAgICAgIDs7IHBpcGUgc3ltYm9sLCBpbmNsdWRpbmcgd2hpdGVzcGFjZS4gIFRoZSByZXN1bHQg
aXMgdGhlIHJhbmdlCisgICAgICA7OyBkb2VzIG5vdCBzdGFydCBpbW1lZGlhdGVseSBhZnRlciB0
aGUgb3B0aW9uYWwgbGVhZGluZyBwaXBlCisgICAgICA7OyBzeW1ib2wgeWV0IGluY29uc2lzdGVu
dGx5IGNvbnRpbnVlcyB1bnRpbCBqdXN0IGJlZm9yZSB0aGUKKyAgICAgIDs7IHRyYWlsaW5nIHBp
cGUuCisgICAgICAobGV0KiAoKGFkaiAwKSA7IEFkanVzdCBub2RlIHBvc2l0aW9uIG9mZnNldHMg
YnkgaW5zZXJ0ZWQgdGV4dC4KKyAgICAgICAgICAgICAod2lkdGggbWFya2Rvd24tdHMtdGFibGUt
ZGVmYXVsdC1jb2x1bW4td2lkdGgpCisgICAgICAgICAgICAgKGVtcHR5IChtYWtlLXN0cmluZyB3
aWR0aCA/XHMpKQorICAgICAgICAgICAgIDs7IFRPRE86IFJlbW92ZSB0aGUgcGxhY2Vob2xkZXIg
Y2hhcmFjdGVyIGlmIHRoZSB0cmVlLXNpdHRlcgorICAgICAgICAgICAgIDs7IGdyYW1tYXIgaXMg
cmVwYWlyZWQuCisgICAgICAgICAgICAgKHBsYWNlaG9sZGVyIChjb25jYXQgIi4iIChtYWtlLXN0
cmluZyAoMS0gd2lkdGgpID9ccykpKQorICAgICAgICAgICAgIChkZWxpbSAobWFrZS1zdHJpbmcg
d2lkdGggPy0pKQorICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFi
bGUgJ25hbWVkKSkKKyAgICAgICAgICAgICAobnJvd3MgKGxlbmd0aCByb3dzKSkKKyAgICAgICAg
ICAgICAodGFyZ2V0LWNvbHVtbi1udW1iZXIgKGFuZCAobGlzdHAgY2xvbmUpIChjYXIgY2xvbmUp
KSkKKyAgICAgICAgICAgICA7OyBQb3NpdGlvbiB0byBtb3ZlIHBvaW50IHRvIGFmdGVyIGFsbCBy
b3dzIGhhdmUgYmVlbgorICAgICAgICAgICAgIDs7IHVwZGF0ZWQuICBEZXRlcm1pbmlzdGljIHBs
YWNlbWVudCBhdm9pZHMgZGVwZW5kaW5nIG9uCisgICAgICAgICAgICAgOzsgdHJlZS1zaXR0ZXIg
bmF2aWdhdGlvbiB0aHJvdWdoIGZyZXNobHktaW5zZXJ0ZWQgZW1wdHkKKyAgICAgICAgICAgICA7
OyBjZWxscywgd2hpY2ggdGhlIGdyYW1tYXIgZG9lcyBub3QgYWx3YXlzIHJlcGFyc2UgYXMKKyAg
ICAgICAgICAgICA7OyBwaXBlX3RhYmxlX2NlbGwgbm9kZXMuCisgICAgICAgICAgICAgKHRhcmdl
dC1wb3MpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIgYnVnIzIzOTAzIFVuZG8gYWZ0
ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAocHVzaCAocG9pbnQpIGJ1ZmZl
ci11bmRvLWxpc3QpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICh3aXRob3V0
LXJlc3RyaWN0aW9uCisgICAgICAgICAgICAoZG90aW1lcyAoeCBucm93cykKKyAgICAgICAgICAg
ICAgKHdoZW4tbGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChyb3ctdHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IHNvdXJjZS1jZWxsIHdpbGwgYmUgbmlsIGlmIHRhYmxlLWNvbHVtbiBp
cyBiZXlvbmQgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByb3cncyBjb2x1bW4g
c2V0IGFuZCB0aGF0IHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzb3VyY2UtY2VsbCAobnRoIHRhYmxlLWNvbHVtbiBjb2xzKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgOzsgSWYgY2xvbmluZyB3aXRoIGEgc3BlY2lmaWVkIHRhcmdldC1jb2x1bW4t
bnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0YXJnZXQtY2VsbCB3aWxsIGJl
IG5pbCBhbmQgdGhlIHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0YXJnZXQtY2VsbCAoaWYgdGFyZ2V0LWNvbHVtbi1udW1iZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggdGFyZ2V0LWNvbHVtbi1udW1iZXIgY29s
cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UtY2VsbCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENvbXB1dGUgdGhlIGluc2VydGlvbiBwb2lu
dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBJZiBjbG9uaW5nIHRvIGEgc3BlY2lmaWVkIHRhcmdldCwgdXNl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRhcmdldC1jZWxsJ3MgZW5kLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0LWNvbHVtbi1udW1iZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgdGFyZ2V0LWNlbGwpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgaW5zZXJ0aW5nIHRvIHRoZSBsZWZ0IG9m
IHRoZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjb2x1bW4sIHVz
ZSBzb3VyY2UgY2VsbCdzIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7
IGFkanVzdGVkIGZvciBpdHMgb3B0aW9uYWwgcGlwZSB0bworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7OyBjYXB0dXJlIGl0cyB3aGl0ZXNwYWNlLiAgSWYgdGhlcmUgaXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbm8gcGlwZSwgdXNlIGJvbC4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgbGVmdCAoZXEgdGFibGUtY29sdW1uIDApKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHAgKCsgYWRqCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IHNvdXJjZS1jZWxsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290
by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
KHBvcy1ib2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHNlYXJj
aC1mb3J3YXJkICJ8IiBwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBwICgxLSAocG9pbnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBwIChwb3MtYm9sKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNlcnRpbmcg
bGVmdCBhbmQgYW55IG90aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGNv
bHVtbiwgdXNlIHRoZSBlbmQgb2YgdGhlIHByaW9yCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgxKyAodHJlZXNpdC1ub2RlLWVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobnRoICgxLSB0YWJsZS1jb2x1bW4pIGNvbHMpKSkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNlcnRpbmcgcmlnaHQs
IHVzZSB0aGUgZW5kIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRoZSBj
dXJyZW50IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHNvdXJjZS1jZWxsKSkpKSkpCisgICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAgICAgKGxldCogKChvcmlnLXBv
aW50IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgIChtaXNzaW5nLWxlYWRpbmctcGlw
ZQorICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRhYmxlLWNvbHVtbiAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyIChwb3MtYm9sKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodW5sZXNzIChzZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFk
aiAodHJlZXNpdC1ub2RlLXN0YXJ0IHNvdXJjZS1jZWxsKSkgdCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ8IikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKGNvbmQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIGNsb25pbmcsIHJldHJpZXZlIHRo
ZSBzb3VyY2UgY2VsbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25l
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOzsgQmFjayB1cCB0byBib2wgb3IgdGhlIHBpcGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdG8gY2FwdHVyZSB0aGUgd2hpdGVzcGFjZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGUgZ3JhbW1hciBsZWF2
ZXMgb3V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IHNvdXJjZS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHNraXAtY2hhcnMtYmFja3dhcmQgIltbOmJsYW5rOl1dIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3MtYm9sKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGogKHRyZWVzaXQtbm9kZS1lbmQgc291cmNl
LWNlbGwpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBuZXcgY29sdW1u
LCBhbmQgdGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGRlbGlt
aXRlciByb3csIGluc2VydCBhIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDs7IGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwgcm93
LXR5cGUgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVsaW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBuZXcg
Y29sdW1uLCBhbmQgdGhpcyBpcyB0aGUgYSBoZWFkZXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IG9yIGJvZHkgcm93LCBpbnNlcnQgYSBkZWZhdWx0IGVtcHR5CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5KSkpKQorICAgICAg
ICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoY2xvbmUKKyAgICAgICAgICAg
ICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgdGhlIGZpcnN0IGNv
bHVtbiB0byB0aGUgbGVmdC4gIElmIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgICAgIDs7IG5v
IHBpcGUgYmVmb3JlIHRoZSBjZWxsIGNvbnRlbnQsIGluc2VydCBvbmUuCisgICAgICAgICAgICAg
ICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciBtaXNzaW5nLWxlYWRpbmctcGlw
ZSAiIikpKQorICAgICAgICAgICAgICAgICAgICA7OyBDbG9uZSB0aGUgZmlyc3QgY29sdW1uIHRv
IHRoZSByaWdodC4KKyAgICAgICAgICAgICAgICAgICAgICgoYW5kIChub3QgbGVmdCkgKGVxIHRh
YmxlLWNvbHVtbiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICA7OyBG
b3IgYSBwb3NpdGl2ZSB1c2VyIGV4cGVyaWVuY2UgZ2l2ZW4gZ3JhbW1hcgorICAgICAgICAgICAg
ICAgICAgICAgIDs7IGJ1Z3MsIGFkZCBhIG1pc3NpbmcgbGVhZGluZyBwaXBlIHRvIHRoZSBmaXJz
dAorICAgICAgICAgICAgICAgICAgICAgIDs7IGNlbGwgYXQgYSBwbGVhc2luZyBwb3NpdGlvbiBh
ZnRlciBjbG9uaW5nLgorICAgICAgICAgICAgICAgICAgICAgICh3aGVuIG1pc3NpbmctbGVhZGlu
Zy1waXBlCisgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1vdmUtdG8tY29sdW1uIGRlbGltMC1waXBlLWNvbCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIpKSkpCisgICAgICAgICAgICAgICAgICAg
IDs7IENsb25lIHRoZSBmaW5hbCBjb2x1bW4gdG8gdGhlIGxlZnQuCisgICAgICAgICAgICAgICAg
ICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gKDEtIG5jb2xzKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgKGluc2VydCB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
fCIpKQorICAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgYSBtaWRkbGUgY29sdW1uIHRvIHRo
ZSBsZWZ0LgorICAgICAgICAgICAgICAgICAgICAgKGxlZnQKKyAgICAgICAgICAgICAgICAgICAg
ICAoaW5zZXJ0IHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ8IikpCisgICAg
ICAgICAgICAgICAgICAgICA7OyBDbG9uZSBhIG1pZGRsZSBvciBmaW5hbCBjb2x1bW4gdG8gdGhl
IHJpZ2h0LgorICAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgICAo
aW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkpKSkKKworICAg
ICAgICAgICAgICAgICAgIDs7IE5vdCBjbG9uaW5nLCBpbnNlcnQgYSBuZXcgY29sdW1uLgorICAg
ICAgICAgICAgICAgICAgICgoYW5kIGxlZnQgKGVxIHRhYmxlLWNvbHVtbiAwKSAoZXEgeCAoMS0g
bnJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxdWFsIHJvdy10eXBlICJw
aXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKSkpCisgICAgICAgICAgICAgICAgICAgOzsgVE9ETzog
cmVtb3ZlIHBsYWNlaG9sZGVyIGxvZ2ljLgorICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0Cisg
ICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVy
CisgICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2luZy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAg
ICAgICAgICAgICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydAorICAgICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2lu
Zy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAgICAgICAgICAgICAgICAgICAobGVmdAorICAgICAgICAg
ICAgICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAg
ICAgICAgICAgICAifCIpKQorICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAg
ICAgIChpbnNlcnQKKyAgICAgICAgICAgICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgICAg
ICAgdGV4dCkpKQorCisgICAgICAgICAgICAgICAgICA7OyBDYXB0dXJlIHRoZSBzdGFydCBvZiB0
aGUgbmV3IGNlbGwncyBjb250ZW50IGluCisgICAgICAgICAgICAgICAgICA7OyB0aGUgcm93IHRo
YXQgb3JpZ2luYWxseSBjb250YWluZWQgcG9pbnQuCisgICAgICAgICAgICAgICAgICAod2hlbiAo
YW5kIChub3QgdGFyZ2V0LXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtbm9kZS1lcSByb3cgcG9pbnQtcm93KSkKKyAgICAgICAgICAgICAgICAgICAgKHNldHEgdGFy
Z2V0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRhcmdldC1jb2x1bW4tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5kIGxlZnQg
KG5vdCAoZXEgdGFibGUtY29sdW1uIDApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOzsgInRleHQgfCIgaW5zZXJ0ZWQgYXQgYmVnLgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcmlnLXBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBBbGwg
b3RoZXIgYnJhbmNoZXMgaW5zZXJ0ICJ8IiBmaXJzdC4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgxKyBvcmlnLXBvaW50KSkpKSkpCisKKyAgICAgICAgICAgICAgICAgIDs7IEFkanVz
dCBvZmZzZXQgZm9yIGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgIChzZXRxIGFkaiAo
KyBhZGogKC0gKHBvaW50KSBvcmlnLXBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG9y
aWctcG9pbnQgKHBvaW50KSkpKSkpKQorICAgICAgICAod2hlbiB0YXJnZXQtcG9zCisgICAgICAg
ICAgKGdvdG8tY2hhciB0YXJnZXQtcG9zKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJs
ZS1kZWxldGUtY29sdW1uICgpCisgICJEZWxldGUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludC4K
K1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBu
b3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3du
LXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uKQor
ICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQor
ICAgICAgICAgICAgICAocG9zIChjYXIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAodGFibGUg
KGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUt
bm9kZS1jZWxsIG5pbCBwb3MpKQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFi
bGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAgICAgIChjb2xzICh0cmVlc2l0LW5vZGUtY2hp
bGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29scyAobGVuZ3RoIGNvbHMpKSkK
KyAgICAobGV0ICgodGFibGUtY29sdW1uIChtYXJrZG93bi10cy0tdGFibGUtY29tcHV0ZS1ub2Rl
LWNvbHVtbiByb3cgY2VsbCkpKQorICAgICAgKHVubGVzcyB0YWJsZS1jb2x1bW4KKyAgICAgICAg
KGVycm9yICJDb3VsZCBub3QgY29tcHV0ZSB0aGUgdGFibGUgY29sdW1uIikpCisgICAgICA7OyBO
T1RFOiBHRk0gdGFibGVzIGFsbG93IG5vbi11bmlmb3JtIHRhYmxlIHJvd3MuICBUaGUgY3VycmVu
dCByb3cKKyAgICAgIDs7IGNvdWxkIGhhdmUgYSBkaWZmZXJpbmcgbnVtYmVyIG9mIGNvbHVtbnMg
ZnJvbSBvdGhlciByb3dzLiAgV2UKKyAgICAgIDs7IHNpbGVudGx5IGRvIG5vdGhpbmcgdG8gYSBy
b3cgdGhhdCBkb2VzIG5vdCBleHRlbmQgdG8gdGhlCisgICAgICA7OyBjb21wdXRlZCBjb2x1bW4u
CisgICAgICA7OworICAgICAgOzsgTk9URTogVGhlIGdyYW1tYXIgYW5ub3lpbmdseSBpZ25vcmVz
IGNlbGwgbGVhZGluZyB3aGl0ZXNwYWNlCisgICAgICA7OyBidXQgZG9lcyBpbmNsdWRlIHRyYWls
aW5nIHdoaXRlc3BhY2Ugc28gY2VsbHMgYXJlIGJvdW5kZWQgYnkKKyAgICAgIDs7IHRoZSBmaXJz
dCBncmFwaCBjaGFyYWN0ZXIgdXAgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIGp1c3QgYmVmb3JlCisg
ICAgICA7OyB0aGUgcGlwZSBzeW1ib2wsIGluY2x1ZGluZyB3aGl0ZXNwYWNlLgorICAgICAgOzsK
KyAgICAgIDs7IFRoZSBncmFtbWFyIGFsc28gY29uc2lkZXJzIHRoZSB0cmFpbGluZyBwaXBlIHN5
bWJvbCB0byBiZSBhCisgICAgICA7OyBwYXJ0IG9mIGl0cyBwcmVjZWRpbmcgY2VsbCBzbyB0aGF0
J3Mgd2hhdCB3ZSBkZWxldGUgd2hlbiB3ZQorICAgICAgOzsgZGVsZXRlIGEgY29sdW1uJ3MgY2Vs
bDsgaS5lLiwgaWYgdGhlcmUgaXMgYSBwaXBlIGJlZm9yZSB0aGUKKyAgICAgIDs7IGZpcnN0IGNv
bHVtbiwgd2UgZGVsZXRlIGl0LgorICAgICAgKGxldCogKChhZGogMCkgOyBBZGp1c3Qgbm9kZSBw
b3NpdGlvbiBvZmZzZXRzIGJ5IGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAocm93cyAodHJl
ZXNpdC1ub2RlLWNoaWxkcmVuIHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgKG5yb3dzIChs
ZW5ndGggcm93cykpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAod2l0aG91
dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAg
ICAgIDs7IElmIGNlbGwgaXMgbmlsLCBpdCBpcyBiZXlvbmQgdGhlIHRhYmxlLWNvbHVtbiBhbmQg
aXRzCisgICAgICAgICAgICAgIDs7IHJvdyBpcyBpZ25vcmVkLgorICAgICAgICAgICAgICAod2hl
bi1sZXQqICgocm93IChudGggeCByb3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChjZWxsIChudGggdGFibGUtY29sdW1uIGNvbHMpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY2VsbC1iZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBjZWxsKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNlbGwtZW5kICh0cmVlc2l0LW5vZGUtZW5kIGNlbGwpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGp1c3QgYmVnIHRvIHRyaW0gdGhlIGdyYW1tYXIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgOzsgdW5hY2NvdW50ZWQtZm9yIGxlYWRpbmcgd2hpdGVzcGFjZS4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBJZiB0aGlzIGlzIHRoZSBzb2xlIGNvbHVtbiwgZGVsZXRlIGZyb20g
Ym9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxIG5jb2xzIDEpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtYmVnIGFkaikp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWJvbCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDs7IElmIHRoaXMgaXMgdGhlIGZpcnN0IGNvbHVtbiwgZGVs
ZXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGZyb20gdGhlIHBpcGUsIGlm
IHRoZXJlIGlzIG9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgb3RoZXJ3
aXNlIGNlbGwtYmVnLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxIHRhYmxl
LWNvbHVtbiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHAgKC0g
Y2VsbC1iZWcgYWRqKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
cG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoc2VhcmNo
LWZvcndhcmQgInwiIHAgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHApKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgdGhpcyBpcyB0aGUgZmluYWwg
Y29sdW1uLCBkZWxldGUgZnJvbSB0aGUgcHJpb3IgcGlwZSBzeW1ib2wuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgocCAoLSAodHJlZXNpdC1ub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggKDEtIHRh
YmxlLWNvbHVtbikgY29scykpIGFkaikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZ290by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp
ZiAoc2VhcmNoLWZvcndhcmQgInwiICgtIGNlbGwtYmVnIGFkaikgdCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IE90
aGVyd2lzZSwgc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOzsgcHJpb3IgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtICh0cmVlc2l0LW5vZGUtZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggKDEtIHRhYmxl
LWNvbHVtbikgY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGop
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBlbmQgdG8gdHJpbSB0aGUg
dHJhaWxpbmcgcGlwZSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgY29uc2lk
ZXJlZCBieSB0aGUgZ3JhbW1hciB0byBiZSBwYXJ0IG9mIGl0cworICAgICAgICAgICAgICAgICAg
ICAgICAgICA7OyBwcmVjZWRpbmcgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGVu
ZCAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB0aGlzIGlzIHRo
ZSBzb2xlIGNvbHVtbiwgZGVsZXRlIHVudGlsIGVvbC4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChlcSBuY29scyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGdvdG8tY2hhciAoLSBjZWxsLWJlZyBhZGopKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHBvcy1lb2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB0
aGlzIGlzIHRoZSBmaW5hbCBjb2x1bW4sIGRlbGV0ZSB1bnRpbCBlb2wuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtZW5kIGFkaikpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDs7IE90aGVyd2lzZSwgbG9vayBmb3J3YXJkIGZyb20gY2VsbC1l
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKHdoaWNoIGluY2x1ZGVzIHRo
ZSBjZWxsJ3MgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgd2hp
dGVzcGFjZSkgZm9yIGEgcGlwZSBzeW1ib2wuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNl
bGwtZW5kIGFkaikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHJlLXNl
YXJjaC1mb3J3YXJkICJ8Kz8iIChwb3MtZW9sKSB0KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjZWxsLWVuZCkpKSkpCisgICAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVu
ZCkKKyAgICAgICAgICAgICAgICAoc2V0cSBhZGogKCsgYWRqICgtIGVuZCBiZWcpKSkpKSkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdCAoKQorICAiTW92
ZSB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIGl0cyBsZWZ0LgorUG9pbnQgY2FuIGJlIGlu
IHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUtbW92ZS1j
b2x1bW4gJ2xlZnQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tcmln
aHQgKCkKKyAgIk1vdmUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byBpdHMgcmlnaHQuCitQ
b2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90
IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10
cy10YWJsZS1tb3ZlLWNvbHVtbiAncmlnaHQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUt
bW92ZS1jb2x1bW4gKCZvcHRpb25hbCBsZWZ0KQorICAiTW92ZSB0aGUgdGFibGUgY29sdW1uIGF0
IHBvaW50IHJpZ2h0IG9yIGxlZnQuCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5vdCBgcmln
aHQnLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LAorbW92ZSB0aGUgY29sdW1uIHRvIGl0cyBs
ZWZ0LgorRG8gbm90aGluZyBpZiBhIHJvdyBiZWluZyBtb3ZlZCBpcyBub3Qgd2l0aGluIHRoZSBj
b2x1bW5zIG9mIHRoZSBoZWFkZXIuCitEbyBub3RoaW5nIGlmIG1vdmluZyBsZWZ0IGFuZCB0aGUg
Y3VycmVudCBjb2x1bW4gaXMgdGhlIGZpcnN0IGNvbHVtbiBvZgordGhlIGN1cnJlbnQgcm93Lgor
RG8gbm90aGluZyBpZiBtb3ZpbmcgcmlnaHQgYW5kIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUg
ZmluYWwgY29sdW1uIG9mCit0aGUgY3VycmVudCByb3cuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRh
YmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhp
bmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAn
bWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4pCisgIChzZXRxIGxlZnQgKGNvbmQgKChlcSBs
ZWZ0ICdyaWdodCkgbmlsKQorICAgICAgICAgICAgICAgICAgIChsZWZ0IGxlZnQpCisgICAgICAg
ICAgICAgICAgICAgKGN1cnJlbnQtcHJlZml4LWFyZyB0KSkpCisgICh3aGVuLWxldCogKChhdC10
YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgIChwb3Mg
KGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAg
ICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duICduYW1lZCkp
CisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUp
KQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbm9kZSkp
CisgICAgICAgICAgICAgIChoZWFkZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlxcYHBpcGVfdGFibGVfaGVhZGVyXFwnIikpCisgICAgICAgICAgICAgIChuaGVhZGVy
cyAobGVuZ3RoICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gaGVhZGVyLXJvdyAnbmFtZWQpKSkKKyAg
ICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAg
ICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpKQorICAgIChsZXQgKCh0YWJsZS1jb2x1
bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIHJvdyBjZWxsKSkpCisg
ICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAoZXJyb3IgIkNvdWxkIG5vdCBjb21w
dXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIChpZiAoPj0gdGFibGUtY29sdW1uIG5oZWFk
ZXJzKQorICAgICAgICAgIChtZXNzYWdlICJSYWdnZWQvdW5ldmVuIGNvbHVtbiBjYW5ub3QgYmUg
bW92ZWQiKQorICAgICAgICA7OyBBIEIgQyBEIC0+IEIgQSBDIEQKKyAgICAgICAgOzsgTW92ZSBB
IGxlZnQ6IGRvIG5vdGhpbmcKKyAgICAgICAgOzsgTW92ZSBEIHJpZ2h0OiBkbyBub3RoaW5nCisg
ICAgICAgIDs7IE1vdmUgY3VycmVudCBjb2x1bW4gbGVmdDoKKyAgICAgICAgOzsgICBzb3VyY2Ug
Y29sdW1uID0gdCAtIDEKKyAgICAgICAgOzsgTW92ZSBjdXJyZW50IGNvbHVtbiByaWdodDoKKyAg
ICAgICAgOzsgICBjbG9uZSB0IHRvIHQrMSBpZiB0aGUgZmluYWwgY29sdW1uLCBvdGhlcndpc2Ug
dCsyCisgICAgICAgIDs7ICAgZGVsZXRlIHQKKyAgICAgICAgKGNvbmQgKChhbmQgbGVmdCAoZXEg
dGFibGUtY29sdW1uIDApKQorICAgICAgICAgICAgICAgKG1lc3NhZ2UgIkxlZnRtb3N0IGNvbHVt
biBjYW5ub3QgYmUgbW92ZWQgbGVmdCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAgICAgICAg
ICAgICgoYW5kIChub3QgbGVmdCkgKGVxIHRhYmxlLWNvbHVtbiAoMS0gbmNvbHMpKSkKKyAgICAg
ICAgICAgICAgIChtZXNzYWdlICJSaWdodG1vc3QgY29sdW1uIGNhbm5vdCBiZSBtb3ZlZCByaWdo
dCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAg
ICAobGV0ICgoc291cmNlLWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgxLSB0YWJsZS1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhYmxlLWNvbHVtbikpCisgICAgICAgICAgICAgICAgICAgICAodGFy
Z2V0LWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhYmxlLWNvbHVtbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
MSsgdGFibGUtY29sdW1uKSkpKQorICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAg
ICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1uIHNvdXJjZS1j
b2x1bW4pCisgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1
bW4KKyAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0IChsaXN0CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGFyZ2V0LWNvbHVtbikpKQorICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
dGFibGUtLWdvdG8tY29sdW1uIHNvdXJjZS1jb2x1bW4pCisgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uKQorICAgICAgICAgICAgICAgICA7OyBFbXB0eSBj
ZWxscyBjYW4gY29uZnVzZSB0aGUgZ3JhbW1hciwgc28gbm8tZXJyb3IgaGVyZS4KKyAgICAgICAg
ICAgICAgICAgKGlmIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy10YWJs
ZS0tZ290by1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UtY29sdW1uICduby1l
cnJvcikKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1u
CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC1jb2x1bW4gJ25vLWVycm9yKSkpKSkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4tbGVmdCAoKQorICAiQWxpZ24g
dGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byB0aGUgbGVmdC4KK0RvIHRoZSB3b3JrIHdpdGgg
YG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVtbicsIHdoaWNoIHNlZSBmb3IgbW9yZQorZGV0
YWlscy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVt
biAnbGVmdCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4tY2VudGVy
ICgpCisgICJBbGlnbiB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIHRoZSBjZW50ZXIuCitE
byB0aGUgd29yayB3aXRoIGBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4nLCB3aGljaCBz
ZWUgZm9yIG1vcmUKK2RldGFpbHMuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10
YWJsZS1hbGlnbi1jb2x1bW4gJ2NlbnRlcikpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1h
bGlnbi1jb2x1bW4tcmlnaHQgKCkKKyAgIkFsaWduIHRoZSB0YWJsZSBjb2x1bW4gYXQgcG9pbnQg
dG8gdGhlIHJpZ2h0LgorRG8gdGhlIHdvcmsgd2l0aCBgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24t
Y29sdW1uJywgd2hpY2ggc2VlIGZvciBtb3JlCitkZXRhaWxzLiIKKyAgKGludGVyYWN0aXZlKQor
ICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uICdyaWdodCkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4gKCZvcHRpb25hbCBhbGlnbikKKyAgIkFsdGVyIHRo
ZSB0YWJsZSBjb2x1bW4gYWxpZ25tZW50IGF0IHBvaW50LgorQWx0ZXIgdGhlIGNvbHVtbiBwb2lu
dCBpcyBpbi4KKworTm90ZTogVG8gY29tcHV0ZSB0aGUgY29sdW1uLCBwb2ludCBtdXN0IGJlIHdp
dGhpbiB0aGUgY29sdW1uIGFuZCBjYW5ub3QKK2JlIG9uIHRoZSBsZWFkaW5nIG9yIHRyYWlsaW5n
IHdoaXRlc3BhY2Ugb3Igb24gYSBjb2x1bW4gZGVsaW1pdGVyLgorCitBTElHTiBjYW4gYmUgb25l
IG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywgYGNlbnRlcicsIGByaWdodCcgb3IgbmlsIGZvcgordW5z
cGVjaWZpZWQgb3IgdGhlIGNoYXJhY3RlcnMgbCwgYywgb3Igci4KKworSWYgQUxJR04gaXMgbmls
LCBhc3N1bWUgdW5zcGVjaWZpZWQuICBNYWtlIHRoZSBhbGlnbm1lbnQgc3RyaW5nIGEKK21pbmlt
dW0gb2YgNSBjaGFyYWN0ZXJzIHRvIGFjY29tbW9kYXRlIE1hcmtkb3duIGNvbnZlbnRpb25zLgor
CitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2
ZSAiY0FsaWduIGNvbHVtbiBbbF1lZnQgW2NdZW50ZXIgW3JdaWdodCBbdV1uc3BlY2lmaWVkOiIp
CisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtYWxp
Z24tY29sdW1uKQorICAoc2V0cSBhbGlnbiAoaWYgKGNoYXJhY3RlcnAgYWxpZ24pCisgICAgICAg
ICAgICAgICAgICAocGNhc2UgYWxpZ24gKD9sICdsZWZ0KSAoP2MgJ2NlbnRlcikgKD9yICdyaWdo
dCkpCisgICAgICAgICAgICAgICAgYWxpZ24pKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1h
cmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQt
dGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAg
ICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAg
ICAgICAgICAoY2VsbCAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtY2VsbCBub2RlKSkKKyAgICAg
ICAgICAgICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IGNlbGwpKQorICAgICAg
ICAgICAgICAoYWxpZ25lcnMgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJsZSkpKQor
ICAgIChsZXQgKCh0YWJsZS1jb2x1bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUt
Y29sdW1uIHJvdyBjZWxsKSkpCisgICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAo
ZXJyb3IgIkNvdWxkIG5vdCBjb21wdXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIDs7IE5P
VEU6IEdGTSB0YWJsZXMgYWxsb3cgbm9uLXVuaWZvcm0gdGFibGUgcm93cy4gIFRoZSBjdXJyZW50
IHJvdworICAgICAgOzsgY291bGQgaGF2ZSBhIGRpZmZlcmluZyBudW1iZXIgb2YgY29sdW1ucyBm
cm9tIHRoZSBoZWFkZXIuICBXZQorICAgICAgOzsgc2lsZW50bHkgZG8gbm90aGluZyBpZiB3ZSBj
YW4ndCBmaW5kIGEgbWF0Y2hpbmcgaGVhZGVyIGNvbHVtbi4KKyAgICAgICh3aGVuLWxldCogKChh
bGlnbmVyIChudGggdGFibGUtY29sdW1uIGFsaWduZXJzKSkKKyAgICAgICAgICAgICAgICAgIChi
ZWcgKHBsaXN0LWdldCBhbGlnbmVyIDpiZWcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAocGxp
c3QtZ2V0IGFsaWduZXIgOmVuZCkpCisgICAgICAgICAgICAgICAgICAoc3RyIChidWZmZXItc3Vi
c3RyaW5nLW5vLXByb3BlcnRpZXMgYmVnIGVuZCkpCisgICAgICAgICAgICAgICAgICAoc3RybGVu
IChtYXggNSAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkK
KyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAg
ICAgICAgKGluc2VydCAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciBzdHJsZW4gYWxp
Z24pKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSAoJm9wdGlv
bmFsIGFsaWduLWNlbGxzKQorICAiQWxpZ24gdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50Lgor
QWRqdXN0IGVhY2ggY29sdW1uJ3Mgd2lkdGggdG8gYWNjb21tb2RhdGUgaXRzIHdpZGVzdCBjb25z
dGl0dWVudCBjZWxsLgorSWYgQUxJR04tQ0VMTFMgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZp
eCBhcmd1bWVudCwgYXBwbHkgdGhlCitkZWxpbWl0ZXIgcm93J3MgYWxpZ25tZW50IHRvIGNlbGwg
Y29udGVudC4gIEFMSUdOLUNFTExTIGlzIG5vbi1uaWwgaWYKK3RoZSB1c2VyIG9wdGlvbiBgbWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tZmVhdHVyZXMnIGluY2x1ZGVzCitganVzdGlmeS1jZWxscycu
CitBbmNob3IgdGhlIGNvbHVtbnMgdG8gdGhlIGRlbGltaXRlciByb3cuICBJZ25vcmUgcm93cyB0
aGF0IGNvbnRhaW4KK2NvbHVtbnMgYmV5b25kIHRoZSBkZWxpbWl0ZXIgcm93LgorSWYgbm90IGlu
IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAobWFya2Rvd24t
dHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKQorICAo
d2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAg
ICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChiZWcgKHRy
ZWVzaXQtbm9kZS1zdGFydCB0YWJsZSkpCisgICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9k
ZS1lbmQgdGFibGUpKQorICAgICAgICAgICAgICAoXyAobWFya2Rvd24tdHMtLXRhYmxlLXRpY2st
c3RhbGUtcCBiZWcpKQorICAgICAgICAgICAgICAocm93cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVu
IHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgIChucm93cyAobGVuZ3RoIHJvd3MpKQorICAg
ICAgICAgICAgICAoZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAg
ICAgICAgICAgICAgICAgICAgIHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYHBp
cGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAoYWxpZ25lcnMgKG1h
cmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJsZSkpCisgICAgICAgICAgICAgIChjb2xzICh0
cmVlc2l0LW5vZGUtY2hpbGRyZW4gZGVsaW1pdGVyLXJvdyAnbmFtZWQpKQorICAgICAgICAgICAg
ICAobmNvbHMgKGxlbmd0aCBjb2xzKSkKKyAgICAgICAgICAgICAgKGNvbC13aWR0aHMgKG1ha2Ut
aGFzaC10YWJsZSA6c2l6ZSBuY29scyA6dGVzdCAnZXF1YWwpKQorICAgICAgICAgICAgICAoY2Vs
bC10ZXh0IChtYWtlLWhhc2gtdGFibGUgOnNpemUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0ICdlcXVh
bCkpKQorICAgIChzZXRxIGFsaWduLWNlbGxzIChvciBhbGlnbi1jZWxscworICAgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50LXByZWZpeC1hcmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1lbXEgJ2p1c3RpZnktY2VsbHMgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tZmVhdHVyZXMp
KSkKKyAgICAod2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgOzsgQ29sbGVjdCBjZWxsIHRleHQg
YW5kIGNvbXB1dGUgbWF4IGNvbHVtbiB3aWR0aHMuCisgICAgICA7OyBEbyBub3QgdXNlIHRoZSBk
ZWxpbWl0ZXIgcm93IGZvciB3aWR0aCBjb21wdXRhdGlvbi4KKyAgICAgIChkb3RpbWVzICh4IG5y
b3dzKQorICAgICAgICAobGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAgICAgICAo
Y2VsbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkpCisgICAgICAgICAgKGRv
dGltZXMgKHkgbmNvbHMpCisgICAgICAgICAgICA7OyBTa2lwIG5pbCBjZWxscy0tdGhlIHBhcnNl
ciBnb3QgY29uZnVzZWQuCisgICAgICAgICAgICAod2hlbi1sZXQqICgoY2VsbCAobnRoIHkgY2Vs
bHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKHN0cmluZy10cmltLXJpZ2h0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGNlbGwgJ25v
LXByb3BlcnR5KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAodyAobGVuZ3RoIHRleHQpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgKHcwIChvciAoZ2V0aGFzaCB5IGNvbC13aWR0aHMpIDAp
KSkKKyAgICAgICAgICAgICAgOzsgRWxpZGUgZGVsaW1pdGVyIHdpZHRocy4KKyAgICAgICAgICAg
ICAgKHVubGVzcyAoZXEgeCAxKQorICAgICAgICAgICAgICAgICh3aGVuICg+IHcgdzApCisgICAg
ICAgICAgICAgICAgICAocHV0aGFzaCB5IHcgY29sLXdpZHRocykpKQorICAgICAgICAgICAgICAo
cHV0aGFzaCAoY29ucyB4IHkpIHRleHQgY2VsbC10ZXh0KSkpKSkKKworICAgICAgKGxldCAoKHNv
dXJjZS1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAgICh3aXRoLXRlbXAtYnVmZmVy
CisgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAgICAoZG90aW1lcyAoeSBu
Y29scykKKyAgICAgICAgICAgICAgKGxldCogKCh3aWR0aCAob3IgKGdldGhhc2ggeSBjb2wtd2lk
dGhzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy10YWJsZS1k
ZWZhdWx0LWNvbHVtbi13aWR0aCkpCisgICAgICAgICAgICAgICAgICAgICAoYWxpZ24gKG9yIChw
bGlzdC1nZXQgKG50aCB5IGFsaWduZXJzKSA6YWxpZ24pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd1bnNwZWNpZmllZCkpCisgICAgICAgICAgICAgICAgICAgICA7OyBDb25mdXNl
ZCBjZWxscyBoYXZlIG5pbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgKHRleHQgKG9yIChn
ZXRoYXNoIChjb25zIHggeSkgY2VsbC10ZXh0KSAiIikpCisgICAgICAgICAgICAgICAgICAgICAo
dGV4dDAgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbi1jZWxsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHQgd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGFs
aWduLWNlbGxzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpKSkKKyAgICAgICAgICAgICAg
ICAoY29uZAorICAgICAgICAgICAgICAgICA7OyBIZWFkZXIgcm93LgorICAgICAgICAgICAgICAg
ICAoKGVxIHggMCkKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkKKyAgICAg
ICAgICAgICAgICAgOzsgRGVsaW1pdGVyIHJvdy4gIFVzZSB1bmFsaWduZWQgdGV4dC4KKyAgICAg
ICAgICAgICAgICAgKChlcSB4IDEpCisgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciB3
aWR0aCBhbGlnbikpKQorICAgICAgICAgICAgICAgICA7OyBCb2R5IHJvdy4KKyAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkpKSkKKyAgICAg
ICAgICAgIChpbnNlcnQgInwiICJcbiIpKQorICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAo
Y3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJj
ZS1idWZmZXIKKyAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJlZyBlbmQg
dGVtcC1idWZmZXIpKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLXRhYmxlLXRpY2stdXBkYXRlIGJl
ZykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtdHJhbnNwb3NlLXRhYmxlICgpCisgICJU
cmFuc3Bvc2UgdGhlIHJvd3MgYW5kIGNvbHVtbnMgb2YgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBv
aW50LgorVXNlIHVuc3BlY2lmaWVkIGNvbHVtbiBhbGlnbm1lbnQgaW4gdGhlIHRyYW5zcG9zZWQg
dGFibGUuCitJZiB0YWJsZSdzIHJvd3MgYXJlIG5vdCB1bmlmb3JtIHdpdGggdGhvc2Ugb24gdGhl
IGRlbGltaXRlciByb3csIHNpZ25hbAorYW4gZXJyb3IuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8g
bm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1t
b2RlICdtYXJrZG93bi10cy10YWJsZS10cmFuc3Bvc2UtdGFibGUpCisgICh3aGVuLWxldCogKChh
dC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICh0
YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKGJlZyAodHJlZXNpdC1ub2RlLXN0
YXJ0IHRhYmxlKSkKKyAgICAgICAgICAgICAgKGVuZCAodHJlZXNpdC1ub2RlLWVuZCB0YWJsZSkp
CisgICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFibGUgJ25hbWVk
KSkKKyAgICAgICAgICAgICAgKG5yb3dzIChsZW5ndGggcm93cykpCisgICAgICAgICAgICAgIChk
ZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9kZWxp
bWl0ZXJfcm93XFwnIikpCisgICAgICAgICAgICAgIChhbGlnbmVycyAobWFya2Rvd24tdHMtLXRh
YmxlLWFsaWduZXJzIHRhYmxlKSkKKyAgICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1j
aGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29scyAobGVu
Z3RoIGNvbHMpKQorICAgICAgICAgICAgICAoY2VsbC10ZXh0IChtYWtlLWhhc2gtdGFibGUgOnNp
emUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0ICdlcXVhbCkpKQorICAgICh3aXRob3V0LXJlc3RyaWN0
aW9uCisgICAgICA7OyBDb2xsZWN0IGNlbGwgdGV4dCBhbmQgaW52ZXJ0IGNvb3JkaW5hdGVzLgor
ICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgIChsZXQqICgocm93IChudGggeCByb3dz
KSkKKyAgICAgICAgICAgICAgIChjZWxscyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFt
ZWQpKSkKKyAgICAgICAgICAoZG90aW1lcyAoeSBuY29scykKKyAgICAgICAgICAgIDs7IFNraXAg
bmlsIGNlbGxzLS10aGUgcGFyc2VyIGdvdCBjb25mdXNlZC4KKyAgICAgICAgICAgICh3aGVuLWxl
dCogKChjZWxsIChudGggeSBjZWxscykpCisgICAgICAgICAgICAgICAgICAgICAgICAodGV4dCAo
c3RyaW5nLXRyaW0tcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXRleHQgY2VsbCAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgIChwdXRoYXNo
IChjb25zIHkgeCkgdGV4dCBjZWxsLXRleHQpKSkpKQorCisgICAgICAobGV0ICgoc291cmNlLWJ1
ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAg
ICAgICAoZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgIDs7IFN5bnRoZXNpemUgYSBkZWxp
bWl0ZXIgcm93LgorICAgICAgICAgICAgKHdoZW4gKGVxIHggMSkKKyAgICAgICAgICAgICAgKGRv
dGltZXMgKF95ICgxLSBucm93cykpCisgICAgICAgICAgICAgICAgKGluc2VydCAifCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdGFibGUtbWFrZS1hbGlnbmVyCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1heCA1IG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpKQorICAg
ICAgICAgICAgICAoaW5zZXJ0ICJ8IiAiXG4iKSkKKyAgICAgICAgICAgIChkb3RpbWVzICh5IG5y
b3dzKQorICAgICAgICAgICAgICA7OyBTa2lwIHRoZSBvcmlnaW5hbCBkZWxpbWl0ZXIgcm93Lgor
ICAgICAgICAgICAgICAodW5sZXNzIChlcSB5IDEpCisgICAgICAgICAgICAgICAgOzsgQ29uZnVz
ZWQgY2VsbHMgaGF2ZSBuaWwgdGV4dC4KKyAgICAgICAgICAgICAgICAobGV0ICgodGV4dCAob3Ig
KGdldGhhc2ggKGNvbnMgeCB5KSBjZWxsLXRleHQpICIiKSkpCisgICAgICAgICAgICAgICAgICAo
aW5zZXJ0ICJ8IiB0ZXh0KSkpKQorICAgICAgICAgICAgKGluc2VydCAifCIgIlxuIikpCisgICAg
ICAgICAgKGxldCAoKHRlbXAtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpKQorICAgICAgICAgICAg
KHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAgICAgICAgICAocmVwbGFj
ZS1yZWdpb24tY29udGVudHMgYmVnIGVuZCB0ZW1wLWJ1ZmZlcikpKSkpKQorICAgICh3aGVuIChv
ciAoZXEgbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiB0KQorICAgICAgICAgICAgICAobWVt
cSAndHJhbnNwb3NlIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24pKQorICAgICAgKG1hcmtk
b3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUt
Y29udmVydC1jc3YtcmVnaW9uICggYmVnIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UpCisgICJDb252ZXJ0IHRoZSBj
b21tYS1zZXBhcmF0ZWQgcmVnaW9uIEJFRyB0byBFTkQgdG8gYSBNYXJrZG93biB0YWJsZS4KK0lm
IEhFQURFUi1MSU5FIGlzIG5vbi1uaWwsIHVzZSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgcmVnaW9u
IGFzIHRoZSB0YWJsZQorY29sdW1uIGhlYWRlci4gIElmIG5pbCwgaW5mZXIgdGhlIG51bWJlciBv
ZiBjb2x1bW5zIGFuZCBzeW50aGVzaXplCitjb2x1bW4gbmFtZXMgZnJvbSB0aGUgZmlyc3QgbGlu
ZS4KKworTm90ZTogQm9keSBjb2x1bW5zIGJleW9uZCB0aGUgcHJvdmlkZWQgb3IgaW5mZXJyZWQg
bnVtYmVyIG9mIGNvbHVtbnMgYXJlCitkcm9wcGVkLgorCitJZiBSRVBMQUNFIGlzIG5vbi1uaWws
IG92ZXJ3cml0ZSB0aGUgcmVnaW9uIEJFRyBFTkQgd2l0aCB0aGUgTWFya2Rvd24KK3RhYmxlLCBv
dGhlcndpc2UgaW5zZXJ0IHRoZSB0YWJsZSBhZnRlciBFTkQuCisKK1dpdGggYSBzaW5nbGUgcHJl
Zml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24tbmlsLgorV2l0aCBhIGRvdWJsZSBwcmVm
aXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4KK1dpdGggYSB0cmlwbGUgcHJlZml4IGFy
Z3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGludGVyYWN0aXZlICJSIikKKyAgKG1hcmtk
b3duLXRzLXRhYmxlLWNvbnZlcnQtcmVnaW9uIGJlZyBlbmQgaGVhZGVyLWxpbmUgcmVwbGFjZSAn
Y3N2KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lvbiAoIGJl
ZyBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0
aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFk
ZXItbGluZSByZXBsYWNlKQorICAiQ29udmVydCB0aGUgdGFiLXNlcGFyYXRlZCByZWdpb24gQkVH
IHRvIEVORCB0byBhIE1hcmtkb3duIHRhYmxlLgorSWYgSEVBREVSLUxJTkUgaXMgbm9uLW5pbCwg
dXNlIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSByZWdpb24gYXMgdGhlIHRhYmxlCitjb2x1bW4gaGVh
ZGVyLiAgSWYgbmlsLCBpbmZlciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHN5bnRoZXNpemUK
K2NvbHVtbiBuYW1lcyBmcm9tIHRoZSBmaXJzdCBsaW5lLgorCitOb3RlOiBCb2R5IGNvbHVtbnMg
YmV5b25kIHRoZSBwcm92aWRlZCBvciBpbmZlcnJlZCBudW1iZXIgb2YgY29sdW1ucyBhcmUKK2Ry
b3BwZWQuCisKK0lmIFJFUExBQ0UgaXMgbm9uLW5pbCwgb3ZlcndyaXRlIHRoZSByZWdpb24gQkVH
IEVORCB3aXRoIHRoZSBNYXJrZG93bgordGFibGUsIG90aGVyd2lzZSBpbnNlcnQgdGhlIHRhYmxl
IGFmdGVyIEVORC4KKworV2l0aCBhIHNpbmdsZSBwcmVmaXggYXJndW1lbnQsIEhFQURFUi1MSU5F
IGlzIG5vbi1uaWwuCitXaXRoIGEgZG91YmxlIHByZWZpeCBhcmd1bWVudCwgUkVQTEFDRSBpcyBu
b24tbmlsLgorV2l0aCBhIHRyaXBsZSBwcmVmaXggYXJndW1lbnQsIGJvdGggYXJlIG5vbi1uaWwu
IgorICAoaW50ZXJhY3RpdmUgIlIiKQorICAobWFya2Rvd24tdHMtdGFibGUtY29udmVydC1yZWdp
b24gYmVnIGVuZCBoZWFkZXItbGluZSByZXBsYWNlICd0c3YpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtdGFibGUtY29udmVydC1yZWdpb24gKCBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UgZm9ybWF0KQorICAiQ29udmVydCB0
aGUgY29tbWEtc2VwYXJhdGVkIHJlZ2lvbiBCRUcgdG8gRU5EIHRvIGEgTWFya2Rvd24gdGFibGUu
CitJZiBIRUFERVItTElORSBpcyBub24tbmlsLCB1c2UgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHJl
Z2lvbiBhcyB0aGUgdGFibGUKK2NvbHVtbiBoZWFkZXIuICBJZiBuaWwsIGluZmVyIHRoZSBudW1i
ZXIgb2YgY29sdW1ucyBhbmQgc3ludGhlc2l6ZQorY29sdW1uIG5hbWVzIGZyb20gdGhlIGZpcnN0
IGxpbmUuCisKK05vdGU6IEJvZHkgY29sdW1ucyBiZXlvbmQgdGhlIHByb3ZpZGVkIG9yIGluZmVy
cmVkIG51bWJlciBvZiBjb2x1bW5zIGFyZQorZHJvcHBlZC4KKworSWYgUkVQTEFDRSBpcyBub24t
bmlsLCBvdmVyd3JpdGUgdGhlIHJlZ2lvbiBCRUcgRU5EIHdpdGggdGhlIE1hcmtkb3duCit0YWJs
ZSwgb3RoZXJ3aXNlIGluc2VydCB0aGUgdGFibGUgYWZ0ZXIgRU5ELgorCitGT1JNQVQgaXMgb25l
IG9mIHRoZSBzeW1ib2xzIGBjc3YnIGZvciBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzLCBvciBgdHN2
JworZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzLiAgSWYgYW55IG90aGVyIHZhbHVlLCB1c2UgYGNz
dicuCisKK1dpdGggYSBzaW5nbGUgcHJlZml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24t
bmlsLgorV2l0aCBhIGRvdWJsZSBwcmVmaXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4K
K1dpdGggYSB0cmlwbGUgcHJlZml4IGFyZ3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGlu
dGVyYWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93
bi10cy10YWJsZS1jb252ZXJ0LXJlZ2lvbikKKworICAoY29uZCAoKGVxdWFsIGN1cnJlbnQtcHJl
Zml4LWFyZyAnKDQpKQorICAgICAgICAgKHNldHEgaGVhZGVyLWxpbmUgdCkpCisgICAgICAgICgo
ZXF1YWwgY3VycmVudC1wcmVmaXgtYXJnICcoMTYpKQorICAgICAgICAgKHNldHEgcmVwbGFjZSB0
KSkKKyAgICAgICAgKChlcXVhbCBjdXJyZW50LXByZWZpeC1hcmcgJyg2NCkpCisgICAgICAgICAo
c2V0cSBoZWFkZXItbGluZSB0CisgICAgICAgICAgICAgICByZXBsYWNlIHQpKSkKKyAgKGxldCAo
cm93cykKKyAgICAoc2F2ZS1yZXN0cmljdGlvbgorICAgICAgKG5hcnJvdy10by1yZWdpb24gYmVn
IGVuZCkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAod2hpbGUgKDwgKHBv
aW50KSAocG9pbnQtbWF4KSkKKyAgICAgICAgKHBjYXNlIGZvcm1hdAorICAgICAgICAgICgndHN2
CisgICAgICAgICAgICAgKHB1c2gKKyAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZworICAgICAg
ICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9s
KSkgIlx0IikKKyAgICAgICAgICAgICAgcm93cykpCisgICAgICAgICAgIChfCisgICAgICAgICAg
ICAobGV0IChyb3cpCisgICAgICAgICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQKKyAg
ICAgICAgICAgICAgICAgICAgICAiXCJcXCg/OlteXCJdXFx8XCJcIlxcKSpcIlxcfFteLF0rXFx8
XCJcIiIKKyAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkgdCkKKyAgICAgICAgICAgICAg
ICAocHVzaAorICAgICAgICAgICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAg
ICAgICAgICAgICAgICAiXCJcIiIgIlwiIgorICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVn
ZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICJcXGBcIlxcKFwuKlxcKVwiXFwnIgor
ICAgICAgICAgICAgICAgICAgICJcXDEiCisgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZy1u
by1wcm9wZXJ0aWVzIChtYXRjaC1zdHJpbmcgMCkpKSkKKyAgICAgICAgICAgICAgICAgcm93KSkK
KyAgICAgICAgICAgICAgKHB1c2ggKG5yZXZlcnNlIHJvdykgcm93cykpKSkKKyAgICAgICAgKGZv
cndhcmQtbGluZSAxKSkKKyAgICAgICAgKHNldHEgcm93cyAobnJldmVyc2Ugcm93cykpCisgICAg
ICAgIChjb25kIChyZXBsYWNlIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpKQorICAgICAgICAgICAg
ICAodCAoZ290by1jaGFyIGVuZCkpKQorICAgICAgICAoaWYgaGVhZGVyLWxpbmUKKyAgICAgICAg
ICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKDEtIChsZW5ndGggcm93cykpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNhciBy
b3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciBy
b3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIHJv
d3MpKQorICAgICAgICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKGxlbmd0aCBy
b3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAo
Y2FyIHJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZS1jc3YgKCZvcHRpb25hbCBkaXNw
bGF5KQorICAiRXhwb3J0IHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludCB0byBjb21tYS1zZXBh
cmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVm
aXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9ydGluZy4K
K0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZl
ICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICdjc3YpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdiAoJm9wdGlvbmFsIGRp
c3BsYXkpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRvIHRhYi1zZXBh
cmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVm
aXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9ydGluZy4K
K0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZl
ICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICd0c3YpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlICgmb3B0aW9uYWwgZGlzcGxh
eSBmb3JtYXQpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRvIENTViBp
biBhIGJ1ZmZlci4KK0lmIERJU1BMQVkgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1
bWVudCwgZGlzcGxheSB0aGUgZXhwb3J0CitidWZmZXIgYWZ0ZXIgZXhwb3J0aW5nLgorRk9STUFU
IGlzIG9uZSBvZiB0aGUgc3ltYm9scyBgY3N2JyBmb3IgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBh
a2EgQ1NWLAorb3IgYHRzdicgZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGFrYSBUU1YuICBJZiBh
bnkgb3RoZXIgdmFsdWUsIHVzZQorYGNzdicuICBJZiBUU1YsIHJlcGxhY2UgYW55IHRhYnMgd2l0
aGluIGEgZmllbGQgd2l0aCBhIHNwYWNlLgorRG8gbm90IGV4cG9ydCB0aGUgdGFibGUncyBoZWFk
ZXIgZGVsaW1pdGVyIHJvdy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5n
LiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2Rl
ICdtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUpCisgICh3aGVuLWxldCogKChhdC10YWJs
ZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICh0YWJsZSAo
Y2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKHJvd3MgKHRyZWVzaXQtbm9kZS1jaGlsZHJl
biB0YWJsZSAnbmFtZWQpKQorICAgICAgICAgICAgICAoaGVhZGVyICh0cmVlc2l0LXNlYXJjaC1z
dWJ0cmVlIHRhYmxlICJcXGBwaXBlX3RhYmxlX2hlYWRlclxcJyIpKQorICAgICAgICAgICAgICAo
ZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAg
ICAgICAgICAgICAoZXhwb3J0LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpKSkKKyAg
ICAod2l0aC1jdXJyZW50LWJ1ZmZlciBleHBvcnQtYnVmZmVyCisgICAgICAoc3BlY2lhbC1tb2Rl
KQorICAgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQorICAgICAgICAod2lkZW4pCisg
ICAgICAgIChlcmFzZS1idWZmZXIpCisgICAgICAgIChkb2xpc3QgKHJvdyByb3dzKQorICAgICAg
ICAgICh1bmxlc3MgKGVxdWFsIHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAgICAgKGxldCog
KChlbHRzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAg
ICAgICAgKGxlbiAobGVuZ3RoIGVsdHMpKSkKKyAgICAgICAgICAgICAgKGRvdGltZXMgKHggbGVu
KQorICAgICAgICAgICAgICAgIChsZXQgKChzIChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRl
eHQgKG50aCB4IGVsdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgICAgICAocGNh
c2UgZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICgndHN2CisgICAgICAgICAgICAgICAgICAg
ICAoaW5zZXJ0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlx0IiAiXHMiIHMpKQorICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKDwgeCAoMS0gbGVuKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgKGluc2VydCAiXHQiKSkpCisgICAgICAgICAgICAgICAgICAgIChfCisgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gg
IltcIixdIiBzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcIiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdpZGVudGl0eSAoc3BsaXQtc3RyaW5nIHMgIlwiIikgIlwiXCIi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBzKSkKKyAgICAgICAgICAgICAgICAgICAgICh3aGVuICg8IHggKDEtIGxlbikp
CisgICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIiwiKSkpKSkpCisgICAgICAgICAgICAg
IChpbnNlcnQgIlxuIikpKSkKKyAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKQorICAg
ICh3aGVuIGRpc3BsYXkKKyAgICAgIChkaXNwbGF5LWJ1ZmZlciBleHBvcnQtYnVmZmVyKSkpKQor
Cis7OzsgSGVscGVyczoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1w
IChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9s
ZGVkIHJlZ2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEgKG92KSAoZXEgKG92ZXJsYXktZ2V0IG92
ICdpbnZpc2libGUpICdvdXRsaW5lKSkKKyAgICAgICAgICAgKG92ZXJsYXlzLWF0IHBvcykpKQog
CiAoZGVmdW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzICgpCiAgICJSZXR1cm4gcmFuZ2Ug
c2V0dGluZ3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0gICh0cmVlc2l0LXJhbmdlLXJ1bGVz
Ci0gICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQotICAgOmhvc3QgJ21hcmtkb3duCi0gICA6cmFu
Z2UtZm4gIyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4KLSAgICcoKGlubGluZSkg
QG1hcmtkb3duLWlubGluZSkKLQotICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvbnZlcnQtY29k
ZS1ibG9jay1sYW5ndWFnZQotICAgOmhvc3QgJ21hcmtkb3duCi0gICA6bG9jYWwgdAotICAgJygo
ZmVuY2VkX2NvZGVfYmxvY2sgKGluZm9fc3RyaW5nIChsYW5ndWFnZSkgQGxhbmd1YWdlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVudCkgQGNvbnRlbnQpKSkpCisg
IChhcHBseQorICAgIyd0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICBgKDplbWJlZCBtYXJrZG93bi1p
bmxpbmUKKyAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgKChpbmxpbmUpIEBtYXJrZG93bi1pbmxp
bmUpCisgICAgICxAKHdoZW4gbWFya2Rvd24tdHMtZm9udGlmeS1jb2RlLWJsb2Nrcy1uYXRpdmVs
eQorICAgICAgICAgJyg6ZW1iZWQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UK
KyAgICAgICAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAg
ICAgKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbGFuZ3VhZ2Up
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVudCkgQGNv
bnRlbnQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlz
ICgpCisgICJSZW1vdmUgYWxsIGlubGluZSBpbWFnZSBvdmVybGF5cyBmcm9tIHRoZSBjdXJyZW50
IGJ1ZmZlci4iCisgIChkb2xpc3QgKG92IChvdmVybGF5cy1pbiAocG9pbnQtbWluKSAocG9pbnQt
bWF4KSkpCisgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10cy1pbWFnZSkKKyAg
ICAgIChkZWxldGUtb3ZlcmxheSBvdikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5l
LXZpZXctY2hhbmdlICgpCisgICJVcGRhdGUgaW1hZ2Ugb3ZlcmxheXMgYWZ0ZXIgb3V0bGluZSBm
b2xkL3VuZm9sZC4KK1JlbW92ZXMgaW1hZ2Ugb3ZlcmxheXMgaW4gZm9sZGVkIHJlZ2lvbnMgYW5k
IHRyaWdnZXJzCityZWZvbnRpZmljYXRpb24gc28gdGhhdCBpbWFnZXMgaW4gdW5mb2xkZWQgcmVn
aW9ucyBhcmUgcmVjcmVhdGVkLiIKKyAgKHdoZW4gbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcwor
ICAgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQorICAgIChmb250LWxvY2st
Zmx1c2gpKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJrdXAgKHZhbHVlKQog
ICAiU2V0IGhpZGluZyBvZiBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGUgY3VycmVu
dCBidWZmZXIuCkBAIC0zNDgsNiArNDU5Niw4IEBAIG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJr
dXAKICAgKGlmIHZhbHVlCiAgICAgICAoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVjICdtYXJrZG93
bi10cy0tbWFya3VwKQogICAgIChyZW1vdmUtZnJvbS1pbnZpc2liaWxpdHktc3BlYyAnbWFya2Rv
d24tdHMtLW1hcmt1cCkpCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAo
bWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykpCiAgIChmb250LWxvY2stZmx1c2gp
KQogCiAoZGVmdW4gbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwICgpCkBAIC0zNTYsMTIy
ICs0NjA2LDcyMSBAQCBtYXJrZG93bi10cy10b2dnbGUtaGlkZS1tYXJrdXAKICAgKHNldHEgbWFy
a2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCiAgICht
YXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKSkKIAor
KGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdlcyAodmFsdWUpCisgICJTZXQgZGlz
cGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4KK1ZBTFVFIG5vbi1u
aWwgZGlzcGxheXMgaW1hZ2VzLCBuaWwgcmVtb3ZlcyB0aGVtLiIKKyAgKGlmIHZhbHVlCisgICAg
ICAodHJlZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1cmVzICcoaW1hZ2UtcHJldmlldykp
CisgICAgKHRyZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyBuaWwgJyhpbWFnZS1w
cmV2aWV3KSkpCisgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQorICAoZm9u
dC1sb2NrLWZsdXNoKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1hZ2Vz
ICgpCisgICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1
ZmZlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgbWFya2Rvd24tdHMtaW5saW5lLWltYWdl
cyAobm90IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpKQorICAobWFya2Rvd24tdHMtLXNldC1p
bmxpbmUtaW1hZ2VzIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpCisgIChtZXNzYWdlICJJbmxp
bmUgaW1hZ2VzICVzIiAoaWYgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJlbmFibGVkIiAiZGlzYWJsZWQiKSkpCisKKzs7OyBFbXBo
YXNpczoKKworKGRlZnZhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdAorICAnKCg/YiAuICIq
KiIpCisgICAgKD9CIC4gIl9fIikKKyAgICAoP2kgLiAiKiIpCisgICAgKD9JIC4gIl8iKQorICAg
ICg/cyAuICJ+fiIpCisgICAgKD9jIC4gImAiKQorICAgICg/YSAuICIqKioiKSkKKyAgIkFsaXN0
IG9mIGVtcGhhc2lzIG1hcmtlcnMgZm9yIGBtYXJrZG93bi10cy1lbXBoYXNpemUnLgorRWFjaCBl
bnRyeSBpcyAoS0VZIC4gTUFSS0VSKSB3aGVyZSBLRVkgaXMgYSBjaGFyYWN0ZXIgKG5vdCBhIHN0
cmluZykgYW5kCitNQVJLRVIgaXMgdGhlIE1hcmtkb3duIGVtcGhhc2l6ZWQgdGV4dCBwcmVmaXgv
c3VmZml4LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCAo
KQorICAiUmV0dXJuIHRoZSBlbXBoYXNpcyBub2RlIGF0IHBvaW50LCBvciBuaWwuCitGaW5kcyB0
aGUgaW5uZXJtb3N0IGBlbXBoYXNpcycsIGBzdHJvbmdfZW1waGFzaXMnLAorYHN0cmlrZXRocm91
Z2gnLCBvciBgY29kZV9zcGFuJyBub2RlLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRyZWVzaXQt
bm9kZS1hdCAocG9pbnQpICdtYXJrZG93bi1pbmxpbmUpKSkKKyAgICAodHJlZXNpdC1wYXJlbnQt
dW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgKG1lbWJlciAodHJlZXNp
dC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgJygiZW1waGFzaXMiICJzdHJvbmdf
ZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giICJjb2RlX3Nw
YW4iKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMgKCkKKyAgIlJl
bW92ZSBlbXBoYXNpcyBhcm91bmQgcG9pbnQgb3IgcmVnaW9uLgorV2l0aCBhbiBhY3RpdmUgcmVn
aW9uLCBzdHJpcCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG1hcmtlcnMgZnJvbQordGhlIHNlbGVj
dGVkIHRleHQuICBXaXRob3V0IGEgcmVnaW9uLCBmaW5kIHRoZSBlbXBoYXNpcyBub2RlIGF0Citw
b2ludCB1c2luZyB0cmVlLXNpdHRlciBhbmQgcmVtb3ZlIGl0cyBtYXJrZXJzLiIKKyAgKGludGVy
YWN0aXZlKQorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQqICgoYmVnIChyZWdpb24t
YmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkKKyAgICAgICAgICAg
ICAodGV4dCAoYnVmZmVyLXN1YnN0cmluZyBiZWcgZW5kKSkKKyAgICAgICAgICAgICAoc3RyaXBw
ZWQgbmlsKSkKKyAgICAgICAgKGNsLWxvb3AgZm9yIChfa2V5IC4gbSkgaW4gKHNvcnQgKGNvcHkt
c2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtk
b3duLXRzLWVtcGhhc2lzLWFsaXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKD4gKGxlbmd0aCAoY2RyIGEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNkciBiKSkpKSkKKyAgICAgICAgICAgICAgICAg
Zm9yIHJlID0gKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIG0pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlxcKFxcKD86LlxcfFxuXFwpKlxcKSIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAocmVnZXhwLXF1b3RlIG0pICJcXCciKQorICAgICAgICAgICAg
ICAgICB3aGVuIChzdHJpbmctbWF0Y2ggcmUgdGV4dCkKKyAgICAgICAgICAgICAgICAgZG8gKHNl
dHEgc3RyaXBwZWQgKG1hdGNoLXN0cmluZyAxIHRleHQpKQorICAgICAgICAgICAgICAgICBhbmQg
cmV0dXJuIG5pbCkKKyAgICAgICAgKHdoZW4gc3RyaXBwZWQKKyAgICAgICAgICAoZGVsZXRlLXJl
Z2lvbiBiZWcgZW5kKQorICAgICAgICAgIChpbnNlcnQgc3RyaXBwZWQpKSkKKyAgICA7OyBGaW5k
IHRoZSBvdXRlcm1vc3QgZW1waGFzaXMgbm9kZSBhdCBwb2ludC4KKyAgICAod2hlbi1sZXQqICgo
aW5uZXIgKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KSkKKyAgICAgICAgICAg
ICAgICAobm9kZSAobGV0ICgobiBpbm5lcikpCisgICAgICAgICAgICAgICAgICAgICAgICAod2hp
bGUgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBuKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIHBhcmVudAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBwYXJl
bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygiZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9zcGFuIikpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBuIHBhcmVudCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG4pKQorICAgICAgICAgICAgICAgIChzdGFydCAodHJlZXNp
dC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkpCisgICAgICAgICAgICAgICAgKHRleHQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUg
dCkpCisgICAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAg
ICAgICAgICAgICAgIChtbGVuIChwY2FzZSB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAo
InN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1w
cmVmaXgtcCAiXyIgdGV4dCkgMiAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgiZW1waGFz
aXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4LXAgIl8iIHRl
eHQpIDEgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoInN0cmlrZXRocm91Z2giIDIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAoImNvZGVfc3BhbiIgMSkpKQorICAgICAgICAgICAgICAg
IChpbm5lci10ZXh0IChzdWJzdHJpbmcgdGV4dCBtbGVuICgtIChsZW5ndGggdGV4dCkgbWxlbikp
KSkKKyAgICAgIChsZXQgKChvZmZzZXQgKC0gKHBvaW50KSBzdGFydCBtbGVuKSkpCisgICAgICAg
IChkZWxldGUtcmVnaW9uIHN0YXJ0IGVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBzdGFydCkKKyAg
ICAgICAgKGluc2VydCBpbm5lci10ZXh0KQorICAgICAgICAoZ290by1jaGFyICgrIHN0YXJ0ICht
YXggMCBvZmZzZXQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1lbXBoYXNpemUgKCZvcHRp
b25hbCBjaGFyKQorICAiSW5zZXJ0IG9yIGNoYW5nZSBlbXBoYXNpcyBvbiB0ZXh0LgorSWYgdGhl
cmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdCB3aXRoIGVtcGhhc2lzIG1hcmtlcnMuCitJ
ZiB0aGVyZSBpcyBubyByZWdpb24sIGluc2VydCBtYXJrZXIgcGFpcnMgYW5kIHBsYWNlIHBvaW50
IGJldHdlZW4KK3RoZW0uICBDSEFSIHNlbGVjdHMgdGhlIGVtcGhhc2lzIHR5cGU6CisKKyAgYiAg
ICoqYm9sZCoqICAgICAgIEIgIF9fYm9sZF9fCisgIGkgICAqaXRhbGljKiAgICAgICBJICBfaXRh
bGljXworICBhICAgKioqYm9sZCtpdGFsaWMqKioKKyAgcyAgIH5+c3RyaWtldGhyb3VnaH5+Cisg
IGMgICBgY29kZWAKKyAgU1BDIHJlbW92ZSBlbXBoYXNpcyBhdCBwb2ludCBvciByZWdpb24iCisg
IChpbnRlcmFjdGl2ZQorICAgImNFbXBoYXNpcyBbYl1vbGQgW0Jdb2xkXyBbaV10YWxpYyBbSV10
YWxpY18gW2FdbGwgW3NddHJpa2UgW2Ndb2RlIFNQQyByZW1vdmU6IikKKyAgKGlmIChlcSBjaGFy
ID9ccykKKyAgICAgIChtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMpCisgICAgKGlmLWxldCog
KChtYXJrZXIgKGNkciAoYXNzcSBjaGFyIG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KSkpKQor
ICAgICAgICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgICAgICAgIChsZXQgKChiZWcgKHJlZ2lv
bi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAoY29weS1tYXJrZXIgKHJlZ2lv
bi1lbmQpKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2VyKQorICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2Vy
KSkpCisgICAgICAgICAgKGlmLWxldCogKChib3VuZHMgKGJvdW5kcy1vZi10aGluZy1hdC1wb2lu
dCAnd29yZCkpKQorICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIChjZHIgYm91bmRzKSkKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtl
cikKKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgYm91bmRzKSkKKyAgICAgICAgICAg
ICAgICAoaW5zZXJ0IG1hcmtlcikpCisgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlciBtYXJrZXIp
CisgICAgICAgICAgICAoYmFja3dhcmQtY2hhciAobGVuZ3RoIG1hcmtlcikpKSkKKyAgICAgICh1
c2VyLWVycm9yICJObyBzdWNoIGVtcGhhc2lzIG1hcmtlcjogJWMiIGNoYXIpKSkpCisKKzs7OyBC
bG9jayBzdHJ1Y3R1cmU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtc3RydWN0dXJlICgm
b3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGJsb2NrIHN0cnVjdHVyZS4KK0lmIHRoZXJlIGlz
IGFuIGFjdGl2ZSByZWdpb24sIHdyYXAgaXQuICBPdGhlcndpc2UsIGluc2VydCBhbiBlbXB0eQor
YmxvY2sgYW5kIHBsYWNlIHBvaW50IGluc2lkZS4gIENIQVIgc2VsZWN0cyB0aGUgc3RydWN0dXJl
IHR5cGU6CisKKyAgYCAgZmVuY2VkIGNvZGUgYmxvY2sgKGBgYCkKKyAgfiAgdGlsZGUgZmVuY2Vk
IGNvZGUgYmxvY2sgKH5+fikKKyAgcSAgYmxvY2sgcXVvdGUgKD4gKQorICBkICBob3Jpem9udGFs
IGRpdmlkZXIvcnVsZSAoLS0tKQorICB0ICB0YWJsZSIKKyAgKGludGVyYWN0aXZlCisgICAiY1N0
cnVjdHVyZSBbYF1iYWNrLXRpY2sgY29kZSBibG9jayBbfl10aWxkZSBjb2RlIGJsb2NrIFtxXXVv
dGUgW2RdaXZpZGVyIFt0XWFibGU6IikKKyAgKHBjYXNlIGNoYXIKKyAgICAoP2AgKG1hcmtkb3du
LXRzLS1pbnNlcnQtY29kZS1ibG9jayA/YCkpCisgICAgKD9+IChtYXJrZG93bi10cy0taW5zZXJ0
LWNvZGUtYmxvY2sgP34pKQorICAgICg/cSAobWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90
ZSkpCisgICAgKD9kIChtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpKQorICAgICg/dCAobWFy
a2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRhYmxlKSkKKyAgICAoXyAodXNlci1lcnJvciAiTm8gc3Vj
aCBzdHJ1Y3R1cmU6ICVjIiBjaGFyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1j
b2RlLWJsb2NrIChjaGFyICZvcHRpb25hbCBsYW5ndWFnZSkKKyAgIkluc2VydCBhIGZlbmNlZCBj
b2RlIGJsb2NrIHVzaW5nIGEgQ0hBUiBzZXF1ZW5jZS4KK0NIQVIgc2hvdWxkIGJlIG9uZSBvZiBh
IGJhY2t0aWNrIG9yIGEgdGlsZGUuCitMQU5HVUFHRSBpcyBhIHdoaXRlc3BhY2UgZnJlZSBsYW5n
dWFnZSBzdHJpbmcuIgorICAoc2V0cSBsYW5ndWFnZQorICAgICAgICAob3IgbGFuZ3VhZ2UKKyAg
ICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAiW1s6Ymxh
bms6XV0iICIiCisgICAgICAgICAgICAgKGxldCAoKGNvbXBsZXRpb24taWdub3JlLWNhc2Ugbmls
KQorICAgICAgICAgICAgICAgICAgIChjYW5kaWRhdGVzCisgICAgICAgICAgICAgICAgICAgIChz
ZXEtbWFwCisgICAgICAgICAgICAgICAgICAgICAjJ3N5bWJvbC1uYW1lCisgICAgICAgICAgICAg
ICAgICAgICAoc2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChtYXBjYXIg
IydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24t
dHMtbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2FyIG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMpKSkpKSkKKyAgICAgICAgICAgICAgIChjb21wbGV0
aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAiQ29kZSBibG9jayBsYW5ndWFnZTogIgorICAgICAg
ICAgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAg
ICAnY29uZmlybSA7IFByb21wdCBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IG9uIG91ciBsaXN0Lgor
ICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1sYW5ndWFn
ZS1oaXN0b3J5KSkpKSkKKyAgKGxldCAoKGZlbmNlLXN0cmluZyAobWFrZS1zdHJpbmcgMyBjaGFy
KSkpCisgICAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAgIChsZXQgKChiZWcgKHJlZ2lvbi1i
ZWdpbm5pbmcpKQorICAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkpCisgICAgICAgICAg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAoZ290by1jaGFyIGVuZCkKKyAgICAgICAgICAg
ICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxuIikpCisgICAgICAgICAgICAoaW5zZXJ0IGZlbmNl
LXN0cmluZyAiXG4iKQorICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAo
aW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG4iKSkpCisgICAgICAoaW5zZXJ0IGZlbmNl
LXN0cmluZyBsYW5ndWFnZSAiXG5cbiIgZmVuY2Utc3RyaW5nKQorICAgICAgKGZvcndhcmQtbGlu
ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUgKCkKKyAg
Ikluc2VydCBhIGJsb2NrIHF1b3RlLiIKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0
ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgIChlbmQgKGNvcHktbWFya2Vy
IChyZWdpb24tZW5kKSkpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290
by1jaGFyIGJlZykKKyAgICAgICAgICAod2hpbGUgKDwgKHBvaW50KSBlbmQpCisgICAgICAgICAg
ICAoaW5zZXJ0ICI+ICIpCisgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkpCisgICAgKGlu
c2VydCAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIgKCkKKyAg
Ikluc2VydCBhIGhvcml6b250YWwgcnVsZS4iCisgICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxu
IikpCisgIChpbnNlcnQgIlxuLS0tXG5cbiIpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWFwcGx5
LWVsbGlwc2lzICgpCisgICJBcHBseSBgbWFya2Rvd24tdHMtZWxsaXBzaXMnIHRvIHRoZSBjdXJy
ZW50IGJ1ZmZlcidzIGRpc3BsYXkgdGFibGUuIgorICAoaWYgKGFuZCAoc3RyaW5ncCBtYXJrZG93
bi10cy1lbGxpcHNpcykKKyAgICAgICAgICAgKG5vdCAoc3RyaW5nLWVtcHR5LXAgbWFya2Rvd24t
dHMtZWxsaXBzaXMpKSkKKyAgICAgIChsZXQgKCh0YWJsZSAob3IgYnVmZmVyLWRpc3BsYXktdGFi
bGUKKyAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZGlzcGxheS10YWJsZSkpKSkKKyAgICAg
ICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QKKyAgICAgICAgIHRhYmxlIDQKKyAgICAgICAgICh2
Y29uY2F0IChtYXBjYXIgKGxhbWJkYSAoYykgKG1ha2UtZ2x5cGgtY29kZSBjICdzaGFkb3cpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbGxpcHNpcykpKQorICAgICAg
ICAoc2V0cSBidWZmZXItZGlzcGxheS10YWJsZSB0YWJsZSkpCisgICAgKHdoZW4gYnVmZmVyLWRp
c3BsYXktdGFibGUKKyAgICAgIChzZXQtZGlzcGxheS10YWJsZS1zbG90IGJ1ZmZlci1kaXNwbGF5
LXRhYmxlIDQgbmlsKSkpKQorCis7OzsgTWFqb3IgbW9kZToKKworKGRlZnVuIG1hcmtkb3duLXRz
LW91dGxpbmUtY3ljbGUgKCkKKyAgIkN5Y2xlIHZpc2liaWxpdHkgb2YgdGhlIGhlYWRpbmcgYXQg
cG9pbnQuCitPbiBhIGhlYWRpbmcsIGNhbGwgYG91dGxpbmUtY3ljbGUnLiAgT3RoZXJ3aXNlIGRv
IG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICh3aGVuIChvdXRsaW5lLW9uLWhlYWRpbmct
cCkKKyAgICAob3V0bGluZS1jeWNsZSkpKQorCisoZGVmdmFyLWtleW1hcCBtYXJrZG93bi10cy1t
b2RlLW1hcAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCisgICJNLTxs
ZWZ0PiIgICAgIydtYXJrZG93bi10cy1wcm9tb3RlCisgICJNLTxyaWdodD4iICAgIydtYXJrZG93
bi10cy1kZW1vdGUKKyAgIk0tPHVwPiIgICAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11
cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24KKyAgIkMt
YyBDLW4iICAgICAjJ291dGxpbmUtbmV4dC1oZWFkaW5nCisgICJDLWMgQy1wIiAgICAgIydvdXRs
aW5lLXByZXZpb3VzLWhlYWRpbmcKKyAgIkMtYyBDLXUiICAgICAjJ291dGxpbmUtdXAtaGVhZGlu
ZworICAiQy1jIEMtZiIgICAgICMnb3V0bGluZS1mb3J3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBD
LWIiICAgICAjJ291dGxpbmUtYmFja3dhcmQtc2FtZS1sZXZlbAorICAiQy1jIEMteCBDLWYiICMn
bWFya2Rvd24tdHMtZW1waGFzaXplCisgICJDLWMgQy14IEMtbSIgIydtYXJrZG93bi10cy10b2dn
bGUtaGlkZS1tYXJrdXAKKyAgIkMtYyBDLXggQy12IiAjJ21hcmtkb3duLXRzLXRvZ2dsZS1pbmxp
bmUtaW1hZ2VzCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10cy10b2dnbGUtY2hlY2tib3gK
KyAgIkMtYyBDLXIiICAgICAjJ21hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QKKyAgIkMtYyBDLSwi
ICAgICAjJ21hcmtkb3duLXRzLWluc2VydC1zdHJ1Y3R1cmUKKyAgIkMtYyBDLXYgbiIgICAjJ21h
cmtkb3duLXRzLW1vdmUtdG8tbmV4dC1jb2RlLWJsb2NrCisgICJDLWMgQy12IHAiICAgIydtYXJr
ZG93bi10cy1tb3ZlLXRvLXByZXZpb3VzLWNvZGUtYmxvY2sKKyAgIlJFVCIgICAgICAgICAjJ21h
cmtkb3duLXRzLW5ld2xpbmUKKyAgIk0tUkVUIiAgICAgICAjJ21hcmtkb3duLXRzLWluc2VydC1s
aXN0LWl0ZW0KKyAgIlRBQiIgICAgICAgICAjJ21hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpCisK
KyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW1h
cAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQt
bW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGluIGBtYXJrZG93bi10cy1tb2RlLW1hcCcgdG8g
c3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1hbmRzIGluIGEgY29kZS1ibG9jayBjb250ZXh0
LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2RlLW1hcAorICA6bWVudSBuaWwKKyAgIk0tLiIg
ICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXhyZWYtZmluZC1kZWZpbml0aW9ucwor
ICAiVEFCIiAgICAgICAgICMnaW5kZW50LWZvci10YWItY29tbWFuZAorICAiUkVUIiAgICAgICAg
ICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiQy1qIiAgICAgICAgICMnbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1SRVQiICAgICAgICMnbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1xIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgpCisKKyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLWlu
LXRhYmxlLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBmb3IgYG1hcmtkb3duLXRzLWluLXRhYmxl
LW1vZGUnLgorVGhlc2Ugb3ZlcnJpZGUga2V5cyBpbiBgbWFya2Rvd24tdHMtbW9kZS1tYXAnIHRv
IHN1cHBvcnQgZXhlY3V0aW5nIHRoZWlyCitjb21tYW5kcyBpbiBhIHRhYmxlIGNvbnRleHQuIgor
ICA6cGFyZW50IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgIDptZW51IG5pbAorICAiPHJldHVybj4i
ICAgICMnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cKKyAgIlMtPHJldHVybj4iICAjJ21hcmtk
b3duLXRzLXRhYmxlLXByZXZpb3VzLXJvdworICAiPHRhYj4iICAgICAgICMnbWFya2Rvd24tdHMt
dGFibGUtbmV4dC1jZWxsCisgICI8YmFja3RhYj4iICAgIydtYXJrZG93bi10cy10YWJsZS1wcmV2
aW91cy1jZWxsCisgICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdy11
cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctZG93bgorICAi
TS08bGVmdD4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdAorICAiTS08
cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tcmlnaHQKKyAgIk0tUy08
dXA+IiAgICAjJ21hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUKKyAgIk0tUy08ZG93
bj4iICAjJ21hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cKKyAgIk0tUy08cmlnaHQ+IiAjJ21h
cmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdAorICAiTS1TLTxsZWZ0PiIgICMnbWFy
a2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbgorICAiQy1jIEMtdCBhIiAgICMnbWFya2Rvd24t
dHMtdGFibGUtYWxpZ24tY29sdW1uCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10cy10YWJs
ZS1hbGlnbi10YWJsZQorICAiQy1jIEMtdCB0IiAgICMnbWFya2Rvd24tdHMtdGFibGUtdHJhbnNw
b3NlLXRhYmxlKQorCisoZWFzeS1tZW51LWRlZmluZSBtYXJrZG93bi10cy1tb2RlLW1lbnUgbWFy
a2Rvd24tdHMtbW9kZS1tYXAKKyAgImBtYXJrZG93bi10cy1tb2RlJyBtZW51LiIKKyAgJygiTWFy
a2Rvd24iIDp2aXNpYmxlIG1hcmtkb3duLXRzLW1lbnUtYmFyLXNob3cKKyAgICAiLS0iCisgICAg
WyJDeWNsZSBPdXRsaW5lIFZpc2liaWxpdHkiICBtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlICAg
ICAgICAgICAgICA6aGVscCAiQ3ljbGUgaGVhZGluZyB2aXNpYmlsaXR5IGZyb20gcG9pbnQiXQor
ICAgIFsiVG9nZ2xlIEhpZGUgTWFya3VwIiAgICAgICAgbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUt
bWFya3VwICAgICAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIG1hcmt1cCBjaGFyYWN0ZXJz
IiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cF0KKyAgICBb
IlRvZ2dsZSBJbmxpbmUgSW1hZ2VzIiAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1h
Z2VzICAgICAgIDpoZWxwICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGJlbG93IGxp
bmtzIiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzXQor
ICAgICItLSIKKyAgICBbIlVwIiAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmUtdXAtaGVh
ZGluZyAgICAgICAgICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwYXJlbnQgaGVhZGlu
ZyJdCisgICAgWyJOZXh0IiAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLW5leHQtaGVhZGlu
ZyAgICAgICAgICAgICAgICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIl0KKyAg
ICBbIlByZXZpb3VzIiAgICAgICAgICAgICAgICAgIG91dGxpbmUtcHJldmlvdXMtaGVhZGluZyAg
ICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91cyBoZWFkaW5nIl0KKyAgICBb
Ik5leHQgU2FtZSBMZXZlbCIgICAgICAgICAgIG91dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsICAg
ICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmcgYXQgdGhlIHNhbWUgbGV2
ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgICAgICAgb3V0bGluZS1iYWNrd2FyZC1z
YW1lLWxldmVsICAgICAgICAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIHByZXZpb3VzIGhlYWRpbmcg
YXQgdGhlIHNhbWUgbGV2ZWwiXQorICAgICItLSIKKyAgICBbIkp1bXAiICAgICAgICAgICAgICAg
ICAgICAgIGltZW51ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpoZWxwICJKdW1w
IHRvIGEgaGVhZGluZyB2aWEgY29tcGxldGlvbiJdCisgICAgIi0tIgorICAgIFsiTW92ZSBTdWJ0
cmVlIFVwIiAgICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwICAgICAgICAgICAg
OmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAiXQorICAgIFsi
TW92ZSBTdWJ0cmVlIERvd24iICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24g
ICAgICAgICAgOmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93
biJdCisgICAgWyJQcm9tb3RlIiAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1wcm9tb3Rl
ICAgICAgICAgICAgICAgICAgICA6aGVscCAiUHJvbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJd
CisgICAgWyJEZW1vdGUiICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1kZW1vdGUgICAg
ICAgICAgICAgICAgICAgICA6aGVscCAiRGVtb3RlIGhlYWRpbmcgb3IgbGlzdCBpdGVtIl0KKyAg
ICAiLS0iCisgICAgWyJFbXBoYXNpcy4uLiIgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbXBo
YXNpemUgICAgICAgICAgICAgICAgICA6aGVscCAiQWRkIG9yIGNoYW5nZSBlbXBoYXNpcyBvbiBy
ZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgICAgICAgbWFya2Rvd24tdHMtaW5z
ZXJ0LXN0cnVjdHVyZSAgICAgICAgICAgOmhlbHAgIkluc2VydCBhIGNvZGUgYmxvY2ssIHF1b3Rl
LCBvciBvdGhlciBzdHJ1Y3R1cmUiXQorICAgICItLSIKKyAgICBbIlRvZ2dsZSBDaGVja2JveCIg
ICAgICAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveCAgICAgICAgICAgIDpoZWxwICJU
b2dnbGUgdGFzayBsaXN0IGNoZWNrYm94IGF0IHBvaW50Il0KKyAgICBbIk5ldyBMaXN0IEl0ZW0i
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gICAgICAgICAgIDpoZWxw
ICJJbnNlcnQgYSBuZXcgbGlzdCBpdGVtIGFmdGVyIHRoZSBjdXJyZW50IG9uZSJdCisgICAgWyJS
ZW51bWJlciBMaXN0IiAgICAgICAgICAgICBtYXJrZG93bi10cy1yZW51bWJlci1saXN0ICAgICAg
ICAgICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2ludCJdCisgICAg
Ii0tIgorICAgICgiVGFibGUiCisgICAgIFsiSW5zZXJ0IHRhYmxlIiAgICAgICAgICAgICBtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgICAgICAgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5
IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJEZWxldGUgdGFibGUiICAgICAgICAgICAgIG1hcmtk
b3duLXRzLXRhYmxlLWRlbGV0ZS10YWJsZSAgICAgICAgIDpoZWxwICJEZWxldGUgdGhlIHRhYmxl
IGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIk5leHQgY2VsbCIgICAgICAgICAgICAgICAg
bWFya2Rvd24tdHMtdGFibGUtbmV4dC1jZWxsICAgICAgICAgICAgOmhlbHAgIk1vdmUgcG9pbnQg
dG8gdGhlIG5leHQgY2VsbCJdCisgICAgIFsiUHJldmlvdXMgY2VsbCIgICAgICAgICAgICBtYXJr
ZG93bi10cy10YWJsZS1wcmV2aW91cy1jZWxsICAgICAgICA6aGVscCAiTW92ZSBwb2ludCB0byB0
aGUgcHJldmlvdXMgY2VsbCJdCisgICAgICItLSIKKyAgICAgWyJOZXh0IHJvdyIgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICAgICAgICAgICAgIDpoZWxwICJNb3Zl
IHBvaW50IHRvIHRoZSBuZXh0IHJvdyJdCisgICAgIFsiUHJldmlvdXMgcm93IiAgICAgICAgICAg
ICBtYXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgICAgICAgICA6aGVscCAiTW92ZSBwb2lu
dCB0byB0aGUgcHJldmlvdXMgcm93Il0KKyAgICAgWyJJbnNlcnQgcm93IGJlbG93IiAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cgICAgIDpoZWxwICJJbnNlcnQgYW4g
ZW1wdHkgcm93IGJlbG93IHBvaW50Il0KKyAgICAgWyJJbnNlcnQgcm93IGFib3ZlIiAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUgICAgIDpoZWxwICJJbnNlcnQgYW4g
ZW1wdHkgcm93IGFib3ZlIHBvaW50Il0KKyAgICAgWyJDbG9uZSByb3cgYmVsb3ciICAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWNsb25lLXJvdy1iZWxvdyAgICAgIDpoZWxwICJDbG9uZSB0aGUg
Y3VycmVudCByb3cgYmVsb3cgaXQiXQorICAgICBbIkNsb25lIHJvdyBhYm92ZSIgICAgICAgICAg
bWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlICAgICAgOmhlbHAgIkNsb25lIHRoZSBj
dXJyZW50IHJvdyBhYm92ZSBpdCJdCisgICAgIFsiTW92ZSByb3cgdXAiICAgICAgICAgICAgICBt
YXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdy11cCAgICAgICAgICA6aGVscCAiTW92ZSB0aGUgcm93
IGF0IHBvaW50IHVwIl0KKyAgICAgWyJNb3ZlIHJvdyBkb3duIiAgICAgICAgICAgIG1hcmtkb3du
LXRzLXRhYmxlLW1vdmUtcm93LWRvd24gICAgICAgIDpoZWxwICJNb3ZlIHRoZSByb3cgYXQgcG9p
bnQgZG93biJdCisgICAgIFsiRGVsZXRlIHJvdyIgICAgICAgICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1kZWxldGUtcm93ICAgICAgICAgICA6aGVscCAiRGVsZXRlIHRoZSByb3cgYXQgcG9pbnQi
XQorICAgICAiLS0iCisgICAgIFsiSW5zZXJ0IGNvbHVtbiBsZWZ0IiAgICAgICBtYXJrZG93bi10
cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5IGNvbHVt
biB0byB0aGUgbGVmdCBvZiBwb2ludCJdCisgICAgIFsiSW5zZXJ0IGNvbHVtbiByaWdodCIgICAg
ICBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0ICA6aGVscCAiSW5zZXJ0IGFu
IGVtcHR5IGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQiXQorICAgICBbIkNsb25lIGNvbHVt
biBsZWZ0IiAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtY29sdW1uLWxlZnQgICAgOmhl
bHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgcG9pbnQiXQorICAgICBb
IkNsb25lIGNvbHVtbiByaWdodCIgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtY29sdW1u
LXJpZ2h0ICAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIHJpZ2h0IG9mIHBv
aW50Il0KKyAgICAgWyJNb3ZlIGNvbHVtbiBsZWZ0IiAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxl
LW1vdmUtY29sdW1uLWxlZnQgICAgIDpoZWxwICJNb3ZlIHRoZSBjdXJyZW50IGNvbHVtbiB0byBp
dHMgbGVmdCJdCisgICAgIFsiTW92ZSBjb2x1bW4gcmlnaHQiICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1tb3ZlLWNvbHVtbi1yaWdodCAgICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBjb2x1bW4g
dG8gaXRzIHJpZ2h0Il0KKyAgICAgWyJBbGlnbiBjb2x1bW4uLi4iICAgICAgICAgIG1hcmtkb3du
LXRzLXRhYmxlLWFsaWduLWNvbHVtbiAgICAgICAgIDpoZWxwICJBbGlnbiBjb2x1bW4gYXQgcG9p
bnQgdG8gdGhlIGxlZnQsIGNlbnRlciwgb3IgcmlnaHQiXQorICAgICBbIkRlbGV0ZSBjb2x1bW4i
ICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbiAgICAgICAgOmhlbHAg
IkRlbGV0ZSB0aGUgY29sdW1uIGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIkFsaWduIHRh
YmxlIGNvbHVtbnMiICAgICAgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUgICAgICAgICAg
OmhlbHAgIkFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBpbiBhbiBlYXN5LXRvLWVkaXQgZm9ybWF0
Il0KKyAgICAgWyJUcmFuc3Bvc2UgdGFibGUiICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLXRy
YW5zcG9zZS10YWJsZSAgICAgIDpoZWxwICJUcmFuc3Bvc2UgdGhlIHRhYmxlIGF0IHBvaW50IHN3
YXBwaW5nIGl0cyByb3dzIGFuZCBjb2x1bW5zIl0KKyAgICAgIi0tIgorICAgICBbIkNvbnZlcnQg
Q1NWIHRvIHRhYmxlIiAgICAgbWFya2Rvd24tdHMtdGFibGUtY29udmVydC1jc3YtcmVnaW9uICAg
OmhlbHAgIkNvbnZlcnQgYSByYW5nZSBvZiBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzIHRvIGEgbmV3
IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJDb252ZXJ0IFRTViB0byB0YWJsZSIgICAgIG1hcmtk
b3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lvbiAgIDpoZWxwICJDb252ZXJ0IGEgcmFuZ2Ug
b2YgdGFiLXNlcGFyYXRlZCB2YWx1ZXMgdG8gYSBuZXcgdGFibGUgYXQgcG9pbnQiXQorICAgICBb
IkV4cG9ydCB0YWJsZSB0byBDU1YiICAgICAgbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxl
LWNzdiAgICAgOmhlbHAgIkV4cG9ydCB0aGUgdGFibGUgYXQgcG9pbnQgdG8gYSBjb21tYS1zZXBh
cmF0ZWQgdmFsdWVzIGJ1ZmZlciJdCisgICAgIFsiRXhwb3J0IHRhYmxlIHRvIFRTViIgICAgICBt
YXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtdHN2ICAgICA6aGVscCAiRXhwb3J0IHRoZSB0
YWJsZSBhdCBwb2ludCB0byBhIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGJ1ZmZlciJdKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tc2V0LXVwICgpCisgICJTZXQgdXAgdGhlIGJ1ZmZlciBmb3IgYG1h
cmtkb3duLXRzLW1vZGUnLgorSWYgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lJyBpcyBub24t
bmlsLCB1c2UgYSBsaWdodHdlaWdodCBzZXQgdXAgZm9yCitlbWJlZGRlZCBpbmxpbmUgYG1hcmtk
b3duLXRzLW1vZGUnIGJ1ZmZlcnMuCisKK05PVEU6IENhbGwgdGhpcyBmdW5jdGlvbiBvbmx5IHdo
ZW4gdGhlIHRyZWVzaXQgYG1hcmtkb3duJyBhbmQKK2BtYXJrZG93bi1pbmxpbmUnIHBhcnNlcnMg
YXJlIGF2YWlsYWJsZS4iCisKKyAgOzsgU2V0IHRoZXNlIHVwIGZvciBib3RoIG1hc3RlciBhbmQg
aW5saW5lIGZvciBjb2RlLWJsb2NrIGJ1ZmZlcnMuCisgIChzZXRxLWxvY2FsIGNvbW1lbnQtc3Rh
cnQgIjwhLS0gIgorICAgICAgICAgICAgICBjb21tZW50LWVuZCAiIC0tPiIKKyAgICAgICAgICAg
ICAgY29tbWVudC1zdGFydC1za2lwICI8IS0tWyBcdF0qIgorICAgICAgICAgICAgICBjb21tZW50
LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAgICAgICAgICAgIGNvbW1lbnQtdXNlLXN5bnRheCBu
aWwpCiAKLTs7OyBNYWpvciBtb2RlCisgIChzZXRxLWxvY2FsIGZpbGwtcGFyYWdyYXBoLWZ1bmN0
aW9uCisgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoCisgICAgICAg
ICAgICAgIGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIydt
YXJrZG93bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCkKIAotKGRlZnVuIG1hcmtkb3duLXRz
LXNldHVwICgpCi0gICJTZXR1cCB0cmVlc2l0IGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgotICAo
bWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgIDs7IGBhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uJyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKKyAgOzsgYGFkYXB0aXZl
LWZpbGwtcmVnZXhwJzsgdGhlIGRlZmF1bHQgcmVnZXhwIGlzIGZpbmUgYXMgYQorICA7OyBmYWxs
YmFjayBmb3IgcGxhaW4gKG5vbi1saXN0KSBwYXJhZ3JhcGhzLgorICAoc2V0cS1sb2NhbCBhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uICMnbWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpCisKKyAgOzsg
Q3JlYXRlIGFuZCBjb25maWd1cmUgdGhlIHBhcnNlcnMuCisgICh0cmVlc2l0LXBhcnNlci1jcmVh
dGUgJ21hcmtkb3duLWlubGluZSkKKyAgKHNldHEgdHJlZXNpdC1wcmltYXJ5LXBhcnNlcgorICAg
ICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikpCisKKyAgKHNldHEtbG9jYWwg
Zm9udC1sb2NrLWRlZmF1bHRzIG5pbCkKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpCi0gIChzZXRxLWxvY2FsIHRy
ZWVzaXQtcmFuZ2Utc2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykpCi0gIChh
ZGQtdG8tbGlzdCAnZm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgJ2ludmlzaWJsZSkKLQot
ICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNy
ZWF0ZSAnaHRtbCkKLSAgICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQotICAgIChkZWZ2YXIgaHRt
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciBodG1sLXRzLW1vZGUt
LXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250
LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0
dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVy
ZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAot
ICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdCkpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAg
ICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1i
ZWQgJ2h0bWwKLSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAgICAg
ICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgICco
KGh0bWxfYmxvY2spIEBodG1sKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdo
dG1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCi0KLSAgKHdoZW4g
KHRyZWVzaXQtcmVhZHktcCAneWFtbCB0KQotICAgIChyZXF1aXJlICd5YW1sLXRzLW1vZGUpCi0g
ICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFy
IHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9k
ZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9j
ay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2st
ZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdAotICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAg
ICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVk
ICd5YW1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAnKCht
aW51c19tZXRhZGF0YSkgQHlhbWwpKSkpKQotCi0gICh3aGVuICh0cmVlc2l0LXJlYWR5LXAgJ3Rv
bWwgdCkKLSAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQotICAgIChkZWZ2YXIgdG9tbC10cy1t
b2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUtLWZvbnQt
bG9jay1mZWF0dXJlLWxpc3QpCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MK
LSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAg
ICAgICAgICB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykpCi0gICAgKHNldHEtbG9j
YWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgKHRyZWVz
aXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0cmVlc2l0
LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1m
b250LWxvY2stZmVhdHVyZS1saXN0KSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNl
dHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0g
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAgICAgICAg
ICAgICAgICAgICAgIDplbWJlZCAndG9tbAotICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0
ICdtYXJrZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorICAoc2V0cS1sb2Nh
bCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1pdGVyIGhlYWRpbmcpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3JhcGgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3Jh
cGgtaW5saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoaW1hZ2UtcHJldmlldyBlcnJvcikpKQorCisgIChjb25kIChtYXJrZG93bi10cy0tc2V0LXVw
LWlubGluZQorICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAg
ICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAg
ICAgICAgICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICA6
aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgJygoaW5saW5lKSBAbWFya2Rv
d24taW5saW5lKSkpKQorICAgICAgICAodAorICAgICAgICAgOzsgUmFuZ2Ugc2V0dGluZ3MgZGlm
ZmVyIGluIHRoZSBtYXN0ZXIgYnVmZmVyIHZzLiBpbmxpbmUgYWJvdmUuCisgICAgICAgICAoc2V0
cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzIChtYXJrZG93bi10cy0tcmFuZ2Utc2V0dGlu
Z3MpKQorCisgICAgICAgICA7OyBDb25maWd1cmUgZmVhdHVyZXMgbmVlZGVkIG9ubHkgaW4gdGhl
IG1hc3RlciBidWZmZXIuCisKKyAgICAgICAgIDs7IEltZW51IHN1cHBvcnQuCisgICAgICAgICAo
c2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGlu
Zy1uYW1lLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAoIkNvZGUgQmxvY2tzIiAs
IydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0aW9u
KSkpCisKKyAgICAgICAgIDs7IE91dGxpbmUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRxLWxvY2Fs
IHRyZWVzaXQtb3V0bGluZS1wcmVkaWNhdGUgIydtYXJrZG93bi10cy0tb3V0bGluZS1wcmVkaWNh
dGUpCisgICAgICAgICAoc2V0cS1sb2NhbCBvdXRsaW5lLW1pbm9yLW1vZGUtY3ljbGUgdCkKKyAg
ICAgICAgIChvdXRsaW5lLW1pbm9yLW1vZGUgMSkKKyAgICAgICAgIChtYXJrZG93bi10cy0tYXBw
bHktZWxsaXBzaXMpCisKKyAgICAgICAgIDs7IE5PVEU6IGBvdXRsaW5lLXZpZXctY2hhbmdlLWhv
b2snIHdhcyBvYnNvbGV0ZWQgaW4gMjkuMSAoY29tbWl0CisgICAgICAgICA7OyA1M2IxZTZmOTZj
Yikgb24gdGhlIGdyb3VuZHMgdGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQgbm8KKyAg
ICAgICAgIDs7IHJlcGxhY2VtZW50IHdhcyBwcm92aWRlZCBhbmQgb3V0bGluZS5lbCBpdHNlbGYg
c3RpbGwgcnVucyB0aGUgaG9vaworICAgICAgICAgOzsgaW4gMTArIHBsYWNlcy4KKyAgICAgICAg
ICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChvYnNvbGV0ZSBvdXRsaW5lLXZpZXctY2hhbmdl
LWhvb2spKQorICAgICAgICAgICAoYWRkLWhvb2sgJ291dGxpbmUtdmlldy1jaGFuZ2UtaG9vawor
ICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSBu
aWwgdCkpCisKKyAgICAgICAgIChwcm9nbgorICAgICAgICAgICAobWFrZS1sb2NhbC12YXJpYWJs
ZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlh
YmxlICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcykKKyAgICAgICAgICAgKGRvbGlzdCAo
cHJvcCAnKGludmlzaWJsZSBkaXNwbGF5IGJ1dHRvbiBjYXRlZ29yeSBhY3Rpb24gaGVscC1lY2hv
KSkKKyAgICAgICAgICAgICAoYWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2VkLXBy
b3BzIHByb3ApKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAnaHRtbCB0KQor
ICAgICAgICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdodG1sKQorICAgICAgICAgICAocmVx
dWlyZSAnaHRtbC10cy1tb2RlKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tdHJlZXNp
dC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVz
aXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRt
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAg
ICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAg
ICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCisgICAgICAg
ICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAg
ICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOmVtYmVkICdodG1sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpo
b3N0ICdtYXJrZG93bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX2Jsb2NrKSBAaHRtbCkKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQorCisgICAgICAgICAo
d2hlbiAodHJlZXNpdC1yZWFkeS1wICd5YW1sIHQpCisgICAgICAgICAgIChyZXF1aXJlICd5YW1s
LXRzLW1vZGUpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stc2V0
dGluZ3MpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVy
ZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRp
bmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxv
Y2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJh
bmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5n
ZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdl
LXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAneWFtbAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygobWludXNfbWV0YWRhdGEpIEB5YW1sKSkpKSkKKworICAgICAgICAgKHdoZW4gKHRy
ZWVzaXQtcmVhZHktcCAndG9tbCB0KQorICAgICAgICAgICAocmVxdWlyZSAndG9tbC10cy1tb2Rl
KQorICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQor
ICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkK
KyAgICAgICAgICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgICAg
ICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgICAgIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKKyAgICAgICAgICAg
KHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAg
ICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKKyAg
ICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAg
ICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ZW1iZWQgJ3RvbWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmhvc3QgJ21hcmtkb3duCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2Nh
bCB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKHBsdXNfbWV0YWRhdGEpIEB0
b21sKSkpKSkKKworICAgICAgICAgOzsgU3VwcG9ydCBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzIGlu
IGEgY29kZS1ibG9jayBjb250ZXh0LgorICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMtZW5hYmxl
LWNvZGUtYmxvY2stY29udGV4dC1tb2RlCisgICAgICAgICAgIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLWNvbnRleHQtbW9kZSkpCisKKyAgICAgICAgIDs7IFN1cHBvcnQgZm9yIHRhYmxlIG1vZGUu
CisgICAgICAgICAod2hlbiBtYXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZQorICAgICAgICAg
ICAobWFya2Rvd24tdHMtdGFibGUtbW9kZSkpKSkKIAogICAodHJlZXNpdC1tYWpvci1tb2RlLXNl
dHVwKQotICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1h
cmt1cCkpCisKKyAgOzsgRG8gbm90IGVuYWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5kaXJlY3Qg
YnVmZmVycyBzdWNoIGFzIHRoZSBvbmUKKyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2NrIGNvbW1h
bmRzLgorICAodW5sZXNzIChidWZmZXItYmFzZS1idWZmZXIpCisgICAgKGppdC1sb2NrLXJlZ2lz
dGVyICMnbWFya2Rvd24tdHMtLWZvbnRpZnktYmFyZS11cmkpKQorCisgICh1bmxlc3MgbWFya2Rv
d24tdHMtLXNldC11cC1pbmxpbmUKKyAgICA7OyBPcmRlciBtYXR0ZXJzOiBgbWFya2Rvd24tdHMt
LXNldC1oaWRlLW1hcmt1cCcgY2FsbHMgYGZvbnQtbG9jay1mbHVzaCcKKyAgICA7OyAob25seSBt
ZWFuaW5nZnVsIG9uY2UgYHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCcgaGFzIHdpcmVkIHVwCisg
ICAgOzsgZm9udC1sb2NrKSwgYW5kIGBtYXJrZG93bi10cy1kZWZhdWx0LWZvbGRpbmcnIGNhbGxz
IG91dGxpbmUKKyAgICA7OyBjb21tYW5kcyB0aGF0IHJlbHkgb24gYG91dGxpbmUtc2VhcmNoLWZ1
bmN0aW9uJywgd2hpY2gKKyAgICA7OyBgdHJlZXNpdC1tYWpvci1tb2RlLXNldHVwJyBpbnN0YWxs
cyBmcm9tIGB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlJy4KKyAgICAobWFya2Rvd24tdHMtLXNl
dC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICA7OyBSZXNwZWN0IHRo
ZSB1c2VyJ3MgZGVmYXVsdCBvdXRsaW5lIGZvbGRpbmcuCisgICAgKHBjYXNlIG1hcmtkb3duLXRz
LWRlZmF1bHQtZm9sZGluZworICAgICAgKCdzaG93LWFsbCAoaWdub3JlKSkKKyAgICAgICgnZm9s
ZC1hbGwgKG91dGxpbmUtaGlkZS1zdWJsZXZlbHMgMSkpCisgICAgICAoJ2ZvbGQtaGVhZGluZ3Mg
KG91dGxpbmUtc2hvdy1hbGwpCisgICAgICAgICAgICAgICAgICAgICAgKG91dGxpbmUtaGlkZS1y
ZWdpb24tYm9keSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycyAoYXJnKQorICAiSW5zdGFsbCBgbWFya2Rvd24tdHMt
bW9kZScgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgcGFyc2Vycy4KK0lmIG5lZWRlZCwgaW5zdGFsbCB0
aGUgcmVxdWlyZWQgcGFyc2VycyBmb3IgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScu
CitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBBUkcsIGlmIG5lZWRlZCwgaW5zdGFsbCBwYXJzZXJz
IGZvciBgaHRtbCcsCitgeWFtbCcsIGFuZCBgdG9tbCcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQor
ICAodW5sZXNzICh0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICdtYXJrZG93bikKKyAgICAo
dHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ21hcmtkb3duKSkKKyAgKHVubGVzcyAo
dHJlZXNpdC1sYW5ndWFnZS1hdmFpbGFibGUtcCAnbWFya2Rvd24taW5saW5lKQorICAgICh0cmVl
c2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAnbWFya2Rvd24taW5saW5lKSkKKyAgKHdoZW4g
YXJnCisgICAgKHVubGVzcyAodHJlZXNpdC1sYW5ndWFnZS1hdmFpbGFibGUtcCAnaHRtbCkKKyAg
ICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCisgICAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1
YWdlLWdyYW1tYXIgJ2h0bWwpKQorICAgICh1bmxlc3MgKHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxh
YmxlLXAgJ3lhbWwpCisgICAgICAocmVxdWlyZSAneWFtbC10cy1tb2RlKQorICAgICAgKHRyZWVz
aXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICd5YW1sKSkKKyAgICAodW5sZXNzICh0cmVlc2l0
LWxhbmd1YWdlLWF2YWlsYWJsZS1wICd0b21sKQorICAgICAgKHJlcXVpcmUgJ3RvbWwtdHMtbW9k
ZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAndG9tbCkpKSkKIAog
Ozs7IyMjYXV0b2xvYWQKIChkZWZpbmUtZGVyaXZlZC1tb2RlIG1hcmtkb3duLXRzLW1vZGUgdGV4
dC1tb2RlICJNYXJrZG93biIKLSAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFya2Rvd24gdXNp
bmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iCisgICJNYWpvciBtb2RlIGZvciBlZGl0aW5nIE1hcmtk
b3duIHVzaW5nIHRyZWUtc2l0dGVyIGdyYW1tYXIuCitOT1RFOiBTZWUgYG1hcmtkb3duLXRzLS1z
ZXQtdXAtaW5saW5lJy4iCisgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3duKQor
ICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpCisgIChpZiAoYW5k
ICh0cmVlc2l0LXJlYWR5LXAgJ21hcmtkb3duIHQpCisgICAgICAgICAgICh0cmVlc2l0LXJlYWR5
LXAgJ21hcmtkb3duLWlubGluZSB0KSkKKyAgICAgIChtYXJrZG93bi10cy0tc2V0LXVwKQorICAg
ICh3YXJuICJtYXJrZG93bi10cy1tb2RlIGNhbm5vdCBiZSBzZXQgdXA7IHVzaW5nIGZ1bmRhbWVu
dGFsLW1vZGUuCitUaGUgdHJlZS1zaXR0ZXIgcGFyc2VycyBgbWFya2Rvd24nIGFuZCBgbWFya2Rv
d24taW5saW5lJyB3ZXJlIG5vdCBmb3VuZC4KK1VzZSB0aGUgY29tbWFuZCBgbWFya2Rvd24tdHMt
bW9kZS1pbnN0YWxsLXBhcnNlcnMnIHRvIGluc3RhbGwgdGhlbS4KK1dpdGggYSBwcmVmaXggYXJn
dW1lbnQsIGl0IGNhbiBhbHNvIGluc3RhbGwgb3B0aW9uYWwgcGFyc2Vycy4iKQorICAgIChmdW5k
YW1lbnRhbC1tb2RlKSkpCiAKLSAgKHNldHEtbG9jYWwgY29tbWVudC1zdGFydCAiPCEtLSAiKQot
ICAoc2V0cS1sb2NhbCBjb21tZW50LWVuZCAiIC0tPiIpCisoZGVyaXZlZC1tb2RlLWFkZC1wYXJl
bnRzICdtYXJrZG93bi10cy1tb2RlICcobWFya2Rvd24tbW9kZSkpCiAKLSAgKHNldHEtbG9jYWwg
Zm9udC1sb2NrLWRlZmF1bHRzIG5pbAotCSAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdCAnKChkZWxpbWl0ZXIgaGVhZGluZykKLQkJCQkJICAgICAgIChwYXJhZ3JhcGgpCi0JCQkJ
CSAgICAgICAocGFyYWdyYXBoLWlubGluZSkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1iYXJmLWlm
LW5vdC1tb2RlICgmb3B0aW9uYWwgY29udGV4dCkKKyAgIlNpZ25hbCBhbiBlcnJvciBpZiB0aGUg
Y3VycmVudCBidWZmZXIgaXMgbm90IGEgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlci4KK1ByZWZp
eCB0aGUgZXJyb3IgbWVzc2FnZSB3aXRoIENPTlRFWFQuIgorICAodW5sZXNzIChkZXJpdmVkLW1v
ZGUtcCAnbWFya2Rvd24tdHMtbW9kZSkKKyAgICAodXNlci1lcnJvciAiJXNpcyB2YWxpZCBvbmx5
IGluIGBtYXJrZG93bi10cy1tb2RlJyBidWZmZXJzIgorICAgICAgICAgICAgICAgIChpZiBjb250
ZXh0IChmb3JtYXQgIiVzOiAiIGNvbnRleHQpICIiKSkpKQogCi0gIChzZXRxLWxvY2FsIHRyZWVz
aXQtc2ltcGxlLWltZW51LXNldHRpbmdzCi0gICAgICAgICAgICAgIGAoKCJIZWFkaW5ncyIgLCMn
bWFya2Rvd24tdHMtaW1lbnUtbm9kZS1wCi0gICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93
bi10cy1pbWVudS1uYW1lLWZ1bmN0aW9uKSkpCi0gIChzZXRxLWxvY2FsIHRyZWVzaXQtb3V0bGlu
ZS1wcmVkaWNhdGUgIydtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSkKKyhkZWZpbmUtbWlu
b3ItbW9kZSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZQorICAiTWlub3Ig
bW9kZSBlbmFibGVkIGlmIHBvaW50IGlzIHdpdGhpbiBhIGZlbmNlZCBjb2RlIGJsb2NrLgorVGhp
cyBlbmFibGVzIHRoZSBrZXltYXAgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1t
b2RlLW1hcCcuIgorICA6Z3JvdXAgJ21hcmtkb3duLXRzCisgIDpsaWdodGVyIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLWxpZ2h0ZXIKKyAgOmludGVyYWN0aXZlIG5pbAor
ICAobWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLXVwZGF0ZS1vdikpCiAK
LSAgKHdoZW4gKGFuZCAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bikKLSAgICAg
ICAgICAgICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpKQotICAg
ICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3duLWlubGluZSkKLSAgICAodHJlZXNpdC1w
YXJzZXItY3JlYXRlICdtYXJrZG93bikKLSAgICAobWFya2Rvd24tdHMtc2V0dXApKSkKKyhkZWZ2
YXItbG9jYWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92IG5pbCkK
IAotKGRlcml2ZWQtbW9kZS1hZGQtcGFyZW50cyAnbWFya2Rvd24tdHMtbW9kZSAnKG1hcmtkb3du
LW1vZGUpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS11
cGRhdGUtb3YgKCkKKyAgIk1hbmFnZSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4
dC1tb2RlLW92Jy4iCisgIChjb25kIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQt
bW9kZQorICAgICAgICAgKGxldCAoKGJlZyAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAnbWFy
a2Rvd24tdHMtY29kZS1iZWctbWFya2VyKSkKKyAgICAgICAgICAgICAgIChlbmQgKGdldC1jaGFy
LXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlcikpKQorICAgICAg
ICAgICAoaWYgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAg
ICAgICAgICAgICAobW92ZS1vdmVybGF5IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRl
eHQtbW9kZS1vdiBiZWcgZW5kKQorICAgICAgICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgIChtYWtlLW92ZXJs
YXkgYmVnIGVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgICAg
ICAgJ21hcmtkb3duLXRzLWluLWNvZGUtYmxvY2sgdCkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0
IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAg
ICAgICAgICAgICAgJ2V2YXBvcmF0ZSB0KQorICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rv
d24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAgICAgICAgICAgICAgICAg
ICAgICAncHJpb3JpdHkgJyhuaWwgLiAyMCkpCisgICAgICAgICAgIChvdmVybGF5LXB1dCBtYXJr
ZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdmYWNlICdtYXJrZG93bi10cy1pbi1jb2RlLWJsb2NrKSkpCisgICAgICAgICh0Cisg
ICAgICAgICAod2hlbiBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YK
KyAgICAgICAgICAgKGRlbGV0ZS1vdmVybGF5IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNv
bnRleHQtbW9kZS1vdikpKSkpCiAKLTs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gbWFya2Rvd24tdHMt
bW9kZS1tYXliZSAoKQotICAiRW5hYmxlIGBtYXJrZG93bi10cy1tb2RlJyB3aGVuIGl0cyBncmFt
bWFyIGlzIGF2YWlsYWJsZS4KLUFsc28gcHJvcG9zZSB0byBpbnN0YWxsIHRoZSBncmFtbWFyIHdo
ZW4gYHRyZWVzaXQtZW5hYmxlZC1tb2RlcycKLWlzIHQgb3IgY29udGFpbnMgdGhlIG1vZGUgbmFt
ZS4iCi0gIChkZWNsYXJlLWZ1bmN0aW9uIHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgInRy
ZWVzaXQuYyIpCi0gIChpZiAob3IgKHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgJ21hcmtk
b3duKQotICAgICAgICAgIChlcSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMgdCkKLSAgICAgICAgICAo
bWVtcSAnbWFya2Rvd24tdHMtbW9kZSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMpKQotICAgICAgKG1h
cmtkb3duLXRzLW1vZGUpCi0gICAgKGZ1bmRhbWVudGFsLW1vZGUpKSkKKyhkZWZpbmUtbWlub3It
bW9kZSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZQorICAiTWlub3IgbW9kZSB0
byBlbmFibGUgY29tbWFuZHMgaW4gZmVuY2VkIGNvZGUgYmxvY2sgY29udGV4dC4KK0lmIG5vbi1u
aWwgYW5kIGBwb2ludCcgaXMgaW4gYSBmZW5jZWQgY29kZSBibG9jaywgcnVuIGBpbmRlbnQtZm9y
LXRhYi1jb21tYW5kJywKK2BuZXdsaW5lJywgZXQuYWwuLCBpbiB0aGUgbW9kZSBvZiB0aGUgY29k
ZSBibG9jay4iCisgIDpncm91cCAnbWFya2Rvd24tdHMKKyAgOmludGVyYWN0aXZlIG5pbAorICAo
bWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stY29u
dGV4dC1tb2RlKQorICAoY29uZCAobWFya2Rvd24tdHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUK
KyAgICAgICAgIDs7IEVuYWJsZSB0aGUgbWlub3IgbW9kZSBgbWFya2Rvd24tdHMtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUnIGFuZAorICAgICAgICAgOzsgaXRzIGtleW1hcCB3aGVuIHBvaW50
IGlzIHdpdGhpbiBhIGNvZGUgYmxvY2suCisgICAgICAgICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFu
ZC1ob29rCisgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxv
Y2staW4tY29udGV4dC1tb2RlIG5pbCAnbG9jYWwpCisgICAgICAgICA7OyBJZiBgc2F2ZS1wbGFj
ZS1tb2RlJyBvciBzaW1pbGFyIGlzIHVzZWQsIHBvaW50IGNvdWxkIHN0YXJ0IHdpdGhpbgorICAg
ICAgICAgOzsgYSBjb2RlIGJsb2NrIHNvIGluaXRpYWxpemUgZnJvbSB0aGF0IHN0YXRlLgorICAg
ICAgICAgKHJ1bi13aXRoLXRpbWVyIDAuMDEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IydtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlKQorICAgICAg
ICAgOzsgRm9yIGVhY2ggZWxpZ2libGUgY29tbWFuZCwgZXhlY3V0ZSBpdCBpbiBhIGNvZGUtYmxv
Y2sgY29udGV4dCwKKyAgICAgICAgIDs7IG90aGVyd2lzZSBpbiB0aGUgYG1hcmtkb3duLXRzLW1v
ZGUnIGJ1ZmZlcidzIGNvbnRleHQuCisgICAgICAgICAoYWRkLWhvb2sgJ3ByZS1jb21tYW5kLWhv
b2sKKyAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1p
bi1jb2RlLWJsb2NrIG5pbCAnbG9jYWwpCisgICAgICAgICA7OyBQcnVuZSBzdGFsZSBjb2RlIGJs
b2NrIG92ZXJsYXlzIHdoZW4gdGhlIGhvc3QgcGFyc2UgdHJlZQorICAgICAgICAgOzsgY2hhbmdl
cyAoZS5nLiwgd2hlbiBmZW5jZWQgY29kZSBibG9jayBkZWxpbWl0ZXJzIGFyZQorICAgICAgICAg
OzsgZGVsZXRlZCBidXQgdGhlIG92ZXJsYXkgZnJvbSBhIHByaW9yIGZvbnRpZmljYXRpb24gcmVt
YWlucykuCisgICAgICAgICAodHJlZXNpdC1wYXJzZXItYWRkLW5vdGlmaWVyCisgICAgICAgICAg
dHJlZXNpdC1wcmltYXJ5LXBhcnNlcgorICAgICAgICAgICMnbWFya2Rvd24tdHMtLWhvc3QtcmFu
Z2VzLW5vdGlmaWVyKSkKKyAgICAgICAgKHQKKyAgICAgICAgIChyZW1vdmUtaG9vayAncG9zdC1j
b21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUt
Y29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUgJ2xvY2FsKQorICAgICAgICAgKHJlbW92ZS1ob29r
ICdwcmUtY29tbWFuZC1ob29rCisgICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0t
bWF5YmUtcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayAnbG9jYWwpCisgICAgICAgICAodHJlZXNp
dC1wYXJzZXItcmVtb3ZlLW5vdGlmaWVyCisgICAgICAgICAgdHJlZXNpdC1wcmltYXJ5LXBhcnNl
cgorICAgICAgICAgICMnbWFya2Rvd24tdHMtLWhvc3QtcmFuZ2VzLW5vdGlmaWVyKSkpKQorCiso
ZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZQorICAiTWlub3IgbW9k
ZSBlbmFibGVkIGlmIHBvaW50IGlzIHdpdGhpbiBhIHRhYmxlLgorVGhpcyBlbmFibGVzIHRoZSBr
ZXltYXAgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbWFwJy4iCisgIDpncm91cCAnbWFya2Rv
d24tdHMKKyAgOmxpZ2h0ZXIgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZS1saWdodGVyCisgIDpp
bnRlcmFjdGl2ZSBuaWwKKyAgKG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLXVwZGF0ZS1vdikp
CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YgbmlsKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtZ2V0LW92IChwb3MpCisgICJSZXR1cm4g
dGhlIGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBvdmVybGF5IGF0IFBPUy4iCisgIChzZXEt
ZmluZCAobGFtYmRhIChvdikKKyAgICAgICAgICAgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG92ICdt
YXJrZG93bi10cy1pbi10YWJsZSkKKyAgICAgICAgICAgICAgICBvdikpCisgICAgICAgICAgICAo
b3ZlcmxheXMtYXQgcG9zKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtdGljay11cGRh
dGUgKHBvcykKKyAgIlVwZGF0ZSB0aGUgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnIG92ZXJs
YXkgdGljayBhdCBQT1MuCitJZiB0aGUgb3ZlcmxheSBpcyBub3QgZm91bmQsIGRvIG5vdGhpbmcu
IgorICAod2hlbi1sZXQqICgob3YgKG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLWdldC1vdiBw
b3MpKSkKKyAgICAob3ZlcmxheS1wdXQgb3YKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRz
LWluLXRhYmxlLXRpY2sKKyAgICAgICAgICAgICAgICAgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10
aWNrKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLXRpY2stc3RhbGUtcCAocG9zKQor
ICAiUmV0dXJuIG5vbi1uaWwgaWYgdGhlIHRhYmxlIGF0IFBPUyBtaWdodCBoYXZlIGNoYW5nZWQu
CitJdCBpcyB1cCB0byB0aGlzIGZ1bmN0aW9uJ3MgY2FsbGVycyB0byBjYWxsCitgbWFya2Rvd24t
dHMtLXRhYmxlLXRpY2stdXBkYXRlJy4iCisgICh3aGVuLWxldCogKChvdiAobWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtZ2V0LW92IHBvcykpKQorICAgIChub3QgKGVxIChvdmVybGF5LWdldCBv
diAnbWFya2Rvd24tdHMtaW4tdGFibGUtdGljaykKKyAgICAgICAgICAgICAoYnVmZmVyLWNoYXJz
LW1vZGlmaWVkLXRpY2spKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUt
dXBkYXRlLW92ICgpCisgICJNYW5hZ2UgYG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92Jy4i
CisgIChjb25kIChtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlCisgICAgICAgICAod2hlbi1sZXQq
ICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAg
ICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgICAgICAgKGJl
ZyAodHJlZXNpdC1ub2RlLXN0YXJ0IHRhYmxlKSkKKyAgICAgICAgICAgICAgICAgICAgIChlbmQg
KHRyZWVzaXQtbm9kZS1lbmQgdGFibGUpKSkKKyAgICAgICAgICAgKGlmIG1hcmtkb3duLXRzLS1p
bi10YWJsZS1tb2RlLW92CisgICAgICAgICAgICAgICA7OyBNb3ZlIHRoZSBvdmVybGF5LCBpZiBu
ZWVkZWQsIGFuZCByZXNldCB0aGUgdGljayBpZiBzby4KKyAgICAgICAgICAgICAgICh3aGVuIChu
b3QgKGVxIChvdmVybGF5LXN0YXJ0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnKSkKKyAgICAgICAgICAgICAgICAgKG1vdmUt
b3ZlcmxheSBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdiBiZWcgZW5kKQorICAgICAgICAg
ICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1pbi10YWJsZS10aWNrIG5pbCkp
CisgICAgICAgICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAg
ICAgICAgICAgICAgICAobWFrZS1vdmVybGF5IGJlZyBlbmQgbmlsIHQgbmlsKSkpCisgICAgICAg
ICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAgICAg
ICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWluLXRhYmxlIHQpCisgICAgICAgICAgIChvdmVy
bGF5LXB1dCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAgICAgICAg
ICAgICAgJ2V2YXBvcmF0ZSB0KQorICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eSAnKG5p
bCAuIDIwKSkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1t
b2RlLW92CisgICAgICAgICAgICAgICAgICAgICAgICAnZmFjZSAnbWFya2Rvd24tdHMtaW4tdGFi
bGUpCisgICAgICAgICAgICkpCisgICAgICAgICh0CisgICAgICAgICAod2hlbiBtYXJrZG93bi10
cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgbWFya2Rvd24t
dHMtLWluLXRhYmxlLW1vZGUtb3YpKSkpKQorCisoZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rvd24t
dHMtdGFibGUtbW9kZQorICAiTWlub3IgbW9kZSB0byBlbmFibGUgY29tbWFuZHMgaW4gdGFibGVz
LgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIHRhYmxlLCBlbmFibGUKK2BtYXJrZG93
bi10cy1pbi10YWJsZS1tb2RlJy4iCisgIDpncm91cCAnbWFya2Rvd24tdHMKKyAgOmludGVyYWN0
aXZlIG5pbAorICAobWFya2Rvd24tdHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRh
YmxlLW1vZGUpCisgIChjb25kIChtYXJrZG93bi10cy10YWJsZS1tb2RlCisgICAgICAgICA7OyBF
bmFibGUgdGhlIG1pbm9yIG1vZGUgYG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUnIGFuZAorICAg
ICAgICAgOzsgaXRzIGtleW1hcCB3aGVuIHBvaW50IGlzIHdpdGhpbiBhIGNvZGUgYmxvY2suCisg
ICAgICAgICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rCisgICAgICAgICAgICAgICAgICAg
IydtYXJrZG93bi10cy0tZW5hYmxlLWluLXRhYmxlLW1vZGUgbmlsICdsb2NhbCkKKyAgICAgICAg
IDs7IElmIGBzYXZlLXBsYWNlLW1vZGUnIG9yIHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQgY291bGQg
c3RhcnQgd2l0aGluCisgICAgICAgICA7OyBhIHRhYmxlLCBzbyBpbml0aWFsaXplIGZyb20gdGhh
dCBzdGF0ZS4KKyAgICAgICAgIChydW4td2l0aC10aW1lciAwLjAxIG5pbAorICAgICAgICAgICAg
ICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWVuYWJsZS1pbi10YWJsZS1tb2RlKSkKKyAgICAg
ICAgKHQKKyAgICAgICAgIChyZW1vdmUtaG9vayAncG9zdC1jb21tYW5kLWhvb2sKKyAgICAgICAg
ICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtaW4tdGFibGUtbW9kZSAnbG9jYWwp
KSkpCiAKIDs7OyMjI2F1dG9sb2FkCiAod2hlbiAoYm91bmRwICd0cmVlc2l0LW1ham9yLW1vZGUt
cmVtYXAtYWxpc3QpCi0gIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxcLm1kXFwn
IiAuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUpKQotICA7OyBUbyBiZSBhYmxlIHRvIHRvZ2dsZSBi
ZXR3ZWVuIGFuIGV4dGVybmFsIHBhY2thZ2UgYW5kIGNvcmUgdHMtbW9kZToKKyAgKGFkZC10by1s
aXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwubWRcXCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCisg
IChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxcLm1hcmtkb3duXFwnIiAuIG1hcmtk
b3duLXRzLW1vZGUpKQorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZHhc
XCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCiAgIChhZGQtdG8tbGlzdCAndHJlZXNpdC1tYWpvci1t
b2RlLXJlbWFwLWFsaXN0CiAgICAgICAgICAgICAgICAnKG1hcmtkb3duLW1vZGUgLiBtYXJrZG93
bi10cy1tb2RlKSkpCiAKLS0gCjIuNTQuMAoK
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 1 May 2026 08:56:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 01 04:56:02 2026
Received: from localhost ([127.0.0.1]:34145 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIjfF-0004Mc-Iz
	for submit <at> debbugs.gnu.org; Fri, 01 May 2026 04:56:02 -0400
Received: from mail.eshelyaron.com ([107.175.124.16]:42670 helo=eshelyaron.com)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <me@HIDDEN>) id 1wIjfB-0004Lv-G9
 for 80740 <at> debbugs.gnu.org; Fri, 01 May 2026 04:55:59 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com;
 s=mail; t=1777625756;
 bh=Gz9GdeiK3lIcnxlBCCqf64hjxwciKTwsTmFKZDV4Hnk=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=lzHmLutodGKcQbm4heLTBZjsoc5/FDtfItaCGtEJmwszWSGwwomI2kUSRyiRrMZyk
 e89xdMRlU8FjUhULEoqzKvPqhjLMxx+3P0sx6yyCjkRoJr09loscSqOY3uggVv1YZy
 rI6Lv8mH1LO5Jc01TG7MNWCdSj2+pl93FOXZhid0m+eL0VOKtw18+FLezNpjYHlOCo
 mwawz75c1CP0P7753JMiEWzEDYQ5ftibYXqvlhlqIrM+MS3fLG8GxKIuagQ6hycj73
 dM2EQgTDXpKBxTmrV6OTzSEZK7FAIVySZdU7k55PeFtOTyurkUaMTbwD7SvQ+YCNED
 P8YFQKKLWPIRg==
From: Eshel Yaron <me@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <m2ik982h8d.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN>
 <86ldekiucu.fsf@HIDDEN> <m2tst8jnst.fsf@HIDDEN>
 <86qzocgu9t.fsf@HIDDEN> <m2fr4ldxl3.fsf@HIDDEN>
 <m2ik982h8d.fsf@HIDDEN>
Date: Fri, 01 May 2026 10:55:50 +0200
Message-ID: <871pfvtso9.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 80740
Cc: Eli Zaretskii <eliz@HIDDEN>, 80740 <at> debbugs.gnu.org, casouri@HIDDEN,
 shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:

> +(defun markdown-ts-mode-install-parsers (arg)
> +  "Install `markdown-ts-mode' tree-sitter language parsers.
> +If needed, install the required parsers for `markdown' and `markdown-inline'.
> +With a prefix argument, ARG, if needed, install parsers for `html',
> +`yaml', and `toml'."
> +  (interactive "P")
> +  (unless (treesit-ready-p 'markdown t)
> +    (treesit-install-language-grammar 'markdown))

Note that this `treesit-ready-p' is not quite right, because
treesit-ready-p is sensitive to the current buffer.  Namely, this will
return nil if you invoke this command in a large buffer of any kind,
even if the markdown parser is already installed.
Yes, treesit-ready-p is confusing.  See also bug#80909.

> +  (unless (treesit-ready-p 'markdown-inline t)
> +    (treesit-install-language-grammar 'markdown-inline))
> +  (when arg
> +    (unless (treesit-ready-p 'html t)
> +      (require 'html-ts-mode)
> +      (treesit-install-language-grammar 'html))
> +    (unless (treesit-ready-p 'yaml t)
> +      (require 'yaml-ts-mode)
> +      (treesit-install-language-grammar 'yaml))
> +    (unless (treesit-ready-p 'toml t)
> +      (require 'toml-ts-mode)
> +      (treesit-install-language-grammar 'toml))))
>  
>  ;;;###autoload
>  (define-derived-mode markdown-ts-mode text-mode "Markdown"
> -  "Major mode for editing Markdown using tree-sitter grammar."
> +  "Major mode for editing Markdown using tree-sitter grammar.
> +NOTE: See `markdown-ts--set-up-inline'."
> +  (if (and (treesit-ensure-installed 'markdown)
> +           (treesit-ensure-installed 'markdown-inline))
> +      (markdown-ts--set-up)

Here there is another, related problem: since commit d9691858,
treesit-ensure-installed no longer checks treesit-max-buffer-size, 
so this will try to create a parser even in a buffer that is too big.
(This problem is common to many TS-modes in core.)

FWIW, my suggestion in bug#80909 was to move the buffer size check out
of treesit-ready-p and into treesit-parser-create, which would have
nullified both of these issues.


Best,

Eshel




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

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


Received: (at 80740) by debbugs.gnu.org; 30 Apr 2026 23:47:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 30 19:47:53 2026
Received: from localhost ([127.0.0.1]:59067 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIb6m-0006Zm-Hh
	for submit <at> debbugs.gnu.org; Thu, 30 Apr 2026 19:47:53 -0400
Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c]:44083)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1wIb6g-0006Yw-Uj
 for 80740 <at> debbugs.gnu.org; Thu, 30 Apr 2026 19:47:50 -0400
Received: by mail-ua1-x92c.google.com with SMTP id
 a1e0cc1a2514c-95cda04cfd0so336008241.0
 for <80740 <at> debbugs.gnu.org>; Thu, 30 Apr 2026 16:47:46 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1777592866; cv=none;
 d=google.com; s=arc-20240605;
 b=LZ5svAoGieehYMKmwk7YEcRWpC6Rfbs6XuUmxsMaATyeNUVdZwtzsU9S7sx5hYV9z5
 tBFJ2cOgVITnGgFqnUN6DjudAlpARzgn2eWUaEzPrnvg4u8c3vTwE4E96TvIyzmxMVBX
 pV3U5UnqtW5LZzoeTJTUF8VPOY61QwMJ9gpIZkws3IYs4LVkoIyAACugI8/U9DS+bHlC
 Ar/osGaEnRd/vSxv3l2HmKjedVxFhwFwuKy5NauDubNaKkk+jx5ep4huHO3Tua3Jv15o
 pf/YP4ocYcCvv5o2D2T0Np8iJISZYF7+Eb+ndTd9SesqxYy1DkPLGqLUCiTRigEyppVy
 sZOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=eXkw15+yq+vdwRTKP+2RiZ+2j5wmPP0EtxY0MHiYM4Q=;
 fh=HfnI/+1r/B3q7T6Djpf//NMCId+4lph1lfzehgTh1fU=;
 b=QAKCmNO0eSiVq+fD9FirkSJv9UxTrOy949CZ6nirJnNMMnX3ykW+VeuYAM3AiLRZFO
 EWEht1+IpQTG5Z8jf8HAfBzCl1ruGP8B3b/Isi6fzKsssCOq+heXLq5NexPu8PU0EO6d
 bzpxB0TzegdyFenMKqGqFj+zKnM7KdajG34mEigmJ55OfBUm5i+jDnBvD6XlrEkHp21v
 w5250Jds8ARtF+EWJKyJIbYF+zMVHBTOHRA3Cw78XwvFSk44ij4aY/1/dBMxWg2W4p9T
 Pkj2TBUJYUcQ5qPxXN2s95dJyR8q4f8qp5j9KTqjmeg1iOYMLN1gMSgGrfRzMRpmVeZI
 ZmHw==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777592866; x=1778197666; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=eXkw15+yq+vdwRTKP+2RiZ+2j5wmPP0EtxY0MHiYM4Q=;
 b=VBt4i3qzQA+p9YPoK3mJmUYCPWFDaUjN6Rr+d4qBIVIV6kAXUFlZfsneQJcPifnOCH
 Xwx/FnDiPTOQ5F2FcaSevzIJaIX73mHLKbvxDglY5lSvCi3cnTiaD6eS3247FQOS1Wnn
 uVAy32sicA/4E2ttXKr6Cv3py97jGfocBzTy8fx65ARD+WHcaZfu1+IZYWucRjXo9jYQ
 pbt5I//mqtkxy4/gPTWaPi8d8D3rShD3eOMvZ2jyYcwNR8zhtFhlKmeocWJ6gYD5sTnz
 mwa43g7ns8m7Zzg+AvRvHGRB/3S22sw6uBrDINmZf9JdR2geIf0jARrAwBQcQyFRsU8R
 Iz1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777592866; x=1778197666;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=eXkw15+yq+vdwRTKP+2RiZ+2j5wmPP0EtxY0MHiYM4Q=;
 b=FKZ6U1PzUlfYe5gDZ6Bfbn8fXb/aMFSVOBlxxBdbi6ZlAQB3TgBNJ3JpTAEawK5Z2f
 +joRpxGid7v+mNRHZNAqjLndO1Ge9y75DDPPga39aToxCxd8myYOvYI2VMkCBO1S2PTZ
 Di4yFeJiBFuahDoKiwp5xehjTf2xCMfQzalwhZ3/HzRJd06eIMZcwl0fVcs1yEdREiWf
 p4h/6QbzxFBk5bpEEpybOVaOZxF5o5rPY0OSdtsQJ+YCYwuot9VCN3HiIltXHjva+rjW
 7dJKd4irL/GTrF/sVZ6q+3bldvvlgyWvtu9bWC+PFbJT0KSjJ2fpSM5PSTN9encl0GP5
 MzTw==
X-Forwarded-Encrypted: i=1;
 AFNElJ/teH4r/ZFMVlyzroUISXGAc8phQmQ7zsjX5Au3zZqak2F1LEwDhBVHXYJAjI30hwW5cfMLuw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxahRVI5oJe2KEaaVi1djbOND1906u+/MvbWNc+SWq+LQpE/ZLj
 0OX1tb0A5dNWPXa4/CA72i0Ysu6FidUQ6+TSxLPLMO39IAig2HNN+V2abDucVRXb8sF2QAxwRb4
 oFXrK8zR3G9X8cRQYzNVShQNnmPcbGro=
X-Gm-Gg: AeBDiet/5O8TCVZOfDFUpAg3akC3beqxHDUo3hcbSq8SEN4gIPb8Glu9tu3FDG09h4V
 Skx6dpFeVFVLuvvgzOSYSuq5kFd8EYvsKXa+oaa6TEvQqMya+/9fvcbFOK1FwYYfSEkYWIkzoWo
 TrIXk8xGt4DX5SmEpJZYU+sLedhoRshO1asmzg0UinH3ihKPpiMqex4QwkLOFKYKQJQbXKnutc7
 0TPtU2Ctq6AIqG9XA/pRVfRVVxVjHRV+Ik/cHryfhB+cVm0Je6MVyYJedR22EeRqT2eLt+CWbMx
 u3WiEPfhr5ATHtHr+KqLH9pEzEARtMBxizAfx33YElhMLVCu+MpFRqP8RarcZ4ZJGnGa2zg7z9t
 jd1mX7MevUPXISvcqVtNjGPS9NHYm+BvEYFa/KLXRUw/TYMXPxIXty8JmIw==
X-Received: by 2002:a05:6102:688d:b0:60c:fe65:7dbd with SMTP id
 ada2fe7eead31-62ad9f3934fmr3312732137.5.1777592866231; Thu, 30 Apr 2026
 16:47:46 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN> <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN> <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN> <m2fr4ldxl3.fsf@HIDDEN>
 <m2ik982h8d.fsf@HIDDEN>
In-Reply-To: <m2ik982h8d.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Thu, 30 Apr 2026 19:47:35 -0400
X-Gm-Features: AVHnY4KrHXNo1gnYXOYh9FjnhYDr0Iy7QDocKNzSoCcSlIZOnwIY9R-DXXB2qHU
Message-ID: <CAN+1HbqwOyQBAPpH9e6awLnf-JaaW2FgKZ7ur_PeN=Y0_mpRhQ@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000058d8cc0650b61762"
X-Spam-Score: 2.0 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  On Thu, Apr 30, 2026 at 6:52 PM Rahul Martim Juliato wrote:
    > Rahul Martim Juliato writes: > > > Eli Zaretskii writes: > > > >>> From:
    Rahul Martim Juliato > >>> Cc: Yuan Fu , rahuljuliato@HIDDEN, > >>> shipmints@HIDDEN,
    80740 <at> debbugs.gnu.org > >> [...] 
 
 Content analysis details:   (2.0 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (shipmints[at]gmail.com)
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:92c listed in]
                             [list.dnswl.org]
  0.0 HTML_MESSAGE           BODY: HTML included in message
  1.0 FREEMAIL_REPLY         From and body contain different freemails
X-Debbugs-Envelope-To: 80740
Cc: Eli Zaretskii <eliz@HIDDEN>, 80740 <at> debbugs.gnu.org, casouri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

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

On Thu, Apr 30, 2026 at 6:52=E2=80=AFPM Rahul Martim Juliato <rahuljuliato@=
gmail.com>
wrote:

> Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:
>
> > Eli Zaretskii <eliz@HIDDEN> writes:
> >
> >>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
> >>> Cc: Yuan Fu <casouri@HIDDEN>,  rahuljuliato@HIDDEN,
> >>>   shipmints@HIDDEN,  80740 <at> debbugs.gnu.org
> >>> Date: Sat, 18 Apr 2026 12:22:42 -0300
> >>>
> >>> Eli Zaretskii <eliz@HIDDEN> writes:
> >>>
> >>> >> From: Yuan Fu <casouri@HIDDEN>
> >>> >> Date: Fri, 17 Apr 2026 18:18:16 -0700
> >>> >> Cc: Eli Zaretskii <eliz@HIDDEN>,
> >>> >>  shipmints@HIDDEN,
> >>> >>  80740 <at> debbugs.gnu.org
> >>> >>
> >>> >> Cool, thanks! I don=E2=80=99t see it merged though, is it merged?
> >>> >
> >>> > No.  From what Rahul said, I deduced that an updated patch is in th=
e
> >>> > works.  Did I misunderstand?
> >>>
> >>> Hi everyone,
> >>>
> >>> The last patch I sent
> >>> (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D80740#37) is in good
> >>> shape, and all previous comments have been addressed.
> >>>
> >>> However, since we decided to give it another week, we identified thre=
e
> >>> small edge-case bugs that we're currently working on.
> >>>
> >>> If you're willing to wait, we can send a refined update around the
> >>> middle of next week.
> >>
> >> Fine with me, will wait.
> >>
> >>> St=C3=A9phane is also working on a separate patch with additional
> >>> features. That will be submitted independently (I won't spoil it, but
> >>> it's good stuff).
> >>>
> >>> I'm also working on a test file to ensure that future changes to this
> >>> mode (including improvements or grammar updates) don't introduce
> >>> regressions, and that any issues can be detected and diagnosed early.
> >>> This will also be submitted separately.
> >>
> >> TIA.
> >
> > Hi Eli,
> >
> > Just a quick update: we're almost there, but will likely need a couple
> > more days.
> >
> > In addition to the fixes, we're also finishing up table editing support=
.
> >
> > We are now using with-work-buffer, as the upstream issues have been
> > resolved. We also moved to a cleaner implementation for the table
> > handling logic.
> >
> > We should have the updated patch ready very soon.
> >
> > Thanks for your patience.
>
>
> Hi Eli,
>
> Thanks again for your patience.
>
> The work now covers all the features we originally planned for this
> overhaul, and the implementation is complete.
>
> Since the last revision, we added table editing support, including row
> and column manipulation, alignment, navigation, and CSV/TSV import and
> export helpers.
>
> The companion file (markdown-ts-mode-x.el) is also ready, providing
> table-of-contents generation and conversion/export commands using common
> external tools such as Pandoc, cmark, cmark-gfm, and markdown.pl.
>
> We also addressed the edge cases discussed earlier and made several
> refinements to the implementation.
>
> A special thanks to St=C3=A9phane for all the work on this, especially ar=
ound
> the table support, TOC, exporters, and refinements.
>
> Please find the updated patch attached.
>

Yuan, I think you were in the "hot seat" for this patch.  All your treesit
work was leveraged pretty heavily and I think we did it right.

Ping us with any questions.

-St=C3=A9phane

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

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Thu, Apr 30, 2026 at 6:52=E2=80=AFPM Rahul Martim Juliato &lt;<a href=3D=
"mailto:rahuljuliato@HIDDEN">rahuljuliato@HIDDEN</a>&gt; wrote:</span=
></div></div><div class=3D"gmail_quote gmail_quote_container"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">Rahul Martim Juliato &lt;<a href=3D"ma=
ilto:rahuljuliato@HIDDEN" target=3D"_blank">rahuljuliato@HIDDEN</a>&g=
t; writes:<br>
<br>
&gt; Eli Zaretskii &lt;<a href=3D"mailto:eliz@HIDDEN" target=3D"_blank">el=
iz@HIDDEN</a>&gt; writes:<br>
&gt;<br>
&gt;&gt;&gt; From: Rahul Martim Juliato &lt;<a href=3D"mailto:rahuljuliato@=
gmail.com" target=3D"_blank">rahuljuliato@HIDDEN</a>&gt;<br>
&gt;&gt;&gt; Cc: Yuan Fu &lt;<a href=3D"mailto:casouri@HIDDEN" target=3D=
"_blank">casouri@HIDDEN</a>&gt;,=C2=A0 <a href=3D"mailto:rahuljuliato@gm=
ail.com" target=3D"_blank">rahuljuliato@HIDDEN</a>,<br>
&gt;&gt;&gt;=C2=A0 =C2=A0<a href=3D"mailto:shipmints@HIDDEN" target=3D"_=
blank">shipmints@HIDDEN</a>,=C2=A0 <a href=3D"mailto:80740@HIDDEN=
rg" target=3D"_blank">80740 <at> debbugs.gnu.org</a><br>
&gt;&gt;&gt; Date: Sat, 18 Apr 2026 12:22:42 -0300<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Eli Zaretskii &lt;<a href=3D"mailto:eliz@HIDDEN" target=3D"_b=
lank">eliz@HIDDEN</a>&gt; writes:<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; &gt;&gt; From: Yuan Fu &lt;<a href=3D"mailto:casouri@HIDDEN=
" target=3D"_blank">casouri@HIDDEN</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; Date: Fri, 17 Apr 2026 18:18:16 -0700<br>
&gt;&gt;&gt; &gt;&gt; Cc: Eli Zaretskii &lt;<a href=3D"mailto:eliz@HIDDEN"=
 target=3D"_blank">eliz@HIDDEN</a>&gt;,<br>
&gt;&gt;&gt; &gt;&gt;=C2=A0 <a href=3D"mailto:shipmints@HIDDEN" target=
=3D"_blank">shipmints@HIDDEN</a>,<br>
&gt;&gt;&gt; &gt;&gt;=C2=A0 <a href=3D"mailto:80740 <at> debbugs.gnu.org" target=
=3D"_blank">80740 <at> debbugs.gnu.org</a><br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Cool, thanks! I don=E2=80=99t see it merged though, i=
s it merged?<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; No.=C2=A0 From what Rahul said, I deduced that an updated=
 patch is in the<br>
&gt;&gt;&gt; &gt; works.=C2=A0 Did I misunderstand?<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Hi everyone,<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; The last patch I sent<br>
&gt;&gt;&gt; (<a href=3D"https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D80=
740#37" rel=3D"noreferrer" target=3D"_blank">https://debbugs.gnu.org/cgi/bu=
greport.cgi?bug=3D80740#37</a>) is in good<br>
&gt;&gt;&gt; shape, and all previous comments have been addressed.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; However, since we decided to give it another week, we identifi=
ed three<br>
&gt;&gt;&gt; small edge-case bugs that we&#39;re currently working on.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; If you&#39;re willing to wait, we can send a refined update ar=
ound the<br>
&gt;&gt;&gt; middle of next week.<br>
&gt;&gt;<br>
&gt;&gt; Fine with me, will wait.<br>
&gt;&gt;<br>
&gt;&gt;&gt; St=C3=A9phane is also working on a separate patch with additio=
nal<br>
&gt;&gt;&gt; features. That will be submitted independently (I won&#39;t sp=
oil it, but<br>
&gt;&gt;&gt; it&#39;s good stuff).<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; I&#39;m also working on a test file to ensure that future chan=
ges to this<br>
&gt;&gt;&gt; mode (including improvements or grammar updates) don&#39;t int=
roduce<br>
&gt;&gt;&gt; regressions, and that any issues can be detected and diagnosed=
 early.<br>
&gt;&gt;&gt; This will also be submitted separately.<br>
&gt;&gt;<br>
&gt;&gt; TIA.<br>
&gt;<br>
&gt; Hi Eli,<br>
&gt;<br>
&gt; Just a quick update: we&#39;re almost there, but will likely need a co=
uple<br>
&gt; more days.<br>
&gt;<br>
&gt; In addition to the fixes, we&#39;re also finishing up table editing su=
pport.<br>
&gt;<br>
&gt; We are now using with-work-buffer, as the upstream issues have been<br=
>
&gt; resolved. We also moved to a cleaner implementation for the table<br>
&gt; handling logic.<br>
&gt;<br>
&gt; We should have the updated patch ready very soon.<br>
&gt;<br>
&gt; Thanks for your patience.<br>
<br>
<br>
Hi Eli,<br>
<br>
Thanks again for your patience.<br>
<br>
The work now covers all the features we originally planned for this<br>
overhaul, and the implementation is complete.<br>
<br>
Since the last revision, we added table editing support, including row<br>
and column manipulation, alignment, navigation, and CSV/TSV import and<br>
export helpers.<br>
<br>
The companion file (markdown-ts-mode-x.el) is also ready, providing<br>
table-of-contents generation and conversion/export commands using common<br=
>
external tools such as Pandoc, cmark, cmark-gfm, and <a href=3D"http://mark=
down.pl" rel=3D"noreferrer" target=3D"_blank">markdown.pl</a>.<br>
<br>
We also addressed the edge cases discussed earlier and made several<br>
refinements to the implementation.<br>
<br>
A special thanks to St=C3=A9phane for all the work on this, especially arou=
nd<br>
the table support, TOC, exporters, and refinements.<br>
<br>
Please find the updated patch attached.<br></blockquote><div><br></div><div=
 class=3D"gmail_default" style=3D"font-family:monospace">Yuan, I think you =
were in the &quot;hot seat&quot; for this patch.=C2=A0 All your treesit wor=
k was leveraged pretty heavily and I think we did it right.</div><div class=
=3D"gmail_default" style=3D"font-family:monospace"><br></div><div class=3D"=
gmail_default" style=3D"font-family:monospace">Ping us with any questions.<=
/div><div class=3D"gmail_default" style=3D"font-family:monospace"><br></div=
><div class=3D"gmail_default" style=3D"font-family:monospace">-St=C3=A9phan=
e=C2=A0</div></div></div>

--00000000000058d8cc0650b61762--




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

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


Received: (at 80740) by debbugs.gnu.org; 30 Apr 2026 22:53:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 30 18:53:01 2026
Received: from localhost ([127.0.0.1]:58391 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wIaFh-0000It-BN
	for submit <at> debbugs.gnu.org; Thu, 30 Apr 2026 18:53:01 -0400
Received: from mail-dl1-x1232.google.com ([2607:f8b0:4864:20::1232]:60641)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wIaFe-0000IU-Am
 for 80740 <at> debbugs.gnu.org; Thu, 30 Apr 2026 18:52:58 -0400
Received: by mail-dl1-x1232.google.com with SMTP id
 a92af1059eb24-12c1a170a50so1983027c88.0
 for <80740 <at> debbugs.gnu.org>; Thu, 30 Apr 2026 15:52:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1777589577; x=1778194377; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=0GdLR7UQZg3WrrCjF1u9vD9EmLUmZQaJZuUJd5sFO1k=;
 b=bQK/3YYvKoUgW3qJLwt8bMWizHHvYTtLrlU07p8dN6umc3Pa0VE1lczh2PwzMBfiQm
 2HL32MRgKqwmt2k8teh8Y4VvGU3pDSjQoZCpeKG30b9GGgMmrUGVdEUTJxMnjc+shtL1
 kQeTIUkXy7hXlwFuaG2FfaEhmGOEj5aPFmyrIrPlwqgrl5FrMq0yWMnVQ+u28bIvsV2e
 P+u68xSUV37tcAJF2fzbRhff1WjZtpEv4/FSVPDI4zen0Bb15737tzjncGORHWwToU5T
 mfL0x+MSknDv+FRER52UePTQ/xpjB4Eg1mzMy4wzFjqSscGmmE6W7xkEirsKFNIS/57C
 FJQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1777589577; x=1778194377;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=0GdLR7UQZg3WrrCjF1u9vD9EmLUmZQaJZuUJd5sFO1k=;
 b=O5q4pk9YKpE23kjcBlnQ/lvUw6HRWWyaTwI8uqOVCFJ7EiayKslrupRRn/HKiQ/Y6f
 cGVLEi8bNZaUHtV32BqC61JeiC5yH8kGmfqE/s0/8eAJevOXZxK4JlznXoiSeem/FGYe
 rtFOFXFU1FW/pSdwSsqFs+MHIRSrhNaeQbdroPYM0UMRosNep0sMbClnF0ll4m+ZkBV9
 /bM7R7tWwhpKn/FABGnJlRBE/j4mTIb/1mFxmBTYSxipbPadvd6IG2ydfmBrsp5fib0s
 NKdfte763tJl0HYTtkqnQz8tLHqZ27qKbcgj3mkCQvmODLMHTTEBkvDq9z72GMOKw0Dd
 MiHA==
X-Forwarded-Encrypted: i=1;
 AFNElJ+Ud2pgd3exuBp33A1OsocquoM7TGx8fwlRDKWru07rtgJkVRXjpV0D2pgROSJih70r+b654w==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxD6LfSxECzWgCm2r2wcj7rU3e6pTj+VpR+Xz/1A7CCwmfQOG5S
 wJkItPDCWL1ls+Qk9ivPlRE3yUxlLfY1tG1S0ghWwFLkNUbd3+Qh+vp0UunAjlvN4SE=
X-Gm-Gg: AeBDieuk8hyCFRvwbZBXJtzWcZVCLbx2uumVeJ4SW2Y7x7NYg6eaxhHhmaVbaKtESiB
 IGBxZGYVn/MNdvfnue2dAtsNOL2WE4H3nEatGfyoXhkzfeNlOcPMjFZPg6x973mksT0jxWNeslr
 yqayZVaoWP9EfhYu3CI/Gluj/0r0kF+ZH6YZDfvtC/sqSRj4mbjBW/EAoMNO0SpFjxgQKFWoRb1
 nJGEKuR4NbJfLQRTcLgq4En0qGETdZkVhYyXdagO7NC3H74HFtE61pddN/SGNBciIg8eA2Mxy7q
 wEHk7zfetAiwqEWqz0jt/faDrwOavJ9Ow78FwJofClFc7kqWNlNxhe7iXOeTl8RtsthFtmuMha0
 R45Fbyp97mIya5R3U4lPjtl3OcOapmM0M1bX1QoYHwyl9gAKng33fJh9I+0q9doq1RYdBazA5OJ
 YgO/OGyUrGuiY/xhSiTOEgS3dF1aolRedDn0jLZb4oOE9HpB6cvBFCyH+tCTWXntyAFcelA/KEC
 nP8z6sGd/9ULX9kXXZ/Auf7ww/DZtyXU4zMRpsFwy8jwGWyKJK+Dxch
X-Received: by 2002:a05:7022:6897:b0:12c:8b9:71d9 with SMTP id
 a92af1059eb24-12deacfefb8mr2446932c88.27.1777589576326; 
 Thu, 30 Apr 2026 15:52:56 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-29.dial-up.telesp.net.br.
 [201.93.59.29]) by smtp.gmail.com with ESMTPSA id
 a92af1059eb24-12df8279e57sm610874c88.3.2026.04.30.15.52.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 30 Apr 2026 15:52:55 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <m2fr4ldxl3.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
 <m2fr4ldxl3.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Thu, 30 Apr 2026 19:52:50 -0300
Message-ID: <m2ik982h8d.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: casouri@HIDDEN, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

Rahul Martim Juliato <rahuljuliato@HIDDEN> writes:

> Eli Zaretskii <eliz@HIDDEN> writes:
>
>>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
>>> Cc: Yuan Fu <casouri@HIDDEN>,  rahuljuliato@HIDDEN,
>>>   shipmints@HIDDEN,  80740 <at> debbugs.gnu.org
>>> Date: Sat, 18 Apr 2026 12:22:42 -0300
>>>=20
>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>=20
>>> >> From: Yuan Fu <casouri@HIDDEN>
>>> >> Date: Fri, 17 Apr 2026 18:18:16 -0700
>>> >> Cc: Eli Zaretskii <eliz@HIDDEN>,
>>> >>  shipmints@HIDDEN,
>>> >>  80740 <at> debbugs.gnu.org
>>> >>
>>> >> Cool, thanks! I don=E2=80=99t see it merged though, is it merged?
>>> >
>>> > No.  From what Rahul said, I deduced that an updated patch is in the
>>> > works.  Did I misunderstand?
>>>=20
>>> Hi everyone,
>>>=20
>>> The last patch I sent
>>> (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D80740#37) is in good
>>> shape, and all previous comments have been addressed.
>>>=20
>>> However, since we decided to give it another week, we identified three
>>> small edge-case bugs that we're currently working on.
>>>=20
>>> If you're willing to wait, we can send a refined update around the
>>> middle of next week.
>>
>> Fine with me, will wait.
>>
>>> St=C3=A9phane is also working on a separate patch with additional
>>> features. That will be submitted independently (I won't spoil it, but
>>> it's good stuff).
>>>=20
>>> I'm also working on a test file to ensure that future changes to this
>>> mode (including improvements or grammar updates) don't introduce
>>> regressions, and that any issues can be detected and diagnosed early.
>>> This will also be submitted separately.
>>
>> TIA.
>
> Hi Eli,
>
> Just a quick update: we're almost there, but will likely need a couple
> more days.
>
> In addition to the fixes, we're also finishing up table editing support.
>
> We are now using with-work-buffer, as the upstream issues have been
> resolved. We also moved to a cleaner implementation for the table
> handling logic.
>
> We should have the updated patch ready very soon.
>
> Thanks for your patience.


Hi Eli,

Thanks again for your patience.

The work now covers all the features we originally planned for this
overhaul, and the implementation is complete.

Since the last revision, we added table editing support, including row
and column manipulation, alignment, navigation, and CSV/TSV import and
export helpers.

The companion file (markdown-ts-mode-x.el) is also ready, providing
table-of-contents generation and conversion/export commands using common
external tools such as Pandoc, cmark, cmark-gfm, and markdown.pl.

We also addressed the edge cases discussed earlier and made several
refinements to the implementation.

A special thanks to St=C3=A9phane for all the work on this, especially arou=
nd
the table support, TOC, exporters, and refinements.

Please find the updated patch attached.

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSA0YjQxYTZhNWMzNjU4OGJjZjE3MDNmZTlkNjkxNDUwMGNmZjNiYTUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYSBtb2RlIG1lbnUs
IGFuZCB0YWJsZSBlZGl0aW5nLiAgQWRkCidtYXJrZG93bi10cy1tb2RlLXguZWwnIHdpdGggY29u
dmVyc2lvbi9leHBvcnQgYW5kIFRPQyBzdXBwb3J0LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwKUGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRz
IGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29tbWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9y
IGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMsIGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0
aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUtc2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUg
J2dvdG8tYWRkciwgeHJlZiwgaWNvbnMpOiBOZXcgcmVxdWlyZW1lbnRzLgoobWFya2Rvd24tdHMp
OiBOZXcgY3VzdG9taXphdGlvbiBncm91cCB3aXRoIDp2ZXJzaW9uIGFuZAo6cGFja2FnZS12ZXJz
aW9uIHRhZ3MuCihtYXJrZG93bi10cy1oaWRlLW1hcmt1cCk6IEFkZCA6dmVyc2lvbiBhbmQgOnBh
Y2thZ2UtdmVyc2lvbi4KKG1hcmtkb3duLXRzLWVsbGlwc2lzKTogTmV3IG9wdGlvbiBmb3IgZm9s
ZGVkIGhlYWRpbmcgZWxsaXBzaXMuCihtYXJrZG93bi10cy1tZW51LWJhci1zaG93KTogTmV3IG9w
dGlvbiB0byB0b2dnbGUgbW9kZSBtZW51LgoobWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nKTog
TmV3IG9wdGlvbiBmb3IgZGVmYXVsdCBmb2xkCmxldmVsLgoobWFya2Rvd24tdHMtaW5saW5lLWlt
YWdlcyk6IE5ldyBvcHRpb24gdG8gZGlzcGxheSBpbmxpbmUKaW1hZ2VzLgoobWFya2Rvd24tdHMt
aW1hZ2UtbWF4LXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgaW1hZ2UgbWF4IHdpZHRoLgoobWFya2Rv
d24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcyk6IE5ldyBvcHRpb24gZm9yCnJlbW90
ZSBpbWFnZSBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUpOiBO
ZXcgaGVscGVyIHRvIHJlc29sdmUKZGlzcGxheSB2YWx1ZXMgdXNpbmcgY2hhci1kaXNwbGF5YWJs
ZS1wLgoobWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNr
ZWQgY2hlY2tib3gKZGlzcGxheSBzdHJpbmcgb3IgaWNvbi4KKG1hcmtkb3duLXRzLWNoZWNrZWQt
Y2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKY2hlY2tlZCB2YXJpYW50
LgoobWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgdW5jaGVj
a2VkCmNoZWNrYm94IGRpc3BsYXkgc3RyaW5nIG9yIGljb24uCihtYXJrZG93bi10cy11bmNoZWNr
ZWQtY2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5lbCBpY29uIGZvciB0aGUKdW5jaGVja2VkIHZh
cmlhbnQuCihtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9u
IGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5IGNoYXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcgb3B0aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4g
cGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xhc2ggaGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3Vw
IGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRp
b24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBwbGFjZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJk
IGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCmNvZGUgYmxvY2sgY29u
dGV4dCBtb2RlIGxpZ2h0ZXIgc3RyaW5nLgoobWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2Nr
LW1vZGUtd2FybmluZ3MpOiBOZXcgb3B0aW9uIHRvCmluaGliaXQgY29kZS1ibG9jayBtYWpvci1t
b2RlIG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKTogTmV3IG9wdGlvbiBmb3IgZGVmYXVsdAp0YWJsZSBjb2x1bW4gd2lkdGguCiht
YXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZSk6IE5ldyBvcHRpb24gdG8gZW5hYmxlIHRhYmxl
Cm1vZGUuCihtYXJrZG93bi10cy10YWJsZS1hdXRvLWFsaWduKTogTmV3IG9wdGlvbiBmb3IgdHJp
Z2dlcnMgdGhhdApjYXVzZSBhdXRvbWF0aWMgdGFibGUgYWxpZ25tZW50LgoobWFya2Rvd24tdHMt
dGFibGUtYWxpZ24tZmVhdHVyZXMpOiBOZXcgb3B0aW9uIGZvciB0YWJsZSBhbGlnbgpmZWF0dXJl
cy4KKG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlcik6IE5ldyBvcHRpb24gZm9yCm1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUgbGlnaHRlciBzdHJpbmcuCihtYXJrZG93bi10cy1lbXBo
YXNpcywgbWFya2Rvd24tdHMtYm9sZCkKKG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gsIG1hcmtk
b3duLXRzLWxpbmspCihtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uLCBtYXJrZG93bi10cy1j
b2RlLXNwYW4pCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLCBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1hcmt1cC1oaWRkZW4pCihtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrLCBtYXJrZG93
bi10cy1odG1sLXRhZykKKG1hcmtkb3duLXRzLWh0bWwtYmxvY2ssIG1hcmtkb3duLXRzLXRoZW1h
dGljLWJyZWFrKQoobWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSkKKG1hcmtkb3duLXRzLW51
bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSwgbWFya2Rvd24tdHMtbGF0ZXgpCihtYXJrZG93bi10
cy10YWJsZS1oZWFkZXIsIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCihtYXJrZG93bi10cy10YWJs
ZS1kZWxpbWl0ZXItY2VsbCwgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpCihtYXJrZG93bi10
cy10YXNrLWNoZWNrZWQpOiBOZXcgZmFjZXMuCihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
YmFja3NsYXNoKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4p
CihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpCihtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstc3BhY2UtaGlkZGVuKTogTmV3IGZhY2VzIGZvciB0aGUKdHdvIGhhcmQtbGluZS1i
cmVhayB2YXJpYW50cywgd2l0aCBkaXN0aW5jdCBzaG93bi9oaWRkZW4KYXBwZWFyYW5jZXMuCiht
YXJrZG93bi10cy1pbi1jb2RlLWJsb2NrKTogTmV3IGZhY2UgZm9yIHdoZW4gcG9pbnQgaXMgaW5z
aWRlIGEKZmVuY2VkIGNvZGUgYmxvY2suCihtYXJrZG93bi10cy10YWJsZSk6IE5ldyBmYWNlIGZv
ciBNYXJrZG93biBwaXBlIHRhYmxlCmJhY2tncm91bmQuCihtYXJrZG93bi10cy1pbi10YWJsZSk6
IE5ldyBmYWNlIGZvciBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlCndoZW4gcG9pbnQgaXMgaW4g
YSB0YWJsZS4KKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lKTogTmV3IHZhcmlhYmxlIGZvciBs
aWdodHdlaWdodCBzZXR1cAppbiBlbWJlZGRlZCBpbmxpbmUgbWFya2Rvd24tdHMtbW9kZSBidWZm
ZXJzIHVzZWQgYnkgY29kZSBibG9jawpjb21tYW5kcy4KKG1hcmtkb3duLXRzLWRlZmF1bHQtY29k
ZS1ibG9jay1tb2RlKTogTmV3IHZhcmlhYmxlIHRvIGRlZmluZQpkZWZhdWx0IG1vZGUgZm9yIGFu
b255bW91cyBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZvbnRpZnktY29kZS1ibG9ja3MtbmF0
aXZlbHkpOiBOZXcgb3B0aW9uIHRvCmVuYWJsZS9kaXNhYmxlIG5hdGl2ZSBmb250aWZpY2F0aW9u
IG9mIGZlbmNlZCBjb2RlIGJsb2NrCmNvbnRlbnRzLgoobWFya2Rvd24tdHMtZW5hYmxlLWNvZGUt
YmxvY2stY29udGV4dC1tb2RlKTogTmV3IG9wdGlvbiB0bwplbmFibGUvZGlzYWJsZSBjb2RlIGJs
b2NrIGNvbnRleHQgaW50ZWdyYXRpb24uCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKTog
TmV3IHZhcmlhYmxlIHJlcGxhY2luZwptYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1t
YXAgYW5kCm1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwIHdpdGggdW5pZmll
ZCBsYW5ndWFnZSB0bwptb2RlIG1hcHBpbmcgaW5jbHVkaW5nIGhldXJpc3RpYyBsb29rdXAuCiht
YXJrZG93bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcyk6IE5ldyB2YXJp
YWJsZQpsaXN0aW5nIHRyZWUtc2l0dGVyIG1vZGVzIHdob3NlIGZvbnRpZmljYXRpb24gb2YgY29k
ZSBibG9jawpjb250ZW50IHNob3VsZCBiZSBoYXJ2ZXN0ZWQgdmlhIGEgdGVtcG9yYXJ5IGJ1ZmZl
ci4KKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpOiBOZXcgY29uc3RhbnQgZm9yIHRh
YmxlIGV4cG9ydApvdXRwdXQgYnVmZmVyIG5hbWUuCihtYXJrZG93bi10cy0tdGFibGUtcm93LXR5
cGVzLCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1k
ZWxpbWl0ZXItY2VsbC10eXBlcykKKG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcyk6IE5ldyBjb25zdGFudHMgZm9yCnBpcGUgdGFibGUgbm9kZSB0eXBlIGNsYXNzaWZp
Y2F0aW9uLgoobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24pOiBOZXcgZnVuY3Rpb24gdG8g
Y3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMgd2l0aCBtYWlsdG8sIGJyb3dzZS11cmwsIGFu
ZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0
aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGxpbmsgZGVzdGluYXRpb25zIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSwgbWFya2Rvd24tdHMt
LWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMp
CihtYXJrZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZik6IE5ldyBsaW5rIHJlZmVyZW5jZSBkZWZp
bml0aW9uCmNhY2hlIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBwZXIgQ29tbW9uTWFy
ayBzcGVjLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKTogTmV3IGZvbnRpZmllciBm
b3IgaW5saW5lLApyZWZlcmVuY2UsIHNob3J0Y3V0LCBhbmQgY29sbGFwc2VkIGxpbmtzIGFzIGNs
aWNrYWJsZSBidXR0b25zLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspOiBOZXcgZm9u
dGlmaWVyIGZvciBVUkkgYW5kIGVtYWlsCmF1dG9saW5rcyB3aXRoIGFuZ2xlIGJyYWNrZXQgaGlk
aW5nLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCihtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbik6IE5ldyBmb250aWZpZXJzIGZvcgpsaW5rIHJl
ZmVyZW5jZSBkZWZpbml0aW9ucy4KKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1Yi1zdHJpcC1yZSwg
bWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQoobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jLCBtYXJr
ZG93bi10cy0tZXhwbGljaXQtaWQtcmUpCihtYXJrZG93bi10cy0taGVhZGluZy10ZXh0LWFuZC1p
ZCkKKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlKQoobWFya2Rvd24tdHMtLWhlYWRpbmct
aWQtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24t
dHMtLWhlYWRpbmctaWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFn
bWVudCBsaW5rIHN1cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMu
CihtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5
LWxhdGV4LWJsb2NrKTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdy
YXBoIHZhbGlkYXRpb24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTog
TmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNp
ZGUgTGFUZVggYmxvY2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIg
dXNpbmcgb3JnLWVudGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3Bl
cnR5IGZvciBkZWNvZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTog
TmV3IGZvbnRpZmllciBzaG93aW5nIHRoZQpjb25maWd1cmVkIGNoZWNrYm94IGdseXBoIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhayk6
IE5ldyBmb250aWZpZXIgZm9yCidoYXJkX2xpbmVfYnJlYWsnIG5vZGVzLgoobWFya2Rvd24tdHMt
LWZvbnRpZnktaGVhZGluZyk6IE5ldyBmb250aWZpZXIgZm9yIEFUWCBhbmQgU2V0ZXh0CmhlYWRp
bmdzLgoobWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspOiBOZXcgZm9udGlmaWVy
IHNob3dpbmcKaG9yaXpvbnRhbCBsaW5lIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3du
LXRzLS1mb250aWZ5LWNvZGUtYmxvY2spOiBOZXcgZm9udGlmaWVyIGFwcGx5aW5nCmJhY2tncm91
bmQgb3ZlcmxheSB0byBjb2RlIGJsb2NrcyB3aXRoIGxhbmd1YWdlIGFuZCBtb2RlCnByb3BlcnRp
ZXMuCihtYXJrZG93bi10cy1hdC1jb2RlLWJsb2NrLXApCihtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LWxhbmd1YWdlLWF0KQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vz
c29ycyBmb3IgY29kZSBibG9jawpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1l
bnUtY29kZS1ibG9jay1ub2RlLXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRl
dGVjdGlvbi4KKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXApCihtYXJrZG93bi10
cy0tZm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0YW5kYWxv
bmUgYW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAp
CihtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMtLWZvbnRp
ZnktYmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEgaml0LWxv
Y2sgdXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5n
cyk6IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJzLCBhbmQg
bmV3IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxlbWVudHMu
ICBBbHNvIGFkZCBhIG5ldyAnZXJyb3InIGZvbnQtbG9jayBmZWF0dXJlCmhpZ2hsaWdodGluZyB0
cmVlLXNpdHRlciBFUlJPUiBub2Rlcy4KKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdl
cykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rlcyk6IE5ldyBidWZmZXItbG9j
YWwgYWxpc3RzCmZvciBjb2RlIGJsb2NrIGxhbmd1YWdlIHRyYWNraW5nLgoobWFya2Rvd24tdHMt
LWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24pOiBSZW5hbWUgZnJvbQptYXJrZG93
bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZpZ3Mgd2l0aCBkZWxheS1tb2RlLWhvb2tzLgoobWFy
a2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlcik6IFJlbmFtZSBmcm9tCm1hcmtkb3du
LXRzLS1hZGQtY29uZmlnLWZvci1tb2RlLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUp
OiBOZXcgaGVscGVyIGV4dHJhY3RpbmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9j
b250ZW50IG5vZGUuCihtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpOiBOZXcgYnVm
ZmVyLWxvY2FsIGhhc2ggdGFibGUKY2FjaGluZyBmb250aWZpY2F0aW9uIHJlc3VsdHMgZm9yIG5v
bi10cmVlLXNpdHRlciBjb2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1j
b2xsZWN0LWZhY2VzKTogTmV3IGZ1bmN0aW9uCmhhcnZlc3RpbmcgZmFjZSBwcm9wZXJ0aWVzIGZy
b20gYSBtb2RlIGluIGFuIGluZGlyZWN0IG9yCnRlbXBvcmFyeSBidWZmZXIuCihtYXJrZG93bi10
cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10cmVl
LXNpdHRlciBtb2RlcyB2aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlzdGlj
IG1vZGUgbmFtZSBwcm9iaW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2Up
OiBSZW5hbWUgZnJvbQptYXJrZG93bi10cy0tY29udmVydC1jb2RlLWJsb2NrLWxhbmd1YWdlIHdp
dGggc3VwcG9ydCBmb3Igbm9uLXRzCm1vZGVzIGFuZCByZWN1cnNpdmUgbWFya2Rvd24gaGFuZGxp
bmcuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQoobWFya2Rvd24tdHMtY29kZS1i
bG9jay10aGluZy1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1h
bmRzKTogTmV3IGNvbW1hbmQgbGlzdHMgZm9yCmNvZGUtYmxvY2sgY29udGV4dCBleGVjdXRpb24u
CihtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlKQoobWFya2Rv
d24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2spCihtYXJrZG93bi10cy0tY29k
ZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMpCihtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jayk6IE5ldyBjb2RlIGJsb2NrIG1pbm9yCm1vZGUgd2l0aCB0ZW1wLWJ1ZmZl
ciBjb21tYW5kIGRpc3BhdGNoLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZSk6IE5l
dyBjb21tYW5kIGZvciBuZXdsaW5lCmluc2lkZSBjb2RlIGJsb2NrcywgZGlzcGF0Y2hpbmcgdG8g
dGhlIGJsb2NrJ3MgbW9kZS4KKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyk6IFVwZGF0ZSBy
YW5nZSBjb25maWd1cmF0aW9uOwpyZW1vdmUgOnJhbmdlLWZuIHRyZWVzaXQtcmFuZ2UtZm4tZXhj
bHVkZS1jaGlsZHJlbi4KKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCihtYXJr
ZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSk6IE5ldyBoZWxwZXJzIGZvciBpbWFnZQpvdmVy
bGF5IG1hbmFnZW1lbnQgZHVyaW5nIG91dGxpbmUgZm9sZC91bmZvbGQuCihtYXJrZG93bi10cy0t
b3V0bGluZS1pbnZpc2libGUtcCk6IE5ldyBoZWxwZXIgdGVzdGluZyB3aGV0aGVyIGEKcG9zaXRp
b24gaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJlZ2lvbi4KKG1hcmtkb3duLXRzLS1ob3N0
LXJhbmdlcy1ub3RpZmllcik6IE5ldyBmdW5jdGlvbiBwcnVuaW5nIHN0YWxlCmNvZGUgYmxvY2sg
b3ZlcmxheXMgd2hlbiB0aGUgaG9zdCBwYXJzZSB0cmVlIGNoYW5nZXMuCihtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSk6IE5ldyBoZWxwZXIgc2lnbmFsaW5nIGEKdXNlci1lcnJvciB3aGVu
IHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBub3QgZGVyaXZlZCBmcm9tCm1hcmtkb3duLXRzLW1vZGUu
CihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2Rl
IGVuYWJsZWQKd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBmZW5jZWQgY29kZSBibG9jaywgYWN0aXZh
dGluZwptYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1tYXAgc28gZWxpZ2li
bGUgY29tbWFuZHMKZGlzcGF0Y2ggdG8gdGhlIGJsb2NrJ3MgbWFqb3IgbW9kZS4KKG1hcmtkb3du
LXRzLS1zZXQtaGlkZS1tYXJrdXApOiBDbGVhciBpbWFnZSBvdmVybGF5cyB3aGVuCnRvZ2dsaW5n
IG1hcmt1cCB2aXNpYmlsaXR5LgoobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzKQoobWFy
a2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMpOiBOZXcgZnVuY3Rpb25zIGZvciB0b2dnbGlu
ZwppbmxpbmUgaW1hZ2UgZGlzcGxheS4KKG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgt
bGV2ZWwpOiBOZXcgY29uc3RhbnQuCihtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2ludCwgbWFy
a2Rvd24tdHMtLWhlYWRpbmctbGV2ZWwpCihtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCk6
IE5ldyBoZWFkaW5nIG5hdmlnYXRpb24gaGVscGVycy4KKG1hcmtkb3duLXRzLXByb21vdGUsIG1h
cmtkb3duLXRzLWRlbW90ZSk6IE5ldyBjb21tYW5kcyBmb3IKaGVhZGluZyBhbmQgbGlzdCBpdGVt
IHByb21vdGlvbi9kZW1vdGlvbiB3aXRoIHJlZ2lvbiBzdXBwb3J0LgoobWFya2Rvd24tdHMtLXBy
b21vdGUtb3ItZGVtb3RlKQoobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbik6
IE5ldyBoZWFkaW5nIGxldmVsCmFkanVzdG1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtbW92
ZS1zdWJ0cmVlLXVwLCBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bik6Ck5ldyBjb21tYW5k
cyBmb3IgbW92aW5nIHNlY3Rpb25zIGFuZCBsaXN0IGl0ZW1zLgoobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXApCihtYXJrZG93bi10cy0tbW92ZS1zdWJ0cmVlLXVwLW9yLWRvd24pOiBOZXcg
c3VidHJlZSBtb3ZlIHdpdGgKZm9sZGluZyBzdGF0ZSBwcmVzZXJ2YXRpb24uCihtYXJrZG93bi10
cy10b2dnbGUtY2hlY2tib3gpOiBOZXcgY29tbWFuZCB0byB0b2dnbGUgdGFzayBsaXN0CmNoZWNr
Ym94ZXMuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KTogTmV3IGhlbHBlciB3aXRo
IGJsb2NrIHF1b3RlCm1hcmtlciBoYW5kbGluZy4KKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13
aWR0aCwgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24pCihtYXJrZG93bi10cy0tbGlzdC1v
cmRlcmVkLWl0ZW0tcCk6IE5ldyBsaXN0IGl0ZW0gaGVscGVycy4KKG1hcmtkb3duLXRzLS1saXN0
LXByb21vdGUtb3ItZGVtb3RlKTogTmV3IGZ1bmN0aW9uIHdpdGggb3JkZXJlZApsaXN0IG5lc3Rp
bmcgZ3VhcmQuCihtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCwgbWFya2Rvd24tdHMtLWxpc3Qt
bW92ZSk6IE5ldyBsaXN0Cml0ZW0gbW92ZW1lbnQgZnVuY3Rpb25zLgoobWFya2Rvd24tdHMtcmVu
dW1iZXItbGlzdCk6IE5ldyBjb21tYW5kIGZvciBzZXF1ZW50aWFsIGxpc3QKcmVudW1iZXJpbmcg
d2l0aCBwcmVmaXggYXJndW1lbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3
LW1hcmtlcikKKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lKTogTmV3IG1hcmtlciBz
dHJpbmcgZ2VuZXJhdG9ycwpmb3IgbGlzdCBpdGVtIGluc2VydGlvbi4KKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKTogTmV3IGhlbHBlciBjb3VudGluZyBibG9jawpxdW90ZSBk
ZXB0aC4KKG1hcmtkb3duLXRzLW5ld2xpbmUpOiBOZXcgUkVUIGNvbW1hbmQgZm9yIGNvbnRleHQt
YXdhcmUKbmV3bGluZS4KKG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0pOiBOZXcgTS1SRVQg
Y29tbWFuZCB0aGF0IGNyZWF0ZXMgYQpuZXcgbGlzdCBpdGVtLgoobWFya2Rvd24tdHMtLWZpbGwt
dW5maWxsYWJsZS1ibG9jay1xdWVyeSk6IE5ldyB0cmVlLXNpdHRlcgpxdWVyeSBmb3IgdW5maWxs
YWJsZSBibG9ja3MuCihtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uKTogTmV3IGhl
bHBlciBmb3IgbGlzdCBpdGVtCnRleHQgYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWZpbGwtbGlz
dC1pdGVtKTogTmV3IGZ1bmN0aW9uIGZpbGxpbmcgd2l0aGluIGxpc3QKaXRlbXMgd2l0aG91dCBt
ZXJnaW5nIGFkamFjZW50IGl0ZW1zLgoobWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpOiBOZXcg
YWRhcHRpdmUgZmlsbCBmdW5jdGlvbiBmb3IKbGlzdCBpdGVtIGNvbnRpbnVhdGlvbi4KKG1hcmtk
b3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKTogTmV3IHBhcmFncmFwaCBtb3Rpb24KcmVz
cGVjdGluZyBsaXN0IGl0ZW1zIGFuZCB1bmZpbGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLWZp
bGwtcGFyYWdyYXBoKTogTmV3IGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIHdpdGgKY29uZCogZGlz
cGF0Y2ggZm9yIGxpc3RzLCBibG9jayBxdW90ZXMsIEhUTUwgY29tbWVudHMsIGFuZAp1bmZpbGxh
YmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1maWxsLWh0bWwtY29tbWVudCk6IE5ldyBIVE1MIGNv
bW1lbnQgZmlsbGVyIHdpdGgKY29udGludWF0aW9uIGFsaWdubWVudC4KKG1hcmtkb3duLXRzLS1i
bG9jay1xdW90ZS1wcmVmaXgpOiBOZXcgaGVscGVyIHByZXNlcnZpbmcKZXhpc3RpbmcgYmxvY2sg
cXVvdGUgbWFya2VyIHN0eWxlLgoobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUpOiBOZXcg
YmxvY2sgcXVvdGUgZmlsbGVyIHdpdGgKbGlzdCBpdGVtIHRleHQgY29sdW1uIGFsaWdubWVudC4K
KG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KTogTmV3IGFsaXN0IG9mIGVtcGhhc2lzIG1hcmtl
cnMuCihtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCk6IE5ldyB0cmVlLXNpdHRl
ciBiYXNlZAplbXBoYXNpcyBkZXRlY3Rpb24uCihtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMp
OiBOZXcgY29tbWFuZCByZW1vdmluZyBlbXBoYXNpcyBhdApwb2ludCBvciByZWdpb24uCihtYXJr
ZG93bi10cy1lbXBoYXNpemUpOiBOZXcgaW50ZXJhY3RpdmUgZW1waGFzaXMgaW5zZXJ0aW9uIHdp
dGgKcmVnaW9uIHdyYXBwaW5nIGFuZCB3b3JkLWF0LXBvaW50IHN1cHBvcnQuCihtYXJrZG93bi10
cy1pbnNlcnQtc3RydWN0dXJlKTogTmV3IGNvbW1hbmQgZm9yIGluc2VydGluZyBjb2RlCmJsb2Nr
cywgYmxvY2sgcXVvdGVzLCBhbmQgZGl2aWRlcnMuCihtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUt
YmxvY2spOiBOZXcgZnVuY3Rpb24gd2l0aCBsYW5ndWFnZQpjb21wbGV0aW9uIGZyb20ga25vd24g
bW9kZXMuCihtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKTogTmV3IGZ1bmN0aW9uIHdp
dGggcmVnaW9uCndyYXBwaW5nLgoobWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKTogTmV3IGZ1
bmN0aW9uIGZvciBob3Jpem9udGFsCnJ1bGVzLgoobWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lz
KTogTmV3IGZ1bmN0aW9uIGFwcGx5aW5nIGN1c3RvbQplbGxpcHNpcyB2aWEgZGlzcGxheSB0YWJs
ZS4KKG1hcmtkb3duLXRzLS1zZXQtdXApOiBSZW5hbWUgZnJvbSBtYXJrZG93bi10cy1zZXR1cC4K
KG1hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBvdXRs
aW5lCnZpc2liaWxpdHkgb24gaGVhZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5ldyBr
ZXltYXAgZm9yIGNvZGUgYmxvY2sgbmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcgbmF2
aWdhdGlvbiwgc3RydWN0dXJlIGVkaXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRpb25z
LgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtbWFwKTogTmV3IGtleW1h
cCBmb3IKY29kZSBibG9jayBjb250ZXh0LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTogTmV3IG1l
bnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1Y3R1cmUs
IGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRsaW5lLW1p
bm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3JhdGlvbiwg
Y29kZS1ibG9jay1jb250ZXh0LW1vZGUgaG9va3MsCmNvbW1lbnQgc2V0dGluZ3MsIGFuZCBvdXRs
aW5lLXZpZXctY2hhbmdlLWhvb2suICBVc2UKbWFya2Rvd24tdHMtbW9kZSBkaXJlY3RseSBpbiBh
dXRvLW1vZGUtYWxpc3QgaW5zdGVhZCBvZgptYXJrZG93bi10cy1tb2RlLW1heWJlLgoobWFya2Rv
d24tdHMtbW9kZS1pbnN0YWxsLXBhcnNlcnMpOiBOZXcgY29tbWFuZCBmb3IgaW5zdGFsbGluZwpy
ZXF1aXJlZCBhbmQgb3B0aW9uYWwgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgZ3JhbW1hcnMuCihtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2Rl
CmJsb2NrIGNvbnRleHQuCihtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlcikK
KG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIpOiBOZXcgaGVscGVy
cyBmb3IKbG9jYXRpbmcgZmVuY2VkIGNvZGUgYmxvY2sgZGVsaW1pdGVyIG5vZGVzLgoobWFya2Rv
d24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxvY2spCihtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZp
b3VzLWNvZGUtYmxvY2spOiBOZXcgY29tbWFuZHMgZm9yCm5hdmlnYXRpbmcgYmV0d2VlbiBmZW5j
ZWQgY29kZSBibG9ja3MuCihtYXJrZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zLCBtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1jZWxsKQoobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93LCBtYXJr
ZG93bi10cy0tdGFibGUtcGFyc2UtZXJyb3ItcCk6Ck5ldyBwaXBlIHRhYmxlIG5vZGUgaGVscGVy
cy4KKG1hcmtkb3duLXRzLWF0LXRhYmxlLXApOiBOZXcgcHJlZGljYXRlIHJldHVybmluZyBub24t
bmlsIHdoZW4KcG9pbnQgaXMgYXQgb3Igd2l0aGluIGEgcGlwZSB0YWJsZS4KKG1hcmtkb3duLXRz
LS1lbmFibGUtaW4tdGFibGUtbW9kZSk6IE5ldyBoZWxwZXIgZW5hYmxpbmcKbWFya2Rvd24tdHMt
aW4tdGFibGUtbW9kZSBmcm9tIHBvc3QtY29tbWFuZC1ob29rLgoobWFya2Rvd24tdHMtLXRhYmxl
LWJvZHktcm93LW5lYXItcG9zKTogTmV3IGhlbHBlciBsb2NhdGluZyB0aGUKbmVhcmVzdCBib2R5
IHJvdyB0byBhIHBvc2l0aW9uLgoobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4pOiBOZXcgaGVscGVycyBmb3IgY29s
dW1uLWJhc2VkCnRhYmxlIG5hdmlnYXRpb24uCihtYXJrZG93bi10cy0tdGFibGUtYWxpZ25lcnMs
IG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIpCihtYXJrZG93bi10cy0tdGFibGUtYWxp
Z24tY2VsbCk6IE5ldyB0YWJsZSBjZWxsIGFsaWdubWVudApoZWxwZXJzLgoobWFya2Rvd24tdHMt
dGFibGUtaW5zZXJ0LXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gaW5zZXJ0IGEgcGlwZQp0YWJsZSB3
aXRoIGNvbmZpZ3VyYWJsZSByb3dzIGFuZCBjb2x1bW5zLgoobWFya2Rvd24tdHMtdGFibGUtZGVs
ZXRlLXRhYmxlKTogTmV3IGNvbW1hbmQgdG8gZGVsZXRlIHRoZSBwaXBlCnRhYmxlIGF0IHBvaW50
LgoobWFya2Rvd24tdHMtdGFibGUtcHJldmlvdXMtcm93LCBtYXJrZG93bi10cy10YWJsZS1uZXh0
LXJvdykKKG1hcmtkb3duLXRzLXRhYmxlLXByZXZpb3VzLWNlbGwsIG1hcmtkb3duLXRzLXRhYmxl
LW5leHQtY2VsbCk6Ck5ldyBjb21tYW5kcyBmb3IgbmF2aWdhdGluZyB0YWJsZSByb3dzIGFuZCBj
ZWxscy4KKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cpCihtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93
KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlKQoobWFya2Rvd24tdHMtdGFibGUt
aW5zZXJ0LXJvdyk6IE5ldyBjb21tYW5kcyBmb3IgaW5zZXJ0aW5nIGFuZApjbG9uaW5nIHRhYmxl
IHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1kZWxldGUtcm93LCBtYXJrZG93bi10cy10YWJsZS1t
b3ZlLXJvdy11cCkKKG1hcmtkb3duLXRzLXRhYmxlLW1vdmUtcm93LWRvd24sIG1hcmtkb3duLXRz
LXRhYmxlLW1vdmUtcm93KToKTmV3IGNvbW1hbmRzIGZvciBkZWxldGluZyBhbmQgbW92aW5nIHRh
YmxlIHJvd3MuCihtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQpCihtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0KQoobWFya2Rvd24tdHMtdGFibGUtY2xvbmUt
Y29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1jbG9uZS1jb2x1bW4tcmlnaHQpCihtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBpbnNlcnRpbmcK
YW5kIGNsb25pbmcgdGFibGUgY29sdW1ucy4KKG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1jb2x1
bW4pCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbi1sZWZ0KQoobWFya2Rvd24tdHMtdGFi
bGUtbW92ZS1jb2x1bW4tcmlnaHQpCihtYXJrZG93bi10cy10YWJsZS1tb3ZlLWNvbHVtbik6IE5l
dyBjb21tYW5kcyBmb3IgZGVsZXRpbmcgYW5kCm1vdmluZyB0YWJsZSBjb2x1bW5zLgoobWFya2Rv
d24tdHMtdGFibGUtYWxpZ24tY29sdW1uLWxlZnQpCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi1j
b2x1bW4tY2VudGVyKQoobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uLXJpZ2h0KQoobWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uKTogTmV3IGNvbW1hbmRzIGZvciBzZXR0aW5nCmNv
bHVtbiBhbGlnbm1lbnQuCihtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSk6IE5ldyBjb21t
YW5kIHRvIGFsaWduIGFsbApjb2x1bW5zIGluIHRoZSB0YWJsZSBhdCBwb2ludC4KKG1hcmtkb3du
LXRzLXRhYmxlLXRyYW5zcG9zZS10YWJsZSk6IE5ldyBjb21tYW5kIHRvIHRyYW5zcG9zZQp0aGUg
dGFibGUgYXQgcG9pbnQuCihtYXJrZG93bi10cy10YWJsZS1jb252ZXJ0LWNzdi1yZWdpb24pCiht
YXJrZG93bi10cy10YWJsZS1jb252ZXJ0LXRzdi1yZWdpb24pCihtYXJrZG93bi10cy10YWJsZS1j
b252ZXJ0LXJlZ2lvbik6IE5ldyBjb21tYW5kcyB0byBjb252ZXJ0CmRlbGltaXRlZCB0ZXh0IHJl
Z2lvbnMgdG8gcGlwZSB0YWJsZXMuCihtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtY3N2
KQoobWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdikKKG1hcmtkb3duLXRzLXRhYmxl
LWV4cG9ydC10YWJsZSk6IE5ldyBjb21tYW5kcyB0byBleHBvcnQgdGhlCnBpcGUgdGFibGUgYXQg
cG9pbnQgdG8gQ1NWIG9yIFRTViBmb3JtYXQuCihtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlLW1h
cCk6IE5ldyBrZXltYXAgZm9yCm1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUuCihtYXJrZG93bi10
cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YpOiBOZXcgYnVmZmVyLWxvY2FsCnZhcmlh
YmxlIGZvciBjb2RlIGJsb2NrIGNvbnRleHQgb3ZlcmxheS4KKG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWluLWNvbnRleHQtbW9kZS11cGRhdGUtb3YpOiBOZXcKZnVuY3Rpb24gdXBkYXRpbmcgdGhl
IGNvZGUgYmxvY2sgY29udGV4dCBvdmVybGF5LgoobWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZSk6
IE5ldyBtaW5vciBtb2RlIGVuYWJsZWQgd2hlbiBwb2ludAppcyB3aXRoaW4gYSBwaXBlIHRhYmxl
LCBhY3RpdmF0aW5nIG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbWFwLgoobWFya2Rvd24tdHMt
LWluLXRhYmxlLW1vZGUtb3YpCihtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YpCiht
YXJrZG93bi10cy0tdGFibGUtdGljay11cGRhdGUpCihtYXJrZG93bi10cy0tdGFibGUtdGljay1z
dGFsZS1wKQoobWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtdXBkYXRlLW92KTogTmV3IGhlbHBl
cnMgc3VwcG9ydGluZwptYXJrZG93bi10cy1pbi10YWJsZS1tb2RlIG92ZXJsYXkgbWFuYWdlbWVu
dC4KKG1hcmtkb3duLXRzLXRhYmxlLW1vZGUpOiBOZXcgbWlub3IgbW9kZSBwcm92aWRpbmcgdGFi
bGUgZWRpdGluZwpjb21tYW5kcyBhbmQgYXV0by1hbGlnbm1lbnQuCihtYXJrZG93bi10cy1tb2Rl
LW1heWJlKTogUmVtb3ZlOyBhdXRvLW1vZGUtYWxpc3Qgbm93IHVzZXMKbWFya2Rvd24tdHMtbW9k
ZSBkaXJlY3RseS4KQXV0by1tb2RlLWFsaXN0OiBBZGQgLm1hcmtkb3duIGFuZCAubWR4IGV4dGVu
c2lvbnMuCgoqIGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbDogTmV3IGZpbGUg
cHJvdmlkaW5nIGV4dHJhCmZlYXR1cmVzIGZvciBtYXJrZG93bi10cy1tb2RlLgoobWFya2Rvd24t
dHMtY29tbW9ubWFyay1zcGVjLXVybCwgbWFya2Rvd24tdHMtZ2ZtLXNwZWMtdXJsKTogTmV3CmNv
bnN0YW50cyBmb3IgQ29tbW9uTWFyayBhbmQgR0ZNIHNwZWNpZmljYXRpb24gVVJMcy4KKG1hcmtk
b3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMpCihtYXJrZG93bi10cy1icm93c2UtZ2ZtLXNw
ZWMpOiBOZXcgY29tbWFuZHMgdG8gYnJvd3NlIHRoZQpDb21tb25NYXJrIGFuZCBHRk0gc3BlY2lm
aWNhdGlvbnMuCihtYXJrZG93bi10cy1jb252ZXJ0KTogTmV3IGN1c3RvbWl6YXRpb24gZ3JvdXAg
Zm9yIE1hcmtkb3duCmNvbnZlcnNpb24vZXhwb3J0IGZlYXR1cmVzLgoobWFya2Rvd24tdHMtZGVm
YXVsdC1jb252ZXJ0ZXIpOiBOZXcgb3B0aW9uIHRvIHNldCB0aGUgZGVmYXVsdApmb3JtYXQgYW5k
IGNvbnZlcnRlciBmb3IgTWFya2Rvd24gZXhwb3J0LgoobWFya2Rvd24tdHMtY29udmVydC1kaXNw
bGF5LWZ1bmN0aW9uKTogTmV3IG9wdGlvbiBzcGVjaWZ5aW5nCnRoZSBmdW5jdGlvbiB1c2VkIHRv
IGRpc3BsYXkgY29udmVydGVkIG91dHB1dC4KKG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpOiBOZXcg
dmFyaWFibGUgbGlzdGluZyBmb3JtYXQvY29udmVydGVyCmNvbmZpZ3VyYXRpb25zIGZvciBwYW5k
b2MsIGNtYXJrLCBjbWFyay1nZm0sIG1hcmtkb3duLCBhbmQKbWFya2Rvd24ucGwuCihtYXJrZG93
bi10cy1jb252ZXJ0LWZpbGUsIG1hcmtkb3duLXRzLWNvbnZlcnQpOiBOZXcgY29tbWFuZHMgdG8K
Y29udmVydCBNYXJrZG93biBidWZmZXJzIG9yIGZpbGVzIHRvIEhUTUwsIFBERiwgYW5kIG90aGVy
CmZvcm1hdHMgdmlhIGV4dGVybmFsIGNvbnZlcnRlcnMuCihtYXJrZG93bi10cy10b2MpOiBOZXcg
Y3VzdG9taXphdGlvbiBncm91cCBmb3IgdGFibGUgb2YgY29udGVudHMKZmVhdHVyZXMuCihtYXJr
ZG93bi10cy10b2MtZ2VuZXJhdGUtd2Fybi1pZi1ub25lKTogTmV3IG9wdGlvbiBjb250cm9sbGlu
ZwpiZWhhdmlvciB3aGVuIG5vIFRPQyBpcyBmb3VuZCBkdXJpbmcgZ2VuZXJhdGlvbi4KKG1hcmtk
b3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyKTogTmV3IG9wdGlvbgpm
b3IgdGhlIGJlZm9yZS1zYXZlIFRPQyB1cGRhdGUgbWlub3IgbW9kZSBsaWdodGVyIHN0cmluZy4K
KG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uKTogTmV3IG9wdGlvbiB0byBzZWxlY3QgdGhl
IHNsdWcKYWxnb3JpdGhtIHVzZWQgZm9yIFRPQyBoZWFkaW5nIGFuY2hvcnMuCihtYXJrZG93bi10
cy0tdG9jLWhhbmRsZXMsIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlLWNsYXNzZXMpOiBOZXcKdmFy
aWFibGVzIGRlZmluaW5nIFRPQyBoYW5kbGUgdHlwZXMgYW5kIGNsYXNzZXMuCihtYXJrZG93bi10
cy0tdG9jLWV4cGFuZC1jYW5kaWRhdGUtaGFuZGxlcywgbWFya2Rvd24tdHMtLXRvY3MpCihtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2spCihtYXJrZG93bi10cy0tdG9jLWNvbGxlY3QtY2Fu
ZGlkYXRlcykKKG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoKQoobWFya2Rvd24tdHMt
LXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emVycykKKG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxpemUpOiBOZXcgaW50ZXJuYWwgaGVs
cGVycyBmb3IgVE9DCnBhcnNpbmcgYW5kIHRleHQgbm9ybWFsaXphdGlvbi4KKG1hcmtkb3duLXRz
LXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZSk6IE5ldyBtaW5vciBtb2RlIHRoYXQKcmVnZW5l
cmF0ZXMgdGFibGVzIG9mIGNvbnRlbnRzIGJlZm9yZSBzYXZpbmcuCihtYXJrZG93bi10cy10b2Mt
Y2xlYXItYW5kLXJlbW92ZSwgbWFya2Rvd24tdHMtdG9jLWNsZWFyKTogTmV3CmNvbW1hbmRzIHRv
IHJlbW92ZSBvciBjbGVhciBUT0MgYm9kaWVzLgoobWFya2Rvd24tdHMtdG9jLWluc2VydC10ZW1w
bGF0ZSk6IE5ldyBjb21tYW5kIHRvIGluc2VydCBhIFRPQwp0ZW1wbGF0ZSBhdCBwb2ludC4KKG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZSk6IE5ldyBjb21tYW5kIHRvIGdlbmVyYXRlIHRhYmxlcyBv
Zgpjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCgpJbmNsdWRlcyBmaXhlcyBmb3I6IChi
dWcjODA2MTMpIChidWcjODA2MjUpIChidWcjODA2OTApCgpDby1hdXRob3JlZC1ieTogU3TDqXBo
YW5lIE1hcmtzIDxzaGlwbWludHNAZ21haWwuY29tPgotLS0KIGxpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUteC5lbCB8IDExMzQgKysrKysrCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsICAgfCA1NDE3ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNo
YW5nZWQsIDYyNjYgaW5zZXJ0aW9ucygrKSwgMjg1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbAoKZGlmZiAtLWdpdCBh
L2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUteC5lbCBiL2xpc3AvdGV4dG1vZGVzL21h
cmtkb3duLXRzLW1vZGUteC5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNzQwNTA3OGFiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93
bi10cy1tb2RlLXguZWwKQEAgLTAsMCArMSwxMTM0IEBACis7OzsgbWFya2Rvd24tdHMtbW9kZS14
LmVsIC0tLSBtYXJrZG93bi10cy1tb2RlIGV4dHJhcyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAt
Ki0KKworOzsgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgorCis7OyBBdXRob3IgICAgICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1
bGlhdG9AZ21haWwuY29tPgorOzsgICAgICAgICAgICAgICAgICA6IFN0w6lwaGFuZSBNYXJrcyA8
c2hpcG1pbnRzQGdtYWlsLmNvbT4KKzs7IE1haW50YWluZXIgICAgICAgOiBSYWh1bCBNYXJ0aW0g
SnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBDcmVhdGVkICAgICAgICAgIDog
QXByaWwgMjAyNgorOzsgVmVyc2lvbiAgICAgICAgICA6IDEuMAorOzsgUGFja2FnZS1SZXF1aXJl
cyA6ICgoZW1hY3MgIjMxLjEiKSkKKzs7IEtleXdvcmRzICAgICAgICAgOiBtYXJrZG93biBtZCB0
ZXh0IGVkaXQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVyCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor
OzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUg
PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7
OyBDb2RlOgorCisocmVxdWlyZSAnbWFya2Rvd24tdHMtbW9kZSkKKworOzs7IENvbnZlbmllbmNl
OgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMtY29tbW9ubWFyay1zcGVjLXVybAorICAiaHR0cHM6
Ly9zcGVjLmNvbW1vbm1hcmsub3JnL2N1cnJlbnQvIikKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LWdmbS1zcGVjLXVybAorICAiaHR0cHM6Ly9naXRodWIuZ2l0aHViLmNvbS9nZm0vIikKKworKGRl
ZnVuIG1hcmtkb3duLXRzLWJyb3dzZS1jb21tb25tYXJrLXNwZWMgKCkKKyAgIkJyb3dzZSB0aGUg
Q29tbW9uTWFyayBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWNvbW1vbm1hcmstc3BlYy11cmwpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtYnJvd3NlLWdmbS1zcGVjICgpCisgICJCcm93c2UgdGhlIEdpdEh1
YiBGbGF2b3JlZCBNYXJrZG93biBzcGVjIGluIGEgd2ViIGJyb3dzZXIuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChicm93c2UtdXJsIG1hcmtkb3duLXRzLWdmbS1zcGVjLXVybCkpCisKKzs7OyBFeHBv
cnQgYW5kIHByZXZpZXc6CisKKyhkZWZncm91cCBtYXJrZG93bi10cy1jb252ZXJ0IG5pbAorICAi
Q29udmVydCBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycyBvciBmaWxlcy4iCisgIDpwcmVmaXgg
Im1hcmtkb3duLXRzLWNvbnZlcnQtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5n
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kZWZhdWx0LWNv
bnZlcnRlciBuaWwKKyAgIkRlZmF1bHQgTWFya2Rvd24gZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCitJ
ZiBuaWwsIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGZvcm1hdCBhbmQgYSBjb252ZXJ0ZXIu
CitTZWUgYG1hcmtkb3duLXRzLWNvbnZlcnRlcnMnLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0
IDp0YWcgIlByb21wdCBmb3IgZm9ybWF0IGFuZCBjb252ZXJ0ZXIiIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIlBERiB2aWEgUGFuZG9jIiAocGRmIC4gcGFuZG9jKSkKKyAgICAg
ICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkhUTUwgdmlhIFBhbmRvYyIgKGh0bWwgLiBwYW5kb2Mp
KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmsiIChodG1sIC4g
Y21hcmspKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgY21hcmstZ2Zt
IChHaXRIdWIgYmVsbHMgYW5kIHdoaXN0bGVzKSIgKGh0bWwgLiBjbWFyay1nZm0pKQorICAgICAg
ICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24iIChodG1sIC4gbWFya2Rv
d24pKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSFRNTCB2aWEgbWFya2Rvd24ucGwi
IChodG1sIC4gbWFya2Rvd24ucGwpKQorICAgICAgICAgICAgICAgICAoY29ucyAgOnRhZyAiRm9y
bWF0IGFuZCBDb252ZXJ0ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcg
IkZvcm1hdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcgIkNvbnZlcnRl
ciIpKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhk
ZWZjdXN0b20gbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uICMnZXd3LW9wZW4t
ZmlsZQorICAiRnVuY3Rpb24gdG8gZGlzcGxheSBjb252ZXJ0ZWQgTWFya2Rvd24gdGhlIG91dHB1
dCBmaWxlLgorVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCwgdGhlIGZp
bGUgbmFtZS4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJEaXNwbGF5IHVzaW5nIGBl
d3cnIiBld3ctb3Blbi1maWxlKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBpbiBhIGJyb3dzZXIiIGJyb3dzZS11cmwtb2YtZmlsZSkKKyAgICAgICAgICAgICAgICAgKGNv
bnN0IDp0YWcgIkRpc3BsYXkgb3V0cHV0IGZpbGUgaW4gYSBidWZmZXIiIGZpbmQtZmlsZS1vdGhl
ci13aW5kb3cpCisgICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJPdGhlciBmdW5jdGlv
biIpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmNvbnN0IG1hcmtkb3duLXRzLS1jb252ZXJ0LWVycm9yLWJ1ZmZlcgorICAiKm1hcmtkb3duLXRz
LWNvbnZlcnQgZXJyb3JzKiIpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tY29udmVydC1vdXRw
dXQtYnVmZmVyCisgICIqbWFya2Rvd24tdHMtY29udmVydCBvdXRwdXQqIikKKworKGRlZnZhciBt
YXJrZG93bi10cy1jb252ZXJ0ZXJzCisgIChsaXN0CisgICAoY29ucyAnaHRtbAorICAgICAgICAg
KGxpc3QKKyAgICAgICAgICAoY29ucyAncGFuZG9jCisgICAgICAgICAgICAgICAgKGxpc3QgOmNv
bW1hbmQgInBhbmRvYyIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGlu
KQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhmaWxlKQorICAgICAgICAgICAgICAg
ICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpbnB1dC1maWxlIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLWYiICJnZm0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItdCIgImh0bWw1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1z
dGFuZGFsb25lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iIG91
dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1m
aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkp
KSkpKQorICAgICAgICAgIChjb25zICdjbWFyaworICAgICAgICAgICAgICAgIChsaXN0IDpjb21t
YW5kICJjbWFyayIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5wdXQgJyhmaWxlIHN0ZGluKQor
ICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQpCisgICAgICAgICAgICAgICAg
ICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg
KGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCAobGlzdCAiLXQiICJodG1sIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdo
ZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGlu
cHV0LWZpbGUpKSkpKSkKKyAgICAgICAgICAoY29ucyAnY21hcmstZ2ZtCisgICAgICAgICAgICAg
ICAgKGxpc3QgOmNvbW1hbmQgImNtYXJrLWdmbSIKKyAgICAgICAgICAgICAgICAgICAgICA6aW5w
dXQgJyhmaWxlIHN0ZGluKQorICAgICAgICAgICAgICAgICAgICAgIDpvdXRwdXQgJyhzdGRvdXQp
CisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgX291dHB1dC1maWxlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCAobGlzdCAiLXQiICJodG1sIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBVc2UgR2l0SHViLXN0eWxlIDxwcmUgbGFuZz4gZm9yIGNv
ZGUgYmxvY2tzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWdpdGh1
Yi1wcmUtbGFuZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5j
bHVkZSByZW1haW5kZXIgb2YgY29kZSBibG9jayBpbmZvCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDs7IHN0cmluZyBpbiBhIHNlcGFyYXRlIGF0dHJpYnV0ZS4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZnVsbC1pbmZvLXN0cmluZyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgVXNlIHN0eWxlIGF0dHJpYnV0
ZXMgdG8gYWxpZ24gdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgY2VsbHMgaW5zdGVhZCBvZiBhbGlnbiBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLS10YWJsZS1wcmVmZXItc3R5bGUtYXR0cmlidXRlcyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAiZm9vdG5v
dGVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1leHRlbnNpb24i
ICJ0YWJsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5z
aW9uIiAic3RyaWtldGhyb3VnaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0tZXh0ZW5zaW9uIiAiYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWV4dGVuc2lvbiIgInRhZ2ZpbHRlciIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tZXh0ZW5zaW9uIiAidGFza2xpc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKQorICAgICAgICAgIDs7ICdtYXJr
ZG93bi5wbCBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24gd2l0aCBhbm90aGVyIGNvbW1vbiBmaWxl
CisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rvd24ucGwKKyAgICAg
ICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24ucGwiCisgICAgICAgICAgICAgICAg
ICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6b3V0cHV0
ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKQorICAgICAg
ICAgIDs7ICdtYXJrZG93biBpcyB0aGUgc2FtZSBhcyAnbWFya2Rvd24ucGwgd2l0aCBhbm90aGVy
IGNvbW1vbiBmaWxlCisgICAgICAgICAgOzsgbmFtZS4KKyAgICAgICAgICAoY29ucyAnbWFya2Rv
d24KKyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAibWFya2Rvd24iCisgICAgICAgICAg
ICAgICAgICAgICAgOmlucHV0ICcoZmlsZSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICA6
b3V0cHV0ICcoc3Rkb3V0KQorICAgICAgICAgICAgICAgICAgICAgIDphcmd1bWVudHMtZnVuY3Rp
b24KKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgIi0taHRtbDR0YWdzIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaW5wdXQtZmlsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICItLSIgaW5wdXQtZmlsZSkpKSkpKSkp
CisgICAoY29ucyAncGRmCisgICAgICAgICAobGlzdAorICAgICAgICAgIChjb25zICdwYW5kb2MK
KyAgICAgICAgICAgICAgICAobGlzdCA6Y29tbWFuZCAicGFuZG9jIgorICAgICAgICAgICAgICAg
ICAgICAgIDppbnB1dCAnKGZpbGUgc3RkaW4pCisgICAgICAgICAgICAgICAgICAgICAgOm91dHB1
dCAnKGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgOmFyZ3VtZW50cy1mdW5jdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlucHV0LWZpbGUgb3V0cHV0LWZpbGUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChsaXN0ICItZiIgImdmbSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi10IiAicGRmIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLW8iIG91dHB1dC1maWxlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiBpbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkpKSkpKQorICAiQW4gYWxpc3Qgb2YgZm9ybWF0
L2NvbnZlcnRlciBjb25maWd1cmF0aW9ucy4KK0l0IGlzIGEgdHdvIGxldmVsIGFsaXN0IHdpdGgg
dGhlIGZpcnN0IGxldmVsIGJlaW5nIGZvcm1hdCwgZm9yIGV4YW1wbGUKK2BodG1sJyBvciBgcGRm
JywgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIGNvbnZlcnRlciBuYW1lLCBmb3IgZXhhbXBsZQor
YHBhbmRvYycuICBBIGNvbnZlcnRlciBjb25maWd1cmF0aW9uIGVudHJ5IGlzIGEgcGxpc3Qgb2Yg
dGhlIGZvcm06CisKKyAgXFw9Jyg6Y29tbWFuZCBcImNvbW1hbmQgbmFtZVwiCisgICAgOmlucHV0
IChmaWxlIHN0ZGluKSA7IGFjY2VwdHMgZmlsZSBuYW1lIG9yIHN0ZGluCisgICAgOm91dHB1dCAo
c3Rkb3V0KSAgICA7IHByb2R1Y2VzIHN0ZG91dCBvbmx5CisgICAgOmFyZ3VtZW50cy1mdW5jdGlv
biA7IGZ1bmN0aW9uOyBlLmcuLAorICAgICAobGFtYmRhIChpbnB1dC1maWxlIF9vdXRwdXQtZmls
ZSkKKyAgICAgICAoYXBwZW5kIChsaXN0IFwiLXRcIiBcImh0bWxcIikKKyAgICAgICAgICAgICAg
ICh3aGVuIGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgKGxpc3QgaW5wdXQtZmlsZSkpKSkp
CisKK2Bhcmd1bWVudHMtZnVuY3Rpb24nIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzLCBJTlBVVC1G
SUxFIGFuZAorT1VUUFVULUZJTEUuICBJZiBJTlBVVC1GSUxFIGlzIG5pbCwgYXNzdW1lIHN0ZGlu
LCBvciBpdCBpcyBhCitmdWxseS1xdWFsaWZpZWQgZmlsZSBuYW1lLiAgSWYgT1VUUFVULUZJTEUg
aXMgbmlsLCBhc3N1bWUgc3Rkb3V0LCBvciBpdAoraXMgYSBmdWxseS1xdWFsaWZpZWQgZmlsZSBu
YW1lLiAgSXQgc2hvdWxkIHJldHVybiBhIGxpc3Qgb2YKK2FyZ3VtZW50cyBzdWl0YWJsZSBmb3Ig
YGNhbGwtcHJvY2VzcycuIikKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93bi10cy1j
b252ZXJ0LWZpbGUgKGlucHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IE1h
cmtkb3duIElOUFVULUZJTEUgdG8gRk9STUFULgorSWYgb3B0aW9uYWwgRElTUExBWSBpcyBub24t
bmlsLCBzaG93IHRoZSBvdXRwdXQgZmlsZSBpbiBhIGJ1ZmZlciwgaWYKK3Bvc3NpYmxlLCB1c2lu
ZyB0aGUgZnVuY3Rpb24gYG1hcmtkb3duLXRzLWNvbnZlcnQtZGlzcGxheS1mdW5jdGlvbicuCisK
K1dpdGggYSBwcmVmaXggYXJndW1lbnQsIERJU1BMQVkgd2lsbCBiZSBub24tbmlsLgorCitPcHRp
b25hbCBGT1JNQVQgaXMgYSBmb3JtYXQvY29udmVydGVyIHBhaXIgc3BlY2lmaWVkIGFzIGEgY29u
cworXFw9Jyhmb3JtYXQgLiBjb252ZXJ0ZXIpIGZvciBleGFtcGxlIFxcPScoaHRtbCAuIHBhbmRv
YykuICBTZWUKK2BtYXJrZG93bi10cy1jb252ZXJ0ZXJzJy4gIElmIG5pbCwgcHJvbXB0IGZvciB0
aGUgZm9ybWF0IGFuZCBjb252ZXJ0ZXIuCisKK0lmIG9wdGlvbmFsIE9WRVJXUklURSBpcyBub24t
bmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUgaWYgaXQKK2V4aXN0cy4KKworSWYg
UVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNvbnZlcnNpb24gd2FybmluZ3Mgb3Ig
ZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBzcGVjaWZpZWQgYnkgYSBjb252ZXJ0
ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2VlIHRoZSB2YXJpYWJsZSBgZXhlYy1w
YXRoJy4iCisgIChpbnRlcmFjdGl2ZSAiZkNvbnZlcnQgTWFya2Rvd24gZmlsZTogIikKKyAgKG1h
cmtkb3duLXRzLWNvbnZlcnQgaW5wdXQtZmlsZSBvdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICBmb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgKG9yIGRpc3BsYXkgY3VycmVu
dC1wcmVmaXgtYXJnKQorICAgICAgICAgICAgICAgICAgICAgICBvdmVyd3JpdGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgcXVpZXQpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIG1hcmtkb3du
LXRzLWNvbnZlcnQgKCZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0
LWZpbGUgb3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgZGlz
cGxheSBvdmVyd3JpdGUgcXVpZXQpCisgICJDb252ZXJ0IGEgYG1hcmtkb3duLXRzLW1vZGUnIGJ1
ZmZlciBvciBmaWxlIHRvIEZPUk1BVC4KK0NvbnZlcnQgSU5QVVQtRklMRSB0byBPVVRQVVQtRklM
RS4KKworSWYgSU5QVVQtRklMRSBpcyBuaWwsIHVzZSB0aGUgY3VycmVudCBidWZmZXIuCisKK0lm
IE9VVFBVVC1GSUxFIGlzIG5pbCwgcHJvbXB0IGZvciBhbiBvdXRwdXQgZmlsZS4KKworT3B0aW9u
YWwgRk9STUFUIGlzIGEgZm9ybWF0L2NvbnZlcnRlciBwYWlyIHNwZWNpZmllZCBhcyBhIGNvbnMK
K1xcPScoZm9ybWF0IC4gY29udmVydGVyKSBmb3IgZXhhbXBsZSBcXD0nKGh0bWwgLiBwYW5kb2Mp
LiAgU2VlCitgbWFya2Rvd24tdHMtY29udmVydGVycycuICBJZiBuaWwsIHByb21wdCBmb3IgdGhl
IGZvcm1hdCBhbmQgY29udmVydGVyLgorCitJZiBvcHRpb25hbCBESVNQTEFZIGlzIG5vbi1uaWws
IHNob3cgdGhlIG91dHB1dCBmaWxlIGluIGEgYnVmZmVyLCBpZgorcG9zc2libGUsIHVzaW5nIHRo
ZSBmdW5jdGlvbiBgbWFya2Rvd24tdHMtY29udmVydC1kaXNwbGF5LWZ1bmN0aW9uJy4KKworV2l0
aCBhIHByZWZpeCBhcmd1bWVudCwgRElTUExBWSB3aWxsIGJlIG5vbi1uaWwuCisKK0lmIG9wdGlv
bmFsIE9WRVJXUklURSBpcyBub24tbmlsLCBzaWxlbnRseSBvdmVyd3JpdGUgT1VUUFVULUZJTEUg
aWYgaXQKK2V4aXN0cy4KKworSWYgUVVJRVQgaXMgbm9uLW5pbCwgaW5oaWJpdCBzaG93aW5nIGNv
bnZlcnNpb24gd2FybmluZ3Mgb3IgZXJyb3JzLgorCitUaGUgZXh0ZXJuYWwgZXhlY3V0YWJsZSBz
cGVjaWZpZWQgYnkgYSBjb252ZXJ0ZXIgbXVzdCBiZSBpbnN0YWxsZWQgYW5kCitmb3VuZDsgc2Vl
IHRoZSB2YXJpYWJsZSBgZXhlYy1wYXRoJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKGFu
ZCBpbnB1dC1maWxlCisgICAgICAgICAgICAgKGVxdWFsIGJ1ZmZlci1maWxlLW5hbWUgKGV4cGFu
ZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgKGJ1ZmZlci1tb2RpZmllZC1w
KSkKKyAgICAod2hlbiAoeWVzLW9yLW5vLXAgIlNhdmUgbW9kaWZpZWQgYnVmZmVyIGJlZm9yZSBj
b252ZXJ0aW5nPyAiKQorICAgICAgKHNhdmUtYnVmZmVyKSkpCisgICh1bmxlc3MgaW5wdXQtZmls
ZQorICAgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtY29udmVy
dCkpCisKKyAgKHNldHEgZGlzcGxheSAob3IgZGlzcGxheSBjdXJyZW50LXByZWZpeC1hcmcpKQor
CisgIChsZXQqICgoY29udmVydGVyLWZvcm1hdAorICAgICAgICAgIChvciAoY2FyIGZvcm1hdCkK
KyAgICAgICAgICAgICAgKGNhciBtYXJrZG93bi10cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAg
ICAgICAgICAgKGludGVybgorICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAg
ICAgICAgICAgICJTZWxlY3QgYW4gb3V0cHV0IGZvcm1hdDogIgorICAgICAgICAgICAgICAgICht
YXBjYXIgKGxhbWJkYSAoZWx0KSAoc3ltYm9sLW5hbWUgKGNhciBlbHQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWNvbnZlcnRlcnMpCisgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy1jb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgICAgKGNvbnZlcnRlcgor
ICAgICAgICAgIChvciAoY2RyIGZvcm1hdCkKKyAgICAgICAgICAgICAgKGNkciBtYXJrZG93bi10
cy1kZWZhdWx0LWNvbnZlcnRlcikKKyAgICAgICAgICAgICAgKGludGVybgorICAgICAgICAgICAg
ICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAgICAgICAgICAgICJTZWxlY3QgYSBjb252ZXJ0ZXI6
ICIKKyAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGVsdCkgKHN5bWJvbC1uYW1lIChj
YXIgZWx0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtZ2V0IGNvbnZlcnRlci1m
b3JtYXQgbWFya2Rvd24tdHMtY29udmVydGVycykpCisgICAgICAgICAgICAgICAgbmlsCisgICAg
ICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJr
ZG93bi10cy1jb252ZXJ0ZXIpKSkpCisgICAgICAgICAoY29uZmlnIChhbGlzdC1nZXQgY29udmVy
dGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LWdldCBjb252ZXJ0ZXItZm9y
bWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1j
b252ZXJ0ZXJzKSkpCisgICAgICAgICAoY29tbWFuZCAocGxpc3QtZ2V0IGNvbmZpZyA6Y29tbWFu
ZCkpCisgICAgICAgICAoY29tbWFuZC1pbnB1dCAocGxpc3QtZ2V0IGNvbmZpZyA6aW5wdXQpKQor
ICAgICAgICAgKGNvbW1hbmQtb3V0cHV0IChwbGlzdC1nZXQgY29uZmlnIDpvdXRwdXQpKQorICAg
ICAgICAgKHN0ZGluLW9ubHkgKGVxdWFsIGNvbW1hbmQtaW5wdXQgJyhzdGRpbikpKQorICAgICAg
ICAgKHN0ZG91dC1vbmx5IChlcXVhbCBjb21tYW5kLW91dHB1dCAnKHN0ZG91dCkpKSkKKyAgICAo
dW5sZXNzIG91dHB1dC1maWxlCisgICAgICAoc2V0cSBvdXRwdXQtZmlsZQorICAgICAgICAgICAg
KHJlYWQtZmlsZS1uYW1lICJPdXRwdXQgZmlsZSBuYW1lOiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNh
dCAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGZpbGUtcmVsYXRpdmUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAob3IgaW5wdXQtZmlsZSBidWZmZXItZmlsZS1uYW1lKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzeW1ib2wtbmFtZSBjb252ZXJ0ZXItZm9ybWF0KSkpKQorICAgICAgKHVubGVz
cyBvdXRwdXQtZmlsZQorICAgICAgICAodXNlci1lcnJvciAiT3V0cHV0IGZpbGUgbmFtZSBpcyBy
ZXF1aXJlZCIpKSkKKyAgICAod2hlbiBvdXRwdXQtZmlsZQorICAgICAgKHdoZW4gKGFuZCAobm90
IG92ZXJ3cml0ZSkKKyAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgb3V0cHV0LWZpbGUp
CisgICAgICAgICAgICAgICAgIChub3QgKHllcy1vci1uby1wIChmb3JtYXQgIiVzIGV4aXN0czsg
b3ZlcndyaXRlPyIgb3V0cHV0LWZpbGUpKSkpCisgICAgICAgICh1c2VyLWVycm9yICJOb3Qgb3Zl
cndyaXRpbmcgZXhpc3RpbmcgZmlsZTogJXMiIG91dHB1dC1maWxlKSkKKyAgICAgIChzZXRxIG91
dHB1dC1maWxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dC1maWxlKSkpCisKKworICAgIChsZXQg
KChjb21tYW5kLWFyZ3MgKGZ1bmNhbGwgKHBsaXN0LWdldCBjb25maWcgOmFyZ3VtZW50cy1mdW5j
dGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIGlucHV0LWZpbGUg
KGV4cGFuZC1maWxlLW5hbWUgaW5wdXQtZmlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQtZmlsZSkpKQorICAgICAgKHVubGVzcyAoZXhlY3V0YWJsZS1maW5kIGNv
bW1hbmQpCisgICAgICAgICh1c2VyLWVycm9yICJgJXMnIGV4ZWN1dGFibGUgbm90IGZvdW5kIiBj
b21tYW5kKSkKKyAgICAgIChsZXQgKChlcnJvci1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZm
ZXIpKQorICAgICAgICAgICAgKGVycm9yLXRlbXAtZmlsZSAobWFrZS10ZW1wLWZpbGUgIm1hcmtk
b3duLXRzLWNvbnZlcnQtc3RkZXJyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmlsICIubG9nIikpCisgICAgICAgICAgICAoc3Rkb3V0LWJ1ZmZlciAod2hl
biBzdGRvdXQtb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0LWJ1ZmZlci1j
cmVhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb252ZXJ0
LW91dHB1dC1idWZmZXIpKSkpCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAg
KGxldCAoZXhpdC1zdGF0dXMpCisgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGVy
cm9yLWJ1ZmZlcgorICAgICAgICAgICAgICAgIChzcGVjaWFsLW1vZGUpCisgICAgICAgICAgICAg
ICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCisgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIpKQorICAgICAgICAgICAgICAod2hlbiBzdGRv
dXQtYnVmZmVyCisgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc3Rkb3V0LWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgKHNwZWNpYWwtbW9kZSkKKyAgICAgICAgICAgICAgICAg
IChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAgICAgICAgICAgICAgKHdpZGVuKQor
ICAgICAgICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikpKQorICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgKChhbmQgaW5wdXQtZmlsZSAobm90IHN0ZGluLW9ubHkpKQorICAgICAg
ICAgICAgICAgIChzZXRxIGV4aXQtc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5
ICMnY2FsbC1wcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsaXN0IHN0ZG91dC1idWZmZXIgZXJyb3ItdGVtcC1maWxlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC1h
cmdzKSkpCisgICAgICAgICAgICAgICAoKGFuZCBpbnB1dC1maWxlIHN0ZGluLW9ubHkpCisgICAg
ICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQt
ZmlsZS1jb250ZW50cyBpbnB1dC1maWxlKQorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1z
dGF0dXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZC1hcmdzKSkpKQorICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAo
d2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgICAgICAgKHNldHEgZXhpdC1zdGF0dXMK
KyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2Vzcy1yZWdpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3Qgc3Rkb3V0LWJ1ZmZlciBlcnJvci10ZW1wLWZpbGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZC1hcmdzKSkpKSkKKyAgICAgICAgICAgICAgKGxldCAoKGVycm9yLXNpemUgKGZpbGUtYXR0
cmlidXRlLXNpemUgKGZpbGUtYXR0cmlidXRlcyBlcnJvci10ZW1wLWZpbGUpKSkpCisgICAgICAg
ICAgICAgICAgKHdoZW4gKGFuZCBlcnJvci1zaXplICg+IGVycm9yLXNpemUgMCkpCisgICAgICAg
ICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBlcnJvci1idWZmZXIKKyAgICAgICAgICAg
ICAgICAgICAgKGluc2VydC1maWxlLWNvbnRlbnRzIGVycm9yLXRlbXAtZmlsZSkKKyAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKSkKKyAgICAgICAgICAgICAgKGNv
bmQgKChlcSAwIGV4aXQtc3RhdHVzKSA7IEludGVnZXIgb3Igc3RyaW5nLgorICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gc3Rkb3V0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAod2l0
aC1jdXJyZW50LWJ1ZmZlciBzdGRvdXQtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSBvdXRwdXQtZmlsZSkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHdoZW4gZGlzcGxheQorICAgICAgICAgICAgICAgICAgICAgICAo
ZnVuY2FsbCBtYXJrZG93bi10cy1jb252ZXJ0LWRpc3BsYXktZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LWZpbGUpKQorICAgICAgICAgICAgICAgICAgICAg
KHdoZW4gKGFuZCAobm90IHF1aWV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bm90ICh6ZXJvcCAoYnVmZmVyLXNpemUgZXJyb3ItYnVmZmVyKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh5ZXMtb3Itbm8tcAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZvcm1hdC1tZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkNvbnZlcnNpb24gZmlsZSBgJXMnIHN1Y2Nlc3NmdWxseSBjcmVhdGVkIHdpdGggd2FybmluZ3M7
IGRpc3BsYXkgdGhlbT8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
LWZpbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyIGVycm9yLWJ1
ZmZlcikpCisgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiQ29udmVyc2lvbiBmaWxlIHN1
Y2Nlc3NmdWxseSBjcmVhdGVkIGAlcyclcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHplcm9wIChi
dWZmZXItc2l6ZSBlcnJvci1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiB3aXRoIHdh
cm5pbmdzOyBzZWUgYnVmZmVyIGAlcyciIGVycm9yLWJ1ZmZlcikpKSkKKyAgICAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgIChpZiBxdWlldAorICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udmVydGVyIGFi
b3J0ZWQgd2l0aCBleGl0IGNvZGUgJVM7IHNlZSBidWZmZXIgYCVzJyBmb3IgZXJyb3JzIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGl0LXN0YXR1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy0tY29udmVydC1lcnJvci1idWZmZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICh3aGVuICh5ZXMtb3Itbm8tcCAoZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNvbnZlcnRlciBhYm9ydGVkIHdpdGggZXhpdCBjb2RlICVT
OyBkaXNwbGF5IGVycm9ycz8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXhpdC1zdGF0dXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5LWJ1
ZmZlciBlcnJvci1idWZmZXIpKSkpKSkKKyAgICAgICAgICAoZGVsZXRlLWZpbGUgZXJyb3ItdGVt
cC1maWxlKSkpKSkpCisKKzs7OyBUYWJsZSBvZiBjb250ZW50czoKKworKGRlZmdyb3VwIG1hcmtk
b3duLXRzLXRvYyBuaWwKKyAgIlRhYmxlIG9mIGNvbnRlbnRzIGZvciBgbWFya2Rvd24tdHMtbW9k
ZScgYnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLXRvYy0iCisgIDpncm91cCAndGV4
dAorICA6Z3JvdXAgJ2VkaXRpbmcKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUgJ2luc2VydC10ZW1wbGF0ZQorICAi
V2FybiBpZiBubyB0YWJsZXMgd2VyZSBwcm9jZXNzZWQgd2hlbiBjYWxsaW5nIGBtYXJrZG93bi10
cy10b2MtZ2VuZXJhdGUnLgorSWYgbmlsLCBkbyBub3RoaW5nLiAgSWYgdGhlIHN5bWJvbCBgaW5z
ZXJ0LXRlbXBsYXRlJyBhbmQKK2BtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUnIHdhcyBjYWxsZWQg
aW50ZXJhY3RpdmVseSwgb2ZmZXIgdG8gaW5zZXJ0IGEKK3RlbXBsYXRlIGlmIHRoZXJlIGFyZSBu
b25lLiAgSWYgYG5vLXRhYmxlcycsIHdhcm4gd2hlbiB0aGVyZSBhcmUgbm8KK3RhYmxlcyBpbiB0
aGUgYnVmZmVyLiAgYG5vLWFjdGl2ZS10YWJsZXMnLCBpcyB0aGUgc2FtZSBhcyBgbm8tdGFibGVz
Jword2l0aCB0aGUgYWRkaXRpb24gb2YgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0YWJsZXMsIGJ1
dCBub25lIGFyZSBhY3RpdmUuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiTm8gd2Fy
bmluZ3MiIG5pbCkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkluc2VydCBhIHRhYmxl
IHRlbXBsYXRlIChpZiBpbnRlcmFjdGl2ZSkiIGluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIldhcm4gaWYgbm8gdGFibGVzIHdlcmUgcHJvY2Vzc2VkIiBuby10
YWJsZXMpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJXYXJuIGlmIG5vIGFjdGl2ZSB0
YWJsZXMgd2VyZSBwcm9jZXNzZWQiIG5vLWFjdGl2ZS10YWJsZXMpKQorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy10
b2MtdXBkYXRlLWJlZm9yZS1zYXZlLW1vZGUtbGlnaHRlciAiIFt0b2Mgb24gc2F2ZV0iCisgICJN
aW5vci1tb2RlIFwibGlnaHRlclwiIGZvciBgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUt
c2F2ZS1tb2RlJy4KK05vdGUgdGhlIHNpbmdsZSBzcGFjZSBwcmVmaXguIgorICA6dHlwZSAnKGNo
b2ljZSAoY29uc3QgOnRhZyAiRGVmYXVsdCIgIiBbdG9jIG9uIHNhdmVdIikKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKKyAgICAgICAgICAgICAgICAgKHN0cmluZyA6
dGFnICJPdGhlciBzdHJpbmciKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNp
b24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdG9jLXNsdWctZnVuY3Rpb24gIydt
YXJrZG93bi10cy0tc2x1Zy1naXRodWIKKyAgIkZ1bmN0aW9uIHRvIGdlbmVyYXRlIE1hcmtkb3du
IGhlYWRpbmcgXCJzbHVnc1wiIGluIHRhYmxlcyBvZiBjb250ZW50cy4iCisgIDp0eXBlICcoY2hv
aWNlIChjb25zdCA6dGFnICJHaXRIdWIgc2x1ZyIgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiUGFuZG9jIHNsdWciIG1hcmtkb3duLXRzLS1z
bHVnLXBhbmRvYykKKyAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgIk90aGVyIGZ1bmN0
aW9uIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmdmFyIG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcworICAnKChoZWFkaW5nIC4gKGgxIGgyIGgz
IGg0IGg1IGg2KSkKKyAgICAoc2V0ZXh0IC4gKHNoMSBzaDIpKQorICAgIChpdGVtIC4gKG1pbnVz
IHBsdXMgc3RhcikpCisgICAgKG51bWJlcmVkLWl0ZW0gLiAoZG90IHBhcmVuKSkKKyAgICAoY29k
ZSAuIChjb2RlKSkpCisgICJNYXAgaGlnaCBsZXZlbCBub2RlIGhhbmRsZXMgdG8gdGhlaXIgYmFz
ZSBjb25zdGl0dWVudHMuCitUaGUgc3BlY2lhbCBzeW1ib2wgYGFsbCcgbWVhbnMgYWxsIGhhbmRs
ZXMuIikKKworKGRlZnZhciBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2VzCisgIChsZXQg
KCh4KSkKKyAgICAoZG9saXN0IChlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKQorICAgICAg
KGRvbGlzdCAodmFsIChjZHIgZWx0KSkKKyAgICAgICAgKHB1c2ggYCgsdmFsIC4gLChjYXIgZWx0
KSkgeCkpKQorICAgIHgpCisiSW52ZXJzZSBvZiBgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzJy4i
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy1leHBhbmQtY2FuZGlkYXRlLWhhbmRsZXMgKGhh
bmRsZXMpCisgICJFeHBhbmQgY2FuZGlkYXRlIEhBTkRMRVMgYW5kIGtlZXAgb25seSBiYXNlIGhh
bmRsZXMuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuIgorICAobGV0ICgoZXhwYW5k
ZWQgKG1ha2UtaGFzaC10YWJsZSkpCisgICAgICAgIChyZXMpKQorICAgICh1bmxlc3MgKGxpc3Rw
IGhhbmRsZXMpCisgICAgICAoc2V0cSBoYW5kbGVzIChsaXN0IGhhbmRsZXMpKSkKKyAgICAod2hl
biAoZXF1YWwgaGFuZGxlcyAnKGFsbCkpCisgICAgICAoc2V0cSBoYW5kbGVzIChtYXBjYXIgIydj
YXIgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVzKSkpCisgICAgKGRvbGlzdCAoZWx0IGhhbmRsZXMp
CisgICAgICAoc2V0cSBlbHQgKGFsaXN0LWdldCBlbHQgbWFya2Rvd24tdHMtLXRvYy1oYW5kbGVz
IGVsdCkpCisgICAgICAoY29uZCAoKGNvbnNwIGVsdCkKKyAgICAgICAgICAgICAoZG9saXN0IChr
IGVsdCkgKHB1dGhhc2ggayB0IGV4cGFuZGVkKSkpCisgICAgICAgICAgICAodCAocHV0aGFzaCBl
bHQgdCBleHBhbmRlZCkpKSkKKyAgICAobWFwaGFzaCAobGFtYmRhIChrIF92KSAocHVzaCBrIHJl
cykpIGV4cGFuZGVkKQorICAgIHJlcykpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdG9jcyAoJm9w
dGlvbmFsIGJlZyBlbmQpCisgICJTY2FuIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgdG9jIGVudHJp
ZXMgZnJvbSBCRUcgdG8gRU5ELgorSWYgQkVHIGlzIG5pbCwgdXNlIGBwb2ludC1taW4nLiAgSWYg
RU5EIGlzIG5pbCwgdXNlIGBwb2ludC1tYXgnLgorCitSZXR1cm4gYW4gYWxpc3Qgb2YgdGhlIGZv
cm06CisgIFxcPScoKGtleXdvcmQgKG5vZGUgYmVnIGVuZCB2YXJzKSkpCisKK1ZhcnMgYXJlIGV4
cGFuZGVkIHZpYSBgaGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lJy4KKworUmV0dXJuIHRo
ZSBsaXN0IGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlIGluIHRoZSBidWZmZXIuIgorICA7OyBO
T1RFOiBUaGlzIHNjYW5zIGFsbCBtYXRjaGluZyBub2RlcyBiZWxvdyBCRUcgd2l0aCBubyBtYXhp
bXVtIGNvdW50CisgIDs7IGV2ZW4gd2hlbiB3ZSB3YW50IG9ubHkgYSBzaW5nbGUgbmV4dCBtYXRj
aGluZyBpdGVtLiAgUGVyaGFwcworICA7OyBgdHJlZXNpdC1xdWVyeS1jYXB0dXJlJyBjb3VsZCBi
ZSBpbXByb3ZlZCB0byBhY2NlcHQgYSBtYXgtY291bnQKKyAgOzsgYXJndW1lbnQuCisgIDs7Cisg
IDs7IE1hdGNoICJtYXJrZG93bi10cy10b2M6IiwgIm1hcmtkb3duLXRzLXRvYy1hYmMxMjM6IiBi
dXQgbm90CisgIDs7ICJtYXJrZG93bi10cy10b2N4eHg6Ii4KKyAgKGxldCAoKHJlcykpCisgICAg
KGRvbGlzdCAobm9kZQorICAgICAgICAgICAgICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgJ21hcmtkb3duCisgICAgICAgICAgICAgICcoKCgoaHRtbF9ibG9jaykgQG1hcmtk
b3duLXRzLXRvYykKKyAgICAgICAgICAgICAgICAgKDptYXRjaCAiPCEtLVtbOmJsYW5rOl1dKm1h
cmtkb3duLXRzLXRvY1xcKC1bWzphbG51bTpdXStcXCkqOiIgQG1hcmtkb3duLXRzLXRvYykpKQor
ICAgICAgICAgICAgICAob3IgYmVnIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAob3IgZW5k
IChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAnbm9kZS1vbmx5KSkKKyAgICAgIChsZXQqICgo
cyAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKQorICAgICAgICAgICAgICht
YXRjaCAoc3RyaW5nLW1hdGNoICJcXChtYXJrZG93bi10cy10b2NcXCgtW1s6YWxudW06XV0rXFwp
KlxcKTouKiIgcykpCisgICAgICAgICAgICAgKGtleXdvcmQgKHdoZW4gbWF0Y2ggKG1hdGNoLXN0
cmluZyAxIHMpKSkpCisgICAgICAgIChsZXQgKCh2YXJzKSkKKyAgICAgICAgICAod2l0aC13b3Jr
LWJ1ZmZlcgorICAgICAgICAgICAgKGluc2VydCBzKQorICAgICAgICAgICAgKHNldHEgdmFycyAo
aGFjay1sb2NhbC12YXJpYWJsZXMtcHJvcC1saW5lKSkpCisgICAgICAgICAgKHB1c2gKKyAgICAg
ICAgICAgYCgsa2V5d29yZAorICAgICAgICAgICAgIChub2RlIC4gLG5vZGUpCisgICAgICAgICAg
ICAgKGJlZyAuICwodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgIChlbmQg
LiAsKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgKHZhcnMgLiAsdmFycykp
CisgICAgICAgICAgIHJlcykpKSkKKyAgICAobnJldmVyc2UgcmVzKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tdG9jcy1zYW5pdHktY2hlY2sgKHRvY3MpCisgICJTYW5pdHkgY2hlY2sgVE9DUyBm
b3IgcGFpcmVkIG1hcmtkb3duLXRzLXRvYzogbWFya2Rvd24tdHMtdG9jLWVuZDogbm9kZXMuCitT
aWduYWwgYW4gZXJyb3IgaWYgVE9DUyBhcmUgaW5zYW5lLgorU2VlIGBtYXJrZG93bi10cy0tdG9j
cycuIgorICAoc2VxLW1hcC1pbmRleGVkCisgICAobGFtYmRhIChlbHQgaWR4KQorICAgICAod2hl
biAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciBlbHQpKQorICAgICAgICh1bmxlc3MgKGVx
dWFsICJtYXJrZG93bi10cy10b2MtZW5kIiAoY2FyIChudGggKDErIGlkeCkgdG9jcykpKQorICAg
ICAgICAgKHVzZXItZXJyb3IKKyAgICAgICAgICAiXCJtYXJrZG93bi10cy10b2NcIiBhdCBwb3Np
dGlvbiAlZCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbWF0Y2hpbmcgXCJtYXJrZG93bi10cy10b2Mt
ZW5kXCIiCisgICAgICAgICAgKGFsaXN0LWdldCAnYmVnIGVsdCkpKSkpCisgICB0b2NzKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS10b2MtY29sbGVjdC1jYW5kaWRhdGVzICh0b2Mtc3RhcnQtbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2MtZW5kLW5v
ZGUgaGFuZGxlcyBmcm9tKQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIHRvYyBlbnRyeSBjYW5kaWRh
dGVzIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyLgorSEFORExFUyBpcyBhIGxpc3Qgb2YgYmFzZSBo
YW5kbGVzOyBzZWUgYG1hcmtkb3duLXRzLS10b2MtaGFuZGxlcycuCisKK1RPQy1TVEFSVC1OT0RF
IGlzIHRoZSBcIm1hcmtkb3duLXRzLXRvYy1zdGFydFwiIG5vZGUuCitUT0MtRU5ELU5PREUgaXMg
dGhlIFwibWFya2Rvd24tdHMtdG9jLWVuZFwiIG5vZGUuCisKK0lmIEZST00gaXMgdGhlIHN5bWJv
bCBgYWJvdmUnLCBzb3VyY2UgY2FuZGlkYXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YKK3RoZSBi
dWZmZXIgdW50aWwgdGhlIHRvYyBzdGFydCBub2RlLiAgSWYgYGJlbG93Jywgc291cmNlIGNhbmRp
ZGF0ZXMgZnJvbQordG9jIHN0YXJ0IG5vZGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAg
SWYgYGFsbCcsIHVzZSB0aGUgd2hvbGUKK2J1ZmZlci4KKworUmVtb3ZlIGlnbm9yZWQgY2FuZGlk
YXRlcyBjb250YWluaW5nIFwiPCEtLSBtYXJrZG93bi10cy1pZ25vcmU6IC0tPlwiLgorCitTb3J0
IHRoZSBsaXN0IGJ5IHRoZSBzdGFydGluZyBjaGFyYWN0ZXIgcG9zaXRpb25zIG9mIG5vZGVzLgor
CitUaGUgYWxpc3QgaXMgb2YgdGhlIGZvcm06CisgIFxcPScoKGhhbmRsZSAuIG5vZGUpKSIKKyAg
KGxldCAoY2FuZGlkYXRlcyBiZWcgZW5kKQorICAgIChwY2FzZSBmcm9tCisgICAgICAoJ2Fib3Zl
CisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4pKQorICAgICAgIChzZXRxIGVuZCAodHJlZXNp
dC1ub2RlLXN0YXJ0IHRvYy1zdGFydC1ub2RlKSkpCisgICAgICAoJ2JlbG93CisgICAgICAgKHNl
dHEgYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1lbmQtbm9kZSkpCisgICAgICAgKHNldHEgZW5k
IChwb2ludC1tYXgpKSkKKyAgICAgICgnYWxsCisgICAgICAgKHNldHEgYmVnIChwb2ludC1taW4p
KQorICAgICAgIChzZXRxIGVuZCAocG9pbnQtbWF4KSkpKQorCisgICAgOzsgSXQgbG9va3MgbGlr
ZSB3ZSBjYW5ub3QgZ2V0IHRoZW0gaW4gb25lIGZlbGwgc3dvb3AuCisgICAgKGRvbGlzdCAoZWx0
IGhhbmRsZXMpCisgICAgICAoc2V0cQorICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAoYXBwZW5k
CisgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgKHBjYXNlIGVsdAorICAgICAgICAgICgnaDEg
KHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChhdHhf
aGVhZGluZyAoYXR4X2gxX21hcmtlcikgKGlubGluZSkgQGgxKSkgYmVnIGVuZCkpCisgICAgICAg
ICAgKCdoMiAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgJ21hcmtkb3du
ICcoKGF0eF9oZWFkaW5nIChhdHhfaDJfbWFya2VyKSAoaW5saW5lKSBAaDIpKSBiZWcgZW5kKSkK
KyAgICAgICAgICAoJ2gzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAn
bWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oM19tYXJrZXIpIChpbmxpbmUpIEBoMykpIGJl
ZyBlbmQpKQorICAgICAgICAgICgnaDQgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICdtYXJrZG93biAnKChhdHhfaGVhZGluZyAoYXR4X2g0X21hcmtlcikgKGlubGluZSkg
QGg0KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdoNSAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisg
ICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKGF0eF9oZWFkaW5nIChhdHhfaDVfbWFya2VyKSAo
aW5saW5lKSBAaDUpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ2g2ICh0cmVlc2l0LXF1ZXJ5LWNh
cHR1cmUKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygoYXR4X2hlYWRpbmcgKGF0eF9oNl9t
YXJrZXIpIChpbmxpbmUpIEBoNikpIGJlZyBlbmQpKQorICAgICAgICAgICgnc2gxICh0cmVlc2l0
LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duICcoKHNldGV4dF9oZWFk
aW5nIGhlYWRpbmdfY29udGVudDogKF8pIEBzaDEgKHNldGV4dF9oMV91bmRlcmxpbmUpKSkgYmVn
IGVuZCkpCisgICAgICAgICAgKCdzaDIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAg
ICAgICAgICAnbWFya2Rvd24gJygoc2V0ZXh0X2hlYWRpbmcgaGVhZGluZ19jb250ZW50OiAoXykg
QHNoMiAoc2V0ZXh0X2gyX3VuZGVybGluZSkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ21pbnVz
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygo
bGlzdF9pdGVtIChsaXN0X21hcmtlcl9taW51cykgKHBhcmFncmFwaCAoaW5saW5lKSBAbWludXMp
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdwbHVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMp
IChwYXJhZ3JhcGggKGlubGluZSkgQHBsdXMpKSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdzdGFy
ICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChs
aXN0X2l0ZW0gKGxpc3RfbWFya2VyX3N0YXIpIChwYXJhZ3JhcGggKGlubGluZSkgQHN0YXIpKSkg
YmVnIGVuZCkpCisgICAgICAgICAgKCdkb3QgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIChwYXJh
Z3JhcGggKGlubGluZSkgQGRvdCkpKSBiZWcgZW5kKSkKKyAgICAgICAgICAoJ3BhcmVuICh0cmVl
c2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24gJygobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9wYXJlbnRoZXNpcykgKHBhcmFncmFwaCAoaW5saW5lKSBAcGFyZW4p
KSkgYmVnIGVuZCkpCisgICAgICAgICAgKCdjb2RlICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAg
ICAgICAgICAgICAgICAgICdtYXJrZG93biAnKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJp
bmcgKGxhbmd1YWdlKSkgQGNvZGUpKSBiZWcgZW5kKSkpKSkpCisgICAgKHNvcnQKKyAgICAgKHNl
cS1yZW1vdmUKKyAgICAgIChsYW1iZGEgKGVsdCkKKyAgICAgICAgKHN0cmluZy1tYXRjaC1wICI8
IS0tW1s6Ymxhbms6XV0qbWFya2Rvd24tdHMtaWdub3JlOltbOmJsYW5rOl1dKi0tPiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCAoY2RyIGVsdCkgdCkpKQorICAg
ICAgY2FuZGlkYXRlcykKKyAgICAgOmtleSAobGFtYmRhIChlbHQpCisgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLXN0YXJ0IChjZHIgZWx0KSkpCisgICAgIDpsZXNzcCAjJzwKKyAgICAgOmluLXBs
YWNlIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10b2MtbGlzdC1pdGVtLWRlcHRoIChub2Rl
KQorICAiUmV0dXJuIE5PREUncyBpdGVtIGRlcHRoIHJlbGF0aXZlIHRvIGl0cyBwcmVkZWNlc3Nv
cnMuCitJZiBOT0RFIGlzIG5vdCBwYXJ0IG9mIGEgbGlzdCwgcmV0dXJuIG5pbC4iCisgICAgKGxl
dCAoKGRlcHRoIG5pbCkgKG4gKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgKHdo
aWxlIG4KKyAgICAgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdCIp
CisgICAgICAgICAgKHNldHEgZGVwdGggKDErIChvciBkZXB0aCAwKSkpKQorICAgICAgICAoc2V0
cSBuICh0cmVlc2l0LW5vZGUtcGFyZW50IG4pKSkKKyAgICAgIGRlcHRoKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUgKHRleHQpCisgICJSZW1vdmUgdHJh
aWxpbmcgIyBmcm9tIFRFWFQgdW5sZXNzIHRoZXkgYXJlIGJhY2tzbGFzaCBlc2NhcGVkLgorRmly
c3QgcmVtb3ZlIEhUTUwgY29tbWVudHMuIgorICAoaWYgKHN0cmluZy1tYXRjaC1wICJbWzpibGFu
azpdXSpcXFxcKyMrW1s6Ymxhbms6XV0qXG4qXFwnIiB0ZXh0KQorICAgICAgdGV4dAorICAgIChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIltbOmJsYW5rOl1dKiMrW1s6Ymxhbms6XV0qXG4qXFwn
IiAiIiB0ZXh0KSkpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXRvYy10ZXh0LW5vcm1hbGl6ZXJz
CisgIGAoKGhlYWRpbmcgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQor
ICAgIChoMSAuIG1hcmtkb3duLXRzLS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGgy
IC4gbWFya2Rvd24tdHMtLXRvYy1hdHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDMgLiBtYXJr
ZG93bi10cy0tdG9jLWF0eF9oZWFkZXItbm9ybWFsaXplKQorICAgIChoNCAuIG1hcmtkb3duLXRz
LS10b2MtYXR4X2hlYWRlci1ub3JtYWxpemUpCisgICAgKGg1IC4gbWFya2Rvd24tdHMtLXRvYy1h
dHhfaGVhZGVyLW5vcm1hbGl6ZSkKKyAgICAoaDYgLiBtYXJrZG93bi10cy0tdG9jLWF0eF9oZWFk
ZXItbm9ybWFsaXplKSkKKyAgIk1hcCBub2RlIHR5cGUgaGFuZGxlcyB0byBmdW5jdGlvbnMgdGhh
dCBub3JtYWxpemUgaXRzIHRleHQuCitTZWUgYG1hcmtkb3duLXRzLS10b2MtdGV4dC1ub3JtYWxp
emUnLgorRWFjaCBmdW5jdGlvbiBhY2NlcHRzIG9uZSBhcmd1bWVudCwgdGhlIHN0cmluZyBURVhU
LCBhbmQgcmV0dXJucyBhIHN0cmluZy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRvYy10ZXh0
LW5vcm1hbGl6ZSAoaGFuZGxlIG5vZGUgJm9wdGlvbmFsIHRleHQpCisgICJOb3JtYWxpemUgTk9E
RSdzIFRFWFQgYWNjb3JkaW5nIHRvIGl0cyBIQU5ETEUuCitURVhUIHNob3VsZCBoYXZlIG5vIHRl
eHQgcHJvcGVydGllcy4gIElmIFRFWFQgaXMgbmlsLCB1c2UgdGhlIE5PREUncwordGV4dC4gIFRo
aXMgaXMgbm90IGFsd2F5cyBjb3JyZWN0IHNvIGl0J3MgYmVzdCB0byBwYXNzIFRFWFQgaWYgeW91
IGtub3cKK2l0IGluIHRoZSBjYWxsaW5nIGNvbnRleHQuCisKK0lmIG5vIG5vcm1hbGl6ZXIgaXMg
Zm91bmQsIHJldHVybiBURVhULgorCitPbmUgZXhhbXBsZSBub3JtYWxpemF0aW9uIGlzIGF0eF9o
ZWFkaW5nIHRleHQgdGhhdCBlbmRzIGluIHRyYWlsaW5nIGhhc2gKK3NpZ25zIHdoaWNoIGFyZSBp
bnRlbmRlZCB0byBiZSBlbGlkZWQgc28gXCJIZWFkaW5nIFRleHQgIyNcIiBpcwordHJhbnNmb3Jt
ZWQgaW50byBcIkhlYWRpbmcgVGV4dFwiLiIKKyAgKHNldHEgdGV4dCAob3IgdGV4dCAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSAnbm8tcHJvcGVydHkpKSkKKyAgKGlmLWxldCogKChmaXhlciAoYWxp
c3QtZ2V0IGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplcnMpKSkKKyAgICAg
IChmdW5jYWxsIGZpeGVyIHRleHQpCisgICAgdGV4dCkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVm
aW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisg
ICJJZiBlbmFibGVkLCB1cGRhdGUgYG1hcmtkb3duLXRzLW1vZGUnIHRhYmxlcyBvZiBjb250ZW50
cyBiZWZvcmUgc2F2aW5nLiIKKyAgOmluaXQtdmFsdWUgbmlsCisgIDpnbG9iYWwgbmlsCisgIDps
aWdodGVyIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3JlLXNhdmUtbW9kZS1saWdodGVyCisg
IChpZiAoZGVyaXZlZC1tb2RlLXAgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAoaWYgbWFya2Rv
d24tdHMtdG9jLXVwZGF0ZS1iZWZvcmUtc2F2ZS1tb2RlCisgICAgICAgICAgKGFkZC1ob29rICdi
ZWZvcmUtc2F2ZS1ob29rICMnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlIG5pbCAnbG9jYWwpCisg
ICAgICAgIChyZW1vdmUtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAjJ21hcmtkb3duLXRzLXRvYy1n
ZW5lcmF0ZSAnbG9jYWwpKQorICAgIChzZXRxIG1hcmtkb3duLXRzLXRvYy11cGRhdGUtYmVmb3Jl
LXNhdmUtbW9kZSBuaWwpCisgICAgKGx3YXJuICdtYXJrZG93bi10cy10b2MtdXBkYXRlLWJlZm9y
ZS1zYXZlLW1vZGUKKyAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgIk1pbm9yIG1vZGUg
dmFsaWQgb25seSBpbiBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKSkpCisKKzs7OyMjI2F1
dG9sb2FkCisoZGVmdW4gbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUgKCZvcHRpb25h
bCBiZWcgZW5kKQorICAiUmVtb3ZlIGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50
cyBib2RpZXMgYW5kIHRlbXBsYXRlcy4KK09wZXJhdGUgb24gdGhlIGFjdGl2ZSByZWdpb24gQkVH
IHRvIEVORCwgb3RoZXJ3aXNlIG9wZXJhdGUgb24gdGhlCitidWZmZXIsIHdoaWNoIG1heSBiZSBu
YXJyb3dlZC4iCisgIChpbnRlcmFjdGl2ZSAiUiIpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1u
b3QtbW9kZSAnbWFya2Rvd24tdHMtdG9jLWNsZWFyLWFuZC1yZW1vdmUpCisgIChtYXJrZG93bi10
cy10b2MtY2xlYXIgYmVnIGVuZCAncmVtb3ZlKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBt
YXJrZG93bi10cy10b2MtY2xlYXIgKCZvcHRpb25hbCBiZWcgZW5kIHJlbW92ZSkKKyAgIkNsZWFy
IGBtYXJrZG93bi10cy1tb2RlJyB0YWJsZSBvZiBjb250ZW50cyBib2RpZXMuCitPcGVyYXRlIG9u
IHRoZSBhY3RpdmUgcmVnaW9uIEJFRyB0byBFTkQsIG90aGVyd2lzZSBvcGVyYXRlIG9uIHRoZQor
YnVmZmVyLCB3aGljaCBtYXkgYmUgbmFycm93ZWQuCitJZiBvcHRpb25hbCBSRU1PVkUgaXMgbm9u
LW5pbCwgcmVtb3ZlIHRhYmxlcyBpbmNsdWRpbmcgdGhlaXIgdGVtcGxhdGVzLiIKKyAgKGludGVy
YWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10
cy10b2MtY2xlYXIpCisgIChzZXRxIGJlZyAob3IgYmVnIChwb2ludC1taW4pKSkKKyAgKHNldHEg
ZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNzIChlcSBiZWcgZW5kKQorICAgIDs7
IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlvbnMuCisgICAgKHNldHEgYmVnIChp
ZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVnKSBiZWcpKQorICAgIChzZXRxIGVu
ZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9uIGVuZCkgZW5kKSkKKyAgICA7OyBO
T1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0byBhdm9pZCB0cmVlc2l0ZXIgY3Jh
c2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9uCisgICAgICAobGV0ICgodG9jcykK
KyAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgIChlbmQtcG9zIGVuZCkpCisg
ICAgICAgIDs7IFdlIHNjYW4gZWFjaCBwYXNzIGJlY2F1c2UgdGhlaXIgcG9zaXRpb25zIGNoYW5n
ZS4KKyAgICAgICAgKHdoaWxlIChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAg
ICAgICAgICAoc2V0cSB0b2NzIChtYXJrZG93bi10cy0tdG9jcyBiZWctcG9zIGVuZC1wb3MpKSkK
KyAgICAgICAgICAobWFya2Rvd24tdHMtLXRvY3Mtc2FuaXR5LWNoZWNrIHRvY3MpCisgICAgICAg
ICAgOzsgQWZ0ZXIgc2FuaXR5IGNoZWNraW5nLCB3ZSBrbm93IHRoZSBzZWNvbmQgZWxlbWVudCBp
cyBhCisgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAobGV0KiAoKHRvYyAobnRoIDAg
dG9jcykpCisgICAgICAgICAgICAgICAgICh0b2MtZW5kIChudGggMSB0b2NzKSkKKyAgICAgICAg
ICAgICAgICAgKHJlZy1iZWcgKGlmIHJlbW92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFsaXN0LWdldCAnYmVnIHRvYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxp
c3QtZ2V0ICdlbmQgdG9jKSkpCisgICAgICAgICAgICAgICAgIChyZWctZW5kIChpZiByZW1vdmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1nZXQgJ2JlZyB0b2MtZW5kKSkpCisg
ICAgICAgICAgICAgICAgIChyZWctc2l6ZSAoLSByZWctZW5kIHJlZy1iZWcpKSkKKyAgICAgICAg
ICAgIChkZWxldGUtcmVnaW9uIHJlZy1iZWcgcmVnLWVuZCkKKyAgICAgICAgICAgIDs7IFN0YXJ0
IHRoZSBuZXh0IHBhc3MgYWZ0ZXIgdGhpcyB0b2MtZW5kLiAgQWRqdXN0IGZvciB0aGUKKyAgICAg
ICAgICAgIDs7IGRlbGV0ZWQgcmVnaW9uLgorICAgICAgICAgICAgKHNldHEgYmVnLXBvcyAoLSAo
YWxpc3QtZ2V0ICdlbmQgdG9jLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
LXNpemUpKQorICAgICAgICAgICAgKHNldHEgZW5kLXBvcyAobWluIChwb2ludC1tYXgpICgtIGVu
ZC1wb3MgcmVnLXNpemUpKSkpKSkpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBtYXJrZG93
bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGBt
YXJrZG93bi10cy1tb2RlYCB0YWJsZSBvZiBjb250ZW50cyB0ZW1wbGF0ZSBhdCBwb2ludC4KKwor
Q0hBUiBpcyB0aGUgdGVtcGxhdGUgdHlwZSBcImJcIiBmb3IgYmFzaWMsIFwiY1wiIGZvciBjb21w
bGV0ZS4gIElmIENIQVIKK2lzIG5pbCBhbmQgdGhlIGNvbW1hbmQgaXMgcnVuIGludGVyYWN0aXZl
bHksIHByb21wdCBmb3IgYSB0ZW1wbGF0ZS4KKworVGhlIGJhc2ljIHRlbXBsYXRlIHVzZXMgYWxs
IGRlZmF1bHRzIGFuZCBpcyBsaWtlbHkgdGhlIGJlc3QgY2hvaWNlIGZvcgorbW9zdCB1c2VzLiAg
VGhlIGNvbXBsZXRlIHRlbXBsYXRlIGlsbHVzdHJhdGVzIGFsbCBwYXJhbWV0ZXJzIHNldCB0bwor
dGhlaXIgZGVmYXVsdHMgYW5kIGlzIHVzZWZ1bCBhcyBhIHN0YXJ0aW5nIHBvaW50IHRvIGN1c3Rv
bWl6ZSBhIHRhYmxlLiIKKyAgKGludGVyYWN0aXZlICJjVGVtcGxhdGUgW2JdYXNpYyBbY11vbXBs
ZXRlOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9iCisgICAgIChpbnNlcnQgIjwhLS0gbWFya2Rv
d24tdHMtdG9jOiAtLT5cbiIKKyAgICAgICAgICAgICAiPCEtLSBtYXJrZG93bi10cy10b2MtZW5k
OiAtLT5cbiIpKQorICAgICg/YworICAgICAoaW5zZXJ0ICI8IS0tIG1hcmtkb3duLXRzLXRvYzog
LSotICIKKyAgICAgICAgICAgICAibWluLWRlcHRoOiAxOyAiCisgICAgICAgICAgICAgIm1heC1k
ZXB0aDogbmlsOyAiCisgICAgICAgICAgICAgImNhbmRpZGF0ZXM6IChoZWFkaW5nKTsgIgorICAg
ICAgICAgICAgICJmcm9tOiBiZWxvdzsgIgorICAgICAgICAgICAgICJzdHlsZTogaXRlbTsgIgor
ICAgICAgICAgICAgICJpbmRlbnQ6IDE7ICIKKyAgICAgICAgICAgICAibm8tbGluazogbmlsOyAi
CisgICAgICAgICAgICAgInJlbGF0aXZlLWRlcHRoOiBuaWw7ICIKKyAgICAgICAgICAgICAiaWdu
b3JlOiBuaWw7ICIKKyAgICAgICAgICAgICAiLSotIC0tPlxuIgorICAgICAgICAgICAgICI8IS0t
IG1hcmtkb3duLXRzLXRvYy1lbmQ6IC0tPlxuIikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1
Y2ggdGVtcGxhdGUgdHlwZTogJWMiIGNoYXIpKSkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4g
bWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlICgmb3B0aW9uYWwgaW50ZXJhY3RpdmUgYmVnIGVuZCkK
KyAgIkdlbmVyYXRlIHRhYmxlcyBvZiBjb250ZW50cyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitg
bWFya2Rvd24tdHMtbW9kZScgdXNlcyBNYXJrZG93biBIVE1MIGNvbW1lbnQgZWxlbWVudHMgdG8g
aWRlbnRpZnkgdGFibGUKK29mIGNvbnRlbnRzIChha2EgdG9jKSBpbnNlcnRpb24gYm91bmRhcmll
cyBhbmQgdGhlIHBhcmFtZXRlcnMgZm9yIGVhY2gKK3RhYmxlLiAgRGVyaXZlIHRhYmxlIGNvbnRl
bnQgZnJvbSB0aGUgTWFya2Rvd24gZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQKK2J1ZmZlciB3aGlj
aCBhcmUgdXN1YWxseSBoZWFkaW5ncyBidXQgY2FuIGFsc28gYmUgbGlzdCBpdGVtcywgc2V0ZXh0
CitoZWFkZXJzLCBuYW1lZCBjb2RlIGJsb2Nrcy4KKworT3BlcmF0ZSBvbiB0aGUgYWN0aXZlIHJl
Z2lvbiBCRUcgdG8gRU5ELCBvdGhlcndpc2Ugb3BlcmF0ZSBvbiB0aGUKK2J1ZmZlciwgd2hpY2gg
bWF5IGJlIG5hcnJvd2VkLgorCitFYWNoIHRpbWUgeW91IHJ1biB0aGlzIGNvbW1hbmQsIGV4aXN0
aW5nIHRhYmxlcyBvZiBjb250ZW50cyBhcmUgY2xlYXJlZAorYW5kIHJlZnJlc2hlZCB3aXRoIG5l
dyBjb250ZW50LiAgU28gZG9uJ3QgcGxhY2UgdG9jIGVsZW1lbnRzIGFyb3VuZAoraW1wb3J0YW50
IHRleHQuCisKK1RoZSBidWZmZXIgY2FuIGhhdmUgb25lIG9yIG1vcmUgdG9jcy4gIEJ5IGRlZmF1
bHQsIHBvcHVsYXRlIGVhY2ggdG9jCit3aXRoIGVsZW1lbnRzIHRoYXQgYXBwZWFyIGluIHRoZSBi
dWZmZXIgYmVsb3cgdGhlIHRvYy4gIFRoZXJlZm9yZSwgdGhlCitlYXNpZXN0IHdheSB0byBpbnNl
cnQgYSBjb21wbGV0ZSB0YWJsZSBvZiBjb250ZW50cywgaXMgdG8gcHV0IHRoZSB0b2MKK3RlbXBs
YXRlIG5lYXIgdGhlIHRvcCBvZiB5b3VyIGJ1ZmZlci4KKworQSBiYXNpYyBlbXB0eSB0b2MgdGVt
cGxhdGUgbG9va3MgbGlrZSB0aGlzOgorCitIZWFkZXIgdGV4dCB5b3Ugd2FudCBoZXJlLgorCis8
IS0tIG1hcmtkb3duLXRzLXRvYzogLS0+CitDb250ZW50cyBpbnNlcnRlZCBiZXR3ZWVuIHRoZXNl
IGVsZW1lbnRzLgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworRm9vdGVyIHRleHQg
eW91IHdhbnQgaGVyZS4KKworVXNlIHRoZSBjb21tYW5kIGBtYXJrZG93bi10cy10b2MtaW5zZXJ0
LXRlbXBsYXRlJyB0byBpbnNlcnQgYSB0YWJsZSBvZgorY29udGVudHMgdGVtcGxhdGUuCisKK1Vz
ZSB0aGUgY29tbWFuZCBgbWFya2Rvd24tdHMtdG9jLWNsZWFyJyB0byBjbGVhciB0YWJsZSBjb250
ZW50LCBhbmQgdGhlCitjb21tYW5kIGBtYXJrZG93bi10cy10b2MtY2xlYXItYW5kLXJlbW92ZScg
dG8gYm90aCBjbGVhciBhbmQgcmVtb3ZlCit0YWJsZSBjb250ZW50IGFuZCB0ZW1wbGF0ZXMuCisK
K0J5IGRlZmF1bHQsIGEgdG9jIGluY2x1ZGVzIGhlYWRlcnMgYXQgYWxsIGxldmVscyBiZWxvdyB0
aGUgdG9jIHdoaWNoIGFyZQorcHJlc2VudGVkIGFzIGxpc3QgaXRlbXMgd2l0aCBsaW5rcy4KKwor
VG8gaWdub3JlIGEgTWFya2Rvd24gZWxlbWVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBpbmNs
dWRlZCBpbiB0aGUKK3RvYywgYWRkIGEgdG9jIGlnbm9yZSBlbGVtZW50OgorCisjIyBJZ25vcmUg
TWUgPCEtLSBtYXJrZG93bi10cy10b2MtaWdub3JlOiAtLT4KKworVGhlIHN0YXJ0aW5nIHRvYyBl
bGVtZW50IGFjY2VwdHMgcGFyYW1ldGVycyBpbiB0aGUgc3ludGF4IG9mIEVtYWNzIGZpbGUKK3Zh
cmlhYmxlcy4KKworRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgdGFibGUg
b2YgY29udGVudHMgbGltaXRlZCB0bworaGVhZGluZ3MgdHdvIGxldmVscyBkZWVwOgorCis8IS0t
IG1hcmtkb3duLXRzLXRvYzogLSotIG1heC1kZXB0aDogMjsgLSotIC0tPgorPCEtLSBtYXJrZG93
bi10cy10b2MtZW5kOiAtLT4KKworT3IgdXNlIG9ubHkgaGVhZGluZ3MgdHdvIGFuZCB0aHJlZSBs
ZXZlbHMgZGVlcC4KKworPCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSBtaW4tZGVwdGg6IDI7IG1h
eC1kZXB0aDogMzsgLSotIC0tPgorPCEtLSBtYXJrZG93bi10cy10b2MtZW5kOiAtLT4KKworVGhl
c2UgYXJlIHRoZSBzdXBwb3J0ZWQgcGFyYW1ldGVycyB3aGljaCBhcmUgb3B0aW9uYWwuICBUaGV5
IGVhY2ggbGlzdAordGhlaXIgZGVmYXVsdHMuCisKKyAgbWluLWRlcHRoOiAxICAgICAgICAgIDsg
YW4gaW50ZWdlcgorICBtYXgtZGVwdGg6IG5pbCAgICAgICAgOyBhbiBpbnRlZ2VyCisgIGNhbmRp
ZGF0ZXM6IChoZWFkaW5nKSA7IGEgbGlzdAorICBmcm9tOiBiZWxvdyAgICAgICAgICAgOyBhIHN5
bWJvbAorICBzdHlsZTogaXRlbSAgICAgICAgICAgOyBhIHN5bWJvbAorICBpbmRlbnQ6IDEgICAg
ICAgICAgICAgOyBhIG51bWJlcgorICBuby1saW5rOiBuaWwgICAgICAgICAgOyBhIGJvb2xlYW4K
KyAgcmVsYXRpdmUtZGVwdGg6IG5pbCAgIDsgYSBib29sZWFuCisgIGlnbm9yZTogbmlsICAgICAg
ICAgICA7IGEgYm9vbGVhbgorCitgbWluLWRlcHRoJyBhbmQgYG1heC1kZXB0aCcgYm90aCBkZWZh
dWx0IHRvIHVzaW5nIGFsbCBjYW5kaWRhdGVzIGF0CitldmVyeSBsZXZlbC4gIFVzZSBgbWluLWRl
cHRoJyB0byBpZ25vcmUgbGV2ZWwgMSBoZWFkaW5ncyBsaWtlIFwiIworSGVhZGluZ1wiLCBieSB1
c2luZyAyLiAgVXNlIGBtYXgtZGVwdGgnIHRvIGNvbnRyb2wgaG93IGRlZXAgaW50byB0aGUKK2hl
YWRpbmcgaGllcmFyY2h5IHlvdSBuZWVkIHlvdXIgdG9jIHRvIGdvLiAgVXNlIDMgdG8gc3RvcCBh
dCBsZXZlbCB0aHJlZQoraGVhZGluZ3MuCisKK0hlYWRpbmdzIGRpY3RhdGUgdGhlIGxldmVsIG9m
IHRoZWlyIGNoaWxkcmVuIGV2ZW4gaWYgaGVhZGluZ3MgYXJlCitleGNsdWRlZCBmcm9tIGNhbmRp
ZGF0ZXMuICBPdGhlciBlbGVtZW50IHR5cGVzIGluaGVyaXQgdGhlIGxldmVsIG9mCit0aGVpciBw
cmVjZWRpbmcgaGVhZGluZy4KKworYGNhbmRpZGF0ZXMnIGlzIGEgbGlzdCBhbmQgY2FuIGNvbnRh
aW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgTWFya2Rvd24KK2VsZW1lbnQgc2hvcnRjdXQgbmFtZXMu
ICBZb3UgY2FuIG1peCBoaWdoZXItbGV2ZWwgZ3JvdXBpbmcgc3ltYm9scyBhbmQKK2xvd2VyIGxl
dmVsIHN5bWJvbHMuCisKKyAgYWxsIChpbmNsdWRlcyBldmVyeXRoaW5nKQorICBoZWFkaW5nIChp
bmNsdWRlcyB0aGUgYmVsb3cpCisgICAgaDEgaDIgaDMgaDQgaDUgaDYKKyAgc2V0ZXh0IChpbmNs
dWRlcyB0aGUgYmVsb3cpCisgICAgc2gxIHNoMgorICBpdGVtIChpbmNsdWRlcyB0aGUgYmVsb3cp
CisgICAgbWludXMgcGx1cyBzdGFyCisgIG51bWJlcmVkLWl0ZW0gKGluY2x1ZGVzIHRoZSBiZWxv
dykKKyAgICBkb3QgcGFyZW4KKyAgY29kZSAobmFtZWQgY29kZSBibG9ja3MpCisKK2Bmcm9tJyBj
b250cm9scyB0aGUgZGlyZWN0aW9uIGFuZCBzY29wZSBmcm9tIHdoaWNoIGNhbmRpZGF0ZXMgYXJl
CitzZWxlY3RlZC4gIFR5cGljYWxseSwgYSB0b2MgaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBidWZmZXIgYW5kCitgZnJvbScgaXMgYGJlbG93JyB0byBjYXB0dXJlIGVudHJ5IGNhbmRp
ZGF0ZXMgYWZ0ZXIgdGhlIHRvYy4gIElmIHlvdSBzZXQKK2Bmcm9tJyB0byBgYWJvdmUnLCBjYW5k
aWRhdGVzIGFyZSBzZWxlY3RlZCBmcm9tIGFib3ZlIHRoZSB0b2MuICBVc2UKK2BhbGwnIHRvIGNh
cHR1cmUgZXZlcnkgZW50cnkgY2FuZGlkYXRlLiAgVGhpcyBpcyB1c2VmdWwgdG8gY3JlYXRlIGEK
K2NvbXBsZXRlIHRvYyBhdCB0aGUgZW5kIG9mIHlvdXIgYnVmZmVyLgorCitUaGUgYHN0eWxlJyBw
YXJhbWV0ZXIgY2FuIGJlIG5pbCwgYGl0ZW0nLCBgbnVtYmVyJyBvciBgbnVtYmVyLicuICBVbmRl
cgorbmlsLCBlbnRyaWVzIGhhdmUgbm8gZGVjb3JhdGlvbnMuICBJZiBgaXRlbScsIGVudHJpZXMg
YXJlIHByZWZpeGVkIHdpdGgKK1wiLVwiLiAgSWYgYGJ1bGxldCcsIHByZWZpeCB3aXRoIFwiKlwi
LiAgSWYgYG51bWJlcicsIG51bWVyaWMgcHJlZml4ZXMKK2FyZSBnZW5lcmF0ZWQsIGZvciBleGFt
cGxlIDEsIDEuMSwgMiwgMi4xLCAyLjEuMSwgMi4xLjIuICBVc2UgYG51bWJlci4nCit0byBhZGQg
YSBwZXJpb2QgdG8gZWFjaCBlbnRyeSdzIG51bWJlci4KKworYGluZGVudCcgaXMgYW4gaW50ZWdl
ciBiZXR3ZWVuIDAgYW5kIDEwLiAgMCBtZWFucyBub3RoaW5nIHNob3VsZCBiZQoraW5kZW50ZWQu
ICBPdGhlcndpc2UsIGVhY2ggZW50cnkgaXMgaW5kZW50ZWQgYnkgdGhlIG51bWJlciBvZiBzcGFj
ZXMgb2YKK2l0cyBNYXJrZG93biBsZXZlbCBtdWx0aXBsaWVkIGJ5IHRoaXMgdmFsdWUuICBDYW5k
aWRhdGVzIHRoYXQgaGF2ZSBubworbmF0aXZlIGxldmVsIHN1Y2ggYXMgbGlzdCBpdGVtcyBpbmhl
cml0IHRoZSBiYXNlIGluZGVudGF0aW9uIGxldmVsIG9mCitpdHMgcHJlY2VkaW5nIGhlYWRlci4g
IExpc3QgaXRlbSBoaWVyYXJjaGllcyBhbmQgY29kZSBibG9ja3MgaW5kZW50Cit1bmRlciB0aGF0
IGJhc2UuCisKK1NldCBgbm8tbGluaycgdG8gdCBpZiB5b3UgZG8gbm90IHdhbnQgeW91ciBlbnRy
aWVzIHRvIGhhdmUgaGVhZGVyIGxpbmtzLgorQnkgZGVmYXVsdCwgZWFjaCBlbnRyeSBkZXJpdmVk
IGZyb20gYSBoZWFkaW5nIGlzIHByZXNlbnRlZCBhcyBhIGxpbmsgdG8KK2l0cyBzb3VyY2UgaGVh
ZGluZy4gIE5PVEU6IFRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSBgc2V0ZXh0JywgYGl0ZW0n
LAorYG51bWJlcmVkLWl0ZW0nLCBgY29kZScgZG8gbm90IHN1cHBvcnQgbGlua3MuCisKK1VzZSBg
cmVsYXRpdmUtZGVwdGgnIHRvIGNyZWF0ZSBhIHRvYyB1bmRlcm5lYXRoIGEgaGVhZGluZywgbGlt
aXRpbmcgdGhlCit0b2MgdG8gaGVhZGluZyBkZXB0aHMgdW5kZXJuZWF0aCB0aGUgcHJlY2VkaW5n
IGhlYWRlciBhbmQgc3BlY2lmeSB0aGUKK2xldmVscyByZWxhdGl2ZSB0byB0aGF0IGhlYWRlci4g
IE1vcmUgY29uY3JldGVseSwgaWYgdGhlIHByZWNlZGluZworaGVhZGVyIGlzIGEgbGV2ZWwgMSBc
IiNcIiBoZWFkZXIsIGBtaW4tZGVwdGgnIDEgYW5kIGBtYXgtZGVwdGgnIDIgd2lsbAorYmUgaW50
ZXJwcmV0ZWQgdG8gYmUgMiBhbmQgMy4gIElmIHlvdSBkZW1vdGUgdGhlIGhlYWRlciB0byBsZXZl
bCAyCitcIiMjXCIgdGhleSB3aWxsIGJlIGludGVycHJldGVkIGFzIDMgYW5kIDQuICBUaGlzIGlz
IHVzZWZ1bCB0byBhdm9pZAorZnVzc2luZyB3aXRoIHRvYyBjb25maWd1cmF0aW9ucyB1bmRlciBo
ZWFkZXJzIHdoZW4geW91IGNoYW5nZSB0aGVpcgorbGV2ZWxzLgorCitGb3IgZXhhbXBsZToKKwor
PCEtLSBtYXJrZG93bi10cy10b2M6IC0qLSByZWxhdGl2ZS1kZXB0aDogdDsgbWluLWRlcHRoOiAx
OyBtYXgtZGVwdGg6IDI7IC0qLSAtLT4KKzwhLS0gbWFya2Rvd24tdHMtdG9jLWVuZDogLS0+CisK
K0ZpbmFsbHksIGlmIGBpZ25vcmUnIGlzIHQsIHlvdSBjYW4ga2VlcCBhIHRvYyBlbGVtZW50IGlu
IHBsYWNlIGFuZCBza2lwCitpdC4KKworSU5URVJBQ1RJVkUgd2lsbCBiZSBub24tbmlsIGlmIHRo
aXMgY29tbWFuZCB3YXMgaW52b2tlZCBpbnRlcmFjdGl2ZWx5LgorCitTZWUgYG1hcmtkb3duLXRz
LXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUnIHRvIGNvbmZpZ3VyZSB3YXJuaW5ncyBhYm91dAor
dGFibGVzIG5vdCBiZWluZyBwcm9jZXNzZWQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4i
CisgIChpbnRlcmFjdGl2ZSAicFxuUiIpCisgIDs7IE5PVEU6IElmIHBhcmFtZXRlcnMgb3IgdGhl
aXIgZGVmYXVsdHMgY2hhbmdlLCBiZSBzdXJlIHRvIG1pcnJvcgorICA7OyB0aGVtIGluIGBtYXJr
ZG93bi10cy10b2MtaW5zZXJ0LXRlbXBsYXRlJy4KKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5v
dC1tb2RlICdtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUpCisgIChzZXRxIGJlZyAob3IgYmVnIChw
b2ludC1taW4pKSkKKyAgKHNldHEgZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorICAodW5sZXNz
IChlcSBiZWcgZW5kKQorICAgIDs7IENvbnZlcnQgbWFya2VycyB0byBhYnNvbHV0ZSBwb3NpdGlv
bnMuCisgICAgKHNldHEgYmVnIChpZiAobWFya2VycCBiZWcpIChtYXJrZXItcG9zaXRpb24gYmVn
KSBiZWcpKQorICAgIChzZXRxIGVuZCAoaWYgKG1hcmtlcnAgZW5kKSAobWFya2VyLXBvc2l0aW9u
IGVuZCkgZW5kKSkKKyAgICA7OyBOT1RFOiBPcGVyYXRlIG9uIHRoZSB3aWRlbmVkIGJ1ZmZlciB0
byBhdm9pZCB0cmVlc2l0ZXIgY3Jhc2ggaXNzdWVzLgorICAgICh3aXRob3V0LXJlc3RyaWN0aW9u
CisgICAgICAobGV0ICgodG9jcyAobWFya2Rvd24tdHMtLXRvY3MgYmVnIGVuZCkpKQorICAgICAg
ICAodW5sZXNzIHRvY3MKKyAgICAgICAgICAoaWYgKGFuZCBpbnRlcmFjdGl2ZQorICAgICAgICAg
ICAgICAgICAgIChlcSAnaW5zZXJ0LXRlbXBsYXRlIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13
YXJuLWlmLW5vbmUpKQorICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtdG9jLWluc2VydC10ZW1wbGF0ZSkKKyAgICAgICAgICAgICAgICA7OyBJZiB0aGUg
dXNlciBkaWRuJ3QgcXVpdCB0aGUgcHJvbXB0LCBhIHRlbXBsYXRlIG1heSBoYXZlCisgICAgICAg
ICAgICAgICAgOzsgYmVlbiBhZGRlZCwgc28gcmVzY2FuIHRoZSBidWZmZXIuCisgICAgICAgICAg
ICAgICAgKHNldHEgdG9jcyAobWFya2Rvd24tdHMtLXRvY3MpKSkKKyAgICAgICAgICAgICh3aGVu
IChlcSAnbm8tdGFibGVzIG1hcmtkb3duLXRzLXRvYy1nZW5lcmF0ZS13YXJuLWlmLW5vbmUpCisg
ICAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVyYXRlCisgICAgICAgICAg
ICAgICAgICAgICA6d2FybmluZworICAgICAgICAgICAgICAgICAgICAgIk5vIHRhYmxlcyBvZiBj
b250ZW50cyBmb3VuZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUg
KGN1cnJlbnQtYnVmZmVyKSkpKSkpCisgICAgICAgIChtYXJrZG93bi10cy0tdG9jcy1zYW5pdHkt
Y2hlY2sgdG9jcykKKworICAgICAgICA7OyBTdHJhdGVneSBpcyBwcm9jZXNzIG9uZSB0b2MgYXQg
YSB0aW1lIGZyb20gdGhlIHRvcCB0byB0aGUKKyAgICAgICAgOzsgYm90dG9tIG9mIHRoZSByYW5n
ZSBCRUcgRU5ELiAgU3Vic2VxdWVudCB0b2MgYW5kIGVudHJ5CisgICAgICAgIDs7IGNhbmRpZGF0
ZSBub2RlIHBvc2l0aW9ucyBjaGFuZ2UgYXMgd2UgdXBkYXRlIGVhY2ggdG9jIHRleHQgc28KKyAg
ICAgICAgOzsgd2UgaGF2ZSB0byByZXRyaWV2ZSB0aGVtIGZyZXNoIGZyb20gdGhlIGVuZCBvZiB0
aGUgbW9zdCByZWNlbnQKKyAgICAgICAgOzsgdG9jLgorICAgICAgICAobGV0ICgodG9jcykKKyAg
ICAgICAgICAgICAgKG51bS10b2NzLXByb2Nlc3NlZCAwKQorICAgICAgICAgICAgICAodG9jKQor
ICAgICAgICAgICAgICAodG9jLWVuZCkKKyAgICAgICAgICAgICAgKHRvYy1zaXplKQorICAgICAg
ICAgICAgICA7OyBUaGVzZSBhcmUgYWRqdXN0ZWQgYnkgdGhlIHNpemUgb2YgaW5zZXJ0ZWQgdGV4
dCBlYWNoIHBhc3MuCisgICAgICAgICAgICAgIChiZWctcG9zIGJlZykKKyAgICAgICAgICAgICAg
KGVuZC1wb3MgZW5kKQorICAgICAgICAgICAgICAoc291cmNlLWJ1ZmZlciAoY3VycmVudC1idWZm
ZXIpKSkKKyAgICAgICAgICA7OyBGaW5kIGVhY2ggIm1hcmtkb3duLXRzLXRvYyIgaW4gc3VjY2Vz
c2lvbiBzdGFydGluZyBhdCB0aGUgZW5kCisgICAgICAgICAgOzsgb2YgZWFjaCBwcmV2aW91cyBv
bmUgd2UgZmluZCB3aXRoaW4gdGhlIHJlcXVlc3RlZCByZWdpb24uCisgICAgICAgICAgKHdoaWxl
IChhbmQgKDwgYmVnLXBvcyBlbmQtcG9zKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHRv
Y3MgKG1hcmtkb3duLXRzLS10b2NzIGJlZy1wb3MgZW5kLXBvcykpKQorICAgICAgICAgICAgKHNl
dHEgdG9jIChjYXIgdG9jcykpCisgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAwKQorCisgICAg
ICAgICAgICAod2hlbiAoZXF1YWwgIm1hcmtkb3duLXRzLXRvYyIgKGNhciB0b2MpKQorICAgICAg
ICAgICAgICA7OyBBZnRlciBzYW5pdHkgY2hlY2tpbmcsIHdlIGtub3cgdGhlIHNlY29uZCBlbGVt
ZW50IGlzIGEKKyAgICAgICAgICAgICAgOzsgdG9jLWVuZC4KKyAgICAgICAgICAgICAgKHNldHEg
dG9jLWVuZCAobnRoIDEgdG9jcykpCisgICAgICAgICAgICAgIChsZXQqICgodG9jLW5vZGUgKGFs
aXN0LWdldCAnbm9kZSB0b2MpKQorICAgICAgICAgICAgICAgICAgICAgKHRvYy12YXJzIChhbGlz
dC1nZXQgJ3ZhcnMgdG9jKSkKKyAgICAgICAgICAgICAgICAgICAgICh0b2MtaWdub3JlIChhbGlz
dC1nZXQgJ2lnbm9yZSB0b2MtdmFycykpKQorICAgICAgICAgICAgICAgICh1bmxlc3MgdG9jLWln
bm9yZQorICAgICAgICAgICAgICAgICAgOzsgQnVpbGQgdGhlIHRvYyBvbmUgY2FuZGlkYXRlIGF0
IGEgdGltZSwgdHJhY2tpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGluZGVudGF0aW9uIGFuZCBj
cmVhdGluZyBsaW5rcyBpZiBuZWVkZWQuCisgICAgICAgICAgICAgICAgICAobGV0KiAoKHRvYy1l
bmQtbm9kZSAoYWxpc3QtZ2V0ICdub2RlIHRvYy1lbmQpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgIChyZWctYmVnICh0cmVlc2l0LW5vZGUtZW5kIHRvYy1ub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVnLWVuZCAodHJlZXNpdC1ub2RlLXN0YXJ0IHRvYy1lbmQtbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1oYW5kbGVzIChtYXJrZG93bi10cy0tdG9jLWV4
cGFuZC1jYW5kaWRhdGUtaGFuZGxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG9yIChjZHItc2FmZSAoYXNzcSAnY2FuZGlkYXRlcyB0b2MtdmFycykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRpbmcpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBOb3cgYWRkIGhlYWRpbmdzIHRvIGFsd2F5cyByZXRyaWV2ZSBh
bmQgZGVyaXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbGV2ZWxzIGV2ZW4gaWYgdGhl
eSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgdG9jLgorICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWVkLWhhbmRsZXMgKGNvcHktdHJlZSB0b2MtaGFuZGxlcykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKF8gKGRvbGlzdCAoZWx0IChhbGlzdC1nZXQgJ2hlYWRpbmcgbWFya2Rvd24tdHMtLXRv
Yy1oYW5kbGVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1wdXNobmV3IGVs
dCBzZWVkLWhhbmRsZXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLWZyb20gKG9y
IChjZHItc2FmZSAoYXNzcSAnZnJvbSB0b2MtdmFycykpICdiZWxvdykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRvYy1zdHlsZSAob3IgKGNkci1zYWZlIChhc3NxICdzdHlsZSB0b2MtdmFy
cykpICdpdGVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9jLW5vLWxpbmsgKGFsaXN0
LWdldCAnbm8tbGluayB0b2MtdmFycykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1p
bmRlbnQgKG1pbiAxMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1heCAwIChvciAoY2RyLXNhZmUgKGFzc3EgJ2luZGVudCB0b2MtdmFycykpIDEpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRvYy1taW4tZGVwdGggKG1heCAxCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtaW4t
ZGVwdGggdG9jLXZhcnMpKSAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1tYXgt
ZGVwdGggKG1heCB0b2MtbWluLWRlcHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAob3IgKGNkci1zYWZlIChhc3NxICdtYXgtZGVwdGggdG9jLXZhcnMpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3QtcG9z
aXRpdmUtZml4bnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1k
ZXB0aCAoY2RyLXNhZmUgKGFzc3EgJ3JlbGF0aXZlLWRlcHRoIHRvYy12YXJzKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRvYy1jYW5kaWRhdGVzIChtYXJrZG93bi10cy0tdG9jLWNvbGxl
Y3QtY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9jLW5vZGUgdG9jLWVuZC1ub2RlIHNlZWQtaGFuZGxlcyB0b2MtZnJvbSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRvYy1yZWxhdGl2ZS1oZWFkaW5nLWRlcHRoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxKyAob3IgKHNlcS1wb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKCJhdHhfaDFfbWFya2VyIiAiYXR4X2gyX21hcmtlciIgImF0eF9oM19t
YXJrZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0eF9oNF9tYXJr
ZXIiICJhdHhfaDVfbWFya2VyIiAiYXR4X2g2X21hcmtlciIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdHlwZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRvYy1ub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhdHhfaGVhZGluZyIgJ2JhY2t3YXJkKSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZXF1YWwpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLTEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2x1Zy10by1w
b3MgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkcykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHBvcy10by1zbHVnCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChodCAobWFrZS1o
YXNoLXRhYmxlIDpzaXplIChoYXNoLXRhYmxlLWNvdW50IHNsdWctdG8tcG9zKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ2VxdWFs
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGhhc2ggKGxhbWJkYSAoayB2KSAo
cHV0aGFzaCB2IGsgaHQpKSBzbHVnLXRvLXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBodCkpKQorCisgICAgICAgICAgICAgICAgICAgICh3aXRoLXdvcmstYnVmZmVyCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydCAiPCEtLSBOT1RFOiBtYXJrZG93bi10cy10b2MgZ2VuZXJh
dGVkIHRleHQgc2VjdGlvbiBtYXkgYmUgb3ZlcndyaXR0ZW4uIC0tPlxuIikKKyAgICAgICAgICAg
ICAgICAgICAgICAobGV0ICgoaGFuZGxlKSAoaGFuZGxlLWNsYXNzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmRlbnQg
MCkgKGxldmVsIDEpIChsZXZlbC1wcmV2IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OzsgSGVhZGluZyBsZXZlbCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaXRlbXMgdW5kZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7OyBpdC4gIElmIHRoZXJlIGFyZSBubyBoZWFkaW5ncywg
aXQgd2lsbCByZW1haW4gMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV2ZWwtaGVh
ZGluZyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBmb3Igbm9uIGhl
YWRpbmdzIHVuZGVyIGhlYWRpbmdzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudW1i
ZXItc3RhY2spKQorCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBDYW5kaWRhdGVzIHNob3Vs
ZCBiZSBpbiBidWZmZXIgb3JkZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChj
YW5kaWRhdGUgdG9jLWNhbmRpZGF0ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg
KChzbHVnLXBvcykgKHRleHQpIChsaW5rLXRhcmdldCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxldmVsLWFkaiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBoYW5kbGUgKGNhciBjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlLWNsYXNzIChhbGlzdC1nZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRsZSBtYXJrZG93bi10cy0tdG9jLWhhbmRsZS1jbGFzc2Vz
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBub2RlIChjZHIgY2FuZGlkYXRl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBzbHVnLXBvcyBuaWwpCisKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTdHJpcCB0cmFpbGluZyBuZXdsaW5lcy4gIEFk
ZCB0aGVtIGNvbnNpc3RlbnRseSBiZWxvdy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2V0cSB0ZXh0IChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdG9jLXRleHQtbm9ybWFsaXplCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZSBub2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlICduby1w
cm9wZXJ0eSkpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZSBu
b2RlIHR5cGUgbG9naWMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlIGhhbmRs
ZS1jbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdoZWFkaW5nCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHNlcS1wb3NpdGlvbiAnKGgxIGgyIGgz
IGg0IGg1IGg2KSBoYW5kbGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZXRxIHNsdWctcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCBub2RlICJh
dHhfaGVhZGluZyIgJ2JhY2t3YXJkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBsZXZlbCAoc2V0cSBsZXZlbC1oZWFkaW5nICgxKyB4KSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgdGV4dCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCdzZXRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoeCAoc2VxLXBvc2l0aW9uICcoc2gxIHNoMikgaGFuZGxlKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbCAoMSsgeCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBsZXZlbC1hZGogMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoMS0gbGV2ZWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbGluay10YXJnZXQgbmlsKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKG9yICdpdGVtICdudW1iZXJlZC1pdGVtKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXRxIGxldmVsIGxldmVsLWhlYWRpbmcpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtYWRqIChtYXJrZG93bi10cy0tdG9jLWxp
c3QtaXRlbS1kZXB0aCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBpbmRlbnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCdjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSW5oZXJp
dCB0aGUgYW1iaWVudCBsZXZlbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
cSBsZXZlbC1hZGogMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBpbmRl
bnQgKDEtICAoKyBsZXZlbCBsZXZlbC1hZGopKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBsaW5rLXRhcmdldCBuaWwpKSkKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDs7IEZpbHRlciBkZXNpcmVkIGhhbmRsZXMgYW5kIGxldmVscy4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiAoYW5kIChtZW1xIGhhbmRsZSB0b2MtaGFuZGxlcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSBsZXZlbCAoKyB0b2MtbWluLWRl
cHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIHRvYy1yZWxhdGl2ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b2MtcmVsYXRpdmUtaGVhZGluZy1kZXB0aCAwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gbGV2ZWwgKCsgdG9jLW1h
eC1kZXB0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpZiB0b2MtcmVsYXRpdmUtZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9jLXJlbGF0aXZlLWhlYWRpbmctZGVwdGggMCkp
KSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgQ3JlYXRlIHRoZSBlbnRyeSB3
aXRoIGluZGVudCwgaXRlbS9udW1iZXIgcHJlZml4LCBsaW5rLgorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBDb3JuZXIgY2FzZTogaW5pdGlhbCBsZXZlbCBoaWdoZXIgdGhhbiAx
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPiBsZXZlbCAxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgbGV2ZWwtcHJldiAw
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwgMSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChub3QgdG9jLW5vLWxpbmspIGxp
bmstdGFyZ2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTYW5pdGl6ZSB0
aGUgaWQgdG8gY29uZm9ybSB0byBDU1MgaWRlbnQgc3ludGF4LgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2V0cSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChmb3JtYXQgIlslc10oIyVzKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGlmLWxldCogKChzbHVnIChnZXRoYXNoIHNsdWctcG9zIHBvcy10by1zbHVn
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs
dWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5j
YWxsIG1hcmtkb3duLXRzLXRvYy1zbHVnLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLXRhcmdldCkpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyAoKiAoMS0gKG1h
eCBpbmRlbnQgMSkpIHRvYy1pbmRlbnQpID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBjYXNlIHRvYy1zdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgnaXRlbSAiLSAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgnYnVsbGV0ICIqICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChvciAnbnVtYmVyICdudW1iZXIuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgobGV2ZWwgKCsgbGV2ZWwgbGV2ZWwtYWRqKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChvciAobm90IG51
bWJlci1zdGFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGxldmVsIChjYWFyIG51bWJlci1zdGFjaykpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBgKCxsZXZlbCAuIDApIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChhbmQgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKDwgbGV2ZWwgKGNhYXIgbnVtYmVyLXN0YWNrKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGlsZSAo
YW5kIG51bWJlci1zdGFjaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoPCBsZXZlbCAoY2FhciBudW1iZXItc3RhY2spKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9wIG51
bWJlci1zdGFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh1bmxlc3MgbnVtYmVyLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggYCgsbGV2ZWwgLiAwKSBudW1iZXItc3RhY2sp
KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0Y2RyIChj
YXIgbnVtYmVyLXN0YWNrKSAoMSsgKGNkYXIgbnVtYmVyLXN0YWNrKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChzKSAobiAobGVuZ3RoIG51bWJlci1z
dGFjaykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEt
bWFwLWluZGV4ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoZWx0IGlkeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChmb3JtYXQgIiVkIiAoY2RyIGVsdCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgKDErIGlkeCkgbikg
IiIgIi4iKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmV2ZXJzZSBudW1iZXItc3RhY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb25jYXQgcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRvYy1zdHlsZSAnbnVtYmVyLikgIi4iKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgIikpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfICIiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGQgYSBoYXJkIGxpbmUgYnJlYWsuICBCYWNrc2xhc2gKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc2VlbXMgbGVzcyB3ZWxsIHN1cHBv
cnRlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByZW5kZXJl
cnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAy
ID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGV2ZWwtcHJldiBsZXZlbCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAoc2V0cSB0b2Mtc2l6ZSAoYnVmZmVyLXNpemUpKQorICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJjZS1idWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIHJlZy1iZWcg
cmVnLWVuZCB0ZW1wLWJ1ZmZlcikpKSkpCisgICAgICAgICAgICAgICAgICAoc2V0cSBudW0tdG9j
cy1wcm9jZXNzZWQgKDErIG51bS10b2NzLXByb2Nlc3NlZCkpKSkpCisgICAgICAgICAgICA7OyBT
dGFydCB0aGUgbmV4dCBwYXNzIGFmdGVyIHRoaXMgdG9jLWVuZC4gIEFkanVzdCBmb3IgdGhlCisg
ICAgICAgICAgICA7OyBpbnNlcnRlZCB0ZXh0IHNpemUuCisgICAgICAgICAgICAoc2V0cSBiZWct
cG9zICgrIChhbGlzdC1nZXQgJ2VuZCB0b2MtZW5kKSB0b2Mtc2l6ZSkpCisgICAgICAgICAgICAo
c2V0cSBlbmQtcG9zIChtaW4gKHBvaW50LW1heCkgKCsgZW5kLXBvcyB0b2Mtc2l6ZSkpKSkKKyAg
ICAgICAgICAod2hlbiAoYW5kIChlcSBudW0tdG9jcy1wcm9jZXNzZWQgMCkKKyAgICAgICAgICAg
ICAgICAgICAgIChlcSAnbm8tYWN0aXZlLXRhYmxlcyBtYXJrZG93bi10cy10b2MtZ2VuZXJhdGUt
d2Fybi1pZi1ub25lKSkKKyAgICAgICAgICAgIChsd2FybiAnbWFya2Rvd24tdHMtdG9jLWdlbmVy
YXRlCisgICAgICAgICAgICAgICAgICAgOndhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAiTm8g
dGFibGVzIG9mIGNvbnRlbnRzIGdlbmVyYXRlZCBpbiAlcy4iCisgICAgICAgICAgICAgICAgICAg
KGJ1ZmZlci1uYW1lIChjdXJyZW50LWJ1ZmZlcikpKSkpKSkpKQorCisocHJvdmlkZSAnbWFya2Rv
d24tdHMtbW9kZS14KQorOzs7IG1hcmtkb3duLXRzLW1vZGUteC5lbCBlbmRzIGhlcmUKZGlmZiAt
LWdpdCBhL2xpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUuZWwgYi9saXNwL3RleHRtb2Rl
cy9tYXJrZG93bi10cy1tb2RlLmVsCmluZGV4IDY1N2Q2YmM0NjZkLi5kNTU1M2JkNzM2MSAxMDA2
NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbAorKysgYi9saXNwL3Rl
eHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCkBAIC0xLDExICsxLDE0IEBACi07OzsgbWFya2Rv
d24tdHMtbW9kZS5lbCAtLS0gdHJlZSBzaXR0ZXIgc3VwcG9ydCBmb3IgTWFya2Rvd24gIC0qLSBs
ZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwgLS0tIHRyZWUg
c2l0dGVyIHN1cHBvcnQgZm9yIE1hcmtkb3duIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQog
CiA7OyBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KIAotOzsgQXV0aG9yICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRv
QGdtYWlsLmNvbT4KLTs7IE1haW50YWluZXIgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwu
anVsaWF0b0BnbWFpbC5jb20+Ci07OyBDcmVhdGVkICAgIDogQXByaWwgMjAyNAotOzsgS2V5d29y
ZHMgICA6IG1hcmtkb3duIG1kIGxhbmd1YWdlcyB0cmVlLXNpdHRlcgorOzsgQXV0aG9yICAgICAg
ICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KKzs7
ICAgICAgICAgICAgICAgICAgOiBTdMOpcGhhbmUgTWFya3MgPHNoaXBtaW50c0BnbWFpbC5jb20+
Cis7OyBNYWludGFpbmVyICAgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlh
dG9AZ21haWwuY29tPgorOzsgQ3JlYXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNp
b24gICAgICAgICAgOiAxLjAKKzs7IFBhY2thZ2UtUmVxdWlyZXMgOiAoKGVtYWNzICIzMS4xIikp
Cis7OyBLZXl3b3JkcyAgICAgICAgIDogbWFya2Rvd24gbWQgdGV4dCBlZGl0IGxhbmd1YWdlcyB0
cmVlLXNpdHRlcgogCiA7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTIy
LDEzOCArMjUsNzM4IEBACiA7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJ
ZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi07OzsgVHJlZS1z
aXR0ZXIgbGFuZ3VhZ2UgdmVyc2lvbnMKKzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IFRyZWUtc2l0
dGVyIExhbmd1YWdlIFZlcnNpb25zCiA7OwogOzsgbWFya2Rvd24tdHMtbW9kZSBoYXMgYmVlbiB0
ZXN0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGdyYW1tYXJzIGFuZCB2ZXJzaW9uOgogOzsgLSB0cmVl
LXNpdHRlci1tYXJrZG93bjogdjAuNC4xCiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGlu
ZTogdjAuNC4xCiA7OwotOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHRpbiBtb2RlcyB3
b3JrIHdpdGggbGF0ZXN0IGdyYW1tYXIKLTs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdy
YW1tYXIgaGFzIGEgZ29vZCBjaGFuY2UgdG8gd29yayB0b28uCi07OyBTZW5kIHVzIGEgYnVnIHJl
cG9ydCBpZiBpdCBkb2Vzbid0LgotCi07OzsgQ29tbWVudGFyeToKKzs7IFdlIHRyeSBvdXIgYmVz
dCB0byBtYWtlIGJ1aWx0LWluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1hcgorOzsgdmVy
c2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5jZSB0byB3b3Jr
LiAgU2VuZAorOzsgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCis7OworOzsgQmlkaXJl
Y3Rpb25hbCBUZXh0IENvbnNpZGVyYXRpb25zCis7OworOzsgVGV4dCB3aXRoIG1hcmt1cCBtYXkg
bmVlZCBhbiBleHRyYSBuZXdsaW5lIGJlZm9yZSBiaWRpcmVjdGlvbmFsIHRleHQKKzs7IGZvciBp
dCB0byBzaG93IGNvcnJlY3RseS4gIFRoaXMgaXMgYSBsaW1pdGF0aW9uIGluIHRoZSBFbWFjcyBk
aXNwbGF5Cis7OyBlbmdpbmUuCis7OworOzsgQ29kZSBCbG9jayBMYW5ndWFnZSBNb2RlIENvbnNp
ZGVyYXRpb25zCis7OworOzsgRmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMgYXJlIGRl
cml2ZWQgZnJvbSB0aGUgdGFibGUKKzs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJyBh
bmQgaGV1cmlzdGljcyBhZGRpbmcgIi10cy1tb2RlIiBhbmQKKzs7ICItbW9kZSIgdG8gdGhlIGxh
bmd1YWdlIG5hbWUuICBJZiB5b3VyIGxhbmd1YWdlJ3MgbW9kZSBpcyBub3QKKzs7IHByb3Blcmx5
IHJlY29nbml6ZWQsIGFkZCBpdCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycsIHdo
aWNoCis7OyBzZWUuCis7OworOzsgRWFjaCBsYW5ndWFnZSdzIG1ham9yIG1vZGUgaXMgZW5hYmxl
ZCBvbmNlIHBlciBgbWFya2Rvd24tdHMtbW9kZScKKzs7IGJ1ZmZlciBpbiBhIHRlbXBvcmFyeSBi
dWZmZXIgdG8gZXh0cmFjdCBpdHMgZGVmYXVsdCBmb250LWxvY2sgYW5kCis7OyB0cmVlLXNpdHRl
ciBzZXR0aW5ncy4gIEluIGNvbnZlbnRpb25hbCBub24tdHJlZXNpdCBjb2RlIGJsb2NrcywgdGhl
Cis7OyBtYWpvciBtb2RlIGlzIGVuYWJsZWQgZWFjaCB0aW1lIHRoZSBibG9jayBpcyBmb250aWZp
ZWQuCis7OworOzsgTk9URTogTWFqb3IgbW9kZSBob29rcyBhcmUgbm90IHJ1biBhbmQgZm9udC1s
b2NrLCB0cmVlc2l0LCBpbmRlbnQsCis7OyBjb21tZW50IHJlY29nbml0aW9uLCBldGMuIGN1c3Rv
bWl6YXRpb25zIHRoYXQgeW91IG1pZ2h0IGhhdmUgaW4geW91cgorOzsgaG9va3MgYXJlIG5vdCBh
cHBsaWVkLiAgQXMgYSByZXN1bHQsIHlvdXIgY29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBk
aWZmZXJlbnQgaW4gYG1hcmtkb3duLXRzLW1vZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbWFqb3Ig
bW9kZQorOzsgYnVmZmVycy4gIE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBl
YWNoIG1vZGUgaG9vayBhbmQKKzs7IGF2b2lkcyBwb3RlbnRpYWwgcmVjdXJzaXZlIHRyZWVzaXQg
Y2FsbGJhY2sgaXNzdWVzLgorOzsKKzs7OzsgQ29kZSBCbG9jayBDb21tYW5kcworOzsKKzs7IFNv
bWUgY29tbW9uIGNvbW1hbmRzIHdpbGwgb3BlcmF0ZSB3aXRoaW4gYSBjb2RlIGJsb2NrIGFuZCBp
biBpdHMKKzs7IG1vZGUuICBUaGVzZSBvcGVyYXRlIGluIGFuIGluZGlyZWN0IGJ1ZmZlciBhbmQg
c29tZSBjb21tYW5kcyBtYXkKKzs7IG9wZXJhdGUgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdG8gdGhl
IHNhbWUgY29tbWFuZHMgaW52b2tlZCBpbiBhIG5hdGl2ZQorOzsgbW9kZSBidWZmZXIuICBgaW5k
ZW50LWZvci10YWItY29tbWFuZCcgbWF5IGludm9rZQorOzsgYGNvbXBsZXRpb24tYXQtcG9pbnQn
IHVuZGVyIHRoZSBjb3ZlcnMgYW5kIG1heSByZXR1cm4gcmVzdWx0cyBmcm9tCis7OyB0aGUgc3Vy
cm91bmRpbmcgTWFya2Rvd24gYnVmZmVyIGluc3RlYWQgb2YgdGhlIGNvZGUgYmxvY2sncyBjb250
ZXh0LgorOzsgWW91IGNhbiBpbnZva2UgYGNvbXBsZXRpb24tYXQtcG9pbnQnIGRpcmVjdGx5IGJ5
IHVzaW5nIGl0cyBrZXkKKzs7IGJpbmRpbmcsIGBDLU0taWAuCis7OworOzs7OyBQaXBlIFRhYmxl
cworOzsKKzs7IFRoZXNlIGFyZSBhIEdpdEh1YiBGbGF2b3JlZCBNYXJrZG93biAoR0ZNKSBleHRl
bnNpb24gYW5kIGFyZSBhIGRlCis7OyBmYWN0byBzdGFuZGFyZCBnaXZlbiB0aGVpciBwb3B1bGFy
aXR5IGFuZCBpbXBsZW1lbnRhdGlvbnMgYWNyb3NzCis7OyBwcm9kdWN0cy4gIFRoZXkgbWlnaHQg
YXMgd2VsbCBiZSBmb2xkZWQgaW50byB0aGUgQ29tbW9uTWFyayBzdGFuZGFyZC4KKzs7Cis7OyBB
IHBpcGUgdGFibGUgaXMgYSByZWN0YW5nbGUgb2YgdGV4dCBzdXJyb3VuZGVkIHRvIHRoZSBlYXN0
IGFuZCB3ZXN0Cis7OyBieSBwaXBlIHN5bWJvbHMgYW5kIHdoZXJlIHBpcGVzIHNlcGFyYXRlIGNv
bHVtbnMuICBJdCBoYXMgYSBoZWFkZXIKKzs7IHJvdyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBo
ZWFkZXIgYWxpZ25tZW50IHJvdywgYm90aCBvZiB3aGljaCBtdXN0Cis7OyBjb250YWluIHRoZSBz
YW1lIG51bWJlciBvZiBjZWxscy4gIEJvZHkgcm93cyBhcmUgb3B0aW9uYWwuICBBIHRhYmxlCis7
OyBlbmRzIHdpdGggYSBibGFuayBsaW5lIG9yIGF0IHRoZSBzdGFydCBvZiBhIG5ldyBNYXJrZG93
biBibG9jaworOzsgZWxlbWVudC4KKzs7Cis7OyBUaGUgaGVhZGVyIGFsaWdubWVudCByb3cgY29s
dW1uIG11c3QgaGF2ZSBhIG1pbmltdW0gb2YgdGhyZWUgaHlwaGVucworOzsgd2hpY2ggaW5kaWNh
dGVzIGRlZmF1bHQgYWxpZ25tZW50IChpLmUuLCB3aGF0ZXZlciBhIHJlbmRlcmVyCis7OyBjaG9v
c2VzKS4gIFRvIGluZGljYXRlIGxlZnQgYWxpZ25tZW50LCBwcmVmaXggdGhlIGh5cGhlbiBzdHJp
bmcgd2l0aAorOzsgYSBjb2xvbiBsaWtlIHRoaXMgOi0tLS4gIEZvciBjZW50ZXIgYWxpZ25tZW50
LCBwcmVmaXggYW5kIHN1ZmZpeCB3aXRoCis7OyBjb2xvbnMgbGlrZSB0aGlzIDotLS06LiAgRm9y
IHJpZ2h0IGFsaWdubWVudCwgc3VmZml4IHdpdGggYSBjb2xvbgorOzsgbGlrZSB0aGlzIC0tLTou
Cis7OworOzsgRWFjaCB0YWJsZSBoZWFkZXIgb3IgYm9keSBjZWxsIGNhbiBjb250YWluIHRoZSB1
c3VhbCBNYXJrZG93biBpbmxpbmUKKzs7IHN0eWxlIGluZGljYXRvcnMuICBBIGNlbGwgY2Fubm90
IGNvbnRhaW4gYSBibG9jayBlbGVtZW50IHN1Y2ggYXMgYQorOzsgaGVhZGluZ3MsIHRoZW1hdGlj
IGJyZWFrcywgYmxvY2sgcXVvdGVzLCBmZW5jZWQgY29kZSBibG9ja3MuCis7OworOzsgVGFibGUg
Y2VsbHMgZG8gbm90IG5lZWQgdG8gYWxpZ24gdmlzdWFsbHk7IGkuZS4sIHRoZSBwaXBlIHN5bWJv
bHMgZG8KKzs7IG5vdCBuZWVkIHRvIGxpbmUgdXAgdmVydGljYWxseS4gIFRoZSB0cmVlLXNpdHRl
ciBwYXJzZXIgYW5kIHJlbmRlcmVycworOzsgZGV0ZWN0IGNlbGwgYm91bmRhcmllcyB1c2luZyBw
aXBlIHN5bWJvbHMsIG5vdCB0aGVpciByZWxhdGl2ZSBhbGlnbm1lbnQuCis7OworOzsgSWYgeW91
IHdhbnQgdG8gaW5jbHVkZSB3aGF0IGxvb2tzIGxpa2UgY29kZSwgeW91IGNhbiB1c2UgYmFja3Rp
Y2tzIHRvCis7OyB3cmFwIHN1Y2ggdGV4dCBhbGEgYHRoaXMgaXMgY29kZWAuICBUaGlzIG1vZGUg
d2lsbCBub3QgZm9udGlmeSBzdWNoCis7OyBjb2RlLgorOzsKKzs7IElmIHlvdSB3YW50IHRvIGlu
Y2x1ZGUgYSBwaXBlIHN5bWJvbCBpbiBhIGNlbGwsIGVzY2FwZSBpdCB0aHVzbHkgXHwuCis7Owor
OzsgVGVjaG5pY2FsbHksIGJvZHkgcm93cyBkbyBub3QgbmVlZCB0byBjb250YWluIHRoZSBzYW1l
IG51bWJlciBvZgorOzsgY2VsbHMgYXMgdGhlIGhlYWRlciBoYXMgY29sdW1ucyBhbmQgcm93cyBk
byBub3QgbmVlZCB0byBzaGFyZSB0aGUKKzs7IHNhbWUgbnVtYmVyIG9mIGNlbGxzIGFtb25nIHRo
ZW1zZWx2ZXMuICBOb3RlOiBNYW55IHJlbmRlcmVycyBnZXQKKzs7IGNvbmZ1c2VkIGlmIHRoZSB0
YWJsZSBpcyAicmFnZ2VkIiB3aXRoIGFuIHVuZXZlbiBudW1iZXIgb2YgY29sdW1ucworOzsgYW1v
bmcgcm93cy4gIFNvbWUgcmVuZGVyZXJzIHdpbGwgaW5zZXJ0IGVtcHR5IGNlbGxzIG9uIGEgcm93
IHRoYXQKKzs7IGNvbnRhaW5zIGZld2VyIGNlbGxzIHRoYW4gdGhlIGhlYWRlciBoYXMgY29sdW1u
cy4gIFNvbWUgZWxpZGUgY2VsbHMKKzs7IHRoYXQgZXhjZWVkIHRoZSBudW1iZXIgb2YgY29sdW1u
cyBpbiB0aGUgaGVhZGVyLgorOzsKKzs7OzsgUGlwZSBUYWJsZSBSZWNvbW1lbmRhdGlvbnMKKzs7
Cis7OyAtIEFsd2F5cyB1c2UgcGlwZSBzeW1ib2xzIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIGVh
Y2ggdGFibGUgbGluZS4KKzs7IC0gVXNlIGEgdW5pZm9ybSBudW1iZXIgb2YgY29sdW1ucyBzcGFu
bmluZyB0aGUgdGFibGUuCis7OyAtIElmIHlvdSBkZXRlY3QgYSBwYXJzaW5nIGVycm9yIHdoaWNo
IHByZXNlbnRzIGFzIGRpZmZlcmVudAorOzsgICBmb250aWZpY2F0aW9uIGFuZCB3aGljaCBpcyBv
ZnRlbiBjYXVzZWQgYnkgYW4gZW1wdHkgZmlyc3QgY2VsbCBvbiB0aGUKKzs7ICAgZmluYWwgcm93
LCB0cnkgcHV0dGluZyBzb21lIGNoYXJhY3RlcnMgaW4gdGhhdCBjZWxsLgorOzsgLSBSZW5kZXJl
cnMgb2Z0ZW4gZXhjbHVkZSBjZXJ0YWluIGVtcHR5IGNlbGxzIHN1Y2ggYXMgYW4gImVtcHR5IiBm
aW5hbAorOzsgICBjZWxsIGluIGEgdGFibGUuICBGb2xsb3cgdGhlIG5leHQgaXRlbSB0byBhdm9p
ZCB0aGlzLgorOzsgLSBJZiB5b3UgbmVlZCB0aGF0IGNlbGwgdG8gYXBwZWFyIGJsYW5rIGFuZCBh
cmUgY29udmVydGluZyB0byBIVE1MLAorOzsgICB0cnkgdXNpbmcgYSBub24tcHJpbnRpbmcgSFRN
TCBlbnRpdHksIHN1Y2ggYXMgYSBub24tYnJlYWtpbmcgc3BhY2UKKzs7ICAgIiZuYnNwOyIsIHdo
aWNoIHBhcnNlIGFzIGNvbmNyZXRlIGNoYXJhY3RlcnMgeWV0IHJlbmRlciBhcyBibGFuay4KKzs7
IC0gSFRNTCBjb21tZW50cyA8IS0tIC0tPiBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm9uLWJsYW5r
IGNoYXJhY3RlcgorOzsgICBzdHJpbmcgdGhhdCBkb2VzIG5vdCBnZXQgcmVuZGVyZWQuICBUaGVz
ZSBhcmUgY29uc2lkZXJlZCBjZWxsIHRleHQKKzs7ICAgYW5kIHdoZW4gcGxhY2VkIGF0IHRoZSBl
bmQgb2YgYSByb3csIHRoYXQgcm93J3MgbnVtYmVyIG9mIGNvbHVtbnMgaXMKKzs7ICAgaW5jcmVh
c2VkIGFuZCBtaWdodCBleGNlZWQgdGhlIG51bWJlciBvZiBoZWFkZXIgY29sdW1ucy4KKzs7IC0g
VGhlcmUgYXJlIHRyZWUtc2l0dGVyIHBhcnNlciBxdWlya3MuICBDb21tYW5kcyBzdWNoIGFzCis7
OyAgIGBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uJyBhbmQgYG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtY29sdW1uJworOzsgICBmb2xsb3cgdGhlIHBhcnNlciB0cmVlIGFuZCBjYW4gbGVh
ZCB0byB1bmV4cGVjdGVkIHJlc3VsdHMgc28gZm9sbG93Cis7OyAgIHRoZXNlIHJlY29tbWVuZGF0
aW9ucyBhbmQgdGFibGUgb3BlcmF0aW9ucyBzaG91bGQgYmUgYXMgZXhwZWN0ZWQuCis7OworOzs7
OyBUcmVlIFNpdHRlciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0
aGUgdW5kZXJseWluZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0
IGl0cyBidWlsZCB0aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0
YWxsZWQuICBUaGVyZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVs
eSBhZmZlY3QKKzs7IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQg
YXMgdGhlc2UgYnVncyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBU
aGUgTWFya2Rvd24gZ3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBj
aGlsZHJlbgorOzsgICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGgg
dGhlIGluc3BlY3RvciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0
cyBjb2RlIGJsb2NrcyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0
eXBlIDQgKGA8IScgZm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAg
YDwhRE9DVFlQRSBodG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNl
cXVlbnQKKzs7ICAgY29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBh
cyBhIHdvcmthcm91bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVy
LWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3Vw
ZXJzY3JpcHQgKGBedGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5v
dAorOzsgICBzdXBwb3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZs
YWcgZXhpc3RzIGZvcgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24g
RXh0cmEgc3ludGF4LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRl
cmVkIChudW1iZXJlZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRp
bmcKKzs7ICAgYSBgMS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3Qg
cHJvZHVjZSBhIG5lc3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0
cyBpdCBhcyBhIGZsYXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVu
dCBpdGVtJ3MgcGFyYWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRl
cmVkIChgLScsIGAqJywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9w
cm9tb3RlIG9mIG9yZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQu
Cis7OworOzsgLSBSZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1i
ZXItbGlzdCcpIG1heSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJk
IGlmIHRoZSBwYXJzZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBg
bGlzdCcgbm9kZXMsIG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBz
ZXBhcmF0ZSBsaXN0cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7
OworOzsgLSBFbXB0eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1h
eSBiZSBjbGFpbWVkIGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9m
IHRoYXQgYmxvY2ssIHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2Vw
YXJhdG9ycy4KIDs7Cis7OyAtIFBpcGUgdGFibGVzIGFyZSBpbmNvbnNpc3RlbnRseSBwYXJzZWQu
ICBXaGl0ZXNwYWNlIGlzIGNvcnJlY3RseQorOzsgICB0cmltbWVkIGF0IHRoZSBzdGFydCBvZiBh
IGNlbGwgY29udGVudCBidXQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcworOzsgICBpbmNvcnJlY3Rs
eSBpbmNsdWRlZC4gIEVtcHR5IGNlbGxzIGNhbiBjb250YWluIHVuZXZlbiAicmFnZ2VkIiByb3cK
Kzs7ICAgY29sdW1uIGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGNvbmZ1c2UgdGhlIHBhcnNlci4K
Kzs7Cis7OyAgIE1hcmtkb3duIHBpcGUgdGFibGVzIHdpdGggcGFyc2luZyBpc3N1ZXM6Cis7Owor
OzsgICB8Q29sdW1uIDF8Q29sdW1uIDJ8Q29sdW1uIDN8Cis7OyAgIHwtLS0tLS0tLXwtLS0tLS0t
LXwtLS0tLS0tLXwKKzs7ICAgfCAgICAgICAgfCAgICAgICAgfCAgICAgICAgfAorOzsgICB8ICAg
ICAgICB8ICAgICAgICB8ICAgICAgICB8IDwtLSBwYXJzZSBlcnJvcgorOzsKKzs7ICAgfENvbHVt
biAxfENvbHVtbiAyfENvbHVtbiAzfAorOzsgICB8LS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS18
Cis7OyAgIHwgICAgICAgIHwgICAgICAgIHwgICAgICAgIHwKKzs7ICAgfCB4eHggICAgfCAgICAg
ICAgfCAgICAgICAgfCA8LS0gcGFyc2VkIGNvcnJlY3RseQorOzsKKzs7ICAgfENvbHVtbiAxfENv
bHVtbiAyfCA8LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgfC0tLS0tLS0tfC0tLS0tLS0tfCA8
LS0gMiBjb2x1bW5zIGNvcnJlY3QKKzs7ICAgICAgICAgICAgfCAgICAgICAgfCA8LS0gMSBjb2x1
bW4gaW5jb3JyZWN0Cis7OyAgICAgICAgICAgIHwgICAgICAgIHwgPC0tIHBhcnNlIGVycm9yCis7
OyAgIHwgICAgICAgIHwgICAgICAgIHwgPC0tIG5vdCBhIHJvdyBhZnRlciB0aGUgZXJyb3IsIGFi
b3ZlCis7OworOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFy
cy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjQxPgorOzsgICAgICAgPGh0dHBzOi8vZ2l0
aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMv
MjQyPgogCiA7OzsgQ29kZToKIAogKHJlcXVpcmUgJ3RyZWVzaXQpCiAocmVxdWlyZSAnc3Vici14
KQotKHJlcXVpcmUgJ291dGxpbmUpCiAocmVxdWlyZSAnc2VxKQorKHJlcXVpcmUgJ291dGxpbmUp
CisocmVxdWlyZSAnZ290by1hZGRyKQorKHJlcXVpcmUgJ3hyZWYpCisocmVxdWlyZSAnaWNvbnMp
CiAKLSh0cmVlc2l0LWRlY2xhcmUtdW5hdmFpbGFibGUtZnVuY3Rpb25zKQotCi0oYWRkLXRvLWxp
c3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duCi0gICAiaHR0
cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3du
IgotICAgOmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIK
LSAgIDpzb3VyY2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi9zcmMiKQotIHQpCi0oYWRkLXRv
LWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKLSAnKG1hcmtkb3duLWlubGlu
ZQotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRl
ci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4
YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFya2Rvd24taW5saW5lL3Ny
YyIpCi0gdCkKKzs7OyBDdXN0b21pemF0aW9uczoKIAotOzs7IEhlbHBlciBmdW5jdGlvbnMKLQot
KGRlZnZhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgJygoImMrKyIg
LiBjcHApCi0gICAgKCJjIyIgLiBjLXNoYXJwKQotICAgICgic2giIC4gYmFzaCkpCi0gICJBbGlz
dCBtYXBwaW5nIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbmFtZXMgdG8gdHJlZS1zaXR0ZXIgbGFuZ3Vh
Z2VzLgotCi1LZXlzIHNob3VsZCBiZSBzdHJpbmdzLCBhbmQgdmFsdWVzIHNob3VsZCBiZSBsYW5n
dWFnZSBzeW1ib2xzLgotCi1Gb3IgZXhhbXBsZSwgXCJjKytcIiBpbgotCi0gICAgYGBgYysrCi0g
ICAgaW50IG1haW4oKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBgYGAKLQotbWFw
cyB0byB0cmVlLXNpdHRlciBsYW5ndWFnZSBgY3BwJy4iKQotCi0oZGVmdmFyIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwCi0gICcoKGJhc2ggLiBiYXNoLXRzLW1vZGUpCi0g
ICAgKGMgLiBjLXRzLW1vZGUpCi0gICAgKGMtc2hhcnAgLiBjc2hhcnAtdHMtbW9kZSkKLSAgICAo
Y21ha2UgLiBjbWFrZS10cy1tb2RlKQotICAgIChjcHAgLiBjKystdHMtbW9kZSkKLSAgICAoY3Nz
IC4gY3NzLXRzLW1vZGUpCi0gICAgKGRvY2tlcmZpbGUgLiBkb2NrZXJmaWxlLXRzLW1vZGUpCi0g
ICAgKGVsaXhpciAuIGVsaXhpci10cy1tb2RlKQotICAgIChnbyAuIGdvLXRzLW1vZGUpCi0gICAg
KGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCi0gICAgKGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkK
LSAgICAoaGVleCAuIGhlZXgtdHMtbW9kZSkKLSAgICAoaHRtbCAuIGh0bWwtdHMtbW9kZSkKLSAg
ICAoamF2YSAuIGphdmEtdHMtbW9kZSkKLSAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCi0g
ICAgKGpzb24gLiBqc29uLXRzLW1vZGUpCi0gICAgKGx1YSAuIGx1YS10cy1tb2RlKQotICAgIChw
aHAgLiBwaHAtdHMtbW9kZSkKLSAgICAocHl0aG9uIC4gcHl0aG9uLXRzLW1vZGUpCi0gICAgKHJ1
YnkgLiBydWJ5LXRzLW1vZGUpCi0gICAgKHJ1c3QgLiBydXN0LXRzLW1vZGUpCi0gICAgKHRvbWwg
LiB0b21sLXRzLW1vZGUpCi0gICAgKHRzeCAuIHRzeC10cy1tb2RlKQotICAgICh0eXBlc2NyaXB0
IC4gdHlwZXNjcmlwdC10cy1tb2RlKQotICAgICh5YW1sIC4geWFtbC10cy1tb2RlKSkKLSAgIkFu
IGFsaXN0IG9mIHN1cHBvcnRlZCBjb2RlIGJsb2NrIGxhbmd1YWdlcyBhbmQgdGhlaXIgbWFqb3Ig
bW9kZS4iKQorKGRlZmdyb3VwIG1hcmtkb3duLXRzIG5pbAorICAiTWFqb3IgbW9kZSBmb3Igdmll
d2luZyBhbmQgZWRpdGluZyBNYXJrZG93biBidWZmZXJzLiIKKyAgOnByZWZpeCAibWFya2Rvd24t
dHMtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3VwICdlZGl0aW5nCisgIDp2ZXJzaW9uICIzMS4x
IikKIAogKGRlZmN1c3RvbSBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCBuaWwKICAgIk5vbi1uaWwg
bWVhbnMgaGlkZSBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGlzIGJ1ZmZlci4iCiAg
IDp0eXBlICdib29sZWFuCisgIDpsb2NhbCB0CiAgIDpzYWZlICMnYm9vbGVhbnAKLSAgOmdyb3Vw
ICdtYXJrZG93bi10cykKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZWxsaXBzaXMgbmlsCisgICJUaGUgZWxsaXBz
aXMgdG8gdXNlIGluIGZvbGRlZCBoZWFkaW5ncy4KK1doZW4gbmlsLCB1c2UgdGhlIHN0YW5kYXJk
IHRocmVlIGRvdHMuICBXaGVuIGEgbm9uLWVtcHR5IHN0cmluZywKK3VzZSB0aGF0IHN0cmluZyBp
bnN0ZWFkLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJEZWZhdWx0ICguLi4pIiBu
aWwpCisgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiU3RyaW5nIiA6dmFsdWUgIiDijIQi
KSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZj
dXN0b20gbWFya2Rvd24tdHMtbWVudS1iYXItc2hvdyB0CisgICJOb24tbmlsIG1lYW5zIHNob3cg
dGhlIE1hcmtkb3duIG1lbnUgaW4gdGhlIG1lbnUgYmFyLiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAg
OnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20g
bWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nICdzaG93LWFsbAorICAiRGVmYXVsdCBoZWFkaW5n
IGZvbGRpbmcgbGV2ZWwuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFn
ICJTaG93IGV2ZXJ5dGhpbmciIHNob3ctYWxsKQorICAgICAgICAgIChjb25zdCA6dGFnICJGb2xk
IGV2ZXJ5dGhpbmcsIHNob3dpbmcgdG9wLWxldmVsIGhlYWRpbmdzIiBmb2xkLWFsbCkKKyAgICAg
ICAgICAoY29uc3QgOnRhZyAiRm9sZCBoZWFkaW5ncywgc2hvd2luZyBhbGwgaGVhZGluZyBsZXZl
bHMiIGZvbGQtaGVhZGluZ3MpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lv
biAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIG5pbAorICAi
Tm9uLW5pbCBtZWFucyBkaXNwbGF5IGlubGluZSBpbWFnZXMgYmVsb3cgaW1hZ2UgbGlua3MuIgor
ICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdwor
ICAiTWF4aW11bSB3aWR0aCBvZiBpbmxpbmUgaW1hZ2VzIGluIHBpeGVscy4KK1doZW4gYHdpbmRv
dycsIHVzZSB0aGUgd2luZG93IGJvZHkgd2lkdGguICBXaGVuIGEgbnVtYmVyLCB1c2UKK3RoYXQg
YXMgdGhlIG1heGltdW0gcGl4ZWwgd2lkdGguIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0
YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAgICAobmF0bnVtIDp0YWcg
IlBpeGVsIHdpZHRoIikpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQogCi07OzsgRmFjZXMKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUt
aW5saW5lLWltYWdlcyBuaWwKKyAgIkhvdyB0byBkaXNwbGF5IHJlbW90ZSBpbmxpbmUgaW1hZ2Vz
LgorV2hlbiBuaWwsIGRvIG5vdCBkaXNwbGF5IHJlbW90ZSBpbWFnZXMuICBXaGVuIGBkb3dubG9h
ZCcsIGZldGNoIHRoZQoraW1hZ2UgaW50byBhIHRlbXBvcmFyeSBidWZmZXIgYW5kIGRpc3BsYXkg
aXQuCisKK1JlbW90ZSBpbWFnZXMgYXJlIHNraXBwZWQgYnkgZGVmYXVsdCBmb3Igc2VjdXJpdHku
IgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiU2tpcCByZW1vdGUgaW1hZ2VzIiBuaWwp
CisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEb3dubG9hZCByZW1vdGUgaW1hZ2VzIiBk
b3dubG9hZCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3ggJygi4piRIiAuICIrIikK
KyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSBjaGVja2VkIHRhc2sg
bGlzdCBtYXJrZXIuCitWYWx1ZSBmb3JtczoKKyAtIGNvbnMgKFBSRUZFUlJFRCAuIEZBTExCQUNL
KTogUFJFRkVSUkVEIGlzIHVzZWQgaWYgaXRzIGZpcnN0IGNoYXJhY3RlcgorICAgcGFzc2VzIGBj
aGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0suCisgLSBzeW1ib2wgYGljb24n
OiBkZWZlciB0byB0aGUgaWNvbnMuZWwgaWNvbgorICAgYG1hcmtkb3duLXRzLWNoZWNrZWQtY2hl
Y2tib3gtaWNvbic7IGN1c3RvbWl6ZSB2aWEKKyAgIFxcW2N1c3RvbWl6ZS1pY29uXS4KKyAtIG5p
bDogZGlzcGxheSB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zIChzdHJp
bmcgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu
ZyA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAi
VXNlIGljb25zLmVsIGljb24iIGljb24pCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJE
aXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZpbmUtaWNvbiBtYXJrZG93bi10cy1jaGVja2VkLWNo
ZWNrYm94LWljb24gbmlsCisgICcoKGltYWdlICJjaGVja2VkLnN2ZyIgOmhlaWdodCBsaW5lIDph
c2NlbnQgY2VudGVyKQorICAgIChzeW1ib2wgIuKYkSIpCisgICAgKHRleHQgIisiKSkKKyAgIklj
b24gdXNlZCBmb3IgYSBjaGVja2VkIHRhc2sgbGlzdCBtYXJrZXIgd2hlbiBtYXJrdXAgaXMgaGlk
ZGVuLgorQ29uc3VsdGVkIG9ubHkgd2hlbiBgbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCcg
aXMgdGhlIHN5bWJvbAorYGljb24nLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmY3VzdG9t
IG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCAnKCLimJAiIC4gIi0iKQorICAiSWYgbWFy
a3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1h
cmtlci4KK1ZhbHVlIGZvcm1zOgorIC0gY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVG
RVJSRUQgaXMgdXNlZCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyCisgICBwYXNzZXMgYGNoYXItZGlz
cGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSy4KKyAtIHN5bWJvbCBgaWNvbic6IGRlZmVy
IHRvIHRoZSBpY29ucy5lbCBpY29uCisgICBgbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94
LWljb24nOyBjdXN0b21pemUgdmlhCisgICBcXFtjdXN0b21pemUtaWNvbl0uCisgLSBuaWw6IGRp
c3BsYXkgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0
YWcgIlByZWZlcnJlZCAoR1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRh
ZyAiRmFsbGJhY2sgKFRUWSkiKSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIlVzZSBp
Y29ucy5lbCBpY29uIiBpY29uKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxh
eSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12
ZXJzaW9uICIxLjAiKQorCisoZGVmaW5lLWljb24gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNr
Ym94LWljb24gbmlsCisgICcoKGltYWdlICJ1bmNoZWNrZWQuc3ZnIiA6aGVpZ2h0IGxpbmUgOmFz
Y2VudCBjZW50ZXIpCisgICAgKHN5bWJvbCAi4piQIikKKyAgICAodGV4dCAiLSIpKQorICAiSWNv
biB1c2VkIGZvciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlciB3aGVuIG1hcmt1cCBpcyBo
aWRkZW4uCitDb25zdWx0ZWQgb25seSB3aGVuIGBtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2ti
b3gnIGlzIHRoZSBzeW1ib2wKK2BpY29uJy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1
c3RvbSBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIgJyg/4pSAIC4gPy0pCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgY2hhcmFjdGVyIGZvciB0aGVtYXRp
YyBicmVha3MuCitJdCBpcyByZXBlYXRlZCB0byBmaWxsIHRoZSB3aW5kb3cgd2lkdGguCitUaGUg
dmFsdWUgaXMgYSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZFUlJFRCBpcyB1c2Vk
IGlmIGl0IHBhc3NlcworYGNoYXItZGlzcGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSyBp
cyB1c2VkLgorbmlsIGRpc3BsYXlzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5cGUgJyhjaG9pY2Ug
KGNvbnMgKGNoYXJhY3RlciA6dGFnICJQcmVmZXJyZWQgKEdVSSkiKQorICAgICAgICAgICAgICAg
ICAgICAgICAoY2hhcmFjdGVyIDp0YWcgIkZhbGxiYWNrIChUVFkpIikpCisgICAgICAgICAgICAg
ICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNp
b24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCAnKD/CtiAuID98KQorICAiSWYgbWFya3Vw
IGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoYXJhY3RlciBmb3IgYSBiYWNrc2xhc2ggaGFyZCBs
aW5lIGJyZWFrLgorVGhlIHZhbHVlIGlzIGEgY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQ
UkVGRVJSRUQgaXMgdXNlZCBpZiBpdCBwYXNzZXMKK2BjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhl
cndpc2UgRkFMTEJBQ0sgaXMgdXNlZC4KK25pbCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0
eXBlICcoY2hvaWNlIChjb25zIChjaGFyYWN0ZXIgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGNoYXJhY3RlciA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5p
bCkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVm
Y3VzdG9tIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZQorICAobGFtYmRhIChuKQor
ICAgIChsZXQqICgodmFsIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlCisgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpKQorICAg
ICAgICAgICAoY2ggKGlmIChjaGFyYWN0ZXJwIHZhbCkgdmFsID98KSkpCisgICAgICAobWFrZS1z
dHJpbmcgbiBjaCkpKQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZvciBh
IHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsuCitUaGUgdmFsdWUgY2FuIGJlOgorLSBh
IGNoYXJhY3RlciBvciBzdHJpbmc6IHNob3duIG9uY2UgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFp
bGluZyBzcGFjZXMsCisgIHdpdGggbm8gcmVwZXRpdGlvbiAodGhlIHJlbWFpbmluZyBzcGFjZXMg
c3RheSBpbnZpc2libGUpOworLSBhIGZ1bmN0aW9uOiBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQs
IHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgc3BhY2VzLAorICBhbmQgbXVzdCByZXR1cm4gdGhlIHN0
cmluZyB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBydW47CistIG5pbDoga2VlcCB0aGUgcmF3
IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRhZyAiRGlzcGxheSBzcGVj
aWZpZWQgY2hhcmFjdGVyIChubyByZXBldGl0aW9uKSIpCisgICAgICAgICAgICAgICAgIChzdHJp
bmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIChubyByZXBldGl0aW9uKSIpCisgICAg
ICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlvbiBmcm9tIGNvdW50IHRvIGRpc3Bs
YXkgc3RyaW5nIikKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2lu
YWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAi
MS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2
ZWx5IHQKKyAgIk5vbi1uaWwgbWVhbnMgZm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnRzIHVzaW5n
IHRoZSBsYW5ndWFnZSdzIG1vZGUuCitXaGVuIG5vbi1uaWwsIGZlbmNlZCBjb2RlIGJsb2NrcyBh
cmUgaGlnaGxpZ2h0ZWQgd2l0aCBzeW50YXggb2YgdGhlCitlbWJlZGRlZCBsYW5ndWFnZSAodmlh
IHRyZWUtc2l0dGVyIGZvciBsYW5ndWFnZXMgd2l0aCBhIHRyZWUtc2l0dGVyCittb2RlLCBvciB2
aWEgY29udmVudGlvbmFsIGZvbnQtbG9jayBmb3IgdGhlIHJlc3QpLiAgV2hlbiBuaWwsIGNvZGUK
K2Jsb2NrcyBrZWVwIG9ubHkgdGhlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBiYWNrZ3JvdW5k
IGZhY2UuICBUb2dnbGluZworZm9yIHRoZSB0cy1lbWJlZGRlZCBwYXRoIHRha2VzIGVmZmVjdCBh
ZnRlciByZXN0YXJ0aW5nCitgbWFya2Rvd24tdHMtbW9kZScgaW4gdGhlIGJ1ZmZlci4iCisgIDp0
eXBlICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAi
KQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWVuYWJsZS1jb2RlLWJsb2NrLWNvbnRleHQtbW9k
ZSB0CisgICJOb24tbmlsIGF1dG9tYXRpY2FsbHkgZW5hYmxlcyBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1jb250ZXh0LW1vZGUnLgorSWYgbm9uLW5pbCBhbmQgYHBvaW50JyBpcyBpbiBhIGZlbmNl
ZCBjb2RlIGJsb2NrLCB0aGlzIHJ1bnMKK2BpbmRlbnQtZm9yLXRhYi1jb21tYW5kJywgYG5ld2xp
bmUnLCBldC5hbC4sIGluIHRoZSBtb2RlIG9mIHRoZSBjb2RlCitibG9jay4iCisgIDp0eXBlICdi
b29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLWxpZ2h0ZXIg
IiBbY29kZV0iCisgICJNaW5vciBtb2RlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQt
bW9kZScgbGlnaHRlciBzdHJpbmcuCitTZXQgdG8gbmlsIHRvIGRpc2FibGUgdGhlIGxpZ2h0ZXIu
IgorICA6dHlwZSAnc3RyaW5nCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9u
ICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWluaGliaXQtY29kZS1ibG9jay1tb2Rl
LXdhcm5pbmdzIHQKKyAgIklmIG5vbi1uaWwsIGluaGliaXQgY29kZS1ibG9jayBtYWpvci1tb2Rl
IG1lc3NhZ2VzIGFuZCB3YXJuaW5ncy4KK1NvbWUgZmVuY2VkIGNvZGUtYmxvY2sgbWFqb3IgbW9k
ZXMgcHJvZHVjZSBtZXNzYWdlcyBvciB3YXJuaW5ncyB3aGljaAoraGF2ZSBsaXR0bGUgcmVsZXZh
bmNlIHRvIE1hcmtkb3duIGJ1ZmZlcnMuICBVc2UgdGhpcyBvcHRpb24gdG8gaW5oaWJpdAordGhl
bS4gIE1ham9yIG1vZGVzIG1heSBiZSBlbmFibGVkIGZvciBmb250aWZpY2F0aW9uIG9yIGVkaXRp
bmcgaW4gdGhlCittb2RlJ3MgY29udGV4dC4iCisgIDp0eXBlICdib29sZWFuCisgIDp2ZXJzaW9u
ICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmdmFyIHdhcm5pbmctbWlu
aW11bS1sZXZlbCkKKworKGRlZm1hY3JvIG1hcmtkb3duLXRzLS1pbmhpYml0LW1lc3NhZ2VzLWFu
ZC13YXJuaW5ncyAodmFyICZyZXN0IGJvZHkpCisgICJFeGVjdXRlIEJPRFkgd2l0aCBtZXNzYWdl
cyBhbmQgd2FybmluZ3MgaW5oaWJpdGVkLgorVkFSIGlzIGEgdmFyaWFibGUncyBzeW1ib2w7IGUu
Zy4sCitcXD0nbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MuICBJ
ZiB0aGUgc3ltYm9sJ3MgdmFsdWUKK2lzIG5vbi1uaWwsIGRvIHdoYXQgaXQgc2F5cyBvbiB0aGUg
dGluLgorSW5oaWJpdCBtZXNzYWdlcyBpbiB0aGUgZWNobyBhcmVhLgorSW5oaWJpdCBtZXNzYWdl
cyBpbiB0aGUgbG9nLgorSW5oaWJpdCB3YXJuaW5ncyB3aXRoIGxldmVsIDwgOmVycm9yLiIKKyAg
KGRlY2xhcmUgKGluZGVudCBkZWZ1bikpCisgIGAobGV0KiAoKHZhbCAoc3ltYm9sLXZhbHVlICx2
YXIpKQorICAgICAgICAgIChpbmhpYml0LW1lc3NhZ2UgdmFsKQorICAgICAgICAgOzsgQWxzbyBp
bmhpYml0IGxvZ2dpbmcgdG8gKk1lc3NhZ2VzKgorICAgICAgICAgKG1lc3NhZ2UtbG9nLW1heCAo
aWYgdmFsIG5pbCBtZXNzYWdlLWxvZy1tYXgpKQorICAgICAgICAgKHdhcm5pbmctbWluaW11bS1s
ZXZlbAorICAgICAgICAgIChpZiB2YWwgOmVycm9yIHdhcm5pbmctbWluaW11bS1sZXZlbCkpKQor
ICAgICAocHJvZ24gLEBib2R5KSkpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1j
b2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9kZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMg
Y29kZSBibG9ja3MuIgorICA6dHlwZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAi
VGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisgICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRh
bCBtb2RlIiBmdW5kYW1lbnRhbC1tb2RlKQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIg
bW9kZSBzeW1ib2wiCisgICAgICAgICAgICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdp
ZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChl
cSAnc3ltYm9sICh0eXBlLW9mIHZhbCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJyb3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkKSkpKSkKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMt
dGFibGUtZGVmYXVsdC1jb2x1bW4td2lkdGggNQorICAiQ29sdW1uIHdpZHRoIGZvciBuZXcgY29s
dW1ucy4KK1lvdSBtYXkgbWFrZSB0aGlzIHdpZGVyLCBidXQgc21hbGxlciB0aGFuIDUgaXMgbm90
IHJlY29tbWVuZGVkLiIKKyAgOnR5cGUgJ2ludGVnZXIKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpw
YWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZW5hYmxlLXRh
YmxlLW1vZGUgdAorICAiTm9uLW5pbCBhdXRvbWF0aWNhbGx5IGVuYWJsZXMgYG1hcmtkb3duLXRz
LXRhYmxlLW1vZGUnLgorSWYgbm9uLW5pbCwgZW5hYmxlIGBtYXJrZG93bi10cy10YWJsZS1tb2Rl
JyBpZiBgcG9pbnQnIGlzIGluIGEgTWFya2Rvd24KK3RhYmxlLiIKKyAgOnR5cGUgJ2Jvb2xlYW4K
KyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0
b20gbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiAnKGNlbGwtbmF2aWdhdGlvbiB0cmFuc3Bv
c2UpCisgICJBdXRvbWF0aWNhbGx5IGFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBkdXJpbmcgdGhl
c2Ugb3BlcmF0aW9ucy4KK0lmIHQsIHRyaWdnZXIgb24gYWxsIHN1cHBvcnRlZCBvcGVyYXRpb25z
LgorSWYgbmlsLCBkbyBub3QgYXV0byBhbGlnbi4KK090aGVyd2lzZSwgaXQgaXMgYSBsaXN0IG9m
IHN5bWJvbHMgcmVwcmVzZW50aW5nIHRhYmxlIG9wZXJhdGlvbnMuIgorICA6dHlwZSAnKGNob2lj
ZQorICAgICAgICAgIChjb25zdCA6dGFnICJEbyBub3QgYXV0b21hdGljYWxseSBhbGlnbiIgbmls
KQorICAgICAgICAgIChjb25zdCA6dGFnICJBbHdheXMgYXV0b21hdGljYWxseSBhbGlnbiIgdCkK
KyAgICAgICAgICAoc2V0CisgICAgICAgICAgIChjb25zdCA6dGFnICJDZWxsIG5hdmlnYXRpb24i
IGNlbGwtbmF2aWdhdGlvbikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIlRyYW5zcG9zZSIgdHJh
bnNwb3NlKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQor
CisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWZlYXR1cmVzICcoanVzdGlmeS1j
ZWxscykKKyAgIlVzZSB0aGVzZSBvcHRpb25hbCBmZWF0dXJlcyB3aGVuIGFsaWduaW5nIGEgdGFi
bGUuCitBbGlnbmluZyBhIHRhYmxlIGFsaWducyBlYWNoIGNvbHVtbiB0byB0aGUgd2lkdGggb2Yg
aXRzIHdpZGVzdCBjZWxsLiAgSXQKK2NhbiBhbHNvIGp1c3RpZnkgZWFjaCBjZWxsIGFjY29yZGlu
ZyB0byB0aGUgdGFibGUncyBkZWxpbWl0ZXIgbGluZSBsZWZ0LAorY2VudGVyLCBvciByaWdodC1o
YW5kIGp1c3RpZmljYXRpb24gcnVsZXMuCisKK0N1c3RvbWl6aW5nIHRoaXMgdXNlciBvcHRpb24g
aXMgbW9zdCB1c2VmdWwgd2hlbiB0aGUgdXNlciBvcHRpb24KK2BtYXJrZG93bi10cy10YWJsZS1h
dXRvLWFsaWduJyBpcyBlbmFibGVkIGFuZCB0byBhdm9pZCBoYXZpbmcgdG8gdXNlIGEKK3ByZWZp
eCBhcmd1bWVudCBiZWZvcmUgZXZlcnkgYXV0by1hbGlnbm1lbnQgb3BlcmF0aW9uLgorCitJZiB0
LCBlbmFibGUgYWxsIG9wdGlvbmFsIGFsaWdubWVudCBvcGVyYXRpb25zLgorSWYgbmlsLCBvcGVy
YXRpb25zIGFyZSBlbmFibGVkIGJleW9uZCBiYXNpYyBjb2x1bW4gYWxpZ25tZW50LgorT3RoZXJ3
aXNlLCBpdCBpcyBhIGxpc3Qgb2Ygc3ltYm9scy4iCisgIDp0eXBlICcoY2hvaWNlCisgICAgICAg
ICAgKGNvbnN0IDp0YWcgIk5vIG9wdGlvbmFsIGZlYXR1cmVzIiBuaWwpCisgICAgICAgICAgKGNv
bnN0IDp0YWcgIkFsbCBvcHRpb25hbCBmZWF0dXJlcyIgdCkKKyAgICAgICAgICAoc2V0CisgICAg
ICAgICAgIChjb25zdCA6dGFnICJKdXN0aWZ5IGNlbGxzIiBqdXN0aWZ5LWNlbGxzKSkpCisgIDp2
ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1h
cmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlciAiIFt0YWJsZV0iCisgICJNaW5vciBtb2Rl
IGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBsaWdodGVyIHN0cmluZy4KK1NldCB0byBuaWwg
dG8gZGlzYWJsZSB0aGUgbGlnaHRlci4iCisgIDp0eXBlICdzdHJpbmcKKyAgOnZlcnNpb24gIjMx
LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKzs7OyBGYWNlczoKIAogKGRlZmdyb3Vw
IG1hcmtkb3duLXRzLWZhY2VzIG5pbAotICAiRmFjZXMgdXNlZCBpbiBNYXJrZG93biBUUyBNb2Rl
LiIKKyAgIkZhY2VzIHVzZWQgYnkgTWFya2Rvd24tVFMuIgogICA6Z3JvdXAgJ21hcmtkb3duLXRz
LWZhY2VzCiAgIDpncm91cCAnZmFjZXMpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWRlbGltaXRl
ciAnKCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKLSAgIkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJr
ZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgdGhlICMgYmVmb3JlIE1hcmtkb3duIGhlYWRp
bmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5n
LTEgJygodCAoOmluaGVyaXQgb3V0bGluZS0xKSkpCi0gICJGYWNlIGZvciBmaXJzdCBsZXZlbCBN
YXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rvd24gaGVh
ZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLXNldGV4
dC1oZWFkaW5nICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWhlYWRpbmctMSkpKQotICAiRmFj
ZSBmb3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1bmRlcmxpbmVkIGJ5ID09
PSBvciAtLS0pLiIpCisgICJGYWNlIGZvciBzZXRleHQgTWFya2Rvd24gaGVhZGluZ3MgKGhlYWRp
bmdzIHVuZGVybGluZWQgYnkgPT09IG9yIC0tLSkuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChk
ZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctMiAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTIpKSkK
LSAgIkZhY2UgZm9yIHNlY29uZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBm
b3Igc2Vjb25kIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQog
CiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTMgJygodCAoOmluaGVyaXQgb3V0bGluZS0z
KSkpCi0gICJGYWNlIGZvciB0aGlyZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFj
ZSBmb3IgdGhpcmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNCAnKCh0ICg6aW5oZXJpdCBvdXRsaW5l
LTQpKSkKLSAgIkZhY2UgZm9yIGZvdXJ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAi
RmFjZSBmb3IgZm91cnRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMx
LjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTUgJygodCAoOmluaGVyaXQgb3V0
bGluZS01KSkpCi0gICJGYWNlIGZvciBmaWZ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQor
ICAiRmFjZSBmb3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAi
MzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNiAnKCh0ICg6aW5oZXJpdCBv
dXRsaW5lLTYpKSkKLSAgIkZhY2UgZm9yIHNpeHRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIp
CisgICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9u
ICIzMS4xIikKIAotKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygodCAoOmluaGVy
aXQgc2hhZG93KSkpCi0gICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMgbGlrZSAtIGFu
ZCAqLiIpCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbXBoYXNpcyAnKCh0ICg6aW5oZXJpdCBpdGFs
aWMpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGVtcGhhc2lzIChpdGFsaWMpIHRleHQuIgorICA6
dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWJvbGQgJygodCAoOmluaGVy
aXQgYm9sZCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3Ryb25nIGVtcGhhc2lzIChib2xkKSB0
ZXh0LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1zdHJpa2V0
aHJvdWdoICcoKHQgKDpzdHJpa2UtdGhyb3VnaCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBz
dHJpa2V0aHJvdWdoIHRleHQuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtk
b3duLXRzLWJsb2NrLXF1b3RlICcoKHQgKDppbmhlcml0IGl0YWxpYykpKQotICAiRmFjZSBmb3Ig
TWFya2Rvd24gYmxvY2sgcXVvdGVzLiIpCisgICJGYWNlIGZvciBNYXJrZG93biBibG9jayBxdW90
ZXMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpbmsgJygo
dCAoOmluaGVyaXQgbGluaykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGluayB0ZXh0IGFuZCBp
bWFnZSBkZXNjcmlwdGlvbnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtk
b3duLXRzLWxpbmstZGVzdGluYXRpb24gJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1m
YWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaW5rIGRlc3RpbmF0aW9ucyAoVVJMcykuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNvZGUtc3BhbiAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IGlubGluZSBjb2RlIHNwYW5zLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrICcoKHQgKDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudC4KK0FsdGVyIHRoaXMgZmFjZSB0byBhZGQgYSBg
OmJhY2tncm91bmQnIGZvciBhIHZpc3VhbGx5IGRpc3RpbmN0Citjb2RlIGJsb2NrIHJlZ2lvbiwg
ZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jayBu
aWwgOmJhY2tncm91bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZh
Y2UgbWFya2Rvd24tdHMtaW4tY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2Ug
Zm9yIHdoZW4gcG9pbnQgaXMgaW4gYSBNYXJrZG93biBjb2RlIGJsb2NrLgorU2VlIGBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZScuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRk
IGEgYDpiYWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBl
LmcuOgorICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy1pbi1jb2RlLWJsb2Nr
IDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNl
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQg
bGlnaHQpKSAoOmJhY2tncm91bmQgImdyYXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3Jv
dW5kIGRhcmspKSAgKDpiYWNrZ3JvdW5kICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBm
b3IgTWFya2Rvd24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRk
ZW4uCitVc2VkIGluc3RlYWQgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwJworaXMgbm9uLW5pbC4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29kZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBm
b250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGluZGVudGVkIGNv
ZGUgYmxvY2tzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1o
dG1sLXRhZyAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1cC1mYWNlKSkpCisgICJG
YWNlIGZvciBpbmxpbmUgSFRNTCB0YWdzIGluIE1hcmtkb3duLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQt
bG9jay1kb2MtbWFya3VwLWZhY2UpKSkKKyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtk
b3duLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10aGVtYXRp
Yy1icmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBN
YXJrZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250YWwgcnVsZXMpLgorQ3VzdG9taXplIHRo
aXMgZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3IgYSBmdWxsLXdpZHRoIHZpc3VhbCBydWxl
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbnRpdHktcmVm
ZXJlbmNlICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIG5hbWVkIEhUTUwgZW50aXR5IHJlZmVyZW5jZXMgbGlrZSAmYW1wOyBhbmQgJmNvcHk7LiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJh
Y3Rlci1yZWZlcmVuY2UKKyAgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkp
CisgICJGYWNlIGZvciBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5k
ICYjeDQxOy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0
ZXggJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBM
YVRlWCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAoJC4uLiQgYW5kICQkLi4uJCQpLiIKKyAg
OnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIgJygo
dCAoOmluaGVyaXQgKGJvbGQgZm9udC1sb2NrLWRvYy1mYWNlKSkpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gcGlwZSB0YWJsZSBoZWFkZXIgY2VsbHMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhk
ZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkYXRhIGNlbGxzLiIKKyAgOnZlcnNpb24g
IjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHBp
cGUgdGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2VwYXJhdG9ycykuIgorICA6dmVyc2lvbiAi
MzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlICcoKHQgKDpleHRlbmQgdCkpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gdGFibGUuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRkIGEgYDpi
YWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdCB0YWJsZQorcmVnaW9uLCBlLmcuOgor
ICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy10YWJsZSBuaWwgOmJhY2tncm91
bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24t
dHMtaW4tdGFibGUgJygodCAoOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBgbWFy
a2Rvd24tdHMtaW4tdGFibGUtbW9kZScgd2hlbiBwb2ludCBpcyBpbiBhIHRhYmxlLgorQWx0ZXIg
dGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dyb3VuZCcgZm9yIGEgdmlzdWFsbHkgZGlzdGluY3Qg
dGFibGUKK3JlZ2lvbiwgZS5nLjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24t
dHMtaW4tdGFibGUgbmlsIDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQgJygodCAoOmluaGVy
aXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpKQotICAiRmFjZSBmb3IgdGhlIGxhbmd1YWdlIGtl
eXdvcmQgZm9yIE1hcmtkb3duIGNvZGUgYmxvY2tzLiIpCisgICJGYWNlIGZvciB0aGUgbGFuZ3Vh
Z2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNoYWRv
dykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4iCisg
IDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFr
LWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisg
ICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFp
bGluZyBiYWNrc2xhc2guIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuCisgICcoKHQgKDppbmhlcml0IG91
dGxpbmUtNCA6d2VpZ2h0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIHRyYWlsaW5nLWJhY2tzbGFzaCBo
YXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgJygoKChi
YWNrZ3JvdW5kIGxpZ2h0KSkgKDpiYWNrZ3JvdW5kICJncmF5NzAiIDp3ZWlnaHQgYm9sZCkpCisg
ICAgKCgoYmFja2dyb3VuZCBkYXJrKSkgICg6YmFja2dyb3VuZCAiZ3JheTQwIiA6d2VpZ2h0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGhhcmQgbGluZSBicmVha3MgaW50cm9kdWNlZCBi
eSB0d28gdHJhaWxpbmcgc3BhY2VzLgorVGhlIHRyYWlsaW5nIHNwYWNlcyBhcmUgb3RoZXJ3aXNl
IGludmlzaWJsZSwgc28gdGhleSBhcmUgc2hvd24gYXMgYQorc2hhZG93LWNvbG9yZWQgYmxvY2su
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9s
ZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWxpc3QtbWFya2Vy
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlcnMuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stY2hlY2tlZCAn
KCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1saXN0LW1hcmtlcikpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gY2hlY2tlZCB0YXNrIGxpc3QgbWFya2Vycy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCisKKyhhZGQtdG8tbGlzdAor
ICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rvd24KKyAgICJodHRwczov
L2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisg
ICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAg
OnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCisgdCkKKworKGFkZC10by1s
aXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CisgJyhtYXJrZG93bi1pbmxpbmUK
KyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXIt
bWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFh
NzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMi
KQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXNldC11cC1p
bmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRvIG5vbi1uaWwgZm9yIGlubGluZSBgbWFya2Rv
d24tdHMtbW9kZScgYnVmZmVycy4iKQorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
bW9kZXMKKyAgYCgoc2ggYmFzaC10cy1tb2RlKQorICAgIChzaGVsbCBiYXNoLXRzLW1vZGUpCisg
ICAgKCwoaW50ZXJuICJjIyIpIGNzaGFycC10cy1tb2RlKQorICAgIChjcHAgYysrLXRzLW1vZGUp
CisgICAgKGVsIGVtYWNzLWxpc3AtbW9kZSkKKyAgICAoZWxpc3AgZW1hY3MtbGlzcC1tb2RlKQor
ICAgIChnb2xhbmcgZ28tdHMtbW9kZSkKKyAgICAoZ29tb2QgZ28tbW9kLXRzLW1vZGUpCisgICAg
KGdvd29yayBnby13b3JrLXRzLW1vZGUpCisgICAgKGphdmFzY3JpcHQganMtdHMtbW9kZSkKKyAg
ICAobWQgbWFya2Rvd24tdHMtbW9kZSkKKyAgICAocHkgcHl0aG9uLXRzLW1vZGUpCisgICAgKHJi
IHJ1YnktdHMtbW9kZSkKKyAgICAocnMgcnVzdC10cy1tb2RlKQorICAgICh0ZXggbGF0ZXgtbW9k
ZSkKKyAgICAodHMgdHlwZXNjcmlwdC10cy1tb2RlKQorICAgICh5bWwgeWFtbC10cy1tb2RlKSkK
KyAgIkV4dHJhIG1hcHBpbmdzIGZyb20gY29kZSBibG9jayBsYW5ndWFnZSB0YWdzIHRvIG1ham9y
IG1vZGVzLgogCi07OzsgRm9udC1sb2NrCitFbnRyaWVzIGhlcmUgYXJlIG9ubHkgbmVlZGVkIHdo
ZW4gdGhlIGxhbmd1YWdlIHRhZyBpbiBhIGZlbmNlZCBjb2RlCitibG9jayBkb2VzIE5PVCBtYXRj
aCB0aGUgY29udmVudGlvbmFsIG1vZGUgbmFtZSBkZXJpdmF0aW9uLCBlLmcuIHRoZQordXNlciB3
cml0ZXMgXFw9YFxcPWBcXD1gdHMgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWB0eXBlc2NyaXB0LCBv
cgorXFw9YFxcPWBcXD1gcHkgaW5zdGVhZCBvZiBcXD1gXFw9YFxcPWBweXRob24uICBGb3IgdGFn
cyB0aGF0IGFscmVhZHkKK3Jlc29sdmUgdmlhIHRoZSBzdGFuZGFyZCBcIi10cy1tb2RlXCIvXCIt
bW9kZVwiIGhldXJpc3RpY3MgdGhlcmUgaXMgbm8KK25lZWQgdG8gYWRkIGFuIGVudHJ5LgorCitU
aGUgYWxpc3QgaXMgb2YgdGhlIGZvcm0gKExBTkdVQUdFIE1BSk9SLU1PREUpLiBNQUpPUi1NT0RF
IGNhbiBiZSBhCit0cmVlLXNpdHRlciBvciBhIGNvbnZlbnRpb25hbCBtb2RlLgorCitJZiB5b3Ug
cHJlZmVyIGEgY29udmVudGlvbmFsIG1vZGUgb3ZlciBpdHMgdHJlZS1zaXR0ZXIgdmFyaWFudCwg
YWRkIG9yCityZXBsYWNlIHJlbGV2YW50IGVudHJpZXMuICBGb3IgZXhhbXBsZToKKworICAgIChh
ZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9Jyhw
eXRob24gcHl0aG9uLW1vZGUpKQorICAgIChzZXRmIChhbGlzdC1nZXQgXFw9J3B5IG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgXFw9JyhweXRob24tbW9kZSkpCisKK0Nv
ZGUgYmxvY2tzIGZvciB0aGF0IG5vbiB0cmVlLXNpdHRlciBtb2RlcyB3aWxsIGJlIGZvbnRpZmll
ZCB1c2luZyB0aGUKK21vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2NrIHJ1bGVzLiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMKKyAg
JyhtYXJrZG93bi10cy1tb2RlCisgICAgcGhwLXRzLW1vZGUpCisgICJUcmVhdCB0aGVzZSBjb2Rl
IGJsb2NrIHRyZWUtc2l0dGVyIG1vZGVzIGFzIGNvbnZlbnRpb25hbC4KK1NvbWUgbW9kZXMgdGhh
dCBlbWJlZCBtdWx0aXBsZSBgdHJlZXNpdCcgcGFyc2VycyBuZWVkIHRvIGJlIHRyZWF0ZWQgd2l0
aAorY29udmVudGlvbmFsIGZvbnQtbG9jay4gIGBtYXJrZG93bi10cy1tb2RlJyBpdHNlbGYgaXMg
b25lIG9mIHRoZW0uIikKKworOzs7IEZvbnQtbG9jazoKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWRlbGltaXRlciAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKICAgIkZv
bnRpZnkgZGVsaW1pdGVyIE5PREUgYW5kIG9wdGlvbmFsbHkgaGlkZSBpdHMgbWFya3VwLgpAQCAt
MTY4LDIzICs3NzEsODMzIEBAIG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRz
LS1tYXJrdXApKSkKIAorKGRlZnZhciB1cmwtbWFpbC1jb21tYW5kKSA7IHVybC91cmwtdmFycy5l
bAorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKGJlZyBlbmQgdXJsKQor
ICAiTWFrZSB0aGUgcmVnaW9uIGZyb20gQkVHIHRvIEVORCBhIGNsaWNrYWJsZSBidXR0b24gZm9y
IFVSTC4KK0ZvciBtYWlsdG86IFVSSXMsIHVzZSBgdXJsLW1haWwtY29tbWFuZCcuICBGb3Igb3Ro
ZXIgc2NoZW1lcworXChlLmcuLCBodHRwLCBmdHApLCBvcGVuIHdpdGggYGJyb3dzZS11cmwnLiAg
T3RoZXJ3aXNlLCB0cmVhdCBhcworYSByZWxhdGl2ZSBmaWxlIHBhdGggYW5kIG9wZW4gd2l0aCBg
ZmluZC1maWxlJy4KKworRG8gbm90IHBhc3MgYGZhY2UnIHRvIGBtYWtlLXRleHQtYnV0dG9uJzog
dGhlIGxpbmsgZmFjZSBpcyBhbHJlYWR5CithcHBsaWVkIGJ5IGBtYXJrZG93bi10cy0tZm9udGlm
eS1saW5rLW5vZGUnIHZpYQorYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJyAod2l0aCBg
Om92ZXJyaWRlIGFwcGVuZCcpLCBhbmQKK2BhZGQtdGV4dC1wcm9wZXJ0aWVzJyB3b3VsZCBvdGhl
cndpc2UgcmVwbGFjZSB0aGUgYXBwZW5kZWQgZmFjZQorbGlzdCB3aXRoIGEgc2luZ2xlIGBtYXJr
ZG93bi10cy1saW5rJywgY2xvYmJlcmluZyBhbiBlbmNsb3NpbmcKK2hlYWRpbmcgZmFjZS4iCisg
IDs7IE5PVEU6IFVSSSBzY2hlbWUgYW5kIGhvc3QgbmFtZSBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBw
ZXIgUkZDIDM5ODYKKyAgOzsgYW5kIFJGQyA3MjMwLgorICAobGV0ICgoY2FzZS1mb2xkLXNlYXJj
aCBuaWwpKQorICAgIChtYWtlLXRleHQtYnV0dG9uIGJlZyBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAnYWN0aW9uIChsYW1iZGEgKF9idXR0b24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1w
cmVmaXgtcCAiIyIgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy0tZm9sbG93LWZyYWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzdWJzdHJpbmcgdXJsIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoc3RyaW5nLW1hdGNoLXAgIlxcYG1haWx0bzoiIHVybCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZnVuY2FsbCB1cmwtbWFpbC1jb21tYW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgbWFpbHRvOiIgIiIg
dXJsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaC1w
ICJcXGBbYS16XSs6IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJy
b3dzZS11cmwgdXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IChmaW5k
LWZpbGUgdXJsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICdoZWxwLWVjaG8gdXJsKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIGRlc3RpbmF0aW9uIE5PREUg
YW5kIGhpZGUgaXQgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgJ21hcmtkb3duLXRzLWxpbmst
ZGVzdGluYXRpb24gb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAod2hlbiBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cAorICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUp
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2li
bGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0t
bGluay1yZWYtY2FjaGUgbmlsCisgICJDYWNoZWQgYWxpc3Qgb2YgKExBQkVMIC4gVVJMKSBmcm9t
IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorRWFjaCBlbnRyeSBpcyBhIGNvbnMgY2VsbCBt
YXBwaW5nIGEgZG93bmNhc2VkIGxhYmVsIHN0cmluZyB0byBpdHMKK2Rlc3RpbmF0aW9uIFVSTC4i
KQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNrIG5pbAor
ICAiVmFsdWUgb2YgYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyB3aGVuIHRoZSBjYWNoZSB3
YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucyAo
KQorICAiUmV0dXJuIGFuIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBsaW5rIHJlZmVyZW5j
ZSBkZWZpbml0aW9ucy4KK0xBQkVMIGlzIGRvd25jYXNlZCBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBt
YXRjaGluZy4gIFJlc3VsdHMgYXJlCitjYWNoZWQgYW5kIHJlYnVpbHQgb25seSB3aGVuIHRoZSBi
dWZmZXIgY2hhbmdlcy4iCisgIChsZXQgKCh0aWNrIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGlj
aykpKQorICAgICh1bmxlc3MgKGVxIHRpY2sgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRp
Y2spCisgICAgICAobGV0KiAoKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rv
d24pKQorICAgICAgICAgICAgIChtYXRjaGVzICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgcm9vdAorICAgICAgICAgICAgICAgICAgICAgICAnKChsaW5rX3Jl
ZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2xhYmVs
KSBAbGFiZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtfZGVzdGluYXRpb24pIEBk
ZXN0KSkpKQorICAgICAgICAgICAgIGRlZnMpCisgICAgICAgICh3aGlsZSBtYXRjaGVzCisgICAg
ICAgICAgKGxldCogKChsYWJlbC1wYWlyIChwb3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAg
IChkZXN0LXBhaXIgKHBvcCBtYXRjaGVzKSkKKyAgICAgICAgICAgICAgICAgKGxibC10ZXh0IChz
dHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBsYWJlbC1wYWlyKSB0KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXFsiICJcXF0iKSkpCisgICAgICAg
ICAgICAocHVzaCAoY29ucyAoZG93bmNhc2UgbGJsLXRleHQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXRleHQgKGNkciBkZXN0LXBhaXIpIHQpKQorICAgICAgICAgICAg
ICAgICAgZGVmcykpKQorICAgICAgICAoc2V0cSBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUg
KG5yZXZlcnNlIGRlZnMpCisgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNo
ZS10aWNrIHRpY2spKSkKKyAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLXJlc29sdmUtbGluay1yZWYgKGxhYmVsKQorICAiUmVzb2x2ZSBMQUJF
TCB0byBhIFVSTCB2aWEgbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMuCitMQUJFTCBzaG91bGQg
YmUgdGhlIHRleHQgd2l0aG91dCBicmFja2V0cy4gIE1hdGNoaW5nIGlzCitjYXNlLWluc2Vuc2l0
aXZlIHBlciBDb21tb25NYXJrIHNwZWMgc2VjdGlvbiA0LjcuIgorICAoYWxpc3QtZ2V0IChkb3du
Y2FzZSBsYWJlbCkgKG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9ucykKKyAgICAgICAg
ICAgICBuaWwgbmlsICMnZXF1YWwpKQorCis7OzsgRnJhZ21lbnQgbGlua3M6CisKKyhkZWZjb25z
dCBtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUKKyAgIltdWyFcIiMkJSYnKCkqKywu
Lzo7PD0+P0BcXF5ge3x9fl0iCisgICJQdW5jdHVhdGlvbiBzdHJpcHBlZCBieSBHaXRIdWIncyBn
aC1zbHVnZ2VyIGJlZm9yZSBoeXBoZW5hdGlvbi4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNs
dWctZ2l0aHViICh0ZXh0KQorICAiUmV0dXJuIHRoZSBHaXRIdWItZmxhdm9yIHNsdWcgZm9yIGhl
YWRpbmcgVEVYVC4KK01pcnJvcnMgdGhlIGdoLXNsdWdnZXIgYWxnb3JpdGhtOiBsb3dlcmNhc2Us
IHN0cmlwIGEgZml4ZWQKK3B1bmN0dWF0aW9uIHNldCwgcmVwbGFjZSBzcGFjZXMgd2l0aCBoeXBo
ZW5zLiIKKyAgKGxldCogKChsYyAoZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoc3RyaXBwZWQg
KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10
cy0tc2x1Zy1naXRodWItc3RyaXAtcmUgIiIgbGMpKSkKKyAgICAocmVwbGFjZS1yZWdleHAtaW4t
c3RyaW5nICJbWzpibGFuazpdXSIgIi0iIHN0cmlwcGVkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tc2x1Zy1wYW5kb2MgKHRleHQpCisgICJSZXR1cm4gdGhlIFBhbmRvYy1mbGF2b3IgYXV0by1p
ZCBzbHVnIGZvciBoZWFkaW5nIFRFWFQuCitNaXJyb3JzIFBhbmRvYydzIGFsZ29yaXRobTogZHJv
cCBldmVyeXRoaW5nIGJlZm9yZSB0aGUgZmlyc3QKK2xldHRlciwga2VlcCBhbHBoYW51bWVyaWNz
IGFuZCBgXy0uJywgY29sbGFwc2Ugd2hpdGVzcGFjZSBydW5zIHRvCitoeXBoZW5zLCBsb3dlcmNh
c2UuICBGYWxscyBiYWNrIHRvIFwic2VjdGlvblwiIGlmIGVtcHR5LiIKKyAgKGxldCogKChsYyAo
ZG93bmNhc2UgdGV4dCkpCisgICAgICAgICAoZnJvbS1sZXR0ZXIgKGlmIChzdHJpbmctbWF0Y2gg
IltbOmFscGhhOl1dIiBsYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBs
YyAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAg
ICAgICAgKGtlcHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICJb
Xls6YWxudW06XV8uXG5cdFs6Ymxhbms6XS1dIiAiIiBmcm9tLWxldHRlcikpCisgICAgICAgICAo
aHlwaGVuYXRlZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJbWzpibGFuazpdXHRcbl0rIiAi
LSIga2VwdCkpCisgICAgICAgICAodHJpbW1lZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICIt
K1xcJyIgIiIgaHlwaGVuYXRlZCkpKQorICAgIChpZiAoc3RyaW5nLWVtcHR5LXAgdHJpbW1lZCkg
InNlY3Rpb24iIHRyaW1tZWQpKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1leHBsaWNpdC1p
ZC1yZQorICAiWyBcdF0qe1sgXHRdKiNcXChbXn0gXHRdK1xcKVsgXHRdKn1bIFx0XSpcXCciCisg
ICJNYXRjaCBhIFBhbmRvYy1zdHlsZSB0cmFpbGluZyBgeyNpZH0nIG9uIGEgaGVhZGluZyBsaW5l
LgorQ2FwdHVyZSBncm91cCAxIGlzIHRoZSBleHBsaWNpdCBpZC4iKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgKHJhdykKKyAgIlNwbGl0IFJBVyBoZWFkaW5nIHRl
eHQgaW50byAoVklTSUJMRSAuIEVYUExJQ0lULUlEKS4KK0VYUExJQ0lULUlEIGlzIG5vbi1uaWwg
aWYgUkFXIGVuZHMgd2l0aCBhIFBhbmRvYy1zdHlsZSBgeyNpZH0nLAoraW4gd2hpY2ggY2FzZSBW
SVNJQkxFIGlzIFJBVyB3aXRoIHRoYXQgc3VmZml4IHJlbW92ZWQuIgorICAoaWYgKHN0cmluZy1t
YXRjaCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUgcmF3KQorICAgICAgKGNvbnMgKHN1YnN0
cmluZyByYXcgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgKG1hdGNoLXN0cmlu
ZyAxIHJhdykpCisgICAgKGNvbnMgcmF3IG5pbCkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3du
LXRzLS1oZWFkaW5nLWlkLWNhY2hlIG5pbAorICAiQ2FjaGVkIGhhc2ggdGFibGUgbWFwcGluZyBo
ZWFkaW5nIHNsdWcgc3RyaW5ncyB0byBidWZmZXIgcG9zaXRpb25zLgorRWFjaCB2YWx1ZSBpcyB0
aGUgYnVmZmVyIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2hpbmcKK2BhdHhfaGVh
ZGluZycgb3IgYHNldGV4dF9oZWFkaW5nJyBub2RlLiAgQnVpbHQgbGF6aWx5IGJ5CitgbWFya2Rv
d24tdHMtLWhlYWRpbmctaWRzJywgaW52YWxpZGF0ZWQgYnkgYnVmZmVyLXRpY2sgY2hhbmdlLiIp
CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayBuaWwK
KyAgIlZhbHVlIG9mIGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgaGVhZGlu
Zy1pZCBjYWNoZSB3YXMgYnVpbHQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1idWlsZC1oZWFk
aW5nLWlkcyAoKQorICAiV2FsayBhbGwgaGVhZGluZ3MgaW4gdGhlIGJ1ZmZlciBhbmQgcmV0dXJu
IGEgaGFzaCB0YWJsZS4KK1doaWNoIG1hcHMgZWFjaCBzbHVnIHRvIHRoZSBidWZmZXIgcG9zaXRp
b24gb2YgaXRzIGhlYWRpbmcuICBFYWNoCitoZWFkaW5nIGNvbnRyaWJ1dGVzIGl0cyBHaXRIdWIg
c2x1ZywgaXRzIFBhbmRvYyBzbHVnLCBhbmQgaXRzIGV4cGxpY2l0CitgeyNpZH0nIGlmIHByZXNl
bnQuICBCb3RoIHNsdWcgYWxnb3JpdGhtcyBhcmUgc3RvcmVkIGluIHRoZSBzYW1lIGJ1ZmZlcgor
YmVjYXVzZSBhIG1hcmtkb3duIGZpbGUgaXMgb2Z0ZW4gcHJldmlld2VkIGJ5IHNldmVyYWwgcmVu
ZGVyZXJzIChHaXRIdWIKK3dlYiBVSSwgUGFuZG9jLCBtZEJvb2ssIEh1Z28sIGFuZCBzbyBvbikg
YW5kIHRoZSBzYW1lIHNvdXJjZSBzaG91bGQKK3Jlc29sdmUgcmVnYXJkbGVzcyBvZiB3aGljaCBv
bmUgdGhlIGF1dGhvciB3cm90ZSB0aGUgbGluayBmb3IuICBGb3IgbW9zdAoraGVhZGluZ3MgdGhl
IHR3byBhbGdvcml0aG1zIHByb2R1Y2UgdGhlIHNhbWUgc2x1ZyBhbnl3YXkuCitEdXBsaWNhdGUg
c2x1Z3MgKHdpdGhpbiBvbmUgYWxnb3JpdGhtKSBhcmUgZGlzYW1iaWd1YXRlZCBieSBhcHBlbmRp
bmcKK2AtMScsIGAtMicsIGFuZCBzbyBvbiwgaW4gZG9jdW1lbnQgb3JkZXIsIG1hdGNoaW5nIEdp
dEh1YidzIGJlaGF2aW9yLgorV2hlbiB0d28gZGlzdGluY3QgaGVhZGluZ3Mgd291bGQgb3RoZXJ3
aXNlIHNoYXJlIGEgc2x1ZywgdGhlIGZpcnN0CitvY2N1cnJlbmNlIGluIGRvY3VtZW50IG9yZGVy
IHdpbnMuIgorICAobGV0ICgodGFibGUgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFsKSkK
KyAgICAgICAgOzsgUGVyLWFsZ29yaXRobSBkZWR1cGUgY291bnRlcnM6IGhvdyBtYW55IHRpbWVz
IHRoaXMgYmFzZSBzbHVnCisgICAgICAgIDs7IGhhcyBiZWVuIHNlZW4gc28gZmFyIGluIGRvY3Vt
ZW50IG9yZGVyLgorICAgICAgICAoZ2gtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydl
cXVhbCkpCisgICAgICAgIChwZC1jb3VudHMgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFs
KSkKKyAgICAgICAgKHJvb3QgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pKSkK
KyAgICAoZG9saXN0IChjYXAgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAg
ICAgcm9vdAorICAgICAgICAgICAgICAgICAgJygoKGF0eF9oZWFkaW5nKSBAaCkKKyAgICAgICAg
ICAgICAgICAgICAgKChzZXRleHRfaGVhZGluZykgQGgpKSkpCisgICAgICAobGV0KiAoKG5vZGUg
KGNkciBjYXApKQorICAgICAgICAgICAgIChwb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgICAgICAocmF3IChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0
KSkpCisgICAgICAgICAgICAgOzsgU3RyaXAgdGhlIGxlYWRpbmcgbWFya2VyICgjIyMgb3IgPT09
PS8tLS0tKS4KKyAgICAgICAgICAgICA7OyBGb3IgYXR4LCBkcm9wIGxlYWRpbmcgIydzIGFuZCBm
b2xsb3dpbmcgc3BhY2UuCisgICAgICAgICAgICAgOzsgRm9yIHNldGV4dCwgZHJvcCB0aGUgdHJh
aWxpbmcgdW5kZXJsaW5lIGxpbmUuCisgICAgICAgICAgICAgKHRleHQgKGNvbmQKKyAgICAgICAg
ICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYCMrWyBcdF0qXFwoLio/XFwpWyBcdF0qIypb
IFx0XSpcXCciIHJhdykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcp
KQorICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFxgXFwoLio/XFwpXG5bPS1d
K1sgXHRdKlxcJyIgcmF3KQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIHJh
dykpCisgICAgICAgICAgICAgICAgICAgICh0IHJhdykpKQorICAgICAgICAgICAgIChzcGxpdCAo
bWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQgdGV4dCkpCisgICAgICAgICAgICAgKHZp
c2libGUgKGNhciBzcGxpdCkpCisgICAgICAgICAgICAgKGV4cGxpY2l0IChjZHIgc3BsaXQpKSkK
KyAgICAgICAgOzsgRXhwbGljaXQgeyNpZH0gd2lucyBvdXRyaWdodDsgZmlyc3Qgb2NjdXJyZW5j
ZSBrZWVwcyBpdC4KKyAgICAgICAgKHdoZW4gKGFuZCBleHBsaWNpdCAobm90IChnZXRoYXNoIGV4
cGxpY2l0IHRhYmxlKSkpCisgICAgICAgICAgKHB1dGhhc2ggZXhwbGljaXQgcG9zIHRhYmxlKSkK
KyAgICAgICAgOzsgQXV0byBzbHVncyAoR2l0SHViICsgUGFuZG9jKSwgZGVkdXBlZCBwZXIgYWxn
b3JpdGhtLgorICAgICAgICAobGV0KiAoKGdoLWJhc2UgKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1
YiB2aXNpYmxlKSkKKyAgICAgICAgICAgICAgIChwZC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1w
YW5kb2MgdmlzaWJsZSkpCisgICAgICAgICAgICAgICAoZ2gtbiAoZ2V0aGFzaCBnaC1iYXNlIGdo
LWNvdW50cyAwKSkKKyAgICAgICAgICAgICAgIChwZC1uIChnZXRoYXNoIHBkLWJhc2UgcGQtY291
bnRzIDApKQorICAgICAgICAgICAgICAgKGdoLWlkIChpZiAoemVyb3AgZ2gtbikgZ2gtYmFzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIGdoLWJhc2UgZ2gtbikpKQor
ICAgICAgICAgICAgICAgKHBkLWlkIChpZiAoemVyb3AgcGQtbikgcGQtYmFzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtJWQiIHBkLWJhc2UgcGQtbikpKSkKKyAgICAgICAg
ICAocHV0aGFzaCBnaC1iYXNlICgxKyBnaC1uKSBnaC1jb3VudHMpCisgICAgICAgICAgKHB1dGhh
c2ggcGQtYmFzZSAoMSsgcGQtbikgcGQtY291bnRzKQorICAgICAgICAgIDs7IEZpcnN0LXdyaXRl
ci13aW5zIHNvIGRvY3VtZW50IG9yZGVyIHRpZWJyZWFrcyBjb2xsaXNpb25zLgorICAgICAgICAg
ICh1bmxlc3MgKGdldGhhc2ggZ2gtaWQgdGFibGUpIChwdXRoYXNoIGdoLWlkIHBvcyB0YWJsZSkp
CisgICAgICAgICAgKHVubGVzcyAoZ2V0aGFzaCBwZC1pZCB0YWJsZSkgKHB1dGhhc2ggcGQtaWQg
cG9zIHRhYmxlKSkpKSkKKyAgICB0YWJsZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGlu
Zy1pZHMgKCkKKyAgIlJldHVybiB0aGUgaGVhZGluZy1pZCBoYXNoIHRhYmxlIGZvciB0aGUgY3Vy
cmVudCBidWZmZXIuCitDYWNoZSBpcyByZWJ1aWx0IG9ubHkgd2hlbiBgYnVmZmVyLWNoYXJzLW1v
ZGlmaWVkLXRpY2snIGhhcyBhZHZhbmNlZAorc2luY2UgdGhlIGxhc3QgY2FsbCAobWlycm9ycyBg
bWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlJykuIgorICAobGV0ICgodGljayAoYnVmZmVyLWNo
YXJzLW1vZGlmaWVkLXRpY2spKSkKKyAgICAodW5sZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1o
ZWFkaW5nLWlkLWNhY2hlLXRpY2spCisgICAgICAoc2V0cSBtYXJrZG93bi10cy0taGVhZGluZy1p
ZC1jYWNoZSAobWFya2Rvd24tdHMtLWJ1aWxkLWhlYWRpbmctaWRzKQorICAgICAgICAgICAgbWFy
a2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGljayB0aWNrKSkKKyAgICBtYXJrZG93bi10cy0t
aGVhZGluZy1pZC1jYWNoZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9sbG93LWZyYWdtZW50
IChpZCkKKyAgIkp1bXAgdG8gdGhlIGhlYWRpbmcgd2hvc2Ugc2x1ZyBtYXRjaGVzIElEICh3aXRo
b3V0IGxlYWRpbmcgYCMnKS4KK1B1c2hlcyB0aGUgbWFyayBiZWZvcmUgbW92aW5nIHNvIGBDLXUg
Qy1TUEMnIHJldHVybnMuICBTaWduYWxzCitgdXNlci1lcnJvcicgaWYgbm8gaGVhZGluZyBtYXRj
aGVzLiIKKyAgKGlmLWxldCogKChwb3MgKGdldGhhc2ggaWQgKG1hcmtkb3duLXRzLS1oZWFkaW5n
LWlkcykpKSkKKyAgICAgIChwcm9nbgorICAgICAgICAocHVzaC1tYXJrKQorICAgICAgICAoZ290
by1jaGFyIHBvcykKKyAgICAgICAgKHJlY2VudGVyKSkKKyAgICAodXNlci1lcnJvciAiTm8gaGVh
ZGluZyBmb3IgZnJhZ21lbnQ6ICMlcyIgaWQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250
aWZ5LWhlYWRpbmcgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBfZW5kICZyZXN0IF8pCisgICJBcHBs
eSB0aGUgaGVhZGluZyBmYWNlIHRvIE5PREUncyBmdWxsIGV4dGVudC4KK1VzZSBgZm9udC1sb2Nr
LWFwcGVuZC10ZXh0LXByb3BlcnR5JyBkaXJlY3RseSBzbyB0aGUgZmFjZSBpcyBhcHBsaWVkCith
Y3Jvc3MgdGhlIGVudGlyZSBoZWFkaW5nIGV2ZW4gd2hlbiBjaGlsZCBzdWItbm9kZXMgKGUuZy4g
YW4gaW5saW5lCitsaW5rKSB3b3VsZCBvdGhlcndpc2UgcHJldmVudCB0aGUgcmVndWxhciB0cmVl
LXNpdHRlciBmYWNlIHJ1bGUgZnJvbQorY292ZXJpbmcgdGhlbS4KKworRm9yIEFUWCBoZWFkaW5n
cywgYWxzbyBmb250aWZ5IGFueSBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJworc2VxdWVu
Y2UgYXMgYSBkZWxpbWl0ZXIuICBUaGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBkb2VzIG5vdCBwcm9k
dWNlIGEKK3NlcGFyYXRlIG5vZGUgZm9yIHRoZXNlOyBwZXIgQ29tbW9uTWFyayB0aGV5IGFyZSBk
ZWNvcmF0aXZlIGFuZAorbXVzdCBiZSBwcmVjZWRlZCBieSBhIHNwYWNlIG9yIHRhYi4iCisgIChs
ZXQqICgodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAobi1zdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG4tZW5kICAgKHRyZWVzaXQtbm9k
ZS1lbmQgbm9kZSkpCisgICAgICAgICAoZmFjZSAoY29uZAorICAgICAgICAgICAgICAgICgoZXF1
YWwgdHlwZSAic2V0ZXh0X2hlYWRpbmciKQorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMt
c2V0ZXh0LWhlYWRpbmcpCisgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgKGxl
dCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCkpKQorICAgICAgICAgICAgICAg
ICAgIChpbnRlcm4gKGZvcm1hdCAibWFya2Rvd24tdHMtaGVhZGluZy0lZCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQgbWFya2Vy
IHQpKSkpKSkpKSkKKyAgICAoZm9udC1sb2NrLWFwcGVuZC10ZXh0LXByb3BlcnR5IG4tc3RhcnQg
bi1lbmQgJ2ZhY2UgZmFjZSkKKyAgICAod2hlbiAoc3RyaW5nLXByZWZpeC1wICJhdHhfIiB0eXBl
KQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgbi1lbmQpCisgICAg
ICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHRcbiIgbi1zdGFydCkKKyAgICAgICAgKGxldCAo
KGxpbmUtZW5kIChwb2ludCkpKQorICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQi
IG4tc3RhcnQpCisgICAgICAgICAgKGxldCAoKHRyYWlsaW5nLWVuZCAocG9pbnQpKSkKKyAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBuLXN0YXJ0KQorICAgICAgICAgICAgKGxl
dCAoKHRyYWlsaW5nLXN0YXJ0IChwb2ludCkpKQorICAgICAgICAgICAgICAod2hlbiAoYW5kICg8
IHRyYWlsaW5nLXN0YXJ0IHRyYWlsaW5nLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
PiB0cmFpbGluZy1zdGFydCBuLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1x
IChjaGFyLWJlZm9yZSB0cmFpbGluZy1zdGFydCkgJyg/XHMgP1x0KSkpCisgICAgICAgICAgICAg
ICAgKGZvbnQtbG9jay1wcmVwZW5kLXRleHQtcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgdHJh
aWxpbmctc3RhcnQgdHJhaWxpbmctZW5kCisgICAgICAgICAgICAgICAgICdmYWNlICdtYXJrZG93
bi10cy1kZWxpbWl0ZXIpCisgICAgICAgICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1t
YXJrdXAKKyAgICAgICAgICAgICAgICAgIDs7IEFsc28gaGlkZSB0aGUgc3BhY2UocykgcHJlY2Vk
aW5nIHRoZSBjbG9zZXIgYW5kIGFueQorICAgICAgICAgICAgICAgICAgOzsgdHJhaWxpbmcgd2hp
dGVzcGFjZSwgc28gdGhlIGhlYWRpbmcgbG9va3MgY2xlYW4uCisgICAgICAgICAgICAgICAgICAo
bGV0ICgoaGlkZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciB0cmFpbGluZy1zdGFydCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIgbi1zdGFy
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgaGlkZS1zdGFydCBsaW5lLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkp
KSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlIChub2RlIG92
ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5rIG9yIGltYWdlIHRleHQg
Tk9ERSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitXb3JrcyBmb3IgaW5saW5lIGxpbmtzLCByZWZl
cmVuY2UgbGlua3MsIHNob3J0Y3V0IGxpbmtzLCBhbmQKK2ltYWdlIGRlc2NyaXB0aW9ucy4gIFRo
ZSBVUkwgaXMgdGFrZW4gZnJvbSBhIHNpYmxpbmcKK2BsaW5rX2Rlc3RpbmF0aW9uJyBub2RlIHdo
ZW4gcHJlc2VudCwgb3IgcmVzb2x2ZWQgZnJvbSBhCitsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9u
LCBvciB0aGUgbm9kZSB0ZXh0IGl0c2VsZiBpcyB1c2VkIGFzCitmYWxsYmFjay4gIE9WRVJSSURF
LCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnkt
d2l0aC1vdmVycmlkZScuIgorICAobGV0ICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5v
ZGUpKSkKKyAgICA7OyBXaGVuIE5PREUgaXMgYSBsaW5rX2xhYmVsIGluc2lkZSBhIGZ1bGxfcmVm
ZXJlbmNlX2xpbmsgdGhhdAorICAgIDs7IGFsc28gaGFzIGEgbGlua190ZXh0LCBza2lwIGl0LCBs
aW5rX3RleHQgaGFuZGxlcyB0aGF0IGxpbmsuCisgICAgKHVubGVzcyAoYW5kIChzdHJpbmc9ICh0
cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAibGlua19sYWJlbCIpCisgICAgICAgICAgICAgICAgICh0
cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua190ZXh0XFwnIikpCisgICAgICAo
dHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICAgJ21hcmtkb3duLXRzLWxpbmsg
b3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNlYXJjaC1z
dWJ0cmVlIHBhcmVudCAiXFxgbGlua19kZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgICAgICh1
cmwgKGlmIGRlc3QKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgZGVz
dCB0KQorICAgICAgICAgICAgICAgICAgICA7OyBSZWZlcmVuY2UgbGlua3M6IHJlc29sdmUgdmlh
IGxpbmtfbGFiZWwgb3IgbGlua190ZXh0LgorICAgICAgICAgICAgICAgICAgICAobGV0KiAoKGxh
YmVsLW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJlbnQgIlxcYGxpbmtfbGFiZWxcXCciKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYWJlbCAoaWYgbGFiZWwtbm9kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwtbm9k
ZSB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlxcWyIgIlxcXSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXRleHQgbm9kZSB0KSkpKQorICAgICAgICAgICAgICAgICAgICAgIChvciAobWFya2Rv
d24tdHMtLXJlc29sdmUtbGluay1yZWYgbGFiZWwpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IGxhYmVsKSkpKSkKKyAgICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uCisgICAg
ICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpIHVy
bCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluayAobm9kZSBvdmVy
cmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgYXV0b2xpbmsgTk9ERSAoVVJJIG9y
IGVtYWlsKSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitGb3IgZW1haWwgYXV0b2xpbmtzLCB0aGUg
VVJMIGlzIHByZWZpeGVkIHdpdGggXCJtYWlsdG86XCIuCitBbmdsZSBicmFja2V0IGRlbGltaXRl
cnMgYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFu
ZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp
ZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoaW5u
ZXIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAgICAoMSsg
bm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSkpCisgICAgICAgICAodXJsIChpZiAoc3RyaW5nPSAo
dHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImVtYWlsX2F1dG9saW5rIikKKyAgICAgICAgICAgICAg
ICAgIChjb25jYXQgIm1haWx0bzoiIGlubmVyKQorICAgICAgICAgICAgICAgIGlubmVyKSkpCisg
ICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQgbm9kZS1l
bmQgJ21hcmtkb3duLXRzLWxpbmsgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChtYXJrZG93bi10
cy0tbWFrZS1saW5rLWJ1dHRvbiBub2RlLXN0YXJ0IG5vZGUtZW5kIHVybCkKKyAgICAod2hlbiBt
YXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgKDErIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAn
bWFya2Rvd24tdHMtLW1hcmt1cCkKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoMS0gbm9kZS1l
bmQpIG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rv
d24tdHMtLW1hcmt1cCkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVm
LWxhYmVsIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBsaW5r
IHJlZmVyZW5jZSBkZWZpbml0aW9uIGxhYmVsIE5PREUgYXMgYSBjbGlja2FibGUgYnV0dG9uLgor
VGhlIGJyYWNrZXRzIGFuZCBjb2xvbiBhcmUgaGlkZGVuIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4K
K09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBu
b2RlKSkKKyAgICAgICAgIChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAg
ICAgICAoZGVzdC1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGlua19k
ZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgKHVybCAod2hlbiBkZXN0LW5vZGUgKHRyZWVzaXQt
bm9kZS10ZXh0IGRlc3Qtbm9kZSB0KSkpKQorICAgIDs7IEZvbnRpZnkgdGhlIGxhYmVsIHRleHQg
KGluc2lkZSBicmFja2V0cykuCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisg
ICAgICgxKyBub2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpCisgICAgICdtYXJrZG93bi10cy1saW5r
IG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICA7OyBNYWtlIGl0IGEgY2xpY2thYmxlIGJ1dHRvbi4K
KyAgICAod2hlbiB1cmwKKyAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbiAoMSsg
bm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKSB1cmwpKQorICAgIDs7IEhpZGUgIlsiIGJlZm9yZSBs
YWJlbCBhbmQgIl06ICIgYmV0d2VlbiBsYWJlbCBhbmQgZGVzdGluYXRpb24uCisgICAgKHdoZW4g
bWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0
YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUg
J21hcmtkb3duLXRzLS1tYXJrdXApCisgICAgICAobGV0ICgoY29sb24tZW5kIChpZiBkZXN0LW5v
ZGUgKHRyZWVzaXQtbm9kZS1zdGFydCBkZXN0LW5vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgKDErIG5vZGUtZW5kKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUt
ZW5kKSBjb2xvbi1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21h
cmtkb3duLXRzLS1tYXJrdXApKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1yZWYtZGVzdGluYXRpb24gKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3QgXykKKyAgIkZv
bnRpZnkgbGluayByZWZlcmVuY2UgZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3aGVuIG1hcmt1
cCBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRv
CitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVycmlkZSBzdGFy
dCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1dC10ZXh0LXBy
b3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5vZGUpCisgICJS
ZXR1cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNpbmdsZSBpbmxp
bmUgc2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBmYWxzZSBgbGF0
ZXhfYmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4g
IENoZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMgc2hhcmUgdGhl
IHNhbWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9kZS1zdGFydCAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEtICh0cmVlc2l0
LW5vZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0cmVlc2l0LW5v
ZGUtYXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChtZC1lbmQgKHRy
ZWVzaXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChpbmxp
bmUtc3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChu
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUt
dHlwZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVuZCAodHJlZXNp
dC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQtZW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkpCisg
ICAgICAoZXEgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisgICAgICAgICAgKHRy
ZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAi
Rm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxpbWl0ZXJzIHdoZW4gbWFy
a3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFsc2UgbWF0Y2hlcyB0aGF0
IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCBub2RlKQorICAg
ICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJrZG93bi10cy1sYXRleCBv
dmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAg
ICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQgbm9kZSkpCisgICAgICAg
IChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkpKQorICAgICAgICAgICh3
aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRleF9zcGFuX2RlbGltaXRl
ciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBj
aGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBj
aGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93
bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3Ns
YXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkg
YmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFzaCB3aGVuIG1hcmt1cCBp
cyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2NrJyB3aGVyZSBiYWNrc2xh
c2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNz
ZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQg
KChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChpbi1sYXRl
eCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkKKyAg
ICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4g
KGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4KSkKKyAgICAgIChwdXQt
dGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkpCisKKyhkZWZ2YXIg
c2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudGl0eS1nZXQgIm9yZy9v
cmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHkgKHRl
eHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCImYW1wO1wiKSB0byBpdHMg
Y2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJpbmcsIG9yIG5pbCBpZiB0
aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVtZXJpYyBoZXggJiN4MUY0
QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0Ol1dK1xcKTtcXCciIHRl
eHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJpbmcg
MSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIzOworICAgKChzdHJpbmct
bWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAoY2hhci10by1z
dHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRleHQpKSkpCisgICA7OyBO
YW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBiYWNrIHRvIHNnbWwtY2hh
ci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51bTpdXStcXCk7XFwnIiB0
ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkpCisgICAgICAocmVx
dWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRyeSAob3JnLWVudGl0eS1n
ZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVudHJ5KSkpCisgICAgICAg
ICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAgICAgICAod2hlbi1sZXQq
ICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1lICMnZXF1YWwpKSkKKyAg
ICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZv
bnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFsdWUgd2hlbiBtYXJrdXAg
aXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0
bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChub2RlLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAgICAgICAgJ21hcmtkb3du
LXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbnVtZXJp
Yy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtkb3duLXRzLWhpZGUtbWFy
a3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93bi10cy0tZGVjb2RlLWVu
dGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5v
ZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiBk
ZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3RhcnQgbm9k
ZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyBu
b2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZSAodmFsKQorICAiUmVzb2x2ZSBWQUwsIGEgY29ucyAo
UFJFRkVSUkVEIC4gRkFMTEJBQ0spLCB0byBhIGRpc3BsYXlhYmxlIHZhbHVlLgorUmV0dXJuIFBS
RUZFUlJFRCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyIHBhc3NlcyBgY2hhci1kaXNwbGF5YWJsZS1w
JywKK290aGVyd2lzZSByZXR1cm4gRkFMTEJBQ0suICBSZXR1cm4gbmlsIGlmIFZBTCBpcyBuaWwu
IgorICAod2hlbiB2YWwKKyAgICAobGV0KiAoKHByZWZlcnJlZCAoY2FyIHZhbCkpCisgICAgICAg
ICAgIChjaCAoaWYgKGNoYXJhY3RlcnAgcHJlZmVycmVkKSBwcmVmZXJyZWQgKGFyZWYgcHJlZmVy
cmVkIDApKSkpCisgICAgICAoaWYgKGNoYXItZGlzcGxheWFibGUtcCBjaCkgKGNhciB2YWwpIChj
ZHIgdmFsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94IChub2Rl
IG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3QgY2hlY2ti
b3ggTk9ERSwgc2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09W
RVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9k
ZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2Rl
KSkKKyAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgInRh
c2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNrZWQgJ21h
cmtkb3duLXRzLXRhc2stY2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGFz
ay11bmNoZWNrZWQpKQorICAgICAgICAgKHZhbHVlIChpZiBjaGVja2VkCisgICAgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gKKyAgICAgICAgICAgICAgICAgIG1h
cmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCkpCisgICAgICAgICAocmVwbGFjZW1lbnQKKyAg
ICAgICAgICAoY29uZCAoKGVxIHZhbHVlICdpY29uKQorICAgICAgICAgICAgICAgICAoaWNvbi1z
dHJpbmcgKGlmIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveC1pY29uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gtaWNvbikpKQorICAgICAgICAg
ICAgICAgICh0IChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlIHZhbHVlKSkpKQor
ICAgICAgICAgOzsgSWYgYGljb24tc3RyaW5nJyByZXR1cm5lZCBhbiBpbWFnZSwgaXRzIGBkaXNw
bGF5JyBwcm9wZXJ0eQorICAgICAgICAgOzsgb24gY2hhciAwIGhvbGRzIHRoZSBhY3R1YWwgaW1h
Z2Ugc3BlYzsgbmVzdGVkIGBkaXNwbGF5JworICAgICAgICAgOzsgcHJvcHMgYXJlIG5vdCBob25v
cmVkIHdoZW4gYSBzdHJpbmcgaXMgdGhlIHZhbHVlIG9mIGEKKyAgICAgICAgIDs7IGBkaXNwbGF5
JyB0ZXh0LXByb3BlcnR5LCBzbyBhcHBseSB0aGUgc3BlYyBkaXJlY3RseS4KKyAgICAgICAgIChk
aXNwbGF5LXNwZWMKKyAgICAgICAgICAob3IgKGFuZCAoZXEgdmFsdWUgJ2ljb24pIHJlcGxhY2Vt
ZW50CisgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2Rpc3BsYXkgcmVw
bGFjZW1lbnQpKQorICAgICAgICAgICAgICByZXBsYWNlbWVudCkpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAoYW5k
IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50CisgICAgICAgICAgICAgKG9yIChl
cSB2YWx1ZSAnaWNvbikKKyAgICAgICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJl
ZiByZXBsYWNlbWVudCAwKSkpKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFy
dCBub2RlLWVuZCAnZGlzcGxheSBkaXNwbGF5LXNwZWMpCisgICAgICAocmVtb3ZlLXRleHQtcHJv
cGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1saW5lLWJyZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0
IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBoYXJkIGxpbmUgYnJlYWsgTk9ERTsgc2hvdyBhIFVu
aWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK0EgYmFja3NsYXNoIGJyZWFrIGdl
dHMgYG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gnIChvciBpdHMKK2AtaGlk
ZGVuJyB2YXJpYW50IHdoZW4gbWFya3VwIGlzIGhpZGRlbik7IGEgdHJhaWxpbmctc3BhY2VzIGJy
ZWFrIGdldHMKK2BtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UnIChvciBgLWhpZGRl
bicpLiAgV2hlbiBoaWRkZW4sIGEKK2JhY2tzbGFzaCBicmVhayBpcyByZXBsYWNlZCBieSBhIHNp
bmdsZSBgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrJworZ2x5cGg7IGEgdHJhaWxpbmctc3Bh
Y2VzIGJyZWFrIHJlcGxhY2VzIGVhY2ggc3BhY2Ugd2l0aCB0aGUgZ2x5cGgsIHNvIHRoZSBydW4K
K29mIHBpbGNyb3dzIGZpbGxzIHRoZSBsaW5lIHVwIHRvIHRoZSBuZXdsaW5lLgorT1ZFUlJJREUs
IFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0
IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisg
ICAgICAgICAodGV4dCAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkKKyAgICAgICAg
IChiYWNrc2xhc2ggIChhbmQgKD4gKGxlbmd0aCB0ZXh0KSAwKSAoZXEgKGFyZWYgdGV4dCAwKSA/
XFwpKSkKKyAgICAgICAgIDs7IERldGVybWluZSB0aGUgYWN0dWFsIHJhbmdlIHRvIGZvbnRpZnkg
YW5kIHJlcGxhY2UuICBUaGUKKyAgICAgICAgIDs7IGhhcmRfbGluZV9icmVhayBub2RlIG1heSBu
b3QgY292ZXIgdGhlIGZ1bGwgcnVuIG9mIHRyYWlsaW5nCisgICAgICAgICA7OyBzcGFjZXMsIHNv
IHdhbGsgYmFjayBmcm9tIGVuZC1vZi1saW5lIG91cnNlbHZlcyBmb3IgdGhlCisgICAgICAgICA7
OyBzcGFjZXMgdmFyaWFudC4KKyAgICAgICAgIChyZWdpb24gICAgIChpZiBiYWNrc2xhc2gKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBub2RlLXN0YXJ0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGlmIChhbmQgKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNoYXItYmVmb3JlIG5vZGUtZW5k
KSA/XG4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gbm9kZS1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLWVuZCkpCisgICAgICAgICAg
ICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChn
b3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZW9s
IChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFy
cy1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlb2wpKSkpKQorICAg
ICAgICAgKHJlZ2lvbi1zdGFydCAoY2FyIHJlZ2lvbikpCisgICAgICAgICAocmVnaW9uLWVuZCAg
IChjZHIgcmVnaW9uKSkKKyAgICAgICAgIChmYWNlICAgICAgIChjb25kCisgICAgICAgICAgICAg
ICAgICAgICAgKChhbmQgYmFja3NsYXNoIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKQorICAgICAg
ICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1o
aWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tzbGFzaCAnbWFya2Rvd24tdHMtaGFy
ZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24t
dHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1zcGFjZS1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKHQgJ21hcmtk
b3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSkpKSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdp
dGgtb3ZlcnJpZGUgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgZmFjZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsgQWx3YXlzIHN0
YXJ0IGJ5IGNsZWFyaW5nIGFueSBzdGFsZSBgZGlzcGxheScgcHJvcGVydHkuICBXZSBuZXZlcgor
ICAgIDs7IHNwYW4gdGhlIHRyYWlsaW5nIG5ld2xpbmUgd2l0aCBgZGlzcGxheScgKGl0IGNvbmZ1
c2VzCisgICAgOzsgcmVkaXNwbGF5J3MgY3Vyc29yIHBsYWNlbWVudCksIGFuZCB3ZSBvbmx5IHBh
aW50IGEgc2luZ2xlCisgICAgOzsgY29tYmluZWQgc3RyaW5nIG9udG8gdGhlIGZpcnN0IGNoYXJh
Y3RlciBvZiB0aGUgcnVuLCBsZWF2aW5nCisgICAgOzsgdGhlIHJlc3Qgb2YgdGhlIG1hcmt1cCBh
bG9uZS4KKyAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyByZWdpb24tc3RhcnQgcmVnaW9uLWVu
ZCAnKGRpc3BsYXkgbmlsKSkKKyAgICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAg
ICAgKGxldCogKChzcGVjIChpZiBiYWNrc2xhc2gKKyAgICAgICAgICAgICAgICAgICAgICAgKG1h
cmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpCisgICAgICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpKQorICAgICAgICAgICAgIChz
dHIgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoKG51bGwgc3BlYykgbmlsKQorICAgICAgICAg
ICAgICAgICAgICgoY2hhcmFjdGVycCBzcGVjKSAoY2hhci10by1zdHJpbmcgc3BlYykpCisgICAg
ICAgICAgICAgICAgICAgKChzdHJpbmdwIHNwZWMpIHNwZWMpCisgICAgICAgICAgICAgICAgICAg
KChmdW5jdGlvbnAgc3BlYykKKyAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc3BlYyAoLSBy
ZWdpb24tZW5kIHJlZ2lvbi1zdGFydCkpKSkpKQorICAgICAgICAod2hlbiAoYW5kIChzdHJpbmdw
IHN0cikKKyAgICAgICAgICAgICAgICAgICAoPiAobGVuZ3RoIHN0cikgMCkKKyAgICAgICAgICAg
ICAgICAgICAoY2hhci1kaXNwbGF5YWJsZS1wIChhcmVmIHN0ciAwKSkpCisgICAgICAgICAgKHB1
dC10ZXh0LXByb3BlcnR5IHJlZ2lvbi1zdGFydCAoMSsgcmVnaW9uLXN0YXJ0KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnZGlzcGxheSBzdHIpCisgICAgICAgICAgOzsgRm9yIHRoZSB0
cmFpbGluZy1zcGFjZXMgdmFyaWFudCwgaGlkZSB0aGUgcmVtYWluaW5nCisgICAgICAgICAgOzsg
c3BhY2VzIGluIHRoZSBydW4gc28gdGhlIGxpbmUgZG9lc24ndCBlbmQgd2l0aCBsZWZ0b3Zlcgor
ICAgICAgICAgIDs7IHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIHN1YnN0aXR1dGVkIGdseXBoLiAgRWFj
aCBwb3NpdGlvbgorICAgICAgICAgIDs7IGdldHMgaXRzIG93biBlbXB0eS1zdHJpbmcgYGRpc3Bs
YXknIHNvIGN1cnNvciBwbGFjZW1lbnQKKyAgICAgICAgICA7OyBzdGF5cyB1bmFtYmlndW91cy4K
KyAgICAgICAgICAodW5sZXNzIGJhY2tzbGFzaAorICAgICAgICAgICAgKGxldCAoKGkgKDErIHJl
Z2lvbi1zdGFydCkpKQorICAgICAgICAgICAgICAod2hpbGUgKDwgaSByZWdpb24tZW5kKQorICAg
ICAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBpICgxKyBpKSAnZGlzcGxheSAiIikKKyAg
ICAgICAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWsgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0
IF8pCisgICJGb250aWZ5IHRoZW1hdGljIGJyZWFrIE5PREUgYW5kIHNob3cgYSBsaW5lIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRo
cm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0ICgobm9k
ZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKHRy
ZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlk
ZSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGxldCAoKGNoYXIgKG1hcmtkb3duLXRz
LS1yZXNvbHZlLWRpc3BsYXktdmFsdWUKKyAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyKSkpCisgICAgICAoaWYgKGFuZCBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cCBjaGFyIChjaGFyLWRpc3BsYXlhYmxlLXAgY2hhcikpCisgICAgICAgICAgKGxldCog
KChjb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkpCisgICAgICAgICAg
ICAgICAgIDs7IFNwYW4gaWYgdGhlIGZhY2UgaGFzIG5vbi1uaWwgOmV4dGVuZC4KKyAgICAgICAg
ICAgICAgICAgKHNwYW4tbGVuZ3RoIChpZiAoZmFjZS1hdHRyaWJ1dGUgJ21hcmtkb3duLXRzLXRo
ZW1hdGljLWJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDpleHRlbmQgbmlsICdkZWZhdWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgtICh3aW5kb3ctYm9keS13aWR0aCkgY29sKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMikpKQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzcGxheQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2Utc3RyaW5nIHNwYW4tbGVuZ3RoIGNoYXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJcbiIpKSkKKyAgICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRp
ZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAm
cmVzdCBfKQorICAiRm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnQgTk9ERSB3aXRoIGEgYmFja2dy
b3VuZCBvdmVybGF5LgorVXNlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1hcmt1cC1oaWRkZW4n
IHdoZW4gbWFya3VwIGlzIGhpZGRlbiwKK2BtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBvdGhlcndp
c2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0aGUKK2JhY2tncm91bmQgbGF5ZXJzIGl0c2VsZiBiZWhp
bmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9udGlmaWNhdGlvbi4KK1RoZSBvdmVybGF5IGFsc28gc3Rv
cmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1YWdlIGFuZCBtb2RlIGFzCitwcm9wZXJ0aWVzIGBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlJyBhbmQKK2BtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQorYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2Ut
YXQnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAg
ICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgKG5v
ZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJz
LWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAg
ICAoZmFjZSAoaWYgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisgICAgICAgICAgICAgICAgICdt
YXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgIChsYW5nIChtYXJrZG93bi10cy0tbGFu
Z3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAgICAgICAgIChtb2RlICh3aGVuIGxhbmcKKyAgICAgICAg
ICAgICAgICAgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykpKQor
ICAgICAgICAgKGV4aXN0aW5nIChzZXEtZmluZCAobGFtYmRhIChvdikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2sp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheXMtYXQgbm9kZS1zdGFydCkp
KSkKKyAgICAoaWYgZXhpc3RpbmcKKyAgICAgICAgKHByb2duCisgICAgICAgICAgKG1vdmUtb3Zl
cmxheSBleGlzdGluZyBub2RlLXN0YXJ0IG5vZGUtZW5kKQorICAgICAgICAgIChvdmVybGF5LXB1
dCBleGlzdGluZyAnZmFjZSBmYWNlKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAgIChvdmVybGF5
LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlIG1vZGUpKQorICAgICAg
KGxldCAoKG92IChtYWtlLW92ZXJsYXkgbm9kZS1zdGFydCBub2RlLWVuZCBuaWwgdCBuaWwpKSkK
KyAgICAgICAgOzsgTWFya2VycyBuZWVkIHRvIGJlIHNldCBvbmx5IG9uY2UuCisgICAgICAgIChv
dmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyIChzZXQtbWFya2VyICht
YWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS1zdGFydCkpCisgICAgICAgIChvdmVybGF5LXB1dCBv
diAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRz
LWNvZGUtYmxvY2sgdCkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92ICdmYWNlIGZhY2UpCisgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAncHJpb3JpdHkgJyhuaWwgLiAxMCkpCisgICAgICAgIChvdmVy
bGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAg
ICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKQorICAg
ICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLWF0LWNvZGUtYmxvY2stcCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiBub24gbmlsIGlm
IHBvaW50IGlzIGluIGEgY29kZSBibG9jay4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4iCisg
IChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJs
b2NrKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQgKCZvcHRp
b25hbCBwb3MpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBvZiB0aGUgY29kZSBibG9j
ayBhdCBQT1MuCitJZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuICBSZXR1cm5zIG5pbCBpZiBQT1Mg
aXMgbm90IGluc2lkZSBhIGZlbmNlZAorY29kZSBibG9jay4gIFRoaXMgd29ya3MgcmVnYXJkbGVz
cyBvZiB3aGV0aGVyIGEgZ3Vlc3QgdHJlZS1zaXR0ZXIgcGFyc2VyCitpcyBhY3RpdmUsIHNpbmNl
IHRoZSBsYW5ndWFnZSBpcyBzdG9yZWQgb24gdGhlIGNvZGUgYmxvY2sgb3ZlcmxheSBieSB0aGUK
K2hvc3QgcGFyc2VyJ3MgZm9udGlmaWNhdGlvbi4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3Ig
cG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVy
biB0aGUgbWFqb3IgbW9kZSBmb3IgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5p
bCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQK
K2NvZGUgYmxvY2sgb3IgaWYgdGhlIGxhbmd1YWdlIGhhcyBubyByZWNvZ25pemVkIG1vZGUuIgor
ICAod2hlbiAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1wIHBvcykKKyAgICAob3IgKGdldC1j
aGFyLXByb3BlcnR5IChvciBwb3MgKHBvaW50KSkgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9k
ZSkKKyAgICAgICAgbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1ob3N0LXJhbmdlcy1ub3RpZmllciAocmFuZ2VzIF9wYXJzZXIpCisg
ICJQcnVuZSBzdGFsZSBjb2RlIGJsb2NrIG92ZXJsYXlzIGFmdGVyIHRoZSBob3N0IHBhcnNlciBy
ZXBhcnNlcy4KK1JBTkdFUyBpcyBhIGxpc3Qgb2YgKFNUQVJUIC4gRU5EKSBjb25zIGNlbGxzIG1h
cmtpbmcgcmVnaW9ucyB3aGVyZQordGhlIG1hcmtkb3duIHBhcnNlIHRyZWUgY2hhbmdlZC4gIEZv
ciBlYWNoIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJworb3ZlcmxheSBpbnRlcnNlY3RpbmcgYSBj
aGFuZ2VkIHJhbmdlLCB2ZXJpZnkgdGhhdCBhIGNvbnRhaW5pbmcKK2BmZW5jZWRfY29kZV9ibG9j
aycgbm9kZSBzdGlsbCBleGlzdHMgaW4gdGhlIGhvc3QgdHJlZS4gIElmIG5vdCwKK3RoZSBmZW5j
ZXMgd2VyZSBkZWxldGVkLCBzbyBkZWxldGUgdGhlIG92ZXJsYXkgdG8gYXZvaWQgcnVubmluZwor
Y29tbWFuZHMgaW4gYSBzdGFsZSBibG9jayBjb250ZXh0LiIKKyAgKGRvbGlzdCAocmFuZ2UgcmFu
Z2VzKQorICAgIChsZXQgKChiZWcgKGNhciByYW5nZSkpCisgICAgICAgICAgKGVuZCAoY2RyIHJh
bmdlKSkpCisgICAgICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gYmVnIGVuZCkpCisgICAgICAg
ICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykKKyAgICAgICAg
ICAobGV0KiAoKG92LXN0YXJ0IChvdmVybGF5LXN0YXJ0IG92KSkKKyAgICAgICAgICAgICAgICAg
KG5vZGUgKGFuZCBvdi1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtYXQgb3Ytc3RhcnQgJ21hcmtkb3duKSkpKQorICAgICAgICAgICAgKHVubGVzcyAoYW5k
IG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAiXFxgZmVuY2VkX2NvZGVfYmxvY2tcXCciIHQp
KQorICAgICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpKSkpKQorCis7OzsgSW1hZ2Ug
aGFuZGxpbmc6CisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGluZS1wIChu
b2RlKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgaW1hZ2UgTk9ERSBpcyB0aGUgb25seSBjb250ZW50
IG9uIGl0cyBsaW5lLgorV2hpdGVzcGFjZSwgYmxvY2sgcXVvdGUgbWFya2VycyAoYD4nKSwgYW5k
IGxpc3QgbWFya2VycworXChgLScsIGAqJywgYCsnLCBgMS4nKSBiZWZvcmUgdGhlIGltYWdlIGFy
ZSBpZ25vcmVkLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAoc2F2
ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgIChsZXQgKChi
b2wgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKKyAgICAgICAgICAgIChlb2wgKGxpbmUtZW5k
LXBvc2l0aW9uKSkpCisgICAgICAgIDs7IEJlZm9yZSB0aGUgaW1hZ2U6IG9ubHkgYmxvY2sgcXVv
dGUgbWFya2Vycywgd2hpdGVzcGFjZSwKKyAgICAgICAgOzsgYW5kIGFuIG9wdGlvbmFsIGxpc3Qg
bWFya2VyIGFyZSBhbGxvd2VkLgorICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2gtcAorICAgICAg
ICAgICAgICAocnggYm9zCisgICAgICAgICAgICAgICAgICAoemVyby1vci1tb3JlIChhbnkgIj4g
XHQiKSkKKyAgICAgICAgICAgICAgICAgIChvcHRpb25hbCAob3IgKHNlcSAoYW55ICItKisiKSAi
ICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEgKG9uZS1vci1tb3JlIGRp
Z2l0KSAoYW55ICIuKSIgKSAiICIpKSkKKyAgICAgICAgICAgICAgICAgIGVvcykKKyAgICAgICAg
ICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBib2wgbm9kZS1zdGFydCkpCisg
ICAgICAgICAgICAgOzsgQWZ0ZXIgdGhlIGltYWdlOiBvbmx5IHRyYWlsaW5nIHdoaXRlc3BhY2Ug
YWxsb3dlZC4KKyAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAgICAgICAgKHJ4
IGJvcyAoemVyby1vci1tb3JlIChhbnkgIiBcdCIpKSBlb3MpCisgICAgICAgICAgICAgIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbm9kZS1lbmQgZW9sKSkpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZvbnRpZnktaW1hZ2UgKG5vZGUgX292ZXJyaWRlIF9zdGFydCBfZW5kICZy
ZXN0IF8pCisgICJTaG93IGFuIGlubGluZSBpbWFnZSBhdCBOT0RFLgorV2hlbiBgbWFya2Rvd24t
dHMtaW5saW5lLWltYWdlcycgaXMgbm9uLW5pbCwgZGlzcGxheSB0aGUgaW1hZ2UuCitJZiB0aGUg
aW1hZ2UgbGluayBpcyB0aGUgb25seSBjb250ZW50IG9uIGl0cyBsaW5lLCBkaXNwbGF5IHRoZQor
aW1hZ2UgYmVsb3cgdGhlIGxpbmsuICBJZiB0aGUgaW1hZ2UgaXMgaW5saW5lIHdpdGhpbiBhIHBh
cmFncmFwaCwKK2Rpc3BsYXkgaXQgcmlnaHQgYWZ0ZXIgdGhlIGxpbmsgdGV4dC4KK1JlbW90ZSBp
bWFnZXMgYXJlIGNvbnRyb2xsZWQgYnkKK2BtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxp
bmUtaW1hZ2VzJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5v
ZGUpKQorICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAg
ICAgKGVvbCAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBub2RlLWVuZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgKHNlYXJj
aC1lbmQgKG1pbiAoMSsgZW9sKSAocG9pbnQtbWF4KSkpKQorICAgIDs7IEFsd2F5cyBjbGVhciBz
dGFsZSBvdmVybGF5cyBmb3IgdGhpcyBub2RlJ3MgcmFuZ2UuCisgICAgKGRvbGlzdCAob3YgKG92
ZXJsYXlzLWluIG5vZGUtc3RhcnQgc2VhcmNoLWVuZCkpCisgICAgICAod2hlbiAoYW5kIChvdmVy
bGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisgICAgICAgICAgICAgICAgICg+PSAob3Zl
cmxheS1zdGFydCBvdikgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgKDw9IChvdmVybGF5
LWVuZCBvdikgc2VhcmNoLWVuZCkpCisgICAgICAgIChkZWxldGUtb3ZlcmxheSBvdikpKQorICAg
ICh3aGVuIChhbmQgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAgICAgICAgICAgOzsg
RG9uJ3QgY3JlYXRlIGltYWdlIG92ZXJsYXlzIGZvciBub2RlcyBpbnNpZGUKKyAgICAgICAgICAg
ICAgIDs7IGZvbGRlZCAob3V0bGluZS1pbnZpc2libGUpIGhlYWRpbmdzLCBzaW5jZSB0aGUKKyAg
ICAgICAgICAgICAgIDs7IGltYWdlcyB3b3VsZG4ndCBiZSB2aXNpYmxlIGFuZCBjb3VsZCBpbnRl
cmZlcmUKKyAgICAgICAgICAgICAgIDs7IHdpdGggdGhlIGZvbGRlZCBkaXNwbGF5LgorICAgICAg
ICAgICAgICAgKG5vdCAobWFya2Rvd24tdHMtLW91dGxpbmUtaW52aXNpYmxlLXAgbm9kZS1zdGFy
dCkpKQorICAgICAgKGxldCogKChkZXN0ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5vZGUgIlxc
YGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJsIChhbmQgZGVzdCAodHJl
ZXNpdC1ub2RlLXRleHQgZGVzdCB0KSkpCisgICAgICAgICAgICAgKHJlbW90ZXAgKGFuZCB1cmwg
KHN0cmluZy1tYXRjaC1wICJcXGBodHRwcz86Ly8iIHVybCkpKQorICAgICAgICAgICAgIChkaXNw
bGF5YWJsZQorICAgICAgICAgICAgICAod2hlbiB1cmwKKyAgICAgICAgICAgICAgICAoaWYgcmVt
b3RlcAorICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXEgbWFya2Rvd24tdHMtZGlzcGxheS1y
ZW1vdGUtaW5saW5lLWltYWdlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rvd25s
b2FkKQorICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCisgICAgICAgICAgICAg
ICAgICAgICAgICAocmVxdWlyZSAndXJsLWhhbmRsZXJzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgKHdpdGgtd29yay1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1idWZm
ZXItbXVsdGlieXRlIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHVybC1pbnNlcnQt
ZmlsZS1jb250ZW50cyB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Ry
aW5nKSkpKQorICAgICAgICAgICAgICAgICAgKGxldCAoKGZpbGUgKGV4cGFuZC1maWxlLW5hbWUg
dXJsKSkpCisgICAgICAgICAgICAgICAgICAgIChhbmQgKG5vdCAoZmlsZS1yZW1vdGUtcCBmaWxl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1leGlzdHMtcCBmaWxlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbWFnZS1zdXBwb3J0ZWQtZmlsZS1wIGZpbGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgZmlsZSkpKSkpCisgICAgICAgICAgICAgKG1heC13IChhbmQgZGlz
cGxheWFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIG1hcmtkb3duLXRzLWlt
YWdlLW1heC13aWR0aCAnd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lu
ZG93LWJvZHktd2lkdGggbmlsIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93
bi10cy1pbWFnZS1tYXgtd2lkdGgpKSkKKyAgICAgICAgICAgICAoaW1nIChhbmQgbWF4LXcKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZS1pbWFnZSBkaXNwbGF5YWJsZSBuaWwgcmVtb3Rl
cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXgtd2lkdGggbWF4LXcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2NhbGUgMSkpKSkKKyAgICAg
ICAgKHdoZW4gaW1nCisgICAgICAgICAgKGxldCogKChhbG9uZSAobWFya2Rvd24tdHMtLWltYWdl
LWFsb25lLW9uLWxpbmUtcCBub2RlKSkKKyAgICAgICAgICAgICAgICAgKHN0ciAoaWYgYWxvbmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXG4iIChwcm9wZXJ0aXplICIgIiAn
ZGlzcGxheSBpbWcpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUgIiAiICdk
aXNwbGF5IGltZykpKQorICAgICAgICAgICAgICAgICAob3YgKG1ha2Utb3ZlcmxheSAoMS0gbm9k
ZS1lbmQpIG5vZGUtZW5kIG5pbCB0IG5pbCkpKQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92
ICdtYXJrZG93bi10cy1pbWFnZSB0KQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdhZnRl
ci1zdHJpbmcgc3RyKQorICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdldmFwb3JhdGUgdCkp
KSkpKSkKKworOzs7IFVSTC9VUkkgaGFuZGxpbmc6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLWJh
cmUtdXJsLXJlZ2V4cCBnb3RvLWFkZHJlc3MtdXJsLXJlZ2V4cAorICAiUmVnZXhwIG1hdGNoaW5n
IGJhcmUgVVJMcyBub3Qgd3JhcHBlZCBpbiBhbmdsZSBicmFja2V0cyBvciBsaW5rIHN5bnRheC4i
KQorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1yZWdleHAgZ290by1hZGRy
ZXNzLW1haWwtcmVnZXhwCisgICJSZWdleHAgbWF0Y2hpbmcgYmFyZSBlbWFpbCBhZGRyZXNzZXMg
bm90IHdyYXBwZWQgaW4gYW5nbGUgYnJhY2tldHMuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1m
b250aWZ5LWJhcmUtdXJpIChzdGFydCBlbmQpCisgICJGb250aWZ5IGJhcmUgVVJMIG9yIGVtYWls
IFVSSSBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuCitTa2lwIG1hdGNoZXMgYWxyZWFkeSBpbnNpZGUg
dHJlZS1zaXR0ZXIgbGluayBvciBhdXRvbGluayBub2Rlcy4iCisgIChkb2xpc3QgKHJlIChsaXN0
IG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rv
d24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCkpCisgICAgKGdvdG8tY2hhciBzdGFydCkKKyAg
ICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIGVuZCB0KQorICAgICAgKGxldCogKCh1cmkt
c3RhcnQgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgICAodXJpLWVuZCAobWF0Y2gt
ZW5kIDApKQorICAgICAgICAgICAgICh1cmkgKG1hdGNoLXN0cmluZyAwKSkKKyAgICAgICAgICAg
ICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHVyaS1zdGFydCAnbWFya2Rvd24taW5saW5lKSkKKyAg
ICAgICAgICAgICAocGFyZW50IChhbmQgbm9kZSAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkp
CisgICAgICAgICAgICAgKHBhcmVudC10eXBlIChhbmQgcGFyZW50ICh0cmVlc2l0LW5vZGUtdHlw
ZSBwYXJlbnQpKSkpCisgICAgICAgICh1bmxlc3MgKG9yIChtZW1iZXIgcGFyZW50LXR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJpbmxpbmVfbGluayIgImZ1bGxfcmVmZXJlbmNl
X2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGFwc2VkX3JlZmVyZW5j
ZV9saW5rIiAic2hvcnRjdXRfbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJp
bWFnZSIgInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iKSkKKyAgICAgICAgICAgICAgICAgICAgKG1l
bWJlciAoYW5kIG5vZGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcoInVyaV9hdXRvbGluayIgImVtYWlsX2F1dG9saW5rIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImxpbmtfZGVzdGluYXRpb24iICJjb2RlX3NwYW4iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9mZW5jZV9jb250ZW50IiAiaW5mb19zdHJp
bmciKSkKKyAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IHVyaS1zdGFydCAn
YnV0dG9uKSkKKyAgICAgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24KKyAgICAg
ICAgICAgdXJpLXN0YXJ0IHVyaS1lbmQKKyAgICAgICAgICAgKGlmIChlcSB1cmktc3RhcnQgMCkK
KyAgICAgICAgICAgICAgIHVyaQorICAgICAgICAgICAgIChjb25jYXQgIm1haWx0bzoiIHVyaSkp
KSkpKSkpCisKKzs7OyB0cmVlc2l0IHNldHRpbmdzOgorCiAoZGVmdmFyIG1hcmtkb3duLXRzLS10
cmVlc2l0LXNldHRpbmdzCiAgICh0cmVlc2l0LWZvbnQtbG9jay1ydWxlcworICAgOmxhbmd1YWdl
ICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ2Vycm9yCisgICA6b3ZlcnJpZGUgdAorICAgJygoRVJS
T1IpIEBmb250LWxvY2std2FybmluZy1mYWNlKQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlu
bGluZQogICAgOm92ZXJyaWRlIHQKICAgIDpmZWF0dXJlICdkZWxpbWl0ZXIKLSAgICcoKGlubGlu
ZV9saW5rIFsgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykKLSAgICAgKGltYWdlIFsgIiEiICJb
IiAiXSIgIigiICIpIiBdIEBzaGFkb3cpKQorICAgJygoaW5saW5lX2xpbmsgWyAiWyIgIl0iICIo
IiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoZnVsbF9yZWZl
cmVuY2VfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQor
ICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChzaG9ydGN1dF9saW5rIFsgIlsiICJdIiBdIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChpbWFnZSBbICIhIiAiWyIgIl0iICIo
IiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkKIAogICAgOmxhbmd1YWdl
ICdtYXJrZG93bgogICAgOmZlYXR1cmUgJ2hlYWRpbmcKLSAgICcoKGF0eF9oZWFkaW5nIChhdHhf
aDFfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMQotICAgICAoYXR4X2hlYWRpbmcgKGF0
eF9oMl9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy0yCi0gICAgIChhdHhfaGVhZGluZyAo
YXR4X2gzX21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTMKLSAgICAgKGF0eF9oZWFkaW5n
IChhdHhfaDRfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNAotICAgICAoYXR4X2hlYWRp
bmcgKGF0eF9oNV9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy01Ci0gICAgIChhdHhfaGVh
ZGluZyAoYXR4X2g2X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTYKLSAgICAgKHNldGV4
dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAnKCgoYXR4X2hlYWRp
bmcpICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKQorICAgICAoKHNldGV4dF9oZWFk
aW5nKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGVhZGluZykpCiAKICAgIDpsYW5ndWFnZSAnbWFy
a2Rvd24KICAgIDpmZWF0dXJlICdoZWFkaW5nCkBAIC0xOTQsMTYgKzE2MDcsNDAgQEAgbWFya2Rv
d24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgKGF0eF9oM19tYXJrZXIpIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNF9tYXJrZXIpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnkt
ZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAn
cGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJlYWspIEBtYXJrZG93bi10cy1kZWxpbWl0ZXIp
Ci0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAg
ICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFr
KQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93bi10cy1odG1sLWJsb2NrKQorICAgICAoKGlu
ZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrKQogICAg
ICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFyKSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIp
CiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMpIEBtYXJrZG93bi10cy1saXN0LW1h
cmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfbWludXMpIEBtYXJrZG93bi10cy1s
aXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFya2Rvd24t
dHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJr
ZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfcGFyZW50
aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAodGFza19s
aXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2JveCkKKyAg
ICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl9jaGVja2VkKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktY2hlY2tib3gpCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAo
bGlua19sYWJlbCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQorICAgICAo
bGlua19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfZGVzdGluYXRpb24pIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbikKKyAgICAgKGxpbmtfcmVmZXJl
bmNlX2RlZmluaXRpb24KKyAgICAgIChsaW5rX3RpdGxlKSBAbWFya2Rvd24tdHMtbGluay1kZXN0
aW5hdGlvbikpCisKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3Jh
cGgKKyAgIDpvdmVycmlkZSAncHJlcGVuZAorICAgJygocGlwZV90YWJsZV9oZWFkZXIgInwiIEBt
YXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisgICAgIChwaXBlX3RhYmxlX2hlYWRlciAocGlwZV90
YWJsZV9jZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtaGVhZGVyKQorICAgICAocGlwZV90YWJsZV9y
b3cgInwiIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCkKKyAgICAgKHBpcGVfdGFi
bGVfcm93IChwaXBlX3RhYmxlX2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1jZWxsKQorICAgICAo
cGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93ICJ8IiBAbWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVy
LWNlbGwpCisgICAgICgocGlwZV90YWJsZSkgQG1hcmtkb3duLXRzLXRhYmxlKQorICAgICAocGlw
ZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3RhYmxlX2RlbGltaXRlcl9jZWxsKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2Vs
bCkpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgKQEAg
LTIxMiw4OSArMTY0OSw5OTkgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAg
KGJsb2NrX3F1b3RlX21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAg
ICAoZmVuY2VkX2NvZGVfYmxvY2tfZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVs
aW1pdGVyCiAgICAgIChmZW5jZWRfY29kZV9ibG9jawotICAgICAgKGluZm9fc3RyaW5nIChsYW5n
dWFnZSkgQG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIpCisgICAgICAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbWFya2Rvd24tdHMt
bGFuZ3VhZ2Uta2V5d29yZCkKKyAgICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIp
CiAgICAgIChibG9ja19xdW90ZQogICAgICAgKGJsb2NrX3F1b3RlX21hcmtlcikgQG1hcmtkb3du
LXRzLS1mb250aWZ5LWRlbGltaXRlcgogICAgICAgKHBhcmFncmFwaCAoaW5saW5lIChibG9ja19j
b250aW51YXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpKSkpCiAKKyAgIDps
YW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3JhcGgKKyAgIDpvdmVycmlkZSAn
YXBwZW5kCisgICAnKChmZW5jZWRfY29kZV9ibG9jaworICAgICAgKGluZm9fc3RyaW5nIChsYW5n
dWFnZSkpCisgICAgICAoY29kZV9mZW5jZV9jb250ZW50KSBAbWFya2Rvd24tdHMtLWZvbnRpZnkt
bm9uLXRzLWNvZGUtYmxvY2spKQorCisgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCisgICA6ZmVhdHVy
ZSAncGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoZmVuY2VkX2NvZGVfYmxv
Y2sgKGNvZGVfZmVuY2VfY29udGVudCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWNvZGUtYmxvY2sp
KQorCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOm92ZXJyaWRlICdhcHBlbmQK
ICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgtaW5saW5lCi0gICAnKCgoaW1hZ2VfZGVzY3JpcHRpb24p
IEBsaW5rKQotICAgICAoKGxpbmtfZGVzdGluYXRpb24pIEBmb250LWxvY2stc3RyaW5nLWZhY2Up
Ci0gICAgICgoY29kZV9zcGFuKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQorICAgJygoKGxpbmtf
ZGVzdGluYXRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uKQorICAg
ICAoKGNvZGVfc3BhbikgQG1hcmtkb3duLXRzLWNvZGUtc3BhbikKICAgICAgKChjb2RlX3NwYW5f
ZGVsaW1pdGVyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQotICAgICAoKGVtcGhh
c2lzKSBAaXRhbGljKQotICAgICAoKHN0cm9uZ19lbXBoYXNpcykgQGJvbGQpCi0gICAgIChpbmxp
bmVfbGluayAobGlua190ZXh0KSBAbGluaykKLSAgICAgKGlubGluZV9saW5rIChsaW5rX2Rlc3Rp
bmF0aW9uKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoc2hvcnRjdXRfbGluayAobGlu
a190ZXh0KSBAbGluaykpCisgICAgICgoZW1waGFzaXMpIEBtYXJrZG93bi10cy1lbXBoYXNpcykK
KyAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBtYXJrZG93bi10cy1ib2xkKQorICAgICAoKHN0cmlr
ZXRocm91Z2gpIEBtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoKQorICAgICAoaW5saW5lX2xpbmsg
KGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGZ1bGxf
cmVmZXJlbmNlX2xpbmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9k
ZSkKKyAgICAgKGZ1bGxfcmVmZXJlbmNlX2xpbmsgKGxpbmtfbGFiZWwpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1saW5rLW5vZGUpCisgICAgIChjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsgKGxpbmtf
dGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKHNob3J0Y3V0X2xp
bmsgKGxpbmtfdGV4dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGlt
YWdlIChpbWFnZV9kZXNjcmlwdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSkK
KyAgICAgKCh1cmlfYXV0b2xpbmspIEBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluaykKKyAg
ICAgKChlbWFpbF9hdXRvbGluaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKQorICAg
ICAoaW5saW5lX2xpbmsgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9u
KQorICAgICAoKGJhY2tzbGFzaF9lc2NhcGUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xh
c2gtZXNjYXBlKQorICAgICAoKGVudGl0eV9yZWZlcmVuY2UpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1lbnRpdHkpCisgICAgICgobnVtZXJpY19jaGFyYWN0ZXJfcmVmZXJlbmNlKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktZW50aXR5KQorICAgICAoKGh0bWxfdGFnKSBAbWFya2Rvd24tdHMtaHRtbC10
YWcpCisgICAgICgoaGFyZF9saW5lX2JyZWFrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1s
aW5lLWJyZWFrKQorICAgICAoKGxhdGV4X2Jsb2NrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGF0
ZXgtYmxvY2spKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAgOmZlYXR1cmUg
J3BhcmFncmFwaC1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICAnKChlbXBoYXNpc19k
ZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCi0gICApKQogCi07Ozsg
SW1lbnUKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCisgICA6ZmVhdHVyZSAnaW1hZ2Ut
cHJldmlldworICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGltYWdlKSBAbWFya2Rvd24tdHMt
LWZvbnRpZnktaW1hZ2UpKSkKKworOzs7IEltZW51OgogCi0oZGVmdW4gbWFya2Rvd24tdHMtaW1l
bnUtbm9kZS1wIChub2RlKQorKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5vZGUt
cCAobm9kZSkKICAgIkNoZWNrIGlmIE5PREUgaXMgYSB2YWxpZCBlbnRyeSB0byBpbWVudS4iCi0g
IChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCi0g
ICAgICAgICAiYXR4X2hlYWRpbmciKSkKKyAgKGFuZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBl
IG5vZGUpICJpbmxpbmUiKQorICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVz
aXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAgICAgICJhdHhfaGVhZGluZyIpKSkKIAot
KGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24gKG5vZGUpCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWltZW51LWhlYWRpbmctbmFtZS1mdW5jdGlvbiAobm9kZSkKICAgIlJldHVybiBh
biBpbWVudSBlbnRyeSBpZiBOT0RFIGlzIGEgdmFsaWQgaGVhZGVyLiIKICAgKGxldCAoKG5hbWUg
KHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKLSAgICAoaWYgKG1hcmtkb3duLXRzLWltZW51LW5v
ZGUtcCBub2RlKQotCSh0aHJlYWQtZmlyc3QgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkgKHRy
ZWVzaXQtbm9kZS10ZXh0KSkKKyAgICAoaWYgKG1hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5v
ZGUtcCBub2RlKQorICAgICAgICAoY2FyIChzcGxpdC1zdHJpbmcgKHRyZWVzaXQtbm9kZS10ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIiB0ICIgIikpCiAgICAgICBuYW1lKSkpCiAK
LShkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSAobm9kZSkKLSAgIk1hdGNoIGEg
aGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIKKyhkZWZ1biBtYXJrZG93
bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAgKG5vZGUpCisgICJDaGVjayBpZiBOT0RFIGlz
IGFuIGluZm9fc3RyaW5nIHdpdGggZGVzY3JpcHRpdmUgdGV4dCBhZnRlciB0aGUgbGFuZ3VhZ2Uu
IgorICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImluZm9fc3RyaW5nIikK
KyAgICAgICAod2hlbi1sZXQqICgobGFuZy1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5v
ZGUgImxhbmd1YWdlIikpCisgICAgICAgICAgICAgICAgICAgKCg8ICh0cmVlc2l0LW5vZGUtZW5k
IGxhbmctbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9k
ZSkpKSkKKyAgICAgICAgIChub3QgKHN0cmluZy1ibGFuay1wCisgICAgICAgICAgICAgICAoYnVm
ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1lbmQgbGFuZy1ub2RlKQorICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUp
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0
aW9uIChub2RlKQorICAiUmV0dXJuIGFuIGltZW51IGVudHJ5IG5hbWUgZm9yIGEgY29kZSBibG9j
ayBpbmZvX3N0cmluZyBOT0RFLgorVXNlcyB0aGUgZGVzY3JpcHRpdmUgdGV4dCBhZnRlciB0aGUg
bGFuZ3VhZ2UgbmFtZS4iCisgICh3aGVuLWxldCogKChsYW5nLW5vZGUgKHRyZWVzaXQtc2VhcmNo
LXN1YnRyZWUgbm9kZSAibGFuZ3VhZ2UiKSkKKyAgICAgICAgICAgICAgKGRlc2MgKHN0cmluZy10
cmltCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz
CisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFuZy1ub2RlKQorICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpKQorICAgIChmb3Jt
YXQgIiVzOiAlcyIgKHRyZWVzaXQtbm9kZS10ZXh0IGxhbmctbm9kZSkgZGVzYykpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLW91dGxpbmUtcHJlZGljYXRlIChub2RlKQorICAiTWF0Y2ggTk9ERSBp
ZiBpdCBpcyBhIGhpZXJhcmNoaWNhbCBzZWN0aW9uIHRoYXQgaGFzIGEgaGVhZGluZy4iCiAgIChh
bmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAic2VjdGlvbiIpCiAgICAgICAgKHdo
ZW4tbGV0KiAoKGNoaWxkICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwKSkpCiAgICAgICAgICAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAiYXR4X2hlYWRpbmciKSkpKQogCi07Ozsg
Q29kZSBibG9ja3MKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKKworKGRlZmNvbnN0IG1hcmtk
b3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11bSBBVFggaGVhZGlu
ZyBsZXZlbCBpbiBNYXJrZG93biAoaDEtaDYpLgorRGVmaW5lZCBieSB0aGUgQ29tbW9uTWFyayBz
cGVjIGFuZCB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iKQogCi0oZGVmdmFyLWxvY2FsIG1hcmtk
b3duLXRzLS1jb25maWd1cmVkLWxhbmd1YWdlcyBuaWwKLSAgIkEgbGlzdCBvZiBsYW5ndWFnZXMg
dGhhdCBoYXZlIGJlZW4gc2V0dXAgaW4gdGhpcyBidWZmZXIuCisoZGVmdW4gbWFya2Rvd24tdHMt
LWhlYWRpbmctYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgYXR4X2hlYWRpbmcgbm9kZSBhdCBv
ciBiZWZvcmUgcG9pbnQsIG9yIG5pbC4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5v
ZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAoaWYgKGVxdWFsICh0cmVlc2l0LW5vZGUt
dHlwZSBub2RlKSAiYXR4X2hlYWRpbmciKQorICAgICAgICBub2RlCisgICAgICAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbikgImF0eF9oZWFkaW5nIikpKSkpKQogCi1XaGVuIGEgY29kZSBibG9jayBvZiBhIGxh
bmd1YWdlIGFwcGVhcnMsIGBtYXJrZG93bi10cy1tb2RlJyBsb2FkcwotbGFuZ3VhZ2Ugc2V0dXBz
IGxpa2UgZm9udC1sb2NrIGFuZCBpbmRlbnRhdGlvbiBmb3IgdGhhdCBsYW5ndWFnZSwgYW5kCi1h
ZGRzIHRoYXQgbGFuZ3VhZ2UgdG8gdGhpcyBsaXN0LiIpCisoZGVmdW4gbWFya2Rvd24tdHMtLWhl
YWRpbmctbGV2ZWwgKGhlYWRpbmcpCisgICJSZXR1cm4gSEVBRElORyBsZXZlbCAocmFuZ2UgMSB0
byBgbWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCcpLiIKKyAgKGxldCAoKG1h
cmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpKQorICAgIChsZW5ndGggKHRyZWVz
aXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMtLWhhcnZlc3Qt
dHJlZXNpdC1jb25maWdzIChtb2RlKQotICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWdzIGZy
b20gTU9ERS4KLVJldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1
ZToKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRo
ZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4iCisgICh3aGVuLWxldCogKChub2RlICh0
cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAodHJlZXNpdC1wYXJlbnQt
dW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4p
ICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1wcm9tb3RlICgpCisgICJQcm9t
b3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5ncywgZGVj
cmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4KK0ZvciBsaXN0IGl0ZW1zLCBkZWNyZWFz
ZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24gYW5kIG1h
cmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3MgaW4gdGhlIHJlZ2lvbi4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5zaWVudC1tYXJrLW1vZGUgbWFyay1hY3Rp
dmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZS1yZWdpb24gLTEpKQorICAg
KChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgIChtYXJrZG93bi10cy0tbGlz
dC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9y
LWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWRlbW90ZSAoKQorICAiRGVtb3Rl
IHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4KK0ZvciBoZWFkaW5ncywgaW5jcmVh
c2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0ZvciBsaXN0IGl0ZW1zLCBpbmNyZWFzZSBu
ZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1hcmstbW9kZScgb24gYW5kIG1hcmsg
YWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0aGUgcmVnaW9uLiIKKyAgKGludGVyYWN0
aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50LW1hcmstbW9kZSBtYXJrLWFjdGl2ZSkK
KyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbiAxKSkKKyAgICgobWFy
a2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAobWFya2Rvd24tdHMtLWxpc3QtcHJv
bW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3Rl
IDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUgKGRlbHRhKQor
ICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5IERFTFRBIGxldmVscy4KK05lZ2F0aXZl
IERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRpdmUgZGVtb3RlcyAobW9yZSAjKS4KK0lm
IHRoZSBoZWFkaW5nIGhhcyBhbiBvcHRpb25hbCB0cmFpbGluZyBjbG9zaW5nLWAjJyBzZXF1ZW5j
ZSwgdGhhdAorc2VxdWVuY2UgaXMgcmVzaXplZCB0byBtYXRjaCB0aGUgbmV3IGxldmVsLiIKKyAg
KHdoZW4tbGV0KiAoKGhlYWRpbmcgKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50KSkKKyAg
ICAgICAgICAgICAgKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpCisgICAg
ICAgICAgICAgIChsZXZlbCAobGVuZ3RoICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkpKQor
ICAgICAgICAgICAgICAobmV3LWxldmVsICgrIGxldmVsIGRlbHRhKSkpCisgICAgKHdoZW4gKGFu
ZCAoPj0gbmV3LWxldmVsIDEpCisgICAgICAgICAgICAgICAoPD0gbmV3LWxldmVsIG1hcmtkb3du
LXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQorICAgICAgKGxldCogKChvcGVuZXItYmVn
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgICAob3BlbmVyLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAgICAgICAgICAgIChsaW5lLWVuZCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG9wZW5lci1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAg
ICAgICAgOzsgRGV0ZWN0IGEgQ29tbW9uTWFyayBjbG9zaW5nLWAjJyBzZXF1ZW5jZTogb3B0aW9u
YWwKKyAgICAgICAgICAgICA7OyB0cmFpbGluZyB3aGl0ZXNwYWNlLCBhIHJ1biBvZiBgIycsIGFu
ZCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICA7OyBzcGFjZS90YWIgYmV0d2VlbiBpdCBhbmQg
dGhlIGhlYWRpbmcgdGV4dC4KKyAgICAgICAgICAgICAoY2xvc2VyIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGxpbmUtZW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBvcGVuZXItZW5kKQorICAgICAg
ICAgICAgICAgICAgICAgICAobGV0ICgoZW5kIChwb2ludCkpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBvcGVuZXItZW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKChiZWcgKHBvaW50KSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAod2hlbiAoYW5kICg8IGJlZyBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg+IGJlZyBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUgYmVnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKD9ccyA/XHQpKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbnMgYmVnIGVuZCkpKSkpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgOzsgUmVzaXplIHRoZSBjbG9zZXIgZmlyc3Qgc28gaXQgZG9lc24ndCBzaGlmdCB0
aGUgb3BlbmVyLgorICAgICAgICAgICh3aGVuIGNsb3NlcgorICAgICAgICAgICAgKGRlbGV0ZS1y
ZWdpb24gKGNhciBjbG9zZXIpIChjZHIgY2xvc2VyKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIg
KGNhciBjbG9zZXIpKQorICAgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgbmV3LWxldmVs
ID8jKSkpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gb3BlbmVyLWJlZyBvcGVuZXItZW5kKQor
ICAgICAgICAgIChnb3RvLWNoYXIgb3BlbmVyLWJlZykKKyAgICAgICAgICAoaW5zZXJ0IChtYWtl
LXN0cmluZyBuZXctbGV2ZWwgPyMpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90
ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNoYW5nZSBhbGwgaGVhZGluZ3MgaW4gdGhl
IGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgorTmVnYXRpdmUgREVMVEEgcHJvbW90ZXMg
KGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3JlICMpLiIKKyAgKGxldCAoKGJlZyAocmVn
aW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgKHdoaWxlICg8IChwb2ludCkg
ZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQpCisgICAg
ICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSBkZWx0YSkpCisgICAgICAgIChm
b3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAg
KCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAgcGFzdCB0aGUg
cHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtkb3duLXRzLS1saXN0LW1vdmUgdCkKKyAg
ICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIHQpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICgpCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rp
b24gb3IgbGlzdCBpdGVtIGRvd24gcGFzdCB0aGUgbmV4dCBzaWJsaW5nLiIKKyAgKGludGVyYWN0
aXZlKQorICAoaWYgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisgICAgICAobWFy
a2Rvd24tdHMtLWxpc3QtbW92ZSBuaWwpCisgICAgKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUt
dXAtb3ItZG93biBuaWwpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZWN0aW9uLWZvbGRlZC1w
IChzZWN0aW9uKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU0VDVElPTidzIGhlYWRpbmcgaXMgZm9s
ZGVkLgorQ2hlY2tzIHdoZXRoZXIgdGhlIGVuZCBvZiB0aGUgaGVhZGluZyBsaW5lIGhhcyBhbiBv
dXRsaW5lCitpbnZpc2libGUgb3ZlcmxheS4iCisgIChsZXQgKChoZWFkaW5nICh0cmVlc2l0LW5v
ZGUtY2hpbGQgc2VjdGlvbiAwKSkpCisgICAgKHdoZW4gKGFuZCBoZWFkaW5nCisgICAgICAgICAg
ICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGhlYWRpbmcpICJhdHhfaGVhZGluZyIpKQor
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBoZWFkaW5nKSkKKyAgICAgICAgKG91dGxpbmUtaW52aXNpYmxlLXAgKHBvcy1lb2wpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93biAodXApCisg
ICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gc3VidHJlZS4KK0lmIFVQIGlzIG5vbi1uaWwsIG1v
dmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93bi4KK1ByZXNl
cnZlcyB0aGUgZm9sZGluZyBzdGF0ZSBvZiBib3RoIHNlY3Rpb25zLiIKKyAgKHdoZW4tbGV0KiAo
KHNlY3Rpb24gKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAg
KHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXByZXYtc2libGluZyBzZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtbmV4dC1zaWJsaW5nIHNlY3Rpb24pKSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0
LW5vZGUtdHlwZSBzaWJsaW5nKSAic2VjdGlvbiIpCisgICAgICAobGV0KiAoKGZpcnN0IChpZiB1
cCBzaWJsaW5nIHNlY3Rpb24pKQorICAgICAgICAgICAgIChzZWNvbmQgKGlmIHVwIHNlY3Rpb24g
c2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0LWZvbGRlZCAobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXAgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtZm9sZGVkIChtYXJrZG93
bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBzZWNvbmQpKQorICAgICAgICAgICAgIChmaXJzdC1zdGFy
dCAodHJlZXNpdC1ub2RlLXN0YXJ0IGZpcnN0KSkKKyAgICAgICAgICAgICAoc2Vjb25kLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgc2Vjb25kKSkKKyAgICAgICAgICAgICAoc2Vjb25kLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAgICAgIDs7IEV4dHJhY3Qgc2VwYXJh
dG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAg
KGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1zdGFydCBzZWNvbmQtc3RhcnQpKQor
ICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBmaXJzdC1yYXcpKQor
ICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBmaXJzdC1yYXcgKGxlbmd0aCBmaXJz
dC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcgKGJ1ZmZlci1zdWJzdHJpbmcgc2Vj
b25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtdGV4dCAoc3RyaW5n
LXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAgICAgKHRyYWlsaW5nIChzdWJzdHJp
bmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkpCisgICAgICAgICAgICAgKGxpbmUt
b2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IHNlY3Rp
b24pKSkpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQor
ICAgICAgICAoZ290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10
ZXh0IHNlcGFyYXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICA7OyBSZXN0b3JlIGZv
bGRpbmcgc3RhdGUKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hh
ciBmaXJzdC1zdGFydCkKKyAgICAgICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisg
ICAgICAgICAgICAoaWYgc2Vjb25kLWZvbGRlZAorICAgICAgICAgICAgICAgIChvdXRsaW5lLWhp
ZGUtc3VidHJlZSkKKyAgICAgICAgICAgICAgKG91dGxpbmUtc2hvdy1zdWJ0cmVlKSkpCisgICAg
ICAgICAgKG91dGxpbmUtbmV4dC1oZWFkaW5nKQorICAgICAgICAgICh3aGVuIChvdXRsaW5lLW9u
LWhlYWRpbmctcCkKKyAgICAgICAgICAgIChpZiBmaXJzdC1mb2xkZWQKKyAgICAgICAgICAgICAg
ICAob3V0bGluZS1oaWRlLXN1YnRyZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNob3ctc3Vi
dHJlZSkpKSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAg
ICAgZmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5n
dGggc2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRv
cikpKSkKKyAgICAgICAgKHdpdGgtc3VwcHJlc3NlZC13YXJuaW5ncyAoKGludGVyYWN0aXZlLW9u
bHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAobmV4dC1saW5lIGxpbmUtb2Zmc2V0KSkpKSkpCisK
Kzs7OyBMaXN0IG1hbmlwdWxhdGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVj
a2JveCAoKQorICAiVG9nZ2xlIHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1cnJlbnQg
bGluZS4KK1N3aXRjaGVzIGJldHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVyYWN0aXZl
KQorICAod2hlbi1sZXQqICgocG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlv
bikgKHBvaW50KSkpCisgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAg
ICAgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAg
ICh3aGVuLWxldCogKChtYXJrZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVl
c2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygidGFza19saXN0X21hcmtlcl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAobGV0ICgo
YmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xp
c3RfbWFya2VyX2NoZWNrZWQiKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
IChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAg
ICAgICAgKGluc2VydCAoaWYgY2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5uZXJtb3N0
IGxpc3RfaXRlbSBub2RlIGNvbnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhlIHBvc2l0
aW9uIGFmdGVyIGBiYWNrLXRvLWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCithIGxpbmUn
cyBsZWFkaW5nIHdoaXRlc3BhY2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBsaW5lLAor
bm90IHRvIGEgcHJlY2VkaW5nIGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVzcGFjZS4K
K0luc2lkZSBibG9jayBxdW90ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24g
cGFzdAordGhlIGA+JyBtYXJrZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNp
b24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAo
dHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9sIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5kLXBvc2l0
aW9uKSkpCisgICAgKG9yIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAg
ICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAg
ICAgIDs7IFZlcmlmeSB0aGUgY3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdzIHJhbmdl
LgorICAgICAgICAgIDs7IGB0cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2RlIGluc2lk
ZSBhIGxpc3RfaXRlbQorICAgICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBhIHByZWNl
ZGluZyBsaW5lLgorICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAg
ICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBpdGVtKSkK
KyAgICAgICAgOzsgV2hlbiBiYWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2NrIHF1b3Rl
IG1hcmtlcnMsCisgICAgICAgIDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0aGUgY29u
dGVudCBwb3NpdGlvbi4KKyAgICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdoZW4gKD4g
Y29udGVudC1wb3MgcG9zKQorICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0cmVlc2l0
LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChsZXQgKChp
dGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY25v
ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIp
KSkpKQorICAgICAgICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAg
ICAgICAgICAgICBpdGVtKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1hcmtl
ci13aWR0aCAoaXRlbSkKKyAgIlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3QgbWFya2Vy
IGluY2x1ZGluZyB0cmFpbGluZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpICh0cmVl
c2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRl
bS1yZWdpb24gKGl0ZW0pCisgICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBmb3IgSVRF
TSwgY2xhbXBlZCB0byBmdWxsIGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9m
IHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBpdCBkb2Vz
IG5vdCBleHRlbmQgaW50byB0aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGljaCB0cmVl
LXNpdHRlciBtYXkgaW5jbHVkZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRl
bSkpCisgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAg
KGVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1lbmQgaXRlbSkpCisgICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkgKGxpbmUt
YmVnaW5uaW5nLXBvc2l0aW9uKSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBub24tbmls
IGlmIElURU0gaXMgYW4gb3JkZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChsZXQgKCht
YXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIG1hcmtlcikgImxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVzdGluZyBv
ZiB0aGUgbGlzdCBpdGVtIGF0IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRlbW90ZSAo
aW5kZW50KTsgb3RoZXJ3aXNlIHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1iZXJlZCkg
bGlzdCBpdGVtcyBhcmUgc2tpcHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25vdCBzdXBw
b3J0IG5lc3RpbmcgdGhlbSBieSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChpdGVtICht
YXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJlZ2lvbiAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAgIChiZWcg
KGNhciByZWdpb24pKQorICAgICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisgICAgKHdo
ZW4gKG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAodXNlci1l
cnJvciAiT3JkZXJlZCBsaXN0IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIgbGltaXRh
dGlvbikiKSkKKyAgICAoaWYgZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50IGJ5IG1h
cmtlciB3aWR0aCwgb25seSBpZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7IHNpYmxp
bmcgdG8gbmVzdCB1bmRlciAobGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0cmVlc2l0
LW5vZGUtcHJldi1zaWJsaW5nIGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBl
bmQgKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7OyBQcm9t
b3RlOiBkZWRlbnQgdG8gZ3JhbmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBhcmVudC1s
aXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFuZHBhcmVu
dCAoYW5kIHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0KSkpCisg
ICAgICAgICAgICAgKGl0ZW0tY29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgYmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAg
KHdoZW4gKGFuZCBncmFuZHBhcmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgZ3JhbmRwYXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAgICAgICAg
ICg+IGl0ZW0tY29sIDApKQorICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBncmFuZHBhcmVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVu
dGF0aW9uKSkpKQorICAgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0gZ3AtY29s
IGl0ZW0tY29sKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIChu
b2RlKQorICAiUmV0dXJuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyBOT0RF
J3Mgc3RhcnQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpCisgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbGlzdC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRlbSBhdCBw
b2ludC4KK0lmIFVQIGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsg
b3RoZXJ3aXNlIG1vdmUgZG93bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIGl0ZW0p
KSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAibGlzdF9p
dGVtIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisgICAgICAg
ICAgICAgKHNlY29uZCAoaWYgdXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3Qt
c3RhcnQgKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAgICAgICAo
c2Vjb25kLXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQorICAgICAg
ICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAg
ICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVz
cGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0
YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmlt
LXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZp
cnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAo
YnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAg
KHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAg
ICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkK
KyAgICAgICAgICAgICAobGluZS1vZmZzZXQgKC0gKGxpbmUtbnVtYmVyLWF0LXBvcyAocG9pbnQp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1udW1iZXItYXQtcG9zCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKSkpKQor
ICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQorICAgICAgICAo
Z290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10ZXh0IHNlcGFy
YXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAgICAgICAoZ290by1jaGFyIChpZiB1cAorICAg
ICAgICAgICAgICAgICAgICAgICBmaXJzdC1zdGFydAorICAgICAgICAgICAgICAgICAgICAgKCsg
Zmlyc3Qtc3RhcnQgKGxlbmd0aCBzZWNvbmQtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAg
IChsZW5ndGggc2VwYXJhdG9yKSkpKQorICAgICAgICAod2l0aC1zdXBwcmVzc2VkLXdhcm5pbmdz
ICgoaW50ZXJhY3RpdmUtb25seSBuZXh0LWxpbmUpKQorICAgICAgICAgIChuZXh0LWxpbmUgbGlu
ZS1vZmZzZXQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QgKCZvcHRp
b25hbCBzdGFydCkKKyAgIlJlbnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9pbnQuCitOdW1i
ZXJzIGFyZSBhc3NpZ25lZCBzZXF1ZW50aWFsbHkgc3RhcnRpbmcgZnJvbSB0aGUgZmlyc3QgaXRl
bSdzCitudW1iZXIuICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50IFNUQVJULCBzdGFydCBudW1iZXJp
bmcgZnJvbSB0aGF0Cit2YWx1ZSBpbnN0ZWFkLiAgRG9lcyBub3RoaW5nIGZvciB1bm9yZGVyZWQg
bGlzdHMuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgoaXRlbSAobWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChsaXN0LW5vZGUgKHRy
ZWVzaXQtbm9kZS1wYXJlbnQgaXRlbSkpKQorICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbGlzdC1ub2RlKSAibGlzdCIpCisgICAgICAobGV0KiAoKGNoaWxkcmVuICh0cmVlc2l0
LW5vZGUtY2hpbGRyZW4gbGlzdC1ub2RlKSkKKyAgICAgICAgICAgICAoaXRlbXMgKHNlcS1maWx0
ZXIgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0ZW0iKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRyZW4pKQorICAgICAgICAgICAgIChmaXJzdC1tYXJrZXIgKHRyZWVz
aXQtbm9kZS1jaGlsZCAoY2FyIGl0ZW1zKSAwKSkKKyAgICAgICAgICAgICAobWFya2VyLXR5cGUg
KHRyZWVzaXQtbm9kZS10eXBlIGZpcnN0LW1hcmtlcikpKQorICAgICAgICAod2hlbiAobWVtYmVy
IG1hcmtlci10eXBlICcoImxpc3RfbWFya2VyX2RvdCIgImxpc3RfbWFya2VyX3BhcmVudGhlc2lz
IikpCisgICAgICAgICAgKGxldCogKChiYXNlIChpZiBzdGFydAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHByZWZpeC1udW1lcmljLXZhbHVlIHN0YXJ0KQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChzdHJpbmctdG8tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtdGV4dCBmaXJzdC1tYXJrZXIgdCkpKSkKKyAgICAgICAgICAgICAgICAgKGNvdW50
IChsZW5ndGggaXRlbXMpKQorICAgICAgICAgICAgICAgICA7OyBTdGFydCBmcm9tIHRoZSBsYXN0
IG51bWJlciBhbmQgd29yayBiYWNrd2FyZHMgc28KKyAgICAgICAgICAgICAgICAgOzsgdGhhdCBl
YXJsaWVyIGJ1ZmZlciBwb3NpdGlvbnMgcmVtYWluIHZhbGlkLgorICAgICAgICAgICAgICAgICAo
bnVtICgrIGJhc2UgY291bnQgLTEpKSkKKyAgICAgICAgICAgIChkb2xpc3QgKGl0IChyZXZlcnNl
IGl0ZW1zKSkKKyAgICAgICAgICAgICAgKGxldCogKChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGls
ZCBpdCAwKSkKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItZW5kICh0cmVlc2l0LW5vZGUt
ZW5kIG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAoYm9sIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBtYXJrZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1w
b3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgOzsgRnVsbCB0ZXh0IGZyb20gYm9sIHRv
IGVuZCBvZiBtYXJrZXIgaW5jbHVkZXMKKyAgICAgICAgICAgICAgICAgICAgIDs7IGFueSBsZWFk
aW5nIHdoaXRlc3BhY2UsIHRoZSBudW1iZXIsIGFuZCB0aGUKKyAgICAgICAgICAgICAgICAgICAg
IDs7IHNlcGFyYXRvciAoZS5nLiwgIi4gIiBvciAiLlx0IikuCisgICAgICAgICAgICAgICAgICAg
ICAoZnVsbC10ZXh0IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvbCBtYXJrZXItZW5kKSkKKyAgICAgICAgICAgICAgICAg
ICAgIChpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBcXChbWzpibGFuazpdXSpcXClbMC05XSIg
ZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgZnVs
bC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQorICAgICAgICAgICAgICAgICAg
ICAgKHN1ZmZpeC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1tYXRjaAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFtbOmJsYW5rOl1dKlswLTldK1xcKC4qXFwp
XFwnIiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcg
MSBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiLiAiKSkKKyAgICAgICAgICAg
ICAgICAgICAgIChuZXctdGV4dCAoY29uY2F0IGluZGVudC1zdHIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChudW1iZXItdG8tc3RyaW5nIG51bSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeC1zdHIpKSkKKyAgICAgICAgICAgICAg
ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJvbCBt
YXJrZXItZW5kKQorICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBib2wpCisgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0IG5ldy10ZXh0KSkpCisgICAgICAgICAgICAgIChjbC1kZWNmIG51bSkp
CisgICAgICAgICAgICAobWVzc2FnZSAiUmVudW1iZXJlZCAlZCBpdGVtcyIgY291bnQpKSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgKGl0ZW0pCisgICJS
ZXR1cm4gdGhlIG1hcmtlciBzdHJpbmcgZm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElURU0uCitG
b3IgdW5vcmRlcmVkIGl0ZW1zLCByZXVzZSB0aGUgc2FtZSBtYXJrZXIgY2hhcmFjdGVyLgorRm9y
IG9yZGVyZWQgaXRlbXMsIGluY3JlbWVudCB0aGUgbnVtYmVyLiIKKyAgKGxldCogKChtYXJrZXIg
KHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKQorICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9k
ZS10eXBlIG1hcmtlcikpCisgICAgICAgICAoaW5kZW50IChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAg
ICAgICAgICAgICAgICAoY3VycmVudC1pbmRlbnRhdGlvbikpKQorICAgICAgICAgKHByZWZpeCAo
bWFrZS1zdHJpbmcgaW5kZW50ID9ccykpKQorICAgIChwY2FzZSB0eXBlCisgICAgICAoImxpc3Rf
bWFya2VyX21pbnVzIiAoY29uY2F0IHByZWZpeCAiLSAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJf
cGx1cyIgIChjb25jYXQgcHJlZml4ICIrICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9zdGFyIiAg
KGNvbmNhdCBwcmVmaXggIiogIikpCisgICAgICAoImxpc3RfbWFya2VyX2RvdCIKKyAgICAgICAo
bGV0ICgobnVtIChzdHJpbmctdG8tbnVtYmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkp
KSkKKyAgICAgICAgIChjb25jYXQgcHJlZml4IChudW1iZXItdG8tc3RyaW5nICgxKyBudW0pKSAi
LiAiKSkpCisgICAgICAoImxpc3RfbWFya2VyX3BhcmVudGhlc2lzIgorICAgICAgIChsZXQgKChu
dW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQorICAg
ICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1zdHJpbmcgKDErIG51bSkpICIpICIpKSkK
KyAgICAgIChfIChjb25jYXQgcHJlZml4ICItICIpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LW5ldy1tYXJrZXItZm9yLWxpbmUgKGl0ZW0pCisgICJSZXR1cm4gdGhlIG1hcmtlciBzdHJpbmcg
Zm9yIGEgbmV3IGl0ZW0gZm9sbG93aW5nIElURU0uCitXaGVuIHRoZSBjdXJyZW50IGxpbmUgaGFz
IGEgbGlzdCBtYXJrZXIgcGF0dGVybiBhdCBhIGRpZmZlcmVudAoraW5kZW50YXRpb24gdGhhbiBJ
VEVNIChlLmcuLCBhIG5lc3RlZCBtYXJrZXIgdGhhdCB0aGUgZ3JhbW1hciBkaWQKK25vdCByZWNv
Z25pemUgYXMgYSBsaXN0X2l0ZW0pLCB1c2UgdGhlIGN1cnJlbnQgbGluZSdzIG1hcmtlci4KK090
aGVyd2lzZSwgZmFsbCBiYWNrIHRvIGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIn
LiIKKyAgKGxldCAoKG1hcmtlci1ub2RlICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisg
ICAgKGlmICg9IChsaW5lLW51bWJlci1hdC1wb3MpCisgICAgICAgICAgICAobGluZS1udW1iZXIt
YXQtcG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyLW5vZGUpKSkKKyAgICAgICAgOzsgSXRl
bSdzIG1hcmtlciBpcyBvbiB0aGUgY3VycmVudCBsaW5lOiB1c2UgaXQgbm9ybWFsbHkuCisgICAg
ICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgaXRlbSkKKyAgICAgIDs7IEl0
ZW0ncyBtYXJrZXIgaXMgb24gYSBkaWZmZXJlbnQgbGluZS4gIFRoZSBwYXJzZXIgbWF5IGhhdmUK
KyAgICAgIDs7IGZhaWxlZCB0byByZWNvZ25pemUgYSBuZXN0ZWQgbWFya2VyIChlLmcuLCBhIGxv
bmUgYCAgLSAnCisgICAgICA7OyBwYXJzZWQgYXMgYSBzZXRleHQgaGVhZGluZykuICBSZWFkIHRo
ZSBjdXJyZW50IGxpbmUuCisgICAgICAobGV0ICgobGluZSAoYnVmZmVyLXN1YnN0cmluZy1uby1w
cm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAo
bGluZS1lbmQtcG9zaXRpb24pKSkpCisgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoCisgICAgICAg
ICAgICAgIlxcYFxcKFtbOmJsYW5rOl1dKlxcKVxcKFstKitdIFxcfFxcKFswLTldK1xcKVxcKFsu
KV0gXFwpXFwpIgorICAgICAgICAgICAgIGxpbmUpCisgICAgICAgICAgICAobGV0ICgoaW5kZW50
IChtYXRjaC1zdHJpbmcgMSBsaW5lKSkKKyAgICAgICAgICAgICAgICAgIChudW0gKG1hdGNoLXN0
cmluZyAzIGxpbmUpKQorICAgICAgICAgICAgICAgICAgKHN1ZmZpeCAobWF0Y2gtc3RyaW5nIDQg
bGluZSkpCisgICAgICAgICAgICAgICAgICAodW5vcmRlcmVkIChtYXRjaC1zdHJpbmcgMiBsaW5l
KSkpCisgICAgICAgICAgICAgIChpZiBudW0KKyAgICAgICAgICAgICAgICAgIChjb25jYXQgaW5k
ZW50IChudW1iZXItdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KDErIChzdHJpbmctdG8tbnVtYmVyIG51bSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBz
dWZmaXgpCisgICAgICAgICAgICAgICAgKGNvbmNhdCBpbmRlbnQgdW5vcmRlcmVkKSkpCisgICAg
ICAgICAgOzsgTm8gbWFya2VyIHBhdHRlcm4gb24gY3VycmVudCBsaW5lOiB1c2UgaXRlbSdzIG1h
cmtlci4KKyAgICAgICAgICAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIGl0ZW0p
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoICgmb3B0
aW9uYWwgcG9zKQorICAiQ291bnQgdGhlIG51bWJlciBvZiBgPicgYmxvY2sgcXVvdGUgbWFya2Vy
cyBvbiB0aGUgbGluZSBhdCBQT1MuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAod2hlbiBwb3Mg
KGdvdG8tY2hhciBwb3MpKQorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAobGV0ICgoY291
bnQgMCkpCisgICAgICAod2hpbGUgKGFuZCAobm90IChlb2xwKSkKKyAgICAgICAgICAgICAgICAg
IChtZW1xIChjaGFyLWFmdGVyKSAnKD8+ID9ccyA/XHQpKSkKKyAgICAgICAgKHdoZW4gKGVxIChj
aGFyLWFmdGVyKSA/PikKKyAgICAgICAgICAoc2V0cSBjb3VudCAoMSsgY291bnQpKSkKKyAgICAg
ICAgKGZvcndhcmQtY2hhciAxKSkKKyAgICAgIGNvdW50KSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy1uZXdsaW5lICgpCisgICJJbnNlcnQgYSBuZXdsaW5lLCBjb250aW51aW5nIHRoZSBjdXJyZW50
IGNvbnRleHQuCitJbnNpZGUgYSBsaXN0IGl0ZW0sIHRoZSBuZXcgbGluZSBpcyBpbmRlbnRlZCB0
byB0aGUgaXRlbSdzIHRleHQKK2NvbHVtbiBzbyB0aGUgcGFyYWdyYXBoIGNvbnRpbnVlcy4gIEEg
c2Vjb25kIFJFVCBvbiBhIGJsYW5rCitjb250aW51YXRpb24gbGluZSByZW1vdmVzIHRoZSBpbmRl
bnRhdGlvbiwgZHJvcHBpbmcgcG9pbnQgdG8KK2NvbHVtbiAwIHNvIHRoZSB0cmVlLXNpdHRlciBn
cmFtbWFyIGVuZHMgdGhlIGxpc3QuCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5ldyBsaW5l
IGluY2x1ZGVzIHRoZSBxdW90ZSBwcmVmaXguCitPdGhlcndpc2UsIGluc2VydCBhIHBsYWluIG5l
d2xpbmUuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0
CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAo
cG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICA7OyBUcmVlLXNp
dHRlciBtYXkgcmVwb3J0IGEgbm9kZSBpbnNpZGUgYSBibG9ja19xdW90ZSBldmVuCisgICAgICAg
ICA7OyB3aGVuIHBvaW50IGlzIG9uIGEgYmxhbmsgbGluZSBwYXN0IHRoZSBxdW90ZSAodGhlIG5v
ZGUKKyAgICAgICAgIDs7IHNwYW4gY2FuIGV4dGVuZCBiZXlvbmQgdGhlIGA+JyBsaW5lcykuICBP
bmx5IHRyZWF0IHRoZQorICAgICAgICAgOzsgbGluZSBhcyBpbnNpZGUgYSBibG9jayBxdW90ZSBp
ZiBpdCBhY3R1YWxseSBzdGFydHMgd2l0aAorICAgICAgICAgOzsgYSBgPicgbWFya2VyLgorICAg
ICAgICAgKGluLWJxIChhbmQgKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGJsb2NrX3F1
b3RlXFwnIikKKyAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg
IChsb29raW5nLWF0LXAgIlsgXHRdKj4iKSkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtkb3duLXRz
LS1saXN0LWl0ZW0tYXQtcG9pbnQpKSkKKyAgICAoY29uZAorICAgICAoaXRlbQorICAgICAgKGxl
dCogKChjb2wgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRlbSkpCisgICAg
ICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3Rl
LXByZWZpeCkpKQorICAgICAgICAgICAgIDs7IGBjb2wnIGlzIHRoZSBhYnNvbHV0ZSBjb2x1bW4g
b2YgdGhlIGl0ZW0ncyB0ZXh0LAorICAgICAgICAgICAgIDs7IHdoaWNoIGluc2lkZSBhIGJsb2Nr
IHF1b3RlIGluY2x1ZGVzIHRoZSAiPiAiIHByZWZpeAorICAgICAgICAgICAgIDs7IHdpZHRoLiAg
U2luY2Ugd2UgaW5zZXJ0IGBicS1wcmVmaXgnIHNlcGFyYXRlbHksIHdlCisgICAgICAgICAgICAg
OzsgbXVzdCBzdWJ0cmFjdCBpdHMgbGVuZ3RoIHRvIGF2b2lkIGRvdWJsaW5nIGl0LgorICAgICAg
ICAgICAgIChpbmRlbnQgKC0gY29sIChsZW5ndGggKG9yIGJxLXByZWZpeCAiIikpKSkKKyAgICAg
ICAgICAgICA7OyBUaGUgY3VycmVudCBsaW5lIGlzICJibGFuayIgaWYgaXQgY29udGFpbnMgb25s
eQorICAgICAgICAgICAgIDs7IHdoaXRlc3BhY2UgKG9yIHF1b3RlIHByZWZpeCArIHdoaXRlc3Bh
Y2UpIGFuZCBubworICAgICAgICAgICAgIDs7IGFjdHVhbCB0ZXh0IGZyb20gYSBwcmV2aW91cyBS
RVQncyBjb250aW51YXRpb24gaW5kZW50LgorICAgICAgICAgICAgIChibGFuay1saW5lLXAgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2Yt
bGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIl5bPiBcdF0qJCIpKSkKKyAgICAgICAgICAgICA7OyBQ
b2ludCBpcyBiZWZvcmUgdGhlIGl0ZW0ncyB0ZXh0IChhdCBvciBiZWZvcmUgdGhlCisgICAgICAg
ICAgICAgOzsgbWFya2VyKS4gIEEgcGxhaW4gbmV3bGluZSBpcyBhcHByb3ByaWF0ZSBoZXJlLCBh
ZGRpbmcKKyAgICAgICAgICAgICA7OyBjb250aW51YXRpb24gaW5kZW50IHdvdWxkIHNoaWZ0IHRo
ZSBleGlzdGluZyBjb250ZW50CisgICAgICAgICAgICAgOzsgdG8gdGhlIHJpZ2h0LgorICAgICAg
ICAgICAgIChiZWZvcmUtdGV4dC1wICg8PSAoY3VycmVudC1jb2x1bW4pIGNvbCkpKQorICAgICAg
ICAoY29uZAorICAgICAgICAgKGJsYW5rLWxpbmUtcAorICAgICAgICAgIDs7IFRoZSB1c2VyIHBy
ZXNzZWQgUkVUIG9uIGFuIGFscmVhZHktYmxhbmsgY29udGludWF0aW9uCisgICAgICAgICAgOzsg
bGluZS4gIEluc3RlYWQgb2YgYWRkaW5nIHlldCBhbm90aGVyIGluZGVudGVkIGJsYW5rCisgICAg
ICAgICAgOzsgbGluZSwgcmVtb3ZlIHRoZSBpbmRlbnRhdGlvbiBhbmQgaW5zZXJ0IGEgcGxhaW4K
KyAgICAgICAgICA7OyBuZXdsaW5lLiAgVGhpcyBkcm9wcyBwb2ludCB0byBjb2x1bW4gMCwgd2hp
Y2ggaXMgdGhlCisgICAgICAgICAgOzsgb25seSB3YXkgdGhlIHRyZWUtc2l0dGVyIG1hcmtkb3du
IGdyYW1tYXIgZW5kcyBhIGxpc3Q6CisgICAgICAgICAgOzsgYmxhbmsgbGluZXMgYWxvbmUgZG8g
Tk9UIGVuZCBhIGxpc3QsIG9ubHkKKyAgICAgICAgICA7OyBub24taW5kZW50ZWQgY29udGVudCBk
b2VzLiAgU28gdGhpcyBnaXZlcyB0aGUgdXNlciBhCisgICAgICAgICAgOzsgbmF0dXJhbCAiUkVU
IFJFVCB0byBleGl0IHRoZSBsaXN0IiB3b3JrZmxvdy4KKyAgICAgICAgICAoZGVsZXRlLXJlZ2lv
biAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpCisgICAgICAg
ICAgKG5ld2xpbmUpKQorICAgICAgICAgKGJlZm9yZS10ZXh0LXAKKyAgICAgICAgICA7OyBQb2lu
dCBpcyBvbiBvciBiZWZvcmUgdGhlIGxpc3QgbWFya2VyOyBqdXN0IGluc2VydCBhCisgICAgICAg
ICAgOzsgcGxhaW4gbmV3bGluZSBzbyB0aGUgaXRlbSBpcyBwdXNoZWQgZG93biB1bmNoYW5nZWQu
CisgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgKHQKKyAgICAgICAgICAoZGVsZXRlLWhv
cml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKHdoZW4gYnEt
cHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmlu
ZyBpbmRlbnQgP1xzKSkpKSkpCisgICAgIChpbi1icQorICAgICAgKGxldCAoKGJxLXByZWZpeCAo
bWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAgICA7OyBBIGxpbmUg
d2l0aCBvbmx5IHF1b3RlIG1hcmtlcnMgYW5kIHdoaXRlc3BhY2UgKGUuZy4sCisgICAgICAgICAg
ICA7OyAiPiAiKSBpcyAiYmxhbmsiIGluc2lkZSB0aGUgcXVvdGUuICBSRVQgaGVyZSBleGl0cyB0
aGUKKyAgICAgICAgICAgIDs7IHF1b3RlLCBzYW1lIGFzIFJFVCBvbiBhIGJsYW5rIGNvbnRpbnVh
dGlvbiBsaW5lIGV4aXRzIGEKKyAgICAgICAgICAgIDs7IGxpc3Q6IHJlbW92ZSB0aGUgcHJlZml4
IGFuZCBkcm9wIHRvIGNvbHVtbiAwLgorICAgICAgICAgICAgKGJsYW5rLWxpbmUtcCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcCAiXls+IFx0XSokIikp
KSkKKyAgICAgICAgKGlmIGJsYW5rLWxpbmUtcAorICAgICAgICAgICAgKHByb2duCisgICAgICAg
ICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5k
LXBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgKG5ld2xpbmUpKQorICAgICAgICAgIChkZWxldGUt
aG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAgICAgICAgICAoaW5zZXJ0
IGJxLXByZWZpeCkpKSkKKyAgICAgOzsgRGVmYXVsdDogcGxhaW4gbmV3bGluZS4gIFRoaXMgYWxz
byBoYW5kbGVzIGVtcHR5IGxpc3QgbWFya2VycworICAgICA7OyAoZS5nLiwgIi0gIiB3aXRoIG5v
IHRleHQpIHRoYXQgdGhlIGdyYW1tYXIgcGFyc2VzIGFzIEVSUk9SCisgICAgIDs7IG5vZGVzIHJh
dGhlciB0aGFuIGxpc3RfaXRlbSBub2Rlcy4KKyAgICAgOzsKKyAgICAgOzsgV2hlbiB0aGUgY3Vy
cmVudCBsaW5lIGlzIGJsYW5rICh3aGl0ZXNwYWNlIG9ubHkpLCBpdCBpcyBhCisgICAgIDs7IGNv
bnRpbnVhdGlvbi1pbmRlbnQgbGluZSBsZWZ0IGJ5IGEgcHJldmlvdXMgUkVUIHRoYXQKKyAgICAg
OzsgdHJlZS1zaXR0ZXIgbm8gbG9uZ2VyIGNvbnNpZGVycyBwYXJ0IG9mIGEgbGlzdF9pdGVtLiAg
Q2xlYXIKKyAgICAgOzsgdGhlIHdoaXRlc3BhY2Ugc28gbm8gdHJhaWxpbmcgc3BhY2VzIHJlbWFp
biwgYW5kIGluc2VydCBhCisgICAgIDs7IHBsYWluIG5ld2xpbmUgYXQgY29sdW1uIDAgdG8gZXhp
dCB0aGUgbGlzdCBjb250ZXh0LgorICAgICAodAorICAgICAgKHdoZW4gKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKGxvb2tp
bmctYXQtcCAiXlsgXHRdKyQiKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5u
aW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgIChuZXdsaW5lKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gKCkKKyAgIkluc2VydCBhIG5l
dyBsaXN0IGl0ZW0sIHNwbGl0dGluZyB0ZXh0IGF0IHBvaW50LgorVGV4dCBhZnRlciBwb2ludCBt
b3ZlcyB0byB0aGUgbmV3IGl0ZW0uICBBdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZSwKK2FuIGVt
cHR5IGl0ZW0gaXMgaW5zZXJ0ZWQgYWJvdmUgYW5kIHRoZSBjdXJyZW50IGNvbnRlbnQgaXMgcHVz
aGVkIGRvd24uCitJbnNpZGUgYSBibG9jayBxdW90ZSwgdGhlIG5ldyBsaW5lIGluY2x1ZGVzIHRo
ZSBxdW90ZSBwcmVmaXguCitGb3Igb3JkZXJlZCBsaXN0cywgdGhlIG51bWJlciBpcyBpbmNyZW1l
bnRlZC4KK1doZW4gbm90IGluc2lkZSBhIGxpc3QsIGZhbGwgYmFjayB0byBgbWFya2Rvd24tdHMt
bmV3bGluZScuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgobm9kZSAodHJlZXNpdC1ub2Rl
LWF0CisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9u
KSAocG9pbnQpKQorICAgICAgICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICAoaW4tYnEg
KGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwgbm9kZSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAg
ICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAg
IChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQt
cCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxIChtYXJrZG93
bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkpCisgICAgICAgICAoaXRlbSAobWFya2Rvd24tdHMt
LWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAgICgoYW5kIGl0ZW0KKyAgICAg
ICAgICAgKG9yIChub3QgaW4tYnEpCisgICAgICAgICAgICAgICAoPj0gKG1hcmtkb3duLXRzLS1s
aW5lLWJsb2NrLXF1b3RlLWRlcHRoKQorICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
bGluZS1ibG9jay1xdW90ZS1kZXB0aAorICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0ICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpKSkpCisgICAgICAobGV0KiAoKG5l
dy1tYXJrZXIgKG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1saW5lIGl0ZW0pKQorICAgICAg
ICAgICAgIChhdC1ib2wgKDw9IChjdXJyZW50LWNvbHVtbikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRv
LWluZGVudGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1u
KSkpKQorICAgICAgICAgICAgICh0YWlsICh3aGVuIChhbmQgKG5vdCBhdC1ib2wpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobm90IChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkpCisg
ICAgICAgICAgICAgICAgICAgICAoZGVsZXRlLWFuZC1leHRyYWN0LXJlZ2lvbgorICAgICAgICAg
ICAgICAgICAgICAgIChwb2ludCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSkKKyAgICAgICAgKGlm
IGF0LWJvbAorICAgICAgICAgICAgOzsgQXQgQk9MOiBpbnNlcnQgZW1wdHkgaXRlbSBhYm92ZSwg
cHVzaCBjdXJyZW50IGxpbmUgZG93bi4KKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAg
ICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICh3aGVuIGJxLXByZWZpeCAoaW5z
ZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgICAgIChpbnNlcnQgbmV3LW1hcmtlciAiXG4iKQor
ICAgICAgICAgICAgICAoYmFjay10by1pbmRlbnRhdGlvbikpCisgICAgICAgICAgOzsgTWlkLWxp
bmUgb3IgRU9MOiBuZXcgaXRlbSBiZWxvdyB3aXRoIHRhaWwgdGV4dC4KKyAgICAgICAgICAoZGVs
ZXRlLWhvcml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKHdo
ZW4gYnEtcHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IG5ldy1t
YXJrZXIpCisgICAgICAgICAgKHdoZW4gdGFpbCAoc2F2ZS1leGN1cnNpb24gKGluc2VydCAoc3Ry
aW5nLXRyaW0tbGVmdCB0YWlsKSkpKSkpKQorCisgICAgIDs7IE5vdCBpbiBhIGxpc3Q6IGZhbGwg
YmFjayB0byBuZXdsaW5lIGJlaGF2aW9yLgorICAgICAodCAobWFya2Rvd24tdHMtbmV3bGluZSkp
KSkpCisKKzs7OyBGaWxsaW5nOgorCis7OyBUT0RPOiBSZW1vdmUgdGhlIHBpcGVfdGFibGUgYmxv
Y2sgaWYgd2UgaW1wbGVtZW50IHBpcGVfdGFibGUgZmlsbC4KKyhkZWZjb25zdCBtYXJrZG93bi10
cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICcoWyhmZW5jZWRfY29kZV9ibG9jaykg
KGluZGVudGVkX2NvZGVfYmxvY2spIChwaXBlX3RhYmxlKV0gQGJsb2NrKQorICAiVHJlZS1zaXR0
ZXIgcXVlcnkgbWF0Y2hpbmcgYmxvY2tzIHdoZXJlIGZpbGxpbmcgaXMgaW5oaWJpdGVkLiIpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIChpdGVtKQorICAiUmV0
dXJuIHRoZSBjb2x1bW4gd2hlcmUgdGhlIHRleHQgb2YgbGlzdCBJVEVNIHN0YXJ0cy4KK1RoaXMg
aXMgdGhlIGNvbHVtbiBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoIG5vZGUgaW5zaWRlIElURU0sIG9y
Cit0aGUgd2lkdGggb2YgdGhlIGxpc3QgbWFya2VyIGlmIG5vIHBhcmFncmFwaCBpcyBmb3VuZC4i
CisgIChsZXQgKChwYXJhZ3JhcGggKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxgcGFy
YWdyYXBoXFwnIikpKQorICAgIChpZiBwYXJhZ3JhcGgKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHBhcmFncmFwaCkpCisg
ICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQt
bm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQgbWFya2Vy
KQorICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIChpdGVtIGp1c3RpZnkpCisgICJGaWxsIHRoZSBj
b250ZW50cyBvZiBsaXN0IElURU0sIHByZXNlcnZpbmcgaXRzIGluZGVudGF0aW9uLgorTmFycm93
cyB0byBJVEVNJ3Mgb3duIHBhcmFncmFwaCBjb250ZW50IChleGNsdWRpbmcgbmVzdGVkIGxpc3Rz
KQorYW5kIHNldHMgYGZpbGwtcHJlZml4JyB0byBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0
aCB0aGUgc3RhcnQKK29mIHRoZSBpdGVtJ3MgdGV4dC4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwt
cGFyYWdyYXBoJy4iCisgIChsZXQqICgoZmlsbC1wcmVmaXggKG1ha2Utc3RyaW5nIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID9ccykpCisgICAgICAgICA7OyBGaW5kIHRoZSBpdGVtJ3Mgb3duIHBhcmFn
cmFwaCAoZmlyc3QgcGFyYWdyYXBoIGNoaWxkKS4KKyAgICAgICAgIDs7IElmIHRoZSBpdGVtIGhh
cyBuZXN0ZWQgbGlzdHMsIG5hcnJvdyB0byBqdXN0IHRoZQorICAgICAgICAgOzsgcGFyYWdyYXBo
IHNvIHdlIGRvbid0IG1lcmdlIG5lc3RlZCBpdGVtcy4KKyAgICAgICAgIChwYXJhICh0cmVlc2l0
LXNlYXJjaC1zdWJ0cmVlIGl0ZW0gIlxcYHBhcmFncmFwaFxcJyIgbmlsIG5pbCAxKSkKKyAgICAg
ICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAgICAgIChlbmQgKGlmIHBh
cmEKKyAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHBhcmEpCisgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpKQorICAgICAgICAgOzsgVXNlIGRlZmF1bHQg
cGFyYWdyYXBoIG1vdGlvbiBpbnNpZGUgdGhlIG5hcnJvd2VkIHJlZ2lvbgorICAgICAgICAgOzsg
c28gdGhhdCB0aGUgaW5uZXIgYGZpbGwtcGFyYWdyYXBoJyBkb2VzIG5vdCByZS1lbnRlciBvdXIK
KyAgICAgICAgIDs7IGN1c3RvbSBwYXJhZ3JhcGgtZmluZGluZyBsb2dpYy4KKyAgICAgICAgIChm
aWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgpKQorICAg
IChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAg
ICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgIDs7IFJldHVybiBub24tbmlsIHRvIHNp
Z25hbCB0aGF0IGZpbGxpbmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICA7OyBhcyBwZXIgdGhlIGNv
bnRyYWN0IG9mIGBmaWxsLXBhcmFncmFwaC1mdW5jdGlvbicuCisgICAgdCkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCAoKQorICAiUmV0dXJuIHRoZSBmaWxsIHByZWZpeCBm
b3IgdGhlIGN1cnJlbnQgbGluZSBpbiBNYXJrZG93bi4KK1doZW4gaW5zaWRlIGEgbGlzdCBpdGVt
LCByZXR1cm4gc3BhY2VzIG1hdGNoaW5nIHRoZSBjb2x1bW4gd2hlcmUKK3RoZSBpdGVtJ3MgdGV4
dCBzdGFydHMuIgorICAoYW5kLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAg
ICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9pbnQp
KQorICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChpdGVtICh0
cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAgKG1ha2Ut
c3RyaW5nIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pID9ccykpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGggKGFyZykKKyAgIk1v
dmUgZm9yd2FyZCBieSBBUkcgcGFyYWdyYXBocywgcmVzcGVjdGluZyBNYXJrZG93biBzdHJ1Y3R1
cmUuCitMaXN0IGl0ZW1zIGFyZSB0cmVhdGVkIGFzIGluZGl2aWR1YWwgcGFyYWdyYXBocy4gIEJs
b2NrcyBtYXRjaGVkCitieSBgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVy
eScgYXJlIHNraXBwZWQ6IGJvdGgKK2ZvcndhcmQgYW5kIGJhY2t3YXJkIG1vdGlvbiBtb3ZlIHRv
IHRoZSBlbmQgb2YgdGhlIGJsb2NrLCBzbworYGZpbGwtcmVnaW9uJyBzZWVzIGEgemVyby1sZW5n
dGggcmVnaW9uIGFuZCBsZWF2ZXMgdGhlIGJsb2NrCit1bmZpbGxlZC4iCisgIChsZXQgKChkaXJl
Y3Rpb24gKGlmICg+IGFyZyAwKSAxIC0xKSkKKyAgICAgICAgKGNvdW50IChhYnMgYXJnKSkKKyAg
ICAgICAgKG1vdmVkIDApKQorICAgIChkb3RpbWVzIChfIGNvdW50KQorICAgICAgOzsgRm9yIGJh
Y2t3YXJkIG1vdGlvbiwgc2tpcCBiYWNrIG92ZXIgd2hpdGVzcGFjZSB0byBmaW5kCisgICAgICA7
OyB0aGUgaXRlbSB3ZSBhcmUgbGVhdmluZywgbm90IHRoZSBuZXh0IG9uZS4KKyAgICAgIChsZXQq
ICgocG9zIChpZiAoPCBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIg
XHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAobWF4IChwb2ludC1taW4pICgxLSAocG9p
bnQpKSkpCisgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChibG9j
ayAoY2FyICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9zICgxKyBwb3MpKSkpCisgICAgICAgICAgICAgKGluZGVudGVk
LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0
aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAgICAgICAg
ICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IGluZGVudGVkLXBvcyAnbWFya2Rvd24pKQorICAgICAg
ICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCci
KSkpCisgICAgICAgIDs7IFdoZW4gbW92aW5nIGZvcndhcmQgZnJvbSB3aGl0ZXNwYWNlIGJldHdl
ZW4gbGlzdCBpdGVtcywKKyAgICAgICAgOzsgc2tpcCB0byB0aGUgbmV4dCBub24tYmxhbmsgcG9z
aXRpb24gYW5kIGNoZWNrIGFnYWluLgorICAgICAgICAod2hlbiAoYW5kIChub3QgaXRlbSkgKG5v
dCBibG9jaykgKD4gZGlyZWN0aW9uIDApKQorICAgICAgICAgIChsZXQgKChuZXh0LXBvcyAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3
YXJkICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICAgKHNldHEgbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJrZG93bikp
CisgICAgICAgICAgICAoc2V0cSBpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBs
aXN0X2l0ZW1cXCciKSkpKQorICAgICAgICAoY29uZAorICAgICAgICAgOzsgSW5zaWRlIGFuIHVu
ZmlsbGFibGUgYmxvY2s6IHNraXAgb3ZlciBpdCBlbnRpcmVseS4KKyAgICAgICAgIChibG9jawor
ICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgKGNkciBibG9jaykpKQorICAg
ICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKQorICAgICAgICAgOzsgSW5zaWRlIGEgbGlz
dCBpdGVtOiB0cmVhdCBhcyBwYXJhZ3JhcGggYm91bmRhcnkuCisgICAgICAgICAoaXRlbQorICAg
ICAgICAgIChpZiAoPiBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJl
ZXNpdC1ub2RlLWVuZCBpdGVtKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9k
ZS1zdGFydCBpdGVtKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkpCisgICAg
ICAgICA7OyBEZWZhdWx0OiB1c2Ugc3RhbmRhcmQgcGFyYWdyYXBoIG1vdGlvbi4KKyAgICAgICAg
ICh0CisgICAgICAgICAgKGZvcndhcmQtcGFyYWdyYXBoIGRpcmVjdGlvbikKKyAgICAgICAgICAo
c2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkpKSkKKyAgICA7OyBSZXR1cm4gdGhlIG51bWJlciBvZiBw
YXJhZ3JhcGhzIGxlZnQgdG8gbW92ZSAoMCA9IGFsbCBkb25lKS4KKyAgICAoLSBjb3VudCBtb3Zl
ZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVz
dGlmeSkKKyAgIkZpbGwgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCByZXNwZWN0aW5nIE1hcmtkb3du
IGJsb2NrIHN0cnVjdHVyZS4KK1RoaXMgZnVuY3Rpb24gcHJldmVudHMgZmlsbGluZyBpbnNpZGUg
YmxvY2tzIG1hdGNoZWQgYnkKK2BtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1
ZXJ5JywgYW5kIGZpbGxzIHdpdGhpbiBsaXN0CitpdGVtcyB3aXRob3V0IG1lcmdpbmcgYWRqYWNl
bnQgaXRlbXMuICBKVVNUSUZZIGlzIGFzIGluCitgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGNvbmQq
CisgICA7OyBEb24ndCBmaWxsIGluc2lkZSB1bmZpbGxhYmxlIGJsb2Nrcy4gIFVzZSBhIHF1ZXJ5
IGFnYWluc3QgdGhlCisgICA7OyByb290IG5vZGUgYmVjYXVzZSBgdHJlZXNpdC1ub2RlLWF0JyBt
YXkgbm90IHJldHVybiBhIG5vZGUKKyAgIDs7IGluc2lkZSB0aGUgYmxvY2sgd2hlbiBwb2ludCBp
cyBvbiBhbm9ueW1vdXMgKHVubmFtZWQpIHRleHQuCisgICAoKHRyZWVzaXQtcXVlcnktY2FwdHVy
ZQorICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgbWFya2Rv
d24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAocG9pbnQpIChtaW4gKDEr
IChwb2ludCkpIChwb2ludC1tYXgpKSkKKyAgICB0KQorICAgOzsgRmlsbCB3aXRoaW4gdGhlIGVu
Y2xvc2luZyBsaXN0IGl0ZW0uICBVc2UKKyAgIDs7IGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0
LXBvaW50JyB3aGljaCBoYW5kbGVzIGJsb2NrIHF1b3RlCisgICA7OyBtYXJrZXJzLiAgV2hlbiB0
aGUgbGlzdCBpdGVtIGlzIGluc2lkZSBhIGJsb2NrIHF1b3RlLCBkZWxlZ2F0ZQorICAgOzsgdG8g
dGhlIGJsb2NrIHF1b3RlIGZpbGxlciB3aGljaCBoYW5kbGVzIGA+ICcgcHJlZml4ZXMgY29ycmVj
dGx5LgorICAgKChiaW5kLWFuZCogKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9p
bnQpKSkKKyAgICAoaWYgKHRyZWVzaXQtcGFyZW50LXVudGlsIGl0ZW0gIlxcYGJsb2NrX3F1b3Rl
XFwnIikKKyAgICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkpCisg
ICAgICAobWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIGl0ZW0ganVzdGlmeSkpKQorICAgOzsg
UG9pbnQgaXMgb24gYSBibGFuayBsaW5lIGJlZm9yZSBhIGxpc3QuICBJZiB0aGUgbmV4dAorICAg
Ozsgbm9uLXdoaXRlc3BhY2UgcG9zaXRpb24gZmFsbHMgaW5zaWRlIGEgbGlzdCBpdGVtLCBmaWxs
IHRoYXQgaXRlbS4KKyAgICgoc2F2ZS1leGN1cnNpb24KKyAgICAgIChiZWdpbm5pbmctb2YtbGlu
ZSkKKyAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkKKyAgICAoYW5kLWxldCogKChuZXh0
LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNo
YXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkp
KQorICAgICAgICAgICAgICAgKG5leHQtbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAg
ICAgICAgICAgICAgICAgICAgICBuZXh0LW5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAg
IChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBGaWxs
IHdpdGhpbiBhIGJsb2NrIHF1b3RlLiAgTmFycm93IHRvIHRoZSBwYXJhZ3JhcGggbm9kZSBhdAor
ICAgOzsgcG9pbnQncyBuZXN0aW5nIGxldmVsIHNvIGxpbmVzIHdpdGggZGlmZmVyZW50IGA+ICcg
ZGVwdGhzCisgICA7OyBhcmUgbm90IG1lcmdlZC4KKyAgICgodHJlZXNpdC1wYXJlbnQtdW50aWwK
KyAgICAgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWlu
ZGVudGF0aW9uKSAocG9pbnQpKQorICAgICAgJ21hcmtkb3duKQorICAgICAiXFxgYmxvY2tfcXVv
dGVcXCciKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSBqdXN0aWZ5KSkKKyAg
IDs7IEZpbGwgd2l0aGluIGFuIEhUTUwgY29tbWVudC4gIFRoZSBub2RlIHR5cGUgaXMgImh0bWxf
YmxvY2siCisgICA7OyBpbiBncmFtbWFyIHYwLjQueCBhbmQgImNvbW1lbnQiIGluIHNvbWUgb3Ro
ZXIgdmVyc2lvbnMuCisgICAoKGJpbmQtYW5kKiAoYmxvY2sgKGxldCAoKG4gKHRyZWVzaXQtbm9k
ZS1hdCAocG9pbnQpICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG9yICh0
cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICJcXGBc
XCg/Omh0bWxfYmxvY2tcXHxjb21tZW50XFwpXFwnIikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYW5kIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcoImh0bWxfYmxvY2siICJjb21tZW50IikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLWZp
bGwtaHRtbC1jb21tZW50IGJsb2NrIGp1c3RpZnkpKQorICAgOzsgRGVmYXVsdDogbGV0IGZpbGwt
cGFyYWdyYXBoIGhhbmRsZSBpdC4KKyAgICh0IG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZpbGwtaHRtbC1jb21tZW50IChub2RlIGp1c3RpZnkpCisgICJGaWxsIEhUTUwgY29tbWVudCBO
T0RFLCBhbGlnbmluZyBjb250aW51YXRpb24gbGluZXMuCitSZXR1cm4gdCBpZiBOT0RFIGlzIGEg
Y29tbWVudCBhbmQgd2FzIGZpbGxlZCwgbmlsIG90aGVyd2lzZS4KK0pVU1RJRlkgaXMgYXMgaW4g
YGZpbGwtcGFyYWdyYXBoJy4iCisgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChn
b3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAobG9va2luZy1h
dC1wICI8IS0tIikpCisgICAgKGxldCAoKGZpbGwtcHJlZml4IChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKCsgKGN1cnJlbnQtY29s
dW1uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoICI8
IS0tICIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XHMpKSkKKyAg
ICAgICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgKGZpbGwtZm9y
d2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAo
ZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgIChzYXZlLXJlc3RyaWN0aW9uCisg
ICAgICAgIChuYXJyb3ctdG8tcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgIChm
aWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkKKyAgICAgIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1ibG9jay1xdW90ZS1wcmVmaXggKCkKKyAgIlJldHVybiB0aGUgYmxvY2sgcXVvdGUgcHJlZml4
IHN0cmluZyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuCitSZWFkIHRoZSBhY3R1YWwgYD4nIG1hcmtl
cnMgKHdpdGggd2hhdGV2ZXIgc3BhY2luZyB0aGUgdXNlciB3cm90ZSkKK2Zyb20gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgbGluZSBzbyB0aGF0IGZpbGwgcHJlc2VydmVzIHRoZSBleGlzdGluZworc3R5
bGUgKGUuZy4sIGA+Pj4gJyBzdGF5cyBgPj4+ICcsIGA+ID4gPiAnIHN0YXlzIGA+ID4gPiAnKS4i
CisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoaWYgKGxv
b2tpbmctYXQgIlxcKFs+IFx0XSo+XFwpWyBcdF0qIikKKyAgICAgICAgKGNvbmNhdCAobWF0Y2gt
c3RyaW5nIDApKQorICAgICAgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtYmxv
Y2stcXVvdGUgKGp1c3RpZnkpCisgICJGaWxsIHRoZSBwYXJhZ3JhcGggYXQgcG9pbnQgaW5zaWRl
IGEgYmxvY2sgcXVvdGUuCitGaW5kIHRoZSBwYXJhZ3JhcGggbm9kZSBhdCBwb2ludCB3aXRoaW4g
dGhlIGJsb2NrIHF1b3RlIGFuZCBmaWxsCitvbmx5IHRoYXQgcGFyYWdyYXBoLCBwcmVzZXJ2aW5n
IHRoZSBgPiAnIHByZWZpeC4gIFdoZW4gdGhlCitwYXJhZ3JhcGggaXMgaW5zaWRlIGEgbGlzdCBp
dGVtLCBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0aAordGhlIGl0ZW0ncyB0ZXh0IGNvbHVt
bi4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgIDs7IFNraXAgcGFzdCBg
PiAnIG1hcmtlcnMgYW5kIGFueSBsaXN0IG1hcmtlciB0byBsYW5kIGluc2lkZSB0aGUKKyAgOzsg
Y29udGVudCwgd2hlcmUgdGhlIHBhcmFncmFwaCBub2RlIGxpdmVzLgorICAobGV0KiAoKGNvbnRl
bnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmlu
Zy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAi
PiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB3ZSBsYW5kIG9uIGEgbGlzdCBt
YXJrZXIsIHNraXAgcGFzdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChsb29r
aW5nLWF0ICJbLSorXSBcXHxbMC05XStbLildXHMiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG1p
biAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKSkKKyAgICAgICAgIChub2RlICh0cmVlc2l0LW5v
ZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgIChwYXJhICh0cmVlc2l0LXBh
cmVudC11bnRpbAorICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAg
ICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAicGFyYWdyYXBoIikpKSkp
CisgICAgKHdoZW4gcGFyYQorICAgICAgOzsgVGhlIGdyYW1tYXIgbWF5IGluY2x1ZGUgdHJhaWxp
bmcgYmxvY2tfY29udGludWF0aW9uIG5vZGVzCisgICAgICA7OyAoYmxhbmsgYD4gPicgbGluZXMp
IGFzIGNoaWxkcmVuIG9mIHRoZSBwYXJhZ3JhcGguICBVc2UgdGhlCisgICAgICA7OyBlbmQgb2Yg
dGhlIGxhc3QgaW5saW5lIGNoaWxkIHNvIGZpbGwgZG9lcyBub3QgbWVyZ2UgYWNyb3NzCisgICAg
ICA7OyB3aGF0IHNob3VsZCBiZSBhIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgIChsZXQqICgo
bGFzdC1pbmxpbmUKKyAgICAgICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKGNoaWxkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAi
aW5saW5lIikpCisgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSAodHJlZXNpdC1ub2Rl
LWNoaWxkcmVuIHBhcmEpKSkpCisgICAgICAgICAgICAgKHBhcmEtZW5kIChpZiBsYXN0LWlubGlu
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFzdC1pbmxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkpKQor
ICAgICAgICAgICAgIChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgp
KQorICAgICAgICAgICAgIDs7IFdoZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCBleHRlbmQgdGhlIHBy
ZWZpeCB3aXRoIHNwYWNlcworICAgICAgICAgICAgIDs7IHNvIGNvbnRpbnVhdGlvbiBsaW5lcyBh
bGlnbiB3aXRoIHRoZSBpdGVtJ3MgdGV4dC4KKyAgICAgICAgICAgICAobGlzdC1pdGVtICh0cmVl
c2l0LXBhcmVudC11bnRpbCBwYXJhICJcXGBsaXN0X2l0ZW1cXCciKSkKKyAgICAgICAgICAgICAo
cHJlZml4IChpZiBsaXN0LWl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0KiAoKHRl
eHQtY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1pdGVtKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGV4dHJhIChtYXggMCAoLSB0ZXh0LWNvbCAobGVuZ3RoIGJxLXBy
ZWZpeCkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGJxLXByZWZpeCAo
bWFrZS1zdHJpbmcgZXh0cmEgP1xzKSkpCisgICAgICAgICAgICAgICAgICAgICAgIGJxLXByZWZp
eCkpCisgICAgICAgICAgICAgKGFkYXB0aXZlLWZpbGwtZnVuY3Rpb24gbmlsKQorICAgICAgICAg
ICAgIChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgp
CisgICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIG5pbCkpCisgICAgICAgIChz
YXZlLXJlc3RyaWN0aW9uCisgICAgICAgICAgOzsgTmFycm93IHRvIHRoZSBmdWxsIGxpbmVzIG9m
IHRoZSBwYXJhZ3JhcGggc28gdGhhdCB0aGUKKyAgICAgICAgICA7OyBgPiAnIG1hcmtlcnMgYXJl
IGluY2x1ZGVkIGluIHRoZSBmaWxsIHJlZ2lvbi4KKyAgICAgICAgICAobmFycm93LXRvLXJlZ2lv
bgorICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgcGFyYSkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l
KQorICAgICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgIHBhcmEtZW5kKQorICAgICAgICAg
IChsZXQgKChmaWxsLXByZWZpeCBwcmVmaXgpKQorICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBo
IGp1c3RpZnkpKSkpKSkKKyAgdCkKKworOzs7IENvZGUgYmxvY2tzOgorCisoZGVmdmFyLWxvY2Fs
IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcyBuaWwKKyAgIkFsaXN0IG1hcHBpbmcg
bGFuZ3VhZ2Ugbm9kZSBuYW1lcyB0byB0cyBsYW5ndWFnZS4KK0lmIGEgbGFuZ3VhZ2UgaXMgbm90
IGEgdHMgbGFuZ3VhZ2Ugb3IgaXMgbm90IG1hcHBlZCB0byBvbmUsIGl0IHdpbGwgYmUKK2luIGBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMnLiIpCisKKyhkZWZ2YXItbG9jYWwg
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzIG5pbAorICAiQWxpc3QgbWFwcGlu
ZyBsYW5ndWFnZXMgdG8gbm9uLXRyZWUtc2l0dGVyIG1vZGVzIGZvciBjb2RlIGJsb2Nrcy4KK1Bv
cHVsYXRlZCBieSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHRvIGlkZW50
aWZ5IGEKK2NvZGUtYmxvY2sgbGFuZ3VhZ2UgbW9kZSB3aGljaCBpcyBub3QgYSB0cmVlLXNpdHRl
ciBtb2RlIG9yIGZvciB3aGljaAordGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgaXMgdW5hdmFpbGFi
bGUuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25maWd1
cmF0aW9uIChtb2RlKQorICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWd1cmF0aW9uIGZyb20g
TU9ERS4KK1JldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1ZXM6
CiAKICAgICA6Zm9udC1sb2NrIChmcm9tIGB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncycpCiAg
ICAgOnNpbXBsZS1pbmRlbnQgKGZyb20gYHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcycpCiAg
ICAgOnJhbmdlIChmcm9tIGB0cmVlc2l0LXJhbmdlLXNldHRpbmdzJykiCi0gICh3aXRoLXRlbXAt
YnVmZmVyCi0gICAgKGZ1bmNhbGwgbW9kZSkKLSAgICAobGlzdCA6Zm9udC1sb2NrIHRyZWVzaXQt
Zm9udC1sb2NrLXNldHRpbmdzCisgICh3aXRoLXdvcmstYnVmZmVyCisgICAgKG1hcmtkb3duLXRz
LS1pbmhpYml0LW1lc3NhZ2VzLWFuZC13YXJuaW5ncworICAgICAgJ21hcmtkb3duLXRzLWluaGli
aXQtY29kZS1ibG9jay1tb2RlLXdhcm5pbmdzCisgICAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVu
Y2FsbCBtb2RlKSkpCisgICAgKGxpc3QgOmxhbmd1YWdlICh0cmVlc2l0LWxhbmd1YWdlLWF0IChw
b2ludC1taW4pKQorICAgICAgICAgIDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGlu
Z3MKICAgICAgICAgICA6c2ltcGxlLWluZGVudCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMK
ICAgICAgICAgICA6cmFuZ2UgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncykpKQogCi0oZGVmdW4gbWFy
a2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUgKGxhbmd1YWdlIG1vZGUpCi0gICJBZGQgY29u
ZmlndXJhdGlvbnMgZm9yIExBTkdVQUdFIGZyb20gTU9ERSB0byBjdXJyZW50IGJ1ZmZlci4KLQot
Q29uZmlndXJhdGlvbiBpbmNsdWRlcyBmb250LWxvY2sgYW5kIGluZGVudC4gIEZvciBmb250LWxv
Y2sgcnVsZXMsIHVzZQotdGhlIHNhbWUgZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIKLSAgKGxl
dCAoKGNvbmZpZ3MgKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyBtb2RlKSkp
Ci0gICAgKGlnbm9yZSBsYW5ndWFnZSkgOyBXZSBtaWdodCBtYWtlIHVzZSBvZiB0aGlzIGxhdGVy
LgotICAgIChzZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgKGFwcGVu
ZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgOzsgR2V0IGFs
bCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0Ci0gICAgICAgICAg
ICAgICAgICA7OyBkb24ndCBwZXJ0YWluIHRvIExBTkdVQUdFLiAgVGhpcyB3YXkgd2UgZ2V0IGpz
ZG9jCi0gICAgICAgICAgICAgICAgICA7OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFtcGxlLgot
ICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpmb250LWxvY2spKSkKLSAgICAo
c2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKLSAgICAgICAgICAoYXBwZW5kIHRyZWVz
aXQtc2ltcGxlLWluZGVudC1ydWxlcwotICAgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBn
ZXQgYWxsIGluZGVudCBydWxlcy4KLSAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmln
cyA6c2ltcGxlLWluZGVudCkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVu
dC1idWZmZXIgKGNvbmZpZ3VyYXRpb24pCisgICJBZGQgQ09ORklHVVJBVElPTiB0byB0aGUgY3Vy
cmVudCBidWZmZXIuCitDT05GSUdVUkFUSU9OIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50
IHJ1bGVzLiAgRm9yIGZvbnQtbG9jayBydWxlcywKK3VzZSB0aGUgc2FtZSBmZWF0dXJlcyBlbmFi
bGVkIGluIE1PREUuIgorICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAg
ICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgOzsg
R2V0IGFsbCB0aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0CisgICAg
ICAgICAgICAgICAgOzsgZG9uJ3QgcGVydGFpbiB0byBNT0RFLiAgVGhpcyB3YXksIHdlIGdldCBq
c2RvYworICAgICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCisg
ICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKSkKKyAg
KHNldHEgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQg
YWxsIGluZGVudCBydWxlcy4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRp
b24gOnNpbXBsZS1pbmRlbnQpKSkKICAgICAoc2V0cSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAg
ICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAgICAgICAg
ICA7OyBGaWx0ZXIgb3V0IGZ1bmN0aW9uIHF1ZXJpZXMsIGJlY2F1c2UgdGhleSBhcmUKQEAgLTMw
Miw0NSArMjY0OSwxOTQ2IEBAIG1hcmtkb3duLXRzLS1hZGQtY29uZmlnLWZvci1tb2RlCiAgICAg
ICAgICAgICAgICAgICA7OyBDYXNlIGluIHBvaW50OiBjLXRzLW1vZGUncyByYW5nZSBzZXR0aW5n
LgogICAgICAgICAgICAgICAgICAgKHNlcS1maWx0ZXIgKGxhbWJkYSAoc2V0dGluZykKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZnVuY3Rpb25wIChjYXIgc2V0dGluZykp
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlncyA6cmFu
Z2UpKSkpCi0gICAgKHNldHEtbG9jYWwgaW5kZW50LWxpbmUtZnVuY3Rpb24gIyd0cmVlc2l0LWlu
ZGVudCkKLSAgICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0aW9uICMndHJlZXNpdC1p
bmRlbnQtcmVnaW9uKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOnJhbmdlKSkpKQorICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5j
dGlvbiAjJ3RyZWVzaXQtaW5kZW50KQorICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0
aW9uICMndHJlZXNpdC1pbmRlbnQtcmVnaW9uKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYW5n
dWFnZS1hdC1ub2RlIChub2RlKQorICAiUmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgZm9yIGNv
ZGVfZmVuY2VfY29udGVudCBOT0RFLiIKKyAgKHdoZW4tbGV0KiAoKHBhcmVudCAodHJlZXNpdC1u
b2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgKGxhbmctbm9kZSAod2hlbiBwYXJlbnQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVu
dCAiXFxgbGFuZ3VhZ2VcXCciKSkpKQorICAgIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IGxh
bmctbm9kZSB0KSkpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1s
YW5ndWFnZSAobm9kZSkKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5
LWNhY2hlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkKKyAgIkNhY2hlIGZvciBub24t
dHJlZS1zaXR0ZXIgY29kZSBibG9jayBmb250aWZpY2F0aW9uLgorS2V5cyBhcmUgKExBTkcgLiBD
T05URU5ULUhBU0gpIGNvbnMgY2VsbHMsIHZhbHVlcyBhcmUgbGlzdHMgb2YKK1woT0ZGU0VULVNU
QVJUIE9GRlNFVC1FTkQgRkFDRSkgdHJpcGxlcy4iKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3du
LXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10aWNrIG5pbAorICAiRm9yIGJsdW50IGBidWZmZXIt
Y2hhcnMtbW9kaWZpZWQtdGljaycgY2FjaGUgaW52YWxpZGF0aW9uLiIpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgY29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNpbmcgYSBu
b24tdHJlZS1zaXR0ZXIgbW9kZS4KK0FwcGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBjb252ZW50
aW9uYWwgZm9udC1sb2NrIGluIGEgdGVtcG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwgU1RBUlQs
IGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3Zl
cnJpZGUnLgorCitDYWNoZSByZXN1bHRzIHRvIGF2b2lkIGZvbnRpZmljYXRpb24gb2YgdW5jaGFu
Z2VkIGNvZGUgYmxvY2tzLgorCitOT0RFIHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2VkIHRocm91
Z2gKK2BtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5IGhhdmUg
Y2xhc3NpZmllZCB0aGlzCitub2RlIGFzIGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1sZXQqICgo
XyBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2ZWx5KQorICAgICAgICAgICAg
ICAobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAg
ICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMt
bW9kZXMpKQorICAgICAgICAgICAgICAodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2sp
KQorICAgICAgICAgICAgICAoYmxvY2stc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgICAgICAgOzsgQ2Fubm90IHVzZSBtYXJrZXJzICdtYXJrZG93bi10cy1jb2RlLWJl
Zy1tYXJrZXIKKyAgICAgICAgICAgICAgOzsgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlciB0
aGV5IGFyZSBzZXQgYWZ0ZXIgdGhpcworICAgICAgICAgICAgICA7OyBmdW5jdGlvbiBydW5zLgor
ICAgICAgICAgICAgICAobm9kZS1zdGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAg
ICAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwb2ludCkpKSkKKyAgICAod2hlbiAoPiBub2RlLWVuZCBub2RlLXN0YXJ0KQor
ICAgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUt
dGljaykKKyAgICAgICAgKGNscmhhc2ggbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hl
KSkKKyAgICAgIChsZXQqICgoY2FjaGUta2V5IChjb25zIGxhbmcgKHNlY3VyZS1oYXNoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhMjU2CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpIG5vZGUtc3RhcnQgbm9kZS1lbmQp
KSkKKyAgICAgICAgICAgICAocHJvcHMKKyAgICAgICAgICAgICAgKG9yIChnZXRoYXNoIGNhY2hl
LWtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLW5vbi10cy1mb250
aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAgICAgKGxldCAoKHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICAgICAgIChtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcwor
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlIG5vZGUtc3RhcnQgbm9kZS1lbmQpKSkKKyAg
ICAgICAgICAgICAgICAgICAgKHB1dGhhc2ggY2FjaGUta2V5IHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpCisgICAg
ICAgICAgICAgICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10
aWNrIHRpY2spCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkpKSkKKyAgICAgICAgKGRvbGlz
dCAocmFuZ2UgcHJvcHMpCisgICAgICAgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
CisgICAgICAgICAgIChudGggMCByYW5nZSkKKyAgICAgICAgICAgKG50aCAxIHJhbmdlKQorICAg
ICAgICAgICAobnRoIDIgcmFuZ2UpCisgICAgICAgICAgIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMgKG1v
ZGUgYmVnIGVuZCkKKyAgIlJ1biBNT0RFIG9uIHRoZSBCRUcuLkVORCByZWdpb24ncyB0ZXh0IGFu
ZCBoYXJ2ZXN0IGZhY2UgcHJvcGVydGllcy4KK1JldHVybiBhIGxpc3Qgb2YgKEJVRi1CRUcgQlVG
LUVORCBGQUNFKSB0cmlwbGVzIGluIGJhc2UtYnVmZmVyCitjb29yZGluYXRlcy4KKworRm9yIG5v
bi10cmVlLXNpdHRlciBtb2RlcyB1c2UgYW4gaW5kaXJlY3QgYnVmZmVyIG5hcnJvd2VkIHRvIEJF
Ry4uRU5EOgorcmVnZXgvc3ludGFjdGljIGZvbnQtbG9jayBob25vcnMgbmFycm93aW5nIGFuZCB0
aGUgaW5kaXJlY3QgYnVmZmVyCitzaGFyZXMgdGV4dCB3aXRoIHRoZSBiYXNlLCBzbyB0aGlzIGlz
IGxlc3MgZXhwZW5zaXZlIGFuZCBjb3B5LWZyZWUuCisKK0ZvciB0cyBtb2RlcyBpbiBgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMnLCBmYWxsCitiYWNrIHRv
IGEgdGVtcCBidWZmZXIuICBBIHBhcnNlciBjcmVhdGVkIGluIHRoZSBzb3VyY2UgYnVmZmVyIGRv
ZXMgbm90CityZWFjdCB0byBuYXJyb3dpbmcgaW4gYW4gaW5kaXJlY3QgYnVmZmVyIGRlcml2ZWQg
ZnJvbSBpdCAob25seSBwYXJzZXJzCitjcmVhdGVkIGluIHRoYXQgaW5kaXJlY3QgYnVmZmVyIHdv
dWxkIGhvbm9yIGl0cyBuYXJyb3dpbmcpLCBzbyByZXVzaW5nCit0aGUgaG9zdCBwYXJzZXIgdmlh
IGFuIGluZGlyZWN0IGJ1ZmZlciBpcyBub3QgYW4gb3B0aW9uIGhlcmUuICBBbmQgaW4KK3RoZSBo
b3N0IGJ1ZmZlciBpdHNlbGYsIHRoZSBpbm5lciBjb250ZW50IG9mIGEgZmVuY2VkIGNvZGUgYmxv
Y2sgaXMKK2p1c3Qgb3BhcXVlIHRleHQgaW5zaWRlIGEgYGNvZGVfZmVuY2VfY29udGVudCcgbm9k
ZSwgbmV2ZXIgcmUtcGFyc2VkCithcyBhIGZyZXNoIGRvY3VtZW50LiAgQSB0ZW1wIGJ1ZmZlciB3
aXRoIGEgZnJlc2ggcGFyc2VyIHNlZXMgdGhlIGlubmVyCitjb250ZW50IGFzIGEgc3RhbmRhbG9u
ZSBtYXJrZG93biBkb2N1bWVudCwgd2hpY2ggaXMgd2hhdCB3ZSB3YW50LiIKKyAgKGNvbmQgKCht
ZW1xIG1vZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMp
CisgICAgICAgICAobGV0ICgoY29udGVudCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz
IGJlZyBlbmQpKQorICAgICAgICAgICAgICAgcmVzKQorICAgICAgICAgICAod2l0aC13b3JrLWJ1
ZmZlcgorICAgICAgICAgICAgIChpbnNlcnQgY29udGVudCkKKyAgICAgICAgICAgICAobWFya2Rv
d24tdHMtLWluaGliaXQtbWVzc2FnZXMtYW5kLXdhcm5pbmdzCisgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAgICAgICAg
IChkZWxheS1tb2RlLWhvb2tzCisgICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZG93bi10cy0t
c2V0LXVwLWlubGluZSB0KSkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtbW9kZSkp
KSkKKyAgICAgICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAgICAobGV0ICgo
cG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICh3aGlsZSAoPCBwb3MgKHBvaW50LW1h
eCkpCisgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1j
aGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBvaW50
LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZmFjZSAoZ2V0LXRleHQtcHJvcGVydHkg
cG9zICdmYWNlKSkpCisgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAgICAg
ICAgICAgICAgOzsgVHJhbnNsYXRlIHRlbXAtYnVmZmVyIG9mZnNldHMgYmFjayB0byBiYXNlLWJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgICAgOzsgcG9zaXRpb25zOiB0ZW1wIGBwb2ludC1taW4n
IGNvcnJlc3BvbmRzIHRvIEJFRy4KKyAgICAgICAgICAgICAgICAgICAgIChwdXNoIChsaXN0ICgr
IGJlZyAoMS0gcG9zKSkgKCsgYmVnICgxLSBuZXh0KSkgZmFjZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcykpCisgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQpKSkpKQor
ICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAgICh0CisgICAgICAgICAobGV0ICgo
aW5kaXJlY3QtYnVmZmVyIChtYWtlLWluZGlyZWN0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAoYnVmZmVyLW5hbWUpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdpbmhpYml0LWJ1ZmZlci1ob29rcykpCisg
ICAgICAgICAgICAgICByZXMpCisgICAgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAg
ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAg
ICAgIChtYXJrZG93bi10cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24tdHMtaW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MK
KyAgICAgICAgICAgICAgICAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkpCisg
ICAgICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgICAg
ICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgICAgICAgICAgICAobGV0ICgocG9zIChwb2lu
dC1taW4pKSkKKyAgICAgICAgICAgICAgICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQor
ICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNo
YW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBv
aW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXBy
b3BlcnR5IHBvcyAnZmFjZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBmYWNlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QgcG9zIG5leHQgZmFjZSkgcmVzKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5leHQpKSkpKQorICAgICAgICAgICAg
IChraWxsLWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIpKQorICAgICAgICAgICAobnJldmVyc2UgcmVz
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgKGxh
bmcpCisgICJDb21wdXRlIGFuZCBjYWNoZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywgYSBzeW1i
b2wuCitDb25zdWx0IHRoZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycgY2FjaGUsIG9y
IGNvbnN1bHQKK2B0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QnIGFuZCBgbWFqb3ItbW9k
ZS1yZW1hcC1hbGlzdCcsIG9yIGJydXRlCitmb3JjZSBtb2RlIHByb2JlLiAgUmV0dXJuIGEgdmFs
aWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIKKyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAoY2FyIChh
bGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKSkpKQorICAgICAgbWFw
cGVkLW1vZGUKKyAgICAobGV0KiAoKGxhbmctc3RyaW5nIChzeW1ib2wtbmFtZSBsYW5nKSkKKyAg
ICAgICAgICAgKGxhbmctbW9kZSAoY29uY2F0IGxhbmctc3RyaW5nICItbW9kZSIpKQorICAgICAg
ICAgICAobW9kZSkpCisgICAgICAoaWYgKHNldHEgbW9kZSAoYWxpc3QtZ2V0IGxhbmctbW9kZSB0
cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QpKQorICAgICAgICAgIG1vZGUKKyAgICAgICAg
KGlmIChzZXRxIG1vZGUgKGFsaXN0LWdldCBsYW5nLW1vZGUgbWFqb3ItbW9kZS1yZW1hcC1hbGlz
dCkpCisgICAgICAgICAgICBtb2RlCisgICAgICAgICAgKGNhdGNoIDptb2RlCisgICAgICAgICAg
ICAoZG9saXN0IChtb2RlCisgICAgICAgICAgICAgICAgICAgICAobGlzdAorICAgICAgICAgICAg
ICAgICAgICAgIDs7IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmluZy4KKyAg
ICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMtbW9kZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIHJh
dyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgbGFuZy1tb2RlCisgICAgICAgICAgICAg
ICAgICAgICAgOzsgVHJ5IGEgdHJlZXNpdCBtb2RlIHVzaW5nIHRoZSBkb3duY2FzZWQgc3RyaW5n
LgorICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAi
LXRzLW1vZGUiKQorICAgICAgICAgICAgICAgICAgICAgIDs7IFRyeSBhIGNvbnZlbnRpb25hbCBt
b2RlIHVzaW5nIHRoZSBkb3duY2FzZWQgc3RyaW5nLgorICAgICAgICAgICAgICAgICAgICAgIChj
b25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAiLW1vZGUiKSkpCisgICAgICAgICAgICAgIChz
ZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGZib3VuZHAgbW9k
ZSkKKyAgICAgICAgICAgICAgICAocHVzaCAobGlzdCBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZXMpCisgICAgICAgICAgICAgICAgKHRocm93IDptb2RlIG1vZGUpKSkpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlIChub2RlKQog
ICAiQ29udmVydCBOT0RFIHRvIGEgbGFuZ3VhZ2UgZm9yIHRoZSBjb2RlIGJsb2NrLiIKLSAgKGxl
dCogKChsYW5nLXN0cmluZyAoYWxpc3QtZ2V0ICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFu
Z3VhZ2UtbWFwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXRleHQgbm9kZSkgbmlsICMnZXF1YWwpKQotICAgICAgICAgKGxhbmcgKGlmIChzeW1ib2xwIGxh
bmctc3RyaW5nKQotICAgICAgICAgICAgICAgICAgIGxhbmctc3RyaW5nCi0gICAgICAgICAgICAg
ICAgIChpbnRlcm4gKGRvd25jYXNlIGxhbmctc3RyaW5nKSkpKSkKLSAgICA7OyBGSVhNRTogS2lu
ZCBvZiBhIGhhY2sgaGVyZTogd2UgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBob29rIGZvcgotICAg
IDs7IGxvYWRpbmcgdXAgY29uZmlncyBmb3IgdGhlIGxhbmd1YWdlIGZvciB0aGUgY29kZSBibG9j
ayBvbi1kZW1hbmQuCi0gICAgKGxldCAoKG1vZGUgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwKSkpCi0gICAgICA7OyBJZiB0aGVyZSdzIG5vIHN1
cHBvcnRlZCBtb2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHJldHVybiBuaWwsCi0gICAgICA7OyB3aGlj
aCBtYWtlcyBFbWFjcyBza2lwIHRoZSBjb2RlIGJsb2NrLgotICAgICAgKGlmIChub3QgKGFuZCBt
b2RlIChmYm91bmRwIG1vZGUpKSkKLSAgICAgICAgICBuaWwKLSAgICAgICAgOzsgSWYgdGhlcmUn
cyBhIG1ham9yIG1vZGUgZm9yIHRoZSBsYW5ndWFnZSwgc2V0IHVwIHRoZSBjb25maWcKLSAgICAg
ICAgOzsgYW5kIHJldHVybiB0aGUgbGFuZ3VhZ2UuCi0gICAgICAgICh3aGVuIChub3QgKG1lbXEg
bGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICAgIChtYXJr
ZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZSBsYW5nIG1vZGUpCi0gICAgICAgICAgKHB1c2gg
bGFuZyBtYXJrZG93bi10cy0tY29uZmlndXJlZC1sYW5ndWFnZXMpKQotICAgICAgICBsYW5nKSkp
KQorICAobGV0KiAoKGxhbmcgKGludGVybiAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkpKQorICAg
ICAgICAgKG1vZGUgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykp
CisgICAgICAgICAodHMtbGFuZ3VhZ2UgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWxhbmd1YWdlcykpCisgICAgICAgICAobm9uLXRzLWxhbmd1YWdlIChhbGlzdC1nZXQg
bGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKSkKKyAgICAoY29uZAor
ICAgICAoKGZib3VuZHAgbW9kZSkKKyAgICAgIChjb25kCisgICAgICAgOzsgUmV0dXJuIGtub3du
IHRyZWVzaXQgbGFuZ3VhZ2UuCisgICAgICAgKHRzLWxhbmd1YWdlIHRzLWxhbmd1YWdlKQorICAg
ICAgIDs7IFJldHVybiBuaWwgZm9yIGtub3duIG5vbi10cmVlc2l0IGxhbmd1YWdlIGZvciBmb250
LWxvY2suCisgICAgICAgKG5vbi10cy1sYW5ndWFnZSBuaWwpCisgICAgICAgOzsgTWFya2Rvd24g
aXRzZWxmIG5lZWRzIHR3byBwYXJzZXJzIChtYXJrZG93biArCisgICAgICAgOzsgbWFya2Rvd24t
aW5saW5lKSwgc28gdHJlZXNpdCBlbWJlZGRpbmcgKHdoaWNoIGNyZWF0ZXMgb25seQorICAgICAg
IDs7IG9uZSkgY2Fubm90IGZ1bGx5IGZvbnRpZnkgaXQuICBSb3V0ZSB0aHJvdWdoIHRoZSBub24t
dHMKKyAgICAgICA7OyBwYXRoIHNvIHRoZSB0ZW1wIGJ1ZmZlciBydW5zIHRoZSBmdWxsIG1vZGUg
d2l0aCBib3RoCisgICAgICAgOzsgcGFyc2Vycy4KKyAgICAgICAoKHByb3ZpZGVkLW1vZGUtZGVy
aXZlZC1wIG1vZGUgJ21hcmtkb3duLXRzLW1vZGUpCisgICAgICAgICh1bmxlc3MgKGFzc3EgbGFu
ZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgKHB1c2gg
KGNvbnMgbGFuZyBtb2RlKSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQor
ICAgICAgICBuaWwpCisgICAgICAgKHQKKyAgICAgICAgKGxldCogKChjb25maWd1cmF0aW9uICht
YXJrZG93bi10cy0taGFydmVzdC1tb2RlLXRyZWVzaXQtY29uZmlndXJhdGlvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGUpKQorICAgICAgICAgICAgICAgKHRzLWxhbmd1YWdl
IChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6bGFuZ3VhZ2UpKSkKKyAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAoKGFuZCB0cy1sYW5ndWFnZQorICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOmZvbnQtbG9jaykpCisgICAgICAgICAgICAobWFya2Rvd24tdHMtLWNv
bmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciBjb25maWd1cmF0aW9uKQorICAgICAgICAgICAgKHVubGVz
cyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAgICAgICAg
ICAgICAgKHB1c2ggKGNvbnMgbGFuZyB0cy1sYW5ndWFnZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxv
Y2stbGFuZ3VhZ2VzKSkKKyAgICAgICAgICAgIHRzLWxhbmd1YWdlKQorICAgICAgICAgICA7OyBP
dGhlcndpc2UsIGNsYXNzaWZ5IG1vZGUgYXMgbm9uLXRyZWUtc2l0dGVyLgorICAgICAgICAgICAo
dAorICAgICAgICAgICAgKHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2Nr
LW5vbi10cy1tb2RlcykKKyAgICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFuZyBtb2RlKSBtYXJr
ZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgbmlsKSkpKSkp
CisgICAgICh0IG5pbCkpKSkKKworOzs7IENvZGUgYmxvY2sgbWlub3IgbW9kZSBzdXBwb3J0IGFu
ZCBjb2RlLWJsb2NrIGNvbnRleHQgY29tbWFuZHM6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1jb21tYW5kcyAnKGluZGVudC1mb3ItdGFiLWNvbW1hbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZWN0cmljLW5ld2xpbmUtYW5kLW1heWJlLWlu
ZGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlv
bi1hdC1wb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3
bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudC1k
d2ltCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50LWxp
bmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQtb3It
dW5jb21tZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ctZmlsbC1yZWluZGVudC1kZWZ1bikKKyAg
IkNvbW1hbmRzIHRvIGV4ZWN1dGUgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitTZWUgYG1hcmtk
b3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iKQorCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMgJyh4cmVmLWZpbmQtZGVmaW5pdGlvbnMpCisg
ICJDb21tYW5kcyB0aGF0IG5lZWQgYSBcInRoaW5nXCIgYXQgcG9pbnQgaW4gYSBjb2RlLWJsb2Nr
IGNvbnRleHQuCitTZWUgYG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4i
KQorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stcmVnaW9uLWNvbW1hbmRzICcoY29t
bWVudC1vci11bmNvbW1lbnQtcmVnaW9uKQorICAiQ29tbWFuZHMgdGhhdCBuZWVkIGEgcmVnaW9u
IGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQt
aW4tY29kZS1ibG9jaycuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1p
bi1jb250ZXh0LW1vZGUnIGlmIGluIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICAobWFya2Rvd24t
dHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMtYXQtY29k
ZS1ibG9jay1wKSAxIC0xKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRv
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1uZXdsaW5lICgmb3B0aW9uYWwgYXJnIGludGVyYWN0aXZlKQorICAiSW5zZXJ0
IGEgbmV3bGluZSwgYW5kIG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5ldyBsaW5lLgorV2l0
aCBwcmVmaXggYXJndW1lbnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xpbmVzLgorCitJZiBg
ZWxlY3RyaWMtaW5kZW50LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50cyB0aGUgZmluYWwg
bmV3IGxpbmUKK3RoYXQgaXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJlY2VkaW5nIGxpbmUu
ICBUbyBqdXN0IGluc2VydAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMtaW5kZW50LWp1c3Qt
bmV3bGluZV0uCisKK0lmIGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwgdGhpcyBtYXkgY2F1
c2UgYXV0b21hdGljIGxpbmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcgbGluZS4gIEEgbm9u
LW5pbCBBUkcgaW5oaWJpdHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1oYXJkLW5ld2xpbmVz
JyBpcyBlbmFibGVkLCB0aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhlIHRleHQtcHJvcGVy
dHkgYGhhcmQnLgorCitBIG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQgbWVhbnMgdG8gcnVu
IHRoZSBgcG9zdC1zZWxmLWluc2VydC1ob29rJy4iCisgIChpbnRlcmFjdGl2ZSAiKlBcbnAiKQor
ICAoaWYtbGV0KiAoKGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCkp
CisgICAgICAgICAgICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAgICAgKG1hcmtkb3duLXRz
LS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ25ld2xpbmUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZSkKKyAgICAoZnVuY2FsbC1pbnRlcmFj
dGl2ZWx5ICMnbmV3bGluZSBhcmcgaW50ZXJhY3RpdmUpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVzdGlmeSkKKyAgIlJlZmls
bCBvciByZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0aGF0IGNvbnRhaW5zIHBvaW50Lgor
SWYgdGhlIHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29tbWVudCwgZmlsbCB0aGUgcGFyYWdy
YXBoIHRoYXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3MgcG9pbnQuCisKK090aGVyd2lzZSwg
cmVpbmRlbnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhhdCBjb250YWlucyBwb2ludCBvcgor
Zm9sbG93cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24tbmlsIChpbnRlcmFjdGl2ZWx5LCB3
aXRoIHByZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dlbGwuIgorICAoaW50ZXJhY3RpdmUg
IlAiKQorICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9nLW1vZGUpCisgICAgICAgICAoY2Fs
bC1pbnRlcmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50LWRlZnVuIGp1c3RpZnkpKQorICAg
ICAgICAodAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcGFyYWdyYXBoIGp1
c3RpZnkpKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay14cmVmLWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3MpCisgICJIZWxwZXIgY29tbWFuZCBm
b3IgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitGaW5k
IHRoaW5nIGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVuY2VzIG9uIHRoZSB4cmVmIHN0YWNr
IHRvIHRoZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBBUkdTIGlmIG5vdCBpbiBhIGNvZGUg
YmxvY2sgd2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmLWxl
dCogKChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAg
ICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChjb25kaXRpb24tY2FzZSBlcnIK
KyAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAgKHByb2duCisgICAgICAg
ICAgICAgICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJlZiBtYXJrZXIgaW4gdGhlIGJhc2Ug
YnVmZmVyLiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdpbGwgYmUgcmV0YWluZWQgaWYgdGhl
IGNvbW1hbmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBpbgorICAgICAgICAgICAgICAgIDs7
IHRoZSBjb2RlLWJsb2NrIGJ1ZmZlciB3aGljaCB3ZSB3aWxsIHBvcC4KKyAgICAgICAgICAgICAg
ICAoeHJlZi1wdXNoLW1hcmtlci1zdGFjaykKKyAgICAgICAgICAgICAgICA7OyBgeHJlZi1maW5k
LWRlZmluaXRpb25zJyBpcyBhIHRoaW5nIGNvbW1hbmQgaW4KKyAgICAgICAgICAgICAgICA7OyBg
bWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcycuCisgICAgICAgICAgICAgICAg
KG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIGJsb2NrLW1vZGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyd4cmVm
LWZpbmQtZGVmaW5pdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJncykpCisgICAgICAgICAgICA7OyBQb3AgdGhlIHRvcCB4cmVm
IG1hcmtlci4gIElmIHRoZSBjb21tYW5kIHN1Y2NlZWRlZCwgdGhlCisgICAgICAgICAgICA7OyB0
b3AgbWFya2VyIHdpbGwgYmUgdGhlIGNvZGUtYmxvY2sgYnVmZmVyIG1hcmtlci4gIElmIGl0Cisg
ICAgICAgICAgICA7OyBmYWlsZWQsIHdlJ2xsIHBvcCB0aGUgcGxhY2Vob2xkZXIgd2hpY2ggaXMg
bm93IG9mIG5vCisgICAgICAgICAgICA7OyB2YWx1ZS4KKyAgICAgICAgICAgIDs7IFRPRE86IFBy
b3Bvc2UgYW4gYHhyZWYnIHBvcCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgImdvCisgICAgICAgICAg
ICA7OyBiYWNrIi4KKyAgICAgICAgICAgIChsZXQgKChoaXN0b3J5ICh4cmVmLS1nZXQtaGlzdG9y
eSkpKQorICAgICAgICAgICAgICAodW5sZXNzIChudWxsIChjYXIgaGlzdG9yeSkpCisgICAgICAg
ICAgICAgICAgKHBvcCAoY2FyIGhpc3RvcnkpKSkpKQorICAgICAgICAoZXJyb3IKKyAgICAgICAg
IDs7IFByb3BhZ2F0ZSB0aGUgc2lnbmFsLgorICAgICAgICAgKHNpZ25hbCAoY2FyIGVycikgKGNk
ciBlcnIpKSkpCisgICAgOzsgTm90IGluIGEgY29kZSBibG9jayBjb250ZXh0LiAgVGhpcyBzaG91
bGQgcmVhbGx5IG5ldmVyIGhhcHBlbi4KKyAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5ICMneHJl
Zi1maW5kLWRlZmluaXRpb25zIGFyZ3MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tYXliZS1y
dW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrICgpCisgICJIZWxwZXIgZnVuY3Rpb24gdG8gd3JhcCBh
IGNvbW1hbmQgZm9yIGEgY29kZS1ibG9jayBjb250ZXh0LgorSWYgYHRoaXMtY29tbWFuZCcgaXMg
YSBtZW1iZXIgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnIGFuZAorcG9pbnQg
aXMgd2l0aGluIGEgY29kZSBibG9jayB3aXRoIGFuIGF2YWlsYWJsZSBtb2RlLCBpdCB3aWxsIHJ1
biBpbiB0aGF0Citjb2RlIGJsb2NrJ3MgbW9kZSBpbiBhIGJ1ZmZlciBuYXJyb3dlZCB0byBpdHMg
Y29udGVudC4gIE90aGVyd2lzZSwgdGhlCitjb21tYW5kIHdpbGwgcnVuIGluIHRoZSBjb250ZXh0
IG9mIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyLiIKKyAgKHdoZW4gKG1lbXEgdGhpcy1j
b21tYW5kIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMpCisgICAgKHdoZW4tbGV0KiAo
KGNvbW1hbmQgdGhpcy1jb21tYW5kKQorICAgICAgICAgICAgICAgIChibG9jay1tb2RlIChtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgICAgICgoZmJvdW5kcCBi
bG9jay1tb2RlKSkpCisgICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgKGxhbWJkYSAoJnJlc3QgYXJn
cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhcHBseSAjJ21hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2Rl
LWJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stbW9kZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcmdzKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcnVuLWNv
bW1hbmQtaW4tY29kZS1ibG9jayAoYmxvY2stbW9kZSBjb21tYW5kICZyZXN0IGFyZ3MpCisgICJS
dW4gQ09NTUFORCBpbiBCTE9DSy1NT0RFLgorQVJHUyBhcmUgY2FwdHVyZWQgYnkgYG1hcmtkb3du
LXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iCisgICh3aGVuLWxldCogKChi
ZWcgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtl
cikpCisgICAgICAgICAgICAgIChlbmQgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtk
b3duLXRzLWNvZGUtZW5kLW1hcmtlcikpCisgICAgICAgICAgICAgIChzdHIgKGJ1ZmZlci1zdWJz
dHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkpCisgICAgOzsgVXNlIGEgdGVtcCAob3Igd29y
aykgYnVmZmVyIGJlY2F1c2UgdHJlZXNpdCBjdXJyZW50bHkgY29uZnVzZXMKKyAgICA7OyBub2Rl
cyBpbiBhbiBpbmRpcmVjdCBidWZmZXIgZXZlbiBpZiB0aGUgaW5kaXJlY3QgYnVmZmVyIGlzIG5v
dAorICAgIDs7IG5hcnJvd2VkLgorICAgIChsZXQqICgodGVtcC1kZWFjdGl2YXRlLW1hcmspCisg
ICAgICAgICAgIChvcmlnLXBvaW50IChwb2ludCkpCisgICAgICAgICAgIChvcmlnLW1hcmsgKG1h
cmsgdCkpCisgICAgICAgICAgIChvcmlnLW1hcmstYWN0aXZlIG1hcmstYWN0aXZlKQorICAgICAg
ICAgICAocmVnaW9uLWJlZyAodXNlLXJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAocmVn
aW9uLWVuZCAodXNlLXJlZ2lvbi1lbmQpKQorICAgICAgICAgICAoYWRqLXBvaW50ICgxKyAoLSBv
cmlnLXBvaW50IGJlZykpKQorICAgICAgICAgICAoYWRqLW1hcmsgKHdoZW4gb3JpZy1tYXJrICgx
KyAoLSBvcmlnLW1hcmsgYmVnKSkpKQorICAgICAgICAgICAoYWRqLXJlZ2lvbi1iZWcgKHdoZW4g
cmVnaW9uLWJlZyAoMSsgKC0gb3JpZy1wb2ludCByZWdpb24tYmVnKSkpKQorICAgICAgICAgICAo
YWRqLXJlZ2lvbi1lbmQgKHdoZW4gcmVnaW9uLWVuZCAoMSsgKC0gb3JpZy1wb2ludCByZWdpb24t
ZW5kKSkpKQorICAgICAgICAgICAocG9pbnQtZGVsdGEgMCkKKyAgICAgICAgICAgKHNvdXJjZS1i
dWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAod2l0aC13b3JrLWJ1ZmZlcgorICAgICAg
ICAoaW5zZXJ0IHN0cikKKyAgICAgICAgKGdvdG8tY2hhciBhZGotcG9pbnQpCisgICAgICAgIDs7
IFByb3BhZ2F0ZSBtYXJrIChhbmQgcmVnaW9uKS4KKyAgICAgICAgKHdoZW4gb3JpZy1tYXJrLWFj
dGl2ZQorICAgICAgICAgIChzZXQtbWFyayBhZGotbWFyaykpCisgICAgICAgIChtYXJrZG93bi10
cy0taW5oaWJpdC1tZXNzYWdlcy1hbmQtd2FybmluZ3MKKyAgICAgICAgICAnbWFya2Rvd24tdHMt
aW5oaWJpdC1jb2RlLWJsb2NrLW1vZGUtd2FybmluZ3MKKyAgICAgICAgICAoZGVsYXktbW9kZS1o
b29rcworICAgICAgICAgICAgKGxldCAoKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lCisgICAg
ICAgICAgICAgICAgICAgKHByb3ZpZGVkLW1vZGUtZGVyaXZlZC1wIGJsb2NrLW1vZGUgJ21hcmtk
b3duLXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAgKGZ1bmNhbGwgYmxvY2stbW9kZSkpKSkKKyAg
ICAgICAgKGxldCAoKHBvaW50IChwb2ludCkpCisgICAgICAgICAgICAgIChhcml0eSAoY2RyIChm
dW5jLWFyaXR5IGNvbW1hbmQpKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChtZW1x
IGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKyAgICAgICAg
ICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpKQorICAgICAg
ICAgICAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQgdGhpbmcpKSkKKyAgICAgICAg
ICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24tY29tbWFuZHMp
CisgICAgICAgICAgICAod2hlbiAoYW5kIGFkai1yZWdpb24tYmVnIGFkai1yZWdpb24tZW5kKQor
ICAgICAgICAgICAgICAoYXBwbHkgIydmdW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZAorICAg
ICAgICAgICAgICAgICAgICAgYWRqLXJlZ2lvbi1iZWcgYWRqLXJlZ2lvbi1lbmQgYXJncykpKQor
ICAgICAgICAgICAoKHplcm9wIGFyaXR5KQorICAgICAgICAgICAgKGZ1bmNhbGwtaW50ZXJhY3Rp
dmVseSBjb21tYW5kKSkKKyAgICAgICAgICAgKChlcSAxIGFyaXR5KQorICAgICAgICAgICAgKGZ1
bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIChjYXIgYXJncykpKQorICAgICAgICAgICAodAor
ICAgICAgICAgICAgKGFwcGx5ICMnZnVuY2FsbC1pbnRlcmFjdGl2ZWx5IGNvbW1hbmQgYXJncykp
KQorICAgICAgICAgIChzZXRxIHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChw
b2ludC1taW4pIChwb2ludC1tYXgpKSkKKyAgICAgICAgICAoc2V0cSB0ZW1wLWRlYWN0aXZhdGUt
bWFyayBkZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgKHNldHEgcG9pbnQtZGVsdGEgKC0gKHBv
aW50KSBwb2ludCkpKQorICAgICAgICAobGV0ICgod29yay1idWZmZXIgKGN1cnJlbnQtYnVmZmVy
KSkpCisgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAg
ICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJlZyBlbmQgd29yay1idWZmZXIpCisgICAg
ICAgICAgICA7OyBQcm9wYWdhdGUgbWFyayBkZWFjdGl2YXRpb24gdG8gdGhlIHNvdXJjZSBidWZm
ZXIuCisgICAgICAgICAgICAoc2V0cSBkZWFjdGl2YXRlLW1hcmsgdGVtcC1kZWFjdGl2YXRlLW1h
cmspCisgICAgICAgICAgICA7OyBNb3ZlIHBvaW50IGlmIGl0IG1vdmVkIGluIHRoZSB0ZW1wIGJ1
ZmZlci4KKyAgICAgICAgICAgIChnb3RvLWNoYXIgKCsgb3JpZy1wb2ludCBwb2ludC1kZWx0YSkp
CisgICAgICAgICAgICA7OyBSZWNvcmQgdGhlIG9yaWdpbmFsIGNvbW1hbmQuCisgICAgICAgICAg
ICAoc2V0cSB0aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAgICAgIDs7IFRoaXMgaGVscHMg
bWFpbnRhaW4gZGlzY3JldGUgY29tbWFuZCBhY3Rpb25zLgorICAgICAgICAgICAgKHVuZG8tYm91
bmRhcnkpCisgICAgICAgICAgICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0aW5nIHJlZ2lvbiBp
cyByZWZvbnRpZmllZC4KKyAgICAgICAgICAgIChmb250LWxvY2stZmx1c2ggYmVnIGVuZCkpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyIChwb3Mg
Jm9wdGlvbmFsIGJhY2t3YXJkKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNl
ZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQg
UE9TLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgorICAodHJlZXNp
dC1zZWFyY2gtZm9yd2FyZCAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
ZmluZC1uZXh0LWNvZGUtYmxvY2stZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgYmFja3dhcmQgcmVtYWlu
KQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGlt
aXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBwb2ludCcsIGlm
IFBPUyBpcyBuaWwuCitTZWFyY2ggYmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9uLW5pbC4KK0lm
IFJFTUFJTiBpcyBub24tbmlsLCBtb3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZSBjdXJy
ZW50IGNvZGUKK2Jsb2NrLCBpZiBpbiBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAocG9pbnQp
KSkKKyAgKGFuZC1sZXQqICgobm9kZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxp
bWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgKGxldCAoKGluLWJsb2NrIChtYXJrZG93bi10cy1h
dC1jb2RlLWJsb2NrLXAgcG9zKSkpCisgICAgICAoY29uZAorICAgICAgICgoYW5kIHJlbWFpbiBp
bi1ibG9jaykKKyAgICAgICAgbm9kZSkKKyAgICAgICAocmVtYWluCisgICAgICAgIG5pbCkKKyAg
ICAgICAodAorICAgICAgICAod2hpbGUgKGFuZCBub2RlCisgICAgICAgICAgICAgICAgICAgIDs7
IElmIGJhY2t3YXJkLCBza2lwIHRoZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAgICAgICAgICAg
ICAgOzsgc3RhcnRpbmcgZGVsaW1pdGVyLgorICAgICAgICAgICAgICAgICAgICAob3IgKGFuZCBi
YWNrd2FyZCBpbi1ibG9jayAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBub2RlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkp
KSkKKyAgICAgICAgICAoc2V0cSBpbi1ibG9jayAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1w
IHBvcykpCisgICAgICAgICAgKHNldHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAgICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAgICAg
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2RlIChtYXJrZG93
bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkKKyAgICAgICAg
bm9kZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jayAo
YXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29kZSBibG9jay4K
K1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJlbnQg
Y29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2RlCisg
ICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRl
ciBuaWwgbmlsIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrIChh
cmcpCisgICJNb3ZlIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMgY29kZSBibG9j
ay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJl
bnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2Rl
CisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGlt
aXRlciBuaWwgJ2JhY2t3YXJkIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkpKQorCis7OzsgVGFibGVzIGFrYSBwaXBlIHRhYmxlczoKKworOzs7OyBVdGls
aXRpZXM6CisKKyhkZWZjb25zdCBtYXJrZG93bi10cy10YWJsZS1leHBvcnQtYnVmZmVyCisgICIq
bWFya2Rvd24tdHMtdGFibGUtZXhwb3J0KiIpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRjaGluZyBv
cmRlci4KKyhkZWZjb25zdCBtYXJrZG93bi10cy0tdGFibGUtcm93LXR5cGVzCisgICcoInBpcGVf
dGFibGVfcm93IgorICAgICJwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciCisgICAgInBpcGVfdGFi
bGVfaGVhZGVyIikpCisKKzs7IEluIGZyZXF1ZW5jeSBtYXRjaGluZyBvcmRlci4KKyhkZWZjb25z
dCBtYXJrZG93bi10cy0tdGFibGUtY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2NlbGwiCisg
ICAgInBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwiKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRz
LS10YWJsZS1kZWxpbWl0ZXItY2VsbC10eXBlcworICAnKCJwaXBlX3RhYmxlX2RlbGltaXRlcl9j
ZWxsIgorICAgICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFibGVfYWxpZ25f
cmlnaHQiKSkKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS10YWJsZS1kZWxpbWl0ZXItY2VsbC1z
dWJ0eXBlcworICAnKCJwaXBlX3RhYmxlX2FsaWduX2xlZnQiCisgICAgInBpcGVfdGFibGVfYWxp
Z25fcmlnaHQiKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1hYnV0dGluZy1wb3MgKHBv
cykKKyAgIkFkanVzdCBQT1MgdG8gYWJ1dCBpdHMgY2xvc2VzdCB0ZXh0LgorUmV0dXJuIHBvcyBh
ZGp1c3RlZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNoYXJhY3Rl
ci4KK090aGVyd2lzZSwgcmV0dXJuIG5pbCwgZm9yIGV4YW1wbGUsIGlmIHRoZSBsaW5lIGlzIGVt
cHR5LiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGdvdG8tY2hhciBwb3MpCisgICAgKHNraXAt
Y2hhcnMtZm9yd2FyZCAiW1s6Ymxhbms6XV0iIChwb3MtZW9sKSkKKyAgICAoaWYgKGVxIHBvcyAo
cG9zLWVvbCkpCisgICAgICAgIChwcm9nbgorICAgICAgICAgIChnb3RvLWNoYXIgcG9zKQorICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICJbWzpibGFuazpdXSIgKHBvcy1ib2wpKQorICAg
ICAgICAgICh1bmxlc3MgKGVxIHBvcyAocG9zLWJvbCkpCisgICAgICAgICAgICAobWF4IChwb2lu
dC1taW4pICgxLSAocG9pbnQpKSkpKQorICAgICAgKG1pbiAocG9pbnQtbWF4KSAoMSsgKHBvaW50
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsICgmb3B0aW9uYWwg
bm9kZSBwb3MgYWJ1dHRpbmcpCisgICJDb21wdXRlIHRhYmxlIGNlbGwgZnJvbSBuYW1lZCBOT0RF
IGF0IFBPUy4KK0lmIE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYgUE9TIGlz
IG5pbCwgdXNlIGBwb2ludCcuCitJZiBOT0RFIGlzIGEgY2VsbCB0eXBlLCByZXR1cm4gaXQuCitJ
ZiBOT0RFIGlzIGEgc3VidHlwZSwgcHJvbW90ZSBpdC4KK0lmIEFCVVRUSU5HIGlzIG5vbi1uaWws
IGFkanVzdCBQT1MgdG8gdGhlIG5lYXJlc3Qgbm9uLWJsYW5rIGNoYXJhY3Rlci4KK090aGVyd2lz
ZSwgcmV0dXJuIG5pbC4iCisgIDs7IFdlIGNvdWxkIHNhbml0eSBjaGVjayB2aWEgYHRyZWVzaXQt
bm9kZS1uYW1lZCcgYW5kIGVycm9yIGlmIG5vdC4KKyAgKHNldHEgcG9zIChvciBwb3MgKHBvaW50
KSkpCisgICh3aGVuIGFidXR0aW5nCisgICAgKHNldHEgcG9zIChvciAobWFya2Rvd24tdHMtLXRh
YmxlLWFidXR0aW5nLXBvcyBwb3MpIHBvcykpKQorICAod2hlbi1sZXQqICgobm9kZSAob3Igbm9k
ZQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3du
ICduYW1lZCkpKQorICAgICAgICAgICAgICAodHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkp
KQorICAgIChjb25kICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxlLWNlbGwtdHlwZXMp
CisgICAgICAgICAgIG5vZGUpCisgICAgICAgICAgKChtZW1iZXIgdHlwZSBtYXJrZG93bi10cy0t
dGFibGUtZGVsaW1pdGVyLWNlbGwtc3VidHlwZXMpCisgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
cGFyZW50IG5vZGUpKQorICAgICAgICAgICgobWVtYmVyIHR5cGUgbWFya2Rvd24tdHMtLXRhYmxl
LXJvdy10eXBlcykKKyAgICAgICAgICAgKGNvbmQgKChlcSBhYnV0dGluZyAnbGVmdCkKKyAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwICduYW1lZCkpCisgICAgICAg
ICAgICAgICAgIDs7IEFjY291bnQgZm9yICdyaWdodCBvciB0LgorICAgICAgICAgICAgICAgICAo
dAorICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIC0xICduYW1lZCkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyAoJm9wdGlvbmFsIG5v
ZGUgcG9zKQorICAiQ29tcHV0ZSB0YWJsZSByb3cgZnJvbSBuYW1lZCBOT0RFIGF0IFBPUy4KK0lm
IE5PREUgaXMgbmlsLCB1c2UgdGhlIG5vZGUgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNlIGBw
b2ludCcuCitJZiBOT0RFIGlzIGEgcm93IHR5cGUsIHJldHVybiBpdC4KK0lmIE5PREUgaXMgYSB0
YWJsZSBjZWxsIHR5cGUsIHJldHVybiBpdHMgcm93LgorT3RoZXJ3aXNlLCByZXR1cm4gbmlsLiIK
KyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJlZXNpdC1ub2RlLW5hbWVkJyBhbmQg
ZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgobm9kZSAob3Igbm9kZQorICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1hdCAob3IgcG9zIChwb2ludCkpICdtYXJrZG93biAn
bmFtZWQpKSkKKyAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKSkK
KyAgICAoaWYgKG1lbWJlciB0eXBlIG1hcmtkb3duLXRzLS10YWJsZS1yb3ctdHlwZXMpCisgICAg
ICAgIG5vZGUKKyAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudCAobWFya2Rvd24tdHMtLXRhYmxl
LW5vZGUtY2VsbCBub2RlKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10YWJsZS1wYXJzZS1l
cnJvci1wICgmb3B0aW9uYWwgbm9kZSBwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBuYW1lZCBO
T0RFIGF0IFBPUyBpcyBpbiBhbiBcIkVSUk9SXCIgc3VidHJlZS4KK05PREUgbXVzdCBiZSBhIHRh
YmxlIGVsZW1lbnQ7IGkuZS4sIGl0cyB0eXBlIHByZWZpeCBpcyBcInBpcGVfdGFibGVcIi4KK0lm
IE5PREUgaXMgYSB0YWJsZSwgcmV0dXJuIG5pbCAoaXQgc2hvdWxkbid0IGJlIGluIEVSUk9SKS4K
K0lmIE5PREUgaXMgbm90IGEgdGFibGUgZWxlbWVudCwgcmV0dXJuIG5pbC4KK0lmIE5PREUncyBu
ZWFyYnkgYW5jZXN0b3IgaXMgYW4gXCJFUlJPUlwiIG5vZGUsIHJldHVybiB0LgorT3RoZXJ3aXNl
LCByZXR1cm4gbmlsLiIKKyAgOzsgV2UgY291bGQgc2FuaXR5IGNoZWNrIHZpYSBgdHJlZXNpdC1u
b2RlLW5hbWVkJyBhbmQgZXJyb3IgaWYgbm90LgorICAod2hlbi1sZXQqICgocm93IChtYXJrZG93
bi10cy0tdGFibGUtbm9kZS1yb3cgbm9kZSBwb3MpKQorICAgICAgICAgICAgICAodHlwZSAodHJl
ZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAgICAgKHBhcmVudCAodHJlZXNpdC1ub2Rl
LXBhcmVudCByb3cpKQorICAgICAgICAgICAgICAocGFyZW50LXR5cGUgKHRyZWVzaXQtbm9kZS10
eXBlIHBhcmVudCkpKQorICAgIChjb25kICgoZXF1YWwgdHlwZSAicGlwZV90YWJsZSIpCisgICAg
ICAgICAgIG5pbCkKKyAgICAgICAgICAoKGVxdWFsIHBhcmVudC10eXBlICJwaXBlX3RhYmxlIikK
KyAgICAgICAgICAgbmlsKQorICAgICAgICAgICgoZXF1YWwgcGFyZW50LXR5cGUgIkVSUk9SIikK
KyAgICAgICAgICAgdCkKKyAgICAgICAgICAodAorICAgICAgICAgICAoZXJyb3IgIlNob3VsZCBu
ZXZlciBoYXBwZW4iKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgKCZvcHRp
b25hbCBwb3MgYWJ1dHRpbmcpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgYXQgb3IgaW4g
YSBwaXBlIHRhYmxlLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LgorUmV0dXJuIGNvbnMgKHBv
cyAuIHRhYmxlLW5vZGUpIGlmIFBPUyBpcyB3aXRoaW4gYSB0YWJsZSwgb3RoZXJ3aXNlCityZXR1
cm4gbmlsLgoraWYgUE9TIGlzIHdpdGhpbiBhIHRhYmxlIGJ1dCB3aXRoIHBhcnNlIGVycm9ycywg
c2lnbmFsIGFuIGVycm9yLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgYWRqdXN0IFBPUyB0byB0
aGUgbmVhcmVzdCBub24tYmxhbmsgY2hhcmFjdGVyLgorSWYgdGhlIHBhcnNlZCB0YWJsZSBpcyBp
biBFUlJPUiwgcmV0dXJuIG5pbC4iCisgIChzZXRxIHBvcyAob3IgcG9zIChwb2ludCkpKQorICAo
c2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyIHBvcykKKyAgICA7OyBJZiBwb2ludCBpcyBv
biBhbiBlbXB0eSBsaW5lLCBpdCBpcyBuZXZlciBhIHRhYmxlLgorICAgICh1bmxlc3MgKGFuZCAo
ZW9scCkgKGJvbHApKQorICAgICAgOzsgSWYgcG9pbnQgaXMgYm9sIG9yIGVvbCBpdCBtaWdodCBi
ZSBhYnV0dGluZyBhIHBpcGUgc3ltYm9sIHNvCisgICAgICA7OyBsb29rIGZvcndhcmRzIG9yIGJh
Y2t3YXJkcyBvbmUgY2hhcmFjdGVyIHRvIHRlc3QgaWYgdGhhdCBwb3MKKyAgICAgIDs7IGlzIGEg
dGFibGUuCisgICAgICAod2hlbiBhYnV0dGluZworICAgICAgICAoc2V0cSBwb3MgKG9yIChtYXJr
ZG93bi10cy0tdGFibGUtYWJ1dHRpbmctcG9zIHBvcykgcG9zKSkpCisgICAgICAod2hlbi1sZXQq
ICgocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbmlsIHBvcykpKQorICAgICAgICAo
aWYgKG1hcmtkb3duLXRzLS10YWJsZS1wYXJzZS1lcnJvci1wIHJvdykKKyAgICAgICAgICAgIDs7
IERvIG5vdCB1c2UgZXJyb3Igb3Igd2FybmluZyBoZXJlLiAgRXJyb3JzIGludGVyZmVyZSB3aXRo
CisgICAgICAgICAgICA7OyB0aGUgY29tbWFuZCBsb29wLiAgV2FybmluZ3MgYXJlIGFubm95aW5n
LgorICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgIChtZXNzYWdlICJJbmNvcnJlY3Rs
eSBmb3JtYXR0ZWQgTWFya2Rvd24gdGFibGUgKHBhcnNlciBlcnJvcikiKQorICAgICAgICAgICAg
ICBuaWwpCisgICAgICAgICAgKGNvbnMgcG9zICh0cmVlc2l0LXNlYXJjaC1mb3J3YXJkCisgICAg
ICAgICAgICAgICAgICAgICByb3cKKyAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxl
XFwnIiAnYmFja3dhcmQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW5hYmxlLWluLXRh
YmxlLW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtaW4tdGFibGUtbW9kZScgaWYgaW4g
YSB0YWJsZS4KK0EgdGFibGUgd2l0aCBhIHBhcnNlciBFUlJPUiBpcyBpbmVsaWdpYmxlLiIKKyAg
KG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUKKyAgIChpZiAobWFya2Rvd24tdHMtYXQtdGFibGUt
cCBuaWwgdCkgMSAtMSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLWJvZHktcm93LW5l
YXItcG9zICgmb3B0aW9uYWwgcG9zIGFidXR0aW5nKQorICAiUmV0dXJuIHRoZSByb3cgbmVhciBQ
T1MuCitSZXR1cm4gbmlsIGlmIG5vdCBhdCBhIHRhYmxlIG9yIHRoZXJlIGlzIG5vIHJvdy4KK090
aGVyd2lzZSByZXR1cm4gY29ucyAocm93IC4gaW4taGVhZGVyKSB3aGVyZSBpbi1oZWFkZXIgaXMg
bmlsIG9yIHQuCitUaGlzIGlzIHVzZWZ1bCB0byBpbnNlcnQgYSBuZXcgcm93IGp1c3QgYmVsb3cg
dGhlIGhlYWRlciBpbnN0ZWFkIG9mIGp1c3QKK2JlbG93IHRoZSBmaXJzdCByb3cuCitJZiBQT1Mg
aXMgbmlsIHVzZSBgcG9pbnQnLgorSWYgQUJVVFRJTkcgaXMgbm9uLW5pbCwgdXNlICgxLSBQT1Mp
IGlmIFBPUyBpcyBpbW1lZGlhdGVseSBhZnRlciBhIHBpcGUKK3N5bWJvbC4iCisgIChzZXRxIHBv
cyAob3IgcG9zIChwb2ludCkpKQorICAobGV0IChpbi1oZWFkZXIpCisgICAgKHdoZW4tbGV0KiAo
KGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJsZS1wIHBvcyBhYnV0dGluZykpCisgICAgICAg
ICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgICAodGFibGUgKGNk
ciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKGNlbGwgKG1hcmtkb3duLXRzLS10YWJsZS1u
b2RlLWNlbGwgbmlsIHBvcyBhYnV0dGluZykpCisgICAgICAgICAgICAgICAgKGNlbGwtdHlwZSAo
dHJlZXNpdC1ub2RlLXR5cGUgY2VsbCkpCisgICAgICAgICAgICAgICAgKHBhcmVudCAodHJlZXNp
dC1ub2RlLXBhcmVudCBjZWxsKSkKKyAgICAgICAgICAgICAgICAocGFyZW50LXR5cGUgKHRyZWVz
aXQtbm9kZS10eXBlIHBhcmVudCkpCisgICAgICAgICAgICAgICAgKGxpbmVhZ2UgKGxpc3QgY2Vs
bC10eXBlIHBhcmVudC10eXBlKSkKKyAgICAgICAgICAgICAgICA7OyBGaW5kIHRoZSBmaXJzdCBy
b3cgYWZ0ZXIgdGhlIGhlYWRlciBvciB0aGUgcm93IGF0IFBPUyBpcworICAgICAgICAgICAgICAg
IDs7IG9uIGFuZCBpbiB0aGUgc2FtZSB0YWJsZS4KKyAgICAgICAgICAgICAgICAocm93IChjb25k
ICgob3IgKG1lbWJlciAicGlwZV90YWJsZV9oZWFkZXIiIGxpbmVhZ2UpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChtZW1iZXIgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIgbGlu
ZWFnZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgaW4taGVhZGVyIHQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQgY2VsbCAi
XFxgcGlwZV90YWJsZV9yb3dcXCciKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1
YWwgY2VsbC10eXBlICJwaXBlX3RhYmxlX3JvdyIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2VsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwgcGFyZW50LXR5cGUg
InBpcGVfdGFibGVfcm93IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQpKSkp
CisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJjaC1mb3J3
YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAnYmFja3dhcmQpKQor
ICAgICAgICAoY29ucyByb3cgaW4taGVhZGVyKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS10
YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIChyb3cgbm9kZSkKKyAgIkNvbXB1dGUgTk9ERSdzIGNv
bHVtbiBpbiBST1cuCitSZXR1cm4gbmlsIGlmIE5PREUgaXMgbm90IGluIFJPVyAodGhpcyBzaG91
bGQgbm90IGhhcHBlbikuCitOT0RFIG11c3QgYmUgYSBub2RlIGluIFJPVy4KK1JPVyBtdXN0IGJl
IGEgcGlwZV90YWJsZV9oZWFkZXIsIHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvdywgb3IKK3BpcGVf
dGFibGVfcm93LiIKKyAgKGNhdGNoIDpjb2x1bW4KKyAgICAobGV0ICgoY291bnQgMCkpCisgICAg
ICAoZG9saXN0IChjZWxsICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAg
ICAgICh3aGVuICh0cmVlc2l0LW5vZGUtZXEgbm9kZSBjZWxsKQorICAgICAgICAgICh0aHJvdyA6
Y29sdW1uIGNvdW50KSkKKyAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy10YWJsZS0tZ290by1jb2x1bW4gKGNvbHVtbiAmb3B0aW9uYWwgbm8t
ZXJyb3IpCisgICJNb3ZlIHBvaW50IG9uIHRoZSBjdXJyZW50IHJvdyB0byBDT0xVTU4uCitDT0xV
TU4gaXMgYSAwLWJhc2VkIGluZGV4LgorUmV0dXJuIG5vbi1uaWwgaWYgc3VjY2Vzc2Z1bC4KK0lm
IE5PLUVSUk9SIGlzIG5vbi1uaWwsIHJldHVybiBuaWwgaWYgdGhlIGN1cnJlbnQgcm93IGRvZXMg
bm90IGV4dGVuZCB0bworQ09MVU1OLCBvdGhlcndpc2Ugc2lnbmFsIGFuIGVycm9yLgorU2lnbmFs
IGFuIGVycm9yIGlmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLiIKKyAgKGlmLWxldCogKChjZWxs
IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5pbCBuaWwgdCkpCisgICAgICAgICAgICAo
cm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAgICAoY29s
cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFtZWQpKSkKKyAgICAgIChpZi1sZXQqICgo
dGFyZ2V0LWNlbGwgKG50aCBjb2x1bW4gY29scykpKQorICAgICAgICAgIChnb3RvLWNoYXIgKHRy
ZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICh1bmxlc3Mgbm8tZXJyb3IK
KyAgICAgICAgICAoZXJyb3IgIkNvbHVtbiAlUyBub3QgZm91bmQiIGNvbHVtbikpKQorICAgIChl
cnJvciAiTm90IGF0IGEgdGFibGUiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tdGFibGUtYWxp
Z25lcnMgKHRhYmxlKQorICAiRXh0cmFjdCB0aGUgaGVhZGVyIGxpbmUgYWxpZ25lcnMgZnJvbSBu
b2RlIFRBQkxFLgorUmV0dXJuIGEgbGlzdCBvZiBsaXN0cyBvZiB0aGUgZm9ybToKKyAgKDpiZWcg
eHh4IDplbmQgeHh4IDphbGlnbiBsZWZ0KQorOmFsaWduIGlzIG9uZSBvZiBgbGVmdCcgYGNlbnRl
cicgYHJpZ2h0JyBgdW5zcGVjaWZpZWQnLiIKKyAgKGxldCogKChkZWxpbWl0ZXItcm93ICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93XFwnIikpCisg
ICAgICAgICAoYWxpZ25lcnMKKyAgICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAgICAoZG9s
aXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisg
ICAgICAgICAgICAgIChsZXQgKChhbGlnbi1iZWcgKHRyZWVzaXQtbm9kZS10eXBlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtY2hpbGQgZWx0IDAgJ25hbWUp
KSkKKyAgICAgICAgICAgICAgICAgICAgKGFsaWduLWVuZCAodHJlZXNpdC1ub2RlLXR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZCBlbHQgLTEg
J25hbWUpKSkpCisgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QKKyAgICAgICAgICAgICAgICAg
ICAgICAgOmJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IGVsdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgOmVuZCAodHJlZXNpdC1ub2RlLWVuZCBlbHQpCisgICAgICAgICAgICAgICAgICAgICAgIDph
bGlnbgorICAgICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGFuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1iZWcgInBpcGVfdGFibGVfYWxpZ25fbGVmdCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAicGlwZV90
YWJsZV9hbGlnbl9sZWZ0IikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZXF1YWwgYWxpZ24tYmVnICJwaXBlX3RhYmxlX2FsaWduX2xlZnQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCBhbGlnbi1lbmQgInBpcGVfdGFibGVf
YWxpZ25fcmlnaHQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVxdWFsIGFsaWduLWJlZyAicGlwZV90YWJsZV9hbGlnbl9yaWdodCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFsaWduLWVuZCAicGlwZV90YWJsZV9h
bGlnbl9yaWdodCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodCAndW5zcGVjaWZpZWQpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICByZXMpKSkKKyAgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkpCisgICAgYWxp
Z25lcnMpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciAod2lkdGgg
YWxpZ24pCisgICJNYWtlIGEgTWFya2Rvd24gY29sdW1uIGFsaWduZXIuCitXSURUSCBpcyB0aGUg
Y29sdW1uIHdpZHRoLgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBgcmlnaHQnIGB1
bnNwZWNpZmllZCcuIgorICAocGNhc2UgYWxpZ24KKyAgICAoJ2xlZnQKKyAgICAgKGNvbmNhdCAi
OiIgKG1ha2Utc3RyaW5nICgxLSB3aWR0aCkgPy0pKSkKKyAgICAoJ2NlbnRlcgorICAgICAoY29u
Y2F0ICI6IiAobWFrZS1zdHJpbmcgKC0gd2lkdGggMikgPy0pICI6IikpCisgICAgKCdyaWdodAor
ICAgICAoY29uY2F0IChtYWtlLXN0cmluZyAoMS0gd2lkdGgpID8tKSAiOiIpKQorICAgIChfCisg
ICAgIChjb25jYXQgKG1ha2Utc3RyaW5nIHdpZHRoID8tKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS10YWJsZS1hbGlnbi1jZWxsICh0ZXh0IHdpZHRoIGFsaWduKQorICAiUmV0dXJuIFRFWFQg
cGFkZGVkIHRvIFdJRFRIIGFsaWduZWQgdXNpbmcgQUxJR04uCitUcnVuY2F0ZSBURVhUIHdpZGVy
IHRoYW4gV0lEVEguICBJdCBpcyB0aGUgY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8KK2Vuc3Vy
ZSB0ZXh0IHdpbGwgZml0LgorQUxJR04gaXMgb25lIG9mIGBsZWZ0JyBgY2VudGVyJyBgcmlnaHQn
IGB1bnNwZWNpZmllZCcuIgorICAobGV0KiAoKHN0cmxlbiAobGVuZ3RoIHRleHQpKQorICAgICAg
ICAgKHN0cmxlbjAgKG1pbiB3aWR0aCBzdHJsZW4pKQorICAgICAgICAgKHRleHQwIChzdWJzdHJp
bmcgdGV4dCAwIHN0cmxlbjApKQorICAgICAgICAgKHBhZCAoLSB3aWR0aCBzdHJsZW4wKSkpCisg
ICAgKHBjYXNlIGFsaWduCisgICAgICAoJ2NlbnRlcgorICAgICAgIChsZXQqICgoaGFsZi1wYWQg
KG1ha2Utc3RyaW5nIChmbG9vciAoLyBwYWQgMikpID9ccykpCisgICAgICAgICAgICAgIChzIChj
b25jYXQKKyAgICAgICAgICAgICAgICAgIGhhbGYtcGFkCisgICAgICAgICAgICAgICAgICB0ZXh0
MAorICAgICAgICAgICAgICAgICAgaGFsZi1wYWQpKSkKKyAgICAgICAgIChzdHJpbmctcGFkCisg
ICAgICAgICAgKHN1YnN0cmluZyBzIDAgKG1pbiAobGVuZ3RoIHMpIHdpZHRoKSkKKyAgICAgICAg
ICB3aWR0aCkpKQorICAgICAgKCdyaWdodAorICAgICAgIChzdHJpbmctcGFkIHRleHQgd2lkdGgg
bmlsICdzdGFydCkpCisgICAgICAoXworICAgICAgIChzdHJpbmctcGFkIHRleHQgd2lkdGgpKSkp
KQorCis7Ozs7IENvbW1hbmRzOgorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRh
YmxlICgmb3B0aW9uYWwgbnJvd3MgbmNvbHMgaGVhZGluZ3MgYm9keSkKKyAgIkluc2VydCBhIE1h
cmtkb3duIHBpcGUgdGFibGUuCitOUk9XUyBpcyB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIG5l
dyB0YWJsZSBhbmQgZGVmYXVsdHMgdG8gMy4KKworTkNPTFMgaXMgdGhlIG51bWJlciBvZiBjb2x1
bW5zIGFuZCBkZWZhdWx0cyB0byAzLgorCitIRUFESU5HUyBpcyBhIGxpc3Qgb2YgaGVhZGluZ3Mg
YW5kIGRlZmF1bHRzIHRvIGxlZnQtYWxpZ25lZCBzeW50aGVzaXplZAorY29sdW1uIG5hbWVzLiAg
SWYgTkNPTFMgaXMgbmlsLCB1c2UgSEVBRElOR1MgbGVuZ3RoLiAgSWYgYm90aCBOQ09MUyBhbmQK
K0hFQURJTkdTIGFyZSBub24tbmlsLCB1c2UgdXAgdG8gTkNPTFMgaGVhZGluZ3MsIHN5bnRoZXNp
emluZyB0aGUKK3JlbWFpbmRlci4KKworRWFjaCBoZWFkaW5nIGluIHRoZSBsaXN0IGNhbiBiZSBh
IHN0cmluZyBjb2x1bW4gbmFtZSBvciBhIGNvbnMgb2YgdGhlCitmb3JtIChuYW1lIC4gYWxpZ25t
ZW50KSB3aGVyZSBhbGlnbm1lbnQgaXMgb25lIG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywKK2ByaWdo
dCcsIG9yIGBjZW50ZXInLiAgSWYgYSBzdHJpbmcsIGRlZmF1bHQgYWxpZ25tZW50IGlzIHVuc3Bl
Y2lmaWVkLgorCitJZiBCT0RZIGlzIG5vbi1uaWwsIGl0IGlzIGEgbGlzdCBvZiBOUk9XUyByb3dz
IHdoZXJlIGVhY2ggcm93IGlzIGEgbGlzdAorb2YgTkNPTFMgYm9keSBjZWxscy4KKworRm9yIGNv
bnZlbmllbmNlIGFuZCBhZXN0aGV0aWNzLCBwYWQgZWFjaCBib2R5IGNlbGwgdG8gdGhlIHdpZHRo
IG9mIGl0cworY29sdW1uJ3MgaGVhZGVyLCBhbmQgYWNjb21tb2RhdGUgYWxpZ25tZW50IGluZGlj
YXRvcnMuICBJZiBhIEJPRFkgY2VsbAoraXMgbG9uZ2VyIHRoYW4gaXRzIGNvbHVtbiBoZWFkZXIs
IGluc2VydCBpdCB1bmNoYW5nZWQuCisKK05vdGU6IEEgYmxhbmsgbGluZSBpcyBuZWVkZWQgYmVm
b3JlIHRoZSB0YWJsZSBmb3IgaXQgdG8gcHJvcGVybHkgcmVuZGVyLgorSWYgdGhlIGxpbmUgcHJl
Y2VkaW5nIGBwb2ludCcgaXMgbm90IGJsYW5rLCBpbnNlcnQgb25lLgorCitOb3RlOiBEdWUgdG8g
YW4gaXNzdWUgd2l0aCB0aGUgdHJlZS1zaXR0ZXIgTWFya2Rvd24gZ3JhbW1hciwgYSByb3cgb2YK
K2VtcHR5IGNlbGxzIGNhdXNlcyBhIHBhcnNpbmcgZXJyb3IuICBUbyBhdm9pZCB0aGlzLCBhbiBl
bXB0eSByb3cgd2lsbAorY29udGFpbiBhIHNpbmdsZSBwZXJpb2QgaW4gaXRzIGZpcnN0IGNlbGwu
IgorICAoaW50ZXJhY3RpdmUpCisgIChzZXRxIG5yb3dzIChvciBucm93cyAzKSkKKyAgKHNldHEg
bmNvbHMgKG9yIG5jb2xzIChhbmQgaGVhZGluZ3MgKGxlbmd0aCBoZWFkaW5ncykpIDMpKQorICAo
c2V0cSBoZWFkaW5ncworICAgICAgICAobGV0IChyZXMpCisgICAgICAgICAgKGRvdGltZXMgKHgg
bmNvbHMpCisgICAgICAgICAgICAocHVzaCAob3IgKG50aCB4IGhlYWRpbmdzKQorICAgICAgICAg
ICAgICAgICAgICAgIChmb3JtYXQgIkNvbHVtbiAlZCIgKDErIHgpKSkKKyAgICAgICAgICAgICAg
ICAgIHJlcykpCisgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKQorICAobGV0ICgoaGVhZGluZy13
aWR0aHMKKyAgICAgICAgIChsZXQgKHJlcykKKyAgICAgICAgICAgKGRvbGlzdCAoZWx0IGhlYWRp
bmdzKQorICAgICAgICAgICAgIChsZXQgKChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIgZWx0KSBl
bHQpKSkKKyAgICAgICAgICAgICAgIChwdXNoIChtYXggbWFya2Rvd24tdHMtdGFibGUtZGVmYXVs
dC1jb2x1bW4td2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBzdHIpKQor
ICAgICAgICAgICAgICAgICAgICAgcmVzKSkpCisgICAgICAgICAgIChucmV2ZXJzZSByZXMpKSkp
CisgICAgOzsgSWYgcG9pbnQgaXMgbm90IGF0IGJvbCwgaW5zZXJ0IGEgbmV3bGluZS4KKyAgICAo
dW5sZXNzIChlcSAocG9pbnQpIChwb3MtYm9sKSkKKyAgICAgIChpbnNlcnQgIlxuIikpCisgICAg
OzsgSW5zZXJ0IGFuIGVtcHR5IGxpbmUgaWYgbmVlZGVkLgorICAgICh1bmxlc3MgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgLTEpCisgICAgICAgICAgICAgIChl
cSAocG9zLWJvbCkgKHBvcy1lb2wpKSkKKyAgICAgIChpbnNlcnQgIlxuIikpCisgICAgOzsgSW5z
ZXJ0IHBhZGRlZCBoZWFkaW5nIHRleHQuCisgICAgKGluc2VydCAifCIpCisgICAgKGRvdGltZXMg
KHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3MpKQorICAgICAgICAg
ICAgIChzdHIgKGlmIChjb25zcCBlbHQpIChjYXIgZWx0KSBlbHQpKQorICAgICAgICAgICAgICh3
aWR0aCAobWF4IDMgKG50aCB4IGhlYWRpbmctd2lkdGhzKSkpCisgICAgICAgICAgICAgKHBhZC13
aWR0aCAoLSB3aWR0aCAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGluc2VydCBzdHIgKG1ha2Ut
c3RyaW5nIHBhZC13aWR0aCA/XHMpICJ8IikpKQorICAgIChpbnNlcnQgIlxuIikKKyAgICA7OyBJ
bnNlcnQgcGFkZGVkIGhlYWRpbmcgYWxpZ25lcnMuCisgICAgKGluc2VydCAifCIpCisgICAgKGRv
dGltZXMgKHggbmNvbHMpCisgICAgICAobGV0KiAoKGVsdCAobnRoIHggaGVhZGluZ3MpKQorICAg
ICAgICAgICAgIChhbGlnbiAoaWYgKGNvbnNwIGVsdCkgKGNkciBlbHQpICd1bnNwZWNpZmllZCkp
CisgICAgICAgICAgICAgKHdpZHRoIChtYXggMyAobnRoIHggaGVhZGluZy13aWR0aHMpKSkpCisg
ICAgICAgIChpbnNlcnQgKG1hcmtkb3duLXRzLS10YWJsZS1tYWtlLWFsaWduZXIgd2lkdGggYWxp
Z24pKSkKKyAgICAgIChpbnNlcnQgInwiKSkKKyAgICAoaW5zZXJ0ICJcbiIpCisgICAgOzsgSW5z
ZXJ0IEJPRFkgY2VsbHMgb3IgZW1wdHkgY2VsbHMuCisgICAgKGRvdGltZXMgKHkgbnJvd3MpCisg
ICAgICAoaW5zZXJ0ICJ8IikKKyAgICAgIChsZXQgKChyb3cgKG50aCB5IGJvZHkpKSkKKyAgICAg
ICAgKGRvdGltZXMgKHggbmNvbHMpCisgICAgICAgICAgOzsgVE9ETzogUmVtb3ZlIHRoZSBwbGFj
ZWhvbGRlciBjaGFyYWN0ZXIgaWYgdGhlIHRyZWUtc2l0dGVyCisgICAgICAgICAgOzsgZ3JhbW1h
ciBpcyByZXBhaXJlZC4KKyAgICAgICAgICAobGV0KiAoKHN0ciAob3IgKG50aCB4IHJvdykgKGFu
ZCAoZXEgeCAwKSAiLiIpICIiKSkKKyAgICAgICAgICAgICAgICAgKHN0cmxlbiAobGVuZ3RoIHN0
cikpCisgICAgICAgICAgICAgICAgICh3aWR0aCAobnRoIHggaGVhZGluZy13aWR0aHMpKQorICAg
ICAgICAgICAgICAgICAocGFkLXdpZHRoIChtYXggMCAoLSB3aWR0aCBzdHJsZW4pKSkpCisgICAg
ICAgICAgICAoaW5zZXJ0IHN0cgorICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgcGFk
LXdpZHRoID9ccykKKyAgICAgICAgICAgICAgICAgICAgInwiKSkpCisgICAgICAgIChpbnNlcnQg
IlxuIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUgKCkKKyAg
IlJlbW92ZSB0aGUgTWFya2Rvd24gdGFibGUgYXQgcG9pbnQuCitJZiBwb2ludCBpcyBub3QgYXQg
YSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1i
YXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtdGFibGUpCisgICh3aGVu
LWxldCogKChhdC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAg
ICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkpCisgICAgOzsgVE9ETzogUmVtb3ZlIGFmdGVy
IGJ1ZyMyMzkwMyBVbmRvIGFmdGVyIGtiIGRpZmZlcnMgZnJvbSBhZnRlciBNLXgKKyAgICAocHVz
aCAocG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgKGRlbGV0ZS1yZWdpb24gKHRyZWVzaXQt
bm9kZS1zdGFydCB0YWJsZSkgKHRyZWVzaXQtbm9kZS1lbmQgdGFibGUpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgKCkKKyAgIk1vdmUgdG8gdGhlIHByZXZpb3Vz
IHJvdyBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChp
bnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93IC0xKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICgmb3B0aW9uYWwgbikKKyAgIk1vdmUgdG8gdGhl
IG5leHQgcm93IGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8gdGhlIHBy
ZXZpb3VzIHJvdy4KK0lmIHBvaW50IGlzIG9uIHRoZSBsYXN0IHJvdyBvZiB0aGUgdGFibGUsIGlu
c2VydCBhIG5ldyByb3cgYmVsb3cgYW5kCittb3ZlIGludG8gaXQuICBXaXRoIGEgcHJlZml4IGFy
Z3VtZW50LCBjbG9uZSB0aGUgZmluYWwgcm93IGludG8gdGhlIG5ldworb25lLgorSWYgbm90IGlu
IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0t
YmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cpCisgIChsZXQgKChi
YWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkKKyAgICA7OyBEb24ndCB1c2UgYG1hcmtkb3duLXRz
LS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcycgYmVjYXVzZSB3ZSB3YW50CisgICAgOzsgdG8gb3Bl
cmF0ZSBpbiB0aGUgaGVhZGVyLgorICAgICh3aGVuLWxldCogKChhdC10YWJsZSAobWFya2Rvd24t
dHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxl
KSkKKyAgICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAg
ICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IG5pbCBwb3MpKSkKKyAgICAgIDs7
IElmIG5vIG5leHQgb3IgcHJldiBzaWJsaW5nLCB3ZSdyZSBvbiB0aGUgbGFzdC9maXJzdCByb3cu
CisgICAgICAobGV0ICgoY3VycmVudC1jb2x1bW4gKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgICAg
ICAgIChuZXh0LXJvdyAoaWYgYmFja3dhcmRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyByb3cgJ25hbWVkKSkpKQorICAgICAgICAo
aWYgbmV4dC1yb3cKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBu
ZXh0LXJvdykpCisgICAgICAgICAgKHVubGVzcyBiYWNrd2FyZHMKKyAgICAgICAgICAgIChtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWJlbG93IGN1cnJlbnQtcHJlZml4LWFyZykpKQorICAg
ICAgICAobW92ZS10by1jb2x1bW4gY3VycmVudC1jb2x1bW4pKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtdGFibGUtcHJldmlvdXMtY2VsbCAoKQorICAiTW92ZSB0byB0aGUgcHJldmlvdXMgY2Vs
bCBpbiB0aGUgdGFibGUuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLW5leHQtY2VsbCAtMSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy10YWJsZS1uZXh0LWNlbGwgKCZvcHRpb25hbCBuKQorICAiTW92ZSB0byB0aGUg
bmV4dCBjZWxsIGluIHRoZSB0YWJsZS4KK0lmIE4gaXMgbmVnYXRpdmUsIG1vdmUgdG8gdGhlIHBy
ZXZpb3VzIGNlbGwuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFj
dGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJs
ZS1uZXh0LWNlbGwpCisgIChsZXQgKChiYWNrd2FyZHMgKGFuZCBuICg8IG4gMCkpKSkKKyAgICAo
d2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAg
ICAgICAgICAgICAgIChwb3MgKGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICAgKHRhYmxl
IChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQg
cG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10
cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUpKQorICAgICAgICAgICAgICAgIChjZWxsLXR5cGUgKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgICAgICAgIChyb3cgKG1hcmtkb3duLXRz
LS10YWJsZS1ub2RlLXJvdyBjZWxsKSkKKyAgICAgICAgICAgICAgICAocm93LXR5cGUgKHRyZWVz
aXQtbm9kZS10eXBlIHJvdykpCisgICAgICAgICAgICAgICAgKG5leHQtY2VsbAorICAgICAgICAg
ICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgOzsgSWYgaW4gYSBwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3cgYW5kIG5vdCB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAgIDs7IG9yIGZp
bmFsIGNlbGwgaW4gdGhlIHJvdywgc3RheSB3aXRoaW4gdGhlIHJvdworICAgICAgICAgICAgICAg
ICAgOzsgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBjb25kaXRpb24gc2hvdWxkIG1hdGNoLgorICAg
ICAgICAgICAgICAgICAgKChhbmQgKGVxdWFsIHJvdy10eXBlICJwaXBlX3RhYmxlX2RlbGltaXRl
cl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGJhY2t3YXJkcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIGNlbGwgJ25hbWVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBj
ZWxsICduYW1lZCkpKQorICAgICAgICAgICAgICAgICAgIChpZiBiYWNrd2FyZHMKKyAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2LXNpYmxpbmcgY2VsbCAnbmFtZWQpCisg
ICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBjZWxsICduYW1l
ZCkpKQorICAgICAgICAgICAgICAgICAgOzsgSWYgb24gdGhlIGZpcnN0IHBpcGVfdGFibGVfcm93
J3MgZmlyc3QgY2VsbCBtb3ZpbmcKKyAgICAgICAgICAgICAgICAgIDs7IGJhY2t3YXJkcywgbW92
ZSBpbnRvIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9kZWxpbWl0
ZXJfY2VsbC4KKyAgICAgICAgICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUgInBpcGVf
dGFibGVfY2VsbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJl
di1zaWJsaW5nIHJvdyAnbmFtZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
aXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAo
dHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBiYWNrd2FyZHMpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZv
cndhcmQKKyAgICAgICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxg
cGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAgICAgICAg
ICAgIDs7IElmIG9uIHRoZSBmaXJzdCBwaXBlX3RhYmxlX2hlYWRlcidzIGZpbmFsIGNlbGwKKyAg
ICAgICAgICAgICAgICAgIDs7IG1vdmluZyBmb3J3YXJkcywgbW92ZSBpbnRvIHRoZSBmaXJzdAor
ICAgICAgICAgICAgICAgICAgOzsgcGlwZV90YWJsZV9kZWxpbWl0ZXJfY2VsbC4KKyAgICAgICAg
ICAgICAgICAgICgoYW5kIChlcXVhbCBjZWxsLXR5cGUgInBpcGVfdGFibGVfY2VsbCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFt
ZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaXBlX3RhYmxlX2RlbGltaXRl
cl9yb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAodHJlZXNpdC1ub2RlLW5leHQt
c2libGluZyBjZWxsICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAobm90IGJhY2t3
YXJkcykpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQKKyAgICAg
ICAgICAgICAgICAgICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9k
ZWxpbWl0ZXJfY2VsbFxcJyIgYmFja3dhcmRzKSkKKyAgICAgICAgICAgICAgICAgICh0CisgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNoLWZvcndhcmQKKyAgICAgICAgICAgICAgICAg
ICAgY2VsbAorICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9jZWxsXFwnIiBiYWNr
d2FyZHMpKSkpKQorICAgICAgOzsgS2VlcCBwb2ludCB3aXRoaW4gdGhlIGN1cnJlbnQgdGFibGUu
CisgICAgICAod2hlbiAodHJlZXNpdC1ub2RlLWVxIHRhYmxlICh0cmVlc2l0LXNlYXJjaC1mb3J3
YXJkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0LWNlbGwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBwaXBlX3RhYmxlXFwnIiAnYmFja3dh
cmQpKQorICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbmV4dC1jZWxsKSkp
CisgICAgICAod2hlbiAob3IgKGVxIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24gdCkKKyAg
ICAgICAgICAgICAgICAobWVtcSAnY2VsbC1uYXZpZ2F0aW9uIG1hcmtkb3duLXRzLXRhYmxlLWF1
dG8tYWxpZ24pKQorICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1iZWxvdyAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGJlbG93IHBvaW50LgorSWYgcG9pbnQgaXMgaW4g
dGhlIGhlYWRlciwgaW5zZXJ0IGJlbG93IHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYg
Q0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUgdGhlIGN1
cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1wcmVmaXgt
YXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYmVsb3cgY2xvbmUpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdy1hYm92ZSAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBvaW50LgorSWYgcG9pbnQgaXMgaW4g
dGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCByb3cgb2YgdGhlIHRhYmxlLgorSWYg
Q0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xvbmUgdGhlIGN1
cnJlbnQgcm93LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUgIlAiKQorICAoc2V0cSBjbG9uZSAob3IgY2xvbmUgY3VycmVudC1wcmVmaXgt
YXJnKSkKKyAgICAobWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LXJvdyAnYWJvdmUgY2xvbmUpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWJlbG93ICgpCisgICJJbnNlcnQg
YSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBwb2ludCBpcyBpbiB0aGUgaGVhZGVyLCBpbnNl
cnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUgdGFibGUuCitJZiBwb2ludCBpcyBub3QgYXQg
YSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRh
YmxlLWluc2VydC1yb3ctYmVsb3cgJ2Nsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxl
LWNsb25lLXJvdy1hYm92ZSAoKQorICAiSW5zZXJ0IGEgdGFibGUgcm93IGFib3ZlIHBvaW50Lgor
SWYgcG9pbnQgaXMgaW4gdGhlIGhlYWRlciwgaW5zZXJ0IGFib3ZlIHRoZSBmaXJzdCByb3cgb2Yg
dGhlIHRhYmxlLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAo
aW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93LWFib3ZlICdjbG9u
ZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtcm93ICgmb3B0aW9uYWwgYWJv
dmUgY2xvbmUpCisgICJJbnNlcnQgYSB0YWJsZSByb3cgYmVsb3cgcG9pbnQuCitJZiBwb2ludCBp
cyBpbiB0aGUgaGVhZGVyLCBpbnNlcnQgYmVsb3cgdGhlIGZpcnN0IHJvdyBvZiB0aGUgdGFibGUu
CitJZiBBQk9WRSBpcyBub24tbmlsIGFuZCBpcyBub3QgYGJlbG93Jywgb3Igd2l0aCBhIHByZWZp
eCBhcmd1bWVudCwKK2luc2VydCB0aGUgcm93IGFib3ZlIHBvaW50LgorSWYgQ0xPTkUgaXMgbm9u
LW5pbCwgY2xvbmUgdGhlIGN1cnJlbnQgcm93LCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5CitjZWxs
cy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0
aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10
YWJsZS1pbnNlcnQtcm93KQorICAoc2V0cSBhYm92ZSAoY29uZCAoKGVxIGFib3ZlICdiZWxvdykg
bmlsKQorICAgICAgICAgICAgICAgICAgICAoYWJvdmUgYWJvdmUpCisgICAgICAgICAgICAgICAg
ICAgIChjdXJyZW50LXByZWZpeC1hcmcgdCkpKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1h
cmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQt
dGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAg
ICAgIChkZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc
YHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAobmNvbHMgKHRy
ZWVzaXQtbm9kZS1jaGlsZC1jb3VudCBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAgICAgICAg
ICAgIChoZWFkaW5nLXdpZHRocworICAgICAgICAgICAgICAgKGxldCAocmVzKQorICAgICAgICAg
ICAgICAgICAoZG9saXN0IChlbHQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBkZWxpbWl0ZXItcm93
ICduYW1lZCkpCisgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxlbmd0aCAodHJlZXNpdC1ub2Rl
LXRleHQgZWx0KSkgcmVzKSkKKyAgICAgICAgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKSkKKyAg
ICAobGV0KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBwb3Mp
KQorICAgICAgICAgICAocm93IChjYXIgbmVhcikpCisgICAgICAgICAgIChjdXJyZW50LWNvbHVt
biAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIDs7IElmIHJvdyBpcyBuaWwsIHRoZXJlIGFyZSB6
ZXJvIHJvd3Mgc28gYWRkIG9uZSBiZWxvdyB0aGUKKyAgICAgIDs7IGRlbGltaXRlci1yb3cuCisg
ICAgICAodW5sZXNzIHJvdworICAgICAgICAoc2V0cSBjbG9uZSBuaWwpCisgICAgICAgIChzZXRx
IHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAoc2V0cSBhYm92ZSBuaWwpKQorICAgICAgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgIChjb25kIChhYm92ZQorICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHJvdykpKQorICAgICAgICAgICAgICAodAorICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCByb3cpKQorICAgICAgICAgICAg
ICAgKGluc2VydCAiXG4iKSkpCisgICAgICAgIChjb25kIChjbG9uZQorICAgICAgICAgICAgICAg
OzsgVGhlIGNsb25lIHN0cmF0ZWd5IGlzIFdZU0lXWUcuICBKdXN0IGNvcHkgdGhlIHRleHQKKyAg
ICAgICAgICAgICAgIDs7IGFuZCBkb24ndCBmdXNzIHdpdGggY2VsbCBjb250ZW50IGFuZCBwaXBl
IHN5bWJvbHMuCisgICAgICAgICAgICAgICA7OyBUaGUgZ3JhbW1hciBpbmNsdWRlcyB0aGUgZmlu
YWwgbmV3bGluZSAoYW5kCisgICAgICAgICAgICAgICA7OyBzb21ldGltZXMgbm90KS4KKyAgICAg
ICAgICAgICAgIChpbnNlcnQgKHN0cmluZy10cmltLXJpZ2h0CisgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXRleHQgcm93ICduby1wcm9wZXJ0eSkgIlxuIikpKQorICAgICAg
ICAgICAgICAodAorICAgICAgICAgICAgICAgKGluc2VydCAifCIpCisgICAgICAgICAgICAgICAo
ZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBhZC13aWR0aCAobnRo
IHggaGVhZGluZy13aWR0aHMpKSkKKyAgICAgICAgICAgICAgICAgICA7OyBUT0RPOiBSZW1vdmUg
dGhlIHBsYWNlaG9sZGVyIGNoYXJhY3RlciBpZiB0aGUKKyAgICAgICAgICAgICAgICAgICA7OyB0
cmVlLXNpdHRlciBncmFtbWFyIGlzIHJlcGFpcmVkLgorICAgICAgICAgICAgICAgICAgIChpbnNl
cnQgKGlmIChlcSB4IDApICIuIiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtl
LXN0cmluZyAoLSBwYWQtd2lkdGggKGlmIChlcSB4IDApIDEgMCkpID9ccykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ8IikpKSkpCisgICAgICAgICh3aGVuIGFib3ZlCisgICAgICAgICAg
KGluc2VydCAiXG4iKSkpCisgICAgICAoY29uZCAoYWJvdmUKKyAgICAgICAgICAgICAod2hlbiAo
PiBjdXJyZW50LWNvbHVtbiAwKQorICAgICAgICAgICAgICAgKHdpdGgtc3VwcHJlc3NlZC13YXJu
aW5ncyAoKGludGVyYWN0aXZlLW9ubHkgcHJldmlvdXMtbGluZSkpCisgICAgICAgICAgICAgICAg
IChwcmV2aW91cy1saW5lKSkpKQorICAgICAgICAgICAgKHQgKHdpdGgtc3VwcHJlc3NlZC13YXJu
aW5ncyAoKGludGVyYWN0aXZlLW9ubHkgbmV4dC1saW5lKSkKKyAgICAgICAgICAgICAgICAgKG5l
eHQtbGluZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cgKCkK
KyAgIkRlbGV0ZSB0aGUgdGFibGUgcm93IGF0IHBvaW50LgorSWYgcG9pbnQgaXMgb24gdGhlIGhl
YWRlciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90IGF0IGEg
dGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFy
Zi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLXJvdykKKyAgKHdoZW4tbGV0
KiAoKG5lYXIgKG1hcmtkb3duLXRzLS10YWJsZS1ib2R5LXJvdy1uZWFyLXBvcyBuaWwgdCkpCisg
ICAgICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBkZWxpbWl0
ZXIgcm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgZGVsZXRlIGEgYm9k
eSByb3cgdGhlIHVzZXIgZGlkIG5vdCBzZWxlY3QuCisgICAgICAgICAgICAgICgobm90IChjZHIg
bmVhcikpKQorICAgICAgICAgICAgICAocm93IChjYXIgbmVhcikpKQorICAgIChsZXQgKChjdXJy
ZW50LWNvbHVtbiAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgIChkZWxldGUtcmVnaW9uICh0cmVl
c2l0LW5vZGUtc3RhcnQgcm93KQorICAgICAgICAgICAgICAgICAgICAgKG1pbiAoMSsgKHRyZWVz
aXQtbm9kZS1lbmQgcm93KSkgKHBvaW50LW1heCkpKQorICAgICAgKG1vdmUtdG8tY29sdW1uIGN1
cnJlbnQtY29sdW1uKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctdXAg
KCkKKyAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1cCBvbmUgbGluZS4KK0lmIHBvaW50IGlzIG5v
dCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24t
dHMtdGFibGUtbW92ZS1yb3cpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ct
ZG93biAoKQorICAiTW92ZSB0aGUgcm93IGF0IHBvaW50IGRvd24gb25lIGxpbmUuCitJZiBwb2lu
dCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1h
cmtkb3duLXRzLXRhYmxlLW1vdmUtcm93ICdkb3duKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRh
YmxlLW1vdmUtcm93ICgmb3B0aW9uYWwgZG93bikKKyAgIk1vdmUgdGhlIHJvdyBhdCBwb2ludCB1
cCBvbmUgbGluZS4KK0lmIERPV04gaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVu
dCwgbW92ZSB0aGUgcm93IGRvd24gb25lCitsaW5lLgorSWYgcG9pbnQgaXMgb24gdGhlIGhlYWRl
ciBvciBkZWxpbWl0ZXIgcm93LCBkbyBub3RoaW5nLgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFi
bGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1p
Zi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3cpCisgIChzZXRxIGRvd24gKG9y
IGRvd24gY3VycmVudC1wcmVmaXgtYXJnKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJr
ZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRh
YmxlKSkKKyAgICAgICAgICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAg
ICAobmVhciAobWFya2Rvd24tdHMtLXRhYmxlLWJvZHktcm93LW5lYXItcG9zIHBvcykpCisgICAg
ICAgICAgICAgIDs7IEJhaWwgaWYgcG9pbnQgaXMgb24gdGhlIGhlYWRlciBvciBkZWxpbWl0ZXIg
cm93IOKAlCBkbworICAgICAgICAgICAgICA7OyBub3Qgc2lsZW50bHkgbW92ZSBhIGJvZHkgcm93
IHRoZSB1c2VyIGRpZCBub3Qgc2VsZWN0LgorICAgICAgICAgICAgICAoKG5vdCAoY2RyIG5lYXIp
KSkKKyAgICAgICAgICAgICAgKHJvdyAoY2FyIG5lYXIpKSkKKyAgICA7OyBEbyBub3QgbW92ZSBh
Ym92ZSB0aGUgcGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93LgorICAgIDs7IERvIG5vdCBtb3ZlIGJl
bG93IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLgorICAgICh1bmxlc3MgKG9yIChhbmQgKG5vdCBk
b3duKQorICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyByb3cg
J25hbWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGlwZV90YWJsZV9kZWxpbWl0
ZXJfcm93IikpCisgICAgICAgICAgICAgICAgKGFuZCBkb3duCisgICAgICAgICAgICAgICAgICAg
ICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpKSkpCisgICAgICAo
bGV0ICgocm93MiAoaWYgZG93bgorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
bmV4dC1zaWJsaW5nIHJvdyAnbmFtZWQpCisgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtcHJldi1zaWJsaW5nIHJvdyAnbmFtZWQpKSkKKyAgICAgICAgICAgIChyb3ctZW5kICh0cmVl
c2l0LW5vZGUtZW5kIHJvdykpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIgYnVnIzIz
OTAzIFVuZG8gYWZ0ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAocHVzaCAo
cG9pbnQpIGJ1ZmZlci11bmRvLWxpc3QpCisgICAgICAgIDs7IElmIHJvdyBwb2ludCBpcyBvdXRz
aWRlIGl0cyBzb3VyY2UgcmVnaW9uLCBlLmcuLCBhdCBlb2wsIG1vdmUKKyAgICAgICAgOzsgaXQg
aW5zaWRlIHRoZSByZWdpb24gZm9yIHN0YWJpbGl0eS4KKyAgICAgICAgKHdoZW4gKD49IChwb2lu
dCkgcm93LWVuZCkKKyAgICAgICAgICAoZ290by1jaGFyIChtYXggKHBvaW50LW1pbikgKDEtIHJv
dy1lbmQpKSkpCisgICAgICAgICh0cmFuc3Bvc2UtcmVnaW9ucyAodHJlZXNpdC1ub2RlLXN0YXJ0
IHJvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHJvdykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgcm93MikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHJvdzIpKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdCAoJm9wdGlvbmFsIGNs
b25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIHRvIHRoZSBsZWZ0IG9mIHBvaW50J3MgY29s
dW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgY2xv
bmUgdGhlIGN1cnJlbnQKK2NvbHVtbiwgb3RoZXJ3aXNlIGluc2VydCBlbXB0eSBjZWxscy4KK1Bv
aW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBub3Qg
YXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgIChtYXJrZG93
bi10cy10YWJsZS1pbnNlcnQtY29sdW1uICdsZWZ0IGNsb25lKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQgKCZvcHRpb25hbCBjbG9uZSkKKyAgIkluc2Vy
dCBhIHRhYmxlIGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQncyBjb2x1bW4uCitJZiBDTE9O
RSBpcyBub24tbmlsLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBjbG9uZSB0aGUgY3VycmVu
dAorY29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5IGNlbGxzLgorUG9pbnQgY2FuIGJlIGlu
IHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWlu
c2VydC1jb2x1bW4gJ3JpZ2h0IGNsb25lKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNs
b25lLWNvbHVtbi1sZWZ0ICgpCisgICJDbG9uZSB0aGUgY3VycmVudCBjb2x1bW4gdG8gaXRzIGxl
ZnQuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQg
aXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgJ2Nsb25lKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLXRhYmxlLWNsb25lLWNvbHVtbi1yaWdodCAoKQorICAiQ2xvbmUgdGhlIGN1cnJlbnQg
Y29sdW1uIHRvIGl0cyByaWdodC4KK1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9y
IGJvZHkuCitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tcmlnaHQgJ2Nsb25l
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4gKCZvcHRpb25hbCBs
ZWZ0IGNsb25lKQorICAiSW5zZXJ0IGEgdGFibGUgY29sdW1uIGFmdGVyIHBvaW50J3MgY3VycmVu
dCBjb2x1bW4uCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5vdCBgcmlnaHQnLCBvciB3aXRo
IGEgcHJlZml4IGFyZ3VtZW50LAoraW5zZXJ0IHRoZSBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgdGhl
IGN1cnJlbnQgY29sdW1uLgorSWYgQ0xPTkUgaXMgbm9uLW5pbCwgY2xvbmUgdGhlIGN1cnJlbnQg
Y29sdW1uLCBvdGhlcndpc2UgaW5zZXJ0IGVtcHR5CitjZWxscy4KK0lmIENMT05FIGlzIGEgbGlz
dCwgaXRzIGZpcnN0IGVsZW1lbnQgaXMgdGFyZ2V0LWNvbHVtbi1udW1iZXIuICBJdCBpcwordGhl
IGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRoYXQgdGhpcyB2YWx1ZSBpcyB2YWxpZCBmb3IgdGhl
IHRhYmxlLAordGhvdWdoIGl0IG1heSBiZSBpbnZhbGlkIGZvciBhIG5vbi11bmlmb3JtIHJhZ2dl
ZCByb3cuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9p
bnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICht
YXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtaW5zZXJ0LWNv
bHVtbikKKyAgKHNldHEgbGVmdCAoY29uZCAoKGVxIGxlZnQgJ3JpZ2h0KSBuaWwpCisgICAgICAg
ICAgICAgICAgICAgKGxlZnQgbGVmdCkKKyAgICAgICAgICAgICAgICAgICAoY3VycmVudC1wcmVm
aXgtYXJnIHQpKSkKKyAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlIChtYXJrZG93bi10cy1hdC10YWJs
ZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgKHBvcyAoY2FyIGF0LXRhYmxlKSkKKyAgICAgICAg
ICAgICAgKHRhYmxlIChjZHIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAoZGVsaW1pdGVyLXJv
dyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICA7
OyBDb2x1bW4gcG9zIGZvciBpbnNlcnRpbmcgbWlzc2luZyBsZWFkaW5nIHBpcGVzLgorICAgICAg
ICAgICAgICAoZGVsaW0wLXBpcGUtY29sCisgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgKGxldCogKChkZWxpbS1jZWxsICh0cmVlc2l0LW5vZGUtY2hpbGQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXItcm93IDAgJ25h
bWVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBk
ZWxpbS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgKGlm
IChzZWFyY2gtZm9yd2FyZCAifCIgYmVnIHQpCisgICAgICAgICAgICAgICAgICAgICAgICgxLSAo
Y3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisg
ICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKSkpKQorICAgICAgICAgICAgICAo
bm9kZSAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24gJ25hbWVkKSkKKyAgICAgICAgICAg
ICAgKGNlbGwgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLWNlbGwgbm9kZSkpCisgICAgICAgICAg
ICAgIChwb2ludC1yb3cgKG1hcmtkb3duLXRzLS10YWJsZS1ub2RlLXJvdyBjZWxsKSkpCisgICAg
KGxldCAoKHRhYmxlLWNvbHVtbiAobWFya2Rvd24tdHMtLXRhYmxlLWNvbXB1dGUtbm9kZS1jb2x1
bW4gcG9pbnQtcm93IGNlbGwpKSkKKyAgICAgICh1bmxlc3MgdGFibGUtY29sdW1uCisgICAgICAg
IChlcnJvciAiQ291bGQgbm90IGNvbXB1dGUgdGhlIHRhYmxlIGNvbHVtbiIpKQorICAgICAgOzsg
Tk9URTogR0ZNIHRhYmxlcyBhbGxvdyBub24tdW5pZm9ybSB0YWJsZSByb3dzLiAgVGhlIGN1cnJl
bnQgcm93CisgICAgICA7OyBjb3VsZCBoYXZlIGEgZGlmZmVyaW5nIG51bWJlciBvZiBjb2x1bW5z
IGZyb20gb3RoZXIgcm93cy4gIFdlCisgICAgICA7OyBzaWxlbnRseSBkbyBub3RoaW5nIHRvIGEg
cm93IHRoYXQgZG9lcyBub3QgZXh0ZW5kIHRvIHRoZQorICAgICAgOzsgY29tcHV0ZWQgY29sdW1u
LgorICAgICAgOzsKKyAgICAgIDs7IE5PVEU6IFRoZSBncmFtbWFyIGFubm95aW5nbHkgaWdub3Jl
cyBjZWxsIGxlYWRpbmcgd2hpdGVzcGFjZQorICAgICAgOzsgYnV0IGluY2x1ZGVzIHRyYWlsaW5n
IHdoaXRlc3BhY2UsIHNvIGNlbGxzIGFyZSBib3VuZGVkIGJ5IHRoZQorICAgICAgOzsgZmlyc3Qg
Z3JhcGggY2hhcmFjdGVyIHVwIHRvIHRoZSBsYXN0IGNoYXJhY3RlciBqdXN0IGJlZm9yZSB0aGUK
KyAgICAgIDs7IHBpcGUgc3ltYm9sLCBpbmNsdWRpbmcgd2hpdGVzcGFjZS4gIFRoZSByZXN1bHQg
aXMgdGhlIHJhbmdlCisgICAgICA7OyBkb2VzIG5vdCBzdGFydCBpbW1lZGlhdGVseSBhZnRlciB0
aGUgb3B0aW9uYWwgbGVhZGluZyBwaXBlCisgICAgICA7OyBzeW1ib2wgeWV0IGluY29uc2lzdGVu
dGx5IGNvbnRpbnVlcyB1bnRpbCBqdXN0IGJlZm9yZSB0aGUKKyAgICAgIDs7IHRyYWlsaW5nIHBp
cGUuCisgICAgICAobGV0KiAoKGFkaiAwKSA7IEFkanVzdCBub2RlIHBvc2l0aW9uIG9mZnNldHMg
YnkgaW5zZXJ0ZWQgdGV4dC4KKyAgICAgICAgICAgICAod2lkdGggbWFya2Rvd24tdHMtdGFibGUt
ZGVmYXVsdC1jb2x1bW4td2lkdGgpCisgICAgICAgICAgICAgKGVtcHR5IChtYWtlLXN0cmluZyB3
aWR0aCA/XHMpKQorICAgICAgICAgICAgIDs7IFRPRE86IFJlbW92ZSB0aGUgcGxhY2Vob2xkZXIg
Y2hhcmFjdGVyIGlmIHRoZSB0cmVlLXNpdHRlcgorICAgICAgICAgICAgIDs7IGdyYW1tYXIgaXMg
cmVwYWlyZWQuCisgICAgICAgICAgICAgKHBsYWNlaG9sZGVyIChjb25jYXQgIi4iIChtYWtlLXN0
cmluZyAoMS0gd2lkdGgpID9ccykpKQorICAgICAgICAgICAgIChkZWxpbSAobWFrZS1zdHJpbmcg
d2lkdGggPy0pKQorICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFi
bGUgJ25hbWVkKSkKKyAgICAgICAgICAgICAobnJvd3MgKGxlbmd0aCByb3dzKSkKKyAgICAgICAg
ICAgICAodGFyZ2V0LWNvbHVtbi1udW1iZXIgKGFuZCAobGlzdHAgY2xvbmUpIChjYXIgY2xvbmUp
KSkKKyAgICAgICAgICAgICA7OyBQb3NpdGlvbiB0byBtb3ZlIHBvaW50IHRvIGFmdGVyIGFsbCBy
b3dzIGhhdmUgYmVlbgorICAgICAgICAgICAgIDs7IHVwZGF0ZWQuICBEZXRlcm1pbmlzdGljIHBs
YWNlbWVudCBhdm9pZHMgZGVwZW5kaW5nIG9uCisgICAgICAgICAgICAgOzsgdHJlZS1zaXR0ZXIg
bmF2aWdhdGlvbiB0aHJvdWdoIGZyZXNobHktaW5zZXJ0ZWQgZW1wdHkKKyAgICAgICAgICAgICA7
OyBjZWxscywgd2hpY2ggdGhlIGdyYW1tYXIgZG9lcyBub3QgYWx3YXlzIHJlcGFyc2UgYXMKKyAg
ICAgICAgICAgICA7OyBwaXBlX3RhYmxlX2NlbGwgbm9kZXMuCisgICAgICAgICAgICAgKHRhcmdl
dC1wb3MpKQorICAgICAgICA7OyBUT0RPOiBSZW1vdmUgYWZ0ZXIgYnVnIzIzOTAzIFVuZG8gYWZ0
ZXIga2IgZGlmZmVycyBmcm9tIGFmdGVyIE0teAorICAgICAgICAocHVzaCAocG9pbnQpIGJ1ZmZl
ci11bmRvLWxpc3QpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICh3aXRob3V0
LXJlc3RyaWN0aW9uCisgICAgICAgICAgICAoZG90aW1lcyAoeCBucm93cykKKyAgICAgICAgICAg
ICAgKHdoZW4tbGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChyb3ctdHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgcm93KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IHNvdXJjZS1jZWxsIHdpbGwgYmUgbmlsIGlmIHRhYmxlLWNvbHVtbiBp
cyBiZXlvbmQgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByb3cncyBjb2x1bW4g
c2V0IGFuZCB0aGF0IHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzb3VyY2UtY2VsbCAobnRoIHRhYmxlLWNvbHVtbiBjb2xzKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgOzsgSWYgY2xvbmluZyB3aXRoIGEgc3BlY2lmaWVkIHRhcmdldC1jb2x1bW4t
bnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0YXJnZXQtY2VsbCB3aWxsIGJl
IG5pbCBhbmQgdGhlIHJvdyB3aWxsIGJlIHNraXBwZWQuCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0YXJnZXQtY2VsbCAoaWYgdGFyZ2V0LWNvbHVtbi1udW1iZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggdGFyZ2V0LWNvbHVtbi1udW1iZXIgY29s
cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UtY2VsbCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENvbXB1dGUgdGhlIGluc2VydGlvbiBwb2lu
dC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBJZiBjbG9uaW5nIHRvIGEgc3BlY2lmaWVkIHRhcmdldCwgdXNl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRhcmdldC1jZWxsJ3MgZW5kLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0LWNvbHVtbi1udW1iZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgdGFyZ2V0LWNlbGwpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgaW5zZXJ0aW5nIHRvIHRoZSBsZWZ0IG9m
IHRoZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjb2x1bW4sIHVz
ZSBzb3VyY2UgY2VsbCdzIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7
IGFkanVzdGVkIGZvciBpdHMgb3B0aW9uYWwgcGlwZSB0bworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7OyBjYXB0dXJlIGl0cyB3aGl0ZXNwYWNlLiAgSWYgdGhlcmUgaXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgbm8gcGlwZSwgdXNlIGJvbC4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgbGVmdCAoZXEgdGFibGUtY29sdW1uIDApKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHAgKCsgYWRqCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IHNvdXJjZS1jZWxsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290
by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
KHBvcy1ib2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHNlYXJj
aC1mb3J3YXJkICJ8IiBwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2V0cSBwICgxLSAocG9pbnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBwIChwb3MtYm9sKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNlcnRpbmcg
bGVmdCBhbmQgYW55IG90aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGNv
bHVtbiwgdXNlIHRoZSBlbmQgb2YgdGhlIHByaW9yCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgxKyAodHJlZXNpdC1ub2RlLWVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobnRoICgxLSB0YWJsZS1jb2x1bW4pIGNvbHMpKSkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBpbnNlcnRpbmcgcmlnaHQs
IHVzZSB0aGUgZW5kIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRoZSBj
dXJyZW50IGNlbGwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHNvdXJjZS1jZWxsKSkpKSkpCisgICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAgICAgKGxldCogKChvcmlnLXBv
aW50IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgIChtaXNzaW5nLWxlYWRpbmctcGlw
ZQorICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIHRhYmxlLWNvbHVtbiAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyIChwb3MtYm9sKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodW5sZXNzIChzZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFk
aiAodHJlZXNpdC1ub2RlLXN0YXJ0IHNvdXJjZS1jZWxsKSkgdCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ8IikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKGNvbmQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIGNsb25pbmcsIHJldHJpZXZlIHRo
ZSBzb3VyY2UgY2VsbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25l
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOzsgQmFjayB1cCB0byBib2wgb3IgdGhlIHBpcGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdG8gY2FwdHVyZSB0aGUgd2hpdGVzcGFjZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGUgZ3JhbW1hciBsZWF2
ZXMgb3V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGFkagorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0
IHNvdXJjZS1jZWxsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHNraXAtY2hhcnMtYmFja3dhcmQgIltbOmJsYW5rOl1dIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3MtYm9sKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBhZGogKHRyZWVzaXQtbm9kZS1lbmQgc291cmNl
LWNlbGwpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBuZXcgY29sdW1u
LCBhbmQgdGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGRlbGlt
aXRlciByb3csIGluc2VydCBhIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDs7IGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwgcm93
LXR5cGUgInBpcGVfdGFibGVfZGVsaW1pdGVyX3JvdyIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVsaW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiBuZXcg
Y29sdW1uLCBhbmQgdGhpcyBpcyB0aGUgYSBoZWFkZXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IG9yIGJvZHkgcm93LCBpbnNlcnQgYSBkZWZhdWx0IGVtcHR5CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5KSkpKQorICAgICAg
ICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAoY2xvbmUKKyAgICAgICAgICAg
ICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgdGhlIGZpcnN0IGNv
bHVtbiB0byB0aGUgbGVmdC4gIElmIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgICAgIDs7IG5v
IHBpcGUgYmVmb3JlIHRoZSBjZWxsIGNvbnRlbnQsIGluc2VydCBvbmUuCisgICAgICAgICAgICAg
ICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciBtaXNzaW5nLWxlYWRpbmctcGlw
ZSAiIikpKQorICAgICAgICAgICAgICAgICAgICA7OyBDbG9uZSB0aGUgZmlyc3QgY29sdW1uIHRv
IHRoZSByaWdodC4KKyAgICAgICAgICAgICAgICAgICAgICgoYW5kIChub3QgbGVmdCkgKGVxIHRh
YmxlLWNvbHVtbiAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICA7OyBG
b3IgYSBwb3NpdGl2ZSB1c2VyIGV4cGVyaWVuY2UgZ2l2ZW4gZ3JhbW1hcgorICAgICAgICAgICAg
ICAgICAgICAgIDs7IGJ1Z3MsIGFkZCBhIG1pc3NpbmcgbGVhZGluZyBwaXBlIHRvIHRoZSBmaXJz
dAorICAgICAgICAgICAgICAgICAgICAgIDs7IGNlbGwgYXQgYSBwbGVhc2luZyBwb3NpdGlvbiBh
ZnRlciBjbG9uaW5nLgorICAgICAgICAgICAgICAgICAgICAgICh3aGVuIG1pc3NpbmctbGVhZGlu
Zy1waXBlCisgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1vdmUtdG8tY29sdW1uIGRlbGltMC1waXBlLWNvbCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAifCIpKSkpCisgICAgICAgICAgICAgICAgICAg
IDs7IENsb25lIHRoZSBmaW5hbCBjb2x1bW4gdG8gdGhlIGxlZnQuCisgICAgICAgICAgICAgICAg
ICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gKDEtIG5jb2xzKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgKGluc2VydCB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
fCIpKQorICAgICAgICAgICAgICAgICAgICAgOzsgQ2xvbmUgYSBtaWRkbGUgY29sdW1uIHRvIHRo
ZSBsZWZ0LgorICAgICAgICAgICAgICAgICAgICAgKGxlZnQKKyAgICAgICAgICAgICAgICAgICAg
ICAoaW5zZXJ0IHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ8IikpCisgICAg
ICAgICAgICAgICAgICAgICA7OyBDbG9uZSBhIG1pZGRsZSBvciBmaW5hbCBjb2x1bW4gdG8gdGhl
IHJpZ2h0LgorICAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgICAo
aW5zZXJ0ICJ8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkpKSkKKworICAg
ICAgICAgICAgICAgICAgIDs7IE5vdCBjbG9uaW5nLCBpbnNlcnQgYSBuZXcgY29sdW1uLgorICAg
ICAgICAgICAgICAgICAgICgoYW5kIGxlZnQgKGVxIHRhYmxlLWNvbHVtbiAwKSAoZXEgeCAoMS0g
bnJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxdWFsIHJvdy10eXBlICJw
aXBlX3RhYmxlX2RlbGltaXRlcl9yb3ciKSkpCisgICAgICAgICAgICAgICAgICAgOzsgVE9ETzog
cmVtb3ZlIHBsYWNlaG9sZGVyIGxvZ2ljLgorICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0Cisg
ICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVy
CisgICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2luZy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAg
ICAgICAgICAgICAgICAgICAoKGFuZCBsZWZ0IChlcSB0YWJsZS1jb2x1bW4gMCkpCisgICAgICAg
ICAgICAgICAgICAgICAgKGluc2VydAorICAgICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAob3IgbWlzc2lu
Zy1sZWFkaW5nLXBpcGUgIiIpKSkKKyAgICAgICAgICAgICAgICAgICAobGVmdAorICAgICAgICAg
ICAgICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAg
ICAgICAgICAgICAifCIpKQorICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAg
ICAgIChpbnNlcnQKKyAgICAgICAgICAgICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgICAg
ICAgdGV4dCkpKQorCisgICAgICAgICAgICAgICAgICA7OyBDYXB0dXJlIHRoZSBzdGFydCBvZiB0
aGUgbmV3IGNlbGwncyBjb250ZW50IGluCisgICAgICAgICAgICAgICAgICA7OyB0aGUgcm93IHRo
YXQgb3JpZ2luYWxseSBjb250YWluZWQgcG9pbnQuCisgICAgICAgICAgICAgICAgICAod2hlbiAo
YW5kIChub3QgdGFyZ2V0LXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtbm9kZS1lcSByb3cgcG9pbnQtcm93KSkKKyAgICAgICAgICAgICAgICAgICAgKHNldHEgdGFy
Z2V0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRhcmdldC1jb2x1bW4tbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCB0YXJnZXQtY2VsbCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5kIGxlZnQg
KG5vdCAoZXEgdGFibGUtY29sdW1uIDApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOzsgInRleHQgfCIgaW5zZXJ0ZWQgYXQgYmVnLgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcmlnLXBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBBbGwg
b3RoZXIgYnJhbmNoZXMgaW5zZXJ0ICJ8IiBmaXJzdC4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgxKyBvcmlnLXBvaW50KSkpKSkpCisKKyAgICAgICAgICAgICAgICAgIDs7IEFkanVz
dCBvZmZzZXQgZm9yIGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgIChzZXRxIGFkaiAo
KyBhZGogKC0gKHBvaW50KSBvcmlnLXBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG9y
aWctcG9pbnQgKHBvaW50KSkpKSkpKQorICAgICAgICAod2hlbiB0YXJnZXQtcG9zCisgICAgICAg
ICAgKGdvdG8tY2hhciB0YXJnZXQtcG9zKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJs
ZS1kZWxldGUtY29sdW1uICgpCisgICJEZWxldGUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludC4K
K1BvaW50IGNhbiBiZSBpbiB0aGUgdGFibGUgaGVhZGVyIG9yIGJvZHkuCitJZiBwb2ludCBpcyBu
b3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3du
LXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uKQor
ICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQor
ICAgICAgICAgICAgICAocG9zIChjYXIgYXQtdGFibGUpKQorICAgICAgICAgICAgICAodGFibGUg
KGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUt
bm9kZS1jZWxsIG5pbCBwb3MpKQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFi
bGUtbm9kZS1yb3cgY2VsbCkpCisgICAgICAgICAgICAgIChjb2xzICh0cmVlc2l0LW5vZGUtY2hp
bGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29scyAobGVuZ3RoIGNvbHMpKSkK
KyAgICAobGV0ICgodGFibGUtY29sdW1uIChtYXJrZG93bi10cy0tdGFibGUtY29tcHV0ZS1ub2Rl
LWNvbHVtbiByb3cgY2VsbCkpKQorICAgICAgKHVubGVzcyB0YWJsZS1jb2x1bW4KKyAgICAgICAg
KGVycm9yICJDb3VsZCBub3QgY29tcHV0ZSB0aGUgdGFibGUgY29sdW1uIikpCisgICAgICA7OyBO
T1RFOiBHRk0gdGFibGVzIGFsbG93IG5vbi11bmlmb3JtIHRhYmxlIHJvd3MuICBUaGUgY3VycmVu
dCByb3cKKyAgICAgIDs7IGNvdWxkIGhhdmUgYSBkaWZmZXJpbmcgbnVtYmVyIG9mIGNvbHVtbnMg
ZnJvbSBvdGhlciByb3dzLiAgV2UKKyAgICAgIDs7IHNpbGVudGx5IGRvIG5vdGhpbmcgdG8gYSBy
b3cgdGhhdCBkb2VzIG5vdCBleHRlbmQgdG8gdGhlCisgICAgICA7OyBjb21wdXRlZCBjb2x1bW4u
CisgICAgICA7OworICAgICAgOzsgTk9URTogVGhlIGdyYW1tYXIgYW5ub3lpbmdseSBpZ25vcmVz
IGNlbGwgbGVhZGluZyB3aGl0ZXNwYWNlCisgICAgICA7OyBidXQgZG9lcyBpbmNsdWRlIHRyYWls
aW5nIHdoaXRlc3BhY2Ugc28gY2VsbHMgYXJlIGJvdW5kZWQgYnkKKyAgICAgIDs7IHRoZSBmaXJz
dCBncmFwaCBjaGFyYWN0ZXIgdXAgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIGp1c3QgYmVmb3JlCisg
ICAgICA7OyB0aGUgcGlwZSBzeW1ib2wsIGluY2x1ZGluZyB3aGl0ZXNwYWNlLgorICAgICAgOzsK
KyAgICAgIDs7IFRoZSBncmFtbWFyIGFsc28gY29uc2lkZXJzIHRoZSB0cmFpbGluZyBwaXBlIHN5
bWJvbCB0byBiZSBhCisgICAgICA7OyBwYXJ0IG9mIGl0cyBwcmVjZWRpbmcgY2VsbCBzbyB0aGF0
J3Mgd2hhdCB3ZSBkZWxldGUgd2hlbiB3ZQorICAgICAgOzsgZGVsZXRlIGEgY29sdW1uJ3MgY2Vs
bDsgaS5lLiwgaWYgdGhlcmUgaXMgYSBwaXBlIGJlZm9yZSB0aGUKKyAgICAgIDs7IGZpcnN0IGNv
bHVtbiwgd2UgZGVsZXRlIGl0LgorICAgICAgKGxldCogKChhZGogMCkgOyBBZGp1c3Qgbm9kZSBw
b3NpdGlvbiBvZmZzZXRzIGJ5IGRlbGV0ZWQgdGV4dC4KKyAgICAgICAgICAgICAocm93cyAodHJl
ZXNpdC1ub2RlLWNoaWxkcmVuIHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgKG5yb3dzIChs
ZW5ndGggcm93cykpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAod2l0aG91
dC1yZXN0cmljdGlvbgorICAgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAg
ICAgIDs7IElmIGNlbGwgaXMgbmlsLCBpdCBpcyBiZXlvbmQgdGhlIHRhYmxlLWNvbHVtbiBhbmQg
aXRzCisgICAgICAgICAgICAgIDs7IHJvdyBpcyBpZ25vcmVkLgorICAgICAgICAgICAgICAod2hl
bi1sZXQqICgocm93IChudGggeCByb3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChjZWxsIChudGggdGFibGUtY29sdW1uIGNvbHMpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY2VsbC1iZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBjZWxsKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNlbGwtZW5kICh0cmVlc2l0LW5vZGUtZW5kIGNlbGwpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBZGp1c3QgYmVnIHRvIHRyaW0gdGhlIGdyYW1tYXIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgOzsgdW5hY2NvdW50ZWQtZm9yIGxlYWRpbmcgd2hpdGVzcGFjZS4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZyAoY29uZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA7OyBJZiB0aGlzIGlzIHRoZSBzb2xlIGNvbHVtbiwgZGVsZXRlIGZyb20g
Ym9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxIG5jb2xzIDEpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtYmVnIGFkaikp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWJvbCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDs7IElmIHRoaXMgaXMgdGhlIGZpcnN0IGNvbHVtbiwgZGVs
ZXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGZyb20gdGhlIHBpcGUsIGlm
IHRoZXJlIGlzIG9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgb3RoZXJ3
aXNlIGNlbGwtYmVnLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVxIHRhYmxl
LWNvbHVtbiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHAgKC0g
Y2VsbC1iZWcgYWRqKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
cG9zLWJvbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoc2VhcmNo
LWZvcndhcmQgInwiIHAgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHApKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgSWYgdGhpcyBpcyB0aGUgZmluYWwg
Y29sdW1uLCBkZWxldGUgZnJvbSB0aGUgcHJpb3IgcGlwZSBzeW1ib2wuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgocCAoLSAodHJlZXNpdC1ub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggKDEtIHRh
YmxlLWNvbHVtbikgY29scykpIGFkaikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZ290by1jaGFyIHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp
ZiAoc2VhcmNoLWZvcndhcmQgInwiICgtIGNlbGwtYmVnIGFkaikgdCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IE90
aGVyd2lzZSwgc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOzsgcHJpb3IgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtICh0cmVlc2l0LW5vZGUtZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggKDEtIHRhYmxl
LWNvbHVtbikgY29scykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGop
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEFkanVzdCBlbmQgdG8gdHJpbSB0aGUg
dHJhaWxpbmcgcGlwZSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgY29uc2lk
ZXJlZCBieSB0aGUgZ3JhbW1hciB0byBiZSBwYXJ0IG9mIGl0cworICAgICAgICAgICAgICAgICAg
ICAgICAgICA7OyBwcmVjZWRpbmcgY2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGVu
ZCAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB0aGlzIGlzIHRo
ZSBzb2xlIGNvbHVtbiwgZGVsZXRlIHVudGlsIGVvbC4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKChlcSBuY29scyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGdvdG8tY2hhciAoLSBjZWxsLWJlZyBhZGopKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHBvcy1lb2wpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB0
aGlzIGlzIHRoZSBmaW5hbCBjb2x1bW4sIGRlbGV0ZSB1bnRpbCBlb2wuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgoZXEgdGFibGUtY29sdW1uICgxLSBuY29scykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNlbGwtZW5kIGFkaikpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDs7IE90aGVyd2lzZSwgbG9vayBmb3J3YXJkIGZyb20gY2VsbC1l
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKHdoaWNoIGluY2x1ZGVzIHRo
ZSBjZWxsJ3MgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgd2hp
dGVzcGFjZSkgZm9yIGEgcGlwZSBzeW1ib2wuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIGNl
bGwtZW5kIGFkaikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHJlLXNl
YXJjaC1mb3J3YXJkICJ8Kz8iIChwb3MtZW9sKSB0KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgxLSAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjZWxsLWVuZCkpKSkpCisgICAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVu
ZCkKKyAgICAgICAgICAgICAgICAoc2V0cSBhZGogKCsgYWRqICgtIGVuZCBiZWcpKSkpKSkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdCAoKQorICAiTW92
ZSB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIGl0cyBsZWZ0LgorUG9pbnQgY2FuIGJlIGlu
IHRoZSB0YWJsZSBoZWFkZXIgb3IgYm9keS4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAobWFya2Rvd24tdHMtdGFibGUtbW92ZS1j
b2x1bW4gJ2xlZnQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tcmln
aHQgKCkKKyAgIk1vdmUgdGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byBpdHMgcmlnaHQuCitQ
b2ludCBjYW4gYmUgaW4gdGhlIHRhYmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90
IGF0IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10
cy10YWJsZS1tb3ZlLWNvbHVtbiAncmlnaHQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUt
bW92ZS1jb2x1bW4gKCZvcHRpb25hbCBsZWZ0KQorICAiTW92ZSB0aGUgdGFibGUgY29sdW1uIGF0
IHBvaW50IHJpZ2h0IG9yIGxlZnQuCitJZiBMRUZUIGlzIG5vbi1uaWwgYW5kIGlzIG5vdCBgcmln
aHQnLCBvciB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LAorbW92ZSB0aGUgY29sdW1uIHRvIGl0cyBs
ZWZ0LgorRG8gbm90aGluZyBpZiBhIHJvdyBiZWluZyBtb3ZlZCBpcyBub3Qgd2l0aGluIHRoZSBj
b2x1bW5zIG9mIHRoZSBoZWFkZXIuCitEbyBub3RoaW5nIGlmIG1vdmluZyBsZWZ0IGFuZCB0aGUg
Y3VycmVudCBjb2x1bW4gaXMgdGhlIGZpcnN0IGNvbHVtbiBvZgordGhlIGN1cnJlbnQgcm93Lgor
RG8gbm90aGluZyBpZiBtb3ZpbmcgcmlnaHQgYW5kIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUg
ZmluYWwgY29sdW1uIG9mCit0aGUgY3VycmVudCByb3cuCitQb2ludCBjYW4gYmUgaW4gdGhlIHRh
YmxlIGhlYWRlciBvciBib2R5LgorSWYgcG9pbnQgaXMgbm90IGF0IGEgdGFibGUsIGRvIG5vdGhp
bmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAn
bWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4pCisgIChzZXRxIGxlZnQgKGNvbmQgKChlcSBs
ZWZ0ICdyaWdodCkgbmlsKQorICAgICAgICAgICAgICAgICAgIChsZWZ0IGxlZnQpCisgICAgICAg
ICAgICAgICAgICAgKGN1cnJlbnQtcHJlZml4LWFyZyB0KSkpCisgICh3aGVuLWxldCogKChhdC10
YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgIChwb3Mg
KGNhciBhdC10YWJsZSkpCisgICAgICAgICAgICAgICh0YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAg
ICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duICduYW1lZCkp
CisgICAgICAgICAgICAgIChjZWxsIChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1jZWxsIG5vZGUp
KQorICAgICAgICAgICAgICAocm93IChtYXJrZG93bi10cy0tdGFibGUtbm9kZS1yb3cgbm9kZSkp
CisgICAgICAgICAgICAgIChoZWFkZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlxcYHBpcGVfdGFibGVfaGVhZGVyXFwnIikpCisgICAgICAgICAgICAgIChuaGVhZGVy
cyAobGVuZ3RoICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gaGVhZGVyLXJvdyAnbmFtZWQpKSkKKyAg
ICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkKKyAg
ICAgICAgICAgICAgKG5jb2xzIChsZW5ndGggY29scykpKQorICAgIChsZXQgKCh0YWJsZS1jb2x1
bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUtY29sdW1uIHJvdyBjZWxsKSkpCisg
ICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAoZXJyb3IgIkNvdWxkIG5vdCBjb21w
dXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIChpZiAoPj0gdGFibGUtY29sdW1uIG5oZWFk
ZXJzKQorICAgICAgICAgIChtZXNzYWdlICJSYWdnZWQvdW5ldmVuIGNvbHVtbiBjYW5ub3QgYmUg
bW92ZWQiKQorICAgICAgICA7OyBBIEIgQyBEIC0+IEIgQSBDIEQKKyAgICAgICAgOzsgTW92ZSBB
IGxlZnQ6IGRvIG5vdGhpbmcKKyAgICAgICAgOzsgTW92ZSBEIHJpZ2h0OiBkbyBub3RoaW5nCisg
ICAgICAgIDs7IE1vdmUgY3VycmVudCBjb2x1bW4gbGVmdDoKKyAgICAgICAgOzsgICBzb3VyY2Ug
Y29sdW1uID0gdCAtIDEKKyAgICAgICAgOzsgTW92ZSBjdXJyZW50IGNvbHVtbiByaWdodDoKKyAg
ICAgICAgOzsgICBjbG9uZSB0IHRvIHQrMSBpZiB0aGUgZmluYWwgY29sdW1uLCBvdGhlcndpc2Ug
dCsyCisgICAgICAgIDs7ICAgZGVsZXRlIHQKKyAgICAgICAgKGNvbmQgKChhbmQgbGVmdCAoZXEg
dGFibGUtY29sdW1uIDApKQorICAgICAgICAgICAgICAgKG1lc3NhZ2UgIkxlZnRtb3N0IGNvbHVt
biBjYW5ub3QgYmUgbW92ZWQgbGVmdCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAgICAgICAg
ICAgICgoYW5kIChub3QgbGVmdCkgKGVxIHRhYmxlLWNvbHVtbiAoMS0gbmNvbHMpKSkKKyAgICAg
ICAgICAgICAgIChtZXNzYWdlICJSaWdodG1vc3QgY29sdW1uIGNhbm5vdCBiZSBtb3ZlZCByaWdo
dCIpCisgICAgICAgICAgICAgICBuaWwpCisgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAg
ICAobGV0ICgoc291cmNlLWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgxLSB0YWJsZS1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhYmxlLWNvbHVtbikpCisgICAgICAgICAgICAgICAgICAgICAodGFy
Z2V0LWNvbHVtbiAoaWYgbGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhYmxlLWNvbHVtbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
MSsgdGFibGUtY29sdW1uKSkpKQorICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAg
ICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1uIHNvdXJjZS1j
b2x1bW4pCisgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1
bW4KKyAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0IChsaXN0CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGFyZ2V0LWNvbHVtbikpKQorICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
dGFibGUtLWdvdG8tY29sdW1uIHNvdXJjZS1jb2x1bW4pCisgICAgICAgICAgICAgICAgIChtYXJr
ZG93bi10cy10YWJsZS1kZWxldGUtY29sdW1uKQorICAgICAgICAgICAgICAgICA7OyBFbXB0eSBj
ZWxscyBjYW4gY29uZnVzZSB0aGUgZ3JhbW1hciwgc28gbm8tZXJyb3IgaGVyZS4KKyAgICAgICAg
ICAgICAgICAgKGlmIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy10YWJs
ZS0tZ290by1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UtY29sdW1uICduby1l
cnJvcikKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtdGFibGUtLWdvdG8tY29sdW1u
CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC1jb2x1bW4gJ25vLWVycm9yKSkpKSkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4tbGVmdCAoKQorICAiQWxpZ24g
dGhlIHRhYmxlIGNvbHVtbiBhdCBwb2ludCB0byB0aGUgbGVmdC4KK0RvIHRoZSB3b3JrIHdpdGgg
YG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVtbicsIHdoaWNoIHNlZSBmb3IgbW9yZQorZGV0
YWlscy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWFsaWduLWNvbHVt
biAnbGVmdCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4tY2VudGVy
ICgpCisgICJBbGlnbiB0aGUgdGFibGUgY29sdW1uIGF0IHBvaW50IHRvIHRoZSBjZW50ZXIuCitE
byB0aGUgd29yayB3aXRoIGBtYXJrZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4nLCB3aGljaCBz
ZWUgZm9yIG1vcmUKK2RldGFpbHMuIgorICAoaW50ZXJhY3RpdmUpCisgIChtYXJrZG93bi10cy10
YWJsZS1hbGlnbi1jb2x1bW4gJ2NlbnRlcikpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1h
bGlnbi1jb2x1bW4tcmlnaHQgKCkKKyAgIkFsaWduIHRoZSB0YWJsZSBjb2x1bW4gYXQgcG9pbnQg
dG8gdGhlIHJpZ2h0LgorRG8gdGhlIHdvcmsgd2l0aCBgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24t
Y29sdW1uJywgd2hpY2ggc2VlIGZvciBtb3JlCitkZXRhaWxzLiIKKyAgKGludGVyYWN0aXZlKQor
ICAobWFya2Rvd24tdHMtdGFibGUtYWxpZ24tY29sdW1uICdyaWdodCkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy10YWJsZS1hbGlnbi1jb2x1bW4gKCZvcHRpb25hbCBhbGlnbikKKyAgIkFsdGVyIHRo
ZSB0YWJsZSBjb2x1bW4gYWxpZ25tZW50IGF0IHBvaW50LgorQWx0ZXIgdGhlIGNvbHVtbiBwb2lu
dCBpcyBpbi4KKworTm90ZTogVG8gY29tcHV0ZSB0aGUgY29sdW1uLCBwb2ludCBtdXN0IGJlIHdp
dGhpbiB0aGUgY29sdW1uIGFuZCBjYW5ub3QKK2JlIG9uIHRoZSBsZWFkaW5nIG9yIHRyYWlsaW5n
IHdoaXRlc3BhY2Ugb3Igb24gYSBjb2x1bW4gZGVsaW1pdGVyLgorCitBTElHTiBjYW4gYmUgb25l
IG9mIHRoZSBzeW1ib2xzIGBsZWZ0JywgYGNlbnRlcicsIGByaWdodCcgb3IgbmlsIGZvcgordW5z
cGVjaWZpZWQgb3IgdGhlIGNoYXJhY3RlcnMgbCwgYywgb3Igci4KKworSWYgQUxJR04gaXMgbmls
LCBhc3N1bWUgdW5zcGVjaWZpZWQuICBNYWtlIHRoZSBhbGlnbm1lbnQgc3RyaW5nIGEKK21pbmlt
dW0gb2YgNSBjaGFyYWN0ZXJzIHRvIGFjY29tbW9kYXRlIE1hcmtkb3duIGNvbnZlbnRpb25zLgor
CitJZiBwb2ludCBpcyBub3QgYXQgYSB0YWJsZSwgZG8gbm90aGluZy4iCisgIChpbnRlcmFjdGl2
ZSAiY0FsaWduIGNvbHVtbiBbbF1lZnQgW2NdZW50ZXIgW3JdaWdodCBbdV1uc3BlY2lmaWVkOiIp
CisgIChtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAnbWFya2Rvd24tdHMtdGFibGUtYWxp
Z24tY29sdW1uKQorICAoc2V0cSBhbGlnbiAoaWYgKGNoYXJhY3RlcnAgYWxpZ24pCisgICAgICAg
ICAgICAgICAgICAocGNhc2UgYWxpZ24gKD9sICdsZWZ0KSAoP2MgJ2NlbnRlcikgKD9yICdyaWdo
dCkpCisgICAgICAgICAgICAgICAgYWxpZ24pKQorICAod2hlbi1sZXQqICgoYXQtdGFibGUgKG1h
cmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAgICAgICAgICAgICAocG9zIChjYXIgYXQt
dGFibGUpKQorICAgICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAg
ICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93biAnbmFtZWQpKQorICAgICAg
ICAgICAgICAoY2VsbCAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtY2VsbCBub2RlKSkKKyAgICAg
ICAgICAgICAgKHJvdyAobWFya2Rvd24tdHMtLXRhYmxlLW5vZGUtcm93IGNlbGwpKQorICAgICAg
ICAgICAgICAoYWxpZ25lcnMgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJsZSkpKQor
ICAgIChsZXQgKCh0YWJsZS1jb2x1bW4gKG1hcmtkb3duLXRzLS10YWJsZS1jb21wdXRlLW5vZGUt
Y29sdW1uIHJvdyBjZWxsKSkpCisgICAgICAodW5sZXNzIHRhYmxlLWNvbHVtbgorICAgICAgICAo
ZXJyb3IgIkNvdWxkIG5vdCBjb21wdXRlIHRoZSB0YWJsZSBjb2x1bW4iKSkKKyAgICAgIDs7IE5P
VEU6IEdGTSB0YWJsZXMgYWxsb3cgbm9uLXVuaWZvcm0gdGFibGUgcm93cy4gIFRoZSBjdXJyZW50
IHJvdworICAgICAgOzsgY291bGQgaGF2ZSBhIGRpZmZlcmluZyBudW1iZXIgb2YgY29sdW1ucyBm
cm9tIHRoZSBoZWFkZXIuICBXZQorICAgICAgOzsgc2lsZW50bHkgZG8gbm90aGluZyBpZiB3ZSBj
YW4ndCBmaW5kIGEgbWF0Y2hpbmcgaGVhZGVyIGNvbHVtbi4KKyAgICAgICh3aGVuLWxldCogKChh
bGlnbmVyIChudGggdGFibGUtY29sdW1uIGFsaWduZXJzKSkKKyAgICAgICAgICAgICAgICAgIChi
ZWcgKHBsaXN0LWdldCBhbGlnbmVyIDpiZWcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAocGxp
c3QtZ2V0IGFsaWduZXIgOmVuZCkpCisgICAgICAgICAgICAgICAgICAoc3RyIChidWZmZXItc3Vi
c3RyaW5nLW5vLXByb3BlcnRpZXMgYmVnIGVuZCkpCisgICAgICAgICAgICAgICAgICAoc3RybGVu
IChtYXggNSAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkK
KyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAg
ICAgICAgKGluc2VydCAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciBzdHJsZW4gYWxp
Z24pKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy10YWJsZS1hbGlnbi10YWJsZSAoJm9wdGlv
bmFsIGFsaWduLWNlbGxzKQorICAiQWxpZ24gdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50Lgor
QWRqdXN0IGVhY2ggY29sdW1uJ3Mgd2lkdGggdG8gYWNjb21tb2RhdGUgaXRzIHdpZGVzdCBjb25z
dGl0dWVudCBjZWxsLgorSWYgQUxJR04tQ0VMTFMgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZp
eCBhcmd1bWVudCwgYXBwbHkgdGhlCitkZWxpbWl0ZXIgcm93J3MgYWxpZ25tZW50IHRvIGNlbGwg
Y29udGVudC4gIEFMSUdOLUNFTExTIGlzIG5vbi1uaWwgaWYKK3RoZSB1c2VyIG9wdGlvbiBgbWFy
a2Rvd24tdHMtdGFibGUtYWxpZ24tZmVhdHVyZXMnIGluY2x1ZGVzCitganVzdGlmeS1jZWxscycu
CitBbmNob3IgdGhlIGNvbHVtbnMgdG8gdGhlIGRlbGltaXRlciByb3cuICBJZ25vcmUgcm93cyB0
aGF0IGNvbnRhaW4KK2NvbHVtbnMgYmV5b25kIHRoZSBkZWxpbWl0ZXIgcm93LgorSWYgbm90IGlu
IGEgdGFibGUsIGRvIG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAobWFya2Rvd24t
dHMtLWJhcmYtaWYtbm90LW1vZGUgJ21hcmtkb3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKQorICAo
d2hlbi1sZXQqICgoYXQtdGFibGUgKG1hcmtkb3duLXRzLWF0LXRhYmxlLXAgbmlsIHQpKQorICAg
ICAgICAgICAgICAodGFibGUgKGNkciBhdC10YWJsZSkpCisgICAgICAgICAgICAgIChiZWcgKHRy
ZWVzaXQtbm9kZS1zdGFydCB0YWJsZSkpCisgICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9k
ZS1lbmQgdGFibGUpKQorICAgICAgICAgICAgICAoXyAobWFya2Rvd24tdHMtLXRhYmxlLXRpY2st
c3RhbGUtcCBiZWcpKQorICAgICAgICAgICAgICAocm93cyAodHJlZXNpdC1ub2RlLWNoaWxkcmVu
IHRhYmxlICduYW1lZCkpCisgICAgICAgICAgICAgIChucm93cyAobGVuZ3RoIHJvd3MpKQorICAg
ICAgICAgICAgICAoZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAg
ICAgICAgICAgICAgICAgICAgIHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYHBp
cGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAgICAgICAgICAgICAoYWxpZ25lcnMgKG1h
cmtkb3duLXRzLS10YWJsZS1hbGlnbmVycyB0YWJsZSkpCisgICAgICAgICAgICAgIChjb2xzICh0
cmVlc2l0LW5vZGUtY2hpbGRyZW4gZGVsaW1pdGVyLXJvdyAnbmFtZWQpKQorICAgICAgICAgICAg
ICAobmNvbHMgKGxlbmd0aCBjb2xzKSkKKyAgICAgICAgICAgICAgKGNvbC13aWR0aHMgKG1ha2Ut
aGFzaC10YWJsZSA6c2l6ZSBuY29scyA6dGVzdCAnZXF1YWwpKQorICAgICAgICAgICAgICAoY2Vs
bC10ZXh0IChtYWtlLWhhc2gtdGFibGUgOnNpemUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0ICdlcXVh
bCkpKQorICAgIChzZXRxIGFsaWduLWNlbGxzIChvciBhbGlnbi1jZWxscworICAgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50LXByZWZpeC1hcmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1lbXEgJ2p1c3RpZnktY2VsbHMgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tZmVhdHVyZXMp
KSkKKyAgICAod2l0aG91dC1yZXN0cmljdGlvbgorICAgICAgOzsgQ29sbGVjdCBjZWxsIHRleHQg
YW5kIGNvbXB1dGUgbWF4IGNvbHVtbiB3aWR0aHMuCisgICAgICA7OyBEbyBub3QgdXNlIHRoZSBk
ZWxpbWl0ZXIgcm93IGZvciB3aWR0aCBjb21wdXRhdGlvbi4KKyAgICAgIChkb3RpbWVzICh4IG5y
b3dzKQorICAgICAgICAobGV0KiAoKHJvdyAobnRoIHggcm93cykpCisgICAgICAgICAgICAgICAo
Y2VsbHMgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiByb3cgJ25hbWVkKSkpCisgICAgICAgICAgKGRv
dGltZXMgKHkgbmNvbHMpCisgICAgICAgICAgICA7OyBTa2lwIG5pbCBjZWxscy0tdGhlIHBhcnNl
ciBnb3QgY29uZnVzZWQuCisgICAgICAgICAgICAod2hlbi1sZXQqICgoY2VsbCAobnRoIHkgY2Vs
bHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHRleHQgKHN0cmluZy10cmltLXJpZ2h0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGNlbGwgJ25v
LXByb3BlcnR5KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAodyAobGVuZ3RoIHRleHQpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgKHcwIChvciAoZ2V0aGFzaCB5IGNvbC13aWR0aHMpIDAp
KSkKKyAgICAgICAgICAgICAgOzsgRWxpZGUgZGVsaW1pdGVyIHdpZHRocy4KKyAgICAgICAgICAg
ICAgKHVubGVzcyAoZXEgeCAxKQorICAgICAgICAgICAgICAgICh3aGVuICg+IHcgdzApCisgICAg
ICAgICAgICAgICAgICAocHV0aGFzaCB5IHcgY29sLXdpZHRocykpKQorICAgICAgICAgICAgICAo
cHV0aGFzaCAoY29ucyB4IHkpIHRleHQgY2VsbC10ZXh0KSkpKSkKKworICAgICAgKGxldCAoKHNv
dXJjZS1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAgICh3aXRoLXRlbXAtYnVmZmVy
CisgICAgICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgICAgICAoZG90aW1lcyAoeSBu
Y29scykKKyAgICAgICAgICAgICAgKGxldCogKCh3aWR0aCAob3IgKGdldGhhc2ggeSBjb2wtd2lk
dGhzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy10YWJsZS1k
ZWZhdWx0LWNvbHVtbi13aWR0aCkpCisgICAgICAgICAgICAgICAgICAgICAoYWxpZ24gKG9yIChw
bGlzdC1nZXQgKG50aCB5IGFsaWduZXJzKSA6YWxpZ24pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd1bnNwZWNpZmllZCkpCisgICAgICAgICAgICAgICAgICAgICA7OyBDb25mdXNl
ZCBjZWxscyBoYXZlIG5pbCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgKHRleHQgKG9yIChn
ZXRoYXNoIChjb25zIHggeSkgY2VsbC10ZXh0KSAiIikpCisgICAgICAgICAgICAgICAgICAgICAo
dGV4dDAgKG1hcmtkb3duLXRzLS10YWJsZS1hbGlnbi1jZWxsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHQgd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGFs
aWduLWNlbGxzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpKSkKKyAgICAgICAgICAgICAg
ICAoY29uZAorICAgICAgICAgICAgICAgICA7OyBIZWFkZXIgcm93LgorICAgICAgICAgICAgICAg
ICAoKGVxIHggMCkKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkKKyAgICAg
ICAgICAgICAgICAgOzsgRGVsaW1pdGVyIHJvdy4gIFVzZSB1bmFsaWduZWQgdGV4dC4KKyAgICAg
ICAgICAgICAgICAgKChlcSB4IDEpCisgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJ8IgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLXRhYmxlLW1ha2UtYWxpZ25lciB3
aWR0aCBhbGlnbikpKQorICAgICAgICAgICAgICAgICA7OyBCb2R5IHJvdy4KKyAgICAgICAgICAg
ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgInwiIHRleHQwKSkpKSkKKyAgICAg
ICAgICAgIChpbnNlcnQgInwiICJcbiIpKQorICAgICAgICAgIChsZXQgKCh0ZW1wLWJ1ZmZlciAo
Y3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHNvdXJj
ZS1idWZmZXIKKyAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnaW9uLWNvbnRlbnRzIGJlZyBlbmQg
dGVtcC1idWZmZXIpKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLXRhYmxlLXRpY2stdXBkYXRlIGJl
ZykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtdHJhbnNwb3NlLXRhYmxlICgpCisgICJU
cmFuc3Bvc2UgdGhlIHJvd3MgYW5kIGNvbHVtbnMgb2YgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBv
aW50LgorVXNlIHVuc3BlY2lmaWVkIGNvbHVtbiBhbGlnbm1lbnQgaW4gdGhlIHRyYW5zcG9zZWQg
dGFibGUuCitJZiB0YWJsZSdzIHJvd3MgYXJlIG5vdCB1bmlmb3JtIHdpdGggdGhvc2Ugb24gdGhl
IGRlbGltaXRlciByb3csIHNpZ25hbAorYW4gZXJyb3IuCitJZiBub3QgaW4gYSB0YWJsZSwgZG8g
bm90aGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1t
b2RlICdtYXJrZG93bi10cy10YWJsZS10cmFuc3Bvc2UtdGFibGUpCisgICh3aGVuLWxldCogKChh
dC10YWJsZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICh0
YWJsZSAoY2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKGJlZyAodHJlZXNpdC1ub2RlLXN0
YXJ0IHRhYmxlKSkKKyAgICAgICAgICAgICAgKGVuZCAodHJlZXNpdC1ub2RlLWVuZCB0YWJsZSkp
CisgICAgICAgICAgICAgIChyb3dzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gdGFibGUgJ25hbWVk
KSkKKyAgICAgICAgICAgICAgKG5yb3dzIChsZW5ndGggcm93cykpCisgICAgICAgICAgICAgIChk
ZWxpbWl0ZXItcm93ICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgcGlwZV90YWJsZV9kZWxp
bWl0ZXJfcm93XFwnIikpCisgICAgICAgICAgICAgIChhbGlnbmVycyAobWFya2Rvd24tdHMtLXRh
YmxlLWFsaWduZXJzIHRhYmxlKSkKKyAgICAgICAgICAgICAgKGNvbHMgKHRyZWVzaXQtbm9kZS1j
aGlsZHJlbiBkZWxpbWl0ZXItcm93ICduYW1lZCkpCisgICAgICAgICAgICAgIChuY29scyAobGVu
Z3RoIGNvbHMpKQorICAgICAgICAgICAgICAoY2VsbC10ZXh0IChtYWtlLWhhc2gtdGFibGUgOnNp
emUgKCogbnJvd3MgbmNvbHMpIDp0ZXN0ICdlcXVhbCkpKQorICAgICh3aXRob3V0LXJlc3RyaWN0
aW9uCisgICAgICA7OyBDb2xsZWN0IGNlbGwgdGV4dCBhbmQgaW52ZXJ0IGNvb3JkaW5hdGVzLgor
ICAgICAgKGRvdGltZXMgKHggbnJvd3MpCisgICAgICAgIChsZXQqICgocm93IChudGggeCByb3dz
KSkKKyAgICAgICAgICAgICAgIChjZWxscyAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHJvdyAnbmFt
ZWQpKSkKKyAgICAgICAgICAoZG90aW1lcyAoeSBuY29scykKKyAgICAgICAgICAgIDs7IFNraXAg
bmlsIGNlbGxzLS10aGUgcGFyc2VyIGdvdCBjb25mdXNlZC4KKyAgICAgICAgICAgICh3aGVuLWxl
dCogKChjZWxsIChudGggeSBjZWxscykpCisgICAgICAgICAgICAgICAgICAgICAgICAodGV4dCAo
c3RyaW5nLXRyaW0tcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLXRleHQgY2VsbCAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgIChwdXRoYXNo
IChjb25zIHkgeCkgdGV4dCBjZWxsLXRleHQpKSkpKQorCisgICAgICAobGV0ICgoc291cmNlLWJ1
ZmZlciAoY3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAg
ICAgICAoZG90aW1lcyAoeCBuY29scykKKyAgICAgICAgICAgIDs7IFN5bnRoZXNpemUgYSBkZWxp
bWl0ZXIgcm93LgorICAgICAgICAgICAgKHdoZW4gKGVxIHggMSkKKyAgICAgICAgICAgICAgKGRv
dGltZXMgKF95ICgxLSBucm93cykpCisgICAgICAgICAgICAgICAgKGluc2VydCAifCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tdGFibGUtbWFrZS1hbGlnbmVyCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1heCA1IG1hcmtkb3duLXRzLXRhYmxlLWRlZmF1bHQtY29s
dW1uLXdpZHRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNwZWNpZmllZCkpKQorICAg
ICAgICAgICAgICAoaW5zZXJ0ICJ8IiAiXG4iKSkKKyAgICAgICAgICAgIChkb3RpbWVzICh5IG5y
b3dzKQorICAgICAgICAgICAgICA7OyBTa2lwIHRoZSBvcmlnaW5hbCBkZWxpbWl0ZXIgcm93Lgor
ICAgICAgICAgICAgICAodW5sZXNzIChlcSB5IDEpCisgICAgICAgICAgICAgICAgOzsgQ29uZnVz
ZWQgY2VsbHMgaGF2ZSBuaWwgdGV4dC4KKyAgICAgICAgICAgICAgICAobGV0ICgodGV4dCAob3Ig
KGdldGhhc2ggKGNvbnMgeCB5KSBjZWxsLXRleHQpICIiKSkpCisgICAgICAgICAgICAgICAgICAo
aW5zZXJ0ICJ8IiB0ZXh0KSkpKQorICAgICAgICAgICAgKGluc2VydCAifCIgIlxuIikpCisgICAg
ICAgICAgKGxldCAoKHRlbXAtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpKQorICAgICAgICAgICAg
KHdpdGgtY3VycmVudC1idWZmZXIgc291cmNlLWJ1ZmZlcgorICAgICAgICAgICAgICAocmVwbGFj
ZS1yZWdpb24tY29udGVudHMgYmVnIGVuZCB0ZW1wLWJ1ZmZlcikpKSkpKQorICAgICh3aGVuIChv
ciAoZXEgbWFya2Rvd24tdHMtdGFibGUtYXV0by1hbGlnbiB0KQorICAgICAgICAgICAgICAobWVt
cSAndHJhbnNwb3NlIG1hcmtkb3duLXRzLXRhYmxlLWF1dG8tYWxpZ24pKQorICAgICAgKG1hcmtk
b3duLXRzLXRhYmxlLWFsaWduLXRhYmxlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUt
Y29udmVydC1jc3YtcmVnaW9uICggYmVnIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UpCisgICJDb252ZXJ0IHRoZSBj
b21tYS1zZXBhcmF0ZWQgcmVnaW9uIEJFRyB0byBFTkQgdG8gYSBNYXJrZG93biB0YWJsZS4KK0lm
IEhFQURFUi1MSU5FIGlzIG5vbi1uaWwsIHVzZSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgcmVnaW9u
IGFzIHRoZSB0YWJsZQorY29sdW1uIGhlYWRlci4gIElmIG5pbCwgaW5mZXIgdGhlIG51bWJlciBv
ZiBjb2x1bW5zIGFuZCBzeW50aGVzaXplCitjb2x1bW4gbmFtZXMgZnJvbSB0aGUgZmlyc3QgbGlu
ZS4KKworTm90ZTogQm9keSBjb2x1bW5zIGJleW9uZCB0aGUgcHJvdmlkZWQgb3IgaW5mZXJyZWQg
bnVtYmVyIG9mIGNvbHVtbnMgYXJlCitkcm9wcGVkLgorCitJZiBSRVBMQUNFIGlzIG5vbi1uaWws
IG92ZXJ3cml0ZSB0aGUgcmVnaW9uIEJFRyBFTkQgd2l0aCB0aGUgTWFya2Rvd24KK3RhYmxlLCBv
dGhlcndpc2UgaW5zZXJ0IHRoZSB0YWJsZSBhZnRlciBFTkQuCisKK1dpdGggYSBzaW5nbGUgcHJl
Zml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24tbmlsLgorV2l0aCBhIGRvdWJsZSBwcmVm
aXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4KK1dpdGggYSB0cmlwbGUgcHJlZml4IGFy
Z3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGludGVyYWN0aXZlICJSIikKKyAgKG1hcmtk
b3duLXRzLXRhYmxlLWNvbnZlcnQtcmVnaW9uIGJlZyBlbmQgaGVhZGVyLWxpbmUgcmVwbGFjZSAn
Y3N2KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lvbiAoIGJl
ZyBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0
aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFk
ZXItbGluZSByZXBsYWNlKQorICAiQ29udmVydCB0aGUgdGFiLXNlcGFyYXRlZCByZWdpb24gQkVH
IHRvIEVORCB0byBhIE1hcmtkb3duIHRhYmxlLgorSWYgSEVBREVSLUxJTkUgaXMgbm9uLW5pbCwg
dXNlIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSByZWdpb24gYXMgdGhlIHRhYmxlCitjb2x1bW4gaGVh
ZGVyLiAgSWYgbmlsLCBpbmZlciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHN5bnRoZXNpemUK
K2NvbHVtbiBuYW1lcyBmcm9tIHRoZSBmaXJzdCBsaW5lLgorCitOb3RlOiBCb2R5IGNvbHVtbnMg
YmV5b25kIHRoZSBwcm92aWRlZCBvciBpbmZlcnJlZCBudW1iZXIgb2YgY29sdW1ucyBhcmUKK2Ry
b3BwZWQuCisKK0lmIFJFUExBQ0UgaXMgbm9uLW5pbCwgb3ZlcndyaXRlIHRoZSByZWdpb24gQkVH
IEVORCB3aXRoIHRoZSBNYXJrZG93bgordGFibGUsIG90aGVyd2lzZSBpbnNlcnQgdGhlIHRhYmxl
IGFmdGVyIEVORC4KKworV2l0aCBhIHNpbmdsZSBwcmVmaXggYXJndW1lbnQsIEhFQURFUi1MSU5F
IGlzIG5vbi1uaWwuCitXaXRoIGEgZG91YmxlIHByZWZpeCBhcmd1bWVudCwgUkVQTEFDRSBpcyBu
b24tbmlsLgorV2l0aCBhIHRyaXBsZSBwcmVmaXggYXJndW1lbnQsIGJvdGggYXJlIG5vbi1uaWwu
IgorICAoaW50ZXJhY3RpdmUgIlIiKQorICAobWFya2Rvd24tdHMtdGFibGUtY29udmVydC1yZWdp
b24gYmVnIGVuZCBoZWFkZXItbGluZSByZXBsYWNlICd0c3YpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtdGFibGUtY29udmVydC1yZWdpb24gKCBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRlci1saW5lIHJlcGxhY2UgZm9ybWF0KQorICAiQ29udmVydCB0
aGUgY29tbWEtc2VwYXJhdGVkIHJlZ2lvbiBCRUcgdG8gRU5EIHRvIGEgTWFya2Rvd24gdGFibGUu
CitJZiBIRUFERVItTElORSBpcyBub24tbmlsLCB1c2UgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHJl
Z2lvbiBhcyB0aGUgdGFibGUKK2NvbHVtbiBoZWFkZXIuICBJZiBuaWwsIGluZmVyIHRoZSBudW1i
ZXIgb2YgY29sdW1ucyBhbmQgc3ludGhlc2l6ZQorY29sdW1uIG5hbWVzIGZyb20gdGhlIGZpcnN0
IGxpbmUuCisKK05vdGU6IEJvZHkgY29sdW1ucyBiZXlvbmQgdGhlIHByb3ZpZGVkIG9yIGluZmVy
cmVkIG51bWJlciBvZiBjb2x1bW5zIGFyZQorZHJvcHBlZC4KKworSWYgUkVQTEFDRSBpcyBub24t
bmlsLCBvdmVyd3JpdGUgdGhlIHJlZ2lvbiBCRUcgRU5EIHdpdGggdGhlIE1hcmtkb3duCit0YWJs
ZSwgb3RoZXJ3aXNlIGluc2VydCB0aGUgdGFibGUgYWZ0ZXIgRU5ELgorCitGT1JNQVQgaXMgb25l
IG9mIHRoZSBzeW1ib2xzIGBjc3YnIGZvciBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzLCBvciBgdHN2
JworZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzLiAgSWYgYW55IG90aGVyIHZhbHVlLCB1c2UgYGNz
dicuCisKK1dpdGggYSBzaW5nbGUgcHJlZml4IGFyZ3VtZW50LCBIRUFERVItTElORSBpcyBub24t
bmlsLgorV2l0aCBhIGRvdWJsZSBwcmVmaXggYXJndW1lbnQsIFJFUExBQ0UgaXMgbm9uLW5pbC4K
K1dpdGggYSB0cmlwbGUgcHJlZml4IGFyZ3VtZW50LCBib3RoIGFyZSBub24tbmlsLiIKKyAgKGlu
dGVyYWN0aXZlICJSIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93
bi10cy10YWJsZS1jb252ZXJ0LXJlZ2lvbikKKworICAoY29uZCAoKGVxdWFsIGN1cnJlbnQtcHJl
Zml4LWFyZyAnKDQpKQorICAgICAgICAgKHNldHEgaGVhZGVyLWxpbmUgdCkpCisgICAgICAgICgo
ZXF1YWwgY3VycmVudC1wcmVmaXgtYXJnICcoMTYpKQorICAgICAgICAgKHNldHEgcmVwbGFjZSB0
KSkKKyAgICAgICAgKChlcXVhbCBjdXJyZW50LXByZWZpeC1hcmcgJyg2NCkpCisgICAgICAgICAo
c2V0cSBoZWFkZXItbGluZSB0CisgICAgICAgICAgICAgICByZXBsYWNlIHQpKSkKKyAgKGxldCAo
cm93cykKKyAgICAoc2F2ZS1yZXN0cmljdGlvbgorICAgICAgKG5hcnJvdy10by1yZWdpb24gYmVn
IGVuZCkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAod2hpbGUgKDwgKHBv
aW50KSAocG9pbnQtbWF4KSkKKyAgICAgICAgKHBjYXNlIGZvcm1hdAorICAgICAgICAgICgndHN2
CisgICAgICAgICAgICAgKHB1c2gKKyAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZworICAgICAg
ICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9s
KSkgIlx0IikKKyAgICAgICAgICAgICAgcm93cykpCisgICAgICAgICAgIChfCisgICAgICAgICAg
ICAobGV0IChyb3cpCisgICAgICAgICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQKKyAg
ICAgICAgICAgICAgICAgICAgICAiXCJcXCg/OlteXCJdXFx8XCJcIlxcKSpcIlxcfFteLF0rXFx8
XCJcIiIKKyAgICAgICAgICAgICAgICAgICAgICAocG9zLWVvbCkgdCkKKyAgICAgICAgICAgICAg
ICAocHVzaAorICAgICAgICAgICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAg
ICAgICAgICAgICAgICAiXCJcIiIgIlwiIgorICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVn
ZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICJcXGBcIlxcKFwuKlxcKVwiXFwnIgor
ICAgICAgICAgICAgICAgICAgICJcXDEiCisgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZy1u
by1wcm9wZXJ0aWVzIChtYXRjaC1zdHJpbmcgMCkpKSkKKyAgICAgICAgICAgICAgICAgcm93KSkK
KyAgICAgICAgICAgICAgKHB1c2ggKG5yZXZlcnNlIHJvdykgcm93cykpKSkKKyAgICAgICAgKGZv
cndhcmQtbGluZSAxKSkKKyAgICAgICAgKHNldHEgcm93cyAobnJldmVyc2Ugcm93cykpCisgICAg
ICAgIChjb25kIChyZXBsYWNlIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpKQorICAgICAgICAgICAg
ICAodCAoZ290by1jaGFyIGVuZCkpKQorICAgICAgICAoaWYgaGVhZGVyLWxpbmUKKyAgICAgICAg
ICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKDEtIChsZW5ndGggcm93cykpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNhciBy
b3dzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciBy
b3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIHJv
d3MpKQorICAgICAgICAgIChtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgKGxlbmd0aCBy
b3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAo
Y2FyIHJvd3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmls
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZS1jc3YgKCZvcHRpb25hbCBkaXNw
bGF5KQorICAiRXhwb3J0IHRoZSBNYXJrZG93biB0YWJsZSBhdCBwb2ludCB0byBjb21tYS1zZXBh
cmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVm
aXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9ydGluZy4K
K0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZl
ICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICdjc3YpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlLXRzdiAoJm9wdGlvbmFsIGRp
c3BsYXkpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRvIHRhYi1zZXBh
cmF0ZWQgaW4gYSBidWZmZXIuCitJZiBESVNQTEFZIGlzIG5vbi1uaWwsIG9yIHdpdGggYSBwcmVm
aXggYXJndW1lbnQsIGRpc3BsYXkgdGhlIGV4cG9ydAorYnVmZmVyIGFmdGVyIGV4cG9ydGluZy4K
K0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZl
ICJQIikKKyAgKG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC10YWJsZSBkaXNwbGF5ICd0c3YpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxlICgmb3B0aW9uYWwgZGlzcGxh
eSBmb3JtYXQpCisgICJFeHBvcnQgdGhlIE1hcmtkb3duIHRhYmxlIGF0IHBvaW50IHRvIENTViBp
biBhIGJ1ZmZlci4KK0lmIERJU1BMQVkgaXMgbm9uLW5pbCwgb3Igd2l0aCBhIHByZWZpeCBhcmd1
bWVudCwgZGlzcGxheSB0aGUgZXhwb3J0CitidWZmZXIgYWZ0ZXIgZXhwb3J0aW5nLgorRk9STUFU
IGlzIG9uZSBvZiB0aGUgc3ltYm9scyBgY3N2JyBmb3IgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBh
a2EgQ1NWLAorb3IgYHRzdicgZm9yIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGFrYSBUU1YuICBJZiBh
bnkgb3RoZXIgdmFsdWUsIHVzZQorYGNzdicuICBJZiBUU1YsIHJlcGxhY2UgYW55IHRhYnMgd2l0
aGluIGEgZmllbGQgd2l0aCBhIHNwYWNlLgorRG8gbm90IGV4cG9ydCB0aGUgdGFibGUncyBoZWFk
ZXIgZGVsaW1pdGVyIHJvdy4KK0lmIHBvaW50IGlzIG5vdCBhdCBhIHRhYmxlLCBkbyBub3RoaW5n
LiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKG1hcmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2Rl
ICdtYXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUpCisgICh3aGVuLWxldCogKChhdC10YWJs
ZSAobWFya2Rvd24tdHMtYXQtdGFibGUtcCBuaWwgdCkpCisgICAgICAgICAgICAgICh0YWJsZSAo
Y2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgKHJvd3MgKHRyZWVzaXQtbm9kZS1jaGlsZHJl
biB0YWJsZSAnbmFtZWQpKQorICAgICAgICAgICAgICAoaGVhZGVyICh0cmVlc2l0LXNlYXJjaC1z
dWJ0cmVlIHRhYmxlICJcXGBwaXBlX3RhYmxlX2hlYWRlclxcJyIpKQorICAgICAgICAgICAgICAo
ZGVsaW1pdGVyLXJvdyAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGFibGUgIlxcYHBpcGVfdGFibGVfZGVsaW1pdGVyX3Jvd1xcJyIpKQorICAg
ICAgICAgICAgICAoZXhwb3J0LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLWV4cG9ydC1idWZmZXIpKSkKKyAg
ICAod2l0aC1jdXJyZW50LWJ1ZmZlciBleHBvcnQtYnVmZmVyCisgICAgICAoc3BlY2lhbC1tb2Rl
KQorICAgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQorICAgICAgICAod2lkZW4pCisg
ICAgICAgIChlcmFzZS1idWZmZXIpCisgICAgICAgIChkb2xpc3QgKHJvdyByb3dzKQorICAgICAg
ICAgICh1bmxlc3MgKGVxdWFsIHJvdyBkZWxpbWl0ZXItcm93KQorICAgICAgICAgICAgKGxldCog
KChlbHRzICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcm93ICduYW1lZCkpCisgICAgICAgICAgICAg
ICAgICAgKGxlbiAobGVuZ3RoIGVsdHMpKSkKKyAgICAgICAgICAgICAgKGRvdGltZXMgKHggbGVu
KQorICAgICAgICAgICAgICAgIChsZXQgKChzIChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRl
eHQgKG50aCB4IGVsdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnbm8tcHJvcGVydHkpKSkpCisgICAgICAgICAgICAgICAgICAocGNh
c2UgZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICgndHN2CisgICAgICAgICAgICAgICAgICAg
ICAoaW5zZXJ0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlx0IiAiXHMiIHMpKQorICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKDwgeCAoMS0gbGVuKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgKGluc2VydCAiXHQiKSkpCisgICAgICAgICAgICAgICAgICAgIChfCisgICAgICAgICAgICAg
ICAgICAgICAoaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gg
IltcIixdIiBzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcIiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdpZGVudGl0eSAoc3BsaXQtc3RyaW5nIHMgIlwiIikgIlwiXCIi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBzKSkKKyAgICAgICAgICAgICAgICAgICAgICh3aGVuICg8IHggKDEtIGxlbikp
CisgICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIiwiKSkpKSkpCisgICAgICAgICAgICAg
IChpbnNlcnQgIlxuIikpKSkKKyAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKQorICAg
ICh3aGVuIGRpc3BsYXkKKyAgICAgIChkaXNwbGF5LWJ1ZmZlciBleHBvcnQtYnVmZmVyKSkpKQor
Cis7OzsgSGVscGVyczoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1w
IChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9s
ZGVkIHJlZ2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEgKG92KSAoZXEgKG92ZXJsYXktZ2V0IG92
ICdpbnZpc2libGUpICdvdXRsaW5lKSkKKyAgICAgICAgICAgKG92ZXJsYXlzLWF0IHBvcykpKQog
CiAoZGVmdW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzICgpCiAgICJSZXR1cm4gcmFuZ2Ug
c2V0dGluZ3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0gICh0cmVlc2l0LXJhbmdlLXJ1bGVz
Ci0gICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQotICAgOmhvc3QgJ21hcmtkb3duCi0gICA6cmFu
Z2UtZm4gIyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4KLSAgICcoKGlubGluZSkg
QG1hcmtkb3duLWlubGluZSkKLQotICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvbnZlcnQtY29k
ZS1ibG9jay1sYW5ndWFnZQotICAgOmhvc3QgJ21hcmtkb3duCi0gICA6bG9jYWwgdAotICAgJygo
ZmVuY2VkX2NvZGVfYmxvY2sgKGluZm9fc3RyaW5nIChsYW5ndWFnZSkgQGxhbmd1YWdlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVudCkgQGNvbnRlbnQpKSkpCisg
IChhcHBseQorICAgIyd0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICBgKDplbWJlZCBtYXJrZG93bi1p
bmxpbmUKKyAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgKChpbmxpbmUpIEBtYXJrZG93bi1pbmxp
bmUpCisgICAgICxAKHdoZW4gbWFya2Rvd24tdHMtZm9udGlmeS1jb2RlLWJsb2Nrcy1uYXRpdmVs
eQorICAgICAgICAgJyg6ZW1iZWQgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UK
KyAgICAgICAgICAgOmhvc3QgbWFya2Rvd24KKyAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAg
ICAgKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbGFuZ3VhZ2Up
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGVfZmVuY2VfY29udGVudCkgQGNv
bnRlbnQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlz
ICgpCisgICJSZW1vdmUgYWxsIGlubGluZSBpbWFnZSBvdmVybGF5cyBmcm9tIHRoZSBjdXJyZW50
IGJ1ZmZlci4iCisgIChkb2xpc3QgKG92IChvdmVybGF5cy1pbiAocG9pbnQtbWluKSAocG9pbnQt
bWF4KSkpCisgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10cy1pbWFnZSkKKyAg
ICAgIChkZWxldGUtb3ZlcmxheSBvdikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5l
LXZpZXctY2hhbmdlICgpCisgICJVcGRhdGUgaW1hZ2Ugb3ZlcmxheXMgYWZ0ZXIgb3V0bGluZSBm
b2xkL3VuZm9sZC4KK1JlbW92ZXMgaW1hZ2Ugb3ZlcmxheXMgaW4gZm9sZGVkIHJlZ2lvbnMgYW5k
IHRyaWdnZXJzCityZWZvbnRpZmljYXRpb24gc28gdGhhdCBpbWFnZXMgaW4gdW5mb2xkZWQgcmVn
aW9ucyBhcmUgcmVjcmVhdGVkLiIKKyAgKHdoZW4gbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcwor
ICAgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQorICAgIChmb250LWxvY2st
Zmx1c2gpKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJrdXAgKHZhbHVlKQog
ICAiU2V0IGhpZGluZyBvZiBNYXJrZG93biBtYXJrdXAgZGVsaW1pdGVycyBpbiB0aGUgY3VycmVu
dCBidWZmZXIuCkBAIC0zNDgsNiArNDU5Niw4IEBAIG1hcmtkb3duLXRzLS1zZXQtaGlkZS1tYXJr
dXAKICAgKGlmIHZhbHVlCiAgICAgICAoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVjICdtYXJrZG93
bi10cy0tbWFya3VwKQogICAgIChyZW1vdmUtZnJvbS1pbnZpc2liaWxpdHktc3BlYyAnbWFya2Rv
d24tdHMtLW1hcmt1cCkpCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAo
bWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykpCiAgIChmb250LWxvY2stZmx1c2gp
KQogCiAoZGVmdW4gbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwICgpCkBAIC0zNTYsMTIy
ICs0NjA2LDcxOSBAQCBtYXJrZG93bi10cy10b2dnbGUtaGlkZS1tYXJrdXAKICAgKHNldHEgbWFy
a2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCiAgICht
YXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKSkKIAor
KGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdlcyAodmFsdWUpCisgICJTZXQgZGlz
cGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4KK1ZBTFVFIG5vbi1u
aWwgZGlzcGxheXMgaW1hZ2VzLCBuaWwgcmVtb3ZlcyB0aGVtLiIKKyAgKGlmIHZhbHVlCisgICAg
ICAodHJlZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1cmVzICcoaW1hZ2UtcHJldmlldykp
CisgICAgKHRyZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyBuaWwgJyhpbWFnZS1w
cmV2aWV3KSkpCisgIChtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQorICAoZm9u
dC1sb2NrLWZsdXNoKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1hZ2Vz
ICgpCisgICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1
ZmZlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgbWFya2Rvd24tdHMtaW5saW5lLWltYWdl
cyAobm90IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpKQorICAobWFya2Rvd24tdHMtLXNldC1p
bmxpbmUtaW1hZ2VzIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpCisgIChtZXNzYWdlICJJbmxp
bmUgaW1hZ2VzICVzIiAoaWYgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJlbmFibGVkIiAiZGlzYWJsZWQiKSkpCisKKzs7OyBFbXBo
YXNpczoKKworKGRlZnZhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdAorICAnKCg/YiAuICIq
KiIpCisgICAgKD9CIC4gIl9fIikKKyAgICAoP2kgLiAiKiIpCisgICAgKD9JIC4gIl8iKQorICAg
ICg/cyAuICJ+fiIpCisgICAgKD9jIC4gImAiKQorICAgICg/YSAuICIqKioiKSkKKyAgIkFsaXN0
IG9mIGVtcGhhc2lzIG1hcmtlcnMgZm9yIGBtYXJrZG93bi10cy1lbXBoYXNpemUnLgorRWFjaCBl
bnRyeSBpcyAoS0VZIC4gTUFSS0VSKSB3aGVyZSBLRVkgaXMgYSBjaGFyYWN0ZXIgKG5vdCBhIHN0
cmluZykgYW5kCitNQVJLRVIgaXMgdGhlIE1hcmtkb3duIGVtcGhhc2l6ZWQgdGV4dCBwcmVmaXgv
c3VmZml4LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCAo
KQorICAiUmV0dXJuIHRoZSBlbXBoYXNpcyBub2RlIGF0IHBvaW50LCBvciBuaWwuCitGaW5kcyB0
aGUgaW5uZXJtb3N0IGBlbXBoYXNpcycsIGBzdHJvbmdfZW1waGFzaXMnLAorYHN0cmlrZXRocm91
Z2gnLCBvciBgY29kZV9zcGFuJyBub2RlLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRyZWVzaXQt
bm9kZS1hdCAocG9pbnQpICdtYXJrZG93bi1pbmxpbmUpKSkKKyAgICAodHJlZXNpdC1wYXJlbnQt
dW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgKG1lbWJlciAodHJlZXNp
dC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgJygiZW1waGFzaXMiICJzdHJvbmdf
ZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giICJjb2RlX3Nw
YW4iKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMgKCkKKyAgIlJl
bW92ZSBlbXBoYXNpcyBhcm91bmQgcG9pbnQgb3IgcmVnaW9uLgorV2l0aCBhbiBhY3RpdmUgcmVn
aW9uLCBzdHJpcCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG1hcmtlcnMgZnJvbQordGhlIHNlbGVj
dGVkIHRleHQuICBXaXRob3V0IGEgcmVnaW9uLCBmaW5kIHRoZSBlbXBoYXNpcyBub2RlIGF0Citw
b2ludCB1c2luZyB0cmVlLXNpdHRlciBhbmQgcmVtb3ZlIGl0cyBtYXJrZXJzLiIKKyAgKGludGVy
YWN0aXZlKQorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQqICgoYmVnIChyZWdpb24t
YmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkKKyAgICAgICAgICAg
ICAodGV4dCAoYnVmZmVyLXN1YnN0cmluZyBiZWcgZW5kKSkKKyAgICAgICAgICAgICAoc3RyaXBw
ZWQgbmlsKSkKKyAgICAgICAgKGNsLWxvb3AgZm9yIChfa2V5IC4gbSkgaW4gKHNvcnQgKGNvcHkt
c2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtk
b3duLXRzLWVtcGhhc2lzLWFsaXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKD4gKGxlbmd0aCAoY2RyIGEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsZW5ndGggKGNkciBiKSkpKSkKKyAgICAgICAgICAgICAgICAg
Zm9yIHJlID0gKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIG0pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlxcKFxcKD86LlxcfFxuXFwpKlxcKSIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAocmVnZXhwLXF1b3RlIG0pICJcXCciKQorICAgICAgICAgICAg
ICAgICB3aGVuIChzdHJpbmctbWF0Y2ggcmUgdGV4dCkKKyAgICAgICAgICAgICAgICAgZG8gKHNl
dHEgc3RyaXBwZWQgKG1hdGNoLXN0cmluZyAxIHRleHQpKQorICAgICAgICAgICAgICAgICBhbmQg
cmV0dXJuIG5pbCkKKyAgICAgICAgKHdoZW4gc3RyaXBwZWQKKyAgICAgICAgICAoZGVsZXRlLXJl
Z2lvbiBiZWcgZW5kKQorICAgICAgICAgIChpbnNlcnQgc3RyaXBwZWQpKSkKKyAgICA7OyBGaW5k
IHRoZSBvdXRlcm1vc3QgZW1waGFzaXMgbm9kZSBhdCBwb2ludC4KKyAgICAod2hlbi1sZXQqICgo
aW5uZXIgKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KSkKKyAgICAgICAgICAg
ICAgICAobm9kZSAobGV0ICgobiBpbm5lcikpCisgICAgICAgICAgICAgICAgICAgICAgICAod2hp
bGUgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBuKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIHBhcmVudAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBwYXJl
bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygiZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29kZV9zcGFuIikpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBuIHBhcmVudCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG4pKQorICAgICAgICAgICAgICAgIChzdGFydCAodHJlZXNp
dC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkpCisgICAgICAgICAgICAgICAgKHRleHQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUg
dCkpCisgICAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAg
ICAgICAgICAgICAgIChtbGVuIChwY2FzZSB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAo
InN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1w
cmVmaXgtcCAiXyIgdGV4dCkgMiAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgiZW1waGFz
aXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4LXAgIl8iIHRl
eHQpIDEgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoInN0cmlrZXRocm91Z2giIDIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAoImNvZGVfc3BhbiIgMSkpKQorICAgICAgICAgICAgICAg
IChpbm5lci10ZXh0IChzdWJzdHJpbmcgdGV4dCBtbGVuICgtIChsZW5ndGggdGV4dCkgbWxlbikp
KSkKKyAgICAgIChsZXQgKChvZmZzZXQgKC0gKHBvaW50KSBzdGFydCBtbGVuKSkpCisgICAgICAg
IChkZWxldGUtcmVnaW9uIHN0YXJ0IGVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBzdGFydCkKKyAg
ICAgICAgKGluc2VydCBpbm5lci10ZXh0KQorICAgICAgICAoZ290by1jaGFyICgrIHN0YXJ0ICht
YXggMCBvZmZzZXQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1lbXBoYXNpemUgKCZvcHRp
b25hbCBjaGFyKQorICAiSW5zZXJ0IG9yIGNoYW5nZSBlbXBoYXNpcyBvbiB0ZXh0LgorSWYgdGhl
cmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdCB3aXRoIGVtcGhhc2lzIG1hcmtlcnMuCitJ
ZiB0aGVyZSBpcyBubyByZWdpb24sIGluc2VydCBtYXJrZXIgcGFpcnMgYW5kIHBsYWNlIHBvaW50
IGJldHdlZW4KK3RoZW0uICBDSEFSIHNlbGVjdHMgdGhlIGVtcGhhc2lzIHR5cGU6CisKKyAgYiAg
ICoqYm9sZCoqICAgICAgIEIgIF9fYm9sZF9fCisgIGkgICAqaXRhbGljKiAgICAgICBJICBfaXRh
bGljXworICBhICAgKioqYm9sZCtpdGFsaWMqKioKKyAgcyAgIH5+c3RyaWtldGhyb3VnaH5+Cisg
IGMgICBgY29kZWAKKyAgU1BDIHJlbW92ZSBlbXBoYXNpcyBhdCBwb2ludCBvciByZWdpb24iCisg
IChpbnRlcmFjdGl2ZQorICAgImNFbXBoYXNpcyBbYl1vbGQgW0Jdb2xkXyBbaV10YWxpYyBbSV10
YWxpY18gW2FdbGwgW3NddHJpa2UgW2Ndb2RlIFNQQyByZW1vdmU6IikKKyAgKGlmIChlcSBjaGFy
ID9ccykKKyAgICAgIChtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMpCisgICAgKGlmLWxldCog
KChtYXJrZXIgKGNkciAoYXNzcSBjaGFyIG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KSkpKQor
ICAgICAgICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgICAgICAgIChsZXQgKChiZWcgKHJlZ2lv
bi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAoY29weS1tYXJrZXIgKHJlZ2lv
bi1lbmQpKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2VyKQorICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2Vy
KSkpCisgICAgICAgICAgKGlmLWxldCogKChib3VuZHMgKGJvdW5kcy1vZi10aGluZy1hdC1wb2lu
dCAnd29yZCkpKQorICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIChjZHIgYm91bmRzKSkKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtl
cikKKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgYm91bmRzKSkKKyAgICAgICAgICAg
ICAgICAoaW5zZXJ0IG1hcmtlcikpCisgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlciBtYXJrZXIp
CisgICAgICAgICAgICAoYmFja3dhcmQtY2hhciAobGVuZ3RoIG1hcmtlcikpKSkKKyAgICAgICh1
c2VyLWVycm9yICJObyBzdWNoIGVtcGhhc2lzIG1hcmtlcjogJWMiIGNoYXIpKSkpCisKKzs7OyBC
bG9jayBzdHJ1Y3R1cmU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtc3RydWN0dXJlICgm
b3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGJsb2NrIHN0cnVjdHVyZS4KK0lmIHRoZXJlIGlz
IGFuIGFjdGl2ZSByZWdpb24sIHdyYXAgaXQuICBPdGhlcndpc2UsIGluc2VydCBhbiBlbXB0eQor
YmxvY2sgYW5kIHBsYWNlIHBvaW50IGluc2lkZS4gIENIQVIgc2VsZWN0cyB0aGUgc3RydWN0dXJl
IHR5cGU6CisKKyAgYCAgZmVuY2VkIGNvZGUgYmxvY2sgKGBgYCkKKyAgfiAgdGlsZGUgZmVuY2Vk
IGNvZGUgYmxvY2sgKH5+fikKKyAgcSAgYmxvY2sgcXVvdGUgKD4gKQorICBkICBob3Jpem9udGFs
IGRpdmlkZXIvcnVsZSAoLS0tKQorICB0ICB0YWJsZSIKKyAgKGludGVyYWN0aXZlCisgICAiY1N0
cnVjdHVyZSBbYF1iYWNrLXRpY2sgY29kZSBibG9jayBbfl10aWxkZSBjb2RlIGJsb2NrIFtxXXVv
dGUgW2RdaXZpZGVyIFt0XWFibGU6IikKKyAgKHBjYXNlIGNoYXIKKyAgICAoP2AgKG1hcmtkb3du
LXRzLS1pbnNlcnQtY29kZS1ibG9jayA/YCkpCisgICAgKD9+IChtYXJrZG93bi10cy0taW5zZXJ0
LWNvZGUtYmxvY2sgP34pKQorICAgICg/cSAobWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90
ZSkpCisgICAgKD9kIChtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpKQorICAgICg/dCAobWFy
a2Rvd24tdHMtdGFibGUtaW5zZXJ0LXRhYmxlKSkKKyAgICAoXyAodXNlci1lcnJvciAiTm8gc3Vj
aCBzdHJ1Y3R1cmU6ICVjIiBjaGFyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1j
b2RlLWJsb2NrIChjaGFyICZvcHRpb25hbCBsYW5ndWFnZSkKKyAgIkluc2VydCBhIGZlbmNlZCBj
b2RlIGJsb2NrIHVzaW5nIGEgQ0hBUiBzZXF1ZW5jZS4KK0NIQVIgc2hvdWxkIGJlIG9uZSBvZiBh
IGJhY2t0aWNrIG9yIGEgdGlsZGUuCitMQU5HVUFHRSBpcyBhIHdoaXRlc3BhY2UgZnJlZSBsYW5n
dWFnZSBzdHJpbmcuIgorICAoc2V0cSBsYW5ndWFnZQorICAgICAgICAob3IgbGFuZ3VhZ2UKKyAg
ICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAiW1s6Ymxh
bms6XV0iICIiCisgICAgICAgICAgICAgKGxldCAoKGNvbXBsZXRpb24taWdub3JlLWNhc2Ugbmls
KQorICAgICAgICAgICAgICAgICAgIChjYW5kaWRhdGVzCisgICAgICAgICAgICAgICAgICAgIChz
ZXEtbWFwCisgICAgICAgICAgICAgICAgICAgICAjJ3N5bWJvbC1uYW1lCisgICAgICAgICAgICAg
ICAgICAgICAoc2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChtYXBjYXIg
IydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24t
dHMtbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2FyIG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMpKSkpKSkKKyAgICAgICAgICAgICAgIChjb21wbGV0
aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAiQ29kZSBibG9jayBsYW5ndWFnZTogIgorICAgICAg
ICAgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAg
ICAnY29uZmlybSA7IFByb21wdCBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IG9uIG91ciBsaXN0Lgor
ICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1sYW5ndWFn
ZS1oaXN0b3J5KSkpKSkKKyAgKGxldCAoKGZlbmNlLXN0cmluZyAobWFrZS1zdHJpbmcgMyBjaGFy
KSkpCisgICAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAgIChsZXQgKChiZWcgKHJlZ2lvbi1i
ZWdpbm5pbmcpKQorICAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkpCisgICAgICAgICAg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAoZ290by1jaGFyIGVuZCkKKyAgICAgICAgICAg
ICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxuIikpCisgICAgICAgICAgICAoaW5zZXJ0IGZlbmNl
LXN0cmluZyAiXG4iKQorICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAo
aW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG4iKSkpCisgICAgICAoaW5zZXJ0IGZlbmNl
LXN0cmluZyBsYW5ndWFnZSAiXG5cbiIgZmVuY2Utc3RyaW5nKQorICAgICAgKGZvcndhcmQtbGlu
ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUgKCkKKyAg
Ikluc2VydCBhIGJsb2NrIHF1b3RlLiIKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0
ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgIChlbmQgKGNvcHktbWFya2Vy
IChyZWdpb24tZW5kKSkpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290
by1jaGFyIGJlZykKKyAgICAgICAgICAod2hpbGUgKDwgKHBvaW50KSBlbmQpCisgICAgICAgICAg
ICAoaW5zZXJ0ICI+ICIpCisgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkpCisgICAgKGlu
c2VydCAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIgKCkKKyAg
Ikluc2VydCBhIGhvcml6b250YWwgcnVsZS4iCisgICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxu
IikpCisgIChpbnNlcnQgIlxuLS0tXG5cbiIpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWFwcGx5
LWVsbGlwc2lzICgpCisgICJBcHBseSBgbWFya2Rvd24tdHMtZWxsaXBzaXMnIHRvIHRoZSBjdXJy
ZW50IGJ1ZmZlcidzIGRpc3BsYXkgdGFibGUuIgorICAoaWYgKGFuZCAoc3RyaW5ncCBtYXJrZG93
bi10cy1lbGxpcHNpcykKKyAgICAgICAgICAgKG5vdCAoc3RyaW5nLWVtcHR5LXAgbWFya2Rvd24t
dHMtZWxsaXBzaXMpKSkKKyAgICAgIChsZXQgKCh0YWJsZSAob3IgYnVmZmVyLWRpc3BsYXktdGFi
bGUKKyAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZGlzcGxheS10YWJsZSkpKSkKKyAgICAg
ICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QKKyAgICAgICAgIHRhYmxlIDQKKyAgICAgICAgICh2
Y29uY2F0IChtYXBjYXIgKGxhbWJkYSAoYykgKG1ha2UtZ2x5cGgtY29kZSBjICdzaGFkb3cpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbGxpcHNpcykpKQorICAgICAg
ICAoc2V0cSBidWZmZXItZGlzcGxheS10YWJsZSB0YWJsZSkpCisgICAgKHdoZW4gYnVmZmVyLWRp
c3BsYXktdGFibGUKKyAgICAgIChzZXQtZGlzcGxheS10YWJsZS1zbG90IGJ1ZmZlci1kaXNwbGF5
LXRhYmxlIDQgbmlsKSkpKQorCis7OzsgTWFqb3IgbW9kZToKKworKGRlZnVuIG1hcmtkb3duLXRz
LW91dGxpbmUtY3ljbGUgKCkKKyAgIkN5Y2xlIHZpc2liaWxpdHkgb2YgdGhlIGhlYWRpbmcgYXQg
cG9pbnQuCitPbiBhIGhlYWRpbmcsIGNhbGwgYG91dGxpbmUtY3ljbGUnLiAgT3RoZXJ3aXNlIGRv
IG5vdGhpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgICh3aGVuIChvdXRsaW5lLW9uLWhlYWRpbmct
cCkKKyAgICAob3V0bGluZS1jeWNsZSkpKQorCisoZGVmdmFyLWtleW1hcCBtYXJrZG93bi10cy1t
b2RlLW1hcAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCisgICJNLTxs
ZWZ0PiIgICAgIydtYXJrZG93bi10cy1wcm9tb3RlCisgICJNLTxyaWdodD4iICAgIydtYXJrZG93
bi10cy1kZW1vdGUKKyAgIk0tPHVwPiIgICAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11
cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24KKyAgIkMt
YyBDLW4iICAgICAjJ291dGxpbmUtbmV4dC1oZWFkaW5nCisgICJDLWMgQy1wIiAgICAgIydvdXRs
aW5lLXByZXZpb3VzLWhlYWRpbmcKKyAgIkMtYyBDLXUiICAgICAjJ291dGxpbmUtdXAtaGVhZGlu
ZworICAiQy1jIEMtZiIgICAgICMnb3V0bGluZS1mb3J3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBD
LWIiICAgICAjJ291dGxpbmUtYmFja3dhcmQtc2FtZS1sZXZlbAorICAiQy1jIEMteCBDLWYiICMn
bWFya2Rvd24tdHMtZW1waGFzaXplCisgICJDLWMgQy14IEMtbSIgIydtYXJrZG93bi10cy10b2dn
bGUtaGlkZS1tYXJrdXAKKyAgIkMtYyBDLXggQy12IiAjJ21hcmtkb3duLXRzLXRvZ2dsZS1pbmxp
bmUtaW1hZ2VzCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10cy10b2dnbGUtY2hlY2tib3gK
KyAgIkMtYyBDLXIiICAgICAjJ21hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QKKyAgIkMtYyBDLSwi
ICAgICAjJ21hcmtkb3duLXRzLWluc2VydC1zdHJ1Y3R1cmUKKyAgIkMtYyBDLXYgbiIgICAjJ21h
cmtkb3duLXRzLW1vdmUtdG8tbmV4dC1jb2RlLWJsb2NrCisgICJDLWMgQy12IHAiICAgIydtYXJr
ZG93bi10cy1tb3ZlLXRvLXByZXZpb3VzLWNvZGUtYmxvY2sKKyAgIlJFVCIgICAgICAgICAjJ21h
cmtkb3duLXRzLW5ld2xpbmUKKyAgIk0tUkVUIiAgICAgICAjJ21hcmtkb3duLXRzLWluc2VydC1s
aXN0LWl0ZW0KKyAgIlRBQiIgICAgICAgICAjJ21hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpCisK
KyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW1h
cAorICA6ZG9jICJLZXltYXAgZm9yIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQt
bW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGluIGBtYXJrZG93bi10cy1tb2RlLW1hcCcgdG8g
c3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1hbmRzIGluIGEgY29kZS1ibG9jayBjb250ZXh0
LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2RlLW1hcAorICA6bWVudSBuaWwKKyAgIk0tLiIg
ICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXhyZWYtZmluZC1kZWZpbml0aW9ucwor
ICAiVEFCIiAgICAgICAgICMnaW5kZW50LWZvci10YWItY29tbWFuZAorICAiUkVUIiAgICAgICAg
ICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiQy1qIiAgICAgICAgICMnbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1SRVQiICAgICAgICMnbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1xIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgpCisKKyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLWlu
LXRhYmxlLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBmb3IgYG1hcmtkb3duLXRzLWluLXRhYmxl
LW1vZGUnLgorVGhlc2Ugb3ZlcnJpZGUga2V5cyBpbiBgbWFya2Rvd24tdHMtbW9kZS1tYXAnIHRv
IHN1cHBvcnQgZXhlY3V0aW5nIHRoZWlyCitjb21tYW5kcyBpbiBhIHRhYmxlIGNvbnRleHQuIgor
ICA6cGFyZW50IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgIDptZW51IG5pbAorICAiPHJldHVybj4i
ICAgICMnbWFya2Rvd24tdHMtdGFibGUtbmV4dC1yb3cKKyAgIlMtPHJldHVybj4iICAjJ21hcmtk
b3duLXRzLXRhYmxlLXByZXZpb3VzLXJvdworICAiPHRhYj4iICAgICAgICMnbWFya2Rvd24tdHMt
dGFibGUtbmV4dC1jZWxsCisgICI8YmFja3RhYj4iICAgIydtYXJrZG93bi10cy10YWJsZS1wcmV2
aW91cy1jZWxsCisgICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdy11
cAorICAiTS08ZG93bj4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1yb3ctZG93bgorICAi
TS08bGVmdD4iICAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tbGVmdAorICAiTS08
cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtdGFibGUtbW92ZS1jb2x1bW4tcmlnaHQKKyAgIk0tUy08
dXA+IiAgICAjJ21hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUKKyAgIk0tUy08ZG93
bj4iICAjJ21hcmtkb3duLXRzLXRhYmxlLWRlbGV0ZS1yb3cKKyAgIk0tUy08cmlnaHQ+IiAjJ21h
cmtkb3duLXRzLXRhYmxlLWluc2VydC1jb2x1bW4tbGVmdAorICAiTS1TLTxsZWZ0PiIgICMnbWFy
a2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbgorICAiQy1jIEMtdCBhIiAgICMnbWFya2Rvd24t
dHMtdGFibGUtYWxpZ24tY29sdW1uCisgICJDLWMgQy1jIiAgICAgIydtYXJrZG93bi10cy10YWJs
ZS1hbGlnbi10YWJsZQorICAiQy1jIEMtdCB0IiAgICMnbWFya2Rvd24tdHMtdGFibGUtdHJhbnNw
b3NlLXRhYmxlKQorCisoZWFzeS1tZW51LWRlZmluZSBtYXJrZG93bi10cy1tb2RlLW1lbnUgbWFy
a2Rvd24tdHMtbW9kZS1tYXAKKyAgImBtYXJrZG93bi10cy1tb2RlJyBtZW51LiIKKyAgJygiTWFy
a2Rvd24iIDp2aXNpYmxlIG1hcmtkb3duLXRzLW1lbnUtYmFyLXNob3cKKyAgICAiLS0iCisgICAg
WyJDeWNsZSBPdXRsaW5lIFZpc2liaWxpdHkiICBtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlICAg
ICAgICAgICAgICA6aGVscCAiQ3ljbGUgaGVhZGluZyB2aXNpYmlsaXR5IGZyb20gcG9pbnQiXQor
ICAgIFsiVG9nZ2xlIEhpZGUgTWFya3VwIiAgICAgICAgbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUt
bWFya3VwICAgICAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIG1hcmt1cCBjaGFyYWN0ZXJz
IiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cF0KKyAgICBb
IlRvZ2dsZSBJbmxpbmUgSW1hZ2VzIiAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1h
Z2VzICAgICAgIDpoZWxwICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGJlbG93IGxp
bmtzIiA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzXQor
ICAgICItLSIKKyAgICBbIlVwIiAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmUtdXAtaGVh
ZGluZyAgICAgICAgICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwYXJlbnQgaGVhZGlu
ZyJdCisgICAgWyJOZXh0IiAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLW5leHQtaGVhZGlu
ZyAgICAgICAgICAgICAgICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIl0KKyAg
ICBbIlByZXZpb3VzIiAgICAgICAgICAgICAgICAgIG91dGxpbmUtcHJldmlvdXMtaGVhZGluZyAg
ICAgICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91cyBoZWFkaW5nIl0KKyAgICBb
Ik5leHQgU2FtZSBMZXZlbCIgICAgICAgICAgIG91dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsICAg
ICAgICAgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmcgYXQgdGhlIHNhbWUgbGV2
ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgICAgICAgb3V0bGluZS1iYWNrd2FyZC1z
YW1lLWxldmVsICAgICAgICAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIHByZXZpb3VzIGhlYWRpbmcg
YXQgdGhlIHNhbWUgbGV2ZWwiXQorICAgICItLSIKKyAgICBbIkp1bXAiICAgICAgICAgICAgICAg
ICAgICAgIGltZW51ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpoZWxwICJKdW1w
IHRvIGEgaGVhZGluZyB2aWEgY29tcGxldGlvbiJdCisgICAgIi0tIgorICAgIFsiTW92ZSBTdWJ0
cmVlIFVwIiAgICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwICAgICAgICAgICAg
OmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAiXQorICAgIFsi
TW92ZSBTdWJ0cmVlIERvd24iICAgICAgICAgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24g
ICAgICAgICAgOmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93
biJdCisgICAgWyJQcm9tb3RlIiAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1wcm9tb3Rl
ICAgICAgICAgICAgICAgICAgICA6aGVscCAiUHJvbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJd
CisgICAgWyJEZW1vdGUiICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1kZW1vdGUgICAg
ICAgICAgICAgICAgICAgICA6aGVscCAiRGVtb3RlIGhlYWRpbmcgb3IgbGlzdCBpdGVtIl0KKyAg
ICAiLS0iCisgICAgWyJFbXBoYXNpcy4uLiIgICAgICAgICAgICAgICBtYXJrZG93bi10cy1lbXBo
YXNpemUgICAgICAgICAgICAgICAgICA6aGVscCAiQWRkIG9yIGNoYW5nZSBlbXBoYXNpcyBvbiBy
ZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgICAgICAgbWFya2Rvd24tdHMtaW5z
ZXJ0LXN0cnVjdHVyZSAgICAgICAgICAgOmhlbHAgIkluc2VydCBhIGNvZGUgYmxvY2ssIHF1b3Rl
LCBvciBvdGhlciBzdHJ1Y3R1cmUiXQorICAgICItLSIKKyAgICBbIlRvZ2dsZSBDaGVja2JveCIg
ICAgICAgICAgIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveCAgICAgICAgICAgIDpoZWxwICJU
b2dnbGUgdGFzayBsaXN0IGNoZWNrYm94IGF0IHBvaW50Il0KKyAgICBbIk5ldyBMaXN0IEl0ZW0i
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gICAgICAgICAgIDpoZWxw
ICJJbnNlcnQgYSBuZXcgbGlzdCBpdGVtIGFmdGVyIHRoZSBjdXJyZW50IG9uZSJdCisgICAgWyJS
ZW51bWJlciBMaXN0IiAgICAgICAgICAgICBtYXJrZG93bi10cy1yZW51bWJlci1saXN0ICAgICAg
ICAgICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2ludCJdCisgICAg
Ii0tIgorICAgICgiVGFibGUiCisgICAgIFsiSW5zZXJ0IHRhYmxlIiAgICAgICAgICAgICBtYXJr
ZG93bi10cy10YWJsZS1pbnNlcnQtdGFibGUgICAgICAgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5
IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJEZWxldGUgdGFibGUiICAgICAgICAgICAgIG1hcmtk
b3duLXRzLXRhYmxlLWRlbGV0ZS10YWJsZSAgICAgICAgIDpoZWxwICJEZWxldGUgdGhlIHRhYmxl
IGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIk5leHQgY2VsbCIgICAgICAgICAgICAgICAg
bWFya2Rvd24tdHMtdGFibGUtbmV4dC1jZWxsICAgICAgICAgICAgOmhlbHAgIk1vdmUgcG9pbnQg
dG8gdGhlIG5leHQgY2VsbCJdCisgICAgIFsiUHJldmlvdXMgY2VsbCIgICAgICAgICAgICBtYXJr
ZG93bi10cy10YWJsZS1wcmV2aW91cy1jZWxsICAgICAgICA6aGVscCAiTW92ZSBwb2ludCB0byB0
aGUgcHJldmlvdXMgY2VsbCJdCisgICAgICItLSIKKyAgICAgWyJOZXh0IHJvdyIgICAgICAgICAg
ICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLW5leHQtcm93ICAgICAgICAgICAgIDpoZWxwICJNb3Zl
IHBvaW50IHRvIHRoZSBuZXh0IHJvdyJdCisgICAgIFsiUHJldmlvdXMgcm93IiAgICAgICAgICAg
ICBtYXJrZG93bi10cy10YWJsZS1wcmV2aW91cy1yb3cgICAgICAgICA6aGVscCAiTW92ZSBwb2lu
dCB0byB0aGUgcHJldmlvdXMgcm93Il0KKyAgICAgWyJJbnNlcnQgcm93IGJlbG93IiAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYmVsb3cgICAgIDpoZWxwICJJbnNlcnQgYW4g
ZW1wdHkgcm93IGJlbG93IHBvaW50Il0KKyAgICAgWyJJbnNlcnQgcm93IGFib3ZlIiAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWluc2VydC1yb3ctYWJvdmUgICAgIDpoZWxwICJJbnNlcnQgYW4g
ZW1wdHkgcm93IGFib3ZlIHBvaW50Il0KKyAgICAgWyJDbG9uZSByb3cgYmVsb3ciICAgICAgICAg
IG1hcmtkb3duLXRzLXRhYmxlLWNsb25lLXJvdy1iZWxvdyAgICAgIDpoZWxwICJDbG9uZSB0aGUg
Y3VycmVudCByb3cgYmVsb3cgaXQiXQorICAgICBbIkNsb25lIHJvdyBhYm92ZSIgICAgICAgICAg
bWFya2Rvd24tdHMtdGFibGUtY2xvbmUtcm93LWFib3ZlICAgICAgOmhlbHAgIkNsb25lIHRoZSBj
dXJyZW50IHJvdyBhYm92ZSBpdCJdCisgICAgIFsiTW92ZSByb3cgdXAiICAgICAgICAgICAgICBt
YXJrZG93bi10cy10YWJsZS1tb3ZlLXJvdy11cCAgICAgICAgICA6aGVscCAiTW92ZSB0aGUgcm93
IGF0IHBvaW50IHVwIl0KKyAgICAgWyJNb3ZlIHJvdyBkb3duIiAgICAgICAgICAgIG1hcmtkb3du
LXRzLXRhYmxlLW1vdmUtcm93LWRvd24gICAgICAgIDpoZWxwICJNb3ZlIHRoZSByb3cgYXQgcG9p
bnQgZG93biJdCisgICAgIFsiRGVsZXRlIHJvdyIgICAgICAgICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1kZWxldGUtcm93ICAgICAgICAgICA6aGVscCAiRGVsZXRlIHRoZSByb3cgYXQgcG9pbnQi
XQorICAgICAiLS0iCisgICAgIFsiSW5zZXJ0IGNvbHVtbiBsZWZ0IiAgICAgICBtYXJrZG93bi10
cy10YWJsZS1pbnNlcnQtY29sdW1uLWxlZnQgICA6aGVscCAiSW5zZXJ0IGFuIGVtcHR5IGNvbHVt
biB0byB0aGUgbGVmdCBvZiBwb2ludCJdCisgICAgIFsiSW5zZXJ0IGNvbHVtbiByaWdodCIgICAg
ICBtYXJrZG93bi10cy10YWJsZS1pbnNlcnQtY29sdW1uLXJpZ2h0ICA6aGVscCAiSW5zZXJ0IGFu
IGVtcHR5IGNvbHVtbiB0byB0aGUgcmlnaHQgb2YgcG9pbnQiXQorICAgICBbIkNsb25lIGNvbHVt
biBsZWZ0IiAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtY29sdW1uLWxlZnQgICAgOmhl
bHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgcG9pbnQiXQorICAgICBb
IkNsb25lIGNvbHVtbiByaWdodCIgICAgICAgbWFya2Rvd24tdHMtdGFibGUtY2xvbmUtY29sdW1u
LXJpZ2h0ICAgOmhlbHAgIkluc2VydCBhbiBlbXB0eSBjb2x1bW4gdG8gdGhlIHJpZ2h0IG9mIHBv
aW50Il0KKyAgICAgWyJNb3ZlIGNvbHVtbiBsZWZ0IiAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxl
LW1vdmUtY29sdW1uLWxlZnQgICAgIDpoZWxwICJNb3ZlIHRoZSBjdXJyZW50IGNvbHVtbiB0byBp
dHMgbGVmdCJdCisgICAgIFsiTW92ZSBjb2x1bW4gcmlnaHQiICAgICAgICBtYXJrZG93bi10cy10
YWJsZS1tb3ZlLWNvbHVtbi1yaWdodCAgICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBjb2x1bW4g
dG8gaXRzIHJpZ2h0Il0KKyAgICAgWyJBbGlnbiBjb2x1bW4uLi4iICAgICAgICAgIG1hcmtkb3du
LXRzLXRhYmxlLWFsaWduLWNvbHVtbiAgICAgICAgIDpoZWxwICJBbGlnbiBjb2x1bW4gYXQgcG9p
bnQgdG8gdGhlIGxlZnQsIGNlbnRlciwgb3IgcmlnaHQiXQorICAgICBbIkRlbGV0ZSBjb2x1bW4i
ICAgICAgICAgICAgbWFya2Rvd24tdHMtdGFibGUtZGVsZXRlLWNvbHVtbiAgICAgICAgOmhlbHAg
IkRlbGV0ZSB0aGUgY29sdW1uIGF0IHBvaW50Il0KKyAgICAgIi0tIgorICAgICBbIkFsaWduIHRh
YmxlIGNvbHVtbnMiICAgICAgbWFya2Rvd24tdHMtdGFibGUtYWxpZ24tdGFibGUgICAgICAgICAg
OmhlbHAgIkFsaWduIHRoZSB0YWJsZSBhdCBwb2ludCBpbiBhbiBlYXN5LXRvLWVkaXQgZm9ybWF0
Il0KKyAgICAgWyJUcmFuc3Bvc2UgdGFibGUiICAgICAgICAgIG1hcmtkb3duLXRzLXRhYmxlLXRy
YW5zcG9zZS10YWJsZSAgICAgIDpoZWxwICJUcmFuc3Bvc2UgdGhlIHRhYmxlIGF0IHBvaW50IHN3
YXBwaW5nIGl0cyByb3dzIGFuZCBjb2x1bW5zIl0KKyAgICAgIi0tIgorICAgICBbIkNvbnZlcnQg
Q1NWIHRvIHRhYmxlIiAgICAgbWFya2Rvd24tdHMtdGFibGUtY29udmVydC1jc3YtcmVnaW9uICAg
OmhlbHAgIkNvbnZlcnQgYSByYW5nZSBvZiBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzIHRvIGEgbmV3
IHRhYmxlIGF0IHBvaW50Il0KKyAgICAgWyJDb252ZXJ0IFRTViB0byB0YWJsZSIgICAgIG1hcmtk
b3duLXRzLXRhYmxlLWNvbnZlcnQtdHN2LXJlZ2lvbiAgIDpoZWxwICJDb252ZXJ0IGEgcmFuZ2Ug
b2YgdGFiLXNlcGFyYXRlZCB2YWx1ZXMgdG8gYSBuZXcgdGFibGUgYXQgcG9pbnQiXQorICAgICBb
IkV4cG9ydCB0YWJsZSB0byBDU1YiICAgICAgbWFya2Rvd24tdHMtdGFibGUtZXhwb3J0LXRhYmxl
LWNzdiAgICAgOmhlbHAgIkV4cG9ydCB0aGUgdGFibGUgYXQgcG9pbnQgdG8gYSBjb21tYS1zZXBh
cmF0ZWQgdmFsdWVzIGJ1ZmZlciJdCisgICAgIFsiRXhwb3J0IHRhYmxlIHRvIFRTViIgICAgICBt
YXJrZG93bi10cy10YWJsZS1leHBvcnQtdGFibGUtdHN2ICAgICA6aGVscCAiRXhwb3J0IHRoZSB0
YWJsZSBhdCBwb2ludCB0byBhIHRhYi1zZXBhcmF0ZWQgdmFsdWVzIGJ1ZmZlciJdKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tc2V0LXVwICgpCisgICJTZXQgdXAgdGhlIGJ1ZmZlciBmb3IgYG1h
cmtkb3duLXRzLW1vZGUnLgorSWYgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lJyBpcyBub24t
bmlsLCB1c2UgYSBsaWdodHdlaWdodCBzZXQgdXAgZm9yCitlbWJlZGRlZCBpbmxpbmUgYG1hcmtk
b3duLXRzLW1vZGUnIGJ1ZmZlcnMuCisKK05PVEU6IENhbGwgdGhpcyBmdW5jdGlvbiBvbmx5IHdo
ZW4gdGhlIHRyZWVzaXQgYG1hcmtkb3duJyBhbmQKK2BtYXJrZG93bi1pbmxpbmUnIHBhcnNlcnMg
YXJlIGF2YWlsYWJsZS4iCisKKyAgOzsgU2V0IHRoZXNlIHVwIGZvciBib3RoIG1hc3RlciBhbmQg
aW5saW5lIGZvciBjb2RlLWJsb2NrIGJ1ZmZlcnMuCisgIChzZXRxLWxvY2FsIGNvbW1lbnQtc3Rh
cnQgIjwhLS0gIgorICAgICAgICAgICAgICBjb21tZW50LWVuZCAiIC0tPiIKKyAgICAgICAgICAg
ICAgY29tbWVudC1zdGFydC1za2lwICI8IS0tWyBcdF0qIgorICAgICAgICAgICAgICBjb21tZW50
LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAgICAgICAgICAgIGNvbW1lbnQtdXNlLXN5bnRheCBu
aWwpCiAKLTs7OyBNYWpvciBtb2RlCisgIChzZXRxLWxvY2FsIGZpbGwtcGFyYWdyYXBoLWZ1bmN0
aW9uCisgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoCisgICAgICAg
ICAgICAgIGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIydt
YXJrZG93bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCkKIAotKGRlZnVuIG1hcmtkb3duLXRz
LXNldHVwICgpCi0gICJTZXR1cCB0cmVlc2l0IGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgotICAo
bWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgIDs7IGBhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uJyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKKyAgOzsgYGFkYXB0aXZl
LWZpbGwtcmVnZXhwJzsgdGhlIGRlZmF1bHQgcmVnZXhwIGlzIGZpbmUgYXMgYQorICA7OyBmYWxs
YmFjayBmb3IgcGxhaW4gKG5vbi1saXN0KSBwYXJhZ3JhcGhzLgorICAoc2V0cS1sb2NhbCBhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uICMnbWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpCisKKyAgOzsg
Q3JlYXRlIGFuZCBjb25maWd1cmUgdGhlIHBhcnNlcnMuCisgICh0cmVlc2l0LXBhcnNlci1jcmVh
dGUgJ21hcmtkb3duLWlubGluZSkKKyAgKHNldHEgdHJlZXNpdC1wcmltYXJ5LXBhcnNlcgorICAg
ICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikpCisKKyAgKHNldHEtbG9jYWwg
Zm9udC1sb2NrLWRlZmF1bHRzIG5pbCkKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpCi0gIChzZXRxLWxvY2FsIHRy
ZWVzaXQtcmFuZ2Utc2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykpCi0gIChh
ZGQtdG8tbGlzdCAnZm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgJ2ludmlzaWJsZSkKLQot
ICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNy
ZWF0ZSAnaHRtbCkKLSAgICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQotICAgIChkZWZ2YXIgaHRt
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciBodG1sLXRzLW1vZGUt
LXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250
LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0
dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVy
ZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAot
ICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdCkpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAg
ICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1i
ZWQgJ2h0bWwKLSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAgICAg
ICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgICco
KGh0bWxfYmxvY2spIEBodG1sKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdo
dG1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCi0KLSAgKHdoZW4g
KHRyZWVzaXQtcmVhZHktcCAneWFtbCB0KQotICAgIChyZXF1aXJlICd5YW1sLXRzLW1vZGUpCi0g
ICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFy
IHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNp
dC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9k
ZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9j
ay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2st
ZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt
bGlzdAotICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAg
ICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVk
ICd5YW1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAnKCht
aW51c19tZXRhZGF0YSkgQHlhbWwpKSkpKQotCi0gICh3aGVuICh0cmVlc2l0LXJlYWR5LXAgJ3Rv
bWwgdCkKLSAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQotICAgIChkZWZ2YXIgdG9tbC10cy1t
b2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUtLWZvbnQt
bG9jay1mZWF0dXJlLWxpc3QpCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MK
LSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAg
ICAgICAgICB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykpCi0gICAgKHNldHEtbG9j
YWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgKHRyZWVz
aXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0cmVlc2l0
LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1m
b250LWxvY2stZmVhdHVyZS1saXN0KSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNl
dHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0g
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAgICAgICAg
ICAgICAgICAgICAgIDplbWJlZCAndG9tbAotICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0
ICdtYXJrZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorICAoc2V0cS1sb2Nh
bCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1pdGVyIGhlYWRpbmcpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3JhcGgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3Jh
cGgtaW5saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoaW1hZ2UtcHJldmlldyBlcnJvcikpKQorCisgIChjb25kIChtYXJrZG93bi10cy0tc2V0LXVw
LWlubGluZQorICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAg
ICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAg
ICAgICAgICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICA6
aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgJygoaW5saW5lKSBAbWFya2Rv
d24taW5saW5lKSkpKQorICAgICAgICAodAorICAgICAgICAgOzsgUmFuZ2Ugc2V0dGluZ3MgZGlm
ZmVyIGluIHRoZSBtYXN0ZXIgYnVmZmVyIHZzLiBpbmxpbmUgYWJvdmUuCisgICAgICAgICAoc2V0
cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzIChtYXJrZG93bi10cy0tcmFuZ2Utc2V0dGlu
Z3MpKQorCisgICAgICAgICA7OyBDb25maWd1cmUgZmVhdHVyZXMgbmVlZGVkIG9ubHkgaW4gdGhl
IG1hc3RlciBidWZmZXIuCisKKyAgICAgICAgIDs7IEltZW51IHN1cHBvcnQuCisgICAgICAgICAo
c2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGlu
Zy1uYW1lLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAoIkNvZGUgQmxvY2tzIiAs
IydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0aW9u
KSkpCisKKyAgICAgICAgIDs7IE91dGxpbmUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRxLWxvY2Fs
IHRyZWVzaXQtb3V0bGluZS1wcmVkaWNhdGUgIydtYXJrZG93bi10cy0tb3V0bGluZS1wcmVkaWNh
dGUpCisgICAgICAgICAoc2V0cS1sb2NhbCBvdXRsaW5lLW1pbm9yLW1vZGUtY3ljbGUgdCkKKyAg
ICAgICAgIChvdXRsaW5lLW1pbm9yLW1vZGUgMSkKKyAgICAgICAgIChtYXJrZG93bi10cy0tYXBw
bHktZWxsaXBzaXMpCisKKyAgICAgICAgIDs7IE5PVEU6IGBvdXRsaW5lLXZpZXctY2hhbmdlLWhv
b2snIHdhcyBvYnNvbGV0ZWQgaW4gMjkuMSAoY29tbWl0CisgICAgICAgICA7OyA1M2IxZTZmOTZj
Yikgb24gdGhlIGdyb3VuZHMgdGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQgbm8KKyAg
ICAgICAgIDs7IHJlcGxhY2VtZW50IHdhcyBwcm92aWRlZCBhbmQgb3V0bGluZS5lbCBpdHNlbGYg
c3RpbGwgcnVucyB0aGUgaG9vaworICAgICAgICAgOzsgaW4gMTArIHBsYWNlcy4KKyAgICAgICAg
ICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChvYnNvbGV0ZSBvdXRsaW5lLXZpZXctY2hhbmdl
LWhvb2spKQorICAgICAgICAgICAoYWRkLWhvb2sgJ291dGxpbmUtdmlldy1jaGFuZ2UtaG9vawor
ICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSBu
aWwgdCkpCisKKyAgICAgICAgIChwcm9nbgorICAgICAgICAgICAobWFrZS1sb2NhbC12YXJpYWJs
ZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlh
YmxlICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcykKKyAgICAgICAgICAgKGRvbGlzdCAo
cHJvcCAnKGludmlzaWJsZSBkaXNwbGF5IGJ1dHRvbiBjYXRlZ29yeSBhY3Rpb24gaGVscC1lY2hv
KSkKKyAgICAgICAgICAgICAoYWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2VkLXBy
b3BzIHByb3ApKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAnaHRtbCB0KQor
ICAgICAgICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdodG1sKQorICAgICAgICAgICAocmVx
dWlyZSAnaHRtbC10cy1tb2RlKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tZm9u
dC1sb2NrLXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tdHJlZXNp
dC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVz
aXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRt
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAg
ICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAg
ICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCisgICAgICAg
ICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAg
ICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOmVtYmVkICdodG1sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpo
b3N0ICdtYXJrZG93bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX2Jsb2NrKSBAaHRtbCkKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQorCisgICAgICAgICAo
d2hlbiAodHJlZXNpdC1yZWFkeS1wICd5YW1sIHQpCisgICAgICAgICAgIChyZXF1aXJlICd5YW1s
LXRzLW1vZGUpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stc2V0
dGluZ3MpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVy
ZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRp
bmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxv
Y2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJh
bmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5n
ZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdl
LXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAneWFtbAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygobWludXNfbWV0YWRhdGEpIEB5YW1sKSkpKSkKKworICAgICAgICAgKHdoZW4gKHRy
ZWVzaXQtcmVhZHktcCAndG9tbCB0KQorICAgICAgICAgICAocmVxdWlyZSAndG9tbC10cy1tb2Rl
KQorICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQor
ICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkK
KyAgICAgICAgICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgICAg
ICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgICAgIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKKyAgICAgICAgICAg
KHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAg
ICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKKyAg
ICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAg
ICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ZW1iZWQgJ3RvbWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmhvc3QgJ21hcmtkb3duCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2Nh
bCB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKHBsdXNfbWV0YWRhdGEpIEB0
b21sKSkpKSkKKworICAgICAgICAgOzsgU3VwcG9ydCBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzIGlu
IGEgY29kZS1ibG9jayBjb250ZXh0LgorICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMtZW5hYmxl
LWNvZGUtYmxvY2stY29udGV4dC1tb2RlCisgICAgICAgICAgIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLWNvbnRleHQtbW9kZSkpCisKKyAgICAgICAgIDs7IFN1cHBvcnQgZm9yIHRhYmxlIG1vZGUu
CisgICAgICAgICAod2hlbiBtYXJrZG93bi10cy1lbmFibGUtdGFibGUtbW9kZQorICAgICAgICAg
ICAobWFya2Rvd24tdHMtdGFibGUtbW9kZSkpKSkKIAogICAodHJlZXNpdC1tYWpvci1tb2RlLXNl
dHVwKQotICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1h
cmt1cCkpCisKKyAgOzsgRG8gbm90IGVuYWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5kaXJlY3Qg
YnVmZmVycyBzdWNoIGFzIHRoZSBvbmUKKyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2NrIGNvbW1h
bmRzLgorICAodW5sZXNzIChidWZmZXItYmFzZS1idWZmZXIpCisgICAgKGppdC1sb2NrLXJlZ2lz
dGVyICMnbWFya2Rvd24tdHMtLWZvbnRpZnktYmFyZS11cmkpKQorCisgICh1bmxlc3MgbWFya2Rv
d24tdHMtLXNldC11cC1pbmxpbmUKKyAgICA7OyBPcmRlciBtYXR0ZXJzOiBgbWFya2Rvd24tdHMt
LXNldC1oaWRlLW1hcmt1cCcgY2FsbHMgYGZvbnQtbG9jay1mbHVzaCcKKyAgICA7OyAob25seSBt
ZWFuaW5nZnVsIG9uY2UgYHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCcgaGFzIHdpcmVkIHVwCisg
ICAgOzsgZm9udC1sb2NrKSwgYW5kIGBtYXJrZG93bi10cy1kZWZhdWx0LWZvbGRpbmcnIGNhbGxz
IG91dGxpbmUKKyAgICA7OyBjb21tYW5kcyB0aGF0IHJlbHkgb24gYG91dGxpbmUtc2VhcmNoLWZ1
bmN0aW9uJywgd2hpY2gKKyAgICA7OyBgdHJlZXNpdC1tYWpvci1tb2RlLXNldHVwJyBpbnN0YWxs
cyBmcm9tIGB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlJy4KKyAgICAobWFya2Rvd24tdHMtLXNl
dC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICA7OyBSZXNwZWN0IHRo
ZSB1c2VyJ3MgZGVmYXVsdCBvdXRsaW5lIGZvbGRpbmcuCisgICAgKHBjYXNlIG1hcmtkb3duLXRz
LWRlZmF1bHQtZm9sZGluZworICAgICAgKCdzaG93LWFsbCAoaWdub3JlKSkKKyAgICAgICgnZm9s
ZC1hbGwgKG91dGxpbmUtaGlkZS1zdWJsZXZlbHMgMSkpCisgICAgICAoJ2ZvbGQtaGVhZGluZ3Mg
KG91dGxpbmUtc2hvdy1hbGwpCisgICAgICAgICAgICAgICAgICAgICAgKG91dGxpbmUtaGlkZS1y
ZWdpb24tYm9keSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycyAoYXJnKQorICAiSW5zdGFsbCBgbWFya2Rvd24tdHMt
bW9kZScgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgcGFyc2Vycy4KK0lmIG5lZWRlZCwgaW5zdGFsbCB0
aGUgcmVxdWlyZWQgcGFyc2VycyBmb3IgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScu
CitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBBUkcsIGlmIG5lZWRlZCwgaW5zdGFsbCBwYXJzZXJz
IGZvciBgaHRtbCcsCitgeWFtbCcsIGFuZCBgdG9tbCcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQor
ICAodW5sZXNzICh0cmVlc2l0LXJlYWR5LXAgJ21hcmtkb3duIHQpCisgICAgKHRyZWVzaXQtaW5z
dGFsbC1sYW5ndWFnZS1ncmFtbWFyICdtYXJrZG93bikpCisgICh1bmxlc3MgKHRyZWVzaXQtcmVh
ZHktcCAnbWFya2Rvd24taW5saW5lIHQpCisgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1n
cmFtbWFyICdtYXJrZG93bi1pbmxpbmUpKQorICAod2hlbiBhcmcKKyAgICAodW5sZXNzICh0cmVl
c2l0LXJlYWR5LXAgJ2h0bWwgdCkKKyAgICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCisgICAg
ICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ2h0bWwpKQorICAgICh1bmxlc3Mg
KHRyZWVzaXQtcmVhZHktcCAneWFtbCB0KQorICAgICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkK
KyAgICAgICh0cmVlc2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAneWFtbCkpCisgICAgKHVu
bGVzcyAodHJlZXNpdC1yZWFkeS1wICd0b21sIHQpCisgICAgICAocmVxdWlyZSAndG9tbC10cy1t
b2RlKQorICAgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICd0b21sKSkpKQog
CiA7OzsjIyNhdXRvbG9hZAogKGRlZmluZS1kZXJpdmVkLW1vZGUgbWFya2Rvd24tdHMtbW9kZSB0
ZXh0LW1vZGUgIk1hcmtkb3duIgotICAiTWFqb3IgbW9kZSBmb3IgZWRpdGluZyBNYXJrZG93biB1
c2luZyB0cmVlLXNpdHRlciBncmFtbWFyLiIKKyAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFy
a2Rvd24gdXNpbmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4KK05PVEU6IFNlZSBgbWFya2Rvd24tdHMt
LXNldC11cC1pbmxpbmUnLiIKKyAgKGlmIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAn
bWFya2Rvd24pCisgICAgICAgICAgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3du
LWlubGluZSkpCisgICAgICAobWFya2Rvd24tdHMtLXNldC11cCkKKyAgICAod2FybiAibWFya2Rv
d24tdHMtbW9kZSBjYW5ub3QgYmUgc2V0IHVwOyB1c2luZyBmdW5kYW1lbnRhbC1tb2RlLgorVGhl
IHRyZWUtc2l0dGVyIHBhcnNlcnMgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScgd2Vy
ZSBub3QgZm91bmQuCitVc2UgdGhlIGNvbW1hbmQgYG1hcmtkb3duLXRzLW1vZGUtaW5zdGFsbC1w
YXJzZXJzJyB0byBpbnN0YWxsIHRoZW0uCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBpdCBjYW4g
YWxzbyBpbnN0YWxsIG9wdGlvbmFsIHBhcnNlcnMuIikKKyAgICAoZnVuZGFtZW50YWwtbW9kZSkp
KQogCi0gIChzZXRxLWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIikKLSAgKHNldHEtbG9jYWwg
Y29tbWVudC1lbmQgIiAtLT4iKQorKGRlcml2ZWQtbW9kZS1hZGQtcGFyZW50cyAnbWFya2Rvd24t
dHMtbW9kZSAnKG1hcmtkb3duLW1vZGUpKQogCi0gIChzZXRxLWxvY2FsIGZvbnQtbG9jay1kZWZh
dWx0cyBuaWwKLQkgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1p
dGVyIGhlYWRpbmcpCi0JCQkJCSAgICAgICAocGFyYWdyYXBoKQotCQkJCQkgICAgICAgKHBhcmFn
cmFwaC1pbmxpbmUpKSkKKyhkZWZ1biBtYXJrZG93bi10cy0tYmFyZi1pZi1ub3QtbW9kZSAoJm9w
dGlvbmFsIGNvbnRleHQpCisgICJTaWduYWwgYW4gZXJyb3IgaWYgdGhlIGN1cnJlbnQgYnVmZmVy
IGlzIG5vdCBhIGBtYXJrZG93bi10cy1tb2RlJyBidWZmZXIuCitQcmVmaXggdGhlIGVycm9yIG1l
c3NhZ2Ugd2l0aCBDT05URVhULiIKKyAgKHVubGVzcyAoZGVyaXZlZC1tb2RlLXAgJ21hcmtkb3du
LXRzLW1vZGUpCisgICAgKHVzZXItZXJyb3IgIiVzaXMgdmFsaWQgb25seSBpbiBgbWFya2Rvd24t
dHMtbW9kZScgYnVmZmVycyIKKyAgICAgICAgICAgICAgICAoaWYgY29udGV4dCAoZm9ybWF0ICIl
czogIiBjb250ZXh0KSAiIikpKSkKIAotICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVu
dS1zZXR0aW5ncwotICAgICAgICAgICAgICBgKCgiSGVhZGluZ3MiICwjJ21hcmtkb3duLXRzLWlt
ZW51LW5vZGUtcAotICAgICAgICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtaW1lbnUtbmFt
ZS1mdW5jdGlvbikpKQotICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlICMn
bWFya2Rvd24tdHMtb3V0bGluZS1wcmVkaWNhdGUpCisoZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUKKyAgIk1pbm9yIG1vZGUgZW5hYmxlZCBp
ZiBwb2ludCBpcyB3aXRoaW4gYSBmZW5jZWQgY29kZSBibG9jay4KK1RoaXMgZW5hYmxlcyB0aGUg
a2V5bWFwIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1tYXAnLiIKKyAg
Omdyb3VwICdtYXJrZG93bi10cworICA6bGlnaHRlciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWlu
LWNvbnRleHQtbW9kZS1saWdodGVyCisgIDppbnRlcmFjdGl2ZSBuaWwKKyAgKG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS11cGRhdGUtb3YpKQogCi0gICh3aGVuIChhbmQg
KHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAnbWFya2Rvd24pCi0gICAgICAgICAgICAgKHRyZWVz
aXQtZW5zdXJlLWluc3RhbGxlZCAnbWFya2Rvd24taW5saW5lKSkKLSAgICAodHJlZXNpdC1wYXJz
ZXItY3JlYXRlICdtYXJrZG93bi1pbmxpbmUpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAn
bWFya2Rvd24pCi0gICAgKG1hcmtkb3duLXRzLXNldHVwKSkpCisoZGVmdmFyLWxvY2FsIG1hcmtk
b3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdiBuaWwpCiAKLShkZXJpdmVkLW1v
ZGUtYWRkLXBhcmVudHMgJ21hcmtkb3duLXRzLW1vZGUgJyhtYXJrZG93bi1tb2RlKSkKKyhkZWZ1
biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtdXBkYXRlLW92ICgpCisg
ICJNYW5hZ2UgYG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdicuIgor
ICAoY29uZCAobWFya2Rvd24tdHMtY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUKKyAgICAgICAg
IChsZXQgKChiZWcgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUt
YmVnLW1hcmtlcikpCisgICAgICAgICAgICAgICAoZW5kIChnZXQtY2hhci1wcm9wZXJ0eSAocG9p
bnQpICdtYXJrZG93bi10cy1jb2RlLWVuZC1tYXJrZXIpKSkKKyAgICAgICAgICAgKGlmIG1hcmtk
b3duLXRzLS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAgICAgKG1v
dmUtb3ZlcmxheSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YgYmVn
IGVuZCkKKyAgICAgICAgICAgICAoc2V0cSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250
ZXh0LW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAobWFrZS1vdmVybGF5IGJlZyBlbmQgbmls
IHQgbmlsKSkpCisgICAgICAgICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay1pbi1jb250ZXh0LW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10
cy1pbi1jb2RlLWJsb2NrIHQpCisgICAgICAgICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdl
dmFwb3JhdGUgdCkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWluLWNvbnRleHQtbW9kZS1vdgorICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW9yaXR5
ICcobmlsIC4gMjApKQorICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rvd24tdHMtLWNvZGUt
YmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAgICAgICAgICAgICAgICAgICAgICAnZmFjZSAn
bWFya2Rvd24tdHMtaW4tY29kZS1ibG9jaykpKQorICAgICAgICAodAorICAgICAgICAgKHdoZW4g
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2staW4tY29udGV4dC1tb2RlLW92CisgICAgICAgICAgIChk
ZWxldGUtb3ZlcmxheSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1pbi1jb250ZXh0LW1vZGUtb3Yp
KSkpKQogCi07OzsjIyNhdXRvbG9hZAotKGRlZnVuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUgKCkK
LSAgIkVuYWJsZSBgbWFya2Rvd24tdHMtbW9kZScgd2hlbiBpdHMgZ3JhbW1hciBpcyBhdmFpbGFi
bGUuCi1BbHNvIHByb3Bvc2UgdG8gaW5zdGFsbCB0aGUgZ3JhbW1hciB3aGVuIGB0cmVlc2l0LWVu
YWJsZWQtbW9kZXMnCi1pcyB0IG9yIGNvbnRhaW5zIHRoZSBtb2RlIG5hbWUuIgotICAoZGVjbGFy
ZS1mdW5jdGlvbiB0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICJ0cmVlc2l0LmMiKQotICAo
aWYgKG9yICh0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICdtYXJrZG93bikKLSAgICAgICAg
ICAoZXEgdHJlZXNpdC1lbmFibGVkLW1vZGVzIHQpCi0gICAgICAgICAgKG1lbXEgJ21hcmtkb3du
LXRzLW1vZGUgdHJlZXNpdC1lbmFibGVkLW1vZGVzKSkKLSAgICAgIChtYXJrZG93bi10cy1tb2Rl
KQotICAgIChmdW5kYW1lbnRhbC1tb2RlKSkpCisoZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rvd24t
dHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUKKyAgIk1pbm9yIG1vZGUgdG8gZW5hYmxlIGNvbW1h
bmRzIGluIGZlbmNlZCBjb2RlIGJsb2NrIGNvbnRleHQuCitJZiBub24tbmlsIGFuZCBgcG9pbnQn
IGlzIGluIGEgZmVuY2VkIGNvZGUgYmxvY2ssIHJ1biBgaW5kZW50LWZvci10YWItY29tbWFuZCcs
CitgbmV3bGluZScsIGV0LmFsLiwgaW4gdGhlIG1vZGUgb2YgdGhlIGNvZGUgYmxvY2suIgorICA6
Z3JvdXAgJ21hcmtkb3duLXRzCisgIDppbnRlcmFjdGl2ZSBuaWwKKyAgKG1hcmtkb3duLXRzLS1i
YXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSkKKyAg
KGNvbmQgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29udGV4dC1tb2RlCisgICAgICAgICA7OyBF
bmFibGUgdGhlIG1pbm9yIG1vZGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2staW4tY29udGV4dC1t
b2RlJyBhbmQKKyAgICAgICAgIDs7IGl0cyBrZXltYXAgd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBj
b2RlIGJsb2NrLgorICAgICAgICAgKGFkZC1ob29rICdwb3N0LWNvbW1hbmQtaG9vaworICAgICAg
ICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLWluLWNvbnRleHQt
bW9kZSBuaWwgJ2xvY2FsKQorICAgICAgICAgOzsgSWYgYHNhdmUtcGxhY2UtbW9kZScgb3Igc2lt
aWxhciBpcyB1c2VkLCBwb2ludCBjb3VsZCBzdGFydCB3aXRoaW4KKyAgICAgICAgIDs7IGEgY29k
ZSBibG9jayBzbyBpbml0aWFsaXplIGZyb20gdGhhdCBzdGF0ZS4KKyAgICAgICAgIChydW4td2l0
aC10aW1lciAwLjAxIG5pbAorICAgICAgICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMt
LWVuYWJsZS1jb2RlLWJsb2NrLWluLWNvbnRleHQtbW9kZSkKKyAgICAgICAgIDs7IEZvciBlYWNo
IGVsaWdpYmxlIGNvbW1hbmQsIGV4ZWN1dGUgaXQgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQsCisg
ICAgICAgICA7OyBvdGhlcndpc2UgaW4gdGhlIGBtYXJrZG93bi10cy1tb2RlJyBidWZmZXIncyBj
b250ZXh0LgorICAgICAgICAgKGFkZC1ob29rICdwcmUtY29tbWFuZC1ob29rCisgICAgICAgICAg
ICAgICAgICAgIydtYXJrZG93bi10cy0tbWF5YmUtcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayBu
aWwgJ2xvY2FsKQorICAgICAgICAgOzsgUHJ1bmUgc3RhbGUgY29kZSBibG9jayBvdmVybGF5cyB3
aGVuIHRoZSBob3N0IHBhcnNlIHRyZWUKKyAgICAgICAgIDs7IGNoYW5nZXMgKGUuZy4sIHdoZW4g
ZmVuY2VkIGNvZGUgYmxvY2sgZGVsaW1pdGVycyBhcmUKKyAgICAgICAgIDs7IGRlbGV0ZWQgYnV0
IHRoZSBvdmVybGF5IGZyb20gYSBwcmlvciBmb250aWZpY2F0aW9uIHJlbWFpbnMpLgorICAgICAg
ICAgKHRyZWVzaXQtcGFyc2VyLWFkZC1ub3RpZmllcgorICAgICAgICAgIHRyZWVzaXQtcHJpbWFy
eS1wYXJzZXIKKyAgICAgICAgICAjJ21hcmtkb3duLXRzLS1ob3N0LXJhbmdlcy1ub3RpZmllcikp
CisgICAgICAgICh0CisgICAgICAgICAocmVtb3ZlLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rCisg
ICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2staW4t
Y29udGV4dC1tb2RlICdsb2NhbCkKKyAgICAgICAgIChyZW1vdmUtaG9vayAncHJlLWNvbW1hbmQt
aG9vaworICAgICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21t
YW5kLWluLWNvZGUtYmxvY2sgJ2xvY2FsKQorICAgICAgICAgKHRyZWVzaXQtcGFyc2VyLXJlbW92
ZS1ub3RpZmllcgorICAgICAgICAgIHRyZWVzaXQtcHJpbWFyeS1wYXJzZXIKKyAgICAgICAgICAj
J21hcmtkb3duLXRzLS1ob3N0LXJhbmdlcy1ub3RpZmllcikpKSkKKworKGRlZmluZS1taW5vci1t
b2RlIG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUKKyAgIk1pbm9yIG1vZGUgZW5hYmxlZCBpZiBw
b2ludCBpcyB3aXRoaW4gYSB0YWJsZS4KK1RoaXMgZW5hYmxlcyB0aGUga2V5bWFwIGBtYXJrZG93
bi10cy1pbi10YWJsZS1tb2RlLW1hcCcuIgorICA6Z3JvdXAgJ21hcmtkb3duLXRzCisgIDpsaWdo
dGVyIG1hcmtkb3duLXRzLWluLXRhYmxlLW1vZGUtbGlnaHRlcgorICA6aW50ZXJhY3RpdmUgbmls
CisgIChtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS11cGRhdGUtb3YpKQorCisoZGVmdmFyLWxv
Y2FsIG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92IG5pbCkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1pbi10YWJsZS1tb2RlLWdldC1vdiAocG9zKQorICAiUmV0dXJuIHRoZSBgbWFya2Rvd24t
dHMtaW4tdGFibGUtbW9kZScgb3ZlcmxheSBhdCBQT1MuIgorICAoc2VxLWZpbmQgKGxhbWJkYSAo
b3YpCisgICAgICAgICAgICAgICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW4t
dGFibGUpCisgICAgICAgICAgICAgICAgb3YpKQorICAgICAgICAgICAgKG92ZXJsYXlzLWF0IHBv
cykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXRhYmxlLXRpY2stdXBkYXRlIChwb3MpCisgICJV
cGRhdGUgdGhlIGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBvdmVybGF5IHRpY2sgYXQgUE9T
LgorSWYgdGhlIG92ZXJsYXkgaXMgbm90IGZvdW5kLCBkbyBub3RoaW5nLiIKKyAgKHdoZW4tbGV0
KiAoKG92IChtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1nZXQtb3YgcG9zKSkpCisgICAgKG92
ZXJsYXktcHV0IG92CisgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1pbi10YWJsZS10aWNr
CisgICAgICAgICAgICAgICAgIChidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaykpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS10YWJsZS10aWNrLXN0YWxlLXAgKHBvcykKKyAgIlJldHVybiBub24t
bmlsIGlmIHRoZSB0YWJsZSBhdCBQT1MgbWlnaHQgaGF2ZSBjaGFuZ2VkLgorSXQgaXMgdXAgdG8g
dGhpcyBmdW5jdGlvbidzIGNhbGxlcnMgdG8gY2FsbAorYG1hcmtkb3duLXRzLS10YWJsZS10aWNr
LXVwZGF0ZScuIgorICAod2hlbi1sZXQqICgob3YgKG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2Rl
LWdldC1vdiBwb3MpKSkKKyAgICAobm90IChlcSAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRz
LWluLXRhYmxlLXRpY2spCisgICAgICAgICAgICAgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNr
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLXVwZGF0ZS1vdiAoKQor
ICAiTWFuYWdlIGBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdicuIgorICAoY29uZCAobWFy
a2Rvd24tdHMtaW4tdGFibGUtbW9kZQorICAgICAgICAgKHdoZW4tbGV0KiAoKGF0LXRhYmxlICht
YXJrZG93bi10cy1hdC10YWJsZS1wIG5pbCB0KSkKKyAgICAgICAgICAgICAgICAgICAgICh0YWJs
ZSAoY2RyIGF0LXRhYmxlKSkKKyAgICAgICAgICAgICAgICAgICAgIChiZWcgKHRyZWVzaXQtbm9k
ZS1zdGFydCB0YWJsZSkpCisgICAgICAgICAgICAgICAgICAgICAoZW5kICh0cmVlc2l0LW5vZGUt
ZW5kIHRhYmxlKSkpCisgICAgICAgICAgIChpZiBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1v
dgorICAgICAgICAgICAgICAgOzsgTW92ZSB0aGUgb3ZlcmxheSwgaWYgbmVlZGVkLCBhbmQgcmVz
ZXQgdGhlIHRpY2sgaWYgc28uCisgICAgICAgICAgICAgICAod2hlbiAobm90IChlcSAob3Zlcmxh
eS1zdGFydCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJlZykpCisgICAgICAgICAgICAgICAgIChtb3ZlLW92ZXJsYXkgbWFya2Rv
d24tdHMtLWluLXRhYmxlLW1vZGUtb3YgYmVnIGVuZCkKKyAgICAgICAgICAgICAgICAgKG92ZXJs
YXktcHV0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24tdHMtaW4tdGFibGUtdGljayBuaWwpKQorICAgICAgICAgICAg
IChzZXRxIG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2RlLW92CisgICAgICAgICAgICAgICAgICAg
KG1ha2Utb3ZlcmxheSBiZWcgZW5kIG5pbCB0IG5pbCkpKQorICAgICAgICAgICAob3ZlcmxheS1w
dXQgbWFya2Rvd24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy1pbi10YWJsZSB0KQorICAgICAgICAgICAob3ZlcmxheS1wdXQgbWFya2Rv
d24tdHMtLWluLXRhYmxlLW1vZGUtb3YKKyAgICAgICAgICAgICAgICAgICAgICAgICdldmFwb3Jh
dGUgdCkKKyAgICAgICAgICAgKG92ZXJsYXktcHV0IG1hcmtkb3duLXRzLS1pbi10YWJsZS1tb2Rl
LW92CisgICAgICAgICAgICAgICAgICAgICAgICAncHJpb3JpdHkgJyhuaWwgLiAyMCkpCisgICAg
ICAgICAgIChvdmVybGF5LXB1dCBtYXJrZG93bi10cy0taW4tdGFibGUtbW9kZS1vdgorICAgICAg
ICAgICAgICAgICAgICAgICAgJ2ZhY2UgJ21hcmtkb3duLXRzLWluLXRhYmxlKQorICAgICAgICAg
ICApKQorICAgICAgICAodAorICAgICAgICAgKHdoZW4gbWFya2Rvd24tdHMtLWluLXRhYmxlLW1v
ZGUtb3YKKyAgICAgICAgICAgKGRlbGV0ZS1vdmVybGF5IG1hcmtkb3duLXRzLS1pbi10YWJsZS1t
b2RlLW92KSkpKSkKKworKGRlZmluZS1taW5vci1tb2RlIG1hcmtkb3duLXRzLXRhYmxlLW1vZGUK
KyAgIk1pbm9yIG1vZGUgdG8gZW5hYmxlIGNvbW1hbmRzIGluIHRhYmxlcy4KK0lmIG5vbi1uaWwg
YW5kIGBwb2ludCcgaXMgaW4gYSB0YWJsZSwgZW5hYmxlCitgbWFya2Rvd24tdHMtaW4tdGFibGUt
bW9kZScuIgorICA6Z3JvdXAgJ21hcmtkb3duLXRzCisgIDppbnRlcmFjdGl2ZSBuaWwKKyAgKG1h
cmtkb3duLXRzLS1iYXJmLWlmLW5vdC1tb2RlICdtYXJrZG93bi10cy10YWJsZS1tb2RlKQorICAo
Y29uZCAobWFya2Rvd24tdHMtdGFibGUtbW9kZQorICAgICAgICAgOzsgRW5hYmxlIHRoZSBtaW5v
ciBtb2RlIGBtYXJrZG93bi10cy1pbi10YWJsZS1tb2RlJyBhbmQKKyAgICAgICAgIDs7IGl0cyBr
ZXltYXAgd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBjb2RlIGJsb2NrLgorICAgICAgICAgKGFkZC1o
b29rICdwb3N0LWNvbW1hbmQtaG9vaworICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMt
LWVuYWJsZS1pbi10YWJsZS1tb2RlIG5pbCAnbG9jYWwpCisgICAgICAgICA7OyBJZiBgc2F2ZS1w
bGFjZS1tb2RlJyBvciBzaW1pbGFyIGlzIHVzZWQsIHBvaW50IGNvdWxkIHN0YXJ0IHdpdGhpbgor
ICAgICAgICAgOzsgYSB0YWJsZSwgc28gaW5pdGlhbGl6ZSBmcm9tIHRoYXQgc3RhdGUuCisgICAg
ICAgICAocnVuLXdpdGgtdGltZXIgMC4wMSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAj
J21hcmtkb3duLXRzLS1lbmFibGUtaW4tdGFibGUtbW9kZSkpCisgICAgICAgICh0CisgICAgICAg
ICAocmVtb3ZlLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rCisgICAgICAgICAgICAgICAgICAgICAg
IydtYXJrZG93bi10cy0tZW5hYmxlLWluLXRhYmxlLW1vZGUgJ2xvY2FsKSkpKQogCiA7OzsjIyNh
dXRvbG9hZAogKHdoZW4gKGJvdW5kcCAndHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFsaXN0KQot
ICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZFxcJyIgLiBtYXJrZG93bi10
cy1tb2RlLW1heWJlKSkKLSAgOzsgVG8gYmUgYWJsZSB0byB0b2dnbGUgYmV0d2VlbiBhbiBleHRl
cm5hbCBwYWNrYWdlIGFuZCBjb3JlIHRzLW1vZGU6CisgIChhZGQtdG8tbGlzdCAnYXV0by1tb2Rl
LWFsaXN0ICcoIlxcLm1kXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQorICAoYWRkLXRvLWxpc3Qg
J2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tYXJrZG93blxcJyIgLiBtYXJrZG93bi10cy1tb2RlKSkK
KyAgKGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwubWR4XFwnIiAuIG1hcmtkb3du
LXRzLW1vZGUpKQogICAoYWRkLXRvLWxpc3QgJ3RyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlz
dAogICAgICAgICAgICAgICAgJyhtYXJrZG93bi1tb2RlIC4gbWFya2Rvd24tdHMtbW9kZSkpKQog
Ci0tIAoyLjU0LjAKCg==
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 24 Apr 2026 00:13:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 23 20:13:59 2026
Received: from localhost ([127.0.0.1]:37099 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wG4BC-0003WM-MK
	for submit <at> debbugs.gnu.org; Thu, 23 Apr 2026 20:13:59 -0400
Received: from mail-dy1-x1331.google.com ([2607:f8b0:4864:20::1331]:54508)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wG4B9-0003W9-Vo
 for 80740 <at> debbugs.gnu.org; Thu, 23 Apr 2026 20:13:57 -0400
Received: by mail-dy1-x1331.google.com with SMTP id
 5a478bee46e88-2c15849aa2cso9887934eec.0
 for <80740 <at> debbugs.gnu.org>; Thu, 23 Apr 2026 17:13:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1776989634; x=1777594434; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :face:references:in-reply-to:subject:cc:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=GeqeBppw8An3D4TvO7jBsC+zztzQFJVYf5kXOd5ZghU=;
 b=sEO9vzRY7iHOO5Wn/BN3baDaYxkbjdNFpqgR6u+wBokFbThMztIorNiVxuw94XV8V5
 7SbFwAZ5m/vylHcwKiDuo+HCJHo8WF49doNqeBllrS4/HYPs9UW5pozYbQuJ4G0bKLPc
 W06KevWCfCkuKpxcak94cyde/Y+ss9VBY+U106TWXQeNRWSg7Me+5VoNAg83lpBVFMCe
 e4nJg2KUvs8cl22Wyczeut6g4dAMsUS+0QctWamvocDpls/rAiurqaDZj0sIn7W1c1CG
 LoT2cQfTigMh56+QZc33j4mmXdqNDLONB3I/D3llwnKlwu/sROUOdlQQ4bONe8PTZ4xU
 yblg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1776989634; x=1777594434;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :face:references:in-reply-to:subject:cc:to:from:x-gm-gg
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=GeqeBppw8An3D4TvO7jBsC+zztzQFJVYf5kXOd5ZghU=;
 b=lokqQ9pRKCfEIUKJoA7MwSzUXF7JFCfEMWL9xCBzmvGn05kgg+ZRE/WHk1JEHAN9Ae
 Cm1jqfcmG0SW7sfjGWitNkiTwHMVnGzVCBtZ+SszSfYLGvw9UmaO+OutoaSu4S68RS7X
 INAgtK4m9Aq/9qLhEMG+foxWOzahvI1BHKFY188aeQqkP2uAtTZ47qRYEnYDwfWzoS32
 YakcrXSZPrpO4hFCGyG4xjEYqyvmEzMEapFA+c3UOsCskm10CVIxL3z6PrK8btITnsqp
 /aQuComZeZ/MSQdmcptL5m5b93kYIi00E4u414sgtjy3p5Ck8Wll5Gh5QR1P8Z1DYGUL
 g8yg==
X-Forwarded-Encrypted: i=1;
 AFNElJ8jxdSjTljphHf+R/L+5polR6yyGtHTDVnPE9ZtYpETn+ODEsOm1lh3DLnCpQhyJdXrNOEMEA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yzqslq0Qm1e7XzyXz0HmJX14C/9MkJ3xUoMweZHAEZczx4nT2LX
 4+cCaoZSYaO2OHbd+l690pUk2ocV2N08S69e3rO0v1mGXjuucXs53KogxU7EHAGO0PCcqQ==
X-Gm-Gg: AeBDiesJzlT9LQ0SR78moW097Tw9of8g1AWQa/5Nj/cqWNtO9LBBW558Yc1SdVBsinm
 jecqDMV1u00sBbmwzjZWKq+2rnuAn/y77hiK9H+6rMrLGA+3mIRf8VKMI4E9efdyiReswCUA5S6
 uCuOHaR++TbIzUJuS6IwH4wKlfGs/qAHNSnwso9imJbeCsfV/+AuKKH24aSyIeiEYOuNpMZwCTL
 rfjfGehwlKMKyI6FYgG2DtGYZIenzJ5LdYQdEw9CeU9Jia5hf1yk+P1CTgvSynUzOZyBheyJQDc
 tA+4eqinYjHqy/wYXQ/RL0RJE8auM8/dq7U5vTn2HHW+aPqZhpdMfhMfxZVYQvtWBn+LUDHC3U8
 KB0X9aTLzBMj8OAcyXf/IY7UzimmuVXUYcfmom3HgqVhE9tMtDMZ71CVAGPPe4Crsq3wZhvjaqU
 Abc/gWcXcIwCnyKcnGBe/fsKKYow4NQABfISjeI8nIN9ZKyr7A+Vu+nqQNpF4gNHsPsvg/7VhLl
 3YLeBa75QBNox+EPrmTlGYDAH4OxQd5bps66gIO7hPIObsM2/XLfGqHjKJyc7Sdeys=
X-Received: by 2002:a05:7300:3723:b0:2de:1508:937c with SMTP id
 5a478bee46e88-2e478a2f091mr15668722eec.24.1776989634278; 
 Thu, 23 Apr 2026 17:13:54 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-29.dial-up.telesp.net.br.
 [201.93.59.29]) by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2e53d8b3dd9sm29534290eec.27.2026.04.23.17.13.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 23 Apr 2026 17:13:53 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <86qzocgu9t.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN> <86qzocgu9t.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Thu, 23 Apr 2026 21:13:44 -0300
Message-ID: <m2fr4ldxl3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 2.0 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  Eli Zaretskii writes: >> From: Rahul Martim Juliato >> Cc:
 Yuan Fu , rahuljuliato@HIDDEN, >> shipmints@HIDDEN, 80740 <at> debbugs.gnu.org
 >> Date: Sat, 18 Apr 2026 12:22:42 -0300 >> >> Eli Zaretskii writes: >> >>
 >> [...] 
 Content analysis details:   (2.0 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
 headers
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rahuljuliato[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
 no trust [2607:f8b0:4864:20:0:0:0:1331 listed in]
 [list.dnswl.org]
 1.0 FREEMAIL_REPLY         From and body contain different freemails
X-Debbugs-Envelope-To: 80740
Cc: casouri@HIDDEN, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
>> Cc: Yuan Fu <casouri@HIDDEN>,  rahuljuliato@HIDDEN,
>>   shipmints@HIDDEN,  80740 <at> debbugs.gnu.org
>> Date: Sat, 18 Apr 2026 12:22:42 -0300
>>=20
>> Eli Zaretskii <eliz@HIDDEN> writes:
>>=20
>> >> From: Yuan Fu <casouri@HIDDEN>
>> >> Date: Fri, 17 Apr 2026 18:18:16 -0700
>> >> Cc: Eli Zaretskii <eliz@HIDDEN>,
>> >>  shipmints@HIDDEN,
>> >>  80740 <at> debbugs.gnu.org
>> >>
>> >> Cool, thanks! I don=E2=80=99t see it merged though, is it merged?
>> >
>> > No.  From what Rahul said, I deduced that an updated patch is in the
>> > works.  Did I misunderstand?
>>=20
>> Hi everyone,
>>=20
>> The last patch I sent
>> (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D80740#37) is in good
>> shape, and all previous comments have been addressed.
>>=20
>> However, since we decided to give it another week, we identified three
>> small edge-case bugs that we're currently working on.
>>=20
>> If you're willing to wait, we can send a refined update around the
>> middle of next week.
>
> Fine with me, will wait.
>
>> St=C3=A9phane is also working on a separate patch with additional
>> features. That will be submitted independently (I won't spoil it, but
>> it's good stuff).
>>=20
>> I'm also working on a test file to ensure that future changes to this
>> mode (including improvements or grammar updates) don't introduce
>> regressions, and that any issues can be detected and diagnosed early.
>> This will also be submitted separately.
>
> TIA.

Hi Eli,

Just a quick update: we're almost there, but will likely need a couple
more days.

In addition to the fixes, we're also finishing up table editing support.

We are now using with-work-buffer, as the upstream issues have been
resolved. We also moved to a cleaner implementation for the table
handling logic.

We should have the updated patch ready very soon.

Thanks for your patience.

--=20
Rahul





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

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


Received: (at 80740) by debbugs.gnu.org; 18 Apr 2026 15:31:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 18 11:31:24 2026
Received: from localhost ([127.0.0.1]:52350 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wE7dj-0001Pj-BM
	for submit <at> debbugs.gnu.org; Sat, 18 Apr 2026 11:31:24 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:48646)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1wE7dg-0001P5-UZ
 for 80740 <at> debbugs.gnu.org; Sat, 18 Apr 2026 11:31:21 -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 1wE7db-0006wd-IO; Sat, 18 Apr 2026 11:31:15 -0400
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=fCS0vlREiXgRGVgXryRerHCdhVb5S4AuBtIhXlsiZXA=; b=UOc/UPoKXAhdjt8F0dcP
 eqAB+MzD+LFviA77gWmY2dly3dG5Y5hQ72iwmk+AywT+Jxm5DuZoqPRTOlsqJnk4kVVYQjveoreDD
 9Y4R6DVSkrPW7tTcXebF/gcMvtuncMvM949BkyADhzUZ1FaYNq2aelSymcgb3Bny1IaEWzvWcK6fs
 k1SiVJWbNq/rXimkQJDV0f8PqyT+c59BaElhJBsiHWWC8g5gFIp4W5OaWkzPmE8fJ7k4DD4sUOh5o
 cHQY8PwWwz4wsO35l0L7H0lmEhQGLorwrzcfWO9iISS1R5LJlYdi8S4ZmSRM+xMJwFm6RGuUdqH5t
 s1v6G5HNV778vg==;
Date: Sat, 18 Apr 2026 18:31:10 +0300
Message-Id: <86qzocgu9t.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
In-Reply-To: <m2tst8jnst.fsf@HIDDEN> (message from Rahul Martim Juliato on
 Sat, 18 Apr 2026 12:22:42 -0300)
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
 <m2tst8jnst.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80740
Cc: casouri@HIDDEN, rahuljuliato@HIDDEN, 80740 <at> debbugs.gnu.org,
 shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
> Cc: Yuan Fu <casouri@HIDDEN>,  rahuljuliato@HIDDEN,
>   shipmints@HIDDEN,  80740 <at> debbugs.gnu.org
> Date: Sat, 18 Apr 2026 12:22:42 -0300
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> >> From: Yuan Fu <casouri@HIDDEN>
> >> Date: Fri, 17 Apr 2026 18:18:16 -0700
> >> Cc: Eli Zaretskii <eliz@HIDDEN>,
> >>  shipmints@HIDDEN,
> >>  80740 <at> debbugs.gnu.org
> >>
> >> Cool, thanks! I don’t see it merged though, is it merged?
> >
> > No.  From what Rahul said, I deduced that an updated patch is in the
> > works.  Did I misunderstand?
> 
> Hi everyone,
> 
> The last patch I sent
> (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=80740#37) is in good
> shape, and all previous comments have been addressed.
> 
> However, since we decided to give it another week, we identified three
> small edge-case bugs that we're currently working on.
> 
> If you're willing to wait, we can send a refined update around the
> middle of next week.

Fine with me, will wait.

> Stéphane is also working on a separate patch with additional
> features. That will be submitted independently (I won't spoil it, but
> it's good stuff).
> 
> I'm also working on a test file to ensure that future changes to this
> mode (including improvements or grammar updates) don't introduce
> regressions, and that any issues can be detected and diagnosed early.
> This will also be submitted separately.

TIA.




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

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


Received: (at 80740) by debbugs.gnu.org; 18 Apr 2026 15:22:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 18 11:22:56 2026
Received: from localhost ([127.0.0.1]:52259 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wE7VX-0000HF-Pb
	for submit <at> debbugs.gnu.org; Sat, 18 Apr 2026 11:22:56 -0400
Received: from mail-vs1-xe30.google.com ([2607:f8b0:4864:20::e30]:60701)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wE7VV-0000Gl-GN
 for 80740 <at> debbugs.gnu.org; Sat, 18 Apr 2026 11:22:54 -0400
Received: by mail-vs1-xe30.google.com with SMTP id
 ada2fe7eead31-6137374b106so1246372137.1
 for <80740 <at> debbugs.gnu.org>; Sat, 18 Apr 2026 08:22:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1776525772; x=1777130572; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :face:references:in-reply-to:subject:cc:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=Zp2W9AyWrynrUb7oV5XW9Thv9SmrwOgrDlKD6KSmXEY=;
 b=WT4JhPMpJMwEsitvNmMGVBWY2aFoa/O7kj3YLW8GepKYnbrmBt9gxBxhBInGQS5dq9
 t80JMFw+AsqIFXyuvUofxvz0YxOcLt60dOd9Nj3981r94kFwQp6NgRmHAN2gQCnwE1wb
 hOS3huc1wM1Zz2S6aXZqJxryFjN25N08TKNqFI2tOuNtFQ2rry8IEjLmyzBgcNsjPdqK
 VNwBQvnWD2G5IX9C7Hs7uE2ZFtp6Vah5VInKiP1CmuKUNgp2vA0CnSJdSzW6z+sQdwW8
 BwS4nb3+M+FCLfVPafIFHPImOuTNjqgNRe7J/+FB3DDogYUi2/MsGI4JSmQL20VdZfSW
 oF1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1776525772; x=1777130572;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :face:references:in-reply-to:subject:cc:to:from:x-gm-gg
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=Zp2W9AyWrynrUb7oV5XW9Thv9SmrwOgrDlKD6KSmXEY=;
 b=LvdC3ZeveFeFHobcagPhdWx55TVqJ6lX8DeCWQU5eXCMY+9AI6Hn0HJbrKDyYKfAjh
 aER+iej2bYxLSIH7iOoTrh7s48RK3KBMkheb6MxHIzARMInHzI/f9t675xh+sOp9yqKN
 rJg9N2glg1A4s9Uzdu+3l50DCNHe18hnD3dTNZkjkS7P+3HnV/JTpS9XBg6rc6wfq8x9
 laFjUdBSr/tLbLLTSuisJyRHZpzKEKuYVsJ8hQS+81L9VR9QoQ9bk3XKoFmzgwGsQDJW
 VbKQCSxI4JzZmh9ssnY2vGD7eaaNV7eeMtCBvSUXecatGGWZJpLYTyym8adHn/76YNtS
 IhSw==
X-Forwarded-Encrypted: i=1;
 AFNElJ+OJYlIOiWsCSQQBTfWiiVzPf2kXpTTgx0G1R2SfsSlWFkAdRKIMNZF1ZBLJgOV/ywsEEyyLg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YygWArSei4y4ZQCULZpo1SOow2C55LTwksPlHCl7q6XTJmLtY3g
 tcDO2C7uQWSBjjnUakL0v2x85OgPHkyHRlGho1EQBwljy4ytkcLN0ynW/id/ryx8
X-Gm-Gg: AeBDietMdCxVyT0ka0TRxYOdD69mTB/N02viKndmMeEZzi5jjtUS/5C/sJrfSWly2Nh
 V86qhW/W79J7AkzD2L/xig2+y5KPcBJsKmFh1jqqhkaJgD8HLWd7r55hkwq3EGoGi5RS0UTGafY
 y4UxoTAHMz/X7XoGXHTHiqK0irhjFvP6JgFXWaeA87R4sOX4hJrjshK8dlXetAQkQjFUVxE/yvk
 g1cSnL0hNp6sRfsZd6BA05Q+6wB6E3rahmTbbF+lwMQTwVaG/q9305a2i4DtCCTpGe8yme/lQpf
 3116iXj5XLdfhzIhaXSJqW4EDUviQNv9KAvKLOv6UL0b3iKCjP9d637fx2a3ouqCGWrb8hJTOi5
 vfa1111Lp4dh/lyR8Rp7jcsV869pZoibm6XjVqUULVdyzUpHkLLjHhKSuu5LuNy8EyrvDMFjGNy
 cBzwpOO5QdIe1UvLbHOpA+cZzWGIMO66MHhiJUnVlSW6YCsRz0oP0Uuw31U3dKkY9GZHZRhz2kX
 VidsmfxFNH3wJPb53sdi2D9t8BhfxmmMVQVgFy+whF+fXMuNMFIr+Z1m2w=
X-Received: by 2002:a05:6102:3581:b0:611:a5b6:f4d3 with SMTP id
 ada2fe7eead31-616f73fa0e4mr3346199137.22.1776525772102; 
 Sat, 18 Apr 2026 08:22:52 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-183.dial-up.telesp.net.br.
 [201.93.59.183]) by smtp.gmail.com with ESMTPSA id
 ada2fe7eead31-61747cb52c9sm2359645137.9.2026.04.18.08.22.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 18 Apr 2026 08:22:51 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <86ldekiucu.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
 <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> <86ldekiucu.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Sat, 18 Apr 2026 12:22:42 -0300
Message-ID: <m2tst8jnst.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 2.0 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  Eli Zaretskii writes: >> From: Yuan Fu >> Date: Fri, 17 Apr
    2026 18:18:16 -0700 >> Cc: Eli Zaretskii , >> shipmints@HIDDEN, >> 80740 <at> debbugs.gnu.org
    >> >> Cool, thanks! I don’t see it merged though, is it merged? > [...]
    
 
 Content analysis details:   (2.0 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rahuljuliato[at]gmail.com)
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:e30 listed in]
                             [list.dnswl.org]
  1.0 FREEMAIL_REPLY         From and body contain different freemails
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, rahuljuliato@HIDDEN, 80740 <at> debbugs.gnu.org,
 shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Yuan Fu <casouri@HIDDEN>
>> Date: Fri, 17 Apr 2026 18:18:16 -0700
>> Cc: Eli Zaretskii <eliz@HIDDEN>,
>>  shipmints@HIDDEN,
>>  80740 <at> debbugs.gnu.org
>>
>> Cool, thanks! I don=E2=80=99t see it merged though, is it merged?
>
> No.  From what Rahul said, I deduced that an updated patch is in the
> works.  Did I misunderstand?

Hi everyone,

The last patch I sent
(https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D80740#37) is in good
shape, and all previous comments have been addressed.

However, since we decided to give it another week, we identified three
small edge-case bugs that we're currently working on.

If you're willing to wait, we can send a refined update around the
middle of next week.

St=C3=A9phane is also working on a separate patch with additional
features. That will be submitted independently (I won't spoil it, but
it's good stuff).

I'm also working on a test file to ensure that future changes to this
mode (including improvements or grammar updates) don't introduce
regressions, and that any issues can be detected and diagnosed early.
This will also be submitted separately.

--
Rahul Martim Juliato




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

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


Received: (at 80740) by debbugs.gnu.org; 18 Apr 2026 07:46:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 18 03:46:40 2026
Received: from localhost ([127.0.0.1]:47192 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wE0O0-0005he-Cg
	for submit <at> debbugs.gnu.org; Sat, 18 Apr 2026 03:46:40 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:34354)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1wE0Ny-0005hE-12
 for 80740 <at> debbugs.gnu.org; Sat, 18 Apr 2026 03:46:38 -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 1wE0Ns-0003jn-Je; Sat, 18 Apr 2026 03:46:32 -0400
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=OE0WtDA0Jp3n58vnpWoRFwA5YRFuCyEBS4jbwQ9RyN4=; b=rP7ZADRY+HINjoRBi33F
 Ni70qYi8xtQ+KEkQlE8BjlAWDmp9zLtRARFeG5Gnm84nsVyFfbk4RhXw7Ur5Uj6Rfx+WDQZDmUIOj
 ABMoaks/Mq+CtS2QLQ4aoRsVLRVlDk3V3yk8pQuqT49654a58XZrw4xXKYaImfQy5eLBlUbyIb2h3
 W6tSir5SskHFMGGs74l24I44HpqcdjGMtoC0RWR9/sEGxhNCopYUvakE4LM3Y7HmmHDjkTlZM/zYD
 xyNdDVrubwghEzTUqjv6s3ELA8sQo6EwMX8k3XhkcPqMV/04VwD0Lse7eIsx+VGqV/UT2bGlyOUfU
 DKnwNJhVUMGr7w==;
Date: Sat, 18 Apr 2026 10:46:25 +0300
Message-Id: <86ldekiucu.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN> (message from
 Yuan Fu on Fri, 17 Apr 2026 18:18:16 -0700)
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN> <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN> <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80740
Cc: rahuljuliato@HIDDEN, 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Yuan Fu <casouri@HIDDEN>
> Date: Fri, 17 Apr 2026 18:18:16 -0700
> Cc: Eli Zaretskii <eliz@HIDDEN>,
>  shipmints@HIDDEN,
>  80740 <at> debbugs.gnu.org
> 
> Cool, thanks! I don’t see it merged though, is it merged?

No.  From what Rahul said, I deduced that an updated patch is in the
works.  Did I misunderstand?




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

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


Received: (at 80740) by debbugs.gnu.org; 18 Apr 2026 01:18:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 17 21:18:36 2026
Received: from localhost ([127.0.0.1]:42594 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wDuKP-0008Ig-NV
	for submit <at> debbugs.gnu.org; Fri, 17 Apr 2026 21:18:36 -0400
Received: from mail-dl1-x1233.google.com ([2607:f8b0:4864:20::1233]:44251)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1wDuKM-0008Ht-0r
 for 80740 <at> debbugs.gnu.org; Fri, 17 Apr 2026 21:18:31 -0400
Received: by mail-dl1-x1233.google.com with SMTP id
 a92af1059eb24-12c7212836bso2811389c88.0
 for <80740 <at> debbugs.gnu.org>; Fri, 17 Apr 2026 18:18:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1776475109; x=1777079909; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=/ia390kStc51qxwkp7Xu59X5xNEexDaafz4H0htA2Oc=;
 b=STysKU+jf4gMqWZsZCACj9+TzopFBM7+qb8YNRj2ogUgvVOs69dixc/iyWmslO7m6m
 2pNbUhQuHq3rbdzoqaF3j/+MNW0sJgf8Q7kfTjaLOSjp444/du5L+g0ruNupb2IwQmOE
 32+pDlDpwX0vkG7wWZ4lCMMmd6aKSE1SNZ8hLgD2CiZNMctJ3m2XINKfZDhrcfhq0i3s
 GoHvhGt/E61Z0nimUykUJhs7vXHmvAtRf1QBE7XTLHlt8MrVkFXmttvGIId64WHuK4/+
 ByWMw3zLkUX02A3kLlZagoAEOx1asT2dYqk4OTq6I3Q+tZbozGKfaUIDNDpHMvFQO36H
 Unyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1776475109; x=1777079909;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=/ia390kStc51qxwkp7Xu59X5xNEexDaafz4H0htA2Oc=;
 b=hzPGRekd8NPBgk/ofKtqheUV8gVIXEp1wVN/it3lTiCzQYfP1Z0loEtDCgqCoSCODr
 g04GS/QEP8D42reStHSgGSkrk8KoRsnEl2WToREQ26jw6T0x7SjRY8ckcOzNh/yBCmNN
 Ml3hzLM/KCURQ0Fato4tn0HykfSHcXXTAG062EsI8dP2WrLTlj0bVtRY3x7DI4u5rvzQ
 hhnzUNxqdvOwMhYI3406gvxT4fz5EJ4hGAv/l9MTbqv7pyXUNegc4tCV/HNg0btG4szY
 GBOI1nhfkk5/p65omIwp27dtpnVijRc1Qc76wqHha7yREFBs6c/N9j+kH1Fu4yy6Evig
 xmwg==
X-Forwarded-Encrypted: i=1;
 AFNElJ8cL7bHhjT9OHJ8BUVG9vJ+8Fu8Vqy7f20tKxr4SetyfE1eT67bCwW3kyf7mo3OdxJnH+/2Qw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YybyE9R8SsHAudN6HfNG1IkLAMhSZL6C19zOKNovrhs+pcM9YcS
 MquTfREQ+qBo393Cex5aMf5VlwtuaSzitPPk/Ytp5TstYMW8Xq2ANwon
X-Gm-Gg: AeBDieuscu/H2UvDkLPD/xBH/4pdnHIU8kh98nQnQHem90GACOSXiPgkVKRwZ8fHVON
 uTFti9OGHMJboAH4+nVweVhC/h3IS/cH7y/odupkO5qp9QhdDRaBL6winoTzkIaXV8eOhaglG61
 mXTYIFnuSmVXm4Kkh/M9Nv1EX1vZIX7OWVTDJH7aWu7EKRwZlwLJKjrP1aO0n/LRMe0cpHnFgCE
 6ffKgJmOPcIObf0GzfNnQhwMlvjqFp3CxnbWV8Gt9Z91xJ6Euo/Wo4MmW11SnJzy3uXrSPmydLy
 Y/gMzN/ePFTWgzA7XDYaZf/pH6D4a2cb7OVLGuxHmkCUOxy9qLk6gEnmHH0Mb9ri3Tmm7RQH7X/
 YEwiwFGIAKzeVEOzeaSgCUjSFHFfDmL11m6joOw+fTDmkgDXKFjHFPaCE6o/Lx2U5uCsFTdheMl
 OldtWg5RfH5z+4RyXGrPm4JhvaLgc7GbFzSOaHyBG9FvMYKR2Xb8vCVddF
X-Received: by 2002:a05:7301:4185:b0:2d9:fa9c:87a9 with SMTP id
 5a478bee46e88-2e464ea79b5mr2835631eec.5.1776475108411; 
 Fri, 17 Apr 2026 18:18:28 -0700 (PDT)
Received: from smtpclient.apple ([2601:645:c686:b320:e5b4:ad68:f329:dbbc])
 by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2e53ccd2564sm4774492eec.18.2026.04.17.18.18.27
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 17 Apr 2026 18:18:27 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
From: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <m2y0iparzm.fsf@HIDDEN>
Date: Fri, 17 Apr 2026 18:18:16 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <C51FFBBB-7466-4F48-AEAD-3C64DFCF6AF1@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN> <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
 <m2y0iparzm.fsf@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Mailer: Apple Mail (2.3826.700.81)
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Eli Zaretskii <eliz@HIDDEN>, 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)



> On Apr 14, 2026, at 7:15=E2=80=AFPM, Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>=20
> Yuan Fu <casouri@HIDDEN> writes:
>=20
>>> On Apr 9, 2026, at 1:06=E2=80=AFPM, Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>>>=20
>>> Eli Zaretskii <eliz@HIDDEN> writes:
>>>=20
>>>>> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato =
<rahuljuliato@HIDDEN>,
>>>>> 80740 <at> debbugs.gnu.org
>>>>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
>>>>> Date: Wed, 08 Apr 2026 21:01:50 -0300
>>>>=20
>>>> These non-ASCII characters should not be used without checking if =
they
>>>> can be displayed (see char-displayable-p).  This is especially
>>>> important on TTY frames.  Bonus points for designing ASCII
>>>> replacements for when these non-ASCII symbols cannot be displayed.
>>>>=20
>>>=20
>>> Agreed.
>>>=20
>>> I changed those to be cons cells in the form of (rich-form . =
ansi-form)
>>> or nil. :safe is used to ensure both elements have the same type. If
>>> nil, it means nothing will be rendered when markup is hidden.
>>>=20
>>> I also added a resolver 'markdown-ts--resolve-display-value', to =
select
>>> and check the symbols.
>>>=20
>>>>> +(defcustom markdown-ts-hard-line-break-space
>>>>> +  (lambda (n) (make-string n ?=C2=B6))
>>>>=20
>>>> Why is ?=C2=B6 hard-coded, instead of using
>>>> markdown-ts-hard-line-break-backslash?
>>>>=20
>>>=20
>>>=20
>>> It shouldn't be this way, you're right.
>>>=20
>>> 'markdown-ts-hard-line-break-space' now uses
>>> 'markdown-ts-hard-line-break-backslash' as the default character.
>>>=20
>>>=20
>>>>> +(defface markdown-ts-emphasis '((t (:inherit italic)))
>>>>> +  "Face for Markdown emphasis (italic) text.")
>>>>> +
>>>>> +(defface markdown-ts-bold '((t (:inherit bold)))
>>>>> +  "Face for Markdown strong emphasis (bold) text.")
>>>>> +
>>>>> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
>>>>> +  "Face for Markdown strikethrough text.")
>>>>>=20
>>>>> (defface markdown-ts-block-quote '((t (:inherit italic)))
>>>>>  "Face for Markdown block quotes.")
>>>>>=20
>>>>> +(defface markdown-ts-link '((t (:inherit link)))
>>>>> +  "Face for Markdown link text and image descriptions.")
>>>>=20
>>>> Is it justified to have separate faces here?  Why would users want =
to
>>>> have something other than 'bold' for showing the bold face in MD
>>>> buffers?
>>>>=20
>>>> Also, faces can (and I think should in this case) have the :version
>>>> tag.
>>>>=20
>>>=20
>>> Good question. About 'markdown-ts-strikethrough', there is no =
generic
>>> strikethrough face (that I could find) in Emacs to inherit from, so =
it
>>> has to exist.
>>>=20
>>> For the others, the motivation is the same as in org-mode =
('org-italic',
>>> 'org-bold', 'org-link') and rst-mode. The default inherits from the =
base
>>> face so things look right out of the box, but users get a =
mode-specific
>>> handle to customize without touching global faces. That alone is =
worth
>>> it, but there is a second angle: it makes theming more controlled.
>>>=20
>>> When 'markdown-ts-hide-markup' is enabled, all markup characters
>>> disappear and what remains is just the rendered text. A theme that =
wants
>>> to give a subtle visual hint about the underlying markup, such as a
>>> faint background on emphasis or a different tint on links, can do so =
by
>>> targeting 'markdown-ts-emphasis' or 'markdown-ts-link' specifically,
>>> without affecting every italic or linked piece of text in every =
other
>>> buffer.
>>>=20
>>> Added :version tag to all faces.
>>>=20
>>>>> +(defun markdown-ts--code-block-language-mode (lang)
>>>>> +  "Compute and cache a mode symbol from LANG, a symbol.
>>>>> +Consult the `markdown-ts-code-block-map' cache, or probe mode =
names.
>>>>> +Return a valid mode symbol or nil."
>>>>> +  (if-let* ((mapped-mode (alist-get lang =
markdown-ts-code-block-modes)))
>>>>> +      mapped-mode
>>>>> +    (let ((lang-string (symbol-name lang)))
>>>>> +      (catch :mode
>>>>> +        (dolist (mode
>>>>> +                 (list
>>>>> +                  ;; Try a treesit mode using the raw string.
>>>>> +                  (concat lang-string "-ts-mode")
>>>>> +                  ;; Try a conventional mode using the raw =
string.
>>>>> +                  (concat lang-string "-mode")
>>>>> +                  ;; Try a treesit mode using the downcased =
string.
>>>>> +                  (concat (downcase lang-string) "-ts-mode")
>>>>> +                  ;; Try a conventional mode using the downcased =
string.
>>>>> +                  (concat (downcase lang-string) "-mode")))
>>>>> +          (setq mode (intern mode))
>>>>> +          (when (fboundp mode)
>>>>> +            (push (cons lang mode) markdown-ts-code-block-modes)
>>>>> +            (throw :mode mode)))))))
>>>>=20
>>>> I think this should use treesit-major-mode-remap-alist and
>>>> major-mode-remap-alist, at least before falling back on the above
>>>> hard-coded conventional modes, if not instead that.  This will =
allow
>>>> users to customize these remappings only once.
>>>>=20
>>>=20
>>> Done. It now also checks both 'treesit-major-mode-remap-alist' and
>>> 'major-mode-remap-alist'.
>>>=20
>>>>> +(define-minor-mode markdown-ts-code-block-mode
>>>>> +  "Mode enabled if point is within a fenced code block."
>>>>> +  :interactive nil)
>>>>=20
>>>> Does this mean this mode is enabled automatically?
>>>>=20
>>>> Thanks.
>>>=20
>>>=20
>>> Yes, it is enabled automatically. 'markdown-ts-mode' adds
>>> 'markdown-ts--enable-code-block-mode' to 'post-command-hook'
>>> (buffer-local), which calls '(markdown-ts-code-block-mode 1)' when =
point
>>> enters a fenced code block and '(markdown-ts-code-block-mode -1)' =
when
>>> it leaves. The ':interactive nil' just keeps it out of 'M-x' =
completion,
>>> it is not meant to be toggled by hand.
>>>=20
>>> Its main purpose is to activate 'markdown-ts-code-block-mode-map', a
>>> keymap that routes common editing commands (indentation, comment, =
etc.)
>>> through the language mode of whichever code block point is currently =
in.
>>>=20
>>>=20
>>>=20
>>> Please find attached an updated patch.
>>>=20
>>> Thanks
>>>=20
>>> --=20
>>> Rahul Martim Juliato
>=20
>>=20
>> First of all, thanks for all the hard work! This is awesome, very
>> through and clean and well-documented code!
>=20
>=20
> Hi Yuan,
>=20
> Thanks for the kind words and for the careful review!
>=20
>=20
>>=20
>> The patch LGTM, and I think it can be merged as-is. Treat the =
comments
>> below more as discussion. And in any case, we should merge the patch
>> as-is and follow up with the points below. I didn=E2=80=99t read the =
code
>> line-by-line, I=E2=80=99m sure you=E2=80=99ve tested the =
functionality, I=E2=80=99m more
>> looking at general patterns and design, and the user interface.
>>=20
>=20
> Even though you suggested merging as-is and following up later, =
St=C3=A9phane
> and I went ahead and decided addressing your points before cementing =
the
> symbol names, so the merged patch already incorporates them.
>=20
>=20
>> Maybe variables like markdown-ts-checked-checkbox can make use of
>> icons.el? Just define the symbol and text variant, and there=E2=80=99s =
also a
>> builtin image variant you can use for checkboxes (the one that custom
>> uses).
>>=20
>=20
> Good idea.
>=20
> I took a hybrid approach so users can force their own string (like the
> default UTF symbol or something from NerdFonts) or the SVG icon (from
> icon.el) while at the same time not loosing the fallback Eli asked us =
to
> provide.
>=20
> `markdown-ts-checked-checkbox' / `markdown-ts-unchecked-checkbox' now
> accept three value forms:
>=20
>  - cons (PREFERRED . FALLBACK) -- the default existing behavior
>  - the symbol `icon'           -- defer to a corresponding icons.el =
icon
>  - nil                         -- show raw markup
>=20
> When the value is `icon', the renderer calls `icon-string' on
> `markdown-ts-checked-checkbox-icon' / =
`markdown-ts-unchecked-checkbox-icon',
> which we defined via `define-icon' with image / symbol / text variants
> (the image variant uses etc/images/checked.svg and unchecked.svg, the
> same files used by the custom checkbox widget).  Users can configure
> the icons via `M-x customize-icon' or override globally via
> `icon-preference', and on TTY frames icons.el automatically degrades
> image -> symbol -> text.
>=20
>=20
>> Cons are fine too, but maybe a list for better future extensibility
>> instead of strictly car and cdr.
>=20
> Done. `markdown-ts-code-block-modes' entries are now lists `(LANGUAGE
> MAJOR-MODE)' instead of cons cells, so we can grow them later without
> breaking the data shape.  The docstring example and all callsites were
> updated accordingly.
>=20
>>=20
>>> +    (,(intern "c#") . c-sharp)
>>=20
>> Usually people use cs or csharp, I believe. And py, rb, rs, are
>> strange choices. Is markdown-ts-code-block-modes meant for =
non-conventional names?
>>=20
>=20
> Two fixes here.  First, the value was actually wrong. `c-sharp' is not =
a
> real mode; I corrected it to `csharp-ts-mode'.  Second, you're right
> that the alist's purpose was unclear, so I rewrote the docstring to =
lead
> with that purpose:
>=20
>  Extra mappings from code block language tags to major modes.
>  Entries here are only needed when the language tag in a fenced
>  code block does NOT match the conventional mode name derivation,
>  e.g. the user writes ```ts instead of ```typescript, or ```py
>  instead of ```python.  For tags that already resolve via the
>  standard "-ts-mode"/"-mode" heuristics there is no need to add
>  an entry.
>=20
> So `py', `rb', `rs', `ts' are exactly the non-conventional short tags
> the alist exists to map.
>=20
>=20
>> markdown-ts-code-block-at-p: markdown-ts-at-code-block-p or
>> markdown-ts-code-block-p sounds more idiomatic to me.
>>=20
>>> Tree-sitter parsers ignore indirect-buffer narrowing and parse the
>>  full base-buffer text;
>>=20
>> If you add a parser in the indirect buffer, that parser will honor =
the
>> narowing in the indirect buffer. It=E2=80=99s just that the parser =
create in
>> the source buffer will not react to indirect buffer=E2=80=99s =
narrowing.
>>=20
>=20
> Good catch! The docstring on =
`markdown-ts--fontify-non-ts-collect-faces'
> was overstated.  Updated it to clarify that it's the *source buffer's*
> parser (which is the one we have here) that ignores indirect-buffer
> narrowing; a parser created in the indirect buffer would honor it.  =
This
> justifies why we fall back to a temp buffer rather than reusing the =
host
> parser via an indirect buffer for ts modes in
> `markdown-ts-code-block-force-conventional-modes'.
>=20
>=20
>>> +         (add-hook 'post-command-hook
>>> +                   #'markdown-ts--enable-code-block-mode nil =
'local)
>>=20
>> I feel that we should have a user option to disable the code block
>> context mode. And maybe it can be named code-block-contex-mode, since
>> code-block-mode has another meaning in this file?
>>=20
>=20
> Both done.
>=20
> The minor mode (and its keymap, helper, and hook predicate) were
> renamed to `markdown-ts-code-block-context-mode' to avoid colliding
> with the per-block major-mode meaning of "code-block-mode" already
> used elsewhere in the file (e.g. the `markdown-ts-code-block-mode'
> overlay property and `markdown-ts-code-block-mode-at' accessor that
> return the major mode for a block).
>=20
> We also added a defcustom `markdown-ts-enable-code-block-context-mode'
> (default t).  Setting it to nil suppresses installation of the
> post-command-hook, idle timer, and pre-command-hook in
> `markdown-ts--set-up', so the context mode never activates and the
> regular `markdown-ts-mode' bindings stay in effect inside code blocks.
>=20
> While we were in this area, St=C3=A9phane suggested a parallel option =
for
> fontification, modeled after `org-src-fontify-natively' /
> `markdown-fontify-code-blocks-natively'.  We added
> `markdown-ts-fontify-code-blocks-natively' (default t).  When nil, the
> per-block embedded-language range rule is omitted in
> `markdown-ts--range-settings' and
> `markdown-ts--fontify-non-ts-code-block' returns early, so code blocks
> keep only the `markdown-ts-code-block' background face.  (The
> ts-embedded path takes effect after restarting the mode in the buffer;
> the non-ts path toggles at runtime.)
>=20
>=20
>> We can also add a command (and binding) for inserting inline `code`.
>> I=E2=80=99m sure I=E2=80=99m not the only person that enables =
electric-quote-mode so
>> pressing backtick inserts single quotes instead, in which case =
another
>> way to insert backtick is needed.
>>=20
>=20
> This is already covered by `markdown-ts-emphasize', bound to `C-c C-x
> C-f', specifically the 'c'(ode) option, so `C-c C-x C-f c' (modeled
> after the equivalent org-mode option, also available by the =
easy-menu),
> which both inserts and removes emphasis (code, italic, bold, ...).  =
Its
> behavior:
>=20
>  - with point on nothing: inserts the chosen markers and leaves
>    point between them, like ``
>  - with point on a word: wraps the word in the chosen markers, like
>    `word`
>  - with an active region: wraps the region, `like this`
>=20
> So `electric-quote-mode' users have a path that never goes through a
> literal backtick keypress.  Happy to add a more direct binding too if
> you'd like a one-key shortcut for the inline-code variant =
specifically.
>=20
> Thanks again for the review. Please find attached the updated patch.
>=20
> --=20
> Rahul Martim Juliato


Cool, thanks! I don=E2=80=99t see it merged though, is it merged?

Yuan=




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

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


Received: (at 80740) by debbugs.gnu.org; 15 Apr 2026 02:15:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 14 22:15:58 2026
Received: from localhost ([127.0.0.1]:59192 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wCpnK-0005JS-Gn
	for submit <at> debbugs.gnu.org; Tue, 14 Apr 2026 22:15:58 -0400
Received: from mail-dl1-x122d.google.com ([2607:f8b0:4864:20::122d]:50515)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wCpnH-0005JB-Np
 for 80740 <at> debbugs.gnu.org; Tue, 14 Apr 2026 22:15:56 -0400
Received: by mail-dl1-x122d.google.com with SMTP id
 a92af1059eb24-12c45281a06so4814592c88.1
 for <80740 <at> debbugs.gnu.org>; Tue, 14 Apr 2026 19:15:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1776219354; x=1776824154; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=Ixt4st2MYYyHnxVkZtU0cSfSoJ9LqVAQ15YfM8b5KPk=;
 b=E79TiCMiGeR60LRJNV9/BT1LLj5GLRDgFjYnMFgGaP5xIOI5wzLg+klzJ0m378y3n9
 9m64alK+cYvEp36abl3L3zh0ekVI9689XrbjfP7rtUkvoj/4Zmli40ZmTguynJkgmVx5
 iGeIdpwclQwzigqQXtGwoXJUxIDrtxWvqobyf6+yCO/NtXyaa/upffDU3/faXjXNyzgs
 2X7jtNywVkY5sJBLTm8G0SXUt0yb4SsRjsONwl6qkOCHgGihhFlOVkxH4ZQMF+9U65UH
 O84SLLQOyykBl1gkofSM7uBQSLFVQp0EhcPpGWGe07uNKD88RVRC0qo56Hl5aoym6xWS
 Jp6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1776219354; x=1776824154;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=Ixt4st2MYYyHnxVkZtU0cSfSoJ9LqVAQ15YfM8b5KPk=;
 b=d9Ed7p1iOMyOvuvZlqCKr1x0ypYJXEyTc2GVsSbK1S+qA6hHFRU5xhHO1ZttiKeYgN
 l/e3kJqK/8WmewTMY3cbWBBI+NfL5o1hb3qx/spdfkxfR9E57K1pKe+qJGowcG1XEX4E
 SMW2K8tb/6h4O0h85kiSYYYJzRvRojl33QQ7Z+y3PDTckkHrBciyNBftnmz22woxnDeN
 eYwFqynUQ6RdHk9RUpLdOXdBiU4gWOI3O39ze0HaFitXPZzsAEaVf4yM1IcmBYB1iKLD
 P18k9GnTfCDX/soVGnoM4eMtYqxjYyiP6qPn+8Je5yAvChuSS0jo1RKDG3TlWKm++7ml
 WH9g==
X-Forwarded-Encrypted: i=1;
 AFNElJ+xD7f5YgQsUsymEiaNbtBFmwatePNIUopBXg95iel7rKQ1e1qjQpeVXWz9MiWwyxS/JUHgKQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxkJpq/utjo4pEk5TPJmWnKhxddetZybNg73M2hOg+F1WKvnOpT
 pz2BorEAIHlx5EJ5HmEoltzXgSccwPs7AmI3fxz9Dxja+AV42By53EtXWZ11pcCf+Ql0+A==
X-Gm-Gg: AeBDieudvFhXqCZcuUI2A1GdH8S4yyUBylD2/oBA5kolrXNik7dWDR1Is12MZUqS7p5
 2ewYAEt4U8J9ML33nnBAnZM+pNwv9+wEOjI+Gb1BcqJ2pWvxapv5MkaGtIBvzi6Fy80x0ht3BwF
 RL3dk5aab8/Yy0yeIYJiZsMG4ts56sY2ychEUn6xKbeS9xCp8S6LEkviuUe0DOaxldCPe85IkQs
 TEjSQJoESMJR5mYM75bHF8yq5zNRhh0d9lb78Cv1gEGCubY9BjhktM7iTSOeRj1A/pAgcOSaRyB
 HKL7d4M6dAlyPWh0DMoJZGwbi8lxI562vTKdGwWIwcd/0VuhE42X/Kv1+/DQzr2QvWovW+NJTRa
 L0Il4v2tubVd14wMi3zxRsP9hw19KlkvA8Kc/KX46oq9un3fKO2WtPy91RMfQ49KgI/4zI3GNB5
 r6YVLbrCeWqOAowsvIqw3lt/gN4DssjEMlbG8R8NAqBK65f6QBvmU3yZ4gd5dfLvdyLO20+SQqq
 9i3JdRDpgo=
X-Received: by 2002:a05:7022:6725:b0:12a:6c4b:9d01 with SMTP id
 a92af1059eb24-12c34e714cdmr9949963c88.7.1776219353827; 
 Tue, 14 Apr 2026 19:15:53 -0700 (PDT)
Received: from MacBook-Pro.local ([185.153.176.73])
 by smtp.gmail.com with ESMTPSA id
 a92af1059eb24-12c5e62b9d1sm287267c88.5.2026.04.14.19.15.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 14 Apr 2026 19:15:52 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Tue, 14 Apr 2026 23:15:41 -0300
Message-ID: <m2y0iparzm.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: Eli Zaretskii <eliz@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

Yuan Fu <casouri@HIDDEN> writes:

>> On Apr 9, 2026, at 1:06=E2=80=AFPM, Rahul Martim Juliato <rahuljuliato@g=
mail.com> wrote:
>>=20
>> Eli Zaretskii <eliz@HIDDEN> writes:
>>=20
>>>> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@gm=
ail.com>,
>>>> 80740 <at> debbugs.gnu.org
>>>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
>>>> Date: Wed, 08 Apr 2026 21:01:50 -0300
>>>=20
>>> These non-ASCII characters should not be used without checking if they
>>> can be displayed (see char-displayable-p).  This is especially
>>> important on TTY frames.  Bonus points for designing ASCII
>>> replacements for when these non-ASCII symbols cannot be displayed.
>>>=20
>>=20
>> Agreed.
>>=20
>> I changed those to be cons cells in the form of (rich-form . ansi-form)
>> or nil. :safe is used to ensure both elements have the same type. If
>> nil, it means nothing will be rendered when markup is hidden.
>>=20
>> I also added a resolver 'markdown-ts--resolve-display-value', to select
>> and check the symbols.
>>=20
>>>> +(defcustom markdown-ts-hard-line-break-space
>>>> +  (lambda (n) (make-string n ?=C2=B6))
>>>=20
>>> Why is ?=C2=B6 hard-coded, instead of using
>>> markdown-ts-hard-line-break-backslash?
>>>=20
>>=20
>>=20
>> It shouldn't be this way, you're right.
>>=20
>> 'markdown-ts-hard-line-break-space' now uses
>> 'markdown-ts-hard-line-break-backslash' as the default character.
>>=20
>>=20
>>>> +(defface markdown-ts-emphasis '((t (:inherit italic)))
>>>> +  "Face for Markdown emphasis (italic) text.")
>>>> +
>>>> +(defface markdown-ts-bold '((t (:inherit bold)))
>>>> +  "Face for Markdown strong emphasis (bold) text.")
>>>> +
>>>> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
>>>> +  "Face for Markdown strikethrough text.")
>>>>=20
>>>> (defface markdown-ts-block-quote '((t (:inherit italic)))
>>>>   "Face for Markdown block quotes.")
>>>>=20
>>>> +(defface markdown-ts-link '((t (:inherit link)))
>>>> +  "Face for Markdown link text and image descriptions.")
>>>=20
>>> Is it justified to have separate faces here?  Why would users want to
>>> have something other than 'bold' for showing the bold face in MD
>>> buffers?
>>>=20
>>> Also, faces can (and I think should in this case) have the :version
>>> tag.
>>>=20
>>=20
>> Good question. About 'markdown-ts-strikethrough', there is no generic
>> strikethrough face (that I could find) in Emacs to inherit from, so it
>> has to exist.
>>=20
>> For the others, the motivation is the same as in org-mode ('org-italic',
>> 'org-bold', 'org-link') and rst-mode. The default inherits from the base
>> face so things look right out of the box, but users get a mode-specific
>> handle to customize without touching global faces. That alone is worth
>> it, but there is a second angle: it makes theming more controlled.
>>=20
>> When 'markdown-ts-hide-markup' is enabled, all markup characters
>> disappear and what remains is just the rendered text. A theme that wants
>> to give a subtle visual hint about the underlying markup, such as a
>> faint background on emphasis or a different tint on links, can do so by
>> targeting 'markdown-ts-emphasis' or 'markdown-ts-link' specifically,
>> without affecting every italic or linked piece of text in every other
>> buffer.
>>=20
>> Added :version tag to all faces.
>>=20
>>>> +(defun markdown-ts--code-block-language-mode (lang)
>>>> +  "Compute and cache a mode symbol from LANG, a symbol.
>>>> +Consult the `markdown-ts-code-block-map' cache, or probe mode names.
>>>> +Return a valid mode symbol or nil."
>>>> +  (if-let* ((mapped-mode (alist-get lang markdown-ts-code-block-modes=
)))
>>>> +      mapped-mode
>>>> +    (let ((lang-string (symbol-name lang)))
>>>> +      (catch :mode
>>>> +        (dolist (mode
>>>> +                 (list
>>>> +                  ;; Try a treesit mode using the raw string.
>>>> +                  (concat lang-string "-ts-mode")
>>>> +                  ;; Try a conventional mode using the raw string.
>>>> +                  (concat lang-string "-mode")
>>>> +                  ;; Try a treesit mode using the downcased string.
>>>> +                  (concat (downcase lang-string) "-ts-mode")
>>>> +                  ;; Try a conventional mode using the downcased stri=
ng.
>>>> +                  (concat (downcase lang-string) "-mode")))
>>>> +          (setq mode (intern mode))
>>>> +          (when (fboundp mode)
>>>> +            (push (cons lang mode) markdown-ts-code-block-modes)
>>>> +            (throw :mode mode)))))))
>>>=20
>>> I think this should use treesit-major-mode-remap-alist and
>>> major-mode-remap-alist, at least before falling back on the above
>>> hard-coded conventional modes, if not instead that.  This will allow
>>> users to customize these remappings only once.
>>>=20
>>=20
>> Done. It now also checks both 'treesit-major-mode-remap-alist' and
>> 'major-mode-remap-alist'.
>>=20
>>>> +(define-minor-mode markdown-ts-code-block-mode
>>>> +  "Mode enabled if point is within a fenced code block."
>>>> +  :interactive nil)
>>>=20
>>> Does this mean this mode is enabled automatically?
>>>=20
>>> Thanks.
>>=20
>>=20
>> Yes, it is enabled automatically. 'markdown-ts-mode' adds
>> 'markdown-ts--enable-code-block-mode' to 'post-command-hook'
>> (buffer-local), which calls '(markdown-ts-code-block-mode 1)' when point
>> enters a fenced code block and '(markdown-ts-code-block-mode -1)' when
>> it leaves. The ':interactive nil' just keeps it out of 'M-x' completion,
>> it is not meant to be toggled by hand.
>>=20
>> Its main purpose is to activate 'markdown-ts-code-block-mode-map', a
>> keymap that routes common editing commands (indentation, comment, etc.)
>> through the language mode of whichever code block point is currently in.
>>=20
>>=20
>>=20
>> Please find attached an updated patch.
>>=20
>> Thanks
>>=20
>> --=20
>> Rahul Martim Juliato

>
> First of all, thanks for all the hard work! This is awesome, very
> through and clean and well-documented code!


Hi Yuan,

Thanks for the kind words and for the careful review!


>
> The patch LGTM, and I think it can be merged as-is. Treat the comments
> below more as discussion. And in any case, we should merge the patch
> as-is and follow up with the points below. I didn=E2=80=99t read the code
> line-by-line, I=E2=80=99m sure you=E2=80=99ve tested the functionality, I=
=E2=80=99m more
> looking at general patterns and design, and the user interface.
>

Even though you suggested merging as-is and following up later, St=C3=A9pha=
ne
and I went ahead and decided addressing your points before cementing the
symbol names, so the merged patch already incorporates them.


> Maybe variables like markdown-ts-checked-checkbox can make use of
> icons.el? Just define the symbol and text variant, and there=E2=80=99s al=
so a
> builtin image variant you can use for checkboxes (the one that custom
> uses).
>

Good idea.

I took a hybrid approach so users can force their own string (like the
default UTF symbol or something from NerdFonts) or the SVG icon (from
icon.el) while at the same time not loosing the fallback Eli asked us to
provide.

`markdown-ts-checked-checkbox' / `markdown-ts-unchecked-checkbox' now
accept three value forms:

  - cons (PREFERRED . FALLBACK) -- the default existing behavior
  - the symbol `icon'           -- defer to a corresponding icons.el icon
  - nil                         -- show raw markup

When the value is `icon', the renderer calls `icon-string' on
`markdown-ts-checked-checkbox-icon' / `markdown-ts-unchecked-checkbox-icon',
which we defined via `define-icon' with image / symbol / text variants
(the image variant uses etc/images/checked.svg and unchecked.svg, the
same files used by the custom checkbox widget).  Users can configure
the icons via `M-x customize-icon' or override globally via
`icon-preference', and on TTY frames icons.el automatically degrades
image -> symbol -> text.


> Cons are fine too, but maybe a list for better future extensibility
> instead of strictly car and cdr.

Done. `markdown-ts-code-block-modes' entries are now lists `(LANGUAGE
MAJOR-MODE)' instead of cons cells, so we can grow them later without
breaking the data shape.  The docstring example and all callsites were
updated accordingly.

>
>> +    (,(intern "c#") . c-sharp)
>
> Usually people use cs or csharp, I believe. And py, rb, rs, are
> strange choices. Is markdown-ts-code-block-modes meant for non-convention=
al names?
>

Two fixes here.  First, the value was actually wrong. `c-sharp' is not a
real mode; I corrected it to `csharp-ts-mode'.  Second, you're right
that the alist's purpose was unclear, so I rewrote the docstring to lead
with that purpose:

  Extra mappings from code block language tags to major modes.
  Entries here are only needed when the language tag in a fenced
  code block does NOT match the conventional mode name derivation,
  e.g. the user writes ```ts instead of ```typescript, or ```py
  instead of ```python.  For tags that already resolve via the
  standard "-ts-mode"/"-mode" heuristics there is no need to add
  an entry.

So `py', `rb', `rs', `ts' are exactly the non-conventional short tags
the alist exists to map.


> markdown-ts-code-block-at-p: markdown-ts-at-code-block-p or
> markdown-ts-code-block-p sounds more idiomatic to me.
>
>> Tree-sitter parsers ignore indirect-buffer narrowing and parse the
>   full base-buffer text;
>
> If you add a parser in the indirect buffer, that parser will honor the
> narowing in the indirect buffer. It=E2=80=99s just that the parser create=
 in
> the source buffer will not react to indirect buffer=E2=80=99s narrowing.
>

Good catch! The docstring on `markdown-ts--fontify-non-ts-collect-faces'
was overstated.  Updated it to clarify that it's the *source buffer's*
parser (which is the one we have here) that ignores indirect-buffer
narrowing; a parser created in the indirect buffer would honor it.  This
justifies why we fall back to a temp buffer rather than reusing the host
parser via an indirect buffer for ts modes in
`markdown-ts-code-block-force-conventional-modes'.


>> +         (add-hook 'post-command-hook
>> +                   #'markdown-ts--enable-code-block-mode nil 'local)
>
> I feel that we should have a user option to disable the code block
> context mode. And maybe it can be named code-block-contex-mode, since
> code-block-mode has another meaning in this file?
>

Both done.

The minor mode (and its keymap, helper, and hook predicate) were
renamed to `markdown-ts-code-block-context-mode' to avoid colliding
with the per-block major-mode meaning of "code-block-mode" already
used elsewhere in the file (e.g. the `markdown-ts-code-block-mode'
overlay property and `markdown-ts-code-block-mode-at' accessor that
return the major mode for a block).

We also added a defcustom `markdown-ts-enable-code-block-context-mode'
(default t).  Setting it to nil suppresses installation of the
post-command-hook, idle timer, and pre-command-hook in
`markdown-ts--set-up', so the context mode never activates and the
regular `markdown-ts-mode' bindings stay in effect inside code blocks.

While we were in this area, St=C3=A9phane suggested a parallel option for
fontification, modeled after `org-src-fontify-natively' /
`markdown-fontify-code-blocks-natively'.  We added
`markdown-ts-fontify-code-blocks-natively' (default t).  When nil, the
per-block embedded-language range rule is omitted in
`markdown-ts--range-settings' and
`markdown-ts--fontify-non-ts-code-block' returns early, so code blocks
keep only the `markdown-ts-code-block' background face.  (The
ts-embedded path takes effect after restarting the mode in the buffer;
the non-ts path toggles at runtime.)


> We can also add a command (and binding) for inserting inline `code`.
> I=E2=80=99m sure I=E2=80=99m not the only person that enables electric-qu=
ote-mode so
> pressing backtick inserts single quotes instead, in which case another
> way to insert backtick is needed.
>

This is already covered by `markdown-ts-emphasize', bound to `C-c C-x
C-f', specifically the 'c'(ode) option, so `C-c C-x C-f c' (modeled
after the equivalent org-mode option, also available by the easy-menu),
which both inserts and removes emphasis (code, italic, bold, ...).  Its
behavior:

  - with point on nothing: inserts the chosen markers and leaves
    point between them, like ``
  - with point on a word: wraps the word in the chosen markers, like
    `word`
  - with an active region: wraps the region, `like this`

So `electric-quote-mode' users have a path that never goes through a
literal backtick keypress.  Happy to add a more direct binding too if
you'd like a one-key shortcut for the inline-code variant specifically.

Thanks again for the review. Please find attached the updated patch.

--=20
Rahul Martim Juliato



--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSA2Mzk2M2I4NWU0YjI0NGIzZDU5MjMzNjM3ZGE4OWM2MmVmYTE4OTI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYW5kIGEgbW9kZSBt
ZW51LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwK
UGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRzIGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29t
bWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9yIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMs
IGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUt
c2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUgJ2dvdG8tYWRkciwgeHJlZiwgaWNvbnMpOiBO
ZXcgcmVxdWlyZW1lbnRzLgoobWFya2Rvd24tdHMpOiBOZXcgY3VzdG9taXphdGlvbiBncm91cCB3
aXRoIDp2ZXJzaW9uIGFuZAo6cGFja2FnZS12ZXJzaW9uIHRhZ3MuCihtYXJrZG93bi10cy1oaWRl
LW1hcmt1cCk6IEFkZCA6dmVyc2lvbiBhbmQgOnBhY2thZ2UtdmVyc2lvbi4KKG1hcmtkb3duLXRz
LWVsbGlwc2lzKTogTmV3IG9wdGlvbiBmb3IgZm9sZGVkIGhlYWRpbmcgZWxsaXBzaXMuCihtYXJr
ZG93bi10cy1tZW51LWJhci1zaG93KTogTmV3IG9wdGlvbiB0byB0b2dnbGUgbW9kZSBtZW51Lgoo
bWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nKTogTmV3IG9wdGlvbiBmb3IgZGVmYXVsdCBmb2xk
CmxldmVsLgoobWFya2Rvd24tdHMtaW5saW5lLWltYWdlcyk6IE5ldyBvcHRpb24gdG8gZGlzcGxh
eSBpbmxpbmUKaW1hZ2VzLgoobWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoKTogTmV3IG9wdGlv
biBmb3IgaW1hZ2UgbWF4IHdpZHRoLgoobWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5l
LWltYWdlcyk6IE5ldyBvcHRpb24gZm9yCnJlbW90ZSBpbWFnZSBoYW5kbGluZy4KKG1hcmtkb3du
LXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUpOiBOZXcgaGVscGVyIHRvIHJlc29sdmUKZGlzcGxh
eSB2YWx1ZXMgdXNpbmcgY2hhci1kaXNwbGF5YWJsZS1wLgoobWFya2Rvd24tdHMtY2hlY2tlZC1j
aGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNrZWQgY2hlY2tib3gKZGlzcGxheSBzdHJpbmcg
b3IgaWNvbi4KKG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gtaWNvbik6IE5ldyBpY29ucy5l
bCBpY29uIGZvciB0aGUgY2hlY2tlZAp2YXJpYW50LgoobWFya2Rvd24tdHMtdW5jaGVja2VkLWNo
ZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgdW5jaGVja2VkCmNoZWNrYm94IGRpc3BsYXkgc3RyaW5n
IG9yIGljb24uCihtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gtaWNvbik6IE5ldyBpY29u
cy5lbCBpY29uIGZvcgp0aGUgdW5jaGVja2VkIHZhcmlhbnQuCihtYXJrZG93bi10cy10aGVtYXRp
Yy1icmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9uIGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5
IGNoYXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcg
b3B0aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4gcGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xh
c2ggaGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhh
cmQtbGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRpb24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBw
bGFjZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMg
aGlkZGVuLgoobWFya2Rvd24tdHMtZW1waGFzaXMsIG1hcmtkb3duLXRzLWJvbGQpCihtYXJrZG93
bi10cy1zdHJpa2V0aHJvdWdoLCBtYXJrZG93bi10cy1saW5rKQoobWFya2Rvd24tdHMtbGluay1k
ZXN0aW5hdGlvbiwgbWFya2Rvd24tdHMtY29kZS1zcGFuKQoobWFya2Rvd24tdHMtY29kZS1ibG9j
aywgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuKQoobWFya2Rvd24tdHMtaW5k
ZW50ZWQtY29kZS1ibG9jaywgbWFya2Rvd24tdHMtaHRtbC10YWcpCihtYXJrZG93bi10cy1odG1s
LWJsb2NrLCBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaykKKG1hcmtkb3duLXRzLWVudGl0eS1y
ZWZlcmVuY2UpCihtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UsIG1hcmtk
b3duLXRzLWxhdGV4KQoobWFya2Rvd24tdHMtdGFibGUtaGVhZGVyLCBtYXJrZG93bi10cy10YWJs
ZS1jZWxsKQoobWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwsIG1hcmtkb3duLXRzLXRh
c2stdW5jaGVja2VkKQoobWFya2Rvd24tdHMtdGFzay1jaGVja2VkKTogTmV3IGZhY2VzLgoobWFy
a2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKG1hcmtkb3duLXRzLWhhcmQtbGlu
ZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNw
YWNlKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlLWhpZGRlbik6IE5ldyBmYWNl
cyBmb3IgdGhlCnR3byBoYXJkLWxpbmUtYnJlYWsgdmFyaWFudHMsIHdpdGggZGlzdGluY3Qgc2hv
d24vaGlkZGVuCmFwcGVhcmFuY2VzLgoobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUpOiBOZXcg
dmFyaWFibGUgZm9yIGxpZ2h0d2VpZ2h0IHNldHVwCmluIGVtYmVkZGVkIGlubGluZSBtYXJrZG93
bi10cy1tb2RlIGJ1ZmZlcnMgdXNlZCBieSBjb2RlIGJsb2NrCmNvbW1hbmRzLgoobWFya2Rvd24t
dHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUpOiBOZXcgdmFyaWFibGUgdG8gZGVmaW5lCmRlZmF1
bHQgbW9kZSBmb3IgYW5vbnltb3VzIGNvZGUgYmxvY2tzLgoobWFya2Rvd24tdHMtZm9udGlmeS1j
b2RlLWJsb2Nrcy1uYXRpdmVseSk6IE5ldyBvcHRpb24gdG8KZW5hYmxlL2Rpc2FibGUgbmF0aXZl
IGZvbnRpZmljYXRpb24gb2YgZmVuY2VkIGNvZGUgYmxvY2sKY29udGVudHMuCihtYXJrZG93bi10
cy1lbmFibGUtY29kZS1ibG9jay1jb250ZXh0LW1vZGUpOiBOZXcgb3B0aW9uIHRvCmVuYWJsZS9k
aXNhYmxlIGNvZGUgYmxvY2sgY29udGV4dCBpbnRlZ3JhdGlvbi4KKG1hcmtkb3duLXRzLWNvZGUt
YmxvY2stbW9kZXMpOiBOZXcgdmFyaWFibGUgcmVwbGFjaW5nCm1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLWxhbmd1YWdlLW1hcCBhbmQKbWFya2Rvd24tdHMtY29kZS1ibG9jay1zb3VyY2UtbW9kZS1t
YXAgd2l0aCB1bmlmaWVkIGxhbmd1YWdlIHRvCm1vZGUgbWFwcGluZyBpbmNsdWRpbmcgaGV1cmlz
dGljIGxvb2t1cC4KKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1v
ZGVzKTogTmV3IHZhcmlhYmxlCmxpc3RpbmcgdHJlZS1zaXR0ZXIgbW9kZXMgd2hvc2UgZm9udGlm
aWNhdGlvbiBvZiBjb2RlIGJsb2NrCmNvbnRlbnQgc2hvdWxkIGJlIGhhcnZlc3RlZCB2aWEgYSB0
ZW1wb3JhcnkgYnVmZmVyLgoobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24pOiBOZXcgZnVu
Y3Rpb24gdG8gY3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMgd2l0aCBtYWlsdG8sIGJyb3dz
ZS11cmwsIGFuZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5r
LWRlc3RpbmF0aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGxpbmsgZGVzdGluYXRpb25z
IHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSwgbWFy
a2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93bi10cy0tbGluay1yZWYtZGVm
aW5pdGlvbnMpCihtYXJrZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZik6IE5ldyBsaW5rIHJlZmVy
ZW5jZSBkZWZpbml0aW9uCmNhY2hlIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBwZXIg
Q29tbW9uTWFyayBzcGVjLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKTogTmV3IGZv
bnRpZmllciBmb3IgaW5saW5lLApyZWZlcmVuY2UsIHNob3J0Y3V0LCBhbmQgY29sbGFwc2VkIGxp
bmtzIGFzIGNsaWNrYWJsZSBidXR0b25zLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsp
OiBOZXcgZm9udGlmaWVyIGZvciBVUkkgYW5kIGVtYWlsCmF1dG9saW5rcyB3aXRoIGFuZ2xlIGJy
YWNrZXQgaGlkaW5nLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCihtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1kZXN0aW5hdGlvbik6IE5ldyBmb250aWZpZXJzIGZv
cgpsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4KKG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1Yi1z
dHJpcC1yZSwgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHViKQoobWFya2Rvd24tdHMtLXNsdWctcGFu
ZG9jLCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUpCihtYXJrZG93bi10cy0taGVhZGluZy10
ZXh0LWFuZC1pZCk6KG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLAptYXJrZG93bi10cy0t
aGVhZGluZy1pZC1jYWNoZS10aWNrKQoobWFya2Rvd24tdHMtLWJ1aWxkLWhlYWRpbmctaWRzLCBt
YXJrZG93bi10cy0taGVhZGluZy1pZHMpCihtYXJrZG93bi10cy0tZm9sbG93LWZyYWdtZW50KTog
TmV3IGZyYWdtZW50IGxpbmsgc3VwcG9ydCB3aXRoCkdpdEh1YiBhbmQgUGFuZG9jIHNsdWcgYWxn
b3JpdGhtcy4KKG1hcmtkb3duLXRzLS1sYXRleC1ibG9jay12YWxpZC1wKQoobWFya2Rvd24tdHMt
LWZvbnRpZnktbGF0ZXgtYmxvY2spOiBOZXcgTGFUZVgvbWF0aCBmb250aWZpZXIKd2l0aCBjcm9z
cy1wYXJhZ3JhcGggdmFsaWRhdGlvbi4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWJhY2tzbGFzaC1l
c2NhcGUpOiBOZXcgZm9udGlmaWVyIHRoYXQKaGlkZXMgYmFja3NsYXNoIGluIGVzY2FwZXMgZXhj
ZXB0IGluc2lkZSBMYVRlWCBibG9ja3MuCihtYXJrZG93bi10cy0tZGVjb2RlLWVudGl0eSwgbWFy
a2Rvd24tdHMtLWZvbnRpZnktZW50aXR5KTogTmV3CkhUTUwgZW50aXR5IGRlY29kZXIgYW5kIGZv
bnRpZmllciB1c2luZyBvcmctZW50aXRpZXMgYW5kCnNnbWwtY2hhci1uYW1lcyB3aXRoIGRpc3Bs
YXkgcHJvcGVydHkgZm9yIGRlY29kZWQgdmFsdWVzLgoobWFya2Rvd24tdHMtLWZvbnRpZnktY2hl
Y2tib3gpOiBOZXcgZm9udGlmaWVyIHNob3dpbmcgdGhlCmNvbmZpZ3VyZWQgY2hlY2tib3ggZ2x5
cGggd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1saW5l
LWJyZWFrKTogTmV3IGZvbnRpZmllciBmb3IKJ2hhcmRfbGluZV9icmVhaycgbm9kZXMuCihtYXJr
ZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKTogTmV3IGZvbnRpZmllciBmb3IgQVRYIGFuZCBTZXRl
eHQKaGVhZGluZ3MuCihtYXJrZG93bi10cy0tZm9udGlmeS10aGVtYXRpYy1icmVhayk6IE5ldyBm
b250aWZpZXIgc2hvd2luZwpob3Jpem9udGFsIGxpbmUgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgoo
bWFya2Rvd24tdHMtLWZvbnRpZnktY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgYXBwbHlpbmcK
YmFja2dyb3VuZCBvdmVybGF5IHRvIGNvZGUgYmxvY2tzIHdpdGggbGFuZ3VhZ2UgYW5kIG1vZGUK
cHJvcGVydGllcy4KKG1hcmtkb3duLXRzLWF0LWNvZGUtYmxvY2stcCwgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1sYW5ndWFnZS1hdCkKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCk6IE5l
dyBhY2Nlc3NvcnMgZm9yIGNvZGUgYmxvY2sKb3ZlcmxheSBwcm9wZXJ0aWVzLgoobWFya2Rvd24t
dHMtLWltZW51LWNvZGUtYmxvY2stbm9kZS1wKTogTmV3IGhlbHBlciBmb3IgaW1lbnUKY29kZSBi
bG9jayBkZXRlY3Rpb24uCihtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGluZS1wLAptYXJr
ZG93bi10cy0tZm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0
YW5kYWxvbmUgYW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1y
ZWdleHApCihtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMt
LWZvbnRpZnktYmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEg
aml0LWxvY2sgdXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1z
ZXR0aW5ncyk6IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJz
LCBhbmQgbmV3IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxl
bWVudHMuCihtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCihtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1ub24tdHMtbW9kZXMpOiBOZXcgYnVmZmVyLWxvY2FsIGFsaXN0cwpmb3IgY29k
ZSBibG9jayBsYW5ndWFnZSB0cmFja2luZy4KKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJl
ZXNpdC1jb25maWd1cmF0aW9uKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRy
ZWVzaXQtY29uZmlncyB3aXRoIGRlbGF5LW1vZGUtaG9va3MuCihtYXJrZG93bi10cy0tY29uZmln
dXJlLWN1cnJlbnQtYnVmZmVyKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRzLS1hZGQtY29uZmln
LWZvci1tb2RlLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUpOiBOZXcgaGVscGVyIGV4
dHJhY3RpbmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9jb250ZW50IG5vZGUuCiht
YXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpOiBOZXcgYnVmZmVyLWxvY2FsIGhhc2gg
dGFibGUKY2FjaGluZyBmb250aWZpY2F0aW9uIHJlc3VsdHMgZm9yIG5vbi10cmVlLXNpdHRlciBj
b2RlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2xsZWN0LWZhY2VzKTog
TmV3IGZ1bmN0aW9uCmhhcnZlc3RpbmcgZmFjZSBwcm9wZXJ0aWVzIGZyb20gYSBtb2RlIGluIGFu
IGluZGlyZWN0IG9yCnRlbXBvcmFyeSBidWZmZXIuCihtYXJrZG93bi10cy0tZm9udGlmeS1ub24t
dHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10cmVlLXNpdHRlciBtb2RlcyB2
aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93bi10cy0tY29kZS1ibG9jay1s
YW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlzdGljIG1vZGUgbmFtZSBwcm9i
aW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UpOiBSZW5hbWVkIGZyb20K
bWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFnZSB3aXRoIHN1cHBvcnQgZm9y
IG5vbi10cwptb2RlcyBhbmQgcmVjdXJzaXZlIG1hcmtkb3duIGhhbmRsaW5nLgoobWFya2Rvd24t
dHMtY29kZS1ibG9jay1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stdGhpbmctY29t
bWFuZHMpCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1jb21tYW5kcyk6IE5ldyBjb21t
YW5kIGxpc3RzIGZvcgpjb2RlLWJsb2NrIGNvbnRleHQgZXhlY3V0aW9uLgoobWFya2Rvd24tdHMt
LWVuYWJsZS1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSkKKG1hcmtkb3duLXRzLS1tYXliZS1ydW4t
Y29tbWFuZC1pbi1jb2RlLWJsb2NrKQoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5k
LWRlZmluaXRpb25zKQoobWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2spOiBO
ZXcgY29kZSBibG9jayBtaW5vcgptb2RlIHdpdGggaW5kaXJlY3QgYnVmZmVyIGNvbW1hbmQgZGlz
cGF0Y2guCihtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lKTogTmV3IGNvbW1hbmQgZm9y
IG5ld2xpbmUKaW5zaWRlIGNvZGUgYmxvY2tzLCBkaXNwYXRjaGluZyB0byB0aGUgYmxvY2sncyBt
b2RlLgoobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKTogVXBkYXRlIHJhbmdlIGNvbmZpZ3Vy
YXRpb247CnJlbW92ZSA6cmFuZ2UtZm4gdHJlZXNpdC1yYW5nZS1mbi1leGNsdWRlLWNoaWxkcmVu
LgoobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKG1hcmtkb3duLXRzLS1vdXRs
aW5lLXZpZXctY2hhbmdlKTogTmV3IGhlbHBlcnMgZm9yIGltYWdlCm92ZXJsYXkgbWFuYWdlbWVu
dCBkdXJpbmcgb3V0bGluZSBmb2xkL3VuZm9sZC4KKG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlz
aWJsZS1wKTogTmV3IGhlbHBlciB0ZXN0aW5nIHdoZXRoZXIgYQpwb3NpdGlvbiBpcyBpbnNpZGUg
YW4gb3V0bGluZS1mb2xkZWQgcmVnaW9uLgoobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCk6
IENsZWFyIGltYWdlIG92ZXJsYXlzIHdoZW4KdG9nZ2xpbmcgbWFya3VwIHZpc2liaWxpdHkuCiht
YXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMpCihtYXJrZG93bi10cy10b2dnbGUtaW5saW5l
LWltYWdlcyk6IE5ldyBmdW5jdGlvbnMgZm9yIHRvZ2dsaW5nCmlubGluZSBpbWFnZSBkaXNwbGF5
LgoobWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCk6IE5ldyBjb25zdGFudC4K
KG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50LCBtYXJrZG93bi10cy0taGVhZGluZy1sZXZl
bCkKKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KTogTmV3IGhlYWRpbmcgbmF2aWdhdGlv
biBoZWxwZXJzLgoobWFya2Rvd24tdHMtcHJvbW90ZSwgbWFya2Rvd24tdHMtZGVtb3RlKTogTmV3
IGNvbW1hbmRzIGZvcgpoZWFkaW5nIGFuZCBsaXN0IGl0ZW0gcHJvbW90aW9uL2RlbW90aW9uIHdp
dGggcmVnaW9uIHN1cHBvcnQuCihtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUpCihtYXJr
ZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uKTogTmV3IGhlYWRpbmcgbGV2ZWwKYWRq
dXN0bWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAsIG1hcmtkb3du
LXRzLW1vdmUtc3VidHJlZS1kb3duKToKTmV3IGNvbW1hbmRzIGZvciBtb3Zpbmcgc2VjdGlvbnMg
YW5kIGxpc3QgaXRlbXMuCihtYXJrZG93bi10cy0tc2VjdGlvbi1mb2xkZWQtcCkKKG1hcmtkb3du
LXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93bik6IE5ldyBzdWJ0cmVlIG1vdmUgd2l0aApmb2xk
aW5nIHN0YXRlIHByZXNlcnZhdGlvbi4KKG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveCk6IE5l
dyBjb21tYW5kIHRvIHRvZ2dsZSB0YXNrIGxpc3QKY2hlY2tib3hlcy4KKG1hcmtkb3duLXRzLS1s
aXN0LWl0ZW0tYXQtcG9pbnQpOiBOZXcgaGVscGVyIHdpdGggYmxvY2sgcXVvdGUKbWFya2VyIGhh
bmRsaW5nLgoobWFya2Rvd24tdHMtLWxpc3QtbWFya2VyLXdpZHRoLCBtYXJrZG93bi10cy0tbGlz
dC1pdGVtLXJlZ2lvbikKKG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wKTogTmV3IGxp
c3QgaXRlbSBoZWxwZXJzLgoobWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1vdGUpOiBO
ZXcgZnVuY3Rpb24gd2l0aCBvcmRlcmVkCmxpc3QgbmVzdGluZyBndWFyZC4KKG1hcmtkb3duLXRz
LS1saXN0LW5vZGUtYm9sLCBtYXJrZG93bi10cy0tbGlzdC1tb3ZlKTogTmV3IGxpc3QKaXRlbSBt
b3ZlbWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1yZW51bWJlci1saXN0KTogTmV3IGNvbW1h
bmQgZm9yIHNlcXVlbnRpYWwgbGlzdApyZW51bWJlcmluZyB3aXRoIHByZWZpeCBhcmd1bWVudCBz
dXBwb3J0LgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyKQoobWFya2Rvd24tdHMt
LW5ldy1tYXJrZXItZm9yLWxpbmUpOiBOZXcgbWFya2VyIHN0cmluZyBnZW5lcmF0b3JzCmZvciBs
aXN0IGl0ZW0gaW5zZXJ0aW9uLgoobWFya2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUtZGVwdGgp
OiBOZXcgaGVscGVyIGNvdW50aW5nIGJsb2NrCnF1b3RlIGRlcHRoLgoobWFya2Rvd24tdHMtbmV3
bGluZSk6IE5ldyBSRVQgY29tbWFuZCBmb3IgY29udGV4dC1hd2FyZQpuZXdsaW5lLgoobWFya2Rv
d24tdHMtaW5zZXJ0LWxpc3QtaXRlbSk6IE5ldyBNLVJFVCBjb21tYW5kIHRoYXQgY3JlYXRlcyBh
Cm5ldyBsaXN0IGl0ZW0uCihtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5
KTogTmV3IHRyZWUtc2l0dGVyCnF1ZXJ5IGZvciB1bmZpbGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3du
LXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4pOiBOZXcgaGVscGVyIGZvciBsaXN0IGl0ZW0KdGV4
dCBhbGlnbm1lbnQuCihtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0pOiBOZXcgZnVuY3Rpb24g
ZmlsbGluZyB3aXRoaW4gbGlzdAppdGVtcyB3aXRob3V0IG1lcmdpbmcgYWRqYWNlbnQgaXRlbXMu
CihtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCk6IE5ldyBhZGFwdGl2ZSBmaWxsIGZ1bmN0aW9u
IGZvcgpsaXN0IGl0ZW0gY29udGludWF0aW9uLgoobWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1w
YXJhZ3JhcGgpOiBOZXcgcGFyYWdyYXBoIG1vdGlvbgpyZXNwZWN0aW5nIGxpc3QgaXRlbXMgYW5k
IHVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMtZmlsbC1wYXJhZ3JhcGgpOiBOZXcgZmls
bC1wYXJhZ3JhcGgtZnVuY3Rpb24gd2l0aApjb25kKiBkaXNwYXRjaCBmb3IgbGlzdHMsIGJsb2Nr
IHF1b3RlcywgSFRNTCBjb21tZW50cywgYW5kCnVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24t
dHMtLWZpbGwtaHRtbC1jb21tZW50KTogTmV3IEhUTUwgY29tbWVudCBmaWxsZXIgd2l0aApjb250
aW51YXRpb24gYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCk6IE5l
dyBoZWxwZXIgcHJlc2VydmluZwpleGlzdGluZyBibG9jayBxdW90ZSBtYXJrZXIgc3R5bGUuCiht
YXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSk6IE5ldyBibG9jayBxdW90ZSBmaWxsZXIgd2l0
aApsaXN0IGl0ZW0gdGV4dCBjb2x1bW4gYWxpZ25tZW50LgoobWFya2Rvd24tdHMtZW1waGFzaXMt
YWxpc3QpOiBOZXcgYWxpc3Qgb2YgZW1waGFzaXMgbWFya2Vycy4KKG1hcmtkb3duLXRzLS1lbXBo
YXNpcy1ub2RlLWF0LXBvaW50KTogTmV3IHRyZWUtc2l0dGVyIGJhc2VkCmVtcGhhc2lzIGRldGVj
dGlvbi4KKG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNpcyk6IE5ldyBjb21tYW5kIHJlbW92aW5n
IGVtcGhhc2lzIGF0CnBvaW50IG9yIHJlZ2lvbi4KKG1hcmtkb3duLXRzLWVtcGhhc2l6ZSk6IE5l
dyBpbnRlcmFjdGl2ZSBlbXBoYXNpcyBpbnNlcnRpb24gd2l0aApyZWdpb24gd3JhcHBpbmcgYW5k
IHdvcmQtYXQtcG9pbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRzLWluc2VydC1zdHJ1Y3R1cmUpOiBO
ZXcgY29tbWFuZCBmb3IgaW5zZXJ0aW5nIGNvZGUKYmxvY2tzLCBibG9jayBxdW90ZXMsIGFuZCBk
aXZpZGVycy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayk6IE5ldyBmdW5jdGlvbiB3
aXRoIGxhbmd1YWdlCmNvbXBsZXRpb24gZnJvbSBrbm93biBtb2Rlcy4KKG1hcmtkb3duLXRzLS1p
bnNlcnQtYmxvY2stcXVvdGUpOiBOZXcgZnVuY3Rpb24gd2l0aCByZWdpb24Kd3JhcHBpbmcuCiht
YXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpOiBOZXcgZnVuY3Rpb24gZm9yIGhvcml6b250YWwK
cnVsZXMuCihtYXJrZG93bi10cy0tYXBwbHktZWxsaXBzaXMpOiBOZXcgZnVuY3Rpb24gYXBwbHlp
bmcgY3VzdG9tCmVsbGlwc2lzIHZpYSBkaXNwbGF5IHRhYmxlLgoobWFya2Rvd24tdHMtLXNldC11
cCk6IFJlbmFtZWQgZnJvbSBtYXJrZG93bi10cy1zZXR1cC4KKG1hcmtkb3duLXRzLW91dGxpbmUt
Y3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBvdXRsaW5lCnZpc2liaWxpdHkgb24gaGVh
ZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5ldyBrZXltYXAgZm9yIGNvZGUgYmxvY2sg
bmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcgbmF2aWdhdGlvbiwgc3RydWN0dXJlIGVk
aXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRpb25zLgoobWFya2Rvd24tdHMtY29kZS1i
bG9jay1jb250ZXh0LW1vZGUtbWFwKTogTmV3IGtleW1hcCBmb3IgY29kZQpibG9jayBjb250ZXh0
LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTogTmV3IG1lbnUgYmFyIHdpdGggU2hvdy9IaWRlLCBO
YXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1Y3R1cmUsIGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoo
bWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRsaW5lLW1pbm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xk
aW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3JhdGlvbiwgY29kZS1ibG9jay1jb250ZXh0LW1vZGUg
aG9va3MsCmNvbW1lbnQgc2V0dGluZ3MsIGFuZCBvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2suICBV
c2UKbWFya2Rvd24tdHMtbW9kZSBkaXJlY3RseSBpbiBhdXRvLW1vZGUtYWxpc3QgaW5zdGVhZCBv
ZgptYXJrZG93bi10cy1tb2RlLW1heWJlLgoobWFya2Rvd24tdHMtbW9kZS1pbnN0YWxsLXBhcnNl
cnMpOiBOZXcgY29tbWFuZCBmb3IgaW5zdGFsbGluZwpyZXF1aXJlZCBhbmQgb3B0aW9uYWwgdHJl
ZS1zaXR0ZXIgbGFuZ3VhZ2UgZ3JhbW1hcnMuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRl
eHQtbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2RlCmJsb2NrIGNvbnRleHQgKHJlbmFtZWQg
ZnJvbSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUgdG8gYXZvaWQKY29sbGlzaW9uIHdpdGgg
dGhlIHBlci1ibG9jayBtYWpvciBtb2RlIG1lYW5pbmcgb2YKYGNvZGUtYmxvY2stbW9kZScpLgoo
bWFya2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxpbWl0ZXIpCihtYXJrZG93bi10cy0tZmlu
ZC1uZXh0LWNvZGUtYmxvY2stZGVsaW1pdGVyKTogTmV3IGhlbHBlcnMgZm9yCmxvY2F0aW5nIGZl
bmNlZCBjb2RlIGJsb2NrIGRlbGltaXRlciBub2Rlcy4KKG1hcmtkb3duLXRzLW1vdmUtdG8tbmV4
dC1jb2RlLWJsb2NrKQoobWFya2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrKTog
TmV3IGNvbW1hbmRzIGZvcgpuYXZpZ2F0aW5nIGJldHdlZW4gZmVuY2VkIGNvZGUgYmxvY2tzLgoo
bWFya2Rvd24tdHMtbW9kZS1tYXliZSk6IFJlbW92ZTsgYXV0by1tb2RlLWFsaXN0IG5vdyB1c2Vz
Cm1hcmtkb3duLXRzLW1vZGUgZGlyZWN0bHkuCkF1dG8tbW9kZS1hbGlzdDogQWRkIC5tYXJrZG93
biBhbmQgLm1keCBleHRlbnNpb25zLgpJbmNsdWRlcyBmaXhlcyBmb3I6IChidWcjODA2MTMpIChi
dWcjODA2MjUpIChidWcjODA2OTApCgpDby1hdXRob3JlZC1ieTogU3TDqXBoYW5lIE1hcmtzIDxz
aGlwbWludHNAZ21haWwuY29tPgotLS0KIGxpc3AvdGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUu
ZWwgfCAzNTUyICsrKysrKysrKysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz
MjYxIGluc2VydGlvbnMoKyksIDI5MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Rl
eHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsIGIvbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMt
bW9kZS5lbAppbmRleCA2NTdkNmJjNDY2ZC4uNTY0ZjRjYzhjZjAgMTAwNjQ0Ci0tLSBhL2xpc3Av
dGV4dG1vZGVzL21hcmtkb3duLXRzLW1vZGUuZWwKKysrIGIvbGlzcC90ZXh0bW9kZXMvbWFya2Rv
d24tdHMtbW9kZS5lbApAQCAtMSwxMSArMSwxMyBAQAotOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwg
LS0tIHRyZWUgc2l0dGVyIHN1cHBvcnQgZm9yIE1hcmtkb3duICAtKi0gbGV4aWNhbC1iaW5kaW5n
OiB0OyAtKi0KKzs7OyBtYXJrZG93bi10cy1tb2RlLmVsIC0tLSB0cmVlIHNpdHRlciBzdXBwb3J0
IGZvciBNYXJrZG93biAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0KIAogOzsgQ29weXJpZ2h0
IChDKSAyMDI0LTIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKLTs7IEF1dGhv
ciAgICAgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Ci07
OyBNYWludGFpbmVyIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwu
Y29tPgotOzsgQ3JlYXRlZCAgICA6IEFwcmlsIDIwMjQKLTs7IEtleXdvcmRzICAgOiBtYXJrZG93
biBtZCBsYW5ndWFnZXMgdHJlZS1zaXR0ZXIKKzs7IEF1dGhvciAgICAgICAgICAgOiBSYWh1bCBN
YXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBNYWludGFpbmVyICAg
ICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwuY29tPgorOzsg
Q3JlYXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNpb24gICAgICAgICAgOiAgMS4w
Cis7OyBQYWNrYWdlLVJlcXVpcmVzIDogKChlbWFjcyAiMzEuMSIpKQorOzsgS2V5d29yZHMgICAg
ICAgICA6IG1hcmtkb3duIG1kIHRleHQgZWRpdCBsYW5ndWFnZXMgdHJlZS1zaXR0ZXIKIAogOzsg
VGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgogCkBAIC0yMiwxMzggKzI0LDU1MCBAQAog
OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKIDs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBz
Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIAotOzs7IFRyZWUtc2l0dGVyIGxhbmd1YWdlIHZl
cnNpb25zCis7OzsgQ29tbWVudGFyeToKKworOzsgVHJlZS1zaXR0ZXIgTGFuZ3VhZ2UgVmVyc2lv
bnMKIDs7CiA7OyBtYXJrZG93bi10cy1tb2RlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIHRoZSBmb2xs
b3dpbmcgZ3JhbW1hcnMgYW5kIHZlcnNpb246CiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duOiB2
MC40LjEKIDs7IC0gdHJlZS1zaXR0ZXItbWFya2Rvd24taW5saW5lOiB2MC40LjEKIDs7Ci07OyBX
ZSB0cnkgb3VyIGJlc3QgdG8gbWFrZSBidWlsdGluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3Jh
bW1hcgotOzsgdmVyc2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNo
YW5jZSB0byB3b3JrIHRvby4KLTs7IFNlbmQgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3Qu
Ci0KLTs7OyBDb21tZW50YXJ5OgorOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHQtaW4g
bW9kZXMgd29yayB3aXRoIGxhdGVzdCBncmFtbWFyCis7OyB2ZXJzaW9ucywgc28gYSBtb3JlIHJl
Y2VudCBncmFtbWFyIGhhcyBhIGdvb2QgY2hhbmNlIHRvIHdvcmsuICBTZW5kCis7OyB1cyBhIGJ1
ZyByZXBvcnQgaWYgaXQgZG9lc24ndC4KKzs7Cis7OyBCaWRpcmVjdGlvbmFsIFRleHQgQ29uc2lk
ZXJhdGlvbnMKKzs7Cis7OyBUZXh0IHdpdGggbWFya3VwIG1heSBuZWVkIGFuIGV4dHJhIG5ld2xp
bmUgYmVmb3JlIGJpZGlyZWN0aW9uYWwgdGV4dAorOzsgZm9yIGl0IHRvIHNob3cgY29ycmVjdGx5
LiAgVGhpcyBpcyBhIGxpbWl0YXRpb24gaW4gdGhlIEVtYWNzIGRpc3BsYXkKKzs7IGVuZ2luZS4K
Kzs7Cis7OyBDb2RlIEJsb2NrIExhbmd1YWdlIE1vZGUgQ29uc2lkZXJhdGlvbnMKKzs7Cis7OyBG
ZW5jZWQgY29kZSBibG9jayBsYW5ndWFnZSBtb2RlcyBhcmUgZGVyaXZlZCBmcm9tIHRoZSB0YWJs
ZQorOzsgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMnIGFuZCBoZXVyaXN0aWNzIGFkZGlu
ZyAiLXRzLW1vZGUiIGFuZAorOzsgIi1tb2RlIiB0byB0aGUgbGFuZ3VhZ2UgbmFtZS4gIElmIHlv
dXIgbGFuZ3VhZ2UncyBtb2RlIGlzIG5vdAorOzsgcHJvcGVybHkgcmVjb2duaXplZCwgYWRkIGl0
IHRvIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJywgd2hpY2gKKzs7IHNlZS4KKzs7Cis7
OyBFYWNoIGxhbmd1YWdlJ3MgbWFqb3IgbW9kZSBpcyBlbmFibGVkIG9uY2UgcGVyIGBtYXJrZG93
bi10cy1tb2RlJworOzsgYnVmZmVyIGluIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBleHRyYWN0IGl0
cyBkZWZhdWx0IGZvbnQtbG9jayBhbmQKKzs7IHRyZWUtc2l0dGVyIHNldHRpbmdzLiAgSW4gY29u
dmVudGlvbmFsIG5vbi10cmVlc2l0IGNvZGUgYmxvY2tzLCB0aGUKKzs7IG1ham9yIG1vZGUgaXMg
ZW5hYmxlZCBlYWNoIHRpbWUgdGhlIGJsb2NrIGlzIGZvbnRpZmllZC4KKzs7Cis7OyBOT1RFOiBN
YWpvciBtb2RlIGhvb2tzIGFyZSBub3QgcnVuIGFuZCBmb250LWxvY2ssIHRyZWVzaXQsIGluZGVu
dCwKKzs7IGNvbW1lbnQgcmVjb2duaXRpb24sIGV0Yy4gY3VzdG9taXphdGlvbnMgeW91IG1pZ2h0
IGhhdmUgaW4geW91ciBob29rcworOzsgYXJlIG5vdCBhcHBsaWVkLiAgQXMgYSByZXN1bHQsIHlv
dXIgY29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBkaWZmZXJlbnQgaW4gYG1hcmtkb3duLXRz
LW1vZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbGFuZ3VhZ2UgbWFqb3IKKzs7IG1vZGUgYnVmZmVy
cy4gIE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBlYWNoIG1vZGUgaG9vawor
OzsgYW5kIGF2b2lkcyBjZXJ0YWluIHJlY3Vyc2l2ZSB0cmVlc2l0IGNhbGxiYWNrIGlzc3Vlcy4K
Kzs7Cis7OyBDb2RlIEJsb2NrIENvbW1hbmRzCis7OworOzsgU29tZSBjb21tb24gY29tbWFuZHMg
d2lsbCBvcGVyYXRlIHdpdGhpbiBhIGNvZGUgYmxvY2sgYW5kIGluIGl0cworOzsgbW9kZS4gIFRo
aXMgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYW4gaW5kaXJlY3QgYnVmZmVyIGFuZCBzb21lIGNvbW1h
bmRzCis7OyBtYXkgb3BlcmF0ZSBzbGlnaHRseSBkaWZmZXJlbnRseSB0byB0aGUgc2FtZSBjb21t
YW5kcyBpbnZva2VkIGluIGEKKzs7IG5hdGl2ZSBtb2RlIGJ1ZmZlci4KKzs7Cis7OyBUcmVlIFNp
dHRlciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0aGUgdW5kZXJs
eWluZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0IGl0cyBidWls
ZCB0aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0YWxsZWQuICBU
aGVyZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVseSBhZmZlY3QK
Kzs7IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQgYXMgdGhlc2Ug
YnVncyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBUaGUgTWFya2Rv
d24gZ3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBjaGlsZHJlbgor
OzsgICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGggdGhlIGluc3Bl
Y3RvciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0cyBjb2RlIGJs
b2NrcyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0eXBlIDQgKGA8
IScgZm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAgYDwhRE9DVFlQ
RSBodG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNlcXVlbnQKKzs7
ICAgY29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBhcyBhIHdvcmth
cm91bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJz
L3RyZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3VwZXJzY3JpcHQg
KGBedGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5vdAorOzsgICBz
dXBwb3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZsYWcgZXhpc3Rz
IGZvcgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24gRXh0cmEgc3lu
dGF4LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRlcmVkIChudW1i
ZXJlZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRpbmcKKzs7ICAg
YSBgMS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3QgcHJvZHVjZSBh
IG5lc3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0cyBpdCBhcyBh
IGZsYXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVudCBpdGVtJ3Mg
cGFyYWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRlcmVkIChgLScs
IGAqJywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9wcm9tb3RlIG9m
IG9yZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQuCiA7OworOzsg
LSBSZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1iZXItbGlzdCcp
IG1heSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJkIGlmIHRoZSBw
YXJzZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBgbGlzdCcgbm9k
ZXMsIG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBzZXBhcmF0ZSBs
aXN0cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7OworOzsgLSBF
bXB0eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1heSBiZSBjbGFp
bWVkIGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9mIHRoYXQgYmxv
Y2ssIHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2VwYXJhdG9ycy4K
IAogOzs7IENvZGU6CiAKIChyZXF1aXJlICd0cmVlc2l0KQogKHJlcXVpcmUgJ3N1YnIteCkKLShy
ZXF1aXJlICdvdXRsaW5lKQogKHJlcXVpcmUgJ3NlcSkKKyhyZXF1aXJlICdvdXRsaW5lKQorKHJl
cXVpcmUgJ2dvdG8tYWRkcikKKyhyZXF1aXJlICd4cmVmKQorKHJlcXVpcmUgJ2ljb25zKQogCi0o
dHJlZXNpdC1kZWNsYXJlLXVuYXZhaWxhYmxlLWZ1bmN0aW9ucykKLQotKGFkZC10by1saXN0Ci0g
J3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0Ci0gJyhtYXJrZG93bgotICAgImh0dHBzOi8v
Z2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93biIKLSAg
IDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4YWE3Mjc3ZjkiCi0gICA6
c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFya2Rvd24vc3JjIikKLSB0KQotKGFkZC10by1saXN0
Ci0gJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0Ci0gJyhtYXJrZG93bi1pbmxpbmUKLSAg
ICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFy
a2Rvd24iCi0gICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3
N2Y5IgotICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMiKQot
IHQpCis7OzsgQ3VzdG9taXphdGlvbnM6CiAKLTs7OyBIZWxwZXIgZnVuY3Rpb25zCi0KLShkZWZ2
YXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbWFwCi0gICcoKCJjKysiIC4gY3Bw
KQotICAgICgiYyMiIC4gYy1zaGFycCkKLSAgICAoInNoIiAuIGJhc2gpKQotICAiQWxpc3QgbWFw
cGluZyBjb2RlIGJsb2NrIGxhbmd1YWdlIG5hbWVzIHRvIHRyZWUtc2l0dGVyIGxhbmd1YWdlcy4K
LQotS2V5cyBzaG91bGQgYmUgc3RyaW5ncywgYW5kIHZhbHVlcyBzaG91bGQgYmUgbGFuZ3VhZ2Ug
c3ltYm9scy4KLQotRm9yIGV4YW1wbGUsIFwiYysrXCIgaW4KLQotICAgIGBgYGMrKwotICAgIGlu
dCBtYWluKCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgYGBgCi0KLW1hcHMgdG8g
dHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgYGNwcCcuIikKLQotKGRlZnZhciBtYXJrZG93bi10cy1jb2Rl
LWJsb2NrLXNvdXJjZS1tb2RlLW1hcAotICAnKChiYXNoIC4gYmFzaC10cy1tb2RlKQotICAgIChj
IC4gYy10cy1tb2RlKQotICAgIChjLXNoYXJwIC4gY3NoYXJwLXRzLW1vZGUpCi0gICAgKGNtYWtl
IC4gY21ha2UtdHMtbW9kZSkKLSAgICAoY3BwIC4gYysrLXRzLW1vZGUpCi0gICAgKGNzcyAuIGNz
cy10cy1tb2RlKQotICAgIChkb2NrZXJmaWxlIC4gZG9ja2VyZmlsZS10cy1tb2RlKQotICAgIChl
bGl4aXIgLiBlbGl4aXItdHMtbW9kZSkKLSAgICAoZ28gLiBnby10cy1tb2RlKQotICAgIChnb21v
ZCAuIGdvLW1vZC10cy1tb2RlKQotICAgIChnb3dvcmsgLiBnby13b3JrLXRzLW1vZGUpCi0gICAg
KGhlZXggLiBoZWV4LXRzLW1vZGUpCi0gICAgKGh0bWwgLiBodG1sLXRzLW1vZGUpCi0gICAgKGph
dmEgLiBqYXZhLXRzLW1vZGUpCi0gICAgKGphdmFzY3JpcHQgLiBqcy10cy1tb2RlKQotICAgIChq
c29uIC4ganNvbi10cy1tb2RlKQotICAgIChsdWEgLiBsdWEtdHMtbW9kZSkKLSAgICAocGhwIC4g
cGhwLXRzLW1vZGUpCi0gICAgKHB5dGhvbiAuIHB5dGhvbi10cy1tb2RlKQotICAgIChydWJ5IC4g
cnVieS10cy1tb2RlKQotICAgIChydXN0IC4gcnVzdC10cy1tb2RlKQotICAgICh0b21sIC4gdG9t
bC10cy1tb2RlKQotICAgICh0c3ggLiB0c3gtdHMtbW9kZSkKLSAgICAodHlwZXNjcmlwdCAuIHR5
cGVzY3JpcHQtdHMtbW9kZSkKLSAgICAoeWFtbCAuIHlhbWwtdHMtbW9kZSkpCi0gICJBbiBhbGlz
dCBvZiBzdXBwb3J0ZWQgY29kZSBibG9jayBsYW5ndWFnZXMgYW5kIHRoZWlyIG1ham9yIG1vZGUu
IikKKyhkZWZncm91cCBtYXJrZG93bi10cyBuaWwKKyAgIk1ham9yIG1vZGUgZm9yIHZpZXdpbmcg
YW5kIGVkaXRpbmcgTWFya2Rvd24gYnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLSIK
KyAgOmdyb3VwICd0ZXh0CisgIDpncm91cCAnZWRpdGluZworICA6dmVyc2lvbiAiMzEuMSIpCiAK
IChkZWZjdXN0b20gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgbmlsCiAgICJOb24tbmlsIG1lYW5z
IGhpZGUgTWFya2Rvd24gbWFya3VwIGRlbGltaXRlcnMgaW4gdGhpcyBidWZmZXIuIgogICA6dHlw
ZSAnYm9vbGVhbgogICA6c2FmZSAjJ2Jvb2xlYW5wCi0gIDpncm91cCAnbWFya2Rvd24tdHMpCi0K
LTs7OyBGYWNlcworICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikK
KworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1lbGxpcHNpcyBuaWwKKyAgIlRoZSBlbGxpcHNpcyB0
byB1c2UgaW4gZm9sZGVkIGhlYWRpbmdzLgorV2hlbiBuaWwsIHVzZSB0aGUgc3RhbmRhcmQgdGhy
ZWUgZG90cy4gIFdoZW4gYSBub24tZW1wdHkgc3RyaW5nLAordXNlIHRoYXQgc3RyaW5nIGluc3Rl
YWQuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0YWcgIkRlZmF1bHQgKC4uLikiIG5pbCkK
KyAgICAgICAgICAgICAgICAgKHN0cmluZyA6dGFnICJTdHJpbmciIDp2YWx1ZSAiIOKMhCIpKQor
ICA6c2FmZSAjJ3N0cmluZy1vci1udWxsLXAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdl
LXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtbWVudS1iYXItc2hvdyB0
CisgICJOb24tbmlsIG1lYW5zIHNob3cgdGhlIE1hcmtkb3duIG1lbnUgaW4gdGhlIG1lbnUgYmFy
LiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAgOnNhZmUgIydib29sZWFucAorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1k
ZWZhdWx0LWZvbGRpbmcgJ3Nob3ctYWxsCisgICJEZWZhdWx0IGhlYWRpbmcgZm9sZGluZyBsZXZl
bC4iCisgIDp0eXBlICcoY2hvaWNlCisgICAgICAgICAgKGNvbnN0IDp0YWcgIlNob3cgZXZlcnl0
aGluZyIgc2hvdy1hbGwpCisgICAgICAgICAgKGNvbnN0IDp0YWcgIkZvbGQgZXZlcnl0aGluZywg
c2hvd2luZyB0b3AtbGV2ZWwgaGVhZGluZ3MiIGZvbGQtYWxsKQorICAgICAgICAgIChjb25zdCA6
dGFnICJGb2xkIGhlYWRpbmdzLCBzaG93aW5nIGFsbCBoZWFkaW5nIGxldmVscyIgZm9sZC1oZWFk
aW5ncykpCisgIDpzYWZlICMnc3ltYm9scAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2Ut
dmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIG5p
bAorICAiTm9uLW5pbCBtZWFucyBkaXNwbGF5IGlubGluZSBpbWFnZXMgYmVsb3cgaW1hZ2UgbGlu
a3MuIgorICA6dHlwZSAnYm9vbGVhbgorICA6c2FmZSAjJ2Jvb2xlYW5wCisgIDp2ZXJzaW9uICIz
MS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRz
LWltYWdlLW1heC13aWR0aCAnd2luZG93CisgICJNYXhpbXVtIHdpZHRoIG9mIGlubGluZSBpbWFn
ZXMgaW4gcGl4ZWxzLgorV2hlbiBgd2luZG93JywgdXNlIHRoZSB3aW5kb3cgYm9keSB3aWR0aC4g
IFdoZW4gYSBudW1iZXIsIHVzZQordGhhdCBhcyB0aGUgbWF4aW11bSBwaXhlbCB3aWR0aC4iCisg
IDp0eXBlICcoY2hvaWNlIChjb25zdCAgOnRhZyAiV2luZG93IHdpZHRoIiB3aW5kb3cpCisgICAg
ICAgICAgICAgICAgIChuYXRudW0gOnRhZyAiUGl4ZWwgd2lkdGgiKSkKKyAgOnNhZmUgKGxhbWJk
YSAodikgKG9yIChlcSB2ICd3aW5kb3cpIChuYXRudW1wIHYpKSkKKyAgOnZlcnNpb24gIjMxLjEi
CisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGlz
cGxheS1yZW1vdGUtaW5saW5lLWltYWdlcyBuaWwKKyAgIkhvdyB0byBkaXNwbGF5IHJlbW90ZSBp
bmxpbmUgaW1hZ2VzLgorV2hlbiBuaWwsIGRvIG5vdCBkaXNwbGF5IHJlbW90ZSBpbWFnZXMuICBX
aGVuIGBkb3dubG9hZCcsIGZldGNoIHRoZQoraW1hZ2UgaW50byBhIHRlbXBvcmFyeSBidWZmZXIg
YW5kIGRpc3BsYXkgaXQuCisKK1JlbW90ZSBpbWFnZXMgYXJlIHNraXBwZWQgYnkgZGVmYXVsdCBm
b3Igc2VjdXJpdHkuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiU2tpcCByZW1vdGUg
aW1hZ2VzIiBuaWwpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEb3dubG9hZCByZW1v
dGUgaW1hZ2VzIiBkb3dubG9hZCkpCisgIDpzYWZlICMnc3ltYm9scAorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1j
aGVja2VkLWNoZWNrYm94ICcoIuKYkSIgLiAiKyIpCisgICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBk
aXNwbGF5IHRoaXMgZm9yIGEgY2hlY2tlZCB0YXNrIGxpc3QgbWFya2VyLgorVmFsdWUgZm9ybXM6
CisgLSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZFUlJFRCBpcyB1c2VkIGlmIGl0
cyBmaXJzdCBjaGFyYWN0ZXIKKyAgIHBhc3NlcyBgY2hhci1kaXNwbGF5YWJsZS1wJywgb3RoZXJ3
aXNlIEZBTExCQUNLLgorIC0gc3ltYm9sIGBpY29uJzogZGVmZXIgdG8gdGhlIGljb25zLmVsIGlj
b24KKyAgIGBtYXJrZG93bi10cy1jaGVja2VkLWNoZWNrYm94LWljb24nOyBjdXN0b21pemUgdmlh
CisgICBcXFtjdXN0b21pemUtaWNvbl0uCisgLSBuaWw6IGRpc3BsYXkgdGhlIHJhdyBtYXJrdXAu
IgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0YWcgIlByZWZlcnJlZCAoR1VJKSIp
CisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiRmFsbGJhY2sgKFRUWSkiKSkK
KyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIlVzZSBpY29ucy5lbCBpY29uIiBpY29uKQor
ICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5p
bCkpCisgIDpzYWZlIChsYW1iZGEgKHYpIChvciAobnVsbCB2KQorICAgICAgICAgICAgICAgICAg
ICAgICAgKGVxIHYgJ2ljb24pCisgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChjb25zcCB2
KSAoc3RyaW5ncCAoY2FyIHYpKSAoc3RyaW5ncCAoY2RyIHYpKSkpKQorICA6dmVyc2lvbiAiMzEu
MSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmluZS1pY29uIG1hcmtkb3duLXRz
LWNoZWNrZWQtY2hlY2tib3gtaWNvbiBuaWwKKyAgJygoaW1hZ2UgImNoZWNrZWQuc3ZnIiA6aGVp
Z2h0IGxpbmUgOmFzY2VudCBjZW50ZXIpCisgICAgKHN5bWJvbCAi4piRIikKKyAgICAodGV4dCAi
KyIpKQorICAiSWNvbiB1c2VkIGZvciBhIGNoZWNrZWQgdGFzayBsaXN0IG1hcmtlciB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uCitDb25zdWx0ZWQgb25seSB3aGVuIGBtYXJrZG93bi10cy1jaGVja2Vk
LWNoZWNrYm94JyBpcyB0aGUgc3ltYm9sCitgaWNvbicuIgorICA6dmVyc2lvbiAiMzEuMSIpCisK
KyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94ICcoIuKYkCIgLiAiLSIp
CisgICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgZm9yIGFuIHVuY2hlY2tlZCB0
YXNrIGxpc3QgbWFya2VyLgorVmFsdWUgZm9ybXM6CisgLSBjb25zIChQUkVGRVJSRUQgLiBGQUxM
QkFDSyk6IFBSRUZFUlJFRCBpcyB1c2VkIGlmIGl0cyBmaXJzdCBjaGFyYWN0ZXIKKyAgIHBhc3Nl
cyBgY2hhci1kaXNwbGF5YWJsZS1wJywgb3RoZXJ3aXNlIEZBTExCQUNLLgorIC0gc3ltYm9sIGBp
Y29uJzogZGVmZXIgdG8gdGhlIGljb25zLmVsIGljb24KKyAgIGBtYXJrZG93bi10cy11bmNoZWNr
ZWQtY2hlY2tib3gtaWNvbic7IGN1c3RvbWl6ZSB2aWEKKyAgIFxcW2N1c3RvbWl6ZS1pY29uXS4K
KyAtIG5pbDogZGlzcGxheSB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25z
IChzdHJpbmcgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAg
KHN0cmluZyA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3Qg
OnRhZyAiVXNlIGljb25zLmVsIGljb24iIGljb24pCisgICAgICAgICAgICAgICAgIChjb25zdCA6
dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnNhZmUgKGxhbWJkYSAodikg
KG9yIChudWxsIHYpCisgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdiAnaWNvbikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChhbmQgKGNvbnNwIHYpIChzdHJpbmdwIChjYXIgdikpIChzdHJp
bmdwIChjZHIgdikpKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmaW5lLWljb24gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94LWljb24g
bmlsCisgICcoKGltYWdlICJ1bmNoZWNrZWQuc3ZnIiA6aGVpZ2h0IGxpbmUgOmFzY2VudCBjZW50
ZXIpCisgICAgKHN5bWJvbCAi4piQIikKKyAgICAodGV4dCAiLSIpKQorICAiSWNvbiB1c2VkIGZv
ciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlciB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitD
b25zdWx0ZWQgb25seSB3aGVuIGBtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gnIGlzIHRo
ZSBzeW1ib2wKK2BpY29uJy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmN1c3RvbSBtYXJr
ZG93bi10cy10aGVtYXRpYy1icmVhay1jaGFyYWN0ZXIgJyg/4pSAIC4gPy0pCisgICJJZiBtYXJr
dXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgY2hhcmFjdGVyIGZvciB0aGVtYXRpYyBicmVha3Mu
CitJdCBpcyByZXBlYXRlZCB0byBmaWxsIHRoZSB3aW5kb3cgd2lkdGguCitUaGUgdmFsdWUgaXMg
YSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZFUlJFRCBpcyB1c2VkIGlmIGl0IHBh
c3NlcworYGNoYXItZGlzcGxheWFibGUtcCcsIG90aGVyd2lzZSBGQUxMQkFDSyBpcyB1c2VkLgor
bmlsIGRpc3BsYXlzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnMgKGNo
YXJhY3RlciA6dGFnICJQcmVmZXJyZWQgKEdVSSkiKQorICAgICAgICAgICAgICAgICAgICAgICAo
Y2hhcmFjdGVyIDp0YWcgIkZhbGxiYWNrIChUVFkpIikpCisgICAgICAgICAgICAgICAgIChjb25z
dCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnNhZmUgKGxhbWJkYSAo
dikgKG9yIChudWxsIHYpCisgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChjb25zcCB2KSAo
Y2hhcmFjdGVycCAoY2FyIHYpKSAoY2hhcmFjdGVycCAoY2RyIHYpKSkpKQorICA6dmVyc2lvbiAi
MzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10
cy1oYXJkLWxpbmUtYnJlYWstYmFja3NsYXNoICcoP8K2IC4gP3wpCisgICJJZiBtYXJrdXAgaXMg
aGlkZGVuLCBkaXNwbGF5IHRoaXMgY2hhcmFjdGVyIGZvciBhIGJhY2tzbGFzaCBoYXJkIGxpbmUg
YnJlYWsuCitUaGUgdmFsdWUgaXMgYSBjb25zIChQUkVGRVJSRUQgLiBGQUxMQkFDSyk6IFBSRUZF
UlJFRCBpcyB1c2VkIGlmIGl0IHBhc3NlcworYGNoYXItZGlzcGxheWFibGUtcCcsIG90aGVyd2lz
ZSBGQUxMQkFDSyBpcyB1c2VkLgorbmlsIGtlZXBzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5cGUg
JyhjaG9pY2UgKGNvbnMgKGNoYXJhY3RlciA6dGFnICJQcmVmZXJyZWQgKEdVSSkiKQorICAgICAg
ICAgICAgICAgICAgICAgICAoY2hhcmFjdGVyIDp0YWcgIkZhbGxiYWNrIChUVFkpIikpCisgICAg
ICAgICAgICAgICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkK
KyAgOnNhZmUgKGxhbWJkYSAodikgKG9yIChudWxsIG5pbCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChhbmQgKGNvbnNwIHYpIChjaGFyYWN0ZXJwIChjYXIgdikpIChjaGFyYWN0ZXJwIChjZHIg
dikpKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCiso
ZGVmY3VzdG9tIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZQorICAobGFtYmRhIChu
KQorICAgIChsZXQqICgodmFsIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlCisg
ICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpKQor
ICAgICAgICAgICAoY2ggKGlmIChjaGFyYWN0ZXJwIHZhbCkgdmFsID98KSkpCisgICAgICAobWFr
ZS1zdHJpbmcgbiBjaCkpKQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZv
ciBhIHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsuCitUaGUgdmFsdWUgY2FuIGJlOgor
LSBhIGNoYXJhY3RlciBvciBzdHJpbmc6IHNob3duIG9uY2UgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0
cmFpbGluZyBzcGFjZXMsCisgIHdpdGggbm8gcmVwZXRpdGlvbiAodGhlIHJlbWFpbmluZyBzcGFj
ZXMgc3RheSBpbnZpc2libGUpOworLSBhIGZ1bmN0aW9uOiBjYWxsZWQgd2l0aCBvbmUgYXJndW1l
bnQsIHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgc3BhY2VzLAorICBhbmQgbXVzdCByZXR1cm4gdGhl
IHN0cmluZyB0byBkaXNwbGF5IGluIHBsYWNlIG9mIHRoZSBydW47CistIG5pbDoga2VlcCB0aGUg
cmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRhZyAiRGlzcGxheSBz
cGVjaWZpZWQgY2hhcmFjdGVyIChubyByZXBldGl0aW9uKSIpCisgICAgICAgICAgICAgICAgIChz
dHJpbmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIChubyByZXBldGl0aW9uKSIpCisg
ICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlvbiBmcm9tIGNvdW50IHRvIGRp
c3BsYXkgc3RyaW5nIikKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3BsYXkgb3Jp
Z2luYWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lv
biAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1mb250aWZ5LWNvZGUtYmxvY2tzLW5h
dGl2ZWx5IHQKKyAgIk5vbi1uaWwgbWVhbnMgZm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnRzIHVz
aW5nIHRoZSBsYW5ndWFnZSdzIG1vZGUuCitXaGVuIG5vbi1uaWwsIGZlbmNlZCBjb2RlIGJsb2Nr
cyBhcmUgaGlnaGxpZ2h0ZWQgd2l0aCBzeW50YXggb2YgdGhlCitlbWJlZGRlZCBsYW5ndWFnZSAo
dmlhIHRyZWUtc2l0dGVyIGZvciBsYW5ndWFnZXMgd2l0aCBhIHRyZWUtc2l0dGVyCittb2RlLCBv
ciB2aWEgY29udmVudGlvbmFsIGZvbnQtbG9jayBmb3IgdGhlIHJlc3QpLiAgV2hlbiBuaWwsIGNv
ZGUKK2Jsb2NrcyBrZWVwIG9ubHkgdGhlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBiYWNrZ3Jv
dW5kIGZhY2UuICBUb2dnbGluZworZm9yIHRoZSB0cy1lbWJlZGRlZCBwYXRoIHRha2VzIGVmZmVj
dCBhZnRlciByZXN0YXJ0aW5nCitgbWFya2Rvd24tdHMtbW9kZScgaW4gdGhlIGJ1ZmZlci4iCisg
IDp0eXBlICdib29sZWFuCisgIDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjMxLjEiCisg
IDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZW5hYmxl
LWNvZGUtYmxvY2stY29udGV4dC1tb2RlIHQKKyAgIk5vbi1uaWwgZW5hYmxlcyBgbWFya2Rvd24t
dHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUnIGludGVncmF0aW9uLgorV2hlbiBub24tbmlsLCBw
b2ludCBlbnRlcmluZyBhIGZlbmNlZCBjb2RlIGJsb2NrIGFjdGl2YXRlcyBhIG1pbm9yCittb2Rl
IHRoYXQgc3dhcHMgdGhlIGtleW1hcCBhbmQgZGlzcGF0Y2hlcyBlbGlnaWJsZSBjb21tYW5kcyB0
byB0aGUKK2Jsb2NrJ3MgbWFqb3IgbW9kZSB2aWEgYW4gaW5kaXJlY3QgYnVmZmVyLiAgU2V0IHRv
IG5pbCB0byBkaXNhYmxlCit0aGlzIGJlaGF2aW9yIGVudGlyZWx5OyB0aGUgbWlub3IgbW9kZSB3
aWxsIG5vdCBiZSBlbmFibGVkIGFuZAorYG1hcmtkb3duLXRzLW1vZGUnIGJpbmRpbmdzIHJlbWFp
biBhY3RpdmUgaW5zaWRlIGNvZGUgYmxvY2tzLiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAgOnNhZmUg
Iydib29sZWFucAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikK
KworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kZWZhdWx0LWNvZGUtYmxvY2stbW9kZSAndGV4dC1t
b2RlCisgICJEZWZhdWx0IG1vZGUgZm9yIGFub255bW91cyBjb2RlIGJsb2Nrcy4iCisgIDp0eXBl
ICcoY2hvaWNlCisgICAgICAgICAgKGNvbnN0ICA6dGFnICJUZXh0IG1vZGUiIHRleHQtbW9kZSkK
KyAgICAgICAgICAoY29uc3QgIDp0YWcgIkZ1bmRhbWVudGFsIG1vZGUiIGZ1bmRhbWVudGFsLW1v
ZGUpCisgICAgICAgICAgKHN5bWJvbCA6dGFnICJPdGhlciBtb2RlIHN5bWJvbCIKKyAgICAgICAg
ICAgICAgICAgIDp2YWxpZGF0ZSAobGFtYmRhICh3aWQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGV0ICgodmFsICh3aWRnZXQtdmFsdWUgd2lkKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh1bmxlc3MgKGFuZCB2YWwgKGVxICdzeW1ib2wgKHR5cGUtb2YgdmFs
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpZGdldC1wdXQgd2lkIDpl
cnJvciAiTXVzdCBiZSBhIG5vbi1uaWwgc3ltYm9sIikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWQpKSkpKQorICA6c2FmZSAjJ3N5bWJvbHAKKyAgOnZlcnNpb24gIjMxLjEi
CisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKzs7OyBGYWNlczoKIAogKGRlZmdyb3VwIG1h
cmtkb3duLXRzLWZhY2VzIG5pbAotICAiRmFjZXMgdXNlZCBpbiBNYXJrZG93biBUUyBNb2RlLiIK
KyAgIkZhY2VzIHVzZWQgYnkgTWFya2Rvd24tVFMuIgogICA6Z3JvdXAgJ21hcmtkb3duLXRzLWZh
Y2VzCiAgIDpncm91cCAnZmFjZXMpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWRlbGltaXRlciAn
KCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKLSAgIkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJrZG93
biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgdGhlICMgYmVmb3JlIE1hcmtkb3duIGhlYWRpbmdz
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTEg
JygodCAoOmluaGVyaXQgb3V0bGluZS0xKSkpCi0gICJGYWNlIGZvciBmaXJzdCBsZXZlbCBNYXJr
ZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rvd24gaGVhZGlu
Z3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLXNldGV4dC1o
ZWFkaW5nICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWhlYWRpbmctMSkpKQotICAiRmFjZSBm
b3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1bmRlcmxpbmVkIGJ5ID09PSBv
ciAtLS0pLiIpCisgICJGYWNlIGZvciBzZXRleHQgTWFya2Rvd24gaGVhZGluZ3MgKGhlYWRpbmdz
IHVuZGVybGluZWQgYnkgPT09IG9yIC0tLSkuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZm
YWNlIG1hcmtkb3duLXRzLWhlYWRpbmctMiAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTIpKSkKLSAg
IkZhY2UgZm9yIHNlY29uZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBmb3Ig
c2Vjb25kIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAo
ZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTMgJygodCAoOmluaGVyaXQgb3V0bGluZS0zKSkp
Ci0gICJGYWNlIGZvciB0aGlyZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFjZSBm
b3IgdGhpcmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAK
IChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNCAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTQp
KSkKLSAgIkZhY2UgZm9yIGZvdXJ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAiRmFj
ZSBmb3IgZm91cnRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTUgJygodCAoOmluaGVyaXQgb3V0bGlu
ZS01KSkpCi0gICJGYWNlIGZvciBmaWZ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAi
RmFjZSBmb3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNiAnKCh0ICg6aW5oZXJpdCBvdXRs
aW5lLTYpKSkKLSAgIkZhY2UgZm9yIHNpeHRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIpCisg
ICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIz
MS4xIikKIAotKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygodCAoOmluaGVyaXQg
c2hhZG93KSkpCi0gICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMgbGlrZSAtIGFuZCAq
LiIpCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbXBoYXNpcyAnKCh0ICg6aW5oZXJpdCBpdGFsaWMp
KSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGVtcGhhc2lzIChpdGFsaWMpIHRleHQuIgorICA6dmVy
c2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWJvbGQgJygodCAoOmluaGVyaXQg
Ym9sZCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3Ryb25nIGVtcGhhc2lzIChib2xkKSB0ZXh0
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1zdHJpa2V0aHJv
dWdoICcoKHQgKDpzdHJpa2UtdGhyb3VnaCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBzdHJp
a2V0aHJvdWdoIHRleHQuIgorICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZmYWNlIG1hcmtkb3du
LXRzLWJsb2NrLXF1b3RlICcoKHQgKDppbmhlcml0IGl0YWxpYykpKQotICAiRmFjZSBmb3IgTWFy
a2Rvd24gYmxvY2sgcXVvdGVzLiIpCisgICJGYWNlIGZvciBNYXJrZG93biBibG9jayBxdW90ZXMu
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpbmsgJygodCAo
OmluaGVyaXQgbGluaykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGluayB0ZXh0IGFuZCBpbWFn
ZSBkZXNjcmlwdGlvbnMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWxpbmstZGVzdGluYXRpb24gJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNl
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaW5rIGRlc3RpbmF0aW9ucyAoVVJMcykuIgorICA6
dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNvZGUtc3BhbiAnKCh0ICg6
aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGlu
bGluZSBjb2RlIHNwYW5zLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93
bi10cy1jb2RlLWJsb2NrICcoKHQgKDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24g
ZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudC4KK0FsdGVyIHRoaXMgZmFjZSB0byBhZGQgYSBgOmJh
Y2tncm91bmQnIGZvciBhIHZpc3VhbGx5IGRpc3RpbmN0Citjb2RlIGJsb2NrIHJlZ2lvbiwgZS5n
LjoKKyAgKHNldC1mYWNlLWF0dHJpYnV0ZSBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jayBuaWwg
OmJhY2tncm91bmQgXCJncmF5OTVcIikiCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisgICcoKCgoYmFja2dyb3VuZCBs
aWdodCkpICg6YmFja2dyb3VuZCAiZ3JheTk1IiA6ZXh0ZW5kIHQpKQorICAgICgoKGJhY2tncm91
bmQgZGFyaykpICAoOmJhY2tncm91bmQgImdyYXkxNSIgOmV4dGVuZCB0KSkpCisgICJGYWNlIGZv
ciBNYXJrZG93biBmZW5jZWQgY29kZSBibG9jayBjb250ZW50IHdoZW4gbWFya3VwIGlzIGhpZGRl
bi4KK1VzZWQgaW5zdGVhZCBvZiBgbWFya2Rvd24tdHMtY29kZS1ibG9jaycgd2hlbiBgbWFya2Rv
d24tdHMtaGlkZS1tYXJrdXAnCitpcyBub24tbmlsLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCiso
ZGVmZmFjZSBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrICcoKHQgKDppbmhlcml0IGZv
bnQtbG9jay1zdHJpbmctZmFjZSkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gaW5kZW50ZWQgY29k
ZSBibG9ja3MuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWh0
bWwtdGFnICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1kb2MtbWFya3VwLWZhY2UpKSkKKyAgIkZh
Y2UgZm9yIGlubGluZSBIVE1MIHRhZ3MgaW4gTWFya2Rvd24uIgorICA6dmVyc2lvbiAiMzEuMSIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWh0bWwtYmxvY2sgJygodCAoOmluaGVyaXQgZm9udC1s
b2NrLWRvYy1tYXJrdXAtZmFjZSkpKQorICAiRmFjZSBmb3IgSFRNTCBibG9ja3MgaW4gTWFya2Rv
d24uIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRoZW1hdGlj
LWJyZWFrICcoKHQgKDppbmhlcml0IHNoYWRvdyA6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIHRoZW1hdGljIGJyZWFrcyAoaG9yaXpvbnRhbCBydWxlcykuCitDdXN0b21pemUgdGhp
cyBmYWNlIHRvIGFkZCBhIDpiYWNrZ3JvdW5kIGZvciBhIGZ1bGwtd2lkdGggdmlzdWFsIHJ1bGUu
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWVudGl0eS1yZWZl
cmVuY2UgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkpKQorICAiRmFjZSBm
b3IgbmFtZWQgSFRNTCBlbnRpdHkgcmVmZXJlbmNlcyBsaWtlICZhbXA7IGFuZCAmY29weTsuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLW51bWVyaWMtY2hhcmFj
dGVyLXJlZmVyZW5jZQorICAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZXNjYXBlLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgbGlrZSAmIzY1OyBhbmQg
JiN4NDE7LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1sYXRl
eCAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIExh
VGVYIC8gbWF0aCBjb250ZW50IGluIE1hcmtkb3duICgkLi4uJCBhbmQgJCQuLi4kJCkuIgorICA6
dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWhlYWRlciAnKCh0
ICg6aW5oZXJpdCAoYm9sZCBmb250LWxvY2stZG9jLWZhY2UpKSkpCisgICJGYWNlIGZvciBNYXJr
ZG93biBwaXBlIHRhYmxlIGhlYWRlciBjZWxscy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRl
ZmZhY2UgbWFya2Rvd24tdHMtdGFibGUtY2VsbCAnKCh0ICg6aW5oZXJpdCBkZWZhdWx0KSkpCisg
ICJGYWNlIGZvciBNYXJrZG93biBwaXBlIHRhYmxlIGRhdGEgY2VsbHMuIgorICA6dmVyc2lvbiAi
MzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxsICcoKHQg
KDppbmhlcml0IGZvbnQtbG9jay1kb2MtZmFjZSkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gcGlw
ZSB0YWJsZSBkZWxpbWl0ZXIgY2VsbHMgKC0tLSBzZXBhcmF0b3JzKS4iCisgIDp2ZXJzaW9uICIz
MS4xIikKIAogKGRlZmZhY2UgbWFya2Rvd24tdHMtbGFuZ3VhZ2Uta2V5d29yZCAnKCh0ICg6aW5o
ZXJpdCBmb250LWxvY2sta2V5d29yZC1mYWNlKSkpCi0gICJGYWNlIGZvciB0aGUgbGFuZ3VhZ2Ug
a2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIikKKyAgIkZhY2UgZm9yIHRoZSBsYW5n
dWFnZSBrZXl3b3JkIGZvciBNYXJrZG93biBjb2RlIGJsb2Nrcy4iCisgIDp2ZXJzaW9uICIzMS4x
IikKIAotOzs7IEZvbnQtbG9jaworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygo
dCAoOmluaGVyaXQgc2hhZG93KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMg
bGlrZSAtIGFuZCAqLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10
cy1oYXJkLWxpbmUtYnJlYWstYmFja3NsYXNoCisgICcoKHQgKDppbmhlcml0IG91dGxpbmUtNCA6
d2VpZ2h0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGhhcmQgbGluZSBicmVha3MgaW50
cm9kdWNlZCBieSBhIHRyYWlsaW5nIGJhY2tzbGFzaC4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4KKyAg
JygodCAoOmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9sZCkpKQorICAiRmFjZSBmb3IgdHJh
aWxpbmctYmFja3NsYXNoIGhhcmQgbGluZSBicmVhayB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVh
ay1zcGFjZQorICAnKCgoKGJhY2tncm91bmQgbGlnaHQpKSAoOmJhY2tncm91bmQgImdyYXk3MCIg
OndlaWdodCBib2xkKSkKKyAgICAoKChiYWNrZ3JvdW5kIGRhcmspKSAgKDpiYWNrZ3JvdW5kICJn
cmF5NDAiIDp3ZWlnaHQgYm9sZCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gaGFyZCBsaW5lIGJy
ZWFrcyBpbnRyb2R1Y2VkIGJ5IHR3byB0cmFpbGluZyBzcGFjZXMuCitUaGUgdHJhaWxpbmcgc3Bh
Y2VzIGFyZSBvdGhlcndpc2UgaW52aXNpYmxlLCBzbyB0aGV5IGFyZSBzaG93biBhcyBhCitzaGFk
b3ctY29sb3JlZCBibG9jay4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlLWhpZGRlbgorICAnKCh0ICg6aW5oZXJpdCBvdXRs
aW5lLTQgOndlaWdodCBib2xkKSkpCisgICJGYWNlIGZvciB0cmFpbGluZy1zcGFjZXMgaGFyZCBs
aW5lIGJyZWFrIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQgJygodCAoOmluaGVyaXQgbWFya2Rv
d24tdHMtbGlzdC1tYXJrZXIpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHVuY2hlY2tlZCB0YXNr
IGxpc3QgbWFya2Vycy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24t
dHMtdGFzay1jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWxpc3QtbWFya2VyKSkp
CisgICJGYWNlIGZvciBNYXJrZG93biBjaGVja2VkIHRhc2sgbGlzdCBtYXJrZXJzLiIKKyAgOnZl
cnNpb24gIjMxLjEiKQorCisodHJlZXNpdC1kZWNsYXJlLXVuYXZhaWxhYmxlLWZ1bmN0aW9ucykK
KworKGFkZC10by1saXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CisgJyhtYXJr
ZG93bgorICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFtbWFycy90cmVlLXNp
dHRlci1tYXJrZG93biIKKyAgIDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1
YjQ4YWE3Mjc3ZjkiCisgICA6c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFya2Rvd24vc3JjIikK
KyB0KQorCisoYWRkLXRvLWxpc3QKKyAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2UtYWxpc3QKKyAn
KG1hcmtkb3duLWlubGluZQorICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1ncmFt
bWFycy90cmVlLXNpdHRlci1tYXJrZG93biIKKyAgIDpjb21taXQgIjQxMzI4NTIzMWNlOGZhOGIx
MWU3MDc0YmJlMjY1YjQ4YWE3Mjc3ZjkiCisgICA6c291cmNlLWRpciAidHJlZS1zaXR0ZXItbWFy
a2Rvd24taW5saW5lL3NyYyIpCisgdCkKKworOzs7IFZhcmlhYmxlczoKKworKGRlZnZhciBtYXJr
ZG93bi10cy0tc2V0LXVwLWlubGluZSBuaWwKKyAgIkxldCBiaW5kIHRoaXMgdG8gbm9uLW5pbCBm
b3IgaW5saW5lIGBtYXJrZG93bi10cy1tb2RlJyBidWZmZXJzLiIpCisKKyhkZWZ2YXIgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1tb2RlcworICBgKChzaCBiYXNoLXRzLW1vZGUpCisgICAgKHNoZWxs
IGJhc2gtdHMtbW9kZSkKKyAgICAoLChpbnRlcm4gImMjIikgY3NoYXJwLXRzLW1vZGUpCisgICAg
KGNwcCBjKystdHMtbW9kZSkKKyAgICAoZWwgZW1hY3MtbGlzcC1tb2RlKQorICAgIChlbGlzcCBl
bWFjcy1saXNwLW1vZGUpCisgICAgKGdvbGFuZyBnby10cy1tb2RlKQorICAgIChnb21vZCBnby1t
b2QtdHMtbW9kZSkKKyAgICAoZ293b3JrIGdvLXdvcmstdHMtbW9kZSkKKyAgICAoamF2YXNjcmlw
dCBqcy10cy1tb2RlKQorICAgIChtZCBtYXJrZG93bi10cy1tb2RlKQorICAgIChweSBweXRob24t
dHMtbW9kZSkKKyAgICAocmIgcnVieS10cy1tb2RlKQorICAgIChycyBydXN0LXRzLW1vZGUpCisg
ICAgKHRleCBsYXRleC1tb2RlKQorICAgICh0cyB0eXBlc2NyaXB0LXRzLW1vZGUpCisgICAgKHlt
bCB5YW1sLXRzLW1vZGUpKQorICAiRXh0cmEgbWFwcGluZ3MgZnJvbSBjb2RlIGJsb2NrIGxhbmd1
YWdlIHRhZ3MgdG8gbWFqb3IgbW9kZXMuCisKK0VudHJpZXMgaGVyZSBhcmUgb25seSBuZWVkZWQg
d2hlbiB0aGUgbGFuZ3VhZ2UgdGFnIGluIGEgZmVuY2VkIGNvZGUKK2Jsb2NrIGRvZXMgTk9UIG1h
dGNoIHRoZSBjb252ZW50aW9uYWwgbW9kZSBuYW1lIGRlcml2YXRpb24sIGUuZy4gdGhlCit1c2Vy
IHdyaXRlcyBcXD1gXFw9YFxcPWB0cyBpbnN0ZWFkIG9mIFxcPWBcXD1gXFw9YHR5cGVzY3JpcHQs
IG9yCitcXD1gXFw9YFxcPWBweSBpbnN0ZWFkIG9mIFxcPWBcXD1gXFw9YHB5dGhvbi4gIEZvciB0
YWdzIHRoYXQgYWxyZWFkeQorcmVzb2x2ZSB2aWEgdGhlIHN0YW5kYXJkIFwiLXRzLW1vZGVcIi9c
Ii1tb2RlXCIgaGV1cmlzdGljcyB0aGVyZSBpcyBubworbmVlZCB0byBhZGQgYW4gZW50cnkuCisK
K1RoZSBhbGlzdCBpcyBvZiB0aGUgZm9ybSAoTEFOR1VBR0UgTUFKT1ItTU9ERSkuIE1BSk9SLU1P
REUgY2FuIGJlIGEKK3RyZWUtc2l0dGVyIG9yIGEgY29udmVudGlvbmFsIG1vZGUuCisKK0lmIHlv
dSBwcmVmZXIgYSBjb252ZW50aW9uYWwgbW9kZSBvdmVyIGl0cyB0cmVlLXNpdHRlciB2YXJpYW50
LCBhZGQgb3IKK3JlcGxhY2UgcmVsZXZhbnQgZW50cmllcy4gIEZvciBleGFtcGxlOgorCisgICAg
KGFkZC10by1saXN0IFxcPSdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzCisgICAgICBcXD0n
KHB5dGhvbiBweXRob24tbW9kZSkpCisgICAgKHNldGYgKGFsaXN0LWdldCBcXD0ncHkgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1tb2RlcykKKyAgICAgICAgICBcXD0nKHB5dGhvbi1tb2RlKSkKKwor
Q29kZSBibG9ja3MgZm9yIHRoYXQgbm9uIHRyZWUtc2l0dGVyIG1vZGVzIHdpbGwgYmUgZm9udGlm
aWVkIHVzaW5nIHRoZQorbW9kZSdzIGNvbnZlbnRpb25hbCBmb250LWxvY2sgcnVsZXMuIikKKwor
KGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcwor
ICAnKG1hcmtkb3duLXRzLW1vZGUKKyAgICBwaHAtdHMtbW9kZSkKKyAgIlRyZWF0IHRoZXNlIGNv
ZGUgYmxvY2sgdHJlZS1zaXR0ZXIgbW9kZXMgYXMgY29udmVudGlvbmFsLgorU29tZSBtb2RlcyB0
aGF0IGVtYmVkIG11bHRpcGxlIGB0cmVlc2l0JyBwYXJzZXJzIG5lZWQgdG8gYmUgdHJlYXRlZCB3
aXRoCitjb252ZW50aW9uYWwgZm9udC1sb2NrLiAgYG1hcmtkb3duLXRzLW1vZGUnIGl0c2VsZiBp
cyBvbmUgb2YgdGhlbS4iKQorCis7OzsgRm9udC1sb2NrOgogCiAoZGVmdW4gbWFya2Rvd24tdHMt
LWZvbnRpZnktZGVsaW1pdGVyIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQogICAi
Rm9udGlmeSBkZWxpbWl0ZXIgTk9ERSBhbmQgb3B0aW9uYWxseSBoaWRlIGl0cyBtYXJrdXAuCkBA
IC0xNjgsMjMgKzU4Miw4MDYgQEAgbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCiAgICAg
KHB1dC10ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9k
ZS1lbmQgbm9kZSkKICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24t
dHMtLW1hcmt1cCkpKQogCisoZGVmdmFyIHVybC1tYWlsLWNvbW1hbmQpIDsgdXJsL3VybC12YXJz
LmVsCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbiAoYmVnIGVuZCB1cmwp
CisgICJNYWtlIHRoZSByZWdpb24gZnJvbSBCRUcgdG8gRU5EIGEgY2xpY2thYmxlIGJ1dHRvbiBm
b3IgVVJMLgorRm9yIG1haWx0bzogVVJJcywgdXNlIGB1cmwtbWFpbC1jb21tYW5kJy4gIEZvciBv
dGhlciBzY2hlbWVzCitcKGUuZy4sIGh0dHAsIGZ0cCksIG9wZW4gd2l0aCBgYnJvd3NlLXVybCcu
ICBPdGhlcndpc2UsIHRyZWF0IGFzCithIHJlbGF0aXZlIGZpbGUgcGF0aCBhbmQgb3BlbiB3aXRo
IGBmaW5kLWZpbGUnLgorCitEbyBub3QgcGFzcyBgZmFjZScgdG8gYG1ha2UtdGV4dC1idXR0b24n
OiB0aGUgbGluayBmYWNlIGlzIGFscmVhZHkKK2FwcGxpZWQgYnkgYG1hcmtkb3duLXRzLS1mb250
aWZ5LWxpbmstbm9kZScgdmlhCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnICh3aXRo
IGA6b3ZlcnJpZGUgYXBwZW5kJyksIGFuZAorYGFkZC10ZXh0LXByb3BlcnRpZXMnIHdvdWxkIG90
aGVyd2lzZSByZXBsYWNlIHRoZSBhcHBlbmRlZCBmYWNlCitsaXN0IHdpdGggYSBzaW5nbGUgYG1h
cmtkb3duLXRzLWxpbmsnLCBjbG9iYmVyaW5nIGFuIGVuY2xvc2luZworaGVhZGluZyBmYWNlLiIK
KyAgOzsgTk9URTogVVJJIHNjaGVtZSBhbmQgaG9zdCBuYW1lIGFyZSBjYXNlLWluc2Vuc2l0aXZl
IHBlciBSRkMgMzk4NgorICA7OyBhbmQgUkZDIDcyMzAuCisgIChsZXQgKChjYXNlLWZvbGQtc2Vh
cmNoIG5pbCkpCisgICAgKG1ha2UtdGV4dC1idXR0b24gYmVnIGVuZAorICAgICAgICAgICAgICAg
ICAgICAgICdhY3Rpb24gKGxhbWJkYSAoX2J1dHRvbikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5n
LXByZWZpeC1wICIjIiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h
cmtkb3duLXRzLS1mb2xsb3ctZnJhZ21lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN1YnN0cmluZyB1cmwgMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKChzdHJpbmctbWF0Y2gtcCAiXFxgbWFpbHRvOiIgdXJsKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChmdW5jYWxsIHVybC1tYWlsLWNvbW1hbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBtYWlsdG86IiAi
IiB1cmwpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNo
LXAgIlxcYFthLXpdKzoiIHVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YnJvd3NlLXVybCB1cmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQgKGZp
bmQtZmlsZSB1cmwpKSkpCisgICAgICAgICAgICAgICAgICAgICAgJ2hlbHAtZWNobyB1cmwpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstZGVzdGluYXRpb24gKG5vZGUgb3Zl
cnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsgZGVzdGluYXRpb24gTk9E
RSBhbmQgaGlkZSBpdCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFu
ZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp
ZGUnLiIKKyAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2Rl
LXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGlu
ay1kZXN0aW5hdGlvbiBvdmVycmlkZSBzdGFydCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhp
ZGUtbWFya3VwCisgICAgKHB1dC10ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9k
ZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlz
aWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRz
LS1saW5rLXJlZi1jYWNoZSBuaWwKKyAgIkNhY2hlZCBhbGlzdCBvZiAoTEFCRUwgLiBVUkwpIGZy
b20gbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMuCitFYWNoIGVudHJ5IGlzIGEgY29ucyBjZWxs
IG1hcHBpbmcgYSBkb3duY2FzZWQgbGFiZWwgc3RyaW5nIHRvIGl0cworZGVzdGluYXRpb24gVVJM
LiIpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2sgbmls
CisgICJWYWx1ZSBvZiBgYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGNhY2hl
IHdhcyBidWlsdC4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25z
ICgpCisgICJSZXR1cm4gYW4gYWxpc3Qgb2YgKExBQkVMIC4gVVJMKSBmcm9tIGxpbmsgcmVmZXJl
bmNlIGRlZmluaXRpb25zLgorTEFCRUwgaXMgZG93bmNhc2VkIGZvciBjYXNlLWluc2Vuc2l0aXZl
IG1hdGNoaW5nLiAgUmVzdWx0cyBhcmUKK2NhY2hlZCBhbmQgcmVidWlsdCBvbmx5IHdoZW4gdGhl
IGJ1ZmZlciBjaGFuZ2VzLiIKKyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10
aWNrKSkpCisgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUt
dGljaykKKyAgICAgIChsZXQqICgocm9vdCAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJr
ZG93bikpCisgICAgICAgICAgICAgKG1hdGNoZXMgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAg
ICAgICAgICAgICAgICAgICAgICByb290CisgICAgICAgICAgICAgICAgICAgICAgICcoKGxpbmtf
cmVmZXJlbmNlX2RlZmluaXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtfbGFi
ZWwpIEBsYWJlbAorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua19kZXN0aW5hdGlvbikg
QGRlc3QpKSkpCisgICAgICAgICAgICAgZGVmcykKKyAgICAgICAgKHdoaWxlIG1hdGNoZXMKKyAg
ICAgICAgICAobGV0KiAoKGxhYmVsLXBhaXIgKHBvcCBtYXRjaGVzKSkKKyAgICAgICAgICAgICAg
ICAgKGRlc3QtcGFpciAocG9wIG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAobGJsLXRleHQg
KHN0cmluZy10cmltICh0cmVlc2l0LW5vZGUtdGV4dCAoY2RyIGxhYmVsLXBhaXIpIHQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcWyIgIlxcXSIpKSkKKyAgICAg
ICAgICAgIChwdXNoIChjb25zIChkb3duY2FzZSBsYmwtdGV4dCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCAoY2RyIGRlc3QtcGFpcikgdCkpCisgICAgICAgICAg
ICAgICAgICBkZWZzKSkpCisgICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNo
ZSAobnJldmVyc2UgZGVmcykKKyAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNh
Y2hlLXRpY2sgdGljaykpKQorICAgIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZiAobGFiZWwpCisgICJSZXNvbHZlIExB
QkVMIHRvIGEgVVJMIHZpYSBsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4KK0xBQkVMIHNob3Vs
ZCBiZSB0aGUgdGV4dCB3aXRob3V0IGJyYWNrZXRzLiAgTWF0Y2hpbmcgaXMKK2Nhc2UtaW5zZW5z
aXRpdmUgcGVyIENvbW1vbk1hcmsgc3BlYyBzZWN0aW9uIDQuNy4iCisgIChhbGlzdC1nZXQgKGRv
d25jYXNlIGxhYmVsKSAobWFya2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25zKQorICAgICAg
ICAgICAgIG5pbCBuaWwgIydlcXVhbCkpCisKKzs7OyBGcmFnbWVudCBsaW5rczoKKworKGRlZmNv
bnN0IG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1Yi1zdHJpcC1yZQorICAiW11bIVwiIyQlJicoKSor
LC4vOjs8PT4/QFxcXmB7fH1+XSIKKyAgIlB1bmN0dWF0aW9uIHN0cmlwcGVkIGJ5IEdpdEh1Yidz
IGdoLXNsdWdnZXIgYmVmb3JlIGh5cGhlbmF0aW9uLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
c2x1Zy1naXRodWIgKHRleHQpCisgICJSZXR1cm4gdGhlIEdpdEh1Yi1mbGF2b3Igc2x1ZyBmb3Ig
aGVhZGluZyBURVhULgorTWlycm9ycyB0aGUgZ2gtc2x1Z2dlciBhbGdvcml0aG06IGxvd2VyY2Fz
ZSwgc3RyaXAgYSBmaXhlZAorcHVuY3R1YXRpb24gc2V0LCByZXBsYWNlIHNwYWNlcyB3aXRoIGh5
cGhlbnMuIgorICAobGV0KiAoKGxjIChkb3duY2FzZSB0ZXh0KSkKKyAgICAgICAgIChzdHJpcHBl
ZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgIG1hcmtkb3du
LXRzLS1zbHVnLWdpdGh1Yi1zdHJpcC1yZSAiIiBsYykpKQorICAgIChyZXBsYWNlLXJlZ2V4cC1p
bi1zdHJpbmcgIltbOmJsYW5rOl1dIiAiLSIgc3RyaXBwZWQpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1zbHVnLXBhbmRvYyAodGV4dCkKKyAgIlJldHVybiB0aGUgUGFuZG9jLWZsYXZvciBhdXRv
LWlkIHNsdWcgZm9yIGhlYWRpbmcgVEVYVC4KK01pcnJvcnMgUGFuZG9jJ3MgYWxnb3JpdGhtOiBk
cm9wIGV2ZXJ5dGhpbmcgYmVmb3JlIHRoZSBmaXJzdAorbGV0dGVyLCBrZWVwIGFscGhhbnVtZXJp
Y3MgYW5kIGBfLS4nLCBjb2xsYXBzZSB3aGl0ZXNwYWNlIHJ1bnMgdG8KK2h5cGhlbnMsIGxvd2Vy
Y2FzZS4gIEZhbGxzIGJhY2sgdG8gXCJzZWN0aW9uXCIgaWYgZW1wdHkuIgorICAobGV0KiAoKGxj
IChkb3duY2FzZSB0ZXh0KSkKKyAgICAgICAgIChmcm9tLWxldHRlciAoaWYgKHN0cmluZy1tYXRj
aCAiW1s6YWxwaGE6XV0iIGxjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5n
IGxjIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAgICAgICAgICAgICAgICAgICAiIikpCisg
ICAgICAgICAoa2VwdCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgICAg
IlteWzphbG51bTpdXy5cblx0WzpibGFuazpdLV0iICIiIGZyb20tbGV0dGVyKSkKKyAgICAgICAg
IChoeXBoZW5hdGVkIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIltbOmJsYW5rOl1cdFxuXSsi
ICItIiBrZXB0KSkKKyAgICAgICAgICh0cmltbWVkIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcg
Ii0rXFwnIiAiIiBoeXBoZW5hdGVkKSkpCisgICAgKGlmIChzdHJpbmctZW1wdHktcCB0cmltbWVk
KSAic2VjdGlvbiIgdHJpbW1lZCkpKQorCisoZGVmY29uc3QgbWFya2Rvd24tdHMtLWV4cGxpY2l0
LWlkLXJlCisgICJbIFx0XSp7WyBcdF0qI1xcKFtefSBcdF0rXFwpWyBcdF0qfVsgXHRdKlxcJyIK
KyAgIk1hdGNoIGEgUGFuZG9jLXN0eWxlIHRyYWlsaW5nIGB7I2lkfScgb24gYSBoZWFkaW5nIGxp
bmUuCitDYXB0dXJlIGdyb3VwIDEgaXMgdGhlIGV4cGxpY2l0IGlkLiIpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0taGVhZGluZy10ZXh0LWFuZC1pZCAocmF3KQorICAiU3BsaXQgUkFXIGhlYWRpbmcg
dGV4dCBpbnRvIChWSVNJQkxFIC4gRVhQTElDSVQtSUQpLgorRVhQTElDSVQtSUQgaXMgbm9uLW5p
bCBpZiBSQVcgZW5kcyB3aXRoIGEgUGFuZG9jLXN0eWxlIGB7I2lkfScsCitpbiB3aGljaCBjYXNl
IFZJU0lCTEUgaXMgUkFXIHdpdGggdGhhdCBzdWZmaXggcmVtb3ZlZC4iCisgIChpZiAoc3RyaW5n
LW1hdGNoIG1hcmtkb3duLXRzLS1leHBsaWNpdC1pZC1yZSByYXcpCisgICAgICAoY29ucyAoc3Vi
c3RyaW5nIHJhdyAwIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAgICAgICAobWF0Y2gtc3Ry
aW5nIDEgcmF3KSkKKyAgICAoY29ucyByYXcgbmlsKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rv
d24tdHMtLWhlYWRpbmctaWQtY2FjaGUgbmlsCisgICJDYWNoZWQgaGFzaCB0YWJsZSBtYXBwaW5n
IGhlYWRpbmcgc2x1ZyBzdHJpbmdzIHRvIGJ1ZmZlciBwb3NpdGlvbnMuCitFYWNoIHZhbHVlIGlz
IHRoZSBidWZmZXIgcG9zaXRpb24gb2YgdGhlIHN0YXJ0IG9mIHRoZSBtYXRjaGluZworYGF0eF9o
ZWFkaW5nJyBvciBgc2V0ZXh0X2hlYWRpbmcnIG5vZGUuICBCdWlsdCBsYXppbHkgYnkKK2BtYXJr
ZG93bi10cy0taGVhZGluZy1pZHMnLCBpbnZhbGlkYXRlZCBieSBidWZmZXItdGljayBjaGFuZ2Uu
IikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNoZS10aWNrIG5p
bAorICAiVmFsdWUgb2YgYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyB3aGVuIHRoZSBoZWFk
aW5nLWlkIGNhY2hlIHdhcyBidWlsdC4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWJ1aWxkLWhl
YWRpbmctaWRzICgpCisgICJXYWxrIGFsbCBoZWFkaW5ncyBpbiB0aGUgYnVmZmVyIGFuZCByZXR1
cm4gYSBoYXNoIHRhYmxlLgorV2hpY2ggbWFwcyBlYWNoIHNsdWcgdG8gdGhlIGJ1ZmZlciBwb3Np
dGlvbiBvZiBpdHMgaGVhZGluZy4gIEVhY2gKK2hlYWRpbmcgY29udHJpYnV0ZXMgaXRzIEdpdEh1
YiBzbHVnLCBpdHMgUGFuZG9jIHNsdWcsIGFuZCBpdHMgZXhwbGljaXQKK2B7I2lkfScgaWYgcHJl
c2VudC4gIEJvdGggc2x1ZyBhbGdvcml0aG1zIGFyZSBzdG9yZWQgaW4gdGhlIHNhbWUgYnVmZmVy
CitiZWNhdXNlIGEgbWFya2Rvd24gZmlsZSBpcyBvZnRlbiBwcmV2aWV3ZWQgYnkgc2V2ZXJhbCBy
ZW5kZXJlcnMgKEdpdEh1Ygord2ViIFVJLCBQYW5kb2MsIG1kQm9vaywgSHVnbywgYW5kIHNvIG9u
KSBhbmQgdGhlIHNhbWUgc291cmNlIHNob3VsZAorcmVzb2x2ZSByZWdhcmRsZXNzIG9mIHdoaWNo
IG9uZSB0aGUgYXV0aG9yIHdyb3RlIHRoZSBsaW5rIGZvci4gIEZvciBtb3N0CitoZWFkaW5ncyB0
aGUgdHdvIGFsZ29yaXRobXMgcHJvZHVjZSB0aGUgc2FtZSBzbHVnIGFueXdheS4KK0R1cGxpY2F0
ZSBzbHVncyAod2l0aGluIG9uZSBhbGdvcml0aG0pIGFyZSBkaXNhbWJpZ3VhdGVkIGJ5IGFwcGVu
ZGluZworYC0xJywgYC0yJywgYW5kIHNvIG9uLCBpbiBkb2N1bWVudCBvcmRlciwgbWF0Y2hpbmcg
R2l0SHViJ3MgYmVoYXZpb3IuCitXaGVuIHR3byBkaXN0aW5jdCBoZWFkaW5ncyB3b3VsZCBvdGhl
cndpc2Ugc2hhcmUgYSBzbHVnLCB0aGUgZmlyc3QKK29jY3VycmVuY2UgaW4gZG9jdW1lbnQgb3Jk
ZXIgd2lucy4iCisgIChsZXQgKCh0YWJsZSAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwp
KQorICAgICAgICA7OyBQZXItYWxnb3JpdGhtIGRlZHVwZSBjb3VudGVyczogaG93IG1hbnkgdGlt
ZXMgdGhpcyBiYXNlIHNsdWcKKyAgICAgICAgOzsgaGFzIGJlZW4gc2VlbiBzbyBmYXIgaW4gZG9j
dW1lbnQgb3JkZXIuCisgICAgICAgIChnaC1jb3VudHMgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAj
J2VxdWFsKSkKKyAgICAgICAgKHBkLWNvdW50cyAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1
YWwpKQorICAgICAgICAocm9vdCAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikp
KQorICAgIChkb2xpc3QgKGNhcCAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAg
ICAgICByb290CisgICAgICAgICAgICAgICAgICAnKCgoYXR4X2hlYWRpbmcpIEBoKQorICAgICAg
ICAgICAgICAgICAgICAoKHNldGV4dF9oZWFkaW5nKSBAaCkpKSkKKyAgICAgIChsZXQqICgobm9k
ZSAoY2RyIGNhcCkpCisgICAgICAgICAgICAgKHBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUp
KQorICAgICAgICAgICAgIChyYXcgKHN0cmluZy10cmltICh0cmVlc2l0LW5vZGUtdGV4dCBub2Rl
IHQpKSkKKyAgICAgICAgICAgICA7OyBTdHJpcCB0aGUgbGVhZGluZyBtYXJrZXIgKCMjIyBvciA9
PT09Ly0tLS0pLgorICAgICAgICAgICAgIDs7IEZvciBhdHgsIGRyb3AgbGVhZGluZyAjJ3MgYW5k
IGZvbGxvd2luZyBzcGFjZS4KKyAgICAgICAgICAgICA7OyBGb3Igc2V0ZXh0LCBkcm9wIHRoZSB0
cmFpbGluZyB1bmRlcmxpbmUgbGluZS4KKyAgICAgICAgICAgICAodGV4dCAoY29uZAorICAgICAg
ICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFxgIytbIFx0XSpcXCguKj9cXClbIFx0XSoj
KlsgXHRdKlxcJyIgcmF3KQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIHJh
dykpCisgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJcXGBcXCguKj9cXClcbls9
LV0rWyBcdF0qXFwnIiByYXcpCisgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEg
cmF3KSkKKyAgICAgICAgICAgICAgICAgICAgKHQgcmF3KSkpCisgICAgICAgICAgICAgKHNwbGl0
IChtYXJrZG93bi10cy0taGVhZGluZy10ZXh0LWFuZC1pZCB0ZXh0KSkKKyAgICAgICAgICAgICAo
dmlzaWJsZSAoY2FyIHNwbGl0KSkKKyAgICAgICAgICAgICAoZXhwbGljaXQgKGNkciBzcGxpdCkp
KQorICAgICAgICA7OyBFeHBsaWNpdCB7I2lkfSB3aW5zIG91dHJpZ2h0OyBmaXJzdCBvY2N1cnJl
bmNlIGtlZXBzIGl0LgorICAgICAgICAod2hlbiAoYW5kIGV4cGxpY2l0IChub3QgKGdldGhhc2gg
ZXhwbGljaXQgdGFibGUpKSkKKyAgICAgICAgICAocHV0aGFzaCBleHBsaWNpdCBwb3MgdGFibGUp
KQorICAgICAgICA7OyBBdXRvIHNsdWdzIChHaXRIdWIgKyBQYW5kb2MpLCBkZWR1cGVkIHBlciBh
bGdvcml0aG0uCisgICAgICAgIChsZXQqICgoZ2gtYmFzZSAobWFya2Rvd24tdHMtLXNsdWctZ2l0
aHViIHZpc2libGUpKQorICAgICAgICAgICAgICAgKHBkLWJhc2UgKG1hcmtkb3duLXRzLS1zbHVn
LXBhbmRvYyB2aXNpYmxlKSkKKyAgICAgICAgICAgICAgIChnaC1uIChnZXRoYXNoIGdoLWJhc2Ug
Z2gtY291bnRzIDApKQorICAgICAgICAgICAgICAgKHBkLW4gKGdldGhhc2ggcGQtYmFzZSBwZC1j
b3VudHMgMCkpCisgICAgICAgICAgICAgICAoZ2gtaWQgKGlmICh6ZXJvcCBnaC1uKSBnaC1iYXNl
CisgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlcy0lZCIgZ2gtYmFzZSBnaC1uKSkp
CisgICAgICAgICAgICAgICAocGQtaWQgKGlmICh6ZXJvcCBwZC1uKSBwZC1iYXNlCisgICAgICAg
ICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlcy0lZCIgcGQtYmFzZSBwZC1uKSkpKQorICAgICAg
ICAgIChwdXRoYXNoIGdoLWJhc2UgKDErIGdoLW4pIGdoLWNvdW50cykKKyAgICAgICAgICAocHV0
aGFzaCBwZC1iYXNlICgxKyBwZC1uKSBwZC1jb3VudHMpCisgICAgICAgICAgOzsgRmlyc3Qtd3Jp
dGVyLXdpbnMgc28gZG9jdW1lbnQgb3JkZXIgdGllYnJlYWtzIGNvbGxpc2lvbnMuCisgICAgICAg
ICAgKHVubGVzcyAoZ2V0aGFzaCBnaC1pZCB0YWJsZSkgKHB1dGhhc2ggZ2gtaWQgcG9zIHRhYmxl
KSkKKyAgICAgICAgICAodW5sZXNzIChnZXRoYXNoIHBkLWlkIHRhYmxlKSAocHV0aGFzaCBwZC1p
ZCBwb3MgdGFibGUpKSkpKQorICAgIHRhYmxlKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oZWFk
aW5nLWlkcyAoKQorICAiUmV0dXJuIHRoZSBoZWFkaW5nLWlkIGhhc2ggdGFibGUgZm9yIHRoZSBj
dXJyZW50IGJ1ZmZlci4KK0NhY2hlIGlzIHJlYnVpbHQgb25seSB3aGVuIGBidWZmZXItY2hhcnMt
bW9kaWZpZWQtdGljaycgaGFzIGFkdmFuY2VkCitzaW5jZSB0aGUgbGFzdCBjYWxsIChtaXJyb3Jz
IGBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUnKS4iCisgIChsZXQgKCh0aWNrIChidWZmZXIt
Y2hhcnMtbW9kaWZpZWQtdGljaykpKQorICAgICh1bmxlc3MgKGVxIHRpY2sgbWFya2Rvd24tdHMt
LWhlYWRpbmctaWQtY2FjaGUtdGljaykKKyAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1oZWFkaW5n
LWlkLWNhY2hlIChtYXJrZG93bi10cy0tYnVpbGQtaGVhZGluZy1pZHMpCisgICAgICAgICAgICBt
YXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNoZS10aWNrIHRpY2spKQorICAgIG1hcmtkb3duLXRz
LS1oZWFkaW5nLWlkLWNhY2hlKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb2xsb3ctZnJhZ21l
bnQgKGlkKQorICAiSnVtcCB0byB0aGUgaGVhZGluZyB3aG9zZSBzbHVnIG1hdGNoZXMgSUQgKHdp
dGhvdXQgbGVhZGluZyBgIycpLgorUHVzaGVzIHRoZSBtYXJrIGJlZm9yZSBtb3Zpbmcgc28gYEMt
dSBDLVNQQycgcmV0dXJucy4gIFNpZ25hbHMKK2B1c2VyLWVycm9yJyBpZiBubyBoZWFkaW5nIG1h
dGNoZXMuIgorICAoaWYtbGV0KiAoKHBvcyAoZ2V0aGFzaCBpZCAobWFya2Rvd24tdHMtLWhlYWRp
bmctaWRzKSkpKQorICAgICAgKHByb2duCisgICAgICAgIChwdXNoLW1hcmspCisgICAgICAgIChn
b3RvLWNoYXIgcG9zKQorICAgICAgICAocmVjZW50ZXIpKQorICAgICh1c2VyLWVycm9yICJObyBo
ZWFkaW5nIGZvciBmcmFnbWVudDogIyVzIiBpZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZv
bnRpZnktaGVhZGluZyAobm9kZSBfb3ZlcnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykKKyAgIkFw
cGx5IHRoZSBoZWFkaW5nIGZhY2UgdG8gTk9ERSdzIGZ1bGwgZXh0ZW50LgorVXNlIGBmb250LWxv
Y2stYXBwZW5kLXRleHQtcHJvcGVydHknIGRpcmVjdGx5IHNvIHRoZSBmYWNlIGlzIGFwcGxpZWQK
K2Fjcm9zcyB0aGUgZW50aXJlIGhlYWRpbmcgZXZlbiB3aGVuIGNoaWxkIHN1Yi1ub2RlcyAoZS5n
LiBhbiBpbmxpbmUKK2xpbmspIHdvdWxkIG90aGVyd2lzZSBwcmV2ZW50IHRoZSByZWd1bGFyIHRy
ZWUtc2l0dGVyIGZhY2UgcnVsZSBmcm9tCitjb3ZlcmluZyB0aGVtLgorCitGb3IgQVRYIGhlYWRp
bmdzLCBhbHNvIGZvbnRpZnkgYW55IG9wdGlvbmFsIHRyYWlsaW5nIGNsb3NpbmctYCMnCitzZXF1
ZW5jZSBhcyBhIGRlbGltaXRlci4gIFRoZSB0cmVlLXNpdHRlciBncmFtbWFyIGRvZXMgbm90IHBy
b2R1Y2UgYQorc2VwYXJhdGUgbm9kZSBmb3IgdGhlc2U7IHBlciBDb21tb25NYXJrIHRoZXkgYXJl
IGRlY29yYXRpdmUgYW5kCittdXN0IGJlIHByZWNlZGVkIGJ5IGEgc3BhY2Ugb3IgdGFiLiIKKyAg
KGxldCogKCh0eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkKKyAgICAgICAgIChuLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAobi1lbmQgICAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChmYWNlIChjb25kCisgICAgICAgICAgICAgICAgKChl
cXVhbCB0eXBlICJzZXRleHRfaGVhZGluZyIpCisgICAgICAgICAgICAgICAgICdtYXJrZG93bi10
cy1zZXRleHQtaGVhZGluZykKKyAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAo
bGV0ICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgbm9kZSAwKSkpCisgICAgICAgICAgICAg
ICAgICAgKGludGVybiAoZm9ybWF0ICJtYXJrZG93bi10cy1oZWFkaW5nLSVkIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJr
ZXIgdCkpKSkpKSkpKQorICAgIChmb250LWxvY2stYXBwZW5kLXRleHQtcHJvcGVydHkgbi1zdGFy
dCBuLWVuZCAnZmFjZSBmYWNlKQorICAgICh3aGVuIChzdHJpbmctcHJlZml4LXAgImF0eF8iIHR5
cGUpCisgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGdvdG8tY2hhciBuLWVuZCkKKyAg
ICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdFxuIiBuLXN0YXJ0KQorICAgICAgICAobGV0
ICgobGluZS1lbmQgKHBvaW50KSkpCisgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBc
dCIgbi1zdGFydCkKKyAgICAgICAgICAobGV0ICgodHJhaWxpbmctZW5kIChwb2ludCkpKQorICAg
ICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiMiIG4tc3RhcnQpCisgICAgICAgICAgICAo
bGV0ICgodHJhaWxpbmctc3RhcnQgKHBvaW50KSkpCisgICAgICAgICAgICAgICh3aGVuIChhbmQg
KDwgdHJhaWxpbmctc3RhcnQgdHJhaWxpbmctZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICg+IHRyYWlsaW5nLXN0YXJ0IG4tc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKG1l
bXEgKGNoYXItYmVmb3JlIHRyYWlsaW5nLXN0YXJ0KSAnKD9ccyA/XHQpKSkKKyAgICAgICAgICAg
ICAgICAoZm9udC1sb2NrLXByZXBlbmQtdGV4dC1wcm9wZXJ0eQorICAgICAgICAgICAgICAgICB0
cmFpbGluZy1zdGFydCB0cmFpbGluZy1lbmQKKyAgICAgICAgICAgICAgICAgJ2ZhY2UgJ21hcmtk
b3duLXRzLWRlbGltaXRlcikKKyAgICAgICAgICAgICAgICAod2hlbiBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cAorICAgICAgICAgICAgICAgICAgOzsgQWxzbyBoaWRlIHRoZSBzcGFjZShzKSBwcmVj
ZWRpbmcgdGhlIGNsb3NlciBhbmQgYW55CisgICAgICAgICAgICAgICAgICA7OyB0cmFpbGluZyB3
aGl0ZXNwYWNlLCBzbyB0aGUgaGVhZGluZyBsb29rcyBjbGVhbi4KKyAgICAgICAgICAgICAgICAg
IChsZXQgKChoaWRlLXN0YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHRyYWlsaW5nLXN0YXJ0KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBuLXN0
YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisg
ICAgICAgICAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBoaWRlLXN0YXJ0IGxpbmUtZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtLW1hcmt1cCkp
KSkpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUgKG5vZGUg
b3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsgb3IgaW1hZ2UgdGV4
dCBOT0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1dvcmtzIGZvciBpbmxpbmUgbGlua3MsIHJl
ZmVyZW5jZSBsaW5rcywgc2hvcnRjdXQgbGlua3MsIGFuZAoraW1hZ2UgZGVzY3JpcHRpb25zLiAg
VGhlIFVSTCBpcyB0YWtlbiBmcm9tIGEgc2libGluZworYGxpbmtfZGVzdGluYXRpb24nIG5vZGUg
d2hlbiBwcmVzZW50LCBvciByZXNvbHZlZCBmcm9tIGEKK2xpbmsgcmVmZXJlbmNlIGRlZmluaXRp
b24sIG9yIHRoZSBub2RlIHRleHQgaXRzZWxmIGlzIHVzZWQgYXMKK2ZhbGxiYWNrLiAgT1ZFUlJJ
REUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlm
eS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQg
bm9kZSkpKQorICAgIDs7IFdoZW4gTk9ERSBpcyBhIGxpbmtfbGFiZWwgaW5zaWRlIGEgZnVsbF9y
ZWZlcmVuY2VfbGluayB0aGF0CisgICAgOzsgYWxzbyBoYXMgYSBsaW5rX3RleHQsIHNraXAgaXQs
IGxpbmtfdGV4dCBoYW5kbGVzIHRoYXQgbGluay4KKyAgICAodW5sZXNzIChhbmQgKHN0cmluZz0g
KHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJsaW5rX2xhYmVsIikKKyAgICAgICAgICAgICAgICAg
KHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsaW5rX3RleHRcXCciKSkKKyAgICAg
ICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICAgICAnbWFya2Rvd24tdHMtbGlu
ayBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgICAobGV0KiAoKGRlc3QgKHRyZWVzaXQtc2VhcmNo
LXN1YnRyZWUgcGFyZW50ICJcXGBsaW5rX2Rlc3RpbmF0aW9uXFwnIikpCisgICAgICAgICAgICAg
KHVybCAoaWYgZGVzdAorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBk
ZXN0IHQpCisgICAgICAgICAgICAgICAgICAgIDs7IFJlZmVyZW5jZSBsaW5rczogcmVzb2x2ZSB2
aWEgbGlua19sYWJlbCBvciBsaW5rX3RleHQuCisgICAgICAgICAgICAgICAgICAgIChsZXQqICgo
bGFiZWwtbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmVudCAiXFxgbGlua19sYWJlbFxcJyIpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGxhYmVsIChpZiBsYWJlbC1ub2RlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1u
b2RlIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiXFxbIiAiXFxdIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtdGV4dCBub2RlIHQpKSkpCisgICAgICAgICAgICAgICAgICAgICAgKG9yIChtYXJr
ZG93bi10cy0tcmVzb2x2ZS1saW5rLXJlZiBsYWJlbCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGFiZWwpKSkpKQorICAgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24KKyAg
ICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkg
dXJsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rIChub2RlIG92
ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBhdXRvbGluayBOT0RFIChVUkkg
b3IgZW1haWwpIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK0ZvciBlbWFpbCBhdXRvbGlua3MsIHRo
ZSBVUkwgaXMgcHJlZml4ZWQgd2l0aCBcIm1haWx0bzpcIi4KK0FuZ2xlIGJyYWNrZXQgZGVsaW1p
dGVycyBhcmUgaGlkZGVuIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwg
YW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVy
cmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChp
bm5lciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICgx
KyBub2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpKSkKKyAgICAgICAgICh1cmwgKGlmIChzdHJpbmc9
ICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiZW1haWxfYXV0b2xpbmsiKQorICAgICAgICAgICAg
ICAgICAgKGNvbmNhdCAibWFpbHRvOiIgaW5uZXIpCisgICAgICAgICAgICAgICAgaW5uZXIpKSkK
KyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCBub2Rl
LWVuZCAnbWFya2Rvd24tdHMtbGluayBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKG1hcmtkb3du
LXRzLS1tYWtlLWxpbmstYnV0dG9uIG5vZGUtc3RhcnQgbm9kZS1lbmQgdXJsKQorICAgICh3aGVu
IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1z
dGFydCAoMSsgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxl
ICdtYXJrZG93bi10cy0tbWFya3VwKQorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2Rl
LWVuZCkgbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJr
ZG93bi10cy0tbWFya3VwKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1y
ZWYtbGFiZWwgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGxp
bmsgcmVmZXJlbmNlIGRlZmluaXRpb24gbGFiZWwgTk9ERSBhcyBhIGNsaWNrYWJsZSBidXR0b24u
CitUaGUgYnJhY2tldHMgYW5kIGNvbG9uIGFyZSBoaWRkZW4gd2hlbiBtYXJrdXAgaXMgaGlkZGVu
LgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVz
aXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNp
dC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5k
IG5vZGUpKQorICAgICAgICAgKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKKyAg
ICAgICAgIChkZXN0LW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsaW5r
X2Rlc3RpbmF0aW9uXFwnIikpCisgICAgICAgICAodXJsICh3aGVuIGRlc3Qtbm9kZSAodHJlZXNp
dC1ub2RlLXRleHQgZGVzdC1ub2RlIHQpKSkpCisgICAgOzsgRm9udGlmeSB0aGUgbGFiZWwgdGV4
dCAoaW5zaWRlIGJyYWNrZXRzKS4KKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUK
KyAgICAgKDErIG5vZGUtc3RhcnQpICgxLSBub2RlLWVuZCkKKyAgICAgJ21hcmtkb3duLXRzLWxp
bmsgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIDs7IE1ha2UgaXQgYSBjbGlja2FibGUgYnV0dG9u
LgorICAgICh3aGVuIHVybAorICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uICgx
KyBub2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpIHVybCkpCisgICAgOzsgSGlkZSAiWyIgYmVmb3Jl
IGxhYmVsIGFuZCAiXTogIiBiZXR3ZWVuIGxhYmVsIGFuZCBkZXN0aW5hdGlvbi4KKyAgICAod2hl
biBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUt
c3RhcnQgKDErIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJs
ZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkKKyAgICAgIChsZXQgKChjb2xvbi1lbmQgKGlmIGRlc3Qt
bm9kZSAodHJlZXNpdC1ub2RlLXN0YXJ0IGRlc3Qtbm9kZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAoMSsgbm9kZS1lbmQpKSkpCisgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoMS0gbm9k
ZS1lbmQpIGNvbG9uLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAn
bWFya2Rvd24tdHMtLW1hcmt1cCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1s
aW5rLXJlZi1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVzdCBfKQorICAi
Rm9udGlmeSBsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9uIGRlc3RpbmF0aW9uIE5PREUgYW5kIGhp
ZGUgd2hlbiBtYXJrdXAgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNz
ZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgICh0cmVl
c2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgJ21hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24g
b3ZlcnJpZGUgc3RhcnQgZW5kKQorICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAg
IChwdXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5v
ZGUtZW5kIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3du
LXRzLS1tYXJrdXApKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYXRleC1ibG9jay12YWxpZC1w
IChub2RlKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgbGF0ZXggYmxvY2sgTk9ERSBpcyB3aXRoaW4g
YSBzaW5nbGUgaW5saW5lIHNjb3BlLgorVGhlIGdsb2JhbCBpbmxpbmUgcGFyc2VyIGNhbiBjcmVh
dGUgZmFsc2UgYGxhdGV4X2Jsb2NrJyBtYXRjaGVzCitzcGFubmluZyBhY3Jvc3MgcGFyYWdyYXBo
IGJvdW5kYXJpZXMuICBDaGVjayB0aGF0IHRoZSBvcGVuaW5nIGFuZAorY2xvc2luZyBkZWxpbWl0
ZXJzIHNoYXJlIHRoZSBzYW1lIG1hcmtkb3duIGBpbmxpbmUnIGFuY2VzdG9yLiIKKyAgKGxldCAo
KG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5k
ICgxLSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKQorICAgICh3aGVuLWxldCogKChtZC1zdGFy
dCAodHJlZXNpdC1ub2RlLWF0IG5vZGUtc3RhcnQgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAg
ICAobWQtZW5kICh0cmVlc2l0LW5vZGUtYXQgbm9kZS1lbmQgJ21hcmtkb3duKSkKKyAgICAgICAg
ICAgICAgICAoaW5saW5lLXN0YXJ0ICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1kLXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbikgImlubGluZSIpKSkpCisgICAgICAgICAgICAgICAgKGlubGlu
ZS1lbmQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1kLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImlu
bGluZSIpKSkpKQorICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtc3RhcnQgaW5saW5lLXN0YXJ0
KQorICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgaW5saW5lLWVuZCkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1sYXRleC1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFy
dCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGF0ZXggYmxvY2sgTk9ERSBhbmQgaGlkZSBpdHMg
ZGVsaW1pdGVycyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitTa2lwIGZvbnRpZmljYXRpb24gZm9y
IGZhbHNlIG1hdGNoZXMgdGhhdCBzcGFuIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4KK09W
RVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZScuIgorICAod2hlbiAobWFya2Rvd24tdHMtLWxhdGV4LWJsb2Nr
LXZhbGlkLXAgbm9kZSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAg
KHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgICAn
bWFya2Rvd24tdHMtbGF0ZXggb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICh3aGVuIG1hcmtkb3du
LXRzLWhpZGUtbWFya3VwCisgICAgICAoZG90aW1lcyAoaSAodHJlZXNpdC1ub2RlLWNoaWxkLWNv
dW50IG5vZGUpKQorICAgICAgICAobGV0ICgoY2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2Rl
IGkpKSkKKyAgICAgICAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAi
bGF0ZXhfc3Bhbl9kZWxpbWl0ZXIiKQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICh0
cmVlc2l0LW5vZGUtc3RhcnQgY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHRyZWVzaXQtbm9kZS1lbmQgY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1mb250aWZ5LWJhY2tzbGFzaC1lc2NhcGUgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZy
ZXN0IF8pCisgICJGb250aWZ5IGJhY2tzbGFzaCBlc2NhcGUgTk9ERSwgaGlkaW5nIHRoZSBiYWNr
c2xhc2ggd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorU2tpcCBoaWRpbmcgaW5zaWRlIGBsYXRleF9i
bG9jaycgd2hlcmUgYmFja3NsYXNoZXMgYXJlIExhVGVYIHN5bnRheC4KK09WRVJSSURFLCBTVEFS
VCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1v
dmVycmlkZScuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUp
KQorICAgICAgICAoaW4tbGF0ZXggKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAodHJlZXNpdC1u
b2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAibGF0ZXhfYmxvY2si
KSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQg
KDErIG5vZGUtc3RhcnQpCisgICAgICdtYXJrZG93bi10cy1kZWxpbWl0ZXIgb3ZlcnJpZGUgc3Rh
cnQgZW5kKQorICAgICh3aGVuIChhbmQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBpbi1s
YXRleCkpCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFy
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFy
a3VwKSkpKQorCisoZGVmdmFyIHNnbWwtY2hhci1uYW1lcykKKyhkZWNsYXJlLWZ1bmN0aW9uIG9y
Zy1lbnRpdHktZ2V0ICJvcmcvb3JnLWVudGl0aWVzLmVsIikKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1kZWNvZGUtZW50aXR5ICh0ZXh0KQorICAiRGVjb2RlIEhUTUwgZW50aXR5IFRFWFQgKGUuZy4s
IFwiJmFtcDtcIikgdG8gaXRzIGNoYXJhY3RlciBzdHJpbmcuCitSZXR1cm4gdGhlIGRlY29kZWQg
c3RyaW5nLCBvciBuaWwgaWYgdGhlIGVudGl0eSBpcyB1bmtub3duLiIKKyAgKGNvbmQKKyAgIDs7
IE51bWVyaWMgaGV4ICYjeDFGNEE5OworICAgKChzdHJpbmctbWF0Y2ggIlxcYCYjeFxcKFtbOnhk
aWdpdDpdXStcXCk7XFwnIiB0ZXh0KQorICAgIChjaGFyLXRvLXN0cmluZyAoc3RyaW5nLXRvLW51
bWJlciAobWF0Y2gtc3RyaW5nIDEgdGV4dCkgMTYpKSkKKyAgIDs7IE51bWVyaWMgZGVjaW1hbCAm
IzEyMzsKKyAgICgoc3RyaW5nLW1hdGNoICJcXGAmI1xcKFtbOmRpZ2l0Ol1dK1xcKTtcXCciIHRl
eHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJpbmcg
MSB0ZXh0KSkpKQorICAgOzsgTmFtZWQgJmFtcDsgJmNvcHk7IHZpYSBvcmctZW50aXRpZXMsIGZh
bGwgYmFjayB0byBzZ21sLWNoYXItbmFtZXMKKyAgICgoc3RyaW5nLW1hdGNoICJcXGAmXFwoW1s6
YWxudW06XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAobGV0ICgobmFtZSAobWF0Y2gtc3RyaW5nIDEg
dGV4dCkpKQorICAgICAgKHJlcXVpcmUgJ29yZy1lbnRpdGllcykKKyAgICAgIChpZi1sZXQqICgo
ZW50cnkgKG9yZy1lbnRpdHktZ2V0IG5hbWUpKQorICAgICAgICAgICAgICAgICh1dGY4IChudGgg
NiBlbnRyeSkpKQorICAgICAgICAgIHV0ZjgKKyAgICAgICAgKHJlcXVpcmUgJ3NnbWwtbW9kZSkK
KyAgICAgICAgKHdoZW4tbGV0KiAoKGNvZGUgKHNlcS1wb3NpdGlvbiBzZ21sLWNoYXItbmFtZXMg
bmFtZSAjJ2VxdWFsKSkpCisgICAgICAgICAgKGNoYXItdG8tc3RyaW5nIGNvZGUpKSkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1lbnRpdHkgKG5vZGUgb3ZlcnJpZGUgc3RhcnQg
ZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGVudGl0eSBOT0RFIGFuZCBzaG93IGl0cyBkZWNvZGVk
IHZhbHVlIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBh
cmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgor
ICAobGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAo
bm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgIChmYWNlIChpZiAoZXF1
YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJlbnRpdHlfcmVmZXJlbmNlIikKKyAgICAgICAg
ICAgICAgICAgICdtYXJrZG93bi10cy1lbnRpdHktcmVmZXJlbmNlCisgICAgICAgICAgICAgICAg
J21hcmtkb3duLXRzLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSkpKQorICAgICh0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiBt
YXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgICAod2hlbi1sZXQqICgoZGVjb2RlZCAobWFy
a2Rvd24tdHMtLWRlY29kZS1lbnRpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtdGV4dCBub2RlIHQpKSkKKyAgICAgICAgICAgICAgICAgICAgKChjaGFyLWRp
c3BsYXlhYmxlLXAgKGFyZWYgZGVjb2RlZCAwKSkpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9w
ZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5IGRlY29kZWQpKQorICAgICAgKHJlbW92
ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1yZXNvbHZlLWRpc3BsYXktdmFsdWUgKHZhbCkKKyAgIlJl
c29sdmUgVkFMLCBhIGNvbnMgKFBSRUZFUlJFRCAuIEZBTExCQUNLKSwgdG8gYSBkaXNwbGF5YWJs
ZSB2YWx1ZS4KK1JldHVybiBQUkVGRVJSRUQgaWYgaXRzIGZpcnN0IGNoYXJhY3RlciBwYXNzZXMg
YGNoYXItZGlzcGxheWFibGUtcCcsCitvdGhlcndpc2UgcmV0dXJuIEZBTExCQUNLLiAgUmV0dXJu
IG5pbCBpZiBWQUwgaXMgbmlsLiIKKyAgKHdoZW4gdmFsCisgICAgKGxldCogKChwcmVmZXJyZWQg
KGNhciB2YWwpKQorICAgICAgICAgICAoY2ggKGlmIChjaGFyYWN0ZXJwIHByZWZlcnJlZCkgcHJl
ZmVycmVkIChhcmVmIHByZWZlcnJlZCAwKSkpKQorICAgICAgKGlmIChjaGFyLWRpc3BsYXlhYmxl
LXAgY2gpIChjYXIgdmFsKSAoY2RyIHZhbCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9u
dGlmeS1jaGVja2JveCAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRp
ZnkgdGFzayBsaXN0IGNoZWNrYm94IE5PREUsIHNob3cgYSBVbmljb2RlIHN5bWJvbCB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJv
dWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCogKChub2Rl
LXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAobm9kZS1lbmQgKHRy
ZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoY2hlY2tlZCAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIG5vZGUpICJ0YXNrX2xpc3RfbWFya2VyX2NoZWNrZWQiKSkKKyAgICAgICAgIChm
YWNlIChpZiBjaGVja2VkICdtYXJrZG93bi10cy10YXNrLWNoZWNrZWQKKyAgICAgICAgICAgICAg
ICAgJ21hcmtkb3duLXRzLXRhc2stdW5jaGVja2VkKSkKKyAgICAgICAgICh2YWx1ZSAoaWYgY2hl
Y2tlZAorICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1jaGVja2VkLWNoZWNrYm94Cisg
ICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gpKQorICAgICAg
ICAgKHJlcGxhY2VtZW50CisgICAgICAgICAgKGNvbmQgKChlcSB2YWx1ZSAnaWNvbikKKyAgICAg
ICAgICAgICAgICAgKGljb24tc3RyaW5nIChpZiBjaGVja2VkCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gtaWNvbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94
LWljb24pKSkKKyAgICAgICAgICAgICAgICAodCAobWFya2Rvd24tdHMtLXJlc29sdmUtZGlzcGxh
eS12YWx1ZSB2YWx1ZSkpKSkKKyAgICAgICAgIDs7IElmIGBpY29uLXN0cmluZycgcmV0dXJuZWQg
YW4gaW1hZ2UsIGl0cyBgZGlzcGxheScgcHJvcGVydHkKKyAgICAgICAgIDs7IG9uIGNoYXIgMCBo
b2xkcyB0aGUgYWN0dWFsIGltYWdlIHNwZWM7IG5lc3RlZCBgZGlzcGxheScKKyAgICAgICAgIDs7
IHByb3BzIGFyZSBub3QgaG9ub3JlZCB3aGVuIGEgc3RyaW5nIGlzIHRoZSB2YWx1ZSBvZiBhCisg
ICAgICAgICA7OyBgZGlzcGxheScgdGV4dC1wcm9wZXJ0eSwgc28gYXBwbHkgdGhlIHNwZWMgZGly
ZWN0bHkuCisgICAgICAgICAoZGlzcGxheS1zcGVjCisgICAgICAgICAgKG9yIChhbmQgKGVxIHZh
bHVlICdpY29uKSByZXBsYWNlbWVudAorICAgICAgICAgICAgICAgICAgIChnZXQtdGV4dC1wcm9w
ZXJ0eSAwICdkaXNwbGF5IHJlcGxhY2VtZW50KSkKKyAgICAgICAgICAgICAgcmVwbGFjZW1lbnQp
KSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUgbm9kZS1zdGFydCBub2RlLWVu
ZCBmYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlIHN0YXJ0
IGVuZCkKKyAgICAoaWYgKGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCByZXBsYWNlbWVudAor
ICAgICAgICAgICAgIChvciAoZXEgdmFsdWUgJ2ljb24pCisgICAgICAgICAgICAgICAgIChjaGFy
LWRpc3BsYXlhYmxlLXAgKGFyZWYgcmVwbGFjZW1lbnQgMCkpKSkKKyAgICAgICAgKHB1dC10ZXh0
LXByb3BlcnR5IG5vZGUtc3RhcnQgbm9kZS1lbmQgJ2Rpc3BsYXkgZGlzcGxheS1zcGVjKQorICAg
ICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkg
bmlsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhayAo
bm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgaGFyZCBsaW5lIGJy
ZWFrIE5PREU7IHNob3cgYSBVbmljb2RlIHN5bWJvbCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitB
IGJhY2tzbGFzaCBicmVhayBnZXRzIGBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstYmFja3Ns
YXNoJyAob3IgaXRzCitgLWhpZGRlbicgdmFyaWFudCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4pOyBh
IHRyYWlsaW5nLXNwYWNlcyBicmVhayBnZXRzCitgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFr
LXNwYWNlJyAob3IgYC1oaWRkZW4nKS4gIFdoZW4gaGlkZGVuLCBhCitiYWNrc2xhc2ggYnJlYWsg
aXMgcmVwbGFjZWQgYnkgYSBzaW5nbGUgYG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhaycKK2ds
eXBoOyBhIHRyYWlsaW5nLXNwYWNlcyBicmVhayByZXBsYWNlcyBlYWNoIHNwYWNlIHdpdGggdGhl
IGdseXBoLCBzbyB0aGUgcnVuCitvZiBwaWxjcm93cyBmaWxscyB0aGUgbGluZSB1cCB0byB0aGUg
bmV3bGluZS4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8K
K2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQg
KHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAgICh0cmVlc2l0
LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKHRleHQgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0
IG5vZGUgdCkpCisgICAgICAgICAoYmFja3NsYXNoICAoYW5kICg+IChsZW5ndGggdGV4dCkgMCkg
KGVxIChhcmVmIHRleHQgMCkgP1xcKSkpCisgICAgICAgICA7OyBEZXRlcm1pbmUgdGhlIGFjdHVh
bCByYW5nZSB0byBmb250aWZ5IGFuZCByZXBsYWNlLiAgVGhlCisgICAgICAgICA7OyBoYXJkX2xp
bmVfYnJlYWsgbm9kZSBtYXkgbm90IGNvdmVyIHRoZSBmdWxsIHJ1biBvZiB0cmFpbGluZworICAg
ICAgICAgOzsgc3BhY2VzLCBzbyB3YWxrIGJhY2sgZnJvbSBlbmQtb2YtbGluZSBvdXJzZWx2ZXMg
Zm9yIHRoZQorICAgICAgICAgOzsgc3BhY2VzIHZhcmlhbnQuCisgICAgICAgICAocmVnaW9uICAg
ICAoaWYgYmFja3NsYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgbm9kZS1zdGFy
dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5kICg+IG5vZGUtZW5kIG5v
ZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIChj
aGFyLWJlZm9yZSBub2RlLWVuZCkgP1xuKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKDEtIG5vZGUtZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS1lbmQpKQorICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxldCAoKGVvbCAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChjb25zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZ290by1jaGFyIGVvbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIgIiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW9sKSkpKSkKKyAgICAgICAgIChyZWdpb24tc3RhcnQgKGNhciByZWdpb24pKQorICAg
ICAgICAgKHJlZ2lvbi1lbmQgICAoY2RyIHJlZ2lvbikpCisgICAgICAgICAoZmFjZSAgICAgICAo
Y29uZAorICAgICAgICAgICAgICAgICAgICAgICgoYW5kIGJhY2tzbGFzaCBtYXJrZG93bi10cy1o
aWRlLW1hcmt1cCkKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWhhcmQtbGlu
ZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuKQorICAgICAgICAgICAgICAgICAgICAgIChiYWNrc2xh
c2ggJ21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpCisgICAgICAgICAgICAg
ICAgICAgICAgKG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAgICAgICAgICAgICAgICAg
ICdtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UtaGlkZGVuKQorICAgICAgICAgICAg
ICAgICAgICAgICh0ICdtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpKSkpCisgICAg
KHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlIHJlZ2lvbi1zdGFydCByZWdpb24tZW5kIGZh
Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5k
KQorICAgIDs7IEFsd2F5cyBzdGFydCBieSBjbGVhcmluZyBhbnkgc3RhbGUgYGRpc3BsYXknIHBy
b3BlcnR5LiAgV2UgbmV2ZXIKKyAgICA7OyBzcGFuIHRoZSB0cmFpbGluZyBuZXdsaW5lIHdpdGgg
YGRpc3BsYXknIChpdCBjb25mdXNlcworICAgIDs7IHJlZGlzcGxheSdzIGN1cnNvciBwbGFjZW1l
bnQpLCBhbmQgd2Ugb25seSBwYWludCBhIHNpbmdsZQorICAgIDs7IGNvbWJpbmVkIHN0cmluZyBv
bnRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1biwgbGVhdmluZworICAgIDs7IHRoZSBy
ZXN0IG9mIHRoZSBtYXJrdXAgYWxvbmUuCisgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMgcmVn
aW9uLXN0YXJ0IHJlZ2lvbi1lbmQgJyhkaXNwbGF5IG5pbCkpCisgICAgKHdoZW4gbWFya2Rvd24t
dHMtaGlkZS1tYXJrdXAKKyAgICAgIChsZXQqICgoc3BlYyAoaWYgYmFja3NsYXNoCisgICAgICAg
ICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlCisgICAg
ICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstYmFja3NsYXNo
KQorICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNl
KSkKKyAgICAgICAgICAgICAoc3RyIChjb25kCisgICAgICAgICAgICAgICAgICAgKChudWxsIHNw
ZWMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAoKGNoYXJhY3RlcnAgc3BlYykgKGNoYXItdG8t
c3RyaW5nIHNwZWMpKQorICAgICAgICAgICAgICAgICAgICgoc3RyaW5ncCBzcGVjKSBzcGVjKQor
ICAgICAgICAgICAgICAgICAgICgoZnVuY3Rpb25wIHNwZWMpCisgICAgICAgICAgICAgICAgICAg
IChmdW5jYWxsIHNwZWMgKC0gcmVnaW9uLWVuZCByZWdpb24tc3RhcnQpKSkpKSkKKyAgICAgICAg
KHdoZW4gKGFuZCAoc3RyaW5ncCBzdHIpCisgICAgICAgICAgICAgICAgICAgKD4gKGxlbmd0aCBz
dHIpIDApCisgICAgICAgICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiBzdHIg
MCkpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSByZWdpb24tc3RhcnQgKDErIHJlZ2lv
bi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkgc3RyKQorICAg
ICAgICAgIDs7IEZvciB0aGUgdHJhaWxpbmctc3BhY2VzIHZhcmlhbnQsIGhpZGUgdGhlIHJlbWFp
bmluZworICAgICAgICAgIDs7IHNwYWNlcyBpbiB0aGUgcnVuIHNvIHRoZSBsaW5lIGRvZXNuJ3Qg
ZW5kIHdpdGggbGVmdG92ZXIKKyAgICAgICAgICA7OyB3aGl0ZXNwYWNlIGFmdGVyIHRoZSBzdWJz
dGl0dXRlZCBnbHlwaC4gIEVhY2ggcG9zaXRpb24KKyAgICAgICAgICA7OyBnZXRzIGl0cyBvd24g
ZW1wdHktc3RyaW5nIGBkaXNwbGF5JyBzbyBjdXJzb3IgcGxhY2VtZW50CisgICAgICAgICAgOzsg
c3RheXMgdW5hbWJpZ3VvdXMuCisgICAgICAgICAgKHVubGVzcyBiYWNrc2xhc2gKKyAgICAgICAg
ICAgIChsZXQgKChpICgxKyByZWdpb24tc3RhcnQpKSkKKyAgICAgICAgICAgICAgKHdoaWxlICg8
IGkgcmVnaW9uLWVuZCkKKyAgICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgaSAoMSsg
aSkgJ2Rpc3BsYXkgIiIpCisgICAgICAgICAgICAgICAgKHNldHEgaSAoMSsgaSkpKSkpKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0aGVtYXRpYyBicmVhayBOT0RFIGFu
ZCBzaG93IGEgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFu
ZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp
ZGUnLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAg
ICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChsZXQg
KChjaGFyIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVlCisgICAgICAgICAgICAg
ICAgIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3RlcikpKQorICAgICAgKGlmIChh
bmQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgY2hhciAoY2hhci1kaXNwbGF5YWJsZS1wIGNoYXIp
KQorICAgICAgICAgIChsZXQqICgoY29sIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIG5vZGUt
c3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWNv
bHVtbikpKQorICAgICAgICAgICAgICAgICA7OyBTcGFuIGlmIHRoZSBmYWNlIGhhcyBub24tbmls
IDpleHRlbmQuCisgICAgICAgICAgICAgICAgIChzcGFuLWxlbmd0aCAoaWYgKGZhY2UtYXR0cmli
dXRlICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5kIG5pbCAnZGVmYXVsdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAod2luZG93LWJvZHktd2lkdGgpIGNvbCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIpKSkKKyAgICAgICAgICAgIChwdXQtdGV4
dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2Rpc3BsYXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyBzcGFuLWxlbmd0aCBj
aGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4iKSkpCisgICAgICAgIChy
ZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQgbm9kZS1lbmQgJyhkaXNwbGF5IG5pbCkp
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktY29kZS1ibG9jayAobm9kZSBfb3Zl
cnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgY29kZSBibG9jayBjb250ZW50
IE5PREUgd2l0aCBhIGJhY2tncm91bmQgb3ZlcmxheS4KK1VzZSBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1tYXJrdXAtaGlkZGVuJyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4sCitgbWFya2Rvd24tdHMt
Y29kZS1ibG9jaycgb3RoZXJ3aXNlLiAgVXNlIGFuIG92ZXJsYXkgc28gdGhlCitiYWNrZ3JvdW5k
IGxheWVycyBpdHNlbGYgYmVoaW5kIGxhbmd1YWdlLXNwZWNpZmljIGZvbnRpZmljYXRpb24uCitU
aGUgb3ZlcmxheSBhbHNvIHN0b3JlcyB0aGUgY29kZSBibG9jayBsYW5ndWFnZSBhbmQgbW9kZSBh
cworcHJvcGVydGllcyBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZScgYW5kCitgbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1tb2RlJywgYWNjZXNzaWJsZSB2aWEKK2BtYXJrZG93bi10cy1j
b2RlLWJsb2NrLWxhbmd1YWdlLWF0Jy4iCisgIChsZXQqICgobm9kZS1zdGFydCAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0
YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRp
b24pKSkKKyAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAg
ICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IikKKyAgICAgICAgICAgICAgICAgICAg
IChwb2ludCkpKQorICAgICAgICAgKGZhY2UgKGlmIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisg
ICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFya3VwLWhpZGRlbgor
ICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykpCisgICAgICAgICAobGFu
ZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAobW9kZSAo
d2hlbiBsYW5nCisgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5n
dWFnZS1tb2RlIGxhbmcpKSkKKyAgICAgICAgIChleGlzdGluZyAoc2VxLWZpbmQgKGxhbWJkYSAo
b3YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG92ZXJsYXktZ2V0IG92ICdtYXJr
ZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG92ZXJs
YXlzLWF0IG5vZGUtc3RhcnQpKSkpCisgICAgKGlmIGV4aXN0aW5nCisgICAgICAgIChwcm9nbgor
ICAgICAgICAgIChtb3ZlLW92ZXJsYXkgZXhpc3Rpbmcgbm9kZS1zdGFydCBub2RlLWVuZCkKKyAg
ICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ2ZhY2UgZmFjZSkKKyAgICAgICAgICAob3Zl
cmxheS1wdXQgZXhpc3RpbmcgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UgbGFuZykK
KyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2st
bW9kZSBtb2RlKSkKKyAgICAgIChsZXQgKChvdiAobWFrZS1vdmVybGF5IG5vZGUtc3RhcnQgbm9k
ZS1lbmQgbmlsIHQgbmlsKSkpCisgICAgICAgIDs7IE1hcmtlcnMgbmVlZCB0byBiZSBzZXQgb25s
eSBvbmNlLgorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmVnLW1h
cmtlciAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtc3RhcnQpKQorICAg
ICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlciAoc2V0LW1h
cmtlciAobWFrZS1tYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtZW5kKSkKKyAgICAgICAgKG92ZXJsYXkt
cHV0IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrIHQpCisgICAgICAgIChvdmVybGF5LXB1dCBv
diAnZmFjZSBmYWNlKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUt
YmxvY2stbGFuZ3VhZ2UgbGFuZykKKyAgICAgICAgKG92ZXJsYXktcHV0IG92ICdtYXJrZG93bi10
cy1jb2RlLWJsb2NrLW1vZGUgbW9kZSkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92ICdldmFwb3Jh
dGUgdCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1hdC1jb2RlLWJsb2NrLXAgKCZvcHRpb25h
bCBwb3MpCisgICJSZXR1cm4gbm9uIG5pbCBpZiBwb2ludCBpcyBpbiBhIGNvZGUgYmxvY2suCitJ
ZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuIgorICAoZ2V0LWNoYXItcHJvcGVydHkgKG9yIHBvcyAo
cG9pbnQpKSAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykpCisKKyhkZWZ1biBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLWxhbmd1YWdlLWF0ICgmb3B0aW9uYWwgcG9zKQorICAiUmV0dXJuIHRoZSBsYW5n
dWFnZSBzeW1ib2wgb2YgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNl
IHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQKK2NvZGUg
YmxvY2suICBUaGlzIHdvcmtzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBhIGd1ZXN0IHRyZWUtc2l0
dGVyIHBhcnNlcgoraXMgYWN0aXZlLCBzaW5jZSB0aGUgbGFuZ3VhZ2UgaXMgc3RvcmVkIG9uIHRo
ZSBjb2RlIGJsb2NrIG92ZXJsYXkgYnkgdGhlCitob3N0IHBhcnNlcidzIGZvbnRpZmljYXRpb24u
IgorICAoZ2V0LWNoYXItcHJvcGVydHkgKG9yIHBvcyAocG9pbnQpKSAnbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1sYW5ndWFnZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUt
YXQgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gdGhlIG1ham9yIG1vZGUgZm9yIHRoZSBjb2Rl
IGJsb2NrIGF0IFBPUy4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4gIFJldHVybnMgbmlsIGlm
IFBPUyBpcyBub3QgaW5zaWRlIGEgZmVuY2VkCitjb2RlIGJsb2NrIG9yIGlmIHRoZSBsYW5ndWFn
ZSBoYXMgbm8gcmVjb2duaXplZCBtb2RlLiIKKyAgKHdoZW4gKG1hcmtkb3duLXRzLWF0LWNvZGUt
YmxvY2stcCBwb3MpCisgICAgKG9yIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkp
ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUpCisgICAgICAgIG1hcmtkb3duLXRzLWRlZmF1
bHQtY29kZS1ibG9jay1tb2RlKSkpCisKKzs7OyBJbWFnZSBoYW5kbGluZzoKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAgKG5vZGUpCisgICJSZXR1cm4gbm9uLW5p
bCBpZiBpbWFnZSBOT0RFIGlzIHRoZSBvbmx5IGNvbnRlbnQgb24gaXRzIGxpbmUuCitXaGl0ZXNw
YWNlLCBibG9jayBxdW90ZSBtYXJrZXJzIChgPicpLCBhbmQgbGlzdCBtYXJrZXJzCitcKGAtJywg
YConLCBgKycsIGAxLicpIGJlZm9yZSB0aGUgaW1hZ2UgYXJlIGlnbm9yZWQuIgorICAobGV0ICgo
bm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQg
KHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQorICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGdv
dG8tY2hhciBub2RlLXN0YXJ0KQorICAgICAgKGxldCAoKGJvbCAobGluZS1iZWdpbm5pbmctcG9z
aXRpb24pKQorICAgICAgICAgICAgKGVvbCAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgICAg
OzsgQmVmb3JlIHRoZSBpbWFnZTogb25seSBibG9jayBxdW90ZSBtYXJrZXJzLCB3aGl0ZXNwYWNl
LAorICAgICAgICA7OyBhbmQgYW4gb3B0aW9uYWwgbGlzdCBtYXJrZXIgYXJlIGFsbG93ZWQuCisg
ICAgICAgIChhbmQgKHN0cmluZy1tYXRjaC1wCisgICAgICAgICAgICAgIChyeCBib3MKKyAgICAg
ICAgICAgICAgICAgICh6ZXJvLW9yLW1vcmUgKGFueSAiPiBcdCIpKQorICAgICAgICAgICAgICAg
ICAgKG9wdGlvbmFsIChvciAoc2VxIChhbnkgIi0qKyIpICIgIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHNlcSAob25lLW9yLW1vcmUgZGlnaXQpIChhbnkgIi4pIiApICIgIikp
KQorICAgICAgICAgICAgICAgICAgZW9zKQorICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmlu
Zy1uby1wcm9wZXJ0aWVzIGJvbCBub2RlLXN0YXJ0KSkKKyAgICAgICAgICAgICA7OyBBZnRlciB0
aGUgaW1hZ2U6IG9ubHkgdHJhaWxpbmcgd2hpdGVzcGFjZSBhbGxvd2VkLgorICAgICAgICAgICAg
IChzdHJpbmctbWF0Y2gtcAorICAgICAgICAgICAgICAocnggYm9zICh6ZXJvLW9yLW1vcmUgKGFu
eSAiIFx0IikpIGVvcykKKyAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVy
dGllcyBub2RlLWVuZCBlb2wpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1p
bWFnZSAobm9kZSBfb3ZlcnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykKKyAgIlNob3cgYW4gaW5s
aW5lIGltYWdlIGF0IE5PREUuCitXaGVuIGBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzJyBpcyBu
b24tbmlsLCBkaXNwbGF5IHRoZSBpbWFnZS4KK0lmIHRoZSBpbWFnZSBsaW5rIGlzIHRoZSBvbmx5
IGNvbnRlbnQgb24gaXRzIGxpbmUsIGRpc3BsYXkgdGhlCitpbWFnZSBiZWxvdyB0aGUgbGluay4g
IElmIHRoZSBpbWFnZSBpcyBpbmxpbmUgd2l0aGluIGEgcGFyYWdyYXBoLAorZGlzcGxheSBpdCBy
aWdodCBhZnRlciB0aGUgbGluayB0ZXh0LgorUmVtb3RlIGltYWdlcyBhcmUgY29udHJvbGxlZCBi
eQorYG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFnZXMnLiIKKyAgKGxldCog
KChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAobm9kZS1l
bmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoZW9sIChzYXZlLWV4Y3Vyc2lv
biAoZ290by1jaGFyIG5vZGUtZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp
bmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAgICAoc2VhcmNoLWVuZCAobWluICgxKyBlb2wpIChw
b2ludC1tYXgpKSkpCisgICAgOzsgQWx3YXlzIGNsZWFyIHN0YWxlIG92ZXJsYXlzIGZvciB0aGlz
IG5vZGUncyByYW5nZS4KKyAgICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gbm9kZS1zdGFydCBz
ZWFyY2gtZW5kKSkKKyAgICAgICh3aGVuIChhbmQgKG92ZXJsYXktZ2V0IG92ICdtYXJrZG93bi10
cy1pbWFnZSkKKyAgICAgICAgICAgICAgICAgKD49IChvdmVybGF5LXN0YXJ0IG92KSBub2RlLXN0
YXJ0KQorICAgICAgICAgICAgICAgICAoPD0gKG92ZXJsYXktZW5kIG92KSBzZWFyY2gtZW5kKSkK
KyAgICAgICAgKGRlbGV0ZS1vdmVybGF5IG92KSkpCisgICAgKHdoZW4gKGFuZCBtYXJrZG93bi10
cy1pbmxpbmUtaW1hZ2VzCisgICAgICAgICAgICAgICA7OyBEb24ndCBjcmVhdGUgaW1hZ2Ugb3Zl
cmxheXMgZm9yIG5vZGVzIGluc2lkZQorICAgICAgICAgICAgICAgOzsgZm9sZGVkIChvdXRsaW5l
LWludmlzaWJsZSkgaGVhZGluZ3MsIHNpbmNlIHRoZQorICAgICAgICAgICAgICAgOzsgaW1hZ2Vz
IHdvdWxkbid0IGJlIHZpc2libGUgYW5kIGNvdWxkIGludGVyZmVyZQorICAgICAgICAgICAgICAg
Ozsgd2l0aCB0aGUgZm9sZGVkIGRpc3BsYXkuCisgICAgICAgICAgICAgICAobm90IChtYXJrZG93
bi10cy0tb3V0bGluZS1pbnZpc2libGUtcCBub2RlLXN0YXJ0KSkpCisgICAgICAobGV0KiAoKGRl
c3QgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgbm9kZSAiXFxgbGlua19kZXN0aW5hdGlvblxcJyIp
KQorICAgICAgICAgICAgICh1cmwgKGFuZCBkZXN0ICh0cmVlc2l0LW5vZGUtdGV4dCBkZXN0IHQp
KSkKKyAgICAgICAgICAgICAocmVtb3RlcCAoYW5kIHVybCAoc3RyaW5nLW1hdGNoLXAgIlxcYGh0
dHBzPzovLyIgdXJsKSkpCisgICAgICAgICAgICAgKGRpc3BsYXlhYmxlCisgICAgICAgICAgICAg
ICh3aGVuIHVybAorICAgICAgICAgICAgICAgIChpZiByZW1vdGVwCisgICAgICAgICAgICAgICAg
ICAgICh3aGVuIChlcSBtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxpbmUtaW1hZ2VzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG93bmxvYWQpCisgICAgICAgICAgICAgICAg
ICAgICAgKGlnbm9yZS1lcnJvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1aXJlICd1
cmwtaGFuZGxlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlcgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWJ1ZmZlci1tdWx0aWJ5dGUgbmlsKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAodXJsLWluc2VydC1maWxlLWNvbnRlbnRzIHVybCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCisgICAgICAgICAgICAg
ICAgICAobGV0ICgoZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSB1cmwpKSkKKyAgICAgICAgICAgICAg
ICAgICAgKGFuZCAobm90IChmaWxlLXJlbW90ZS1wIGZpbGUpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChmaWxlLWV4aXN0cy1wIGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlt
YWdlLXN1cHBvcnRlZC1maWxlLXAgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBmaWxl
KSkpKSkKKyAgICAgICAgICAgICAobWF4LXcgKGFuZCBkaXNwbGF5YWJsZQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChpZiAoZXEgbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoICd3aW5kb3cp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYm9keS13aWR0aCBuaWwgdCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLWltYWdlLW1heC13aWR0aCkp
KQorICAgICAgICAgICAgIChpbWcgKGFuZCBtYXgtdworICAgICAgICAgICAgICAgICAgICAgICAo
Y3JlYXRlLWltYWdlIGRpc3BsYXlhYmxlIG5pbCByZW1vdGVwCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOm1heC13aWR0aCBtYXgtdworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDpzY2FsZSAxKSkpKQorICAgICAgICAod2hlbiBpbWcKKyAgICAgICAg
ICAobGV0KiAoKGFsb25lIChtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGluZS1wIG5vZGUp
KQorICAgICAgICAgICAgICAgICAoc3RyIChpZiBhbG9uZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY29uY2F0ICJcbiIgKHByb3BlcnRpemUgIiAiICdkaXNwbGF5IGltZykpCisgICAgICAg
ICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkgaW1nKSkpCisgICAgICAg
ICAgICAgICAgIChvdiAobWFrZS1vdmVybGF5ICgxLSBub2RlLWVuZCkgbm9kZS1lbmQgbmlsIHQg
bmlsKSkpCisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWltYWdlIHQp
CisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2FmdGVyLXN0cmluZyBzdHIpCisgICAgICAg
ICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkpKQorCis7OzsgVVJML1VSSSBo
YW5kbGluZzoKKworKGRlZnZhciBtYXJrZG93bi10cy0tYmFyZS11cmwtcmVnZXhwIGdvdG8tYWRk
cmVzcy11cmwtcmVnZXhwCisgICJSZWdleHAgbWF0Y2hpbmcgYmFyZSBVUkxzIG5vdCB3cmFwcGVk
IGluIGFuZ2xlIGJyYWNrZXRzIG9yIGxpbmsgc3ludGF4LiIpCisKKyhkZWZ2YXIgbWFya2Rvd24t
dHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCBnb3RvLWFkZHJlc3MtbWFpbC1yZWdleHAKKyAgIlJl
Z2V4cCBtYXRjaGluZyBiYXJlIGVtYWlsIGFkZHJlc3NlcyBub3Qgd3JhcHBlZCBpbiBhbmdsZSBi
cmFja2V0cy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYmFyZS11cmkgKHN0YXJ0
IGVuZCkKKyAgIkZvbnRpZnkgYmFyZSBVUkwgb3IgZW1haWwgVVJJIGJldHdlZW4gU1RBUlQgYW5k
IEVORC4KK1NraXAgbWF0Y2hlcyBhbHJlYWR5IGluc2lkZSB0cmVlLXNpdHRlciBsaW5rIG9yIGF1
dG9saW5rIG5vZGVzLiIKKyAgKGRvbGlzdCAocmUgKGxpc3QgbWFya2Rvd24tdHMtLWJhcmUtdXJs
LXJlZ2V4cAorICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmkt
cmVnZXhwKSkKKyAgICAoZ290by1jaGFyIHN0YXJ0KQorICAgICh3aGlsZSAocmUtc2VhcmNoLWZv
cndhcmQgcmUgZW5kIHQpCisgICAgICAobGV0KiAoKHVyaS1zdGFydCAobWF0Y2gtYmVnaW5uaW5n
IDApKQorICAgICAgICAgICAgICh1cmktZW5kIChtYXRjaC1lbmQgMCkpCisgICAgICAgICAgICAg
KHVyaSAobWF0Y2gtc3RyaW5nIDApKQorICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUt
YXQgdXJpLXN0YXJ0ICdtYXJrZG93bi1pbmxpbmUpKQorICAgICAgICAgICAgIChwYXJlbnQgKGFu
ZCBub2RlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKSkKKyAgICAgICAgICAgICAocGFyZW50
LXR5cGUgKGFuZCBwYXJlbnQgKHRyZWVzaXQtbm9kZS10eXBlIHBhcmVudCkpKSkKKyAgICAgICAg
KHVubGVzcyAob3IgKG1lbWJlciBwYXJlbnQtdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICcoImlubGluZV9saW5rIiAiZnVsbF9yZWZlcmVuY2VfbGluayIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsiICJzaG9ydGN1dF9saW5r
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlIiAidXJpX2F1dG9saW5rIiAi
ZW1haWxfYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlua19kZXN0
aW5hdGlvbiIpKQorICAgICAgICAgICAgICAgICAgICAobWVtYmVyIChhbmQgbm9kZSAodHJlZXNp
dC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygidXJpX2F1
dG9saW5rIiAiZW1haWxfYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bGlua19kZXN0aW5hdGlvbiIgImNvZGVfc3BhbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjb2RlX2ZlbmNlX2NvbnRlbnQiICJpbmZvX3N0cmluZyIpKQorICAgICAgICAgICAgICAg
ICAgICAoZ2V0LXRleHQtcHJvcGVydHkgdXJpLXN0YXJ0ICdidXR0b24pKQorICAgICAgICAgICht
YXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAgICAgICB1cmktc3RhcnQgdXJpLWVu
ZAorICAgICAgICAgICAoaWYgKGVxIHVyaS1zdGFydCAwKQorICAgICAgICAgICAgICAgdXJpCisg
ICAgICAgICAgICAgKGNvbmNhdCAibWFpbHRvOiIgdXJpKSkpKSkpKSkKKworOzs7IHRyZWVzaXQg
c2V0dGluZ3M6CisKIChkZWZ2YXIgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgKHRy
ZWVzaXQtZm9udC1sb2NrLXJ1bGVzCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQogICAg
Om92ZXJyaWRlIHQKICAgIDpmZWF0dXJlICdkZWxpbWl0ZXIKLSAgICcoKGlubGluZV9saW5rIFsg
IlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykKLSAgICAgKGltYWdlIFsgIiEiICJbIiAiXSIgIigi
ICIpIiBdIEBzaGFkb3cpKQorICAgJygoaW5saW5lX2xpbmsgWyAiWyIgIl0iICIoIiAiKSIgXSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoZnVsbF9yZWZlcmVuY2VfbGlu
ayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoY29s
bGFwc2VkX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93bi10cy0tZm9udGlmeS1k
ZWxpbWl0ZXIpCisgICAgIChzaG9ydGN1dF9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChpbWFnZSBbICIhIiAiWyIgIl0iICIoIiAiKSIgXSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkKIAogICAgOmxhbmd1YWdlICdtYXJrZG93
bgogICAgOmZlYXR1cmUgJ2hlYWRpbmcKLSAgICcoKGF0eF9oZWFkaW5nIChhdHhfaDFfbWFya2Vy
KSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMQotICAgICAoYXR4X2hlYWRpbmcgKGF0eF9oMl9tYXJr
ZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy0yCi0gICAgIChhdHhfaGVhZGluZyAoYXR4X2gzX21h
cmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTMKLSAgICAgKGF0eF9oZWFkaW5nIChhdHhfaDRf
bWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNAotICAgICAoYXR4X2hlYWRpbmcgKGF0eF9o
NV9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy01Ci0gICAgIChhdHhfaGVhZGluZyAoYXR4
X2g2X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTYKLSAgICAgKHNldGV4dF9oZWFkaW5n
KSBAbWFya2Rvd24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAnKCgoYXR4X2hlYWRpbmcpICAgIEBt
YXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKQorICAgICAoKHNldGV4dF9oZWFkaW5nKSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktaGVhZGluZykpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAg
IDpmZWF0dXJlICdoZWFkaW5nCkBAIC0xOTQsMTYgKzEzOTEsMzQgQEAgbWFya2Rvd24tdHMtLXRy
ZWVzaXQtc2V0dGluZ3MKICAgICAgKGF0eF9oM19tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNF9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1k
ZWxpbWl0ZXIKICAgICAgKGF0eF9oNV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIKLSAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0
ZXIpCisgICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVy
CisgICAgIChzZXRleHRfaDFfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1p
dGVyCisgICAgIChzZXRleHRfaDJfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVs
aW1pdGVyKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBo
Ci0gICAnKCgodGhlbWF0aWNfYnJlYWspIEBtYXJrZG93bi10cy1kZWxpbWl0ZXIpCi0gICAgICgo
aW5kZW50ZWRfY29kZV9ibG9jaykgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAgICcoKCh0aGVt
YXRpY19icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrKQorICAgICAo
KGh0bWxfYmxvY2spIEBtYXJrZG93bi10cy1odG1sLWJsb2NrKQorICAgICAoKGluZGVudGVkX2Nv
ZGVfYmxvY2spIEBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrKQogICAgICAobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9zdGFyKSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpCiAgICAgIChs
aXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKICAg
ICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfbWludXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtl
cikKLSAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFya2Rvd24tdHMtbGlzdC1t
YXJrZXIpKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJrZG93bi10cy1s
aXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfcGFyZW50aGVzaXMpIEBt
YXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtl
cl91bmNoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2JveCkKKyAgICAgKGxpc3Rf
aXRlbSAodGFza19saXN0X21hcmtlcl9jaGVja2VkKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktY2hl
Y2tib3gpCisgICAgIChwaXBlX3RhYmxlX2hlYWRlciAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWhl
YWRlcikKKyAgICAgKHBpcGVfdGFibGVfaGVhZGVyIChwaXBlX3RhYmxlX2NlbGwpIEBtYXJrZG93
bi10cy10YWJsZS1oZWFkZXIpCisgICAgIChwaXBlX3RhYmxlX3JvdyAifCIgQG1hcmtkb3duLXRz
LXRhYmxlLWRlbGltaXRlci1jZWxsKQorICAgICAocGlwZV90YWJsZV9yb3cgKHBpcGVfdGFibGVf
Y2VsbCkgQG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCisgICAgIChwaXBlX3RhYmxlX2RlbGltaXRl
cl9yb3cgInwiIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCkKKyAgICAgKGxpbmtf
cmVmZXJlbmNlX2RlZmluaXRpb24KKyAgICAgIChsaW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktbGluay1yZWYtbGFiZWwpCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisg
ICAgICAobGlua19kZXN0aW5hdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRl
c3RpbmF0aW9uKQorICAgICAobGlua19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtf
dGl0bGUpIEBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uKQorICAgICAocGlwZV90YWJsZV9k
ZWxpbWl0ZXJfcm93IChwaXBlX3RhYmxlX2RlbGltaXRlcl9jZWxsKSBAbWFya2Rvd24tdHMtdGFi
bGUtZGVsaW1pdGVyLWNlbGwpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVy
ZSAncGFyYWdyYXBoCkBAIC0yMTcsODQgKzE0MzIsOTkyIEBAIG1hcmtkb3duLXRzLS10cmVlc2l0
LXNldHRpbmdzCiAgICAgICAoYmxvY2tfcXVvdGVfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyCiAgICAgICAocGFyYWdyYXBoIChpbmxpbmUgKGJsb2NrX2NvbnRpbnVhdGlv
bikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikpKSkKIAorICAgOmxhbmd1YWdlICdt
YXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFwaAorICAgOm92ZXJyaWRlICdhcHBlbmQKKyAg
ICcoKGZlbmNlZF9jb2RlX2Jsb2NrCisgICAgICAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSkKKyAg
ICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29k
ZS1ibG9jaykpCisKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpmZWF0dXJlICdwYXJhZ3Jh
cGgKKyAgIDpvdmVycmlkZSAnYXBwZW5kCisgICAnKChmZW5jZWRfY29kZV9ibG9jayAoY29kZV9m
ZW5jZV9jb250ZW50KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktY29kZS1ibG9jaykpCisKICAgIDps
YW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6b3ZlcnJpZGUgJ2FwcGVuZAogICAgOmZlYXR1
cmUgJ3BhcmFncmFwaC1pbmxpbmUKLSAgICcoKChpbWFnZV9kZXNjcmlwdGlvbikgQGxpbmspCi0g
ICAgICgobGlua19kZXN0aW5hdGlvbikgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKLSAgICAgKChj
b2RlX3NwYW4pIEBmb250LWxvY2stc3RyaW5nLWZhY2UpCisgICAnKCgobGlua19kZXN0aW5hdGlv
bikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstZGVzdGluYXRpb24pCisgICAgICgoY29kZV9z
cGFuKSBAbWFya2Rvd24tdHMtY29kZS1zcGFuKQogICAgICAoKGNvZGVfc3Bhbl9kZWxpbWl0ZXIp
IEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCi0gICAgICgoZW1waGFzaXMpIEBpdGFs
aWMpCi0gICAgICgoc3Ryb25nX2VtcGhhc2lzKSBAYm9sZCkKLSAgICAgKGlubGluZV9saW5rIChs
aW5rX3RleHQpIEBsaW5rKQotICAgICAoaW5saW5lX2xpbmsgKGxpbmtfZGVzdGluYXRpb24pIEBm
b250LWxvY2stc3RyaW5nLWZhY2UpCi0gICAgIChzaG9ydGN1dF9saW5rIChsaW5rX3RleHQpIEBs
aW5rKSkKKyAgICAgKChlbXBoYXNpcykgQG1hcmtkb3duLXRzLWVtcGhhc2lzKQorICAgICAoKHN0
cm9uZ19lbXBoYXNpcykgQG1hcmtkb3duLXRzLWJvbGQpCisgICAgICgoc3RyaWtldGhyb3VnaCkg
QG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gpCisgICAgIChpbmxpbmVfbGluayAobGlua190ZXh0
KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoZnVsbF9yZWZlcmVuY2Vf
bGluayAobGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAo
ZnVsbF9yZWZlcmVuY2VfbGluayAobGlua19sYWJlbCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxp
bmstbm9kZSkKKyAgICAgKGNvbGxhcHNlZF9yZWZlcmVuY2VfbGluayAobGlua190ZXh0KSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoc2hvcnRjdXRfbGluayAobGlua190
ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoaW1hZ2UgKGltYWdl
X2Rlc2NyaXB0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoKHVy
aV9hdXRvbGluaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKQorICAgICAoKGVtYWls
X2F1dG9saW5rKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspCisgICAgIChpbmxpbmVf
bGluayAobGlua190aXRsZSkgQG1hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24pCisgICAgICgo
YmFja3NsYXNoX2VzY2FwZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWJhY2tzbGFzaC1lc2NhcGUp
CisgICAgICgoZW50aXR5X3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWVudGl0eSkK
KyAgICAgKChudW1lcmljX2NoYXJhY3Rlcl9yZWZlcmVuY2UpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1lbnRpdHkpCisgICAgICgoaHRtbF90YWcpIEBtYXJrZG93bi10cy1odG1sLXRhZykKKyAgICAg
KChoYXJkX2xpbmVfYnJlYWspIEBtYXJrZG93bi10cy0tZm9udGlmeS1oYXJkLWxpbmUtYnJlYWsp
CisgICAgICgobGF0ZXhfYmxvY2spIEBtYXJrZG93bi10cy0tZm9udGlmeS1sYXRleC1ibG9jaykp
CiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBo
LWlubGluZQogICAgOm92ZXJyaWRlICdhcHBlbmQKICAgICcoKGVtcGhhc2lzX2RlbGltaXRlcikg
QG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKLSAgICkpCiAKLTs7OyBJbWVudQorICAg
Omxhbmd1YWdlICdtYXJrZG93bi1pbmxpbmUKKyAgIDpmZWF0dXJlICdpbWFnZS1wcmV2aWV3Cisg
ICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoaW1hZ2UpIEBtYXJrZG93bi10cy0tZm9udGlmeS1p
bWFnZSkpKQorCis7OzsgSW1lbnU6CiAKLShkZWZ1biBtYXJrZG93bi10cy1pbWVudS1ub2RlLXAg
KG5vZGUpCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmctbm9kZS1wIChub2RlKQog
ICAiQ2hlY2sgaWYgTk9ERSBpcyBhIHZhbGlkIGVudHJ5IHRvIGltZW51LiIKLSAgKGVxdWFsICh0
cmVlc2l0LW5vZGUtdHlwZSAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKLSAgICAgICAgICJh
dHhfaGVhZGluZyIpKQorICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImlu
bGluZSIpCisgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAodHJlZXNpdC1ub2RlLXBh
cmVudCBub2RlKSkKKyAgICAgICAgICAgICAgImF0eF9oZWFkaW5nIikpKQogCi0oZGVmdW4gbWFy
a2Rvd24tdHMtaW1lbnUtbmFtZS1mdW5jdGlvbiAobm9kZSkKKyhkZWZ1biBtYXJrZG93bi10cy0t
aW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uIChub2RlKQogICAiUmV0dXJuIGFuIGltZW51IGVu
dHJ5IGlmIE5PREUgaXMgYSB2YWxpZCBoZWFkZXIuIgogICAobGV0ICgobmFtZSAodHJlZXNpdC1u
b2RlLXRleHQgbm9kZSkpKQotICAgIChpZiAobWFya2Rvd24tdHMtaW1lbnUtbm9kZS1wIG5vZGUp
Ci0JKHRocmVhZC1maXJzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSAodHJlZXNpdC1ub2Rl
LXRleHQpKQorICAgIChpZiAobWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmctbm9kZS1wIG5vZGUp
CisgICAgICAgIChjYXIgKHNwbGl0LXN0cmluZyAodHJlZXNpdC1ub2RlLXRleHQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAiXG4iIHQgIiAiKSkKICAgICAgIG5hbWUpKSkKIAotKGRlZnVuIG1h
cmtkb3duLXRzLW91dGxpbmUtcHJlZGljYXRlIChub2RlKQotICAiTWF0Y2ggYSBoaWVyYXJjaGlj
YWwgc2VjdGlvbiB0aGF0IGhhcyBhIGhlYWRpbmcuIgorKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVu
dS1jb2RlLWJsb2NrLW5vZGUtcCAobm9kZSkKKyAgIkNoZWNrIGlmIE5PREUgaXMgYW4gaW5mb19z
dHJpbmcgd2l0aCBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVyIHRoZSBsYW5ndWFnZS4iCisgIChhbmQg
KGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiaW5mb19zdHJpbmciKQorICAgICAgICh3
aGVuLWxldCogKChsYW5nLW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgbm9kZSAibGFuZ3Vh
Z2UiKSkKKyAgICAgICAgICAgICAgICAgICAoKDwgKHRyZWVzaXQtbm9kZS1lbmQgbGFuZy1ub2Rl
KQorICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKQorICAg
ICAgICAgKG5vdCAoc3RyaW5nLWJsYW5rLXAKKyAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry
aW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYW5n
LW5vZGUpCisgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5hbWUtZnVuY3Rpb24gKG5vZGUp
CisgICJSZXR1cm4gYW4gaW1lbnUgZW50cnkgbmFtZSBmb3IgYSBjb2RlIGJsb2NrIGluZm9fc3Ry
aW5nIE5PREUuCitVc2VzIHRoZSBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVyIHRoZSBsYW5ndWFnZSBu
YW1lLiIKKyAgKHdoZW4tbGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBu
b2RlICJsYW5ndWFnZSIpKQorICAgICAgICAgICAgICAoZGVzYyAoc3RyaW5nLXRyaW0KKyAgICAg
ICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAg
ICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUpCisgICAgICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKSkpCisgICAgKGZvcm1hdCAiJXM6ICVz
IiAodHJlZXNpdC1ub2RlLXRleHQgbGFuZy1ub2RlKSBkZXNjKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy0tb3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCisgICJNYXRjaCBOT0RFIGlmIGl0IGlzIGEg
aGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIKICAgKGFuZCAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJzZWN0aW9uIikKICAgICAgICAod2hlbi1sZXQqICgo
Y2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKICAgICAgICAgIChlcXVhbCAodHJl
ZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJhdHhfaGVhZGluZyIpKSkpCiAKLTs7OyBDb2RlIGJsb2Nr
cwotCi0oZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1jb25maWd1cmVkLWxhbmd1YWdlcyBuaWwK
LSAgIkEgbGlzdCBvZiBsYW5ndWFnZXMgdGhhdCBoYXZlIGJlZW4gc2V0dXAgaW4gdGhpcyBidWZm
ZXIuCi0KLVdoZW4gYSBjb2RlIGJsb2NrIG9mIGEgbGFuZ3VhZ2UgYXBwZWFycywgYG1hcmtkb3du
LXRzLW1vZGUnIGxvYWRzCi1sYW5ndWFnZSBzZXR1cHMgbGlrZSBmb250LWxvY2sgYW5kIGluZGVu
dGF0aW9uIGZvciB0aGF0IGxhbmd1YWdlLCBhbmQKLWFkZHMgdGhhdCBsYW5ndWFnZSB0byB0aGlz
IGxpc3QuIikKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKKworKGRlZmNvbnN0IG1hcmtkb3du
LXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11bSBBVFggaGVhZGluZyBs
ZXZlbCBpbiBNYXJrZG93biAoaDEtaDYpLgorRGVmaW5lZCBieSB0aGUgQ29tbW9uTWFyayBzcGVj
IGFuZCB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhl
YWRpbmctYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgYXR4X2hlYWRpbmcgbm9kZSBhdCBvciBi
ZWZvcmUgcG9pbnQsIG9yIG5pbC4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUt
YXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAoaWYgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZSBub2RlKSAiYXR4X2hlYWRpbmciKQorICAgICAgICBub2RlCisgICAgICAodHJlZXNpdC1wYXJl
bnQtdW50aWwKKyAgICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5
cGUgbikgImF0eF9oZWFkaW5nIikpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhlYWRpbmct
bGV2ZWwgKGhlYWRpbmcpCisgICJSZXR1cm4gdGhlIGxldmVsIG9mIEhFQURJTkcgbm9kZSAoMSB0
byBgbWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCcpLiIKKyAgKGxldCAoKG1h
cmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpKQorICAgIChsZW5ndGggKHRyZWVz
aXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNlY3Rpb24t
YXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgc2VjdGlvbiBub2RlIGNvbnRhaW5pbmcgcG9pbnQu
IgorICAod2hlbi1sZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkgJ21hcmtkb3du
KSkpCisgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgIG5vZGUgKGxhbWJkYSAobikgKGVx
dWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAic2VjdGlvbiIpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtcHJvbW90ZSAoKQorICAiUHJvbW90ZSB0aGUgaGVhZGluZyBvciBsaXN0IGl0ZW0gYXQg
cG9pbnQuCitGb3IgaGVhZGluZ3MsIGRlY3JlYXNlIHRoZSBsZXZlbCAoZS5nLiwgIyMgdG8gIyku
CitGb3IgbGlzdCBpdGVtcywgZGVjcmVhc2UgbmVzdGluZyAoZGVkZW50KS4KK1dpdGggYHRyYW5z
aWVudC1tYXJrLW1vZGUnIG9uIGFuZCBtYXJrIGFjdGl2ZSwgcHJvbW90ZSBhbGwKK2hlYWRpbmdz
IGluIHRoZSByZWdpb24uIgorICAoaW50ZXJhY3RpdmUpCisgIChjb25kCisgICAoKGFuZCB0cmFu
c2llbnQtbWFyay1tb2RlIG1hcmstYWN0aXZlKQorICAgIChtYXJrZG93bi10cy0tcHJvbW90ZS1v
ci1kZW1vdGUtcmVnaW9uIC0xKSkKKyAgICgobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2lu
dCkKKyAgICAobWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1vdGUgbmlsKSkKKyAgICh0
IChtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUgLTEpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1kZW1vdGUgKCkKKyAgIkRlbW90ZSB0aGUgaGVhZGluZyBvciBsaXN0IGl0ZW0gYXQgcG9p
bnQuCitGb3IgaGVhZGluZ3MsIGluY3JlYXNlIHRoZSBsZXZlbCAoZS5nLiwgIyB0byAjIykuCitG
b3IgbGlzdCBpdGVtcywgaW5jcmVhc2UgbmVzdGluZyAoaW5kZW50KS4KK1dpdGggYHRyYW5zaWVu
dC1tYXJrLW1vZGUnIG9uIGFuZCBtYXJrIGFjdGl2ZSwgZGVtb3RlIGFsbCBoZWFkaW5ncworaW4g
dGhlIHJlZ2lvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5zaWVu
dC1tYXJrLW1vZGUgbWFyay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRl
bW90ZS1yZWdpb24gMSkpCisgICAoKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisg
ICAgKG1hcmtkb3duLXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIHQpKQorICAgKHQgKG1hcmtk
b3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAxKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXBy
b21vdGUtb3ItZGVtb3RlIChkZWx0YSkKKyAgIkNoYW5nZSB0aGUgaGVhZGluZyBhdCBwb2ludCBi
eSBERUxUQSBsZXZlbHMuCitOZWdhdGl2ZSBERUxUQSBwcm9tb3RlcyAoZmV3ZXIgIyksIHBvc2l0
aXZlIGRlbW90ZXMgKG1vcmUgIykuCitJZiB0aGUgaGVhZGluZyBoYXMgYW4gb3B0aW9uYWwgdHJh
aWxpbmcgY2xvc2luZy1gIycgc2VxdWVuY2UsIHRoYXQKK3NlcXVlbmNlIGlzIHJlc2l6ZWQgdG8g
bWF0Y2ggdGhlIG5ldyBsZXZlbC4iCisgICh3aGVuLWxldCogKChoZWFkaW5nIChtYXJrZG93bi10
cy0taGVhZGluZy1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBoZWFkaW5nIDApKQorICAgICAgICAgICAgICAobGV2ZWwgKGxlbmd0aCAodHJlZXNp
dC1ub2RlLXRleHQgbWFya2VyIHQpKSkKKyAgICAgICAgICAgICAgKG5ldy1sZXZlbCAoKyBsZXZl
bCBkZWx0YSkpKQorICAgICh3aGVuIChhbmQgKD49IG5ldy1sZXZlbCAxKQorICAgICAgICAgICAg
ICAgKDw9IG5ldy1sZXZlbCBtYXJrZG93bi10cy0tcGFyc2VyLWhlYWRpbmctbWF4LWxldmVsKSkK
KyAgICAgIChsZXQqICgob3BlbmVyLWJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpCisg
ICAgICAgICAgICAgKG9wZW5lci1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAg
ICAgICAgICAobGluZS1lbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAg
ICAgKGdvdG8tY2hhciBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l
LWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgIDs7IERldGVjdCBhIENvbW1vbk1hcmsgY2xv
c2luZy1gIycgc2VxdWVuY2U6IG9wdGlvbmFsCisgICAgICAgICAgICAgOzsgdHJhaWxpbmcgd2hp
dGVzcGFjZSwgYSBydW4gb2YgYCMnLCBhbmQgYXQgbGVhc3Qgb25lCisgICAgICAgICAgICAgOzsg
c3BhY2UvdGFiIGJldHdlZW4gaXQgYW5kIHRoZSBoZWFkaW5nIHRleHQuCisgICAgICAgICAgICAg
KGNsb3NlciAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hh
ciBsaW5lLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQg
IiBcdCIgb3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGVuZCAocG9p
bnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIyIg
b3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoYmVnIChwb2ludCkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPCBiZWcgZW5kKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiBiZWcgb3BlbmVyLWVuZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbXEgKGNoYXItYmVmb3JlIGJl
ZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyg/XHMgP1x0
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIGJlZyBlbmQpKSkpKSkpCisg
ICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIDs7IFJlc2l6ZSB0aGUgY2xvc2VyIGZp
cnN0IHNvIGl0IGRvZXNuJ3Qgc2hpZnQgdGhlIG9wZW5lci4KKyAgICAgICAgICAod2hlbiBjbG9z
ZXIKKyAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIChjYXIgY2xvc2VyKSAoY2RyIGNsb3Nlcikp
CisgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgY2xvc2VyKSkKKyAgICAgICAgICAgIChpbnNl
cnQgKG1ha2Utc3RyaW5nIG5ldy1sZXZlbCA/IykpKQorICAgICAgICAgIChkZWxldGUtcmVnaW9u
IG9wZW5lci1iZWcgb3BlbmVyLWVuZCkKKyAgICAgICAgICAoZ290by1jaGFyIG9wZW5lci1iZWcp
CisgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgbmV3LWxldmVsID8jKSkpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lvbiAoZGVsdGEpCisgICJD
aGFuZ2UgYWxsIGhlYWRpbmdzIGluIHRoZSBhY3RpdmUgcmVnaW9uIGJ5IERFTFRBIGxldmVscy4K
K05lZ2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRpdmUgZGVtb3RlcyAobW9y
ZSAjKS4iCisgIChsZXQgKChiZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAoZW5kIChy
ZWdpb24tZW5kKSkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAoZ290by1jaGFyIGJlZykK
KyAgICAgICh3aGlsZSAoPCAocG9pbnQpIGVuZCkKKyAgICAgICAgKHdoZW4gKG1hcmtkb3duLXRz
LS1oZWFkaW5nLWF0LXBvaW50KQorICAgICAgICAgIChtYXJrZG93bi10cy0tcHJvbW90ZS1vci1k
ZW1vdGUgZGVsdGEpKQorICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwICgpCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24g
b3IgbGlzdCBpdGVtIHVwIHBhc3QgdGhlIHByZXZpb3VzIHNpYmxpbmcuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChpZiAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAgIChtYXJr
ZG93bi10cy0tbGlzdC1tb3ZlIHQpCisgICAgKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAt
b3ItZG93biB0KSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZp
Z3MgKG1vZGUpCi0gICJIYXJ2ZXN0IHRyZWUtc2l0dGVyIGNvbmZpZ3MgZnJvbSBNT0RFLgotUmV0
dXJuIGEgcGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgYW5kIHZhbHVlOgorKGRlZnVuIG1h
cmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICgpCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rp
b24gb3IgbGlzdCBpdGVtIGRvd24gcGFzdCB0aGUgbmV4dCBzaWJsaW5nLiIKKyAgKGludGVyYWN0
aXZlKQorICAoaWYgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpCisgICAgICAobWFy
a2Rvd24tdHMtLWxpc3QtbW92ZSBuaWwpCisgICAgKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUt
dXAtb3ItZG93biBuaWwpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZWN0aW9uLWZvbGRlZC1w
IChzZWN0aW9uKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU0VDVElPTidzIGhlYWRpbmcgaXMgZm9s
ZGVkLgorQ2hlY2tzIHdoZXRoZXIgdGhlIGVuZCBvZiB0aGUgaGVhZGluZyBsaW5lIGhhcyBhbiBv
dXRsaW5lCitpbnZpc2libGUgb3ZlcmxheS4iCisgIChsZXQgKChoZWFkaW5nICh0cmVlc2l0LW5v
ZGUtY2hpbGQgc2VjdGlvbiAwKSkpCisgICAgKHdoZW4gKGFuZCBoZWFkaW5nCisgICAgICAgICAg
ICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGhlYWRpbmcpICJhdHhfaGVhZGluZyIpKQor
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBoZWFkaW5nKSkKKyAgICAgICAgKG91dGxpbmUtaW52aXNpYmxlLXAgKHBvcy1lb2wpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93biAodXApCisg
ICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gc3VidHJlZS4KK0lmIFVQIGlzIG5vbi1uaWwsIG1v
dmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93bi4KK1ByZXNl
cnZlcyB0aGUgZm9sZGluZyBzdGF0ZSBvZiBib3RoIHNlY3Rpb25zLiIKKyAgKHdoZW4tbGV0KiAo
KHNlY3Rpb24gKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAg
KHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2Rl
LXByZXYtc2libGluZyBzZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtbmV4dC1zaWJsaW5nIHNlY3Rpb24pKSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0
LW5vZGUtdHlwZSBzaWJsaW5nKSAic2VjdGlvbiIpCisgICAgICAobGV0KiAoKGZpcnN0IChpZiB1
cCBzaWJsaW5nIHNlY3Rpb24pKQorICAgICAgICAgICAgIChzZWNvbmQgKGlmIHVwIHNlY3Rpb24g
c2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0LWZvbGRlZCAobWFya2Rvd24tdHMtLXNlY3Rp
b24tZm9sZGVkLXAgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtZm9sZGVkIChtYXJrZG93
bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBzZWNvbmQpKQorICAgICAgICAgICAgIChmaXJzdC1zdGFy
dCAodHJlZXNpdC1ub2RlLXN0YXJ0IGZpcnN0KSkKKyAgICAgICAgICAgICAoc2Vjb25kLXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgc2Vjb25kKSkKKyAgICAgICAgICAgICAoc2Vjb25kLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAgICAgIDs7IEV4dHJhY3Qgc2VwYXJh
dG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAg
KGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1zdGFydCBzZWNvbmQtc3RhcnQpKQor
ICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBmaXJzdC1yYXcpKQor
ICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBmaXJzdC1yYXcgKGxlbmd0aCBmaXJz
dC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcgKGJ1ZmZlci1zdWJzdHJpbmcgc2Vj
b25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtdGV4dCAoc3RyaW5n
LXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAgICAgKHRyYWlsaW5nIChzdWJzdHJp
bmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkpCisgICAgICAgICAgICAgKGNvbCAo
Y3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgIChsaW5lLW9mZnNldCAoLSAobGluZS1udW1i
ZXItYXQtcG9zIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLW51
bWJlci1hdC1wb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBzZWN0aW9uKSkpKSkKKyAgICAgICAgKGRl
bGV0ZS1yZWdpb24gZmlyc3Qtc3RhcnQgc2Vjb25kLWVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBm
aXJzdC1zdGFydCkKKyAgICAgICAgKGluc2VydCBzZWNvbmQtdGV4dCBzZXBhcmF0b3IgZmlyc3Qt
dGV4dCB0cmFpbGluZykKKyAgICAgICAgOzsgUmVzdG9yZSBmb2xkaW5nIHN0YXRlCisgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgZmlyc3Qtc3RhcnQpCisgICAg
ICAgICAgKHdoZW4gKG91dGxpbmUtb24taGVhZGluZy1wKQorICAgICAgICAgICAgKGlmIHNlY29u
ZC1mb2xkZWQKKyAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXN1YnRyZWUpCisgICAgICAg
ICAgICAgIChvdXRsaW5lLXNob3ctc3VidHJlZSkpKQorICAgICAgICAgIChvdXRsaW5lLW5leHQt
aGVhZGluZykKKyAgICAgICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAgICAg
ICAgICAoaWYgZmlyc3QtZm9sZGVkCisgICAgICAgICAgICAgICAgKG91dGxpbmUtaGlkZS1zdWJ0
cmVlKQorICAgICAgICAgICAgICAob3V0bGluZS1zaG93LXN1YnRyZWUpKSkpCisgICAgICAgIChn
b3RvLWNoYXIgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LXN0YXJ0CisgICAg
ICAgICAgICAgICAgICAgICAoKyBmaXJzdC1zdGFydCAobGVuZ3RoIHNlY29uZC10ZXh0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBzZXBhcmF0b3IpKSkpCisgICAgICAgIChmb3J3
YXJkLWxpbmUgbGluZS1vZmZzZXQpCisgICAgICAgIChtb3ZlLXRvLWNvbHVtbiBjb2wpKSkpKQor
Cis7OzsgTGlzdCBtYW5pcHVsYXRpb246CisKKyhkZWZ1biBtYXJrZG93bi10cy10b2dnbGUtY2hl
Y2tib3ggKCkKKyAgIlRvZ2dsZSB0aGUgdGFzayBsaXN0IGNoZWNrYm94IG9uIHRoZSBjdXJyZW50
IGxpbmUuCitTd2l0Y2hlcyBiZXR3ZWVuIGBbIF0nIGFuZCBgW3hdJy4iCisgIChpbnRlcmFjdGl2
ZSkKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRp
b24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHBvcyAn
bWFya2Rvd24pKQorICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAg
ICAgICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0ZW0iKSkpKSkKKyAg
ICAod2hlbi1sZXQqICgobWFya2VyIChzZXEtZmluZAorICAgICAgICAgICAgICAgICAgICAgICAg
IChsYW1iZGEgKGNoaWxkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbWJlciAodHJl
ZXNpdC1ub2RlLXR5cGUgY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICcoInRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGFza19saXN0X21hcmtlcl91bmNoZWNrZWQiKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBpdGVtKSkpKQorICAgICAgKGxldCAo
KGJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpCisgICAgICAgICAgICAoZW5kICh0cmVl
c2l0LW5vZGUtZW5kIG1hcmtlcikpCisgICAgICAgICAgICAoY2hlY2tlZCAoZXF1YWwgKHRyZWVz
aXQtbm9kZS10eXBlIG1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFza19s
aXN0X21hcmtlcl9jaGVja2VkIikpKQorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBiZWcgZW5kKQorICAg
ICAgICAgIChpbnNlcnQgKGlmIGNoZWNrZWQgIlsgXSIgIlt4XSIpKSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50ICgpCisgICJSZXR1cm4gdGhlIGlubmVybW9z
dCBsaXN0X2l0ZW0gbm9kZSBjb250YWluaW5nIHBvaW50LCBvciBuaWwuCitVc2VzIHRoZSBwb3Np
dGlvbiBhZnRlciBgYmFjay10by1pbmRlbnRhdGlvbicgc28gdGhhdCBwb2ludCBpbgorYSBsaW5l
J3MgbGVhZGluZyB3aGl0ZXNwYWNlIHJlc29sdmVzIHRvIHRoZSBpdGVtIG9uIHRoYXQgbGluZSwK
K25vdCB0byBhIHByZWNlZGluZyBpdGVtIHdob3NlIG5vZGUgc3BhbnMgdGhlIHdoaXRlc3BhY2Uu
CitJbnNpZGUgYmxvY2sgcXVvdGVzLCBhbHNvIHRyeSBmcm9tIHRoZSBjb250ZW50IHBvc2l0aW9u
IHBhc3QKK3RoZSBgPicgbWFya2Vycy4iCisgICh3aGVuLWxldCogKChwb3MgKHNhdmUtZXhjdXJz
aW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9pbnQpKSkKKyAgICAgICAgICAgICAgKG5vZGUg
KHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgKGJvbCAobGlu
ZS1iZWdpbm5pbmctcG9zaXRpb24pKQorICAgICAgICAgICAgICAoZW9sIChsaW5lLWVuZC1wb3Np
dGlvbikpKQorICAgIChvciAobGV0ICgoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAg
ICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0ZW0iKSkpKSkKKyAgICAg
ICAgICA7OyBWZXJpZnkgdGhlIGN1cnJlbnQgbGluZSBpcyB3aXRoaW4gdGhlIGl0ZW0ncyByYW5n
ZS4KKyAgICAgICAgICA7OyBgdHJlZXNpdC1ub2RlLWF0JyBjYW4gcmV0dXJuIGEgbm9kZSBpbnNp
ZGUgYSBsaXN0X2l0ZW0KKyAgICAgICAgICA7OyBldmVuIHdoZW4gcG9pbnQgaXMgb24gYSBwcmVj
ZWRpbmcgbGluZS4KKyAgICAgICAgICAod2hlbiAoYW5kIGl0ZW0KKyAgICAgICAgICAgICAgICAg
ICAgICg8PSAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pIGVvbCkKKyAgICAgICAgICAgICAgICAg
ICAgICg+PSAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSBib2wpKQorICAgICAgICAgICAgaXRlbSkp
CisgICAgICAgIDs7IFdoZW4gYmFjay10by1pbmRlbnRhdGlvbiBsYW5kcyBvbiBibG9jayBxdW90
ZSBtYXJrZXJzLAorICAgICAgICA7OyBza2lwIHBhc3QgdGhlbSBhbmQgdHJ5IGZyb20gdGhlIGNv
bnRlbnQgcG9zaXRpb24uCisgICAgICAgIChsZXQgKChjb250ZW50LXBvcyAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICI+IFx0IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAgICAgICAgICh3aGVuICg+
IGNvbnRlbnQtcG9zIHBvcykKKyAgICAgICAgICAgICh3aGVuLWxldCogKChjbm9kZSAodHJlZXNp
dC1ub2RlLWF0IGNvbnRlbnQtcG9zICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAobGV0ICgo
aXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNu
b2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0ZW0i
KSkpKSkKKyAgICAgICAgICAgICAgICAod2hlbiAoYW5kIGl0ZW0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICg8PSAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pIGVvbCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICg+PSAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSBib2wpKQorICAgICAg
ICAgICAgICAgICAgaXRlbSkpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1tYXJr
ZXItd2lkdGggKGl0ZW0pCisgICJSZXR1cm4gdGhlIHdpZHRoIG9mIElURU0ncyBsaXN0IG1hcmtl
ciBpbmNsdWRpbmcgdHJhaWxpbmcgc3BhY2UuIgorICAobGV0ICgobWFya2VyICh0cmVlc2l0LW5v
ZGUtY2hpbGQgaXRlbSAwKSkpCisgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKSAodHJl
ZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0
ZW0tcmVnaW9uIChpdGVtKQorICAiUmV0dXJuIHRoZSAoQkVHIC4gRU5EKSByZWdpb24gZm9yIElU
RU0sIGNsYW1wZWQgdG8gZnVsbCBsaW5lcy4KK0JFRyBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBv
ZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBpdGVtLgorRU5EIGlzIGNsYW1wZWQgc28gaXQgZG9l
cyBub3QgZXh0ZW5kIGludG8gdGhlIG5leHQgbGluZSdzCitpbmRlbnRhdGlvbiwgd2hpY2ggdHJl
ZS1zaXR0ZXIgbWF5IGluY2x1ZGUgaW4gdGhlIG5vZGUuIgorICAobGV0ICgoYmVnIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0
ZW0pKQorICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAgICAg
IChlbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0
LW5vZGUtZW5kIGl0ZW0pKQorICAgICAgICAgICAgICAgKGlmIChib2xwKSAocG9pbnQpIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpKSkpCisgICAgKGNvbnMgYmVnIGVuZCkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWxpc3Qtb3JkZXJlZC1pdGVtLXAgKGl0ZW0pCisgICJSZXR1cm4gbm9uLW5p
bCBpZiBJVEVNIGlzIGFuIG9yZGVyZWQgKG51bWJlcmVkKSBsaXN0IGl0ZW0uIgorICAobGV0ICgo
bWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisgICAgKGVxdWFsICh0cmVlc2l0
LW5vZGUtdHlwZSBtYXJrZXIpICJsaXN0X21hcmtlcl9kb3QiKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSAoZGVtb3RlKQorICAiQ2hhbmdlIG5lc3Rpbmcg
b2YgdGhlIGxpc3QgaXRlbSBhdCBwb2ludC4KK0lmIERFTU9URSBpcyBub24tbmlsLCBkZW1vdGUg
KGluZGVudCk7IG90aGVyd2lzZSBwcm9tb3RlIChkZWRlbnQpLgorT3JkZXJlZCAobnVtYmVyZWQp
IGxpc3QgaXRlbXMgYXJlIHNraXBwZWQgYmVjYXVzZSB0aGUgZ3JhbW1hciBkb2VzCitub3Qgc3Vw
cG9ydCBuZXN0aW5nIHRoZW0gYnkgaW5kZW50YXRpb24uIgorICAod2hlbi1sZXQqICgoaXRlbSAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChyZWdpb24g
KG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tcmVnaW9uIGl0ZW0pKQorICAgICAgICAgICAgICAoYmVn
IChjYXIgcmVnaW9uKSkKKyAgICAgICAgICAgICAgKGVuZCAoY2RyIHJlZ2lvbikpKQorICAgICh3
aGVuIChtYXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCBpdGVtKQorICAgICAgKHVzZXIt
ZXJyb3IgIk9yZGVyZWQgbGlzdCBpdGVtcyBjYW5ub3QgYmUgbmVzdGVkIChncmFtbWFyIGxpbWl0
YXRpb24pIikpCisgICAgKGlmIGRlbW90ZQorICAgICAgICA7OyBEZW1vdGU6IGluZGVudCBieSBt
YXJrZXIgd2lkdGgsIG9ubHkgaWYgdGhlcmUgaXMgYSBwcmV2aW91cworICAgICAgICA7OyBzaWJs
aW5nIHRvIG5lc3QgdW5kZXIgKGxpa2Ugb3JnLW1vZGUpLgorICAgICAgICAod2hlbiAodHJlZXNp
dC1ub2RlLXByZXYtc2libGluZyBpdGVtKQorICAgICAgICAgIChpbmRlbnQtcmlnaWRseSBiZWcg
ZW5kIChtYXJrZG93bi10cy0tbGlzdC1tYXJrZXItd2lkdGggaXRlbSkpKQorICAgICAgOzsgUHJv
bW90ZTogZGVkZW50IHRvIGdyYW5kcGFyZW50IGxldmVsLgorICAgICAgKGxldCogKChwYXJlbnQt
bGlzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBpdGVtKSkKKyAgICAgICAgICAgICAoZ3JhbmRwYXJl
bnQgKGFuZCBwYXJlbnQtbGlzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBwYXJlbnQtbGlzdCkpKQor
ICAgICAgICAgICAgIChpdGVtLWNvbCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAoZ290by1jaGFyIGJlZykgKGN1cnJlbnQtaW5kZW50YXRpb24pKSkpCisgICAgICAg
ICh3aGVuIChhbmQgZ3JhbmRwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVz
aXQtbm9kZS10eXBlIGdyYW5kcGFyZW50KSAibGlzdF9pdGVtIikKKyAgICAgICAgICAgICAgICAg
ICAoPiBpdGVtLWNvbCAwKSkKKyAgICAgICAgICAobGV0ICgoZ3AtY29sIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3Rh
cnQgZ3JhbmRwYXJlbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1pbmRl
bnRhdGlvbikpKSkKKyAgICAgICAgICAgIChpbmRlbnQtcmlnaWRseSBiZWcgZW5kICgtIGdwLWNv
bCBpdGVtLWNvbCkpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCAo
bm9kZSkKKyAgIlJldHVybiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgTk9E
RSdzIHN0YXJ0LiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGdvdG8tY2hhciAodHJlZXNpdC1u
b2RlLXN0YXJ0IG5vZGUpKQorICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWxpc3QtbW92ZSAodXApCisgICJNb3ZlIHRoZSBsaXN0IGl0ZW0gYXQg
cG9pbnQuCitJZiBVUCBpcyBub24tbmlsLCBtb3ZlIHBhc3QgdGhlIHByZXZpb3VzIHNpYmxpbmc7
IG90aGVyd2lzZSBtb3ZlIGRvd24uIgorICAod2hlbi1sZXQqICgoaXRlbSAobWFya2Rvd24tdHMt
LWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChzaWJsaW5nIChpZiB1cAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2LXNpYmxpbmcgaXRlbSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBpdGVt
KSkpKQorICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgc2libGluZykgImxpc3Rf
aXRlbSIpCisgICAgICAobGV0KiAoKGZpcnN0IChpZiB1cCBzaWJsaW5nIGl0ZW0pKQorICAgICAg
ICAgICAgIChzZWNvbmQgKGlmIHVwIGl0ZW0gc2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0
LXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBmaXJzdCkpCisgICAgICAgICAgICAg
KHNlY29uZC1zdGFydCAobWFya2Rvd24tdHMtLWxpc3Qtbm9kZS1ib2wgc2Vjb25kKSkKKyAgICAg
ICAgICAgICAoc2Vjb25kLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAg
ICAgIDs7IEV4dHJhY3Qgc2VwYXJhdG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRl
c3BhY2UuCisgICAgICAgICAgICAgKGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1z
dGFydCBzZWNvbmQtc3RhcnQpKQorICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJp
bS1yaWdodCBmaXJzdC1yYXcpKQorICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBm
aXJzdC1yYXcgKGxlbmd0aCBmaXJzdC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcg
KGJ1ZmZlci1zdWJzdHJpbmcgc2Vjb25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAg
IChzZWNvbmQtdGV4dCAoc3RyaW5nLXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAg
ICAgKHRyYWlsaW5nIChzdWJzdHJpbmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkp
CisgICAgICAgICAgICAgKGNvbCAoY3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgIChsaW5l
LW9mZnNldCAoLSAobGluZS1udW1iZXItYXQtcG9zIChwb2ludCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsaW5lLW51bWJlci1hdC1wb3MKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpKSkpCisgICAgICAgIChkZWxldGUtcmVn
aW9uIGZpcnN0LXN0YXJ0IHNlY29uZC1lbmQpCisgICAgICAgIChnb3RvLWNoYXIgZmlyc3Qtc3Rh
cnQpCisgICAgICAgIChpbnNlcnQgc2Vjb25kLXRleHQgc2VwYXJhdG9yIGZpcnN0LXRleHQgdHJh
aWxpbmcpCisgICAgICAgIChnb3RvLWNoYXIgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAg
IGZpcnN0LXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAoKyBmaXJzdC1zdGFydCAobGVuZ3Ro
IHNlY29uZC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBzZXBhcmF0b3Ip
KSkpCisgICAgICAgIChmb3J3YXJkLWxpbmUgbGluZS1vZmZzZXQpCisgICAgICAgIChtb3ZlLXRv
LWNvbHVtbiBjb2wpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtcmVudW1iZXItbGlzdCAoJm9w
dGlvbmFsIHN0YXJ0KQorICAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2ludC4KK051
bWJlcnMgYXJlIGFzc2lnbmVkIHNlcXVlbnRpYWxseSBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBp
dGVtJ3MKK251bWJlci4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQgU1RBUlQsIHN0YXJ0IG51bWJl
cmluZyBmcm9tIHRoYXQKK3ZhbHVlIGluc3RlYWQuICBEb2VzIG5vdGhpbmcgZm9yIHVub3JkZXJl
ZCBsaXN0cy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChpdGVtIChtYXJr
ZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKGxpc3Qtbm9kZSAo
dHJlZXNpdC1ub2RlLXBhcmVudCBpdGVtKSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5v
ZGUtdHlwZSBsaXN0LW5vZGUpICJsaXN0IikKKyAgICAgIChsZXQqICgoY2hpbGRyZW4gKHRyZWVz
aXQtbm9kZS1jaGlsZHJlbiBsaXN0LW5vZGUpKQorICAgICAgICAgICAgIChpdGVtcyAoc2VxLWZp
bHRlciAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVh
bCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbikpCisgICAgICAgICAgICAgKGZpcnN0LW1hcmtlciAodHJl
ZXNpdC1ub2RlLWNoaWxkIChjYXIgaXRlbXMpIDApKQorICAgICAgICAgICAgIChtYXJrZXItdHlw
ZSAodHJlZXNpdC1ub2RlLXR5cGUgZmlyc3QtbWFya2VyKSkpCisgICAgICAgICh3aGVuIChtZW1i
ZXIgbWFya2VyLXR5cGUgJygibGlzdF9tYXJrZXJfZG90IiAibGlzdF9tYXJrZXJfcGFyZW50aGVz
aXMiKSkKKyAgICAgICAgICAobGV0KiAoKGJhc2UgKGlmIHN0YXJ0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocHJlZml4LW51bWVyaWMtdmFsdWUgc3RhcnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKHN0cmluZy10by1udW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbm9kZS10ZXh0IGZpcnN0LW1hcmtlciB0KSkpKQorICAgICAgICAgICAgICAgICAoY291
bnQgKGxlbmd0aCBpdGVtcykpCisgICAgICAgICAgICAgICAgIDs7IFN0YXJ0IGZyb20gdGhlIGxh
c3QgbnVtYmVyIGFuZCB3b3JrIGJhY2t3YXJkcyBzbworICAgICAgICAgICAgICAgICA7OyB0aGF0
IGVhcmxpZXIgYnVmZmVyIHBvc2l0aW9ucyByZW1haW4gdmFsaWQuCisgICAgICAgICAgICAgICAg
IChudW0gKCsgYmFzZSBjb3VudCAtMSkpKQorICAgICAgICAgICAgKGRvbGlzdCAoaXQgKHJldmVy
c2UgaXRlbXMpKQorICAgICAgICAgICAgICAobGV0KiAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNo
aWxkIGl0IDApKQorICAgICAgICAgICAgICAgICAgICAgKG1hcmtlci1lbmQgKHRyZWVzaXQtbm9k
ZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgICAgICAgICAgIChib2wgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0
YXJ0IG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5n
LXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgICAgICAgICA7OyBGdWxsIHRleHQgZnJvbSBib2wg
dG8gZW5kIG9mIG1hcmtlciBpbmNsdWRlcworICAgICAgICAgICAgICAgICAgICAgOzsgYW55IGxl
YWRpbmcgd2hpdGVzcGFjZSwgdGhlIG51bWJlciwgYW5kIHRoZQorICAgICAgICAgICAgICAgICAg
ICAgOzsgc2VwYXJhdG9yIChlLmcuLCAiLiAiIG9yICIuXHQiKS4KKyAgICAgICAgICAgICAgICAg
ICAgIChmdWxsLXRleHQgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9sIG1hcmtlci1lbmQpKQorICAgICAgICAgICAgICAg
ICAgICAgKGluZGVudC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1tYXRj
aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFxcKFtbOmJsYW5rOl1dKlxcKVswLTld
IiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSBm
dWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiIikpCisgICAgICAgICAgICAgICAg
ICAgICAoc3VmZml4LXN0cgorICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgW1s6Ymxhbms6XV0qWzAtOV0rXFwoLipc
XClcXCciIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmlu
ZyAxIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICIuICIpKQorICAgICAgICAg
ICAgICAgICAgICAgKG5ldy10ZXh0IChjb25jYXQgaW5kZW50LXN0cgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKG51bWJlci10by1zdHJpbmcgbnVtKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4LXN0cikpKQorICAgICAgICAgICAg
ICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYm9s
IG1hcmtlci1lbmQpCisgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGJvbCkKKyAgICAgICAg
ICAgICAgICAgIChpbnNlcnQgbmV3LXRleHQpKSkKKyAgICAgICAgICAgICAgKGNsLWRlY2YgbnVt
KSkKKyAgICAgICAgICAgIChtZXNzYWdlICJSZW51bWJlcmVkICVkIGl0ZW1zIiBjb3VudCkpKSkp
KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciAoaXRlbSkKKyAg
IlJldHVybiB0aGUgbWFya2VyIHN0cmluZyBmb3IgYSBuZXcgaXRlbSBmb2xsb3dpbmcgSVRFTS4K
K0ZvciB1bm9yZGVyZWQgaXRlbXMsIHJldXNlIHRoZSBzYW1lIG1hcmtlciBjaGFyYWN0ZXIuCitG
b3Igb3JkZXJlZCBpdGVtcywgaW5jcmVtZW50IHRoZSBudW1iZXIuIgorICAobGV0KiAoKG1hcmtl
ciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpCisgICAgICAgICAodHlwZSAodHJlZXNpdC1u
b2RlLXR5cGUgbWFya2VyKSkKKyAgICAgICAgIChpbmRlbnQgKHNhdmUtZXhjdXJzaW9uCisgICAg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKQorICAg
ICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0aW9uKSkpCisgICAgICAgICAocHJlZml4
IChtYWtlLXN0cmluZyBpbmRlbnQgP1xzKSkpCisgICAgKHBjYXNlIHR5cGUKKyAgICAgICgibGlz
dF9tYXJrZXJfbWludXMiIChjb25jYXQgcHJlZml4ICItICIpKQorICAgICAgKCJsaXN0X21hcmtl
cl9wbHVzIiAgKGNvbmNhdCBwcmVmaXggIisgIikpCisgICAgICAoImxpc3RfbWFya2VyX3N0YXIi
ICAoY29uY2F0IHByZWZpeCAiKiAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJfZG90IgorICAgICAg
IChsZXQgKChudW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0
KSkpKQorICAgICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1zdHJpbmcgKDErIG51bSkp
ICIuICIpKSkKKyAgICAgICgibGlzdF9tYXJrZXJfcGFyZW50aGVzaXMiCisgICAgICAgKGxldCAo
KG51bSAoc3RyaW5nLXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQpKSkpCisg
ICAgICAgICAoY29uY2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAoMSsgbnVtKSkgIikgIikp
KQorICAgICAgKF8gKGNvbmNhdCBwcmVmaXggIi0gIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tbmV3LW1hcmtlci1mb3ItbGluZSAoaXRlbSkKKyAgIlJldHVybiB0aGUgbWFya2VyIHN0cmlu
ZyBmb3IgYSBuZXcgaXRlbSBmb2xsb3dpbmcgSVRFTS4KK1doZW4gdGhlIGN1cnJlbnQgbGluZSBo
YXMgYSBsaXN0IG1hcmtlciBwYXR0ZXJuIGF0IGEgZGlmZmVyZW50CitpbmRlbnRhdGlvbiB0aGFu
IElURU0gKGUuZy4sIGEgbmVzdGVkIG1hcmtlciB0aGF0IHRoZSBncmFtbWFyIGRpZAorbm90IHJl
Y29nbml6ZSBhcyBhIGxpc3RfaXRlbSksIHVzZSB0aGUgY3VycmVudCBsaW5lJ3MgbWFya2VyLgor
T3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtl
cicuIgorICAobGV0ICgobWFya2VyLW5vZGUgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkK
KyAgICAoaWYgKD0gKGxpbmUtbnVtYmVyLWF0LXBvcykKKyAgICAgICAgICAgIChsaW5lLW51bWJl
ci1hdC1wb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXItbm9kZSkpKQorICAgICAgICA7OyBJ
dGVtJ3MgbWFya2VyIGlzIG9uIHRoZSBjdXJyZW50IGxpbmU6IHVzZSBpdCBub3JtYWxseS4KKyAg
ICAgICAgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBpdGVtKQorICAgICAgOzsg
SXRlbSdzIG1hcmtlciBpcyBvbiBhIGRpZmZlcmVudCBsaW5lLiAgVGhlIHBhcnNlciBtYXkgaGF2
ZQorICAgICAgOzsgZmFpbGVkIHRvIHJlY29nbml6ZSBhIG5lc3RlZCBtYXJrZXIgKGUuZy4sIGEg
bG9uZSBgICAtICcKKyAgICAgIDs7IHBhcnNlZCBhcyBhIHNldGV4dCBoZWFkaW5nKS4gIFJlYWQg
dGhlIGN1cnJlbnQgbGluZS4KKyAgICAgIChsZXQgKChsaW5lIChidWZmZXItc3Vic3RyaW5nLW5v
LXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24p
IChsaW5lLWVuZC1wb3NpdGlvbikpKSkKKyAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gKKyAgICAg
ICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpXFwoWy0qK10gXFx8XFwoWzAtOV0rXFwpXFwo
Wy4pXSBcXClcXCkiCisgICAgICAgICAgICAgbGluZSkKKyAgICAgICAgICAgIChsZXQgKChpbmRl
bnQgKG1hdGNoLXN0cmluZyAxIGxpbmUpKQorICAgICAgICAgICAgICAgICAgKG51bSAobWF0Y2gt
c3RyaW5nIDMgbGluZSkpCisgICAgICAgICAgICAgICAgICAoc3VmZml4IChtYXRjaC1zdHJpbmcg
NCBsaW5lKSkKKyAgICAgICAgICAgICAgICAgICh1bm9yZGVyZWQgKG1hdGNoLXN0cmluZyAyIGxp
bmUpKSkKKyAgICAgICAgICAgICAgKGlmIG51bQorICAgICAgICAgICAgICAgICAgKGNvbmNhdCBp
bmRlbnQgKG51bWJlci10by1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoMSsgKHN0cmluZy10by1udW1iZXIgbnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1ZmZpeCkKKyAgICAgICAgICAgICAgICAoY29uY2F0IGluZGVudCB1bm9yZGVyZWQpKSkKKyAg
ICAgICAgICA7OyBObyBtYXJrZXIgcGF0dGVybiBvbiBjdXJyZW50IGxpbmU6IHVzZSBpdGVtJ3Mg
bWFya2VyLgorICAgICAgICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIgaXRl
bSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUtZGVwdGggKCZv
cHRpb25hbCBwb3MpCisgICJDb3VudCB0aGUgbnVtYmVyIG9mIGA+JyBibG9jayBxdW90ZSBtYXJr
ZXJzIG9uIHRoZSBsaW5lIGF0IFBPUy4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgICh3aGVuIHBv
cyAoZ290by1jaGFyIHBvcykpCisgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgIChsZXQgKChj
b3VudCAwKSkKKyAgICAgICh3aGlsZSAoYW5kIChub3QgKGVvbHApKQorICAgICAgICAgICAgICAg
ICAgKG1lbXEgKGNoYXItYWZ0ZXIpICcoPz4gP1xzID9cdCkpKQorICAgICAgICAod2hlbiAoZXEg
KGNoYXItYWZ0ZXIpID8+KQorICAgICAgICAgIChzZXRxIGNvdW50ICgxKyBjb3VudCkpKQorICAg
ICAgICAoZm9yd2FyZC1jaGFyIDEpKQorICAgICAgY291bnQpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLW5ld2xpbmUgKCkKKyAgIkluc2VydCBhIG5ld2xpbmUsIGNvbnRpbnVpbmcgdGhlIGN1cnJl
bnQgY29udGV4dC4KK0luc2lkZSBhIGxpc3QgaXRlbSwgdGhlIG5ldyBsaW5lIGlzIGluZGVudGVk
IHRvIHRoZSBpdGVtJ3MgdGV4dAorY29sdW1uIHNvIHRoZSBwYXJhZ3JhcGggY29udGludWVzLiAg
QSBzZWNvbmQgUkVUIG9uIGEgYmxhbmsKK2NvbnRpbnVhdGlvbiBsaW5lIHJlbW92ZXMgdGhlIGlu
ZGVudGF0aW9uLCBkcm9wcGluZyBwb2ludCB0bworY29sdW1uIDAgc28gdGhlIHRyZWUtc2l0dGVy
IGdyYW1tYXIgZW5kcyB0aGUgbGlzdC4KK0luc2lkZSBhIGJsb2NrIHF1b3RlLCB0aGUgbmV3IGxp
bmUgaW5jbHVkZXMgdGhlIHF1b3RlIHByZWZpeC4KK090aGVyd2lzZSwgaW5zZXJ0IGEgcGxhaW4g
bmV3bGluZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChub2RlICh0cmVlc2l0LW5vZGUt
YXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24p
IChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkKKyAgICAgICAgIDs7IFRyZWUt
c2l0dGVyIG1heSByZXBvcnQgYSBub2RlIGluc2lkZSBhIGJsb2NrX3F1b3RlIGV2ZW4KKyAgICAg
ICAgIDs7IHdoZW4gcG9pbnQgaXMgb24gYSBibGFuayBsaW5lIHBhc3QgdGhlIHF1b3RlICh0aGUg
bm9kZQorICAgICAgICAgOzsgc3BhbiBjYW4gZXh0ZW5kIGJleW9uZCB0aGUgYD4nIGxpbmVzKS4g
IE9ubHkgdHJlYXQgdGhlCisgICAgICAgICA7OyBsaW5lIGFzIGluc2lkZSBhIGJsb2NrIHF1b3Rl
IGlmIGl0IGFjdHVhbGx5IHN0YXJ0cyB3aXRoCisgICAgICAgICA7OyBhIGA+JyBtYXJrZXIuCisg
ICAgICAgICAoaW4tYnEgKGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwgbm9kZSAiXFxgYmxvY2tf
cXVvdGVcXCciKQorICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgKGxvb2tpbmctYXQtcCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAoaXRlbSAobWFya2Rvd24t
dHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAgIChpdGVtCisgICAgICAo
bGV0KiAoKGNvbCAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS10ZXh0LWNvbHVtbiBpdGVtKSkKKyAg
ICAgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxIChtYXJrZG93bi10cy0tYmxvY2stcXVv
dGUtcHJlZml4KSkpCisgICAgICAgICAgICAgOzsgYGNvbCcgaXMgdGhlIGFic29sdXRlIGNvbHVt
biBvZiB0aGUgaXRlbSdzIHRleHQsCisgICAgICAgICAgICAgOzsgd2hpY2ggaW5zaWRlIGEgYmxv
Y2sgcXVvdGUgaW5jbHVkZXMgdGhlICI+ICIgcHJlZml4CisgICAgICAgICAgICAgOzsgd2lkdGgu
ICBTaW5jZSB3ZSBpbnNlcnQgYGJxLXByZWZpeCcgc2VwYXJhdGVseSwgd2UKKyAgICAgICAgICAg
ICA7OyBtdXN0IHN1YnRyYWN0IGl0cyBsZW5ndGggdG8gYXZvaWQgZG91YmxpbmcgaXQuCisgICAg
ICAgICAgICAgKGluZGVudCAoLSBjb2wgKGxlbmd0aCAob3IgYnEtcHJlZml4ICIiKSkpKQorICAg
ICAgICAgICAgIDs7IFRoZSBjdXJyZW50IGxpbmUgaXMgImJsYW5rIiBpZiBpdCBjb250YWlucyBv
bmx5CisgICAgICAgICAgICAgOzsgd2hpdGVzcGFjZSAob3IgcXVvdGUgcHJlZml4ICsgd2hpdGVz
cGFjZSkgYW5kIG5vCisgICAgICAgICAgICAgOzsgYWN0dWFsIHRleHQgZnJvbSBhIHByZXZpb3Vz
IFJFVCdzIGNvbnRpbnVhdGlvbiBpbmRlbnQuCisgICAgICAgICAgICAgKGJsYW5rLWxpbmUtcCAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1v
Zi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1hdC1wCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiXls+IFx0XSokIikpKQorICAgICAgICAgICAgIDs7
IFBvaW50IGlzIGJlZm9yZSB0aGUgaXRlbSdzIHRleHQgKGF0IG9yIGJlZm9yZSB0aGUKKyAgICAg
ICAgICAgICA7OyBtYXJrZXIpLiAgQSBwbGFpbiBuZXdsaW5lIGlzIGFwcHJvcHJpYXRlIGhlcmUs
IGFkZGluZworICAgICAgICAgICAgIDs7IGNvbnRpbnVhdGlvbiBpbmRlbnQgd291bGQgc2hpZnQg
dGhlIGV4aXN0aW5nIGNvbnRlbnQKKyAgICAgICAgICAgICA7OyB0byB0aGUgcmlnaHQuCisgICAg
ICAgICAgICAgKGJlZm9yZS10ZXh0LXAgKDw9IChjdXJyZW50LWNvbHVtbikgY29sKSkpCisgICAg
ICAgIChjb25kCisgICAgICAgICAoYmxhbmstbGluZS1wCisgICAgICAgICAgOzsgVGhlIHVzZXIg
cHJlc3NlZCBSRVQgb24gYW4gYWxyZWFkeS1ibGFuayBjb250aW51YXRpb24KKyAgICAgICAgICA7
OyBsaW5lLiAgSW5zdGVhZCBvZiBhZGRpbmcgeWV0IGFub3RoZXIgaW5kZW50ZWQgYmxhbmsKKyAg
ICAgICAgICA7OyBsaW5lLCByZW1vdmUgdGhlIGluZGVudGF0aW9uIGFuZCBpbnNlcnQgYSBwbGFp
bgorICAgICAgICAgIDs7IG5ld2xpbmUuICBUaGlzIGRyb3BzIHBvaW50IHRvIGNvbHVtbiAwLCB3
aGljaCBpcyB0aGUKKyAgICAgICAgICA7OyBvbmx5IHdheSB0aGUgdHJlZS1zaXR0ZXIgbWFya2Rv
d24gZ3JhbW1hciBlbmRzIGEgbGlzdDoKKyAgICAgICAgICA7OyBibGFuayBsaW5lcyBhbG9uZSBk
byBOT1QgZW5kIGEgbGlzdCwgb25seQorICAgICAgICAgIDs7IG5vbi1pbmRlbnRlZCBjb250ZW50
IGRvZXMuICBTbyB0aGlzIGdpdmVzIHRoZSB1c2VyIGEKKyAgICAgICAgICA7OyBuYXR1cmFsICJS
RVQgUkVUIHRvIGV4aXQgdGhlIGxpc3QiIHdvcmtmbG93LgorICAgICAgICAgIChkZWxldGUtcmVn
aW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9uKSkKKyAgICAg
ICAgICAobmV3bGluZSkpCisgICAgICAgICAoYmVmb3JlLXRleHQtcAorICAgICAgICAgIDs7IFBv
aW50IGlzIG9uIG9yIGJlZm9yZSB0aGUgbGlzdCBtYXJrZXI7IGp1c3QgaW5zZXJ0IGEKKyAgICAg
ICAgICA7OyBwbGFpbiBuZXdsaW5lIHNvIHRoZSBpdGVtIGlzIHB1c2hlZCBkb3duIHVuY2hhbmdl
ZC4KKyAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAodAorICAgICAgICAgIChkZWxldGUt
aG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAgICAgICAgICAod2hlbiBi
cS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAgICAgIChpbnNlcnQgKG1ha2Utc3Ry
aW5nIGluZGVudCA/XHMpKSkpKSkKKyAgICAgKGluLWJxCisgICAgICAobGV0ICgoYnEtcHJlZml4
IChtYXJrZG93bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkKKyAgICAgICAgICAgIDs7IEEgbGlu
ZSB3aXRoIG9ubHkgcXVvdGUgbWFya2VycyBhbmQgd2hpdGVzcGFjZSAoZS5nLiwKKyAgICAgICAg
ICAgIDs7ICI+ICIpIGlzICJibGFuayIgaW5zaWRlIHRoZSBxdW90ZS4gIFJFVCBoZXJlIGV4aXRz
IHRoZQorICAgICAgICAgICAgOzsgcXVvdGUsIHNhbWUgYXMgUkVUIG9uIGEgYmxhbmsgY29udGlu
dWF0aW9uIGxpbmUgZXhpdHMgYQorICAgICAgICAgICAgOzsgbGlzdDogcmVtb3ZlIHRoZSBwcmVm
aXggYW5kIGRyb3AgdG8gY29sdW1uIDAuCisgICAgICAgICAgICAoYmxhbmstbGluZS1wIChzYXZl
LWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGlu
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1hdC1wICJeWz4gXHRdKiQi
KSkpKQorICAgICAgICAoaWYgYmxhbmstbGluZS1wCisgICAgICAgICAgICAocHJvZ24KKyAgICAg
ICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAobGluZS1l
bmQtcG9zaXRpb24pKQorICAgICAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAgKGRlbGV0
ZS1ob3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgIChpbnNl
cnQgYnEtcHJlZml4KSkpKQorICAgICA7OyBEZWZhdWx0OiBwbGFpbiBuZXdsaW5lLiAgVGhpcyBh
bHNvIGhhbmRsZXMgZW1wdHkgbGlzdCBtYXJrZXJzCisgICAgIDs7IChlLmcuLCAiLSAiIHdpdGgg
bm8gdGV4dCkgdGhhdCB0aGUgZ3JhbW1hciBwYXJzZXMgYXMgRVJST1IKKyAgICAgOzsgbm9kZXMg
cmF0aGVyIHRoYW4gbGlzdF9pdGVtIG5vZGVzLgorICAgICA7OworICAgICA7OyBXaGVuIHRoZSBj
dXJyZW50IGxpbmUgaXMgYmxhbmsgKHdoaXRlc3BhY2Ugb25seSksIGl0IGlzIGEKKyAgICAgOzsg
Y29udGludWF0aW9uLWluZGVudCBsaW5lIGxlZnQgYnkgYSBwcmV2aW91cyBSRVQgdGhhdAorICAg
ICA7OyB0cmVlLXNpdHRlciBubyBsb25nZXIgY29uc2lkZXJzIHBhcnQgb2YgYSBsaXN0X2l0ZW0u
ICBDbGVhcgorICAgICA7OyB0aGUgd2hpdGVzcGFjZSBzbyBubyB0cmFpbGluZyBzcGFjZXMgcmVt
YWluLCBhbmQgaW5zZXJ0IGEKKyAgICAgOzsgcGxhaW4gbmV3bGluZSBhdCBjb2x1bW4gMCB0byBl
eGl0IHRoZSBsaXN0IGNvbnRleHQuCisgICAgICh0CisgICAgICAod2hlbiAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAobG9v
a2luZy1hdC1wICJeWyBcdF0rJCIpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiAobGluZS1iZWdp
bm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgKG5ld2xpbmUpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSAoKQorICAiSW5zZXJ0IGEg
bmV3IGxpc3QgaXRlbSwgc3BsaXR0aW5nIHRleHQgYXQgcG9pbnQuCitUZXh0IGFmdGVyIHBvaW50
IG1vdmVzIHRvIHRoZSBuZXcgaXRlbS4gIEF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lLAorYW4g
ZW1wdHkgaXRlbSBpcyBpbnNlcnRlZCBhYm92ZSBhbmQgdGhlIGN1cnJlbnQgY29udGVudCBpcyBw
dXNoZWQgZG93bi4KK0luc2lkZSBhIGJsb2NrIHF1b3RlLCB0aGUgbmV3IGxpbmUgaW5jbHVkZXMg
dGhlIHF1b3RlIHByZWZpeC4KK0ZvciBvcmRlcmVkIGxpc3RzLCB0aGUgbnVtYmVyIGlzIGluY3Jl
bWVudGVkLgorV2hlbiBub3QgaW5zaWRlIGEgbGlzdCwgZmFsbCBiYWNrIHRvIGBtYXJrZG93bi10
cy1uZXdsaW5lJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChub2RlICh0cmVlc2l0LW5v
ZGUtYXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRp
b24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkKKyAgICAgICAgIChpbi1i
cSAoYW5kICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9ja19xdW90ZVxcJyIpCisg
ICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1h
dC1wICJbIFx0XSo+IikpKSkKKyAgICAgICAgIChicS1wcmVmaXggKHdoZW4gaW4tYnEgKG1hcmtk
b3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKSkKKyAgICAgICAgIChpdGVtIChtYXJrZG93bi10
cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkpCisgICAgKGNvbmQKKyAgICAgKChhbmQgaXRlbQorICAg
ICAgICAgICAob3IgKG5vdCBpbi1icSkKKyAgICAgICAgICAgICAgICg+PSAobWFya2Rvd24tdHMt
LWxpbmUtYmxvY2stcXVvdGUtZGVwdGgpCisgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRz
LS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoCisgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkpKSkKKyAgICAgIChsZXQqICgo
bmV3LW1hcmtlciAobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxpbmUgaXRlbSkpCisgICAg
ICAgICAgICAgKGF0LWJvbCAoPD0gKGN1cnJlbnQtY29sdW1uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2st
dG8taW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1jb2x1
bW4pKSkpCisgICAgICAgICAgICAgKHRhaWwgKHdoZW4gKGFuZCAobm90IGF0LWJvbCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGxvb2tpbmctYXQtcCAiWyBcdF0qJCIpKSkK
KyAgICAgICAgICAgICAgICAgICAgIChkZWxldGUtYW5kLWV4dHJhY3QtcmVnaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgKHBvaW50KSAobGluZS1lbmQtcG9zaXRpb24pKSkpKQorICAgICAgICAo
aWYgYXQtYm9sCisgICAgICAgICAgICA7OyBBdCBCT0w6IGluc2VydCBlbXB0eSBpdGVtIGFib3Zl
LCBwdXNoIGN1cnJlbnQgbGluZSBkb3duLgorICAgICAgICAgICAgKHByb2duCisgICAgICAgICAg
ICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKHdoZW4gYnEtcHJlZml4IChp
bnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAgICAgKGluc2VydCBuZXctbWFya2VyICJcbiIp
CisgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0aW9uKSkKKyAgICAgICAgICA7OyBNaWQt
bGluZSBvciBFT0w6IG5ldyBpdGVtIGJlbG93IHdpdGggdGFpbCB0ZXh0LgorICAgICAgICAgIChk
ZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAgICAgICAgICAo
d2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAgICAgIChpbnNlcnQgbmV3
LW1hcmtlcikKKyAgICAgICAgICAod2hlbiB0YWlsIChzYXZlLWV4Y3Vyc2lvbiAoaW5zZXJ0IChz
dHJpbmctdHJpbS1sZWZ0IHRhaWwpKSkpKSkpCisKKyAgICAgOzsgTm90IGluIGEgbGlzdDogZmFs
bCBiYWNrIHRvIG5ld2xpbmUgYmVoYXZpb3IuCisgICAgICh0IChtYXJrZG93bi10cy1uZXdsaW5l
KSkpKSkKKworOzs7IEZpbGxpbmc6CisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tZmlsbC11bmZp
bGxhYmxlLWJsb2NrLXF1ZXJ5CisgICcoWyhmZW5jZWRfY29kZV9ibG9jaykgKGluZGVudGVkX2Nv
ZGVfYmxvY2spIChwaXBlX3RhYmxlKV0gQGJsb2NrKQorICAiVHJlZS1zaXR0ZXIgcXVlcnkgbWF0
Y2hpbmcgYmxvY2tzIHdoZXJlIGZpbGxpbmcgaXMgaW5oaWJpdGVkLiIpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIChpdGVtKQorICAiUmV0dXJuIHRoZSBjb2x1
bW4gd2hlcmUgdGhlIHRleHQgb2YgbGlzdCBJVEVNIHN0YXJ0cy4KK1RoaXMgaXMgdGhlIGNvbHVt
biBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoIG5vZGUgaW5zaWRlIElURU0sIG9yCit0aGUgd2lkdGgg
b2YgdGhlIGxpc3QgbWFya2VyIGlmIG5vIHBhcmFncmFwaCBpcyBmb3VuZC4iCisgIChsZXQgKChw
YXJhZ3JhcGggKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxgcGFyYWdyYXBoXFwnIikp
KQorICAgIChpZiBwYXJhZ3JhcGgKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAg
KGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHBhcmFncmFwaCkpCisgICAgICAgICAgKGN1
cnJlbnQtY29sdW1uKSkKKyAgICAgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBp
dGVtIDApKSkKKyAgICAgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKQorICAgICAgICAg
ICAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZpbGwtbGlzdC1pdGVtIChpdGVtIGp1c3RpZnkpCisgICJGaWxsIHRoZSBjb250ZW50cyBvZiBs
aXN0IElURU0sIHByZXNlcnZpbmcgaXRzIGluZGVudGF0aW9uLgorTmFycm93cyB0byBJVEVNJ3Mg
b3duIHBhcmFncmFwaCBjb250ZW50IChleGNsdWRpbmcgbmVzdGVkIGxpc3RzKQorYW5kIHNldHMg
YGZpbGwtcHJlZml4JyB0byBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0aCB0aGUgc3RhcnQK
K29mIHRoZSBpdGVtJ3MgdGV4dC4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4i
CisgIChsZXQqICgoZmlsbC1wcmVmaXggKG1ha2Utc3RyaW5nIChtYXJrZG93bi10cy0tbGlzdC1p
dGVtLXRleHQtY29sdW1uIGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID9ccykpCisgICAgICAgICA7OyBGaW5kIHRoZSBpdGVtJ3Mgb3duIHBhcmFncmFwaCAoZmlyc3Qg
cGFyYWdyYXBoIGNoaWxkKS4KKyAgICAgICAgIDs7IElmIHRoZSBpdGVtIGhhcyBuZXN0ZWQgbGlz
dHMsIG5hcnJvdyB0byBqdXN0IHRoZQorICAgICAgICAgOzsgcGFyYWdyYXBoIHNvIHdlIGRvbid0
IG1lcmdlIG5lc3RlZCBpdGVtcy4KKyAgICAgICAgIChwYXJhICh0cmVlc2l0LXNlYXJjaC1zdWJ0
cmVlIGl0ZW0gIlxcYHBhcmFncmFwaFxcJyIgbmlsIG5pbCAxKSkKKyAgICAgICAgIChiZWcgKHRy
ZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAgICAgIChlbmQgKGlmIHBhcmEKKyAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHBhcmEpCisgICAgICAgICAgICAgICAgKHRyZWVz
aXQtbm9kZS1lbmQgaXRlbSkpKQorICAgICAgICAgOzsgVXNlIGRlZmF1bHQgcGFyYWdyYXBoIG1v
dGlvbiBpbnNpZGUgdGhlIG5hcnJvd2VkIHJlZ2lvbgorICAgICAgICAgOzsgc28gdGhhdCB0aGUg
aW5uZXIgYGZpbGwtcGFyYWdyYXBoJyBkb2VzIG5vdCByZS1lbnRlciBvdXIKKyAgICAgICAgIDs7
IGN1c3RvbSBwYXJhZ3JhcGgtZmluZGluZyBsb2dpYy4KKyAgICAgICAgIChmaWxsLWZvcndhcmQt
cGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgpKQorICAgIChzYXZlLXJlc3Ry
aWN0aW9uCisgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAgICAgKGZpbGwtcGFy
YWdyYXBoIGp1c3RpZnkpKQorICAgIDs7IFJldHVybiBub24tbmlsIHRvIHNpZ25hbCB0aGF0IGZp
bGxpbmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICA7OyBhcyBwZXIgdGhlIGNvbnRyYWN0IG9mIGBm
aWxsLXBhcmFncmFwaC1mdW5jdGlvbicuCisgICAgdCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
YWRhcHRpdmUtZmlsbCAoKQorICAiUmV0dXJuIHRoZSBmaWxsIHByZWZpeCBmb3IgdGhlIGN1cnJl
bnQgbGluZSBpbiBNYXJrZG93bi4KK1doZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCByZXR1cm4gc3Bh
Y2VzIG1hdGNoaW5nIHRoZSBjb2x1bW4gd2hlcmUKK3RoZSBpdGVtJ3MgdGV4dCBzdGFydHMuIgor
ICAoYW5kLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAgICAgICAgICAgICAg
KHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9pbnQpKQorICAgICAgICAg
ICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVu
dC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAgKG1ha2Utc3RyaW5nIChtYXJr
ZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pID9ccykpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGggKGFyZykKKyAgIk1vdmUgZm9yd2FyZCBi
eSBBUkcgcGFyYWdyYXBocywgcmVzcGVjdGluZyBNYXJrZG93biBzdHJ1Y3R1cmUuCitMaXN0IGl0
ZW1zIGFyZSB0cmVhdGVkIGFzIGluZGl2aWR1YWwgcGFyYWdyYXBocy4gIEJsb2NrcyBtYXRjaGVk
CitieSBgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeScgYXJlIHNraXBw
ZWQ6IGJvdGgKK2ZvcndhcmQgYW5kIGJhY2t3YXJkIG1vdGlvbiBtb3ZlIHRvIHRoZSBlbmQgb2Yg
dGhlIGJsb2NrLCBzbworYGZpbGwtcmVnaW9uJyBzZWVzIGEgemVyby1sZW5ndGggcmVnaW9uIGFu
ZCBsZWF2ZXMgdGhlIGJsb2NrCit1bmZpbGxlZC4iCisgIChsZXQgKChkaXJlY3Rpb24gKGlmICg+
IGFyZyAwKSAxIC0xKSkKKyAgICAgICAgKGNvdW50IChhYnMgYXJnKSkKKyAgICAgICAgKG1vdmVk
IDApKQorICAgIChkb3RpbWVzIChfIGNvdW50KQorICAgICAgOzsgRm9yIGJhY2t3YXJkIG1vdGlv
biwgc2tpcCBiYWNrIG92ZXIgd2hpdGVzcGFjZSB0byBmaW5kCisgICAgICA7OyB0aGUgaXRlbSB3
ZSBhcmUgbGVhdmluZywgbm90IHRoZSBuZXh0IG9uZS4KKyAgICAgIChsZXQqICgocG9zIChpZiAo
PCBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHRcbiIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAobWF4IChwb2ludC1taW4pICgxLSAocG9pbnQpKSkpCisgICAg
ICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChibG9jayAoY2FyICh0cmVl
c2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtYnVm
ZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtk
b3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9zICgxKyBwb3MpKSkpCisgICAgICAgICAgICAgKGluZGVudGVkLXBvcyAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBwb3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0aW9uKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAgICAgICAgICAobm9kZSAodHJl
ZXNpdC1ub2RlLWF0IGluZGVudGVkLXBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChpdGVt
ICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAgICAg
IDs7IFdoZW4gbW92aW5nIGZvcndhcmQgZnJvbSB3aGl0ZXNwYWNlIGJldHdlZW4gbGlzdCBpdGVt
cywKKyAgICAgICAgOzsgc2tpcCB0byB0aGUgbmV4dCBub24tYmxhbmsgcG9zaXRpb24gYW5kIGNo
ZWNrIGFnYWluLgorICAgICAgICAod2hlbiAoYW5kIChub3QgaXRlbSkgKG5vdCBibG9jaykgKD4g
ZGlyZWN0aW9uIDApKQorICAgICAgICAgIChsZXQgKChuZXh0LXBvcyAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHRcbiIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAgICAgICAgICAgKHNl
dHEgbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJrZG93bikpCisgICAgICAgICAg
ICAoc2V0cSBpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCci
KSkpKQorICAgICAgICAoY29uZAorICAgICAgICAgOzsgSW5zaWRlIGFuIHVuZmlsbGFibGUgYmxv
Y2s6IHNraXAgb3ZlciBpdCBlbnRpcmVseS4KKyAgICAgICAgIChibG9jaworICAgICAgICAgIChn
b3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgKGNkciBibG9jaykpKQorICAgICAgICAgIChzZXRx
IG1vdmVkICgxKyBtb3ZlZCkpKQorICAgICAgICAgOzsgSW5zaWRlIGEgbGlzdCBpdGVtOiB0cmVh
dCBhcyBwYXJhZ3JhcGggYm91bmRhcnkuCisgICAgICAgICAoaXRlbQorICAgICAgICAgIChpZiAo
PiBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVu
ZCBpdGVtKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVt
KSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkpCisgICAgICAgICA7OyBEZWZh
dWx0OiB1c2Ugc3RhbmRhcmQgcGFyYWdyYXBoIG1vdGlvbi4KKyAgICAgICAgICh0CisgICAgICAg
ICAgKGZvcndhcmQtcGFyYWdyYXBoIGRpcmVjdGlvbikKKyAgICAgICAgICAoc2V0cSBtb3ZlZCAo
MSsgbW92ZWQpKSkpKSkKKyAgICA7OyBSZXR1cm4gdGhlIG51bWJlciBvZiBwYXJhZ3JhcGhzIGxl
ZnQgdG8gbW92ZSAoMCA9IGFsbCBkb25lKS4KKyAgICAoLSBjb3VudCBtb3ZlZCkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVzdGlmeSkKKyAgIkZp
bGwgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCByZXNwZWN0aW5nIE1hcmtkb3duIGJsb2NrIHN0cnVj
dHVyZS4KK1RoaXMgZnVuY3Rpb24gcHJldmVudHMgZmlsbGluZyBpbnNpZGUgYmxvY2tzIG1hdGNo
ZWQgYnkKK2BtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5JywgYW5kIGZp
bGxzIHdpdGhpbiBsaXN0CitpdGVtcyB3aXRob3V0IG1lcmdpbmcgYWRqYWNlbnQgaXRlbXMuICBK
VVNUSUZZIGlzIGFzIGluCitgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGNvbmQqCisgICA7OyBEb24n
dCBmaWxsIGluc2lkZSB1bmZpbGxhYmxlIGJsb2Nrcy4gIFVzZSBhIHF1ZXJ5IGFnYWluc3QgdGhl
CisgICA7OyByb290IG5vZGUgYmVjYXVzZSBgdHJlZXNpdC1ub2RlLWF0JyBtYXkgbm90IHJldHVy
biBhIG5vZGUKKyAgIDs7IGluc2lkZSB0aGUgYmxvY2sgd2hlbiBwb2ludCBpcyBvbiBhbm9ueW1v
dXMgKHVubmFtZWQpIHRleHQuCisgICAoKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAodHJl
ZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgbWFya2Rvd24tdHMtLWZpbGwt
dW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAocG9pbnQpIChtaW4gKDErIChwb2ludCkpIChw
b2ludC1tYXgpKSkKKyAgICB0KQorICAgOzsgRmlsbCB3aXRoaW4gdGhlIGVuY2xvc2luZyBsaXN0
IGl0ZW0uICBVc2UKKyAgIDs7IGBtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50JyB3aGlj
aCBoYW5kbGVzIGJsb2NrIHF1b3RlCisgICA7OyBtYXJrZXJzLiAgV2hlbiB0aGUgbGlzdCBpdGVt
IGlzIGluc2lkZSBhIGJsb2NrIHF1b3RlLCBkZWxlZ2F0ZQorICAgOzsgdG8gdGhlIGJsb2NrIHF1
b3RlIGZpbGxlciB3aGljaCBoYW5kbGVzIGA+ICcgcHJlZml4ZXMgY29ycmVjdGx5LgorICAgKChi
aW5kLWFuZCogKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpKSkKKyAgICAo
aWYgKHRyZWVzaXQtcGFyZW50LXVudGlsIGl0ZW0gIlxcYGJsb2NrX3F1b3RlXFwnIikKKyAgICAg
ICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkpCisgICAgICAobWFya2Rv
d24tdHMtLWZpbGwtbGlzdC1pdGVtIGl0ZW0ganVzdGlmeSkpKQorICAgOzsgUG9pbnQgaXMgb24g
YSBibGFuayBsaW5lIGJlZm9yZSBhIGxpc3QuICBJZiB0aGUgbmV4dAorICAgOzsgbm9uLXdoaXRl
c3BhY2UgcG9zaXRpb24gZmFsbHMgaW5zaWRlIGEgbGlzdCBpdGVtLCBmaWxsIHRoYXQgaXRlbS4K
KyAgICgoc2F2ZS1leGN1cnNpb24KKyAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgIChs
b29raW5nLWF0LXAgIlsgXHRdKiQiKSkKKyAgICAoYW5kLWxldCogKChuZXh0LXBvcyAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQg
IiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAg
ICAgICAgKG5leHQtbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJrZG93bikpCisg
ICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAg
ICAgICAgICBuZXh0LW5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAgIChtYXJrZG93bi10
cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBGaWxsIHdpdGhpbiBhIGJs
b2NrIHF1b3RlLiAgTmFycm93IHRvIHRoZSBwYXJhZ3JhcGggbm9kZSBhdAorICAgOzsgcG9pbnQn
cyBuZXN0aW5nIGxldmVsIHNvIGxpbmVzIHdpdGggZGlmZmVyZW50IGA+ICcgZGVwdGhzCisgICA7
OyBhcmUgbm90IG1lcmdlZC4KKyAgICgodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgKHRyZWVz
aXQtbm9kZS1hdAorICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAo
cG9pbnQpKQorICAgICAgJ21hcmtkb3duKQorICAgICAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAg
IChtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSBqdXN0aWZ5KSkKKyAgIDs7IEZpbGwgd2l0
aGluIGFuIEhUTUwgY29tbWVudC4gIFRoZSBub2RlIHR5cGUgaXMgImh0bWxfYmxvY2siCisgICA7
OyBpbiBncmFtbWFyIHYwLjQueCBhbmQgImNvbW1lbnQiIGluIHNvbWUgb3RoZXIgdmVyc2lvbnMu
CisgICAoKGJpbmQtYW5kKiAoYmxvY2sgKGxldCAoKG4gKHRyZWVzaXQtbm9kZS1hdCAocG9pbnQp
ICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG9yICh0cmVlc2l0LXBhcmVu
dC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICJcXGBcXCg/Omh0bWxfYmxv
Y2tcXHxjb21tZW50XFwpXFwnIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kICht
ZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcoImh0bWxfYmxvY2siICJjb21tZW50IikpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuKSkpKSkKKyAgICAobWFya2Rvd24tdHMtLWZpbGwtaHRtbC1jb21t
ZW50IGJsb2NrIGp1c3RpZnkpKQorICAgOzsgRGVmYXVsdDogbGV0IGZpbGwtcGFyYWdyYXBoIGhh
bmRsZSBpdC4KKyAgICh0IG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtaHRtbC1j
b21tZW50IChub2RlIGp1c3RpZnkpCisgICJGaWxsIEhUTUwgY29tbWVudCBOT0RFLCBhbGlnbmlu
ZyBjb250aW51YXRpb24gbGluZXMuCitSZXR1cm4gdCBpZiBOT0RFIGlzIGEgY29tbWVudCBhbmQg
d2FzIGZpbGxlZCwgbmlsIG90aGVyd2lzZS4KK0pVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdy
YXBoJy4iCisgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAobG9va2luZy1hdC1wICI8IS0tIikp
CisgICAgKGxldCAoKGZpbGwtcHJlZml4IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKCsgKGN1cnJlbnQtY29sdW1uKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoICI8IS0tICIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XHMpKSkKKyAgICAgICAgICAoYWRh
cHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgKGZpbGwtZm9yd2FyZC1wYXJhZ3Jh
cGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAoZmlsbC1wYXJhZ3Jh
cGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgIChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAgIChuYXJy
b3ctdG8tcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgIChmaWxsLXBhcmFncmFw
aCBqdXN0aWZ5KSkKKyAgICAgIHQpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1ibG9jay1xdW90
ZS1wcmVmaXggKCkKKyAgIlJldHVybiB0aGUgYmxvY2sgcXVvdGUgcHJlZml4IHN0cmluZyBmcm9t
IHRoZSBjdXJyZW50IGxpbmUuCitSZWFkIHRoZSBhY3R1YWwgYD4nIG1hcmtlcnMgKHdpdGggd2hh
dGV2ZXIgc3BhY2luZyB0aGUgdXNlciB3cm90ZSkKK2Zyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUg
bGluZSBzbyB0aGF0IGZpbGwgcHJlc2VydmVzIHRoZSBleGlzdGluZworc3R5bGUgKGUuZy4sIGA+
Pj4gJyBzdGF5cyBgPj4+ICcsIGA+ID4gPiAnIHN0YXlzIGA+ID4gPiAnKS4iCisgIChzYXZlLWV4
Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoaWYgKGxvb2tpbmctYXQgIlxc
KFs+IFx0XSo+XFwpWyBcdF0qIikKKyAgICAgICAgKGNvbmNhdCAobWF0Y2gtc3RyaW5nIDApKQor
ICAgICAgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUgKGp1
c3RpZnkpCisgICJGaWxsIHRoZSBwYXJhZ3JhcGggYXQgcG9pbnQgaW5zaWRlIGEgYmxvY2sgcXVv
dGUuCitGaW5kIHRoZSBwYXJhZ3JhcGggbm9kZSBhdCBwb2ludCB3aXRoaW4gdGhlIGJsb2NrIHF1
b3RlIGFuZCBmaWxsCitvbmx5IHRoYXQgcGFyYWdyYXBoLCBwcmVzZXJ2aW5nIHRoZSBgPiAnIHBy
ZWZpeC4gIFdoZW4gdGhlCitwYXJhZ3JhcGggaXMgaW5zaWRlIGEgbGlzdCBpdGVtLCBhbGlnbiBj
b250aW51YXRpb24gbGluZXMgd2l0aAordGhlIGl0ZW0ncyB0ZXh0IGNvbHVtbi4gIEpVU1RJRlkg
aXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgIDs7IFNraXAgcGFzdCBgPiAnIG1hcmtlcnMg
YW5kIGFueSBsaXN0IG1hcmtlciB0byBsYW5kIGluc2lkZSB0aGUKKyAgOzsgY29udGVudCwgd2hl
cmUgdGhlIHBhcmFncmFwaCBub2RlIGxpdmVzLgorICAobGV0KiAoKGNvbnRlbnQtcG9zIChzYXZl
LWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiPiBcdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBJZiB3ZSBsYW5kIG9uIGEgbGlzdCBtYXJrZXIsIHNraXAg
cGFzdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChsb29raW5nLWF0ICJbLSor
XSBcXHxbMC05XStbLildXHMiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
IChtYXRjaC1lbmQgMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiAoMSsgKHBvaW50
KSkgKHBvaW50LW1heCkpKSkKKyAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgY29udGVu
dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgIChwYXJhICh0cmVlc2l0LXBhcmVudC11bnRpbAor
ICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAg
KGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAicGFyYWdyYXBoIikpKSkpCisgICAgKHdoZW4g
cGFyYQorICAgICAgOzsgVGhlIGdyYW1tYXIgbWF5IGluY2x1ZGUgdHJhaWxpbmcgYmxvY2tfY29u
dGludWF0aW9uIG5vZGVzCisgICAgICA7OyAoYmxhbmsgYD4gPicgbGluZXMpIGFzIGNoaWxkcmVu
IG9mIHRoZSBwYXJhZ3JhcGguICBVc2UgdGhlCisgICAgICA7OyBlbmQgb2YgdGhlIGxhc3QgaW5s
aW5lIGNoaWxkIHNvIGZpbGwgZG9lcyBub3QgbWVyZ2UgYWNyb3NzCisgICAgICA7OyB3aGF0IHNo
b3VsZCBiZSBhIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgIChsZXQqICgobGFzdC1pbmxpbmUK
KyAgICAgICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKGNoaWxkKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAiaW5saW5lIikpCisg
ICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIHBh
cmEpKSkpCisgICAgICAgICAgICAgKHBhcmEtZW5kIChpZiBsYXN0LWlubGluZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFzdC1pbmxpbmUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkpKQorICAgICAgICAgICAg
IChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKQorICAgICAgICAg
ICAgIDs7IFdoZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCBleHRlbmQgdGhlIHByZWZpeCB3aXRoIHNw
YWNlcworICAgICAgICAgICAgIDs7IHNvIGNvbnRpbnVhdGlvbiBsaW5lcyBhbGlnbiB3aXRoIHRo
ZSBpdGVtJ3MgdGV4dC4KKyAgICAgICAgICAgICAobGlzdC1pdGVtICh0cmVlc2l0LXBhcmVudC11
bnRpbCBwYXJhICJcXGBsaXN0X2l0ZW1cXCciKSkKKyAgICAgICAgICAgICAocHJlZml4IChpZiBs
aXN0LWl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0KiAoKHRleHQtY29sIChtYXJr
ZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGlzdC1pdGVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGV4dHJhIChtYXggMCAoLSB0ZXh0LWNvbCAobGVuZ3RoIGJxLXByZWZpeCkpKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGJxLXByZWZpeCAobWFrZS1zdHJpbmcg
ZXh0cmEgP1xzKSkpCisgICAgICAgICAgICAgICAgICAgICAgIGJxLXByZWZpeCkpCisgICAgICAg
ICAgICAgKGFkYXB0aXZlLWZpbGwtZnVuY3Rpb24gbmlsKQorICAgICAgICAgICAgIChmaWxsLWZv
cndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgpCisgICAgICAgICAg
ICAgKGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIG5pbCkpCisgICAgICAgIChzYXZlLXJlc3RyaWN0
aW9uCisgICAgICAgICAgOzsgTmFycm93IHRvIHRoZSBmdWxsIGxpbmVzIG9mIHRoZSBwYXJhZ3Jh
cGggc28gdGhhdCB0aGUKKyAgICAgICAgICA7OyBgPiAnIG1hcmtlcnMgYXJlIGluY2x1ZGVkIGlu
IHRoZSBmaWxsIHJlZ2lvbi4KKyAgICAgICAgICAobmFycm93LXRvLXJlZ2lvbgorICAgICAgICAg
ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUt
c3RhcnQgcGFyYSkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAg
ICAgIChwb2ludCkpCisgICAgICAgICAgIHBhcmEtZW5kKQorICAgICAgICAgIChsZXQgKChmaWxs
LXByZWZpeCBwcmVmaXgpKQorICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKSkp
KSkKKyAgdCkKKworOzs7IENvZGUgYmxvY2tzOgorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWxhbmd1YWdlcyBuaWwKKyAgIkFsaXN0IG1hcHBpbmcgbGFuZ3VhZ2Ugbm9k
ZSBuYW1lcyB0byB0cyBsYW5ndWFnZS4KK0lmIGEgbGFuZ3VhZ2UgaXMgbm90IGEgdHMgbGFuZ3Vh
Z2Ugb3IgaXMgbm90IG1hcHBlZCB0byBvbmUsIGl0IHdpbGwgYmUKK2luIGBtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1ub24tdHMtbW9kZXMnLiIpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMt
LWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzIG5pbAorICAiQWxpc3QgbWFwcGluZyBsYW5ndWFnZXMg
dG8gbm9uLXRyZWUtc2l0dGVyIG1vZGVzIGZvciBjb2RlIGJsb2Nrcy4KK1BvcHVsYXRlZCBieSBg
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHRvIGlkZW50aWZ5IGEKK2NvZGUt
YmxvY2sgbGFuZ3VhZ2UgbW9kZSB3aGljaCBpcyBub3QgYSB0cmVlLXNpdHRlciBtb2RlIG9yIGZv
ciB3aGljaAordGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgaXMgdW5hdmFpbGFibGUuIikKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25maWd1cmF0aW9uIChtb2Rl
KQorICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWd1cmF0aW9uIGZyb20gTU9ERS4KK1JldHVy
biBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1ZXM6CiAKICAgICA6Zm9u
dC1sb2NrIChmcm9tIGB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncycpCiAgICAgOnNpbXBsZS1p
bmRlbnQgKGZyb20gYHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcycpCiAgICAgOnJhbmdlIChm
cm9tIGB0cmVlc2l0LXJhbmdlLXNldHRpbmdzJykiCiAgICh3aXRoLXRlbXAtYnVmZmVyCi0gICAg
KGZ1bmNhbGwgbW9kZSkKLSAgICAobGlzdCA6Zm9udC1sb2NrIHRyZWVzaXQtZm9udC1sb2NrLXNl
dHRpbmdzCisgICAgKGRlbGF5LW1vZGUtaG9va3MgKGZ1bmNhbGwgbW9kZSkpCisgICAgKGxpc3Qg
Omxhbmd1YWdlICh0cmVlc2l0LWxhbmd1YWdlLWF0IChwb2ludC1taW4pKQorICAgICAgICAgIDpm
b250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKICAgICAgICAgICA6c2ltcGxlLWlu
ZGVudCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKICAgICAgICAgICA6cmFuZ2UgdHJlZXNp
dC1yYW5nZS1zZXR0aW5ncykpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9y
LW1vZGUgKGxhbmd1YWdlIG1vZGUpCi0gICJBZGQgY29uZmlndXJhdGlvbnMgZm9yIExBTkdVQUdF
IGZyb20gTU9ERSB0byBjdXJyZW50IGJ1ZmZlci4KLQotQ29uZmlndXJhdGlvbiBpbmNsdWRlcyBm
b250LWxvY2sgYW5kIGluZGVudC4gIEZvciBmb250LWxvY2sgcnVsZXMsIHVzZQotdGhlIHNhbWUg
ZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIKLSAgKGxldCAoKGNvbmZpZ3MgKG1hcmtkb3duLXRz
LS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyBtb2RlKSkpCi0gICAgKGlnbm9yZSBsYW5ndWFnZSkg
OyBXZSBtaWdodCBtYWtlIHVzZSBvZiB0aGlzIGxhdGVyLgotICAgIChzZXRxIHRyZWVzaXQtZm9u
dC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0
aW5ncwotICAgICAgICAgICAgICAgICAgOzsgR2V0IGFsbCB0aGUgZm9udC1sb2NrIHNldHRpbmdz
LCBpbmNsdWRpbmcgb25lcyB0aGF0Ci0gICAgICAgICAgICAgICAgICA7OyBkb24ndCBwZXJ0YWlu
IHRvIExBTkdVQUdFLiAgVGhpcyB3YXkgd2UgZ2V0IGpzZG9jCi0gICAgICAgICAgICAgICAgICA7
OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFtcGxlLgotICAgICAgICAgICAgICAgICAgKHBsaXN0
LWdldCBjb25maWdzIDpmb250LWxvY2spKSkKLSAgICAoc2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRl
bnQtcnVsZXMKLSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcwot
ICAgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQgYWxsIGluZGVudCBydWxlcy4KLSAg
ICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlncyA6c2ltcGxlLWluZGVudCkpKQorKGRl
ZnVuIG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVudC1idWZmZXIgKGNvbmZpZ3VyYXRpb24p
CisgICJBZGQgQ09ORklHVVJBVElPTiB0byB0aGUgY3VycmVudCBidWZmZXIuCitDT05GSUdVUkFU
SU9OIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50IHJ1bGVzLiAgRm9yIGZvbnQtbG9jayBy
dWxlcywKK3VzZSB0aGUgc2FtZSBmZWF0dXJlcyBlbmFibGVkIGluIE1PREUuIgorICAoc2V0cSB0
cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1s
b2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgOzsgR2V0IGFsbCB0aGUgZm9udC1sb2NrIHNl
dHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0CisgICAgICAgICAgICAgICAgOzsgZG9uJ3QgcGVy
dGFpbiB0byBNT0RFLiAgVGhpcyB3YXksIHdlIGdldCBqc2RvYworICAgICAgICAgICAgICAgIDs7
IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCisgICAgICAgICAgICAgICAgKHBsaXN0LWdl
dCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKSkKKyAgKHNldHEgdHJlZXNpdC1zaW1wbGUtaW5k
ZW50LXJ1bGVzCisgICAgICAgIChhcHBlbmQgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisg
ICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQgYWxsIGluZGVudCBydWxlcy4KKyAgICAg
ICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOnNpbXBsZS1pbmRlbnQpKSkKICAg
ICAoc2V0cSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0
LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAgICAgICAgICA7OyBGaWx0ZXIgb3V0IGZ1bmN0aW9u
IHF1ZXJpZXMsIGJlY2F1c2UgdGhleSBhcmUKQEAgLTMwMiw0NSArMjQyNSw0ODEgQEAgbWFya2Rv
d24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUKICAgICAgICAgICAgICAgICAgIDs7IENhc2UgaW4g
cG9pbnQ6IGMtdHMtbW9kZSdzIHJhbmdlIHNldHRpbmcuCiAgICAgICAgICAgICAgICAgICAoc2Vx
LWZpbHRlciAobGFtYmRhIChzZXR0aW5nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobm90IChmdW5jdGlvbnAgKGNhciBzZXR0aW5nKSkpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpyYW5nZSkpKSkKLSAgICAoc2V0cS1sb2NhbCBp
bmRlbnQtbGluZS1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50KQotICAgIChzZXRxLWxvY2FsIGlu
ZGVudC1yZWdpb24tZnVuY3Rpb24gIyd0cmVlc2l0LWluZGVudC1yZWdpb24pKSkKLQotKGRlZnVu
IG1hcmtkb3duLXRzLS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2UgKG5vZGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOnJhbmdlKSkp
KQorICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50KQor
ICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQtcmVn
aW9uKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYW5ndWFnZS1hdC1ub2RlIChub2RlKQorICAi
UmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgZm9yIGNvZGVfZmVuY2VfY29udGVudCBOT0RFLiIK
KyAgKHdoZW4tbGV0KiAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKKyAgICAg
ICAgICAgICAgKGxhbmctbm9kZSAod2hlbiBwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGFuZ3VhZ2VcXCciKSkpKQor
ICAgIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IGxhbmctbm9kZSB0KSkpKQorCisoZGVmdmFy
LWxvY2FsIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSAobWFrZS1oYXNoLXRhYmxl
IDp0ZXN0ICMnZXF1YWwpCisgICJDYWNoZSBmb3Igbm9uLXRyZWUtc2l0dGVyIGNvZGUgYmxvY2sg
Zm9udGlmaWNhdGlvbi4KK0tleXMgYXJlIChMQU5HIC4gQ09OVEVOVC1IQVNIKSBjb25zIGNlbGxz
LCB2YWx1ZXMgYXJlIGxpc3RzIG9mCitcKE9GRlNFVC1TVEFSVCBPRkZTRVQtRU5EIEZBQ0UpIHRy
aXBsZXMuIikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2Fj
aGUtdGljayBuaWwKKyAgIkZvciBibHVudCBgYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIGNh
Y2hlIGludmFsaWRhdGlvbi4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRz
LWNvZGUtYmxvY2sgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5
IGNvZGVfZmVuY2VfY29udGVudCBOT0RFIHVzaW5nIGEgbm9uLXRyZWUtc2l0dGVyIG1vZGUuCitB
cHBseSB0aGUgY29kZS1ibG9jayBtb2RlJ3MgY29udmVudGlvbmFsIGZvbnQtbG9jayBpbiBhIHRl
bXBvcmFyeQorYnVmZmVyLiAgT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhy
b3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4KKworQ2FjaGUgcmVzdWx0
cyB0byBhdm9pZCBmb250aWZpY2F0aW9uIG9mIHVuY2hhbmdlZCBjb2RlIGJsb2Nrcy4KKworTk9E
RSBzaG91bGQgYWxyZWFkeSBoYXZlIHBhc3NlZCB0aHJvdWdoCitgbWFya2Rvd24tdHMtLWNvZGUt
YmxvY2stdHMtbGFuZ3VhZ2UnIHdoaWNoIG1heSBoYXZlIGNsYXNzaWZpZWQgdGhpcworbm9kZSBh
cyBhIG5vbi10cyBtb2RlLiIKKyAgKHdoZW4tbGV0KiAoKF8gbWFya2Rvd24tdHMtZm9udGlmeS1j
b2RlLWJsb2Nrcy1uYXRpdmVseSkKKyAgICAgICAgICAgICAgKGxhbmcgKG1hcmtkb3duLXRzLS1s
YW5ndWFnZS1hdC1ub2RlIG5vZGUpKQorICAgICAgICAgICAgICAobW9kZSAoYWxpc3QtZ2V0IGxh
bmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAgICAgICAgICAg
KHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrKSkKKyAgICAgICAgICAgICAgKGJsb2Nr
LXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgIDs7IENhbm5v
dCB1c2UgbWFya2VycyAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyCisgICAgICAgICAgICAg
IDs7ICdtYXJrZG93bi10cy1jb2RlLWVuZC1tYXJrZXIgdGhleSBhcmUgc2V0IGFmdGVyIHRoaXMK
KyAgICAgICAgICAgICAgOzsgZnVuY3Rpb24gcnVucy4KKyAgICAgICAgICAgICAgKG5vZGUtc3Rh
cnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hh
ciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAobm9kZS1lbmQgKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVz
aXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJz
LWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisg
ICAgKHdoZW4gKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkKKyAgICAgICh1bmxlc3MgKGVxIHRpY2sg
bWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlLXRpY2spCisgICAgICAgIChjbHJoYXNo
IG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSkpCisgICAgICAobGV0KiAoKGNhY2hl
LWtleSAoY29ucyBsYW5nIChzZWN1cmUtaGFzaAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3NoYTI1NgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1
cnJlbnQtYnVmZmVyKSBub2RlLXN0YXJ0IG5vZGUtZW5kKSkpCisgICAgICAgICAgICAgKHByb3Bz
CisgICAgICAgICAgICAgIChvciAoZ2V0aGFzaCBjYWNoZS1rZXkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSkKKyAgICAgICAgICAg
ICAgICAgIChsZXQgKChyZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24t
dHMtLWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kZSBub2RlLXN0YXJ0IG5vZGUtZW5kKSkpCisgICAgICAgICAgICAgICAgICAgIChwdXRo
YXNoIGNhY2hlLWtleSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rv
d24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAgICAgICAoc2V0cSBt
YXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUtdGljayB0aWNrKQorICAgICAgICAgICAg
ICAgICAgICByZXN1bHQpKSkpCisgICAgICAgIChkb2xpc3QgKHJhbmdlIHByb3BzKQorICAgICAg
ICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAgICAobnRoIDAgcmFu
Z2UpCisgICAgICAgICAgIChudGggMSByYW5nZSkKKyAgICAgICAgICAgKG50aCAyIHJhbmdlKQor
ICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LW5vbi10cy1jb2xsZWN0LWZhY2VzIChtb2RlIGJlZyBlbmQpCisgICJSdW4gTU9E
RSBvbiB0aGUgQkVHLi5FTkQgcmVnaW9uJ3MgdGV4dCBhbmQgaGFydmVzdCBmYWNlIHByb3BlcnRp
ZXMuCitSZXR1cm4gYSBsaXN0IG9mIChCVUYtQkVHIEJVRi1FTkQgRkFDRSkgdHJpcGxlcyBpbiBi
YXNlLWJ1ZmZlcgorY29vcmRpbmF0ZXMuCisKK0ZvciBub24tdHJlZS1zaXR0ZXIgbW9kZXMgdXNl
IGFuIGluZGlyZWN0IGJ1ZmZlciBuYXJyb3dlZCB0byBCRUcuLkVORDoKK3JlZ2V4L3N5bnRhY3Rp
YyBmb250LWxvY2sgaG9ub3JzIG5hcnJvd2luZyBhbmQgdGhlIGluZGlyZWN0IGJ1ZmZlcgorc2hh
cmVzIHRleHQgd2l0aCB0aGUgYmFzZSwgc28gdGhpcyBpcyBsZXNzIGV4cGVuc2l2ZSBhbmQgY29w
eS1mcmVlLgorCitGb3IgdHMgbW9kZXMgaW4gYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stZm9yY2Ut
Y29udmVudGlvbmFsLW1vZGVzJywgZmFsbAorYmFjayB0byBhIHRlbXAgYnVmZmVyLiAgQSBwYXJz
ZXIgY3JlYXRlZCBpbiB0aGUgc291cmNlIGJ1ZmZlciBkb2VzIG5vdAorcmVhY3QgdG8gbmFycm93
aW5nIGluIGFuIGluZGlyZWN0IGJ1ZmZlciBkZXJpdmVkIGZyb20gaXQgKG9ubHkgcGFyc2Vycwor
Y3JlYXRlZCBpbiB0aGF0IGluZGlyZWN0IGJ1ZmZlciB3b3VsZCBob25vciBpdHMgbmFycm93aW5n
KSwgc28gcmV1c2luZwordGhlIGhvc3QgcGFyc2VyIHZpYSBhbiBpbmRpcmVjdCBidWZmZXIgaXMg
bm90IGFuIG9wdGlvbiBoZXJlLiAgQW5kIGluCit0aGUgaG9zdCBidWZmZXIgaXRzZWxmLCB0aGUg
aW5uZXIgY29udGVudCBvZiBhIGZlbmNlZCBjb2RlIGJsb2NrIGlzCitqdXN0IG9wYXF1ZSB0ZXh0
IGluc2lkZSBhIGBjb2RlX2ZlbmNlX2NvbnRlbnQnIG5vZGUsIG5ldmVyIHJlLXBhcnNlZAorYXMg
YSBmcmVzaCBkb2N1bWVudC4gIEEgdGVtcCBidWZmZXIgd2l0aCBhIGZyZXNoIHBhcnNlciBzZWVz
IHRoZSBpbm5lcgorY29udGVudCBhcyBhIHN0YW5kYWxvbmUgbWFya2Rvd24gZG9jdW1lbnQsIHdo
aWNoIGlzIHdoYXQgd2Ugd2FudC4iCisgIChjb25kICgobWVtcSBtb2RlIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzKQorICAgICAgICAgKGxldCAoKGNvbnRl
bnQgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkKKyAgICAgICAgICAg
ICAgIHJlcykKKyAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAoaW5z
ZXJ0IGNvbnRlbnQpCisgICAgICAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAgICAg
ICAgIChsZXQgKChtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZSB0KSkKKyAgICAgICAgICAgICAg
ICAgKG1hcmtkb3duLXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkK
KyAgICAgICAgICAgICAobGV0ICgocG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICh3
aGlsZSAoPCBwb3MgKHBvaW50LW1heCkpCisgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChu
ZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvcyAnZmFjZSBuaWwgKHBvaW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZmFj
ZSAoZ2V0LXRleHQtcHJvcGVydHkgcG9zICdmYWNlKSkpCisgICAgICAgICAgICAgICAgICAgKHdo
ZW4gZmFjZQorICAgICAgICAgICAgICAgICAgICAgOzsgVHJhbnNsYXRlIHRlbXAtYnVmZmVyIG9m
ZnNldHMgYmFjayB0byBiYXNlLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgOzsgcG9zaXRp
b25zOiB0ZW1wIGBwb2ludC1taW4nIGNvcnJlc3BvbmRzIHRvIEJFRy4KKyAgICAgICAgICAgICAg
ICAgICAgIChwdXNoIChsaXN0ICgrIGJlZyAoMS0gcG9zKSkgKCsgYmVnICgxLSBuZXh0KSkgZmFj
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcykpCisgICAgICAgICAgICAgICAgICAg
KHNldHEgcG9zIG5leHQpKSkpKQorICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAg
ICh0CisgICAgICAgICAobGV0ICgoaW5kaXJlY3QtYnVmZmVyIChtYWtlLWluZGlyZWN0LWJ1ZmZl
cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAo
YnVmZmVyLW5hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdpbmhp
Yml0LWJ1ZmZlci1ob29rcykpCisgICAgICAgICAgICAgICByZXMpCisgICAgICAgICAgICh1bndp
bmQtcHJvdGVjdAorICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJlY3Qt
YnVmZmVyCisgICAgICAgICAgICAgICAgIChkZWxheS1tb2RlLWhvb2tzIChmdW5jYWxsIG1vZGUp
KQorICAgICAgICAgICAgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAgICAgICAg
ICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBvcyAo
cG9pbnQtbWluKSkpCisgICAgICAgICAgICAgICAgICAgKHdoaWxlICg8IHBvcyAocG9pbnQtbWF4
KSkKKyAgICAgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9wZXJ0
eS1jaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgJ2ZhY2Ugbmls
IChwb2ludC1tYXgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWNlIChnZXQtdGV4
dC1wcm9wZXJ0eSBwb3MgJ2ZhY2UpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFj
ZQorICAgICAgICAgICAgICAgICAgICAgICAgIChwdXNoIChsaXN0IHBvcyBuZXh0IGZhY2UpIHJl
cykpCisgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHBvcyBuZXh0KSkpKSkKKyAgICAgICAg
ICAgICAoa2lsbC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyKSkKKyAgICAgICAgICAgKG5yZXZlcnNl
IHJlcykpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2Rl
IChsYW5nKQorICAiQ29tcHV0ZSBhbmQgY2FjaGUgYSBtb2RlIHN5bWJvbCBmcm9tIExBTkcsIGEg
c3ltYm9sLgorQ29uc3VsdCB0aGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFwJyBjYWNoZSwg
b3IgY29uc3VsdAorYHRyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdCcgYW5kIGBtYWpvci1t
b2RlLXJlbWFwLWFsaXN0Jywgb3IgYnJ1dGUKK2ZvcmNlIG1vZGUgcHJvYmUuICBSZXR1cm4gYSB2
YWxpZCBtb2RlIHN5bWJvbCBvciBuaWwuIgorICAoaWYtbGV0KiAoKG1hcHBlZC1tb2RlIChjYXIg
KGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMpKSkpCisgICAgICBt
YXBwZWQtbW9kZQorICAgIChsZXQqICgobGFuZy1zdHJpbmcgKHN5bWJvbC1uYW1lIGxhbmcpKQor
ICAgICAgICAgICAobGFuZy1tb2RlIChjb25jYXQgbGFuZy1zdHJpbmcgIi1tb2RlIikpCisgICAg
ICAgICAgIChtb2RlKSkKKyAgICAgIChpZiAoc2V0cSBtb2RlIChhbGlzdC1nZXQgbGFuZy1tb2Rl
IHRyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdCkpCisgICAgICAgICAgbW9kZQorICAgICAg
ICAoaWYgKHNldHEgbW9kZSAoYWxpc3QtZ2V0IGxhbmctbW9kZSBtYWpvci1tb2RlLXJlbWFwLWFs
aXN0KSkKKyAgICAgICAgICAgIG1vZGUKKyAgICAgICAgICAoY2F0Y2ggOm1vZGUKKyAgICAgICAg
ICAgIChkb2xpc3QgKG1vZGUKKyAgICAgICAgICAgICAgICAgICAgIChsaXN0CisgICAgICAgICAg
ICAgICAgICAgICAgOzsgVHJ5IGEgdHJlZXNpdCBtb2RlIHVzaW5nIHRoZSByYXcgc3RyaW5nLgor
ICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgbGFuZy1zdHJpbmcgIi10cy1tb2RlIikKKyAg
ICAgICAgICAgICAgICAgICAgICA7OyBUcnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2luZyB0aGUg
cmF3IHN0cmluZy4KKyAgICAgICAgICAgICAgICAgICAgICBsYW5nLW1vZGUKKyAgICAgICAgICAg
ICAgICAgICAgICA7OyBUcnkgYSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhlIGRvd25jYXNlZCBzdHJp
bmcuCisgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAoZG93bmNhc2UgbGFuZy1zdHJpbmcp
ICItdHMtbW9kZSIpCisgICAgICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFs
IG1vZGUgdXNpbmcgdGhlIGRvd25jYXNlZCBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAg
KGNvbmNhdCAoZG93bmNhc2UgbGFuZy1zdHJpbmcpICItbW9kZSIpKSkKKyAgICAgICAgICAgICAg
KHNldHEgbW9kZSAoaW50ZXJuIG1vZGUpKQorICAgICAgICAgICAgICAod2hlbiAoZmJvdW5kcCBt
b2RlKQorICAgICAgICAgICAgICAgIChwdXNoIChsaXN0IGxhbmcgbW9kZSkgbWFya2Rvd24tdHMt
Y29kZS1ibG9jay1tb2RlcykKKyAgICAgICAgICAgICAgICAodGhyb3cgOm1vZGUgbW9kZSkpKSkp
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UgKG5vZGUp
CiAgICJDb252ZXJ0IE5PREUgdG8gYSBsYW5ndWFnZSBmb3IgdGhlIGNvZGUgYmxvY2suIgotICAo
bGV0KiAoKGxhbmctc3RyaW5nIChhbGlzdC1nZXQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29kZS1ibG9jay1s
YW5ndWFnZS1tYXAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtdGV4dCBub2RlKSBuaWwgIydlcXVhbCkpCi0gICAgICAgICAobGFuZyAoaWYgKHN5bWJvbHAg
bGFuZy1zdHJpbmcpCi0gICAgICAgICAgICAgICAgICAgbGFuZy1zdHJpbmcKLSAgICAgICAgICAg
ICAgICAgKGludGVybiAoZG93bmNhc2UgbGFuZy1zdHJpbmcpKSkpKQotICAgIDs7IEZJWE1FOiBL
aW5kIG9mIGEgaGFjayBoZXJlOiB3ZSB1c2UgdGhpcyBmdW5jdGlvbiBhcyBhIGhvb2sgZm9yCi0g
ICAgOzsgbG9hZGluZyB1cCBjb25maWdzIGZvciB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb2RlIGJs
b2NrIG9uLWRlbWFuZC4KLSAgICAobGV0ICgobW9kZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24t
dHMtY29kZS1ibG9jay1zb3VyY2UtbW9kZS1tYXApKSkKLSAgICAgIDs7IElmIHRoZXJlJ3Mgbm8g
c3VwcG9ydGVkIG1vZGUgZm9yIHRoZSBsYW5ndWFnZSwgcmV0dXJuIG5pbCwKLSAgICAgIDs7IHdo
aWNoIG1ha2VzIEVtYWNzIHNraXAgdGhlIGNvZGUgYmxvY2suCi0gICAgICAoaWYgKG5vdCAoYW5k
IG1vZGUgKGZib3VuZHAgbW9kZSkpKQotICAgICAgICAgIG5pbAotICAgICAgICA7OyBJZiB0aGVy
ZSdzIGEgbWFqb3IgbW9kZSBmb3IgdGhlIGxhbmd1YWdlLCBzZXQgdXAgdGhlIGNvbmZpZwotICAg
ICAgICA7OyBhbmQgcmV0dXJuIHRoZSBsYW5ndWFnZS4KLSAgICAgICAgKHdoZW4gKG5vdCAobWVt
cSBsYW5nIG1hcmtkb3duLXRzLS1jb25maWd1cmVkLWxhbmd1YWdlcykpCi0gICAgICAgICAgKG1h
cmtkb3duLXRzLS1hZGQtY29uZmlnLWZvci1tb2RlIGxhbmcgbW9kZSkKLSAgICAgICAgICAocHVz
aCBsYW5nIG1hcmtkb3duLXRzLS1jb25maWd1cmVkLWxhbmd1YWdlcykpCi0gICAgICAgIGxhbmcp
KSkpCisgIChsZXQqICgobGFuZyAoaW50ZXJuICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKSkpCisg
ICAgICAgICAobW9kZSAobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbW9kZSBsYW5n
KSkKKyAgICAgICAgICh0cy1sYW5ndWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stbGFuZ3VhZ2VzKSkKKyAgICAgICAgIChub24tdHMtbGFuZ3VhZ2UgKGFsaXN0LWdl
dCBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykpKQorICAgIChjb25k
CisgICAgICgoZmJvdW5kcCBtb2RlKQorICAgICAgKGNvbmQKKyAgICAgICA7OyBSZXR1cm4ga25v
d24gdHJlZXNpdCBsYW5ndWFnZS4KKyAgICAgICAodHMtbGFuZ3VhZ2UgdHMtbGFuZ3VhZ2UpCisg
ICAgICAgOzsgUmV0dXJuIG5pbCBmb3Iga25vd24gbm9uLXRyZWVzaXQgbGFuZ3VhZ2UgZm9yIGZv
bnQtbG9jay4KKyAgICAgICAobm9uLXRzLWxhbmd1YWdlIG5pbCkKKyAgICAgICA7OyBNYXJrZG93
biBpdHNlbGYgbmVlZHMgdHdvIHBhcnNlcnMgKG1hcmtkb3duICsKKyAgICAgICA7OyBtYXJrZG93
bi1pbmxpbmUpLCBzbyB0cmVlc2l0IGVtYmVkZGluZyAod2hpY2ggY3JlYXRlcyBvbmx5CisgICAg
ICAgOzsgb25lKSBjYW5ub3QgZnVsbHkgZm9udGlmeSBpdC4gIFJvdXRlIHRocm91Z2ggdGhlIG5v
bi10cworICAgICAgIDs7IHBhdGggc28gdGhlIHRlbXAgYnVmZmVyIHJ1bnMgdGhlIGZ1bGwgbW9k
ZSB3aXRoIGJvdGgKKyAgICAgICA7OyBwYXJzZXJzLgorICAgICAgICgoZXEgbW9kZSAnbWFya2Rv
d24tdHMtbW9kZSkKKyAgICAgICAgKHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLW5vbi10cy1tb2RlcykKKyAgICAgICAgICAocHVzaCAoY29ucyBsYW5nIG1vZGUpIG1h
cmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykpCisgICAgICAgIG5pbCkKKyAgICAg
ICAodAorICAgICAgICAobGV0KiAoKGNvbmZpZ3VyYXRpb24gKG1hcmtkb3duLXRzLS1oYXJ2ZXN0
LW1vZGUtdHJlZXNpdC1jb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kZSkpCisgICAgICAgICAgICAgICAodHMtbGFuZ3VhZ2UgKHBsaXN0LWdldCBjb25maWd1
cmF0aW9uIDpsYW5ndWFnZSkpKQorICAgICAgICAgIChjb25kCisgICAgICAgICAgICgoYW5kIHRz
LWxhbmd1YWdlCisgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6Zm9u
dC1sb2NrKSkKKyAgICAgICAgICAgIChtYXJrZG93bi10cy0tY29uZmlndXJlLWN1cnJlbnQtYnVm
ZmVyIGNvbmZpZ3VyYXRpb24pCisgICAgICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFya2Rv
d24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzKQorICAgICAgICAgICAgICAocHVzaCAoY29ucyBs
YW5nIHRzLWxhbmd1YWdlKSBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpKQorICAg
ICAgICAgICAgdHMtbGFuZ3VhZ2UpCisgICAgICAgICAgIDs7IE90aGVyd2lzZSwgY2xhc3NpZnkg
bW9kZSBhcyBub24tdHJlZS1zaXR0ZXIuCisgICAgICAgICAgICh0CisgICAgICAgICAgICAodW5s
ZXNzIChhc3NxIGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKQorICAg
ICAgICAgICAgICAocHVzaCAoY29ucyBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2Nr
LW5vbi10cy1tb2RlcykpCisgICAgICAgICAgICBuaWwpKSkpKSkKKyAgICAgKHQgbmlsKSkpKQor
Cis7OzsgQ29kZSBibG9jayBtaW5vciBtb2RlIHN1cHBvcnQgYW5kIGNvZGUtYmxvY2sgY29udGV4
dCBjb21tYW5kczoKKworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzICco
aW5kZW50LWZvci10YWItY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZWxlY3RyaWMtbmV3bGluZS1hbmQtbWF5YmUtaW5kZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdsaW5lCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50LWR3aW0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQtbGluZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbWVudC1vci11bmNvbW1lbnQtcmVnaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay1maWxsLXBhcmFncmFwaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJvZy1maWxsLXJlaW5kZW50LWRlZnVuKQorICAiQ29tbWFuZHMgdG8gZXhlY3V0ZSBpbiBh
IGNvZGUtYmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNv
ZGUtYmxvY2snLiIpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21t
YW5kcyAnKHhyZWYtZmluZC1kZWZpbml0aW9ucykKKyAgIkNvbW1hbmRzIHRoYXQgbmVlZCBhIFwi
dGhpbmdcIiBhdCBwb2ludCBpbiBhIGNvZGUtYmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rvd24t
dHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMt
Y29kZS1ibG9jay1yZWdpb24tY29tbWFuZHMgJyhjb21tZW50LW9yLXVuY29tbWVudC1yZWdpb24p
CisgICJDb21tYW5kcyB0aGF0IG5lZWQgYSByZWdpb24gaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQu
CitTZWUgYG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZSAoKQorICAiRW5h
YmxlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZScgd2hlbiBpZiBhIGZlbmNl
ZCBjb2RlIGJsb2NrLiIKKyAgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29udGV4dC1tb2RlIChp
ZiAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9jay1wKSAxIC0xKSkpCisKKzs7IE5PVEU6IERvIG5v
dCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4K
KyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lICgmb3B0aW9uYWwgYXJnIGlu
dGVyYWN0aXZlKQorICAgIkluc2VydCBhIG5ld2xpbmUsIGFuZCBtb3ZlIHRvIGxlZnQgbWFyZ2lu
IG9mIHRoZSBuZXcgbGluZS4KK1dpdGggcHJlZml4IGFyZ3VtZW50IEFSRywgaW5zZXJ0IHRoYXQg
bWFueSBuZXdsaW5lcy4KKworSWYgYGVsZWN0cmljLWluZGVudC1tb2RlJyBpcyBlbmFibGVkLCB0
aGlzIGluZGVudHMgdGhlIGZpbmFsIG5ldyBsaW5lCit0aGF0IGl0IGFkZHMsIGFuZCByZWluZGVu
dHMgdGhlIHByZWNlZGluZyBsaW5lLiAgVG8ganVzdCBpbnNlcnQKK2EgbmV3bGluZSwgdXNlIFxc
W2VsZWN0cmljLWluZGVudC1qdXN0LW5ld2xpbmVdLgorCitJZiBgYXV0by1maWxsLW1vZGUnIGlz
IGVuYWJsZWQsIHRoaXMgbWF5IGNhdXNlIGF1dG9tYXRpYyBsaW5lCiticmVha2luZyBvZiB0aGUg
cHJlY2VkaW5nIGxpbmUuICBBIG5vbi1uaWwgQVJHIGluaGliaXRzIHRoaXMuCisKK0lmIHZhcmlh
YmxlIGB1c2UtaGFyZC1uZXdsaW5lcycgaXMgZW5hYmxlZCwgdGhlIG5ld2xpbmUgaXMgbWFya2Vk
IHdpdGgKK3RoZSB0ZXh0LXByb3BlcnR5IGBoYXJkJy4KKworQSBub24tbmlsIElOVEVSQUNUSVZF
IGFyZ3VtZW50IG1lYW5zIHRvIHJ1biB0aGUgYHBvc3Qtc2VsZi1pbnNlcnQtaG9vaycuIgorICAg
KGludGVyYWN0aXZlICIqUFxucCIpCisgICAoaWYtbGV0KiAoKGJsb2NrLW1vZGUgKG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZS1hdCkpCisgICAgICAgICAgICAgKChmYm91bmRwIGJsb2NrLW1v
ZGUpKSkKKyAgICAgICAobWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgYmxv
Y2stbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
J25ld2xpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVy
YWN0aXZlKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1maWxsLXBhcmFncmFw
aCAoJm9wdGlvbmFsIGp1c3RpZnkpCisgICJSZWZpbGwgb3IgcmVpbmRlbnQgdGhlIG1hcmtkb3du
IGNvbnRlbnQgdGhhdCBjb250YWlucyBwb2ludC4KK0lmIHRoZSBwb2ludCBpcyBpbiBhIHN0cmlu
ZyBvciBhIGNvbW1lbnQsIGZpbGwgdGhlIHBhcmFncmFwaCB0aGF0Citjb250YWlucyBwb2ludCBv
ciBmb2xsb3dzIHBvaW50LgorCitPdGhlcndpc2UsIHJlaW5kZW50IHRoZSBmdW5jdGlvbiBkZWZp
bml0aW9uIHRoYXQgY29udGFpbnMgcG9pbnQgb3IKK2ZvbGxvd3MgcG9pbnQuCisKK0lmIEpVU1RJ
RlkgaXMgbm9uLW5pbCAoaW50ZXJhY3RpdmVseSwgd2l0aCBwcmVmaXggYXJndW1lbnQpLCBqdXN0
aWZ5IGFzCit3ZWxsLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKGNvbmQgKChkZXJpdmVkLW1v
ZGUtcCAncHJvZy1tb2RlKQorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ3Byb2ctZmls
bC1yZWluZGVudC1kZWZ1biBqdXN0aWZ5KSkKKyAgICAgICAgKHQKKyAgICAgICAgIChjYWxsLWlu
dGVyYWN0aXZlbHkgIydmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkpKQorCis7OyBOT1RFOiBEbyBu
b3QgYWRkIHRoaXMgY29tbWFuZCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcycu
CisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5kLWRlZmluaXRpb25zICgm
cmVzdCBhcmdzKQorICAiSGVscGVyIGNvbW1hbmQgZm9yIGB4cmVmLWZpbmQtZGVmaW5pdGlvbnMn
IGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorRmluZCB0aGluZyBhdCBwb2ludC4KK0FkanVzdCB0
aGUgcmVmZXJlbmNlcyBvbiB0aGUgeHJlZiBzdGFjayB0byB0aGUgYmFzZSBidWZmZXIuCitQYXNz
IHRocm91Z2ggQVJHUyBpZiBub3QgaW4gYSBjb2RlIGJsb2NrIHdpdGggYW4gYXZhaWxhYmxlIG1v
ZGUuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZi1sZXQqICgoYmxvY2stbW9kZSAobWFya2Rvd24t
dHMtY29kZS1ibG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAgICgoZmJvdW5kcCBibG9jay1tb2Rl
KSkpCisgICAgICAoY29uZGl0aW9uLWNhc2UgZXJyCisgICAgICAgICAgKHVud2luZC1wcm90ZWN0
CisgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgIDs7IFJlY29yZCBhIHBsYWNl
aG9sZGVyIHhyZWYgbWFya2VyIGluIHRoZSBiYXNlIGJ1ZmZlci4gIFRoaXMKKyAgICAgICAgICAg
ICAgICA7OyB3aWxsIGJlIHJldGFpbmVkIGlmIHRoZSBjb21tYW5kIHN1Y2NlZWRzIHRvIHB1c2gg
YSBtYXJrZXIgaW4KKyAgICAgICAgICAgICAgICA7OyB0aGUgaW5kaXJlY3QgYnVmZmVyIHdoaWNo
IHdlIHdpbGwgcG9wLgorICAgICAgICAgICAgICAgICh4cmVmLXB1c2gtbWFya2VyLXN0YWNrKQor
ICAgICAgICAgICAgICAgIDs7IGB4cmVmLWZpbmQtZGVmaW5pdGlvbnMnIGlzIGEgdGhpbmcgY29t
bWFuZCBpbgorICAgICAgICAgICAgICAgIDs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5n
LWNvbW1hbmRzJy4KKyAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWlu
LWNvZGUtYmxvY2sgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAjJ3hyZWYtZmluZC1kZWZpbml0aW9ucworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzKSkKKyAg
ICAgICAgICAgIDs7IFBvcCB0aGUgdG9wIHhyZWYgbWFya2VyLiAgSWYgdGhlIGNvbW1hbmQgc3Vj
Y2VlZGVkLCB0aGUKKyAgICAgICAgICAgIDs7IHRvcCBtYXJrZXIgd2lsbCBiZSB0aGUgaW5kaXJl
Y3QgYnVmZmVyIG1hcmtlci4gIElmIGl0CisgICAgICAgICAgICA7OyBmYWlsZWQsIHdlJ2xsIHBv
cCB0aGUgcGxhY2Vob2xkZXIgd2hpY2ggaXMgbm93IG9mIG5vCisgICAgICAgICAgICA7OyB2YWx1
ZTwKKyAgICAgICAgICAgIDs7IFRPRE86IFByb3Bvc2UgYW4gYHhyZWYnIHBvcCBmdW5jdGlvbiB0
aGF0IGRvZXNuJ3QgImdvCisgICAgICAgICAgICA7OyBiYWNrIi4KKyAgICAgICAgICAgIChsZXQg
KChoaXN0b3J5ICh4cmVmLS1nZXQtaGlzdG9yeSkpKQorICAgICAgICAgICAgICAodW5sZXNzIChu
dWxsIChjYXIgaGlzdG9yeSkpCisgICAgICAgICAgICAgICAgKHBvcCAoY2FyIGhpc3RvcnkpKSkp
KQorICAgICAgICAoZXJyb3IKKyAgICAgICAgIDs7IFByb3BhZ2F0ZSB0aGUgc2lnbmFsLgorICAg
ICAgICAgKHNpZ25hbCAoY2FyIGVycikgKGNkciBlcnIpKSkpCisgICAgOzsgTm90IGluIGEgY29k
ZSBibG9jayBjb250ZXh0LiAgVGhpcyBzaG91bGQgcmVhbGx5IG5ldmVyIGhhcHBlbi4KKyAgICAo
ZnVuY2FsbC1pbnRlcmFjdGl2ZWx5ICMneHJlZi1maW5kLWRlZmluaXRpb25zIGFyZ3MpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrICgpCisg
ICJIZWxwZXIgZnVuY3Rpb24gdG8gd3JhcCBhIGNvbW1hbmQgZm9yIGEgY29kZS1ibG9jayBjb250
ZXh0LgorSWYgYHRoaXMtY29tbWFuZCcgaXMgYSBtZW1iZXIgb2YgYG1hcmtkb3duLXRzLWNvZGUt
YmxvY2stY29tbWFuZHMnIGFuZAorcG9pbnQgaXMgd2l0aGluIGEgY29kZSBibG9jayB3aXRoIGFu
IGF2YWlsYWJsZSBtb2RlLCBpdCB3aWxsIHJ1biBpbiB0aGF0Citjb2RlIGJsb2NrJ3MgbW9kZSBp
biBhIGJ1ZmZlciBuYXJyb3dlZCB0byBpdHMgY29udGVudC4gIE90aGVyd2lzZSwgdGhlCitjb21t
YW5kIHdpbGwgcnVuIGluIHRoZSBjb250ZXh0IG9mIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVm
ZmVyLiIKKyAgKHdoZW4gKG1lbXEgdGhpcy1jb21tYW5kIG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
Y29tbWFuZHMpCisgICAgKHdoZW4tbGV0KiAoKGNvbW1hbmQgdGhpcy1jb21tYW5kKQorICAgICAg
ICAgICAgICAgIChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQor
ICAgICAgICAgICAgICAgICgoZmJvdW5kcCBibG9jay1tb2RlKSkpCisgICAgICAoc2V0cSB0aGlz
LWNvbW1hbmQgKGxhbWJkYSAoJnJlc3QgYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IChpbnRlcmFjdGl2ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ21hcmtk
b3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzKSkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayAoYmxvY2stbW9k
ZSBjb21tYW5kICZyZXN0IGFyZ3MpCisgICJSdW4gQ09NTUFORCBpbiBCTE9DSy1NT0RFLgorQVJH
UyBhcmUgY2FwdHVyZWQgYnkgYG1hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2Rl
LWJsb2NrJy4iCisgICh3aGVuLWxldCogKChiZWcgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkg
J21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtlcikpCisgICAgICAgICAgICAgIChlbmQgKGdldC1j
aGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlcikpKQorICAg
IChsZXQgKChyZWdpb24tYmVnICh1c2UtcmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgKHJl
Z2lvbi1lbmQgKHVzZS1yZWdpb24tZW5kKSkpCisgICAgICA7OyBVc2UgYSBub24tY2xvbmVkIGlu
ZGlyZWN0IGJ1ZmZlciB0byBhdm9pZCBjaGFuZ2luZyBtYWpvciBtb2RlCisgICAgICA7OyBpbiB0
aGUgcGFyZW50IGJ1ZmZlciAod2hpY2ggd291bGQgdHJhc2ggbG9jYWwgdmFyaWFibGVzKS4gIFRo
aXMKKyAgICAgIDs7IGFsc28gZW5zdXJlcyB0cmVlc2l0IHNldHVwIGlzIG5vdCBjb3BpZWQgb3Zl
ciBvciBpdCBnZXRzCisgICAgICA7OyBjb25mdXNlZC4KKyAgICAgIChsZXQgKChpbmRpcmVjdC1i
dWZmZXIgKG1ha2UtaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY3VycmVudC1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2VuZXJh
dGUtbmV3LWJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuaWwgJ2luaGliaXQtYnVmZmVyLWhvb2tzKSkKKyAgICAgICAgICAgIChpbmRpcmVj
dC1kZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgICAocG9pbnQtZGVsdGEgMCkpCisgICAgICAg
ICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJl
Y3QtYnVmZmVyCisgICAgICAgICAgICAgIDs7IENvcHkgdGhlIGJhc2UgYnVmZmVyJ3MgcmVnaW9u
LCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICAgICAgICAgICh3aGVuIChhbmQgcmVnaW9uLWJlZyBy
ZWdpb24tZW5kKQorICAgICAgICAgICAgICAgIChzZXQtbWFyayAoaWYgKDwgKHBvaW50KSByZWdp
b24tZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLWVuZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi1iZWcpKQorICAgICAgICAgICAgICAgIChhY3Rp
dmF0ZS1tYXJrKSkKKyAgICAgICAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAgICAg
ICAgICAobGV0ICgobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAgICAgICAgICAgICAgICAg
ICAgICAgKGVxIGJsb2NrLW1vZGUgJ21hcmtkb3duLXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAg
ICAgIChmdW5jYWxsIGJsb2NrLW1vZGUpKQorICAgICAgICAgICAgICAgIChyZWFkLW9ubHktbW9k
ZSAtMSkKKyAgICAgICAgICAgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAgICAg
ICAgICAgICAgIChsZXQgKChwb2ludCAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgICAgIChw
b2ludC1tYXJrZXIgKHBvaW50LW1hcmtlcikpKQorICAgICAgICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgICAgICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9j
ay10aGluZy1jb21tYW5kcykKKyAgICAgICAgICAgICAgICAgICAgICAod2hlbi1sZXQqICgodGhp
bmcgKHRoaW5nLWF0LXBvaW50ICdzeW1ib2wpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChm
dW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCB0aGluZykpKQorICAgICAgICAgICAgICAgICAg
ICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24tY29tbWFuZHMp
CisgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCByZWdpb24tYmVnIHJlZ2lvbi1lbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgIydmdW5jYWxsLWludGVyYWN0aXZlbHkg
Y29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi1iZWcgcmVnaW9u
LWVuZCBhcmdzKSkpCisgICAgICAgICAgICAgICAgICAgICAoKHplcm9wIChjZHIgKGZ1bmMtYXJp
dHkgY29tbWFuZCkpKQorICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsLWludGVyYWN0aXZl
bHkgY29tbWFuZCkpCisgICAgICAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAg
ICAgIChjYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCkpKQorICAgICAgICAgICAgICAgICAgICAo
c2V0cSBpbmRpcmVjdC1kZWFjdGl2YXRlLW1hcmsgZGVhY3RpdmF0ZS1tYXJrKQorICAgICAgICAg
ICAgICAgICAgICA7OyBUaGUgaGV1cmlzdGljIG9mIHdoZW4gdG8gbW92ZSBwb2ludC4KKyAgICAg
ICAgICAgICAgICAgICAgOzsgZGVhY3RpdmF0ZS1tYXJrIHAoZCk9cG0oZCkgZGVsdGEKKyAgICAg
ICAgICAgICAgICAgICAgOzsgbmlsICAgICAgICAgICAgIG5vICAgICAgICAgMCAgIDsgY2xhc3Mg
QQorICAgICAgICAgICAgICAgICAgICA7OyBuaWwgICAgICAgICAgICAgeWVzICAgICAgICB5ZXMg
OyBjbGFzcyBCCisgICAgICAgICAgICAgICAgICAgIDs7IHQgICAgICAgICAgICAgICBubyAgICAg
ICAgIDAgICA7IGNsYXNzIEMKKyAgICAgICAgICAgICAgICAgICAgOzsgdCAgICAgICAgICAgICAg
IHllcyAgICAgICAgeWVzIDsgY2xhc3MgRAorICAgICAgICAgICAgICAgICAgICA7OyBBOiBuaWwK
KyAgICAgICAgICAgICAgICAgICAgOzsgQjogaW5kZW50LWZvci10YWItY29tbWFuZAorICAgICAg
ICAgICAgICAgICAgICA7OyBDOiBjb21tZW50LW9yLXVuY29tbWVudC1yZWdpb24KKyAgICAgICAg
ICAgICAgICAgICAgOzsgRDogY29tbWVudC1kd2ltIG5ld2xpbmUgZWxlY3RyaWMtbmV3bGluZS1h
bmQtbWF5YmUtaW5kZW50CisgICAgICAgICAgICAgICAgICAgIDs7ICAgIG1hcmtkb3duLXRzLS1j
b2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoCisgICAgICAgICAgICAgICAgICAoc2V0cSBwb2ludC1k
ZWx0YSAoLSAocG9pbnQpIHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICh3aGVuIChub3QgKGVx
IHBvaW50LWRlbHRhICgtIChwb2ludC1tYXJrZXIpIHBvaW50LW1hcmtlcikpKQorICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBwb2ludC1kZWx0YSAwKSkpKSkKKyAgICAgICAgICAoa2lsbC1idWZm
ZXIgaW5kaXJlY3QtYnVmZmVyKQorICAgICAgICAgIDs7IFByb3BhZ2F0ZSBtYXJrIGRlYWN0aXZh
dGlvbiB0byB0aGUgYmFzZSBidWZmZXIuCisgICAgICAgICAgKHNldHEgZGVhY3RpdmF0ZS1tYXJr
IGluZGlyZWN0LWRlYWN0aXZhdGUtbWFyaykKKyAgICAgICAgICA7OyBNb3ZlIGJhc2UgYnVmZmVy
IHBvaW50IGlmIGl0IG1vdmVkIGluIHRoZSBpbmRpcmVjdCBidWZmZXIuCisgICAgICAgICAgKGdv
dG8tY2hhciAoKyAocG9pbnQpIHBvaW50LWRlbHRhKSkKKyAgICAgICAgICA7OyBSZWNvcmQgdGhl
IG9yaWdpbmFsIGNvbW1hbmQuCisgICAgICAgICAgKHNldHEgdGhpcy1jb21tYW5kIGNvbW1hbmQp
CisgICAgICAgICAgOzsgTWFrZSBzdXJlIHRoZSBvcmlnaW5hdGluZyByZWdpb24gaXMgcmVmb250
aWZpZWQuCisgICAgICAgICAgKGZvbnQtbG9jay1mbHVzaCBiZWcgZW5kKSkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciAocG9zICZvcHRpb25hbCBi
YWNrd2FyZCkKKyAgIlJldHVybiB0aGUgbmV4dCBvciBwcmV2aW91cyBmZW5jZWRfY29kZV9ibG9j
a19kZWxpbWl0ZXIgbm9kZSwgb3IgbmlsLgorU2VhcmNoIHN0YXJ0aW5nIGF0IFBPUy4KK1NlYXJj
aCBiYWNrd2FyZCBpZiBCQUNLV0FSRCBpcyBub24tbmlsLiIKKyAgKHRyZWVzaXQtc2VhcmNoLWZv
cndhcmQgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhIChub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJp
bmc9ICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJmZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIiKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmFja3dhcmQpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbmQtbmV4dC1j
b2RlLWJsb2NrLWRlbGltaXRlciAoJm9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zIGJhY2t3YXJkIHJlbWFpbikKKyAgIlJldHVy
biB0aGUgbmV4dCBvciBwcmV2aW91cyBmZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIgbm9kZSwg
b3IgbmlsLgorU2VhcmNoIHN0YXJ0aW5nIGF0IFBPUyBvciBgcG9pbnQnLCBpZiBQT1MgaXMgbmls
LgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuCitJZiBSRU1BSU4gaXMg
bm9uLW5pbCwgbW92ZSB0byB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUgY3VycmVudCBjb2RlCiti
bG9jaywgaWYgaW4gb25lLiIKKyAgKHNldHEgcG9zIChvciBwb3MgKHBvaW50KSkpCisgIChhbmQt
bGV0KiAoKG5vZGUgKG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyIHBvcyBi
YWNrd2FyZCkpKQorICAgIChsZXQgKChpbi1ibG9jayAobWFya2Rvd24tdHMtYXQtY29kZS1ibG9j
ay1wIHBvcykpKQorICAgICAgKGNvbmQKKyAgICAgICAoKGFuZCByZW1haW4gaW4tYmxvY2spCisg
ICAgICAgIG5vZGUpCisgICAgICAgKHJlbWFpbgorICAgICAgICBuaWwpCisgICAgICAgKHQKKyAg
ICAgICAgKHdoaWxlIChhbmQgbm9kZQorICAgICAgICAgICAgICAgICAgICA7OyBJZiBiYWNrd2Fy
ZCwgc2tpcCB0aGUgY3VycmVudCBibG9jaydzCisgICAgICAgICAgICAgICAgICAgIDs7IHN0YXJ0
aW5nIGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgKG9yIChhbmQgYmFja3dhcmQgaW4t
YmxvY2sgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIG5vZGUpKSkpCisgICAgICAg
ICAgKHNldHEgaW4tYmxvY2sgKG1hcmtkb3duLXRzLWF0LWNvZGUtYmxvY2stcCBwb3MpKQorICAg
ICAgICAgIChzZXRxIHBvcyAoaWYgYmFja3dhcmQKKyAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkpCisgICAgICAgICAgKHNldHEgbm9kZSAobWFya2Rvd24tdHMtLWZpbmQt
Y29kZS1ibG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgICAgIG5vZGUpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxvY2sgKGFyZykKKyAgIk1v
dmUgcG9pbnQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGNvZGUgYmxvY2suCitXaXRoIHRoZSBw
cmVmaXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBjdXJyZW50IGNvZGUgYmxvY2su
IgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgobm9kZQorICAgICAgICAgICAg
ICAgKG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIgbmlsIG5pbCBh
cmcpKSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLW1vdmUtdG8tcHJldmlvdXMtY29kZS1ibG9jayAoYXJnKQorICAiTW92
ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIHByZXZpb3VzIGNvZGUgYmxvY2suCitXaXRoIHRo
ZSBwcmVmaXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBjdXJyZW50IGNvZGUgYmxv
Y2suIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgobm9kZQorICAgICAgICAg
ICAgICAgKG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxpbWl0ZXIgbmlsICdi
YWNrd2FyZCBhcmcpKSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkp
KSkKKworOzs7IEhlbHBlcnM6CisKKyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGluZS1pbnZpc2li
bGUtcCAocG9zKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgUE9TIGlzIGluc2lkZSBhbiBvdXRsaW5l
LWZvbGRlZCByZWdpb24uIgorICAoY2wtc29tZSAobGFtYmRhIChvdikgKGVxIChvdmVybGF5LWdl
dCBvdiAnaW52aXNpYmxlKSAnb3V0bGluZSkpCisgICAgICAgICAgIChvdmVybGF5cy1hdCBwb3Mp
KSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyAoKQogICAiUmV0dXJuIHJh
bmdlIHNldHRpbmdzIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgotICAodHJlZXNpdC1yYW5nZS1y
dWxlcwotICAgOmVtYmVkICdtYXJrZG93bi1pbmxpbmUKLSAgIDpob3N0ICdtYXJrZG93bgotICAg
OnJhbmdlLWZuICMndHJlZXNpdC1yYW5nZS1mbi1leGNsdWRlLWNoaWxkcmVuCi0gICAnKChpbmxp
bmUpIEBtYXJrZG93bi1pbmxpbmUpCi0KLSAgIDplbWJlZCAjJ21hcmtkb3duLXRzLS1jb252ZXJ0
LWNvZGUtYmxvY2stbGFuZ3VhZ2UKLSAgIDpob3N0ICdtYXJrZG93bgotICAgOmxvY2FsIHQKLSAg
ICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpIEBsYW5ndWFnZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBjb250ZW50KSkp
KQorICAoYXBwbHkKKyAgICMndHJlZXNpdC1yYW5nZS1ydWxlcworICAgYCg6ZW1iZWQgbWFya2Rv
d24taW5saW5lCisgICAgIDpob3N0IG1hcmtkb3duCisgICAgICgoaW5saW5lKSBAbWFya2Rvd24t
aW5saW5lKQorICAgICAsQCh3aGVuIG1hcmtkb3duLXRzLWZvbnRpZnktY29kZS1ibG9ja3MtbmF0
aXZlbHkKKyAgICAgICAgICcoOmVtYmVkIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1
YWdlCisgICAgICAgICAgIDpob3N0IG1hcmtkb3duCisgICAgICAgICAgIDpsb2NhbCB0CisgICAg
ICAgICAgICgoZmVuY2VkX2NvZGVfYmxvY2sgKGluZm9fc3RyaW5nIChsYW5ndWFnZSkgQGxhbmd1
YWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQp
IEBjb250ZW50KSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVy
bGF5cyAoKQorICAiUmVtb3ZlIGFsbCBpbmxpbmUgaW1hZ2Ugb3ZlcmxheXMgZnJvbSB0aGUgY3Vy
cmVudCBidWZmZXIuIgorICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gKHBvaW50LW1pbikgKHBv
aW50LW1heCkpKQorICAgICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2Up
CisgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tb3V0
bGluZS12aWV3LWNoYW5nZSAoKQorICAiVXBkYXRlIGltYWdlIG92ZXJsYXlzIGFmdGVyIG91dGxp
bmUgZm9sZC91bmZvbGQuCitSZW1vdmVzIGltYWdlIG92ZXJsYXlzIGluIGZvbGRlZCByZWdpb25z
IGFuZCB0cmlnZ2VycworcmVmb250aWZpY2F0aW9uIHNvIHRoYXQgaW1hZ2VzIGluIHVuZm9sZGVk
IHJlZ2lvbnMgYXJlIHJlY3JlYXRlZC4iCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFn
ZXMKKyAgICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAgICAoZm9udC1s
b2NrLWZsdXNoKSkpCiAKIChkZWZ1biBtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwICh2YWx1
ZSkKICAgIlNldCBoaWRpbmcgb2YgTWFya2Rvd24gbWFya3VwIGRlbGltaXRlcnMgaW4gdGhlIGN1
cnJlbnQgYnVmZmVyLgpAQCAtMzQ4LDYgKzI5MDcsOCBAQCBtYXJrZG93bi10cy0tc2V0LWhpZGUt
bWFya3VwCiAgIChpZiB2YWx1ZQogICAgICAgKGFkZC10by1pbnZpc2liaWxpdHktc3BlYyAnbWFy
a2Rvd24tdHMtLW1hcmt1cCkKICAgICAocmVtb3ZlLWZyb20taW52aXNpYmlsaXR5LXNwZWMgJ21h
cmtkb3duLXRzLS1tYXJrdXApKQorICAod2hlbiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisg
ICAgKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpKQogICAoZm9udC1sb2NrLWZs
dXNoKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1cCAoKQpAQCAtMzU2
LDEyMiArMjkxNyw1MzEgQEAgbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwCiAgIChzZXRx
IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIChub3QgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApKQog
ICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkp
CiAKKyhkZWZ1biBtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMgKHZhbHVlKQorICAiU2V0
IGRpc3BsYXkgb2YgaW5saW5lIGltYWdlcyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitWQUxVRSBu
b24tbmlsIGRpc3BsYXlzIGltYWdlcywgbmlsIHJlbW92ZXMgdGhlbS4iCisgIChpZiB2YWx1ZQor
ICAgICAgKHRyZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyAnKGltYWdlLXByZXZp
ZXcpKQorICAgICh0cmVlc2l0LWZvbnQtbG9jay1yZWNvbXB1dGUtZmVhdHVyZXMgbmlsICcoaW1h
Z2UtcHJldmlldykpKQorICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAg
KGZvbnQtbG9jay1mbHVzaCkpCiAKLTs7OyBNYWpvciBtb2RlCi0KLShkZWZ1biBtYXJrZG93bi10
cy1zZXR1cCAoKQotICAiU2V0dXAgdHJlZXNpdCBmb3IgYG1hcmtkb3duLXRzLW1vZGUnLiIKLSAg
KG1ha2UtbG9jYWwtdmFyaWFibGUgJ21hcmtkb3duLXRzLWhpZGUtbWFya3VwKQorKGRlZnVuIG1h
cmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1hZ2VzICgpCisgICJUb2dnbGUgZGlzcGxheSBvZiBp
bmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAg
KHNldHEgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcyAobm90IG1hcmtkb3duLXRzLWlubGluZS1p
bWFnZXMpKQorICAobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzIG1hcmtkb3duLXRzLWlu
bGluZS1pbWFnZXMpCisgIChtZXNzYWdlICJJbmxpbmUgaW1hZ2VzICVzIiAoaWYgbWFya2Rvd24t
dHMtaW5saW5lLWltYWdlcyAiZW5hYmxlZCIgImRpc2FibGVkIikpKQorCis7OzsgRW1waGFzaXM6
CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QKKyAgJygoP2IgLiAiKioiKQor
ICAgICg/QiAuICJfXyIpCisgICAgKD9pIC4gIioiKQorICAgICg/SSAuICJfIikKKyAgICAoP3Mg
LiAifn4iKQorICAgICg/YyAuICJgIikKKyAgICAoP2EgLiAiKioqIikpCisgICJBbGlzdCBvZiBl
bXBoYXNpcyBtYXJrZXJzIGZvciBgbWFya2Rvd24tdHMtZW1waGFzaXplJy4KK0VhY2ggZW50cnkg
aXMgKEtFWSAuIE1BUktFUikgd2hlcmUgS0VZIGlzIGEgY2hhcmFjdGVyIChub3QgYSBzdHJpbmcp
IGFuZAorTUFSS0VSIGlzIHRoZSBNYXJrZG93biBlbXBoYXNpemVkIHRleHQgcHJlZml4L3N1ZmZp
eC4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQgKCkKKyAg
IlJldHVybiB0aGUgZW1waGFzaXMgbm9kZSBhdCBwb2ludCwgb3IgbmlsLgorRmluZHMgdGhlIGlu
bmVybW9zdCBgZW1waGFzaXMnLCBgc3Ryb25nX2VtcGhhc2lzJywKK2BzdHJpa2V0aHJvdWdoJywg
b3IgYGNvZGVfc3Bhbicgbm9kZS4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUt
YXQgKHBvaW50KSAnbWFya2Rvd24taW5saW5lKSkpCisgICAgKHRyZWVzaXQtcGFyZW50LXVudGls
CisgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAgIChtZW1iZXIgKHRyZWVzaXQtbm9k
ZS10eXBlIG4pCisgICAgICAgICAgICAgICAgICAgICcoImVtcGhhc2lzIiAic3Ryb25nX2VtcGhh
c2lzIgorICAgICAgICAgICAgICAgICAgICAgICJzdHJpa2V0aHJvdWdoIiAiY29kZV9zcGFuIikp
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtcmVtb3ZlLWVtcGhhc2lzICgpCisgICJSZW1vdmUg
ZW1waGFzaXMgYXJvdW5kIHBvaW50IG9yIHJlZ2lvbi4KK1dpdGggYW4gYWN0aXZlIHJlZ2lvbiwg
c3RyaXAgdGhlIG91dGVybW9zdCBlbXBoYXNpcyBtYXJrZXJzIGZyb20KK3RoZSBzZWxlY3RlZCB0
ZXh0LiAgV2l0aG91dCBhIHJlZ2lvbiwgZmluZCB0aGUgZW1waGFzaXMgbm9kZSBhdAorcG9pbnQg
dXNpbmcgdHJlZS1zaXR0ZXIgYW5kIHJlbW92ZSBpdHMgbWFya2Vycy4iCisgIChpbnRlcmFjdGl2
ZSkKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0KiAoKGJlZyAocmVnaW9uLWJlZ2lu
bmluZykpCisgICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpCisgICAgICAgICAgICAgKHRl
eHQgKGJ1ZmZlci1zdWJzdHJpbmcgYmVnIGVuZCkpCisgICAgICAgICAgICAgKHN0cmlwcGVkIG5p
bCkpCisgICAgICAgIChjbC1sb29wIGZvciAoX2tleSAuIG0pIGluIChzb3J0IChjb3B5LXNlcXVl
bmNlIG1hcmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKD4gKGxlbmd0aCAoY2RyIGEpKSAobGVuZ3RoIChjZHIgYikpKSkp
CisgICAgICAgICAgICAgICAgIGZvciByZSA9IChjb25jYXQgIlxcYCIgKHJlZ2V4cC1xdW90ZSBt
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXChcXCg/Oi5cXHxcblxcKSpc
XCkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2V4cC1xdW90ZSBtKSAi
XFwnIikKKyAgICAgICAgICAgICAgICAgd2hlbiAoc3RyaW5nLW1hdGNoIHJlIHRleHQpCisgICAg
ICAgICAgICAgICAgIGRvIChzZXRxIHN0cmlwcGVkIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkKKyAg
ICAgICAgICAgICAgICAgYW5kIHJldHVybiBuaWwpCisgICAgICAgICh3aGVuIHN0cmlwcGVkCisg
ICAgICAgICAgKGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkKKyAgICAgICAgICAoaW5zZXJ0IHN0cmlw
cGVkKSkpCisgICAgOzsgRmluZCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG5vZGUgYXQgcG9pbnQu
CisgICAgKHdoZW4tbGV0KiAoKGlubmVyIChtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1w
b2ludCkpCisgICAgICAgICAgICAgICAgKG5vZGUgKGxldCAoKG4gaW5uZXIpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoaWxlIChsZXQgKChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQg
bikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCBwYXJlbnQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbWJlciAodHJl
ZXNpdC1ub2RlLXR5cGUgcGFyZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoImVtcGhhc2lzIiAic3Ryb25nX2VtcGhhc2lzIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRo
cm91Z2giICJjb2RlX3NwYW4iKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZXRxIG4gcGFyZW50KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgbikpCisgICAgICAg
ICAgICAgICAgKHN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAg
ICAgKGVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAodGV4dCAo
dHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkKKyAgICAgICAgICAgICAgICAodHlwZSAodHJlZXNp
dC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAgICAgICAgKG1sZW4gKHBjYXNlIHR5cGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICgic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAg
ICAgICAgICAgIChpZiAoc3RyaW5nLXByZWZpeC1wICJfIiB0ZXh0KSAyIDIpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgKCJlbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg
KHN0cmluZy1wcmVmaXgtcCAiXyIgdGV4dCkgMSAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICgic3RyaWtldGhyb3VnaCIgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICgiY29kZV9zcGFu
IiAxKSkpCisgICAgICAgICAgICAgICAgKGlubmVyLXRleHQgKHN1YnN0cmluZyB0ZXh0IG1sZW4g
KC0gKGxlbmd0aCB0ZXh0KSBtbGVuKSkpKQorICAgICAgKGxldCAoKG9mZnNldCAoLSAocG9pbnQp
IHN0YXJ0IG1sZW4pKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gc3RhcnQgZW5kKQorICAgICAg
ICAoZ290by1jaGFyIHN0YXJ0KQorICAgICAgICAoaW5zZXJ0IGlubmVyLXRleHQpCisgICAgICAg
IChnb3RvLWNoYXIgKCsgc3RhcnQgKG1heCAwIG9mZnNldCkpKSkpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLWVtcGhhc2l6ZSAoJm9wdGlvbmFsIGNoYXIpCisgICJJbnNlcnQgb3IgY2hhbmdlIGVt
cGhhc2lzIG9uIHRleHQuCitJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9uLCB3cmFwIGl0IHdp
dGggZW1waGFzaXMgbWFya2Vycy4KK0lmIHRoZXJlIGlzIG5vIHJlZ2lvbiwgaW5zZXJ0IG1hcmtl
ciBwYWlycyBhbmQgcGxhY2UgcG9pbnQgYmV0d2VlbgordGhlbS4gIENIQVIgc2VsZWN0cyB0aGUg
ZW1waGFzaXMgdHlwZToKKworICBiICAgKipib2xkKiogICAgICAgQiAgX19ib2xkX18KKyAgaSAg
ICppdGFsaWMqICAgICAgIEkgIF9pdGFsaWNfCisgIGEgICAqKipib2xkK2l0YWxpYyoqKgorICBz
ICAgfn5zdHJpa2V0aHJvdWdofn4KKyAgYyAgIGBjb2RlYAorICBTUEMgcmVtb3ZlIGVtcGhhc2lz
IGF0IHBvaW50IG9yIHJlZ2lvbiIKKyAgKGludGVyYWN0aXZlCisgICAiY0VtcGhhc2lzIFtiXW9s
ZCBbQl1vbGRfIFtpXXRhbGljIFtJXXRhbGljXyBbYV1sbCBbc110cmlrZSBbY11vZGUgU1BDIHJl
bW92ZToiKQorICAoaWYgKGVxIGNoYXIgP1xzKQorICAgICAgKG1hcmtkb3duLXRzLXJlbW92ZS1l
bXBoYXNpcykKKyAgICAoaWYtbGV0KiAoKG1hcmtlciAoY2RyIChhc3NxIGNoYXIgbWFya2Rvd24t
dHMtZW1waGFzaXMtYWxpc3QpKSkpCisgICAgICAgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAg
ICAgICAgKGxldCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAgICAgICAo
ZW5kIChjb3B5LW1hcmtlciAocmVnaW9uLWVuZCkpKSkKKyAgICAgICAgICAgICAgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAgICAgICAg
KGluc2VydCBtYXJrZXIpCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAg
ICAgICAgICAgKGluc2VydCBtYXJrZXIpKSkKKyAgICAgICAgICAoaWYtbGV0KiAoKGJvdW5kcyAo
Ym91bmRzLW9mLXRoaW5nLWF0LXBvaW50ICd3b3JkKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGNkciBib3VuZHMpKQorICAgICAg
ICAgICAgICAgIChpbnNlcnQgbWFya2VyKQorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGNh
ciBib3VuZHMpKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2VyKSkKKyAgICAgICAgICAg
IChpbnNlcnQgbWFya2VyIG1hcmtlcikKKyAgICAgICAgICAgIChiYWNrd2FyZC1jaGFyIChsZW5n
dGggbWFya2VyKSkpKQorICAgICAgKHVzZXItZXJyb3IgIk5vIHN1Y2ggZW1waGFzaXMgbWFya2Vy
OiAlYyIgY2hhcikpKSkKKworOzs7IEJsb2NrIHN0cnVjdHVyZToKKworKGRlZnVuIG1hcmtkb3du
LXRzLWluc2VydC1zdHJ1Y3R1cmUgKCZvcHRpb25hbCBjaGFyKQorICAiSW5zZXJ0IGEgYmxvY2sg
c3RydWN0dXJlLgorSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdC4gIE90aGVy
d2lzZSwgaW5zZXJ0IGFuIGVtcHR5CitibG9jayBhbmQgcGxhY2UgcG9pbnQgaW5zaWRlLiAgQ0hB
UiBzZWxlY3RzIHRoZSBzdHJ1Y3R1cmUgdHlwZToKKworICBjICBmZW5jZWQgY29kZSBibG9jayAo
YGBgKQorICB0ICB0aWxkZSBmZW5jZWQgY29kZSBibG9jayAofn5+KQorICBxICBibG9jayBxdW90
ZSAoPiApCisgIGQgIGhvcml6b250YWwgZGl2aWRlci9ydWxlICgtLS0pIgorICAoaW50ZXJhY3Rp
dmUgImNTdHJ1Y3R1cmUgW2Ndb2RlIGJsb2NrIFt0XWlsZGUgY29kZSBibG9jayBbcV11b3RlIFtk
XWl2aWRlcjoiKQorICAocGNhc2UgY2hhcgorICAgICg/YyAobWFya2Rvd24tdHMtLWluc2VydC1j
b2RlLWJsb2NrID9gKSkKKyAgICAoP3QgKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayA/
fikpCisgICAgKD9xIChtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKSkKKyAgICAoP2Qg
KG1hcmtkb3duLXRzLS1pbnNlcnQtZGl2aWRlcikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1
Y2ggc3RydWN0dXJlOiAlYyIgY2hhcikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQt
Y29kZS1ibG9jayAoY2hhciAmb3B0aW9uYWwgbGFuZ3VhZ2UpCisgICJJbnNlcnQgYSBmZW5jZWQg
Y29kZSBibG9jayB1c2luZyBhIENIQVIgc2VxdWVuY2UuCitDSEFSIHNob3VsZCBiZSBvbmUgb2Yg
YSBiYWNrdGljayBvciBhIHRpbGRlLgorTEFOR1VBR0UgaXMgYSB3aGl0ZXNwYWNlIGZyZWUgbGFu
Z3VhZ2Ugc3RyaW5nLiIKKyAgKHNldHEgbGFuZ3VhZ2UKKyAgICAgICAgKG9yIGxhbmd1YWdlCisg
ICAgICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgIltbOmJs
YW5rOl1dIiAiIgorICAgICAgICAgICAgIChsZXQgKChjb21wbGV0aW9uLWlnbm9yZS1jYXNlIG5p
bCkKKyAgICAgICAgICAgICAgICAgICAoY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAo
c2VxLW1hcAorICAgICAgICAgICAgICAgICAgICAgIydzeW1ib2wtbmFtZQorICAgICAgICAgICAg
ICAgICAgICAgKHNlcS11bmlxCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCAobWFwY2Fy
ICMnY2FyIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9u
LXRzLW1vZGVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKSkpKSkpCisgICAgICAgICAgICAgICAoY29tcGxl
dGluZy1yZWFkCisgICAgICAgICAgICAgICAgIkNvZGUgYmxvY2sgbGFuZ3VhZ2U6ICIKKyAgICAg
ICAgICAgICAgICBjYW5kaWRhdGVzCisgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAg
ICAgJ2NvbmZpcm0gOyBQcm9tcHQgaWYgdGhlIGxhbmd1YWdlIGlzIG5vdCBvbiBvdXIgbGlzdC4K
KyAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbGFuZ3Vh
Z2UtaGlzdG9yeSkpKSkpCisgIChsZXQgKChmZW5jZS1zdHJpbmcgKG1ha2Utc3RyaW5nIDMgY2hh
cikpKQorICAgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgICAobGV0ICgoYmVnIChyZWdpb24t
YmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpKQorICAgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAg
ICAodW5sZXNzIChib2xwKSAoaW5zZXJ0ICJcbiIpKQorICAgICAgICAgICAgKGluc2VydCBmZW5j
ZS1zdHJpbmcgIlxuIikKKyAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAg
KGluc2VydCBmZW5jZS1zdHJpbmcgbGFuZ3VhZ2UgIlxuIikpKQorICAgICAgKGluc2VydCBmZW5j
ZS1zdHJpbmcgbGFuZ3VhZ2UgIlxuXG4iIGZlbmNlLXN0cmluZykKKyAgICAgIChmb3J3YXJkLWxp
bmUgLTEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlICgpCisg
ICJJbnNlcnQgYSBibG9jayBxdW90ZS4iCisgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgKGxl
dCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAoZW5kIChjb3B5LW1hcmtl
ciAocmVnaW9uLWVuZCkpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdv
dG8tY2hhciBiZWcpCisgICAgICAgICAgKHdoaWxlICg8IChwb2ludCkgZW5kKQorICAgICAgICAg
ICAgKGluc2VydCAiPiAiKQorICAgICAgICAgICAgKGZvcndhcmQtbGluZSAxKSkpKQorICAgIChp
bnNlcnQgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyICgpCisg
ICJJbnNlcnQgYSBob3Jpem9udGFsIHJ1bGUuIgorICAodW5sZXNzIChib2xwKSAoaW5zZXJ0ICJc
biIpKQorICAoaW5zZXJ0ICJcbi0tLVxuXG4iKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1hcHBs
eS1lbGxpcHNpcyAoKQorICAiQXBwbHkgYG1hcmtkb3duLXRzLWVsbGlwc2lzJyB0byB0aGUgY3Vy
cmVudCBidWZmZXIncyBkaXNwbGF5IHRhYmxlLiIKKyAgKGlmIChhbmQgKHN0cmluZ3AgbWFya2Rv
d24tdHMtZWxsaXBzaXMpCisgICAgICAgICAgIChub3QgKHN0cmluZy1lbXB0eS1wIG1hcmtkb3du
LXRzLWVsbGlwc2lzKSkpCisgICAgICAobGV0ICgodGFibGUgKG9yIGJ1ZmZlci1kaXNwbGF5LXRh
YmxlCisgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWRpc3BsYXktdGFibGUpKSkpCisgICAg
ICAgIChzZXQtZGlzcGxheS10YWJsZS1zbG90CisgICAgICAgICB0YWJsZSA0CisgICAgICAgICAo
dmNvbmNhdCAobWFwY2FyIChsYW1iZGEgKGMpIChtYWtlLWdseXBoLWNvZGUgYyAnc2hhZG93KSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtZWxsaXBzaXMpKSkKKyAgICAg
ICAgKHNldHEgYnVmZmVyLWRpc3BsYXktdGFibGUgdGFibGUpKQorICAgICh3aGVuIGJ1ZmZlci1k
aXNwbGF5LXRhYmxlCisgICAgICAoc2V0LWRpc3BsYXktdGFibGUtc2xvdCBidWZmZXItZGlzcGxh
eS10YWJsZSA0IG5pbCkpKSkKKworOzs7IE1ham9yIG1vZGU6CisKKyhkZWZ1biBtYXJrZG93bi10
cy1vdXRsaW5lLWN5Y2xlICgpCisgICJDeWNsZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWFkaW5nIGF0
IHBvaW50LgorT24gYSBoZWFkaW5nLCBjYWxsIGBvdXRsaW5lLWN5Y2xlJy4gIE90aGVyd2lzZSBk
byBub3RoaW5nLiIKKyAgKGludGVyYWN0aXZlKQorICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5n
LXApCisgICAgKG91dGxpbmUtY3ljbGUpKSkKKworKGRlZnZhci1rZXltYXAgbWFya2Rvd24tdHMt
bW9kZS1tYXAKKyAgOmRvYyAiS2V5bWFwIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgorICAiTS08
bGVmdD4iICAgICMnbWFya2Rvd24tdHMtcHJvbW90ZQorICAiTS08cmlnaHQ+IiAgICMnbWFya2Rv
d24tdHMtZGVtb3RlCisgICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUt
dXAKKyAgIk0tPGRvd24+IiAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duCisgICJD
LWMgQy1uIiAgICAgIydvdXRsaW5lLW5leHQtaGVhZGluZworICAiQy1jIEMtcCIgICAgICMnb3V0
bGluZS1wcmV2aW91cy1oZWFkaW5nCisgICJDLWMgQy11IiAgICAgIydvdXRsaW5lLXVwLWhlYWRp
bmcKKyAgIkMtYyBDLWYiICAgICAjJ291dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICJDLWMg
Qy1iIiAgICAgIydvdXRsaW5lLWJhY2t3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBDLXggQy1mIiAj
J21hcmtkb3duLXRzLWVtcGhhc2l6ZQorICAiQy1jIEMteCBDLW0iICMnbWFya2Rvd24tdHMtdG9n
Z2xlLWhpZGUtbWFya3VwCisgICJDLWMgQy14IEMtdiIgIydtYXJrZG93bi10cy10b2dnbGUtaW5s
aW5lLWltYWdlcworICAiQy1jIEMtYyIgICAgICMnbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94
CisgICJDLWMgQy1yIiAgICAgIydtYXJrZG93bi10cy1yZW51bWJlci1saXN0CisgICJDLWMgQy0s
IiAgICAgIydtYXJrZG93bi10cy1pbnNlcnQtc3RydWN0dXJlCisgICJDLWMgQy12IG4iICAgIydt
YXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jaworICAiQy1jIEMtdiBwIiAgICMnbWFy
a2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrCisgICJSRVQiICAgICAgICAgIydt
YXJrZG93bi10cy1uZXdsaW5lCisgICJNLVJFVCIgICAgICAgIydtYXJrZG93bi10cy1pbnNlcnQt
bGlzdC1pdGVtCisgICJUQUIiICAgICAgICAgIydtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlKQor
CisoZGVmdmFyLWtleW1hcCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZS1tYXAK
KyAgOmRvYyAiS2V5bWFwIGZvciBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUn
LgorVGhlc2Ugb3ZlcnJpZGUga2V5cyBpbiBgbWFya2Rvd24tdHMtbW9kZS1tYXAnIHRvIHN1cHBv
cnQgZXhlY3V0aW5nIHRoZWlyCitjb21tYW5kcyBpbiBhIGNvZGUtYmxvY2sgY29udGV4dC4iCisg
IDpwYXJlbnQgbWFya2Rvd24tdHMtbW9kZS1tYXAKKyAgIk0tLiIgICAgICAgICAjJ21hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLXhyZWYtZmluZC1kZWZpbml0aW9ucworICAiVEFCIiAgICAgICAgICMn
aW5kZW50LWZvci10YWItY29tbWFuZAorICAiUkVUIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stbmV3bGluZQorICAiQy1qIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxv
Y2stbmV3bGluZQorICAiTS1SRVQiICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3
bGluZQorICAiTS1xIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJh
Z3JhcGgpCisKKyhlYXN5LW1lbnUtZGVmaW5lIG1hcmtkb3duLXRzLW1vZGUtbWVudSBtYXJrZG93
bi10cy1tb2RlLW1hcAorICAiYG1hcmtkb3duLXRzLW1vZGUnIG1lbnUuIgorICAnKCJNYXJrZG93
biIgOnZpc2libGUgbWFya2Rvd24tdHMtbWVudS1iYXItc2hvdworICAgICItLSIKKyAgICBbIkN5
Y2xlIE91dGxpbmUgVmlzaWJpbGl0eSIgbWFya2Rvd24tdHMtb3V0bGluZS1jeWNsZQorICAgICA6
aGVscCAiQ3ljbGUgaGVhZGluZyB2aXNpYmlsaXR5IGZyb20gcG9pbnQiXQorICAgIFsiVG9nZ2xl
IEhpZGUgTWFya3VwIiBtYXJrZG93bi10cy10b2dnbGUtaGlkZS1tYXJrdXAKKyAgICAgOnN0eWxl
IHRvZ2dsZSA6c2VsZWN0ZWQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgOmhlbHAgIlRv
Z2dsZSBkaXNwbGF5IG9mIG1hcmt1cCBjaGFyYWN0ZXJzIl0KKyAgICBbIlRvZ2dsZSBJbmxpbmUg
SW1hZ2VzIiBtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcworICAgICA6c3R5bGUgdG9n
Z2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAgIDpoZWxwICJUb2dn
bGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGJlbG93IGxpbmtzIl0KKyAgICAiLS0iCisgICAg
WyJVcCIgb3V0bGluZS11cC1oZWFkaW5nCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwYXJlbnQg
aGVhZGluZyJdCisgICAgWyJOZXh0IiBvdXRsaW5lLW5leHQtaGVhZGluZworICAgICA6aGVscCAi
TW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIl0KKyAgICBbIlByZXZpb3VzIiBvdXRsaW5lLXByZXZp
b3VzLWhlYWRpbmcKKyAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIHByZXZpb3VzIGhlYWRpbmciXQor
ICAgIFsiTmV4dCBTYW1lIExldmVsIiBvdXRsaW5lLWZvcndhcmQtc2FtZS1sZXZlbAorICAgICA6
aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICBb
IlByZXZpb3VzIFNhbWUgTGV2ZWwiIG91dGxpbmUtYmFja3dhcmQtc2FtZS1sZXZlbAorICAgICA6
aGVscCAiTW92ZSB0byB0aGUgcHJldmlvdXMgaGVhZGluZyBhdCB0aGUgc2FtZSBsZXZlbCJdCisg
ICAgIi0tIgorICAgIFsiSnVtcCIgaW1lbnUKKyAgICAgOmhlbHAgIkp1bXAgdG8gYSBoZWFkaW5n
IHZpYSBjb21wbGV0aW9uIl0KKyAgICAiLS0iCisgICAgWyJNb3ZlIFN1YnRyZWUgVXAiIG1hcmtk
b3duLXRzLW1vdmUtc3VidHJlZS11cAorICAgICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBzZWN0
aW9uIG9yIGxpc3QgaXRlbSB1cCJdCisgICAgWyJNb3ZlIFN1YnRyZWUgRG93biIgbWFya2Rvd24t
dHMtbW92ZS1zdWJ0cmVlLWRvd24KKyAgICAgOmhlbHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlv
biBvciBsaXN0IGl0ZW0gZG93biJdCisgICAgWyJQcm9tb3RlIiBtYXJrZG93bi10cy1wcm9tb3Rl
CisgICAgIDpoZWxwICJQcm9tb3RlIGhlYWRpbmcgb3IgbGlzdCBpdGVtIl0KKyAgICBbIkRlbW90
ZSIgbWFya2Rvd24tdHMtZGVtb3RlCisgICAgIDpoZWxwICJEZW1vdGUgaGVhZGluZyBvciBsaXN0
IGl0ZW0iXQorICAgICItLSIKKyAgICBbIkVtcGhhc2lzLi4uIiBtYXJrZG93bi10cy1lbXBoYXNp
emUKKyAgICAgOmhlbHAgIkFkZCBvciBjaGFuZ2UgZW1waGFzaXMgb24gcmVnaW9uIl0KKyAgICBb
IkFkZCBCbG9jayBTdHJ1Y3R1cmUiIG1hcmtkb3duLXRzLWluc2VydC1zdHJ1Y3R1cmUKKyAgICAg
OmhlbHAgIkluc2VydCBhIGNvZGUgYmxvY2ssIHF1b3RlLCBvciBvdGhlciBzdHJ1Y3R1cmUiXQor
ICAgICItLSIKKyAgICBbIlRvZ2dsZSBDaGVja2JveCIgbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNr
Ym94CisgICAgIDpoZWxwICJUb2dnbGUgdGFzayBsaXN0IGNoZWNrYm94IGF0IHBvaW50Il0KKyAg
ICBbIk5ldyBMaXN0IEl0ZW0iIG1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0KKyAgICAgOmhl
bHAgIkluc2VydCBhIG5ldyBsaXN0IGl0ZW0gYWZ0ZXIgdGhlIGN1cnJlbnQgb25lIl0KKyAgICBb
IlJlbnVtYmVyIExpc3QiIG1hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QKKyAgICAgOmhlbHAgIlJl
bnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9pbnQiXSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tc2V0LXVwICgpCisgICJTZXQgdXAgdGhlIGJ1ZmZlciBmb3IgYG1hcmtkb3duLXRzLW1vZGUn
LgorSWYgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lJyBpcyBub24tbmlsLCB1c2UgYSBsaWdo
dHdlaWdodCBzZXQgdXAgZm9yCitlbWJlZGRlZCBpbmxpbmUgYG1hcmtkb3duLXRzLW1vZGUnIGJ1
ZmZlcnMuCisKK05PVEU6IENhbGwgdGhpcyBmdW5jdGlvbiBvbmx5IHdoZW4gdGhlIHRyZWVzaXQg
YG1hcmtkb3duJyBhbmQKK2BtYXJrZG93bi1pbmxpbmUnIHBhcnNlcnMgYXJlIGF2YWlsYWJsZS4i
CisKKyAgOzsgU2V0IHRoZXNlIHVwIGZvciBib3RoIG1hc3RlciBhbmQgaW5saW5lIGZvciBjb2Rl
LWJsb2NrIGJ1ZmZlcnMuCisgIChzZXRxLWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIgorICAg
ICAgICAgICAgICBjb21tZW50LWVuZCAiIC0tPiIKKyAgICAgICAgICAgICAgY29tbWVudC1zdGFy
dC1za2lwICI8IS0tWyBcdF0qIgorICAgICAgICAgICAgICBjb21tZW50LWVuZC1za2lwICJbIFx0
XSotLT4iCisgICAgICAgICAgICAgIGNvbW1lbnQtdXNlLXN5bnRheCBuaWwpCisKKyAgKHNldHEt
bG9jYWwgZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIydtYXJrZG93bi10
cy0tZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAgICAgZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1m
dW5jdGlvbgorICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdy
YXBoKQorCisgIDs7IGBhZGFwdGl2ZS1maWxsLWZ1bmN0aW9uJyB0YWtlcyBwcmVjZWRlbmNlIG92
ZXIKKyAgOzsgYGFkYXB0aXZlLWZpbGwtcmVnZXhwJzsgdGhlIGRlZmF1bHQgcmVnZXhwIGlzIGZp
bmUgYXMgYQorICA7OyBmYWxsYmFjayBmb3IgcGxhaW4gKG5vbi1saXN0KSBwYXJhZ3JhcGhzLgor
ICAoc2V0cS1sb2NhbCBhZGFwdGl2ZS1maWxsLWZ1bmN0aW9uICMnbWFya2Rvd24tdHMtLWFkYXB0
aXZlLWZpbGwpCisKKyAgOzsgQ3JlYXRlIGFuZCBjb25maWd1cmUgdGhlIHBhcnNlcnMuCisgICh0
cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3duLWlubGluZSkKKyAgKHNldHEgdHJlZXNpdC1w
cmltYXJ5LXBhcnNlcgorICAgICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikp
CisKKyAgKHNldHEtbG9jYWwgZm9udC1sb2NrLWRlZmF1bHRzIG5pbCkKICAgKHNldHEtbG9jYWwg
dHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3Mp
Ci0gIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5n
ZS1zZXR0aW5ncykpCi0gIChhZGQtdG8tbGlzdCAnZm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJv
cHMgJ2ludmlzaWJsZSkKLQotICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCi0gICAg
KHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnaHRtbCkKLSAgICAocmVxdWlyZSAnaHRtbC10cy1tb2Rl
KQotICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRl
ZnZhciBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAo
c2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChh
cHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAg
IGh0bWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVl
c2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJn
ZS1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQt
Zm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1z
ZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwot
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAg
ICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKLSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9z
dCAnbWFya2Rvd24KLSAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAg
ICAgICAgICAgICAgICAgICcoKGh0bWxfYmxvY2spIEBodG1sKQotCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgOmVtYmVkICdodG1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21h
cmtkb3duLWlubGluZQotICAgICAgICAgICAgICAgICAgICAgICAgICcoKGh0bWxfdGFnKSBAaHRt
bCkpKSkpCi0KLSAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAneWFtbCB0KQotICAgIChyZXF1aXJl
ICd5YW1sLXRzLW1vZGUpCi0gICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0
aW5ncykKLSAgICAoZGVmdmFyIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkK
LSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAg
ICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2Nh
bCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNp
dC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQt
Zm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0
dGluZ3MKLSAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgOmVtYmVkICd5YW1sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3Qg
J21hcmtkb3duCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAnKChtaW51c19tZXRhZGF0YSkgQHlhbWwpKSkpKQotCi0gICh3aGVuICh0
cmVlc2l0LXJlYWR5LXAgJ3RvbWwgdCkKLSAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQotICAg
IChkZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB0
b21sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpCi0gICAgKHNldHEgdHJlZXNpdC1m
b250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNl
dHRpbmdzCi0gICAgICAgICAgICAgICAgICB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5n
cykpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAg
ICAgICAgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAg
ICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKLSAgICAoc2V0cS1sb2Nh
bCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0
LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1y
dWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAndG9tbAotICAgICAgICAgICAg
ICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgIDps
b2NhbCB0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwp
KSkpKQorICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVs
aW1pdGVyIGhlYWRpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChwYXJhZ3JhcGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwYXJhZ3JhcGgtaW5saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoaW1hZ2UtcHJldmlldykpKQorCisgIChjb25kIChtYXJrZG93
bi10cy0tc2V0LXVwLWlubGluZQorICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Ut
c2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAg
ICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAg
ICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgJygoaW5s
aW5lKSBAbWFya2Rvd24taW5saW5lKSkpKQorICAgICAgICAodAorICAgICAgICAgOzsgUmFuZ2Ug
c2V0dGluZ3MgZGlmZmVyIGluIHRoZSBtYXN0ZXIgYnVmZmVyIHZzLiBpbmxpbmUgYWJvdmUuCisg
ICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzIChtYXJrZG93bi10cy0t
cmFuZ2Utc2V0dGluZ3MpKQorCisgICAgICAgICA7OyBDb25maWd1cmUgZmVhdHVyZXMgbmVlZGVk
IG9ubHkgaW4gdGhlIG1hc3RlciBidWZmZXIuCisKKyAgICAgICAgIDs7IEltZW51IHN1cHBvcnQu
CisgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0aW5ncworICAg
ICAgICAgICAgICAgICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy0taW1lbnUtaGVh
ZGluZy1ub2RlLXAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0t
aW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAoIkNv
ZGUgQmxvY2tzIiAsIydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1u
YW1lLWZ1bmN0aW9uKSkpCisKKyAgICAgICAgIDs7IE91dGxpbmUgc3VwcG9ydC4KKyAgICAgICAg
IChzZXRxLWxvY2FsIHRyZWVzaXQtb3V0bGluZS1wcmVkaWNhdGUgIydtYXJrZG93bi10cy0tb3V0
bGluZS1wcmVkaWNhdGUpCisgICAgICAgICAoc2V0cS1sb2NhbCBvdXRsaW5lLW1pbm9yLW1vZGUt
Y3ljbGUgdCkKKyAgICAgICAgIChvdXRsaW5lLW1pbm9yLW1vZGUgMSkKKyAgICAgICAgIChtYXJr
ZG93bi10cy0tYXBwbHktZWxsaXBzaXMpCisKKyAgICAgICAgIDs7IE5PVEU6IGBvdXRsaW5lLXZp
ZXctY2hhbmdlLWhvb2snIHdhcyBvYnNvbGV0ZWQgaW4gMjkuMSAoY29tbWl0CisgICAgICAgICA7
OyA1M2IxZTZmOTZjYikgb24gdGhlIGdyb3VuZHMgdGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0
LCBidXQgbm8KKyAgICAgICAgIDs7IHJlcGxhY2VtZW50IHdhcyBwcm92aWRlZCBhbmQgb3V0bGlu
ZS5lbCBpdHNlbGYgc3RpbGwgcnVucyB0aGUgaG9vaworICAgICAgICAgOzsgaW4gMTArIHBsYWNl
cy4KKyAgICAgICAgICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChvYnNvbGV0ZSBvdXRsaW5l
LXZpZXctY2hhbmdlLWhvb2spKQorICAgICAgICAgICAoYWRkLWhvb2sgJ291dGxpbmUtdmlldy1j
aGFuZ2UtaG9vaworICAgICAgICAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tb3V0bGluZS12
aWV3LWNoYW5nZSBuaWwgdCkpCisKKyAgICAgICAgIChwcm9nbgorICAgICAgICAgICAobWFrZS1s
b2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAgICAgICAgIChtYWtl
LWxvY2FsLXZhcmlhYmxlICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcykKKyAgICAgICAg
ICAgKGRvbGlzdCAocHJvcCAnKGludmlzaWJsZSBkaXNwbGF5IGJ1dHRvbiBjYXRlZ29yeSBhY3Rp
b24gaGVscC1lY2hvKSkKKyAgICAgICAgICAgICAoYWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRy
YS1tYW5hZ2VkLXByb3BzIHByb3ApKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHkt
cCAnaHRtbCB0KQorICAgICAgICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdodG1sKQorICAg
ICAgICAgICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwt
dHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMt
bW9kZS0tdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAoc2V0cS1s
b2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAo
YXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaHRtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAo
c2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAg
ICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAg
ICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlz
dCkpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAg
ICAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdodG1sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDpob3N0ICdtYXJrZG93bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA6bG9jYWwgdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX2Jsb2Nr
KSBAaHRtbCkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQor
CisgICAgICAgICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICd5YW1sIHQpCisgICAgICAgICAgIChy
ZXF1aXJlICd5YW1sLXRzLW1vZGUpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1m
b250LWxvY2stc2V0dGluZ3MpCisgICAgICAgICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250
LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQt
bG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9u
dC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1t
b2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdHJl
ZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICB5YW1s
LXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0cS1sb2Nh
bCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQg
dHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0
cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJl
ZCAneWFtbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJygobWludXNfbWV0YWRhdGEpIEB5YW1sKSkpKSkKKworICAgICAg
ICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAndG9tbCB0KQorICAgICAgICAgICAocmVxdWlyZSAn
dG9tbC10cy1tb2RlKQorICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2Nr
LXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZl
YXR1cmUtbGlzdCkKKyAgICAgICAgICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MK
KyAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAg
ICAgICAgICAgICAgICAgICAgICAgIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkK
KyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Cisg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlz
dAorICAgICAgICAgICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVy
ZS1saXN0KSkKKyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwor
ICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ3RvbWwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDpsb2NhbCB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKHBsdXNf
bWV0YWRhdGEpIEB0b21sKSkpKSkKKworICAgICAgICAgOzsgU3VwcG9ydCBmb3IgZXhlY3V0aW5n
IGNvbW1hbmRzIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorICAgICAgICAgOzsgR2F0ZWQgYnkg
YG1hcmtkb3duLXRzLWVuYWJsZS1jb2RlLWJsb2NrLWNvbnRleHQtbW9kZScuCisgICAgICAgICAo
d2hlbiBtYXJrZG93bi10cy1lbmFibGUtY29kZS1ibG9jay1jb250ZXh0LW1vZGUKKyAgICAgICAg
ICAgOzsgRW5hYmxlIHRoZSBtaW5vciBtb2RlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbnRl
eHQtbW9kZScgYW5kCisgICAgICAgICAgIDs7IGl0cyBrZXltYXAgd2hlbiBwb2ludCBpcyB3aXRo
aW4gYSBjb2RlIGJsb2NrLgorICAgICAgICAgICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29r
CisgICAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9jay1j
b250ZXh0LW1vZGUgbmlsICdsb2NhbCkKKyAgICAgICAgICAgOzsgSWYgYHNhdmUtcGxhY2UtbW9k
ZScgb3Igc2ltaWxhciBpcyB1c2VkLCBwb2ludCBjb3VsZCBzdGFydCB3aXRoaW4KKyAgICAgICAg
ICAgOzsgYSBjb2RlIGJsb2NrIHNvIGluaXRpYWxpemUgdGhhdCBzdGF0ZS4KKyAgICAgICAgICAg
KHJ1bi13aXRoLWlkbGUtdGltZXIgMC4wMSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIydtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2stY29udGV4dC1tb2RlKQorICAg
ICAgICAgICA7OyBGb3IgZWFjaCBlbGlnaWJsZSBjb21tYW5kLCBleGVjdXRlIGl0IGluIGEgY29k
ZS1ibG9jayBjb250ZXh0LAorICAgICAgICAgICA7OyBvdGhlcndpc2UgaW4gdGhlIGBtYXJrZG93
bi10cy1tb2RlJyBidWZmZXIncyBjb250ZXh0LgorICAgICAgICAgICAoYWRkLWhvb2sgJ3ByZS1j
b21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLW1heWJlLXJ1
bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgbmlsICdsb2NhbCkpKSkKIAogICAodHJlZXNpdC1tYWpv
ci1tb2RlLXNldHVwKQotICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCkpCisKKyAgOzsgRG8gbm90IGVuYWJsZSBgaml0LWxvY2stbW9kZScgaW4g
aW5kaXJlY3QgYnVmZmVycyBzdWNoIGFzIHRoZSBvbmUKKyAgOzsgd2UgdXNlIGZvciBjb2RlIGJs
b2NrIGNvbW1hbmRzLgorICAodW5sZXNzIChidWZmZXItYmFzZS1idWZmZXIpCisgICAgKGppdC1s
b2NrLXJlZ2lzdGVyICMnbWFya2Rvd24tdHMtLWZvbnRpZnktYmFyZS11cmkpKQorCisgICh1bmxl
c3MgbWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAgICA7OyBPcmRlciBtYXR0ZXJzOiBgbWFy
a2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCcgY2FsbHMgYGZvbnQtbG9jay1mbHVzaCcKKyAgICA7
OyAob25seSBtZWFuaW5nZnVsIG9uY2UgYHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCcgaGFzIHdp
cmVkIHVwCisgICAgOzsgZm9udC1sb2NrKSwgYW5kIGBtYXJrZG93bi10cy1kZWZhdWx0LWZvbGRp
bmcnIGNhbGxzIG91dGxpbmUKKyAgICA7OyBjb21tYW5kcyB0aGF0IHJlbHkgb24gYG91dGxpbmUt
c2VhcmNoLWZ1bmN0aW9uJywgd2hpY2gKKyAgICA7OyBgdHJlZXNpdC1tYWpvci1tb2RlLXNldHVw
JyBpbnN0YWxscyBmcm9tIGB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlJy4KKyAgICAobWFya2Rv
d24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICA7OyBS
ZXNwZWN0IHRoZSB1c2VyJ3MgZGVmYXVsdCBvdXRsaW5lIGZvbGRpbmcuCisgICAgKHBjYXNlIG1h
cmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZworICAgICAgKCdzaG93LWFsbCAoaWdub3JlKSkKKyAg
ICAgICgnZm9sZC1hbGwgKG91dGxpbmUtaGlkZS1zdWJsZXZlbHMgMSkpCisgICAgICAoJ2ZvbGQt
aGVhZGluZ3MgKG91dGxpbmUtc2hvdy1hbGwpCisgICAgICAgICAgICAgICAgICAgICAgKG91dGxp
bmUtaGlkZS1yZWdpb24tYm9keSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycyAoYXJnKQorICAiSW5zdGFsbCBgbWFy
a2Rvd24tdHMtbW9kZScgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgcGFyc2Vycy4KK0lmIG5lZWRlZCwg
aW5zdGFsbCB0aGUgcmVxdWlyZWQgcGFyc2VycyBmb3IgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3du
LWlubGluZScuCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBBUkcsIGlmIG5lZWRlZCwgaW5zdGFs
bCBwYXJzZXJzIGZvciBgaHRtbCcsCitgeWFtbCcsIGFuZCBgdG9tbCcuIgorICAoaW50ZXJhY3Rp
dmUgIlAiKQorICAodW5sZXNzICh0cmVlc2l0LXJlYWR5LXAgJ21hcmtkb3duIHQpCisgICAgKHRy
ZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICdtYXJrZG93bikpCisgICh1bmxlc3MgKHRy
ZWVzaXQtcmVhZHktcCAnbWFya2Rvd24taW5saW5lIHQpCisgICAgKHRyZWVzaXQtaW5zdGFsbC1s
YW5ndWFnZS1ncmFtbWFyICdtYXJrZG93bi1pbmxpbmUpKQorICAod2hlbiBhcmcKKyAgICAodW5s
ZXNzICh0cmVlc2l0LXJlYWR5LXAgJ2h0bWwgdCkKKyAgICAgIChyZXF1aXJlICdodG1sLXRzLW1v
ZGUpCisgICAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ2h0bWwpKQorICAg
ICh1bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAneWFtbCB0KQorICAgICAgKHJlcXVpcmUgJ3lhbWwt
dHMtbW9kZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hciAneWFtbCkp
CisgICAgKHVubGVzcyAodHJlZXNpdC1yZWFkeS1wICd0b21sIHQpCisgICAgICAocmVxdWlyZSAn
dG9tbC10cy1tb2RlKQorICAgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICd0
b21sKSkpKQogCiA7OzsjIyNhdXRvbG9hZAogKGRlZmluZS1kZXJpdmVkLW1vZGUgbWFya2Rvd24t
dHMtbW9kZSB0ZXh0LW1vZGUgIk1hcmtkb3duIgotICAiTWFqb3IgbW9kZSBmb3IgZWRpdGluZyBN
YXJrZG93biB1c2luZyB0cmVlLXNpdHRlciBncmFtbWFyLiIKLQotICAoc2V0cS1sb2NhbCBjb21t
ZW50LXN0YXJ0ICI8IS0tICIpCi0gIChzZXRxLWxvY2FsIGNvbW1lbnQtZW5kICIgLS0+IikKLQot
ICAoc2V0cS1sb2NhbCBmb250LWxvY2stZGVmYXVsdHMgbmlsCi0JICAgICAgdHJlZXNpdC1mb250
LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBoZWFkaW5nKQotCQkJCQkgICAgICAgKHBh
cmFncmFwaCkKLQkJCQkJICAgICAgIChwYXJhZ3JhcGgtaW5saW5lKSkpCi0KLSAgKHNldHEtbG9j
YWwgdHJlZXNpdC1zaW1wbGUtaW1lbnUtc2V0dGluZ3MKLSAgICAgICAgICAgICAgYCgoIkhlYWRp
bmdzIiAsIydtYXJrZG93bi10cy1pbWVudS1ub2RlLXAKLSAgICAgICAgICAgICAgICAgbmlsICwj
J21hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24pKSkKLSAgKHNldHEtbG9jYWwgdHJlZXNp
dC1vdXRsaW5lLXByZWRpY2F0ZSAjJ21hcmtkb3duLXRzLW91dGxpbmUtcHJlZGljYXRlKQotCi0g
ICh3aGVuIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAnbWFya2Rvd24pCi0gICAgICAg
ICAgICAgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAnbWFya2Rvd24taW5saW5lKSkKLSAgICAo
dHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bi1pbmxpbmUpCi0gICAgKHRyZWVzaXQtcGFy
c2VyLWNyZWF0ZSAnbWFya2Rvd24pCi0gICAgKG1hcmtkb3duLXRzLXNldHVwKSkpCisgICJNYWpv
ciBtb2RlIGZvciBlZGl0aW5nIE1hcmtkb3duIHVzaW5nIHRyZWUtc2l0dGVyIGdyYW1tYXIuCitO
T1RFOiBTZWUgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lJy4iCisgIChpZiAoYW5kICh0cmVl
c2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3duKQorICAgICAgICAgICAodHJlZXNpdC1lbnN1
cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpKQorICAgICAgKG1hcmtkb3duLXRzLS1zZXQt
dXApCisgICAgKHdhcm4gIm1hcmtkb3duLXRzLW1vZGUgY2Fubm90IGJlIHNldCB1cDsgdXNpbmcg
ZnVuZGFtZW50YWwtbW9kZS4KK1RoZSB0cmVlLXNpdHRlciBwYXJzZXJzIGBtYXJrZG93bicgYW5k
IGBtYXJrZG93bi1pbmxpbmUnIHdlcmUgbm90IGZvdW5kLgorVXNlIHRoZSBjb21tYW5kIGBtYXJr
ZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycycgdG8gaW5zdGFsbCB0aGVtLgorV2l0aCBhIHBy
ZWZpeCBhcmd1bWVudCwgaXQgY2FuIGFsc28gaW5zdGFsbCBvcHRpb25hbCBwYXJzZXJzLiIpCisg
ICAgKGZ1bmRhbWVudGFsLW1vZGUpKSkKIAogKGRlcml2ZWQtbW9kZS1hZGQtcGFyZW50cyAnbWFy
a2Rvd24tdHMtbW9kZSAnKG1hcmtkb3duLW1vZGUpKQogCi07OzsjIyNhdXRvbG9hZAotKGRlZnVu
IG1hcmtkb3duLXRzLW1vZGUtbWF5YmUgKCkKLSAgIkVuYWJsZSBgbWFya2Rvd24tdHMtbW9kZScg
d2hlbiBpdHMgZ3JhbW1hciBpcyBhdmFpbGFibGUuCi1BbHNvIHByb3Bvc2UgdG8gaW5zdGFsbCB0
aGUgZ3JhbW1hciB3aGVuIGB0cmVlc2l0LWVuYWJsZWQtbW9kZXMnCi1pcyB0IG9yIGNvbnRhaW5z
IHRoZSBtb2RlIG5hbWUuIgotICAoZGVjbGFyZS1mdW5jdGlvbiB0cmVlc2l0LWxhbmd1YWdlLWF2
YWlsYWJsZS1wICJ0cmVlc2l0LmMiKQotICAoaWYgKG9yICh0cmVlc2l0LWxhbmd1YWdlLWF2YWls
YWJsZS1wICdtYXJrZG93bikKLSAgICAgICAgICAoZXEgdHJlZXNpdC1lbmFibGVkLW1vZGVzIHQp
Ci0gICAgICAgICAgKG1lbXEgJ21hcmtkb3duLXRzLW1vZGUgdHJlZXNpdC1lbmFibGVkLW1vZGVz
KSkKLSAgICAgIChtYXJrZG93bi10cy1tb2RlKQotICAgIChmdW5kYW1lbnRhbC1tb2RlKSkpCiso
ZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb250ZXh0LW1vZGUKKyAg
Ik1vZGUgZW5hYmxlZCBpZiBwb2ludCBpcyB3aXRoaW4gYSBmZW5jZWQgY29kZSBibG9jay4iCisg
IDppbnRlcmFjdGl2ZSBuaWwpCiAKIDs7OyMjI2F1dG9sb2FkCiAod2hlbiAoYm91bmRwICd0cmVl
c2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QpCi0gIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFs
aXN0ICcoIlxcLm1kXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUpKQotICA7OyBUbyBiZSBh
YmxlIHRvIHRvZ2dsZSBiZXR3ZWVuIGFuIGV4dGVybmFsIHBhY2thZ2UgYW5kIGNvcmUgdHMtbW9k
ZToKKyAgKGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwubWRcXCciIC4gbWFya2Rv
d24tdHMtbW9kZSkpCisgIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxcLm1hcmtk
b3duXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1h
bGlzdCAnKCJcXC5tZHhcXCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCiAgIChhZGQtdG8tbGlzdCAn
dHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFsaXN0CiAgICAgICAgICAgICAgICAnKG1hcmtkb3du
LW1vZGUgLiBtYXJrZG93bi10cy1tb2RlKSkpCiAKLS0gCjIuNTMuMAoK
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 14 Apr 2026 16:44:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 14 12:44:18 2026
Received: from localhost ([127.0.0.1]:50189 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wCgs5-0003is-49
	for submit <at> debbugs.gnu.org; Tue, 14 Apr 2026 12:44:18 -0400
Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]:51302)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1wCgs2-0003ik-M9
 for 80740 <at> debbugs.gnu.org; Tue, 14 Apr 2026 12:44:16 -0400
Received: by mail-vs1-xe33.google.com with SMTP id
 ada2fe7eead31-6057723d553so3369890137.2
 for <80740 <at> debbugs.gnu.org>; Tue, 14 Apr 2026 09:44:14 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1776185054; cv=none;
 d=google.com; s=arc-20240605;
 b=gFn1c27ybErREzzO2nNm0P4mHg81PGANpTO8bh+XpFO+S4Wql9V7esPcJaFkHddzpt
 zYx6jSkbLz0xyxYoR23qgbIM0X21MTD/MDPr1UkOn0GOP0kE7WVr2onTTL/Q5yyBMXrr
 GLbUV8pPVCTHy7XxTpxCOQQ/STONxC/PxdzdH3pC0bZhD4IauKA+AVoM2KcakAVp4rr2
 1O2//q/kfAYuQbdJZTlLokHKjIg8XtufR6dV5rNr2wCxliHMZS0RbDyuC+az12v3m0E5
 LWvQ/g0qfZODp5eO8wuFLj4YbSH4b7V+t0k/uIRIrowWCF1EeF0NzUReOntrwhFKxjrR
 CFfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=FMkITiLGn9ayfS1y5IwvjQDSiMmIBjArBxknqjAwuP4=;
 fh=z9ldecnLQJ03zaKK3UNdDJLvsxzArdtTZvWLVHDa2Cs=;
 b=Rjsw/RWB5bqQHUyUyqkuRhDC4D7drB215G68/kYUy6RwuI3qV4r7LAQYQym7wqmm+W
 c/lsb1cuioYU3LZnwe1mRfspPtWAfNru3oApLkkih+HniEQ+GvDb+gBVdXmZHklhztw7
 lwh9rJK2e3s242VvizRHN/IRxY2yBqo88l4B8HxVFDiPU+E1EYM2vesGqfp82nSa/F5J
 ei0jJ7Db+xqgcSu0w8zWYfUSLx/WKoVgIPAA74RgkbLsJ8RP9lqgaNis/Ti2zR3tBPgS
 8Wi9Ec8yXbeUPjazrM+w6lXTXy/jsXh+2MLnJ2vUGfOozkNZrP4dADIKKPLuyr1O33F4
 pfew==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1776185054; x=1776789854; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=FMkITiLGn9ayfS1y5IwvjQDSiMmIBjArBxknqjAwuP4=;
 b=N46ujkrASCHtUKmQ8L0nQeMCJTPwLGbrmd0y0uq5kK+d+ilP91EOWh97QgDfUjLizZ
 be+zYbpesdzLlGWorTyRa7yltEMMMmnb5oZUG0PPwe+37dEKqGe4S5jjilQJibob088d
 6Pzl2WwExRZo8yqe+K5I9Ubq076GFGhNZOgdvrUb/ToVS6P+p260quZ8gkXJeJjYug7n
 FaHGe2AqiHl3IJYHYoPuezjyq1zgABe7Xx9bPMM7hWSs/pmqaUowNiPl+WanfzfbS/IE
 IJKOpx3GGmSxiTaLYJSTP1kICOJbD/o0BDyO0u1zXeWE/iN7uVuBDoAQJr1H/G3iJ8NB
 mCAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1776185054; x=1776789854;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=FMkITiLGn9ayfS1y5IwvjQDSiMmIBjArBxknqjAwuP4=;
 b=V2xY1k83JQbsIFZ88JTgqidx/m/DLHz3e88Ehspj2IPz9hTSzUJTwllKlRe80WRnce
 1K5f5Z2CEarhw31xf9VcK25r5m28V6csFoc6JazUmEx2GG9UpXfrgTfW9R8OCnz4aikX
 /WA9EpvF0xmndA65uql6xrpu9vbnicGNQunz4IITFmlDKtyJhMvc3o+AFgIOONO3j2yh
 ekwqhJFSDnLUbVPTciRO/X1I5DYxU0Iyba95EXpWq1BQLi3phXu2wkeK9EJl5zfQCIDg
 otfD8OI3OXWxe8N+W/TNVcvMe4zyU/slyBAAx0JtVzXV1iB66IW0INQAVdMZlmF5791v
 7nFw==
X-Forwarded-Encrypted: i=1;
 AFNElJ+qKN1Tq2DyH5TzOPW81ASPe5mh6wDG0OSnrWmc3ipWsmAzbHODqgQ+NhWwIgmyuxVaP3sf3Q==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwXJ2WjmgZyCFpLsQua56MBQsXP8qxGZvcTp5oAXecJF7Edqk6Q
 SfvxyadW8FmkAMVowwkHI4O8owpyudiVT98gkFk8vNS16jWb/aHqo5oWR2A3EatnpX25crmuKvC
 2hOpAbSoIainY2RpLdXd8rn0n7ce/wlE=
X-Gm-Gg: AeBDietOABeMXs7xrzHvHiCFbXQ27gepDIr8oob+XIMuOPIYpiF6CYYQ/1tZj25iUoY
 URsKzuXnQ7SHLc4LZoyKXxnTGN8bbqwJdHpflkgIjVMGivVWGmOdTMj1NyNLlYBXCJQHkV0IfUb
 NfzzsGHzLm4Q/TSvmEZsBbI+m8DYRF/BbUhHukxNyZ8uHZkzXrtlUSb1CPix6USUYS9z54g9vTB
 3zfGuzISHW+SzQ8b/Dt19FKqtip/oCyE9Svd81gCEpdFnNIIncpsyJTtjD2Cs77b8nn9JTewd0O
 re8OA6XF6BSV0CZ/akZTtJUWiSTrORMLsU5weGJnmbsFYuJ1OOfbDGtcEod0hPK92/T/9UyP1Gh
 5svVbZCptv3OPgvU4q97aAzZvDtOCciVTpaa4fbWKXQ5aRnxn
X-Received: by 2002:a05:6102:26cc:b0:605:17b8:16dc with SMTP id
 ada2fe7eead31-60a00841e13mr8220671137.20.1776185053636; Tue, 14 Apr 2026
 09:44:13 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN> <m2ldevgapc.fsf@HIDDEN>
 <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
In-Reply-To: <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Tue, 14 Apr 2026 12:44:01 -0400
X-Gm-Features: AQROBzDPm_1MGPE1hU08Ky-7FL5WYT7lQ0IN5ZUx9GAzwc2kDTmubVpEVFzbAgI
Message-ID: <CAN+1HbpkcO_yEzrL8WrLbH4ofQ+YjiOSqcyraXJtVu4Siect2w@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Yuan Fu <casouri@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000002d6cb6064f6e4f42"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Eli Zaretskii <eliz@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

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

On Tue, Apr 14, 2026 at 2:35=E2=80=AFAM Yuan Fu <casouri@HIDDEN> wrote:

>
>
> > On Apr 9, 2026, at 1:06=E2=80=AFPM, Rahul Martim Juliato <rahuljuliato@=
gmail.com>
> wrote:
> >
> > Eli Zaretskii <eliz@HIDDEN> writes:
> >
> >>> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <
> rahuljuliato@HIDDEN>,
> >>> 80740 <at> debbugs.gnu.org
> >>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
> >>> Date: Wed, 08 Apr 2026 21:01:50 -0300
> >>
> >> These non-ASCII characters should not be used without checking if they
> >> can be displayed (see char-displayable-p).  This is especially
> >> important on TTY frames.  Bonus points for designing ASCII
> >> replacements for when these non-ASCII symbols cannot be displayed.
> >>
> >
> > Agreed.
> >
> > I changed those to be cons cells in the form of (rich-form . ansi-form)
> > or nil. :safe is used to ensure both elements have the same type. If
> > nil, it means nothing will be rendered when markup is hidden.
> >
> > I also added a resolver 'markdown-ts--resolve-display-value', to select
> > and check the symbols.
> >
> >>> +(defcustom markdown-ts-hard-line-break-space
> >>> +  (lambda (n) (make-string n ?=C2=B6))
> >>
> >> Why is ?=C2=B6 hard-coded, instead of using
> >> markdown-ts-hard-line-break-backslash?
> >>
> >
> >
> > It shouldn't be this way, you're right.
> >
> > 'markdown-ts-hard-line-break-space' now uses
> > 'markdown-ts-hard-line-break-backslash' as the default character.
> >
> >
> >>> +(defface markdown-ts-emphasis '((t (:inherit italic)))
> >>> +  "Face for Markdown emphasis (italic) text.")
> >>> +
> >>> +(defface markdown-ts-bold '((t (:inherit bold)))
> >>> +  "Face for Markdown strong emphasis (bold) text.")
> >>> +
> >>> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
> >>> +  "Face for Markdown strikethrough text.")
> >>>
> >>> (defface markdown-ts-block-quote '((t (:inherit italic)))
> >>>   "Face for Markdown block quotes.")
> >>>
> >>> +(defface markdown-ts-link '((t (:inherit link)))
> >>> +  "Face for Markdown link text and image descriptions.")
> >>
> >> Is it justified to have separate faces here?  Why would users want to
> >> have something other than 'bold' for showing the bold face in MD
> >> buffers?
> >>
> >> Also, faces can (and I think should in this case) have the :version
> >> tag.
> >>
> >
> > Good question. About 'markdown-ts-strikethrough', there is no generic
> > strikethrough face (that I could find) in Emacs to inherit from, so it
> > has to exist.
> >
> > For the others, the motivation is the same as in org-mode ('org-italic'=
,
> > 'org-bold', 'org-link') and rst-mode. The default inherits from the bas=
e
> > face so things look right out of the box, but users get a mode-specific
> > handle to customize without touching global faces. That alone is worth
> > it, but there is a second angle: it makes theming more controlled.
> >
> > When 'markdown-ts-hide-markup' is enabled, all markup characters
> > disappear and what remains is just the rendered text. A theme that want=
s
> > to give a subtle visual hint about the underlying markup, such as a
> > faint background on emphasis or a different tint on links, can do so by
> > targeting 'markdown-ts-emphasis' or 'markdown-ts-link' specifically,
> > without affecting every italic or linked piece of text in every other
> > buffer.
> >
> > Added :version tag to all faces.
> >
> >>> +(defun markdown-ts--code-block-language-mode (lang)
> >>> +  "Compute and cache a mode symbol from LANG, a symbol.
> >>> +Consult the `markdown-ts-code-block-map' cache, or probe mode names.
> >>> +Return a valid mode symbol or nil."
> >>> +  (if-let* ((mapped-mode (alist-get lang
> markdown-ts-code-block-modes)))
> >>> +      mapped-mode
> >>> +    (let ((lang-string (symbol-name lang)))
> >>> +      (catch :mode
> >>> +        (dolist (mode
> >>> +                 (list
> >>> +                  ;; Try a treesit mode using the raw string.
> >>> +                  (concat lang-string "-ts-mode")
> >>> +                  ;; Try a conventional mode using the raw string.
> >>> +                  (concat lang-string "-mode")
> >>> +                  ;; Try a treesit mode using the downcased string.
> >>> +                  (concat (downcase lang-string) "-ts-mode")
> >>> +                  ;; Try a conventional mode using the downcased
> string.
> >>> +                  (concat (downcase lang-string) "-mode")))
> >>> +          (setq mode (intern mode))
> >>> +          (when (fboundp mode)
> >>> +            (push (cons lang mode) markdown-ts-code-block-modes)
> >>> +            (throw :mode mode)))))))
> >>
> >> I think this should use treesit-major-mode-remap-alist and
> >> major-mode-remap-alist, at least before falling back on the above
> >> hard-coded conventional modes, if not instead that.  This will allow
> >> users to customize these remappings only once.
> >>
> >
> > Done. It now also checks both 'treesit-major-mode-remap-alist' and
> > 'major-mode-remap-alist'.
> >
> >>> +(define-minor-mode markdown-ts-code-block-mode
> >>> +  "Mode enabled if point is within a fenced code block."
> >>> +  :interactive nil)
> >>
> >> Does this mean this mode is enabled automatically?
> >>
> >> Thanks.
> >
> >
> > Yes, it is enabled automatically. 'markdown-ts-mode' adds
> > 'markdown-ts--enable-code-block-mode' to 'post-command-hook'
> > (buffer-local), which calls '(markdown-ts-code-block-mode 1)' when poin=
t
> > enters a fenced code block and '(markdown-ts-code-block-mode -1)' when
> > it leaves. The ':interactive nil' just keeps it out of 'M-x' completion=
,
> > it is not meant to be toggled by hand.
> >
> > Its main purpose is to activate 'markdown-ts-code-block-mode-map', a
> > keymap that routes common editing commands (indentation, comment, etc.)
> > through the language mode of whichever code block point is currently in=
.
> >
> >
> >
> > Please find attached an updated patch.
> >
> > Thanks
> >
> > --
> > Rahul Martim Juliato
>
> First of all, thanks for all the hard work! This is awesome, very
> through and clean and well-documented code!
>
> The patch LGTM, and I think it can be merged as-is. Treat the comments
> below more as discussion. And in any case, we should merge the patch
> as-is and follow up with the points below. I didn=E2=80=99t read the code
> line-by-line, I=E2=80=99m sure you=E2=80=99ve tested the functionality, I=
=E2=80=99m more
> looking at general patterns and design, and the user interface.
>
> Maybe variables like markdown-ts-checked-checkbox can make use of
> icons.el? Just define the symbol and text variant, and there=E2=80=99s al=
so a
> builtin image variant you can use for checkboxes (the one that custom
> uses).
>
> Cons are fine too, but maybe a list for better future extensibility
> instead of strictly car and cdr.
>
> > +    (,(intern "c#") . c-sharp)
>
> Usually people use cs or csharp, I believe. And py, rb, rs, are
> strange choices. Is markdown-ts-code-block-modes meant for
> non-conventional names?
>
> markdown-ts-code-block-at-p: markdown-ts-at-code-block-p or
> markdown-ts-code-block-p sounds more idiomatic to me.
>
> > Tree-sitter parsers ignore indirect-buffer narrowing and parse the
>   full base-buffer text;
>
> If you add a parser in the indirect buffer, that parser will honor the
> narowing in the indirect buffer. It=E2=80=99s just that the parser create=
 in
> the source buffer will not react to indirect buffer=E2=80=99s narrowing.
>
> > +         (add-hook 'post-command-hook
> > +                   #'markdown-ts--enable-code-block-mode nil 'local)
>
> I feel that we should have a user option to disable the code block
> context mode. And maybe it can be named code-block-contex-mode, since
> code-block-mode has another meaning in this file?
>
> We can also add a command (and binding) for inserting inline `code`.
> I=E2=80=99m sure I=E2=80=99m not the only person that enables electric-qu=
ote-mode so
> pressing backtick inserts single quotes instead, in which case another
> way to insert backtick is needed.


I think your comments are worth taking care of first before we cement
symbol names.  Let's see if we can quickly address the above and then merge
that.

On the "user option to disable the code block context mode" do you think we
should also inhibit code block font lock?  Org has org-src-fontify-natively
and markdown-mode has markdown-fontify-code-blocks-natively which they
copied from org.

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

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Apr 14, 2026 at 2:35=E2=80=AFAM Yuan Fu &lt;<a href=3D"mailto:casou=
ri@HIDDEN">casouri@HIDDEN</a>&gt; wrote:</span></div></div><div class=
=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd=
ing-left:1ex"><br>
<br>
&gt; On Apr 9, 2026, at 1:06=E2=80=AFPM, Rahul Martim Juliato &lt;<a href=
=3D"mailto:rahuljuliato@HIDDEN" target=3D"_blank">rahuljuliato@HIDDEN=
</a>&gt; wrote:<br>
&gt; <br>
&gt; Eli Zaretskii &lt;<a href=3D"mailto:eliz@HIDDEN" target=3D"_blank">el=
iz@HIDDEN</a>&gt; writes:<br>
&gt; <br>
&gt;&gt;&gt; Cc: Yuan Fu &lt;<a href=3D"mailto:casouri@HIDDEN" target=3D=
"_blank">casouri@HIDDEN</a>&gt;, Rahul Martim Juliato &lt;<a href=3D"mai=
lto:rahuljuliato@HIDDEN" target=3D"_blank">rahuljuliato@HIDDEN</a>&gt=
;,<br>
&gt;&gt;&gt; <a href=3D"mailto:80740 <at> debbugs.gnu.org" target=3D"_blank">807=
40 <at> debbugs.gnu.org</a><br>
&gt;&gt;&gt; From: Rahul Martim Juliato &lt;<a href=3D"mailto:rahuljuliato@=
gmail.com" target=3D"_blank">rahuljuliato@HIDDEN</a>&gt;<br>
&gt;&gt;&gt; Date: Wed, 08 Apr 2026 21:01:50 -0300<br>
&gt;&gt; <br>
&gt;&gt; These non-ASCII characters should not be used without checking if =
they<br>
&gt;&gt; can be displayed (see char-displayable-p).=C2=A0 This is especiall=
y<br>
&gt;&gt; important on TTY frames.=C2=A0 Bonus points for designing ASCII<br=
>
&gt;&gt; replacements for when these non-ASCII symbols cannot be displayed.=
<br>
&gt;&gt; <br>
&gt; <br>
&gt; Agreed.<br>
&gt; <br>
&gt; I changed those to be cons cells in the form of (rich-form . ansi-form=
)<br>
&gt; or nil. :safe is used to ensure both elements have the same type. If<b=
r>
&gt; nil, it means nothing will be rendered when markup is hidden.<br>
&gt; <br>
&gt; I also added a resolver &#39;markdown-ts--resolve-display-value&#39;, =
to select<br>
&gt; and check the symbols.<br>
&gt; <br>
&gt;&gt;&gt; +(defcustom markdown-ts-hard-line-break-space<br>
&gt;&gt;&gt; +=C2=A0 (lambda (n) (make-string n ?=C2=B6))<br>
&gt;&gt; <br>
&gt;&gt; Why is ?=C2=B6 hard-coded, instead of using<br>
&gt;&gt; markdown-ts-hard-line-break-backslash?<br>
&gt;&gt; <br>
&gt; <br>
&gt; <br>
&gt; It shouldn&#39;t be this way, you&#39;re right.<br>
&gt; <br>
&gt; &#39;markdown-ts-hard-line-break-space&#39; now uses<br>
&gt; &#39;markdown-ts-hard-line-break-backslash&#39; as the default charact=
er.<br>
&gt; <br>
&gt; <br>
&gt;&gt;&gt; +(defface markdown-ts-emphasis &#39;((t (:inherit italic)))<br=
>
&gt;&gt;&gt; +=C2=A0 &quot;Face for Markdown emphasis (italic) text.&quot;)=
<br>
&gt;&gt;&gt; +<br>
&gt;&gt;&gt; +(defface markdown-ts-bold &#39;((t (:inherit bold)))<br>
&gt;&gt;&gt; +=C2=A0 &quot;Face for Markdown strong emphasis (bold) text.&q=
uot;)<br>
&gt;&gt;&gt; +<br>
&gt;&gt;&gt; +(defface markdown-ts-strikethrough &#39;((t (:strike-through =
t)))<br>
&gt;&gt;&gt; +=C2=A0 &quot;Face for Markdown strikethrough text.&quot;)<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; (defface markdown-ts-block-quote &#39;((t (:inherit italic)))<=
br>
&gt;&gt;&gt;=C2=A0 =C2=A0&quot;Face for Markdown block quotes.&quot;)<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; +(defface markdown-ts-link &#39;((t (:inherit link)))<br>
&gt;&gt;&gt; +=C2=A0 &quot;Face for Markdown link text and image descriptio=
ns.&quot;)<br>
&gt;&gt; <br>
&gt;&gt; Is it justified to have separate faces here?=C2=A0 Why would users=
 want to<br>
&gt;&gt; have something other than &#39;bold&#39; for showing the bold face=
 in MD<br>
&gt;&gt; buffers?<br>
&gt;&gt; <br>
&gt;&gt; Also, faces can (and I think should in this case) have the :versio=
n<br>
&gt;&gt; tag.<br>
&gt;&gt; <br>
&gt; <br>
&gt; Good question. About &#39;markdown-ts-strikethrough&#39;, there is no =
generic<br>
&gt; strikethrough face (that I could find) in Emacs to inherit from, so it=
<br>
&gt; has to exist.<br>
&gt; <br>
&gt; For the others, the motivation is the same as in org-mode (&#39;org-it=
alic&#39;,<br>
&gt; &#39;org-bold&#39;, &#39;org-link&#39;) and rst-mode. The default inhe=
rits from the base<br>
&gt; face so things look right out of the box, but users get a mode-specifi=
c<br>
&gt; handle to customize without touching global faces. That alone is worth=
<br>
&gt; it, but there is a second angle: it makes theming more controlled.<br>
&gt; <br>
&gt; When &#39;markdown-ts-hide-markup&#39; is enabled, all markup characte=
rs<br>
&gt; disappear and what remains is just the rendered text. A theme that wan=
ts<br>
&gt; to give a subtle visual hint about the underlying markup, such as a<br=
>
&gt; faint background on emphasis or a different tint on links, can do so b=
y<br>
&gt; targeting &#39;markdown-ts-emphasis&#39; or &#39;markdown-ts-link&#39;=
 specifically,<br>
&gt; without affecting every italic or linked piece of text in every other<=
br>
&gt; buffer.<br>
&gt; <br>
&gt; Added :version tag to all faces.<br>
&gt; <br>
&gt;&gt;&gt; +(defun markdown-ts--code-block-language-mode (lang)<br>
&gt;&gt;&gt; +=C2=A0 &quot;Compute and cache a mode symbol from LANG, a sym=
bol.<br>
&gt;&gt;&gt; +Consult the `markdown-ts-code-block-map&#39; cache, or probe =
mode names.<br>
&gt;&gt;&gt; +Return a valid mode symbol or nil.&quot;<br>
&gt;&gt;&gt; +=C2=A0 (if-let* ((mapped-mode (alist-get lang markdown-ts-cod=
e-block-modes)))<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 mapped-mode<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 (let ((lang-string (symbol-name lang)))<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 (catch :mode<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 (dolist (mode<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0(list<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 ;; Try a treesit mode using the raw string.<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 (concat lang-string &quot;-ts-mode&quot;)<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 ;; Try a conventional mode using the raw string.<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 (concat lang-string &quot;-mode&quot;)<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 ;; Try a treesit mode using the downcased string.<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 (concat (downcase lang-string) &quot;-ts-mode&quot;)<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 ;; Try a conventional mode using the downcased string.<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 (concat (downcase lang-string) &quot;-mode&quot;)))<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (setq mode (intern mode))<=
br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (when (fboundp mode)<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (push (cons lang mo=
de) markdown-ts-code-block-modes)<br>
&gt;&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (throw :mode mode))=
)))))<br>
&gt;&gt; <br>
&gt;&gt; I think this should use treesit-major-mode-remap-alist and<br>
&gt;&gt; major-mode-remap-alist, at least before falling back on the above<=
br>
&gt;&gt; hard-coded conventional modes, if not instead that.=C2=A0 This wil=
l allow<br>
&gt;&gt; users to customize these remappings only once.<br>
&gt;&gt; <br>
&gt; <br>
&gt; Done. It now also checks both &#39;treesit-major-mode-remap-alist&#39;=
 and<br>
&gt; &#39;major-mode-remap-alist&#39;.<br>
&gt; <br>
&gt;&gt;&gt; +(define-minor-mode markdown-ts-code-block-mode<br>
&gt;&gt;&gt; +=C2=A0 &quot;Mode enabled if point is within a fenced code bl=
ock.&quot;<br>
&gt;&gt;&gt; +=C2=A0 :interactive nil)<br>
&gt;&gt; <br>
&gt;&gt; Does this mean this mode is enabled automatically?<br>
&gt;&gt; <br>
&gt;&gt; Thanks.<br>
&gt; <br>
&gt; <br>
&gt; Yes, it is enabled automatically. &#39;markdown-ts-mode&#39; adds<br>
&gt; &#39;markdown-ts--enable-code-block-mode&#39; to &#39;post-command-hoo=
k&#39;<br>
&gt; (buffer-local), which calls &#39;(markdown-ts-code-block-mode 1)&#39; =
when point<br>
&gt; enters a fenced code block and &#39;(markdown-ts-code-block-mode -1)&#=
39; when<br>
&gt; it leaves. The &#39;:interactive nil&#39; just keeps it out of &#39;M-=
x&#39; completion,<br>
&gt; it is not meant to be toggled by hand.<br>
&gt; <br>
&gt; Its main purpose is to activate &#39;markdown-ts-code-block-mode-map&#=
39;, a<br>
&gt; keymap that routes common editing commands (indentation, comment, etc.=
)<br>
&gt; through the language mode of whichever code block point is currently i=
n.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Please find attached an updated patch.<br>
&gt; <br>
&gt; Thanks<br>
&gt; <br>
&gt; -- <br>
&gt; Rahul Martim Juliato<br>
<br>
First of all, thanks for all the hard work! This is awesome, very<br>
through and clean and well-documented code!<br>
<br>
The patch LGTM, and I think it can be merged as-is. Treat the comments<br>
below more as discussion. And in any case, we should merge the patch<br>
as-is and follow up with the points below. I didn=E2=80=99t read the code<b=
r>
line-by-line, I=E2=80=99m sure you=E2=80=99ve tested the functionality, I=
=E2=80=99m more<br>
looking at general patterns and design, and the user interface.<br>
<br>
Maybe variables like markdown-ts-checked-checkbox can make use of<br>
icons.el? Just define the symbol and text variant, and there=E2=80=99s also=
 a<br>
builtin image variant you can use for checkboxes (the one that custom<br>
uses).<br>
<br>
Cons are fine too, but maybe a list for better future extensibility<br>
instead of strictly car and cdr.<br>
<br>
&gt; +=C2=A0 =C2=A0 (,(intern &quot;c#&quot;) . c-sharp)<br>
<br>
Usually people use cs or csharp, I believe. And py, rb, rs, are<br>
strange choices. Is markdown-ts-code-block-modes meant for non-conventional=
 names?<br>
<br>
markdown-ts-code-block-at-p: markdown-ts-at-code-block-p or<br>
markdown-ts-code-block-p sounds more idiomatic to me.<br>
<br>
&gt; Tree-sitter parsers ignore indirect-buffer narrowing and parse the<br>
=C2=A0 full base-buffer text;<br>
<br>
If you add a parser in the indirect buffer, that parser will honor the<br>
narowing in the indirect buffer. It=E2=80=99s just that the parser create i=
n<br>
the source buffer will not react to indirect buffer=E2=80=99s narrowing.<br=
>
<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(add-hook &#39;post-command-hook<br=
>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
#&#39;markdown-ts--enable-code-block-mode nil &#39;local)<br>
<br>
I feel that we should have a user option to disable the code block<br>
context mode. And maybe it can be named code-block-contex-mode, since<br>
code-block-mode has another meaning in this file?<br>
<br>
We can also add a command (and binding) for inserting inline `code`.<br>
I=E2=80=99m sure I=E2=80=99m not the only person that enables electric-quot=
e-mode so<br>
pressing backtick inserts single quotes instead, in which case another<br>
way to insert backtick is needed.</blockquote><div><br></div><div class=3D"=
gmail_default" style=3D"font-family:monospace">I think your comments are wo=
rth taking care of first before we cement symbol names.=C2=A0 Let&#39;s see=
 if we can quickly address the above and then merge that.</div><div class=
=3D"gmail_default" style=3D"font-family:monospace"><br></div><div class=3D"=
gmail_default" style=3D""><font face=3D"monospace">On the &quot;user option=
 to disable the code block=C2=A0context mode&quot; do you think we should a=
lso inhibit code block font lock?=C2=A0 Org has=C2=A0org-src-fontify-native=
ly and markdown-mode has=C2=A0markdown-fontify-code-blocks-natively which t=
hey copied from org.</font></div></div></div>

--0000000000002d6cb6064f6e4f42--




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

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


Received: (at 80740) by debbugs.gnu.org; 14 Apr 2026 06:35:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 14 02:35:12 2026
Received: from localhost ([127.0.0.1]:40471 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wCXMa-0004lj-DL
	for submit <at> debbugs.gnu.org; Tue, 14 Apr 2026 02:35:12 -0400
Received: from mail-dl1-x122c.google.com ([2607:f8b0:4864:20::122c]:46394)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1wCXMX-0004l5-2T
 for 80740 <at> debbugs.gnu.org; Tue, 14 Apr 2026 02:35:06 -0400
Received: by mail-dl1-x122c.google.com with SMTP id
 a92af1059eb24-12c1fcce8f8so9770983c88.1
 for <80740 <at> debbugs.gnu.org>; Mon, 13 Apr 2026 23:35:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1776148504; x=1776753304; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=gvDbZmWIydEzKbCeRIReVQarBf0Ks5fKU0UKhIRPFmw=;
 b=ru6mAbBOSwaxm2ofhgAf2yA4Pzk88qOKhUupf2Sb2vT1TSh041MnHdXNg2ygZW6CiH
 fo5fPXBmv5+tNfIa3FKk6shN69fgKpqUUDXvtjEsff9PI0lom1HkbXpDyOTHhhU4xObn
 kpMtnxwXD8nrFYKiOGyjylSMiZ3cAQUlZx5g+fECoX2iU4cjWQ7xNKWVQkgc+zYnTvci
 FHXhBqByoIZ+QJnclcwk9ng1lxerXftTqQzL8psqG7bB5spoPyrlBO3ckyQEQXm69YSx
 WgG8CWNa/dJZgfYaHhPQ/RSySLFfPTe2U9CUTptppXGFr9Q/mlZE5CyErTbS+NIjNEGW
 lJRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1776148504; x=1776753304;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=gvDbZmWIydEzKbCeRIReVQarBf0Ks5fKU0UKhIRPFmw=;
 b=Qvo6BXAPE9Qa+TGIS3PxPAo/NTJCgI2pSRAjIayV2tFa38IltSGIkRiBFgm9HA2UC1
 DbXPsdvx2NFjcMHnbo7XXFwXVYn//4Q6NzL9zigsp6ltNdsFJhaS4Lc8Geoe4fSp5dgs
 Z3EVdoO3isyRCUdDDQuY0XD/jPj/sR4Zzc51/iZE1uJrs5pREfEOW0M6HXYSI/nKAwA5
 Zqe6rb+8g/qUq1ORvfA815ms4VTvuWTZUprUg846idvKMBMHpHfaBMQm3Yk/5I95UqWt
 VijkFu5eQCc4WH9zMzVS4WQlDRcRVArWyD7Zm+fhtiUkyByJFUUtgAIZUUiuw9dA5xKp
 Z1Uw==
X-Forwarded-Encrypted: i=1;
 AFNElJ+VBcZQS4GU6HYmxsZ2Hbu/PDrCspUrEBa/QEOQColfr6xd3SmEz3S4tp6cnTHI3gPKC9pPcw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yw74kQ+ffnZbSRTYDquL/yYzQ39OjoPzAsgZux4EnZ2d2e0Q/iF
 5EOH3fonFkxucTv6soSjeMp75rw3zd/czh21kUEgeLxXQJnEGHCmv6E7
X-Gm-Gg: AeBDiet86Gw+2+q+sjxZNvJT4bi6K+8+3j6MrGMt13AxR0HrfVzZ3zStOBM4CgHzkRo
 7Pex8H4w7Fu02QFo6SVEykXNQPwwie0nn/IXoR1dW7pIKNcLTzy786xesLdBvQdHBFO9N+BfzMf
 igEnyN66iFlVoOWQeUsL5dD+9yFLm+9GzooWN10DtjnLRdz5Q45taDfbLyfcqEpR3IEol9tAZNK
 fnO+WDQPA/SZVHtxnbrkMfb9JPbNbkCTAo6KdT7v15eCQbdFG6Sh0o6ZyS440/WRVcHBVUU0M7i
 FFxeNCgLUeREGNkTy5ThoXd3wXx6/FXgStI79M7Ur+uVxBpos/qA5t2+9Pd2Feul4fTOMpAJl+I
 /MUHPRNYZsxh+L9XhRJQg8NmR67MPaFYAntMDRoZi64/54Gn3iMPGmqJDz9CzrfEuTaHnlUtyUx
 YYNS9Rg8Cu8d9I1cJDdnP47n43nw40ylwCBbq5bXgUBoiprg==
X-Received: by 2002:a05:7022:3d12:b0:127:867f:2448 with SMTP id
 a92af1059eb24-12c34eeb81fmr9977175c88.26.1776148503376; 
 Mon, 13 Apr 2026 23:35:03 -0700 (PDT)
Received: from smtpclient.apple ([2601:645:c686:b320:31a6:bea1:aca0:e369])
 by smtp.gmail.com with ESMTPSA id
 a92af1059eb24-12c347fa2c9sm16926710c88.15.2026.04.13.23.35.02
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 13 Apr 2026 23:35:02 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
From: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <m2ldevgapc.fsf@HIDDEN>
Date: Mon, 13 Apr 2026 23:34:51 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <E23DE437-F9DC-4EBD-8694-AD5293E4C088@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
 <m2ldevgapc.fsf@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Mailer: Apple Mail (2.3826.700.81)
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Eli Zaretskii <eliz@HIDDEN>, 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)



> On Apr 9, 2026, at 1:06=E2=80=AFPM, Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>=20
> Eli Zaretskii <eliz@HIDDEN> writes:
>=20
>>> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato =
<rahuljuliato@HIDDEN>,
>>> 80740 <at> debbugs.gnu.org
>>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
>>> Date: Wed, 08 Apr 2026 21:01:50 -0300
>>=20
>> These non-ASCII characters should not be used without checking if =
they
>> can be displayed (see char-displayable-p).  This is especially
>> important on TTY frames.  Bonus points for designing ASCII
>> replacements for when these non-ASCII symbols cannot be displayed.
>>=20
>=20
> Agreed.
>=20
> I changed those to be cons cells in the form of (rich-form . =
ansi-form)
> or nil. :safe is used to ensure both elements have the same type. If
> nil, it means nothing will be rendered when markup is hidden.
>=20
> I also added a resolver 'markdown-ts--resolve-display-value', to =
select
> and check the symbols.
>=20
>>> +(defcustom markdown-ts-hard-line-break-space
>>> +  (lambda (n) (make-string n ?=C2=B6))
>>=20
>> Why is ?=C2=B6 hard-coded, instead of using
>> markdown-ts-hard-line-break-backslash?
>>=20
>=20
>=20
> It shouldn't be this way, you're right.
>=20
> 'markdown-ts-hard-line-break-space' now uses
> 'markdown-ts-hard-line-break-backslash' as the default character.
>=20
>=20
>>> +(defface markdown-ts-emphasis '((t (:inherit italic)))
>>> +  "Face for Markdown emphasis (italic) text.")
>>> +
>>> +(defface markdown-ts-bold '((t (:inherit bold)))
>>> +  "Face for Markdown strong emphasis (bold) text.")
>>> +
>>> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
>>> +  "Face for Markdown strikethrough text.")
>>>=20
>>> (defface markdown-ts-block-quote '((t (:inherit italic)))
>>>   "Face for Markdown block quotes.")
>>>=20
>>> +(defface markdown-ts-link '((t (:inherit link)))
>>> +  "Face for Markdown link text and image descriptions.")
>>=20
>> Is it justified to have separate faces here?  Why would users want to
>> have something other than 'bold' for showing the bold face in MD
>> buffers?
>>=20
>> Also, faces can (and I think should in this case) have the :version
>> tag.
>>=20
>=20
> Good question. About 'markdown-ts-strikethrough', there is no generic
> strikethrough face (that I could find) in Emacs to inherit from, so it
> has to exist.
>=20
> For the others, the motivation is the same as in org-mode =
('org-italic',
> 'org-bold', 'org-link') and rst-mode. The default inherits from the =
base
> face so things look right out of the box, but users get a =
mode-specific
> handle to customize without touching global faces. That alone is worth
> it, but there is a second angle: it makes theming more controlled.
>=20
> When 'markdown-ts-hide-markup' is enabled, all markup characters
> disappear and what remains is just the rendered text. A theme that =
wants
> to give a subtle visual hint about the underlying markup, such as a
> faint background on emphasis or a different tint on links, can do so =
by
> targeting 'markdown-ts-emphasis' or 'markdown-ts-link' specifically,
> without affecting every italic or linked piece of text in every other
> buffer.
>=20
> Added :version tag to all faces.
>=20
>>> +(defun markdown-ts--code-block-language-mode (lang)
>>> +  "Compute and cache a mode symbol from LANG, a symbol.
>>> +Consult the `markdown-ts-code-block-map' cache, or probe mode =
names.
>>> +Return a valid mode symbol or nil."
>>> +  (if-let* ((mapped-mode (alist-get lang =
markdown-ts-code-block-modes)))
>>> +      mapped-mode
>>> +    (let ((lang-string (symbol-name lang)))
>>> +      (catch :mode
>>> +        (dolist (mode
>>> +                 (list
>>> +                  ;; Try a treesit mode using the raw string.
>>> +                  (concat lang-string "-ts-mode")
>>> +                  ;; Try a conventional mode using the raw string.
>>> +                  (concat lang-string "-mode")
>>> +                  ;; Try a treesit mode using the downcased string.
>>> +                  (concat (downcase lang-string) "-ts-mode")
>>> +                  ;; Try a conventional mode using the downcased =
string.
>>> +                  (concat (downcase lang-string) "-mode")))
>>> +          (setq mode (intern mode))
>>> +          (when (fboundp mode)
>>> +            (push (cons lang mode) markdown-ts-code-block-modes)
>>> +            (throw :mode mode)))))))
>>=20
>> I think this should use treesit-major-mode-remap-alist and
>> major-mode-remap-alist, at least before falling back on the above
>> hard-coded conventional modes, if not instead that.  This will allow
>> users to customize these remappings only once.
>>=20
>=20
> Done. It now also checks both 'treesit-major-mode-remap-alist' and
> 'major-mode-remap-alist'.
>=20
>>> +(define-minor-mode markdown-ts-code-block-mode
>>> +  "Mode enabled if point is within a fenced code block."
>>> +  :interactive nil)
>>=20
>> Does this mean this mode is enabled automatically?
>>=20
>> Thanks.
>=20
>=20
> Yes, it is enabled automatically. 'markdown-ts-mode' adds
> 'markdown-ts--enable-code-block-mode' to 'post-command-hook'
> (buffer-local), which calls '(markdown-ts-code-block-mode 1)' when =
point
> enters a fenced code block and '(markdown-ts-code-block-mode -1)' when
> it leaves. The ':interactive nil' just keeps it out of 'M-x' =
completion,
> it is not meant to be toggled by hand.
>=20
> Its main purpose is to activate 'markdown-ts-code-block-mode-map', a
> keymap that routes common editing commands (indentation, comment, =
etc.)
> through the language mode of whichever code block point is currently =
in.
>=20
>=20
>=20
> Please find attached an updated patch.
>=20
> Thanks
>=20
> --=20
> Rahul Martim Juliato

First of all, thanks for all the hard work! This is awesome, very
through and clean and well-documented code!

The patch LGTM, and I think it can be merged as-is. Treat the comments
below more as discussion. And in any case, we should merge the patch
as-is and follow up with the points below. I didn=E2=80=99t read the =
code
line-by-line, I=E2=80=99m sure you=E2=80=99ve tested the functionality, =
I=E2=80=99m more
looking at general patterns and design, and the user interface.

Maybe variables like markdown-ts-checked-checkbox can make use of
icons.el? Just define the symbol and text variant, and there=E2=80=99s =
also a
builtin image variant you can use for checkboxes (the one that custom
uses).

Cons are fine too, but maybe a list for better future extensibility
instead of strictly car and cdr.

> +    (,(intern "c#") . c-sharp)

Usually people use cs or csharp, I believe. And py, rb, rs, are
strange choices. Is markdown-ts-code-block-modes meant for =
non-conventional names?

markdown-ts-code-block-at-p: markdown-ts-at-code-block-p or
markdown-ts-code-block-p sounds more idiomatic to me.

> Tree-sitter parsers ignore indirect-buffer narrowing and parse the
  full base-buffer text;

If you add a parser in the indirect buffer, that parser will honor the
narowing in the indirect buffer. It=E2=80=99s just that the parser =
create in
the source buffer will not react to indirect buffer=E2=80=99s narrowing.

> +         (add-hook 'post-command-hook
> +                   #'markdown-ts--enable-code-block-mode nil 'local)

I feel that we should have a user option to disable the code block
context mode. And maybe it can be named code-block-contex-mode, since
code-block-mode has another meaning in this file?

We can also add a command (and binding) for inserting inline `code`.
I=E2=80=99m sure I=E2=80=99m not the only person that enables =
electric-quote-mode so
pressing backtick inserts single quotes instead, in which case another
way to insert backtick is needed.

Yuan=




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80740; Package emacs. Full text available.
Merged 80555 80740. Request was from Eli Zaretskii <eliz@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 20:06:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 16:06:48 2026
Received: from localhost ([127.0.0.1]:43116 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAveK-0001sR-Dx
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 16:06:48 -0400
Received: from mail-dy1-x1331.google.com ([2607:f8b0:4864:20::1331]:43410)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wAveH-0001sD-PD
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 16:06:46 -0400
Received: by mail-dy1-x1331.google.com with SMTP id
 5a478bee46e88-2d17b8fbedaso555448eec.1
 for <80740 <at> debbugs.gnu.org>; Thu, 09 Apr 2026 13:06:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775765204; x=1776370004; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=E3b4TmEmxRV04/Y4IXeiCtHWbYYoB5GZB5Dss8NHxmY=;
 b=h7Hs0XAmm/KT5YIWD0H7CKU7YF0/4c1rXohEbpqMfCjL815aoxgfPn3E49QW76kxlK
 hQ0kna+XUmkvVoR0CLtJMcPE8SLu6jvPo8279zgCXYroTf82Tray2DTC9aXnQ0Cv/UuB
 s9K2BAHzzoviFE9E7/QZNeTAwCaKx/vXQEzpTe94eFORCiaAUubqKNhTl/Qw46ptMOiN
 FqLgoJ72VdbpkbV6wXqpyqoy8nrl1lrNT7LhirHTcfjAU5x+dBCzvvU1sT1T8y61GxSZ
 9KOvHU1OBNfA/Ij/mNeRE6GvCbVnG6Ai8Ve34VlrE4j3kOtYxwyhor+jLOq8cWvcreb9
 sOxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775765204; x=1776370004;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=E3b4TmEmxRV04/Y4IXeiCtHWbYYoB5GZB5Dss8NHxmY=;
 b=FJ2PuBVq7a7Lkekii3l5kBr9WoE2djHA50bklOfZy5cTQKMnBNR9GPXsm+oWKkMEfK
 E2hLxaEFlMDMHWB8TTsTwIKqW7JouphQiwSpmEpms5oPPv+MXDpNPuz95UxWpkxicTRM
 3q4eO9aeSg6kgdcXJTHnyf91tuiYR60FOQUYUu6j42rIjatI7HYy7n7+C0k5frje8WfQ
 b7ce0TGxAAhFWrhEA8RTj+xxDT8cnk75xLZB/S4TWsJlLOlsvOmUwbDAtdTRQnZdx3zw
 IETBEnMiidPls8UtLu3+JDxWtIYUON7V4bmR0yF72GxpDl92bQsSuU9g6T/BL1aoCV7h
 SGmg==
X-Forwarded-Encrypted: i=1;
 AJvYcCULoGFCWMc/7mZ+SUbVas/ymhZOGhNPB97vLckCr4fp+Z27p7oBHcuqKqLn5R3tZXqK04s+qg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yw4fnH5n0EROVddKoORlYYuXHRt/cEnRL2+xMhVD1GsNyjdTbe9
 koUYDrLyFVTyg/7Jei5ex0z9oTe2CQwdibwKIwp9veAe1EuEQClKeocypnGHOOYhTqORPg==
X-Gm-Gg: AeBDietGbmHXHkwgxcEahjy4L6f6dVJAR1qcZ4TDAP/f7KrN4UbueT9XfDOdicNDJ+J
 jQRyvgS6KRUkmcLQhwRrbpcNnLqelc62hEivL64InuKujqFKEYLrsozPtqZJMeEqA8ktr6unpue
 raqhkK/mQHRgq+aPsgeX+TFB+HzWMhNcP+dKjjM4IYPVUR+vEworTZml7VpM2ou6QAptnnrK+bB
 /flwv202zEiMYp/ghOzKHv6QKDmaDZZCowfxwTDskZ4T1NFbiZmIF0E0Pqoj3bU8FFTwSan+uWP
 7ehpPC0QkIQbULK+O80ByAUo4q0du/teCUc50zQNKJG1hF4HjRT9wuq/oUtwpNJ11pqA5PKITFV
 zkgfn9ngncF7NQHpHJnXD0kn+ZFbvsLt4xNen+NS99NoETOLEBdnV4kSLDkNcx7DCzaBdk+Z4oH
 Vs/r0k+FCRm2DGauG5CIp2Jpoq4Iv55XRIWFJLT8i7b5VRDumcWqjvKgc+B3wZLViO8Bobsanwr
 CEM1/sKGF8z
X-Received: by 2002:a05:7300:4316:b0:2c1:82c2:bc31 with SMTP id
 5a478bee46e88-2d40fce76c1mr2322082eec.10.1775765203925; 
 Thu, 09 Apr 2026 13:06:43 -0700 (PDT)
Received: from MacBook-Pro.local ([185.153.176.105])
 by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2d55faa586bsm1401116eec.11.2026.04.09.13.06.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 09 Apr 2026 13:06:42 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <86v7e0v8kj.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Thu, 09 Apr 2026 17:06:39 -0300
Message-ID: <m2ldevgapc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: casouri@HIDDEN, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

Eli Zaretskii <eliz@HIDDEN> writes:

>> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@gmai=
l.com>,
>>  80740 <at> debbugs.gnu.org
>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
>> Date: Wed, 08 Apr 2026 21:01:50 -0300
>
> These non-ASCII characters should not be used without checking if they
> can be displayed (see char-displayable-p).  This is especially
> important on TTY frames.  Bonus points for designing ASCII
> replacements for when these non-ASCII symbols cannot be displayed.
>

Agreed.

I changed those to be cons cells in the form of (rich-form . ansi-form)
or nil. :safe is used to ensure both elements have the same type. If
nil, it means nothing will be rendered when markup is hidden.

I also added a resolver 'markdown-ts--resolve-display-value', to select
and check the symbols.

>> +(defcustom markdown-ts-hard-line-break-space
>> +  (lambda (n) (make-string n ?=C2=B6))
>
> Why is ?=C2=B6 hard-coded, instead of using
> markdown-ts-hard-line-break-backslash?
>


It shouldn't be this way, you're right.

'markdown-ts-hard-line-break-space' now uses
'markdown-ts-hard-line-break-backslash' as the default character.


>> +(defface markdown-ts-emphasis '((t (:inherit italic)))
>> +  "Face for Markdown emphasis (italic) text.")
>> +
>> +(defface markdown-ts-bold '((t (:inherit bold)))
>> +  "Face for Markdown strong emphasis (bold) text.")
>> +
>> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
>> +  "Face for Markdown strikethrough text.")
>>=20=20
>>  (defface markdown-ts-block-quote '((t (:inherit italic)))
>>    "Face for Markdown block quotes.")
>>=20=20
>> +(defface markdown-ts-link '((t (:inherit link)))
>> +  "Face for Markdown link text and image descriptions.")
>
> Is it justified to have separate faces here?  Why would users want to
> have something other than 'bold' for showing the bold face in MD
> buffers?
>
> Also, faces can (and I think should in this case) have the :version
> tag.
>

Good question. About 'markdown-ts-strikethrough', there is no generic
strikethrough face (that I could find) in Emacs to inherit from, so it
has to exist.

For the others, the motivation is the same as in org-mode ('org-italic',
'org-bold', 'org-link') and rst-mode. The default inherits from the base
face so things look right out of the box, but users get a mode-specific
handle to customize without touching global faces. That alone is worth
it, but there is a second angle: it makes theming more controlled.

When 'markdown-ts-hide-markup' is enabled, all markup characters
disappear and what remains is just the rendered text. A theme that wants
to give a subtle visual hint about the underlying markup, such as a
faint background on emphasis or a different tint on links, can do so by
targeting 'markdown-ts-emphasis' or 'markdown-ts-link' specifically,
without affecting every italic or linked piece of text in every other
buffer.

Added :version tag to all faces.

>> +(defun markdown-ts--code-block-language-mode (lang)
>> +  "Compute and cache a mode symbol from LANG, a symbol.
>> +Consult the `markdown-ts-code-block-map' cache, or probe mode names.
>> +Return a valid mode symbol or nil."
>> +  (if-let* ((mapped-mode (alist-get lang markdown-ts-code-block-modes)))
>> +      mapped-mode
>> +    (let ((lang-string (symbol-name lang)))
>> +      (catch :mode
>> +        (dolist (mode
>> +                 (list
>> +                  ;; Try a treesit mode using the raw string.
>> +                  (concat lang-string "-ts-mode")
>> +                  ;; Try a conventional mode using the raw string.
>> +                  (concat lang-string "-mode")
>> +                  ;; Try a treesit mode using the downcased string.
>> +                  (concat (downcase lang-string) "-ts-mode")
>> +                  ;; Try a conventional mode using the downcased string.
>> +                  (concat (downcase lang-string) "-mode")))
>> +          (setq mode (intern mode))
>> +          (when (fboundp mode)
>> +            (push (cons lang mode) markdown-ts-code-block-modes)
>> +            (throw :mode mode)))))))
>
> I think this should use treesit-major-mode-remap-alist and
> major-mode-remap-alist, at least before falling back on the above
> hard-coded conventional modes, if not instead that.  This will allow
> users to customize these remappings only once.
>

Done. It now also checks both 'treesit-major-mode-remap-alist' and
'major-mode-remap-alist'.

>> +(define-minor-mode markdown-ts-code-block-mode
>> +  "Mode enabled if point is within a fenced code block."
>> +  :interactive nil)
>
> Does this mean this mode is enabled automatically?
>
> Thanks.


Yes, it is enabled automatically. 'markdown-ts-mode' adds
'markdown-ts--enable-code-block-mode' to 'post-command-hook'
(buffer-local), which calls '(markdown-ts-code-block-mode 1)' when point
enters a fenced code block and '(markdown-ts-code-block-mode -1)' when
it leaves. The ':interactive nil' just keeps it out of 'M-x' completion,
it is not meant to be toggled by hand.

Its main purpose is to activate 'markdown-ts-code-block-mode-map', a
keymap that routes common editing commands (indentation, comment, etc.)
through the language mode of whichever code block point is currently in.



Please find attached an updated patch.

Thanks

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSAxNTM2MzQ3Mjc0YThjZTg3NDk0NTU5OGViYjQ0N2MyMzkwNmM3NTdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYW5kIGEgbW9kZSBt
ZW51LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwK
UGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRzIGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29t
bWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9yIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMs
IGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUt
c2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUgJ2dvdG8tYWRkciwgeHJlZik6IE5ldyByZXF1
aXJlbWVudHMuCihtYXJrZG93bi10cyk6IE5ldyBjdXN0b21pemF0aW9uIGdyb3VwIHdpdGggOnZl
cnNpb24gYW5kCjpwYWNrYWdlLXZlcnNpb24gdGFncy4KKG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
KTogQWRkIDp2ZXJzaW9uIGFuZCA6cGFja2FnZS12ZXJzaW9uLgoobWFya2Rvd24tdHMtZWxsaXBz
aXMpOiBOZXcgb3B0aW9uIGZvciBmb2xkZWQgaGVhZGluZyBlbGxpcHNpcy4KKG1hcmtkb3duLXRz
LW1lbnUtYmFyLXNob3cpOiBOZXcgb3B0aW9uIHRvIHRvZ2dsZSBtb2RlIG1lbnUuCihtYXJrZG93
bi10cy1kZWZhdWx0LWZvbGRpbmcpOiBOZXcgb3B0aW9uIGZvciBkZWZhdWx0IGZvbGQKbGV2ZWwu
CihtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKTogTmV3IG9wdGlvbiB0byBkaXNwbGF5IGlubGlu
ZQppbWFnZXMuCihtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGgpOiBOZXcgb3B0aW9uIGZvciBp
bWFnZSBtYXggd2lkdGguCihtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxpbmUtaW1hZ2Vz
KTogTmV3IG9wdGlvbiBmb3IKcmVtb3RlIGltYWdlIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtLXJl
c29sdmUtZGlzcGxheS12YWx1ZSk6IE5ldyBoZWxwZXIgdG8gcmVzb2x2ZQpkaXNwbGF5IHZhbHVl
cyB1c2luZyBjaGFyLWRpc3BsYXlhYmxlLXAuCihtYXJrZG93bi10cy1jaGVja2VkLWNoZWNrYm94
KTogTmV3IG9wdGlvbiBmb3IgY2hlY2tlZCBjaGVja2JveApkaXNwbGF5IHN0cmluZy4KKG1hcmtk
b3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIHVuY2hlY2tlZApjaGVj
a2JveCBkaXNwbGF5IHN0cmluZy4KKG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3Rl
cik6IE5ldyBvcHRpb24gZm9yIHRoZW1hdGljCmJyZWFrIGRpc3BsYXkgY2hhcmFjdGVyLgoobWFy
a2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCk6IE5ldyBvcHRpb24gZm9yIHRoZQpn
bHlwaCBzaG93biBpbiBwbGFjZSBvZiBhIHRyYWlsaW5nLWJhY2tzbGFzaCBoYXJkIGxpbmUgYnJl
YWsKd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNw
YWNlKTogTmV3IG9wdGlvbiBmb3IgdGhlIGdseXBoCnNob3duIGluIHBsYWNlIG9mIGEgdHJhaWxp
bmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1hcmt1cAppcyBoaWRkZW4uCihtYXJrZG93
bi10cy1lbXBoYXNpcywgbWFya2Rvd24tdHMtYm9sZCkKKG1hcmtkb3duLXRzLXN0cmlrZXRocm91
Z2gsIG1hcmtkb3duLXRzLWxpbmspCihtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uLCBtYXJr
ZG93bi10cy1jb2RlLXNwYW4pCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLCBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLW1hcmt1cC1oaWRkZW4pCihtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2Nr
LCBtYXJrZG93bi10cy1odG1sLXRhZykKKG1hcmtkb3duLXRzLWh0bWwtYmxvY2ssIG1hcmtkb3du
LXRzLXRoZW1hdGljLWJyZWFrKQoobWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSkKKG1hcmtk
b3duLXRzLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSwgbWFya2Rvd24tdHMtbGF0ZXgpCiht
YXJrZG93bi10cy10YWJsZS1oZWFkZXIsIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCihtYXJrZG93
bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCwgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpCiht
YXJrZG93bi10cy10YXNrLWNoZWNrZWQpOiBOZXcgZmFjZXMuCihtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstYmFja3NsYXNoKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFz
aC1oaWRkZW4pCihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpCihtYXJrZG93bi10
cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UtaGlkZGVuKTogTmV3IGZhY2VzIGZvciB0aGUKdHdvIGhh
cmQtbGluZS1icmVhayB2YXJpYW50cywgd2l0aCBkaXN0aW5jdCBzaG93bi9oaWRkZW4KYXBwZWFy
YW5jZXMuCihtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZSk6IE5ldyB2YXJpYWJsZSBmb3IgbGln
aHR3ZWlnaHQgc2V0dXAKaW4gZW1iZWRkZWQgaW5saW5lIG1hcmtkb3duLXRzLW1vZGUgYnVmZmVy
cyB1c2VkIGJ5IGNvZGUgYmxvY2sKY29tbWFuZHMuCihtYXJrZG93bi10cy1kZWZhdWx0LWNvZGUt
YmxvY2stbW9kZSk6IE5ldyB2YXJpYWJsZSB0byBkZWZpbmUKZGVmYXVsdCBtb2RlIGZvciBhbm9u
eW1vdXMgY29kZSBibG9ja3MuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKTogTmV3IHZh
cmlhYmxlIHJlcGxhY2luZwptYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAgYW5k
Cm1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwIHdpdGggdW5pZmllZCBsYW5n
dWFnZSB0bwptb2RlIG1hcHBpbmcgaW5jbHVkaW5nIGhldXJpc3RpYyBsb29rdXAuCihtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcyk6IE5ldyB2YXJpYWJsZQps
aXN0aW5nIHRyZWUtc2l0dGVyIG1vZGVzIHdob3NlIGZvbnRpZmljYXRpb24gb2YgY29kZSBibG9j
awpjb250ZW50IHNob3VsZCBiZSBoYXJ2ZXN0ZWQgdmlhIGEgdGVtcG9yYXJ5IGJ1ZmZlci4KKG1h
cmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uKTogTmV3IGZ1bmN0aW9uIHRvIGNyZWF0ZQpjbGlj
a2FibGUgbGluayBidXR0b25zIHdpdGggbWFpbHRvLCBicm93c2UtdXJsLCBhbmQgZmluZC1maWxl
CmRpc3BhdGNoLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbik6IE5ldyBm
b250aWZpZXIgdGhhdApoaWRlcyBsaW5rIGRlc3RpbmF0aW9ucyB3aGVuIG1hcmt1cCBpcyBoaWRk
ZW4uCihtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1j
YWNoZS10aWNrKQoobWFya2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25zKQoobWFya2Rvd24t
dHMtLXJlc29sdmUtbGluay1yZWYpOiBOZXcgbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbgpjYWNo
ZSB3aXRoIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgcGVyIENvbW1vbk1hcmsgc3BlYy4KKG1h
cmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSk6IE5ldyBmb250aWZpZXIgZm9yIGlubGluZSwK
cmVmZXJlbmNlLCBzaG9ydGN1dCwgYW5kIGNvbGxhcHNlZCBsaW5rcyBhcyBjbGlja2FibGUgYnV0
dG9ucy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKTogTmV3IGZvbnRpZmllciBmb3Ig
VVJJIGFuZCBlbWFpbAphdXRvbGlua3Mgd2l0aCBhbmdsZSBicmFja2V0IGhpZGluZy4KKG1hcmtk
b3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQoobWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1yZWYtZGVzdGluYXRpb24pOiBOZXcgZm9udGlmaWVycyBmb3IKbGluayByZWZlcmVuY2UgZGVm
aW5pdGlvbnMuCihtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUsIG1hcmtkb3duLXRz
LS1zbHVnLWdpdGh1YikKKG1hcmtkb3duLXRzLS1zbHVnLXBhbmRvYywgbWFya2Rvd24tdHMtLWV4
cGxpY2l0LWlkLXJlKQoobWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQpOihtYXJrZG93
bi10cy0taGVhZGluZy1pZC1jYWNoZSwKbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGlj
aykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24tdHMtLWhlYWRpbmct
aWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFnbWVudCBsaW5rIHN1
cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMuCihtYXJrZG93bi10
cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5LWxhdGV4LWJsb2Nr
KTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdyYXBoIHZhbGlkYXRp
b24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTogTmV3IGZvbnRpZmll
ciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNpZGUgTGFUZVggYmxv
Y2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRzLS1mb250aWZ5LWVu
dGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIgdXNpbmcgb3JnLWVu
dGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3BlcnR5IGZvciBkZWNv
ZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTogTmV3IGZvbnRpZmll
ciBzaG93aW5nIFVuaWNvZGUKY2hlY2tib3ggc3ltYm9scyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4u
CihtYXJrZG93bi10cy0tZm9udGlmeS1oYXJkLWxpbmUtYnJlYWspOiBOZXcgZm9udGlmaWVyIGZv
cgpgaGFyZF9saW5lX2JyZWFrJyBub2Rlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWhlYWRpbmcp
OiBOZXcgZm9udGlmaWVyIGZvciBBVFggYW5kIFNldGV4dApoZWFkaW5ncy4KKG1hcmtkb3duLXRz
LS1mb250aWZ5LXRoZW1hdGljLWJyZWFrKTogTmV3IGZvbnRpZmllciBzaG93aW5nCmhvcml6b250
YWwgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCihtYXJrZG93bi10cy0tZm9udGlmeS1jb2Rl
LWJsb2NrKTogTmV3IGZvbnRpZmllciBhcHBseWluZwpiYWNrZ3JvdW5kIG92ZXJsYXkgdG8gY29k
ZSBibG9ja3Mgd2l0aCBsYW5ndWFnZSBhbmQgbW9kZQpwcm9wZXJ0aWVzLgoobWFya2Rvd24tdHMt
Y29kZS1ibG9jay1hdC1wLCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0KQoobWFy
a2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vzc29ycyBmb3IgY29kZSBibG9j
awpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2Rl
LXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRldGVjdGlvbi4KKG1hcmtkb3du
LXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAsIG1hcmtkb3duLXRzLS1mb250aWZ5LWltYWdlKToK
TmV3IGlubGluZSBpbWFnZSBkaXNwbGF5IHdpdGggc3RhbmRhbG9uZSBhbmQgaW5saW5lIHBvc2l0
aW9uaW5nLgoobWFya2Rvd24tdHMtLWJhcmUtdXJsLXJlZ2V4cCkKKG1hcmtkb3duLXRzLS1iYXJl
LWVtYWlsLXVyaS1yZWdleHApCihtYXJrZG93bi10cy0tZm9udGlmeS1iYXJlLXVyaSk6IE5ldyBi
YXJlIFVSTC9lbWFpbApmb250aWZpY2F0aW9uIHZpYSBqaXQtbG9jayB1c2luZyBnb3RvLWFkZHIg
cmVnZXhwcy4KKG1hcmtkb3duLXRzLS10cmVlc2l0LXNldHRpbmdzKTogUmV3cml0ZSB3aXRoIGRl
ZGljYXRlZCBmYWNlcywKY3VzdG9tIGZvbnRpZmllcnMsIGFuZCBuZXcgZm9udC1sb2NrIGZlYXR1
cmVzIGZvciBhbGwgaW5saW5lIGFuZApibG9jayBlbGVtZW50cy4KKG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWxhbmd1YWdlcykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rlcyk6
IE5ldyBidWZmZXItbG9jYWwgYWxpc3RzCmZvciBjb2RlIGJsb2NrIGxhbmd1YWdlIHRyYWNraW5n
LgoobWFya2Rvd24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24pOiBSZW5h
bWVkIGZyb20KbWFya2Rvd24tdHMtLWhhcnZlc3QtdHJlZXNpdC1jb25maWdzIHdpdGggZGVsYXkt
bW9kZS1ob29rcy4KKG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVudC1idWZmZXIpOiBSZW5h
bWVkIGZyb20KbWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUuCihtYXJrZG93bi10cy0t
bGFuZ3VhZ2UtYXQtbm9kZSk6IE5ldyBoZWxwZXIgZXh0cmFjdGluZyBsYW5ndWFnZQpzeW1ib2wg
ZnJvbSBjb2RlX2ZlbmNlX2NvbnRlbnQgbm9kZS4KKG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlm
eS1jYWNoZSk6IE5ldyBidWZmZXItbG9jYWwgaGFzaCB0YWJsZQpjYWNoaW5nIGZvbnRpZmljYXRp
b24gcmVzdWx0cyBmb3Igbm9uLXRyZWUtc2l0dGVyIGNvZGUgYmxvY2tzLgoobWFya2Rvd24tdHMt
LWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMpOiBOZXcgZnVuY3Rpb24KaGFydmVzdGluZyBm
YWNlIHByb3BlcnRpZXMgZnJvbSBhIG1vZGUgaW4gYW4gaW5kaXJlY3Qgb3IKdGVtcG9yYXJ5IGJ1
ZmZlci4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2RlLWJsb2NrKTogTmV3IGZvbnRp
ZmllciBmb3IKbm9uLXRyZWUtc2l0dGVyIG1vZGVzIHZpYSB0ZW1wb3JhcnkgYnVmZmVyIGZvbnQt
bG9jay4KKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUpOiBOZXcgZnVuY3Rp
b24gd2l0aApoZXVyaXN0aWMgbW9kZSBuYW1lIHByb2JpbmcuCihtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZSk6IFJlbmFtZWQgZnJvbQptYXJrZG93bi10cy0tY29udmVydC1jb2Rl
LWJsb2NrLWxhbmd1YWdlIHdpdGggc3VwcG9ydCBmb3Igbm9uLXRzCm1vZGVzIGFuZCByZWN1cnNp
dmUgbWFya2Rvd24gaGFuZGxpbmcuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQoo
bWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUt
YmxvY2stcmVnaW9uLWNvbW1hbmRzKTogTmV3IGNvbW1hbmQgbGlzdHMgZm9yCmNvZGUtYmxvY2sg
Y29udGV4dCBleGVjdXRpb24uCihtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2stbW9kZSkK
KG1hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrKQoobWFya2Rvd24t
dHMtLWNvZGUtYmxvY2steHJlZi1maW5kLWRlZmluaXRpb25zKQoobWFya2Rvd24tdHMtLXJ1bi1j
b21tYW5kLWluLWNvZGUtYmxvY2spOiBOZXcgY29kZSBibG9jayBtaW5vcgptb2RlIHdpdGggaW5k
aXJlY3QgYnVmZmVyIGNvbW1hbmQgZGlzcGF0Y2guCihtYXJrZG93bi10cy0tY29kZS1ibG9jay1u
ZXdsaW5lKTogTmV3IGNvbW1hbmQgZm9yIG5ld2xpbmUKaW5zaWRlIGNvZGUgYmxvY2tzLCBkaXNw
YXRjaGluZyB0byB0aGUgYmxvY2sncyBtb2RlLgoobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdz
KTogVXBkYXRlIHJhbmdlIGNvbmZpZ3VyYXRpb247CnJlbW92ZSA6cmFuZ2UtZm4gdHJlZXNpdC1y
YW5nZS1mbi1leGNsdWRlLWNoaWxkcmVuLgoobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVy
bGF5cykKKG1hcmtkb3duLXRzLS1vdXRsaW5lLXZpZXctY2hhbmdlKTogTmV3IGhlbHBlcnMgZm9y
IGltYWdlCm92ZXJsYXkgbWFuYWdlbWVudCBkdXJpbmcgb3V0bGluZSBmb2xkL3VuZm9sZC4KKG1h
cmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1wKTogTmV3IGhlbHBlciB0ZXN0aW5nIHdoZXRo
ZXIgYQpwb3NpdGlvbiBpcyBpbnNpZGUgYW4gb3V0bGluZS1mb2xkZWQgcmVnaW9uLgoobWFya2Rv
d24tdHMtLXNldC1oaWRlLW1hcmt1cCk6IENsZWFyIGltYWdlIG92ZXJsYXlzIHdoZW4KdG9nZ2xp
bmcgbWFya3VwIHZpc2liaWxpdHkuCihtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMpCiht
YXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcyk6IE5ldyBmdW5jdGlvbnMgZm9yIHRvZ2ds
aW5nCmlubGluZSBpbWFnZSBkaXNwbGF5LgoobWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1h
eC1sZXZlbCk6IE5ldyBjb25zdGFudC4KKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50LCBt
YXJrZG93bi10cy0taGVhZGluZy1sZXZlbCkKKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50
KTogTmV3IGhlYWRpbmcgbmF2aWdhdGlvbiBoZWxwZXJzLgoobWFya2Rvd24tdHMtcHJvbW90ZSwg
bWFya2Rvd24tdHMtZGVtb3RlKTogTmV3IGNvbW1hbmRzIGZvcgpoZWFkaW5nIGFuZCBsaXN0IGl0
ZW0gcHJvbW90aW9uL2RlbW90aW9uIHdpdGggcmVnaW9uIHN1cHBvcnQuCihtYXJrZG93bi10cy0t
cHJvbW90ZS1vci1kZW1vdGUpCihtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9u
KTogTmV3IGhlYWRpbmcgbGV2ZWwKYWRqdXN0bWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1t
b3ZlLXN1YnRyZWUtdXAsIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duKToKTmV3IGNvbW1h
bmRzIGZvciBtb3Zpbmcgc2VjdGlvbnMgYW5kIGxpc3QgaXRlbXMuCihtYXJrZG93bi10cy0tc2Vj
dGlvbi1mb2xkZWQtcCkKKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93bik6IE5l
dyBzdWJ0cmVlIG1vdmUgd2l0aApmb2xkaW5nIHN0YXRlIHByZXNlcnZhdGlvbi4KKG1hcmtkb3du
LXRzLXRvZ2dsZS1jaGVja2JveCk6IE5ldyBjb21tYW5kIHRvIHRvZ2dsZSB0YXNrIGxpc3QKY2hl
Y2tib3hlcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpOiBOZXcgaGVscGVyIHdp
dGggYmxvY2sgcXVvdGUKbWFya2VyIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtLWxpc3QtbWFya2Vy
LXdpZHRoLCBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXJlZ2lvbikKKG1hcmtkb3duLXRzLS1saXN0
LW9yZGVyZWQtaXRlbS1wKTogTmV3IGxpc3QgaXRlbSBoZWxwZXJzLgoobWFya2Rvd24tdHMtLWxp
c3QtcHJvbW90ZS1vci1kZW1vdGUpOiBOZXcgZnVuY3Rpb24gd2l0aCBvcmRlcmVkCmxpc3QgbmVz
dGluZyBndWFyZC4KKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sLCBtYXJrZG93bi10cy0tbGlz
dC1tb3ZlKTogTmV3IGxpc3QKaXRlbSBtb3ZlbWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1y
ZW51bWJlci1saXN0KTogTmV3IGNvbW1hbmQgZm9yIHNlcXVlbnRpYWwgbGlzdApyZW51bWJlcmlu
ZyB3aXRoIHByZWZpeCBhcmd1bWVudCBzdXBwb3J0LgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1u
ZXctbWFya2VyKQoobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxpbmUpOiBOZXcgbWFya2Vy
IHN0cmluZyBnZW5lcmF0b3JzCmZvciBsaXN0IGl0ZW0gaW5zZXJ0aW9uLgoobWFya2Rvd24tdHMt
LWxpbmUtYmxvY2stcXVvdGUtZGVwdGgpOiBOZXcgaGVscGVyIGNvdW50aW5nIGJsb2NrCnF1b3Rl
IGRlcHRoLgoobWFya2Rvd24tdHMtbmV3bGluZSk6IE5ldyBSRVQgY29tbWFuZCBmb3IgY29udGV4
dC1hd2FyZQpuZXdsaW5lLgoobWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSk6IE5ldyBNLVJF
VCBjb21tYW5kIHRoYXQgY3JlYXRlcyBhCm5ldyBsaXN0IGl0ZW0uCihtYXJrZG93bi10cy0tZmls
bC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5KTogTmV3IHRyZWUtc2l0dGVyCnF1ZXJ5IGZvciB1bmZp
bGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4pOiBOZXcg
aGVscGVyIGZvciBsaXN0IGl0ZW0KdGV4dCBhbGlnbm1lbnQuCihtYXJrZG93bi10cy0tZmlsbC1s
aXN0LWl0ZW0pOiBOZXcgZnVuY3Rpb24gZmlsbGluZyB3aXRoaW4gbGlzdAppdGVtcyB3aXRob3V0
IG1lcmdpbmcgYWRqYWNlbnQgaXRlbXMuCihtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCk6IE5l
dyBhZGFwdGl2ZSBmaWxsIGZ1bmN0aW9uIGZvcgpsaXN0IGl0ZW0gY29udGludWF0aW9uLgoobWFy
a2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgpOiBOZXcgcGFyYWdyYXBoIG1vdGlvbgpy
ZXNwZWN0aW5nIGxpc3QgaXRlbXMgYW5kIHVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMt
ZmlsbC1wYXJhZ3JhcGgpOiBOZXcgZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gd2l0aApjb25kKiBk
aXNwYXRjaCBmb3IgbGlzdHMsIGJsb2NrIHF1b3RlcywgSFRNTCBjb21tZW50cywgYW5kCnVuZmls
bGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMtLWZpbGwtaHRtbC1jb21tZW50KTogTmV3IEhUTUwg
Y29tbWVudCBmaWxsZXIgd2l0aApjb250aW51YXRpb24gYWxpZ25tZW50LgoobWFya2Rvd24tdHMt
LWJsb2NrLXF1b3RlLXByZWZpeCk6IE5ldyBoZWxwZXIgcHJlc2VydmluZwpleGlzdGluZyBibG9j
ayBxdW90ZSBtYXJrZXIgc3R5bGUuCihtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSk6IE5l
dyBibG9jayBxdW90ZSBmaWxsZXIgd2l0aApsaXN0IGl0ZW0gdGV4dCBjb2x1bW4gYWxpZ25tZW50
LgoobWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QpOiBOZXcgYWxpc3Qgb2YgZW1waGFzaXMgbWFy
a2Vycy4KKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KTogTmV3IHRyZWUtc2l0
dGVyIGJhc2VkCmVtcGhhc2lzIGRldGVjdGlvbi4KKG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNp
cyk6IE5ldyBjb21tYW5kIHJlbW92aW5nIGVtcGhhc2lzIGF0CnBvaW50IG9yIHJlZ2lvbi4KKG1h
cmtkb3duLXRzLWVtcGhhc2l6ZSk6IE5ldyBpbnRlcmFjdGl2ZSBlbXBoYXNpcyBpbnNlcnRpb24g
d2l0aApyZWdpb24gd3JhcHBpbmcgYW5kIHdvcmQtYXQtcG9pbnQgc3VwcG9ydC4KKG1hcmtkb3du
LXRzLWluc2VydC1zdHJ1Y3R1cmUpOiBOZXcgY29tbWFuZCBmb3IgaW5zZXJ0aW5nIGNvZGUKYmxv
Y2tzLCBibG9jayBxdW90ZXMsIGFuZCBkaXZpZGVycy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtY29k
ZS1ibG9jayk6IE5ldyBmdW5jdGlvbiB3aXRoIGxhbmd1YWdlCmNvbXBsZXRpb24gZnJvbSBrbm93
biBtb2Rlcy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUpOiBOZXcgZnVuY3Rpb24g
d2l0aCByZWdpb24Kd3JhcHBpbmcuCihtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpOiBOZXcg
ZnVuY3Rpb24gZm9yIGhvcml6b250YWwKcnVsZXMuCihtYXJrZG93bi10cy0tYXBwbHktZWxsaXBz
aXMpOiBOZXcgZnVuY3Rpb24gYXBwbHlpbmcgY3VzdG9tCmVsbGlwc2lzIHZpYSBkaXNwbGF5IHRh
YmxlLgoobWFya2Rvd24tdHMtLXNldC11cCk6IFJlbmFtZWQgZnJvbSBtYXJrZG93bi10cy1zZXR1
cC4KKG1hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBv
dXRsaW5lCnZpc2liaWxpdHkgb24gaGVhZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5l
dyBrZXltYXAgZm9yIGNvZGUgYmxvY2sgbmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcg
bmF2aWdhdGlvbiwgc3RydWN0dXJlIGVkaXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRp
b25zLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLW1hcCk6IE5ldyBrZXltYXAgZm9yIGNv
ZGUgYmxvY2sKY29udGV4dC4KKG1hcmtkb3duLXRzLW1vZGUtbWVudSk6IE5ldyBtZW51IGJhciB3
aXRoIFNob3cvSGlkZSwgTmF2aWdhdGUKSGVhZGluZ3MsIEVkaXQgU3RydWN0dXJlLCBhbmQgRWRp
dGluZyBzZWN0aW9ucy4KKG1hcmtkb3duLXRzLW1vZGUpOiBBZGQgb3V0bGluZS1taW5vci1tb2Rl
LCBlbGxpcHNpcywgZm9sZGluZywKZmlsbC1wYXJhZ3JhcGggaW50ZWdyYXRpb24sIGNvZGUtYmxv
Y2stbW9kZSBob29rcywgY29tbWVudApzZXR0aW5ncywgYW5kIG91dGxpbmUtdmlldy1jaGFuZ2Ut
aG9vay4gIFVzZSBtYXJrZG93bi10cy1tb2RlCmRpcmVjdGx5IGluIGF1dG8tbW9kZS1hbGlzdCBp
bnN0ZWFkIG9mIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUuCihtYXJrZG93bi10cy1tb2RlLWluc3Rh
bGwtcGFyc2Vycyk6IE5ldyBjb21tYW5kIGZvciBpbnN0YWxsaW5nCnJlcXVpcmVkIGFuZCBvcHRp
b25hbCB0cmVlLXNpdHRlciBsYW5ndWFnZSBncmFtbWFycy4KKG1hcmtkb3duLXRzLWNvZGUtYmxv
Y2stbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2RlIGJsb2NrCmNvbnRleHQuCihtYXJrZG93
bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlcikKKG1hcmtkb3duLXRzLS1maW5kLW5leHQt
Y29kZS1ibG9jay1kZWxpbWl0ZXIpOiBOZXcgaGVscGVycyBmb3IKbG9jYXRpbmcgZmVuY2VkIGNv
ZGUgYmxvY2sgZGVsaW1pdGVyIG5vZGVzLgoobWFya2Rvd24tdHMtbW92ZS10by1uZXh0LWNvZGUt
YmxvY2spCihtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZpb3VzLWNvZGUtYmxvY2spOiBOZXcgY29t
bWFuZHMgZm9yCm5hdmlnYXRpbmcgYmV0d2VlbiBmZW5jZWQgY29kZSBibG9ja3MuCihtYXJrZG93
bi10cy1tb2RlLW1heWJlKTogUmVtb3ZlOyBhdXRvLW1vZGUtYWxpc3Qgbm93IHVzZXMKbWFya2Rv
d24tdHMtbW9kZSBkaXJlY3RseS4KQXV0by1tb2RlLWFsaXN0OiBBZGQgLm1hcmtkb3duIGFuZCAu
bWR4IGV4dGVuc2lvbnMuCkluY2x1ZGVzIGZpeGVzIGZvcjogKGJ1ZyM4MDYxMykgKGJ1ZyM4MDYy
NSkgKGJ1ZyM4MDY5MCkKCkNvLWF1dGhvcmVkLWJ5OiBTdMOpcGhhbmUgTWFya3MgPHNoaXBtaW50
c0BnbWFpbC5jb20+Ci0tLQogbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbCB8IDM0
NDggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMxNjYgaW5z
ZXJ0aW9ucygrKSwgMjgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvdGV4dG1vZGVz
L21hcmtkb3duLXRzLW1vZGUuZWwgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVs
CmluZGV4IDY1N2Q2YmM0NjZkLi40N2MxOTcwMTY1NyAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9k
ZXMvbWFya2Rvd24tdHMtbW9kZS5lbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1t
b2RlLmVsCkBAIC0xLDExICsxLDEzIEBACi07OzsgbWFya2Rvd24tdHMtbW9kZS5lbCAtLS0gdHJl
ZSBzaXR0ZXIgc3VwcG9ydCBmb3IgTWFya2Rvd24gIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0q
LQorOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwgLS0tIHRyZWUgc2l0dGVyIHN1cHBvcnQgZm9yIE1h
cmtkb3duIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQogCiA7OyBDb3B5cmlnaHQgKEMpIDIw
MjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAotOzsgQXV0aG9yICAgICA6
IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KLTs7IE1haW50
YWluZXIgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Ci07
OyBDcmVhdGVkICAgIDogQXByaWwgMjAyNAotOzsgS2V5d29yZHMgICA6IG1hcmtkb3duIG1kIGxh
bmd1YWdlcyB0cmVlLXNpdHRlcgorOzsgQXV0aG9yICAgICAgICAgICA6IFJhaHVsIE1hcnRpbSBK
dWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KKzs7IE1haW50YWluZXIgICAgICAgOiBS
YWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBDcmVhdGVk
ICAgICAgICAgIDogQXByaWwgMjAyNAorOzsgVmVyc2lvbiAgICAgICAgICA6ICAxLjAKKzs7IFBh
Y2thZ2UtUmVxdWlyZXMgOiAoKGVtYWNzICIzMS4xIikpCis7OyBLZXl3b3JkcyAgICAgICAgIDog
bWFya2Rvd24gbWQgdGV4dCBlZGl0IGxhbmd1YWdlcyB0cmVlLXNpdHRlcgogCiA7OyBUaGlzIGZp
bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTIyLDEzOCArMjQsNDgzIEBACiA7OyBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQogOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cu
Z251Lm9yZy9saWNlbnNlcy8+LgogCi07OzsgVHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgdmVyc2lvbnMK
Kzs7OyBDb21tZW50YXJ5OgorCis7OyBUcmVlLXNpdHRlciBMYW5ndWFnZSBWZXJzaW9ucwogOzsK
IDs7IG1hcmtkb3duLXRzLW1vZGUgaGFzIGJlZW4gdGVzdGVkIHdpdGggdGhlIGZvbGxvd2luZyBn
cmFtbWFycyBhbmQgdmVyc2lvbjoKIDs7IC0gdHJlZS1zaXR0ZXItbWFya2Rvd246IHYwLjQuMQog
OzsgLSB0cmVlLXNpdHRlci1tYXJrZG93bi1pbmxpbmU6IHYwLjQuMQogOzsKLTs7IFdlIHRyeSBv
dXIgYmVzdCB0byBtYWtlIGJ1aWx0aW4gbW9kZXMgd29yayB3aXRoIGxhdGVzdCBncmFtbWFyCi07
OyB2ZXJzaW9ucywgc28gYSBtb3JlIHJlY2VudCBncmFtbWFyIGhhcyBhIGdvb2QgY2hhbmNlIHRv
IHdvcmsgdG9vLgotOzsgU2VuZCB1cyBhIGJ1ZyByZXBvcnQgaWYgaXQgZG9lc24ndC4KLQotOzs7
IENvbW1lbnRhcnk6Cis7OyBXZSB0cnkgb3VyIGJlc3QgdG8gbWFrZSBidWlsdC1pbiBtb2RlcyB3
b3JrIHdpdGggbGF0ZXN0IGdyYW1tYXIKKzs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdy
YW1tYXIgaGFzIGEgZ29vZCBjaGFuY2UgdG8gd29yay4gIFNlbmQKKzs7IHVzIGEgYnVnIHJlcG9y
dCBpZiBpdCBkb2Vzbid0LgorOzsKKzs7IEJpZGlyZWN0aW9uYWwgVGV4dCBDb25zaWRlcmF0aW9u
cworOzsKKzs7IFRleHQgd2l0aCBtYXJrdXAgbWF5IG5lZWQgYW4gZXh0cmEgbmV3bGluZSBiZWZv
cmUgYmlkaXJlY3Rpb25hbCB0ZXh0Cis7OyBmb3IgaXQgdG8gc2hvdyBjb3JyZWN0bHkuICBUaGlz
IGlzIGEgbGltaXRhdGlvbiBpbiB0aGUgRW1hY3MgZGlzcGxheQorOzsgZW5naW5lLgorOzsKKzs7
IENvZGUgQmxvY2sgTGFuZ3VhZ2UgTW9kZSBDb25zaWRlcmF0aW9ucworOzsKKzs7IEZlbmNlZCBj
b2RlIGJsb2NrIGxhbmd1YWdlIG1vZGVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIHRhYmxlCis7OyBg
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycgYW5kIGhldXJpc3RpY3MgYWRkaW5nICItdHMt
bW9kZSIgYW5kCis7OyAiLW1vZGUiIHRvIHRoZSBsYW5ndWFnZSBuYW1lLiAgSWYgeW91ciBsYW5n
dWFnZSdzIG1vZGUgaXMgbm90Cis7OyBwcm9wZXJseSByZWNvZ25pemVkLCBhZGQgaXQgdG8gYG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMnLCB3aGljaAorOzsgc2VlLgorOzsKKzs7IEVhY2gg
bGFuZ3VhZ2UncyBtYWpvciBtb2RlIGlzIGVuYWJsZWQgb25jZSBwZXIgYG1hcmtkb3duLXRzLW1v
ZGUnCis7OyBidWZmZXIgaW4gYSB0ZW1wb3JhcnkgYnVmZmVyIHRvIGV4dHJhY3QgaXRzIGRlZmF1
bHQgZm9udC1sb2NrIGFuZAorOzsgdHJlZS1zaXR0ZXIgc2V0dGluZ3MuICBJbiBjb252ZW50aW9u
YWwgbm9uLXRyZWVzaXQgY29kZSBibG9ja3MsIHRoZQorOzsgbWFqb3IgbW9kZSBpcyBlbmFibGVk
IGVhY2ggdGltZSB0aGUgYmxvY2sgaXMgZm9udGlmaWVkLgorOzsKKzs7IE5PVEU6IE1ham9yIG1v
ZGUgaG9va3MgYXJlIG5vdCBydW4gYW5kIGZvbnQtbG9jaywgdHJlZXNpdCwgaW5kZW50LAorOzsg
Y29tbWVudCByZWNvZ25pdGlvbiwgZXRjLiBjdXN0b21pemF0aW9ucyB5b3UgbWlnaHQgaGF2ZSBp
biB5b3VyIGhvb2tzCis7OyBhcmUgbm90IGFwcGxpZWQuICBBcyBhIHJlc3VsdCwgeW91ciBjb2Rl
IGJsb2NrcyBtaWdodCBhcHBlYXIKKzs7IGRpZmZlcmVudCBpbiBgbWFya2Rvd24tdHMtbW9kZScg
bW9kZSB0aGFuIGluIG5hdGl2ZSBsYW5ndWFnZSBtYWpvcgorOzsgbW9kZSBidWZmZXJzLiAgTm90
IHJ1bm5pbmcgaG9va3MgYXZvaWRzIHRoZSBjb3N0IG9mIGVhY2ggbW9kZSBob29rCis7OyBhbmQg
YXZvaWRzIGNlcnRhaW4gcmVjdXJzaXZlIHRyZWVzaXQgY2FsbGJhY2sgaXNzdWVzLgogOzsKKzs7
IENvZGUgQmxvY2sgQ29tbWFuZHMKKzs7Cis7OyBTb21lIGNvbW1vbiBjb21tYW5kcyB3aWxsIG9w
ZXJhdGUgd2l0aGluIGEgY29kZSBibG9jayBhbmQgaW4gaXRzCis7OyBtb2RlLiAgVGhpcyBpcyBp
bXBsZW1lbnRlZCB1c2luZyBhbiBpbmRpcmVjdCBidWZmZXIgYW5kIHNvbWUgY29tbWFuZHMKKzs7
IG1heSBvcGVyYXRlIHNsaWdodGx5IGRpZmZlcmVudGx5IHRvIHRoZSBzYW1lIGNvbW1hbmRzIGlu
dm9rZWQgaW4gYQorOzsgbmF0aXZlIG1vZGUgYnVmZmVyLgorOzsKKzs7IFRyZWUgU2l0dGVyIEJ1
Z3MKKzs7Cis7OyBgbWFya2Rvd24tdHMtbW9kZScgcmVsaWVzIG9uIHRoZSB1bmRlcmx5aW5nIHRy
ZWUtc2l0dGVyIGxpYnJhcnkgaW4KKzs7IEVtYWNzIChjaG9zZW4gYXQgaXRzIGJ1aWxkIHRpbWUp
LCBhbmQgbGFuZ3VhZ2UgZ3JhbW1hcnMgeW91IGhhdmUKKzs7IGluc3RhbGxlZC4gIFRoZXJlIGFy
ZSBrbm93biBhbmQgcmVwb3J0ZWQgYnVncyB3aGljaCBuZWdhdGl2ZWx5IGFmZmVjdAorOzsgY2Vy
dGFpbiBmZWF0dXJlcy4gIFRoaXMgbW9kZSBzaG91bGQgYmVuZWZpdCBhcyB0aGVzZSBidWdzIGFy
ZSBmaXhlZAorOzsgb3Igd29ya2VkIGFyb3VuZC4KKzs7Cis7OyAtIFRoZSBNYXJrZG93biBncmFt
bWFyIGluc2VydHMgYmxvY2tfY29udGludWF0aW9uIG5vZGVzIGFzIGNoaWxkcmVuCis7OyAgIG9m
IGNvZGVfZmVuY2VfY29udGVudCwgd2hpY2ggY29uZnVzZXMgYm90aCB0aGUgaW5zcGVjdG9yIGFu
ZCB0aGUKKzs7ICAgZW1iZWRkZWQgcGFyc2VyLiAgVGhpcyBhZmZlY3RzIGNvZGUgYmxvY2tzIGlu
c2lkZSBibG9jayBxdW90ZXMuCis7OworOzsgLSBIVE1MIGJsb2NrIHR5cGUgNCAoYDwhJyBmb2xs
b3dlZCBieSBhbiB1cHBlcmNhc2UgbGV0dGVyLCBlLmcuLAorOzsgICBgPCFET0NUWVBFIGh0bWw+
JykgY2F1c2VzIHRoZSBwYXJzZXIgdG8gY29uc3VtZSBhbGwgc3Vic2VxdWVudAorOzsgICBjb250
ZW50LiAgTG93ZXJjYXNlIGA8IWRvY3R5cGUgaHRtbD4nIHdvcmtzIGFzIGEgd29ya2Fyb3VuZC4K
Kzs7ICAgU2VlIDxodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1z
aXR0ZXItbWFya2Rvd24vaXNzdWVzLzIzMz4uCis7OworOzsgLSBTdXBlcnNjcmlwdCAoYF50ZXh0
XicpIGFuZCBzdWJzY3JpcHQgKGB+dGV4dH4nKSBzeW50YXggaXMgbm90Cis7OyAgIHN1cHBvcnRl
ZCBieSB0aGUgZ3JhbW1hci4gIE5vIEVYVEVOU0lPTl8gYnVpbGQgZmxhZyBleGlzdHMgZm9yCis7
OyAgIHRoaXMuICBUaGlzIGlzIFBhbmRvYyAvIFBIUCBNYXJrZG93biBFeHRyYSBzeW50YXgsIG5v
dCBDb21tb25NYXJrCis7OyAgIG9yIEdGTS4KKzs7Cis7OyAtIE9yZGVyZWQgKG51bWJlcmVkKSBs
aXN0cyBkbyBub3QgbmVzdCBieSBpbmRlbnRhdGlvbi4gIEluZGVudGluZworOzsgICBhIGAxLicg
aXRlbSB1bmRlciBhbm90aGVyIG9yZGVyZWQgaXRlbSBkb2VzIG5vdCBwcm9kdWNlIGEgbmVzdGVk
Cis7OyAgIGxpc3Qgbm9kZTsgdGhlIHBhcnNlciBlaXRoZXIgdHJlYXRzIGl0IGFzIGEgZmxhdCBz
aWJsaW5nIG9yCis7OyAgIGFic29yYnMgaXQgaW50byB0aGUgcGFyZW50IGl0ZW0ncyBwYXJhZ3Jh
cGggYXMgYQorOzsgICBibG9ja19jb250aW51YXRpb24uICBVbm9yZGVyZWQgKGAtJywgYConLCBg
KycpIGxpc3RzIG5lc3QKKzs7ICAgY29ycmVjdGx5LiAgRGVtb3RlL3Byb21vdGUgb2Ygb3JkZXJl
ZCBsaXN0IGl0ZW1zIGlzIHRoZXJlZm9yZQorOzsgICBkaXNhYmxlZC4KKzs7Cis7OyAtIFJlbnVt
YmVyaW5nIG9yZGVyZWQgbGlzdHMgKGBtYXJrZG93bi10cy1yZW51bWJlci1saXN0JykgbWF5IG9u
bHkKKzs7ICAgYWZmZWN0IGl0ZW1zIGZyb20gcG9pbnQgZG93bndhcmQgaWYgdGhlIHBhcnNlciBz
cGxpdHMgYSBzaW5nbGUKKzs7ICAgbGlzdCBpbnRvIHNlcGFyYXRlIGBsaXN0JyBub2Rlcywgb3Ig
bWF5IGNvbnRpbnVlIG51bWJlcmluZyBhY3Jvc3MKKzs7ICAgdHdvIHNlcGFyYXRlIGxpc3RzIGlm
IHRoZSBwYXJzZXIgbWVyZ2VzIHRoZW0gaW50byBvbmUgbm9kZS4KKzs7Cis7OyAtIEVtcHR5IGxp
bmVzIGZvbGxvd2luZyBhbiBgaW5kZW50ZWRfY29kZV9ibG9jaycgbWF5IGJlIGNsYWltZWQgYnkK
Kzs7ICAgdGhlIHBhcnNlciBhcyBjb250aW51YXRpb24gbGluZXMgb2YgdGhhdCBibG9jaywgcmF0
aGVyIHRoYW4gYmVpbmcKKzs7ICAgdHJlYXRlZCBhcyBibGFuayBzZXBhcmF0b3JzLgogCiA7Ozsg
Q29kZToKIAogKHJlcXVpcmUgJ3RyZWVzaXQpCiAocmVxdWlyZSAnc3Vici14KQotKHJlcXVpcmUg
J291dGxpbmUpCiAocmVxdWlyZSAnc2VxKQorKHJlcXVpcmUgJ291dGxpbmUpCisocmVxdWlyZSAn
Z290by1hZGRyKQorKHJlcXVpcmUgJ3hyZWYpCiAKLSh0cmVlc2l0LWRlY2xhcmUtdW5hdmFpbGFi
bGUtZnVuY3Rpb25zKQotCi0oYWRkLXRvLWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2Ut
YWxpc3QKLSAnKG1hcmtkb3duCi0gICAiaHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdy
YW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgotICAgOmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4
YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKLSAgIDpzb3VyY2UtZGlyICJ0cmVlLXNpdHRlci1t
YXJrZG93bi9zcmMiKQotIHQpCi0oYWRkLXRvLWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3Vy
Y2UtYWxpc3QKLSAnKG1hcmtkb3duLWlubGluZQotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVl
LXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4
NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJl
ZS1zaXR0ZXItbWFya2Rvd24taW5saW5lL3NyYyIpCi0gdCkKLQotOzs7IEhlbHBlciBmdW5jdGlv
bnMKLQotKGRlZnZhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgJygo
ImMrKyIgLiBjcHApCi0gICAgKCJjIyIgLiBjLXNoYXJwKQotICAgICgic2giIC4gYmFzaCkpCi0g
ICJBbGlzdCBtYXBwaW5nIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbmFtZXMgdG8gdHJlZS1zaXR0ZXIg
bGFuZ3VhZ2VzLgotCi1LZXlzIHNob3VsZCBiZSBzdHJpbmdzLCBhbmQgdmFsdWVzIHNob3VsZCBi
ZSBsYW5ndWFnZSBzeW1ib2xzLgotCi1Gb3IgZXhhbXBsZSwgXCJjKytcIiBpbgotCi0gICAgYGBg
YysrCi0gICAgaW50IG1haW4oKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBgYGAK
LQotbWFwcyB0byB0cmVlLXNpdHRlciBsYW5ndWFnZSBgY3BwJy4iKQorOzs7IEN1c3RvbWl6YXRp
b25zOgogCi0oZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwCi0g
ICcoKGJhc2ggLiBiYXNoLXRzLW1vZGUpCi0gICAgKGMgLiBjLXRzLW1vZGUpCi0gICAgKGMtc2hh
cnAgLiBjc2hhcnAtdHMtbW9kZSkKLSAgICAoY21ha2UgLiBjbWFrZS10cy1tb2RlKQotICAgIChj
cHAgLiBjKystdHMtbW9kZSkKLSAgICAoY3NzIC4gY3NzLXRzLW1vZGUpCi0gICAgKGRvY2tlcmZp
bGUgLiBkb2NrZXJmaWxlLXRzLW1vZGUpCi0gICAgKGVsaXhpciAuIGVsaXhpci10cy1tb2RlKQot
ICAgIChnbyAuIGdvLXRzLW1vZGUpCi0gICAgKGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCi0gICAg
KGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkKLSAgICAoaGVleCAuIGhlZXgtdHMtbW9kZSkKLSAg
ICAoaHRtbCAuIGh0bWwtdHMtbW9kZSkKLSAgICAoamF2YSAuIGphdmEtdHMtbW9kZSkKLSAgICAo
amF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCi0gICAgKGpzb24gLiBqc29uLXRzLW1vZGUpCi0gICAg
KGx1YSAuIGx1YS10cy1tb2RlKQotICAgIChwaHAgLiBwaHAtdHMtbW9kZSkKLSAgICAocHl0aG9u
IC4gcHl0aG9uLXRzLW1vZGUpCi0gICAgKHJ1YnkgLiBydWJ5LXRzLW1vZGUpCi0gICAgKHJ1c3Qg
LiBydXN0LXRzLW1vZGUpCi0gICAgKHRvbWwgLiB0b21sLXRzLW1vZGUpCi0gICAgKHRzeCAuIHRz
eC10cy1tb2RlKQotICAgICh0eXBlc2NyaXB0IC4gdHlwZXNjcmlwdC10cy1tb2RlKQotICAgICh5
YW1sIC4geWFtbC10cy1tb2RlKSkKLSAgIkFuIGFsaXN0IG9mIHN1cHBvcnRlZCBjb2RlIGJsb2Nr
IGxhbmd1YWdlcyBhbmQgdGhlaXIgbWFqb3IgbW9kZS4iKQorKGRlZmdyb3VwIG1hcmtkb3duLXRz
IG5pbAorICAiTWFqb3IgbW9kZSBmb3Igdmlld2luZyBhbmQgZWRpdGluZyBNYXJrZG93biBidWZm
ZXJzLiIKKyAgOnByZWZpeCAibWFya2Rvd24tdHMtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3Vw
ICdlZGl0aW5nCisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRlZmN1c3RvbSBtYXJrZG93bi10cy1o
aWRlLW1hcmt1cCBuaWwKICAgIk5vbi1uaWwgbWVhbnMgaGlkZSBNYXJrZG93biBtYXJrdXAgZGVs
aW1pdGVycyBpbiB0aGlzIGJ1ZmZlci4iCiAgIDp0eXBlICdib29sZWFuCiAgIDpzYWZlICMnYm9v
bGVhbnAKLSAgOmdyb3VwICdtYXJrZG93bi10cykKLQotOzs7IEZhY2VzCisgIDp2ZXJzaW9uICIz
MS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRz
LWVsbGlwc2lzIG5pbAorICAiVGhlIGVsbGlwc2lzIHRvIHVzZSBpbiBmb2xkZWQgaGVhZGluZ3Mu
CitXaGVuIG5pbCwgdXNlIHRoZSBzdGFuZGFyZCB0aHJlZSBkb3RzLiAgV2hlbiBhIG5vbi1lbXB0
eSBzdHJpbmcsCit1c2UgdGhhdCBzdHJpbmcgaW5zdGVhZC4iCisgIDp0eXBlICcoY2hvaWNlIChj
b25zdCAgOnRhZyAiRGVmYXVsdCAoLi4uKSIgbmlsKQorICAgICAgICAgICAgICAgICAoc3RyaW5n
IDp0YWcgIlN0cmluZyIgOnZhbHVlICIg4oyEIikpCisgIDpzYWZlICMnc3RyaW5nLW9yLW51bGwt
cAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1
c3RvbSBtYXJrZG93bi10cy1tZW51LWJhci1zaG93IHQKKyAgIk5vbi1uaWwgbWVhbnMgc2hvdyB0
aGUgTWFya2Rvd24gbWVudSBpbiB0aGUgbWVudSBiYXIuIgorICA6dHlwZSAnYm9vbGVhbgorICA6
c2FmZSAjJ2Jvb2xlYW5wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZyAnc2hvdy1hbGwK
KyAgIkRlZmF1bHQgaGVhZGluZyBmb2xkaW5nIGxldmVsLiIKKyAgOnR5cGUgJyhjaG9pY2UKKyAg
ICAgICAgICAoY29uc3QgOnRhZyAiU2hvdyBldmVyeXRoaW5nIiBzaG93LWFsbCkKKyAgICAgICAg
ICAoY29uc3QgOnRhZyAiRm9sZCBldmVyeXRoaW5nLCBzaG93aW5nIHRvcC1sZXZlbCBoZWFkaW5n
cyIgZm9sZC1hbGwpCisgICAgICAgICAgKGNvbnN0IDp0YWcgIkZvbGQgaGVhZGluZ3MsIHNob3dp
bmcgYWxsIGhlYWRpbmcgbGV2ZWxzIiBmb2xkLWhlYWRpbmdzKSkKKyAgOnNhZmUgIydzeW1ib2xw
CisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3Vz
dG9tIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMgbmlsCisgICJOb24tbmlsIG1lYW5zIGRpc3Bs
YXkgaW5saW5lIGltYWdlcyBiZWxvdyBpbWFnZSBsaW5rcy4iCisgIDp0eXBlICdib29sZWFuCisg
IDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24g
IjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoICd3aW5kb3cK
KyAgIk1heGltdW0gd2lkdGggb2YgaW5saW5lIGltYWdlcyBpbiBwaXhlbHMuCitXaGVuIGB3aW5k
b3cnLCB1c2UgdGhlIHdpbmRvdyBib2R5IHdpZHRoLiAgV2hlbiBhIG51bWJlciwgdXNlCit0aGF0
IGFzIHRoZSBtYXhpbXVtIHBpeGVsIHdpZHRoLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6
dGFnICJXaW5kb3cgd2lkdGgiIHdpbmRvdykKKyAgICAgICAgICAgICAgICAgKG5hdG51bSA6dGFn
ICJQaXhlbCB3aWR0aCIpKQorICA6c2FmZSAobGFtYmRhICh2KSAob3IgKGVxIHYgJ3dpbmRvdykg
KG5hdG51bXAgdikpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4w
IikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxpbmUtaW1hZ2Vz
IG5pbAorICAiSG93IHRvIGRpc3BsYXkgcmVtb3RlIGlubGluZSBpbWFnZXMuCitXaGVuIG5pbCwg
ZG8gbm90IGRpc3BsYXkgcmVtb3RlIGltYWdlcy4gIFdoZW4gYGRvd25sb2FkJywgZmV0Y2ggdGhl
CitpbWFnZSBpbnRvIGEgdGVtcG9yYXJ5IGJ1ZmZlciBhbmQgZGlzcGxheSBpdC4KKworUmVtb3Rl
IGltYWdlcyBhcmUgc2tpcHBlZCBieSBkZWZhdWx0IGZvciBzZWN1cml0eS4iCisgIDp0eXBlICco
Y2hvaWNlIChjb25zdCA6dGFnICJTa2lwIHJlbW90ZSBpbWFnZXMiIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIkRvd25sb2FkIHJlbW90ZSBpbWFnZXMiIGRvd25sb2FkKSkKKyAg
OnNhZmUgIydzeW1ib2xwCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3ggJygi4piRIiAu
ICIrIikKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSBjaGVja2Vk
IHRhc2sgbGlzdCBtYXJrZXIuCitUaGUgdmFsdWUgaXMgYSBjb25zIChQUkVGRVJSRUQgLiBGQUxM
QkFDSyk6IFBSRUZFUlJFRCBpcyB1c2VkIGlmIGl0cyBmaXJzdAorY2hhcmFjdGVyIHBhc3NlcyBg
Y2hhci1kaXNwbGF5YWJsZS1wJywgb3RoZXJ3aXNlIEZBTExCQUNLIGlzIHVzZWQuCituaWwgZGlz
cGxheXMgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0
YWcgIlByZWZlcnJlZCAoR1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRh
ZyAiRmFsbGJhY2sgKFRUWSkiKSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3Bs
YXkgb3JpZ2luYWwgbWFya3VwIiBuaWwpKQorICA6c2FmZSAobGFtYmRhICh2KSAob3IgKG51bGwg
dikKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGNvbnNwIHYpIChzdHJpbmdwIChjYXIg
dikpIChzdHJpbmdwIChjZHIgdikpKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12
ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2Jv
eCAnKCLimJAiIC4gIi0iKQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZv
ciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlci4KK1RoZSB2YWx1ZSBpcyBhIGNvbnMgKFBS
RUZFUlJFRCAuIEZBTExCQUNLKTogUFJFRkVSUkVEIGlzIHVzZWQgaWYgaXRzIGZpcnN0CitjaGFy
YWN0ZXIgcGFzc2VzIGBjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0sgaXMg
dXNlZC4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChj
b25zIChzdHJpbmcgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgKHN0cmluZyA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29u
c3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDpzYWZlIChsYW1iZGEg
KHYpIChvciAobnVsbCB2KQorICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoY29uc3Agdikg
KHN0cmluZ3AgKGNhciB2KSkgKHN0cmluZ3AgKGNkciB2KSkpKSkKKyAgOnZlcnNpb24gIjMxLjEi
CisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyICcoP+KUgCAuID8tKQorICAiSWYgbWFya3VwIGlzIGhpZGRl
biwgZGlzcGxheSB0aGlzIGNoYXJhY3RlciBmb3IgdGhlbWF0aWMgYnJlYWtzLgorSXQgaXMgcmVw
ZWF0ZWQgdG8gZmlsbCB0aGUgd2luZG93IHdpZHRoLgorVGhlIHZhbHVlIGlzIGEgY29ucyAoUFJF
RkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVGRVJSRUQgaXMgdXNlZCBpZiBpdCBwYXNzZXMKK2BjaGFy
LWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0sgaXMgdXNlZC4KK25pbCBkaXNwbGF5
cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zIChjaGFyYWN0ZXIgOnRh
ZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAgKGNoYXJhY3RlciA6
dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlz
cGxheSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDpzYWZlIChsYW1iZGEgKHYpIChvciAobnVs
bCB2KQorICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoY29uc3AgdikgKGNoYXJhY3RlcnAg
KGNhciB2KSkgKGNoYXJhY3RlcnAgKGNkciB2KSkpKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpw
YWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaGFyZC1saW5l
LWJyZWFrLWJhY2tzbGFzaCAnKD/CtiAuID98KQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlz
cGxheSB0aGlzIGNoYXJhY3RlciBmb3IgYSBiYWNrc2xhc2ggaGFyZCBsaW5lIGJyZWFrLgorVGhl
IHZhbHVlIGlzIGEgY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVGRVJSRUQgaXMgdXNl
ZCBpZiBpdCBwYXNzZXMKK2BjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0sg
aXMgdXNlZC4KK25pbCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChj
b25zIChjaGFyYWN0ZXIgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgKGNoYXJhY3RlciA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAg
ICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDpzYWZlIChs
YW1iZGEgKHYpIChvciAobnVsbCBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChj
b25zcCB2KSAoY2hhcmFjdGVycCAoY2FyIHYpKSAoY2hhcmFjdGVycCAoY2RyIHYpKSkpKQorICA6
dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBt
YXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgKGxhbWJkYSAobikKKyAgICAobGV0
KiAoKHZhbCAobWFya2Rvd24tdHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZQorICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstYmFja3NsYXNoKSkKKyAgICAgICAgICAg
KGNoIChpZiAoY2hhcmFjdGVycCB2YWwpIHZhbCA/fCkpKQorICAgICAgKG1ha2Utc3RyaW5nIG4g
Y2gpKSkKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSB0cmFpbGlu
Zy1zcGFjZXMgaGFyZCBsaW5lIGJyZWFrLgorVGhlIHZhbHVlIGNhbiBiZToKKy0gYSBjaGFyYWN0
ZXIgb3Igc3RyaW5nOiBzaG93biBvbmNlIGF0IHRoZSBzdGFydCBvZiB0aGUgdHJhaWxpbmcgc3Bh
Y2VzLAorICB3aXRoIG5vIHJlcGV0aXRpb24gKHRoZSByZW1haW5pbmcgc3BhY2VzIHN0YXkgaW52
aXNpYmxlKTsKKy0gYSBmdW5jdGlvbjogY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50LCB0aGUgbnVt
YmVyIG9mIHRyYWlsaW5nIHNwYWNlcywKKyAgYW5kIG11c3QgcmV0dXJuIHRoZSBzdHJpbmcgdG8g
ZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgcnVuOworLSBuaWw6IGtlZXAgdGhlIHJhdyBtYXJrdXAu
IgorICA6dHlwZSAnKGNob2ljZSAoY2hhcmFjdGVyIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIGNo
YXJhY3RlciAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAgICAgICAoc3RyaW5nIDp0YWcg
IkRpc3BsYXkgc3BlY2lmaWVkIHN0cmluZyAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAg
ICAgICAoZnVuY3Rpb24gOnRhZyAiRnVuY3Rpb24gZnJvbSBjb3VudCB0byBkaXNwbGF5IHN0cmlu
ZyIpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1
cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisK
KyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9k
ZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMgY29kZSBibG9ja3MuIgorICA6dHlwZSAn
KGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAiVGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisg
ICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRhbCBtb2RlIiBmdW5kYW1lbnRhbC1tb2Rl
KQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIgbW9kZSBzeW1ib2wiCisgICAgICAgICAg
ICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdpZCkpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChlcSAnc3ltYm9sICh0eXBlLW9mIHZhbCkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJy
b3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkKSkpKSkKKyAgOnNhZmUgIydzeW1ib2xwCisgIDp2ZXJzaW9uICIzMS4xIgor
ICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCis7OzsgRmFjZXM6CiAKIChkZWZncm91cCBtYXJr
ZG93bi10cy1mYWNlcyBuaWwKLSAgIkZhY2VzIHVzZWQgaW4gTWFya2Rvd24gVFMgTW9kZS4iCisg
ICJGYWNlcyB1c2VkIGJ5IE1hcmtkb3duLVRTLiIKICAgOmdyb3VwICdtYXJrZG93bi10cy1mYWNl
cwogICA6Z3JvdXAgJ2ZhY2VzKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1kZWxpbWl0ZXIgJygo
dCAoOmluaGVyaXQgc2hhZG93KSkpCi0gICJGYWNlIGZvciB0aGUgIyBiZWZvcmUgTWFya2Rvd24g
aGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJrZG93biBoZWFkaW5ncy4i
CisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRlZmZhY2UgbWFya2Rvd24tdHMtaGVhZGluZy0xICco
KHQgKDppbmhlcml0IG91dGxpbmUtMSkpKQotICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rv
d24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIGZpcnN0IGxldmVsIE1hcmtkb3duIGhlYWRpbmdz
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1zZXRleHQtaGVh
ZGluZyAnKCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1oZWFkaW5nLTEpKSkKLSAgIkZhY2UgZm9y
IHNldGV4dCBNYXJrZG93biBoZWFkaW5ncyAoaGVhZGluZ3MgdW5kZXJsaW5lZCBieSA9PT0gb3Ig
LS0tKS4iKQorICAiRmFjZSBmb3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1
bmRlcmxpbmVkIGJ5ID09PSBvciAtLS0pLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFj
ZSBtYXJrZG93bi10cy1oZWFkaW5nLTIgJygodCAoOmluaGVyaXQgb3V0bGluZS0yKSkpCi0gICJG
YWNlIGZvciBzZWNvbmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIHNl
Y29uZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRl
ZmZhY2UgbWFya2Rvd24tdHMtaGVhZGluZy0zICcoKHQgKDppbmhlcml0IG91dGxpbmUtMykpKQot
ICAiRmFjZSBmb3IgdGhpcmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9y
IHRoaXJkIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAo
ZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTQgJygodCAoOmluaGVyaXQgb3V0bGluZS00KSkp
Ci0gICJGYWNlIGZvciBmb3VydGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2Ug
Zm9yIGZvdXJ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIzMS4xIikK
IAogKGRlZmZhY2UgbWFya2Rvd24tdHMtaGVhZGluZy01ICcoKHQgKDppbmhlcml0IG91dGxpbmUt
NSkpKQotICAiRmFjZSBmb3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZh
Y2UgZm9yIGZpZnRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTYgJygodCAoOmluaGVyaXQgb3V0bGlu
ZS02KSkpCi0gICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAi
RmFjZSBmb3Igc2l4dGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKLShkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNo
YWRvdykpKQotICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4i
KQorKGRlZmZhY2UgbWFya2Rvd24tdHMtZW1waGFzaXMgJygodCAoOmluaGVyaXQgaXRhbGljKSkp
CisgICJGYWNlIGZvciBNYXJrZG93biBlbXBoYXNpcyAoaXRhbGljKSB0ZXh0LiIKKyAgOnZlcnNp
b24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1ib2xkICcoKHQgKDppbmhlcml0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHN0cm9uZyBlbXBoYXNpcyAoYm9sZCkgdGV4dC4i
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtc3RyaWtldGhyb3Vn
aCAnKCh0ICg6c3RyaWtlLXRocm91Z2ggdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3RyaWtl
dGhyb3VnaCB0ZXh0LiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10
cy1ibG9jay1xdW90ZSAnKCh0ICg6aW5oZXJpdCBpdGFsaWMpKSkKLSAgIkZhY2UgZm9yIE1hcmtk
b3duIGJsb2NrIHF1b3Rlcy4iKQorICAiRmFjZSBmb3IgTWFya2Rvd24gYmxvY2sgcXVvdGVzLiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5rICcoKHQgKDpp
bmhlcml0IGxpbmspKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGxpbmsgdGV4dCBhbmQgaW1hZ2Ug
ZGVzY3JpcHRpb25zLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10
cy1saW5rLWRlc3RpbmF0aW9uICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkp
KQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGluayBkZXN0aW5hdGlvbnMgKFVSTHMpLiIKKyAgOnZl
cnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1jb2RlLXNwYW4gJygodCAoOmlu
aGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBpbmxp
bmUgY29kZSBzcGFucy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24t
dHMtY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGZl
bmNlZCBjb2RlIGJsb2NrIGNvbnRlbnQuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRkIGEgYDpiYWNr
Z3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdAorY29kZSBibG9jayByZWdpb24sIGUuZy46
CisgIChzZXQtZmFjZS1hdHRyaWJ1dGUgXFw9J21hcmtkb3duLXRzLWNvZGUtYmxvY2sgbmlsIDpi
YWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stbWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQgbGln
aHQpKSAoOmJhY2tncm91bmQgImdyYXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3JvdW5k
IGRhcmspKSAgKDpiYWNrZ3JvdW5kICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3Ig
TWFya2Rvd24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4u
CitVc2VkIGluc3RlYWQgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtkb3du
LXRzLWhpZGUtbWFya3VwJworaXMgbm9uLW5pbC4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRl
ZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29kZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBmb250
LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGluZGVudGVkIGNvZGUg
YmxvY2tzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1s
LXRhZyAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1cC1mYWNlKSkpCisgICJGYWNl
IGZvciBpbmxpbmUgSFRNTCB0YWdzIGluIE1hcmtkb3duLiIKKyAgOnZlcnNpb24gIjMxLjEiKQor
CisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQtbG9j
ay1kb2MtbWFya3VwLWZhY2UpKSkKKyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtkb3du
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10aGVtYXRpYy1i
cmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJr
ZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250YWwgcnVsZXMpLgorQ3VzdG9taXplIHRoaXMg
ZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3IgYSBmdWxsLXdpZHRoIHZpc3VhbCBydWxlLiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbnRpdHktcmVmZXJl
bmNlICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkKKyAgIkZhY2UgZm9y
IG5hbWVkIEhUTUwgZW50aXR5IHJlZmVyZW5jZXMgbGlrZSAmYW1wOyBhbmQgJmNvcHk7LiIKKyAg
OnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rl
ci1yZWZlcmVuY2UKKyAgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkpCisg
ICJGYWNlIGZvciBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5kICYj
eDQxOy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0ZXgg
JygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBMYVRl
WCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAoJC4uLiQgYW5kICQkLi4uJCQpLiIKKyAgOnZl
cnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIgJygodCAo
OmluaGVyaXQgKGJvbGQgZm9udC1sb2NrLWRvYy1mYWNlKSkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gcGlwZSB0YWJsZSBoZWFkZXIgY2VsbHMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZm
YWNlIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQorICAi
RmFjZSBmb3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkYXRhIGNlbGxzLiIKKyAgOnZlcnNpb24gIjMx
LjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0ICg6
aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHBpcGUg
dGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2VwYXJhdG9ycykuIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQgJygodCAoOmluaGVy
aXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpKQotICAiRmFjZSBmb3IgdGhlIGxhbmd1YWdlIGtl
eXdvcmQgZm9yIE1hcmtkb3duIGNvZGUgYmxvY2tzLiIpCisgICJGYWNlIGZvciB0aGUgbGFuZ3Vh
Z2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNoYWRv
dykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4iCisg
IDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFr
LWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisg
ICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFp
bGluZyBiYWNrc2xhc2guIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuCisgICcoKHQgKDppbmhlcml0IG91
dGxpbmUtNCA6d2VpZ2h0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIHRyYWlsaW5nLWJhY2tzbGFzaCBo
YXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgJygoKChi
YWNrZ3JvdW5kIGxpZ2h0KSkgKDpiYWNrZ3JvdW5kICJncmF5NzAiIDp3ZWlnaHQgYm9sZCkpCisg
ICAgKCgoYmFja2dyb3VuZCBkYXJrKSkgICg6YmFja2dyb3VuZCAiZ3JheTQwIiA6d2VpZ2h0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGhhcmQgbGluZSBicmVha3MgaW50cm9kdWNlZCBi
eSB0d28gdHJhaWxpbmcgc3BhY2VzLgorVGhlIHRyYWlsaW5nIHNwYWNlcyBhcmUgb3RoZXJ3aXNl
IGludmlzaWJsZSwgc28gdGhleSBhcmUgc2hvd24gYXMgYQorc2hhZG93LWNvbG9yZWQgYmxvY2su
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9s
ZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWxpc3QtbWFya2Vy
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlcnMuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stY2hlY2tlZCAn
KCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1saXN0LW1hcmtlcikpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gY2hlY2tlZCB0YXNrIGxpc3QgbWFya2Vycy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCisKKyhhZGQtdG8tbGlzdAor
ICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rvd24KKyAgICJodHRwczov
L2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisg
ICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAg
OnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCisgdCkKKworKGFkZC10by1s
aXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CisgJyhtYXJrZG93bi1pbmxpbmUK
KyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXIt
bWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFh
NzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMi
KQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXNldC11cC1p
bmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRvIG5vbi1uaWwgZm9yIGlubGluZSBgbWFya2Rv
d24tdHMtbW9kZScgYnVmZmVycy4iKQogCi07OzsgRm9udC1sb2NrCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggLiBiYXNoLXRzLW1vZGUpCisgICAgKHNoZWxs
IC4gYmFzaC10cy1tb2RlKQorICAgICgsKGludGVybiAiYyMiKSAuIGMtc2hhcnApCisgICAgKGNw
cCAuIGMrKy10cy1tb2RlKQorICAgIChlbCAuIGVtYWNzLWxpc3AtbW9kZSkKKyAgICAoZWxpc3Ag
LiBlbWFjcy1saXNwLW1vZGUpCisgICAgKGdvbGFuZyAuIGdvLXRzLW1vZGUpCisgICAgKGdvbW9k
IC4gZ28tbW9kLXRzLW1vZGUpCisgICAgKGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkKKyAgICAo
amF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCisgICAgKG1kIC4gbWFya2Rvd24tdHMtbW9kZSkKKyAg
ICAocHkgLiBweXRob24tdHMtbW9kZSkKKyAgICAocmIgLiBydWJ5LXRzLW1vZGUpCisgICAgKHJz
IC4gcnVzdC10cy1tb2RlKQorICAgICh0ZXggLiBsYXRleC1tb2RlKQorICAgICh0cyAuIHR5cGVz
Y3JpcHQtdHMtbW9kZSkKKyAgICAoeW1sIC4geWFtbC10cy1tb2RlKSkKKyAgIkFsaXN0IG1hcHBp
bmcgY29kZSBibG9jayBsYW5ndWFnZXMgdG8gdGhlaXIgbWFqb3IgbW9kZS4KK1RoZSBhbGlzdCBp
cyBvZiB0aGUgZm9ybSAoTEFOR1VBR0UgLiBNQUpPUi1NT0RFKS4KK01BSk9SLU1PREUgY2FuIGJl
IGEgdHJlZS1zaXR0ZXIgb3IgYSBjb252ZW50aW9uYWwgbW9kZS4KK0lmIHlvdSBwcmVmZXIgYSBj
b252ZW50aW9uYWwgbW9kZSBvdmVyIGl0cyB0cmVlLXNpdHRlciB2YXJpYW50LCBhZGQgb3IgcmVw
bGFjZQorcmVsZXZhbnQgZW50cmllcy4gIEZvciBleGFtcGxlOgorICAgIChhZGQtdG8tbGlzdCBc
XD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9JyhweXRob24gLiBweXRo
b24tbW9kZSkpCisgICAgKHNldGYgKGFsaXN0LWdldCBcXD0ncHkgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1tb2RlcykKKyAgICAgICAgICBcXD0ncHl0aG9uLW1vZGUpCitDb2RlIGJsb2NrcyBmb3Ig
dGhhdCBub24gdHJlZS1zaXR0ZXIgbW9kZXMgd2lsbCBiZSBmb250aWZpZWQgdXNpbmcgdGhlCitt
b2RlJ3MgY29udmVudGlvbmFsIGZvbnQtbG9jayBydWxlcy4iKQorCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzCisgICcobWFya2Rvd24tdHMt
bW9kZQorICAgIHBocC10cy1tb2RlKQorICAiVHJlYXQgdGhlc2UgY29kZSBibG9jayB0cmVlLXNp
dHRlciBtb2RlcyBhcyBjb252ZW50aW9uYWwuCitTb21lIG1vZGVzIHRoYXQgZW1iZWQgbXVsdGlw
bGUgYHRyZWVzaXQnIHBhcnNlcnMgbmVlZCB0byBiZSB0cmVhdGVkIHdpdGgKK2NvbnZlbnRpb25h
bCBmb250LWxvY2suICBgbWFya2Rvd24tdHMtbW9kZScgaXRzZWxmIGlzIG9uZSBvZiB0aGVtLiIp
CisKKzs7OyBGb250LWxvY2s6CiAKIChkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0
ZXIgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCiAgICJGb250aWZ5IGRlbGltaXRl
ciBOT0RFIGFuZCBvcHRpb25hbGx5IGhpZGUgaXRzIG1hcmt1cC4KQEAgLTE2OCwyMyArNTE1LDc5
MiBAQCBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAocHV0LXRleHQtcHJvcGVy
dHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQogICAg
ICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3VwKSkpCiAK
KyhkZWZ2YXIgdXJsLW1haWwtY29tbWFuZCkgOyB1cmwvdXJsLXZhcnMuZWwKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uIChiZWcgZW5kIHVybCkKKyAgIk1ha2UgdGhlIHJl
Z2lvbiBmcm9tIEJFRyB0byBFTkQgYSBjbGlja2FibGUgYnV0dG9uIGZvciBVUkwuCitGb3IgbWFp
bHRvOiBVUklzLCB1c2UgYHVybC1tYWlsLWNvbW1hbmQnLiAgRm9yIG90aGVyIHNjaGVtZXMKK1wo
ZS5nLiwgaHR0cCwgZnRwKSwgb3BlbiB3aXRoIGBicm93c2UtdXJsJy4gIE90aGVyd2lzZSwgdHJl
YXQgYXMKK2EgcmVsYXRpdmUgZmlsZSBwYXRoIGFuZCBvcGVuIHdpdGggYGZpbmQtZmlsZScuCisK
K0RvIG5vdCBwYXNzIGBmYWNlJyB0byBgbWFrZS10ZXh0LWJ1dHRvbic6IHRoZSBsaW5rIGZhY2Ug
aXMgYWxyZWFkeQorYXBwbGllZCBieSBgbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlJyB2
aWEKK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScgKHdpdGggYDpvdmVycmlkZSBhcHBl
bmQnKSwgYW5kCitgYWRkLXRleHQtcHJvcGVydGllcycgd291bGQgb3RoZXJ3aXNlIHJlcGxhY2Ug
dGhlIGFwcGVuZGVkIGZhY2UKK2xpc3Qgd2l0aCBhIHNpbmdsZSBgbWFya2Rvd24tdHMtbGluaycs
IGNsb2JiZXJpbmcgYW4gZW5jbG9zaW5nCitoZWFkaW5nIGZhY2UuIgorICA7OyBOT1RFOiBVUkkg
c2NoZW1lIGFuZCBob3N0IG5hbWUgYXJlIGNhc2UtaW5zZW5zaXRpdmUgcGVyIFJGQyAzOTg2Cisg
IDs7IGFuZCBSRkMgNzIzMC4KKyAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkKKyAgICAo
bWFrZS10ZXh0LWJ1dHRvbiBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbiAo
bGFtYmRhIChfYnV0dG9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctcHJlZml4LXAgIiMiIHVy
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZvbGxv
dy1mcmFnbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5n
IHVybCAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRj
aC1wICJcXGBtYWlsdG86IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGZ1bmNhbGwgdXJsLW1haWwtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYG1haWx0bzoiICIiIHVybCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2gtcCAiXFxgW2Etel0rOiIg
dXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChicm93c2UtdXJsIHVybCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCAoZmluZC1maWxlIHVybCkpKSkK
KyAgICAgICAgICAgICAgICAgICAgICAnaGVscC1lY2hvIHVybCkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQg
JnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBkZXN0aW5hdGlvbiBOT0RFIGFuZCBoaWRlIGl0IHdo
ZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2Vk
IHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAodHJlZXNp
dC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRy
ZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICdtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uIG92
ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAo
cHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2Rl
LWVuZCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10
cy0tbWFya3VwKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hl
IG5pbAorICAiQ2FjaGVkIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBsaW5rIHJlZmVyZW5j
ZSBkZWZpbml0aW9ucy4KK0VhY2ggZW50cnkgaXMgYSBjb25zIGNlbGwgbWFwcGluZyBhIGRvd25j
YXNlZCBsYWJlbCBzdHJpbmcgdG8gaXRzCitkZXN0aW5hdGlvbiBVUkwuIikKKworKGRlZnZhci1s
b2NhbCBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayBuaWwKKyAgIlZhbHVlIG9mIGBi
dWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgY2FjaGUgd2FzIGJ1aWx0LiIpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMgKCkKKyAgIlJldHVybiBh
biBhbGlzdCBvZiAoTEFCRUwgLiBVUkwpIGZyb20gbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMu
CitMQUJFTCBpcyBkb3duY2FzZWQgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcuICBSZXN1
bHRzIGFyZQorY2FjaGVkIGFuZCByZWJ1aWx0IG9ubHkgd2hlbiB0aGUgYnVmZmVyIGNoYW5nZXMu
IgorICAobGV0ICgodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2spKSkKKyAgICAodW5s
ZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNrKQorICAgICAgKGxl
dCogKChyb290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkKKyAgICAgICAg
ICAgICAobWF0Y2hlcyAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgICAg
ICAgIHJvb3QKKyAgICAgICAgICAgICAgICAgICAgICAgJygobGlua19yZWZlcmVuY2VfZGVmaW5p
dGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua19sYWJlbCkgQGxhYmVsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAZGVzdCkpKSkKKyAgICAg
ICAgICAgICBkZWZzKQorICAgICAgICAod2hpbGUgbWF0Y2hlcworICAgICAgICAgIChsZXQqICgo
bGFiZWwtcGFpciAocG9wIG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAoZGVzdC1wYWlyIChw
b3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAgIChsYmwtdGV4dCAoc3RyaW5nLXRyaW0gKHRy
ZWVzaXQtbm9kZS10ZXh0IChjZHIgbGFiZWwtcGFpcikgdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiXFxbIiAiXFxdIikpKQorICAgICAgICAgICAgKHB1c2ggKGNv
bnMgKGRvd25jYXNlIGxibC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS10ZXh0IChjZHIgZGVzdC1wYWlyKSB0KSkKKyAgICAgICAgICAgICAgICAgIGRlZnMpKSkK
KyAgICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlIChucmV2ZXJzZSBkZWZz
KQorICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayB0aWNrKSkp
CisgICAgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1yZXNvbHZlLWxpbmstcmVmIChsYWJlbCkKKyAgIlJlc29sdmUgTEFCRUwgdG8gYSBVUkwgdmlh
IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorTEFCRUwgc2hvdWxkIGJlIHRoZSB0ZXh0IHdp
dGhvdXQgYnJhY2tldHMuICBNYXRjaGluZyBpcworY2FzZS1pbnNlbnNpdGl2ZSBwZXIgQ29tbW9u
TWFyayBzcGVjIHNlY3Rpb24gNC43LiIKKyAgKGFsaXN0LWdldCAoZG93bmNhc2UgbGFiZWwpICht
YXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMpCisgICAgICAgICAgICAgbmlsIG5pbCAj
J2VxdWFsKSkKKworOzs7IEZyYWdtZW50IGxpbmtzOgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMt
LXNsdWctZ2l0aHViLXN0cmlwLXJlCisgICJbXVshXCIjJCUmJygpKissLi86Ozw9Pj9AXFxeYHt8
fX5dIgorICAiUHVuY3R1YXRpb24gc3RyaXBwZWQgYnkgR2l0SHViJ3MgZ2gtc2x1Z2dlciBiZWZv
cmUgaHlwaGVuYXRpb24uIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1YiAodGV4
dCkKKyAgIlJldHVybiB0aGUgR2l0SHViLWZsYXZvciBzbHVnIGZvciBoZWFkaW5nIFRFWFQuCitN
aXJyb3JzIHRoZSBnaC1zbHVnZ2VyIGFsZ29yaXRobTogbG93ZXJjYXNlLCBzdHJpcCBhIGZpeGVk
CitwdW5jdHVhdGlvbiBzZXQsIHJlcGxhY2Ugc3BhY2VzIHdpdGggaHlwaGVucy4iCisgIChsZXQq
ICgobGMgKGRvd25jYXNlIHRleHQpKQorICAgICAgICAgKHN0cmlwcGVkIChyZXBsYWNlLXJlZ2V4
cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHVi
LXN0cmlwLXJlICIiIGxjKSkpCisgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6Ymxh
bms6XV0iICItIiBzdHJpcHBlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNsdWctcGFuZG9j
ICh0ZXh0KQorICAiUmV0dXJuIHRoZSBQYW5kb2MtZmxhdm9yIGF1dG8taWQgc2x1ZyBmb3IgaGVh
ZGluZyBURVhULgorTWlycm9ycyBQYW5kb2MncyBhbGdvcml0aG06IGRyb3AgZXZlcnl0aGluZyBi
ZWZvcmUgdGhlIGZpcnN0CitsZXR0ZXIsIGtlZXAgYWxwaGFudW1lcmljcyBhbmQgYF8tLicsIGNv
bGxhcHNlIHdoaXRlc3BhY2UgcnVucyB0bworaHlwaGVucywgbG93ZXJjYXNlLiAgRmFsbHMgYmFj
ayB0byBcInNlY3Rpb25cIiBpZiBlbXB0eS4iCisgIChsZXQqICgobGMgKGRvd25jYXNlIHRleHQp
KQorICAgICAgICAgKGZyb20tbGV0dGVyIChpZiAoc3RyaW5nLW1hdGNoICJbWzphbHBoYTpdXSIg
bGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgbGMgKG1hdGNoLWJlZ2lu
bmluZyAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgIChrZXB0IChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAiW15bOmFsbnVtOl1fLlxu
XHRbOmJsYW5rOl0tXSIgIiIgZnJvbS1sZXR0ZXIpKQorICAgICAgICAgKGh5cGhlbmF0ZWQgKHJl
cGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6Ymxhbms6XVx0XG5dKyIgIi0iIGtlcHQpKQorICAg
ICAgICAgKHRyaW1tZWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiLStcXCciICIiIGh5cGhl
bmF0ZWQpKSkKKyAgICAoaWYgKHN0cmluZy1lbXB0eS1wIHRyaW1tZWQpICJzZWN0aW9uIiB0cmlt
bWVkKSkpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUKKyAgIlsgXHRd
KntbIFx0XSojXFwoW159IFx0XStcXClbIFx0XSp9WyBcdF0qXFwnIgorICAiTWF0Y2ggYSBQYW5k
b2Mtc3R5bGUgdHJhaWxpbmcgYHsjaWR9JyBvbiBhIGhlYWRpbmcgbGluZS4KK0NhcHR1cmUgZ3Jv
dXAgMSBpcyB0aGUgZXhwbGljaXQgaWQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oZWFkaW5n
LXRleHQtYW5kLWlkIChyYXcpCisgICJTcGxpdCBSQVcgaGVhZGluZyB0ZXh0IGludG8gKFZJU0lC
TEUgLiBFWFBMSUNJVC1JRCkuCitFWFBMSUNJVC1JRCBpcyBub24tbmlsIGlmIFJBVyBlbmRzIHdp
dGggYSBQYW5kb2Mtc3R5bGUgYHsjaWR9JywKK2luIHdoaWNoIGNhc2UgVklTSUJMRSBpcyBSQVcg
d2l0aCB0aGF0IHN1ZmZpeCByZW1vdmVkLiIKKyAgKGlmIChzdHJpbmctbWF0Y2ggbWFya2Rvd24t
dHMtLWV4cGxpY2l0LWlkLXJlIHJhdykKKyAgICAgIChjb25zIChzdWJzdHJpbmcgcmF3IDAgKG1h
dGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcpKQorICAg
IChjb25zIHJhdyBuaWwpKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0taGVhZGluZy1p
ZC1jYWNoZSBuaWwKKyAgIkNhY2hlZCBoYXNoIHRhYmxlIG1hcHBpbmcgaGVhZGluZyBzbHVnIHN0
cmluZ3MgdG8gYnVmZmVyIHBvc2l0aW9ucy4KK0VhY2ggdmFsdWUgaXMgdGhlIGJ1ZmZlciBwb3Np
dGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIG1hdGNoaW5nCitgYXR4X2hlYWRpbmcnIG9yIGBzZXRl
eHRfaGVhZGluZycgbm9kZS4gIEJ1aWx0IGxhemlseSBieQorYG1hcmtkb3duLXRzLS1oZWFkaW5n
LWlkcycsIGludmFsaWRhdGVkIGJ5IGJ1ZmZlci10aWNrIGNoYW5nZS4iKQorCisoZGVmdmFyLWxv
Y2FsIG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLXRpY2sgbmlsCisgICJWYWx1ZSBvZiBg
YnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGhlYWRpbmctaWQgY2FjaGUgd2Fz
IGJ1aWx0LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tYnVpbGQtaGVhZGluZy1pZHMgKCkKKyAg
IldhbGsgYWxsIGhlYWRpbmdzIGluIHRoZSBidWZmZXIgYW5kIHJldHVybiBhIGhhc2ggdGFibGUu
CitXaGljaCBtYXBzIGVhY2ggc2x1ZyB0byB0aGUgYnVmZmVyIHBvc2l0aW9uIG9mIGl0cyBoZWFk
aW5nLiAgRWFjaAoraGVhZGluZyBjb250cmlidXRlcyBpdHMgR2l0SHViIHNsdWcsIGl0cyBQYW5k
b2Mgc2x1ZywgYW5kIGl0cyBleHBsaWNpdAorYHsjaWR9JyBpZiBwcmVzZW50LiAgQm90aCBzbHVn
IGFsZ29yaXRobXMgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBidWZmZXIKK2JlY2F1c2UgYSBtYXJr
ZG93biBmaWxlIGlzIG9mdGVuIHByZXZpZXdlZCBieSBzZXZlcmFsIHJlbmRlcmVycyAoR2l0SHVi
Cit3ZWIgVUksIFBhbmRvYywgbWRCb29rLCBIdWdvLCBhbmQgc28gb24pIGFuZCB0aGUgc2FtZSBz
b3VyY2Ugc2hvdWxkCityZXNvbHZlIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb25lIHRoZSBhdXRob3Ig
d3JvdGUgdGhlIGxpbmsgZm9yLiAgRm9yIG1vc3QKK2hlYWRpbmdzIHRoZSB0d28gYWxnb3JpdGht
cyBwcm9kdWNlIHRoZSBzYW1lIHNsdWcgYW55d2F5LgorRHVwbGljYXRlIHNsdWdzICh3aXRoaW4g
b25lIGFsZ29yaXRobSkgYXJlIGRpc2FtYmlndWF0ZWQgYnkgYXBwZW5kaW5nCitgLTEnLCBgLTIn
LCBhbmQgc28gb24sIGluIGRvY3VtZW50IG9yZGVyLCBtYXRjaGluZyBHaXRIdWIncyBiZWhhdmlv
ci4KK1doZW4gdHdvIGRpc3RpbmN0IGhlYWRpbmdzIHdvdWxkIG90aGVyd2lzZSBzaGFyZSBhIHNs
dWcsIHRoZSBmaXJzdAorb2NjdXJyZW5jZSBpbiBkb2N1bWVudCBvcmRlciB3aW5zLiIKKyAgKGxl
dCAoKHRhYmxlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisgICAgICAgIDs7IFBl
ci1hbGdvcml0aG0gZGVkdXBlIGNvdW50ZXJzOiBob3cgbWFueSB0aW1lcyB0aGlzIGJhc2Ugc2x1
ZworICAgICAgICA7OyBoYXMgYmVlbiBzZWVuIHNvIGZhciBpbiBkb2N1bWVudCBvcmRlci4KKyAg
ICAgICAgKGdoLWNvdW50cyAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwpKQorICAgICAg
ICAocGQtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisgICAgICAgIChy
b290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkpCisgICAgKGRvbGlzdCAo
Y2FwICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgIHJvb3QKKyAgICAg
ICAgICAgICAgICAgICcoKChhdHhfaGVhZGluZykgQGgpCisgICAgICAgICAgICAgICAgICAgICgo
c2V0ZXh0X2hlYWRpbmcpIEBoKSkpKQorICAgICAgKGxldCogKChub2RlIChjZHIgY2FwKSkKKyAg
ICAgICAgICAgICAocG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAg
KHJhdyAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpKQorICAgICAgICAg
ICAgIDs7IFN0cmlwIHRoZSBsZWFkaW5nIG1hcmtlciAoIyMjIG9yID09PT0vLS0tLSkuCisgICAg
ICAgICAgICAgOzsgRm9yIGF0eCwgZHJvcCBsZWFkaW5nICMncyBhbmQgZm9sbG93aW5nIHNwYWNl
LgorICAgICAgICAgICAgIDs7IEZvciBzZXRleHQsIGRyb3AgdGhlIHRyYWlsaW5nIHVuZGVybGlu
ZSBsaW5lLgorICAgICAgICAgICAgICh0ZXh0IChjb25kCisgICAgICAgICAgICAgICAgICAgICgo
c3RyaW5nLW1hdGNoICJcXGAjK1sgXHRdKlxcKC4qP1xcKVsgXHRdKiMqWyBcdF0qXFwnIiByYXcp
CisgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgcmF3KSkKKyAgICAgICAgICAg
ICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYFxcKC4qP1xcKVxuWz0tXStbIFx0XSpcXCciIHJh
dykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcpKQorICAgICAgICAg
ICAgICAgICAgICAodCByYXcpKSkKKyAgICAgICAgICAgICAoc3BsaXQgKG1hcmtkb3duLXRzLS1o
ZWFkaW5nLXRleHQtYW5kLWlkIHRleHQpKQorICAgICAgICAgICAgICh2aXNpYmxlIChjYXIgc3Bs
aXQpKQorICAgICAgICAgICAgIChleHBsaWNpdCAoY2RyIHNwbGl0KSkpCisgICAgICAgIDs7IEV4
cGxpY2l0IHsjaWR9IHdpbnMgb3V0cmlnaHQ7IGZpcnN0IG9jY3VycmVuY2Uga2VlcHMgaXQuCisg
ICAgICAgICh3aGVuIChhbmQgZXhwbGljaXQgKG5vdCAoZ2V0aGFzaCBleHBsaWNpdCB0YWJsZSkp
KQorICAgICAgICAgIChwdXRoYXNoIGV4cGxpY2l0IHBvcyB0YWJsZSkpCisgICAgICAgIDs7IEF1
dG8gc2x1Z3MgKEdpdEh1YiArIFBhbmRvYyksIGRlZHVwZWQgcGVyIGFsZ29yaXRobS4KKyAgICAg
ICAgKGxldCogKChnaC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1naXRodWIgdmlzaWJsZSkpCisg
ICAgICAgICAgICAgICAocGQtYmFzZSAobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jIHZpc2libGUp
KQorICAgICAgICAgICAgICAgKGdoLW4gKGdldGhhc2ggZ2gtYmFzZSBnaC1jb3VudHMgMCkpCisg
ICAgICAgICAgICAgICAocGQtbiAoZ2V0aGFzaCBwZC1iYXNlIHBkLWNvdW50cyAwKSkKKyAgICAg
ICAgICAgICAgIChnaC1pZCAoaWYgKHplcm9wIGdoLW4pIGdoLWJhc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgIChmb3JtYXQgIiVzLSVkIiBnaC1iYXNlIGdoLW4pKSkKKyAgICAgICAgICAgICAg
IChwZC1pZCAoaWYgKHplcm9wIHBkLW4pIHBkLWJhc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IChmb3JtYXQgIiVzLSVkIiBwZC1iYXNlIHBkLW4pKSkpCisgICAgICAgICAgKHB1dGhhc2ggZ2gt
YmFzZSAoMSsgZ2gtbikgZ2gtY291bnRzKQorICAgICAgICAgIChwdXRoYXNoIHBkLWJhc2UgKDEr
IHBkLW4pIHBkLWNvdW50cykKKyAgICAgICAgICA7OyBGaXJzdC13cml0ZXItd2lucyBzbyBkb2N1
bWVudCBvcmRlciB0aWVicmVha3MgY29sbGlzaW9ucy4KKyAgICAgICAgICAodW5sZXNzIChnZXRo
YXNoIGdoLWlkIHRhYmxlKSAocHV0aGFzaCBnaC1pZCBwb3MgdGFibGUpKQorICAgICAgICAgICh1
bmxlc3MgKGdldGhhc2ggcGQtaWQgdGFibGUpIChwdXRoYXNoIHBkLWlkIHBvcyB0YWJsZSkpKSkp
CisgICAgdGFibGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhlYWRpbmctaWRzICgpCisgICJS
ZXR1cm4gdGhlIGhlYWRpbmctaWQgaGFzaCB0YWJsZSBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyLgor
Q2FjaGUgaXMgcmVidWlsdCBvbmx5IHdoZW4gYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyBo
YXMgYWR2YW5jZWQKK3NpbmNlIHRoZSBsYXN0IGNhbGwgKG1pcnJvcnMgYG1hcmtkb3duLXRzLS1s
aW5rLXJlZi1jYWNoZScpLiIKKyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10
aWNrKSkpCisgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNo
ZS10aWNrKQorICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUgKG1hcmtk
b3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcykKKyAgICAgICAgICAgIG1hcmtkb3duLXRzLS1oZWFk
aW5nLWlkLWNhY2hlLXRpY2sgdGljaykpCisgICAgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2Fj
aGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCAoaWQpCisgICJKdW1w
IHRvIHRoZSBoZWFkaW5nIHdob3NlIHNsdWcgbWF0Y2hlcyBJRCAod2l0aG91dCBsZWFkaW5nIGAj
JykuCitQdXNoZXMgdGhlIG1hcmsgYmVmb3JlIG1vdmluZyBzbyBgQy11IEMtU1BDJyByZXR1cm5z
LiAgU2lnbmFscworYHVzZXItZXJyb3InIGlmIG5vIGhlYWRpbmcgbWF0Y2hlcy4iCisgIChpZi1s
ZXQqICgocG9zIChnZXRoYXNoIGlkIChtYXJrZG93bi10cy0taGVhZGluZy1pZHMpKSkpCisgICAg
ICAocHJvZ24KKyAgICAgICAgKHB1c2gtbWFyaykKKyAgICAgICAgKGdvdG8tY2hhciBwb3MpCisg
ICAgICAgIChyZWNlbnRlcikpCisgICAgKHVzZXItZXJyb3IgIk5vIGhlYWRpbmcgZm9yIGZyYWdt
ZW50OiAjJXMiIGlkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nIChu
b2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiQXBwbHkgdGhlIGhlYWRpbmcg
ZmFjZSB0byBOT0RFJ3MgZnVsbCBleHRlbnQuCitVc2UgYGZvbnQtbG9jay1hcHBlbmQtdGV4dC1w
cm9wZXJ0eScgZGlyZWN0bHkgc28gdGhlIGZhY2UgaXMgYXBwbGllZAorYWNyb3NzIHRoZSBlbnRp
cmUgaGVhZGluZyBldmVuIHdoZW4gY2hpbGQgc3ViLW5vZGVzIChlLmcuIGFuIGlubGluZQorbGlu
aykgd291bGQgb3RoZXJ3aXNlIHByZXZlbnQgdGhlIHJlZ3VsYXIgdHJlZS1zaXR0ZXIgZmFjZSBy
dWxlIGZyb20KK2NvdmVyaW5nIHRoZW0uCisKK0ZvciBBVFggaGVhZGluZ3MsIGFsc28gZm9udGlm
eSBhbnkgb3B0aW9uYWwgdHJhaWxpbmcgY2xvc2luZy1gIycKK3NlcXVlbmNlIGFzIGEgZGVsaW1p
dGVyLiAgVGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgZG9lcyBub3QgcHJvZHVjZSBhCitzZXBhcmF0
ZSBub2RlIGZvciB0aGVzZTsgcGVyIENvbW1vbk1hcmsgdGhleSBhcmUgZGVjb3JhdGl2ZSBhbmQK
K211c3QgYmUgcHJlY2VkZWQgYnkgYSBzcGFjZSBvciB0YWIuIgorICAobGV0KiAoKHR5cGUgKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgKG4tc3RhcnQgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkKKyAgICAgICAgIChuLWVuZCAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQor
ICAgICAgICAgKGZhY2UgKGNvbmQKKyAgICAgICAgICAgICAgICAoKGVxdWFsIHR5cGUgInNldGV4
dF9oZWFkaW5nIikKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLXNldGV4dC1oZWFkaW5n
KQorICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZXIgKHRy
ZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKKyAgICAgICAgICAgICAgICAgICAoaW50ZXJuIChm
b3JtYXQgIm1hcmtkb3duLXRzLWhlYWRpbmctJWQiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKSkpKSkpCisg
ICAgKGZvbnQtbG9jay1hcHBlbmQtdGV4dC1wcm9wZXJ0eSBuLXN0YXJ0IG4tZW5kICdmYWNlIGZh
Y2UpCisgICAgKHdoZW4gKHN0cmluZy1wcmVmaXgtcCAiYXR4XyIgdHlwZSkKKyAgICAgIChzYXZl
LWV4Y3Vyc2lvbgorICAgICAgICAoZ290by1jaGFyIG4tZW5kKQorICAgICAgICAoc2tpcC1jaGFy
cy1iYWNrd2FyZCAiIFx0XG4iIG4tc3RhcnQpCisgICAgICAgIChsZXQgKChsaW5lLWVuZCAocG9p
bnQpKSkKKyAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBuLXN0YXJ0KQorICAg
ICAgICAgIChsZXQgKCh0cmFpbGluZy1lbmQgKHBvaW50KSkpCisgICAgICAgICAgICAoc2tpcC1j
aGFycy1iYWNrd2FyZCAiIyIgbi1zdGFydCkKKyAgICAgICAgICAgIChsZXQgKCh0cmFpbGluZy1z
dGFydCAocG9pbnQpKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPCB0cmFpbGluZy1zdGFy
dCB0cmFpbGluZy1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKD4gdHJhaWxpbmctc3Rh
cnQgbi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUg
dHJhaWxpbmctc3RhcnQpICcoP1xzID9cdCkpKQorICAgICAgICAgICAgICAgIChmb250LWxvY2st
cHJlcGVuZC10ZXh0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgIHRyYWlsaW5nLXN0YXJ0IHRy
YWlsaW5nLWVuZAorICAgICAgICAgICAgICAgICAnZmFjZSAnbWFya2Rvd24tdHMtZGVsaW1pdGVy
KQorICAgICAgICAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAg
ICAgICAgICAgICA7OyBBbHNvIGhpZGUgdGhlIHNwYWNlKHMpIHByZWNlZGluZyB0aGUgY2xvc2Vy
IGFuZCBhbnkKKyAgICAgICAgICAgICAgICAgIDs7IHRyYWlsaW5nIHdoaXRlc3BhY2UsIHNvIHRo
ZSBoZWFkaW5nIGxvb2tzIGNsZWFuLgorICAgICAgICAgICAgICAgICAgKGxldCAoKGhpZGUtc3Rh
cnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgdHJhaWxpbmctc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiIG4tc3RhcnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAgICAgICAgICAgICAg
ICAgKHB1dC10ZXh0LXByb3BlcnR5IGhpZGUtc3RhcnQgbGluZS1lbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy0tbWFya3VwKSkpKSkpKSkpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBvciBpbWFnZSB0ZXh0IE5PREUgYXMgYSBjbGlj
a2FibGUgYnV0dG9uLgorV29ya3MgZm9yIGlubGluZSBsaW5rcywgcmVmZXJlbmNlIGxpbmtzLCBz
aG9ydGN1dCBsaW5rcywgYW5kCitpbWFnZSBkZXNjcmlwdGlvbnMuICBUaGUgVVJMIGlzIHRha2Vu
IGZyb20gYSBzaWJsaW5nCitgbGlua19kZXN0aW5hdGlvbicgbm9kZSB3aGVuIHByZXNlbnQsIG9y
IHJlc29sdmVkIGZyb20gYQorbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbiwgb3IgdGhlIG5vZGUg
dGV4dCBpdHNlbGYgaXMgdXNlZCBhcworZmFsbGJhY2suICBPVkVSUklERSwgU1RBUlQsIGFuZCBF
TkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUn
LiIKKyAgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkpCisgICAgOzsg
V2hlbiBOT0RFIGlzIGEgbGlua19sYWJlbCBpbnNpZGUgYSBmdWxsX3JlZmVyZW5jZV9saW5rIHRo
YXQKKyAgICA7OyBhbHNvIGhhcyBhIGxpbmtfdGV4dCwgc2tpcCBpdCwgbGlua190ZXh0IGhhbmRs
ZXMgdGhhdCBsaW5rLgorICAgICh1bmxlc3MgKGFuZCAoc3RyaW5nPSAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkgImxpbmtfbGFiZWwiKQorICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gt
c3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfdGV4dFxcJyIpKQorICAgICAgKHRyZWVzaXQtZm9udGlm
eS13aXRoLW92ZXJyaWRlCisgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNp
dC1ub2RlLWVuZCBub2RlKQorICAgICAgICdtYXJrZG93bi10cy1saW5rIG92ZXJyaWRlIHN0YXJ0
IGVuZCkKKyAgICAgIChsZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQg
IlxcYGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJsIChpZiBkZXN0Cisg
ICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3QgdCkKKyAgICAgICAg
ICAgICAgICAgICAgOzsgUmVmZXJlbmNlIGxpbmtzOiByZXNvbHZlIHZpYSBsaW5rX2xhYmVsIG9y
IGxpbmtfdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgKGxldCogKChsYWJlbC1ub2RlICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ICJcXGBsaW5rX2xhYmVsXFwnIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGFiZWwgKGlmIGxhYmVsLW5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cmluZy10cmltICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLW5vZGUgdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXFsiICJcXF0iKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5v
ZGUgdCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3IgKG1hcmtkb3duLXRzLS1yZXNvbHZl
LWxpbmstcmVmIGxhYmVsKQorICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCkpKSkpCisg
ICAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAgICAgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSB1cmwpKSkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5k
ICZyZXN0IF8pCisgICJGb250aWZ5IGF1dG9saW5rIE5PREUgKFVSSSBvciBlbWFpbCkgYXMgYSBj
bGlja2FibGUgYnV0dG9uLgorRm9yIGVtYWlsIGF1dG9saW5rcywgdGhlIFVSTCBpcyBwcmVmaXhl
ZCB3aXRoIFwibWFpbHRvOlwiLgorQW5nbGUgYnJhY2tldCBkZWxpbWl0ZXJzIGFyZSBoaWRkZW4g
d2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNz
ZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQq
ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUt
ZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKGlubmVyIChidWZmZXItc3Vi
c3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgKDErIG5vZGUtc3RhcnQpICgx
LSBub2RlLWVuZCkpKQorICAgICAgICAgKHVybCAoaWYgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10
eXBlIG5vZGUpICJlbWFpbF9hdXRvbGluayIpCisgICAgICAgICAgICAgICAgICAoY29uY2F0ICJt
YWlsdG86IiBpbm5lcikKKyAgICAgICAgICAgICAgICBpbm5lcikpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZQorICAgICBub2RlLXN0YXJ0IG5vZGUtZW5kICdtYXJrZG93bi10
cy1saW5rIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1i
dXR0b24gbm9kZS1zdGFydCBub2RlLWVuZCB1cmwpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlk
ZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0
YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1t
YXJrdXApCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUtZW5kKSBub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXAp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1sYWJlbCAobm9kZSBv
dmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayByZWZlcmVuY2UgZGVm
aW5pdGlvbiBsYWJlbCBOT0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1RoZSBicmFja2V0cyBh
bmQgY29sb24gYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RB
UlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgt
b3ZlcnJpZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9k
ZSkpCisgICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAg
ICAocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgKGRlc3Qtbm9k
ZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfZGVzdGluYXRpb25cXCci
KSkKKyAgICAgICAgICh1cmwgKHdoZW4gZGVzdC1ub2RlICh0cmVlc2l0LW5vZGUtdGV4dCBkZXN0
LW5vZGUgdCkpKSkKKyAgICA7OyBGb250aWZ5IHRoZSBsYWJlbCB0ZXh0IChpbnNpZGUgYnJhY2tl
dHMpLgorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAoMSsgbm9kZS1z
dGFydCkgKDEtIG5vZGUtZW5kKQorICAgICAnbWFya2Rvd24tdHMtbGluayBvdmVycmlkZSBzdGFy
dCBlbmQpCisgICAgOzsgTWFrZSBpdCBhIGNsaWNrYWJsZSBidXR0b24uCisgICAgKHdoZW4gdXJs
CisgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKDErIG5vZGUtc3RhcnQpICgx
LSBub2RlLWVuZCkgdXJsKSkKKyAgICA7OyBIaWRlICJbIiBiZWZvcmUgbGFiZWwgYW5kICJdOiAi
IGJldHdlZW4gbGFiZWwgYW5kIGRlc3RpbmF0aW9uLgorICAgICh3aGVuIG1hcmtkb3duLXRzLWhp
ZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFydCAoMSsgbm9kZS1z
dGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0t
bWFya3VwKQorICAgICAgKGxldCAoKGNvbG9uLWVuZCAoaWYgZGVzdC1ub2RlICh0cmVlc2l0LW5v
ZGUtc3RhcnQgZGVzdC1ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICgxKyBub2RlLWVu
ZCkpKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2RlLWVuZCkgY29sb24tZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFy
a3VwKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRlc3RpbmF0
aW9uIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsgcmVm
ZXJlbmNlIGRlZmluaXRpb24gZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3aGVuIG1hcmt1cCBo
aWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitg
dHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQtZm9udGlmeS13aXRo
LW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5k
IG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVycmlkZSBzdGFydCBl
bmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1dC10ZXh0LXByb3Bl
cnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5vZGUpCisgICJSZXR1
cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNpbmdsZSBpbmxpbmUg
c2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBmYWxzZSBgbGF0ZXhf
YmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4gIENo
ZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMgc2hhcmUgdGhlIHNh
bWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJl
ZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEtICh0cmVlc2l0LW5v
ZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0cmVlc2l0LW5vZGUt
YXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChtZC1lbmQgKHRyZWVz
aXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChpbmxpbmUt
c3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVuZCAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQtZW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkpCisgICAg
ICAoZXF1YWwgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisgICAgICAgICAgICAg
KHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQor
ICAiRm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxpbWl0ZXJzIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFsc2UgbWF0Y2hlcyB0
aGF0IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJREUsIFNUQVJULCBh
bmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlJy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCBub2RlKQor
ICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJlZXNpdC1ub2RlLXN0
YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJrZG93bi10cy1sYXRl
eCBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAK
KyAgICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQgbm9kZSkpCisgICAg
ICAgIChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkpKQorICAgICAgICAg
ICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRleF9zcGFuX2RlbGlt
aXRlciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFy
dCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVu
ZCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJr
ZG93bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYmFj
a3NsYXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRp
ZnkgYmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFzaCB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2NrJyB3aGVyZSBiYWNr
c2xhc2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBw
YXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChs
ZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChpbi1s
YXRleCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkKKyAgICAodHJlZXNp
dC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkK
KyAgICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdo
ZW4gKGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4KSkKKyAgICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkpCisKKyhkZWZ2
YXIgc2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudGl0eS1nZXQgIm9y
Zy9vcmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHkg
KHRleHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCImYW1wO1wiKSB0byBp
dHMgY2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJpbmcsIG9yIG5pbCBp
ZiB0aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVtZXJpYyBoZXggJiN4
MUY0QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0Ol1dK1xcKTtcXCci
IHRleHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJp
bmcgMSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIzOworICAgKChzdHJp
bmctbWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAoY2hhci10
by1zdHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRleHQpKSkpCisgICA7
OyBOYW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBiYWNrIHRvIHNnbWwt
Y2hhci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51bTpdXStcXCk7XFwn
IiB0ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkpCisgICAgICAo
cmVxdWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRyeSAob3JnLWVudGl0
eS1nZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVudHJ5KSkpCisgICAg
ICAgICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAgICAgICAod2hlbi1s
ZXQqICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1lICMnZXF1YWwpKSkK
KyAgICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAg
IkZvbnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFsdWUgd2hlbiBtYXJr
dXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3Vn
aCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChub2RlLXN0
YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJlZXNp
dC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAgICAgICAgJ21hcmtk
b3duLXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbnVt
ZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92
ZXJyaWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtkb3duLXRzLWhpZGUt
bWFya3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93bi10cy0tZGVjb2Rl
LWVudGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0
IG5vZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxheWFibGUtcCAoYXJl
ZiBkZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3RhcnQg
bm9kZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRleHQtcHJvcGVydGll
cyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZSAodmFsKQorICAiUmVzb2x2ZSBWQUwsIGEgY29u
cyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spLCB0byBhIGRpc3BsYXlhYmxlIHZhbHVlLgorUmV0dXJu
IFBSRUZFUlJFRCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyIHBhc3NlcyBgY2hhci1kaXNwbGF5YWJs
ZS1wJywKK290aGVyd2lzZSByZXR1cm4gRkFMTEJBQ0suICBSZXR1cm4gbmlsIGlmIFZBTCBpcyBu
aWwuIgorICAod2hlbiB2YWwKKyAgICAobGV0KiAoKHByZWZlcnJlZCAoY2FyIHZhbCkpCisgICAg
ICAgICAgIChjaCAoaWYgKGNoYXJhY3RlcnAgcHJlZmVycmVkKSBwcmVmZXJyZWQgKGFyZWYgcHJl
ZmVycmVkIDApKSkpCisgICAgICAoaWYgKGNoYXItZGlzcGxheWFibGUtcCBjaCkgKGNhciB2YWwp
IChjZHIgdmFsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94IChu
b2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3QgY2hl
Y2tib3ggTk9ERSwgc2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4K
K09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBu
b2RlKSkKKyAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkg
InRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNrZWQg
J21hcmtkb3duLXRzLXRhc2stY2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMt
dGFzay11bmNoZWNrZWQpKQorICAgICAgICAgKHJlcGxhY2VtZW50IChtYXJrZG93bi10cy0tcmVz
b2x2ZS1kaXNwbGF5LXZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgIChpZiBjaGVja2VkCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1jaGVja2VkLWNoZWNrYm94Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KSkp
KQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5k
IGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQg
ZW5kKQorICAgIChpZiAoYW5kIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50Cisg
ICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiByZXBsYWNlbWVudCAwKSkpCisg
ICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5IHJl
cGxhY2VtZW50KQorICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2Rl
LWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWhh
cmQtbGluZS1icmVhayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRp
ZnkgaGFyZCBsaW5lIGJyZWFrIE5PREU7IHNob3cgYSBVbmljb2RlIHN5bWJvbCB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4uCitBIGJhY2tzbGFzaCBicmVhayBnZXRzIGBtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstYmFja3NsYXNoJyAob3IgaXRzCitgLWhpZGRlbicgdmFyaWFudCB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4pOyBhIHRyYWlsaW5nLXNwYWNlcyBicmVhayBnZXRzCitgbWFya2Rvd24tdHMt
aGFyZC1saW5lLWJyZWFrLXNwYWNlJyAob3IgYC1oaWRkZW4nKS4gIFdoZW4gaGlkZGVuLCBhCiti
YWNrc2xhc2ggYnJlYWsgaXMgcmVwbGFjZWQgYnkgYSBzaW5nbGUgYG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhaycKK2dseXBoOyBhIHRyYWlsaW5nLXNwYWNlcyBicmVhayByZXBsYWNlcyBlYWNo
IHNwYWNlIHdpdGggdGhlIGdseXBoLCBzbyB0aGUgcnVuCitvZiBwaWxjcm93cyBmaWxscyB0aGUg
bGluZSB1cCB0byB0aGUgbmV3bGluZS4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFz
c2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0
KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2Rl
LWVuZCAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKHRleHQgICAgICAgKHRy
ZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpCisgICAgICAgICAoYmFja3NsYXNoICAoYW5kICg+IChs
ZW5ndGggdGV4dCkgMCkgKGVxIChhcmVmIHRleHQgMCkgP1xcKSkpCisgICAgICAgICA7OyBEZXRl
cm1pbmUgdGhlIGFjdHVhbCByYW5nZSB0byBmb250aWZ5IGFuZCByZXBsYWNlLiAgVGhlCisgICAg
ICAgICA7OyBoYXJkX2xpbmVfYnJlYWsgbm9kZSBtYXkgbm90IGNvdmVyIHRoZSBmdWxsIHJ1biBv
ZiB0cmFpbGluZworICAgICAgICAgOzsgc3BhY2VzLCBzbyB3YWxrIGJhY2sgZnJvbSBlbmQtb2Yt
bGluZSBvdXJzZWx2ZXMgZm9yIHRoZQorICAgICAgICAgOzsgc3BhY2VzIHZhcmlhbnQuCisgICAg
ICAgICAocmVnaW9uICAgICAoaWYgYmFja3NsYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGNvbnMgbm9kZS1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5k
ICg+IG5vZGUtZW5kIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVxIChjaGFyLWJlZm9yZSBub2RlLWVuZCkgP1xuKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKDEtIG5vZGUtZW5kKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG5vZGUtc3RhcnQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGVvbCAobGluZS1lbmQtcG9zaXRpb24pKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGVvbCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIgIiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW9sKSkpKSkKKyAgICAgICAgIChyZWdpb24tc3RhcnQgKGNh
ciByZWdpb24pKQorICAgICAgICAgKHJlZ2lvbi1lbmQgICAoY2RyIHJlZ2lvbikpCisgICAgICAg
ICAoZmFjZSAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICgoYW5kIGJhY2tzbGFz
aCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtk
b3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuKQorICAgICAgICAgICAgICAg
ICAgICAgIChiYWNrc2xhc2ggJ21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gp
CisgICAgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAg
ICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UtaGlkZGVu
KQorICAgICAgICAgICAgICAgICAgICAgICh0ICdtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
c3BhY2UpKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlIHJlZ2lvbi1zdGFy
dCByZWdpb24tZW5kIGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Zl
cnJpZGUgc3RhcnQgZW5kKQorICAgIDs7IEFsd2F5cyBzdGFydCBieSBjbGVhcmluZyBhbnkgc3Rh
bGUgYGRpc3BsYXknIHByb3BlcnR5LiAgV2UgbmV2ZXIKKyAgICA7OyBzcGFuIHRoZSB0cmFpbGlu
ZyBuZXdsaW5lIHdpdGggYGRpc3BsYXknIChpdCBjb25mdXNlcworICAgIDs7IHJlZGlzcGxheSdz
IGN1cnNvciBwbGFjZW1lbnQpLCBhbmQgd2Ugb25seSBwYWludCBhIHNpbmdsZQorICAgIDs7IGNv
bWJpbmVkIHN0cmluZyBvbnRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1biwgbGVhdmlu
ZworICAgIDs7IHRoZSByZXN0IG9mIHRoZSBtYXJrdXAgYWxvbmUuCisgICAgKHJlbW92ZS10ZXh0
LXByb3BlcnRpZXMgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgJyhkaXNwbGF5IG5pbCkpCisgICAg
KHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChsZXQqICgoc3BlYyAoaWYgYmFj
a3NsYXNoCisgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNw
bGF5LXZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUt
YnJlYWstYmFja3NsYXNoKQorICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtaGFyZC1s
aW5lLWJyZWFrLXNwYWNlKSkKKyAgICAgICAgICAgICAoc3RyIChjb25kCisgICAgICAgICAgICAg
ICAgICAgKChudWxsIHNwZWMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAoKGNoYXJhY3RlcnAg
c3BlYykgKGNoYXItdG8tc3RyaW5nIHNwZWMpKQorICAgICAgICAgICAgICAgICAgICgoc3RyaW5n
cCBzcGVjKSBzcGVjKQorICAgICAgICAgICAgICAgICAgICgoZnVuY3Rpb25wIHNwZWMpCisgICAg
ICAgICAgICAgICAgICAgIChmdW5jYWxsIHNwZWMgKC0gcmVnaW9uLWVuZCByZWdpb24tc3RhcnQp
KSkpKSkKKyAgICAgICAgKHdoZW4gKGFuZCAoc3RyaW5ncCBzdHIpCisgICAgICAgICAgICAgICAg
ICAgKD4gKGxlbmd0aCBzdHIpIDApCisgICAgICAgICAgICAgICAgICAgKGNoYXItZGlzcGxheWFi
bGUtcCAoYXJlZiBzdHIgMCkpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSByZWdpb24t
c3RhcnQgKDErIHJlZ2lvbi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rp
c3BsYXkgc3RyKQorICAgICAgICAgIDs7IEZvciB0aGUgdHJhaWxpbmctc3BhY2VzIHZhcmlhbnQs
IGhpZGUgdGhlIHJlbWFpbmluZworICAgICAgICAgIDs7IHNwYWNlcyBpbiB0aGUgcnVuIHNvIHRo
ZSBsaW5lIGRvZXNuJ3QgZW5kIHdpdGggbGVmdG92ZXIKKyAgICAgICAgICA7OyB3aGl0ZXNwYWNl
IGFmdGVyIHRoZSBzdWJzdGl0dXRlZCBnbHlwaC4gIEVhY2ggcG9zaXRpb24KKyAgICAgICAgICA7
OyBnZXRzIGl0cyBvd24gZW1wdHktc3RyaW5nIGBkaXNwbGF5JyBzbyBjdXJzb3IgcGxhY2VtZW50
CisgICAgICAgICAgOzsgc3RheXMgdW5hbWJpZ3VvdXMuCisgICAgICAgICAgKHVubGVzcyBiYWNr
c2xhc2gKKyAgICAgICAgICAgIChsZXQgKChpICgxKyByZWdpb24tc3RhcnQpKSkKKyAgICAgICAg
ICAgICAgKHdoaWxlICg8IGkgcmVnaW9uLWVuZCkKKyAgICAgICAgICAgICAgICAocHV0LXRleHQt
cHJvcGVydHkgaSAoMSsgaSkgJ2Rpc3BsYXkgIiIpCisgICAgICAgICAgICAgICAgKHNldHEgaSAo
MSsgaSkpKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJy
ZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0aGVtYXRp
YyBicmVhayBOT0RFIGFuZCBzaG93IGEgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVS
UklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250
aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkK
KyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGhlbWF0aWMt
YnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQg
ZW5kKQorICAgIChsZXQgKChjaGFyIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVl
CisgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3Rlcikp
KQorICAgICAgKGlmIChhbmQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgY2hhciAoY2hhci1kaXNw
bGF5YWJsZS1wIGNoYXIpKQorICAgICAgICAgIChsZXQqICgoY29sIChzYXZlLWV4Y3Vyc2lvbiAo
Z290by1jaGFyIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjdXJyZW50LWNvbHVtbikpKQorICAgICAgICAgICAgICAgICA7OyBTcGFuIGlmIHRoZSBm
YWNlIGhhcyBub24tbmlsIDpleHRlbmQuCisgICAgICAgICAgICAgICAgIChzcGFuLWxlbmd0aCAo
aWYgKGZhY2UtYXR0cmlidXRlICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5kIG5pbCAnZGVm
YXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAod2luZG93LWJvZHkt
d2lkdGgpIGNvbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIpKSkKKyAgICAg
ICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY29uY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmlu
ZyBzcGFuLWxlbmd0aCBjaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4i
KSkpCisgICAgICAgIChyZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQgbm9kZS1lbmQg
JyhkaXNwbGF5IG5pbCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktY29kZS1i
bG9jayAobm9kZSBfb3ZlcnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgY29k
ZSBibG9jayBjb250ZW50IE5PREUgd2l0aCBhIGJhY2tncm91bmQgb3ZlcmxheS4KK1VzZSBgbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuJyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4s
CitgbWFya2Rvd24tdHMtY29kZS1ibG9jaycgb3RoZXJ3aXNlLiAgVXNlIGFuIG92ZXJsYXkgc28g
dGhlCitiYWNrZ3JvdW5kIGxheWVycyBpdHNlbGYgYmVoaW5kIGxhbmd1YWdlLXNwZWNpZmljIGZv
bnRpZmljYXRpb24uCitUaGUgb3ZlcmxheSBhbHNvIHN0b3JlcyB0aGUgY29kZSBibG9jayBsYW5n
dWFnZSBhbmQgbW9kZSBhcworcHJvcGVydGllcyBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5n
dWFnZScgYW5kCitgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlJywgYWNjZXNzaWJsZSB2aWEK
K2BtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0Jy4iCisgIChsZXQqICgobm9kZS1z
dGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAobGluZS1i
ZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkp
CisgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IikKKyAgICAg
ICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgKGZhY2UgKGlmIG1hcmtkb3duLXRz
LWhpZGUtbWFya3VwCisgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2st
bWFya3VwLWhpZGRlbgorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykp
CisgICAgICAgICAobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgbm9kZSkpCisg
ICAgICAgICAobW9kZSAod2hlbiBsYW5nCisgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIGxhbmcpKSkKKyAgICAgICAgIChleGlzdGluZyAoc2Vx
LWZpbmQgKGxhbWJkYSAob3YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG92ZXJs
YXktZ2V0IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG92ZXJsYXlzLWF0IG5vZGUtc3RhcnQpKSkpCisgICAgKGlmIGV4aXN0aW5nCisg
ICAgICAgIChwcm9nbgorICAgICAgICAgIChtb3ZlLW92ZXJsYXkgZXhpc3Rpbmcgbm9kZS1zdGFy
dCBub2RlLWVuZCkKKyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ2ZhY2UgZmFjZSkK
KyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2st
bGFuZ3VhZ2UgbGFuZykKKyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ21hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKSkKKyAgICAgIChsZXQgKChvdiAobWFrZS1vdmVybGF5
IG5vZGUtc3RhcnQgbm9kZS1lbmQgbmlsIHQgbmlsKSkpCisgICAgICAgIDs7IE1hcmtlcnMgbmVl
ZCB0byBiZSBzZXQgb25seSBvbmNlLgorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3du
LXRzLWNvZGUtYmVnLW1hcmtlciAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUtc3RhcnQpKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtZW5k
LW1hcmtlciAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtZW5kKSkKKyAg
ICAgICAgKG92ZXJsYXktcHV0IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrIHQpCisgICAgICAg
IChvdmVybGF5LXB1dCBvdiAnZmFjZSBmYWNlKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21h
cmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UgbGFuZykKKyAgICAgICAgKG92ZXJsYXktcHV0
IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUgbW9kZSkKKyAgICAgICAgKG92ZXJsYXkt
cHV0IG92ICdldmFwb3JhdGUgdCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LWF0LXAgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gbm9uIG5pbCBpZiBwb2ludCBpcyBpbiBh
IGNvZGUgYmxvY2suCitJZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuIgorICAoZ2V0LWNoYXItcHJv
cGVydHkgKG9yIHBvcyAocG9pbnQpKSAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykpCisKKyhkZWZ1
biBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0ICgmb3B0aW9uYWwgcG9zKQorICAi
UmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgb2YgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYg
UE9TIGlzIG5pbCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUg
YSBmZW5jZWQKK2NvZGUgYmxvY2suICBUaGlzIHdvcmtzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBh
IGd1ZXN0IHRyZWUtc2l0dGVyIHBhcnNlcgoraXMgYWN0aXZlLCBzaW5jZSB0aGUgbGFuZ3VhZ2Ug
aXMgc3RvcmVkIG9uIHRoZSBjb2RlIGJsb2NrIG92ZXJsYXkgYnkgdGhlCitob3N0IHBhcnNlcidz
IGZvbnRpZmljYXRpb24uIgorICAoZ2V0LWNoYXItcHJvcGVydHkgKG9yIHBvcyAocG9pbnQpKSAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLW1vZGUtYXQgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gdGhlIG1ham9yIG1v
ZGUgZm9yIHRoZSBjb2RlIGJsb2NrIGF0IFBPUy4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4g
IFJldHVybnMgbmlsIGlmIFBPUyBpcyBub3QgaW5zaWRlIGEgZmVuY2VkCitjb2RlIGJsb2NrIG9y
IGlmIHRoZSBsYW5ndWFnZSBoYXMgbm8gcmVjb2duaXplZCBtb2RlLiIKKyAgKHdoZW4gKG1hcmtk
b3duLXRzLWNvZGUtYmxvY2stYXQtcCBwb3MpCisgICAgKG9yIChnZXQtY2hhci1wcm9wZXJ0eSAo
b3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUpCisgICAgICAgIG1h
cmtkb3duLXRzLWRlZmF1bHQtY29kZS1ibG9jay1tb2RlKSkpCisKKzs7OyBJbWFnZSBoYW5kbGlu
ZzoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAgKG5vZGUpCisg
ICJSZXR1cm4gbm9uLW5pbCBpZiBpbWFnZSBOT0RFIGlzIHRoZSBvbmx5IGNvbnRlbnQgb24gaXRz
IGxpbmUuCitXaGl0ZXNwYWNlLCBibG9jayBxdW90ZSBtYXJrZXJzIChgPicpLCBhbmQgbGlzdCBt
YXJrZXJzCitcKGAtJywgYConLCBgKycsIGAxLicpIGJlZm9yZSB0aGUgaW1hZ2UgYXJlIGlnbm9y
ZWQuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAg
ICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQorICAgIChzYXZlLWV4Y3Vy
c2lvbgorICAgICAgKGdvdG8tY2hhciBub2RlLXN0YXJ0KQorICAgICAgKGxldCAoKGJvbCAobGlu
ZS1iZWdpbm5pbmctcG9zaXRpb24pKQorICAgICAgICAgICAgKGVvbCAobGluZS1lbmQtcG9zaXRp
b24pKSkKKyAgICAgICAgOzsgQmVmb3JlIHRoZSBpbWFnZTogb25seSBibG9jayBxdW90ZSBtYXJr
ZXJzLCB3aGl0ZXNwYWNlLAorICAgICAgICA7OyBhbmQgYW4gb3B0aW9uYWwgbGlzdCBtYXJrZXIg
YXJlIGFsbG93ZWQuCisgICAgICAgIChhbmQgKHN0cmluZy1tYXRjaC1wCisgICAgICAgICAgICAg
IChyeCBib3MKKyAgICAgICAgICAgICAgICAgICh6ZXJvLW9yLW1vcmUgKGFueSAiPiBcdCIpKQor
ICAgICAgICAgICAgICAgICAgKG9wdGlvbmFsIChvciAoc2VxIChhbnkgIi0qKyIpICIgIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlcSAob25lLW9yLW1vcmUgZGlnaXQpIChh
bnkgIi4pIiApICIgIikpKQorICAgICAgICAgICAgICAgICAgZW9zKQorICAgICAgICAgICAgICAo
YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGJvbCBub2RlLXN0YXJ0KSkKKyAgICAgICAg
ICAgICA7OyBBZnRlciB0aGUgaW1hZ2U6IG9ubHkgdHJhaWxpbmcgd2hpdGVzcGFjZSBhbGxvd2Vk
LgorICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gtcAorICAgICAgICAgICAgICAocnggYm9zICh6
ZXJvLW9yLW1vcmUgKGFueSAiIFx0IikpIGVvcykKKyAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJz
dHJpbmctbm8tcHJvcGVydGllcyBub2RlLWVuZCBlb2wpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy0tZm9udGlmeS1pbWFnZSAobm9kZSBfb3ZlcnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykK
KyAgIlNob3cgYW4gaW5saW5lIGltYWdlIGF0IE5PREUuCitXaGVuIGBtYXJrZG93bi10cy1pbmxp
bmUtaW1hZ2VzJyBpcyBub24tbmlsLCBkaXNwbGF5IHRoZSBpbWFnZS4KK0lmIHRoZSBpbWFnZSBs
aW5rIGlzIHRoZSBvbmx5IGNvbnRlbnQgb24gaXRzIGxpbmUsIGRpc3BsYXkgdGhlCitpbWFnZSBi
ZWxvdyB0aGUgbGluay4gIElmIHRoZSBpbWFnZSBpcyBpbmxpbmUgd2l0aGluIGEgcGFyYWdyYXBo
LAorZGlzcGxheSBpdCByaWdodCBhZnRlciB0aGUgbGluayB0ZXh0LgorUmVtb3RlIGltYWdlcyBh
cmUgY29udHJvbGxlZCBieQorYG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFn
ZXMnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoZW9s
IChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIG5vZGUtZW5kKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAgICAoc2VhcmNoLWVuZCAo
bWluICgxKyBlb2wpIChwb2ludC1tYXgpKSkpCisgICAgOzsgQWx3YXlzIGNsZWFyIHN0YWxlIG92
ZXJsYXlzIGZvciB0aGlzIG5vZGUncyByYW5nZS4KKyAgICAoZG9saXN0IChvdiAob3ZlcmxheXMt
aW4gbm9kZS1zdGFydCBzZWFyY2gtZW5kKSkKKyAgICAgICh3aGVuIChhbmQgKG92ZXJsYXktZ2V0
IG92ICdtYXJrZG93bi10cy1pbWFnZSkKKyAgICAgICAgICAgICAgICAgKD49IChvdmVybGF5LXN0
YXJ0IG92KSBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAoPD0gKG92ZXJsYXktZW5kIG92
KSBzZWFyY2gtZW5kKSkKKyAgICAgICAgKGRlbGV0ZS1vdmVybGF5IG92KSkpCisgICAgKHdoZW4g
KGFuZCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAgICAgICAgICAgICA7OyBEb24ndCBj
cmVhdGUgaW1hZ2Ugb3ZlcmxheXMgZm9yIG5vZGVzIGluc2lkZQorICAgICAgICAgICAgICAgOzsg
Zm9sZGVkIChvdXRsaW5lLWludmlzaWJsZSkgaGVhZGluZ3MsIHNpbmNlIHRoZQorICAgICAgICAg
ICAgICAgOzsgaW1hZ2VzIHdvdWxkbid0IGJlIHZpc2libGUgYW5kIGNvdWxkIGludGVyZmVyZQor
ICAgICAgICAgICAgICAgOzsgd2l0aCB0aGUgZm9sZGVkIGRpc3BsYXkuCisgICAgICAgICAgICAg
ICAobm90IChtYXJrZG93bi10cy0tb3V0bGluZS1pbnZpc2libGUtcCBub2RlLXN0YXJ0KSkpCisg
ICAgICAobGV0KiAoKGRlc3QgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgbm9kZSAiXFxgbGlua19k
ZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgICAgICh1cmwgKGFuZCBkZXN0ICh0cmVlc2l0LW5v
ZGUtdGV4dCBkZXN0IHQpKSkKKyAgICAgICAgICAgICAocmVtb3RlcCAoYW5kIHVybCAoc3RyaW5n
LW1hdGNoLXAgIlxcYGh0dHBzPzovLyIgdXJsKSkpCisgICAgICAgICAgICAgKGRpc3BsYXlhYmxl
CisgICAgICAgICAgICAgICh3aGVuIHVybAorICAgICAgICAgICAgICAgIChpZiByZW1vdGVwCisg
ICAgICAgICAgICAgICAgICAgICh3aGVuIChlcSBtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1p
bmxpbmUtaW1hZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG93bmxvYWQpCisg
ICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZS1lcnJvcnMKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChyZXF1aXJlICd1cmwtaGFuZGxlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAod2l0
aC10ZW1wLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWJ1ZmZlci1tdWx0
aWJ5dGUgbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodXJsLWluc2VydC1maWxlLWNv
bnRlbnRzIHVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkp
CisgICAgICAgICAgICAgICAgICAobGV0ICgoZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSB1cmwpKSkK
KyAgICAgICAgICAgICAgICAgICAgKGFuZCAobm90IChmaWxlLXJlbW90ZS1wIGZpbGUpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wIGZpbGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKGltYWdlLXN1cHBvcnRlZC1maWxlLXAgZmlsZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBmaWxlKSkpKSkKKyAgICAgICAgICAgICAobWF4LXcgKGFuZCBkaXNwbGF5YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgbWFya2Rvd24tdHMtaW1hZ2UtbWF4
LXdpZHRoICd3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYm9k
eS13aWR0aCBuaWwgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLWlt
YWdlLW1heC13aWR0aCkpKQorICAgICAgICAgICAgIChpbWcgKGFuZCBtYXgtdworICAgICAgICAg
ICAgICAgICAgICAgICAoY3JlYXRlLWltYWdlIGRpc3BsYXlhYmxlIG5pbCByZW1vdGVwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1heC13aWR0aCBtYXgtdworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzY2FsZSAxKSkpKQorICAgICAgICAod2hl
biBpbWcKKyAgICAgICAgICAobGV0KiAoKGFsb25lIChtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUt
b24tbGluZS1wIG5vZGUpKQorICAgICAgICAgICAgICAgICAoc3RyIChpZiBhbG9uZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcbiIgKHByb3BlcnRpemUgIiAiICdkaXNwbGF5
IGltZykpCisgICAgICAgICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkg
aW1nKSkpCisgICAgICAgICAgICAgICAgIChvdiAobWFrZS1vdmVybGF5ICgxLSBub2RlLWVuZCkg
bm9kZS1lbmQgbmlsIHQgbmlsKSkpCisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtk
b3duLXRzLWltYWdlIHQpCisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2FmdGVyLXN0cmlu
ZyBzdHIpCisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkpKQor
Cis7OzsgVVJML1VSSSBoYW5kbGluZzoKKworKGRlZnZhciBtYXJrZG93bi10cy0tYmFyZS11cmwt
cmVnZXhwIGdvdG8tYWRkcmVzcy11cmwtcmVnZXhwCisgICJSZWdleHAgbWF0Y2hpbmcgYmFyZSBV
UkxzIG5vdCB3cmFwcGVkIGluIGFuZ2xlIGJyYWNrZXRzIG9yIGxpbmsgc3ludGF4LiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCBnb3RvLWFkZHJlc3MtbWFp
bC1yZWdleHAKKyAgIlJlZ2V4cCBtYXRjaGluZyBiYXJlIGVtYWlsIGFkZHJlc3NlcyBub3Qgd3Jh
cHBlZCBpbiBhbmdsZSBicmFja2V0cy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnkt
YmFyZS11cmkgKHN0YXJ0IGVuZCkKKyAgIkZvbnRpZnkgYmFyZSBVUkwgb3IgZW1haWwgVVJJIGJl
dHdlZW4gU1RBUlQgYW5kIEVORC4KK1NraXAgbWF0Y2hlcyBhbHJlYWR5IGluc2lkZSB0cmVlLXNp
dHRlciBsaW5rIG9yIGF1dG9saW5rIG5vZGVzLiIKKyAgKGRvbGlzdCAocmUgKGxpc3QgbWFya2Rv
d24tdHMtLWJhcmUtdXJsLXJlZ2V4cAorICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0t
YmFyZS1lbWFpbC11cmktcmVnZXhwKSkKKyAgICAoZ290by1jaGFyIHN0YXJ0KQorICAgICh3aGls
ZSAocmUtc2VhcmNoLWZvcndhcmQgcmUgZW5kIHQpCisgICAgICAobGV0KiAoKHVyaS1zdGFydCAo
bWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgICh1cmktZW5kIChtYXRjaC1lbmQgMCkp
CisgICAgICAgICAgICAgKHVyaSAobWF0Y2gtc3RyaW5nIDApKQorICAgICAgICAgICAgIChub2Rl
ICh0cmVlc2l0LW5vZGUtYXQgdXJpLXN0YXJ0ICdtYXJrZG93bi1pbmxpbmUpKQorICAgICAgICAg
ICAgIChwYXJlbnQgKGFuZCBub2RlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKSkKKyAgICAg
ICAgICAgICAocGFyZW50LXR5cGUgKGFuZCBwYXJlbnQgKHRyZWVzaXQtbm9kZS10eXBlIHBhcmVu
dCkpKSkKKyAgICAgICAgKHVubGVzcyAob3IgKG1lbWJlciBwYXJlbnQtdHlwZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoImlubGluZV9saW5rIiAiZnVsbF9yZWZlcmVuY2VfbGluayIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsi
ICJzaG9ydGN1dF9saW5rIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlIiAi
dXJpX2F1dG9saW5rIiAiZW1haWxfYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAibGlua19kZXN0aW5hdGlvbiIpKQorICAgICAgICAgICAgICAgICAgICAobWVtYmVyIChh
bmQgbm9kZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygidXJpX2F1dG9saW5rIiAiZW1haWxfYXV0b2xpbmsiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibGlua19kZXN0aW5hdGlvbiIgImNvZGVfc3BhbiIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjb2RlX2ZlbmNlX2NvbnRlbnQiICJpbmZvX3N0cmluZyIpKQor
ICAgICAgICAgICAgICAgICAgICAoZ2V0LXRleHQtcHJvcGVydHkgdXJpLXN0YXJ0ICdidXR0b24p
KQorICAgICAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAgICAgICB1
cmktc3RhcnQgdXJpLWVuZAorICAgICAgICAgICAoaWYgKGVxIHVyaS1zdGFydCAwKQorICAgICAg
ICAgICAgICAgdXJpCisgICAgICAgICAgICAgKGNvbmNhdCAibWFpbHRvOiIgdXJpKSkpKSkpKSkK
KworOzs7IHRyZWVzaXQgc2V0dGluZ3M6CisKIChkZWZ2YXIgbWFya2Rvd24tdHMtLXRyZWVzaXQt
c2V0dGluZ3MKICAgKHRyZWVzaXQtZm9udC1sb2NrLXJ1bGVzCiAgICA6bGFuZ3VhZ2UgJ21hcmtk
b3duLWlubGluZQogICAgOm92ZXJyaWRlIHQKICAgIDpmZWF0dXJlICdkZWxpbWl0ZXIKLSAgICco
KGlubGluZV9saW5rIFsgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykKLSAgICAgKGltYWdlIFsg
IiEiICJbIiAiXSIgIigiICIpIiBdIEBzaGFkb3cpKQorICAgJygoaW5saW5lX2xpbmsgWyAiWyIg
Il0iICIoIiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoZnVs
bF9yZWZlcmVuY2VfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1p
dGVyKQorICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93
bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChzaG9ydGN1dF9saW5rIFsgIlsiICJdIiBd
IEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChpbWFnZSBbICIhIiAiWyIg
Il0iICIoIiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkKIAogICAgOmxh
bmd1YWdlICdtYXJrZG93bgogICAgOmZlYXR1cmUgJ2hlYWRpbmcKLSAgICcoKGF0eF9oZWFkaW5n
IChhdHhfaDFfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMQotICAgICAoYXR4X2hlYWRp
bmcgKGF0eF9oMl9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy0yCi0gICAgIChhdHhfaGVh
ZGluZyAoYXR4X2gzX21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTMKLSAgICAgKGF0eF9o
ZWFkaW5nIChhdHhfaDRfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNAotICAgICAoYXR4
X2hlYWRpbmcgKGF0eF9oNV9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy01Ci0gICAgIChh
dHhfaGVhZGluZyAoYXR4X2g2X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTYKLSAgICAg
KHNldGV4dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAnKCgoYXR4
X2hlYWRpbmcpICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKQorICAgICAoKHNldGV4
dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGVhZGluZykpCiAKICAgIDpsYW5ndWFn
ZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdoZWFkaW5nCkBAIC0xOTQsMTYgKzEzMTAsMzQgQEAg
bWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgKGF0eF9oM19tYXJrZXIpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNF9tYXJrZXIpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNV9tYXJrZXIpIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMt
LWZvbnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJfdW5kZXJsaW5lKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVh
dHVyZSAncGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJlYWspIEBtYXJrZG93bi10cy1kZWxp
bWl0ZXIpCi0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykgQGZvbnQtbG9jay1zdHJpbmctZmFj
ZSkKKyAgICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGlj
LWJyZWFrKQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93bi10cy1odG1sLWJsb2NrKQorICAg
ICAoKGluZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2Nr
KQogICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFyKSBAbWFya2Rvd24tdHMtbGlzdC1t
YXJrZXIpCiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMpIEBtYXJrZG93bi10cy1s
aXN0LW1hcmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfbWludXMpIEBtYXJrZG93
bi10cy1saXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFy
a2Rvd24tdHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3Qp
IEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJf
cGFyZW50aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAo
dGFza19saXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2Jv
eCkKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl9jaGVja2VkKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktY2hlY2tib3gpCisgICAgIChwaXBlX3RhYmxlX2hlYWRlciAifCIgQG1hcmtk
b3duLXRzLXRhYmxlLWhlYWRlcikKKyAgICAgKHBpcGVfdGFibGVfaGVhZGVyIChwaXBlX3RhYmxl
X2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisgICAgIChwaXBlX3RhYmxlX3JvdyAi
fCIgQG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxsKQorICAgICAocGlwZV90YWJsZV9y
b3cgKHBpcGVfdGFibGVfY2VsbCkgQG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCisgICAgIChwaXBl
X3RhYmxlX2RlbGltaXRlcl9yb3cgInwiIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2Vs
bCkKKyAgICAgKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRpb24KKyAgICAgIChsaW5rX2xhYmVsKSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCisgICAgIChsaW5rX3JlZmVyZW5j
ZV9kZWZpbml0aW9uCisgICAgICAobGlua19kZXN0aW5hdGlvbikgQG1hcmtkb3duLXRzLS1mb250
aWZ5LWxpbmstcmVmLWRlc3RpbmF0aW9uKQorICAgICAobGlua19yZWZlcmVuY2VfZGVmaW5pdGlv
bgorICAgICAgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uKQorICAg
ICAocGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3RhYmxlX2RlbGltaXRlcl9jZWxsKSBA
bWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtk
b3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoCkBAIC0yMTcsODQgKzEzNTEsOTkyIEBAIG1hcmtk
b3duLXRzLS10cmVlc2l0LXNldHRpbmdzCiAgICAgICAoYmxvY2tfcXVvdGVfbWFya2VyKSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCiAgICAgICAocGFyYWdyYXBoIChpbmxpbmUgKGJs
b2NrX2NvbnRpbnVhdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikpKSkKIAor
ICAgOmxhbmd1YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFwaAorICAgOm92ZXJy
aWRlICdhcHBlbmQKKyAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrCisgICAgICAoaW5mb19zdHJpbmcg
KGxhbmd1YWdlKSkKKyAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1ub24tdHMtY29kZS1ibG9jaykpCisKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpm
ZWF0dXJlICdwYXJhZ3JhcGgKKyAgIDpvdmVycmlkZSAnYXBwZW5kCisgICAnKChmZW5jZWRfY29k
ZV9ibG9jayAoY29kZV9mZW5jZV9jb250ZW50KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktY29kZS1i
bG9jaykpCisKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6b3ZlcnJpZGUgJ2Fw
cGVuZAogICAgOmZlYXR1cmUgJ3BhcmFncmFwaC1pbmxpbmUKLSAgICcoKChpbWFnZV9kZXNjcmlw
dGlvbikgQGxpbmspCi0gICAgICgobGlua19kZXN0aW5hdGlvbikgQGZvbnQtbG9jay1zdHJpbmct
ZmFjZSkKLSAgICAgKChjb2RlX3NwYW4pIEBmb250LWxvY2stc3RyaW5nLWZhY2UpCisgICAnKCgo
bGlua19kZXN0aW5hdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstZGVzdGluYXRpb24p
CisgICAgICgoY29kZV9zcGFuKSBAbWFya2Rvd24tdHMtY29kZS1zcGFuKQogICAgICAoKGNvZGVf
c3Bhbl9kZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCi0gICAgICgo
ZW1waGFzaXMpIEBpdGFsaWMpCi0gICAgICgoc3Ryb25nX2VtcGhhc2lzKSBAYm9sZCkKLSAgICAg
KGlubGluZV9saW5rIChsaW5rX3RleHQpIEBsaW5rKQotICAgICAoaW5saW5lX2xpbmsgKGxpbmtf
ZGVzdGluYXRpb24pIEBmb250LWxvY2stc3RyaW5nLWZhY2UpCi0gICAgIChzaG9ydGN1dF9saW5r
IChsaW5rX3RleHQpIEBsaW5rKSkKKyAgICAgKChlbXBoYXNpcykgQG1hcmtkb3duLXRzLWVtcGhh
c2lzKQorICAgICAoKHN0cm9uZ19lbXBoYXNpcykgQG1hcmtkb3duLXRzLWJvbGQpCisgICAgICgo
c3RyaWtldGhyb3VnaCkgQG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gpCisgICAgIChpbmxpbmVf
bGluayAobGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAo
ZnVsbF9yZWZlcmVuY2VfbGluayAobGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1ub2RlKQorICAgICAoZnVsbF9yZWZlcmVuY2VfbGluayAobGlua19sYWJlbCkgQG1hcmtkb3du
LXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGNvbGxhcHNlZF9yZWZlcmVuY2VfbGluayAo
bGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoc2hvcnRj
dXRfbGluayAobGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAg
ICAoaW1hZ2UgKGltYWdlX2Rlc2NyaXB0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1u
b2RlKQorICAgICAoKHVyaV9hdXRvbGluaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5r
KQorICAgICAoKGVtYWlsX2F1dG9saW5rKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsp
CisgICAgIChpbmxpbmVfbGluayAobGlua190aXRsZSkgQG1hcmtkb3duLXRzLWxpbmstZGVzdGlu
YXRpb24pCisgICAgICgoYmFja3NsYXNoX2VzY2FwZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWJh
Y2tzbGFzaC1lc2NhcGUpCisgICAgICgoZW50aXR5X3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1m
b250aWZ5LWVudGl0eSkKKyAgICAgKChudW1lcmljX2NoYXJhY3Rlcl9yZWZlcmVuY2UpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1lbnRpdHkpCisgICAgICgoaHRtbF90YWcpIEBtYXJrZG93bi10cy1o
dG1sLXRhZykKKyAgICAgKChoYXJkX2xpbmVfYnJlYWspIEBtYXJrZG93bi10cy0tZm9udGlmeS1o
YXJkLWxpbmUtYnJlYWspCisgICAgICgobGF0ZXhfYmxvY2spIEBtYXJrZG93bi10cy0tZm9udGlm
eS1sYXRleC1ibG9jaykpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6ZmVh
dHVyZSAncGFyYWdyYXBoLWlubGluZQogICAgOm92ZXJyaWRlICdhcHBlbmQKICAgICcoKGVtcGhh
c2lzX2RlbGltaXRlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKLSAgICkpCiAK
LTs7OyBJbWVudQorICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxpbmUKKyAgIDpmZWF0dXJlICdp
bWFnZS1wcmV2aWV3CisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoaW1hZ2UpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1pbWFnZSkpKQorCis7OzsgSW1lbnU6CiAKLShkZWZ1biBtYXJrZG93bi10
cy1pbWVudS1ub2RlLXAgKG5vZGUpCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmct
bm9kZS1wIChub2RlKQogICAiQ2hlY2sgaWYgTk9ERSBpcyBhIHZhbGlkIGVudHJ5IHRvIGltZW51
LiIKLSAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAodHJlZXNpdC1ub2RlLXBhcmVudCBub2Rl
KSkKLSAgICAgICAgICJhdHhfaGVhZGluZyIpKQorICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbm9kZSkgImlubGluZSIpCisgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAo
dHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgImF0eF9oZWFkaW5nIikp
KQogCi0oZGVmdW4gbWFya2Rvd24tdHMtaW1lbnUtbmFtZS1mdW5jdGlvbiAobm9kZSkKKyhkZWZ1
biBtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uIChub2RlKQogICAiUmV0
dXJuIGFuIGltZW51IGVudHJ5IGlmIE5PREUgaXMgYSB2YWxpZCBoZWFkZXIuIgogICAobGV0ICgo
bmFtZSAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkpKQotICAgIChpZiAobWFya2Rvd24tdHMtaW1l
bnUtbm9kZS1wIG5vZGUpCi0JKHRocmVhZC1maXJzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2Rl
KSAodHJlZXNpdC1ub2RlLXRleHQpKQorICAgIChpZiAobWFya2Rvd24tdHMtLWltZW51LWhlYWRp
bmctbm9kZS1wIG5vZGUpCisgICAgICAgIChjYXIgKHNwbGl0LXN0cmluZyAodHJlZXNpdC1ub2Rl
LXRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcGFyZW50IG5v
ZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4iIHQgIiAiKSkKICAgICAgIG5hbWUp
KSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLW91dGxpbmUtcHJlZGljYXRlIChub2RlKQotICAiTWF0
Y2ggYSBoaWVyYXJjaGljYWwgc2VjdGlvbiB0aGF0IGhhcyBhIGhlYWRpbmcuIgorKGRlZnVuIG1h
cmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5vZGUtcCAobm9kZSkKKyAgIkNoZWNrIGlmIE5P
REUgaXMgYW4gaW5mb19zdHJpbmcgd2l0aCBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVyIHRoZSBsYW5n
dWFnZS4iCisgIChhbmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiaW5mb19zdHJp
bmciKQorICAgICAgICh3aGVuLWxldCogKChsYW5nLW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRy
ZWUgbm9kZSAibGFuZ3VhZ2UiKSkKKyAgICAgICAgICAgICAgICAgICAoKDwgKHRyZWVzaXQtbm9k
ZS1lbmQgbGFuZy1ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVu
ZCBub2RlKSkpKQorICAgICAgICAgKG5vdCAoc3RyaW5nLWJsYW5rLXAKKyAgICAgICAgICAgICAg
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLWVuZCBsYW5nLW5vZGUpCisgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQg
bm9kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5hbWUt
ZnVuY3Rpb24gKG5vZGUpCisgICJSZXR1cm4gYW4gaW1lbnUgZW50cnkgbmFtZSBmb3IgYSBjb2Rl
IGJsb2NrIGluZm9fc3RyaW5nIE5PREUuCitVc2VzIHRoZSBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVy
IHRoZSBsYW5ndWFnZSBuYW1lLiIKKyAgKHdoZW4tbGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1z
ZWFyY2gtc3VidHJlZSBub2RlICJsYW5ndWFnZSIpKQorICAgICAgICAgICAgICAoZGVzYyAoc3Ry
aW5nLXRyaW0KKyAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl
cnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUp
CisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKSkpCisgICAg
KGZvcm1hdCAiJXM6ICVzIiAodHJlZXNpdC1ub2RlLXRleHQgbGFuZy1ub2RlKSBkZXNjKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCisgICJNYXRjaCBO
T0RFIGlmIGl0IGlzIGEgaGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIK
ICAgKGFuZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJzZWN0aW9uIikKICAgICAg
ICAod2hlbi1sZXQqICgoY2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJhdHhfaGVhZGluZyIpKSkpCiAK
LTs7OyBDb2RlIGJsb2NrcwotCi0oZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1jb25maWd1cmVk
LWxhbmd1YWdlcyBuaWwKLSAgIkEgbGlzdCBvZiBsYW5ndWFnZXMgdGhhdCBoYXZlIGJlZW4gc2V0
dXAgaW4gdGhpcyBidWZmZXIuCi0KLVdoZW4gYSBjb2RlIGJsb2NrIG9mIGEgbGFuZ3VhZ2UgYXBw
ZWFycywgYG1hcmtkb3duLXRzLW1vZGUnIGxvYWRzCi1sYW5ndWFnZSBzZXR1cHMgbGlrZSBmb250
LWxvY2sgYW5kIGluZGVudGF0aW9uIGZvciB0aGF0IGxhbmd1YWdlLCBhbmQKLWFkZHMgdGhhdCBs
YW5ndWFnZSB0byB0aGlzIGxpc3QuIikKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKKworKGRl
ZmNvbnN0IG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11
bSBBVFggaGVhZGluZyBsZXZlbCBpbiBNYXJrZG93biAoaDEtaDYpLgorRGVmaW5lZCBieSB0aGUg
Q29tbW9uTWFyayBzcGVjIGFuZCB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgYXR4X2hlYWRp
bmcgbm9kZSBhdCBvciBiZWZvcmUgcG9pbnQsIG9yIG5pbC4iCisgICh3aGVuLWxldCogKChub2Rl
ICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAoaWYgKGVxdWFsICh0
cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiYXR4X2hlYWRpbmciKQorICAgICAgICBub2RlCisgICAg
ICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbikgImF0eF9oZWFkaW5nIikpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWhlYWRpbmctbGV2ZWwgKGhlYWRpbmcpCisgICJSZXR1cm4gdGhlIGxldmVsIG9mIEhF
QURJTkcgbm9kZSAoMSB0byBgbWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCcp
LiIKKyAgKGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpKQorICAg
IChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLXNlY3Rpb24tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgc2VjdGlvbiBub2RlIGNv
bnRhaW5pbmcgcG9pbnQuIgorICAod2hlbi1sZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0IChw
b2ludCkgJ21hcmtkb3duKSkpCisgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgIG5vZGUg
KGxhbWJkYSAobikgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAic2VjdGlvbiIpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtcHJvbW90ZSAoKQorICAiUHJvbW90ZSB0aGUgaGVhZGluZyBv
ciBsaXN0IGl0ZW0gYXQgcG9pbnQuCitGb3IgaGVhZGluZ3MsIGRlY3JlYXNlIHRoZSBsZXZlbCAo
ZS5nLiwgIyMgdG8gIykuCitGb3IgbGlzdCBpdGVtcywgZGVjcmVhc2UgbmVzdGluZyAoZGVkZW50
KS4KK1dpdGggYHRyYW5zaWVudC1tYXJrLW1vZGUnIG9uIGFuZCBtYXJrIGFjdGl2ZSwgcHJvbW90
ZSBhbGwKK2hlYWRpbmdzIGluIHRoZSByZWdpb24uIgorICAoaW50ZXJhY3RpdmUpCisgIChjb25k
CisgICAoKGFuZCB0cmFuc2llbnQtbWFyay1tb2RlIG1hcmstYWN0aXZlKQorICAgIChtYXJrZG93
bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIC0xKSkKKyAgICgobWFya2Rvd24tdHMtLWxp
c3QtaXRlbS1hdC1wb2ludCkKKyAgICAobWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1v
dGUgbmlsKSkKKyAgICh0IChtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUgLTEpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy1kZW1vdGUgKCkKKyAgIkRlbW90ZSB0aGUgaGVhZGluZyBvciBs
aXN0IGl0ZW0gYXQgcG9pbnQuCitGb3IgaGVhZGluZ3MsIGluY3JlYXNlIHRoZSBsZXZlbCAoZS5n
LiwgIyB0byAjIykuCitGb3IgbGlzdCBpdGVtcywgaW5jcmVhc2UgbmVzdGluZyAoaW5kZW50KS4K
K1dpdGggYHRyYW5zaWVudC1tYXJrLW1vZGUnIG9uIGFuZCBtYXJrIGFjdGl2ZSwgZGVtb3RlIGFs
bCBoZWFkaW5ncworaW4gdGhlIHJlZ2lvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAg
ICgoYW5kIHRyYW5zaWVudC1tYXJrLW1vZGUgbWFyay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRz
LS1wcm9tb3RlLW9yLWRlbW90ZS1yZWdpb24gMSkpCisgICAoKG1hcmtkb3duLXRzLS1saXN0LWl0
ZW0tYXQtcG9pbnQpCisgICAgKG1hcmtkb3duLXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIHQp
KQorICAgKHQgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAxKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlIChkZWx0YSkKKyAgIkNoYW5nZSB0aGUgaGVh
ZGluZyBhdCBwb2ludCBieSBERUxUQSBsZXZlbHMuCitOZWdhdGl2ZSBERUxUQSBwcm9tb3RlcyAo
ZmV3ZXIgIyksIHBvc2l0aXZlIGRlbW90ZXMgKG1vcmUgIykuCitJZiB0aGUgaGVhZGluZyBoYXMg
YW4gb3B0aW9uYWwgdHJhaWxpbmcgY2xvc2luZy1gIycgc2VxdWVuY2UsIHRoYXQKK3NlcXVlbmNl
IGlzIHJlc2l6ZWQgdG8gbWF0Y2ggdGhlIG5ldyBsZXZlbC4iCisgICh3aGVuLWxldCogKChoZWFk
aW5nIChtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChtYXJr
ZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBoZWFkaW5nIDApKQorICAgICAgICAgICAgICAobGV2ZWwg
KGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQpKSkKKyAgICAgICAgICAgICAgKG5l
dy1sZXZlbCAoKyBsZXZlbCBkZWx0YSkpKQorICAgICh3aGVuIChhbmQgKD49IG5ldy1sZXZlbCAx
KQorICAgICAgICAgICAgICAgKDw9IG5ldy1sZXZlbCBtYXJrZG93bi10cy0tcGFyc2VyLWhlYWRp
bmctbWF4LWxldmVsKSkKKyAgICAgIChsZXQqICgob3BlbmVyLWJlZyAodHJlZXNpdC1ub2RlLXN0
YXJ0IG1hcmtlcikpCisgICAgICAgICAgICAgKG9wZW5lci1lbmQgKHRyZWVzaXQtbm9kZS1lbmQg
bWFya2VyKSkKKyAgICAgICAgICAgICAobGluZS1lbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAg
ICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgIDs7IERldGVjdCBh
IENvbW1vbk1hcmsgY2xvc2luZy1gIycgc2VxdWVuY2U6IG9wdGlvbmFsCisgICAgICAgICAgICAg
OzsgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYSBydW4gb2YgYCMnLCBhbmQgYXQgbGVhc3Qgb25lCisg
ICAgICAgICAgICAgOzsgc3BhY2UvdGFiIGJldHdlZW4gaXQgYW5kIHRoZSBoZWFkaW5nIHRleHQu
CisgICAgICAgICAgICAgKGNsb3NlciAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciBsaW5lLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgKHNraXAt
Y2hhcnMtYmFja3dhcmQgIiBcdCIgb3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAg
KGxldCAoKGVuZCAocG9pbnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFy
cy1iYWNrd2FyZCAiIyIgb3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0
ICgoYmVnIChwb2ludCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAo
PCBiZWcgZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiBiZWcg
b3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbXEg
KGNoYXItYmVmb3JlIGJlZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJyg/XHMgP1x0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIGJl
ZyBlbmQpKSkpKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIDs7IFJlc2l6
ZSB0aGUgY2xvc2VyIGZpcnN0IHNvIGl0IGRvZXNuJ3Qgc2hpZnQgdGhlIG9wZW5lci4KKyAgICAg
ICAgICAod2hlbiBjbG9zZXIKKyAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIChjYXIgY2xvc2Vy
KSAoY2RyIGNsb3NlcikpCisgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgY2xvc2VyKSkKKyAg
ICAgICAgICAgIChpbnNlcnQgKG1ha2Utc3RyaW5nIG5ldy1sZXZlbCA/IykpKQorICAgICAgICAg
IChkZWxldGUtcmVnaW9uIG9wZW5lci1iZWcgb3BlbmVyLWVuZCkKKyAgICAgICAgICAoZ290by1j
aGFyIG9wZW5lci1iZWcpCisgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgbmV3LWxldmVs
ID8jKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lv
biAoZGVsdGEpCisgICJDaGFuZ2UgYWxsIGhlYWRpbmdzIGluIHRoZSBhY3RpdmUgcmVnaW9uIGJ5
IERFTFRBIGxldmVscy4KK05lZ2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRp
dmUgZGVtb3RlcyAobW9yZSAjKS4iCisgIChsZXQgKChiZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQor
ICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAo
Z290by1jaGFyIGJlZykKKyAgICAgICh3aGlsZSAoPCAocG9pbnQpIGVuZCkKKyAgICAgICAgKHdo
ZW4gKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50KQorICAgICAgICAgIChtYXJrZG93bi10
cy0tcHJvbW90ZS1vci1kZW1vdGUgZGVsdGEpKQorICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwICgpCisgICJNb3ZlIHRoZSBj
dXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIHVwIHBhc3QgdGhlIHByZXZpb3VzIHNpYmxpbmcu
IgorICAoaW50ZXJhY3RpdmUpCisgIChpZiAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2lu
dCkKKyAgICAgIChtYXJrZG93bi10cy0tbGlzdC1tb3ZlIHQpCisgICAgKG1hcmtkb3duLXRzLS1t
b3ZlLXN1YnRyZWUtdXAtb3ItZG93biB0KSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy0taGFydmVz
dC10cmVlc2l0LWNvbmZpZ3MgKG1vZGUpCi0gICJIYXJ2ZXN0IHRyZWUtc2l0dGVyIGNvbmZpZ3Mg
ZnJvbSBNT0RFLgotUmV0dXJuIGEgcGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgYW5kIHZh
bHVlOgorKGRlZnVuIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICgpCisgICJNb3ZlIHRo
ZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIGRvd24gcGFzdCB0aGUgbmV4dCBzaWJsaW5n
LiIKKyAgKGludGVyYWN0aXZlKQorICAoaWYgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9p
bnQpCisgICAgICAobWFya2Rvd24tdHMtLWxpc3QtbW92ZSBuaWwpCisgICAgKG1hcmtkb3duLXRz
LS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93biBuaWwpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1z
ZWN0aW9uLWZvbGRlZC1wIChzZWN0aW9uKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU0VDVElPTidz
IGhlYWRpbmcgaXMgZm9sZGVkLgorQ2hlY2tzIHdoZXRoZXIgdGhlIGVuZCBvZiB0aGUgaGVhZGlu
ZyBsaW5lIGhhcyBhbiBvdXRsaW5lCitpbnZpc2libGUgb3ZlcmxheS4iCisgIChsZXQgKChoZWFk
aW5nICh0cmVlc2l0LW5vZGUtY2hpbGQgc2VjdGlvbiAwKSkpCisgICAgKHdoZW4gKGFuZCBoZWFk
aW5nCisgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGhlYWRpbmcpICJh
dHhfaGVhZGluZyIpKQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIg
KHRyZWVzaXQtbm9kZS1zdGFydCBoZWFkaW5nKSkKKyAgICAgICAgKG91dGxpbmUtaW52aXNpYmxl
LXAgKHBvcy1lb2wpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAt
b3ItZG93biAodXApCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gc3VidHJlZS4KK0lmIFVQ
IGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1v
dmUgZG93bi4KK1ByZXNlcnZlcyB0aGUgZm9sZGluZyBzdGF0ZSBvZiBib3RoIHNlY3Rpb25zLiIK
KyAgKHdoZW4tbGV0KiAoKHNlY3Rpb24gKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KSkK
KyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBzZWN0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHNlY3Rpb24pKSkpCisgICAgKHdoZW4g
KGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAic2VjdGlvbiIpCisgICAgICAobGV0
KiAoKGZpcnN0IChpZiB1cCBzaWJsaW5nIHNlY3Rpb24pKQorICAgICAgICAgICAgIChzZWNvbmQg
KGlmIHVwIHNlY3Rpb24gc2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0LWZvbGRlZCAobWFy
a2Rvd24tdHMtLXNlY3Rpb24tZm9sZGVkLXAgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQt
Zm9sZGVkIChtYXJrZG93bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBzZWNvbmQpKQorICAgICAgICAg
ICAgIChmaXJzdC1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IGZpcnN0KSkKKyAgICAgICAgICAg
ICAoc2Vjb25kLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgc2Vjb25kKSkKKyAgICAgICAgICAg
ICAoc2Vjb25kLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAgICAgIDs7
IEV4dHJhY3Qgc2VwYXJhdG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Uu
CisgICAgICAgICAgICAgKGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1zdGFydCBz
ZWNvbmQtc3RhcnQpKQorICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJpbS1yaWdo
dCBmaXJzdC1yYXcpKQorICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBmaXJzdC1y
YXcgKGxlbmd0aCBmaXJzdC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcgKGJ1ZmZl
ci1zdWJzdHJpbmcgc2Vjb25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAgIChzZWNv
bmQtdGV4dCAoc3RyaW5nLXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAgICAgKHRy
YWlsaW5nIChzdWJzdHJpbmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkpCisgICAg
ICAgICAgICAgKGNvbCAoY3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgIChsaW5lLW9mZnNl
dCAoLSAobGluZS1udW1iZXItYXQtcG9zIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChsaW5lLW51bWJlci1hdC1wb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBzZWN0aW9uKSkp
KSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gZmlyc3Qtc3RhcnQgc2Vjb25kLWVuZCkKKyAgICAg
ICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAgICAgKGluc2VydCBzZWNvbmQtdGV4dCBz
ZXBhcmF0b3IgZmlyc3QtdGV4dCB0cmFpbGluZykKKyAgICAgICAgOzsgUmVzdG9yZSBmb2xkaW5n
IHN0YXRlCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgZmly
c3Qtc3RhcnQpCisgICAgICAgICAgKHdoZW4gKG91dGxpbmUtb24taGVhZGluZy1wKQorICAgICAg
ICAgICAgKGlmIHNlY29uZC1mb2xkZWQKKyAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXN1
YnRyZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNob3ctc3VidHJlZSkpKQorICAgICAgICAg
IChvdXRsaW5lLW5leHQtaGVhZGluZykKKyAgICAgICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFk
aW5nLXApCisgICAgICAgICAgICAoaWYgZmlyc3QtZm9sZGVkCisgICAgICAgICAgICAgICAgKG91
dGxpbmUtaGlkZS1zdWJ0cmVlKQorICAgICAgICAgICAgICAob3V0bGluZS1zaG93LXN1YnRyZWUp
KSkpCisgICAgICAgIChnb3RvLWNoYXIgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgIGZp
cnN0LXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAoKyBmaXJzdC1zdGFydCAobGVuZ3RoIHNl
Y29uZC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBzZXBhcmF0b3IpKSkp
CisgICAgICAgIChmb3J3YXJkLWxpbmUgbGluZS1vZmZzZXQpCisgICAgICAgIChtb3ZlLXRvLWNv
bHVtbiBjb2wpKSkpKQorCis7OzsgTGlzdCBtYW5pcHVsYXRpb246CisKKyhkZWZ1biBtYXJrZG93
bi10cy10b2dnbGUtY2hlY2tib3ggKCkKKyAgIlRvZ2dsZSB0aGUgdGFzayBsaXN0IGNoZWNrYm94
IG9uIHRoZSBjdXJyZW50IGxpbmUuCitTd2l0Y2hlcyBiZXR3ZWVuIGBbIF0nIGFuZCBgW3hdJy4i
CisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNpb24gKGJh
Y2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAodHJlZXNp
dC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0
X2l0ZW0iKSkpKSkKKyAgICAod2hlbi1sZXQqICgobWFya2VyIChzZXEtZmluZAorICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYW1iZGEgKGNoaWxkKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1lbWJlciAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcoInRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAidGFza19saXN0X21hcmtlcl91bmNoZWNrZWQiKSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBpdGVtKSkp
KQorICAgICAgKGxldCAoKGJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpCisgICAgICAg
ICAgICAoZW5kICh0cmVlc2l0LW5vZGUtZW5kIG1hcmtlcikpCisgICAgICAgICAgICAoY2hlY2tl
ZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidGFza19saXN0X21hcmtlcl9jaGVja2VkIikpKQorICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lv
biBiZWcgZW5kKQorICAgICAgICAgIChpbnNlcnQgKGlmIGNoZWNrZWQgIlsgXSIgIlt4XSIpKSkp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50ICgpCisgICJSZXR1
cm4gdGhlIGlubmVybW9zdCBsaXN0X2l0ZW0gbm9kZSBjb250YWluaW5nIHBvaW50LCBvciBuaWwu
CitVc2VzIHRoZSBwb3NpdGlvbiBhZnRlciBgYmFjay10by1pbmRlbnRhdGlvbicgc28gdGhhdCBw
b2ludCBpbgorYSBsaW5lJ3MgbGVhZGluZyB3aGl0ZXNwYWNlIHJlc29sdmVzIHRvIHRoZSBpdGVt
IG9uIHRoYXQgbGluZSwKK25vdCB0byBhIHByZWNlZGluZyBpdGVtIHdob3NlIG5vZGUgc3BhbnMg
dGhlIHdoaXRlc3BhY2UuCitJbnNpZGUgYmxvY2sgcXVvdGVzLCBhbHNvIHRyeSBmcm9tIHRoZSBj
b250ZW50IHBvc2l0aW9uIHBhc3QKK3RoZSBgPicgbWFya2Vycy4iCisgICh3aGVuLWxldCogKChw
b3MgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9pbnQpKSkKKyAgICAg
ICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duKSkKKyAgICAgICAg
ICAgICAgKGJvbCAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKQorICAgICAgICAgICAgICAoZW9s
IChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgIChvciAobGV0ICgoaXRlbSAodHJlZXNpdC1wYXJl
bnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0
ZW0iKSkpKSkKKyAgICAgICAgICA7OyBWZXJpZnkgdGhlIGN1cnJlbnQgbGluZSBpcyB3aXRoaW4g
dGhlIGl0ZW0ncyByYW5nZS4KKyAgICAgICAgICA7OyBgdHJlZXNpdC1ub2RlLWF0JyBjYW4gcmV0
dXJuIGEgbm9kZSBpbnNpZGUgYSBsaXN0X2l0ZW0KKyAgICAgICAgICA7OyBldmVuIHdoZW4gcG9p
bnQgaXMgb24gYSBwcmVjZWRpbmcgbGluZS4KKyAgICAgICAgICAod2hlbiAoYW5kIGl0ZW0KKyAg
ICAgICAgICAgICAgICAgICAgICg8PSAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pIGVvbCkKKyAg
ICAgICAgICAgICAgICAgICAgICg+PSAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSBib2wpKQorICAg
ICAgICAgICAgaXRlbSkpCisgICAgICAgIDs7IFdoZW4gYmFjay10by1pbmRlbnRhdGlvbiBsYW5k
cyBvbiBibG9jayBxdW90ZSBtYXJrZXJzLAorICAgICAgICA7OyBza2lwIHBhc3QgdGhlbSBhbmQg
dHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24uCisgICAgICAgIChsZXQgKChjb250ZW50LXBv
cyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmlu
Zy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3
YXJkICI+IFx0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICh3aGVuICg+IGNvbnRlbnQtcG9zIHBvcykKKyAgICAgICAgICAgICh3aGVuLWxldCog
KChjbm9kZSAodHJlZXNpdC1ub2RlLWF0IGNvbnRlbnQtcG9zICdtYXJrZG93bikpKQorICAgICAg
ICAgICAgICAobGV0ICgoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChu
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBl
IG4pICJsaXN0X2l0ZW0iKSkpKSkKKyAgICAgICAgICAgICAgICAod2hlbiAoYW5kIGl0ZW0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICg8PSAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pIGVv
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSAodHJlZXNpdC1ub2RlLWVuZCBpdGVt
KSBib2wpKQorICAgICAgICAgICAgICAgICAgaXRlbSkpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy0tbGlzdC1tYXJrZXItd2lkdGggKGl0ZW0pCisgICJSZXR1cm4gdGhlIHdpZHRoIG9mIElU
RU0ncyBsaXN0IG1hcmtlciBpbmNsdWRpbmcgdHJhaWxpbmcgc3BhY2UuIgorICAobGV0ICgobWFy
a2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisgICAgKC0gKHRyZWVzaXQtbm9kZS1l
bmQgbWFya2VyKSAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tcmVnaW9uIChpdGVtKQorICAiUmV0dXJuIHRoZSAoQkVHIC4gRU5E
KSByZWdpb24gZm9yIElURU0sIGNsYW1wZWQgdG8gZnVsbCBsaW5lcy4KK0JFRyBzdGFydHMgYXQg
dGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBpdGVtLgorRU5EIGlzIGNs
YW1wZWQgc28gaXQgZG9lcyBub3QgZXh0ZW5kIGludG8gdGhlIG5leHQgbGluZSdzCitpbmRlbnRh
dGlvbiwgd2hpY2ggdHJlZS1zaXR0ZXIgbWF5IGluY2x1ZGUgaW4gdGhlIG5vZGUuIgorICAobGV0
ICgoYmVnIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNp
dC1ub2RlLXN0YXJ0IGl0ZW0pKQorICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0
aW9uKSkpCisgICAgICAgIChlbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAoZ290
by1jaGFyICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pKQorICAgICAgICAgICAgICAgKGlmIChib2xw
KSAocG9pbnQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkpCisgICAgKGNvbnMgYmVnIGVu
ZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3Qtb3JkZXJlZC1pdGVtLXAgKGl0ZW0pCisg
ICJSZXR1cm4gbm9uLW5pbCBpZiBJVEVNIGlzIGFuIG9yZGVyZWQgKG51bWJlcmVkKSBsaXN0IGl0
ZW0uIgorICAobGV0ICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisgICAg
KGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBtYXJrZXIpICJsaXN0X21hcmtlcl9kb3QiKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSAoZGVtb3RlKQorICAi
Q2hhbmdlIG5lc3Rpbmcgb2YgdGhlIGxpc3QgaXRlbSBhdCBwb2ludC4KK0lmIERFTU9URSBpcyBu
b24tbmlsLCBkZW1vdGUgKGluZGVudCk7IG90aGVyd2lzZSBwcm9tb3RlIChkZWRlbnQpLgorT3Jk
ZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbXMgYXJlIHNraXBwZWQgYmVjYXVzZSB0aGUgZ3JhbW1h
ciBkb2VzCitub3Qgc3VwcG9ydCBuZXN0aW5nIHRoZW0gYnkgaW5kZW50YXRpb24uIgorICAod2hl
bi1sZXQqICgoaXRlbSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAg
ICAgICAgIChyZWdpb24gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tcmVnaW9uIGl0ZW0pKQorICAg
ICAgICAgICAgICAoYmVnIChjYXIgcmVnaW9uKSkKKyAgICAgICAgICAgICAgKGVuZCAoY2RyIHJl
Z2lvbikpKQorICAgICh3aGVuIChtYXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCBpdGVt
KQorICAgICAgKHVzZXItZXJyb3IgIk9yZGVyZWQgbGlzdCBpdGVtcyBjYW5ub3QgYmUgbmVzdGVk
IChncmFtbWFyIGxpbWl0YXRpb24pIikpCisgICAgKGlmIGRlbW90ZQorICAgICAgICA7OyBEZW1v
dGU6IGluZGVudCBieSBtYXJrZXIgd2lkdGgsIG9ubHkgaWYgdGhlcmUgaXMgYSBwcmV2aW91cwor
ICAgICAgICA7OyBzaWJsaW5nIHRvIG5lc3QgdW5kZXIgKGxpa2Ugb3JnLW1vZGUpLgorICAgICAg
ICAod2hlbiAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQorICAgICAgICAgIChpbmRl
bnQtcmlnaWRseSBiZWcgZW5kIChtYXJrZG93bi10cy0tbGlzdC1tYXJrZXItd2lkdGggaXRlbSkp
KQorICAgICAgOzsgUHJvbW90ZTogZGVkZW50IHRvIGdyYW5kcGFyZW50IGxldmVsLgorICAgICAg
KGxldCogKChwYXJlbnQtbGlzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBpdGVtKSkKKyAgICAgICAg
ICAgICAoZ3JhbmRwYXJlbnQgKGFuZCBwYXJlbnQtbGlzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBw
YXJlbnQtbGlzdCkpKQorICAgICAgICAgICAgIChpdGVtLWNvbCAoc2F2ZS1leGN1cnNpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGJlZykgKGN1cnJlbnQtaW5kZW50YXRp
b24pKSkpCisgICAgICAgICh3aGVuIChhbmQgZ3JhbmRwYXJlbnQKKyAgICAgICAgICAgICAgICAg
ICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGdyYW5kcGFyZW50KSAibGlzdF9pdGVtIikKKyAg
ICAgICAgICAgICAgICAgICAoPiBpdGVtLWNvbCAwKSkKKyAgICAgICAgICAobGV0ICgoZ3AtY29s
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgZ3JhbmRwYXJlbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAgICAgIChpbmRlbnQtcmlnaWRseSBi
ZWcgZW5kICgtIGdwLWNvbCBpdGVtLWNvbCkpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
bGlzdC1ub2RlLWJvbCAobm9kZSkKKyAgIlJldHVybiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5l
IGNvbnRhaW5pbmcgTk9ERSdzIHN0YXJ0LiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGdvdG8t
Y2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgIChsaW5lLWJlZ2lubmluZy1wb3Np
dGlvbikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtbW92ZSAodXApCisgICJNb3ZlIHRo
ZSBsaXN0IGl0ZW0gYXQgcG9pbnQuCitJZiBVUCBpcyBub24tbmlsLCBtb3ZlIHBhc3QgdGhlIHBy
ZXZpb3VzIHNpYmxpbmc7IG90aGVyd2lzZSBtb3ZlIGRvd24uIgorICAod2hlbi1sZXQqICgoaXRl
bSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChzaWJs
aW5nIChpZiB1cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2
LXNpYmxpbmcgaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5l
eHQtc2libGluZyBpdGVtKSkpKQorICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUg
c2libGluZykgImxpc3RfaXRlbSIpCisgICAgICAobGV0KiAoKGZpcnN0IChpZiB1cCBzaWJsaW5n
IGl0ZW0pKQorICAgICAgICAgICAgIChzZWNvbmQgKGlmIHVwIGl0ZW0gc2libGluZykpCisgICAg
ICAgICAgICAgKGZpcnN0LXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBmaXJzdCkp
CisgICAgICAgICAgICAgKHNlY29uZC1zdGFydCAobWFya2Rvd24tdHMtLWxpc3Qtbm9kZS1ib2wg
c2Vjb25kKSkKKyAgICAgICAgICAgICAoc2Vjb25kLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBzZWNv
bmQpKQorICAgICAgICAgICAgIDs7IEV4dHJhY3Qgc2VwYXJhdG9yIGJldHdlZW4gaXRlbXMgYW5k
IHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAgKGZpcnN0LXJhdyAoYnVmZmVyLXN1
YnN0cmluZyBmaXJzdC1zdGFydCBzZWNvbmQtc3RhcnQpKQorICAgICAgICAgICAgIChmaXJzdC10
ZXh0IChzdHJpbmctdHJpbS1yaWdodCBmaXJzdC1yYXcpKQorICAgICAgICAgICAgIChzZXBhcmF0
b3IgKHN1YnN0cmluZyBmaXJzdC1yYXcgKGxlbmd0aCBmaXJzdC10ZXh0KSkpCisgICAgICAgICAg
ICAgKHNlY29uZC1yYXcgKGJ1ZmZlci1zdWJzdHJpbmcgc2Vjb25kLXN0YXJ0IHNlY29uZC1lbmQp
KQorICAgICAgICAgICAgIChzZWNvbmQtdGV4dCAoc3RyaW5nLXRyaW0tcmlnaHQgc2Vjb25kLXJh
dykpCisgICAgICAgICAgICAgKHRyYWlsaW5nIChzdWJzdHJpbmcgc2Vjb25kLXJhdyAobGVuZ3Ro
IHNlY29uZC10ZXh0KSkpCisgICAgICAgICAgICAgKGNvbCAoY3VycmVudC1jb2x1bW4pKQorICAg
ICAgICAgICAgIChsaW5lLW9mZnNldCAoLSAobGluZS1udW1iZXItYXQtcG9zIChwb2ludCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLW51bWJlci1hdC1wb3MKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpKSkpCisgICAg
ICAgIChkZWxldGUtcmVnaW9uIGZpcnN0LXN0YXJ0IHNlY29uZC1lbmQpCisgICAgICAgIChnb3Rv
LWNoYXIgZmlyc3Qtc3RhcnQpCisgICAgICAgIChpbnNlcnQgc2Vjb25kLXRleHQgc2VwYXJhdG9y
IGZpcnN0LXRleHQgdHJhaWxpbmcpCisgICAgICAgIChnb3RvLWNoYXIgKGlmIHVwCisgICAgICAg
ICAgICAgICAgICAgICAgIGZpcnN0LXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAoKyBmaXJz
dC1zdGFydCAobGVuZ3RoIHNlY29uZC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKGxl
bmd0aCBzZXBhcmF0b3IpKSkpCisgICAgICAgIChmb3J3YXJkLWxpbmUgbGluZS1vZmZzZXQpCisg
ICAgICAgIChtb3ZlLXRvLWNvbHVtbiBjb2wpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtcmVu
dW1iZXItbGlzdCAoJm9wdGlvbmFsIHN0YXJ0KQorICAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlz
dCBhdCBwb2ludC4KK051bWJlcnMgYXJlIGFzc2lnbmVkIHNlcXVlbnRpYWxseSBzdGFydGluZyBm
cm9tIHRoZSBmaXJzdCBpdGVtJ3MKK251bWJlci4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQgU1RB
UlQsIHN0YXJ0IG51bWJlcmluZyBmcm9tIHRoYXQKK3ZhbHVlIGluc3RlYWQuICBEb2VzIG5vdGhp
bmcgZm9yIHVub3JkZXJlZCBsaXN0cy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxl
dCogKChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAg
ICAgKGxpc3Qtbm9kZSAodHJlZXNpdC1ub2RlLXBhcmVudCBpdGVtKSkpCisgICAgKHdoZW4gKGVx
dWFsICh0cmVlc2l0LW5vZGUtdHlwZSBsaXN0LW5vZGUpICJsaXN0IikKKyAgICAgIChsZXQqICgo
Y2hpbGRyZW4gKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBsaXN0LW5vZGUpKQorICAgICAgICAgICAg
IChpdGVtcyAoc2VxLWZpbHRlciAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbikpCisgICAgICAgICAgICAgKGZp
cnN0LW1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIChjYXIgaXRlbXMpIDApKQorICAgICAgICAg
ICAgIChtYXJrZXItdHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgZmlyc3QtbWFya2VyKSkpCisgICAg
ICAgICh3aGVuIChtZW1iZXIgbWFya2VyLXR5cGUgJygibGlzdF9tYXJrZXJfZG90IiAibGlzdF9t
YXJrZXJfcGFyZW50aGVzaXMiKSkKKyAgICAgICAgICAobGV0KiAoKGJhc2UgKGlmIHN0YXJ0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocHJlZml4LW51bWVyaWMtdmFsdWUgc3RhcnQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy10by1udW1iZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGZpcnN0LW1hcmtlciB0KSkpKQorICAgICAg
ICAgICAgICAgICAoY291bnQgKGxlbmd0aCBpdGVtcykpCisgICAgICAgICAgICAgICAgIDs7IFN0
YXJ0IGZyb20gdGhlIGxhc3QgbnVtYmVyIGFuZCB3b3JrIGJhY2t3YXJkcyBzbworICAgICAgICAg
ICAgICAgICA7OyB0aGF0IGVhcmxpZXIgYnVmZmVyIHBvc2l0aW9ucyByZW1haW4gdmFsaWQuCisg
ICAgICAgICAgICAgICAgIChudW0gKCsgYmFzZSBjb3VudCAtMSkpKQorICAgICAgICAgICAgKGRv
bGlzdCAoaXQgKHJldmVyc2UgaXRlbXMpKQorICAgICAgICAgICAgICAobGV0KiAoKG1hcmtlciAo
dHJlZXNpdC1ub2RlLWNoaWxkIGl0IDApKQorICAgICAgICAgICAgICAgICAgICAgKG1hcmtlci1l
bmQgKHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgICAgICAgICAgIChib2wg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgICAgICAgICA7OyBGdWxs
IHRleHQgZnJvbSBib2wgdG8gZW5kIG9mIG1hcmtlciBpbmNsdWRlcworICAgICAgICAgICAgICAg
ICAgICAgOzsgYW55IGxlYWRpbmcgd2hpdGVzcGFjZSwgdGhlIG51bWJlciwgYW5kIHRoZQorICAg
ICAgICAgICAgICAgICAgICAgOzsgc2VwYXJhdG9yIChlLmcuLCAiLiAiIG9yICIuXHQiKS4KKyAg
ICAgICAgICAgICAgICAgICAgIChmdWxsLXRleHQgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVy
dGllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sIG1hcmtlci1lbmQpKQor
ICAgICAgICAgICAgICAgICAgICAgKGluZGVudC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAo
aWYgKHN0cmluZy1tYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFxcKFtbOmJs
YW5rOl1dKlxcKVswLTldIiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICht
YXRjaC1zdHJpbmcgMSBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiIikpCisg
ICAgICAgICAgICAgICAgICAgICAoc3VmZml4LXN0cgorICAgICAgICAgICAgICAgICAgICAgIChp
ZiAoc3RyaW5nLW1hdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgW1s6Ymxhbms6
XV0qWzAtOV0rXFwoLipcXClcXCciIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1hdGNoLXN0cmluZyAxIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICIu
ICIpKQorICAgICAgICAgICAgICAgICAgICAgKG5ldy10ZXh0IChjb25jYXQgaW5kZW50LXN0cgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bWJlci10by1zdHJpbmcg
bnVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4LXN0cikp
KQorICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgKGRl
bGV0ZS1yZWdpb24gYm9sIG1hcmtlci1lbmQpCisgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
IGJvbCkKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgbmV3LXRleHQpKSkKKyAgICAgICAgICAg
ICAgKGNsLWRlY2YgbnVtKSkKKyAgICAgICAgICAgIChtZXNzYWdlICJSZW51bWJlcmVkICVkIGl0
ZW1zIiBjb3VudCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1h
cmtlciAoaXRlbSkKKyAgIlJldHVybiB0aGUgbWFya2VyIHN0cmluZyBmb3IgYSBuZXcgaXRlbSBm
b2xsb3dpbmcgSVRFTS4KK0ZvciB1bm9yZGVyZWQgaXRlbXMsIHJldXNlIHRoZSBzYW1lIG1hcmtl
ciBjaGFyYWN0ZXIuCitGb3Igb3JkZXJlZCBpdGVtcywgaW5jcmVtZW50IHRoZSBudW1iZXIuIgor
ICAobGV0KiAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpCisgICAgICAgICAo
dHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbWFya2VyKSkKKyAgICAgICAgIChpbmRlbnQgKHNhdmUt
ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0
YXJ0IGl0ZW0pKQorICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0aW9uKSkpCisg
ICAgICAgICAocHJlZml4IChtYWtlLXN0cmluZyBpbmRlbnQgP1xzKSkpCisgICAgKHBjYXNlIHR5
cGUKKyAgICAgICgibGlzdF9tYXJrZXJfbWludXMiIChjb25jYXQgcHJlZml4ICItICIpKQorICAg
ICAgKCJsaXN0X21hcmtlcl9wbHVzIiAgKGNvbmNhdCBwcmVmaXggIisgIikpCisgICAgICAoImxp
c3RfbWFya2VyX3N0YXIiICAoY29uY2F0IHByZWZpeCAiKiAiKSkKKyAgICAgICgibGlzdF9tYXJr
ZXJfZG90IgorICAgICAgIChsZXQgKChudW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9k
ZS10ZXh0IG1hcmtlciB0KSkpKQorICAgICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1z
dHJpbmcgKDErIG51bSkpICIuICIpKSkKKyAgICAgICgibGlzdF9tYXJrZXJfcGFyZW50aGVzaXMi
CisgICAgICAgKGxldCAoKG51bSAoc3RyaW5nLXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQg
bWFya2VyIHQpKSkpCisgICAgICAgICAoY29uY2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAo
MSsgbnVtKSkgIikgIikpKQorICAgICAgKF8gKGNvbmNhdCBwcmVmaXggIi0gIikpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tbmV3LW1hcmtlci1mb3ItbGluZSAoaXRlbSkKKyAgIlJldHVybiB0
aGUgbWFya2VyIHN0cmluZyBmb3IgYSBuZXcgaXRlbSBmb2xsb3dpbmcgSVRFTS4KK1doZW4gdGhl
IGN1cnJlbnQgbGluZSBoYXMgYSBsaXN0IG1hcmtlciBwYXR0ZXJuIGF0IGEgZGlmZmVyZW50Citp
bmRlbnRhdGlvbiB0aGFuIElURU0gKGUuZy4sIGEgbmVzdGVkIG1hcmtlciB0aGF0IHRoZSBncmFt
bWFyIGRpZAorbm90IHJlY29nbml6ZSBhcyBhIGxpc3RfaXRlbSksIHVzZSB0aGUgY3VycmVudCBs
aW5lJ3MgbWFya2VyLgorT3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRzLS1saXN0
LWl0ZW0tbmV3LW1hcmtlcicuIgorICAobGV0ICgobWFya2VyLW5vZGUgKHRyZWVzaXQtbm9kZS1j
aGlsZCBpdGVtIDApKSkKKyAgICAoaWYgKD0gKGxpbmUtbnVtYmVyLWF0LXBvcykKKyAgICAgICAg
ICAgIChsaW5lLW51bWJlci1hdC1wb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXItbm9kZSkp
KQorICAgICAgICA7OyBJdGVtJ3MgbWFya2VyIGlzIG9uIHRoZSBjdXJyZW50IGxpbmU6IHVzZSBp
dCBub3JtYWxseS4KKyAgICAgICAgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBp
dGVtKQorICAgICAgOzsgSXRlbSdzIG1hcmtlciBpcyBvbiBhIGRpZmZlcmVudCBsaW5lLiAgVGhl
IHBhcnNlciBtYXkgaGF2ZQorICAgICAgOzsgZmFpbGVkIHRvIHJlY29nbml6ZSBhIG5lc3RlZCBt
YXJrZXIgKGUuZy4sIGEgbG9uZSBgICAtICcKKyAgICAgIDs7IHBhcnNlZCBhcyBhIHNldGV4dCBo
ZWFkaW5nKS4gIFJlYWQgdGhlIGN1cnJlbnQgbGluZS4KKyAgICAgIChsZXQgKChsaW5lIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAobGluZS1iZWdp
bm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKSkKKyAgICAgICAgKGlmIChzdHJp
bmctbWF0Y2gKKyAgICAgICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpXFwoWy0qK10gXFx8
XFwoWzAtOV0rXFwpXFwoWy4pXSBcXClcXCkiCisgICAgICAgICAgICAgbGluZSkKKyAgICAgICAg
ICAgIChsZXQgKChpbmRlbnQgKG1hdGNoLXN0cmluZyAxIGxpbmUpKQorICAgICAgICAgICAgICAg
ICAgKG51bSAobWF0Y2gtc3RyaW5nIDMgbGluZSkpCisgICAgICAgICAgICAgICAgICAoc3VmZml4
IChtYXRjaC1zdHJpbmcgNCBsaW5lKSkKKyAgICAgICAgICAgICAgICAgICh1bm9yZGVyZWQgKG1h
dGNoLXN0cmluZyAyIGxpbmUpKSkKKyAgICAgICAgICAgICAgKGlmIG51bQorICAgICAgICAgICAg
ICAgICAgKGNvbmNhdCBpbmRlbnQgKG51bWJlci10by1zdHJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoMSsgKHN0cmluZy10by1udW1iZXIgbnVtKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN1ZmZpeCkKKyAgICAgICAgICAgICAgICAoY29uY2F0IGluZGVudCB1
bm9yZGVyZWQpKSkKKyAgICAgICAgICA7OyBObyBtYXJrZXIgcGF0dGVybiBvbiBjdXJyZW50IGxp
bmU6IHVzZSBpdGVtJ3MgbWFya2VyLgorICAgICAgICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVt
LW5ldy1tYXJrZXIgaXRlbSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpbmUtYmxvY2st
cXVvdGUtZGVwdGggKCZvcHRpb25hbCBwb3MpCisgICJDb3VudCB0aGUgbnVtYmVyIG9mIGA+JyBi
bG9jayBxdW90ZSBtYXJrZXJzIG9uIHRoZSBsaW5lIGF0IFBPUy4iCisgIChzYXZlLWV4Y3Vyc2lv
bgorICAgICh3aGVuIHBvcyAoZ290by1jaGFyIHBvcykpCisgICAgKGJlZ2lubmluZy1vZi1saW5l
KQorICAgIChsZXQgKChjb3VudCAwKSkKKyAgICAgICh3aGlsZSAoYW5kIChub3QgKGVvbHApKQor
ICAgICAgICAgICAgICAgICAgKG1lbXEgKGNoYXItYWZ0ZXIpICcoPz4gP1xzID9cdCkpKQorICAg
ICAgICAod2hlbiAoZXEgKGNoYXItYWZ0ZXIpID8+KQorICAgICAgICAgIChzZXRxIGNvdW50ICgx
KyBjb3VudCkpKQorICAgICAgICAoZm9yd2FyZC1jaGFyIDEpKQorICAgICAgY291bnQpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLW5ld2xpbmUgKCkKKyAgIkluc2VydCBhIG5ld2xpbmUsIGNvbnRp
bnVpbmcgdGhlIGN1cnJlbnQgY29udGV4dC4KK0luc2lkZSBhIGxpc3QgaXRlbSwgdGhlIG5ldyBs
aW5lIGlzIGluZGVudGVkIHRvIHRoZSBpdGVtJ3MgdGV4dAorY29sdW1uIHNvIHRoZSBwYXJhZ3Jh
cGggY29udGludWVzLiAgQSBzZWNvbmQgUkVUIG9uIGEgYmxhbmsKK2NvbnRpbnVhdGlvbiBsaW5l
IHJlbW92ZXMgdGhlIGluZGVudGF0aW9uLCBkcm9wcGluZyBwb2ludCB0bworY29sdW1uIDAgc28g
dGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgZW5kcyB0aGUgbGlzdC4KK0luc2lkZSBhIGJsb2NrIHF1
b3RlLCB0aGUgbmV3IGxpbmUgaW5jbHVkZXMgdGhlIHF1b3RlIHByZWZpeC4KK090aGVyd2lzZSwg
aW5zZXJ0IGEgcGxhaW4gbmV3bGluZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChub2Rl
ICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2st
dG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkKKyAg
ICAgICAgIDs7IFRyZWUtc2l0dGVyIG1heSByZXBvcnQgYSBub2RlIGluc2lkZSBhIGJsb2NrX3F1
b3RlIGV2ZW4KKyAgICAgICAgIDs7IHdoZW4gcG9pbnQgaXMgb24gYSBibGFuayBsaW5lIHBhc3Qg
dGhlIHF1b3RlICh0aGUgbm9kZQorICAgICAgICAgOzsgc3BhbiBjYW4gZXh0ZW5kIGJleW9uZCB0
aGUgYD4nIGxpbmVzKS4gIE9ubHkgdHJlYXQgdGhlCisgICAgICAgICA7OyBsaW5lIGFzIGluc2lk
ZSBhIGJsb2NrIHF1b3RlIGlmIGl0IGFjdHVhbGx5IHN0YXJ0cyB3aXRoCisgICAgICAgICA7OyBh
IGA+JyBtYXJrZXIuCisgICAgICAgICAoaW4tYnEgKGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwg
bm9kZSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAo
aXRlbSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAg
IChpdGVtCisgICAgICAobGV0KiAoKGNvbCAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS10ZXh0LWNv
bHVtbiBpdGVtKSkKKyAgICAgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxIChtYXJrZG93
bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkpCisgICAgICAgICAgICAgOzsgYGNvbCcgaXMgdGhl
IGFic29sdXRlIGNvbHVtbiBvZiB0aGUgaXRlbSdzIHRleHQsCisgICAgICAgICAgICAgOzsgd2hp
Y2ggaW5zaWRlIGEgYmxvY2sgcXVvdGUgaW5jbHVkZXMgdGhlICI+ICIgcHJlZml4CisgICAgICAg
ICAgICAgOzsgd2lkdGguICBTaW5jZSB3ZSBpbnNlcnQgYGJxLXByZWZpeCcgc2VwYXJhdGVseSwg
d2UKKyAgICAgICAgICAgICA7OyBtdXN0IHN1YnRyYWN0IGl0cyBsZW5ndGggdG8gYXZvaWQgZG91
YmxpbmcgaXQuCisgICAgICAgICAgICAgKGluZGVudCAoLSBjb2wgKGxlbmd0aCAob3IgYnEtcHJl
Zml4ICIiKSkpKQorICAgICAgICAgICAgIDs7IFRoZSBjdXJyZW50IGxpbmUgaXMgImJsYW5rIiBp
ZiBpdCBjb250YWlucyBvbmx5CisgICAgICAgICAgICAgOzsgd2hpdGVzcGFjZSAob3IgcXVvdGUg
cHJlZml4ICsgd2hpdGVzcGFjZSkgYW5kIG5vCisgICAgICAgICAgICAgOzsgYWN0dWFsIHRleHQg
ZnJvbSBhIHByZXZpb3VzIFJFVCdzIGNvbnRpbnVhdGlvbiBpbmRlbnQuCisgICAgICAgICAgICAg
KGJsYW5rLWxpbmUtcCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9v
a2luZy1hdC1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXls+IFx0XSokIikpKQor
ICAgICAgICAgICAgIDs7IFBvaW50IGlzIGJlZm9yZSB0aGUgaXRlbSdzIHRleHQgKGF0IG9yIGJl
Zm9yZSB0aGUKKyAgICAgICAgICAgICA7OyBtYXJrZXIpLiAgQSBwbGFpbiBuZXdsaW5lIGlzIGFw
cHJvcHJpYXRlIGhlcmUsIGFkZGluZworICAgICAgICAgICAgIDs7IGNvbnRpbnVhdGlvbiBpbmRl
bnQgd291bGQgc2hpZnQgdGhlIGV4aXN0aW5nIGNvbnRlbnQKKyAgICAgICAgICAgICA7OyB0byB0
aGUgcmlnaHQuCisgICAgICAgICAgICAgKGJlZm9yZS10ZXh0LXAgKDw9IChjdXJyZW50LWNvbHVt
bikgY29sKSkpCisgICAgICAgIChjb25kCisgICAgICAgICAoYmxhbmstbGluZS1wCisgICAgICAg
ICAgOzsgVGhlIHVzZXIgcHJlc3NlZCBSRVQgb24gYW4gYWxyZWFkeS1ibGFuayBjb250aW51YXRp
b24KKyAgICAgICAgICA7OyBsaW5lLiAgSW5zdGVhZCBvZiBhZGRpbmcgeWV0IGFub3RoZXIgaW5k
ZW50ZWQgYmxhbmsKKyAgICAgICAgICA7OyBsaW5lLCByZW1vdmUgdGhlIGluZGVudGF0aW9uIGFu
ZCBpbnNlcnQgYSBwbGFpbgorICAgICAgICAgIDs7IG5ld2xpbmUuICBUaGlzIGRyb3BzIHBvaW50
IHRvIGNvbHVtbiAwLCB3aGljaCBpcyB0aGUKKyAgICAgICAgICA7OyBvbmx5IHdheSB0aGUgdHJl
ZS1zaXR0ZXIgbWFya2Rvd24gZ3JhbW1hciBlbmRzIGEgbGlzdDoKKyAgICAgICAgICA7OyBibGFu
ayBsaW5lcyBhbG9uZSBkbyBOT1QgZW5kIGEgbGlzdCwgb25seQorICAgICAgICAgIDs7IG5vbi1p
bmRlbnRlZCBjb250ZW50IGRvZXMuICBTbyB0aGlzIGdpdmVzIHRoZSB1c2VyIGEKKyAgICAgICAg
ICA7OyBuYXR1cmFsICJSRVQgUkVUIHRvIGV4aXQgdGhlIGxpc3QiIHdvcmtmbG93LgorICAgICAg
ICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBv
c2l0aW9uKSkKKyAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAoYmVmb3JlLXRleHQtcAor
ICAgICAgICAgIDs7IFBvaW50IGlzIG9uIG9yIGJlZm9yZSB0aGUgbGlzdCBtYXJrZXI7IGp1c3Qg
aW5zZXJ0IGEKKyAgICAgICAgICA7OyBwbGFpbiBuZXdsaW5lIHNvIHRoZSBpdGVtIGlzIHB1c2hl
ZCBkb3duIHVuY2hhbmdlZC4KKyAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAodAorICAg
ICAgICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAg
ICAgICAgICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAgICAgIChp
bnNlcnQgKG1ha2Utc3RyaW5nIGluZGVudCA/XHMpKSkpKSkKKyAgICAgKGluLWJxCisgICAgICAo
bGV0ICgoYnEtcHJlZml4IChtYXJrZG93bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkKKyAgICAg
ICAgICAgIDs7IEEgbGluZSB3aXRoIG9ubHkgcXVvdGUgbWFya2VycyBhbmQgd2hpdGVzcGFjZSAo
ZS5nLiwKKyAgICAgICAgICAgIDs7ICI+ICIpIGlzICJibGFuayIgaW5zaWRlIHRoZSBxdW90ZS4g
IFJFVCBoZXJlIGV4aXRzIHRoZQorICAgICAgICAgICAgOzsgcXVvdGUsIHNhbWUgYXMgUkVUIG9u
IGEgYmxhbmsgY29udGludWF0aW9uIGxpbmUgZXhpdHMgYQorICAgICAgICAgICAgOzsgbGlzdDog
cmVtb3ZlIHRoZSBwcmVmaXggYW5kIGRyb3AgdG8gY29sdW1uIDAuCisgICAgICAgICAgICAoYmxh
bmstbGluZS1wIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChi
ZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1h
dC1wICJeWz4gXHRdKiQiKSkpKQorICAgICAgICAoaWYgYmxhbmstbGluZS1wCisgICAgICAgICAg
ICAocHJvZ24KKyAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5uaW5nLXBv
c2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKQorICAgICAgICAgICAgICAobmV3bGluZSkpCisg
ICAgICAgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQor
ICAgICAgICAgIChpbnNlcnQgYnEtcHJlZml4KSkpKQorICAgICA7OyBEZWZhdWx0OiBwbGFpbiBu
ZXdsaW5lLiAgVGhpcyBhbHNvIGhhbmRsZXMgZW1wdHkgbGlzdCBtYXJrZXJzCisgICAgIDs7IChl
LmcuLCAiLSAiIHdpdGggbm8gdGV4dCkgdGhhdCB0aGUgZ3JhbW1hciBwYXJzZXMgYXMgRVJST1IK
KyAgICAgOzsgbm9kZXMgcmF0aGVyIHRoYW4gbGlzdF9pdGVtIG5vZGVzLgorICAgICA7OworICAg
ICA7OyBXaGVuIHRoZSBjdXJyZW50IGxpbmUgaXMgYmxhbmsgKHdoaXRlc3BhY2Ugb25seSksIGl0
IGlzIGEKKyAgICAgOzsgY29udGludWF0aW9uLWluZGVudCBsaW5lIGxlZnQgYnkgYSBwcmV2aW91
cyBSRVQgdGhhdAorICAgICA7OyB0cmVlLXNpdHRlciBubyBsb25nZXIgY29uc2lkZXJzIHBhcnQg
b2YgYSBsaXN0X2l0ZW0uICBDbGVhcgorICAgICA7OyB0aGUgd2hpdGVzcGFjZSBzbyBubyB0cmFp
bGluZyBzcGFjZXMgcmVtYWluLCBhbmQgaW5zZXJ0IGEKKyAgICAgOzsgcGxhaW4gbmV3bGluZSBh
dCBjb2x1bW4gMCB0byBleGl0IHRoZSBsaXN0IGNvbnRleHQuCisgICAgICh0CisgICAgICAod2hl
biAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAg
ICAgICAgICAgICAobG9va2luZy1hdC1wICJeWyBcdF0rJCIpKQorICAgICAgICAoZGVsZXRlLXJl
Z2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAg
ICAgKG5ld2xpbmUpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSAo
KQorICAiSW5zZXJ0IGEgbmV3IGxpc3QgaXRlbSwgc3BsaXR0aW5nIHRleHQgYXQgcG9pbnQuCitU
ZXh0IGFmdGVyIHBvaW50IG1vdmVzIHRvIHRoZSBuZXcgaXRlbS4gIEF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBsaW5lLAorYW4gZW1wdHkgaXRlbSBpcyBpbnNlcnRlZCBhYm92ZSBhbmQgdGhlIGN1cnJl
bnQgY29udGVudCBpcyBwdXNoZWQgZG93bi4KK0luc2lkZSBhIGJsb2NrIHF1b3RlLCB0aGUgbmV3
IGxpbmUgaW5jbHVkZXMgdGhlIHF1b3RlIHByZWZpeC4KK0ZvciBvcmRlcmVkIGxpc3RzLCB0aGUg
bnVtYmVyIGlzIGluY3JlbWVudGVkLgorV2hlbiBub3QgaW5zaWRlIGEgbGlzdCwgZmFsbCBiYWNr
IHRvIGBtYXJrZG93bi10cy1uZXdsaW5lJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChu
b2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJh
Y2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkK
KyAgICAgICAgIChpbi1icSAoYW5kICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9j
a19xdW90ZVxcJyIpCisgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAg
ICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAg
ICAgICAobG9va2luZy1hdC1wICJbIFx0XSo+IikpKSkKKyAgICAgICAgIChicS1wcmVmaXggKHdo
ZW4gaW4tYnEgKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKSkKKyAgICAgICAgIChp
dGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkpCisgICAgKGNvbmQKKyAgICAg
KChhbmQgaXRlbQorICAgICAgICAgICAob3IgKG5vdCBpbi1icSkKKyAgICAgICAgICAgICAgICg+
PSAobWFya2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUtZGVwdGgpCisgICAgICAgICAgICAgICAg
ICAgKG1hcmtkb3duLXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoCisgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkpKSkK
KyAgICAgIChsZXQqICgobmV3LW1hcmtlciAobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxp
bmUgaXRlbSkpCisgICAgICAgICAgICAgKGF0LWJvbCAoPD0gKGN1cnJlbnQtY29sdW1uKQorICAg
ICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY3VycmVudC1jb2x1bW4pKSkpCisgICAgICAgICAgICAgKHRhaWwgKHdoZW4gKGFuZCAobm90
IGF0LWJvbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGxvb2tpbmctYXQt
cCAiWyBcdF0qJCIpKSkKKyAgICAgICAgICAgICAgICAgICAgIChkZWxldGUtYW5kLWV4dHJhY3Qt
cmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSAobGluZS1lbmQtcG9zaXRpb24p
KSkpKQorICAgICAgICAoaWYgYXQtYm9sCisgICAgICAgICAgICA7OyBBdCBCT0w6IGluc2VydCBl
bXB0eSBpdGVtIGFib3ZlLCBwdXNoIGN1cnJlbnQgbGluZSBkb3duLgorICAgICAgICAgICAgKHBy
b2duCisgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKHdo
ZW4gYnEtcHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAgICAgKGluc2VydCBu
ZXctbWFya2VyICJcbiIpCisgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0aW9uKSkKKyAg
ICAgICAgICA7OyBNaWQtbGluZSBvciBFT0w6IG5ldyBpdGVtIGJlbG93IHdpdGggdGFpbCB0ZXh0
LgorICAgICAgICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGlu
ZSkKKyAgICAgICAgICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAg
ICAgIChpbnNlcnQgbmV3LW1hcmtlcikKKyAgICAgICAgICAod2hlbiB0YWlsIChzYXZlLWV4Y3Vy
c2lvbiAoaW5zZXJ0IChzdHJpbmctdHJpbS1sZWZ0IHRhaWwpKSkpKSkpCisKKyAgICAgOzsgTm90
IGluIGEgbGlzdDogZmFsbCBiYWNrIHRvIG5ld2xpbmUgYmVoYXZpb3IuCisgICAgICh0IChtYXJr
ZG93bi10cy1uZXdsaW5lKSkpKSkKKworOzs7IEZpbGxpbmc6CisKKyhkZWZjb25zdCBtYXJrZG93
bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICcoWyhmZW5jZWRfY29kZV9ibG9j
aykgKGluZGVudGVkX2NvZGVfYmxvY2spIChwaXBlX3RhYmxlKV0gQGJsb2NrKQorICAiVHJlZS1z
aXR0ZXIgcXVlcnkgbWF0Y2hpbmcgYmxvY2tzIHdoZXJlIGZpbGxpbmcgaXMgaW5oaWJpdGVkLiIp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIChpdGVtKQorICAi
UmV0dXJuIHRoZSBjb2x1bW4gd2hlcmUgdGhlIHRleHQgb2YgbGlzdCBJVEVNIHN0YXJ0cy4KK1Ro
aXMgaXMgdGhlIGNvbHVtbiBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoIG5vZGUgaW5zaWRlIElURU0s
IG9yCit0aGUgd2lkdGggb2YgdGhlIGxpc3QgbWFya2VyIGlmIG5vIHBhcmFncmFwaCBpcyBmb3Vu
ZC4iCisgIChsZXQgKChwYXJhZ3JhcGggKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxg
cGFyYWdyYXBoXFwnIikpKQorICAgIChpZiBwYXJhZ3JhcGgKKyAgICAgICAgKHNhdmUtZXhjdXJz
aW9uCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHBhcmFncmFwaCkp
CisgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgIChsZXQgKChtYXJrZXIgKHRyZWVz
aXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQgbWFy
a2VyKQorICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIChpdGVtIGp1c3RpZnkpCisgICJGaWxsIHRo
ZSBjb250ZW50cyBvZiBsaXN0IElURU0sIHByZXNlcnZpbmcgaXRzIGluZGVudGF0aW9uLgorTmFy
cm93cyB0byBJVEVNJ3Mgb3duIHBhcmFncmFwaCBjb250ZW50IChleGNsdWRpbmcgbmVzdGVkIGxp
c3RzKQorYW5kIHNldHMgYGZpbGwtcHJlZml4JyB0byBhbGlnbiBjb250aW51YXRpb24gbGluZXMg
d2l0aCB0aGUgc3RhcnQKK29mIHRoZSBpdGVtJ3MgdGV4dC4gIEpVU1RJRlkgaXMgYXMgaW4gYGZp
bGwtcGFyYWdyYXBoJy4iCisgIChsZXQqICgoZmlsbC1wcmVmaXggKG1ha2Utc3RyaW5nIChtYXJr
ZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID9ccykpCisgICAgICAgICA7OyBGaW5kIHRoZSBpdGVtJ3Mgb3duIHBh
cmFncmFwaCAoZmlyc3QgcGFyYWdyYXBoIGNoaWxkKS4KKyAgICAgICAgIDs7IElmIHRoZSBpdGVt
IGhhcyBuZXN0ZWQgbGlzdHMsIG5hcnJvdyB0byBqdXN0IHRoZQorICAgICAgICAgOzsgcGFyYWdy
YXBoIHNvIHdlIGRvbid0IG1lcmdlIG5lc3RlZCBpdGVtcy4KKyAgICAgICAgIChwYXJhICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlIGl0ZW0gIlxcYHBhcmFncmFwaFxcJyIgbmlsIG5pbCAxKSkKKyAg
ICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAgICAgIChlbmQgKGlm
IHBhcmEKKyAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHBhcmEpCisgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpKQorICAgICAgICAgOzsgVXNlIGRlZmF1
bHQgcGFyYWdyYXBoIG1vdGlvbiBpbnNpZGUgdGhlIG5hcnJvd2VkIHJlZ2lvbgorICAgICAgICAg
Ozsgc28gdGhhdCB0aGUgaW5uZXIgYGZpbGwtcGFyYWdyYXBoJyBkb2VzIG5vdCByZS1lbnRlciBv
dXIKKyAgICAgICAgIDs7IGN1c3RvbSBwYXJhZ3JhcGgtZmluZGluZyBsb2dpYy4KKyAgICAgICAg
IChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgpKQor
ICAgIChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQor
ICAgICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgIDs7IFJldHVybiBub24tbmlsIHRv
IHNpZ25hbCB0aGF0IGZpbGxpbmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICA7OyBhcyBwZXIgdGhl
IGNvbnRyYWN0IG9mIGBmaWxsLXBhcmFncmFwaC1mdW5jdGlvbicuCisgICAgdCkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCAoKQorICAiUmV0dXJuIHRoZSBmaWxsIHByZWZp
eCBmb3IgdGhlIGN1cnJlbnQgbGluZSBpbiBNYXJrZG93bi4KK1doZW4gaW5zaWRlIGEgbGlzdCBp
dGVtLCByZXR1cm4gc3BhY2VzIG1hdGNoaW5nIHRoZSBjb2x1bW4gd2hlcmUKK3RoZSBpdGVtJ3Mg
dGV4dCBzdGFydHMuIgorICAoYW5kLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAg
ICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9p
bnQpKQorICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChpdGVt
ICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAgKG1h
a2Utc3RyaW5nIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pID9ccykp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGggKGFyZykKKyAg
Ik1vdmUgZm9yd2FyZCBieSBBUkcgcGFyYWdyYXBocywgcmVzcGVjdGluZyBNYXJrZG93biBzdHJ1
Y3R1cmUuCitMaXN0IGl0ZW1zIGFyZSB0cmVhdGVkIGFzIGluZGl2aWR1YWwgcGFyYWdyYXBocy4g
IEJsb2NrcyBtYXRjaGVkCitieSBgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1x
dWVyeScgYXJlIHNraXBwZWQ6IGJvdGgKK2ZvcndhcmQgYW5kIGJhY2t3YXJkIG1vdGlvbiBtb3Zl
IHRvIHRoZSBlbmQgb2YgdGhlIGJsb2NrLCBzbworYGZpbGwtcmVnaW9uJyBzZWVzIGEgemVyby1s
ZW5ndGggcmVnaW9uIGFuZCBsZWF2ZXMgdGhlIGJsb2NrCit1bmZpbGxlZC4iCisgIChsZXQgKChk
aXJlY3Rpb24gKGlmICg+IGFyZyAwKSAxIC0xKSkKKyAgICAgICAgKGNvdW50IChhYnMgYXJnKSkK
KyAgICAgICAgKG1vdmVkIDApKQorICAgIChkb3RpbWVzIChfIGNvdW50KQorICAgICAgOzsgRm9y
IGJhY2t3YXJkIG1vdGlvbiwgc2tpcCBiYWNrIG92ZXIgd2hpdGVzcGFjZSB0byBmaW5kCisgICAg
ICA7OyB0aGUgaXRlbSB3ZSBhcmUgbGVhdmluZywgbm90IHRoZSBuZXh0IG9uZS4KKyAgICAgIChs
ZXQqICgocG9zIChpZiAoPCBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJk
ICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAobWF4IChwb2ludC1taW4pICgxLSAo
cG9pbnQpKSkpCisgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChi
bG9jayAoY2FyICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zICgxKyBwb3MpKSkpCisgICAgICAgICAgICAgKGluZGVu
dGVkLXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdv
dG8tY2hhciBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVu
dGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAgICAg
ICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IGluZGVudGVkLXBvcyAnbWFya2Rvd24pKQorICAg
ICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1c
XCciKSkpCisgICAgICAgIDs7IFdoZW4gbW92aW5nIGZvcndhcmQgZnJvbSB3aGl0ZXNwYWNlIGJl
dHdlZW4gbGlzdCBpdGVtcywKKyAgICAgICAgOzsgc2tpcCB0byB0aGUgbmV4dCBub24tYmxhbmsg
cG9zaXRpb24gYW5kIGNoZWNrIGFnYWluLgorICAgICAgICAod2hlbiAoYW5kIChub3QgaXRlbSkg
KG5vdCBibG9jaykgKD4gZGlyZWN0aW9uIDApKQorICAgICAgICAgIChsZXQgKChuZXh0LXBvcyAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1m
b3J3YXJkICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQor
ICAgICAgICAgICAgKHNldHEgbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJrZG93
bikpCisgICAgICAgICAgICAoc2V0cSBpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJc
XGBsaXN0X2l0ZW1cXCciKSkpKQorICAgICAgICAoY29uZAorICAgICAgICAgOzsgSW5zaWRlIGFu
IHVuZmlsbGFibGUgYmxvY2s6IHNraXAgb3ZlciBpdCBlbnRpcmVseS4KKyAgICAgICAgIChibG9j
aworICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgKGNkciBibG9jaykpKQor
ICAgICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKQorICAgICAgICAgOzsgSW5zaWRlIGEg
bGlzdCBpdGVtOiB0cmVhdCBhcyBwYXJhZ3JhcGggYm91bmRhcnkuCisgICAgICAgICAoaXRlbQor
ICAgICAgICAgIChpZiAoPiBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLWVuZCBpdGVtKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1zdGFydCBpdGVtKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkpCisg
ICAgICAgICA7OyBEZWZhdWx0OiB1c2Ugc3RhbmRhcmQgcGFyYWdyYXBoIG1vdGlvbi4KKyAgICAg
ICAgICh0CisgICAgICAgICAgKGZvcndhcmQtcGFyYWdyYXBoIGRpcmVjdGlvbikKKyAgICAgICAg
ICAoc2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkpKSkKKyAgICA7OyBSZXR1cm4gdGhlIG51bWJlciBv
ZiBwYXJhZ3JhcGhzIGxlZnQgdG8gbW92ZSAoMCA9IGFsbCBkb25lKS4KKyAgICAoLSBjb3VudCBt
b3ZlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwg
anVzdGlmeSkKKyAgIkZpbGwgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCByZXNwZWN0aW5nIE1hcmtk
b3duIGJsb2NrIHN0cnVjdHVyZS4KK1RoaXMgZnVuY3Rpb24gcHJldmVudHMgZmlsbGluZyBpbnNp
ZGUgYmxvY2tzIG1hdGNoZWQgYnkKK2BtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2Nr
LXF1ZXJ5JywgYW5kIGZpbGxzIHdpdGhpbiBsaXN0CitpdGVtcyB3aXRob3V0IG1lcmdpbmcgYWRq
YWNlbnQgaXRlbXMuICBKVVNUSUZZIGlzIGFzIGluCitgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGNv
bmQqCisgICA7OyBEb24ndCBmaWxsIGluc2lkZSB1bmZpbGxhYmxlIGJsb2Nrcy4gIFVzZSBhIHF1
ZXJ5IGFnYWluc3QgdGhlCisgICA7OyByb290IG5vZGUgYmVjYXVzZSBgdHJlZXNpdC1ub2RlLWF0
JyBtYXkgbm90IHJldHVybiBhIG5vZGUKKyAgIDs7IGluc2lkZSB0aGUgYmxvY2sgd2hlbiBwb2lu
dCBpcyBvbiBhbm9ueW1vdXMgKHVubmFtZWQpIHRleHQuCisgICAoKHRyZWVzaXQtcXVlcnktY2Fw
dHVyZQorICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgbWFy
a2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAocG9pbnQpIChtaW4g
KDErIChwb2ludCkpIChwb2ludC1tYXgpKSkKKyAgICB0KQorICAgOzsgRmlsbCB3aXRoaW4gdGhl
IGVuY2xvc2luZyBsaXN0IGl0ZW0uICBVc2UKKyAgIDs7IGBtYXJrZG93bi10cy0tbGlzdC1pdGVt
LWF0LXBvaW50JyB3aGljaCBoYW5kbGVzIGJsb2NrIHF1b3RlCisgICA7OyBtYXJrZXJzLiAgV2hl
biB0aGUgbGlzdCBpdGVtIGlzIGluc2lkZSBhIGJsb2NrIHF1b3RlLCBkZWxlZ2F0ZQorICAgOzsg
dG8gdGhlIGJsb2NrIHF1b3RlIGZpbGxlciB3aGljaCBoYW5kbGVzIGA+ICcgcHJlZml4ZXMgY29y
cmVjdGx5LgorICAgKChiaW5kLWFuZCogKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQt
cG9pbnQpKSkKKyAgICAoaWYgKHRyZWVzaXQtcGFyZW50LXVudGlsIGl0ZW0gIlxcYGJsb2NrX3F1
b3RlXFwnIikKKyAgICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkp
CisgICAgICAobWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIGl0ZW0ganVzdGlmeSkpKQorICAg
OzsgUG9pbnQgaXMgb24gYSBibGFuayBsaW5lIGJlZm9yZSBhIGxpc3QuICBJZiB0aGUgbmV4dAor
ICAgOzsgbm9uLXdoaXRlc3BhY2UgcG9zaXRpb24gZmFsbHMgaW5zaWRlIGEgbGlzdCBpdGVtLCBm
aWxsIHRoYXQgaXRlbS4KKyAgICgoc2F2ZS1leGN1cnNpb24KKyAgICAgIChiZWdpbm5pbmctb2Yt
bGluZSkKKyAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkKKyAgICAoYW5kLWxldCogKChu
ZXh0LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lw
LWNoYXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2lu
dCkpKQorICAgICAgICAgICAgICAgKG5leHQtbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9z
ICdtYXJrZG93bikpCisgICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwK
KyAgICAgICAgICAgICAgICAgICAgICBuZXh0LW5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAg
ICAgIChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBG
aWxsIHdpdGhpbiBhIGJsb2NrIHF1b3RlLiAgTmFycm93IHRvIHRoZSBwYXJhZ3JhcGggbm9kZSBh
dAorICAgOzsgcG9pbnQncyBuZXN0aW5nIGxldmVsIHNvIGxpbmVzIHdpdGggZGlmZmVyZW50IGA+
ICcgZGVwdGhzCisgICA7OyBhcmUgbm90IG1lcmdlZC4KKyAgICgodHJlZXNpdC1wYXJlbnQtdW50
aWwKKyAgICAgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRv
LWluZGVudGF0aW9uKSAocG9pbnQpKQorICAgICAgJ21hcmtkb3duKQorICAgICAiXFxgYmxvY2tf
cXVvdGVcXCciKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSBqdXN0aWZ5KSkK
KyAgIDs7IEZpbGwgd2l0aGluIGFuIEhUTUwgY29tbWVudC4gIFRoZSBub2RlIHR5cGUgaXMgImh0
bWxfYmxvY2siCisgICA7OyBpbiBncmFtbWFyIHYwLjQueCBhbmQgImNvbW1lbnQiIGluIHNvbWUg
b3RoZXIgdmVyc2lvbnMuCisgICAoKGJpbmQtYW5kKiAoYmxvY2sgKGxldCAoKG4gKHRyZWVzaXQt
bm9kZS1hdCAocG9pbnQpICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG9y
ICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICJc
XGBcXCg/Omh0bWxfYmxvY2tcXHxjb21tZW50XFwpXFwnIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYW5kIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoImh0bWxfYmxvY2siICJjb21tZW50IikpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKSkpKSkKKyAgICAobWFya2Rvd24tdHMt
LWZpbGwtaHRtbC1jb21tZW50IGJsb2NrIGp1c3RpZnkpKQorICAgOzsgRGVmYXVsdDogbGV0IGZp
bGwtcGFyYWdyYXBoIGhhbmRsZSBpdC4KKyAgICh0IG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLWZpbGwtaHRtbC1jb21tZW50IChub2RlIGp1c3RpZnkpCisgICJGaWxsIEhUTUwgY29tbWVu
dCBOT0RFLCBhbGlnbmluZyBjb250aW51YXRpb24gbGluZXMuCitSZXR1cm4gdCBpZiBOT0RFIGlz
IGEgY29tbWVudCBhbmQgd2FzIGZpbGxlZCwgbmlsIG90aGVyd2lzZS4KK0pVU1RJRlkgaXMgYXMg
aW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
IChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAobG9va2lu
Zy1hdC1wICI8IS0tIikpCisgICAgKGxldCAoKGZpbGwtcHJlZml4IChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBu
b2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKCsgKGN1cnJlbnQt
Y29sdW1uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3Ro
ICI8IS0tICIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XHMpKSkK
KyAgICAgICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgKGZpbGwt
Zm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAg
ICAoZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgIChzYXZlLXJlc3RyaWN0aW9u
CisgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAg
IChmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkKKyAgICAgIHQpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1ibG9jay1xdW90ZS1wcmVmaXggKCkKKyAgIlJldHVybiB0aGUgYmxvY2sgcXVvdGUgcHJl
Zml4IHN0cmluZyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuCitSZWFkIHRoZSBhY3R1YWwgYD4nIG1h
cmtlcnMgKHdpdGggd2hhdGV2ZXIgc3BhY2luZyB0aGUgdXNlciB3cm90ZSkKK2Zyb20gdGhlIGJl
Z2lubmluZyBvZiB0aGUgbGluZSBzbyB0aGF0IGZpbGwgcHJlc2VydmVzIHRoZSBleGlzdGluZwor
c3R5bGUgKGUuZy4sIGA+Pj4gJyBzdGF5cyBgPj4+ICcsIGA+ID4gPiAnIHN0YXlzIGA+ID4gPiAn
KS4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoaWYg
KGxvb2tpbmctYXQgIlxcKFs+IFx0XSo+XFwpWyBcdF0qIikKKyAgICAgICAgKGNvbmNhdCAobWF0
Y2gtc3RyaW5nIDApKQorICAgICAgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwt
YmxvY2stcXVvdGUgKGp1c3RpZnkpCisgICJGaWxsIHRoZSBwYXJhZ3JhcGggYXQgcG9pbnQgaW5z
aWRlIGEgYmxvY2sgcXVvdGUuCitGaW5kIHRoZSBwYXJhZ3JhcGggbm9kZSBhdCBwb2ludCB3aXRo
aW4gdGhlIGJsb2NrIHF1b3RlIGFuZCBmaWxsCitvbmx5IHRoYXQgcGFyYWdyYXBoLCBwcmVzZXJ2
aW5nIHRoZSBgPiAnIHByZWZpeC4gIFdoZW4gdGhlCitwYXJhZ3JhcGggaXMgaW5zaWRlIGEgbGlz
dCBpdGVtLCBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0aAordGhlIGl0ZW0ncyB0ZXh0IGNv
bHVtbi4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgIDs7IFNraXAgcGFz
dCBgPiAnIG1hcmtlcnMgYW5kIGFueSBsaXN0IG1hcmtlciB0byBsYW5kIGluc2lkZSB0aGUKKyAg
OzsgY29udGVudCwgd2hlcmUgdGhlIHBhcmFncmFwaCBub2RlIGxpdmVzLgorICAobGV0KiAoKGNv
bnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lu
bmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2Fy
ZCAiPiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB3ZSBsYW5kIG9uIGEgbGlz
dCBtYXJrZXIsIHNraXAgcGFzdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChs
b29raW5nLWF0ICJbLSorXSBcXHxbMC05XStbLildXHMiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAg
KG1pbiAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKSkKKyAgICAgICAgIChub2RlICh0cmVlc2l0
LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgIChwYXJhICh0cmVlc2l0
LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAg
ICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAicGFyYWdyYXBoIikp
KSkpCisgICAgKHdoZW4gcGFyYQorICAgICAgOzsgVGhlIGdyYW1tYXIgbWF5IGluY2x1ZGUgdHJh
aWxpbmcgYmxvY2tfY29udGludWF0aW9uIG5vZGVzCisgICAgICA7OyAoYmxhbmsgYD4gPicgbGlu
ZXMpIGFzIGNoaWxkcmVuIG9mIHRoZSBwYXJhZ3JhcGguICBVc2UgdGhlCisgICAgICA7OyBlbmQg
b2YgdGhlIGxhc3QgaW5saW5lIGNoaWxkIHNvIGZpbGwgZG9lcyBub3QgbWVyZ2UgYWNyb3NzCisg
ICAgICA7OyB3aGF0IHNob3VsZCBiZSBhIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgIChsZXQq
ICgobGFzdC1pbmxpbmUKKyAgICAgICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKGNoaWxkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxk
KSAiaW5saW5lIikpCisgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSAodHJlZXNpdC1u
b2RlLWNoaWxkcmVuIHBhcmEpKSkpCisgICAgICAgICAgICAgKHBhcmEtZW5kIChpZiBsYXN0LWlu
bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFzdC1p
bmxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkp
KQorICAgICAgICAgICAgIChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVm
aXgpKQorICAgICAgICAgICAgIDs7IFdoZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCBleHRlbmQgdGhl
IHByZWZpeCB3aXRoIHNwYWNlcworICAgICAgICAgICAgIDs7IHNvIGNvbnRpbnVhdGlvbiBsaW5l
cyBhbGlnbiB3aXRoIHRoZSBpdGVtJ3MgdGV4dC4KKyAgICAgICAgICAgICAobGlzdC1pdGVtICh0
cmVlc2l0LXBhcmVudC11bnRpbCBwYXJhICJcXGBsaXN0X2l0ZW1cXCciKSkKKyAgICAgICAgICAg
ICAocHJlZml4IChpZiBsaXN0LWl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0KiAo
KHRleHQtY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1pdGVtKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGV4dHJhIChtYXggMCAoLSB0ZXh0LWNvbCAobGVuZ3RoIGJx
LXByZWZpeCkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGJxLXByZWZp
eCAobWFrZS1zdHJpbmcgZXh0cmEgP1xzKSkpCisgICAgICAgICAgICAgICAgICAgICAgIGJxLXBy
ZWZpeCkpCisgICAgICAgICAgICAgKGFkYXB0aXZlLWZpbGwtZnVuY3Rpb24gbmlsKQorICAgICAg
ICAgICAgIChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3Jh
cGgpCisgICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIG5pbCkpCisgICAgICAg
IChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAgICAgOzsgTmFycm93IHRvIHRoZSBmdWxsIGxpbmVz
IG9mIHRoZSBwYXJhZ3JhcGggc28gdGhhdCB0aGUKKyAgICAgICAgICA7OyBgPiAnIG1hcmtlcnMg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaWxsIHJlZ2lvbi4KKyAgICAgICAgICAobmFycm93LXRvLXJl
Z2lvbgorICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAoZ290by1jaGFy
ICh0cmVlc2l0LW5vZGUtc3RhcnQgcGFyYSkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1s
aW5lKQorICAgICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgIHBhcmEtZW5kKQorICAgICAg
ICAgIChsZXQgKChmaWxsLXByZWZpeCBwcmVmaXgpKQorICAgICAgICAgICAgKGZpbGwtcGFyYWdy
YXBoIGp1c3RpZnkpKSkpKSkKKyAgdCkKKworOzs7IENvZGUgYmxvY2tzOgorCisoZGVmdmFyLWxv
Y2FsIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcyBuaWwKKyAgIkFsaXN0IG1hcHBp
bmcgbGFuZ3VhZ2Ugbm9kZSBuYW1lcyB0byB0cyBsYW5ndWFnZS4KK0lmIGEgbGFuZ3VhZ2UgaXMg
bm90IGEgdHMgbGFuZ3VhZ2Ugb3IgaXMgbm90IG1hcHBlZCB0byBvbmUsIGl0IHdpbGwgYmUKK2lu
IGBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMnLiIpCisKKyhkZWZ2YXItbG9j
YWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzIG5pbAorICAiQWxpc3QgbWFw
cGluZyBsYW5ndWFnZXMgdG8gbm9uLXRyZWUtc2l0dGVyIG1vZGVzIGZvciBjb2RlIGJsb2Nrcy4K
K1BvcHVsYXRlZCBieSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHRvIGlk
ZW50aWZ5IGEKK2NvZGUtYmxvY2sgbGFuZ3VhZ2UgbW9kZSB3aGljaCBpcyBub3QgYSB0cmVlLXNp
dHRlciBtb2RlIG9yIGZvciB3aGljaAordGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgaXMgdW5hdmFp
bGFibGUuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25m
aWd1cmF0aW9uIChtb2RlKQorICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWd1cmF0aW9uIGZy
b20gTU9ERS4KK1JldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1
ZXM6CiAKICAgICA6Zm9udC1sb2NrIChmcm9tIGB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncycp
CiAgICAgOnNpbXBsZS1pbmRlbnQgKGZyb20gYHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcycp
CiAgICAgOnJhbmdlIChmcm9tIGB0cmVlc2l0LXJhbmdlLXNldHRpbmdzJykiCiAgICh3aXRoLXRl
bXAtYnVmZmVyCi0gICAgKGZ1bmNhbGwgbW9kZSkKLSAgICAobGlzdCA6Zm9udC1sb2NrIHRyZWVz
aXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgKGRlbGF5LW1vZGUtaG9va3MgKGZ1bmNhbGwgbW9k
ZSkpCisgICAgKGxpc3QgOmxhbmd1YWdlICh0cmVlc2l0LWxhbmd1YWdlLWF0IChwb2ludC1taW4p
KQorICAgICAgICAgIDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKICAgICAg
ICAgICA6c2ltcGxlLWluZGVudCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKICAgICAgICAg
ICA6cmFuZ2UgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncykpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMt
LWFkZC1jb25maWctZm9yLW1vZGUgKGxhbmd1YWdlIG1vZGUpCi0gICJBZGQgY29uZmlndXJhdGlv
bnMgZm9yIExBTkdVQUdFIGZyb20gTU9ERSB0byBjdXJyZW50IGJ1ZmZlci4KLQotQ29uZmlndXJh
dGlvbiBpbmNsdWRlcyBmb250LWxvY2sgYW5kIGluZGVudC4gIEZvciBmb250LWxvY2sgcnVsZXMs
IHVzZQotdGhlIHNhbWUgZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIKLSAgKGxldCAoKGNvbmZp
Z3MgKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyBtb2RlKSkpCi0gICAgKGln
bm9yZSBsYW5ndWFnZSkgOyBXZSBtaWdodCBtYWtlIHVzZSBvZiB0aGlzIGxhdGVyLgotICAgIChz
ZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgKGFwcGVuZCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgOzsgR2V0IGFsbCB0aGUgZm9u
dC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0Ci0gICAgICAgICAgICAgICAgICA7
OyBkb24ndCBwZXJ0YWluIHRvIExBTkdVQUdFLiAgVGhpcyB3YXkgd2UgZ2V0IGpzZG9jCi0gICAg
ICAgICAgICAgICAgICA7OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFtcGxlLgotICAgICAgICAg
ICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpmb250LWxvY2spKSkKLSAgICAoc2V0cSB0cmVl
c2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKLSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtc2ltcGxl
LWluZGVudC1ydWxlcwotICAgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQgYWxsIGlu
ZGVudCBydWxlcy4KLSAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlncyA6c2ltcGxl
LWluZGVudCkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVudC1idWZmZXIg
KGNvbmZpZ3VyYXRpb24pCisgICJBZGQgQ09ORklHVVJBVElPTiB0byB0aGUgY3VycmVudCBidWZm
ZXIuCitDT05GSUdVUkFUSU9OIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50IHJ1bGVzLiAg
Rm9yIGZvbnQtbG9jayBydWxlcywKK3VzZSB0aGUgc2FtZSBmZWF0dXJlcyBlbmFibGVkIGluIE1P
REUuIgorICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgOzsgR2V0IGFsbCB0
aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0CisgICAgICAgICAgICAg
ICAgOzsgZG9uJ3QgcGVydGFpbiB0byBNT0RFLiAgVGhpcyB3YXksIHdlIGdldCBqc2RvYworICAg
ICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCisgICAgICAgICAg
ICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKSkKKyAgKHNldHEgdHJl
ZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgIChhcHBlbmQgdHJlZXNpdC1zaW1wbGUt
aW5kZW50LXJ1bGVzCisgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQgYWxsIGluZGVu
dCBydWxlcy4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOnNpbXBs
ZS1pbmRlbnQpKSkKICAgICAoc2V0cSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAg
KGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAgICAgICAgICA7OyBGaWx0
ZXIgb3V0IGZ1bmN0aW9uIHF1ZXJpZXMsIGJlY2F1c2UgdGhleSBhcmUKQEAgLTMwMiw1MiArMjM0
NCw0ODYgQEAgbWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUKICAgICAgICAgICAgICAg
ICAgIDs7IENhc2UgaW4gcG9pbnQ6IGMtdHMtbW9kZSdzIHJhbmdlIHNldHRpbmcuCiAgICAgICAg
ICAgICAgICAgICAoc2VxLWZpbHRlciAobGFtYmRhIChzZXR0aW5nKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobm90IChmdW5jdGlvbnAgKGNhciBzZXR0aW5nKSkpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpyYW5nZSkpKSkKLSAg
ICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50KQotICAg
IChzZXRxLWxvY2FsIGluZGVudC1yZWdpb24tZnVuY3Rpb24gIyd0cmVlc2l0LWluZGVudC1yZWdp
b24pKSkKLQotKGRlZnVuIG1hcmtkb3duLXRzLS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2Ug
KG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3Vy
YXRpb24gOnJhbmdlKSkpKQorICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5jdGlvbiAjJ3Ry
ZWVzaXQtaW5kZW50KQorICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0aW9uICMndHJl
ZXNpdC1pbmRlbnQtcmVnaW9uKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYW5ndWFnZS1hdC1u
b2RlIChub2RlKQorICAiUmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgZm9yIGNvZGVfZmVuY2Vf
Y29udGVudCBOT0RFLiIKKyAgKHdoZW4tbGV0KiAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVu
dCBub2RlKSkKKyAgICAgICAgICAgICAgKGxhbmctbm9kZSAod2hlbiBwYXJlbnQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGFu
Z3VhZ2VcXCciKSkpKQorICAgIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IGxhbmctbm9kZSB0
KSkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSAo
bWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwpCisgICJDYWNoZSBmb3Igbm9uLXRyZWUtc2l0
dGVyIGNvZGUgYmxvY2sgZm9udGlmaWNhdGlvbi4KK0tleXMgYXJlIChMQU5HIC4gQ09OVEVOVC1I
QVNIKSBjb25zIGNlbGxzLCB2YWx1ZXMgYXJlIGxpc3RzIG9mCitcKE9GRlNFVC1TVEFSVCBPRkZT
RVQtRU5EIEZBQ0UpIHRyaXBsZXMuIikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tbm9u
LXRzLWZvbnRpZnktY2FjaGUtdGljayBuaWwKKyAgIkZvciBibHVudCBgYnVmZmVyLWNoYXJzLW1v
ZGlmaWVkLXRpY2snIGNhY2hlIGludmFsaWRhdGlvbi4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZvbnRpZnktbm9uLXRzLWNvZGUtYmxvY2sgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0
IF8pCisgICJGb250aWZ5IGNvZGVfZmVuY2VfY29udGVudCBOT0RFIHVzaW5nIGEgbm9uLXRyZWUt
c2l0dGVyIG1vZGUuCitBcHBseSB0aGUgY29kZS1ibG9jayBtb2RlJ3MgY29udmVudGlvbmFsIGZv
bnQtbG9jayBpbiBhIHRlbXBvcmFyeQorYnVmZmVyLiAgT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5E
IGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4K
KworQ2FjaGUgcmVzdWx0cyB0byBhdm9pZCBmb250aWZpY2F0aW9uIG9mIHVuY2hhbmdlZCBjb2Rl
IGJsb2Nrcy4KKworTk9ERSBzaG91bGQgYWxyZWFkeSBoYXZlIHBhc3NlZCB0aHJvdWdoCitgbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHdoaWNoIG1heSBoYXZlIGNsYXNzaWZp
ZWQgdGhpcworbm9kZSBhcyBhIG5vbi10cyBtb2RlLiIKKyAgKHdoZW4tbGV0KiAoKGxhbmcgKG1h
cmtkb3duLXRzLS1sYW5ndWFnZS1hdC1ub2RlIG5vZGUpKQorICAgICAgICAgICAgICAobW9kZSAo
YWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAg
ICAgICAgICAgICAgKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrKSkKKyAgICAgICAg
ICAgICAgKGJsb2NrLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAg
ICAgIDs7IENhbm5vdCB1c2UgbWFya2VycyAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyCisg
ICAgICAgICAgICAgIDs7ICdtYXJrZG93bi10cy1jb2RlLWVuZC1tYXJrZXIgdGhleSBhcmUgc2V0
IGFmdGVyIHRoaXMKKyAgICAgICAgICAgICAgOzsgZnVuY3Rpb24gcnVucy4KKyAgICAgICAgICAg
ICAgKG5vZGUtc3RhcnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAo
bm9kZS1lbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
cG9pbnQpKSkpCisgICAgKHdoZW4gKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkKKyAgICAgICh1bmxl
c3MgKGVxIHRpY2sgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlLXRpY2spCisgICAg
ICAgIChjbHJoYXNoIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSkpCisgICAgICAo
bGV0KiAoKGNhY2hlLWtleSAoY29ucyBsYW5nIChzZWN1cmUtaGFzaAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3NoYTI1NgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKSBub2RlLXN0YXJ0IG5vZGUtZW5kKSkpCisgICAgICAg
ICAgICAgKHByb3BzCisgICAgICAgICAgICAgIChvciAoZ2V0aGFzaCBjYWNoZS1rZXkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSkK
KyAgICAgICAgICAgICAgICAgIChsZXQgKChyZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kZSBub2RlLXN0YXJ0IG5vZGUtZW5kKSkpCisgICAgICAgICAgICAg
ICAgICAgIChwdXRoYXNoIGNhY2hlLWtleSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUtdGljayB0aWNrKQor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQpKSkpCisgICAgICAgIChkb2xpc3QgKHJhbmdlIHBy
b3BzKQorICAgICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAg
ICAobnRoIDAgcmFuZ2UpCisgICAgICAgICAgIChudGggMSByYW5nZSkKKyAgICAgICAgICAgKG50
aCAyIHJhbmdlKQorICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpKSkpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2xsZWN0LWZhY2VzIChtb2RlIGJlZyBlbmQp
CisgICJSdW4gTU9ERSBvbiB0aGUgQkVHLi5FTkQgcmVnaW9uJ3MgdGV4dCBhbmQgaGFydmVzdCBm
YWNlIHByb3BlcnRpZXMuCitSZXR1cm4gYSBsaXN0IG9mIChCVUYtQkVHIEJVRi1FTkQgRkFDRSkg
dHJpcGxlcyBpbiBiYXNlLWJ1ZmZlcgorY29vcmRpbmF0ZXMuCisKK0ZvciBub24tdHJlZS1zaXR0
ZXIgbW9kZXMgdXNlIGFuIGluZGlyZWN0IGJ1ZmZlciBuYXJyb3dlZCB0byBCRUcuLkVORDoKK3Jl
Z2V4L3N5bnRhY3RpYyBmb250LWxvY2sgaG9ub3JzIG5hcnJvd2luZyBhbmQgdGhlIGluZGlyZWN0
IGJ1ZmZlcgorc2hhcmVzIHRleHQgd2l0aCB0aGUgYmFzZSwgc28gdGhpcyBpcyBsZXNzIGV4cGVu
c2l2ZSBhbmQgY29weS1mcmVlLgorCitGb3IgdHMgbW9kZXMgaW4gYG1hcmtkb3duLXRzLWNvZGUt
YmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzJywgZmFsbAorYmFjayB0byBhIHRlbXAgYnVm
ZmVyLiAgVHJlZS1zaXR0ZXIgcGFyc2VycyBpZ25vcmUgaW5kaXJlY3QtYnVmZmVyCituYXJyb3dp
bmcgYW5kIHBhcnNlIHRoZSBmdWxsIGJhc2UtYnVmZmVyIHRleHQ7IHRoZSBpbm5lciBjb250ZW50
IG9mIGEKK2ZlbmNlZCBjb2RlIGJsb2NrIGlzIGp1c3Qgb3BhcXVlIHRleHQgaW5zaWRlIGEgYGNv
ZGVfZmVuY2VfY29udGVudCcKK25vZGUsIG5ldmVyIHJlLXBhcnNlZCBhcyBhIGZyZXNoIGRvY3Vt
ZW50LiAgQSB0ZW1wIGJ1ZmZlciB3aXRoIGEgZnJlc2gKK3BhcnNlciBzZWVzIHRoZSBpbm5lciBj
b250ZW50IGFzIGEgc3RhbmRhbG9uZSBtYXJrZG93biBkb2N1bWVudCwgd2hpY2gKK2lzIHdoYXQg
d2Ugd2FudC4iCisgIChjb25kICgobWVtcSBtb2RlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stZm9y
Y2UtY29udmVudGlvbmFsLW1vZGVzKQorICAgICAgICAgKGxldCAoKGNvbnRlbnQgKGJ1ZmZlci1z
dWJzdHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkKKyAgICAgICAgICAgICAgIHJlcykKKyAg
ICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAoaW5zZXJ0IGNvbnRlbnQp
CisgICAgICAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAgICAgICAgIChsZXQgKCht
YXJrZG93bi10cy0tc2V0LXVwLWlubGluZSB0KSkKKyAgICAgICAgICAgICAgICAgKG1hcmtkb3du
LXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAg
ICAobGV0ICgocG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICh3aGlsZSAoPCBwb3Mg
KHBvaW50LW1heCkpCisgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1w
cm9wZXJ0eS1jaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBu
aWwgKHBvaW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZmFjZSAoZ2V0LXRleHQt
cHJvcGVydHkgcG9zICdmYWNlKSkpCisgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAg
ICAgICAgICAgICAgICAgICAgOzsgVHJhbnNsYXRlIHRlbXAtYnVmZmVyIG9mZnNldHMgYmFjayB0
byBiYXNlLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgOzsgcG9zaXRpb25zOiB0ZW1wIGBw
b2ludC1taW4nIGNvcnJlc3BvbmRzIHRvIEJFRy4KKyAgICAgICAgICAgICAgICAgICAgIChwdXNo
IChsaXN0ICgrIGJlZyAoMS0gcG9zKSkgKCsgYmVnICgxLSBuZXh0KSkgZmFjZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcykpCisgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5l
eHQpKSkpKQorICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAgICh0CisgICAgICAg
ICAobGV0ICgoaW5kaXJlY3QtYnVmZmVyIChtYWtlLWluZGlyZWN0LWJ1ZmZlcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAoYnVmZmVyLW5hbWUp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdpbmhpYml0LWJ1ZmZlci1o
b29rcykpCisgICAgICAgICAgICAgICByZXMpCisgICAgICAgICAgICh1bndpbmQtcHJvdGVjdAor
ICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAg
ICAgICAgICAgICAgIChkZWxheS1tb2RlLWhvb2tzIChmdW5jYWxsIG1vZGUpKQorICAgICAgICAg
ICAgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAgICAgICAgICAgICAgICAoZm9u
dC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBvcyAocG9pbnQtbWluKSkp
CisgICAgICAgICAgICAgICAgICAgKHdoaWxlICg8IHBvcyAocG9pbnQtbWF4KSkKKyAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgJ2ZhY2UgbmlsIChwb2ludC1tYXgp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWNlIChnZXQtdGV4dC1wcm9wZXJ0eSBw
b3MgJ2ZhY2UpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChwdXNoIChsaXN0IHBvcyBuZXh0IGZhY2UpIHJlcykpCisgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIHBvcyBuZXh0KSkpKSkKKyAgICAgICAgICAgICAoa2lsbC1i
dWZmZXIgaW5kaXJlY3QtYnVmZmVyKSkKKyAgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIChsYW5nKQorICAi
Q29tcHV0ZSBhbmQgY2FjaGUgYSBtb2RlIHN5bWJvbCBmcm9tIExBTkcsIGEgc3ltYm9sLgorQ29u
c3VsdCB0aGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFwJyBjYWNoZSwgb3IgY29uc3VsdAor
YHRyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdCcgYW5kIGBtYWpvci1tb2RlLXJlbWFwLWFs
aXN0Jywgb3IgYnJ1dGUKK2ZvcmNlIG1vZGUgcHJvYmUuICBSZXR1cm4gYSB2YWxpZCBtb2RlIHN5
bWJvbCBvciBuaWwuIgorICAoaWYtbGV0KiAoKG1hcHBlZC1tb2RlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKSkpCisgICAgICBtYXBwZWQtbW9kZQorICAgIChs
ZXQqICgobGFuZy1zdHJpbmcgKHN5bWJvbC1uYW1lIGxhbmcpKQorICAgICAgICAgICAobGFuZy1t
b2RlIChjb25jYXQgbGFuZy1zdHJpbmcgIi1tb2RlIikpCisgICAgICAgICAgIChtb2RlKSkKKyAg
ICAgIChpZiAoc2V0cSBtb2RlIChhbGlzdC1nZXQgbGFuZy1tb2RlIHRyZWVzaXQtbWFqb3ItbW9k
ZS1yZW1hcC1hbGlzdCkpCisgICAgICAgICAgbW9kZQorICAgICAgICAoaWYgKHNldHEgbW9kZSAo
YWxpc3QtZ2V0IGxhbmctbW9kZSBtYWpvci1tb2RlLXJlbWFwLWFsaXN0KSkKKyAgICAgICAgICAg
IG1vZGUKKyAgICAgICAgICAoY2F0Y2ggOm1vZGUKKyAgICAgICAgICAgIChkb2xpc3QgKG1vZGUK
KyAgICAgICAgICAgICAgICAgICAgIChsaXN0CisgICAgICAgICAgICAgICAgICAgICAgOzsgVHJ5
IGEgdHJlZXNpdCBtb2RlIHVzaW5nIHRoZSByYXcgc3RyaW5nLgorICAgICAgICAgICAgICAgICAg
ICAgIChjb25jYXQgbGFuZy1zdHJpbmcgIi10cy1tb2RlIikKKyAgICAgICAgICAgICAgICAgICAg
ICA7OyBUcnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmluZy4KKyAgICAg
ICAgICAgICAgICAgICAgICBsYW5nLW1vZGUKKyAgICAgICAgICAgICAgICAgICAgICA7OyBUcnkg
YSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhlIGRvd25jYXNlZCBzdHJpbmcuCisgICAgICAgICAgICAg
ICAgICAgICAgKGNvbmNhdCAoZG93bmNhc2UgbGFuZy1zdHJpbmcpICItdHMtbW9kZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIGRv
d25jYXNlZCBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAoZG93bmNhc2Ug
bGFuZy1zdHJpbmcpICItbW9kZSIpKSkKKyAgICAgICAgICAgICAgKHNldHEgbW9kZSAoaW50ZXJu
IG1vZGUpKQorICAgICAgICAgICAgICAod2hlbiAoZmJvdW5kcCBtb2RlKQorICAgICAgICAgICAg
ICAgIChwdXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcykK
KyAgICAgICAgICAgICAgICAodGhyb3cgOm1vZGUgbW9kZSkpKSkpKSkpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UgKG5vZGUpCiAgICJDb252ZXJ0IE5PREUg
dG8gYSBsYW5ndWFnZSBmb3IgdGhlIGNvZGUgYmxvY2suIgotICAobGV0KiAoKGxhbmctc3RyaW5n
IChhbGlzdC1nZXQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKSBuaWwg
IydlcXVhbCkpCi0gICAgICAgICAobGFuZyAoaWYgKHN5bWJvbHAgbGFuZy1zdHJpbmcpCi0gICAg
ICAgICAgICAgICAgICAgbGFuZy1zdHJpbmcKLSAgICAgICAgICAgICAgICAgKGludGVybiAoZG93
bmNhc2UgbGFuZy1zdHJpbmcpKSkpKQotICAgIDs7IEZJWE1FOiBLaW5kIG9mIGEgaGFjayBoZXJl
OiB3ZSB1c2UgdGhpcyBmdW5jdGlvbiBhcyBhIGhvb2sgZm9yCi0gICAgOzsgbG9hZGluZyB1cCBj
b25maWdzIGZvciB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb2RlIGJsb2NrIG9uLWRlbWFuZC4KLSAg
ICAobGV0ICgobW9kZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtY29kZS1ibG9jay1zb3Vy
Y2UtbW9kZS1tYXApKSkKLSAgICAgIDs7IElmIHRoZXJlJ3Mgbm8gc3VwcG9ydGVkIG1vZGUgZm9y
IHRoZSBsYW5ndWFnZSwgcmV0dXJuIG5pbCwKLSAgICAgIDs7IHdoaWNoIG1ha2VzIEVtYWNzIHNr
aXAgdGhlIGNvZGUgYmxvY2suCi0gICAgICAoaWYgKG5vdCAoYW5kIG1vZGUgKGZib3VuZHAgbW9k
ZSkpKQotICAgICAgICAgIG5pbAotICAgICAgICA7OyBJZiB0aGVyZSdzIGEgbWFqb3IgbW9kZSBm
b3IgdGhlIGxhbmd1YWdlLCBzZXQgdXAgdGhlIGNvbmZpZwotICAgICAgICA7OyBhbmQgcmV0dXJu
IHRoZSBsYW5ndWFnZS4KLSAgICAgICAgKHdoZW4gKG5vdCAobWVtcSBsYW5nIG1hcmtkb3duLXRz
LS1jb25maWd1cmVkLWxhbmd1YWdlcykpCi0gICAgICAgICAgKG1hcmtkb3duLXRzLS1hZGQtY29u
ZmlnLWZvci1tb2RlIGxhbmcgbW9kZSkKLSAgICAgICAgICAocHVzaCBsYW5nIG1hcmtkb3duLXRz
LS1jb25maWd1cmVkLWxhbmd1YWdlcykpCi0gICAgICAgIGxhbmcpKSkpCisgIChsZXQqICgobGFu
ZyAoaW50ZXJuICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKSkpCisgICAgICAgICAobW9kZSAobWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbW9kZSBsYW5nKSkKKyAgICAgICAgICh0cy1s
YW5ndWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2Vz
KSkKKyAgICAgICAgIChub24tdHMtbGFuZ3VhZ2UgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykpKQorICAgIChjb25kCisgICAgICgoZmJvdW5kcCBt
b2RlKQorICAgICAgKGNvbmQKKyAgICAgICA7OyBSZXR1cm4ga25vd24gdHJlZXNpdCBsYW5ndWFn
ZS4KKyAgICAgICAodHMtbGFuZ3VhZ2UgdHMtbGFuZ3VhZ2UpCisgICAgICAgOzsgUmV0dXJuIG5p
bCBmb3Iga25vd24gbm9uLXRyZWVzaXQgbGFuZ3VhZ2UgZm9yIGZvbnQtbG9jay4KKyAgICAgICAo
bm9uLXRzLWxhbmd1YWdlIG5pbCkKKyAgICAgICA7OyBNYXJrZG93biBpdHNlbGYgbmVlZHMgdHdv
IHBhcnNlcnMgKG1hcmtkb3duICsKKyAgICAgICA7OyBtYXJrZG93bi1pbmxpbmUpLCBzbyB0cmVl
c2l0IGVtYmVkZGluZyAod2hpY2ggY3JlYXRlcyBvbmx5CisgICAgICAgOzsgb25lKSBjYW5ub3Qg
ZnVsbHkgZm9udGlmeSBpdC4gIFJvdXRlIHRocm91Z2ggdGhlIG5vbi10cworICAgICAgIDs7IHBh
dGggc28gdGhlIHRlbXAgYnVmZmVyIHJ1bnMgdGhlIGZ1bGwgbW9kZSB3aXRoIGJvdGgKKyAgICAg
ICA7OyBwYXJzZXJzLgorICAgICAgICgoZXEgbW9kZSAnbWFya2Rvd24tdHMtbW9kZSkKKyAgICAg
ICAgKHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rl
cykKKyAgICAgICAgICAocHVzaCAoY29ucyBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLW5vbi10cy1tb2RlcykpCisgICAgICAgIG5pbCkKKyAgICAgICAodAorICAgICAgICAobGV0
KiAoKGNvbmZpZ3VyYXRpb24gKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25m
aWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSkpCisgICAgICAg
ICAgICAgICAodHMtbGFuZ3VhZ2UgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpsYW5ndWFnZSkp
KQorICAgICAgICAgIChjb25kCisgICAgICAgICAgICgoYW5kIHRzLWxhbmd1YWdlCisgICAgICAg
ICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6Zm9udC1sb2NrKSkKKyAgICAgICAg
ICAgIChtYXJrZG93bi10cy0tY29uZmlndXJlLWN1cnJlbnQtYnVmZmVyIGNvbmZpZ3VyYXRpb24p
CisgICAgICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2st
bGFuZ3VhZ2VzKQorICAgICAgICAgICAgICAocHVzaCAoY29ucyBsYW5nIHRzLWxhbmd1YWdlKSBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpKQorICAgICAgICAgICAgdHMtbGFuZ3Vh
Z2UpCisgICAgICAgICAgIDs7IE90aGVyd2lzZSwgY2xhc3NpZnkgbW9kZSBhcyBub24tdHJlZS1z
aXR0ZXIuCisgICAgICAgICAgICh0CisgICAgICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKQorICAgICAgICAgICAgICAocHVzaCAo
Y29ucyBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykpCisg
ICAgICAgICAgICBuaWwpKSkpKSkKKyAgICAgKHQgbmlsKSkpKQorCis7OzsgQ29kZSBibG9jayBt
aW5vciBtb2RlIHN1cHBvcnQgYW5kIGNvZGUtYmxvY2sgY29udGV4dCBjb21tYW5kczoKKworKGRl
ZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzICcoaW5kZW50LWZvci10YWItY29t
bWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlY3RyaWMt
bmV3bGluZS1hbmQtbWF5YmUtaW5kZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdsaW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tZW50LWR3aW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbW1lbnQtbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWVudC1vci11bmNvbW1lbnQtcmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29kZS1ibG9jay1maWxsLXBhcmFncmFwaAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZy1maWxsLXJlaW5k
ZW50LWRlZnVuKQorICAiQ29tbWFuZHMgdG8gZXhlY3V0ZSBpbiBhIGNvZGUtYmxvY2sgY29udGV4
dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcyAnKHhyZWYtZmluZC1k
ZWZpbml0aW9ucykKKyAgIkNvbW1hbmRzIHRoYXQgbmVlZCBhIFwidGhpbmdcIiBhdCBwb2ludCBp
biBhIGNvZGUtYmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWlu
LWNvZGUtYmxvY2snLiIpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24t
Y29tbWFuZHMgJyhjb21tZW50LW9yLXVuY29tbWVudC1yZWdpb24pCisgICJDb21tYW5kcyB0aGF0
IG5lZWQgYSByZWdpb24gaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitTZWUgYG1hcmtkb3duLXRz
LS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWVu
YWJsZS1jb2RlLWJsb2NrLW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtY29kZS1ibG9j
ay1tb2RlJyB3aGVuIGlmIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICAobWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlIChpZiAobWFya2Rvd24tdHMtY29kZS1ibG9jay1hdC1wKSAxIC0xKSkpCisK
Kzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lICgm
b3B0aW9uYWwgYXJnIGludGVyYWN0aXZlKQorICAgIkluc2VydCBhIG5ld2xpbmUsIGFuZCBtb3Zl
IHRvIGxlZnQgbWFyZ2luIG9mIHRoZSBuZXcgbGluZS4KK1dpdGggcHJlZml4IGFyZ3VtZW50IEFS
RywgaW5zZXJ0IHRoYXQgbWFueSBuZXdsaW5lcy4KKworSWYgYGVsZWN0cmljLWluZGVudC1tb2Rl
JyBpcyBlbmFibGVkLCB0aGlzIGluZGVudHMgdGhlIGZpbmFsIG5ldyBsaW5lCit0aGF0IGl0IGFk
ZHMsIGFuZCByZWluZGVudHMgdGhlIHByZWNlZGluZyBsaW5lLiAgVG8ganVzdCBpbnNlcnQKK2Eg
bmV3bGluZSwgdXNlIFxcW2VsZWN0cmljLWluZGVudC1qdXN0LW5ld2xpbmVdLgorCitJZiBgYXV0
by1maWxsLW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgbWF5IGNhdXNlIGF1dG9tYXRpYyBsaW5lCiti
cmVha2luZyBvZiB0aGUgcHJlY2VkaW5nIGxpbmUuICBBIG5vbi1uaWwgQVJHIGluaGliaXRzIHRo
aXMuCisKK0lmIHZhcmlhYmxlIGB1c2UtaGFyZC1uZXdsaW5lcycgaXMgZW5hYmxlZCwgdGhlIG5l
d2xpbmUgaXMgbWFya2VkIHdpdGgKK3RoZSB0ZXh0LXByb3BlcnR5IGBoYXJkJy4KKworQSBub24t
bmlsIElOVEVSQUNUSVZFIGFyZ3VtZW50IG1lYW5zIHRvIHJ1biB0aGUgYHBvc3Qtc2VsZi1pbnNl
cnQtaG9vaycuIgorICAgKGludGVyYWN0aXZlICIqUFxucCIpCisgICAoaWYtbGV0KiAoKGJsb2Nr
LW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCkpCisgICAgICAgICAgICAgKChm
Ym91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgICAobWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWlu
LWNvZGUtYmxvY2sgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjJ25ld2xpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludGVyYWN0aXZlKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay1maWxsLXBhcmFncmFwaCAoJm9wdGlvbmFsIGp1c3RpZnkpCisgICJSZWZpbGwgb3IgcmVpbmRl
bnQgdGhlIG1hcmtkb3duIGNvbnRlbnQgdGhhdCBjb250YWlucyBwb2ludC4KK0lmIHRoZSBwb2lu
dCBpcyBpbiBhIHN0cmluZyBvciBhIGNvbW1lbnQsIGZpbGwgdGhlIHBhcmFncmFwaCB0aGF0Citj
b250YWlucyBwb2ludCBvciBmb2xsb3dzIHBvaW50LgorCitPdGhlcndpc2UsIHJlaW5kZW50IHRo
ZSBmdW5jdGlvbiBkZWZpbml0aW9uIHRoYXQgY29udGFpbnMgcG9pbnQgb3IKK2ZvbGxvd3MgcG9p
bnQuCisKK0lmIEpVU1RJRlkgaXMgbm9uLW5pbCAoaW50ZXJhY3RpdmVseSwgd2l0aCBwcmVmaXgg
YXJndW1lbnQpLCBqdXN0aWZ5IGFzCit3ZWxsLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKGNv
bmQgKChkZXJpdmVkLW1vZGUtcCAncHJvZy1tb2RlKQorICAgICAgICAgKGNhbGwtaW50ZXJhY3Rp
dmVseSAjJ3Byb2ctZmlsbC1yZWluZGVudC1kZWZ1biBqdXN0aWZ5KSkKKyAgICAgICAgKHQKKyAg
ICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgIydmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkpKQor
Cis7OyBOT1RFOiBEbyBub3QgYWRkIHRoaXMgY29tbWFuZCB0byBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1jb21tYW5kcycuCisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5k
LWRlZmluaXRpb25zICgmcmVzdCBhcmdzKQorICAiSGVscGVyIGNvbW1hbmQgZm9yIGB4cmVmLWZp
bmQtZGVmaW5pdGlvbnMnIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorRmluZCB0aGluZyBhdCBw
b2ludC4KK0FkanVzdCB0aGUgcmVmZXJlbmNlcyBvbiB0aGUgeHJlZiBzdGFjayB0byB0aGUgYmFz
ZSBidWZmZXIuCitQYXNzIHRocm91Z2ggQVJHUyBpZiBub3QgaW4gYSBjb2RlIGJsb2NrIHdpdGgg
YW4gYXZhaWxhYmxlIG1vZGUuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZi1sZXQqICgoYmxvY2st
bW9kZSAobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAgICgoZmJv
dW5kcCBibG9jay1tb2RlKSkpCisgICAgICAoY29uZGl0aW9uLWNhc2UgZXJyCisgICAgICAgICAg
KHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgIDs7
IFJlY29yZCBhIHBsYWNlaG9sZGVyIHhyZWYgbWFya2VyIGluIHRoZSBiYXNlIGJ1ZmZlci4gIFRo
aXMKKyAgICAgICAgICAgICAgICA7OyB3aWxsIGJlIHJldGFpbmVkIGlmIHRoZSBjb21tYW5kIHN1
Y2NlZWRzIHRvIHB1c2ggYSBtYXJrZXIgaW4KKyAgICAgICAgICAgICAgICA7OyB0aGUgaW5kaXJl
Y3QgYnVmZmVyIHdoaWNoIHdlIHdpbGwgcG9wLgorICAgICAgICAgICAgICAgICh4cmVmLXB1c2gt
bWFya2VyLXN0YWNrKQorICAgICAgICAgICAgICAgIDs7IGB4cmVmLWZpbmQtZGVmaW5pdGlvbnMn
IGlzIGEgdGhpbmcgY29tbWFuZCBpbgorICAgICAgICAgICAgICAgIDs7IGBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzJy4KKyAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
LXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ3hyZWYtZmluZC1kZWZpbml0
aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhcmdzKSkKKyAgICAgICAgICAgIDs7IFBvcCB0aGUgdG9wIHhyZWYgbWFya2VyLiAgSWYg
dGhlIGNvbW1hbmQgc3VjY2VlZGVkLCB0aGUKKyAgICAgICAgICAgIDs7IHRvcCBtYXJrZXIgd2ls
bCBiZSB0aGUgaW5kaXJlY3QgYnVmZmVyIG1hcmtlci4gIElmIGl0CisgICAgICAgICAgICA7OyBm
YWlsZWQsIHdlJ2xsIHBvcCB0aGUgcGxhY2Vob2xkZXIgd2hpY2ggaXMgbm93IG9mIG5vCisgICAg
ICAgICAgICA7OyB2YWx1ZTwKKyAgICAgICAgICAgIDs7IFRPRE86IFByb3Bvc2UgYW4gYHhyZWYn
IHBvcCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgImdvCisgICAgICAgICAgICA7OyBiYWNrIi4KKyAg
ICAgICAgICAgIChsZXQgKChoaXN0b3J5ICh4cmVmLS1nZXQtaGlzdG9yeSkpKQorICAgICAgICAg
ICAgICAodW5sZXNzIChudWxsIChjYXIgaGlzdG9yeSkpCisgICAgICAgICAgICAgICAgKHBvcCAo
Y2FyIGhpc3RvcnkpKSkpKQorICAgICAgICAoZXJyb3IKKyAgICAgICAgIDs7IFByb3BhZ2F0ZSB0
aGUgc2lnbmFsLgorICAgICAgICAgKHNpZ25hbCAoY2FyIGVycikgKGNkciBlcnIpKSkpCisgICAg
OzsgTm90IGluIGEgY29kZSBibG9jayBjb250ZXh0LiAgVGhpcyBzaG91bGQgcmVhbGx5IG5ldmVy
IGhhcHBlbi4KKyAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5ICMneHJlZi1maW5kLWRlZmluaXRp
b25zIGFyZ3MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1j
b2RlLWJsb2NrICgpCisgICJIZWxwZXIgZnVuY3Rpb24gdG8gd3JhcCBhIGNvbW1hbmQgZm9yIGEg
Y29kZS1ibG9jayBjb250ZXh0LgorSWYgYHRoaXMtY29tbWFuZCcgaXMgYSBtZW1iZXIgb2YgYG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnIGFuZAorcG9pbnQgaXMgd2l0aGluIGEgY29k
ZSBibG9jayB3aXRoIGFuIGF2YWlsYWJsZSBtb2RlLCBpdCB3aWxsIHJ1biBpbiB0aGF0Citjb2Rl
IGJsb2NrJ3MgbW9kZSBpbiBhIGJ1ZmZlciBuYXJyb3dlZCB0byBpdHMgY29udGVudC4gIE90aGVy
d2lzZSwgdGhlCitjb21tYW5kIHdpbGwgcnVuIGluIHRoZSBjb250ZXh0IG9mIHRoZSBgbWFya2Rv
d24tdHMtbW9kZScgYnVmZmVyLiIKKyAgKHdoZW4gKG1lbXEgdGhpcy1jb21tYW5kIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stY29tbWFuZHMpCisgICAgKHdoZW4tbGV0KiAoKGNvbW1hbmQgdGhpcy1j
b21tYW5kKQorICAgICAgICAgICAgICAgIChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgICAgICgoZmJvdW5kcCBibG9jay1tb2RlKSkpCisg
ICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgKGxhbWJkYSAoJnJlc3QgYXJncykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IChhcHBseSAjJ21hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcmdzKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1i
bG9jayAoYmxvY2stbW9kZSBjb21tYW5kICZyZXN0IGFyZ3MpCisgICJSdW4gQ09NTUFORCBpbiBC
TE9DSy1NT0RFLgorQVJHUyBhcmUgY2FwdHVyZWQgYnkgYG1hcmtkb3duLXRzLS1tYXliZS1ydW4t
Y29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iCisgICh3aGVuLWxldCogKChiZWcgKGdldC1jaGFyLXBy
b3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtlcikpCisgICAgICAgICAg
ICAgIChlbmQgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtZW5k
LW1hcmtlcikpKQorICAgIChsZXQgKChyZWdpb24tYmVnICh1c2UtcmVnaW9uLWJlZ2lubmluZykp
CisgICAgICAgICAgKHJlZ2lvbi1lbmQgKHVzZS1yZWdpb24tZW5kKSkpCisgICAgICA7OyBVc2Ug
YSBub24tY2xvbmVkIGluZGlyZWN0IGJ1ZmZlciB0byBhdm9pZCBjaGFuZ2luZyBtYWpvciBtb2Rl
CisgICAgICA7OyBpbiB0aGUgcGFyZW50IGJ1ZmZlciAod2hpY2ggd291bGQgdHJhc2ggbG9jYWwg
dmFyaWFibGVzKS4gIFRoaXMKKyAgICAgIDs7IGFsc28gZW5zdXJlcyB0cmVlc2l0IHNldHVwIGlz
IG5vdCBjb3BpZWQgb3ZlciBvciBpdCBnZXRzCisgICAgICA7OyBjb25mdXNlZC4KKyAgICAgIChs
ZXQgKChpbmRpcmVjdC1idWZmZXIgKG1ha2UtaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBuaWwgJ2luaGliaXQtYnVmZmVyLWhvb2tzKSkKKyAgICAg
ICAgICAgIChpbmRpcmVjdC1kZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgICAocG9pbnQtZGVs
dGEgMCkpCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAgKHdpdGgtY3VycmVu
dC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAgIDs7IENvcHkgdGhlIGJhc2Ug
YnVmZmVyJ3MgcmVnaW9uLCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICAgICAgICAgICh3aGVuIChh
bmQgcmVnaW9uLWJlZyByZWdpb24tZW5kKQorICAgICAgICAgICAgICAgIChzZXQtbWFyayAoaWYg
KDwgKHBvaW50KSByZWdpb24tZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
aW9uLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi1iZWcpKQorICAgICAg
ICAgICAgICAgIChhY3RpdmF0ZS1tYXJrKSkKKyAgICAgICAgICAgICAgKGRlbGF5LW1vZGUtaG9v
a3MKKyAgICAgICAgICAgICAgICAobGV0ICgobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGVxIGJsb2NrLW1vZGUgJ21hcmtkb3duLXRzLW1vZGUpKSkK
KyAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGJsb2NrLW1vZGUpKQorICAgICAgICAgICAgICAg
IChyZWFkLW9ubHktbW9kZSAtMSkKKyAgICAgICAgICAgICAgICAobmFycm93LXRvLXJlZ2lvbiBi
ZWcgZW5kKQorICAgICAgICAgICAgICAgIChsZXQgKChwb2ludCAocG9pbnQpKQorICAgICAgICAg
ICAgICAgICAgICAgIChwb2ludC1tYXJrZXIgKHBvaW50LW1hcmtlcikpKQorICAgICAgICAgICAg
ICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgKChtZW1xIGNvbW1hbmQgbWFya2Rv
d24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKyAgICAgICAgICAgICAgICAgICAgICAo
d2hlbi1sZXQqICgodGhpbmcgKHRoaW5nLWF0LXBvaW50ICdzeW1ib2wpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChmdW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCB0aGluZykpKQorICAg
ICAgICAgICAgICAgICAgICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1y
ZWdpb24tY29tbWFuZHMpCisgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCByZWdpb24t
YmVnIHJlZ2lvbi1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgIydmdW5jYWxs
LWludGVyYWN0aXZlbHkgY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Z2lvbi1iZWcgcmVnaW9uLWVuZCBhcmdzKSkpCisgICAgICAgICAgICAgICAgICAgICAoKHplcm9w
IChjZHIgKGZ1bmMtYXJpdHkgY29tbWFuZCkpKQorICAgICAgICAgICAgICAgICAgICAgIChmdW5j
YWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCkpCisgICAgICAgICAgICAgICAgICAgICAodAorICAg
ICAgICAgICAgICAgICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCkpKQorICAgICAg
ICAgICAgICAgICAgICAoc2V0cSBpbmRpcmVjdC1kZWFjdGl2YXRlLW1hcmsgZGVhY3RpdmF0ZS1t
YXJrKQorICAgICAgICAgICAgICAgICAgICA7OyBUaGUgaGV1cmlzdGljIG9mIHdoZW4gdG8gbW92
ZSBwb2ludC4KKyAgICAgICAgICAgICAgICAgICAgOzsgZGVhY3RpdmF0ZS1tYXJrIHAoZCk9cG0o
ZCkgZGVsdGEKKyAgICAgICAgICAgICAgICAgICAgOzsgbmlsICAgICAgICAgICAgIG5vICAgICAg
ICAgMCAgIDsgY2xhc3MgQQorICAgICAgICAgICAgICAgICAgICA7OyBuaWwgICAgICAgICAgICAg
eWVzICAgICAgICB5ZXMgOyBjbGFzcyBCCisgICAgICAgICAgICAgICAgICAgIDs7IHQgICAgICAg
ICAgICAgICBubyAgICAgICAgIDAgICA7IGNsYXNzIEMKKyAgICAgICAgICAgICAgICAgICAgOzsg
dCAgICAgICAgICAgICAgIHllcyAgICAgICAgeWVzIDsgY2xhc3MgRAorICAgICAgICAgICAgICAg
ICAgICA7OyBBOiBuaWwKKyAgICAgICAgICAgICAgICAgICAgOzsgQjogaW5kZW50LWZvci10YWIt
Y29tbWFuZAorICAgICAgICAgICAgICAgICAgICA7OyBDOiBjb21tZW50LW9yLXVuY29tbWVudC1y
ZWdpb24KKyAgICAgICAgICAgICAgICAgICAgOzsgRDogY29tbWVudC1kd2ltIG5ld2xpbmUgZWxl
Y3RyaWMtbmV3bGluZS1hbmQtbWF5YmUtaW5kZW50CisgICAgICAgICAgICAgICAgICAgIDs7ICAg
IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoCisgICAgICAgICAgICAgICAg
ICAoc2V0cSBwb2ludC1kZWx0YSAoLSAocG9pbnQpIHBvaW50KSkKKyAgICAgICAgICAgICAgICAg
ICh3aGVuIChub3QgKGVxIHBvaW50LWRlbHRhICgtIChwb2ludC1tYXJrZXIpIHBvaW50LW1hcmtl
cikpKQorICAgICAgICAgICAgICAgICAgICAoc2V0cSBwb2ludC1kZWx0YSAwKSkpKSkKKyAgICAg
ICAgICAoa2lsbC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyKQorICAgICAgICAgIDs7IFByb3BhZ2F0
ZSBtYXJrIGRlYWN0aXZhdGlvbiB0byB0aGUgYmFzZSBidWZmZXIuCisgICAgICAgICAgKHNldHEg
ZGVhY3RpdmF0ZS1tYXJrIGluZGlyZWN0LWRlYWN0aXZhdGUtbWFyaykKKyAgICAgICAgICA7OyBN
b3ZlIGJhc2UgYnVmZmVyIHBvaW50IGlmIGl0IG1vdmVkIGluIHRoZSBpbmRpcmVjdCBidWZmZXIu
CisgICAgICAgICAgKGdvdG8tY2hhciAoKyAocG9pbnQpIHBvaW50LWRlbHRhKSkKKyAgICAgICAg
ICA7OyBSZWNvcmQgdGhlIG9yaWdpbmFsIGNvbW1hbmQuCisgICAgICAgICAgKHNldHEgdGhpcy1j
b21tYW5kIGNvbW1hbmQpCisgICAgICAgICAgOzsgTWFrZSBzdXJlIHRoZSBvcmlnaW5hdGluZyBy
ZWdpb24gaXMgcmVmb250aWZpZWQuCisgICAgICAgICAgKGZvbnQtbG9jay1mbHVzaCBiZWcgZW5k
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciAo
cG9zICZvcHRpb25hbCBiYWNrd2FyZCkKKyAgIlJldHVybiB0aGUgbmV4dCBvciBwcmV2aW91cyBm
ZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIgbm9kZSwgb3IgbmlsLgorU2VhcmNoIHN0YXJ0aW5n
IGF0IFBPUy4KK1NlYXJjaCBiYWNrd2FyZCBpZiBCQUNLV0FSRCBpcyBub24tbmlsLiIKKyAgKHRy
ZWVzaXQtc2VhcmNoLWZvcndhcmQgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChub2RlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzdHJpbmc9ICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJmZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIiKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja3dhcmQpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlciAoJm9wdGlvbmFsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zIGJhY2t3YXJkIHJl
bWFpbikKKyAgIlJldHVybiB0aGUgbmV4dCBvciBwcmV2aW91cyBmZW5jZWRfY29kZV9ibG9ja19k
ZWxpbWl0ZXIgbm9kZSwgb3IgbmlsLgorU2VhcmNoIHN0YXJ0aW5nIGF0IFBPUyBvciBgcG9pbnQn
LCBpZiBQT1MgaXMgbmlsLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwu
CitJZiBSRU1BSU4gaXMgbm9uLW5pbCwgbW92ZSB0byB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUg
Y3VycmVudCBjb2RlCitibG9jaywgaWYgaW4gb25lLiIKKyAgKHNldHEgcG9zIChvciBwb3MgKHBv
aW50KSkpCisgIChhbmQtbGV0KiAoKG5vZGUgKG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2st
ZGVsaW1pdGVyIHBvcyBiYWNrd2FyZCkpKQorICAgIChsZXQgKChpbi1ibG9jayAobWFya2Rvd24t
dHMtY29kZS1ibG9jay1hdC1wIHBvcykpKQorICAgICAgKGNvbmQKKyAgICAgICAoKGFuZCByZW1h
aW4gaW4tYmxvY2spCisgICAgICAgIG5vZGUpCisgICAgICAgKHJlbWFpbgorICAgICAgICBuaWwp
CisgICAgICAgKHQKKyAgICAgICAgKHdoaWxlIChhbmQgbm9kZQorICAgICAgICAgICAgICAgICAg
ICA7OyBJZiBiYWNrd2FyZCwgc2tpcCB0aGUgY3VycmVudCBibG9jaydzCisgICAgICAgICAgICAg
ICAgICAgIDs7IHN0YXJ0aW5nIGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgKG9yIChh
bmQgYmFja3dhcmQgaW4tYmxvY2sgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIG5v
ZGUpKSkpCisgICAgICAgICAgKHNldHEgaW4tYmxvY2sgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
YXQtcCBwb3MpKQorICAgICAgICAgIChzZXRxIHBvcyAoaWYgYmFja3dhcmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpCisgICAgICAgICAgKHNldHEgbm9kZSAobWFy
a2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAg
ICAgIG5vZGUpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxv
Y2sgKGFyZykKKyAgIk1vdmUgcG9pbnQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGNvZGUgYmxv
Y2suCitXaXRoIHRoZSBwcmVmaXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBjdXJy
ZW50IGNvZGUgYmxvY2suIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgobm9k
ZQorICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxp
bWl0ZXIgbmlsIG5pbCBhcmcpKSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQg
bm9kZSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLW1vdmUtdG8tcHJldmlvdXMtY29kZS1ibG9j
ayAoYXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIHByZXZpb3VzIGNvZGUg
YmxvY2suCitXaXRoIHRoZSBwcmVmaXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBj
dXJyZW50IGNvZGUgYmxvY2suIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgo
bm9kZQorICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1k
ZWxpbWl0ZXIgbmlsICdiYWNrd2FyZCBhcmcpKSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpKSkKKworOzs7IEhlbHBlcnM6CisKKyhkZWZ1biBtYXJrZG93bi10cy0t
b3V0bGluZS1pbnZpc2libGUtcCAocG9zKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgUE9TIGlzIGlu
c2lkZSBhbiBvdXRsaW5lLWZvbGRlZCByZWdpb24uIgorICAoY2wtc29tZSAobGFtYmRhIChvdikg
KGVxIChvdmVybGF5LWdldCBvdiAnaW52aXNpYmxlKSAnb3V0bGluZSkpCisgICAgICAgICAgIChv
dmVybGF5cy1hdCBwb3MpKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyAo
KQogICAiUmV0dXJuIHJhbmdlIHNldHRpbmdzIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgogICAo
dHJlZXNpdC1yYW5nZS1ydWxlcwogICAgOmVtYmVkICdtYXJrZG93bi1pbmxpbmUKICAgIDpob3N0
ICdtYXJrZG93bgotICAgOnJhbmdlLWZuICMndHJlZXNpdC1yYW5nZS1mbi1leGNsdWRlLWNoaWxk
cmVuCiAgICAnKChpbmxpbmUpIEBtYXJrZG93bi1pbmxpbmUpCiAKLSAgIDplbWJlZCAjJ21hcmtk
b3duLXRzLS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2UKKyAgIDplbWJlZCAjJ21hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlCiAgICA6aG9zdCAnbWFya2Rvd24KICAgIDpsb2Nh
bCB0CiAgICAnKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbGFu
Z3VhZ2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAoY29kZV9mZW5jZV9jb250ZW50KSBAY29u
dGVudCkpKSkKIAorKGRlZnVuIG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMgKCkK
KyAgIlJlbW92ZSBhbGwgaW5saW5lIGltYWdlIG92ZXJsYXlzIGZyb20gdGhlIGN1cnJlbnQgYnVm
ZmVyLiIKKyAgKGRvbGlzdCAob3YgKG92ZXJsYXlzLWluIChwb2ludC1taW4pIChwb2ludC1tYXgp
KSkKKyAgICAod2hlbiAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWltYWdlKQorICAgICAg
KGRlbGV0ZS1vdmVybGF5IG92KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLW91dGxpbmUtdmll
dy1jaGFuZ2UgKCkKKyAgIlVwZGF0ZSBpbWFnZSBvdmVybGF5cyBhZnRlciBvdXRsaW5lIGZvbGQv
dW5mb2xkLgorUmVtb3ZlcyBpbWFnZSBvdmVybGF5cyBpbiBmb2xkZWQgcmVnaW9ucyBhbmQgdHJp
Z2dlcnMKK3JlZm9udGlmaWNhdGlvbiBzbyB0aGF0IGltYWdlcyBpbiB1bmZvbGRlZCByZWdpb25z
IGFyZSByZWNyZWF0ZWQuIgorICAod2hlbiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAg
KG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCisgICAgKGZvbnQtbG9jay1mbHVz
aCkpKQorCiAoZGVmdW4gbWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCAodmFsdWUpCiAgICJT
ZXQgaGlkaW5nIG9mIE1hcmtkb3duIG1hcmt1cCBkZWxpbWl0ZXJzIGluIHRoZSBjdXJyZW50IGJ1
ZmZlci4KIFZBTFVFIG5vbi1uaWwgaGlkZXMgbWFya3VwLCBuaWwgc2hvd3MgaXQuIgogICAoaWYg
dmFsdWUKICAgICAgIChhZGQtdG8taW52aXNpYmlsaXR5LXNwZWMgJ21hcmtkb3duLXRzLS1tYXJr
dXApCiAgICAgKHJlbW92ZS1mcm9tLWludmlzaWJpbGl0eS1zcGVjICdtYXJrZG93bi10cy0tbWFy
a3VwKSkKKyAgKHdoZW4gbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgIChtYXJrZG93bi10
cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKSkKICAgKGZvbnQtbG9jay1mbHVzaCkpCiAKIChkZWZ1
biBtYXJrZG93bi10cy10b2dnbGUtaGlkZS1tYXJrdXAgKCkKQEAgLTM1NiwxMjIgKzI4MzIsNTMw
IEBAIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1cAogICAoc2V0cSBtYXJrZG93bi10cy1o
aWRlLW1hcmt1cCAobm90IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKSkKICAgKG1hcmtkb3duLXRz
LS1zZXQtaGlkZS1tYXJrdXAgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApKQogCisoZGVmdW4gbWFy
a2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzICh2YWx1ZSkKKyAgIlNldCBkaXNwbGF5IG9mIGlu
bGluZSBpbWFnZXMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgorVkFMVUUgbm9uLW5pbCBkaXNwbGF5
cyBpbWFnZXMsIG5pbCByZW1vdmVzIHRoZW0uIgorICAoaWYgdmFsdWUKKyAgICAgICh0cmVlc2l0
LWZvbnQtbG9jay1yZWNvbXB1dGUtZmVhdHVyZXMgJyhpbWFnZS1wcmV2aWV3KSkKKyAgICAodHJl
ZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1cmVzIG5pbCAnKGltYWdlLXByZXZpZXcpKSkK
KyAgKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCisgIChmb250LWxvY2stZmx1
c2gpKQogCi07OzsgTWFqb3IgbW9kZQotCi0oZGVmdW4gbWFya2Rvd24tdHMtc2V0dXAgKCkKLSAg
IlNldHVwIHRyZWVzaXQgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0gIChtYWtlLWxvY2FsLXZh
cmlhYmxlICdtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyhkZWZ1biBtYXJrZG93bi10cy10b2dn
bGUtaW5saW5lLWltYWdlcyAoKQorICAiVG9nZ2xlIGRpc3BsYXkgb2YgaW5saW5lIGltYWdlcyBp
biB0aGUgY3VycmVudCBidWZmZXIuIgorICAoaW50ZXJhY3RpdmUpCisgIChzZXRxIG1hcmtkb3du
LXRzLWlubGluZS1pbWFnZXMgKG5vdCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKSkKKyAgKG1h
cmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdlcyBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKQor
ICAobWVzc2FnZSAiSW5saW5lIGltYWdlcyAlcyIgKGlmIG1hcmtkb3duLXRzLWlubGluZS1pbWFn
ZXMgImVuYWJsZWQiICJkaXNhYmxlZCIpKSkKKworOzs7IEVtcGhhc2lzOgorCisoZGVmdmFyIG1h
cmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0CisgICcoKD9iIC4gIioqIikKKyAgICAoP0IgLiAiX18i
KQorICAgICg/aSAuICIqIikKKyAgICAoP0kgLiAiXyIpCisgICAgKD9zIC4gIn5+IikKKyAgICAo
P2MgLiAiYCIpCisgICAgKD9hIC4gIioqKiIpKQorICAiQWxpc3Qgb2YgZW1waGFzaXMgbWFya2Vy
cyBmb3IgYG1hcmtkb3duLXRzLWVtcGhhc2l6ZScuCitFYWNoIGVudHJ5IGlzIChLRVkgLiBNQVJL
RVIpIHdoZXJlIEtFWSBpcyBhIGNoYXJhY3RlciAobm90IGEgc3RyaW5nKSBhbmQKK01BUktFUiBp
cyB0aGUgTWFya2Rvd24gZW1waGFzaXplZCB0ZXh0IHByZWZpeC9zdWZmaXguIikKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50ICgpCisgICJSZXR1cm4gdGhlIGVt
cGhhc2lzIG5vZGUgYXQgcG9pbnQsIG9yIG5pbC4KK0ZpbmRzIHRoZSBpbm5lcm1vc3QgYGVtcGhh
c2lzJywgYHN0cm9uZ19lbXBoYXNpcycsCitgc3RyaWtldGhyb3VnaCcsIG9yIGBjb2RlX3NwYW4n
IG5vZGUuIgorICAod2hlbi1sZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkgJ21h
cmtkb3duLWlubGluZSkpKQorICAgICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICBub2RlIChs
YW1iZGEgKG4pCisgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBuKQorICAg
ICAgICAgICAgICAgICAgICAnKCJlbXBoYXNpcyIgInN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAg
ICAgICAgICAgICAgICAic3RyaWtldGhyb3VnaCIgImNvZGVfc3BhbiIpKSkpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNpcyAoKQorICAiUmVtb3ZlIGVtcGhhc2lzIGFyb3Vu
ZCBwb2ludCBvciByZWdpb24uCitXaXRoIGFuIGFjdGl2ZSByZWdpb24sIHN0cmlwIHRoZSBvdXRl
cm1vc3QgZW1waGFzaXMgbWFya2VycyBmcm9tCit0aGUgc2VsZWN0ZWQgdGV4dC4gIFdpdGhvdXQg
YSByZWdpb24sIGZpbmQgdGhlIGVtcGhhc2lzIG5vZGUgYXQKK3BvaW50IHVzaW5nIHRyZWUtc2l0
dGVyIGFuZCByZW1vdmUgaXRzIG1hcmtlcnMuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZiAodXNl
LXJlZ2lvbi1wKQorICAgICAgKGxldCogKChiZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAg
ICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKQorICAgICAgICAgICAgICh0ZXh0IChidWZmZXItc3Vi
c3RyaW5nIGJlZyBlbmQpKQorICAgICAgICAgICAgIChzdHJpcHBlZCBuaWwpKQorICAgICAgICAo
Y2wtbG9vcCBmb3IgKF9rZXkgLiBtKSBpbiAoc29ydCAoY29weS1zZXF1ZW5jZSBtYXJrZG93bi10
cy1lbXBoYXNpcy1hbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxhbWJkYSAoYSBiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICg+IChsZW5ndGggKGNkciBhKSkgKGxlbmd0aCAoY2RyIGIpKSkpKQorICAgICAgICAgICAg
ICAgICBmb3IgcmUgPSAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgbSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiXFwoXFwoPzouXFx8XG5cXCkqXFwpIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUgbSkgIlxcJyIpCisgICAgICAg
ICAgICAgICAgIHdoZW4gKHN0cmluZy1tYXRjaCByZSB0ZXh0KQorICAgICAgICAgICAgICAgICBk
byAoc2V0cSBzdHJpcHBlZCAobWF0Y2gtc3RyaW5nIDEgdGV4dCkpCisgICAgICAgICAgICAgICAg
IGFuZCByZXR1cm4gbmlsKQorICAgICAgICAod2hlbiBzdHJpcHBlZAorICAgICAgICAgIChkZWxl
dGUtcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgKGluc2VydCBzdHJpcHBlZCkpKQorICAgIDs7
IEZpbmQgdGhlIG91dGVybW9zdCBlbXBoYXNpcyBub2RlIGF0IHBvaW50LgorICAgICh3aGVuLWxl
dCogKChpbm5lciAobWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQpKQorICAgICAg
ICAgICAgICAgIChub2RlIChsZXQgKChuIGlubmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICh3aGlsZSAobGV0ICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG4pKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgcGFyZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBl
IHBhcmVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnKCJlbXBoYXNpcyIgInN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpa2V0aHJvdWdoIiAiY29kZV9z
cGFuIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBuIHBhcmVu
dCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG4pKQorICAgICAgICAgICAgICAgIChzdGFy
dCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgICAgKHRleHQgKHRyZWVzaXQtbm9kZS10
ZXh0IG5vZGUgdCkpCisgICAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5v
ZGUpKQorICAgICAgICAgICAgICAgIChtbGVuIChwY2FzZSB0eXBlCisgICAgICAgICAgICAgICAg
ICAgICAgICAoInN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg
KHN0cmluZy1wcmVmaXgtcCAiXyIgdGV4dCkgMiAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICgiZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4
LXAgIl8iIHRleHQpIDEgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoInN0cmlrZXRocm91
Z2giIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAoImNvZGVfc3BhbiIgMSkpKQorICAgICAg
ICAgICAgICAgIChpbm5lci10ZXh0IChzdWJzdHJpbmcgdGV4dCBtbGVuICgtIChsZW5ndGggdGV4
dCkgbWxlbikpKSkKKyAgICAgIChsZXQgKChvZmZzZXQgKC0gKHBvaW50KSBzdGFydCBtbGVuKSkp
CisgICAgICAgIChkZWxldGUtcmVnaW9uIHN0YXJ0IGVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBz
dGFydCkKKyAgICAgICAgKGluc2VydCBpbm5lci10ZXh0KQorICAgICAgICAoZ290by1jaGFyICgr
IHN0YXJ0IChtYXggMCBvZmZzZXQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1lbXBoYXNp
emUgKCZvcHRpb25hbCBjaGFyKQorICAiSW5zZXJ0IG9yIGNoYW5nZSBlbXBoYXNpcyBvbiB0ZXh0
LgorSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdCB3aXRoIGVtcGhhc2lzIG1h
cmtlcnMuCitJZiB0aGVyZSBpcyBubyByZWdpb24sIGluc2VydCBtYXJrZXIgcGFpcnMgYW5kIHBs
YWNlIHBvaW50IGJldHdlZW4KK3RoZW0uICBDSEFSIHNlbGVjdHMgdGhlIGVtcGhhc2lzIHR5cGU6
CisKKyAgYiAgICoqYm9sZCoqICAgICAgIEIgIF9fYm9sZF9fCisgIGkgICAqaXRhbGljKiAgICAg
ICBJICBfaXRhbGljXworICBhICAgKioqYm9sZCtpdGFsaWMqKioKKyAgcyAgIH5+c3RyaWtldGhy
b3VnaH5+CisgIGMgICBgY29kZWAKKyAgU1BDIHJlbW92ZSBlbXBoYXNpcyBhdCBwb2ludCBvciBy
ZWdpb24iCisgIChpbnRlcmFjdGl2ZQorICAgImNFbXBoYXNpcyBbYl1vbGQgW0Jdb2xkXyBbaV10
YWxpYyBbSV10YWxpY18gW2FdbGwgW3NddHJpa2UgW2Ndb2RlIFNQQyByZW1vdmU6IikKKyAgKGlm
IChlcSBjaGFyID9ccykKKyAgICAgIChtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMpCisgICAg
KGlmLWxldCogKChtYXJrZXIgKGNkciAoYXNzcSBjaGFyIG1hcmtkb3duLXRzLWVtcGhhc2lzLWFs
aXN0KSkpKQorICAgICAgICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgICAgICAgIChsZXQgKChi
ZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAoY29weS1tYXJr
ZXIgKHJlZ2lvbi1lbmQpKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2Vy
KQorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgIChpbnNl
cnQgbWFya2VyKSkpCisgICAgICAgICAgKGlmLWxldCogKChib3VuZHMgKGJvdW5kcy1vZi10aGlu
Zy1hdC1wb2ludCAnd29yZCkpKQorICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAg
ICAgICAgICAgICAoZ290by1jaGFyIChjZHIgYm91bmRzKSkKKyAgICAgICAgICAgICAgICAoaW5z
ZXJ0IG1hcmtlcikKKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgYm91bmRzKSkKKyAg
ICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikpCisgICAgICAgICAgICAoaW5zZXJ0IG1hcmtl
ciBtYXJrZXIpCisgICAgICAgICAgICAoYmFja3dhcmQtY2hhciAobGVuZ3RoIG1hcmtlcikpKSkK
KyAgICAgICh1c2VyLWVycm9yICJObyBzdWNoIGVtcGhhc2lzIG1hcmtlcjogJWMiIGNoYXIpKSkp
CisKKzs7OyBCbG9jayBzdHJ1Y3R1cmU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtc3Ry
dWN0dXJlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGJsb2NrIHN0cnVjdHVyZS4KK0lm
IHRoZXJlIGlzIGFuIGFjdGl2ZSByZWdpb24sIHdyYXAgaXQuICBPdGhlcndpc2UsIGluc2VydCBh
biBlbXB0eQorYmxvY2sgYW5kIHBsYWNlIHBvaW50IGluc2lkZS4gIENIQVIgc2VsZWN0cyB0aGUg
c3RydWN0dXJlIHR5cGU6CisKKyAgYyAgZmVuY2VkIGNvZGUgYmxvY2sgKGBgYCkKKyAgdCAgdGls
ZGUgZmVuY2VkIGNvZGUgYmxvY2sgKH5+fikKKyAgcSAgYmxvY2sgcXVvdGUgKD4gKQorICBkICBo
b3Jpem9udGFsIGRpdmlkZXIvcnVsZSAoLS0tKSIKKyAgKGludGVyYWN0aXZlICJjU3RydWN0dXJl
IFtjXW9kZSBibG9jayBbdF1pbGRlIGNvZGUgYmxvY2sgW3FddW90ZSBbZF1pdmlkZXI6IikKKyAg
KHBjYXNlIGNoYXIKKyAgICAoP2MgKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayA/YCkp
CisgICAgKD90IChtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUtYmxvY2sgP34pKQorICAgICg/cSAo
bWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90ZSkpCisgICAgKD9kIChtYXJrZG93bi10cy0t
aW5zZXJ0LWRpdmlkZXIpKQorICAgIChfICh1c2VyLWVycm9yICJObyBzdWNoIHN0cnVjdHVyZTog
JWMiIGNoYXIpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUtYmxvY2sgKGNo
YXIgJm9wdGlvbmFsIGxhbmd1YWdlKQorICAiSW5zZXJ0IGEgZmVuY2VkIGNvZGUgYmxvY2sgdXNp
bmcgYSBDSEFSIHNlcXVlbmNlLgorQ0hBUiBzaG91bGQgYmUgb25lIG9mIGEgYmFja3RpY2sgb3Ig
YSB0aWxkZS4KK0xBTkdVQUdFIGlzIGEgd2hpdGVzcGFjZSBmcmVlIGxhbmd1YWdlIHN0cmluZy4i
CisgIChzZXRxIGxhbmd1YWdlCisgICAgICAgIChvciBsYW5ndWFnZQorICAgICAgICAgICAgKHJl
cGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICJbWzpibGFuazpdXSIgIiIKKyAg
ICAgICAgICAgICAobGV0ICgoY29tcGxldGlvbi1pZ25vcmUtY2FzZSBuaWwpCisgICAgICAgICAg
ICAgICAgICAgKGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICAgICAgKHNlcS1tYXAKKyAgICAg
ICAgICAgICAgICAgICAgICMnc3ltYm9sLW5hbWUKKyAgICAgICAgICAgICAgICAgICAgIChzZXEt
dW5pcQorICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKG1hcGNhciAjJ2NhciBtYXJrZG93
bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFwY2FyICMnY2FyIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlcykpKSkpKQorICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAg
ICAgICAgICAgICAgICJDb2RlIGJsb2NrIGxhbmd1YWdlOiAiCisgICAgICAgICAgICAgICAgY2Fu
ZGlkYXRlcworICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdjb25maXJtIDsg
UHJvbXB0IGlmIHRoZSBsYW5ndWFnZSBpcyBub3Qgb24gb3VyIGxpc3QuCisgICAgICAgICAgICAg
ICAgbmlsCisgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWxhbmd1YWdlLWhpc3RvcnkpKSkp
KQorICAobGV0ICgoZmVuY2Utc3RyaW5nIChtYWtlLXN0cmluZyAzIGNoYXIpKSkKKyAgICAoaWYg
KHVzZS1yZWdpb24tcCkKKyAgICAgICAgKGxldCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisg
ICAgICAgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAgICAgICAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAgIChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgKHVubGVzcyAoYm9s
cCkgKGluc2VydCAiXG4iKSkKKyAgICAgICAgICAgIChpbnNlcnQgZmVuY2Utc3RyaW5nICJcbiIp
CisgICAgICAgICAgICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAgIChpbnNlcnQgZmVuY2Ut
c3RyaW5nIGxhbmd1YWdlICJcbiIpKSkKKyAgICAgIChpbnNlcnQgZmVuY2Utc3RyaW5nIGxhbmd1
YWdlICJcblxuIiBmZW5jZS1zdHJpbmcpCisgICAgICAoZm9yd2FyZC1saW5lIC0xKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90ZSAoKQorICAiSW5zZXJ0IGEgYmxv
Y2sgcXVvdGUuIgorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQgKChiZWcgKHJlZ2lv
bi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgKGVuZCAoY29weS1tYXJrZXIgKHJlZ2lvbi1lbmQp
KSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQor
ICAgICAgICAgICh3aGlsZSAoPCAocG9pbnQpIGVuZCkKKyAgICAgICAgICAgIChpbnNlcnQgIj4g
IikKKyAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgMSkpKSkKKyAgICAoaW5zZXJ0ICI+ICIpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtZGl2aWRlciAoKQorICAiSW5zZXJ0IGEgaG9y
aXpvbnRhbCBydWxlLiIKKyAgKHVubGVzcyAoYm9scCkgKGluc2VydCAiXG4iKSkKKyAgKGluc2Vy
dCAiXG4tLS1cblxuIikpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tYXBwbHktZWxsaXBzaXMgKCkK
KyAgIkFwcGx5IGBtYXJrZG93bi10cy1lbGxpcHNpcycgdG8gdGhlIGN1cnJlbnQgYnVmZmVyJ3Mg
ZGlzcGxheSB0YWJsZS4iCisgIChpZiAoYW5kIChzdHJpbmdwIG1hcmtkb3duLXRzLWVsbGlwc2lz
KQorICAgICAgICAgICAobm90IChzdHJpbmctZW1wdHktcCBtYXJrZG93bi10cy1lbGxpcHNpcykp
KQorICAgICAgKGxldCAoKHRhYmxlIChvciBidWZmZXItZGlzcGxheS10YWJsZQorICAgICAgICAg
ICAgICAgICAgICAgICAobWFrZS1kaXNwbGF5LXRhYmxlKSkpKQorICAgICAgICAoc2V0LWRpc3Bs
YXktdGFibGUtc2xvdAorICAgICAgICAgdGFibGUgNAorICAgICAgICAgKHZjb25jYXQgKG1hcGNh
ciAobGFtYmRhIChjKSAobWFrZS1nbHlwaC1jb2RlIGMgJ3NoYWRvdykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWVsbGlwc2lzKSkpCisgICAgICAgIChzZXRxIGJ1ZmZl
ci1kaXNwbGF5LXRhYmxlIHRhYmxlKSkKKyAgICAod2hlbiBidWZmZXItZGlzcGxheS10YWJsZQor
ICAgICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QgYnVmZmVyLWRpc3BsYXktdGFibGUgNCBuaWwp
KSkpCisKKzs7OyBNYWpvciBtb2RlOgorCisoZGVmdW4gbWFya2Rvd24tdHMtb3V0bGluZS1jeWNs
ZSAoKQorICAiQ3ljbGUgdmlzaWJpbGl0eSBvZiB0aGUgaGVhZGluZyBhdCBwb2ludC4KK09uIGEg
aGVhZGluZywgY2FsbCBgb3V0bGluZS1jeWNsZScuICBPdGhlcndpc2UgZG8gbm90aGluZy4iCisg
IChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKG91dGxpbmUtb24taGVhZGluZy1wKQorICAgIChvdXRs
aW5lLWN5Y2xlKSkpCisKKyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLW1vZGUtbWFwCisgIDpk
b2MgIktleW1hcCBmb3IgYG1hcmtkb3duLXRzLW1vZGUnLiIKKyAgIk0tPGxlZnQ+IiAgICAjJ21h
cmtkb3duLXRzLXByb21vdGUKKyAgIk0tPHJpZ2h0PiIgICAjJ21hcmtkb3duLXRzLWRlbW90ZQor
ICAiTS08dXA+IiAgICAgICMnbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwCisgICJNLTxkb3du
PiIgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bgorICAiQy1jIEMtbiIgICAgICMn
b3V0bGluZS1uZXh0LWhlYWRpbmcKKyAgIkMtYyBDLXAiICAgICAjJ291dGxpbmUtcHJldmlvdXMt
aGVhZGluZworICAiQy1jIEMtdSIgICAgICMnb3V0bGluZS11cC1oZWFkaW5nCisgICJDLWMgQy1m
IiAgICAgIydvdXRsaW5lLWZvcndhcmQtc2FtZS1sZXZlbAorICAiQy1jIEMtYiIgICAgICMnb3V0
bGluZS1iYWNrd2FyZC1zYW1lLWxldmVsCisgICJDLWMgQy14IEMtZiIgIydtYXJrZG93bi10cy1l
bXBoYXNpemUKKyAgIkMtYyBDLXggQy1tIiAjJ21hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1
cAorICAiQy1jIEMteCBDLXYiICMnbWFya2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMKKyAg
IkMtYyBDLWMiICAgICAjJ21hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveAorICAiQy1jIEMtciIg
ICAgICMnbWFya2Rvd24tdHMtcmVudW1iZXItbGlzdAorICAiQy1jIEMtLCIgICAgICMnbWFya2Rv
d24tdHMtaW5zZXJ0LXN0cnVjdHVyZQorICAiQy1jIEMtdiBuIiAgICMnbWFya2Rvd24tdHMtbW92
ZS10by1uZXh0LWNvZGUtYmxvY2sKKyAgIkMtYyBDLXYgcCIgICAjJ21hcmtkb3duLXRzLW1vdmUt
dG8tcHJldmlvdXMtY29kZS1ibG9jaworICAiUkVUIiAgICAgICAgICMnbWFya2Rvd24tdHMtbmV3
bGluZQorICAiTS1SRVQiICAgICAgICMnbWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbQorICAi
VEFCIiAgICAgICAgICMnbWFya2Rvd24tdHMtb3V0bGluZS1jeWNsZSkKKworKGRlZnZhci1rZXlt
YXAgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLW1hcAorICA6ZG9jICJLZXltYXAgZm9yIGBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnLgorVGhlc2Ugb3ZlcnJpZGUga2V5cyBpbiBgbWFy
a2Rvd24tdHMtbW9kZS1tYXAnIHRvIHN1cHBvcnQgZXhlY3V0aW5nIHRoZWlyCitjb21tYW5kcyBp
biBhIGNvZGUtYmxvY2sgY29udGV4dC4iCisgIDpwYXJlbnQgbWFya2Rvd24tdHMtbW9kZS1tYXAK
KyAgIk0tLiIgICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXhyZWYtZmluZC1kZWZp
bml0aW9ucworICAiVEFCIiAgICAgICAgICMnaW5kZW50LWZvci10YWItY29tbWFuZAorICAiUkVU
IiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiQy1qIiAgICAg
ICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1SRVQiICAgICAgICMn
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1xIiAgICAgICAgICMnbWFya2Rv
d24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgpCisKKyhlYXN5LW1lbnUtZGVmaW5lIG1h
cmtkb3duLXRzLW1vZGUtbWVudSBtYXJrZG93bi10cy1tb2RlLW1hcAorICAiYG1hcmtkb3duLXRz
LW1vZGUnIG1lbnUuIgorICAnKCJNYXJrZG93biIgOnZpc2libGUgbWFya2Rvd24tdHMtbWVudS1i
YXItc2hvdworICAgICItLSIKKyAgICBbIkN5Y2xlIE91dGxpbmUgVmlzaWJpbGl0eSIgbWFya2Rv
d24tdHMtb3V0bGluZS1jeWNsZQorICAgICA6aGVscCAiQ3ljbGUgaGVhZGluZyB2aXNpYmlsaXR5
IGZyb20gcG9pbnQiXQorICAgIFsiVG9nZ2xlIEhpZGUgTWFya3VwIiBtYXJrZG93bi10cy10b2dn
bGUtaGlkZS1tYXJrdXAKKyAgICAgOnN0eWxlIHRvZ2dsZSA6c2VsZWN0ZWQgbWFya2Rvd24tdHMt
aGlkZS1tYXJrdXAKKyAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIG1hcmt1cCBjaGFyYWN0
ZXJzIl0KKyAgICBbIlRvZ2dsZSBJbmxpbmUgSW1hZ2VzIiBtYXJrZG93bi10cy10b2dnbGUtaW5s
aW5lLWltYWdlcworICAgICA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1pbmxp
bmUtaW1hZ2VzCisgICAgIDpoZWxwICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGJl
bG93IGxpbmtzIl0KKyAgICAiLS0iCisgICAgWyJVcCIgb3V0bGluZS11cC1oZWFkaW5nCisgICAg
IDpoZWxwICJNb3ZlIHRvIHRoZSBwYXJlbnQgaGVhZGluZyJdCisgICAgWyJOZXh0IiBvdXRsaW5l
LW5leHQtaGVhZGluZworICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIl0KKyAg
ICBbIlByZXZpb3VzIiBvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcKKyAgICAgOmhlbHAgIk1vdmUg
dG8gdGhlIHByZXZpb3VzIGhlYWRpbmciXQorICAgIFsiTmV4dCBTYW1lIExldmVsIiBvdXRsaW5l
LWZvcndhcmQtc2FtZS1sZXZlbAorICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5n
IGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICBbIlByZXZpb3VzIFNhbWUgTGV2ZWwiIG91dGxpbmUt
YmFja3dhcmQtc2FtZS1sZXZlbAorICAgICA6aGVscCAiTW92ZSB0byB0aGUgcHJldmlvdXMgaGVh
ZGluZyBhdCB0aGUgc2FtZSBsZXZlbCJdCisgICAgIi0tIgorICAgIFsiSnVtcCIgaW1lbnUKKyAg
ICAgOmhlbHAgIkp1bXAgdG8gYSBoZWFkaW5nIHZpYSBjb21wbGV0aW9uIl0KKyAgICAiLS0iCisg
ICAgWyJNb3ZlIFN1YnRyZWUgVXAiIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11cAorICAgICA6
aGVscCAiTW92ZSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGxpc3QgaXRlbSB1cCJdCisgICAgWyJN
b3ZlIFN1YnRyZWUgRG93biIgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24KKyAgICAgOmhl
bHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93biJdCisgICAgWyJQ
cm9tb3RlIiBtYXJrZG93bi10cy1wcm9tb3RlCisgICAgIDpoZWxwICJQcm9tb3RlIGhlYWRpbmcg
b3IgbGlzdCBpdGVtIl0KKyAgICBbIkRlbW90ZSIgbWFya2Rvd24tdHMtZGVtb3RlCisgICAgIDpo
ZWxwICJEZW1vdGUgaGVhZGluZyBvciBsaXN0IGl0ZW0iXQorICAgICItLSIKKyAgICBbIkVtcGhh
c2lzLi4uIiBtYXJrZG93bi10cy1lbXBoYXNpemUKKyAgICAgOmhlbHAgIkFkZCBvciBjaGFuZ2Ug
ZW1waGFzaXMgb24gcmVnaW9uIl0KKyAgICBbIkFkZCBCbG9jayBTdHJ1Y3R1cmUiIG1hcmtkb3du
LXRzLWluc2VydC1zdHJ1Y3R1cmUKKyAgICAgOmhlbHAgIkluc2VydCBhIGNvZGUgYmxvY2ssIHF1
b3RlLCBvciBvdGhlciBzdHJ1Y3R1cmUiXQorICAgICItLSIKKyAgICBbIlRvZ2dsZSBDaGVja2Jv
eCIgbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94CisgICAgIDpoZWxwICJUb2dnbGUgdGFzayBs
aXN0IGNoZWNrYm94IGF0IHBvaW50Il0KKyAgICBbIk5ldyBMaXN0IEl0ZW0iIG1hcmtkb3duLXRz
LWluc2VydC1saXN0LWl0ZW0KKyAgICAgOmhlbHAgIkluc2VydCBhIG5ldyBsaXN0IGl0ZW0gYWZ0
ZXIgdGhlIGN1cnJlbnQgb25lIl0KKyAgICBbIlJlbnVtYmVyIExpc3QiIG1hcmtkb3duLXRzLXJl
bnVtYmVyLWxpc3QKKyAgICAgOmhlbHAgIlJlbnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9p
bnQiXSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2V0LXVwICgpCisgICJTZXQgdXAgdGhlIGJ1
ZmZlciBmb3IgYG1hcmtkb3duLXRzLW1vZGUnLgorSWYgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5s
aW5lJyBpcyBub24tbmlsLCB1c2UgYSBsaWdodHdlaWdodCBzZXQgdXAgZm9yCitlbWJlZGRlZCBp
bmxpbmUgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcnMuCisKK05PVEU6IENhbGwgdGhpcyBmdW5j
dGlvbiBvbmx5IHdoZW4gdGhlIHRyZWVzaXQgYG1hcmtkb3duJyBhbmQKK2BtYXJrZG93bi1pbmxp
bmUnIHBhcnNlcnMgYXJlIGF2YWlsYWJsZS4iCisKKyAgOzsgU2V0IHRoZXNlIHVwIGZvciBib3Ro
IG1hc3RlciBhbmQgaW5saW5lIGZvciBjb2RlLWJsb2NrIGJ1ZmZlcnMuCisgIChzZXRxLWxvY2Fs
IGNvbW1lbnQtc3RhcnQgIjwhLS0gIgorICAgICAgICAgICAgICBjb21tZW50LWVuZCAiIC0tPiIK
KyAgICAgICAgICAgICAgY29tbWVudC1zdGFydC1za2lwICI8IS0tWyBcdF0qIgorICAgICAgICAg
ICAgICBjb21tZW50LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAgICAgICAgICAgIGNvbW1lbnQt
dXNlLXN5bnRheCBuaWwpCisKKyAgKHNldHEtbG9jYWwgZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24K
KyAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAg
ICAgZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbgorICAgICAgICAgICAgICAjJ21hcmtk
b3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKQorCisgIDs7IGBhZGFwdGl2ZS1maWxsLWZ1
bmN0aW9uJyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKKyAgOzsgYGFkYXB0aXZlLWZpbGwtcmVnZXhw
JzsgdGhlIGRlZmF1bHQgcmVnZXhwIGlzIGZpbmUgYXMgYQorICA7OyBmYWxsYmFjayBmb3IgcGxh
aW4gKG5vbi1saXN0KSBwYXJhZ3JhcGhzLgorICAoc2V0cS1sb2NhbCBhZGFwdGl2ZS1maWxsLWZ1
bmN0aW9uICMnbWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpCisKKyAgOzsgQ3JlYXRlIGFuZCBj
b25maWd1cmUgdGhlIHBhcnNlcnMuCisgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3du
LWlubGluZSkKKyAgKHNldHEgdHJlZXNpdC1wcmltYXJ5LXBhcnNlcgorICAgICAgICAodHJlZXNp
dC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikpCisKKyAgKHNldHEtbG9jYWwgZm9udC1sb2NrLWRl
ZmF1bHRzIG5pbCkKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MgbWFy
a2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpCi0gIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Ut
c2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykpCi0gIChhZGQtdG8tbGlzdCAn
Zm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgJ2ludmlzaWJsZSkKLQotICAod2hlbiAodHJl
ZXNpdC1yZWFkeS1wICdodG1sIHQpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnaHRtbCkK
LSAgICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQotICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS1m
b250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9u
dC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1z
ZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGlu
Z3MKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRp
bmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAg
ICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAg
ICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAg
ICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCi0gICAg
KHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBl
bmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAgICAgICAgICAgICAgICAg
ICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgICcoKGh0bWxfYmxvY2sp
IEBodG1sKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdodG1sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCi0KLSAgKHdoZW4gKHRyZWVzaXQtcmVh
ZHktcCAneWFtbCB0KQotICAgIChyZXF1aXJlICd5YW1sLXRzLW1vZGUpCi0gICAgKGRlZnZhciB5
YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFyIHlhbWwtdHMtbW9k
ZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQt
bG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2Nr
LXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1saXN0
Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAg
ICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQotICAgIChz
ZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICd5YW1sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAnKChtaW51c19tZXRhZGF0
YSkgQHlhbWwpKSkpKQotCi0gICh3aGVuICh0cmVlc2l0LXJlYWR5LXAgJ3RvbWwgdCkKLSAgICAo
cmVxdWlyZSAndG9tbC10cy1tb2RlKQotICAgIChkZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJl
LWxpc3QpCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAo
YXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICB0b21s
LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1m
b250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9u
dC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVh
dHVyZS1saXN0KSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAg
ICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAgICAgICAgICAgICAgICAgICAg
IDplbWJlZCAndG9tbAotICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgot
ICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1pdGVyIGhlYWRpbmcpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3JhcGgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3JhcGgtaW5saW5lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2UtcHJl
dmlldykpKQorCisgIChjb25kIChtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZQorICAgICAgICAg
IChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAg
ICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ21h
cmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAg
ICAgICAgICAgICAgICAgICAgICAgJygoaW5saW5lKSBAbWFya2Rvd24taW5saW5lKSkpKQorICAg
ICAgICAodAorICAgICAgICAgOzsgUmFuZ2Ugc2V0dGluZ3MgZGlmZmVyIGluIHRoZSBtYXN0ZXIg
YnVmZmVyIHZzLiBpbmxpbmUgYWJvdmUuCisgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJh
bmdlLXNldHRpbmdzIChtYXJrZG93bi10cy0tcmFuZ2Utc2V0dGluZ3MpKQorCisgICAgICAgICA7
OyBDb25maWd1cmUgZmVhdHVyZXMgbmVlZGVkIG9ubHkgaW4gdGhlIG1hc3RlciBidWZmZXIuCisK
KyAgICAgICAgIDs7IEltZW51IHN1cHBvcnQuCisgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LXNpbXBsZS1pbWVudS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgYCgoIkhlYWRpbmdz
IiAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uKQor
ICAgICAgICAgICAgICAgICAgICAgICAoIkNvZGUgQmxvY2tzIiAsIydtYXJrZG93bi10cy0taW1l
bnUtY29kZS1ibG9jay1ub2RlLXAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJr
ZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0aW9uKSkpCisKKyAgICAgICAgIDs7
IE91dGxpbmUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtb3V0bGluZS1w
cmVkaWNhdGUgIydtYXJrZG93bi10cy0tb3V0bGluZS1wcmVkaWNhdGUpCisgICAgICAgICAoc2V0
cS1sb2NhbCBvdXRsaW5lLW1pbm9yLW1vZGUtY3ljbGUgdCkKKyAgICAgICAgIChvdXRsaW5lLW1p
bm9yLW1vZGUgMSkKKyAgICAgICAgIChtYXJrZG93bi10cy0tYXBwbHktZWxsaXBzaXMpCisKKyAg
ICAgICAgIDs7IE5PVEU6IGBvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2snIHdhcyBvYnNvbGV0ZWQg
aW4gMjkuMSAoY29tbWl0CisgICAgICAgICA7OyA1M2IxZTZmOTZjYikgb24gdGhlIGdyb3VuZHMg
dGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQgbm8KKyAgICAgICAgIDs7IHJlcGxhY2Vt
ZW50IHdhcyBwcm92aWRlZCBhbmQgb3V0bGluZS5lbCBpdHNlbGYgc3RpbGwgcnVucyB0aGUgaG9v
aworICAgICAgICAgOzsgaW4gMTArIHBsYWNlcy4KKyAgICAgICAgICh3aXRoLXN1cHByZXNzZWQt
d2FybmluZ3MgKChvYnNvbGV0ZSBvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2spKQorICAgICAgICAg
ICAoYWRkLWhvb2sgJ291dGxpbmUtdmlldy1jaGFuZ2UtaG9vaworICAgICAgICAgICAgICAgICAg
ICAgIydtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSBuaWwgdCkpCisKKyAgICAgICAg
IChwcm9nbgorICAgICAgICAgICAobWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlk
ZS1tYXJrdXApCisgICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICdmb250LWxvY2stZXh0
cmEtbWFuYWdlZC1wcm9wcykKKyAgICAgICAgICAgKGRvbGlzdCAocHJvcCAnKGludmlzaWJsZSBk
aXNwbGF5IGJ1dHRvbiBjYXRlZ29yeSBhY3Rpb24gaGVscC1lY2hvKSkKKyAgICAgICAgICAgICAo
YWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2VkLXByb3BzIHByb3ApKSkKKworICAg
ICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAnaHRtbCB0KQorICAgICAgICAgICAodHJlZXNp
dC1wYXJzZXItY3JlYXRlICdodG1sKQorICAgICAgICAgICAocmVxdWlyZSAnaHRtbC10cy1tb2Rl
KQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQor
ICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tdHJlZXNpdC1mb250LWxvY2stZmVhdHVy
ZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRp
bmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxv
Y2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRy
ZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRy
ZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVl
c2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdo
dG1sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKChodG1sX2Jsb2NrKSBAaHRtbCkKKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQorCisgICAgICAgICAod2hlbiAodHJlZXNpdC1yZWFk
eS1wICd5YW1sIHQpCisgICAgICAgICAgIChyZXF1aXJlICd5YW1sLXRzLW1vZGUpCisgICAgICAg
ICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCisgICAgICAgICAg
IChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAg
ICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAg
ICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAor
ICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Cisg
ICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAg
ICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAneWFtbAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygobWludXNfbWV0
YWRhdGEpIEB5YW1sKSkpKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAndG9t
bCB0KQorICAgICAgICAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQorICAgICAgICAgICAoZGVm
dmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFy
IHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKKyAgICAgICAgICAgKHNldHEg
dHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVl
c2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgIHRvbWwtdHMt
bW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKKyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNp
dC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHRy
ZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdG9t
bC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKKyAgICAgICAgICAgKHNldHEtbG9j
YWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1i
ZWQgJ3RvbWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3du
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoKHBsdXNfbWV0YWRhdGEpIEB0b21sKSkpKSkKKworICAgICAg
ICAgOzsgU3VwcG9ydCBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzIGluIGEgY29kZS1ibG9jayBjb250
ZXh0LgorCisgICAgICAgICA7OyBFbmFibGUgdGhlIG1pbm9yIG1vZGUgYG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZScgYW5kIGl0cyBrZXltYXAKKyAgICAgICAgIDs7IHdoZW4gcG9pbnQgaXMg
d2l0aGluIGEgY29kZSBibG9jay4KKyAgICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhv
b2sKKyAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9jay1t
b2RlIG5pbCAnbG9jYWwpCisgICAgICAgICA7OyBJZiBgc2F2ZS1wbGFjZS1tb2RlJyBvciBzaW1p
bGFyIGlzIHVzZWQsIHBvaW50IGNvdWxkIHN0YXJ0IHdpdGhpbiBhCisgICAgICAgICA7OyBjb2Rl
IGJsb2NrIHNvIGluaXRpYWxpemUgdGhhdCBzdGF0ZS4KKyAgICAgICAgIChydW4td2l0aC1pZGxl
LXRpbWVyIDAuMDEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3du
LXRzLS1lbmFibGUtY29kZS1ibG9jay1tb2RlKQorICAgICAgICAgOzsgRm9yIGVhY2ggZWxpZ2li
bGUgY29tbWFuZCwgZXhlY3V0ZSBpdCBpbiBhIGNvZGUtYmxvY2sgY29udGV4dCwKKyAgICAgICAg
IDs7IG90aGVyd2lzZSBpbiB0aGUgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcidzIGNvbnRleHQu
CisgICAgICAgICAoYWRkLWhvb2sgJ3ByZS1jb21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAg
ICAjJ21hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIG5pbCAnbG9j
YWwpKSkKIAogICAodHJlZXNpdC1tYWpvci1tb2RlLXNldHVwKQotICAobWFya2Rvd24tdHMtLXNl
dC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCisKKyAgOzsgRG8gbm90IGVu
YWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5kaXJlY3QgYnVmZmVycyBzdWNoIGFzIHRoZSBvbmUK
KyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2NrIGNvbW1hbmRzLgorICAodW5sZXNzIChidWZmZXIt
YmFzZS1idWZmZXIpCisgICAgKGppdC1sb2NrLXJlZ2lzdGVyICMnbWFya2Rvd24tdHMtLWZvbnRp
ZnktYmFyZS11cmkpKQorCisgICh1bmxlc3MgbWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAg
ICA7OyBPcmRlciBtYXR0ZXJzOiBgbWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCcgY2FsbHMg
YGZvbnQtbG9jay1mbHVzaCcKKyAgICA7OyAob25seSBtZWFuaW5nZnVsIG9uY2UgYHRyZWVzaXQt
bWFqb3ItbW9kZS1zZXR1cCcgaGFzIHdpcmVkIHVwCisgICAgOzsgZm9udC1sb2NrKSwgYW5kIGBt
YXJrZG93bi10cy1kZWZhdWx0LWZvbGRpbmcnIGNhbGxzIG91dGxpbmUKKyAgICA7OyBjb21tYW5k
cyB0aGF0IHJlbHkgb24gYG91dGxpbmUtc2VhcmNoLWZ1bmN0aW9uJywgd2hpY2gKKyAgICA7OyBg
dHJlZXNpdC1tYWpvci1tb2RlLXNldHVwJyBpbnN0YWxscyBmcm9tIGB0cmVlc2l0LW91dGxpbmUt
cHJlZGljYXRlJy4KKyAgICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCkKKyAgICA7OyBSZXNwZWN0IHRoZSB1c2VyJ3MgZGVmYXVsdCBvdXRsaW5l
IGZvbGRpbmcuCisgICAgKHBjYXNlIG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZworICAgICAg
KCdzaG93LWFsbCAoaWdub3JlKSkKKyAgICAgICgnZm9sZC1hbGwgKG91dGxpbmUtaGlkZS1zdWJs
ZXZlbHMgMSkpCisgICAgICAoJ2ZvbGQtaGVhZGluZ3MgKG91dGxpbmUtc2hvdy1hbGwpCisgICAg
ICAgICAgICAgICAgICAgICAgKG91dGxpbmUtaGlkZS1yZWdpb24tYm9keSAocG9pbnQtbWluKSAo
cG9pbnQtbWF4KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2Vy
cyAoYXJnKQorICAiSW5zdGFsbCBgbWFya2Rvd24tdHMtbW9kZScgdHJlZS1zaXR0ZXIgbGFuZ3Vh
Z2UgcGFyc2Vycy4KK0lmIG5lZWRlZCwgaW5zdGFsbCB0aGUgcmVxdWlyZWQgcGFyc2VycyBmb3Ig
YG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScuCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50
LCBBUkcsIGlmIG5lZWRlZCwgaW5zdGFsbCBwYXJzZXJzIGZvciBgaHRtbCcsCitgeWFtbCcsIGFu
ZCBgdG9tbCcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAodW5sZXNzICh0cmVlc2l0LXJlYWR5
LXAgJ21hcmtkb3duIHQpCisgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICdt
YXJrZG93bikpCisgICh1bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAnbWFya2Rvd24taW5saW5lIHQp
CisgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICdtYXJrZG93bi1pbmxpbmUp
KQorICAod2hlbiBhcmcKKyAgICAodW5sZXNzICh0cmVlc2l0LXJlYWR5LXAgJ2h0bWwgdCkKKyAg
ICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCisgICAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1
YWdlLWdyYW1tYXIgJ2h0bWwpKQorICAgICh1bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAneWFtbCB0
KQorICAgICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwt
bGFuZ3VhZ2UtZ3JhbW1hciAneWFtbCkpCisgICAgKHVubGVzcyAodHJlZXNpdC1yZWFkeS1wICd0
b21sIHQpCisgICAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQorICAgICAgKHRyZWVzaXQtaW5z
dGFsbC1sYW5ndWFnZS1ncmFtbWFyICd0b21sKSkpKQogCiA7OzsjIyNhdXRvbG9hZAogKGRlZmlu
ZS1kZXJpdmVkLW1vZGUgbWFya2Rvd24tdHMtbW9kZSB0ZXh0LW1vZGUgIk1hcmtkb3duIgotICAi
TWFqb3IgbW9kZSBmb3IgZWRpdGluZyBNYXJrZG93biB1c2luZyB0cmVlLXNpdHRlciBncmFtbWFy
LiIKLQotICAoc2V0cS1sb2NhbCBjb21tZW50LXN0YXJ0ICI8IS0tICIpCi0gIChzZXRxLWxvY2Fs
IGNvbW1lbnQtZW5kICIgLS0+IikKLQotICAoc2V0cS1sb2NhbCBmb250LWxvY2stZGVmYXVsdHMg
bmlsCi0JICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBo
ZWFkaW5nKQotCQkJCQkgICAgICAgKHBhcmFncmFwaCkKLQkJCQkJICAgICAgIChwYXJhZ3JhcGgt
aW5saW5lKSkpCi0KLSAgKHNldHEtbG9jYWwgdHJlZXNpdC1zaW1wbGUtaW1lbnUtc2V0dGluZ3MK
LSAgICAgICAgICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy1pbWVudS1ub2RlLXAK
LSAgICAgICAgICAgICAgICAgbmlsICwjJ21hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24p
KSkKLSAgKHNldHEtbG9jYWwgdHJlZXNpdC1vdXRsaW5lLXByZWRpY2F0ZSAjJ21hcmtkb3duLXRz
LW91dGxpbmUtcHJlZGljYXRlKQotCi0gICh3aGVuIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3Rh
bGxlZCAnbWFya2Rvd24pCi0gICAgICAgICAgICAgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAn
bWFya2Rvd24taW5saW5lKSkKLSAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bi1p
bmxpbmUpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFya2Rvd24pCi0gICAgKG1hcmtk
b3duLXRzLXNldHVwKSkpCisgICJNYWpvciBtb2RlIGZvciBlZGl0aW5nIE1hcmtkb3duIHVzaW5n
IHRyZWUtc2l0dGVyIGdyYW1tYXIuCitOT1RFOiBTZWUgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5s
aW5lJy4iCisgIChpZiAoYW5kICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3duKQor
ICAgICAgICAgICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpKQor
ICAgICAgKG1hcmtkb3duLXRzLS1zZXQtdXApCisgICAgKHdhcm4gIm1hcmtkb3duLXRzLW1vZGUg
Y2Fubm90IGJlIHNldCB1cDsgdXNpbmcgZnVuZGFtZW50YWwtbW9kZS4KK1RoZSB0cmVlLXNpdHRl
ciBwYXJzZXJzIGBtYXJrZG93bicgYW5kIGBtYXJrZG93bi1pbmxpbmUnIHdlcmUgbm90IGZvdW5k
LgorVXNlIHRoZSBjb21tYW5kIGBtYXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycycgdG8g
aW5zdGFsbCB0aGVtLgorV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgaXQgY2FuIGFsc28gaW5zdGFs
bCBvcHRpb25hbCBwYXJzZXJzLiIpCisgICAgKGZ1bmRhbWVudGFsLW1vZGUpKSkKIAogKGRlcml2
ZWQtbW9kZS1hZGQtcGFyZW50cyAnbWFya2Rvd24tdHMtbW9kZSAnKG1hcmtkb3duLW1vZGUpKQog
Ci07OzsjIyNhdXRvbG9hZAotKGRlZnVuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUgKCkKLSAgIkVu
YWJsZSBgbWFya2Rvd24tdHMtbW9kZScgd2hlbiBpdHMgZ3JhbW1hciBpcyBhdmFpbGFibGUuCi1B
bHNvIHByb3Bvc2UgdG8gaW5zdGFsbCB0aGUgZ3JhbW1hciB3aGVuIGB0cmVlc2l0LWVuYWJsZWQt
bW9kZXMnCi1pcyB0IG9yIGNvbnRhaW5zIHRoZSBtb2RlIG5hbWUuIgotICAoZGVjbGFyZS1mdW5j
dGlvbiB0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICJ0cmVlc2l0LmMiKQotICAoaWYgKG9y
ICh0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICdtYXJrZG93bikKLSAgICAgICAgICAoZXEg
dHJlZXNpdC1lbmFibGVkLW1vZGVzIHQpCi0gICAgICAgICAgKG1lbXEgJ21hcmtkb3duLXRzLW1v
ZGUgdHJlZXNpdC1lbmFibGVkLW1vZGVzKSkKLSAgICAgIChtYXJrZG93bi10cy1tb2RlKQotICAg
IChmdW5kYW1lbnRhbC1tb2RlKSkpCisoZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlCisgICJNb2RlIGVuYWJsZWQgaWYgcG9pbnQgaXMgd2l0aGluIGEgZmVuY2Vk
IGNvZGUgYmxvY2suIgorICA6aW50ZXJhY3RpdmUgbmlsKQogCiA7OzsjIyNhdXRvbG9hZAogKHdo
ZW4gKGJvdW5kcCAndHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFsaXN0KQotICAoYWRkLXRvLWxp
c3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZFxcJyIgLiBtYXJrZG93bi10cy1tb2RlLW1heWJl
KSkKLSAgOzsgVG8gYmUgYWJsZSB0byB0b2dnbGUgYmV0d2VlbiBhbiBleHRlcm5hbCBwYWNrYWdl
IGFuZCBjb3JlIHRzLW1vZGU6CisgIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxc
Lm1kXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1h
bGlzdCAnKCJcXC5tYXJrZG93blxcJyIgLiBtYXJrZG93bi10cy1tb2RlKSkKKyAgKGFkZC10by1s
aXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwubWR4XFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQog
ICAoYWRkLXRvLWxpc3QgJ3RyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdAogICAgICAgICAg
ICAgICAgJyhtYXJrZG93bi1tb2RlIC4gbWFya2Rvd24tdHMtbW9kZSkpKQogCi0tIAoyLjUzLjAK
Cg==
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 19:01:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 15:01:53 2026
Received: from localhost ([127.0.0.1]:42277 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAudU-0003Tu-Nl
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 15:01:53 -0400
Received: from mail-vs1-xe2d.google.com ([2607:f8b0:4864:20::e2d]:56685)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1wAudR-0003Ta-B2
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 15:01:50 -0400
Received: by mail-vs1-xe2d.google.com with SMTP id
 ada2fe7eead31-60591ade110so806931137.1
 for <80740 <at> debbugs.gnu.org>; Thu, 09 Apr 2026 12:01:49 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1775761308; cv=none;
 d=google.com; s=arc-20240605;
 b=TZ9SqXNmKE39V5kTD3Yzzwfd1pQ2JuaJ+IL4SPjpyf9NvAiZcGzng/7wNbMML1G6no
 FCdWW1b57iyDGldBDkXcw6AlFJKXww/vy2Bhqr4A/iGTiq/nF4APNJ39w9X6w+dhbaei
 f9VE3lwWCD0HZ4LEdHEuBp8KIwae57vGGSd8QFgxX4jCgY+4uBuLflvjxx6IsB/Ix26I
 7eF4OKZOcqndI3JWuyILENyd1ZwwTvDZD4fgBYQ8cKv9ualgxA5jvZkCPpLay/p2SAlw
 He8XThDbXm3BVfXCtNup393XofjgTnQsqt6FGzUOAyD19iQnxp62qEmU79M4n0TGa0Uc
 GD0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=MU/GuptrJ1ol+K3SZfcaZcuzgUrGLCzN9I9RDSDsvjI=;
 fh=E1K4wF5t4FhEBsXrFNQ6leKfr8swX4Jk2WcgMjSoBfo=;
 b=ZsIcBd65tvKYwyilTrnICQG5baBzOYgcZOnH46m3yhUrWkfHa+z/GmNwqeQqi4BL3y
 iR8zTrsT+uUx7a89pw+uXsVeWWBhBOB8oIwmbq0H6qa/2hiQ2+25uY94afeLh48ryEBn
 fpkp+ID5NdO4HuE3oZaWM4PQnygo/bTuJEKfECHaYmeAeoPfDK3TXiGJbTCOMtZH9lRU
 t2dIAeS7y6Rgt5SrKLESAbY1SWFnqAx2s1PwNiA77ZHOfZzluZRpt/upkcJx7ZEn1Xwz
 Ko7GFXQ2Onzh54Y8qvmGhTlH3pngwVnZ6eAMNglVCloivHBkdh87rHr2oXjhKjh69wn/
 VfQQ==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775761308; x=1776366108; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=MU/GuptrJ1ol+K3SZfcaZcuzgUrGLCzN9I9RDSDsvjI=;
 b=P+8Xaz/EqAj93lDbG8ekSpZXwXiOSTlJ3wWVMjPOptMzvPWCpBpQyLpvyuWbngjQXa
 AtViaDjFgG2oHE3SSpIKL0STp5sHg6oo4i/oNnWKf87tCCkB0vhfbzV1bI3dHv4mj7gk
 jtY88n7n9YbSyExYnoyKYyg41x7r78IiLLWx3GQeSdZnxg9EWJboMr4sOMISfINlFmmi
 2aWCXu+HITSDINwNNCU/TaGFjeMhs+R+5GuAvw9fk5a8F526BP2P1F3d8FpjdlZIwmyj
 ju9hsz3Z4+80aBqqBNJlmy3JXP6OsCl2CVcKugwF2Hk2GfPBleIVa0fRnoxJPlkAJr1y
 uQzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775761308; x=1776366108;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=MU/GuptrJ1ol+K3SZfcaZcuzgUrGLCzN9I9RDSDsvjI=;
 b=VaJ9BqTjMyl1lEPYGn2dyf93LYJw8Ziiz4KkVaV15e2wYS6/5lF7slzUZSjxVCEJCZ
 tnOu2Kh14rjJQcQdTT3uu1uqyG6NNGOBTbMOQIKrIDhfEntujpcS3bUAOuoytaC9yzan
 xVb0RXu2RCvL2Z4MLaFjOe1Ft1iw1rZwhUlasS8DG8eiy+iV9mashSPO+ojO/Fjmb4yv
 bWtkGhjCPoTbu0q7ZavxCEBhvSF3ZFOFpUFThK2YtiFziq5j/vIUOXY7buxi/ddBokD2
 Y7vX3GK05GuVPphghpLzZ+kAP4df4uVAOLr3NN4JI9TZUlYp4hLCcKYNiBswDDrS6dW+
 0xfQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCUlEzPRZSLNOMFOFK8sgD13hXC9lTzslaidEVKSA97kVC6oFBMMBPCBpvgxXwdCoavioSFqag==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwkN6/BDoO+YCYNSN7yH0XDuTthEpr2sfbk5/wjib4VABZqVo3l
 qO9c1xbyXEpKXhyljkFjkiNfHGLBkH5SSjE2H3Dw1vhhtbNnxzk/KYVLgmpYCxhoDHJ/fZfzBOz
 DWczwct/dayM2Jas++UWfwZd0t8Q/JAE=
X-Gm-Gg: AeBDieudM+eFLn9D9cALDmsP4t823/isHyONjEUeIVr4sUqjaR+nXwM41NHyNVMQbbX
 PyuUyWW1tMBBWwOFaaa3jfShPLrBl22Smr+v6KBe+KZlGYzWZuKvOLFHAgGGL4fu62+TpGvim+l
 0aeRFfTG2CBfHeI9sLoyNdvGqjOUEIq4D5ePuUQRnuOoEgcwj6Dp1x89cR1AaMPHf3lJBbfO7He
 sbeo2hfxaP9pAMKWb7xtd6c4WwHIs1B5YP06c9SvKHgZj6VzkU2sI+Q3MpUksIri2Cdcu+QvwtR
 a6xWOZRWmVWJZgHD006jMmLJTwu4Skm8RbkWIhjEfbWfIcczXOGM6JjNMmHj27TdFhF8bV2zc4l
 0WEWxlvspRJW9Qe0d79g8I4EMSEZkbc3ql1RfOxk4AtcSKx7P+a9Rxy1ynEA=
X-Received: by 2002:a67:e706:0:b0:605:5801:cb3d with SMTP id
 ada2fe7eead31-60a00e4303amr71528137.28.1775761308352; Thu, 09 Apr 2026
 12:01:48 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <87v7e0ezkh.fsf@HIDDEN>
In-Reply-To: <87v7e0ezkh.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Thu, 9 Apr 2026 15:01:36 -0400
X-Gm-Features: AQROBzCoT0Zs1lu6Vy1opMDgjrW_VKDtkLZKmogK-f9lMm0cLcKzafhfS4qNF8g
Message-ID: <CAN+1HboguqPbRr54bQ79PT1axLBDQvGb+3MWdtHfKdArjwmw4g@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Juri Linkov <juri@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000fd840e064f0ba5a5"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

--000000000000fd840e064f0ba5a5
Content-Type: text/plain; charset="UTF-8"

On Thu, Apr 9, 2026 at 14:54 Juri Linkov <juri@HIDDEN> wrote:

> > (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses
> > markdown-ts-mode directly.
>
> Why?  'markdown-ts-mode-maybe' is intended to take into account
> the user customization in 'treesit-enabled-modes' that allows
> to define whether to use 'markdown-ts-mode' or 'markdown-mode'.


Isn't that what remappings are for?

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

<div dir=3D"auto"><span style=3D"font-family:-apple-system,sans-serif">On T=
hu, Apr 9, 2026 at 14:54 Juri Linkov &lt;<a href=3D"mailto:juri@HIDDEN"=
>juri@HIDDEN</a>&gt; wrote:</span><br></div><div dir=3D"auto"><div clas=
s=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">&gt;=
 (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses<br>
&gt; markdown-ts-mode directly.<br>
<br>
Why?=C2=A0 &#39;markdown-ts-mode-maybe&#39; is intended to take into accoun=
t<br>
the user customization in &#39;treesit-enabled-modes&#39; that allows<br>
to define whether to use &#39;markdown-ts-mode&#39; or &#39;markdown-mode&#=
39;.</blockquote><div dir=3D"auto"><br></div><div dir=3D"auto">Isn&#39;t th=
at what remappings are for?</div></div></div>

--000000000000fd840e064f0ba5a5--




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 18:55:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 14:55:03 2026
Received: from localhost ([127.0.0.1]:42185 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAuWr-0002k6-F2
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 14:55:03 -0400
Received: from mout-p-103.mailbox.org ([2001:67c:2050:0:465::103]:45756)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1wAuWg-0002gq-IJ
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 14:54:52 -0400
Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4fs8Hg1Yn1z9t1r;
 Thu,  9 Apr 2026 20:54:39 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1775760879;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=yrc0QUxD6zkonkN69PsBcAR96fvLcLRgeMPccJAD4Ec=;
 b=LkP8zQ/IFfNJ3beBcSiv/njRNaY/Dc+Vk/m8ewqehJnpMbApghDSGz/Xnzo2VV8if96iA0
 Og7ZoFGXep56T2kKH93E2mZ/tQ5gVFu1bNYI5qbwd8RzrH8/o0249ixTDyRnoCs0nk5ATC
 pffLJLLMXeILYT40VpZtQucxc7CDfvqN2uwahpO4wkP+p2aJtz83xIKXKemTpRuh0K5uka
 sz9NHsbKeThZOJHDo5u0gffgitm9rOgae/MVhhpwgTiH/qhbvmRpQvRPpBq026KlBm6GsT
 CpySxSsxEk/hrNwnVxlL9hxmHVnJEwsot64bqTCEDX0GXjVts6diGlk+9FTb8g==
From: Juri Linkov <juri@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <m25x61f1ch.fsf@HIDDEN>
Organization: LINKOV.NET
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN>
Date: Thu, 09 Apr 2026 21:52:30 +0300
Message-ID: <87v7e0ezkh.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, 80740 <at> debbugs.gnu.org,
 =?iso-8859-1?Q?St=E9phane?= Marks <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses
> markdown-ts-mode directly.

Why?  'markdown-ts-mode-maybe' is intended to take into account
the user customization in 'treesit-enabled-modes' that allows
to define whether to use 'markdown-ts-mode' or 'markdown-mode'.




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 08:31:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 04:31:40 2026
Received: from localhost ([127.0.0.1]:36901 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAknb-0004ay-AU
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 04:31:39 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:40092)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1wAknW-0004ah-A2
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 04:31:37 -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 1wAknQ-0006zV-Ut; Thu, 09 Apr 2026 04:31:28 -0400
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=WhFv6ifkCgnr25HQtJS26BKXbsJ+VNnk7woxtPfMBAQ=; b=cah4AKur+q6bIWQPj1fm
 EPxnwUf+OTh58L1djAbrXx16T0Q5W7MGhDZbHI8xsnkxEjyasMF1Lqb8am1vO31e04Mj4D6r52ECE
 0sy5V6gAkKfdlJTTUIahKueRq7FSQwFSwEmtJEq5QK9jcPRVMkiCawj2T8cTMqgSrRp4imEa6mZ/1
 uAREUDqZtFedj3CU4gTkJn3iMGPqpSB6e7UDA5S9rqr+Y4z7OzkwhAtVmmrNp1GzfRmEHqdYgvMYn
 nqdFjNpQm//vkdYAiDVEUHlM6J8Q1Q9iVF1LfDseOIEgOeRimhCoUQrjEErlqAqaY8qdAPq5I+4nG
 zdDNW2dwldxO5w==;
Date: Thu, 09 Apr 2026 11:31:24 +0300
Message-Id: <86v7e0v8kj.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
In-Reply-To: <m25x61f1ch.fsf@HIDDEN> (message from Rahul Martim Juliato on
 Wed, 08 Apr 2026 21:01:50 -0300)
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80740
Cc: casouri@HIDDEN, 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
>  80740 <at> debbugs.gnu.org
> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
> Date: Wed, 08 Apr 2026 21:01:50 -0300
> 
> +(defcustom markdown-ts-checked-checkbox "☑"
> +  "If markup is hidden, display this checked task list string.
> +nil displays the raw markup."
> +  :type '(choice (string :tag "Display specified string")
> +                 (const  :tag "Display original markup" nil))
> +  :safe #'string-or-null-p
> +  :version "31.1"
> +  :package-version "1.0")
> +
> +(defcustom markdown-ts-unchecked-checkbox "☐"
> +  "If markup is hidden, display this unchecked task list string.
> +nil displays the raw markup."
> +  :type '(choice (string :tag "Display specified string")
> +                 (const  :tag "Display original markup" nil))
> +  :safe #'string-or-null-p
> +  :version "31.1"
> +  :package-version "1.0")

These non-ASCII characters should not be used without checking if they
can be displayed (see char-displayable-p).  This is especially
important on TTY frames.  Bonus points for designing ASCII
replacements for when these non-ASCII symbols cannot be displayed.

> +(defcustom markdown-ts-thematic-break-character ?─
> +  "If markup is hidden, display this thematic break string.
> +The character is repeated to fill the window width.
> +nil displays the raw markup."
> +  :type '(choice (character :tag "Display specified character")
> +                 (const     :tag "Display original markup" nil))
> +  :version "31.1"
> +  :package-version "1.0")
> +
> +(defcustom markdown-ts-hard-line-break-backslash "¶"
> +  "If markup is hidden, display this for a backslash hard line break.
> +The value can be a character or a string; nil keeps the raw markup."
> +  :type '(choice (character :tag "Display specified character")
> +                 (string    :tag "Display specified string")
> +                 (const     :tag "Display original markup" nil))
> +  :version "31.1"
> +  :package-version "1.0")

Same here.

> +(defcustom markdown-ts-hard-line-break-space
> +  (lambda (n) (make-string n ?¶))

Why is ?¶ hard-coded, instead of using
markdown-ts-hard-line-break-backslash?

> +(defface markdown-ts-emphasis '((t (:inherit italic)))
> +  "Face for Markdown emphasis (italic) text.")
> +
> +(defface markdown-ts-bold '((t (:inherit bold)))
> +  "Face for Markdown strong emphasis (bold) text.")
> +
> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
> +  "Face for Markdown strikethrough text.")
>  
>  (defface markdown-ts-block-quote '((t (:inherit italic)))
>    "Face for Markdown block quotes.")
>  
> +(defface markdown-ts-link '((t (:inherit link)))
> +  "Face for Markdown link text and image descriptions.")

Is it justified to have separate faces here?  Why would users want to
have something other than 'bold' for showing the bold face in MD
buffers?

Also, faces can (and I think should in this case) have the :version
tag.

> +(defun markdown-ts--code-block-language-mode (lang)
> +  "Compute and cache a mode symbol from LANG, a symbol.
> +Consult the `markdown-ts-code-block-map' cache, or probe mode names.
> +Return a valid mode symbol or nil."
> +  (if-let* ((mapped-mode (alist-get lang markdown-ts-code-block-modes)))
> +      mapped-mode
> +    (let ((lang-string (symbol-name lang)))
> +      (catch :mode
> +        (dolist (mode
> +                 (list
> +                  ;; Try a treesit mode using the raw string.
> +                  (concat lang-string "-ts-mode")
> +                  ;; Try a conventional mode using the raw string.
> +                  (concat lang-string "-mode")
> +                  ;; Try a treesit mode using the downcased string.
> +                  (concat (downcase lang-string) "-ts-mode")
> +                  ;; Try a conventional mode using the downcased string.
> +                  (concat (downcase lang-string) "-mode")))
> +          (setq mode (intern mode))
> +          (when (fboundp mode)
> +            (push (cons lang mode) markdown-ts-code-block-modes)
> +            (throw :mode mode)))))))

I think this should use treesit-major-mode-remap-alist and
major-mode-remap-alist, at least before falling back on the above
hard-coded conventional modes, if not instead that.  This will allow
users to customize these remappings only once.

> +(define-minor-mode markdown-ts-code-block-mode
> +  "Mode enabled if point is within a fenced code block."
> +  :interactive nil)

Does this mean this mode is enabled automatically?

Thanks.




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 05:45:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 01:45:35 2026
Received: from localhost ([127.0.0.1]:36173 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAiCs-0008Ox-Qa
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 01:45:35 -0400
Received: from mail-dy1-x1335.google.com ([2607:f8b0:4864:20::1335]:50655)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1wAiCo-0008Ol-LF
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 01:45:33 -0400
Received: by mail-dy1-x1335.google.com with SMTP id
 5a478bee46e88-2bdd40d3c61so285237eec.1
 for <80740 <at> debbugs.gnu.org>; Wed, 08 Apr 2026 22:45:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775713529; x=1776318329; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=QqiNRoBmbtp/pBiycWi/nMje0Icv2NRqih5JBtBKcaI=;
 b=Bvi4iJAAIMSPCXN9vhn/T3If4vpAYKAunJEbrjGY5XK4a0IqJwRRUKZ699qqarX/hU
 e/NJBU2wOAyo90PAjAqzx00re22YE/lQ6Up3CMQyjF/dKP3EA11K3DFgg6MONmkYHrse
 CsBDKSGC67D9xyoh8jN3sw5cN+rJh3X8dzAN+MInVFEfoJfiYA9GJ6U3AUBG9KdDBkJP
 1Ck01VMUixJw8vp8kqBvHRVUGQcWjmBHqX84FeCGzdeCATCLHXz3XuuULGa7GlfCSVOQ
 Q7sal5vVN544Mc1E7bJZOeerl5C27P++sNKvPKLVhqpDGsWMSwUKPz1aIWJiFJzIIkuK
 ZqIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775713529; x=1776318329;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=QqiNRoBmbtp/pBiycWi/nMje0Icv2NRqih5JBtBKcaI=;
 b=YfpBkQk92YIHGyJF1LTHgA9I32WiLEC0v4JY66l61BPTW5NU088yywUKCk9/OILeOE
 ZyS6ILWIvqCGLAd9ju5OzzCn/f3EsqvDdPeqOk3iK9Em2VfTGESwEryZ/HJamCDOS2Qa
 g/AU2B1SrGP/KuOsShXpigCDBELxXR1w5sAmaNQ3r/xgEhKgJakhO69qoJO4zWAalO9g
 /2rqTr35imvDvS/QI/IGrMGaAwFM8m30KgbDK74Ds9iTGXARXGUPFHjGBofV0Cj3xe10
 qGTJLgPwvgyJEqvEmXr57UkOfB2T93Q1LivSJBE5/XbFmK4CRMQN+MntPeY0JjKmyEGO
 vQ2Q==
X-Forwarded-Encrypted: i=1;
 AJvYcCVUd10qYQZIxOI8+f8cvuPjVHcZE2dUaXwM8wOTFqb1UXTXEiBP0YIFrIWlOr8/PFkEnuW59Q==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyweeWBqq7GRYjubRLuxicBBClL0Az/uJjmA74YiAK8V+IvkyUN
 IGRYpq3QKZHXVYGkhvOR8bZYHzKBY1zCV49OsRAG9kcDtBmfjaz+QxJr
X-Gm-Gg: AeBDietfLxjCOPIqz406usUHIFiSqLsqUjGZ5cS/oQ4YPTMkfPAHda65MwSEN221eXn
 BMCaF3UNHq98XwPemSSUITTEey/sobvUJ9kKPIVH9/vlzWp0XVgvDfQmH3zYP1RfAOhxmmhbTsz
 E84fXTzNxKSDCAi3R8Q3jfKwK/jKhSD/KAjF73SPuQ1a0oA71EVeyM5/Fstr2rphp/GM63c9qUB
 jzxzDqlNbgTdrXudpuXsx+A8MzrQeGP/lvuwIICsBaM8fGbqXm1Y1r+++/WrBJO5BxP8gWe4Kau
 ZZCgOuiGAjT65YB7VFfLFNZySLZ2BAZy4uAOKoUtVTBkh/E6nNm+MN3+1z+eVZ9flH6Zaj4vggK
 9KfKI59ph5kBRNfl9ZoJRBIFZUtv4qXJvc8CRz+kMA0lJy72b3n/MtSgIhjve6wjChB33bLCwDk
 xrucBCYxzzPuAoDjevdjnx0Fep/UL0VAkog0/y4/v3SvPe0w==
X-Received: by 2002:a05:7300:cd95:b0:2d1:815f:19c1 with SMTP id
 5a478bee46e88-2d40defaf78mr1135503eec.15.1775713529097; 
 Wed, 08 Apr 2026 22:45:29 -0700 (PDT)
Received: from smtpclient.apple ([2601:645:c686:b320:4df2:2814:ca07:ef2b])
 by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2cba5df5c24sm22582646eec.27.2026.04.08.22.45.28
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 08 Apr 2026 22:45:28 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
From: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <m25x61f1ch.fsf@HIDDEN>
Date: Wed, 8 Apr 2026 22:45:17 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <48ABDEF6-BEBA-40E9-8124-72CBBC1E1EC6@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Mailer: Apple Mail (2.3826.700.81)
X-Spam-Score: 2.7 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > On Apr 8, 2026, at 5:01 PM, Rahul Martim Juliato wrote:
    > > Stéphane Marks writes: > >> On Fri, Apr 3, 2026 at 11:08 PM Rahul
   Martim Juliato wrote: >> >> Hello, >> >> I'm submitting a com [...] 
 
 Content analysis details:   (2.7 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (casouri[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:1335 listed in]
                             [list.dnswl.org]
  1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                             [URIs: codeberg.org]
X-Debbugs-Envelope-To: 80740
Cc: 80740 <at> debbugs.gnu.org,
 =?utf-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.7 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > On Apr 8, 2026, at 5:01 PM, Rahul Martim Juliato wrote:
    > > Stéphane Marks writes: > >> On Fri, Apr 3, 2026 at 11:08 PM Rahul
   Martim Juliato wrote: >> >> Hello, >> >> I'm submitting a com [...] 
 
 Content analysis details:   (1.7 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                             [URIs: codeberg.org]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:1335 listed in]
                             [list.dnswl.org]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (casouri[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager



> On Apr 8, 2026, at 5:01=E2=80=AFPM, Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>=20
> St=C3=A9phane Marks <shipmints@HIDDEN> writes:
>=20
>> On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>>=20
>> Hello,
>>=20
>> I'm submitting a comprehensive patch that significantly improves
>> 'markdown-ts-mode'. I want to briefly explain the context, as the =
size
>> of this patch may raise concerns.
>>=20
>> When 'markdown-ts-mode' was first merged into Emacs, it was
>> intentionally minimal: roughly 100 lines, just enough to get =
something
>> working, with the expectation of incremental improvements.
>>=20
>> In recent months, as users started testing the mode, several issues =
were
>> reported: font-lock leaking beyond code blocks, fill-paragraph =
merging
>> list items, missing faces, non-clickable links, and lack of editing,
>> navigation, and folding support. The mode worked for basic
>> fontification, but was not yet suitable for regular use.
>>=20
>> I decided to put my other projects on hold and work through these
>> reports one by one. What began as a set of focused fixes evolved into =
a
>> broader rework of the mode=E2=80=99s internals. Over time, the =
implementation
>> grew from ~100 lines to approximately 2800.
>>=20
>> This work was done in close collaboration with St=C3=A9phane Marks, =
whose
>> reviews, patches, and discussions significantly influenced the design
>> and implementation. I consider him a co-author of this work.
>>=20
>> Due to strong interdependencies, the changes could not be cleanly =
split
>> into smaller independent patches. As a result, this is submitted as a
>> single comprehensive change.
>>=20
>> Important note: there are no breaking changes.
>>=20
>> Existing behavior is preserved, and all changes are additive. Users =
of
>> 'markdown-ts-mode' will see the same buffers, with improved =
correctness,
>> additional features, and fewer bugs.
>>=20
>> Before describing the features, this patch also addresses several bug
>> fixes:
>>=20
>> 1. fill-paragraph merged adjacent list items into a single paragraph
>>    (bug#80613).
>>=20
>> 2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode =
for
>>    the rest of the session, due to modifying
>>    font-lock-extra-managed-props globally instead of buffer-locally.
>>    Fixed using setq-local (bug#80690).
>>=20
>> 3. Nested or indented list items were filled incorrectly due to =
column
>>    alignment issues (bug#80625).
>>=20
>> 4. Font-lock leaked beyond code blocks due to appended range settings
>>    from embedded language modes.
>>=20
>> 5. Recursive Markdown code blocks had no fontification.
>>=20
>> Some known limitations originate from the tree-sitter grammar and are
>> documented in the code (e.g., HTML block handling and block quote
>> embedding limitations).
>>=20
>> The mode now includes:
>>=20
>> Fontification:
>> * Dedicated faces for all Markdown elements
>> * Extended coverage (tables, entities, etc.)
>>=20
>> Links:
>> * Clickable inline, reference, and automatic links
>> * Reference resolution cache
>>=20
>> Code blocks:
>> * Tree-sitter and non-tree-sitter language support
>> * Embedded editing via markdown-ts-code-block-mode
>>=20
>> Editing:
>> * Heading and list manipulation
>> * Context-aware newline behavior
>> * Structure insertion helpers
>> * Checkbox toggling
>>=20
>> Navigation:
>> * Imenu and outline integration
>> * Heading traversal commands
>>=20
>> Fill:
>> * Correct handling of lists, block quotes, and comments
>>=20
>> Visual:
>> * Inline images
>> * Markup hiding
>> * Menu integration
>>=20
>> Additional resources for evaluation:
>> * Full feature checklist:
>>   =
https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/feature=
s.md
>>=20
>> * Test file:
>>   =
https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/test.md=

>>=20
>> * Screenshots:
>>   =
https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo
>>=20
>> Overall, this patch brings 'markdown-ts-mode' from a minimal =
prototype
>> to a mode that is practical for everyday Markdown editing.
>>=20
>> With this foundation in place, the remaining items in the feature =
list
>> are already in progress, and features such as exporting, HTML =
preview,
>> and a test suite can be added with less disruption.
>>=20
>> Thank you for your time and review.
>>=20
>> Adding Yuan.
>>=20
>=20
> Hello,
>=20
> Please find attached an updated version of the patch for
> `markdown-ts-mode`.
>=20
> St=C3=A9phane and I worked on addressing some rough edges and making a =
few
> incremental improvements. This version expands feature coverage,
> improves code block handling, navigation, and provides better
> performance overall.
>=20
> Please consider this updated patch for review.
>=20
> The feature list, test files, and demo screenshots have all been =
updated
> and are available at:
> https://codeberg.org/LionyxML/markdown-ts-mode-lab/
>=20
> Note: since this patch renames the mode activation function, a full
> rebuild (e.g., `make bootstrap`) may be required when testing.
>=20
> Thank you for your time and review.
>=20
> --=20
> Rahul Martim Juliato
>=20
> <0001-Improve-markdown-ts-mode.patch>

Cool, I=E2=80=99ll look at it and get back!

Yuan=




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 00:02:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 08 20:02:00 2026
Received: from localhost ([127.0.0.1]:60110 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAcqO-0003me-GR
	for submit <at> debbugs.gnu.org; Wed, 08 Apr 2026 20:02:00 -0400
Received: from mail-dy1-x132a.google.com ([2607:f8b0:4864:20::132a]:54573)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wAcqL-0003mK-I0
 for 80740 <at> debbugs.gnu.org; Wed, 08 Apr 2026 20:01:58 -0400
Received: by mail-dy1-x132a.google.com with SMTP id
 5a478bee46e88-2ba9c484e5eso175502eec.1
 for <80740 <at> debbugs.gnu.org>; Wed, 08 Apr 2026 17:01:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775692916; x=1776297716; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=W51VnZVjkL0Z+kXf4XwYaljOUTLe6hvjsZ+slExsQY8=;
 b=FGWaKx6AIy5pi4qBsA7zHDQ9nEByBZkFBIbuZA4IbgWMTnpV7Okxrh1jR4KhyweZqd
 QJOoaFsnudi+4o7MCcINmeqx9ihFWpF8+aGT4v7Ddp7xCd4SCR/lLIBiJZmO0xfOiBEG
 4KJspJGbPZ0vQf1oi6OmtMxzn7gqFi8GaZ2hm+YE8tH2lU1T8ZmNOzaP66/W1o3B9VGv
 z5IvN/RVF4ugMsxcNempY6i4b9D8qS3wUYxdO8zCKoRsDhlTJgNRKKJQRRFiJf480WMH
 dMR37JlNQ1w1wBA5e6ZRST42bHMo4FCco9Si+ctpzYwcTCHCyQWt8Maxqgo8efzWhyaW
 6SwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775692916; x=1776297716;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=W51VnZVjkL0Z+kXf4XwYaljOUTLe6hvjsZ+slExsQY8=;
 b=e153fsursQ49EFlLYvbKbiA7mRMT4FY+ZyAewfi/WICHbgE/NPMXCsiyKh7fhvMU5a
 +Q0t7snUfl5F3iNzo8ApFYiZlHTB7616SdNEdq9+Q2uEMJAZg9pR9Gi7ghzrtJ45JpPa
 NUDqM+zUlOulOA/rWmRlZUlND2gtxOVsN2fuxkkWhSDzzFlR5FFHfSQR5XbGf8sa1Dgf
 /ZxQBl8WqcdbQU2jocXTqux2JGWodOrsxeyXm7mSAWrJ2D9GOYcWeAj4Hm0AJynYA583
 uT8q0T3HuJlanczPogsyVqjRNaYDvPUTvItXt7kr5QO05aFKm4J+pdIckYxaXwzQZiIH
 Oqpg==
X-Forwarded-Encrypted: i=1;
 AJvYcCWHZEw48uYrXtw3vYHV91cZiPCLRbm1evDGnNxHAOnOokX9tnM0AfT9tVDY4Po1WqCD4qlk+w==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YznLcCFyr+/6q0HbtgEtgr9kqqXmkAS/wmVXvB+q0dPle/kH//E
 TQMDq0cUCbJ63/5y0C0SXskx3Iir9Ty+dizgh6aI8pi6+RU+bP8F2drb
X-Gm-Gg: AeBDietZVdLYDXx/yXzoXIYeSWspBkChRHstJj93a8PsC1g55E9XB+gBqN/ez1uJ1Tm
 2Xu+hjxQxng47TsJdt7fQoOis0SmryuTaT28ZBUM71ABkTwJfXfoUtHae1z6rzF+07QQxb3Kq5x
 xctyCr8xNbqYE7WoD9Ol3oBlXEbVjyjJyXDi+C3oPxe6/3LnfDMqI765KzoADiyO1JB+S9+AeFm
 fFdEzJvi2UKXLZnUi0p65l+HAyqAJg9mhyh1d6y70O3eZAN7oogjTuPxHnp4vAXmmKx/wgb957U
 ozqfeM4OXcWK6YyYgu9zaQJlP0Hf19MQSY4liMAHn85U0ec1+ted5g+8DkXbmENUUbDq7C3OQ0h
 sfO7pYnOBvxJlB8Mqsad4/22hz394BHsKkjWohXdSnWJt2pF5OldF+dGlJYWiYIuY7nsUzRnePM
 9YFFLgUcMUyc8Q77ypFAAlcRTOmAUDCJFIRMQSX4Qs3/THFrUeVbT8hY8tSOdlA2RMNLUvw0KfI
 9tFLSZ+8FDr/oTl59FPbaQ=
X-Received: by 2002:a05:693c:2286:b0:2c0:d46d:cfc2 with SMTP id
 5a478bee46e88-2d40e6e08ffmr854433eec.23.1775692915634; 
 Wed, 08 Apr 2026 17:01:55 -0700 (PDT)
Received: from MacBook-Pro.local ([185.153.176.105])
 by smtp.gmail.com with ESMTPSA id
 a92af1059eb24-12c0ce7dfe8sm15564533c88.3.2026.04.08.17.01.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 08 Apr 2026 17:01:54 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: =?utf-8?Q?St=C3=A9phane?= Marks <shipmints@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Wed, 08 Apr 2026 21:01:50 -0300
Message-ID: <m25x61f1ch.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

St=C3=A9phane Marks <shipmints@HIDDEN> writes:

> On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato <rahuljuliat=
o@HIDDEN> wrote:
>
>  Hello,
>
>  I'm submitting a comprehensive patch that significantly improves
>  'markdown-ts-mode'. I want to briefly explain the context, as the size
>  of this patch may raise concerns.
>
>  When 'markdown-ts-mode' was first merged into Emacs, it was
>  intentionally minimal: roughly 100 lines, just enough to get something
>  working, with the expectation of incremental improvements.
>
>  In recent months, as users started testing the mode, several issues were
>  reported: font-lock leaking beyond code blocks, fill-paragraph merging
>  list items, missing faces, non-clickable links, and lack of editing,
>  navigation, and folding support. The mode worked for basic
>  fontification, but was not yet suitable for regular use.
>
>  I decided to put my other projects on hold and work through these
>  reports one by one. What began as a set of focused fixes evolved into a
>  broader rework of the mode=E2=80=99s internals. Over time, the implement=
ation
>  grew from ~100 lines to approximately 2800.
>
>  This work was done in close collaboration with St=C3=A9phane Marks, whose
>  reviews, patches, and discussions significantly influenced the design
>  and implementation. I consider him a co-author of this work.
>
>  Due to strong interdependencies, the changes could not be cleanly split
>  into smaller independent patches. As a result, this is submitted as a
>  single comprehensive change.
>
>  Important note: there are no breaking changes.
>
>  Existing behavior is preserved, and all changes are additive. Users of
>  'markdown-ts-mode' will see the same buffers, with improved correctness,
>  additional features, and fewer bugs.
>
>  Before describing the features, this patch also addresses several bug
>  fixes:
>
>  1. fill-paragraph merged adjacent list items into a single paragraph
>     (bug#80613).
>
>  2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for
>     the rest of the session, due to modifying
>     font-lock-extra-managed-props globally instead of buffer-locally.
>     Fixed using setq-local (bug#80690).
>
>  3. Nested or indented list items were filled incorrectly due to column
>     alignment issues (bug#80625).
>
>  4. Font-lock leaked beyond code blocks due to appended range settings
>     from embedded language modes.
>
>  5. Recursive Markdown code blocks had no fontification.
>
>  Some known limitations originate from the tree-sitter grammar and are
>  documented in the code (e.g., HTML block handling and block quote
>  embedding limitations).
>
>  The mode now includes:
>
>  Fontification:
>  * Dedicated faces for all Markdown elements
>  * Extended coverage (tables, entities, etc.)
>
>  Links:
>  * Clickable inline, reference, and automatic links
>  * Reference resolution cache
>
>  Code blocks:
>  * Tree-sitter and non-tree-sitter language support
>  * Embedded editing via markdown-ts-code-block-mode
>
>  Editing:
>  * Heading and list manipulation
>  * Context-aware newline behavior
>  * Structure insertion helpers
>  * Checkbox toggling
>
>  Navigation:
>  * Imenu and outline integration
>  * Heading traversal commands
>
>  Fill:
>  * Correct handling of lists, block quotes, and comments
>
>  Visual:
>  * Inline images
>  * Markup hiding
>  * Menu integration
>
>  Additional resources for evaluation:
>  * Full feature checklist:
>    https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/fea=
tures.md
>
>  * Test file:
>    https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/tes=
t.md
>
>  * Screenshots:
>    https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo
>
>  Overall, this patch brings 'markdown-ts-mode' from a minimal prototype
>  to a mode that is practical for everyday Markdown editing.
>
>  With this foundation in place, the remaining items in the feature list
>  are already in progress, and features such as exporting, HTML preview,
>  and a test suite can be added with less disruption.
>
>  Thank you for your time and review.
>
> Adding Yuan.
>

Hello,

Please find attached an updated version of the patch for
`markdown-ts-mode`.

St=C3=A9phane and I worked on addressing some rough edges and making a few
incremental improvements. This version expands feature coverage,
improves code block handling, navigation, and provides better
performance overall.

Please consider this updated patch for review.

The feature list, test files, and demo screenshots have all been updated
and are available at:
https://codeberg.org/LionyxML/markdown-ts-mode-lab/

Note: since this patch renames the mode activation function, a full
rebuild (e.g., `make bootstrap`) may be required when testing.

Thank you for your time and review.

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSA2ODNhOTNmYTY4Nzg2NTljYmI0Nzc1YjdmZmJmNWYxYTEwMjIyMGM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYW5kIGEgbW9kZSBt
ZW51LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwK
UGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRzIGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29t
bWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9yIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMs
IGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUt
c2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUgJ2dvdG8tYWRkciwgeHJlZik6IE5ldyByZXF1
aXJlbWVudHMuCihtYXJrZG93bi10cyk6IE5ldyBjdXN0b21pemF0aW9uIGdyb3VwIHdpdGggOnZl
cnNpb24gYW5kCjpwYWNrYWdlLXZlcnNpb24gdGFncy4KKG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
KTogQWRkIDp2ZXJzaW9uIGFuZCA6cGFja2FnZS12ZXJzaW9uLgoobWFya2Rvd24tdHMtZWxsaXBz
aXMpOiBOZXcgb3B0aW9uIGZvciBmb2xkZWQgaGVhZGluZyBlbGxpcHNpcy4KKG1hcmtkb3duLXRz
LW1lbnUtYmFyLXNob3cpOiBOZXcgb3B0aW9uIHRvIHRvZ2dsZSBtb2RlIG1lbnUuCihtYXJrZG93
bi10cy1kZWZhdWx0LWZvbGRpbmcpOiBOZXcgb3B0aW9uIGZvciBkZWZhdWx0IGZvbGQKbGV2ZWwu
CihtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKTogTmV3IG9wdGlvbiB0byBkaXNwbGF5IGlubGlu
ZQppbWFnZXMuCihtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGgpOiBOZXcgb3B0aW9uIGZvciBp
bWFnZSBtYXggd2lkdGguCihtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxpbmUtaW1hZ2Vz
KTogTmV3IG9wdGlvbiBmb3IKcmVtb3RlIGltYWdlIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtY2hl
Y2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNrZWQgY2hlY2tib3gKZGlzcGxheSBz
dHJpbmcuCihtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gpOiBOZXcgb3B0aW9uIGZvciB1
bmNoZWNrZWQKY2hlY2tib3ggZGlzcGxheSBzdHJpbmcuCihtYXJrZG93bi10cy10aGVtYXRpYy1i
cmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9uIGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5IGNo
YXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcgb3B0
aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4gcGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xhc2gg
aGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRpb24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBwbGFj
ZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMgaGlk
ZGVuLgoobWFya2Rvd24tdHMtZW1waGFzaXMsIG1hcmtkb3duLXRzLWJvbGQpCihtYXJrZG93bi10
cy1zdHJpa2V0aHJvdWdoLCBtYXJrZG93bi10cy1saW5rKQoobWFya2Rvd24tdHMtbGluay1kZXN0
aW5hdGlvbiwgbWFya2Rvd24tdHMtY29kZS1zcGFuKQoobWFya2Rvd24tdHMtY29kZS1ibG9jaywg
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuKQoobWFya2Rvd24tdHMtaW5kZW50
ZWQtY29kZS1ibG9jaywgbWFya2Rvd24tdHMtaHRtbC10YWcpCihtYXJrZG93bi10cy1odG1sLWJs
b2NrLCBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaykKKG1hcmtkb3duLXRzLWVudGl0eS1yZWZl
cmVuY2UpCihtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UsIG1hcmtkb3du
LXRzLWxhdGV4KQoobWFya2Rvd24tdHMtdGFibGUtaGVhZGVyLCBtYXJrZG93bi10cy10YWJsZS1j
ZWxsKQoobWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwsIG1hcmtkb3duLXRzLXRhc2st
dW5jaGVja2VkKQoobWFya2Rvd24tdHMtdGFzay1jaGVja2VkKTogTmV3IGZhY2VzLgoobWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1iYWNrc2xhc2gtaGlkZGVuKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNl
KQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlLWhpZGRlbik6IE5ldyBmYWNlcyBm
b3IgdGhlCnR3byBoYXJkLWxpbmUtYnJlYWsgdmFyaWFudHMsIHdpdGggZGlzdGluY3Qgc2hvd24v
aGlkZGVuCmFwcGVhcmFuY2VzLgoobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUpOiBOZXcgdmFy
aWFibGUgZm9yIGxpZ2h0d2VpZ2h0IHNldHVwCmluIGVtYmVkZGVkIGlubGluZSBtYXJrZG93bi10
cy1tb2RlIGJ1ZmZlcnMgdXNlZCBieSBjb2RlIGJsb2NrCmNvbW1hbmRzLgoobWFya2Rvd24tdHMt
ZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUpOiBOZXcgdmFyaWFibGUgdG8gZGVmaW5lCmRlZmF1bHQg
bW9kZSBmb3IgYW5vbnltb3VzIGNvZGUgYmxvY2tzLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1t
b2Rlcyk6IE5ldyB2YXJpYWJsZSByZXBsYWNpbmcKbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFu
Z3VhZ2UtbWFwIGFuZAptYXJrZG93bi10cy1jb2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1hcCB3aXRo
IHVuaWZpZWQgbGFuZ3VhZ2UgdG8KbW9kZSBtYXBwaW5nIGluY2x1ZGluZyBoZXVyaXN0aWMgbG9v
a3VwLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMpOiBO
ZXcgdmFyaWFibGUKbGlzdGluZyB0cmVlLXNpdHRlciBtb2RlcyB3aG9zZSBmb250aWZpY2F0aW9u
IG9mIGNvZGUgYmxvY2sKY29udGVudCBzaG91bGQgYmUgaGFydmVzdGVkIHZpYSBhIHRlbXBvcmFy
eSBidWZmZXIuCihtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbik6IE5ldyBmdW5jdGlvbiB0
byBjcmVhdGUKY2xpY2thYmxlIGxpbmsgYnV0dG9ucyB3aXRoIG1haWx0bywgYnJvd3NlLXVybCwg
YW5kIGZpbmQtZmlsZQpkaXNwYXRjaC4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstZGVzdGlu
YXRpb24pOiBOZXcgZm9udGlmaWVyIHRoYXQKaGlkZXMgbGluayBkZXN0aW5hdGlvbnMgd2hlbiBt
YXJrdXAgaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLCBtYXJrZG93bi10
cy0tbGluay1yZWYtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9u
cywKbWFya2Rvd24tdHMtLXJlc29sdmUtbGluay1yZWYpOiBOZXcgbGluayByZWZlcmVuY2UgZGVm
aW5pdGlvbgpjYWNoZSB3aXRoIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgcGVyIENvbW1vbk1h
cmsgc3BlYy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSk6IE5ldyBmb250aWZpZXIg
Zm9yIGlubGluZSwKcmVmZXJlbmNlLCBzaG9ydGN1dCwgYW5kIGNvbGxhcHNlZCBsaW5rcyBhcyBj
bGlja2FibGUgYnV0dG9ucy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKTogTmV3IGZv
bnRpZmllciBmb3IgVVJJIGFuZCBlbWFpbAphdXRvbGlua3Mgd2l0aCBhbmdsZSBicmFja2V0IGhp
ZGluZy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQoobWFya2Rvd24tdHMt
LWZvbnRpZnktbGluay1yZWYtZGVzdGluYXRpb24pOiBOZXcgZm9udGlmaWVycyBmb3IKbGluayBy
ZWZlcmVuY2UgZGVmaW5pdGlvbnMuCihtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUs
IG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1YikKKG1hcmtkb3duLXRzLS1zbHVnLXBhbmRvYywgbWFy
a2Rvd24tdHMtLWV4cGxpY2l0LWlkLXJlKQoobWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQt
aWQpCihtYXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNoZSwKbWFya2Rvd24tdHMtLWhlYWRpbmct
aWQtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24t
dHMtLWhlYWRpbmctaWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFn
bWVudCBsaW5rIHN1cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMu
CihtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5
LWxhdGV4LWJsb2NrKTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdy
YXBoIHZhbGlkYXRpb24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTog
TmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNp
ZGUgTGFUZVggYmxvY2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIg
dXNpbmcgb3JnLWVudGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3Bl
cnR5IGZvciBkZWNvZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTog
TmV3IGZvbnRpZmllciBzaG93aW5nIFVuaWNvZGUKY2hlY2tib3ggc3ltYm9scyB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4uCihtYXJrZG93bi10cy0tZm9udGlmeS1oYXJkLWxpbmUtYnJlYWspOiBOZXcg
Zm9udGlmaWVyIGZvcgpgaGFyZF9saW5lX2JyZWFrJyBub2Rlcy4KKG1hcmtkb3duLXRzLS1mb250
aWZ5LWhlYWRpbmcpOiBOZXcgZm9udGlmaWVyIGZvciBBVFggYW5kIFNldGV4dApoZWFkaW5ncy4K
KG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrKTogTmV3IGZvbnRpZmllciBzaG93
aW5nCmhvcml6b250YWwgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCihtYXJrZG93bi10cy0t
Zm9udGlmeS1jb2RlLWJsb2NrKTogTmV3IGZvbnRpZmllciBhcHBseWluZwpiYWNrZ3JvdW5kIG92
ZXJsYXkgdG8gY29kZSBibG9ja3Mgd2l0aCBsYW5ndWFnZSBhbmQgbW9kZQpwcm9wZXJ0aWVzLgoo
bWFya2Rvd24tdHMtY29kZS1ibG9jay1hdC1wKQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5n
dWFnZS1hdCkKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCk6IE5ldyBhY2Nlc3NvcnMg
Zm9yIGNvZGUgYmxvY2sKb3ZlcmxheSBwcm9wZXJ0aWVzLgoobWFya2Rvd24tdHMtLWltZW51LWNv
ZGUtYmxvY2stbm9kZS1wKTogTmV3IGhlbHBlciBmb3IgaW1lbnUKY29kZSBibG9jayBkZXRlY3Rp
b24uCihtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGluZS1wKQoobWFya2Rvd24tdHMtLWZv
bnRpZnktaW1hZ2UpOiBOZXcgaW5saW5lIGltYWdlIGRpc3BsYXkgd2l0aApzdGFuZGFsb25lIGFu
ZCBpbmxpbmUgcG9zaXRpb25pbmcuCihtYXJrZG93bi10cy0tYmFyZS11cmwtcmVnZXhwKQoobWFy
a2Rvd24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCkKKG1hcmtkb3duLXRzLS1mb250aWZ5LWJh
cmUtdXJpKTogTmV3IGJhcmUgVVJML2VtYWlsCmZvbnRpZmljYXRpb24gdmlhIGppdC1sb2NrIHVz
aW5nIGdvdG8tYWRkciByZWdleHBzLgoobWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpOiBS
ZXdyaXRlIHdpdGggZGVkaWNhdGVkIGZhY2VzLApjdXN0b20gZm9udGlmaWVycywgYW5kIG5ldyBm
b250LWxvY2sgZmVhdHVyZXMgZm9yIGFsbCBpbmxpbmUgYW5kCmJsb2NrIGVsZW1lbnRzLgoobWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzKQoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2st
bm9uLXRzLW1vZGVzKTogTmV3IGJ1ZmZlci1sb2NhbCBhbGlzdHMKZm9yIGNvZGUgYmxvY2sgbGFu
Z3VhZ2UgdHJhY2tpbmcuCihtYXJrZG93bi10cy0taGFydmVzdC1tb2RlLXRyZWVzaXQtY29uZmln
dXJhdGlvbik6IFJlbmFtZWQgZnJvbQptYXJrZG93bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZp
Z3Mgd2l0aCBkZWxheS1tb2RlLWhvb2tzLgoobWFya2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50
LWJ1ZmZlcik6IFJlbmFtZWQgZnJvbQptYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZS4K
KG1hcmtkb3duLXRzLS1sYW5ndWFnZS1hdC1ub2RlKTogTmV3IGhlbHBlciBleHRyYWN0aW5nIGxh
bmd1YWdlCnN5bWJvbCBmcm9tIGNvZGVfZmVuY2VfY29udGVudCBub2RlLgoobWFya2Rvd24tdHMt
LW5vbi10cy1mb250aWZ5LWNhY2hlKTogTmV3IGJ1ZmZlci1sb2NhbCBoYXNoIHRhYmxlCmNhY2hp
bmcgZm9udGlmaWNhdGlvbiByZXN1bHRzIGZvciBub24tdHJlZS1zaXR0ZXIgY29kZSBibG9ja3Mu
CihtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcyk6IE5ldyBmdW5jdGlv
bgpoYXJ2ZXN0aW5nIGZhY2UgcHJvcGVydGllcyBmcm9tIGEgbW9kZSBpbiBhbiBpbmRpcmVjdCBv
cgp0ZW1wb3JhcnkgYnVmZmVyLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvZGUtYmxv
Y2spOiBOZXcgZm9udGlmaWVyIGZvcgpub24tdHJlZS1zaXR0ZXIgbW9kZXMgdmlhIHRlbXBvcmFy
eSBidWZmZXIgZm9udC1sb2NrLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbW9k
ZSk6IE5ldyBmdW5jdGlvbiB3aXRoCmhldXJpc3RpYyBtb2RlIG5hbWUgcHJvYmluZy4KKG1hcmtk
b3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRz
LS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2Ugd2l0aCBzdXBwb3J0IGZvciBub24tdHMKbW9k
ZXMgYW5kIHJlY3Vyc2l2ZSBtYXJrZG93biBoYW5kbGluZy4KKG1hcmtkb3duLXRzLWNvZGUtYmxv
Y2stY29tbWFuZHMpCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzKQoobWFy
a2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24tY29tbWFuZHMpOiBOZXcgY29tbWFuZCBsaXN0cyBm
b3IKY29kZS1ibG9jayBjb250ZXh0IGV4ZWN1dGlvbi4KKG1hcmtkb3duLXRzLS1lbmFibGUtY29k
ZS1ibG9jay1tb2RlKQoobWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxv
Y2spCihtYXJrZG93bi10cy0tY29kZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMpCihtYXJr
ZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayk6IE5ldyBjb2RlIGJsb2NrIG1pbm9y
Cm1vZGUgd2l0aCBpbmRpcmVjdCBidWZmZXIgY29tbWFuZCBkaXNwYXRjaC4KKG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLW5ld2xpbmUpOiBOZXcgY29tbWFuZCBmb3IgbmV3bGluZQppbnNpZGUgY29k
ZSBibG9ja3MsIGRpc3BhdGNoaW5nIHRvIHRoZSBibG9jaydzIG1vZGUuCihtYXJrZG93bi10cy0t
cmFuZ2Utc2V0dGluZ3MpOiBVcGRhdGUgcmFuZ2UgY29uZmlndXJhdGlvbjsKcmVtb3ZlIDpyYW5n
ZS1mbiB0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4uCihtYXJrZG93bi10cy0tcmVt
b3ZlLWltYWdlLW92ZXJsYXlzKQoobWFya2Rvd24tdHMtLW91dGxpbmUtdmlldy1jaGFuZ2UpOiBO
ZXcgaGVscGVycyBmb3IgaW1hZ2UKb3ZlcmxheSBtYW5hZ2VtZW50IGR1cmluZyBvdXRsaW5lIGZv
bGQvdW5mb2xkLgoobWFya2Rvd24tdHMtLW91dGxpbmUtaW52aXNpYmxlLXApOiBOZXcgaGVscGVy
IHRlc3Rpbmcgd2hldGhlciBhCnBvc2l0aW9uIGlzIGluc2lkZSBhbiBvdXRsaW5lLWZvbGRlZCBy
ZWdpb24uCihtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwKTogQ2xlYXIgaW1hZ2Ugb3Zlcmxh
eXMgd2hlbgp0b2dnbGluZyBtYXJrdXAgdmlzaWJpbGl0eS4KKG1hcmtkb3duLXRzLS1zZXQtaW5s
aW5lLWltYWdlcykKKG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1hZ2VzKTogTmV3IGZ1bmN0
aW9ucyBmb3IgdG9nZ2xpbmcKaW5saW5lIGltYWdlIGRpc3BsYXkuCihtYXJrZG93bi10cy0tcGFy
c2VyLWhlYWRpbmctbWF4LWxldmVsKTogTmV3IGNvbnN0YW50LgoobWFya2Rvd24tdHMtLWhlYWRp
bmctYXQtcG9pbnQsIG1hcmtkb3duLXRzLS1oZWFkaW5nLWxldmVsKQoobWFya2Rvd24tdHMtLXNl
Y3Rpb24tYXQtcG9pbnQpOiBOZXcgaGVhZGluZyBuYXZpZ2F0aW9uIGhlbHBlcnMuCihtYXJrZG93
bi10cy1wcm9tb3RlLCBtYXJrZG93bi10cy1kZW1vdGUpOiBOZXcgY29tbWFuZHMgZm9yCmhlYWRp
bmcgYW5kIGxpc3QgaXRlbSBwcm9tb3Rpb24vZGVtb3Rpb24gd2l0aCByZWdpb24gc3VwcG9ydC4K
KG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSkKKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9y
LWRlbW90ZS1yZWdpb24pOiBOZXcgaGVhZGluZyBsZXZlbAphZGp1c3RtZW50IGZ1bmN0aW9ucy4K
KG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11cCwgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRv
d24pOgpOZXcgY29tbWFuZHMgZm9yIG1vdmluZyBzZWN0aW9ucyBhbmQgbGlzdCBpdGVtcy4KKG1h
cmtkb3duLXRzLS1zZWN0aW9uLWZvbGRlZC1wKQoobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11
cC1vci1kb3duKTogTmV3IHN1YnRyZWUgbW92ZSB3aXRoCmZvbGRpbmcgc3RhdGUgcHJlc2VydmF0
aW9uLgoobWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94KTogTmV3IGNvbW1hbmQgdG8gdG9nZ2xl
IHRhc2sgbGlzdApjaGVja2JveGVzLgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCk6
IE5ldyBoZWxwZXIgd2l0aCBibG9jayBxdW90ZQptYXJrZXIgaGFuZGxpbmcuCihtYXJrZG93bi10
cy0tbGlzdC1tYXJrZXItd2lkdGgsIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tcmVnaW9uKQoobWFy
a2Rvd24tdHMtLWxpc3Qtb3JkZXJlZC1pdGVtLXApOiBOZXcgbGlzdCBpdGVtIGhlbHBlcnMuCiht
YXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSk6IE5ldyBmdW5jdGlvbiB3aXRoIG9y
ZGVyZWQKbGlzdCBuZXN0aW5nIGd1YXJkLgoobWFya2Rvd24tdHMtLWxpc3Qtbm9kZS1ib2wsIG1h
cmtkb3duLXRzLS1saXN0LW1vdmUpOiBOZXcgbGlzdAppdGVtIG1vdmVtZW50IGZ1bmN0aW9ucy4K
KG1hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QpOiBOZXcgY29tbWFuZCBmb3Igc2VxdWVudGlhbCBs
aXN0CnJlbnVtYmVyaW5nIHdpdGggcHJlZml4IGFyZ3VtZW50IHN1cHBvcnQuCihtYXJrZG93bi10
cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIpCihtYXJrZG93bi10cy0tbmV3LW1hcmtlci1mb3ItbGlu
ZSk6IE5ldyBtYXJrZXIgc3RyaW5nIGdlbmVyYXRvcnMKZm9yIGxpc3QgaXRlbSBpbnNlcnRpb24u
CihtYXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1kZXB0aCk6IE5ldyBoZWxwZXIgY291bnRp
bmcgYmxvY2sKcXVvdGUgZGVwdGguCihtYXJrZG93bi10cy1uZXdsaW5lKTogTmV3IFJFVCBjb21t
YW5kIGZvciBjb250ZXh0LWF3YXJlCm5ld2xpbmUuCihtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1p
dGVtKTogTmV3IE0tUkVUIGNvbW1hbmQgdGhhdCBjcmVhdGVzIGEKbmV3IGxpc3QgaXRlbS4KKG1h
cmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkpOiBOZXcgdHJlZS1zaXR0ZXIK
cXVlcnkgZm9yIHVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS10ZXh0
LWNvbHVtbik6IE5ldyBoZWxwZXIgZm9yIGxpc3QgaXRlbQp0ZXh0IGFsaWdubWVudC4KKG1hcmtk
b3duLXRzLS1maWxsLWxpc3QtaXRlbSk6IE5ldyBmdW5jdGlvbiBmaWxsaW5nIHdpdGhpbiBsaXN0
Cml0ZW1zIHdpdGhvdXQgbWVyZ2luZyBhZGphY2VudCBpdGVtcy4KKG1hcmtkb3duLXRzLS1hZGFw
dGl2ZS1maWxsKTogTmV3IGFkYXB0aXZlIGZpbGwgZnVuY3Rpb24gZm9yCmxpc3QgaXRlbSBjb250
aW51YXRpb24uCihtYXJrZG93bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCk6IE5ldyBwYXJh
Z3JhcGggbW90aW9uCnJlc3BlY3RpbmcgbGlzdCBpdGVtcyBhbmQgdW5maWxsYWJsZSBibG9ja3Mu
CihtYXJrZG93bi10cy1maWxsLXBhcmFncmFwaCk6IE5ldyBmaWxsLXBhcmFncmFwaC1mdW5jdGlv
biB3aXRoCmNvbmQqIGRpc3BhdGNoIGZvciBsaXN0cywgYmxvY2sgcXVvdGVzLCBIVE1MIGNvbW1l
bnRzLCBhbmQKdW5maWxsYWJsZSBibG9ja3MuCihtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1l
bnQpOiBOZXcgSFRNTCBjb21tZW50IGZpbGxlciB3aXRoCmNvbnRpbnVhdGlvbiBhbGlnbm1lbnQu
CihtYXJrZG93bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KTogTmV3IGhlbHBlciBwcmVzZXJ2aW5n
CmV4aXN0aW5nIGJsb2NrIHF1b3RlIG1hcmtlciBzdHlsZS4KKG1hcmtkb3duLXRzLS1maWxsLWJs
b2NrLXF1b3RlKTogTmV3IGJsb2NrIHF1b3RlIGZpbGxlciB3aXRoCmxpc3QgaXRlbSB0ZXh0IGNv
bHVtbiBhbGlnbm1lbnQuCihtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdCk6IE5ldyBhbGlzdCBv
ZiBlbXBoYXNpcyBtYXJrZXJzLgoobWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQp
OiBOZXcgdHJlZS1zaXR0ZXIgYmFzZWQKZW1waGFzaXMgZGV0ZWN0aW9uLgoobWFya2Rvd24tdHMt
cmVtb3ZlLWVtcGhhc2lzKTogTmV3IGNvbW1hbmQgcmVtb3ZpbmcgZW1waGFzaXMgYXQKcG9pbnQg
b3IgcmVnaW9uLgoobWFya2Rvd24tdHMtZW1waGFzaXplKTogTmV3IGludGVyYWN0aXZlIGVtcGhh
c2lzIGluc2VydGlvbiB3aXRoCnJlZ2lvbiB3cmFwcGluZyBhbmQgd29yZC1hdC1wb2ludCBzdXBw
b3J0LgoobWFya2Rvd24tdHMtaW5zZXJ0LXN0cnVjdHVyZSk6IE5ldyBjb21tYW5kIGZvciBpbnNl
cnRpbmcgY29kZQpibG9ja3MsIGJsb2NrIHF1b3RlcywgYW5kIGRpdmlkZXJzLgoobWFya2Rvd24t
dHMtLWluc2VydC1jb2RlLWJsb2NrKTogTmV3IGZ1bmN0aW9uIHdpdGggbGFuZ3VhZ2UKY29tcGxl
dGlvbiBmcm9tIGtub3duIG1vZGVzLgoobWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90ZSk6
IE5ldyBmdW5jdGlvbiB3aXRoIHJlZ2lvbgp3cmFwcGluZy4KKG1hcmtkb3duLXRzLS1pbnNlcnQt
ZGl2aWRlcik6IE5ldyBmdW5jdGlvbiBmb3IgaG9yaXpvbnRhbApydWxlcy4KKG1hcmtkb3duLXRz
LS1hcHBseS1lbGxpcHNpcyk6IE5ldyBmdW5jdGlvbiBhcHBseWluZyBjdXN0b20KZWxsaXBzaXMg
dmlhIGRpc3BsYXkgdGFibGUuCihtYXJrZG93bi10cy0tc2V0LXVwKTogUmVuYW1lZCBmcm9tIG1h
cmtkb3duLXRzLXNldHVwLgoobWFya2Rvd24tdHMtb3V0bGluZS1jeWNsZSk6IE5ldyBUQUIgY29t
bWFuZCBjeWNsaW5nIG91dGxpbmUKdmlzaWJpbGl0eSBvbiBoZWFkaW5ncy4KKG1hcmtkb3duLXRz
LW1vZGUtbWFwKTogTmV3IGtleW1hcCBmb3IgY29kZSBibG9jayBuYXZpZ2F0aW9uLApiaW5kaW5n
cyBmb3IgaGVhZGluZyBuYXZpZ2F0aW9uLCBzdHJ1Y3R1cmUgZWRpdGluZywgZW1waGFzaXMsCmFu
ZCBsaXN0IG9wZXJhdGlvbnMuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtbWFwKTogTmV3
IGtleW1hcCBmb3IgY29kZSBibG9jawpjb250ZXh0LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTog
TmV3IG1lbnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1
Y3R1cmUsIGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRs
aW5lLW1pbm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3Jh
dGlvbiwgY29kZS1ibG9jay1tb2RlIGhvb2tzLCBjb21tZW50CnNldHRpbmdzLCBhbmQgb3V0bGlu
ZS12aWV3LWNoYW5nZS1ob29rLiAgVXNlIG1hcmtkb3duLXRzLW1vZGUKZGlyZWN0bHkgaW4gYXV0
by1tb2RlLWFsaXN0IGluc3RlYWQgb2YgbWFya2Rvd24tdHMtbW9kZS1tYXliZS4KKG1hcmtkb3du
LXRzLW1vZGUtaW5zdGFsbC1wYXJzZXJzKTogTmV3IGNvbW1hbmQgZm9yIGluc3RhbGxpbmcKcmVx
dWlyZWQgYW5kIG9wdGlvbmFsIHRyZWUtc2l0dGVyIGxhbmd1YWdlIGdyYW1tYXJzLgoobWFya2Rv
d24tdHMtY29kZS1ibG9jay1tb2RlKTogTmV3IG1pbm9yIG1vZGUgZm9yIGNvZGUgYmxvY2sKY29u
dGV4dC4KKG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyKQoobWFya2Rvd24t
dHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlcik6IE5ldyBoZWxwZXJzIGZvcgpsb2Nh
dGluZyBmZW5jZWQgY29kZSBibG9jayBkZWxpbWl0ZXIgbm9kZXMuCihtYXJrZG93bi10cy1tb3Zl
LXRvLW5leHQtY29kZS1ibG9jaykKKG1hcmtkb3duLXRzLW1vdmUtdG8tcHJldmlvdXMtY29kZS1i
bG9jayk6IE5ldyBjb21tYW5kcyBmb3IKbmF2aWdhdGluZyBiZXR3ZWVuIGZlbmNlZCBjb2RlIGJs
b2Nrcy4KKG1hcmtkb3duLXRzLW1vZGUtbWF5YmUpOiBSZW1vdmU7IGF1dG8tbW9kZS1hbGlzdCBu
b3cgdXNlcwptYXJrZG93bi10cy1tb2RlIGRpcmVjdGx5LgpBdXRvLW1vZGUtYWxpc3Q6IEFkZCAu
bWFya2Rvd24gYW5kIC5tZHggZXh0ZW5zaW9ucy4KSW5jbHVkZXMgZml4ZXMgZm9yOiAoYnVnIzgw
NjEzKSAoYnVnIzgwNjI1KSAoYnVnIzgwNjkwKQoKQ28tYXV0aG9yZWQtYnk6IFN0w6lwaGFuZSBN
YXJrcyA8c2hpcG1pbnRzQGdtYWlsLmNvbT4KLS0tCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsIHwgMzM1NCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hh
bmdlZCwgMzA4MiBpbnNlcnRpb25zKCspLCAyNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbCBiL2xpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUuZWwKaW5kZXggNjU3ZDZiYzQ2NmQuLjJhNTk0OGMxNWJhIDEwMDY0NAotLS0g
YS9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCisrKyBiL2xpc3AvdGV4dG1vZGVz
L21hcmtkb3duLXRzLW1vZGUuZWwKQEAgLTEsMTEgKzEsMTMgQEAKLTs7OyBtYXJrZG93bi10cy1t
b2RlLmVsIC0tLSB0cmVlIHNpdHRlciBzdXBwb3J0IGZvciBNYXJrZG93biAgLSotIGxleGljYWwt
YmluZGluZzogdDsgLSotCis7OzsgbWFya2Rvd24tdHMtbW9kZS5lbCAtLS0gdHJlZSBzaXR0ZXIg
c3VwcG9ydCBmb3IgTWFya2Rvd24gLSotIGxleGljYWwtYmluZGluZzogdDsgLSotCiAKIDs7IENv
cHlyaWdodCAoQykgMjAyNC0yMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCi07
OyBBdXRob3IgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwu
Y29tPgotOzsgTWFpbnRhaW5lciA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRv
QGdtYWlsLmNvbT4KLTs7IENyZWF0ZWQgICAgOiBBcHJpbCAyMDI0Ci07OyBLZXl3b3JkcyAgIDog
bWFya2Rvd24gbWQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVyCis7OyBBdXRob3IgICAgICAgICAgIDog
UmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwuY29tPgorOzsgTWFpbnRh
aW5lciAgICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNv
bT4KKzs7IENyZWF0ZWQgICAgICAgICAgOiBBcHJpbCAyMDI0Cis7OyBWZXJzaW9uICAgICAgICAg
IDogIDEuMAorOzsgUGFja2FnZS1SZXF1aXJlcyA6ICgoZW1hY3MgIjMxLjEiKSkKKzs7IEtleXdv
cmRzICAgICAgICAgOiBtYXJrZG93biBtZCB0ZXh0IGVkaXQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVy
CiAKIDs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KIApAQCAtMjIsMTAxICsyNCwy
NDIgQEAKIDs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCiA7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2Vl
IDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAKLTs7OyBUcmVlLXNpdHRlciBsYW5n
dWFnZSB2ZXJzaW9ucworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRyZWUtc2l0dGVyIExhbmd1YWdl
IFZlcnNpb25zCiA7OwogOzsgbWFya2Rvd24tdHMtbW9kZSBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCB0
aGUgZm9sbG93aW5nIGdyYW1tYXJzIGFuZCB2ZXJzaW9uOgogOzsgLSB0cmVlLXNpdHRlci1tYXJr
ZG93bjogdjAuNC4xCiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZTogdjAuNC4xCiA7
OwotOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHRpbiBtb2RlcyB3b3JrIHdpdGggbGF0
ZXN0IGdyYW1tYXIKLTs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdyYW1tYXIgaGFzIGEg
Z29vZCBjaGFuY2UgdG8gd29yayB0b28uCi07OyBTZW5kIHVzIGEgYnVnIHJlcG9ydCBpZiBpdCBk
b2Vzbid0LgotCi07OzsgQ29tbWVudGFyeToKKzs7IFdlIHRyeSBvdXIgYmVzdCB0byBtYWtlIGJ1
aWx0LWluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1hcgorOzsgdmVyc2lvbnMsIHNvIGEg
bW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5jZSB0byB3b3JrLiAgU2VuZAorOzsg
dXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCis7OworOzsgQmlkaXJlY3Rpb25hbCBUZXh0
IENvbnNpZGVyYXRpb25zCis7OworOzsgVGV4dCB3aXRoIG1hcmt1cCBtYXkgbmVlZCBhbiBleHRy
YSBuZXdsaW5lIGJlZm9yZSBiaWRpcmVjdGlvbmFsIHRleHQKKzs7IGZvciBpdCB0byBzaG93IGNv
cnJlY3RseS4gIFRoaXMgaXMgYSBsaW1pdGF0aW9uIGluIHRoZSBFbWFjcyBkaXNwbGF5Cis7OyBl
bmdpbmUuCis7OworOzsgQ29kZSBCbG9jayBMYW5ndWFnZSBNb2RlIENvbnNpZGVyYXRpb25zCis7
OworOzsgRmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMgYXJlIGRlcml2ZWQgZnJvbSB0
aGUgdGFibGUKKzs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJyBhbmQgaGV1cmlzdGlj
cyBhZGRpbmcgIi10cy1tb2RlIiBhbmQKKzs7ICItbW9kZSIgdG8gdGhlIGxhbmd1YWdlIG5hbWUu
ICBJZiB5b3VyIGxhbmd1YWdlJ3MgbW9kZSBpcyBub3QKKzs7IHByb3Blcmx5IHJlY29nbml6ZWQs
IGFkZCBpdCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycsIHdoaWNoCis7OyBzZWUu
Cis7OworOzsgRWFjaCBsYW5ndWFnZSdzIG1ham9yIG1vZGUgaXMgZW5hYmxlZCBvbmNlIHBlciBg
bWFya2Rvd24tdHMtbW9kZScKKzs7IGJ1ZmZlciBpbiBhIHRlbXBvcmFyeSBidWZmZXIgdG8gZXh0
cmFjdCBpdHMgZGVmYXVsdCBmb250LWxvY2sgYW5kCis7OyB0cmVlLXNpdHRlciBzZXR0aW5ncy4g
IEluIGNvbnZlbnRpb25hbCBub24tdHJlZXNpdCBjb2RlIGJsb2NrcywgdGhlCis7OyBtYWpvciBt
b2RlIGlzIGVuYWJsZWQgZWFjaCB0aW1lIHRoZSBibG9jayBpcyBmb250aWZpZWQuCis7OworOzsg
Tk9URTogTWFqb3IgbW9kZSBob29rcyBhcmUgbm90IHJ1biBhbmQgZm9udC1sb2NrLCB0cmVlc2l0
LCBpbmRlbnQsCis7OyBjb21tZW50IHJlY29nbml0aW9uLCBldGMuIGN1c3RvbWl6YXRpb25zIHlv
dSBtaWdodCBoYXZlIGluIHlvdXIgaG9va3MKKzs7IGFyZSBub3QgYXBwbGllZC4gIEFzIGEgcmVz
dWx0LCB5b3VyIGNvZGUgYmxvY2tzIG1pZ2h0IGFwcGVhcgorOzsgZGlmZmVyZW50IGluIGBtYXJr
ZG93bi10cy1tb2RlJyBtb2RlIHRoYW4gaW4gbmF0aXZlIGxhbmd1YWdlIG1ham9yCis7OyBtb2Rl
IGJ1ZmZlcnMuICBOb3QgcnVubmluZyBob29rcyBhdm9pZHMgdGhlIGNvc3Qgb2YgZWFjaCBtb2Rl
IGhvb2sKKzs7IGFuZCBhdm9pZHMgY2VydGFpbiByZWN1cnNpdmUgdHJlZXNpdCBjYWxsYmFjayBp
c3N1ZXMuCis7OworOzsgQ29kZSBCbG9jayBDb21tYW5kcworOzsKKzs7IFNvbWUgY29tbW9uIGNv
bW1hbmRzIHdpbGwgb3BlcmF0ZSB3aXRoaW4gYSBjb2RlIGJsb2NrIGFuZCBpbiBpdHMKKzs7IG1v
ZGUuICBUaGlzIGlzIGltcGxlbWVudGVkIHVzaW5nIGFuIGluZGlyZWN0IGJ1ZmZlciBhbmQgc29t
ZSBjb21tYW5kcworOzsgbWF5IG9wZXJhdGUgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdG8gdGhlIHNh
bWUgY29tbWFuZHMgaW52b2tlZCBpbiBhCis7OyBuYXRpdmUgbW9kZSBidWZmZXIuCiA7OworOzsg
VHJlZSBTaXR0ZXIgQnVncworOzsKKzs7IGBtYXJrZG93bi10cy1tb2RlJyByZWxpZXMgb24gdGhl
IHVuZGVybHlpbmcgdHJlZS1zaXR0ZXIgbGlicmFyeSBpbgorOzsgRW1hY3MgKGNob3NlbiBhdCBp
dHMgYnVpbGQgdGltZSksIGFuZCBsYW5ndWFnZSBncmFtbWFycyB5b3UgaGF2ZQorOzsgaW5zdGFs
bGVkLiAgVGhlcmUgYXJlIGtub3duIGFuZCByZXBvcnRlZCBidWdzIHdoaWNoIG5lZ2F0aXZlbHkg
YWZmZWN0Cis7OyBjZXJ0YWluIGZlYXR1cmVzLiAgVGhpcyBtb2RlIHNob3VsZCBiZW5lZml0IGFz
IHRoZXNlIGJ1Z3MgYXJlIGZpeGVkCis7OyBvciB3b3JrZWQgYXJvdW5kLgorOzsKKzs7IC0gVGhl
IE1hcmtkb3duIGdyYW1tYXIgaW5zZXJ0cyBibG9ja19jb250aW51YXRpb24gbm9kZXMgYXMgY2hp
bGRyZW4KKzs7ICAgb2YgY29kZV9mZW5jZV9jb250ZW50LCB3aGljaCBjb25mdXNlcyBib3RoIHRo
ZSBpbnNwZWN0b3IgYW5kIHRoZQorOzsgICBlbWJlZGRlZCBwYXJzZXIuICBUaGlzIGFmZmVjdHMg
Y29kZSBibG9ja3MgaW5zaWRlIGJsb2NrIHF1b3Rlcy4KKzs7Cis7OyAtIEhUTUwgYmxvY2sgdHlw
ZSA0IChgPCEnIGZvbGxvd2VkIGJ5IGFuIHVwcGVyY2FzZSBsZXR0ZXIsIGUuZy4sCis7OyAgIGA8
IURPQ1RZUEUgaHRtbD4nKSBjYXVzZXMgdGhlIHBhcnNlciB0byBjb25zdW1lIGFsbCBzdWJzZXF1
ZW50Cis7OyAgIGNvbnRlbnQuICBMb3dlcmNhc2UgYDwhZG9jdHlwZSBodG1sPicgd29ya3MgYXMg
YSB3b3JrYXJvdW5kLgorOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1n
cmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjMzPi4KKzs7Cis7OyAtIFN1cGVy
c2NyaXB0IChgXnRleHReJykgYW5kIHN1YnNjcmlwdCAoYH50ZXh0ficpIHN5bnRheCBpcyBub3QK
Kzs7ICAgc3VwcG9ydGVkIGJ5IHRoZSBncmFtbWFyLiAgTm8gRVhURU5TSU9OXyBidWlsZCBmbGFn
IGV4aXN0cyBmb3IKKzs7ICAgdGhpcy4gIFRoaXMgaXMgUGFuZG9jIC8gUEhQIE1hcmtkb3duIEV4
dHJhIHN5bnRheCwgbm90IENvbW1vbk1hcmsKKzs7ICAgb3IgR0ZNLgorOzsKKzs7IC0gT3JkZXJl
ZCAobnVtYmVyZWQpIGxpc3RzIGRvIG5vdCBuZXN0IGJ5IGluZGVudGF0aW9uLiAgSW5kZW50aW5n
Cis7OyAgIGEgYDEuJyBpdGVtIHVuZGVyIGFub3RoZXIgb3JkZXJlZCBpdGVtIGRvZXMgbm90IHBy
b2R1Y2UgYSBuZXN0ZWQKKzs7ICAgbGlzdCBub2RlOyB0aGUgcGFyc2VyIGVpdGhlciB0cmVhdHMg
aXQgYXMgYSBmbGF0IHNpYmxpbmcgb3IKKzs7ICAgYWJzb3JicyBpdCBpbnRvIHRoZSBwYXJlbnQg
aXRlbSdzIHBhcmFncmFwaCBhcyBhCis7OyAgIGJsb2NrX2NvbnRpbnVhdGlvbi4gIFVub3JkZXJl
ZCAoYC0nLCBgKicsIGArJykgbGlzdHMgbmVzdAorOzsgICBjb3JyZWN0bHkuICBEZW1vdGUvcHJv
bW90ZSBvZiBvcmRlcmVkIGxpc3QgaXRlbXMgaXMgdGhlcmVmb3JlCis7OyAgIGRpc2FibGVkLgor
OzsKKzs7IC0gUmVudW1iZXJpbmcgb3JkZXJlZCBsaXN0cyAoYG1hcmtkb3duLXRzLXJlbnVtYmVy
LWxpc3QnKSBtYXkgb25seQorOzsgICBhZmZlY3QgaXRlbXMgZnJvbSBwb2ludCBkb3dud2FyZCBp
ZiB0aGUgcGFyc2VyIHNwbGl0cyBhIHNpbmdsZQorOzsgICBsaXN0IGludG8gc2VwYXJhdGUgYGxp
c3QnIG5vZGVzLCBvciBtYXkgY29udGludWUgbnVtYmVyaW5nIGFjcm9zcworOzsgICB0d28gc2Vw
YXJhdGUgbGlzdHMgaWYgdGhlIHBhcnNlciBtZXJnZXMgdGhlbSBpbnRvIG9uZSBub2RlLgorOzsK
Kzs7IC0gRW1wdHkgbGluZXMgZm9sbG93aW5nIGFuIGBpbmRlbnRlZF9jb2RlX2Jsb2NrJyBtYXkg
YmUgY2xhaW1lZCBieQorOzsgICB0aGUgcGFyc2VyIGFzIGNvbnRpbnVhdGlvbiBsaW5lcyBvZiB0
aGF0IGJsb2NrLCByYXRoZXIgdGhhbiBiZWluZworOzsgICB0cmVhdGVkIGFzIGJsYW5rIHNlcGFy
YXRvcnMuCiAKIDs7OyBDb2RlOgogCiAocmVxdWlyZSAndHJlZXNpdCkKIChyZXF1aXJlICdzdWJy
LXgpCi0ocmVxdWlyZSAnb3V0bGluZSkKIChyZXF1aXJlICdzZXEpCisocmVxdWlyZSAnb3V0bGlu
ZSkKKyhyZXF1aXJlICdnb3RvLWFkZHIpCisocmVxdWlyZSAneHJlZikKIAotKHRyZWVzaXQtZGVj
bGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCi0KLShhZGQtdG8tbGlzdAotICd0cmVlc2l0LWxh
bmd1YWdlLXNvdXJjZS1hbGlzdAotICcobWFya2Rvd24KLSAgICJodHRwczovL2dpdGh1Yi5jb20v
dHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCi0gICA6Y29tbWl0ICI0
MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgotICAgOnNvdXJjZS1kaXIg
InRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCi0gdCkKLShhZGQtdG8tbGlzdAotICd0cmVlc2l0
LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAotICcobWFya2Rvd24taW5saW5lCi0gICAiaHR0cHM6Ly9n
aXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgotICAg
OmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKLSAgIDpz
b3VyY2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi1pbmxpbmUvc3JjIikKLSB0KQotCi07Ozsg
SGVscGVyIGZ1bmN0aW9ucwotCi0oZGVmdmFyIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1
YWdlLW1hcAotICAnKCgiYysrIiAuIGNwcCkKLSAgICAoImMjIiAuIGMtc2hhcnApCi0gICAgKCJz
aCIgLiBiYXNoKSkKLSAgIkFsaXN0IG1hcHBpbmcgY29kZSBibG9jayBsYW5ndWFnZSBuYW1lcyB0
byB0cmVlLXNpdHRlciBsYW5ndWFnZXMuCi0KLUtleXMgc2hvdWxkIGJlIHN0cmluZ3MsIGFuZCB2
YWx1ZXMgc2hvdWxkIGJlIGxhbmd1YWdlIHN5bWJvbHMuCi0KLUZvciBleGFtcGxlLCBcImMrK1wi
IGluCi0KLSAgICBgYGBjKysKLSAgICBpbnQgbWFpbigpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotICAgIGBgYAorOzs7IEN1c3RvbWl6YXRpb25zOgogCi1tYXBzIHRvIHRyZWUtc2l0dGVy
IGxhbmd1YWdlIGBjcHAnLiIpCi0KLShkZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1zb3Vy
Y2UtbW9kZS1tYXAKLSAgJygoYmFzaCAuIGJhc2gtdHMtbW9kZSkKLSAgICAoYyAuIGMtdHMtbW9k
ZSkKLSAgICAoYy1zaGFycCAuIGNzaGFycC10cy1tb2RlKQotICAgIChjbWFrZSAuIGNtYWtlLXRz
LW1vZGUpCi0gICAgKGNwcCAuIGMrKy10cy1tb2RlKQotICAgIChjc3MgLiBjc3MtdHMtbW9kZSkK
LSAgICAoZG9ja2VyZmlsZSAuIGRvY2tlcmZpbGUtdHMtbW9kZSkKLSAgICAoZWxpeGlyIC4gZWxp
eGlyLXRzLW1vZGUpCi0gICAgKGdvIC4gZ28tdHMtbW9kZSkKLSAgICAoZ29tb2QgLiBnby1tb2Qt
dHMtbW9kZSkKLSAgICAoZ293b3JrIC4gZ28td29yay10cy1tb2RlKQotICAgIChoZWV4IC4gaGVl
eC10cy1tb2RlKQotICAgIChodG1sIC4gaHRtbC10cy1tb2RlKQotICAgIChqYXZhIC4gamF2YS10
cy1tb2RlKQotICAgIChqYXZhc2NyaXB0IC4ganMtdHMtbW9kZSkKLSAgICAoanNvbiAuIGpzb24t
dHMtbW9kZSkKLSAgICAobHVhIC4gbHVhLXRzLW1vZGUpCi0gICAgKHBocCAuIHBocC10cy1tb2Rl
KQotICAgIChweXRob24gLiBweXRob24tdHMtbW9kZSkKLSAgICAocnVieSAuIHJ1YnktdHMtbW9k
ZSkKLSAgICAocnVzdCAuIHJ1c3QtdHMtbW9kZSkKLSAgICAodG9tbCAuIHRvbWwtdHMtbW9kZSkK
LSAgICAodHN4IC4gdHN4LXRzLW1vZGUpCi0gICAgKHR5cGVzY3JpcHQgLiB0eXBlc2NyaXB0LXRz
LW1vZGUpCi0gICAgKHlhbWwgLiB5YW1sLXRzLW1vZGUpKQotICAiQW4gYWxpc3Qgb2Ygc3VwcG9y
dGVkIGNvZGUgYmxvY2sgbGFuZ3VhZ2VzIGFuZCB0aGVpciBtYWpvciBtb2RlLiIpCisoZGVmZ3Jv
dXAgbWFya2Rvd24tdHMgbmlsCisgICJNYWpvciBtb2RlIGZvciB2aWV3aW5nIGFuZCBlZGl0aW5n
IE1hcmtkb3duIGJ1ZmZlcnMuIgorICA6cHJlZml4ICJtYXJrZG93bi10cy0iCisgIDpncm91cCAn
dGV4dAorICA6Z3JvdXAgJ2VkaXRpbmcKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmY3VzdG9t
IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIG5pbAogICAiTm9uLW5pbCBtZWFucyBoaWRlIE1hcmtk
b3duIG1hcmt1cCBkZWxpbWl0ZXJzIGluIHRoaXMgYnVmZmVyLiIKICAgOnR5cGUgJ2Jvb2xlYW4K
ICAgOnNhZmUgIydib29sZWFucAotICA6Z3JvdXAgJ21hcmtkb3duLXRzKQotCi07OzsgRmFjZXMK
KyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0
b20gbWFya2Rvd24tdHMtZWxsaXBzaXMgbmlsCisgICJUaGUgZWxsaXBzaXMgdG8gdXNlIGluIGZv
bGRlZCBoZWFkaW5ncy4KK1doZW4gbmlsLCB1c2UgdGhlIHN0YW5kYXJkIHRocmVlIGRvdHMuICBX
aGVuIGEgbm9uLWVtcHR5IHN0cmluZywKK3VzZSB0aGF0IHN0cmluZyBpbnN0ZWFkLiIKKyAgOnR5
cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJEZWZhdWx0ICguLi4pIiBuaWwpCisgICAgICAgICAg
ICAgICAgIChzdHJpbmcgOnRhZyAiU3RyaW5nIiA6dmFsdWUgIiDijIQiKSkKKyAgOnNhZmUgIydz
dHJpbmctb3ItbnVsbC1wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLW1lbnUtYmFyLXNob3cgdAorICAiTm9uLW5p
bCBtZWFucyBzaG93IHRoZSBNYXJrZG93biBtZW51IGluIHRoZSBtZW51IGJhci4iCisgIDp0eXBl
ICdib29sZWFuCisgIDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1mb2xk
aW5nICdzaG93LWFsbAorICAiRGVmYXVsdCBoZWFkaW5nIGZvbGRpbmcgbGV2ZWwuIgorICA6dHlw
ZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFnICJTaG93IGV2ZXJ5dGhpbmciIHNob3ct
YWxsKQorICAgICAgICAgIChjb25zdCA6dGFnICJGb2xkIGV2ZXJ5dGhpbmcsIHNob3dpbmcgdG9w
LWxldmVsIGhlYWRpbmdzIiBmb2xkLWFsbCkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiRm9sZCBo
ZWFkaW5ncywgc2hvd2luZyBhbGwgaGVhZGluZyBsZXZlbHMiIGZvbGQtaGVhZGluZ3MpKQorICA6
c2FmZSAjJ3N5bWJvbHAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcyBuaWwKKyAgIk5vbi1u
aWwgbWVhbnMgZGlzcGxheSBpbmxpbmUgaW1hZ2VzIGJlbG93IGltYWdlIGxpbmtzLiIKKyAgOnR5
cGUgJ2Jvb2xlYW4KKyAgOnNhZmUgIydib29sZWFucAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBh
Y2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbWFnZS1tYXgt
d2lkdGggJ3dpbmRvdworICAiTWF4aW11bSB3aWR0aCBvZiBpbmxpbmUgaW1hZ2VzIGluIHBpeGVs
cy4KK1doZW4gYHdpbmRvdycsIHVzZSB0aGUgd2luZG93IGJvZHkgd2lkdGguICBXaGVuIGEgbnVt
YmVyLCB1c2UKK3RoYXQgYXMgdGhlIG1heGltdW0gcGl4ZWwgd2lkdGguIgorICA6dHlwZSAnKGNo
b2ljZSAoY29uc3QgIDp0YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAg
ICAobmF0bnVtIDp0YWcgIlBpeGVsIHdpZHRoIikpCisgIDpzYWZlIChsYW1iZGEgKHYpIChvciAo
ZXEgdiAnd2luZG93KSAobmF0bnVtcCB2KSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2Fn
ZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3Rl
LWlubGluZS1pbWFnZXMgbmlsCisgICJIb3cgdG8gZGlzcGxheSByZW1vdGUgaW5saW5lIGltYWdl
cy4KK1doZW4gbmlsLCBkbyBub3QgZGlzcGxheSByZW1vdGUgaW1hZ2VzLiAgV2hlbiBgZG93bmxv
YWQnLCBmZXRjaCB0aGUKK2ltYWdlIGludG8gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBkaXNwbGF5
IGl0LgorCitSZW1vdGUgaW1hZ2VzIGFyZSBza2lwcGVkIGJ5IGRlZmF1bHQgZm9yIHNlY3VyaXR5
LiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0IDp0YWcgIlNraXAgcmVtb3RlIGltYWdlcyIgbmls
KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRG93bmxvYWQgcmVtb3RlIGltYWdlcyIg
ZG93bmxvYWQpKQorICA6c2FmZSAjJ3N5bWJvbHAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVj
a2JveCAi4piRIgorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoZWNrZWQg
dGFzayBsaXN0IHN0cmluZy4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBl
ICcoY2hvaWNlIChzdHJpbmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIikKKyAgICAg
ICAgICAgICAgICAgKGNvbnN0ICA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkK
KyAgOnNhZmUgIydzdHJpbmctb3ItbnVsbC1wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2Fn
ZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVj
a2JveCAi4piQIgorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIHVuY2hlY2tl
ZCB0YXNrIGxpc3Qgc3RyaW5nLgorbmlsIGRpc3BsYXlzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5
cGUgJyhjaG9pY2UgKHN0cmluZyA6dGFnICJEaXNwbGF5IHNwZWNpZmllZCBzdHJpbmciKQorICAg
ICAgICAgICAgICAgICAoY29uc3QgIDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBuaWwp
KQorICA6c2FmZSAjJ3N0cmluZy1vci1udWxsLXAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJl
YWstY2hhcmFjdGVyID/ilIAKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyB0
aGVtYXRpYyBicmVhayBzdHJpbmcuCitUaGUgY2hhcmFjdGVyIGlzIHJlcGVhdGVkIHRvIGZpbGwg
dGhlIHdpbmRvdyB3aWR0aC4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBl
ICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgY2hhcmFjdGVyIikK
KyAgICAgICAgICAgICAgICAgKGNvbnN0ICAgICA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1
cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisK
KyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCAiwrYiCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgZm9yIGEgYmFja3NsYXNoIGhhcmQg
bGluZSBicmVhay4KK1RoZSB2YWx1ZSBjYW4gYmUgYSBjaGFyYWN0ZXIgb3IgYSBzdHJpbmc7IG5p
bCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRh
ZyAiRGlzcGxheSBzcGVjaWZpZWQgY2hhcmFjdGVyIikKKyAgICAgICAgICAgICAgICAgKHN0cmlu
ZyAgICA6dGFnICJEaXNwbGF5IHNwZWNpZmllZCBzdHJpbmciKQorICAgICAgICAgICAgICAgICAo
Y29uc3QgICAgIDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lv
biAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93
bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgKGxhbWJkYSAobikgKG1ha2Utc3RyaW5nIG4g
P8K2KSkKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSB0cmFpbGlu
Zy1zcGFjZXMgaGFyZCBsaW5lIGJyZWFrLgorVGhlIHZhbHVlIGNhbiBiZToKKy0gYSBjaGFyYWN0
ZXIgb3Igc3RyaW5nOiBzaG93biBvbmNlIGF0IHRoZSBzdGFydCBvZiB0aGUgdHJhaWxpbmcgc3Bh
Y2VzLAorICB3aXRoIG5vIHJlcGV0aXRpb24gKHRoZSByZW1haW5pbmcgc3BhY2VzIHN0YXkgaW52
aXNpYmxlKTsKKy0gYSBmdW5jdGlvbjogY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50LCB0aGUgbnVt
YmVyIG9mIHRyYWlsaW5nIHNwYWNlcywKKyAgYW5kIG11c3QgcmV0dXJuIHRoZSBzdHJpbmcgdG8g
ZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgcnVuOworLSBuaWw6IGtlZXAgdGhlIHJhdyBtYXJrdXAu
IgorICA6dHlwZSAnKGNob2ljZSAoY2hhcmFjdGVyIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIGNo
YXJhY3RlciAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAgICAgICAoc3RyaW5nIDp0YWcg
IkRpc3BsYXkgc3BlY2lmaWVkIHN0cmluZyAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAg
ICAgICAoZnVuY3Rpb24gOnRhZyAiRnVuY3Rpb24gZnJvbSBjb3VudCB0byBkaXNwbGF5IHN0cmlu
ZyIpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1
cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisK
KyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9k
ZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMgY29kZSBibG9ja3MuIgorICA6dHlwZSAn
KGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAiVGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisg
ICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRhbCBtb2RlIiBmdW5kYW1lbnRhbC1tb2Rl
KQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIgbW9kZSBzeW1ib2wiCisgICAgICAgICAg
ICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdpZCkpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChlcSAnc3ltYm9sICh0eXBlLW9mIHZhbCkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJy
b3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkKSkpKSkKKyAgOnNhZmUgIydzeW1ib2xwCisgIDp2ZXJzaW9uICIzMS4xIgor
ICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCis7OzsgRmFjZXM6CiAKIChkZWZncm91cCBtYXJr
ZG93bi10cy1mYWNlcyBuaWwKLSAgIkZhY2VzIHVzZWQgaW4gTWFya2Rvd24gVFMgTW9kZS4iCisg
ICJGYWNlcyB1c2VkIGJ5IE1hcmtkb3duLVRTLiIKICAgOmdyb3VwICdtYXJrZG93bi10cy1mYWNl
cwogICA6Z3JvdXAgJ2ZhY2VzKQogCkBAIC0xNDQsMTYgKzI4NywxNjQgQEAgbWFya2Rvd24tdHMt
aGVhZGluZy01CiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTYgJygodCAoOmluaGVyaXQg
b3V0bGluZS02KSkpCiAgICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4i
KQogCi0oZGVmZmFjZSBtYXJrZG93bi10cy1saXN0LW1hcmtlciAnKCh0ICg6aW5oZXJpdCBzaGFk
b3cpKSkKLSAgIkZhY2UgZm9yIE1hcmtkb3duIGxpc3QgbWFya2VycyBsaWtlIC0gYW5kICouIikK
KyhkZWZmYWNlIG1hcmtkb3duLXRzLWVtcGhhc2lzICcoKHQgKDppbmhlcml0IGl0YWxpYykpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gZW1waGFzaXMgKGl0YWxpYykgdGV4dC4iKQorCisoZGVmZmFj
ZSBtYXJrZG93bi10cy1ib2xkICcoKHQgKDppbmhlcml0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIHN0cm9uZyBlbXBoYXNpcyAoYm9sZCkgdGV4dC4iKQorCisoZGVmZmFjZSBtYXJrZG93
bi10cy1zdHJpa2V0aHJvdWdoICcoKHQgKDpzdHJpa2UtdGhyb3VnaCB0KSkpCisgICJGYWNlIGZv
ciBNYXJrZG93biBzdHJpa2V0aHJvdWdoIHRleHQuIikKIAogKGRlZmZhY2UgbWFya2Rvd24tdHMt
YmxvY2stcXVvdGUgJygodCAoOmluaGVyaXQgaXRhbGljKSkpCiAgICJGYWNlIGZvciBNYXJrZG93
biBibG9jayBxdW90ZXMuIikKIAorKGRlZmZhY2UgbWFya2Rvd24tdHMtbGluayAnKCh0ICg6aW5o
ZXJpdCBsaW5rKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaW5rIHRleHQgYW5kIGltYWdlIGRl
c2NyaXB0aW9ucy4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uICco
KHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gbGluayBkZXN0aW5hdGlvbnMgKFVSTHMpLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNv
ZGUtc3BhbiAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIE1hcmtkb3duIGlubGluZSBjb2RlIHNwYW5zLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2sgJygodCAoOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBmZW5j
ZWQgY29kZSBibG9jayBjb250ZW50LgorQWx0ZXIgdGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dy
b3VuZCcgZm9yIGEgdmlzdWFsbHkgZGlzdGluY3QKK2NvZGUgYmxvY2sgcmVnaW9uLCBlLmcuOgor
ICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy1jb2RlLWJsb2NrIG5pbCA6YmFj
a2dyb3VuZCBcImdyYXk5NVwiKSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
bWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQgbGlnaHQpKSAoOmJhY2tncm91bmQgImdy
YXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3JvdW5kIGRhcmspKSAgKDpiYWNrZ3JvdW5k
ICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gZmVuY2VkIGNvZGUg
YmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitVc2VkIGluc3RlYWQgb2YgYG1h
cmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtkb3duLXRzLWhpZGUtbWFya3VwJworaXMg
bm9uLW5pbC4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrICco
KHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gaW5kZW50ZWQgY29kZSBibG9ja3MuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaHRtbC10
YWcgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWRvYy1tYXJrdXAtZmFjZSkpKQorICAiRmFjZSBm
b3IgaW5saW5lIEhUTUwgdGFncyBpbiBNYXJrZG93bi4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10
cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1kb2MtbWFya3VwLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtkb3duLiIpCisKKyhkZWZmYWNlIG1hcmtk
b3duLXRzLXRoZW1hdGljLWJyZWFrICcoKHQgKDppbmhlcml0IHNoYWRvdyA6ZXh0ZW5kIHQpKSkK
KyAgIkZhY2UgZm9yIE1hcmtkb3duIHRoZW1hdGljIGJyZWFrcyAoaG9yaXpvbnRhbCBydWxlcyku
CitDdXN0b21pemUgdGhpcyBmYWNlIHRvIGFkZCBhIDpiYWNrZ3JvdW5kIGZvciBhIGZ1bGwtd2lk
dGggdmlzdWFsIHJ1bGUuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5j
ZSAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stYnVpbHRpbi1mYWNlKSkpCisgICJGYWNlIGZvciBu
YW1lZCBIVE1MIGVudGl0eSByZWZlcmVuY2VzIGxpa2UgJmFtcDsgYW5kICZjb3B5Oy4iKQorCiso
ZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UKKyAgJygodCAo
OmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkpCisgICJGYWNlIGZvciBudW1lcmljIGNo
YXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5kICYjeDQxOy4iKQorCisoZGVmZmFjZSBt
YXJrZG93bi10cy1sYXRleCAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIExhVGVYIC8gbWF0aCBjb250ZW50IGluIE1hcmtkb3duICgkLi4uJCBhbmQg
JCQuLi4kJCkuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtdGFibGUtaGVhZGVyICcoKHQgKDpp
bmhlcml0IChib2xkIGZvbnQtbG9jay1kb2MtZmFjZSkpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IHBpcGUgdGFibGUgaGVhZGVyIGNlbGxzLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxl
LWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gcGlw
ZSB0YWJsZSBkYXRhIGNlbGxzLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWRlbGlt
aXRlci1jZWxsICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1kb2MtZmFjZSkpKQorICAiRmFjZSBm
b3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkZWxpbWl0ZXIgY2VsbHMgKC0tLSBzZXBhcmF0b3JzKS4i
KQorCiAoZGVmZmFjZSBtYXJrZG93bi10cy1sYW5ndWFnZS1rZXl3b3JkICcoKHQgKDppbmhlcml0
IGZvbnQtbG9jay1rZXl3b3JkLWZhY2UpKSkKICAgIkZhY2UgZm9yIHRoZSBsYW5ndWFnZSBrZXl3
b3JkIGZvciBNYXJrZG93biBjb2RlIGJsb2Nrcy4iKQogCi07OzsgRm9udC1sb2NrCisoZGVmZmFj
ZSBtYXJrZG93bi10cy1saXN0LW1hcmtlciAnKCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKKyAgIkZh
Y2UgZm9yIE1hcmtkb3duIGxpc3QgbWFya2VycyBsaWtlIC0gYW5kICouIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBv
dXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUg
YnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFpbGluZyBiYWNrc2xhc2guIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4KKyAgJygodCAoOmlu
aGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9sZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctYmFj
a3NsYXNoIGhhcmQgbGluZSBicmVhayB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uIikKKworKGRlZmZh
Y2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlCisgICcoKCgoYmFja2dyb3VuZCBs
aWdodCkpICg6YmFja2dyb3VuZCAiZ3JheTcwIiA6d2VpZ2h0IGJvbGQpKQorICAgICgoKGJhY2tn
cm91bmQgZGFyaykpICAoOmJhY2tncm91bmQgImdyYXk0MCIgOndlaWdodCBib2xkKSkpCisgICJG
YWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgdHdvIHRyYWls
aW5nIHNwYWNlcy4KK1RoZSB0cmFpbGluZyBzcGFjZXMgYXJlIG90aGVyd2lzZSBpbnZpc2libGUs
IHNvIHRoZXkgYXJlIHNob3duIGFzIGEKK3NoYWRvdy1jb2xvcmVkIGJsb2NrLiIpCisKKyhkZWZm
YWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmlu
aGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9sZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3Bh
Y2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQgJygodCAoOmluaGVyaXQgbWFya2Rvd24tdHMtbGlz
dC1tYXJrZXIpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHVuY2hlY2tlZCB0YXNrIGxpc3QgbWFy
a2Vycy4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YXNrLWNoZWNrZWQgJygodCAoOmluaGVy
aXQgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGNoZWNr
ZWQgdGFzayBsaXN0IG1hcmtlcnMuIikKKworKHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1m
dW5jdGlvbnMpCisKKyhhZGQtdG8tbGlzdAorICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlz
dAorICcobWFya2Rvd24KKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1h
cnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFl
NzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtk
b3duL3NyYyIpCisgdCkKKworKGFkZC10by1saXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNl
LWFsaXN0CisgJyhtYXJrZG93bi1pbmxpbmUKKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1z
aXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUy
MzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUt
c2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMiKQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRv
IG5vbi1uaWwgZm9yIGlubGluZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKQorCisoZGVm
dmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggLiBiYXNoLXRzLW1vZGUp
CisgICAgKHNoZWxsIC4gYmFzaC10cy1tb2RlKQorICAgICgsKGludGVybiAiYyMiKSAuIGMtc2hh
cnApCisgICAgKGNwcCAuIGMrKy10cy1tb2RlKQorICAgIChlbCAuIGVtYWNzLWxpc3AtbW9kZSkK
KyAgICAoZWxpc3AgLiBlbWFjcy1saXNwLW1vZGUpCisgICAgKGdvbGFuZyAuIGdvLXRzLW1vZGUp
CisgICAgKGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCisgICAgKGdvd29yayAuIGdvLXdvcmstdHMt
bW9kZSkKKyAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCisgICAgKG1kIC4gbWFya2Rvd24t
dHMtbW9kZSkKKyAgICAocHkgLiBweXRob24tdHMtbW9kZSkKKyAgICAocmIgLiBydWJ5LXRzLW1v
ZGUpCisgICAgKHJzIC4gcnVzdC10cy1tb2RlKQorICAgICh0ZXggLiBsYXRleC1tb2RlKQorICAg
ICh0cyAuIHR5cGVzY3JpcHQtdHMtbW9kZSkKKyAgICAoeW1sIC4geWFtbC10cy1tb2RlKSkKKyAg
IkFsaXN0IG1hcHBpbmcgY29kZSBibG9jayBsYW5ndWFnZXMgdG8gdGhlaXIgbWFqb3IgbW9kZS4K
K1RoZSBhbGlzdCBpcyBvZiB0aGUgZm9ybSAoTEFOR1VBR0UgLiBNQUpPUi1NT0RFKS4KK01BSk9S
LU1PREUgY2FuIGJlIGEgdHJlZS1zaXR0ZXIgb3IgYSBjb252ZW50aW9uYWwgbW9kZS4KK0lmIHlv
dSBwcmVmZXIgYSBjb252ZW50aW9uYWwgbW9kZSBvdmVyIGl0cyB0cmVlLXNpdHRlciB2YXJpYW50
LCBhZGQgb3IgcmVwbGFjZQorcmVsZXZhbnQgZW50cmllcy4gIEZvciBleGFtcGxlOgorICAgIChh
ZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9Jyhw
eXRob24gLiBweXRob24tbW9kZSkpCisgICAgKHNldGYgKGFsaXN0LWdldCBcXD0ncHkgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1tb2RlcykKKyAgICAgICAgICBcXD0ncHl0aG9uLW1vZGUpCitDb2Rl
IGJsb2NrcyBmb3IgdGhhdCBub24gdHJlZS1zaXR0ZXIgbW9kZXMgd2lsbCBiZSBmb250aWZpZWQg
dXNpbmcgdGhlCittb2RlJ3MgY29udmVudGlvbmFsIGZvbnQtbG9jayBydWxlcy4iKQorCisoZGVm
dmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzCisgICco
bWFya2Rvd24tdHMtbW9kZQorICAgIHBocC10cy1tb2RlKQorICAiVHJlYXQgdGhlc2UgY29kZSBi
bG9jayB0cmVlLXNpdHRlciBtb2RlcyBhcyBjb252ZW50aW9uYWwuCitTb21lIG1vZGVzIHRoYXQg
ZW1iZWQgbXVsdGlwbGUgYHRyZWVzaXQnIHBhcnNlcnMgbmVlZCB0byBiZSB0cmVhdGVkIHdpdGgK
K2NvbnZlbnRpb25hbCBmb250LWxvY2suICBgbWFya2Rvd24tdHMtbW9kZScgaXRzZWxmIGlzIG9u
ZSBvZiB0aGVtLiIpCisKKzs7OyBGb250LWxvY2s6CiAKIChkZWZ1biBtYXJrZG93bi10cy0tZm9u
dGlmeS1kZWxpbWl0ZXIgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCiAgICJGb250
aWZ5IGRlbGltaXRlciBOT0RFIGFuZCBvcHRpb25hbGx5IGhpZGUgaXRzIG1hcmt1cC4KQEAgLTE2
OCwyMyArNDU5LDc4MSBAQCBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAocHV0
LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVu
ZCBub2RlKQogICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0t
bWFya3VwKSkpCiAKKyhkZWZ2YXIgdXJsLW1haWwtY29tbWFuZCkgOyB1cmwvdXJsLXZhcnMuZWwK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uIChiZWcgZW5kIHVybCkKKyAg
Ik1ha2UgdGhlIHJlZ2lvbiBmcm9tIEJFRyB0byBFTkQgYSBjbGlja2FibGUgYnV0dG9uIGZvciBV
UkwuCitGb3IgbWFpbHRvOiBVUklzLCB1c2UgYHVybC1tYWlsLWNvbW1hbmQnLiAgRm9yIG90aGVy
IHNjaGVtZXMKK1woZS5nLiwgaHR0cCwgZnRwKSwgb3BlbiB3aXRoIGBicm93c2UtdXJsJy4gIE90
aGVyd2lzZSwgdHJlYXQgYXMKK2EgcmVsYXRpdmUgZmlsZSBwYXRoIGFuZCBvcGVuIHdpdGggYGZp
bmQtZmlsZScuCisKK0RvIG5vdCBwYXNzIGBmYWNlJyB0byBgbWFrZS10ZXh0LWJ1dHRvbic6IHRo
ZSBsaW5rIGZhY2UgaXMgYWxyZWFkeQorYXBwbGllZCBieSBgbWFya2Rvd24tdHMtLWZvbnRpZnkt
bGluay1ub2RlJyB2aWEKK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScgKHdpdGggYDpv
dmVycmlkZSBhcHBlbmQnKSwgYW5kCitgYWRkLXRleHQtcHJvcGVydGllcycgd291bGQgb3RoZXJ3
aXNlIHJlcGxhY2UgdGhlIGFwcGVuZGVkIGZhY2UKK2xpc3Qgd2l0aCBhIHNpbmdsZSBgbWFya2Rv
d24tdHMtbGluaycsIGNsb2JiZXJpbmcgYW4gZW5jbG9zaW5nCitoZWFkaW5nIGZhY2UuIgorICA7
OyBOT1RFOiBVUkkgc2NoZW1lIGFuZCBob3N0IG5hbWUgYXJlIGNhc2UtaW5zZW5zaXRpdmUgcGVy
IFJGQyAzOTg2CisgIDs7IGFuZCBSRkMgNzIzMC4KKyAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg
bmlsKSkKKyAgICAobWFrZS10ZXh0LWJ1dHRvbiBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAg
ICAgJ2FjdGlvbiAobGFtYmRhIChfYnV0dG9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctcHJl
Zml4LXAgIiMiIHVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rv
d24tdHMtLWZvbGxvdy1mcmFnbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc3Vic3RyaW5nIHVybCAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
KHN0cmluZy1tYXRjaC1wICJcXGBtYWlsdG86IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGZ1bmNhbGwgdXJsLW1haWwtY29tbWFuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYG1haWx0bzoiICIiIHVy
bCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2gtcCAi
XFxgW2Etel0rOiIgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChicm93
c2UtdXJsIHVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCAoZmluZC1m
aWxlIHVybCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAnaGVscC1lY2hvIHVybCkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlk
ZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBkZXN0aW5hdGlvbiBOT0RFIGFu
ZCBoaWRlIGl0IHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVO
RCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScu
IgorICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICdtYXJrZG93bi10cy1saW5rLWRl
c3RpbmF0aW9uIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1t
YXJrdXAKKyAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxl
ICdtYXJrZG93bi10cy0tbWFya3VwKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWxp
bmstcmVmLWNhY2hlIG5pbAorICAiQ2FjaGVkIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBs
aW5rIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4KK0VhY2ggZW50cnkgaXMgYSBjb25zIGNlbGwgbWFw
cGluZyBhIGRvd25jYXNlZCBsYWJlbCBzdHJpbmcgdG8gaXRzCitkZXN0aW5hdGlvbiBVUkwuIikK
KworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayBuaWwKKyAg
IlZhbHVlIG9mIGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgY2FjaGUgd2Fz
IGJ1aWx0LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMgKCkK
KyAgIlJldHVybiBhbiBhbGlzdCBvZiAoTEFCRUwgLiBVUkwpIGZyb20gbGluayByZWZlcmVuY2Ug
ZGVmaW5pdGlvbnMuCitMQUJFTCBpcyBkb3duY2FzZWQgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0
Y2hpbmcuICBSZXN1bHRzIGFyZQorY2FjaGVkIGFuZCByZWJ1aWx0IG9ubHkgd2hlbiB0aGUgYnVm
ZmVyIGNoYW5nZXMuIgorICAobGV0ICgodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2sp
KSkKKyAgICAodW5sZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNr
KQorICAgICAgKGxldCogKChyb290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3du
KSkKKyAgICAgICAgICAgICAobWF0Y2hlcyAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAg
ICAgICAgICAgICAgICAgIHJvb3QKKyAgICAgICAgICAgICAgICAgICAgICAgJygobGlua19yZWZl
cmVuY2VfZGVmaW5pdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua19sYWJlbCkg
QGxhYmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAZGVz
dCkpKSkKKyAgICAgICAgICAgICBkZWZzKQorICAgICAgICAod2hpbGUgbWF0Y2hlcworICAgICAg
ICAgIChsZXQqICgobGFiZWwtcGFpciAocG9wIG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAo
ZGVzdC1wYWlyIChwb3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAgIChsYmwtdGV4dCAoc3Ry
aW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IChjZHIgbGFiZWwtcGFpcikgdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxbIiAiXFxdIikpKQorICAgICAgICAg
ICAgKHB1c2ggKGNvbnMgKGRvd25jYXNlIGxibC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS10ZXh0IChjZHIgZGVzdC1wYWlyKSB0KSkKKyAgICAgICAgICAgICAg
ICAgIGRlZnMpKSkKKyAgICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlIChu
cmV2ZXJzZSBkZWZzKQorICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUt
dGljayB0aWNrKSkpCisgICAgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1yZXNvbHZlLWxpbmstcmVmIChsYWJlbCkKKyAgIlJlc29sdmUgTEFCRUwg
dG8gYSBVUkwgdmlhIGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorTEFCRUwgc2hvdWxkIGJl
IHRoZSB0ZXh0IHdpdGhvdXQgYnJhY2tldHMuICBNYXRjaGluZyBpcworY2FzZS1pbnNlbnNpdGl2
ZSBwZXIgQ29tbW9uTWFyayBzcGVjIHNlY3Rpb24gNC43LiIKKyAgKGFsaXN0LWdldCAoZG93bmNh
c2UgbGFiZWwpIChtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMpCisgICAgICAgICAg
ICAgbmlsIG5pbCAjJ2VxdWFsKSkKKworOzs7IEZyYWdtZW50IGxpbmtzOgorCisoZGVmY29uc3Qg
bWFya2Rvd24tdHMtLXNsdWctZ2l0aHViLXN0cmlwLXJlCisgICJbXVshXCIjJCUmJygpKissLi86
Ozw9Pj9AXFxeYHt8fX5dIgorICAiUHVuY3R1YXRpb24gc3RyaXBwZWQgYnkgR2l0SHViJ3MgZ2gt
c2x1Z2dlciBiZWZvcmUgaHlwaGVuYXRpb24uIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zbHVn
LWdpdGh1YiAodGV4dCkKKyAgIlJldHVybiB0aGUgR2l0SHViLWZsYXZvciBzbHVnIGZvciBoZWFk
aW5nIFRFWFQuCitNaXJyb3JzIHRoZSBnaC1zbHVnZ2VyIGFsZ29yaXRobTogbG93ZXJjYXNlLCBz
dHJpcCBhIGZpeGVkCitwdW5jdHVhdGlvbiBzZXQsIHJlcGxhY2Ugc3BhY2VzIHdpdGggaHlwaGVu
cy4iCisgIChsZXQqICgobGMgKGRvd25jYXNlIHRleHQpKQorICAgICAgICAgKHN0cmlwcGVkIChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMt
LXNsdWctZ2l0aHViLXN0cmlwLXJlICIiIGxjKSkpCisgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0
cmluZyAiW1s6Ymxhbms6XV0iICItIiBzdHJpcHBlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LXNsdWctcGFuZG9jICh0ZXh0KQorICAiUmV0dXJuIHRoZSBQYW5kb2MtZmxhdm9yIGF1dG8taWQg
c2x1ZyBmb3IgaGVhZGluZyBURVhULgorTWlycm9ycyBQYW5kb2MncyBhbGdvcml0aG06IGRyb3Ag
ZXZlcnl0aGluZyBiZWZvcmUgdGhlIGZpcnN0CitsZXR0ZXIsIGtlZXAgYWxwaGFudW1lcmljcyBh
bmQgYF8tLicsIGNvbGxhcHNlIHdoaXRlc3BhY2UgcnVucyB0bworaHlwaGVucywgbG93ZXJjYXNl
LiAgRmFsbHMgYmFjayB0byBcInNlY3Rpb25cIiBpZiBlbXB0eS4iCisgIChsZXQqICgobGMgKGRv
d25jYXNlIHRleHQpKQorICAgICAgICAgKGZyb20tbGV0dGVyIChpZiAoc3RyaW5nLW1hdGNoICJb
WzphbHBoYTpdXSIgbGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgbGMg
KG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAg
ICAgIChrZXB0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAiW15b
OmFsbnVtOl1fLlxuXHRbOmJsYW5rOl0tXSIgIiIgZnJvbS1sZXR0ZXIpKQorICAgICAgICAgKGh5
cGhlbmF0ZWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6Ymxhbms6XVx0XG5dKyIgIi0i
IGtlcHQpKQorICAgICAgICAgKHRyaW1tZWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiLStc
XCciICIiIGh5cGhlbmF0ZWQpKSkKKyAgICAoaWYgKHN0cmluZy1lbXB0eS1wIHRyaW1tZWQpICJz
ZWN0aW9uIiB0cmltbWVkKSkpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQt
cmUKKyAgIlsgXHRdKntbIFx0XSojXFwoW159IFx0XStcXClbIFx0XSp9WyBcdF0qXFwnIgorICAi
TWF0Y2ggYSBQYW5kb2Mtc3R5bGUgdHJhaWxpbmcgYHsjaWR9JyBvbiBhIGhlYWRpbmcgbGluZS4K
K0NhcHR1cmUgZ3JvdXAgMSBpcyB0aGUgZXhwbGljaXQgaWQuIikKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1oZWFkaW5nLXRleHQtYW5kLWlkIChyYXcpCisgICJTcGxpdCBSQVcgaGVhZGluZyB0ZXh0
IGludG8gKFZJU0lCTEUgLiBFWFBMSUNJVC1JRCkuCitFWFBMSUNJVC1JRCBpcyBub24tbmlsIGlm
IFJBVyBlbmRzIHdpdGggYSBQYW5kb2Mtc3R5bGUgYHsjaWR9JywKK2luIHdoaWNoIGNhc2UgVklT
SUJMRSBpcyBSQVcgd2l0aCB0aGF0IHN1ZmZpeCByZW1vdmVkLiIKKyAgKGlmIChzdHJpbmctbWF0
Y2ggbWFya2Rvd24tdHMtLWV4cGxpY2l0LWlkLXJlIHJhdykKKyAgICAgIChjb25zIChzdWJzdHJp
bmcgcmF3IDAgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgIChtYXRjaC1zdHJpbmcg
MSByYXcpKQorICAgIChjb25zIHJhdyBuaWwpKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10
cy0taGVhZGluZy1pZC1jYWNoZSBuaWwKKyAgIkNhY2hlZCBoYXNoIHRhYmxlIG1hcHBpbmcgaGVh
ZGluZyBzbHVnIHN0cmluZ3MgdG8gYnVmZmVyIHBvc2l0aW9ucy4KK0VhY2ggdmFsdWUgaXMgdGhl
IGJ1ZmZlciBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIG1hdGNoaW5nCitgYXR4X2hlYWRp
bmcnIG9yIGBzZXRleHRfaGVhZGluZycgbm9kZS4gIEJ1aWx0IGxhemlseSBieQorYG1hcmtkb3du
LXRzLS1oZWFkaW5nLWlkcycsIGludmFsaWRhdGVkIGJ5IGJ1ZmZlci10aWNrIGNoYW5nZS4iKQor
CisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLXRpY2sgbmlsCisg
ICJWYWx1ZSBvZiBgYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGhlYWRpbmct
aWQgY2FjaGUgd2FzIGJ1aWx0LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tYnVpbGQtaGVhZGlu
Zy1pZHMgKCkKKyAgIldhbGsgYWxsIGhlYWRpbmdzIGluIHRoZSBidWZmZXIgYW5kIHJldHVybiBh
IGhhc2ggdGFibGUuCitXaGljaCBtYXBzIGVhY2ggc2x1ZyB0byB0aGUgYnVmZmVyIHBvc2l0aW9u
IG9mIGl0cyBoZWFkaW5nLiAgRWFjaAoraGVhZGluZyBjb250cmlidXRlcyBpdHMgR2l0SHViIHNs
dWcsIGl0cyBQYW5kb2Mgc2x1ZywgYW5kIGl0cyBleHBsaWNpdAorYHsjaWR9JyBpZiBwcmVzZW50
LiAgQm90aCBzbHVnIGFsZ29yaXRobXMgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBidWZmZXIKK2Jl
Y2F1c2UgYSBtYXJrZG93biBmaWxlIGlzIG9mdGVuIHByZXZpZXdlZCBieSBzZXZlcmFsIHJlbmRl
cmVycyAoR2l0SHViCit3ZWIgVUksIFBhbmRvYywgbWRCb29rLCBIdWdvLCBhbmQgc28gb24pIGFu
ZCB0aGUgc2FtZSBzb3VyY2Ugc2hvdWxkCityZXNvbHZlIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb25l
IHRoZSBhdXRob3Igd3JvdGUgdGhlIGxpbmsgZm9yLiAgRm9yIG1vc3QKK2hlYWRpbmdzIHRoZSB0
d28gYWxnb3JpdGhtcyBwcm9kdWNlIHRoZSBzYW1lIHNsdWcgYW55d2F5LgorRHVwbGljYXRlIHNs
dWdzICh3aXRoaW4gb25lIGFsZ29yaXRobSkgYXJlIGRpc2FtYmlndWF0ZWQgYnkgYXBwZW5kaW5n
CitgLTEnLCBgLTInLCBhbmQgc28gb24sIGluIGRvY3VtZW50IG9yZGVyLCBtYXRjaGluZyBHaXRI
dWIncyBiZWhhdmlvci4KK1doZW4gdHdvIGRpc3RpbmN0IGhlYWRpbmdzIHdvdWxkIG90aGVyd2lz
ZSBzaGFyZSBhIHNsdWcsIHRoZSBmaXJzdAorb2NjdXJyZW5jZSBpbiBkb2N1bWVudCBvcmRlciB3
aW5zLiIKKyAgKGxldCAoKHRhYmxlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisg
ICAgICAgIDs7IFBlci1hbGdvcml0aG0gZGVkdXBlIGNvdW50ZXJzOiBob3cgbWFueSB0aW1lcyB0
aGlzIGJhc2Ugc2x1ZworICAgICAgICA7OyBoYXMgYmVlbiBzZWVuIHNvIGZhciBpbiBkb2N1bWVu
dCBvcmRlci4KKyAgICAgICAgKGdoLWNvdW50cyAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1
YWwpKQorICAgICAgICAocGQtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkp
CisgICAgICAgIChyb290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkpCisg
ICAgKGRvbGlzdCAoY2FwICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAg
IHJvb3QKKyAgICAgICAgICAgICAgICAgICcoKChhdHhfaGVhZGluZykgQGgpCisgICAgICAgICAg
ICAgICAgICAgICgoc2V0ZXh0X2hlYWRpbmcpIEBoKSkpKQorICAgICAgKGxldCogKChub2RlIChj
ZHIgY2FwKSkKKyAgICAgICAgICAgICAocG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAgICAgKHJhdyAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkp
KQorICAgICAgICAgICAgIDs7IFN0cmlwIHRoZSBsZWFkaW5nIG1hcmtlciAoIyMjIG9yID09PT0v
LS0tLSkuCisgICAgICAgICAgICAgOzsgRm9yIGF0eCwgZHJvcCBsZWFkaW5nICMncyBhbmQgZm9s
bG93aW5nIHNwYWNlLgorICAgICAgICAgICAgIDs7IEZvciBzZXRleHQsIGRyb3AgdGhlIHRyYWls
aW5nIHVuZGVybGluZSBsaW5lLgorICAgICAgICAgICAgICh0ZXh0IChjb25kCisgICAgICAgICAg
ICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJcXGAjK1sgXHRdKlxcKC4qP1xcKVsgXHRdKiMqWyBc
dF0qXFwnIiByYXcpCisgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgcmF3KSkK
KyAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYFxcKC4qP1xcKVxuWz0tXStb
IFx0XSpcXCciIHJhdykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcp
KQorICAgICAgICAgICAgICAgICAgICAodCByYXcpKSkKKyAgICAgICAgICAgICAoc3BsaXQgKG1h
cmtkb3duLXRzLS1oZWFkaW5nLXRleHQtYW5kLWlkIHRleHQpKQorICAgICAgICAgICAgICh2aXNp
YmxlIChjYXIgc3BsaXQpKQorICAgICAgICAgICAgIChleHBsaWNpdCAoY2RyIHNwbGl0KSkpCisg
ICAgICAgIDs7IEV4cGxpY2l0IHsjaWR9IHdpbnMgb3V0cmlnaHQ7IGZpcnN0IG9jY3VycmVuY2Ug
a2VlcHMgaXQuCisgICAgICAgICh3aGVuIChhbmQgZXhwbGljaXQgKG5vdCAoZ2V0aGFzaCBleHBs
aWNpdCB0YWJsZSkpKQorICAgICAgICAgIChwdXRoYXNoIGV4cGxpY2l0IHBvcyB0YWJsZSkpCisg
ICAgICAgIDs7IEF1dG8gc2x1Z3MgKEdpdEh1YiArIFBhbmRvYyksIGRlZHVwZWQgcGVyIGFsZ29y
aXRobS4KKyAgICAgICAgKGxldCogKChnaC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1naXRodWIg
dmlzaWJsZSkpCisgICAgICAgICAgICAgICAocGQtYmFzZSAobWFya2Rvd24tdHMtLXNsdWctcGFu
ZG9jIHZpc2libGUpKQorICAgICAgICAgICAgICAgKGdoLW4gKGdldGhhc2ggZ2gtYmFzZSBnaC1j
b3VudHMgMCkpCisgICAgICAgICAgICAgICAocGQtbiAoZ2V0aGFzaCBwZC1iYXNlIHBkLWNvdW50
cyAwKSkKKyAgICAgICAgICAgICAgIChnaC1pZCAoaWYgKHplcm9wIGdoLW4pIGdoLWJhc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzLSVkIiBnaC1iYXNlIGdoLW4pKSkKKyAg
ICAgICAgICAgICAgIChwZC1pZCAoaWYgKHplcm9wIHBkLW4pIHBkLWJhc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChmb3JtYXQgIiVzLSVkIiBwZC1iYXNlIHBkLW4pKSkpCisgICAgICAgICAg
KHB1dGhhc2ggZ2gtYmFzZSAoMSsgZ2gtbikgZ2gtY291bnRzKQorICAgICAgICAgIChwdXRoYXNo
IHBkLWJhc2UgKDErIHBkLW4pIHBkLWNvdW50cykKKyAgICAgICAgICA7OyBGaXJzdC13cml0ZXIt
d2lucyBzbyBkb2N1bWVudCBvcmRlciB0aWVicmVha3MgY29sbGlzaW9ucy4KKyAgICAgICAgICAo
dW5sZXNzIChnZXRoYXNoIGdoLWlkIHRhYmxlKSAocHV0aGFzaCBnaC1pZCBwb3MgdGFibGUpKQor
ICAgICAgICAgICh1bmxlc3MgKGdldGhhc2ggcGQtaWQgdGFibGUpIChwdXRoYXNoIHBkLWlkIHBv
cyB0YWJsZSkpKSkpCisgICAgdGFibGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhlYWRpbmct
aWRzICgpCisgICJSZXR1cm4gdGhlIGhlYWRpbmctaWQgaGFzaCB0YWJsZSBmb3IgdGhlIGN1cnJl
bnQgYnVmZmVyLgorQ2FjaGUgaXMgcmVidWlsdCBvbmx5IHdoZW4gYGJ1ZmZlci1jaGFycy1tb2Rp
ZmllZC10aWNrJyBoYXMgYWR2YW5jZWQKK3NpbmNlIHRoZSBsYXN0IGNhbGwgKG1pcnJvcnMgYG1h
cmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZScpLiIKKyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFy
cy1tb2RpZmllZC10aWNrKSkpCisgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0taGVh
ZGluZy1pZC1jYWNoZS10aWNrKQorICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQt
Y2FjaGUgKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcykKKyAgICAgICAgICAgIG1hcmtk
b3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLXRpY2sgdGljaykpCisgICAgbWFya2Rvd24tdHMtLWhl
YWRpbmctaWQtY2FjaGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCAo
aWQpCisgICJKdW1wIHRvIHRoZSBoZWFkaW5nIHdob3NlIHNsdWcgbWF0Y2hlcyBJRCAod2l0aG91
dCBsZWFkaW5nIGAjJykuCitQdXNoZXMgdGhlIG1hcmsgYmVmb3JlIG1vdmluZyBzbyBgQy11IEMt
U1BDJyByZXR1cm5zLiAgU2lnbmFscworYHVzZXItZXJyb3InIGlmIG5vIGhlYWRpbmcgbWF0Y2hl
cy4iCisgIChpZi1sZXQqICgocG9zIChnZXRoYXNoIGlkIChtYXJrZG93bi10cy0taGVhZGluZy1p
ZHMpKSkpCisgICAgICAocHJvZ24KKyAgICAgICAgKHB1c2gtbWFyaykKKyAgICAgICAgKGdvdG8t
Y2hhciBwb3MpCisgICAgICAgIChyZWNlbnRlcikpCisgICAgKHVzZXItZXJyb3IgIk5vIGhlYWRp
bmcgZm9yIGZyYWdtZW50OiAjJXMiIGlkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlm
eS1oZWFkaW5nIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiQXBwbHkg
dGhlIGhlYWRpbmcgZmFjZSB0byBOT0RFJ3MgZnVsbCBleHRlbnQuCitVc2UgYGZvbnQtbG9jay1h
cHBlbmQtdGV4dC1wcm9wZXJ0eScgZGlyZWN0bHkgc28gdGhlIGZhY2UgaXMgYXBwbGllZAorYWNy
b3NzIHRoZSBlbnRpcmUgaGVhZGluZyBldmVuIHdoZW4gY2hpbGQgc3ViLW5vZGVzIChlLmcuIGFu
IGlubGluZQorbGluaykgd291bGQgb3RoZXJ3aXNlIHByZXZlbnQgdGhlIHJlZ3VsYXIgdHJlZS1z
aXR0ZXIgZmFjZSBydWxlIGZyb20KK2NvdmVyaW5nIHRoZW0uCisKK0ZvciBBVFggaGVhZGluZ3Ms
IGFsc28gZm9udGlmeSBhbnkgb3B0aW9uYWwgdHJhaWxpbmcgY2xvc2luZy1gIycKK3NlcXVlbmNl
IGFzIGEgZGVsaW1pdGVyLiAgVGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgZG9lcyBub3QgcHJvZHVj
ZSBhCitzZXBhcmF0ZSBub2RlIGZvciB0aGVzZTsgcGVyIENvbW1vbk1hcmsgdGhleSBhcmUgZGVj
b3JhdGl2ZSBhbmQKK211c3QgYmUgcHJlY2VkZWQgYnkgYSBzcGFjZSBvciB0YWIuIgorICAobGV0
KiAoKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgKG4tc3RhcnQgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChuLWVuZCAgICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpKQorICAgICAgICAgKGZhY2UgKGNvbmQKKyAgICAgICAgICAgICAgICAoKGVxdWFs
IHR5cGUgInNldGV4dF9oZWFkaW5nIikKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLXNl
dGV4dC1oZWFkaW5nKQorICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgIChsZXQg
KChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKKyAgICAgICAgICAgICAgICAg
ICAoaW50ZXJuIChmb3JtYXQgIm1hcmtkb3duLXRzLWhlYWRpbmctJWQiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0
KSkpKSkpKSkpCisgICAgKGZvbnQtbG9jay1hcHBlbmQtdGV4dC1wcm9wZXJ0eSBuLXN0YXJ0IG4t
ZW5kICdmYWNlIGZhY2UpCisgICAgKHdoZW4gKHN0cmluZy1wcmVmaXgtcCAiYXR4XyIgdHlwZSkK
KyAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAoZ290by1jaGFyIG4tZW5kKQorICAgICAg
ICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0XG4iIG4tc3RhcnQpCisgICAgICAgIChsZXQgKChs
aW5lLWVuZCAocG9pbnQpKSkKKyAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBu
LXN0YXJ0KQorICAgICAgICAgIChsZXQgKCh0cmFpbGluZy1lbmQgKHBvaW50KSkpCisgICAgICAg
ICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIyIgbi1zdGFydCkKKyAgICAgICAgICAgIChsZXQg
KCh0cmFpbGluZy1zdGFydCAocG9pbnQpKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPCB0
cmFpbGluZy1zdGFydCB0cmFpbGluZy1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKD4g
dHJhaWxpbmctc3RhcnQgbi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAo
Y2hhci1iZWZvcmUgdHJhaWxpbmctc3RhcnQpICcoP1xzID9cdCkpKQorICAgICAgICAgICAgICAg
IChmb250LWxvY2stcHJlcGVuZC10ZXh0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgIHRyYWls
aW5nLXN0YXJ0IHRyYWlsaW5nLWVuZAorICAgICAgICAgICAgICAgICAnZmFjZSAnbWFya2Rvd24t
dHMtZGVsaW1pdGVyKQorICAgICAgICAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFy
a3VwCisgICAgICAgICAgICAgICAgICA7OyBBbHNvIGhpZGUgdGhlIHNwYWNlKHMpIHByZWNlZGlu
ZyB0aGUgY2xvc2VyIGFuZCBhbnkKKyAgICAgICAgICAgICAgICAgIDs7IHRyYWlsaW5nIHdoaXRl
c3BhY2UsIHNvIHRoZSBoZWFkaW5nIGxvb2tzIGNsZWFuLgorICAgICAgICAgICAgICAgICAgKGxl
dCAoKGhpZGUtc3RhcnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgdHJhaWxpbmctc3RhcnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiIG4tc3RhcnQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IGhpZGUtc3RhcnQgbGluZS1lbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy0tbWFya3VwKSkpKSkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSAobm9kZSBvdmVy
cmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBvciBpbWFnZSB0ZXh0IE5P
REUgYXMgYSBjbGlja2FibGUgYnV0dG9uLgorV29ya3MgZm9yIGlubGluZSBsaW5rcywgcmVmZXJl
bmNlIGxpbmtzLCBzaG9ydGN1dCBsaW5rcywgYW5kCitpbWFnZSBkZXNjcmlwdGlvbnMuICBUaGUg
VVJMIGlzIHRha2VuIGZyb20gYSBzaWJsaW5nCitgbGlua19kZXN0aW5hdGlvbicgbm9kZSB3aGVu
IHByZXNlbnQsIG9yIHJlc29sdmVkIGZyb20gYQorbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbiwg
b3IgdGhlIG5vZGUgdGV4dCBpdHNlbGYgaXMgdXNlZCBhcworZmFsbGJhY2suICBPVkVSUklERSwg
U1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdp
dGgtb3ZlcnJpZGUnLiIKKyAgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2Rl
KSkpCisgICAgOzsgV2hlbiBOT0RFIGlzIGEgbGlua19sYWJlbCBpbnNpZGUgYSBmdWxsX3JlZmVy
ZW5jZV9saW5rIHRoYXQKKyAgICA7OyBhbHNvIGhhcyBhIGxpbmtfdGV4dCwgc2tpcCBpdCwgbGlu
a190ZXh0IGhhbmRsZXMgdGhhdCBsaW5rLgorICAgICh1bmxlc3MgKGFuZCAoc3RyaW5nPSAodHJl
ZXNpdC1ub2RlLXR5cGUgbm9kZSkgImxpbmtfbGFiZWwiKQorICAgICAgICAgICAgICAgICAodHJl
ZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfdGV4dFxcJyIpKQorICAgICAgKHRy
ZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBu
b2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgICAgICdtYXJrZG93bi10cy1saW5rIG92
ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAgIChsZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3Vi
dHJlZSBwYXJlbnQgIlxcYGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJs
IChpZiBkZXN0CisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3Qg
dCkKKyAgICAgICAgICAgICAgICAgICAgOzsgUmVmZXJlbmNlIGxpbmtzOiByZXNvbHZlIHZpYSBs
aW5rX2xhYmVsIG9yIGxpbmtfdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgKGxldCogKChsYWJl
bC1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyZW50ICJcXGBsaW5rX2xhYmVsXFwnIikpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGFiZWwgKGlmIGxhYmVsLW5vZGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHN0cmluZy10cmltICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLW5vZGUg
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc
XFsiICJcXF0iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS10ZXh0IG5vZGUgdCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3IgKG1hcmtkb3du
LXRzLS1yZXNvbHZlLWxpbmstcmVmIGxhYmVsKQorICAgICAgICAgICAgICAgICAgICAgICAgICBs
YWJlbCkpKSkpCisgICAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAg
ICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSB1cmwp
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsgKG5vZGUgb3ZlcnJp
ZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGF1dG9saW5rIE5PREUgKFVSSSBvciBl
bWFpbCkgYXMgYSBjbGlja2FibGUgYnV0dG9uLgorRm9yIGVtYWlsIGF1dG9saW5rcywgdGhlIFVS
TCBpcyBwcmVmaXhlZCB3aXRoIFwibWFpbHRvOlwiLgorQW5nbGUgYnJhY2tldCBkZWxpbWl0ZXJz
IGFyZSBoaWRkZW4gd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAg
ICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKGlubmVy
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgKDErIG5v
ZGUtc3RhcnQpICgxLSBub2RlLWVuZCkpKQorICAgICAgICAgKHVybCAoaWYgKHN0cmluZz0gKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpICJlbWFpbF9hdXRvbGluayIpCisgICAgICAgICAgICAgICAg
ICAoY29uY2F0ICJtYWlsdG86IiBpbm5lcikKKyAgICAgICAgICAgICAgICBpbm5lcikpKQorICAg
ICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICBub2RlLXN0YXJ0IG5vZGUtZW5k
ICdtYXJrZG93bi10cy1saW5rIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAobWFya2Rvd24tdHMt
LW1ha2UtbGluay1idXR0b24gbm9kZS1zdGFydCBub2RlLWVuZCB1cmwpCisgICAgKHdoZW4gbWFy
a2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0
ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21h
cmtkb3duLXRzLS1tYXJrdXApCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUtZW5k
KSBub2RlLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3du
LXRzLS1tYXJrdXApKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1s
YWJlbCAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBy
ZWZlcmVuY2UgZGVmaW5pdGlvbiBsYWJlbCBOT0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1Ro
ZSBicmFja2V0cyBhbmQgY29sb24gYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitP
VkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9k
ZSkpCisgICAgICAgICAocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAg
ICAgKGRlc3Qtbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfZGVz
dGluYXRpb25cXCciKSkKKyAgICAgICAgICh1cmwgKHdoZW4gZGVzdC1ub2RlICh0cmVlc2l0LW5v
ZGUtdGV4dCBkZXN0LW5vZGUgdCkpKSkKKyAgICA7OyBGb250aWZ5IHRoZSBsYWJlbCB0ZXh0IChp
bnNpZGUgYnJhY2tldHMpLgorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAg
ICAoMSsgbm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKQorICAgICAnbWFya2Rvd24tdHMtbGluayBv
dmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsgTWFrZSBpdCBhIGNsaWNrYWJsZSBidXR0b24uCisg
ICAgKHdoZW4gdXJsCisgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKDErIG5v
ZGUtc3RhcnQpICgxLSBub2RlLWVuZCkgdXJsKSkKKyAgICA7OyBIaWRlICJbIiBiZWZvcmUgbGFi
ZWwgYW5kICJdOiAiIGJldHdlZW4gbGFiZWwgYW5kIGRlc3RpbmF0aW9uLgorICAgICh3aGVuIG1h
cmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFy
dCAoMSsgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdt
YXJrZG93bi10cy0tbWFya3VwKQorICAgICAgKGxldCAoKGNvbG9uLWVuZCAoaWYgZGVzdC1ub2Rl
ICh0cmVlc2l0LW5vZGUtc3RhcnQgZGVzdC1ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICgxKyBub2RlLWVuZCkpKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2RlLWVu
ZCkgY29sb24tZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJr
ZG93bi10cy0tbWFya3VwKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmst
cmVmLWRlc3RpbmF0aW9uIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN0IF8pCisgICJGb250
aWZ5IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb24gZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3
aGVuIG1hcmt1cCBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0
aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVl
c2l0LW5vZGUtZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVy
cmlkZSBzdGFydCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1
dC10ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMt
LW1hcmt1cCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5v
ZGUpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNp
bmdsZSBpbmxpbmUgc2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBm
YWxzZSBgbGF0ZXhfYmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91
bmRhcmllcy4gIENoZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMg
c2hhcmUgdGhlIHNhbWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9k
ZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEt
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0
cmVlc2l0LW5vZGUtYXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgICht
ZC1lbmQgKHRyZWVzaXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAg
ICAgIChpbmxpbmUtc3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVl
c2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVu
ZCAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQt
ZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5l
IikpKSkpCisgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1mb250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVu
ZCAmcmVzdCBfKQorICAiRm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxp
bWl0ZXJzIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFs
c2UgbWF0Y2hlcyB0aGF0IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJ
REUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlm
eS13aXRoLW92ZXJyaWRlJy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFs
aWQtcCBub2RlKQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJl
ZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJr
ZG93bi10cy1sYXRleCBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMt
aGlkZS1tYXJrdXAKKyAgICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQg
bm9kZSkpCisgICAgICAgIChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkp
KQorICAgICAgICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRl
eF9zcGFuX2RlbGltaXRlciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVz
aXQtbm9kZS1zdGFydCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLWVuZCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52
aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3Qg
XykKKyAgIkZvbnRpZnkgYmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFz
aCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2Nr
JyB3aGVyZSBiYWNrc2xhc2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBh
bmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlJy4iCisgIChsZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgIChpbi1sYXRleCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUt
cGFyZW50IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkK
KyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsg
bm9kZS1zdGFydCkKKyAgICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBl
bmQpCisgICAgKHdoZW4gKGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4
KSkKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXAp
KSkpCisKKyhkZWZ2YXIgc2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVu
dGl0eS1nZXQgIm9yZy9vcmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRl
Y29kZS1lbnRpdHkgKHRleHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCIm
YW1wO1wiKSB0byBpdHMgY2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJp
bmcsIG9yIG5pbCBpZiB0aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVt
ZXJpYyBoZXggJiN4MUY0QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0
Ol1dK1xcKTtcXCciIHRleHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVy
IChtYXRjaC1zdHJpbmcgMSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIz
OworICAgKChzdHJpbmctbWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkK
KyAgICAoY2hhci10by1zdHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRl
eHQpKSkpCisgICA7OyBOYW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBi
YWNrIHRvIHNnbWwtY2hhci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51
bTpdXStcXCk7XFwnIiB0ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0
KSkpCisgICAgICAocmVxdWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRy
eSAob3JnLWVudGl0eS1nZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVu
dHJ5KSkpCisgICAgICAgICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAg
ICAgICAod2hlbi1sZXQqICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1l
ICMnZXF1YWwpKSkKKyAgICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQg
JnJlc3QgXykKKyAgIkZvbnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFs
dWUgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBw
YXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChs
ZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2Rl
LWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAg
ICAgICAgJ21hcmtkb3duLXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9u
dGlmeS13aXRoLW92ZXJyaWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93
bi10cy0tZGVjb2RlLWVudGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtbm9kZS10ZXh0IG5vZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxh
eWFibGUtcCAoYXJlZiBkZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5
IG5vZGUtc3RhcnQgbm9kZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRl
eHQtcHJvcGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktY2hlY2tib3ggKG5vZGUgb3ZlcnJpZGUgc3RhcnQg
ZW5kICZyZXN0IF8pCisgICJGb250aWZ5IHRhc2sgbGlzdCBjaGVja2JveCBOT0RFLCBzaG93IGEg
VW5pY29kZSBzeW1ib2wgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBh
bmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQor
ICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKGNo
ZWNrZWQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAidGFza19saXN0X21hcmtlcl9j
aGVja2VkIikpCisgICAgICAgICAoZmFjZSAoaWYgY2hlY2tlZCAnbWFya2Rvd24tdHMtdGFzay1j
aGVja2VkCisgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy10YXNrLXVuY2hlY2tlZCkpCisg
ICAgICAgICAocmVwbGFjZW1lbnQgKGlmIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveAorICAgICAgICAgICAgICAgICAgICAgICAg
bWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIChhbmQgbWFya2Rv
d24tdHMtaGlkZS1tYXJrdXAgcmVwbGFjZW1lbnQKKyAgICAgICAgICAgICAoY2hhci1kaXNwbGF5
YWJsZS1wIChhcmVmIHJlcGxhY2VtZW50IDApKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5
IG5vZGUtc3RhcnQgbm9kZS1lbmQgJ2Rpc3BsYXkgcmVwbGFjZW1lbnQpCisgICAgICAocmVtb3Zl
LXRleHQtcHJvcGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1saW5lLWJyZWFrIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBoYXJkIGxpbmUgYnJlYWsgTk9ERTsg
c2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK0EgYmFja3NsYXNo
IGJyZWFrIGdldHMgYG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gnIChvciBp
dHMKK2AtaGlkZGVuJyB2YXJpYW50IHdoZW4gbWFya3VwIGlzIGhpZGRlbik7IGEgdHJhaWxpbmct
c3BhY2VzIGJyZWFrIGdldHMKK2BtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UnIChv
ciBgLWhpZGRlbicpLiAgV2hlbiBoaWRkZW4sIGEKK2JhY2tzbGFzaCBicmVhayBpcyByZXBsYWNl
ZCBieSBhIHNpbmdsZSBgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrJworZ2x5cGg7IGEgdHJh
aWxpbmctc3BhY2VzIGJyZWFrIHJlcGxhY2VzIGVhY2ggc3BhY2Ugd2l0aCB0aGUgZ2x5cGgsIHNv
IHRoZSBydW4KK29mIHBpbGNyb3dzIGZpbGxzIHRoZSBsaW5lIHVwIHRvIHRoZSBuZXdsaW5lLgor
T1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1u
b2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICAgKHRyZWVzaXQtbm9kZS1lbmQg
bm9kZSkpCisgICAgICAgICAodGV4dCAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkK
KyAgICAgICAgIChiYWNrc2xhc2ggIChhbmQgKD4gKGxlbmd0aCB0ZXh0KSAwKSAoZXEgKGFyZWYg
dGV4dCAwKSA/XFwpKSkKKyAgICAgICAgIDs7IERldGVybWluZSB0aGUgYWN0dWFsIHJhbmdlIHRv
IGZvbnRpZnkgYW5kIHJlcGxhY2UuICBUaGUKKyAgICAgICAgIDs7IGhhcmRfbGluZV9icmVhayBu
b2RlIG1heSBub3QgY292ZXIgdGhlIGZ1bGwgcnVuIG9mIHRyYWlsaW5nCisgICAgICAgICA7OyBz
cGFjZXMsIHNvIHdhbGsgYmFjayBmcm9tIGVuZC1vZi1saW5lIG91cnNlbHZlcyBmb3IgdGhlCisg
ICAgICAgICA7OyBzcGFjZXMgdmFyaWFudC4KKyAgICAgICAgIChyZWdpb24gICAgIChpZiBiYWNr
c2xhc2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBub2RlLXN0YXJ0CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNoYXItYmVmb3Jl
IG5vZGUtZW5kKSA/XG4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0g
bm9kZS1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLWVuZCkpCisg
ICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
bGV0ICgoZW9sIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNvbnMgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChnb3RvLWNoYXIgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2tpcC1jaGFycy1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IiAiIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlb2wp
KSkpKQorICAgICAgICAgKHJlZ2lvbi1zdGFydCAoY2FyIHJlZ2lvbikpCisgICAgICAgICAocmVn
aW9uLWVuZCAgIChjZHIgcmVnaW9uKSkKKyAgICAgICAgIChmYWNlICAgICAgIChjb25kCisgICAg
ICAgICAgICAgICAgICAgICAgKChhbmQgYmFja3NsYXNoIG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
KQorICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJh
Y2tzbGFzaC1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tzbGFzaCAnbWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAo
bWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1zcGFjZS1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAg
KHQgJ21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSkpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgZmFjZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsg
QWx3YXlzIHN0YXJ0IGJ5IGNsZWFyaW5nIGFueSBzdGFsZSBgZGlzcGxheScgcHJvcGVydHkuICBX
ZSBuZXZlcgorICAgIDs7IHNwYW4gdGhlIHRyYWlsaW5nIG5ld2xpbmUgd2l0aCBgZGlzcGxheScg
KGl0IGNvbmZ1c2VzCisgICAgOzsgcmVkaXNwbGF5J3MgY3Vyc29yIHBsYWNlbWVudCksIGFuZCB3
ZSBvbmx5IHBhaW50IGEgc2luZ2xlCisgICAgOzsgY29tYmluZWQgc3RyaW5nIG9udG8gdGhlIGZp
cnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuLCBsZWF2aW5nCisgICAgOzsgdGhlIHJlc3Qgb2YgdGhl
IG1hcmt1cCBhbG9uZS4KKyAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyByZWdpb24tc3RhcnQg
cmVnaW9uLWVuZCAnKGRpc3BsYXkgbmlsKSkKKyAgICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1h
cmt1cAorICAgICAgKGxldCogKChzcGVjIChpZiBiYWNrc2xhc2gKKyAgICAgICAgICAgICAgICAg
ICAgICAgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaAorICAgICAgICAgICAg
ICAgICAgICAgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlKSkKKyAgICAgICAgICAg
ICAoc3RyIChjb25kCisgICAgICAgICAgICAgICAgICAgKChudWxsIHNwZWMpIG5pbCkKKyAgICAg
ICAgICAgICAgICAgICAoKGNoYXJhY3RlcnAgc3BlYykgKGNoYXItdG8tc3RyaW5nIHNwZWMpKQor
ICAgICAgICAgICAgICAgICAgICgoc3RyaW5ncCBzcGVjKSBzcGVjKQorICAgICAgICAgICAgICAg
ICAgICgoZnVuY3Rpb25wIHNwZWMpCisgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIHNwZWMg
KC0gcmVnaW9uLWVuZCByZWdpb24tc3RhcnQpKSkpKSkKKyAgICAgICAgKHdoZW4gKGFuZCAoc3Ry
aW5ncCBzdHIpCisgICAgICAgICAgICAgICAgICAgKD4gKGxlbmd0aCBzdHIpIDApCisgICAgICAg
ICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiBzdHIgMCkpKQorICAgICAgICAg
IChwdXQtdGV4dC1wcm9wZXJ0eSByZWdpb24tc3RhcnQgKDErIHJlZ2lvbi1zdGFydCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkgc3RyKQorICAgICAgICAgIDs7IEZvciB0
aGUgdHJhaWxpbmctc3BhY2VzIHZhcmlhbnQsIGhpZGUgdGhlIHJlbWFpbmluZworICAgICAgICAg
IDs7IHNwYWNlcyBpbiB0aGUgcnVuIHNvIHRoZSBsaW5lIGRvZXNuJ3QgZW5kIHdpdGggbGVmdG92
ZXIKKyAgICAgICAgICA7OyB3aGl0ZXNwYWNlIGFmdGVyIHRoZSBzdWJzdGl0dXRlZCBnbHlwaC4g
IEVhY2ggcG9zaXRpb24KKyAgICAgICAgICA7OyBnZXRzIGl0cyBvd24gZW1wdHktc3RyaW5nIGBk
aXNwbGF5JyBzbyBjdXJzb3IgcGxhY2VtZW50CisgICAgICAgICAgOzsgc3RheXMgdW5hbWJpZ3Vv
dXMuCisgICAgICAgICAgKHVubGVzcyBiYWNrc2xhc2gKKyAgICAgICAgICAgIChsZXQgKChpICgx
KyByZWdpb24tc3RhcnQpKSkKKyAgICAgICAgICAgICAgKHdoaWxlICg8IGkgcmVnaW9uLWVuZCkK
KyAgICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgaSAoMSsgaSkgJ2Rpc3BsYXkgIiIp
CisgICAgICAgICAgICAgICAgKHNldHEgaSAoMSsgaSkpKSkpKSkpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAm
cmVzdCBfKQorICAiRm9udGlmeSB0aGVtYXRpYyBicmVhayBOT0RFIGFuZCBzaG93IGEgbGluZSB3
aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3Nl
ZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCAo
KG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5k
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3Zl
cnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAoYW5kIG1hcmtkb3duLXRz
LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3RlcgorICAgICAg
ICAgICAgIChjaGFyLWRpc3BsYXlhYmxlLXAgbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWstY2hh
cmFjdGVyKSkKKyAgICAgICAgKGxldCogKChjb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIg
bm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50
LWNvbHVtbikpKQorICAgICAgICAgICAgICAgOzsgU3BhbiBpZiB0aGUgZmFjZSBoYXMgbm9uLW5p
bCA6ZXh0ZW5kLgorICAgICAgICAgICAgICAgKHNwYW4tbGVuZ3RoIChpZiAoZmFjZS1hdHRyaWJ1
dGUgJ21hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5kIG5pbCAnZGVmYXVsdCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKC0gKHdpbmRvdy1ib2R5LXdpZHRoKSBjb2wpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMikpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNw
bGF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyBzcGFuLWxlbmd0aAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNo
YXJhY3RlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbiIpKSkKKyAgICAgIChy
ZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQgbm9kZS1lbmQgJyhkaXNwbGF5IG5pbCkp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrIChub2RlIF9vdmVy
cmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiRm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnQg
Tk9ERSB3aXRoIGEgYmFja2dyb3VuZCBvdmVybGF5LgorVXNlIGBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1hcmt1cC1oaWRkZW4nIHdoZW4gbWFya3VwIGlzIGhpZGRlbiwKK2BtYXJrZG93bi10cy1j
b2RlLWJsb2NrJyBvdGhlcndpc2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0aGUKK2JhY2tncm91bmQg
bGF5ZXJzIGl0c2VsZiBiZWhpbmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9udGlmaWNhdGlvbi4KK1Ro
ZSBvdmVybGF5IGFsc28gc3RvcmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1YWdlIGFuZCBtb2RlIGFz
Citwcm9wZXJ0aWVzIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlJyBhbmQKK2BtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQorYG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbGFuZ3VhZ2UtYXQnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0IChzYXZlLWV4Y3Vy
c2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv
bikpKQorICAgICAgICAgKG5vZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAg
KHBvaW50KSkpCisgICAgICAgICAoZmFjZSAoaWYgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAg
ICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisg
ICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgIChsYW5n
IChtYXJrZG93bi10cy0tbGFuZ3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAgICAgICAgIChtb2RlICh3
aGVuIGxhbmcKKyAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1
YWdlLW1vZGUgbGFuZykpKQorICAgICAgICAgKGV4aXN0aW5nIChzZXEtZmluZCAobGFtYmRhIChv
dikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheS1nZXQgb3YgJ21hcmtk
b3duLXRzLWNvZGUtYmxvY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Zlcmxh
eXMtYXQgbm9kZS1zdGFydCkpKSkKKyAgICAoaWYgZXhpc3RpbmcKKyAgICAgICAgKHByb2duCisg
ICAgICAgICAgKG1vdmUtb3ZlcmxheSBleGlzdGluZyBub2RlLXN0YXJ0IG5vZGUtZW5kKQorICAg
ICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnZmFjZSBmYWNlKQorICAgICAgICAgIChvdmVy
bGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQor
ICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1t
b2RlIG1vZGUpKQorICAgICAgKGxldCAoKG92IChtYWtlLW92ZXJsYXkgbm9kZS1zdGFydCBub2Rl
LWVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgOzsgTWFya2VycyBuZWVkIHRvIGJlIHNldCBvbmx5
IG9uY2UuCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFy
a2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS1zdGFydCkpCisgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyIChzZXQtbWFy
a2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAob3ZlcmxheS1w
dXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2sgdCkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92
ICdmYWNlIGZhY2UpCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1i
bG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRz
LWNvZGUtYmxvY2stbW9kZSBtb2RlKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0
ZSB0KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stYXQtcCAoJm9wdGlvbmFs
IHBvcykKKyAgIlJldHVybiBub24gbmlsIGlmIHBvaW50IGlzIGluIGEgY29kZSBibG9jay4KK0lm
IFBPUyBpcyBuaWwsIHVzZSBwb2ludC4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChw
b2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbGFuZ3VhZ2UtYXQgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gdGhlIGxhbmd1
YWdlIHN5bWJvbCBvZiB0aGUgY29kZSBibG9jayBhdCBQT1MuCitJZiBQT1MgaXMgbmlsLCB1c2Ug
cG9pbnQuICBSZXR1cm5zIG5pbCBpZiBQT1MgaXMgbm90IGluc2lkZSBhIGZlbmNlZAorY29kZSBi
bG9jay4gIFRoaXMgd29ya3MgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGEgZ3Vlc3QgdHJlZS1zaXR0
ZXIgcGFyc2VyCitpcyBhY3RpdmUsIHNpbmNlIHRoZSBsYW5ndWFnZSBpcyBzdG9yZWQgb24gdGhl
IGNvZGUgYmxvY2sgb3ZlcmxheSBieSB0aGUKK2hvc3QgcGFyc2VyJ3MgZm9udGlmaWNhdGlvbi4i
CisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2Rl
LWJsb2NrLWxhbmd1YWdlKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1h
dCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiB0aGUgbWFqb3IgbW9kZSBmb3IgdGhlIGNvZGUg
YmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYg
UE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQKK2NvZGUgYmxvY2sgb3IgaWYgdGhlIGxhbmd1YWdl
IGhhcyBubyByZWNvZ25pemVkIG1vZGUuIgorICAod2hlbiAobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1hdC1wIHBvcykKKyAgICAob3IgKGdldC1jaGFyLXByb3BlcnR5IChvciBwb3MgKHBvaW50KSkg
J21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSkKKyAgICAgICAgbWFya2Rvd24tdHMtZGVmYXVs
dC1jb2RlLWJsb2NrLW1vZGUpKSkKKworOzs7IEltYWdlIGhhbmRsaW5nOgorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWltYWdlLWFsb25lLW9uLWxpbmUtcCAobm9kZSkKKyAgIlJldHVybiBub24tbmls
IGlmIGltYWdlIE5PREUgaXMgdGhlIG9ubHkgY29udGVudCBvbiBpdHMgbGluZS4KK1doaXRlc3Bh
Y2UsIGJsb2NrIHF1b3RlIG1hcmtlcnMgKGA+JyksIGFuZCBsaXN0IG1hcmtlcnMKK1woYC0nLCBg
KicsIGArJywgYDEuJykgYmVmb3JlIHRoZSBpbWFnZSBhcmUgaWdub3JlZC4iCisgIChsZXQgKChu
b2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAoZ290
by1jaGFyIG5vZGUtc3RhcnQpCisgICAgICAobGV0ICgoYm9sIChsaW5lLWJlZ2lubmluZy1wb3Np
dGlvbikpCisgICAgICAgICAgICAoZW9sIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICA7
OyBCZWZvcmUgdGhlIGltYWdlOiBvbmx5IGJsb2NrIHF1b3RlIG1hcmtlcnMsIHdoaXRlc3BhY2Us
CisgICAgICAgIDs7IGFuZCBhbiBvcHRpb25hbCBsaXN0IG1hcmtlciBhcmUgYWxsb3dlZC4KKyAg
ICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAgICAgICAgKHJ4IGJvcworICAgICAg
ICAgICAgICAgICAgKHplcm8tb3ItbW9yZSAoYW55ICI+IFx0IikpCisgICAgICAgICAgICAgICAg
ICAob3B0aW9uYWwgKG9yIChzZXEgKGFueSAiLSorIikgIiAiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2VxIChvbmUtb3ItbW9yZSBkaWdpdCkgKGFueSAiLikiICkgIiAiKSkp
CisgICAgICAgICAgICAgICAgICBlb3MpCisgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5n
LW5vLXByb3BlcnRpZXMgYm9sIG5vZGUtc3RhcnQpKQorICAgICAgICAgICAgIDs7IEFmdGVyIHRo
ZSBpbWFnZTogb25seSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFsbG93ZWQuCisgICAgICAgICAgICAg
KHN0cmluZy1tYXRjaC1wCisgICAgICAgICAgICAgIChyeCBib3MgKHplcm8tb3ItbW9yZSAoYW55
ICIgXHQiKSkgZW9zKQorICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0
aWVzIG5vZGUtZW5kIGVvbCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWlt
YWdlIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiU2hvdyBhbiBpbmxp
bmUgaW1hZ2UgYXQgTk9ERS4KK1doZW4gYG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMnIGlzIG5v
bi1uaWwsIGRpc3BsYXkgdGhlIGltYWdlLgorSWYgdGhlIGltYWdlIGxpbmsgaXMgdGhlIG9ubHkg
Y29udGVudCBvbiBpdHMgbGluZSwgZGlzcGxheSB0aGUKK2ltYWdlIGJlbG93IHRoZSBsaW5rLiAg
SWYgdGhlIGltYWdlIGlzIGlubGluZSB3aXRoaW4gYSBwYXJhZ3JhcGgsCitkaXNwbGF5IGl0IHJp
Z2h0IGFmdGVyIHRoZSBsaW5rIHRleHQuCitSZW1vdGUgaW1hZ2VzIGFyZSBjb250cm9sbGVkIGJ5
CitgbWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcycuIgorICAobGV0KiAo
KG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVu
ZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChlb2wgKHNhdmUtZXhjdXJzaW9u
IChnb3RvLWNoYXIgbm9kZS1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu
ZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgICAgIChzZWFyY2gtZW5kIChtaW4gKDErIGVvbCkgKHBv
aW50LW1heCkpKSkKKyAgICA7OyBBbHdheXMgY2xlYXIgc3RhbGUgb3ZlcmxheXMgZm9yIHRoaXMg
bm9kZSdzIHJhbmdlLgorICAgIChkb2xpc3QgKG92IChvdmVybGF5cy1pbiBub2RlLXN0YXJ0IHNl
YXJjaC1lbmQpKQorICAgICAgKHdoZW4gKGFuZCAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRz
LWltYWdlKQorICAgICAgICAgICAgICAgICAoPj0gKG92ZXJsYXktc3RhcnQgb3YpIG5vZGUtc3Rh
cnQpCisgICAgICAgICAgICAgICAgICg8PSAob3ZlcmxheS1lbmQgb3YpIHNlYXJjaC1lbmQpKQor
ICAgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkKKyAgICAod2hlbiAoYW5kIG1hcmtkb3duLXRz
LWlubGluZS1pbWFnZXMKKyAgICAgICAgICAgICAgIDs7IERvbid0IGNyZWF0ZSBpbWFnZSBvdmVy
bGF5cyBmb3Igbm9kZXMgaW5zaWRlCisgICAgICAgICAgICAgICA7OyBmb2xkZWQgKG91dGxpbmUt
aW52aXNpYmxlKSBoZWFkaW5ncywgc2luY2UgdGhlCisgICAgICAgICAgICAgICA7OyBpbWFnZXMg
d291bGRuJ3QgYmUgdmlzaWJsZSBhbmQgY291bGQgaW50ZXJmZXJlCisgICAgICAgICAgICAgICA7
OyB3aXRoIHRoZSBmb2xkZWQgZGlzcGxheS4KKyAgICAgICAgICAgICAgIChub3QgKG1hcmtkb3du
LXRzLS1vdXRsaW5lLWludmlzaWJsZS1wIG5vZGUtc3RhcnQpKSkKKyAgICAgIChsZXQqICgoZGVz
dCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJcXGBsaW5rX2Rlc3RpbmF0aW9uXFwnIikp
CisgICAgICAgICAgICAgKHVybCAoYW5kIGRlc3QgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3QgdCkp
KQorICAgICAgICAgICAgIChyZW1vdGVwIChhbmQgdXJsIChzdHJpbmctbWF0Y2gtcCAiXFxgaHR0
cHM/Oi8vIiB1cmwpKSkKKyAgICAgICAgICAgICAoZGlzcGxheWFibGUKKyAgICAgICAgICAgICAg
KHdoZW4gdXJsCisgICAgICAgICAgICAgICAgKGlmIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAg
ICAgKHdoZW4gKGVxIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFnZXMKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb3dubG9hZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAoaWdub3JlLWVycm9ycworICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVpcmUgJ3Vy
bC1oYW5kbGVycykKKyAgICAgICAgICAgICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQtYnVmZmVyLW11bHRpYnl0ZSBuaWwpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICh1cmwtaW5zZXJ0LWZpbGUtY29udGVudHMgdXJsKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgICAgICAgICAgICAg
ICAgIChsZXQgKChmaWxlIChleHBhbmQtZmlsZS1uYW1lIHVybCkpKQorICAgICAgICAgICAgICAg
ICAgICAoYW5kIChub3QgKGZpbGUtcmVtb3RlLXAgZmlsZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZpbGUtZXhpc3RzLXAgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaW1h
Z2Utc3VwcG9ydGVkLWZpbGUtcCBmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUp
KSkpKQorICAgICAgICAgICAgIChtYXgtdyAoYW5kIGRpc3BsYXlhYmxlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKGlmIChlcSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1ib2R5LXdpZHRoIG5pbCB0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoKSkp
CisgICAgICAgICAgICAgKGltZyAoYW5kIG1heC13CisgICAgICAgICAgICAgICAgICAgICAgIChj
cmVhdGUtaW1hZ2UgZGlzcGxheWFibGUgbmlsIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6bWF4LXdpZHRoIG1heC13CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOnNjYWxlIDEpKSkpCisgICAgICAgICh3aGVuIGltZworICAgICAgICAg
IChsZXQqICgoYWxvbmUgKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAgbm9kZSkp
CisgICAgICAgICAgICAgICAgIChzdHIgKGlmIGFsb25lCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjb25jYXQgIlxuIiAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkgaW1nKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplICIgIiAnZGlzcGxheSBpbWcpKSkKKyAgICAgICAg
ICAgICAgICAgKG92IChtYWtlLW92ZXJsYXkgKDEtIG5vZGUtZW5kKSBub2RlLWVuZCBuaWwgdCBu
aWwpKSkKKyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UgdCkK
KyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnYWZ0ZXItc3RyaW5nIHN0cikKKyAgICAgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAnZXZhcG9yYXRlIHQpKSkpKSkpCisKKzs7OyBVUkwvVVJJIGhh
bmRsaW5nOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAgZ290by1hZGRy
ZXNzLXVybC1yZWdleHAKKyAgIlJlZ2V4cCBtYXRjaGluZyBiYXJlIFVSTHMgbm90IHdyYXBwZWQg
aW4gYW5nbGUgYnJhY2tldHMgb3IgbGluayBzeW50YXguIikKKworKGRlZnZhciBtYXJrZG93bi10
cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwIGdvdG8tYWRkcmVzcy1tYWlsLXJlZ2V4cAorICAiUmVn
ZXhwIG1hdGNoaW5nIGJhcmUgZW1haWwgYWRkcmVzc2VzIG5vdCB3cmFwcGVkIGluIGFuZ2xlIGJy
YWNrZXRzLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1iYXJlLXVyaSAoc3RhcnQg
ZW5kKQorICAiRm9udGlmeSBiYXJlIFVSTCBvciBlbWFpbCBVUkkgYmV0d2VlbiBTVEFSVCBhbmQg
RU5ELgorU2tpcCBtYXRjaGVzIGFscmVhZHkgaW5zaWRlIHRyZWUtc2l0dGVyIGxpbmsgb3IgYXV0
b2xpbmsgbm9kZXMuIgorICAoZG9saXN0IChyZSAobGlzdCBtYXJrZG93bi10cy0tYmFyZS11cmwt
cmVnZXhwCisgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1y
ZWdleHApKQorICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgKHdoaWxlIChyZS1zZWFyY2gtZm9y
d2FyZCByZSBlbmQgdCkKKyAgICAgIChsZXQqICgodXJpLXN0YXJ0IChtYXRjaC1iZWdpbm5pbmcg
MCkpCisgICAgICAgICAgICAgKHVyaS1lbmQgKG1hdGNoLWVuZCAwKSkKKyAgICAgICAgICAgICAo
dXJpIChtYXRjaC1zdHJpbmcgMCkpCisgICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dCB1cmktc3RhcnQgJ21hcmtkb3duLWlubGluZSkpCisgICAgICAgICAgICAgKHBhcmVudCAoYW5k
IG5vZGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgICAgICAgIChwYXJlbnQt
dHlwZSAoYW5kIHBhcmVudCAodHJlZXNpdC1ub2RlLXR5cGUgcGFyZW50KSkpKQorICAgICAgICAo
dW5sZXNzIChvciAobWVtYmVyIHBhcmVudC10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJygiaW5saW5lX2xpbmsiICJmdWxsX3JlZmVyZW5jZV9saW5rIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbGxhcHNlZF9yZWZlcmVuY2VfbGluayIgInNob3J0Y3V0X2xpbmsi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UiICJ1cmlfYXV0b2xpbmsiICJl
bWFpbF9hdXRvbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5rX2Rlc3Rp
bmF0aW9uIikpCisgICAgICAgICAgICAgICAgICAgIChtZW1iZXIgKGFuZCBub2RlICh0cmVlc2l0
LW5vZGUtdHlwZSBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJ1cmlfYXV0
b2xpbmsiICJlbWFpbF9hdXRvbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJs
aW5rX2Rlc3RpbmF0aW9uIiAiY29kZV9zcGFuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImNvZGVfZmVuY2VfY29udGVudCIgImluZm9fc3RyaW5nIikpCisgICAgICAgICAgICAgICAg
ICAgIChnZXQtdGV4dC1wcm9wZXJ0eSB1cmktc3RhcnQgJ2J1dHRvbikpCisgICAgICAgICAgKG1h
cmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uCisgICAgICAgICAgIHVyaS1zdGFydCB1cmktZW5k
CisgICAgICAgICAgIChpZiAoZXEgdXJpLXN0YXJ0IDApCisgICAgICAgICAgICAgICB1cmkKKyAg
ICAgICAgICAgICAoY29uY2F0ICJtYWlsdG86IiB1cmkpKSkpKSkpKQorCis7OzsgdHJlZXNpdCBz
ZXR0aW5nczoKKwogKGRlZnZhciBtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncwogICAodHJl
ZXNpdC1mb250LWxvY2stcnVsZXMKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6
b3ZlcnJpZGUgdAogICAgOmZlYXR1cmUgJ2RlbGltaXRlcgotICAgJygoaW5saW5lX2xpbmsgWyAi
WyIgIl0iICIoIiAiKSIgXSBAc2hhZG93KQotICAgICAoaW1hZ2UgWyAiISIgIlsiICJdIiAiKCIg
IikiIF0gQHNoYWRvdykpCisgICAnKChpbmxpbmVfbGluayBbICJbIiAiXSIgIigiICIpIiBdIEBt
YXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5r
IFsgIlsiICJdIiBdIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChjb2xs
YXBzZWRfcmVmZXJlbmNlX2xpbmsgWyAiWyIgIl0iIF0gQG1hcmtkb3duLXRzLS1mb250aWZ5LWRl
bGltaXRlcikKKyAgICAgKHNob3J0Y3V0X2xpbmsgWyAiWyIgIl0iIF0gQG1hcmtkb3duLXRzLS1m
b250aWZ5LWRlbGltaXRlcikKKyAgICAgKGltYWdlIFsgIiEiICJbIiAiXSIgIigiICIpIiBdIEBt
YXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3du
CiAgICA6ZmVhdHVyZSAnaGVhZGluZwotICAgJygoYXR4X2hlYWRpbmcgKGF0eF9oMV9tYXJrZXIp
KSBAbWFya2Rvd24tdHMtaGVhZGluZy0xCi0gICAgIChhdHhfaGVhZGluZyAoYXR4X2gyX21hcmtl
cikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTIKLSAgICAgKGF0eF9oZWFkaW5nIChhdHhfaDNfbWFy
a2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMwotICAgICAoYXR4X2hlYWRpbmcgKGF0eF9oNF9t
YXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy00Ci0gICAgIChhdHhfaGVhZGluZyAoYXR4X2g1
X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTUKLSAgICAgKGF0eF9oZWFkaW5nIChhdHhf
aDZfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNgotICAgICAoc2V0ZXh0X2hlYWRpbmcp
IEBtYXJrZG93bi10cy1zZXRleHQtaGVhZGluZykKKyAgICcoKChhdHhfaGVhZGluZykgICAgQG1h
cmtkb3duLXRzLS1mb250aWZ5LWhlYWRpbmcpCisgICAgICgoc2V0ZXh0X2hlYWRpbmcpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKSkKIAogICAgOmxhbmd1YWdlICdtYXJrZG93bgogICAg
OmZlYXR1cmUgJ2hlYWRpbmcKQEAgLTE5NCwxNiArMTI0MywzNCBAQCBtYXJrZG93bi10cy0tdHJl
ZXNpdC1zZXR0aW5ncwogICAgICAoYXR4X2gzX21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5
LWRlbGltaXRlcgogICAgICAoYXR4X2g0X21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRl
bGltaXRlcgogICAgICAoYXR4X2g1X21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGlt
aXRlcgotICAgICAoYXR4X2g2X21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRl
cikKKyAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIK
KyAgICAgKHNldGV4dF9oMV91bmRlcmxpbmUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0
ZXIKKyAgICAgKHNldGV4dF9oMl91bmRlcmxpbmUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgK
LSAgICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLWRlbGltaXRlcikKLSAgICAgKChp
bmRlbnRlZF9jb2RlX2Jsb2NrKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQorICAgJygoKHRoZW1h
dGljX2JyZWFrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspCisgICAgICgo
aHRtbF9ibG9jaykgQG1hcmtkb3duLXRzLWh0bWwtYmxvY2spCisgICAgICgoaW5kZW50ZWRfY29k
ZV9ibG9jaykgQG1hcmtkb3duLXRzLWluZGVudGVkLWNvZGUtYmxvY2spCiAgICAgIChsaXN0X2l0
ZW0gKGxpc3RfbWFya2VyX3N0YXIpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKICAgICAgKGxp
c3RfaXRlbSAobGlzdF9tYXJrZXJfcGx1cykgQG1hcmtkb3duLXRzLWxpc3QtbWFya2VyKQogICAg
ICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9taW51cykgQG1hcmtkb3duLXRzLWxpc3QtbWFya2Vy
KQotICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJrZG93bi10cy1saXN0LW1h
cmtlcikpCisgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX2RvdCkgQG1hcmtkb3duLXRzLWxp
c3QtbWFya2VyKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9wYXJlbnRoZXNpcykgQG1h
cmtkb3duLXRzLWxpc3QtbWFya2VyKQorICAgICAobGlzdF9pdGVtICh0YXNrX2xpc3RfbWFya2Vy
X3VuY2hlY2tlZCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KQorICAgICAobGlzdF9p
dGVtICh0YXNrX2xpc3RfbWFya2VyX2NoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVj
a2JveCkKKyAgICAgKHBpcGVfdGFibGVfaGVhZGVyICJ8IiBAbWFya2Rvd24tdHMtdGFibGUtaGVh
ZGVyKQorICAgICAocGlwZV90YWJsZV9oZWFkZXIgKHBpcGVfdGFibGVfY2VsbCkgQG1hcmtkb3du
LXRzLXRhYmxlLWhlYWRlcikKKyAgICAgKHBpcGVfdGFibGVfcm93ICJ8IiBAbWFya2Rvd24tdHMt
dGFibGUtZGVsaW1pdGVyLWNlbGwpCisgICAgIChwaXBlX3RhYmxlX3JvdyAocGlwZV90YWJsZV9j
ZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtY2VsbCkKKyAgICAgKHBpcGVfdGFibGVfZGVsaW1pdGVy
X3JvdyAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxsKQorICAgICAobGlua19y
ZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfbGFiZWwpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1saW5rLXJlZi1sYWJlbCkKKyAgICAgKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRpb24KKyAg
ICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtZGVz
dGluYXRpb24pCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAobGlua190
aXRsZSkgQG1hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24pCisgICAgIChwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3cgKHBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwpIEBtYXJrZG93bi10cy10YWJs
ZS1kZWxpbWl0ZXItY2VsbCkpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJl
ICdwYXJhZ3JhcGgKQEAgLTIxNyw4NCArMTI4NCw5OTIgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQt
c2V0dGluZ3MKICAgICAgIChibG9ja19xdW90ZV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIKICAgICAgIChwYXJhZ3JhcGggKGlubGluZSAoYmxvY2tfY29udGludWF0aW9u
KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkpKQogCisgICA6bGFuZ3VhZ2UgJ21h
cmtkb3duCisgICA6ZmVhdHVyZSAncGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAg
JygoZmVuY2VkX2NvZGVfYmxvY2sKKyAgICAgIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpKQorICAg
ICAgKGNvZGVfZmVuY2VfY29udGVudCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2Rl
LWJsb2NrKSkKKworICAgOmxhbmd1YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFw
aAorICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChjb2RlX2Zl
bmNlX2NvbnRlbnQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrKSkKKwogICAgOmxh
bmd1YWdlICdtYXJrZG93bi1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICA6ZmVhdHVy
ZSAncGFyYWdyYXBoLWlubGluZQotICAgJygoKGltYWdlX2Rlc2NyaXB0aW9uKSBAbGluaykKLSAg
ICAgKChsaW5rX2Rlc3RpbmF0aW9uKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoKGNv
ZGVfc3BhbikgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAgICcoKChsaW5rX2Rlc3RpbmF0aW9u
KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChjb2RlX3Nw
YW4pIEBtYXJrZG93bi10cy1jb2RlLXNwYW4pCiAgICAgICgoY29kZV9zcGFuX2RlbGltaXRlcikg
QG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKLSAgICAgKChlbXBoYXNpcykgQGl0YWxp
YykKLSAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBib2xkKQotICAgICAoaW5saW5lX2xpbmsgKGxp
bmtfdGV4dCkgQGxpbmspCi0gICAgIChpbmxpbmVfbGluayAobGlua19kZXN0aW5hdGlvbikgQGZv
bnQtbG9jay1zdHJpbmctZmFjZSkKLSAgICAgKHNob3J0Y3V0X2xpbmsgKGxpbmtfdGV4dCkgQGxp
bmspKQorICAgICAoKGVtcGhhc2lzKSBAbWFya2Rvd24tdHMtZW1waGFzaXMpCisgICAgICgoc3Ry
b25nX2VtcGhhc2lzKSBAbWFya2Rvd24tdHMtYm9sZCkKKyAgICAgKChzdHJpa2V0aHJvdWdoKSBA
bWFya2Rvd24tdHMtc3RyaWtldGhyb3VnaCkKKyAgICAgKGlubGluZV9saW5rIChsaW5rX3RleHQp
IEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChmdWxsX3JlZmVyZW5jZV9s
aW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChm
dWxsX3JlZmVyZW5jZV9saW5rIChsaW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1ub2RlKQorICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIChsaW5rX3RleHQpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChzaG9ydGN1dF9saW5rIChsaW5rX3Rl
eHQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChpbWFnZSAoaW1hZ2Vf
ZGVzY3JpcHRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgICgodXJp
X2F1dG9saW5rKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspCisgICAgICgoZW1haWxf
YXV0b2xpbmspIEBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluaykKKyAgICAgKGlubGluZV9s
aW5rIChsaW5rX3RpdGxlKSBAbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChi
YWNrc2xhc2hfZXNjYXBlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSkK
KyAgICAgKChlbnRpdHlfcmVmZXJlbmNlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZW50aXR5KQor
ICAgICAoKG51bWVyaWNfY2hhcmFjdGVyX3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5
LWVudGl0eSkKKyAgICAgKChodG1sX3RhZykgQG1hcmtkb3duLXRzLWh0bWwtdGFnKQorICAgICAo
KGhhcmRfbGluZV9icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhaykK
KyAgICAgKChsYXRleF9ibG9jaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxhdGV4LWJsb2NrKSkK
IAogICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxpbmUKICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgt
aW5saW5lCiAgICA6b3ZlcnJpZGUgJ2FwcGVuZAogICAgJygoZW1waGFzaXNfZGVsaW1pdGVyKSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQotICAgKSkKIAotOzs7IEltZW51CisgICA6
bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQorICAgOmZlYXR1cmUgJ2ltYWdlLXByZXZpZXcKKyAg
IDpvdmVycmlkZSAnYXBwZW5kCisgICAnKChpbWFnZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWlt
YWdlKSkpCisKKzs7OyBJbWVudToKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5vZGUtcCAo
bm9kZSkKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAgKG5vZGUpCiAg
ICJDaGVjayBpZiBOT0RFIGlzIGEgdmFsaWQgZW50cnkgdG8gaW1lbnUuIgotICAoZXF1YWwgKHRy
ZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQotICAgICAgICAgImF0
eF9oZWFkaW5nIikpCisgIChhbmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiaW5s
aW5lIikKKyAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFy
ZW50IG5vZGUpKQorICAgICAgICAgICAgICAiYXR4X2hlYWRpbmciKSkpCiAKLShkZWZ1biBtYXJr
ZG93bi10cy1pbWVudS1uYW1lLWZ1bmN0aW9uIChub2RlKQorKGRlZnVuIG1hcmtkb3duLXRzLS1p
bWVudS1oZWFkaW5nLW5hbWUtZnVuY3Rpb24gKG5vZGUpCiAgICJSZXR1cm4gYW4gaW1lbnUgZW50
cnkgaWYgTk9ERSBpcyBhIHZhbGlkIGhlYWRlci4iCiAgIChsZXQgKChuYW1lICh0cmVlc2l0LW5v
ZGUtdGV4dCBub2RlKSkpCi0gICAgKGlmIChtYXJrZG93bi10cy1pbWVudS1ub2RlLXAgbm9kZSkK
LQkodGhyZWFkLWZpcnN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpICh0cmVlc2l0LW5vZGUt
dGV4dCkpCisgICAgKGlmIChtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAgbm9kZSkK
KyAgICAgICAgKGNhciAoc3BsaXQtc3RyaW5nICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICJcbiIgdCAiICIpKQogICAgICAgbmFtZSkpKQogCi0oZGVmdW4gbWFy
a2Rvd24tdHMtb3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCi0gICJNYXRjaCBhIGhpZXJhcmNoaWNh
bCBzZWN0aW9uIHRoYXQgaGFzIGEgaGVhZGluZy4iCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51
LWNvZGUtYmxvY2stbm9kZS1wIChub2RlKQorICAiQ2hlY2sgaWYgTk9ERSBpcyBhbiBpbmZvX3N0
cmluZyB3aXRoIGRlc2NyaXB0aXZlIHRleHQgYWZ0ZXIgdGhlIGxhbmd1YWdlLiIKKyAgKGFuZCAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJpbmZvX3N0cmluZyIpCisgICAgICAgKHdo
ZW4tbGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJsYW5ndWFn
ZSIpKQorICAgICAgICAgICAgICAgICAgICgoPCAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUp
CisgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpCisgICAg
ICAgICAobm90IChzdHJpbmctYmxhbmstcAorICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJp
bmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIGxhbmct
bm9kZSkKKyAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWNvZGUtYmxvY2stbmFtZS1mdW5jdGlvbiAobm9kZSkK
KyAgIlJldHVybiBhbiBpbWVudSBlbnRyeSBuYW1lIGZvciBhIGNvZGUgYmxvY2sgaW5mb19zdHJp
bmcgTk9ERS4KK1VzZXMgdGhlIGRlc2NyaXB0aXZlIHRleHQgYWZ0ZXIgdGhlIGxhbmd1YWdlIG5h
bWUuIgorICAod2hlbi1sZXQqICgobGFuZy1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5v
ZGUgImxhbmd1YWdlIikpCisgICAgICAgICAgICAgIChkZXNjIChzdHJpbmctdHJpbQorICAgICAg
ICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIGxhbmctbm9kZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKSkKKyAgICAoZm9ybWF0ICIlczogJXMi
ICh0cmVlc2l0LW5vZGUtdGV4dCBsYW5nLW5vZGUpIGRlc2MpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1vdXRsaW5lLXByZWRpY2F0ZSAobm9kZSkKKyAgIk1hdGNoIE5PREUgaWYgaXQgaXMgYSBo
aWVyYXJjaGljYWwgc2VjdGlvbiB0aGF0IGhhcyBhIGhlYWRpbmcuIgogICAoYW5kIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgInNlY3Rpb24iKQogICAgICAgICh3aGVuLWxldCogKChj
aGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCkpKQogICAgICAgICAgKGVxdWFsICh0cmVl
c2l0LW5vZGUtdHlwZSBjaGlsZCkgImF0eF9oZWFkaW5nIikpKSkKIAotOzs7IENvZGUgYmxvY2tz
Ci0KLShkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzIG5pbAot
ICAiQSBsaXN0IG9mIGxhbmd1YWdlcyB0aGF0IGhhdmUgYmVlbiBzZXR1cCBpbiB0aGlzIGJ1ZmZl
ci4KLQotV2hlbiBhIGNvZGUgYmxvY2sgb2YgYSBsYW5ndWFnZSBhcHBlYXJzLCBgbWFya2Rvd24t
dHMtbW9kZScgbG9hZHMKLWxhbmd1YWdlIHNldHVwcyBsaWtlIGZvbnQtbG9jayBhbmQgaW5kZW50
YXRpb24gZm9yIHRoYXQgbGFuZ3VhZ2UsIGFuZAotYWRkcyB0aGF0IGxhbmd1YWdlIHRvIHRoaXMg
bGlzdC4iKQorOzs7IEhlYWRpbmcgbWFuaXB1bGF0aW9uOgorCisoZGVmY29uc3QgbWFya2Rvd24t
dHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCA2CisgICJNYXhpbXVtIEFUWCBoZWFkaW5nIGxl
dmVsIGluIE1hcmtkb3duIChoMS1oNikuCitEZWZpbmVkIGJ5IHRoZSBDb21tb25NYXJrIHNwZWMg
YW5kIHRoZSB0cmVlLXNpdHRlciBncmFtbWFyLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVh
ZGluZy1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBhdHhfaGVhZGluZyBub2RlIGF0IG9yIGJl
Zm9yZSBwb2ludCwgb3IgbmlsLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dCAocG9pbnQpICdtYXJrZG93bikpKQorICAgIChpZiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBl
IG5vZGUpICJhdHhfaGVhZGluZyIpCisgICAgICAgIG5vZGUKKyAgICAgICh0cmVlc2l0LXBhcmVu
dC11bnRpbAorICAgICAgIG5vZGUgKGxhbWJkYSAobikgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZSBuKSAiYXR4X2hlYWRpbmciKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGluZy1s
ZXZlbCAoaGVhZGluZykKKyAgIlJldHVybiB0aGUgbGV2ZWwgb2YgSEVBRElORyBub2RlICgxIHRv
IGBtYXJrZG93bi10cy0tcGFyc2VyLWhlYWRpbmctbWF4LWxldmVsJykuIgorICAobGV0ICgobWFy
a2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaGVhZGluZyAwKSkpCisgICAgKGxlbmd0aCAodHJlZXNp
dC1ub2RlLXRleHQgbWFya2VyIHQpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1h
dC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4i
CisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24p
KSkKKyAgICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1
YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1wcm9tb3RlICgpCisgICJQcm9tb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBw
b2ludC4KK0ZvciBoZWFkaW5ncywgZGVjcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4K
K0ZvciBsaXN0IGl0ZW1zLCBkZWNyZWFzZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNp
ZW50LW1hcmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3Mg
aW4gdGhlIHJlZ2lvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5z
aWVudC1tYXJrLW1vZGUgbWFyay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9y
LWRlbW90ZS1yZWdpb24gLTEpKQorICAgKChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50
KQorICAgIChtYXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQg
KG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLWRlbW90ZSAoKQorICAiRGVtb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2lu
dC4KK0ZvciBoZWFkaW5ncywgaW5jcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0Zv
ciBsaXN0IGl0ZW1zLCBpbmNyZWFzZSBuZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50
LW1hcmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0
aGUgcmVnaW9uLiIKKyAgKGludGVyYWN0aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50
LW1hcmstbW9kZSBtYXJrLWFjdGl2ZSkKKyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVt
b3RlLXJlZ2lvbiAxKSkKKyAgICgobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAg
ICAobWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rv
d24tdHMtLXByb21vdGUtb3ItZGVtb3RlIDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJv
bW90ZS1vci1kZW1vdGUgKGRlbHRhKQorICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5
IERFTFRBIGxldmVscy4KK05lZ2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRp
dmUgZGVtb3RlcyAobW9yZSAjKS4KK0lmIHRoZSBoZWFkaW5nIGhhcyBhbiBvcHRpb25hbCB0cmFp
bGluZyBjbG9zaW5nLWAjJyBzZXF1ZW5jZSwgdGhhdAorc2VxdWVuY2UgaXMgcmVzaXplZCB0byBt
YXRjaCB0aGUgbmV3IGxldmVsLiIKKyAgKHdoZW4tbGV0KiAoKGhlYWRpbmcgKG1hcmtkb3duLXRz
LS1oZWFkaW5nLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKG1hcmtlciAodHJlZXNpdC1ub2Rl
LWNoaWxkIGhlYWRpbmcgMCkpCisgICAgICAgICAgICAgIChsZXZlbCAobGVuZ3RoICh0cmVlc2l0
LW5vZGUtdGV4dCBtYXJrZXIgdCkpKQorICAgICAgICAgICAgICAobmV3LWxldmVsICgrIGxldmVs
IGRlbHRhKSkpCisgICAgKHdoZW4gKGFuZCAoPj0gbmV3LWxldmVsIDEpCisgICAgICAgICAgICAg
ICAoPD0gbmV3LWxldmVsIG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQor
ICAgICAgKGxldCogKChvcGVuZXItYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAg
ICAgICAgICAgICAob3BlbmVyLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAgICAg
ICAgICAgIChsaW5lLWVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIG9wZW5lci1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUt
ZW5kLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgOzsgRGV0ZWN0IGEgQ29tbW9uTWFyayBjbG9z
aW5nLWAjJyBzZXF1ZW5jZTogb3B0aW9uYWwKKyAgICAgICAgICAgICA7OyB0cmFpbGluZyB3aGl0
ZXNwYWNlLCBhIHJ1biBvZiBgIycsIGFuZCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICA7OyBz
cGFjZS90YWIgYmV0d2VlbiBpdCBhbmQgdGhlIGhlYWRpbmcgdGV4dC4KKyAgICAgICAgICAgICAo
Y2xvc2VyIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
IGxpbmUtZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAi
IFx0IiBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZW5kIChwb2lu
dCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBv
cGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChiZWcgKHBvaW50KSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kICg8IGJlZyBlbmQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+IGJlZyBvcGVuZXItZW5kKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUgYmVn
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKD9ccyA/XHQp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgYmVnIGVuZCkpKSkpKSkKKyAg
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgOzsgUmVzaXplIHRoZSBjbG9zZXIgZmly
c3Qgc28gaXQgZG9lc24ndCBzaGlmdCB0aGUgb3BlbmVyLgorICAgICAgICAgICh3aGVuIGNsb3Nl
cgorICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGNhciBjbG9zZXIpIChjZHIgY2xvc2VyKSkK
KyAgICAgICAgICAgIChnb3RvLWNoYXIgKGNhciBjbG9zZXIpKQorICAgICAgICAgICAgKGluc2Vy
dCAobWFrZS1zdHJpbmcgbmV3LWxldmVsID8jKSkpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24g
b3BlbmVyLWJlZyBvcGVuZXItZW5kKQorICAgICAgICAgIChnb3RvLWNoYXIgb3BlbmVyLWJlZykK
KyAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyBuZXctbGV2ZWwgPyMpKSkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNo
YW5nZSBhbGwgaGVhZGluZ3MgaW4gdGhlIGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgor
TmVnYXRpdmUgREVMVEEgcHJvbW90ZXMgKGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3Jl
ICMpLiIKKyAgKGxldCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJl
Z2lvbi1lbmQpKSkKKyAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQor
ICAgICAgKHdoaWxlICg8IChwb2ludCkgZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMt
LWhlYWRpbmctYXQtcG9pbnQpCisgICAgICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRl
bW90ZSBkZWx0YSkpCisgICAgICAgIChmb3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAgKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBv
ciBsaXN0IGl0ZW0gdXAgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2
ZSkKKyAgKGlmIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtk
b3duLXRzLS1saXN0LW1vdmUgdCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1v
ci1kb3duIHQpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmln
cyAobW9kZSkKLSAgIkhhcnZlc3QgdHJlZS1zaXR0ZXIgY29uZmlncyBmcm9tIE1PREUuCi1SZXR1
cm4gYSBwbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5cyBhbmQgdmFsdWU6CisoZGVmdW4gbWFy
a2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24gKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlv
biBvciBsaXN0IGl0ZW0gZG93biBwYXN0IHRoZSBuZXh0IHNpYmxpbmcuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChpZiAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAgIChtYXJr
ZG93bi10cy0tbGlzdC1tb3ZlIG5pbCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11
cC1vci1kb3duIG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNlY3Rpb24tZm9sZGVkLXAg
KHNlY3Rpb24pCisgICJSZXR1cm4gbm9uLW5pbCBpZiBTRUNUSU9OJ3MgaGVhZGluZyBpcyBmb2xk
ZWQuCitDaGVja3Mgd2hldGhlciB0aGUgZW5kIG9mIHRoZSBoZWFkaW5nIGxpbmUgaGFzIGFuIG91
dGxpbmUKK2ludmlzaWJsZSBvdmVybGF5LiIKKyAgKGxldCAoKGhlYWRpbmcgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBzZWN0aW9uIDApKSkKKyAgICAod2hlbiAoYW5kIGhlYWRpbmcKKyAgICAgICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgaGVhZGluZykgImF0eF9oZWFkaW5nIikpCisg
ICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0
YXJ0IGhlYWRpbmcpKQorICAgICAgICAob3V0bGluZS1pbnZpc2libGUtcCAocG9zLWVvbCkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duICh1cCkKKyAg
Ik1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBzdWJ0cmVlLgorSWYgVVAgaXMgbm9uLW5pbCwgbW92
ZSBwYXN0IHRoZSBwcmV2aW91cyBzaWJsaW5nOyBvdGhlcndpc2UgbW92ZSBkb3duLgorUHJlc2Vy
dmVzIHRoZSBmb2xkaW5nIHN0YXRlIG9mIGJvdGggc2VjdGlvbnMuIgorICAod2hlbi1sZXQqICgo
c2VjdGlvbiAobWFya2Rvd24tdHMtLXNlY3Rpb24tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAo
c2libGluZyAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
cHJldi1zaWJsaW5nIHNlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS1uZXh0LXNpYmxpbmcgc2VjdGlvbikpKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIHNpYmxpbmcpICJzZWN0aW9uIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVw
IHNpYmxpbmcgc2VjdGlvbikpCisgICAgICAgICAgICAgKHNlY29uZCAoaWYgdXAgc2VjdGlvbiBz
aWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3QtZm9sZGVkIChtYXJrZG93bi10cy0tc2VjdGlv
bi1mb2xkZWQtcCBmaXJzdCkpCisgICAgICAgICAgICAgKHNlY29uZC1mb2xkZWQgKG1hcmtkb3du
LXRzLS1zZWN0aW9uLWZvbGRlZC1wIHNlY29uZCkpCisgICAgICAgICAgICAgKGZpcnN0LXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtc3RhcnQg
KHRyZWVzaXQtbm9kZS1zdGFydCBzZWNvbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtZW5kICh0
cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAgICAgOzsgRXh0cmFjdCBzZXBhcmF0
b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgICAgICAo
Zmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0YXJ0IHNlY29uZC1zdGFydCkpCisg
ICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmltLXJpZ2h0IGZpcnN0LXJhdykpCisg
ICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZpcnN0LXJhdyAobGVuZ3RoIGZpcnN0
LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAoYnVmZmVyLXN1YnN0cmluZyBzZWNv
bmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAgKHNlY29uZC10ZXh0IChzdHJpbmct
dHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAgICAodHJhaWxpbmcgKHN1YnN0cmlu
ZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkKKyAgICAgICAgICAgICAoY29sIChj
dXJyZW50LWNvbHVtbikpCisgICAgICAgICAgICAgKGxpbmUtb2Zmc2V0ICgtIChsaW5lLW51bWJl
ci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtbnVt
YmVyLWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IHNlY3Rpb24pKSkpKQorICAgICAgICAoZGVs
ZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQorICAgICAgICAoZ290by1jaGFyIGZp
cnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10ZXh0IHNlcGFyYXRvciBmaXJzdC10
ZXh0IHRyYWlsaW5nKQorICAgICAgICA7OyBSZXN0b3JlIGZvbGRpbmcgc3RhdGUKKyAgICAgICAg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAg
ICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAgICAgICAgICAoaWYgc2Vjb25k
LWZvbGRlZAorICAgICAgICAgICAgICAgIChvdXRsaW5lLWhpZGUtc3VidHJlZSkKKyAgICAgICAg
ICAgICAgKG91dGxpbmUtc2hvdy1zdWJ0cmVlKSkpCisgICAgICAgICAgKG91dGxpbmUtbmV4dC1o
ZWFkaW5nKQorICAgICAgICAgICh3aGVuIChvdXRsaW5lLW9uLWhlYWRpbmctcCkKKyAgICAgICAg
ICAgIChpZiBmaXJzdC1mb2xkZWQKKyAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXN1YnRy
ZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNob3ctc3VidHJlZSkpKSkKKyAgICAgICAgKGdv
dG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Qtc3RhcnQKKyAgICAg
ICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5ndGggc2Vjb25kLXRleHQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRvcikpKSkKKyAgICAgICAgKGZvcndh
cmQtbGluZSBsaW5lLW9mZnNldCkKKyAgICAgICAgKG1vdmUtdG8tY29sdW1uIGNvbCkpKSkpCisK
Kzs7OyBMaXN0IG1hbmlwdWxhdGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVj
a2JveCAoKQorICAiVG9nZ2xlIHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1cnJlbnQg
bGluZS4KK1N3aXRjaGVzIGJldHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVyYWN0aXZl
KQorICAod2hlbi1sZXQqICgocG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlv
bikgKHBvaW50KSkpCisgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAg
ICAgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAg
ICh3aGVuLWxldCogKChtYXJrZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVl
c2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygidGFza19saXN0X21hcmtlcl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAobGV0ICgo
YmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xp
c3RfbWFya2VyX2NoZWNrZWQiKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
IChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAg
ICAgICAgKGluc2VydCAoaWYgY2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5uZXJtb3N0
IGxpc3RfaXRlbSBub2RlIGNvbnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhlIHBvc2l0
aW9uIGFmdGVyIGBiYWNrLXRvLWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCithIGxpbmUn
cyBsZWFkaW5nIHdoaXRlc3BhY2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBsaW5lLAor
bm90IHRvIGEgcHJlY2VkaW5nIGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVzcGFjZS4K
K0luc2lkZSBibG9jayBxdW90ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24g
cGFzdAordGhlIGA+JyBtYXJrZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNp
b24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAo
dHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9sIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5kLXBvc2l0
aW9uKSkpCisgICAgKG9yIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAg
ICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAg
ICAgIDs7IFZlcmlmeSB0aGUgY3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdzIHJhbmdl
LgorICAgICAgICAgIDs7IGB0cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2RlIGluc2lk
ZSBhIGxpc3RfaXRlbQorICAgICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBhIHByZWNl
ZGluZyBsaW5lLgorICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAg
ICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBpdGVtKSkK
KyAgICAgICAgOzsgV2hlbiBiYWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2NrIHF1b3Rl
IG1hcmtlcnMsCisgICAgICAgIDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0aGUgY29u
dGVudCBwb3NpdGlvbi4KKyAgICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdoZW4gKD4g
Y29udGVudC1wb3MgcG9zKQorICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0cmVlc2l0
LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChsZXQgKChp
dGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY25v
ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIp
KSkpKQorICAgICAgICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAg
ICAgICAgICAgICBpdGVtKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1hcmtl
ci13aWR0aCAoaXRlbSkKKyAgIlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3QgbWFya2Vy
IGluY2x1ZGluZyB0cmFpbGluZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpICh0cmVl
c2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRl
bS1yZWdpb24gKGl0ZW0pCisgICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBmb3IgSVRF
TSwgY2xhbXBlZCB0byBmdWxsIGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9m
IHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBpdCBkb2Vz
IG5vdCBleHRlbmQgaW50byB0aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGljaCB0cmVl
LXNpdHRlciBtYXkgaW5jbHVkZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRl
bSkpCisgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAg
KGVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1lbmQgaXRlbSkpCisgICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkgKGxpbmUt
YmVnaW5uaW5nLXBvc2l0aW9uKSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBub24tbmls
IGlmIElURU0gaXMgYW4gb3JkZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChsZXQgKCht
YXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIG1hcmtlcikgImxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVzdGluZyBv
ZiB0aGUgbGlzdCBpdGVtIGF0IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRlbW90ZSAo
aW5kZW50KTsgb3RoZXJ3aXNlIHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1iZXJlZCkg
bGlzdCBpdGVtcyBhcmUgc2tpcHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25vdCBzdXBw
b3J0IG5lc3RpbmcgdGhlbSBieSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChpdGVtICht
YXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJlZ2lvbiAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAgIChiZWcg
KGNhciByZWdpb24pKQorICAgICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisgICAgKHdo
ZW4gKG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAodXNlci1l
cnJvciAiT3JkZXJlZCBsaXN0IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIgbGltaXRh
dGlvbikiKSkKKyAgICAoaWYgZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50IGJ5IG1h
cmtlciB3aWR0aCwgb25seSBpZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7IHNpYmxp
bmcgdG8gbmVzdCB1bmRlciAobGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0cmVlc2l0
LW5vZGUtcHJldi1zaWJsaW5nIGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBl
bmQgKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7OyBQcm9t
b3RlOiBkZWRlbnQgdG8gZ3JhbmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBhcmVudC1s
aXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFuZHBhcmVu
dCAoYW5kIHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0KSkpCisg
ICAgICAgICAgICAgKGl0ZW0tY29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgYmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAg
KHdoZW4gKGFuZCBncmFuZHBhcmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgZ3JhbmRwYXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAgICAgICAg
ICg+IGl0ZW0tY29sIDApKQorICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBncmFuZHBhcmVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVu
dGF0aW9uKSkpKQorICAgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0gZ3AtY29s
IGl0ZW0tY29sKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIChu
b2RlKQorICAiUmV0dXJuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyBOT0RF
J3Mgc3RhcnQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpCisgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbGlzdC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRlbSBhdCBw
b2ludC4KK0lmIFVQIGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsg
b3RoZXJ3aXNlIG1vdmUgZG93bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIGl0ZW0p
KSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAibGlzdF9p
dGVtIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisgICAgICAg
ICAgICAgKHNlY29uZCAoaWYgdXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3Qt
c3RhcnQgKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAgICAgICAo
c2Vjb25kLXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQorICAgICAg
ICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAg
ICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVz
cGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0
YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmlt
LXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZp
cnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAo
YnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAg
KHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAg
ICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkK
KyAgICAgICAgICAgICAoY29sIChjdXJyZW50LWNvbHVtbikpCisgICAgICAgICAgICAgKGxpbmUt
b2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdp
b24gZmlyc3Qtc3RhcnQgc2Vjb25kLWVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFy
dCkKKyAgICAgICAgKGluc2VydCBzZWNvbmQtdGV4dCBzZXBhcmF0b3IgZmlyc3QtdGV4dCB0cmFp
bGluZykKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAg
Zmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5ndGgg
c2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRvcikp
KSkKKyAgICAgICAgKGZvcndhcmQtbGluZSBsaW5lLW9mZnNldCkKKyAgICAgICAgKG1vdmUtdG8t
Y29sdW1uIGNvbCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW51bWJlci1saXN0ICgmb3B0
aW9uYWwgc3RhcnQpCisgICJSZW51bWJlciB0aGUgb3JkZXJlZCBsaXN0IGF0IHBvaW50LgorTnVt
YmVycyBhcmUgYXNzaWduZWQgc2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0IGl0
ZW0ncworbnVtYmVyLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCBTVEFSVCwgc3RhcnQgbnVtYmVy
aW5nIGZyb20gdGhhdAordmFsdWUgaW5zdGVhZC4gIERvZXMgbm90aGluZyBmb3IgdW5vcmRlcmVk
IGxpc3RzLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKHdoZW4tbGV0KiAoKGl0ZW0gKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAobGlzdC1ub2RlICh0
cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlIGxpc3Qtbm9kZSkgImxpc3QiKQorICAgICAgKGxldCogKChjaGlsZHJlbiAodHJlZXNp
dC1ub2RlLWNoaWxkcmVuIGxpc3Qtbm9kZSkpCisgICAgICAgICAgICAgKGl0ZW1zIChzZXEtZmls
dGVyIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFs
ICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdF9pdGVtIikpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuKSkKKyAgICAgICAgICAgICAoZmlyc3QtbWFya2VyICh0cmVl
c2l0LW5vZGUtY2hpbGQgKGNhciBpdGVtcykgMCkpCisgICAgICAgICAgICAgKG1hcmtlci10eXBl
ICh0cmVlc2l0LW5vZGUtdHlwZSBmaXJzdC1tYXJrZXIpKSkKKyAgICAgICAgKHdoZW4gKG1lbWJl
ciBtYXJrZXItdHlwZSAnKCJsaXN0X21hcmtlcl9kb3QiICJsaXN0X21hcmtlcl9wYXJlbnRoZXNp
cyIpKQorICAgICAgICAgIChsZXQqICgoYmFzZSAoaWYgc3RhcnQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBzdGFydCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAoc3RyaW5nLXRvLW51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLXRleHQgZmlyc3QtbWFya2VyIHQpKSkpCisgICAgICAgICAgICAgICAgIChjb3Vu
dCAobGVuZ3RoIGl0ZW1zKSkKKyAgICAgICAgICAgICAgICAgOzsgU3RhcnQgZnJvbSB0aGUgbGFz
dCBudW1iZXIgYW5kIHdvcmsgYmFja3dhcmRzIHNvCisgICAgICAgICAgICAgICAgIDs7IHRoYXQg
ZWFybGllciBidWZmZXIgcG9zaXRpb25zIHJlbWFpbiB2YWxpZC4KKyAgICAgICAgICAgICAgICAg
KG51bSAoKyBiYXNlIGNvdW50IC0xKSkpCisgICAgICAgICAgICAoZG9saXN0IChpdCAocmV2ZXJz
ZSBpdGVtcykpCisgICAgICAgICAgICAgIChsZXQqICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hp
bGQgaXQgMCkpCisgICAgICAgICAgICAgICAgICAgICAobWFya2VyLWVuZCAodHJlZXNpdC1ub2Rl
LWVuZCBtYXJrZXIpKQorICAgICAgICAgICAgICAgICAgICAgKGJvbCAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbWFya2VyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmct
cG9zaXRpb24pKSkKKyAgICAgICAgICAgICAgICAgICAgIDs7IEZ1bGwgdGV4dCBmcm9tIGJvbCB0
byBlbmQgb2YgbWFya2VyIGluY2x1ZGVzCisgICAgICAgICAgICAgICAgICAgICA7OyBhbnkgbGVh
ZGluZyB3aGl0ZXNwYWNlLCB0aGUgbnVtYmVyLCBhbmQgdGhlCisgICAgICAgICAgICAgICAgICAg
ICA7OyBzZXBhcmF0b3IgKGUuZy4sICIuICIgb3IgIi5cdCIpLgorICAgICAgICAgICAgICAgICAg
ICAgKGZ1bGwtdGV4dCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib2wgbWFya2VyLWVuZCkpCisgICAgICAgICAgICAgICAg
ICAgICAoaW5kZW50LXN0cgorICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpWzAtOV0i
IGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIGZ1
bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgICAgICAgICAg
ICAgIChzdWZmaXgtc3RyCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBbWzpibGFuazpdXSpbMC05XStcXCguKlxc
KVxcJyIgZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5n
IDEgZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgIi4gIikpCisgICAgICAgICAg
ICAgICAgICAgICAobmV3LXRleHQgKGNvbmNhdCBpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobnVtYmVyLXRvLXN0cmluZyBudW0pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXgtc3RyKSkpCisgICAgICAgICAgICAg
ICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBib2wg
bWFya2VyLWVuZCkKKyAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgYm9sKQorICAgICAgICAg
ICAgICAgICAgKGluc2VydCBuZXctdGV4dCkpKQorICAgICAgICAgICAgICAoY2wtZGVjZiBudW0p
KQorICAgICAgICAgICAgKG1lc3NhZ2UgIlJlbnVtYmVyZWQgJWQgaXRlbXMiIGNvdW50KSkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIChpdGVtKQorICAi
UmV0dXJuIHRoZSBtYXJrZXIgc3RyaW5nIGZvciBhIG5ldyBpdGVtIGZvbGxvd2luZyBJVEVNLgor
Rm9yIHVub3JkZXJlZCBpdGVtcywgcmV1c2UgdGhlIHNhbWUgbWFya2VyIGNoYXJhY3Rlci4KK0Zv
ciBvcmRlcmVkIGl0ZW1zLCBpbmNyZW1lbnQgdGhlIG51bWJlci4iCisgIChsZXQqICgobWFya2Vy
ICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkKKyAgICAgICAgICh0eXBlICh0cmVlc2l0LW5v
ZGUtdHlwZSBtYXJrZXIpKQorICAgICAgICAgKGluZGVudCAoc2F2ZS1leGN1cnNpb24KKyAgICAg
ICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpCisgICAg
ICAgICAgICAgICAgICAgKGN1cnJlbnQtaW5kZW50YXRpb24pKSkKKyAgICAgICAgIChwcmVmaXgg
KG1ha2Utc3RyaW5nIGluZGVudCA/XHMpKSkKKyAgICAocGNhc2UgdHlwZQorICAgICAgKCJsaXN0
X21hcmtlcl9taW51cyIgKGNvbmNhdCBwcmVmaXggIi0gIikpCisgICAgICAoImxpc3RfbWFya2Vy
X3BsdXMiICAoY29uY2F0IHByZWZpeCAiKyAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJfc3RhciIg
IChjb25jYXQgcHJlZml4ICIqICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9kb3QiCisgICAgICAg
KGxldCAoKG51bSAoc3RyaW5nLXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQp
KSkpCisgICAgICAgICAoY29uY2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAoMSsgbnVtKSkg
Ii4gIikpKQorICAgICAgKCJsaXN0X21hcmtlcl9wYXJlbnRoZXNpcyIKKyAgICAgICAobGV0ICgo
bnVtIChzdHJpbmctdG8tbnVtYmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkpKSkKKyAg
ICAgICAgIChjb25jYXQgcHJlZml4IChudW1iZXItdG8tc3RyaW5nICgxKyBudW0pKSAiKSAiKSkp
CisgICAgICAoXyAoY29uY2F0IHByZWZpeCAiLSAiKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1uZXctbWFya2VyLWZvci1saW5lIChpdGVtKQorICAiUmV0dXJuIHRoZSBtYXJrZXIgc3RyaW5n
IGZvciBhIG5ldyBpdGVtIGZvbGxvd2luZyBJVEVNLgorV2hlbiB0aGUgY3VycmVudCBsaW5lIGhh
cyBhIGxpc3QgbWFya2VyIHBhdHRlcm4gYXQgYSBkaWZmZXJlbnQKK2luZGVudGF0aW9uIHRoYW4g
SVRFTSAoZS5nLiwgYSBuZXN0ZWQgbWFya2VyIHRoYXQgdGhlIGdyYW1tYXIgZGlkCitub3QgcmVj
b2duaXplIGFzIGEgbGlzdF9pdGVtKSwgdXNlIHRoZSBjdXJyZW50IGxpbmUncyBtYXJrZXIuCitP
dGhlcndpc2UsIGZhbGwgYmFjayB0byBgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2Vy
Jy4iCisgIChsZXQgKChtYXJrZXItbm9kZSAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQor
ICAgIChpZiAoPSAobGluZS1udW1iZXItYXQtcG9zKQorICAgICAgICAgICAgKGxpbmUtbnVtYmVy
LWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlci1ub2RlKSkpCisgICAgICAgIDs7IEl0
ZW0ncyBtYXJrZXIgaXMgb24gdGhlIGN1cnJlbnQgbGluZTogdXNlIGl0IG5vcm1hbGx5LgorICAg
ICAgICAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIGl0ZW0pCisgICAgICA7OyBJ
dGVtJ3MgbWFya2VyIGlzIG9uIGEgZGlmZmVyZW50IGxpbmUuICBUaGUgcGFyc2VyIG1heSBoYXZl
CisgICAgICA7OyBmYWlsZWQgdG8gcmVjb2duaXplIGEgbmVzdGVkIG1hcmtlciAoZS5nLiwgYSBs
b25lIGAgIC0gJworICAgICAgOzsgcGFyc2VkIGFzIGEgc2V0ZXh0IGhlYWRpbmcpLiAgUmVhZCB0
aGUgY3VycmVudCBsaW5lLgorICAgICAgKGxldCAoKGxpbmUgKGJ1ZmZlci1zdWJzdHJpbmctbm8t
cHJvcGVydGllcworICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikg
KGxpbmUtZW5kLXBvc2l0aW9uKSkpKQorICAgICAgICAoaWYgKHN0cmluZy1tYXRjaAorICAgICAg
ICAgICAgICJcXGBcXChbWzpibGFuazpdXSpcXClcXChbLSorXSBcXHxcXChbMC05XStcXClcXChb
LildIFxcKVxcKSIKKyAgICAgICAgICAgICBsaW5lKQorICAgICAgICAgICAgKGxldCAoKGluZGVu
dCAobWF0Y2gtc3RyaW5nIDEgbGluZSkpCisgICAgICAgICAgICAgICAgICAobnVtIChtYXRjaC1z
dHJpbmcgMyBsaW5lKSkKKyAgICAgICAgICAgICAgICAgIChzdWZmaXggKG1hdGNoLXN0cmluZyA0
IGxpbmUpKQorICAgICAgICAgICAgICAgICAgKHVub3JkZXJlZCAobWF0Y2gtc3RyaW5nIDIgbGlu
ZSkpKQorICAgICAgICAgICAgICAoaWYgbnVtCisgICAgICAgICAgICAgICAgICAoY29uY2F0IGlu
ZGVudCAobnVtYmVyLXRvLXN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgxKyAoc3RyaW5nLXRvLW51bWJlciBudW0pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
c3VmZml4KQorICAgICAgICAgICAgICAgIChjb25jYXQgaW5kZW50IHVub3JkZXJlZCkpKQorICAg
ICAgICAgIDs7IE5vIG1hcmtlciBwYXR0ZXJuIG9uIGN1cnJlbnQgbGluZTogdXNlIGl0ZW0ncyBt
YXJrZXIuCisgICAgICAgICAgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBpdGVt
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1kZXB0aCAoJm9w
dGlvbmFsIHBvcykKKyAgIkNvdW50IHRoZSBudW1iZXIgb2YgYD4nIGJsb2NrIHF1b3RlIG1hcmtl
cnMgb24gdGhlIGxpbmUgYXQgUE9TLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKHdoZW4gcG9z
IChnb3RvLWNoYXIgcG9zKSkKKyAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgKGxldCAoKGNv
dW50IDApKQorICAgICAgKHdoaWxlIChhbmQgKG5vdCAoZW9scCkpCisgICAgICAgICAgICAgICAg
ICAobWVtcSAoY2hhci1hZnRlcikgJyg/PiA/XHMgP1x0KSkpCisgICAgICAgICh3aGVuIChlcSAo
Y2hhci1hZnRlcikgPz4pCisgICAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpCisgICAg
ICAgIChmb3J3YXJkLWNoYXIgMSkpCisgICAgICBjb3VudCkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtbmV3bGluZSAoKQorICAiSW5zZXJ0IGEgbmV3bGluZSwgY29udGludWluZyB0aGUgY3VycmVu
dCBjb250ZXh0LgorSW5zaWRlIGEgbGlzdCBpdGVtLCB0aGUgbmV3IGxpbmUgaXMgaW5kZW50ZWQg
dG8gdGhlIGl0ZW0ncyB0ZXh0Citjb2x1bW4gc28gdGhlIHBhcmFncmFwaCBjb250aW51ZXMuICBB
IHNlY29uZCBSRVQgb24gYSBibGFuaworY29udGludWF0aW9uIGxpbmUgcmVtb3ZlcyB0aGUgaW5k
ZW50YXRpb24sIGRyb3BwaW5nIHBvaW50IHRvCitjb2x1bW4gMCBzbyB0aGUgdHJlZS1zaXR0ZXIg
Z3JhbW1hciBlbmRzIHRoZSBsaXN0LgorSW5zaWRlIGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGlu
ZSBpbmNsdWRlcyB0aGUgcXVvdGUgcHJlZml4LgorT3RoZXJ3aXNlLCBpbnNlcnQgYSBwbGFpbiBu
ZXdsaW5lLiIKKyAgKGludGVyYWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dAorICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikg
KHBvaW50KSkKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgOzsgVHJlZS1z
aXR0ZXIgbWF5IHJlcG9ydCBhIG5vZGUgaW5zaWRlIGEgYmxvY2tfcXVvdGUgZXZlbgorICAgICAg
ICAgOzsgd2hlbiBwb2ludCBpcyBvbiBhIGJsYW5rIGxpbmUgcGFzdCB0aGUgcXVvdGUgKHRoZSBu
b2RlCisgICAgICAgICA7OyBzcGFuIGNhbiBleHRlbmQgYmV5b25kIHRoZSBgPicgbGluZXMpLiAg
T25seSB0cmVhdCB0aGUKKyAgICAgICAgIDs7IGxpbmUgYXMgaW5zaWRlIGEgYmxvY2sgcXVvdGUg
aWYgaXQgYWN0dWFsbHkgc3RhcnRzIHdpdGgKKyAgICAgICAgIDs7IGEgYD4nIG1hcmtlci4KKyAg
ICAgICAgIChpbi1icSAoYW5kICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9ja19x
dW90ZVxcJyIpCisgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAg
ICAobG9va2luZy1hdC1wICJbIFx0XSo+IikpKSkKKyAgICAgICAgIChpdGVtIChtYXJrZG93bi10
cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkpCisgICAgKGNvbmQKKyAgICAgKGl0ZW0KKyAgICAgIChs
ZXQqICgoY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pKQorICAg
ICAgICAgICAgIChicS1wcmVmaXggKHdoZW4gaW4tYnEgKG1hcmtkb3duLXRzLS1ibG9jay1xdW90
ZS1wcmVmaXgpKSkKKyAgICAgICAgICAgICA7OyBgY29sJyBpcyB0aGUgYWJzb2x1dGUgY29sdW1u
IG9mIHRoZSBpdGVtJ3MgdGV4dCwKKyAgICAgICAgICAgICA7OyB3aGljaCBpbnNpZGUgYSBibG9j
ayBxdW90ZSBpbmNsdWRlcyB0aGUgIj4gIiBwcmVmaXgKKyAgICAgICAgICAgICA7OyB3aWR0aC4g
IFNpbmNlIHdlIGluc2VydCBgYnEtcHJlZml4JyBzZXBhcmF0ZWx5LCB3ZQorICAgICAgICAgICAg
IDs7IG11c3Qgc3VidHJhY3QgaXRzIGxlbmd0aCB0byBhdm9pZCBkb3VibGluZyBpdC4KKyAgICAg
ICAgICAgICAoaW5kZW50ICgtIGNvbCAobGVuZ3RoIChvciBicS1wcmVmaXggIiIpKSkpCisgICAg
ICAgICAgICAgOzsgVGhlIGN1cnJlbnQgbGluZSBpcyAiYmxhbmsiIGlmIGl0IGNvbnRhaW5zIG9u
bHkKKyAgICAgICAgICAgICA7OyB3aGl0ZXNwYWNlIChvciBxdW90ZSBwcmVmaXggKyB3aGl0ZXNw
YWNlKSBhbmQgbm8KKyAgICAgICAgICAgICA7OyBhY3R1YWwgdGV4dCBmcm9tIGEgcHJldmlvdXMg
UkVUJ3MgY29udGludWF0aW9uIGluZGVudC4KKyAgICAgICAgICAgICAoYmxhbmstbGluZS1wIChz
YXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9m
LWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJeWz4gXHRdKiQiKSkpCisgICAgICAgICAgICAgOzsg
UG9pbnQgaXMgYmVmb3JlIHRoZSBpdGVtJ3MgdGV4dCAoYXQgb3IgYmVmb3JlIHRoZQorICAgICAg
ICAgICAgIDs7IG1hcmtlcikuICBBIHBsYWluIG5ld2xpbmUgaXMgYXBwcm9wcmlhdGUgaGVyZSwg
YWRkaW5nCisgICAgICAgICAgICAgOzsgY29udGludWF0aW9uIGluZGVudCB3b3VsZCBzaGlmdCB0
aGUgZXhpc3RpbmcgY29udGVudAorICAgICAgICAgICAgIDs7IHRvIHRoZSByaWdodC4KKyAgICAg
ICAgICAgICAoYmVmb3JlLXRleHQtcCAoPD0gKGN1cnJlbnQtY29sdW1uKSBjb2wpKSkKKyAgICAg
ICAgKGNvbmQKKyAgICAgICAgIChibGFuay1saW5lLXAKKyAgICAgICAgICA7OyBUaGUgdXNlciBw
cmVzc2VkIFJFVCBvbiBhbiBhbHJlYWR5LWJsYW5rIGNvbnRpbnVhdGlvbgorICAgICAgICAgIDs7
IGxpbmUuICBJbnN0ZWFkIG9mIGFkZGluZyB5ZXQgYW5vdGhlciBpbmRlbnRlZCBibGFuaworICAg
ICAgICAgIDs7IGxpbmUsIHJlbW92ZSB0aGUgaW5kZW50YXRpb24gYW5kIGluc2VydCBhIHBsYWlu
CisgICAgICAgICAgOzsgbmV3bGluZS4gIFRoaXMgZHJvcHMgcG9pbnQgdG8gY29sdW1uIDAsIHdo
aWNoIGlzIHRoZQorICAgICAgICAgIDs7IG9ubHkgd2F5IHRoZSB0cmVlLXNpdHRlciBtYXJrZG93
biBncmFtbWFyIGVuZHMgYSBsaXN0OgorICAgICAgICAgIDs7IGJsYW5rIGxpbmVzIGFsb25lIGRv
IE5PVCBlbmQgYSBsaXN0LCBvbmx5CisgICAgICAgICAgOzsgbm9uLWluZGVudGVkIGNvbnRlbnQg
ZG9lcy4gIFNvIHRoaXMgZ2l2ZXMgdGhlIHVzZXIgYQorICAgICAgICAgIDs7IG5hdHVyYWwgIlJF
VCBSRVQgdG8gZXhpdCB0aGUgbGlzdCIgd29ya2Zsb3cuCisgICAgICAgICAgKGRlbGV0ZS1yZWdp
b24gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKQorICAgICAg
ICAgIChuZXdsaW5lKSkKKyAgICAgICAgIChiZWZvcmUtdGV4dC1wCisgICAgICAgICAgOzsgUG9p
bnQgaXMgb24gb3IgYmVmb3JlIHRoZSBsaXN0IG1hcmtlcjsganVzdCBpbnNlcnQgYQorICAgICAg
ICAgIDs7IHBsYWluIG5ld2xpbmUgc28gdGhlIGl0ZW0gaXMgcHVzaGVkIGRvd24gdW5jaGFuZ2Vk
LgorICAgICAgICAgIChuZXdsaW5lKSkKKyAgICAgICAgICh0CisgICAgICAgICAgKGRlbGV0ZS1o
b3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3aGVuIGJx
LXByZWZpeCAoaW5zZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJp
bmcgaW5kZW50ID9ccykpKSkpKQorICAgICAoaW4tYnEKKyAgICAgIChsZXQgKChicS1wcmVmaXgg
KG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKQorICAgICAgICAgICAgOzsgQSBsaW5l
IHdpdGggb25seSBxdW90ZSBtYXJrZXJzIGFuZCB3aGl0ZXNwYWNlIChlLmcuLAorICAgICAgICAg
ICAgOzsgIj4gIikgaXMgImJsYW5rIiBpbnNpZGUgdGhlIHF1b3RlLiAgUkVUIGhlcmUgZXhpdHMg
dGhlCisgICAgICAgICAgICA7OyBxdW90ZSwgc2FtZSBhcyBSRVQgb24gYSBibGFuayBjb250aW51
YXRpb24gbGluZSBleGl0cyBhCisgICAgICAgICAgICA7OyBsaXN0OiByZW1vdmUgdGhlIHByZWZp
eCBhbmQgZHJvcCB0byBjb2x1bW4gMC4KKyAgICAgICAgICAgIChibGFuay1saW5lLXAgKHNhdmUt
ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIl5bPiBcdF0qJCIp
KSkpCisgICAgICAgIChpZiBibGFuay1saW5lLXAKKyAgICAgICAgICAgIChwcm9nbgorICAgICAg
ICAgICAgICAoZGVsZXRlLXJlZ2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVu
ZC1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChuZXdsaW5lKSkKKyAgICAgICAgICAoZGVsZXRl
LWhvcml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKGluc2Vy
dCBicS1wcmVmaXgpKSkpCisgICAgIDs7IERlZmF1bHQ6IHBsYWluIG5ld2xpbmUuICBUaGlzIGFs
c28gaGFuZGxlcyBlbXB0eSBsaXN0IG1hcmtlcnMKKyAgICAgOzsgKGUuZy4sICItICIgd2l0aCBu
byB0ZXh0KSB0aGF0IHRoZSBncmFtbWFyIHBhcnNlcyBhcyBFUlJPUgorICAgICA7OyBub2RlcyBy
YXRoZXIgdGhhbiBsaXN0X2l0ZW0gbm9kZXMuCisgICAgIDs7CisgICAgIDs7IFdoZW4gdGhlIGN1
cnJlbnQgbGluZSBpcyBibGFuayAod2hpdGVzcGFjZSBvbmx5KSwgaXQgaXMgYQorICAgICA7OyBj
b250aW51YXRpb24taW5kZW50IGxpbmUgbGVmdCBieSBhIHByZXZpb3VzIFJFVCB0aGF0CisgICAg
IDs7IHRyZWUtc2l0dGVyIG5vIGxvbmdlciBjb25zaWRlcnMgcGFydCBvZiBhIGxpc3RfaXRlbS4g
IENsZWFyCisgICAgIDs7IHRoZSB3aGl0ZXNwYWNlIHNvIG5vIHRyYWlsaW5nIHNwYWNlcyByZW1h
aW4sIGFuZCBpbnNlcnQgYQorICAgICA7OyBwbGFpbiBuZXdsaW5lIGF0IGNvbHVtbiAwIHRvIGV4
aXQgdGhlIGxpc3QgY29udGV4dC4KKyAgICAgKHQKKyAgICAgICh3aGVuIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29r
aW5nLWF0LXAgIl5bIFx0XSskIikpCisgICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lu
bmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAobmV3bGluZSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVtICgpCisgICJJbnNlcnQgYSBu
ZXcgbGlzdCBpdGVtLCBzcGxpdHRpbmcgdGV4dCBhdCBwb2ludC4KK1RleHQgYWZ0ZXIgcG9pbnQg
bW92ZXMgdG8gdGhlIG5ldyBpdGVtLiAgQXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsCithbiBl
bXB0eSBpdGVtIGlzIGluc2VydGVkIGFib3ZlIGFuZCB0aGUgY3VycmVudCBjb250ZW50IGlzIHB1
c2hlZCBkb3duLgorSW5zaWRlIGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGluZSBpbmNsdWRlcyB0
aGUgcXVvdGUgcHJlZml4LgorRm9yIG9yZGVyZWQgbGlzdHMsIHRoZSBudW1iZXIgaXMgaW5jcmVt
ZW50ZWQuCitXaGVuIG5vdCBpbnNpZGUgYSBsaXN0LCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRz
LW5ld2xpbmUnLiIKKyAgKGludGVyYWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9k
ZS1hdAorICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlv
bikgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgKGluLWJx
IChhbmQgKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGJsb2NrX3F1b3RlXFwnIikKKyAg
ICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0
LXAgIlsgXHRdKj4iKSkpKQorICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rv
d24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtkb3duLXRz
LS1saXN0LWl0ZW0tYXQtcG9pbnQpKSkKKyAgICAoY29uZAorICAgICAoKGFuZCBpdGVtCisgICAg
ICAgICAgIChvciAobm90IGluLWJxKQorICAgICAgICAgICAgICAgKD49IChtYXJrZG93bi10cy0t
bGluZS1ibG9jay1xdW90ZS1kZXB0aCkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
LWxpbmUtYmxvY2stcXVvdGUtZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1zdGFydCAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKSkpKQorICAgICAgKGxldCogKChu
ZXctbWFya2VyIChtYXJrZG93bi10cy0tbmV3LW1hcmtlci1mb3ItbGluZSBpdGVtKSkKKyAgICAg
ICAgICAgICAoYXQtYm9sICg8PSAoY3VycmVudC1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFjay10
by1pbmRlbnRhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWNvbHVt
bikpKSkKKyAgICAgICAgICAgICAodGFpbCAod2hlbiAoYW5kIChub3QgYXQtYm9sKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAobG9va2luZy1hdC1wICJbIFx0XSokIikpKQor
ICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1hbmQtZXh0cmFjdC1yZWdpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAocG9pbnQpIChsaW5lLWVuZC1wb3NpdGlvbikpKSkpCisgICAgICAgIChp
ZiBhdC1ib2wKKyAgICAgICAgICAgIDs7IEF0IEJPTDogaW5zZXJ0IGVtcHR5IGl0ZW0gYWJvdmUs
IHB1c2ggY3VycmVudCBsaW5lIGRvd24uCisgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAg
ICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAod2hlbiBicS1wcmVmaXggKGlu
c2VydCBicS1wcmVmaXgpKQorICAgICAgICAgICAgICAoaW5zZXJ0IG5ldy1tYXJrZXIgIlxuIikK
KyAgICAgICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pKQorICAgICAgICAgIDs7IE1pZC1s
aW5lIG9yIEVPTDogbmV3IGl0ZW0gYmVsb3cgd2l0aCB0YWlsIHRleHQuCisgICAgICAgICAgKGRl
bGV0ZS1ob3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3
aGVuIGJxLXByZWZpeCAoaW5zZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCBuZXct
bWFya2VyKQorICAgICAgICAgICh3aGVuIHRhaWwgKHNhdmUtZXhjdXJzaW9uIChpbnNlcnQgKHN0
cmluZy10cmltLWxlZnQgdGFpbCkpKSkpKSkKKworICAgICA7OyBOb3QgaW4gYSBsaXN0OiBmYWxs
IGJhY2sgdG8gbmV3bGluZSBiZWhhdmlvci4KKyAgICAgKHQgKG1hcmtkb3duLXRzLW5ld2xpbmUp
KSkpKQorCis7OzsgRmlsbGluZzoKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1maWxsLXVuZmls
bGFibGUtYmxvY2stcXVlcnkKKyAgJyhbKGZlbmNlZF9jb2RlX2Jsb2NrKSAoaW5kZW50ZWRfY29k
ZV9ibG9jaykgKHBpcGVfdGFibGUpXSBAYmxvY2spCisgICJUcmVlLXNpdHRlciBxdWVyeSBtYXRj
aGluZyBibG9ja3Mgd2hlcmUgZmlsbGluZyBpcyBpbmhpYml0ZWQuIikKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gKGl0ZW0pCisgICJSZXR1cm4gdGhlIGNvbHVt
biB3aGVyZSB0aGUgdGV4dCBvZiBsaXN0IElURU0gc3RhcnRzLgorVGhpcyBpcyB0aGUgY29sdW1u
IG9mIHRoZSBmaXJzdCBwYXJhZ3JhcGggbm9kZSBpbnNpZGUgSVRFTSwgb3IKK3RoZSB3aWR0aCBv
ZiB0aGUgbGlzdCBtYXJrZXIgaWYgbm8gcGFyYWdyYXBoIGlzIGZvdW5kLiIKKyAgKGxldCAoKHBh
cmFncmFwaCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBpdGVtICJcXGBwYXJhZ3JhcGhcXCciKSkp
CisgICAgKGlmIHBhcmFncmFwaAorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAo
Z290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgcGFyYWdyYXBoKSkKKyAgICAgICAgICAoY3Vy
cmVudC1jb2x1bW4pKQorICAgICAgKGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0
ZW0gMCkpKQorICAgICAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpCisgICAgICAgICAg
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
ZmlsbC1saXN0LWl0ZW0gKGl0ZW0ganVzdGlmeSkKKyAgIkZpbGwgdGhlIGNvbnRlbnRzIG9mIGxp
c3QgSVRFTSwgcHJlc2VydmluZyBpdHMgaW5kZW50YXRpb24uCitOYXJyb3dzIHRvIElURU0ncyBv
d24gcGFyYWdyYXBoIGNvbnRlbnQgKGV4Y2x1ZGluZyBuZXN0ZWQgbGlzdHMpCithbmQgc2V0cyBg
ZmlsbC1wcmVmaXgnIHRvIGFsaWduIGNvbnRpbnVhdGlvbiBsaW5lcyB3aXRoIHRoZSBzdGFydAor
b2YgdGhlIGl0ZW0ncyB0ZXh0LiAgSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIK
KyAgKGxldCogKChmaWxsLXByZWZpeCAobWFrZS1zdHJpbmcgKG1hcmtkb3duLXRzLS1saXN0LWl0
ZW0tdGV4dC1jb2x1bW4gaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
P1xzKSkKKyAgICAgICAgIDs7IEZpbmQgdGhlIGl0ZW0ncyBvd24gcGFyYWdyYXBoIChmaXJzdCBw
YXJhZ3JhcGggY2hpbGQpLgorICAgICAgICAgOzsgSWYgdGhlIGl0ZW0gaGFzIG5lc3RlZCBsaXN0
cywgbmFycm93IHRvIGp1c3QgdGhlCisgICAgICAgICA7OyBwYXJhZ3JhcGggc28gd2UgZG9uJ3Qg
bWVyZ2UgbmVzdGVkIGl0ZW1zLgorICAgICAgICAgKHBhcmEgKHRyZWVzaXQtc2VhcmNoLXN1YnRy
ZWUgaXRlbSAiXFxgcGFyYWdyYXBoXFwnIiBuaWwgbmlsIDEpKQorICAgICAgICAgKGJlZyAodHJl
ZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKQorICAgICAgICAgKGVuZCAoaWYgcGFyYQorICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkKKyAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLWVuZCBpdGVtKSkpCisgICAgICAgICA7OyBVc2UgZGVmYXVsdCBwYXJhZ3JhcGggbW90
aW9uIGluc2lkZSB0aGUgbmFycm93ZWQgcmVnaW9uCisgICAgICAgICA7OyBzbyB0aGF0IHRoZSBp
bm5lciBgZmlsbC1wYXJhZ3JhcGgnIGRvZXMgbm90IHJlLWVudGVyIG91cgorICAgICAgICAgOzsg
Y3VzdG9tIHBhcmFncmFwaC1maW5kaW5nIGxvZ2ljLgorICAgICAgICAgKGZpbGwtZm9yd2FyZC1w
YXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkpCisgICAgKHNhdmUtcmVzdHJp
Y3Rpb24KKyAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAoZmlsbC1wYXJh
Z3JhcGgganVzdGlmeSkpCisgICAgOzsgUmV0dXJuIG5vbi1uaWwgdG8gc2lnbmFsIHRoYXQgZmls
bGluZyBoYXMgYmVlbiBoYW5kbGVkLAorICAgIDs7IGFzIHBlciB0aGUgY29udHJhY3Qgb2YgYGZp
bGwtcGFyYWdyYXBoLWZ1bmN0aW9uJy4KKyAgICB0KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1h
ZGFwdGl2ZS1maWxsICgpCisgICJSZXR1cm4gdGhlIGZpbGwgcHJlZml4IGZvciB0aGUgY3VycmVu
dCBsaW5lIGluIE1hcmtkb3duLgorV2hlbiBpbnNpZGUgYSBsaXN0IGl0ZW0sIHJldHVybiBzcGFj
ZXMgbWF0Y2hpbmcgdGhlIGNvbHVtbiB3aGVyZQordGhlIGl0ZW0ncyB0ZXh0IHN0YXJ0cy4iCisg
IChhbmQtbGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAgICAgICAgICAo
c2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAg
ICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50
LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAobWFrZS1zdHJpbmcgKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRlbSkgP1xzKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCAoYXJnKQorICAiTW92ZSBmb3J3YXJkIGJ5
IEFSRyBwYXJhZ3JhcGhzLCByZXNwZWN0aW5nIE1hcmtkb3duIHN0cnVjdHVyZS4KK0xpc3QgaXRl
bXMgYXJlIHRyZWF0ZWQgYXMgaW5kaXZpZHVhbCBwYXJhZ3JhcGhzLiAgQmxvY2tzIG1hdGNoZWQK
K2J5IGBtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5JyBhcmUgc2tpcHBl
ZDogYm90aAorZm9yd2FyZCBhbmQgYmFja3dhcmQgbW90aW9uIG1vdmUgdG8gdGhlIGVuZCBvZiB0
aGUgYmxvY2ssIHNvCitgZmlsbC1yZWdpb24nIHNlZXMgYSB6ZXJvLWxlbmd0aCByZWdpb24gYW5k
IGxlYXZlcyB0aGUgYmxvY2sKK3VuZmlsbGVkLiIKKyAgKGxldCAoKGRpcmVjdGlvbiAoaWYgKD4g
YXJnIDApIDEgLTEpKQorICAgICAgICAoY291bnQgKGFicyBhcmcpKQorICAgICAgICAobW92ZWQg
MCkpCisgICAgKGRvdGltZXMgKF8gY291bnQpCisgICAgICA7OyBGb3IgYmFja3dhcmQgbW90aW9u
LCBza2lwIGJhY2sgb3ZlciB3aGl0ZXNwYWNlIHRvIGZpbmQKKyAgICAgIDs7IHRoZSBpdGVtIHdl
IGFyZSBsZWF2aW5nLCBub3QgdGhlIG5leHQgb25lLgorICAgICAgKGxldCogKChwb3MgKGlmICg8
IGRpcmVjdGlvbiAwKQorICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdFxuIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChtYXggKHBvaW50LW1pbikgKDEtIChwb2ludCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgICAgKGJsb2NrIChjYXIgKHRyZWVz
aXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1idWZm
ZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rv
d24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3MgKDErIHBvcykpKSkKKyAgICAgICAgICAgICAoaW5kZW50ZWQtcG9zIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHBvcykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChub2RlICh0cmVl
c2l0LW5vZGUtYXQgaW5kZW50ZWQtcG9zICdtYXJrZG93bikpCisgICAgICAgICAgICAgKGl0ZW0g
KHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAgICAg
OzsgV2hlbiBtb3ZpbmcgZm9yd2FyZCBmcm9tIHdoaXRlc3BhY2UgYmV0d2VlbiBsaXN0IGl0ZW1z
LAorICAgICAgICA7OyBza2lwIHRvIHRoZSBuZXh0IG5vbi1ibGFuayBwb3NpdGlvbiBhbmQgY2hl
Y2sgYWdhaW4uCisgICAgICAgICh3aGVuIChhbmQgKG5vdCBpdGVtKSAobm90IGJsb2NrKSAoPiBk
aXJlY3Rpb24gMCkpCisgICAgICAgICAgKGxldCAoKG5leHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgICAoc2V0
cSBub2RlICh0cmVlc2l0LW5vZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAg
IChzZXRxIGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIp
KSkpCisgICAgICAgIChjb25kCisgICAgICAgICA7OyBJbnNpZGUgYW4gdW5maWxsYWJsZSBibG9j
azogc2tpcCBvdmVyIGl0IGVudGlyZWx5LgorICAgICAgICAgKGJsb2NrCisgICAgICAgICAgKGdv
dG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCAoY2RyIGJsb2NrKSkpCisgICAgICAgICAgKHNldHEg
bW92ZWQgKDErIG1vdmVkKSkpCisgICAgICAgICA7OyBJbnNpZGUgYSBsaXN0IGl0ZW06IHRyZWF0
IGFzIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgICAgIChpdGVtCisgICAgICAgICAgKGlmICg+
IGRpcmVjdGlvbiAwKQorICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtZW5k
IGl0ZW0pKQorICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0p
KSkKKyAgICAgICAgICAoc2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkKKyAgICAgICAgIDs7IERlZmF1
bHQ6IHVzZSBzdGFuZGFyZCBwYXJhZ3JhcGggbW90aW9uLgorICAgICAgICAgKHQKKyAgICAgICAg
ICAoZm9yd2FyZC1wYXJhZ3JhcGggZGlyZWN0aW9uKQorICAgICAgICAgIChzZXRxIG1vdmVkICgx
KyBtb3ZlZCkpKSkpKQorICAgIDs7IFJldHVybiB0aGUgbnVtYmVyIG9mIHBhcmFncmFwaHMgbGVm
dCB0byBtb3ZlICgwID0gYWxsIGRvbmUpLgorICAgICgtIGNvdW50IG1vdmVkKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGggKCZvcHRpb25hbCBqdXN0aWZ5KQorICAiRmls
bCB0aGUgY3VycmVudCBwYXJhZ3JhcGgsIHJlc3BlY3RpbmcgTWFya2Rvd24gYmxvY2sgc3RydWN0
dXJlLgorVGhpcyBmdW5jdGlvbiBwcmV2ZW50cyBmaWxsaW5nIGluc2lkZSBibG9ja3MgbWF0Y2hl
ZCBieQorYG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnknLCBhbmQgZmls
bHMgd2l0aGluIGxpc3QKK2l0ZW1zIHdpdGhvdXQgbWVyZ2luZyBhZGphY2VudCBpdGVtcy4gIEpV
U1RJRlkgaXMgYXMgaW4KK2BmaWxsLXBhcmFncmFwaCcuIgorICAoY29uZCoKKyAgIDs7IERvbid0
IGZpbGwgaW5zaWRlIHVuZmlsbGFibGUgYmxvY2tzLiAgVXNlIGEgcXVlcnkgYWdhaW5zdCB0aGUK
KyAgIDs7IHJvb3Qgbm9kZSBiZWNhdXNlIGB0cmVlc2l0LW5vZGUtYXQnIG1heSBub3QgcmV0dXJu
IGEgbm9kZQorICAgOzsgaW5zaWRlIHRoZSBibG9jayB3aGVuIHBvaW50IGlzIG9uIGFub255bW91
cyAodW5uYW1lZCkgdGV4dC4KKyAgICgodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICh0cmVl
c2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKQorICAgICBtYXJrZG93bi10cy0tZmlsbC11
bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICAgIChwb2ludCkgKG1pbiAoMSsgKHBvaW50KSkgKHBv
aW50LW1heCkpKQorICAgIHQpCisgICA7OyBGaWxsIHdpdGhpbiB0aGUgZW5jbG9zaW5nIGxpc3Qg
aXRlbS4gIFVzZQorICAgOzsgYG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQnIHdoaWNo
IGhhbmRsZXMgYmxvY2sgcXVvdGUKKyAgIDs7IG1hcmtlcnMuICBXaGVuIHRoZSBsaXN0IGl0ZW0g
aXMgaW5zaWRlIGEgYmxvY2sgcXVvdGUsIGRlbGVnYXRlCisgICA7OyB0byB0aGUgYmxvY2sgcXVv
dGUgZmlsbGVyIHdoaWNoIGhhbmRsZXMgYD4gJyBwcmVmaXhlcyBjb3JyZWN0bHkuCisgICAoKGJp
bmQtYW5kKiAoaXRlbSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChp
ZiAodHJlZXNpdC1wYXJlbnQtdW50aWwgaXRlbSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAgICAg
ICAobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUganVzdGlmeSkKKyAgICAgIChtYXJrZG93
bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBQb2ludCBpcyBvbiBh
IGJsYW5rIGxpbmUgYmVmb3JlIGEgbGlzdC4gIElmIHRoZSBuZXh0CisgICA7OyBub24td2hpdGVz
cGFjZSBwb3NpdGlvbiBmYWxscyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGZpbGwgdGhhdCBpdGVtLgor
ICAgKChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgKGxv
b2tpbmctYXQtcCAiWyBcdF0qJCIpKQorICAgIChhbmQtbGV0KiAoKG5leHQtcG9zIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAi
IFx0XG4iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAg
ICAgICAobmV4dC1ub2RlICh0cmVlc2l0LW5vZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAg
ICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAg
ICAgICAgIG5leHQtbm9kZSAiXFxgbGlzdF9pdGVtXFwnIikpKQorICAgICAgKG1hcmtkb3duLXRz
LS1maWxsLWxpc3QtaXRlbSBpdGVtIGp1c3RpZnkpKSkKKyAgIDs7IEZpbGwgd2l0aGluIGEgYmxv
Y2sgcXVvdGUuICBOYXJyb3cgdG8gdGhlIHBhcmFncmFwaCBub2RlIGF0CisgICA7OyBwb2ludCdz
IG5lc3RpbmcgbGV2ZWwgc28gbGluZXMgd2l0aCBkaWZmZXJlbnQgYD4gJyBkZXB0aHMKKyAgIDs7
IGFyZSBub3QgbWVyZ2VkLgorICAgKCh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAodHJlZXNp
dC1ub2RlLWF0CisgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24pIChw
b2ludCkpCisgICAgICAnbWFya2Rvd24pCisgICAgICJcXGBibG9ja19xdW90ZVxcJyIpCisgICAg
KG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkpKQorICAgOzsgRmlsbCB3aXRo
aW4gYW4gSFRNTCBjb21tZW50LiAgVGhlIG5vZGUgdHlwZSBpcyAiaHRtbF9ibG9jayIKKyAgIDs7
IGluIGdyYW1tYXIgdjAuNC54IGFuZCAiY29tbWVudCIgaW4gc29tZSBvdGhlciB2ZXJzaW9ucy4K
KyAgICgoYmluZC1hbmQqIChibG9jayAobGV0ICgobiAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkg
J21hcmtkb3duKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAob3IgKHRyZWVzaXQtcGFyZW50
LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gIlxcYFxcKD86aHRtbF9ibG9j
a1xcfGNvbW1lbnRcXClcXCciKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKG1l
bWJlciAodHJlZXNpdC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJygiaHRtbF9ibG9jayIgImNvbW1lbnQiKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG4pKSkpKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1l
bnQgYmxvY2sganVzdGlmeSkpCisgICA7OyBEZWZhdWx0OiBsZXQgZmlsbC1wYXJhZ3JhcGggaGFu
ZGxlIGl0LgorICAgKHQgbmlsKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1odG1sLWNv
bW1lbnQgKG5vZGUganVzdGlmeSkKKyAgIkZpbGwgSFRNTCBjb21tZW50IE5PREUsIGFsaWduaW5n
IGNvbnRpbnVhdGlvbiBsaW5lcy4KK1JldHVybiB0IGlmIE5PREUgaXMgYSBjb21tZW50IGFuZCB3
YXMgZmlsbGVkLCBuaWwgb3RoZXJ3aXNlLgorSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3Jh
cGgnLiIKKyAgKHdoZW4gKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciAodHJl
ZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgIChsb29raW5nLWF0LXAgIjwhLS0iKSkK
KyAgICAobGV0ICgoZmlsbC1wcmVmaXggKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAoKyAoY3VycmVudC1jb2x1bW4pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggIjwhLS0gIikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9ccykpKQorICAgICAgICAgIChhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uIG5pbCkKKyAgICAgICAgICAoZmlsbC1mb3J3YXJkLXBhcmFncmFw
aC1mdW5jdGlvbiAjJ2ZvcndhcmQtcGFyYWdyYXBoKQorICAgICAgICAgIChmaWxsLXBhcmFncmFw
aC1mdW5jdGlvbiBuaWwpKQorICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgICAgKG5hcnJv
dy10by1yZWdpb24gKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZpbGwtcGFyYWdyYXBo
IGp1c3RpZnkpKQorICAgICAgdCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWJsb2NrLXF1b3Rl
LXByZWZpeCAoKQorICAiUmV0dXJuIHRoZSBibG9jayBxdW90ZSBwcmVmaXggc3RyaW5nIGZyb20g
dGhlIGN1cnJlbnQgbGluZS4KK1JlYWQgdGhlIGFjdHVhbCBgPicgbWFya2VycyAod2l0aCB3aGF0
ZXZlciBzcGFjaW5nIHRoZSB1c2VyIHdyb3RlKQorZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBs
aW5lIHNvIHRoYXQgZmlsbCBwcmVzZXJ2ZXMgdGhlIGV4aXN0aW5nCitzdHlsZSAoZS5nLiwgYD4+
PiAnIHN0YXlzIGA+Pj4gJywgYD4gPiA+ICcgc3RheXMgYD4gPiA+ICcpLiIKKyAgKHNhdmUtZXhj
dXJzaW9uCisgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgIChpZiAobG9va2luZy1hdCAiXFwo
Wz4gXHRdKj5cXClbIFx0XSoiKQorICAgICAgICAoY29uY2F0IChtYXRjaC1zdHJpbmcgMCkpCisg
ICAgICAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSAoanVz
dGlmeSkKKyAgIkZpbGwgdGhlIHBhcmFncmFwaCBhdCBwb2ludCBpbnNpZGUgYSBibG9jayBxdW90
ZS4KK0ZpbmQgdGhlIHBhcmFncmFwaCBub2RlIGF0IHBvaW50IHdpdGhpbiB0aGUgYmxvY2sgcXVv
dGUgYW5kIGZpbGwKK29ubHkgdGhhdCBwYXJhZ3JhcGgsIHByZXNlcnZpbmcgdGhlIGA+ICcgcHJl
Zml4LiAgV2hlbiB0aGUKK3BhcmFncmFwaCBpcyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGFsaWduIGNv
bnRpbnVhdGlvbiBsaW5lcyB3aXRoCit0aGUgaXRlbSdzIHRleHQgY29sdW1uLiAgSlVTVElGWSBp
cyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgOzsgU2tpcCBwYXN0IGA+ICcgbWFya2VycyBh
bmQgYW55IGxpc3QgbWFya2VyIHRvIGxhbmQgaW5zaWRlIHRoZQorICA7OyBjb250ZW50LCB3aGVy
ZSB0aGUgcGFyYWdyYXBoIG5vZGUgbGl2ZXMuCisgIChsZXQqICgoY29udGVudC1wb3MgKHNhdmUt
ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICI+IFx0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIDs7IElmIHdlIGxhbmQgb24gYSBsaXN0IG1hcmtlciwgc2tpcCBw
YXN0IGl0LgorICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGxvb2tpbmctYXQgIlstKitd
IFxcfFswLTldK1suKV1ccyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
KG1hdGNoLWVuZCAwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAobWluICgxKyAocG9pbnQp
KSAocG9pbnQtbWF4KSkpKQorICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBjb250ZW50
LXBvcyAnbWFya2Rvd24pKQorICAgICAgICAgKHBhcmEgKHRyZWVzaXQtcGFyZW50LXVudGlsCisg
ICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJwYXJhZ3JhcGgiKSkpKSkKKyAgICAod2hlbiBw
YXJhCisgICAgICA7OyBUaGUgZ3JhbW1hciBtYXkgaW5jbHVkZSB0cmFpbGluZyBibG9ja19jb250
aW51YXRpb24gbm9kZXMKKyAgICAgIDs7IChibGFuayBgPiA+JyBsaW5lcykgYXMgY2hpbGRyZW4g
b2YgdGhlIHBhcmFncmFwaC4gIFVzZSB0aGUKKyAgICAgIDs7IGVuZCBvZiB0aGUgbGFzdCBpbmxp
bmUgY2hpbGQgc28gZmlsbCBkb2VzIG5vdCBtZXJnZSBhY3Jvc3MKKyAgICAgIDs7IHdoYXQgc2hv
dWxkIGJlIGEgcGFyYWdyYXBoIGJvdW5kYXJ5LgorICAgICAgKGxldCogKChsYXN0LWlubGluZQor
ICAgICAgICAgICAgICAoc2VxLWZpbmQgKGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJpbmxpbmUiKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChyZXZlcnNlICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcGFy
YSkpKSkKKyAgICAgICAgICAgICAocGFyYS1lbmQgKGlmIGxhc3QtaW5saW5lCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYXN0LWlubGluZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBwYXJhKSkpCisgICAgICAgICAgICAg
KGJxLXByZWZpeCAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAg
ICAgOzsgV2hlbiBpbnNpZGUgYSBsaXN0IGl0ZW0sIGV4dGVuZCB0aGUgcHJlZml4IHdpdGggc3Bh
Y2VzCisgICAgICAgICAgICAgOzsgc28gY29udGludWF0aW9uIGxpbmVzIGFsaWduIHdpdGggdGhl
IGl0ZW0ncyB0ZXh0LgorICAgICAgICAgICAgIChsaXN0LWl0ZW0gKHRyZWVzaXQtcGFyZW50LXVu
dGlsIHBhcmEgIlxcYGxpc3RfaXRlbVxcJyIpKQorICAgICAgICAgICAgIChwcmVmaXggKGlmIGxp
c3QtaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQqICgodGV4dC1jb2wgKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsaXN0LWl0ZW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZXh0cmEgKG1heCAwICgtIHRleHQtY29sIChsZW5ndGggYnEtcHJlZml4KSkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgYnEtcHJlZml4IChtYWtlLXN0cmluZyBl
eHRyYSA/XHMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgYnEtcHJlZml4KSkKKyAgICAgICAg
ICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgICAgKGZpbGwtZm9y
d2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAg
ICAoZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgICAgKHNhdmUtcmVzdHJpY3Rp
b24KKyAgICAgICAgICA7OyBOYXJyb3cgdG8gdGhlIGZ1bGwgbGluZXMgb2YgdGhlIHBhcmFncmFw
aCBzbyB0aGF0IHRoZQorICAgICAgICAgIDs7IGA+ICcgbWFya2VycyBhcmUgaW5jbHVkZWQgaW4g
dGhlIGZpbGwgcmVnaW9uLgorICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uCisgICAgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBwYXJhKSkKKyAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAg
ICAgKHBvaW50KSkKKyAgICAgICAgICAgcGFyYS1lbmQpCisgICAgICAgICAgKGxldCAoKGZpbGwt
cHJlZml4IHByZWZpeCkpCisgICAgICAgICAgICAoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkpKSkp
KQorICB0KQorCis7OzsgQ29kZSBibG9ja3M6CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMt
LWNvZGUtYmxvY2stbGFuZ3VhZ2VzIG5pbAorICAiQWxpc3QgbWFwcGluZyBsYW5ndWFnZSBub2Rl
IG5hbWVzIHRvIHRzIGxhbmd1YWdlLgorSWYgYSBsYW5ndWFnZSBpcyBub3QgYSB0cyBsYW5ndWFn
ZSBvciBpcyBub3QgbWFwcGVkIHRvIG9uZSwgaXQgd2lsbCBiZQoraW4gYG1hcmtkb3duLXRzLS1j
b2RlLWJsb2NrLW5vbi10cy1tb2RlcycuIikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1ub24tdHMtbW9kZXMgbmlsCisgICJBbGlzdCBtYXBwaW5nIGxhbmd1YWdlcyB0
byBub24tdHJlZS1zaXR0ZXIgbW9kZXMgZm9yIGNvZGUgYmxvY2tzLgorUG9wdWxhdGVkIGJ5IGBt
YXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZScgdG8gaWRlbnRpZnkgYQorY29kZS1i
bG9jayBsYW5ndWFnZSBtb2RlIHdoaWNoIGlzIG5vdCBhIHRyZWUtc2l0dGVyIG1vZGUgb3IgZm9y
IHdoaWNoCit0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBpcyB1bmF2YWlsYWJsZS4iKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24gKG1vZGUp
CisgICJIYXJ2ZXN0IHRyZWUtc2l0dGVyIGNvbmZpZ3VyYXRpb24gZnJvbSBNT0RFLgorUmV0dXJu
IGEgcGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgYW5kIHZhbHVlczoKIAogICAgIDpmb250
LWxvY2sgKGZyb20gYHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzJykKICAgICA6c2ltcGxlLWlu
ZGVudCAoZnJvbSBgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzJykKICAgICA6cmFuZ2UgKGZy
b20gYHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MnKSIKICAgKHdpdGgtdGVtcC1idWZmZXIKLSAgICAo
ZnVuY2FsbCBtb2RlKQotICAgIChsaXN0IDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0
dGluZ3MKKyAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkKKyAgICAobGlzdCA6
bGFuZ3VhZ2UgKHRyZWVzaXQtbGFuZ3VhZ2UtYXQgKHBvaW50LW1pbikpCisgICAgICAgICAgOmZv
bnQtbG9jayB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwogICAgICAgICAgIDpzaW1wbGUtaW5k
ZW50IHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcwogICAgICAgICAgIDpyYW5nZSB0cmVlc2l0
LXJhbmdlLXNldHRpbmdzKSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3It
bW9kZSAobGFuZ3VhZ2UgbW9kZSkKLSAgIkFkZCBjb25maWd1cmF0aW9ucyBmb3IgTEFOR1VBR0Ug
ZnJvbSBNT0RFIHRvIGN1cnJlbnQgYnVmZmVyLgotCi1Db25maWd1cmF0aW9uIGluY2x1ZGVzIGZv
bnQtbG9jayBhbmQgaW5kZW50LiAgRm9yIGZvbnQtbG9jayBydWxlcywgdXNlCi10aGUgc2FtZSBm
ZWF0dXJlcyBlbmFibGVkIGluIE1PREUuIgotICAobGV0ICgoY29uZmlncyAobWFya2Rvd24tdHMt
LWhhcnZlc3QtdHJlZXNpdC1jb25maWdzIG1vZGUpKSkKLSAgICAoaWdub3JlIGxhbmd1YWdlKSA7
IFdlIG1pZ2h0IG1ha2UgdXNlIG9mIHRoaXMgbGF0ZXIuCi0gICAgKHNldHEgdHJlZXNpdC1mb250
LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRp
bmdzCi0gICAgICAgICAgICAgICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0dGluZ3Ms
IGluY2x1ZGluZyBvbmVzIHRoYXQKLSAgICAgICAgICAgICAgICAgIDs7IGRvbid0IHBlcnRhaW4g
dG8gTEFOR1VBR0UuICBUaGlzIHdheSB3ZSBnZXQganNkb2MKLSAgICAgICAgICAgICAgICAgIDs7
IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCi0gICAgICAgICAgICAgICAgICAocGxpc3Qt
Z2V0IGNvbmZpZ3MgOmZvbnQtbG9jaykpKQotICAgIChzZXRxIHRyZWVzaXQtc2ltcGxlLWluZGVu
dC1ydWxlcwotICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCi0g
ICAgICAgICAgICAgICAgICA7OyBTaW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgotICAg
ICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpzaW1wbGUtaW5kZW50KSkpCisoZGVm
dW4gbWFya2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciAoY29uZmlndXJhdGlvbikK
KyAgIkFkZCBDT05GSUdVUkFUSU9OIHRvIHRoZSBjdXJyZW50IGJ1ZmZlci4KK0NPTkZJR1VSQVRJ
T04gaW5jbHVkZXMgZm9udC1sb2NrIGFuZCBpbmRlbnQgcnVsZXMuICBGb3IgZm9udC1sb2NrIHJ1
bGVzLAordXNlIHRoZSBzYW1lIGZlYXR1cmVzIGVuYWJsZWQgaW4gTU9ERS4iCisgIChzZXRxIHRy
ZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxv
Y2stc2V0dGluZ3MKKyAgICAgICAgICAgICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0
dGluZ3MsIGluY2x1ZGluZyBvbmVzIHRoYXQKKyAgICAgICAgICAgICAgICA7OyBkb24ndCBwZXJ0
YWluIHRvIE1PREUuICBUaGlzIHdheSwgd2UgZ2V0IGpzZG9jCisgICAgICAgICAgICAgICAgOzsg
ZnJvbSBqcy10cy1tb2RlLCBmb3IgZXhhbXBsZS4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOmZvbnQtbG9jaykpKQorICAoc2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRl
bnQtcnVsZXMKKyAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKKyAg
ICAgICAgICAgICAgICA7OyBTaW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgorICAgICAg
ICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6c2ltcGxlLWluZGVudCkpKQogICAg
IChzZXRxIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQt
cmFuZ2Utc2V0dGluZ3MKICAgICAgICAgICAgICAgICAgIDs7IEZpbHRlciBvdXQgZnVuY3Rpb24g
cXVlcmllcywgYmVjYXVzZSB0aGV5IGFyZQpAQCAtMzAyLDUyICsyMjc3LDQ3OSBAQCBtYXJrZG93
bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZQogICAgICAgICAgICAgICAgICAgOzsgQ2FzZSBpbiBw
b2ludDogYy10cy1tb2RlJ3MgcmFuZ2Ugc2V0dGluZy4KICAgICAgICAgICAgICAgICAgIChzZXEt
ZmlsdGVyIChsYW1iZGEgKHNldHRpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChub3QgKGZ1bmN0aW9ucCAoY2FyIHNldHRpbmcpKSkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3MgOnJhbmdlKSkpKQotICAgIChzZXRxLWxvY2FsIGlu
ZGVudC1saW5lLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQpCi0gICAgKHNldHEtbG9jYWwgaW5k
ZW50LXJlZ2lvbi1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50LXJlZ2lvbikpKQotCi0oZGVmdW4g
bWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFnZSAobm9kZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6cmFuZ2UpKSkp
CisgIChzZXRxLWxvY2FsIGluZGVudC1saW5lLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQpCisg
IChzZXRxLWxvY2FsIGluZGVudC1yZWdpb24tZnVuY3Rpb24gIyd0cmVlc2l0LWluZGVudC1yZWdp
b24pKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgKG5vZGUpCisgICJS
ZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBmb3IgY29kZV9mZW5jZV9jb250ZW50IE5PREUuIgor
ICAod2hlbi1sZXQqICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAg
ICAgICAgICAobGFuZy1ub2RlICh3aGVuIHBhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsYW5ndWFnZVxcJyIpKSkpCisg
ICAgKGludGVybiAodHJlZXNpdC1ub2RlLXRleHQgbGFuZy1ub2RlIHQpKSkpCisKKyhkZWZ2YXIt
bG9jYWwgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlIChtYWtlLWhhc2gtdGFibGUg
OnRlc3QgIydlcXVhbCkKKyAgIkNhY2hlIGZvciBub24tdHJlZS1zaXR0ZXIgY29kZSBibG9jayBm
b250aWZpY2F0aW9uLgorS2V5cyBhcmUgKExBTkcgLiBDT05URU5ULUhBU0gpIGNvbnMgY2VsbHMs
IHZhbHVlcyBhcmUgbGlzdHMgb2YKK1woT0ZGU0VULVNUQVJUIE9GRlNFVC1FTkQgRkFDRSkgdHJp
cGxlcy4iKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNo
ZS10aWNrIG5pbAorICAiRm9yIGJsdW50IGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgY2Fj
aGUgaW52YWxpZGF0aW9uLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMt
Y29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkg
Y29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNpbmcgYSBub24tdHJlZS1zaXR0ZXIgbW9kZS4KK0Fw
cGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2NrIGluIGEgdGVt
cG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJv
dWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLgorCitDYWNoZSByZXN1bHRz
IHRvIGF2b2lkIGZvbnRpZmljYXRpb24gb2YgdW5jaGFuZ2VkIGNvZGUgYmxvY2tzLgorCitOT0RF
IHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2VkIHRocm91Z2gKK2BtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5IGhhdmUgY2xhc3NpZmllZCB0aGlzCitub2RlIGFz
IGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1sZXQqICgobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1
YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAgICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgICAodGlj
ayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2spKQorICAgICAgICAgICAgICAoYmxvY2stc3Rh
cnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAgICAgOzsgQ2Fubm90IHVz
ZSBtYXJrZXJzICdtYXJrZG93bi10cy1jb2RlLWJlZy1tYXJrZXIKKyAgICAgICAgICAgICAgOzsg
J21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlciB0aGV5IGFyZSBzZXQgYWZ0ZXIgdGhpcworICAg
ICAgICAgICAgICA7OyBmdW5jdGlvbiBydW5zLgorICAgICAgICAgICAgICAobm9kZS1zdGFydCAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp
bmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFj
a3dhcmQgIiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAo
d2hlbiAoPiBub2RlLWVuZCBub2RlLXN0YXJ0KQorICAgICAgKHVubGVzcyAoZXEgdGljayBtYXJr
ZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUtdGljaykKKyAgICAgICAgKGNscmhhc2ggbWFy
a2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlKSkKKyAgICAgIChsZXQqICgoY2FjaGUta2V5
IChjb25zIGxhbmcgKHNlY3VyZS1oYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc2hhMjU2CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVu
dC1idWZmZXIpIG5vZGUtc3RhcnQgbm9kZS1lbmQpKSkKKyAgICAgICAgICAgICAocHJvcHMKKyAg
ICAgICAgICAgICAgKG9yIChnZXRoYXNoIGNhY2hlLWtleQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAg
ICAgKGxldCAoKHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
Zm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcworICAgICAgICAgICAgICAgICAgICAgICAgICBt
b2RlIG5vZGUtc3RhcnQgbm9kZS1lbmQpKSkKKyAgICAgICAgICAgICAgICAgICAgKHB1dGhhc2gg
Y2FjaGUta2V5IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10
cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpCisgICAgICAgICAgICAgICAgICAgIChzZXRxIG1hcmtk
b3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10aWNrIHRpY2spCisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCkpKSkKKyAgICAgICAgKGRvbGlzdCAocmFuZ2UgcHJvcHMpCisgICAgICAgICAg
KHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAgICAgIChudGggMCByYW5nZSkK
KyAgICAgICAgICAgKG50aCAxIHJhbmdlKQorICAgICAgICAgICAobnRoIDIgcmFuZ2UpCisgICAg
ICAgICAgIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZv
bnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMgKG1vZGUgYmVnIGVuZCkKKyAgIlJ1biBNT0RFIG9u
IHRoZSBCRUcuLkVORCByZWdpb24ncyB0ZXh0IGFuZCBoYXJ2ZXN0IGZhY2UgcHJvcGVydGllcy4K
K1JldHVybiBhIGxpc3Qgb2YgKEJVRi1CRUcgQlVGLUVORCBGQUNFKSB0cmlwbGVzIGluIGJhc2Ut
YnVmZmVyCitjb29yZGluYXRlcy4KKworRm9yIG5vbi10cmVlLXNpdHRlciBtb2RlcyB1c2UgYW4g
aW5kaXJlY3QgYnVmZmVyIG5hcnJvd2VkIHRvIEJFRy4uRU5EOgorcmVnZXgvc3ludGFjdGljIGZv
bnQtbG9jayBob25vcnMgbmFycm93aW5nIGFuZCB0aGUgaW5kaXJlY3QgYnVmZmVyCitzaGFyZXMg
dGV4dCB3aXRoIHRoZSBiYXNlLCBzbyB0aGlzIGlzIGxlc3MgZXhwZW5zaXZlIGFuZCBjb3B5LWZy
ZWUuCisKK0ZvciB0cyBtb2RlcyBpbiBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252
ZW50aW9uYWwtbW9kZXMnLCBmYWxsCitiYWNrIHRvIGEgdGVtcCBidWZmZXIuICBUcmVlLXNpdHRl
ciBwYXJzZXJzIGlnbm9yZSBpbmRpcmVjdC1idWZmZXIKK25hcnJvd2luZyBhbmQgcGFyc2UgdGhl
IGZ1bGwgYmFzZS1idWZmZXIgdGV4dDsgdGhlIGlubmVyIGNvbnRlbnQgb2YgYQorZmVuY2VkIGNv
ZGUgYmxvY2sgaXMganVzdCBvcGFxdWUgdGV4dCBpbnNpZGUgYSBgY29kZV9mZW5jZV9jb250ZW50
Jworbm9kZSwgbmV2ZXIgcmUtcGFyc2VkIGFzIGEgZnJlc2ggZG9jdW1lbnQuICBBIHRlbXAgYnVm
ZmVyIHdpdGggYSBmcmVzaAorcGFyc2VyIHNlZXMgdGhlIGlubmVyIGNvbnRlbnQgYXMgYSBzdGFu
ZGFsb25lIG1hcmtkb3duIGRvY3VtZW50LCB3aGljaAoraXMgd2hhdCB3ZSB3YW50LiIKKyAgKGNv
bmQgKChtZW1xIG1vZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwt
bW9kZXMpCisgICAgICAgICAobGV0ICgoY29udGVudCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w
ZXJ0aWVzIGJlZyBlbmQpKQorICAgICAgICAgICAgICAgcmVzKQorICAgICAgICAgICAod2l0aC10
ZW1wLWJ1ZmZlcgorICAgICAgICAgICAgIChpbnNlcnQgY29udGVudCkKKyAgICAgICAgICAgICAo
ZGVsYXktbW9kZS1ob29rcworICAgICAgICAgICAgICAgKGxldCAoKG1hcmtkb3duLXRzLS1zZXQt
dXAtaW5saW5lIHQpKQorICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtbW9kZSkpKQorICAg
ICAgICAgICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgICAgICAgIChsZXQgKChwb3MgKHBv
aW50LW1pbikpKQorICAgICAgICAgICAgICAgKHdoaWxlICg8IHBvcyAocG9pbnQtbWF4KSkKKyAg
ICAgICAgICAgICAgICAgKGxldCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNoYW5nZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zICdmYWNlIG5pbCAocG9pbnQtbWF4KSkp
CisgICAgICAgICAgICAgICAgICAgICAgIChmYWNlIChnZXQtdGV4dC1wcm9wZXJ0eSBwb3MgJ2Zh
Y2UpKSkKKyAgICAgICAgICAgICAgICAgICAod2hlbiBmYWNlCisgICAgICAgICAgICAgICAgICAg
ICA7OyBUcmFuc2xhdGUgdGVtcC1idWZmZXIgb2Zmc2V0cyBiYWNrIHRvIGJhc2UtYnVmZmVyCisg
ICAgICAgICAgICAgICAgICAgICA7OyBwb3NpdGlvbnM6IHRlbXAgYHBvaW50LW1pbicgY29ycmVz
cG9uZHMgdG8gQkVHLgorICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QgKCsgYmVnICgx
LSBwb3MpKSAoKyBiZWcgKDEtIG5leHQpKSBmYWNlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzKSkKKyAgICAgICAgICAgICAgICAgICAoc2V0cSBwb3MgbmV4dCkpKSkpCisgICAgICAg
ICAgIChucmV2ZXJzZSByZXMpKSkKKyAgICAgICAgKHQKKyAgICAgICAgIChsZXQgKChpbmRpcmVj
dC1idWZmZXIgKG1ha2UtaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY3VycmVudC1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuaWwgJ2luaGliaXQtYnVmZmVyLWhvb2tzKSkKKyAgICAgICAg
ICAgICAgIHJlcykKKyAgICAgICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAgICAo
d2l0aC1jdXJyZW50LWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIKKyAgICAgICAgICAgICAgICAgKGRl
bGF5LW1vZGUtaG9va3MgKGZ1bmNhbGwgbW9kZSkpCisgICAgICAgICAgICAgICAgIChuYXJyb3ct
dG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgICAgICAgIChmb250LWxvY2stZW5zdXJlKQor
ICAgICAgICAgICAgICAgICAobGV0ICgocG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAg
ICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAgICAgICAgKGxl
dCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNoYW5nZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBvaW50LW1heCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXByb3BlcnR5IHBvcyAnZmFjZSkpKQorICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiBmYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHB1c2ggKGxpc3QgcG9zIG5leHQgZmFjZSkgcmVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
KHNldHEgcG9zIG5leHQpKSkpKQorICAgICAgICAgICAgIChraWxsLWJ1ZmZlciBpbmRpcmVjdC1i
dWZmZXIpKQorICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgKGxhbmcpCisgICJDb21wdXRlIGFuZCBjYWNo
ZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywgYSBzeW1ib2wuCitDb25zdWx0IHRoZSBgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1tYXAnIGNhY2hlLCBvciBwcm9iZSBtb2RlIG5hbWVzLgorUmV0dXJu
IGEgdmFsaWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIKKyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAo
YWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcykpKQorICAgICAgbWFw
cGVkLW1vZGUKKyAgICAobGV0ICgobGFuZy1zdHJpbmcgKHN5bWJvbC1uYW1lIGxhbmcpKSkKKyAg
ICAgIChjYXRjaCA6bW9kZQorICAgICAgICAoZG9saXN0IChtb2RlCisgICAgICAgICAgICAgICAg
IChsaXN0CisgICAgICAgICAgICAgICAgICA7OyBUcnkgYSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhl
IHJhdyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMt
bW9kZSIpCisgICAgICAgICAgICAgICAgICA7OyBUcnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2lu
ZyB0aGUgcmF3IHN0cmluZy4KKyAgICAgICAgICAgICAgICAgIChjb25jYXQgbGFuZy1zdHJpbmcg
Ii1tb2RlIikKKyAgICAgICAgICAgICAgICAgIDs7IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0
aGUgZG93bmNhc2VkIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgIChjb25jYXQgKGRvd25jYXNl
IGxhbmctc3RyaW5nKSAiLXRzLW1vZGUiKQorICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29u
dmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIGRvd25jYXNlZCBzdHJpbmcuCisgICAgICAgICAgICAg
ICAgICAoY29uY2F0IChkb3duY2FzZSBsYW5nLXN0cmluZykgIi1tb2RlIikpKQorICAgICAgICAg
IChzZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAgICAgICAgICAod2hlbiAoZmJvdW5kcCBtb2Rl
KQorICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFuZyBtb2RlKSBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1vZGVzKQorICAgICAgICAgICAgKHRocm93IDptb2RlIG1vZGUpKSkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZSAobm9kZSkKICAgIkNvbnZlcnQg
Tk9ERSB0byBhIGxhbmd1YWdlIGZvciB0aGUgY29kZSBibG9jay4iCi0gIChsZXQqICgobGFuZy1z
dHJpbmcgKGFsaXN0LWdldCAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1hcAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUp
IG5pbCAjJ2VxdWFsKSkKLSAgICAgICAgIChsYW5nIChpZiAoc3ltYm9scCBsYW5nLXN0cmluZykK
LSAgICAgICAgICAgICAgICAgICBsYW5nLXN0cmluZwotICAgICAgICAgICAgICAgICAoaW50ZXJu
IChkb3duY2FzZSBsYW5nLXN0cmluZykpKSkpCi0gICAgOzsgRklYTUU6IEtpbmQgb2YgYSBoYWNr
IGhlcmU6IHdlIHVzZSB0aGlzIGZ1bmN0aW9uIGFzIGEgaG9vayBmb3IKLSAgICA7OyBsb2FkaW5n
IHVwIGNvbmZpZ3MgZm9yIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvZGUgYmxvY2sgb24tZGVtYW5k
LgotICAgIChsZXQgKChtb2RlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LXNvdXJjZS1tb2RlLW1hcCkpKQotICAgICAgOzsgSWYgdGhlcmUncyBubyBzdXBwb3J0ZWQgbW9k
ZSBmb3IgdGhlIGxhbmd1YWdlLCByZXR1cm4gbmlsLAotICAgICAgOzsgd2hpY2ggbWFrZXMgRW1h
Y3Mgc2tpcCB0aGUgY29kZSBibG9jay4KLSAgICAgIChpZiAobm90IChhbmQgbW9kZSAoZmJvdW5k
cCBtb2RlKSkpCi0gICAgICAgICAgbmlsCi0gICAgICAgIDs7IElmIHRoZXJlJ3MgYSBtYWpvciBt
b2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHNldCB1cCB0aGUgY29uZmlnCi0gICAgICAgIDs7IGFuZCBy
ZXR1cm4gdGhlIGxhbmd1YWdlLgotICAgICAgICAod2hlbiAobm90IChtZW1xIGxhbmcgbWFya2Rv
d24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkKLSAgICAgICAgICAobWFya2Rvd24tdHMtLWFk
ZC1jb25maWctZm9yLW1vZGUgbGFuZyBtb2RlKQotICAgICAgICAgIChwdXNoIGxhbmcgbWFya2Rv
d24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkKLSAgICAgICAgbGFuZykpKSkKKyAgKGxldCog
KChsYW5nIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKKyAgICAgICAgIChtb2Rl
IChtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIGxhbmcpKQorICAgICAgICAg
KHRzLWxhbmd1YWdlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5n
dWFnZXMpKQorICAgICAgICAgKG5vbi10cy1sYW5ndWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rv
d24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkpCisgICAgKGNvbmQKKyAgICAgKChmYm91
bmRwIG1vZGUpCisgICAgICAoY29uZAorICAgICAgIDs7IFJldHVybiBrbm93biB0cmVlc2l0IGxh
bmd1YWdlLgorICAgICAgICh0cy1sYW5ndWFnZSB0cy1sYW5ndWFnZSkKKyAgICAgICA7OyBSZXR1
cm4gbmlsIGZvciBrbm93biBub24tdHJlZXNpdCBsYW5ndWFnZSBmb3IgZm9udC1sb2NrLgorICAg
ICAgIChub24tdHMtbGFuZ3VhZ2UgbmlsKQorICAgICAgIDs7IE1hcmtkb3duIGl0c2VsZiBuZWVk
cyB0d28gcGFyc2VycyAobWFya2Rvd24gKworICAgICAgIDs7IG1hcmtkb3duLWlubGluZSksIHNv
IHRyZWVzaXQgZW1iZWRkaW5nICh3aGljaCBjcmVhdGVzIG9ubHkKKyAgICAgICA7OyBvbmUpIGNh
bm5vdCBmdWxseSBmb250aWZ5IGl0LiAgUm91dGUgdGhyb3VnaCB0aGUgbm9uLXRzCisgICAgICAg
OzsgcGF0aCBzbyB0aGUgdGVtcCBidWZmZXIgcnVucyB0aGUgZnVsbCBtb2RlIHdpdGggYm90aAor
ICAgICAgIDs7IHBhcnNlcnMuCisgICAgICAgKChlcSBtb2RlICdtYXJrZG93bi10cy1tb2RlKQor
ICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRz
LW1vZGVzKQorICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAgICAgbmlsKQorICAgICAgICh0CisgICAgICAg
IChsZXQqICgoY29uZmlndXJhdGlvbiAobWFya2Rvd24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0
LWNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKSkKKyAg
ICAgICAgICAgICAgICh0cy1sYW5ndWFnZSAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOmxhbmd1
YWdlKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChhbmQgdHMtbGFuZ3VhZ2UKKyAg
ICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKQorICAg
ICAgICAgICAgKG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVudC1idWZmZXIgY29uZmlndXJh
dGlvbikKKyAgICAgICAgICAgICh1bmxlc3MgKGFzc3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1i
bG9jay1sYW5ndWFnZXMpCisgICAgICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgdHMtbGFuZ3Vh
Z2UpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykpCisgICAgICAgICAgICB0cy1s
YW5ndWFnZSkKKyAgICAgICAgICAgOzsgT3RoZXJ3aXNlLCBjbGFzc2lmeSBtb2RlIGFzIG5vbi10
cmVlLXNpdHRlci4KKyAgICAgICAgICAgKHQKKyAgICAgICAgICAgICh1bmxlc3MgKGFzc3EgbGFu
ZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgICAgIChw
dXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVz
KSkKKyAgICAgICAgICAgIG5pbCkpKSkpKQorICAgICAodCBuaWwpKSkpCisKKzs7OyBDb2RlIGJs
b2NrIG1pbm9yIG1vZGUgc3VwcG9ydCBhbmQgY29kZS1ibG9jayBjb250ZXh0IGNvbW1hbmRzOgor
CisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMgJyhpbmRlbnQtZm9yLXRh
Yi1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVj
dHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld2xpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbW1lbnQtZHdpbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWVudC1saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21tZW50LW9yLXVuY29tbWVudC1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdy
YXBoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9nLWZpbGwt
cmVpbmRlbnQtZGVmdW4pCisgICJDb21tYW5kcyB0byBleGVjdXRlIGluIGEgY29kZS1ibG9jayBj
b250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIikK
KworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzICcoeHJlZi1m
aW5kLWRlZmluaXRpb25zKQorICAiQ29tbWFuZHMgdGhhdCBuZWVkIGEgXCJ0aGluZ1wiIGF0IHBv
aW50IGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1h
bmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJl
Z2lvbi1jb21tYW5kcyAnKGNvbW1lbnQtb3ItdW5jb21tZW50LXJlZ2lvbikKKyAgIkNvbW1hbmRz
IHRoYXQgbmVlZCBhIHJlZ2lvbiBpbiBhIGNvZGUtYmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rv
d24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tZW5hYmxlLWNvZGUtYmxvY2stbW9kZSAoKQorICAiRW5hYmxlIGBtYXJrZG93bi10cy1jb2Rl
LWJsb2NrLW1vZGUnIHdoZW4gaWYgYSBmZW5jZWQgY29kZSBibG9jay4iCisgIChtYXJrZG93bi10
cy1jb2RlLWJsb2NrLW1vZGUgKGlmIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLWF0LXApIDEgLTEp
KSkKKworOzsgTk9URTogRG8gbm90IGFkZCB0aGlzIGNvbW1hbmQgdG8gYG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stY29tbWFuZHMnLgorKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5ld2xp
bmUgKCZvcHRpb25hbCBhcmcgaW50ZXJhY3RpdmUpCisgICAiSW5zZXJ0IGEgbmV3bGluZSwgYW5k
IG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5ldyBsaW5lLgorV2l0aCBwcmVmaXggYXJndW1l
bnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xpbmVzLgorCitJZiBgZWxlY3RyaWMtaW5kZW50
LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50cyB0aGUgZmluYWwgbmV3IGxpbmUKK3RoYXQg
aXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJlY2VkaW5nIGxpbmUuICBUbyBqdXN0IGluc2Vy
dAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMtaW5kZW50LWp1c3QtbmV3bGluZV0uCisKK0lm
IGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwgdGhpcyBtYXkgY2F1c2UgYXV0b21hdGljIGxp
bmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcgbGluZS4gIEEgbm9uLW5pbCBBUkcgaW5oaWJp
dHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1oYXJkLW5ld2xpbmVzJyBpcyBlbmFibGVkLCB0
aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhlIHRleHQtcHJvcGVydHkgYGhhcmQnLgorCitB
IG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQgbWVhbnMgdG8gcnVuIHRoZSBgcG9zdC1zZWxm
LWluc2VydC1ob29rJy4iCisgICAoaW50ZXJhY3RpdmUgIipQXG5wIikKKyAgIChpZi1sZXQqICgo
YmxvY2stbW9kZSAobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAg
ICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAgICAgIChtYXJrZG93bi10cy0tcnVuLWNvbW1h
bmQtaW4tY29kZS1ibG9jayBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMnbmV3bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50ZXJhY3RpdmUpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVzdGlmeSkKKyAgIlJlZmlsbCBvciBy
ZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0aGF0IGNvbnRhaW5zIHBvaW50LgorSWYgdGhl
IHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29tbWVudCwgZmlsbCB0aGUgcGFyYWdyYXBoIHRo
YXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3MgcG9pbnQuCisKK090aGVyd2lzZSwgcmVpbmRl
bnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhhdCBjb250YWlucyBwb2ludCBvcgorZm9sbG93
cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24tbmlsIChpbnRlcmFjdGl2ZWx5LCB3aXRoIHBy
ZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dlbGwuIgorICAoaW50ZXJhY3RpdmUgIlAiKQor
ICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9nLW1vZGUpCisgICAgICAgICAoY2FsbC1pbnRl
cmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50LWRlZnVuIGp1c3RpZnkpKQorICAgICAgICAo
dAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcGFyYWdyYXBoIGp1c3RpZnkp
KSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay14cmVm
LWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3MpCisgICJIZWxwZXIgY29tbWFuZCBmb3IgYHhy
ZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitGaW5kIHRoaW5n
IGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVuY2VzIG9uIHRoZSB4cmVmIHN0YWNrIHRvIHRo
ZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBBUkdTIGlmIG5vdCBpbiBhIGNvZGUgYmxvY2sg
d2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmLWxldCogKChi
bG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAgICAgICAg
KChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChjb25kaXRpb24tY2FzZSBlcnIKKyAgICAg
ICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAg
ICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJlZiBtYXJrZXIgaW4gdGhlIGJhc2UgYnVmZmVy
LiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdpbGwgYmUgcmV0YWluZWQgaWYgdGhlIGNvbW1h
bmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBpbgorICAgICAgICAgICAgICAgIDs7IHRoZSBp
bmRpcmVjdCBidWZmZXIgd2hpY2ggd2Ugd2lsbCBwb3AuCisgICAgICAgICAgICAgICAgKHhyZWYt
cHVzaC1tYXJrZXItc3RhY2spCisgICAgICAgICAgICAgICAgOzsgYHhyZWYtZmluZC1kZWZpbml0
aW9ucycgaXMgYSB0aGluZyBjb21tYW5kIGluCisgICAgICAgICAgICAgICAgOzsgYG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMnLgorICAgICAgICAgICAgICAgIChtYXJrZG93
bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayBibG9jay1tb2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMneHJlZi1maW5kLWRl
ZmluaXRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ3MpKQorICAgICAgICAgICAgOzsgUG9wIHRoZSB0b3AgeHJlZiBtYXJrZXIu
ICBJZiB0aGUgY29tbWFuZCBzdWNjZWVkZWQsIHRoZQorICAgICAgICAgICAgOzsgdG9wIG1hcmtl
ciB3aWxsIGJlIHRoZSBpbmRpcmVjdCBidWZmZXIgbWFya2VyLiAgSWYgaXQKKyAgICAgICAgICAg
IDs7IGZhaWxlZCwgd2UnbGwgcG9wIHRoZSBwbGFjZWhvbGRlciB3aGljaCBpcyBub3cgb2Ygbm8K
KyAgICAgICAgICAgIDs7IHZhbHVlPAorICAgICAgICAgICAgOzsgVE9ETzogUHJvcG9zZSBhbiBg
eHJlZicgcG9wIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCAiZ28KKyAgICAgICAgICAgIDs7IGJhY2si
LgorICAgICAgICAgICAgKGxldCAoKGhpc3RvcnkgKHhyZWYtLWdldC1oaXN0b3J5KSkpCisgICAg
ICAgICAgICAgICh1bmxlc3MgKG51bGwgKGNhciBoaXN0b3J5KSkKKyAgICAgICAgICAgICAgICAo
cG9wIChjYXIgaGlzdG9yeSkpKSkpCisgICAgICAgIChlcnJvcgorICAgICAgICAgOzsgUHJvcGFn
YXRlIHRoZSBzaWduYWwuCisgICAgICAgICAoc2lnbmFsIChjYXIgZXJyKSAoY2RyIGVycikpKSkK
KyAgICA7OyBOb3QgaW4gYSBjb2RlIGJsb2NrIGNvbnRleHQuICBUaGlzIHNob3VsZCByZWFsbHkg
bmV2ZXIgaGFwcGVuLgorICAgIChmdW5jYWxsLWludGVyYWN0aXZlbHkgIyd4cmVmLWZpbmQtZGVm
aW5pdGlvbnMgYXJncykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5k
LWluLWNvZGUtYmxvY2sgKCkKKyAgIkhlbHBlciBmdW5jdGlvbiB0byB3cmFwIGEgY29tbWFuZCBm
b3IgYSBjb2RlLWJsb2NrIGNvbnRleHQuCitJZiBgdGhpcy1jb21tYW5kJyBpcyBhIG1lbWJlciBv
ZiBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcycgYW5kCitwb2ludCBpcyB3aXRoaW4g
YSBjb2RlIGJsb2NrIHdpdGggYW4gYXZhaWxhYmxlIG1vZGUsIGl0IHdpbGwgcnVuIGluIHRoYXQK
K2NvZGUgYmxvY2sncyBtb2RlIGluIGEgYnVmZmVyIG5hcnJvd2VkIHRvIGl0cyBjb250ZW50LiAg
T3RoZXJ3aXNlLCB0aGUKK2NvbW1hbmQgd2lsbCBydW4gaW4gdGhlIGNvbnRleHQgb2YgdGhlIGBt
YXJrZG93bi10cy1tb2RlJyBidWZmZXIuIgorICAod2hlbiAobWVtcSB0aGlzLWNvbW1hbmQgbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcykKKyAgICAod2hlbi1sZXQqICgoY29tbWFuZCB0
aGlzLWNvbW1hbmQpCisgICAgICAgICAgICAgICAgKGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZS1hdCkpCisgICAgICAgICAgICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUp
KSkKKyAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAobGFtYmRhICgmcmVzdCBhcmdzKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGludGVyYWN0aXZlKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGFwcGx5ICMnbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jay1tb2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ3MpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1j
b2RlLWJsb2NrIChibG9jay1tb2RlIGNvbW1hbmQgJnJlc3QgYXJncykKKyAgIlJ1biBDT01NQU5E
IGluIEJMT0NLLU1PREUuCitBUkdTIGFyZSBjYXB0dXJlZCBieSBgbWFya2Rvd24tdHMtLW1heWJl
LXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIKKyAgKHdoZW4tbGV0KiAoKGJlZyAoZ2V0LWNo
YXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyKSkKKyAgICAg
ICAgICAgICAgKGVuZCAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29k
ZS1lbmQtbWFya2VyKSkpCisgICAgKGxldCAoKHJlZ2lvbi1iZWcgKHVzZS1yZWdpb24tYmVnaW5u
aW5nKSkKKyAgICAgICAgICAocmVnaW9uLWVuZCAodXNlLXJlZ2lvbi1lbmQpKSkKKyAgICAgIDs7
IFVzZSBhIG5vbi1jbG9uZWQgaW5kaXJlY3QgYnVmZmVyIHRvIGF2b2lkIGNoYW5naW5nIG1ham9y
IG1vZGUKKyAgICAgIDs7IGluIHRoZSBwYXJlbnQgYnVmZmVyICh3aGljaCB3b3VsZCB0cmFzaCBs
b2NhbCB2YXJpYWJsZXMpLiAgVGhpcworICAgICAgOzsgYWxzbyBlbnN1cmVzIHRyZWVzaXQgc2V0
dXAgaXMgbm90IGNvcGllZCBvdmVyIG9yIGl0IGdldHMKKyAgICAgIDs7IGNvbmZ1c2VkLgorICAg
ICAgKGxldCAoKGluZGlyZWN0LWJ1ZmZlciAobWFrZS1pbmRpcmVjdC1idWZmZXIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChnZW5lcmF0ZS1uZXctYnVmZmVyLW5hbWUgKGJ1ZmZlci1uYW1lKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAnaW5oaWJpdC1idWZmZXItaG9va3MpKQor
ICAgICAgICAgICAgKGluZGlyZWN0LWRlYWN0aXZhdGUtbWFyaykKKyAgICAgICAgICAgIChwb2lu
dC1kZWx0YSAwKSkKKyAgICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAod2l0aC1j
dXJyZW50LWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIKKyAgICAgICAgICAgICAgOzsgQ29weSB0aGUg
YmFzZSBidWZmZXIncyByZWdpb24sIGlmIHRoZXJlIGlzIG9uZS4KKyAgICAgICAgICAgICAgKHdo
ZW4gKGFuZCByZWdpb24tYmVnIHJlZ2lvbi1lbmQpCisgICAgICAgICAgICAgICAgKHNldC1tYXJr
IChpZiAoPCAocG9pbnQpIHJlZ2lvbi1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWdpb24tZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLWJlZykpCisg
ICAgICAgICAgICAgICAgKGFjdGl2YXRlLW1hcmspKQorICAgICAgICAgICAgICAoZGVsYXktbW9k
ZS1ob29rcworICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZG93bi10cy0tc2V0LXVwLWlubGlu
ZQorICAgICAgICAgICAgICAgICAgICAgICAoZXEgYmxvY2stbW9kZSAnbWFya2Rvd24tdHMtbW9k
ZSkpKQorICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgYmxvY2stbW9kZSkpCisgICAgICAgICAg
ICAgICAgKHJlYWQtb25seS1tb2RlIC0xKQorICAgICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVn
aW9uIGJlZyBlbmQpCisgICAgICAgICAgICAgICAgKGxldCAoKHBvaW50IChwb2ludCkpCisgICAg
ICAgICAgICAgICAgICAgICAgKHBvaW50LW1hcmtlciAocG9pbnQtbWFya2VyKSkpCisgICAgICAg
ICAgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAgICAoKG1lbXEgY29tbWFuZCBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzKQorICAgICAgICAgICAgICAgICAg
ICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIHRoaW5nKSkp
CisgICAgICAgICAgICAgICAgICAgICAoKG1lbXEgY29tbWFuZCBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLXJlZ2lvbi1jb21tYW5kcykKKyAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIHJl
Z2lvbi1iZWcgcmVnaW9uLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2Z1
bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVnaW9uLWJlZyByZWdpb24tZW5kIGFyZ3MpKSkKKyAgICAgICAgICAgICAgICAgICAgICgo
emVyb3AgKGNkciAoZnVuYy1hcml0eSBjb21tYW5kKSkpCisgICAgICAgICAgICAgICAgICAgICAg
KGZ1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kKSkKKyAgICAgICAgICAgICAgICAgICAgICh0
CisgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kKSkpCisg
ICAgICAgICAgICAgICAgICAgIChzZXRxIGluZGlyZWN0LWRlYWN0aXZhdGUtbWFyayBkZWFjdGl2
YXRlLW1hcmspCisgICAgICAgICAgICAgICAgICAgIDs7IFRoZSBoZXVyaXN0aWMgb2Ygd2hlbiB0
byBtb3ZlIHBvaW50LgorICAgICAgICAgICAgICAgICAgICA7OyBkZWFjdGl2YXRlLW1hcmsgcChk
KT1wbShkKSBkZWx0YQorICAgICAgICAgICAgICAgICAgICA7OyBuaWwgICAgICAgICAgICAgbm8g
ICAgICAgICAwICAgOyBjbGFzcyBBCisgICAgICAgICAgICAgICAgICAgIDs7IG5pbCAgICAgICAg
ICAgICB5ZXMgICAgICAgIHllcyA7IGNsYXNzIEIKKyAgICAgICAgICAgICAgICAgICAgOzsgdCAg
ICAgICAgICAgICAgIG5vICAgICAgICAgMCAgIDsgY2xhc3MgQworICAgICAgICAgICAgICAgICAg
ICA7OyB0ICAgICAgICAgICAgICAgeWVzICAgICAgICB5ZXMgOyBjbGFzcyBECisgICAgICAgICAg
ICAgICAgICAgIDs7IEE6IG5pbAorICAgICAgICAgICAgICAgICAgICA7OyBCOiBpbmRlbnQtZm9y
LXRhYi1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgIDs7IEM6IGNvbW1lbnQtb3ItdW5jb21t
ZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICA7OyBEOiBjb21tZW50LWR3aW0gbmV3bGlu
ZSBlbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRlbnQKKyAgICAgICAgICAgICAgICAgICAg
OzsgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAg
ICAgICAgIChzZXRxIHBvaW50LWRlbHRhICgtIChwb2ludCkgcG9pbnQpKQorICAgICAgICAgICAg
ICAgICAgKHdoZW4gKG5vdCAoZXEgcG9pbnQtZGVsdGEgKC0gKHBvaW50LW1hcmtlcikgcG9pbnQt
bWFya2VyKSkpCisgICAgICAgICAgICAgICAgICAgIChzZXRxIHBvaW50LWRlbHRhIDApKSkpKQor
ICAgICAgICAgIChraWxsLWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIpCisgICAgICAgICAgOzsgUHJv
cGFnYXRlIG1hcmsgZGVhY3RpdmF0aW9uIHRvIHRoZSBiYXNlIGJ1ZmZlci4KKyAgICAgICAgICAo
c2V0cSBkZWFjdGl2YXRlLW1hcmsgaW5kaXJlY3QtZGVhY3RpdmF0ZS1tYXJrKQorICAgICAgICAg
IDs7IE1vdmUgYmFzZSBidWZmZXIgcG9pbnQgaWYgaXQgbW92ZWQgaW4gdGhlIGluZGlyZWN0IGJ1
ZmZlci4KKyAgICAgICAgICAoZ290by1jaGFyICgrIChwb2ludCkgcG9pbnQtZGVsdGEpKQorICAg
ICAgICAgIDs7IFJlY29yZCB0aGUgb3JpZ2luYWwgY29tbWFuZC4KKyAgICAgICAgICAoc2V0cSB0
aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAgICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0
aW5nIHJlZ2lvbiBpcyByZWZvbnRpZmllZC4KKyAgICAgICAgICAoZm9udC1sb2NrLWZsdXNoIGJl
ZyBlbmQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1p
dGVyIChwb3MgJm9wdGlvbmFsIGJhY2t3YXJkKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZp
b3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3Rh
cnRpbmcgYXQgUE9TLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgor
ICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24p
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5vZGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRl
ciIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZmluZC1uZXh0LWNvZGUtYmxvY2stZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgYmFja3dh
cmQgcmVtYWluKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Js
b2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBw
b2ludCcsIGlmIFBPUyBpcyBuaWwuCitTZWFyY2ggYmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9u
LW5pbC4KK0lmIFJFTUFJTiBpcyBub24tbmlsLCBtb3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9m
IHRoZSBjdXJyZW50IGNvZGUKK2Jsb2NrLCBpZiBpbiBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBv
cyAocG9pbnQpKSkKKyAgKGFuZC1sZXQqICgobm9kZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1i
bG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgKGxldCAoKGluLWJsb2NrIChtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWF0LXAgcG9zKSkpCisgICAgICAoY29uZAorICAgICAgICgoYW5k
IHJlbWFpbiBpbi1ibG9jaykKKyAgICAgICAgbm9kZSkKKyAgICAgICAocmVtYWluCisgICAgICAg
IG5pbCkKKyAgICAgICAodAorICAgICAgICAod2hpbGUgKGFuZCBub2RlCisgICAgICAgICAgICAg
ICAgICAgIDs7IElmIGJhY2t3YXJkLCBza2lwIHRoZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAg
ICAgICAgICAgICAgOzsgc3RhcnRpbmcgZGVsaW1pdGVyLgorICAgICAgICAgICAgICAgICAgICAo
b3IgKGFuZCBiYWNrd2FyZCBpbi1ibG9jayAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBub2Rl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxp
bmcgbm9kZSkpKSkKKyAgICAgICAgICAoc2V0cSBpbi1ibG9jayAobWFya2Rvd24tdHMtY29kZS1i
bG9jay1hdC1wIHBvcykpCisgICAgICAgICAgKHNldHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2Rl
IChtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkK
KyAgICAgICAgbm9kZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29k
ZS1ibG9jayAoYXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29k
ZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhl
IGN1cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCog
KChub2RlCisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2Nr
LWRlbGltaXRlciBuaWwgbmlsIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2Rl
LWJsb2NrIChhcmcpCisgICJNb3ZlIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMg
Y29kZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4g
dGhlIGN1cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxl
dCogKChub2RlCisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJs
b2NrLWRlbGltaXRlciBuaWwgJ2JhY2t3YXJkIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVz
aXQtbm9kZS1zdGFydCBub2RlKSkpKQorCis7OzsgSGVscGVyczoKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1vdXRsaW5lLWludmlzaWJsZS1wIChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1Mg
aXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJlZ2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEg
KG92KSAoZXEgKG92ZXJsYXktZ2V0IG92ICdpbnZpc2libGUpICdvdXRsaW5lKSkKKyAgICAgICAg
ICAgKG92ZXJsYXlzLWF0IHBvcykpKQogCiAoZGVmdW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRp
bmdzICgpCiAgICJSZXR1cm4gcmFuZ2Ugc2V0dGluZ3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4i
CiAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCiAgICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQogICAg
Omhvc3QgJ21hcmtkb3duCi0gICA6cmFuZ2UtZm4gIyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUt
Y2hpbGRyZW4KICAgICcoKGlubGluZSkgQG1hcmtkb3duLWlubGluZSkKIAotICAgOmVtYmVkICMn
bWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFnZQorICAgOmVtYmVkICMnbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UKICAgIDpob3N0ICdtYXJrZG93bgogICAg
OmxvY2FsIHQKICAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChpbmZvX3N0cmluZyAobGFuZ3VhZ2Up
IEBsYW5ndWFnZSkKICAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQp
IEBjb250ZW50KSkpKQogCisoZGVmdW4gbWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5
cyAoKQorICAiUmVtb3ZlIGFsbCBpbmxpbmUgaW1hZ2Ugb3ZlcmxheXMgZnJvbSB0aGUgY3VycmVu
dCBidWZmZXIuIgorICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gKHBvaW50LW1pbikgKHBvaW50
LW1heCkpKQorICAgICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisg
ICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGlu
ZS12aWV3LWNoYW5nZSAoKQorICAiVXBkYXRlIGltYWdlIG92ZXJsYXlzIGFmdGVyIG91dGxpbmUg
Zm9sZC91bmZvbGQuCitSZW1vdmVzIGltYWdlIG92ZXJsYXlzIGluIGZvbGRlZCByZWdpb25zIGFu
ZCB0cmlnZ2VycworcmVmb250aWZpY2F0aW9uIHNvIHRoYXQgaW1hZ2VzIGluIHVuZm9sZGVkIHJl
Z2lvbnMgYXJlIHJlY3JlYXRlZC4iCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMK
KyAgICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAgICAoZm9udC1sb2Nr
LWZsdXNoKSkpCisKIChkZWZ1biBtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwICh2YWx1ZSkK
ICAgIlNldCBoaWRpbmcgb2YgTWFya2Rvd24gbWFya3VwIGRlbGltaXRlcnMgaW4gdGhlIGN1cnJl
bnQgYnVmZmVyLgogVkFMVUUgbm9uLW5pbCBoaWRlcyBtYXJrdXAsIG5pbCBzaG93cyBpdC4iCiAg
IChpZiB2YWx1ZQogICAgICAgKGFkZC10by1pbnZpc2liaWxpdHktc3BlYyAnbWFya2Rvd24tdHMt
LW1hcmt1cCkKICAgICAocmVtb3ZlLWZyb20taW52aXNpYmlsaXR5LXNwZWMgJ21hcmtkb3duLXRz
LS1tYXJrdXApKQorICAod2hlbiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAgKG1hcmtk
b3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpKQogICAoZm9udC1sb2NrLWZsdXNoKSkKIAog
KGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1cCAoKQpAQCAtMzU2LDEyMiArMjc1
OCw1MzAgQEAgbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwCiAgIChzZXRxIG1hcmtkb3du
LXRzLWhpZGUtbWFya3VwIChub3QgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApKQogICAobWFya2Rv
d24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCiAKKyhkZWZ1
biBtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMgKHZhbHVlKQorICAiU2V0IGRpc3BsYXkg
b2YgaW5saW5lIGltYWdlcyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitWQUxVRSBub24tbmlsIGRp
c3BsYXlzIGltYWdlcywgbmlsIHJlbW92ZXMgdGhlbS4iCisgIChpZiB2YWx1ZQorICAgICAgKHRy
ZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyAnKGltYWdlLXByZXZpZXcpKQorICAg
ICh0cmVlc2l0LWZvbnQtbG9jay1yZWNvbXB1dGUtZmVhdHVyZXMgbmlsICcoaW1hZ2UtcHJldmll
dykpKQorICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAgKGZvbnQtbG9j
ay1mbHVzaCkpCiAKLTs7OyBNYWpvciBtb2RlCi0KLShkZWZ1biBtYXJrZG93bi10cy1zZXR1cCAo
KQotICAiU2V0dXAgdHJlZXNpdCBmb3IgYG1hcmtkb3duLXRzLW1vZGUnLiIKLSAgKG1ha2UtbG9j
YWwtdmFyaWFibGUgJ21hcmtkb3duLXRzLWhpZGUtbWFya3VwKQorKGRlZnVuIG1hcmtkb3duLXRz
LXRvZ2dsZS1pbmxpbmUtaW1hZ2VzICgpCisgICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1h
Z2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgbWFy
a2Rvd24tdHMtaW5saW5lLWltYWdlcyAobm90IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpKQor
ICAobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzIG1hcmtkb3duLXRzLWlubGluZS1pbWFn
ZXMpCisgIChtZXNzYWdlICJJbmxpbmUgaW1hZ2VzICVzIiAoaWYgbWFya2Rvd24tdHMtaW5saW5l
LWltYWdlcyAiZW5hYmxlZCIgImRpc2FibGVkIikpKQorCis7OzsgRW1waGFzaXM6CisKKyhkZWZ2
YXIgbWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QKKyAgJygoP2IgLiAiKioiKQorICAgICg/QiAu
ICJfXyIpCisgICAgKD9pIC4gIioiKQorICAgICg/SSAuICJfIikKKyAgICAoP3MgLiAifn4iKQor
ICAgICg/YyAuICJgIikKKyAgICAoP2EgLiAiKioqIikpCisgICJBbGlzdCBvZiBlbXBoYXNpcyBt
YXJrZXJzIGZvciBgbWFya2Rvd24tdHMtZW1waGFzaXplJy4KK0VhY2ggZW50cnkgaXMgKEtFWSAu
IE1BUktFUikgd2hlcmUgS0VZIGlzIGEgY2hhcmFjdGVyIChub3QgYSBzdHJpbmcpIGFuZAorTUFS
S0VSIGlzIHRoZSBNYXJrZG93biBlbXBoYXNpemVkIHRleHQgcHJlZml4L3N1ZmZpeC4iKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0
aGUgZW1waGFzaXMgbm9kZSBhdCBwb2ludCwgb3IgbmlsLgorRmluZHMgdGhlIGlubmVybW9zdCBg
ZW1waGFzaXMnLCBgc3Ryb25nX2VtcGhhc2lzJywKK2BzdHJpa2V0aHJvdWdoJywgb3IgYGNvZGVf
c3Bhbicgbm9kZS4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50
KSAnbWFya2Rvd24taW5saW5lKSkpCisgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgIG5v
ZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAgIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4p
CisgICAgICAgICAgICAgICAgICAgICcoImVtcGhhc2lzIiAic3Ryb25nX2VtcGhhc2lzIgorICAg
ICAgICAgICAgICAgICAgICAgICJzdHJpa2V0aHJvdWdoIiAiY29kZV9zcGFuIikpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtcmVtb3ZlLWVtcGhhc2lzICgpCisgICJSZW1vdmUgZW1waGFzaXMg
YXJvdW5kIHBvaW50IG9yIHJlZ2lvbi4KK1dpdGggYW4gYWN0aXZlIHJlZ2lvbiwgc3RyaXAgdGhl
IG91dGVybW9zdCBlbXBoYXNpcyBtYXJrZXJzIGZyb20KK3RoZSBzZWxlY3RlZCB0ZXh0LiAgV2l0
aG91dCBhIHJlZ2lvbiwgZmluZCB0aGUgZW1waGFzaXMgbm9kZSBhdAorcG9pbnQgdXNpbmcgdHJl
ZS1zaXR0ZXIgYW5kIHJlbW92ZSBpdHMgbWFya2Vycy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlm
ICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0KiAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisg
ICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpCisgICAgICAgICAgICAgKHRleHQgKGJ1ZmZl
ci1zdWJzdHJpbmcgYmVnIGVuZCkpCisgICAgICAgICAgICAgKHN0cmlwcGVkIG5pbCkpCisgICAg
ICAgIChjbC1sb29wIGZvciAoX2tleSAuIG0pIGluIChzb3J0IChjb3B5LXNlcXVlbmNlIG1hcmtk
b3duLXRzLWVtcGhhc2lzLWFsaXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKD4gKGxlbmd0aCAoY2RyIGEpKSAobGVuZ3RoIChjZHIgYikpKSkpCisgICAgICAg
ICAgICAgICAgIGZvciByZSA9IChjb25jYXQgIlxcYCIgKHJlZ2V4cC1xdW90ZSBtKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXChcXCg/Oi5cXHxcblxcKSpcXCkiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2V4cC1xdW90ZSBtKSAiXFwnIikKKyAg
ICAgICAgICAgICAgICAgd2hlbiAoc3RyaW5nLW1hdGNoIHJlIHRleHQpCisgICAgICAgICAgICAg
ICAgIGRvIChzZXRxIHN0cmlwcGVkIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkKKyAgICAgICAgICAg
ICAgICAgYW5kIHJldHVybiBuaWwpCisgICAgICAgICh3aGVuIHN0cmlwcGVkCisgICAgICAgICAg
KGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkKKyAgICAgICAgICAoaW5zZXJ0IHN0cmlwcGVkKSkpCisg
ICAgOzsgRmluZCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG5vZGUgYXQgcG9pbnQuCisgICAgKHdo
ZW4tbGV0KiAoKGlubmVyIChtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCkpCisg
ICAgICAgICAgICAgICAgKG5vZGUgKGxldCAoKG4gaW5uZXIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKHdoaWxlIChsZXQgKChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbikpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCBwYXJlbnQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbWJlciAodHJlZXNpdC1ub2Rl
LXR5cGUgcGFyZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICcoImVtcGhhc2lzIiAic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giICJj
b2RlX3NwYW4iKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG4g
cGFyZW50KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgbikpCisgICAgICAgICAgICAgICAg
KHN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgICAgKGVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAodGV4dCAodHJlZXNpdC1u
b2RlLXRleHQgbm9kZSB0KSkKKyAgICAgICAgICAgICAgICAodHlwZSAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkpCisgICAgICAgICAgICAgICAgKG1sZW4gKHBjYXNlIHR5cGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICgic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAgICAgICAgICAg
IChpZiAoc3RyaW5nLXByZWZpeC1wICJfIiB0ZXh0KSAyIDIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKCJlbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1w
cmVmaXgtcCAiXyIgdGV4dCkgMSAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgic3RyaWtl
dGhyb3VnaCIgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICgiY29kZV9zcGFuIiAxKSkpCisg
ICAgICAgICAgICAgICAgKGlubmVyLXRleHQgKHN1YnN0cmluZyB0ZXh0IG1sZW4gKC0gKGxlbmd0
aCB0ZXh0KSBtbGVuKSkpKQorICAgICAgKGxldCAoKG9mZnNldCAoLSAocG9pbnQpIHN0YXJ0IG1s
ZW4pKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gc3RhcnQgZW5kKQorICAgICAgICAoZ290by1j
aGFyIHN0YXJ0KQorICAgICAgICAoaW5zZXJ0IGlubmVyLXRleHQpCisgICAgICAgIChnb3RvLWNo
YXIgKCsgc3RhcnQgKG1heCAwIG9mZnNldCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWVt
cGhhc2l6ZSAoJm9wdGlvbmFsIGNoYXIpCisgICJJbnNlcnQgb3IgY2hhbmdlIGVtcGhhc2lzIG9u
IHRleHQuCitJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9uLCB3cmFwIGl0IHdpdGggZW1waGFz
aXMgbWFya2Vycy4KK0lmIHRoZXJlIGlzIG5vIHJlZ2lvbiwgaW5zZXJ0IG1hcmtlciBwYWlycyBh
bmQgcGxhY2UgcG9pbnQgYmV0d2VlbgordGhlbS4gIENIQVIgc2VsZWN0cyB0aGUgZW1waGFzaXMg
dHlwZToKKworICBiICAgKipib2xkKiogICAgICAgQiAgX19ib2xkX18KKyAgaSAgICppdGFsaWMq
ICAgICAgIEkgIF9pdGFsaWNfCisgIGEgICAqKipib2xkK2l0YWxpYyoqKgorICBzICAgfn5zdHJp
a2V0aHJvdWdofn4KKyAgYyAgIGBjb2RlYAorICBTUEMgcmVtb3ZlIGVtcGhhc2lzIGF0IHBvaW50
IG9yIHJlZ2lvbiIKKyAgKGludGVyYWN0aXZlCisgICAiY0VtcGhhc2lzIFtiXW9sZCBbQl1vbGRf
IFtpXXRhbGljIFtJXXRhbGljXyBbYV1sbCBbc110cmlrZSBbY11vZGUgU1BDIHJlbW92ZToiKQor
ICAoaWYgKGVxIGNoYXIgP1xzKQorICAgICAgKG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNpcykK
KyAgICAoaWYtbGV0KiAoKG1hcmtlciAoY2RyIChhc3NxIGNoYXIgbWFya2Rvd24tdHMtZW1waGFz
aXMtYWxpc3QpKSkpCisgICAgICAgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgICAgICAgKGxl
dCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAgICAgICAoZW5kIChjb3B5
LW1hcmtlciAocmVnaW9uLWVuZCkpKSkKKyAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAgICAgICAgKGluc2VydCBt
YXJrZXIpCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAgICAg
KGluc2VydCBtYXJrZXIpKSkKKyAgICAgICAgICAoaWYtbGV0KiAoKGJvdW5kcyAoYm91bmRzLW9m
LXRoaW5nLWF0LXBvaW50ICd3b3JkKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGNkciBib3VuZHMpKQorICAgICAgICAgICAgICAg
IChpbnNlcnQgbWFya2VyKQorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGNhciBib3VuZHMp
KQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChpbnNlcnQg
bWFya2VyIG1hcmtlcikKKyAgICAgICAgICAgIChiYWNrd2FyZC1jaGFyIChsZW5ndGggbWFya2Vy
KSkpKQorICAgICAgKHVzZXItZXJyb3IgIk5vIHN1Y2ggZW1waGFzaXMgbWFya2VyOiAlYyIgY2hh
cikpKSkKKworOzs7IEJsb2NrIHN0cnVjdHVyZToKKworKGRlZnVuIG1hcmtkb3duLXRzLWluc2Vy
dC1zdHJ1Y3R1cmUgKCZvcHRpb25hbCBjaGFyKQorICAiSW5zZXJ0IGEgYmxvY2sgc3RydWN0dXJl
LgorSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdC4gIE90aGVyd2lzZSwgaW5z
ZXJ0IGFuIGVtcHR5CitibG9jayBhbmQgcGxhY2UgcG9pbnQgaW5zaWRlLiAgQ0hBUiBzZWxlY3Rz
IHRoZSBzdHJ1Y3R1cmUgdHlwZToKKworICBjICBmZW5jZWQgY29kZSBibG9jayAoYGBgKQorICB0
ICB0aWxkZSBmZW5jZWQgY29kZSBibG9jayAofn5+KQorICBxICBibG9jayBxdW90ZSAoPiApCisg
IGQgIGhvcml6b250YWwgZGl2aWRlci9ydWxlICgtLS0pIgorICAoaW50ZXJhY3RpdmUgImNTdHJ1
Y3R1cmUgW2Ndb2RlIGJsb2NrIFt0XWlsZGUgY29kZSBibG9jayBbcV11b3RlIFtkXWl2aWRlcjoi
KQorICAocGNhc2UgY2hhcgorICAgICg/YyAobWFya2Rvd24tdHMtLWluc2VydC1jb2RlLWJsb2Nr
ID9gKSkKKyAgICAoP3QgKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayA/fikpCisgICAg
KD9xIChtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKSkKKyAgICAoP2QgKG1hcmtkb3du
LXRzLS1pbnNlcnQtZGl2aWRlcikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1Y2ggc3RydWN0
dXJlOiAlYyIgY2hhcikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9j
ayAoY2hhciAmb3B0aW9uYWwgbGFuZ3VhZ2UpCisgICJJbnNlcnQgYSBmZW5jZWQgY29kZSBibG9j
ayB1c2luZyBhIENIQVIgc2VxdWVuY2UuCitDSEFSIHNob3VsZCBiZSBvbmUgb2YgYSBiYWNrdGlj
ayBvciBhIHRpbGRlLgorTEFOR1VBR0UgaXMgYSB3aGl0ZXNwYWNlIGZyZWUgbGFuZ3VhZ2Ugc3Ry
aW5nLiIKKyAgKHNldHEgbGFuZ3VhZ2UKKyAgICAgICAgKG9yIGxhbmd1YWdlCisgICAgICAgICAg
ICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgIltbOmJsYW5rOl1dIiAi
IgorICAgICAgICAgICAgIChsZXQgKChjb21wbGV0aW9uLWlnbm9yZS1jYXNlIG5pbCkKKyAgICAg
ICAgICAgICAgICAgICAoY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAoc2VxLW1hcAor
ICAgICAgICAgICAgICAgICAgICAgIydzeW1ib2wtbmFtZQorICAgICAgICAgICAgICAgICAgICAg
KHNlcS11bmlxCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCAobWFwY2FyICMnY2FyIG1h
cmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVz
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10
cy1jb2RlLWJsb2NrLW1vZGVzKSkpKSkpCisgICAgICAgICAgICAgICAoY29tcGxldGluZy1yZWFk
CisgICAgICAgICAgICAgICAgIkNvZGUgYmxvY2sgbGFuZ3VhZ2U6ICIKKyAgICAgICAgICAgICAg
ICBjYW5kaWRhdGVzCisgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgJ2NvbmZp
cm0gOyBQcm9tcHQgaWYgdGhlIGxhbmd1YWdlIGlzIG5vdCBvbiBvdXIgbGlzdC4KKyAgICAgICAg
ICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbGFuZ3VhZ2UtaGlzdG9y
eSkpKSkpCisgIChsZXQgKChmZW5jZS1zdHJpbmcgKG1ha2Utc3RyaW5nIDMgY2hhcikpKQorICAg
IChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5n
KSkKKyAgICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpKQorICAgICAgICAgIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAgICAodW5sZXNz
IChib2xwKSAoaW5zZXJ0ICJcbiIpKQorICAgICAgICAgICAgKGluc2VydCBmZW5jZS1zdHJpbmcg
IlxuIikKKyAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgKGluc2VydCBm
ZW5jZS1zdHJpbmcgbGFuZ3VhZ2UgIlxuIikpKQorICAgICAgKGluc2VydCBmZW5jZS1zdHJpbmcg
bGFuZ3VhZ2UgIlxuXG4iIGZlbmNlLXN0cmluZykKKyAgICAgIChmb3J3YXJkLWxpbmUgLTEpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlICgpCisgICJJbnNlcnQg
YSBibG9jayBxdW90ZS4iCisgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgKGxldCAoKGJlZyAo
cmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAoZW5kIChjb3B5LW1hcmtlciAocmVnaW9u
LWVuZCkpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBi
ZWcpCisgICAgICAgICAgKHdoaWxlICg8IChwb2ludCkgZW5kKQorICAgICAgICAgICAgKGluc2Vy
dCAiPiAiKQorICAgICAgICAgICAgKGZvcndhcmQtbGluZSAxKSkpKQorICAgIChpbnNlcnQgIj4g
IikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyICgpCisgICJJbnNlcnQg
YSBob3Jpem9udGFsIHJ1bGUuIgorICAodW5sZXNzIChib2xwKSAoaW5zZXJ0ICJcbiIpKQorICAo
aW5zZXJ0ICJcbi0tLVxuXG4iKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1hcHBseS1lbGxpcHNp
cyAoKQorICAiQXBwbHkgYG1hcmtkb3duLXRzLWVsbGlwc2lzJyB0byB0aGUgY3VycmVudCBidWZm
ZXIncyBkaXNwbGF5IHRhYmxlLiIKKyAgKGlmIChhbmQgKHN0cmluZ3AgbWFya2Rvd24tdHMtZWxs
aXBzaXMpCisgICAgICAgICAgIChub3QgKHN0cmluZy1lbXB0eS1wIG1hcmtkb3duLXRzLWVsbGlw
c2lzKSkpCisgICAgICAobGV0ICgodGFibGUgKG9yIGJ1ZmZlci1kaXNwbGF5LXRhYmxlCisgICAg
ICAgICAgICAgICAgICAgICAgIChtYWtlLWRpc3BsYXktdGFibGUpKSkpCisgICAgICAgIChzZXQt
ZGlzcGxheS10YWJsZS1zbG90CisgICAgICAgICB0YWJsZSA0CisgICAgICAgICAodmNvbmNhdCAo
bWFwY2FyIChsYW1iZGEgKGMpIChtYWtlLWdseXBoLWNvZGUgYyAnc2hhZG93KSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtZWxsaXBzaXMpKSkKKyAgICAgICAgKHNldHEg
YnVmZmVyLWRpc3BsYXktdGFibGUgdGFibGUpKQorICAgICh3aGVuIGJ1ZmZlci1kaXNwbGF5LXRh
YmxlCisgICAgICAoc2V0LWRpc3BsYXktdGFibGUtc2xvdCBidWZmZXItZGlzcGxheS10YWJsZSA0
IG5pbCkpKSkKKworOzs7IE1ham9yIG1vZGU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5l
LWN5Y2xlICgpCisgICJDeWNsZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWFkaW5nIGF0IHBvaW50Lgor
T24gYSBoZWFkaW5nLCBjYWxsIGBvdXRsaW5lLWN5Y2xlJy4gIE90aGVyd2lzZSBkbyBub3RoaW5n
LiIKKyAgKGludGVyYWN0aXZlKQorICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAg
KG91dGxpbmUtY3ljbGUpKSkKKworKGRlZnZhci1rZXltYXAgbWFya2Rvd24tdHMtbW9kZS1tYXAK
KyAgOmRvYyAiS2V5bWFwIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgorICAiTS08bGVmdD4iICAg
ICMnbWFya2Rvd24tdHMtcHJvbW90ZQorICAiTS08cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtZGVt
b3RlCisgICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAKKyAgIk0t
PGRvd24+IiAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duCisgICJDLWMgQy1uIiAg
ICAgIydvdXRsaW5lLW5leHQtaGVhZGluZworICAiQy1jIEMtcCIgICAgICMnb3V0bGluZS1wcmV2
aW91cy1oZWFkaW5nCisgICJDLWMgQy11IiAgICAgIydvdXRsaW5lLXVwLWhlYWRpbmcKKyAgIkMt
YyBDLWYiICAgICAjJ291dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICJDLWMgQy1iIiAgICAg
IydvdXRsaW5lLWJhY2t3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBDLXggQy1mIiAjJ21hcmtkb3du
LXRzLWVtcGhhc2l6ZQorICAiQy1jIEMteCBDLW0iICMnbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUt
bWFya3VwCisgICJDLWMgQy14IEMtdiIgIydtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdl
cworICAiQy1jIEMtYyIgICAgICMnbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94CisgICJDLWMg
Qy1yIiAgICAgIydtYXJrZG93bi10cy1yZW51bWJlci1saXN0CisgICJDLWMgQy0sIiAgICAgIydt
YXJrZG93bi10cy1pbnNlcnQtc3RydWN0dXJlCisgICJDLWMgQy12IG4iICAgIydtYXJrZG93bi10
cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jaworICAiQy1jIEMtdiBwIiAgICMnbWFya2Rvd24tdHMt
bW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrCisgICJSRVQiICAgICAgICAgIydtYXJrZG93bi10
cy1uZXdsaW5lCisgICJNLVJFVCIgICAgICAgIydtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVt
CisgICJUQUIiICAgICAgICAgIydtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlKQorCisoZGVmdmFy
LWtleW1hcCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBm
b3IgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGlu
IGBtYXJrZG93bi10cy1tb2RlLW1hcCcgdG8gc3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1h
bmRzIGluIGEgY29kZS1ibG9jayBjb250ZXh0LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2Rl
LW1hcAorICAiTS0uIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5k
LWRlZmluaXRpb25zCisgICJUQUIiICAgICAgICAgIydpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisg
ICJSRVQiICAgICAgICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJDLWoi
ICAgICAgICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLVJFVCIgICAg
ICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLXEiICAgICAgICAgIydt
YXJrZG93bi10cy0tY29kZS1ibG9jay1maWxsLXBhcmFncmFwaCkKKworKGVhc3ktbWVudS1kZWZp
bmUgbWFya2Rvd24tdHMtbW9kZS1tZW51IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgICJgbWFya2Rv
d24tdHMtbW9kZScgbWVudS4iCisgICcoIk1hcmtkb3duIiA6dmlzaWJsZSBtYXJrZG93bi10cy1t
ZW51LWJhci1zaG93CisgICAgIi0tIgorICAgIFsiQ3ljbGUgT3V0bGluZSBWaXNpYmlsaXR5IiBt
YXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlCisgICAgIDpoZWxwICJDeWNsZSBoZWFkaW5nIHZpc2li
aWxpdHkgZnJvbSBwb2ludCJdCisgICAgWyJUb2dnbGUgSGlkZSBNYXJrdXAiIG1hcmtkb3duLXRz
LXRvZ2dsZS1oaWRlLW1hcmt1cAorICAgICA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93
bi10cy1oaWRlLW1hcmt1cAorICAgICA6aGVscCAiVG9nZ2xlIGRpc3BsYXkgb2YgbWFya3VwIGNo
YXJhY3RlcnMiXQorICAgIFsiVG9nZ2xlIElubGluZSBJbWFnZXMiIG1hcmtkb3duLXRzLXRvZ2ds
ZS1pbmxpbmUtaW1hZ2VzCisgICAgIDpzdHlsZSB0b2dnbGUgOnNlbGVjdGVkIG1hcmtkb3duLXRz
LWlubGluZS1pbWFnZXMKKyAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIGlubGluZSBpbWFn
ZXMgYmVsb3cgbGlua3MiXQorICAgICItLSIKKyAgICBbIlVwIiBvdXRsaW5lLXVwLWhlYWRpbmcK
KyAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIHBhcmVudCBoZWFkaW5nIl0KKyAgICBbIk5leHQiIG91
dGxpbmUtbmV4dC1oZWFkaW5nCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmci
XQorICAgIFsiUHJldmlvdXMiIG91dGxpbmUtcHJldmlvdXMtaGVhZGluZworICAgICA6aGVscCAi
TW92ZSB0byB0aGUgcHJldmlvdXMgaGVhZGluZyJdCisgICAgWyJOZXh0IFNhbWUgTGV2ZWwiIG91
dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhl
YWRpbmcgYXQgdGhlIHNhbWUgbGV2ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgb3V0
bGluZS1iYWNrd2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91
cyBoZWFkaW5nIGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICAiLS0iCisgICAgWyJKdW1wIiBpbWVu
dQorICAgICA6aGVscCAiSnVtcCB0byBhIGhlYWRpbmcgdmlhIGNvbXBsZXRpb24iXQorICAgICIt
LSIKKyAgICBbIk1vdmUgU3VidHJlZSBVcCIgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwCisg
ICAgIDpoZWxwICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIHVwIl0KKyAg
ICBbIk1vdmUgU3VidHJlZSBEb3duIiBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bgorICAg
ICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGxpc3QgaXRlbSBkb3duIl0KKyAg
ICBbIlByb21vdGUiIG1hcmtkb3duLXRzLXByb21vdGUKKyAgICAgOmhlbHAgIlByb21vdGUgaGVh
ZGluZyBvciBsaXN0IGl0ZW0iXQorICAgIFsiRGVtb3RlIiBtYXJrZG93bi10cy1kZW1vdGUKKyAg
ICAgOmhlbHAgIkRlbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJdCisgICAgIi0tIgorICAgIFsi
RW1waGFzaXMuLi4iIG1hcmtkb3duLXRzLWVtcGhhc2l6ZQorICAgICA6aGVscCAiQWRkIG9yIGNo
YW5nZSBlbXBoYXNpcyBvbiByZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgbWFy
a2Rvd24tdHMtaW5zZXJ0LXN0cnVjdHVyZQorICAgICA6aGVscCAiSW5zZXJ0IGEgY29kZSBibG9j
aywgcXVvdGUsIG9yIG90aGVyIHN0cnVjdHVyZSJdCisgICAgIi0tIgorICAgIFsiVG9nZ2xlIENo
ZWNrYm94IiBtYXJrZG93bi10cy10b2dnbGUtY2hlY2tib3gKKyAgICAgOmhlbHAgIlRvZ2dsZSB0
YXNrIGxpc3QgY2hlY2tib3ggYXQgcG9pbnQiXQorICAgIFsiTmV3IExpc3QgSXRlbSIgbWFya2Rv
d24tdHMtaW5zZXJ0LWxpc3QtaXRlbQorICAgICA6aGVscCAiSW5zZXJ0IGEgbmV3IGxpc3QgaXRl
bSBhZnRlciB0aGUgY3VycmVudCBvbmUiXQorICAgIFsiUmVudW1iZXIgTGlzdCIgbWFya2Rvd24t
dHMtcmVudW1iZXItbGlzdAorICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBh
dCBwb2ludCJdKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtdXAgKCkKKyAgIlNldCB1cCB0
aGUgYnVmZmVyIGZvciBgbWFya2Rvd24tdHMtbW9kZScuCitJZiBgbWFya2Rvd24tdHMtLXNldC11
cC1pbmxpbmUnIGlzIG5vbi1uaWwsIHVzZSBhIGxpZ2h0d2VpZ2h0IHNldCB1cCBmb3IKK2VtYmVk
ZGVkIGlubGluZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4KKworTk9URTogQ2FsbCB0aGlz
IGZ1bmN0aW9uIG9ubHkgd2hlbiB0aGUgdHJlZXNpdCBgbWFya2Rvd24nIGFuZAorYG1hcmtkb3du
LWlubGluZScgcGFyc2VycyBhcmUgYXZhaWxhYmxlLiIKKworICA7OyBTZXQgdGhlc2UgdXAgZm9y
IGJvdGggbWFzdGVyIGFuZCBpbmxpbmUgZm9yIGNvZGUtYmxvY2sgYnVmZmVycy4KKyAgKHNldHEt
bG9jYWwgY29tbWVudC1zdGFydCAiPCEtLSAiCisgICAgICAgICAgICAgIGNvbW1lbnQtZW5kICIg
LS0+IgorICAgICAgICAgICAgICBjb21tZW50LXN0YXJ0LXNraXAgIjwhLS1bIFx0XSoiCisgICAg
ICAgICAgICAgIGNvbW1lbnQtZW5kLXNraXAgIlsgXHRdKi0tPiIKKyAgICAgICAgICAgICAgY29t
bWVudC11c2Utc3ludGF4IG5pbCkKKworICAoc2V0cS1sb2NhbCBmaWxsLXBhcmFncmFwaC1mdW5j
dGlvbgorICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1maWxsLXBhcmFncmFwaAorICAgICAg
ICAgICAgICBmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uCisgICAgICAgICAgICAgICMn
bWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgpCisKKyAgOzsgYGFkYXB0aXZlLWZp
bGwtZnVuY3Rpb24nIHRha2VzIHByZWNlZGVuY2Ugb3ZlcgorICA7OyBgYWRhcHRpdmUtZmlsbC1y
ZWdleHAnOyB0aGUgZGVmYXVsdCByZWdleHAgaXMgZmluZSBhcyBhCisgIDs7IGZhbGxiYWNrIGZv
ciBwbGFpbiAobm9uLWxpc3QpIHBhcmFncmFwaHMuCisgIChzZXRxLWxvY2FsIGFkYXB0aXZlLWZp
bGwtZnVuY3Rpb24gIydtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCkKKworICA7OyBDcmVhdGUg
YW5kIGNvbmZpZ3VyZSB0aGUgcGFyc2Vycy4KKyAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFy
a2Rvd24taW5saW5lKQorICAoc2V0cSB0cmVlc2l0LXByaW1hcnktcGFyc2VyCisgICAgICAgICh0
cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3duKSkKKworICAoc2V0cS1sb2NhbCBmb250LWxv
Y2stZGVmYXVsdHMgbmlsKQogICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cyBtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncykKLSAgKHNldHEtbG9jYWwgdHJlZXNpdC1y
YW5nZS1zZXR0aW5ncyAobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKSkKLSAgKGFkZC10by1s
aXN0ICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcyAnaW52aXNpYmxlKQotCi0gICh3aGVu
ICh0cmVlc2l0LXJlYWR5LXAgJ2h0bWwgdCkKLSAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdo
dG1sKQotICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCi0gICAgKGRlZnZhciBodG1sLXRzLW1v
ZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tdHJlZXNp
dC1mb250LWxvY2stZmVhdHVyZS1saXN0KQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1s
b2NrLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1z
ZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC10cy1tb2RlLS1mb250LWxvY2st
c2V0dGluZ3MpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlz
dAotICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QK
LSAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAg
ICAgICAgICAgIGh0bWwtdHMtbW9kZS0tdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KSkK
LSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAg
KGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAnaHRt
bAotICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgotICAgICAgICAgICAg
ICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJygoaHRtbF9i
bG9jaykgQGh0bWwpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24taW5saW5lCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgJygoaHRtbF90YWcpIEBodG1sKSkpKSkKLQotICAod2hlbiAodHJlZXNp
dC1yZWFkeS1wICd5YW1sIHQpCi0gICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkKLSAgICAoZGVm
dmFyIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQotICAgIChkZWZ2YXIgeWFtbC10
cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQt
Zm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQt
bG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250
LWxvY2stc2V0dGluZ3MpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1
cmUtbGlzdAotICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJl
LWxpc3QKLSAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0g
ICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCi0g
ICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChh
cHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ3lhbWwK
LSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAgICAgICAgICAgICAg
ICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgICcoKG1pbnVzX21l
dGFkYXRhKSBAeWFtbCkpKSkpCi0KLSAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAndG9tbCB0KQot
ICAgIChyZXF1aXJlICd0b21sLXRzLW1vZGUpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUtLWZv
bnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZl
YXR1cmUtbGlzdCkKLSAgICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAg
ICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAg
IHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVl
c2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJn
ZS1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0b21sLXRzLW1vZGUtLWZvbnQtbG9j
ay1mZWF0dXJlLWxpc3QpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MK
LSAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgOmVtYmVkICd0b21sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtk
b3duCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnKChwbHVzX21ldGFkYXRhKSBAdG9tbCkpKSkpCisgIChzZXRxLWxvY2FsIHRyZWVz
aXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCAnKChkZWxpbWl0ZXIgaGVhZGluZykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmFncmFwaCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmFncmFwaC1pbmxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbWFn
ZS1wcmV2aWV3KSkpCisKKyAgKGNvbmQgKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lCisgICAg
ICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgIDplbWJl
ZCAnbWFya2Rvd24taW5saW5lCisgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93
bgorICAgICAgICAgICAgICAgICAgICAgICAnKChpbmxpbmUpIEBtYXJrZG93bi1pbmxpbmUpKSkp
CisgICAgICAgICh0CisgICAgICAgICA7OyBSYW5nZSBzZXR0aW5ncyBkaWZmZXIgaW4gdGhlIG1h
c3RlciBidWZmZXIgdnMuIGlubGluZSBhYm92ZS4KKyAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVz
aXQtcmFuZ2Utc2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykpCisKKyAgICAg
ICAgIDs7IENvbmZpZ3VyZSBmZWF0dXJlcyBuZWVkZWQgb25seSBpbiB0aGUgbWFzdGVyIGJ1ZmZl
ci4KKworICAgICAgICAgOzsgSW1lbnUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRxLWxvY2FsIHRy
ZWVzaXQtc2ltcGxlLWltZW51LXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICBgKCgiSGVh
ZGluZ3MiICwjJ21hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5vZGUtcAorICAgICAgICAgICAg
ICAgICAgICAgICAgbmlsICwjJ21hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5hbWUtZnVuY3Rp
b24pCisgICAgICAgICAgICAgICAgICAgICAgICgiQ29kZSBCbG9ja3MiICwjJ21hcmtkb3duLXRz
LS1pbWVudS1jb2RlLWJsb2NrLW5vZGUtcAorICAgICAgICAgICAgICAgICAgICAgICAgbmlsICwj
J21hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5hbWUtZnVuY3Rpb24pKSkKKworICAgICAg
ICAgOzsgT3V0bGluZSBzdXBwb3J0LgorICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1vdXRs
aW5lLXByZWRpY2F0ZSAjJ21hcmtkb3duLXRzLS1vdXRsaW5lLXByZWRpY2F0ZSkKKyAgICAgICAg
IChzZXRxLWxvY2FsIG91dGxpbmUtbWlub3ItbW9kZS1jeWNsZSB0KQorICAgICAgICAgKG91dGxp
bmUtbWlub3ItbW9kZSAxKQorICAgICAgICAgKG1hcmtkb3duLXRzLS1hcHBseS1lbGxpcHNpcykK
KworICAgICAgICAgOzsgTk9URTogYG91dGxpbmUtdmlldy1jaGFuZ2UtaG9vaycgd2FzIG9ic29s
ZXRlZCBpbiAyOS4xIChjb21taXQKKyAgICAgICAgIDs7IDUzYjFlNmY5NmNiKSBvbiB0aGUgZ3Jv
dW5kcyB0aGF0IG9ubHkgbGF6eS1sb2NrIHVzZWQgaXQsIGJ1dCBubworICAgICAgICAgOzsgcmVw
bGFjZW1lbnQgd2FzIHByb3ZpZGVkIGFuZCBvdXRsaW5lLmVsIGl0c2VsZiBzdGlsbCBydW5zIHRo
ZSBob29rCisgICAgICAgICA7OyBpbiAxMCsgcGxhY2VzLgorICAgICAgICAgKHdpdGgtc3VwcHJl
c3NlZC13YXJuaW5ncyAoKG9ic29sZXRlIG91dGxpbmUtdmlldy1jaGFuZ2UtaG9vaykpCisgICAg
ICAgICAgIChhZGQtaG9vayAnb3V0bGluZS12aWV3LWNoYW5nZS1ob29rCisgICAgICAgICAgICAg
ICAgICAgICAjJ21hcmtkb3duLXRzLS1vdXRsaW5lLXZpZXctY2hhbmdlIG5pbCB0KSkKKworICAg
ICAgICAgKHByb2duCisgICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICdtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCkKKyAgICAgICAgICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2ZvbnQtbG9j
ay1leHRyYS1tYW5hZ2VkLXByb3BzKQorICAgICAgICAgICAoZG9saXN0IChwcm9wICcoaW52aXNp
YmxlIGRpc3BsYXkgYnV0dG9uIGNhdGVnb3J5IGFjdGlvbiBoZWxwLWVjaG8pKQorICAgICAgICAg
ICAgIChhZGQtdG8tbGlzdCAnZm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgcHJvcCkpKQor
CisgICAgICAgICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCisgICAgICAgICAgICh0
cmVlc2l0LXBhcnNlci1jcmVhdGUgJ2h0bWwpCisgICAgICAgICAgIChyZXF1aXJlICdodG1sLXRz
LW1vZGUpCisgICAgICAgICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGlu
Z3MpCisgICAgICAgICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS10cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLXNl
dHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLWZv
bnQtbG9jay1zZXR0aW5ncykpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1m
b250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICB0cmVlc2l0LWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9k
ZS0tdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKKyAgICAgICAgICAgKHNldHEtbG9j
YWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1i
ZWQgJ2h0bWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3du
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoKGh0bWxfYmxvY2spIEBodG1sKQorCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDplbWJlZCAnaHRtbAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6aG9zdCAnbWFya2Rvd24taW5saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCisKKyAgICAgICAgICh3aGVuICh0cmVlc2l0
LXJlYWR5LXAgJ3lhbWwgdCkKKyAgICAgICAgICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkKKyAg
ICAgICAgICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKKyAgICAg
ICAgICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpCisgICAg
ICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAg
ICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykp
CisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAor
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1s
aXN0CisgICAgICAgICAgICAgICAgICAgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1
cmUtbGlzdCkpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MK
KyAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICd5YW1sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6bG9jYWwgdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChtaW51
c19tZXRhZGF0YSkgQHlhbWwpKSkpKQorCisgICAgICAgICAod2hlbiAodHJlZXNpdC1yZWFkeS1w
ICd0b21sIHQpCisgICAgICAgICAgIChyZXF1aXJlICd0b21sLXRzLW1vZGUpCisgICAgICAgICAg
IChkZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCisgICAgICAgICAgIChk
ZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAo
c2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgdG9t
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAg
ICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAg
ICB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0
cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChh
cHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDplbWJlZCAndG9tbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFy
a2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorCisg
ICAgICAgICA7OyBTdXBwb3J0IGZvciBleGVjdXRpbmcgY29tbWFuZHMgaW4gYSBjb2RlLWJsb2Nr
IGNvbnRleHQuCisKKyAgICAgICAgIDs7IEVuYWJsZSB0aGUgbWlub3IgbW9kZSBgbWFya2Rvd24t
dHMtY29kZS1ibG9jay1tb2RlJyBhbmQgaXRzIGtleW1hcAorICAgICAgICAgOzsgd2hlbiBwb2lu
dCBpcyB3aXRoaW4gYSBjb2RlIGJsb2NrLgorICAgICAgICAgKGFkZC1ob29rICdwb3N0LWNvbW1h
bmQtaG9vaworICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJs
b2NrLW1vZGUgbmlsICdsb2NhbCkKKyAgICAgICAgIDs7IElmIGBzYXZlLXBsYWNlLW1vZGUnIG9y
IHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQgY291bGQgc3RhcnQgd2l0aGluIGEKKyAgICAgICAgIDs7
IGNvZGUgYmxvY2sgc28gaW5pdGlhbGl6ZSB0aGF0IHN0YXRlLgorICAgICAgICAgKHJ1bi13aXRo
LWlkbGUtdGltZXIgMC4wMSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnbWFy
a2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLW1vZGUpCisgICAgICAgICA7OyBGb3IgZWFjaCBl
bGlnaWJsZSBjb21tYW5kLCBleGVjdXRlIGl0IGluIGEgY29kZS1ibG9jayBjb250ZXh0LAorICAg
ICAgICAgOzsgb3RoZXJ3aXNlIGluIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyJ3MgY29u
dGV4dC4KKyAgICAgICAgIChhZGQtaG9vayAncHJlLWNvbW1hbmQtaG9vaworICAgICAgICAgICAg
ICAgICAgICMnbWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgbmls
ICdsb2NhbCkpKQogCiAgICh0cmVlc2l0LW1ham9yLW1vZGUtc2V0dXApCi0gIChtYXJrZG93bi10
cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKSkKKworICA7OyBEbyBu
b3QgZW5hYmxlIGBqaXQtbG9jay1tb2RlJyBpbiBpbmRpcmVjdCBidWZmZXJzIHN1Y2ggYXMgdGhl
IG9uZQorICA7OyB3ZSB1c2UgZm9yIGNvZGUgYmxvY2sgY29tbWFuZHMuCisgICh1bmxlc3MgKGJ1
ZmZlci1iYXNlLWJ1ZmZlcikKKyAgICAoaml0LWxvY2stcmVnaXN0ZXIgIydtYXJrZG93bi10cy0t
Zm9udGlmeS1iYXJlLXVyaSkpCisKKyAgKHVubGVzcyBtYXJrZG93bi10cy0tc2V0LXVwLWlubGlu
ZQorICAgIDs7IE9yZGVyIG1hdHRlcnM6IGBtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwJyBj
YWxscyBgZm9udC1sb2NrLWZsdXNoJworICAgIDs7IChvbmx5IG1lYW5pbmdmdWwgb25jZSBgdHJl
ZXNpdC1tYWpvci1tb2RlLXNldHVwJyBoYXMgd2lyZWQgdXAKKyAgICA7OyBmb250LWxvY2spLCBh
bmQgYG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZycgY2FsbHMgb3V0bGluZQorICAgIDs7IGNv
bW1hbmRzIHRoYXQgcmVseSBvbiBgb3V0bGluZS1zZWFyY2gtZnVuY3Rpb24nLCB3aGljaAorICAg
IDs7IGB0cmVlc2l0LW1ham9yLW1vZGUtc2V0dXAnIGluc3RhbGxzIGZyb20gYHRyZWVzaXQtb3V0
bGluZS1wcmVkaWNhdGUnLgorICAgIChtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwKQorICAgIDs7IFJlc3BlY3QgdGhlIHVzZXIncyBkZWZhdWx0IG91
dGxpbmUgZm9sZGluZy4KKyAgICAocGNhc2UgbWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nCisg
ICAgICAoJ3Nob3ctYWxsIChpZ25vcmUpKQorICAgICAgKCdmb2xkLWFsbCAob3V0bGluZS1oaWRl
LXN1YmxldmVscyAxKSkKKyAgICAgICgnZm9sZC1oZWFkaW5ncyAob3V0bGluZS1zaG93LWFsbCkK
KyAgICAgICAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXJlZ2lvbi1ib2R5IChwb2ludC1t
aW4pIChwb2ludC1tYXgpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLW1vZGUtaW5zdGFsbC1w
YXJzZXJzIChhcmcpCisgICJJbnN0YWxsIGBtYXJrZG93bi10cy1tb2RlJyB0cmVlLXNpdHRlciBs
YW5ndWFnZSBwYXJzZXJzLgorSWYgbmVlZGVkLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYXJzZXJz
IGZvciBgbWFya2Rvd24nIGFuZCBgbWFya2Rvd24taW5saW5lJy4KK1dpdGggYSBwcmVmaXggYXJn
dW1lbnQsIEFSRywgaWYgbmVlZGVkLCBpbnN0YWxsIHBhcnNlcnMgZm9yIGBodG1sJywKK2B5YW1s
JywgYW5kIGB0b21sJy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh1bmxlc3MgKHRyZWVzaXQt
cmVhZHktcCAnbWFya2Rvd24gdCkKKyAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1t
YXIgJ21hcmtkb3duKSkKKyAgKHVubGVzcyAodHJlZXNpdC1yZWFkeS1wICdtYXJrZG93bi1pbmxp
bmUgdCkKKyAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ21hcmtkb3duLWlu
bGluZSkpCisgICh3aGVuIGFyZworICAgICh1bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAnaHRtbCB0
KQorICAgICAgKHJlcXVpcmUgJ2h0bWwtdHMtbW9kZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwt
bGFuZ3VhZ2UtZ3JhbW1hciAnaHRtbCkpCisgICAgKHVubGVzcyAodHJlZXNpdC1yZWFkeS1wICd5
YW1sIHQpCisgICAgICAocmVxdWlyZSAneWFtbC10cy1tb2RlKQorICAgICAgKHRyZWVzaXQtaW5z
dGFsbC1sYW5ndWFnZS1ncmFtbWFyICd5YW1sKSkKKyAgICAodW5sZXNzICh0cmVlc2l0LXJlYWR5
LXAgJ3RvbWwgdCkKKyAgICAgIChyZXF1aXJlICd0b21sLXRzLW1vZGUpCisgICAgICAodHJlZXNp
dC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ3RvbWwpKSkpCiAKIDs7OyMjI2F1dG9sb2FkCiAo
ZGVmaW5lLWRlcml2ZWQtbW9kZSBtYXJrZG93bi10cy1tb2RlIHRleHQtbW9kZSAiTWFya2Rvd24i
Ci0gICJNYWpvciBtb2RlIGZvciBlZGl0aW5nIE1hcmtkb3duIHVzaW5nIHRyZWUtc2l0dGVyIGdy
YW1tYXIuIgotCi0gIChzZXRxLWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIikKLSAgKHNldHEt
bG9jYWwgY29tbWVudC1lbmQgIiAtLT4iKQotCi0gIChzZXRxLWxvY2FsIGZvbnQtbG9jay1kZWZh
dWx0cyBuaWwKLQkgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1p
dGVyIGhlYWRpbmcpCi0JCQkJCSAgICAgICAocGFyYWdyYXBoKQotCQkJCQkgICAgICAgKHBhcmFn
cmFwaC1pbmxpbmUpKSkKLQotICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0
aW5ncwotICAgICAgICAgICAgICBgKCgiSGVhZGluZ3MiICwjJ21hcmtkb3duLXRzLWltZW51LW5v
ZGUtcAotICAgICAgICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtaW1lbnUtbmFtZS1mdW5j
dGlvbikpKQotICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlICMnbWFya2Rv
d24tdHMtb3V0bGluZS1wcmVkaWNhdGUpCi0KLSAgKHdoZW4gKGFuZCAodHJlZXNpdC1lbnN1cmUt
aW5zdGFsbGVkICdtYXJrZG93bikKLSAgICAgICAgICAgICAodHJlZXNpdC1lbnN1cmUtaW5zdGFs
bGVkICdtYXJrZG93bi1pbmxpbmUpKQotICAgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtk
b3duLWlubGluZSkKLSAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikKLSAgICAo
bWFya2Rvd24tdHMtc2V0dXApKSkKKyAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFya2Rvd24g
dXNpbmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4KK05PVEU6IFNlZSBgbWFya2Rvd24tdHMtLXNldC11
cC1pbmxpbmUnLiIKKyAgKGlmIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAnbWFya2Rv
d24pCisgICAgICAgICAgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3duLWlubGlu
ZSkpCisgICAgICAobWFya2Rvd24tdHMtLXNldC11cCkKKyAgICAod2FybiAibWFya2Rvd24tdHMt
bW9kZSBjYW5ub3QgYmUgc2V0IHVwOyB1c2luZyBmdW5kYW1lbnRhbC1tb2RlLgorVGhlIHRyZWUt
c2l0dGVyIHBhcnNlcnMgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScgd2VyZSBub3Qg
Zm91bmQuCitVc2UgdGhlIGNvbW1hbmQgYG1hcmtkb3duLXRzLW1vZGUtaW5zdGFsbC1wYXJzZXJz
JyB0byBpbnN0YWxsIHRoZW0uCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBpdCBjYW4gYWxzbyBp
bnN0YWxsIG9wdGlvbmFsIHBhcnNlcnMuIikKKyAgICAoZnVuZGFtZW50YWwtbW9kZSkpKQogCiAo
ZGVyaXZlZC1tb2RlLWFkZC1wYXJlbnRzICdtYXJrZG93bi10cy1tb2RlICcobWFya2Rvd24tbW9k
ZSkpCiAKLTs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gbWFya2Rvd24tdHMtbW9kZS1tYXliZSAoKQot
ICAiRW5hYmxlIGBtYXJrZG93bi10cy1tb2RlJyB3aGVuIGl0cyBncmFtbWFyIGlzIGF2YWlsYWJs
ZS4KLUFsc28gcHJvcG9zZSB0byBpbnN0YWxsIHRoZSBncmFtbWFyIHdoZW4gYHRyZWVzaXQtZW5h
YmxlZC1tb2RlcycKLWlzIHQgb3IgY29udGFpbnMgdGhlIG1vZGUgbmFtZS4iCi0gIChkZWNsYXJl
LWZ1bmN0aW9uIHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgInRyZWVzaXQuYyIpCi0gIChp
ZiAob3IgKHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgJ21hcmtkb3duKQotICAgICAgICAg
IChlcSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMgdCkKLSAgICAgICAgICAobWVtcSAnbWFya2Rvd24t
dHMtbW9kZSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMpKQotICAgICAgKG1hcmtkb3duLXRzLW1vZGUp
Ci0gICAgKGZ1bmRhbWVudGFsLW1vZGUpKSkKKyhkZWZpbmUtbWlub3ItbW9kZSBtYXJrZG93bi10
cy1jb2RlLWJsb2NrLW1vZGUKKyAgIk1vZGUgZW5hYmxlZCBpZiBwb2ludCBpcyB3aXRoaW4gYSBm
ZW5jZWQgY29kZSBibG9jay4iCisgIDppbnRlcmFjdGl2ZSBuaWwpCiAKIDs7OyMjI2F1dG9sb2Fk
CiAod2hlbiAoYm91bmRwICd0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QpCi0gIChhZGQt
dG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxcLm1kXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUt
bWF5YmUpKQotICA7OyBUbyBiZSBhYmxlIHRvIHRvZ2dsZSBiZXR3ZWVuIGFuIGV4dGVybmFsIHBh
Y2thZ2UgYW5kIGNvcmUgdHMtbW9kZToKKyAgKGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3Qg
JygiXFwubWRcXCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCisgIChhZGQtdG8tbGlzdCAnYXV0by1t
b2RlLWFsaXN0ICcoIlxcLm1hcmtkb3duXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQorICAoYWRk
LXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZHhcXCciIC4gbWFya2Rvd24tdHMtbW9k
ZSkpCiAgIChhZGQtdG8tbGlzdCAndHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFsaXN0CiAgICAg
ICAgICAgICAgICAnKG1hcmtkb3duLW1vZGUgLiBtYXJrZG93bi10cy1tb2RlKSkpCiAKLS0gCjIu
NTMuMAoK
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 4 Apr 2026 10:48:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 04 06:48:17 2026
Received: from localhost ([127.0.0.1]:43832 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w8yY4-0007p8-Js
	for submit <at> debbugs.gnu.org; Sat, 04 Apr 2026 06:48:17 -0400
Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]:60711)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1w8yY1-0007oy-Oj
 for 80740 <at> debbugs.gnu.org; Sat, 04 Apr 2026 06:48:14 -0400
Received: by mail-ua1-x930.google.com with SMTP id
 a1e0cc1a2514c-9540bb77b1aso1132757241.1
 for <80740 <at> debbugs.gnu.org>; Sat, 04 Apr 2026 03:48:13 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1775299693; cv=none;
 d=google.com; s=arc-20240605;
 b=NbBuRC14YnXUDImkF6ONV9RDiu4KndUl2DtFyVGSeedEOeetzo/xozemNgi00AcCjx
 Em8FJ7wnUggbClO7dfMcvFiLnSVYmZrN1kkJ17ysQ5nsQzQOLvXmF/SIxdx5BXlBhUmk
 YlbZKoYAHGgpFsKm74eIIzUZX2ef5mS5VRj6huhXHKNeyfJ1hb40l7WUDRdenICu27eV
 zWkas4347YIVStBEj8TNktFOci7DeNWoDrLxB+B1sTzEH5E2N36wZr7z8DpObhFzBoyi
 q+FOUhOmkT71jYhB/qJarKf7TVVU0jpbvQ+TlhDo5YtyF+XjjfFnaqtUsuEXL7kKOLA8
 6sPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=mbRRWHBE3caUTwT0r0mLXYq6nQXArpQJKXV95+49fqw=;
 fh=/6bO49cLvtEMRvyO5AKeHUQ94xY+KQcsNazkrYpJfd8=;
 b=LD2pjdz3v5qNkdLjYhXZq9nDKyANb0ynazJF/0588sI8Q7CK86TRSqw/tcI67aD7c/
 /kLpdAFrw5L2s9zyI4CePbknocJVdd6ApNthxLTS8WhZmhWWvkZ/G0aYeXVni6x3/jI9
 L5v66Z5QZr+lwFzVBBN9XJyAOl/JCOk9RctiCaVF0pxedy1yIAmWQgRlr0DXzSWo2U3s
 We05ha3OSP9r17s3satKOmaeJ/YiuhqQxxP1sv4TbaDQdrsJGWC/xE42xxrySwLju7PT
 QPNOiBZ2FRcNXBSYiZsGvuuHWXDR8xWJB17vOhibUeE4TuhKA0hbqzuLxuwuxFvutTMN
 aEwA==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775299693; x=1775904493; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=mbRRWHBE3caUTwT0r0mLXYq6nQXArpQJKXV95+49fqw=;
 b=inSjO5N6HlUBDHFsBmKWubOsKo46tRDLena85qqpnm/XFw/+HMAoounExhLryx1oa5
 C7O4OsByWVBiu3wc5/76Exu+5Z9BEOmDGyDuHPTIdSrn42LSgeYsQMgC5wL3YJSMzxAj
 ymDCvlbN+QRPlmKSfSx5neBjB8Epk79nJHYFSYkxL3tPvC/4tlCHKCxCcyKypz/EOfb5
 SmSiA5ujASzScKLm6VNxJZ0ZEHhAXbhsgRhul4aRTUu1xfRGKZ8n7gLP0L+kEqyYxmip
 xMsIgaa2bNxWHxmLDGHIca3NenazZj4BY83ljWh9yn9YvaDTdGZMbw+fJbOnnSvBwnBY
 87Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775299693; x=1775904493;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=mbRRWHBE3caUTwT0r0mLXYq6nQXArpQJKXV95+49fqw=;
 b=FMIfzyuCLj5B0/d10vEuN4wJAGX3Gzlkq2OHwqg132h/9UmMcL/MWcOD5LmRGgrY1H
 vJ9KzoZEF9k+qJqCt4fIgMrqXokzInFct1xk6c+4SII/ANtjz4P7+A7Lb2Diaa0sVhWD
 yGt5LM6WtnMBQftoexgwyUUehFmzA8/VZu/017s4/0XMP/ZH7/eMs5bG+Xy6oV+Di/c9
 z/NKCYLTZMoFQZ3RP79ri4xLzRhWDBmrwc3w1s3MirTwQjm/dXO+mmTomzgFAJTDojki
 AxwTLYi/NWHxoxn1Tsu4RmqQ/UE1zQLCPcW7CF0tNf1dZwAKtP/74AsT8KksxXcVEdVF
 Aarg==
X-Gm-Message-State: AOJu0YwN+3hr/gr9HRmgZfAaLZPMP8KhqtGiQhOgq6wMEafL/UKen5GQ
 dVnRM2APHokCy9jvZrDYsdWab1+eSWyx1DIxO1rASu4COj+s9lJVjsRDEmkn7rEANtI6/oYX5uX
 x6nRoNlgIiDgIXZgw2squVAsg3zhOkI8=
X-Gm-Gg: AeBDiesszcBltHYKJEL60kHwQoK2sf6dvI3zfKzXUnc6IBopMvc9j6sYTlYqC2LnZWF
 JaXvSDvegrLQpehlZsPHWqPhp63qxqCyXq8z940rXPtMGEvYUw/LPM2rheQt1qXPS5Dwo4Thzso
 GEeX9t0Zw6s/IKYRXCMXL/+OMUPzwuTvWQg8d33xIL9YZsRSOj2K5qD2qI/AoZBw0Y0jBPi5iiE
 Jq+OG12XyjWQsctNRvTPL1kFeJAxtQC2Byr/vQyH1xnl0P90fs95QmhX/rKFff3sCLxSlOTaHsj
 AClV2+JW6FoqXQ+OIKMX0VgMr6XYZPjCvfMoatJzQws+w2TL4UJcJ2xUJ+ayOQY=
X-Received: by 2002:a05:6102:6044:b0:605:27db:c899 with SMTP id
 ada2fe7eead31-605a50e32f0mr2038159137.29.1775299692803; Sat, 04 Apr 2026
 03:48:12 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
In-Reply-To: <m2zf3jzamy.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Sat, 4 Apr 2026 06:48:01 -0400
X-Gm-Features: AQROBzDsS2S6kR-50JaagU7tSwAgTLt79HA8q_tJnTYkVCxgLUqiM7LummhJHCY
Message-ID: <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000008f3b2d064ea02b23"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

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

On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato <rahuljuliato@=
gmail.com>
wrote:

>
> Hello,
>
> I'm submitting a comprehensive patch that significantly improves
> 'markdown-ts-mode'. I want to briefly explain the context, as the size
> of this patch may raise concerns.
>
> When 'markdown-ts-mode' was first merged into Emacs, it was
> intentionally minimal: roughly 100 lines, just enough to get something
> working, with the expectation of incremental improvements.
>
> In recent months, as users started testing the mode, several issues were
> reported: font-lock leaking beyond code blocks, fill-paragraph merging
> list items, missing faces, non-clickable links, and lack of editing,
> navigation, and folding support. The mode worked for basic
> fontification, but was not yet suitable for regular use.
>
> I decided to put my other projects on hold and work through these
> reports one by one. What began as a set of focused fixes evolved into a
> broader rework of the mode=E2=80=99s internals. Over time, the implementa=
tion
> grew from ~100 lines to approximately 2800.
>
> This work was done in close collaboration with St=C3=A9phane Marks, whose
> reviews, patches, and discussions significantly influenced the design
> and implementation. I consider him a co-author of this work.
>
> Due to strong interdependencies, the changes could not be cleanly split
> into smaller independent patches. As a result, this is submitted as a
> single comprehensive change.
>
> Important note: there are no breaking changes.
>
> Existing behavior is preserved, and all changes are additive. Users of
> 'markdown-ts-mode' will see the same buffers, with improved correctness,
> additional features, and fewer bugs.
>
> Before describing the features, this patch also addresses several bug
> fixes:
>
> 1. fill-paragraph merged adjacent list items into a single paragraph
>    (bug#80613).
>
> 2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for
>    the rest of the session, due to modifying
>    font-lock-extra-managed-props globally instead of buffer-locally.
>    Fixed using setq-local (bug#80690).
>
> 3. Nested or indented list items were filled incorrectly due to column
>    alignment issues (bug#80625).
>
> 4. Font-lock leaked beyond code blocks due to appended range settings
>    from embedded language modes.
>
> 5. Recursive Markdown code blocks had no fontification.
>
> Some known limitations originate from the tree-sitter grammar and are
> documented in the code (e.g., HTML block handling and block quote
> embedding limitations).
>
> The mode now includes:
>
> Fontification:
> * Dedicated faces for all Markdown elements
> * Extended coverage (tables, entities, etc.)
>
> Links:
> * Clickable inline, reference, and automatic links
> * Reference resolution cache
>
> Code blocks:
> * Tree-sitter and non-tree-sitter language support
> * Embedded editing via markdown-ts-code-block-mode
>
> Editing:
> * Heading and list manipulation
> * Context-aware newline behavior
> * Structure insertion helpers
> * Checkbox toggling
>
> Navigation:
> * Imenu and outline integration
> * Heading traversal commands
>
> Fill:
> * Correct handling of lists, block quotes, and comments
>
> Visual:
> * Inline images
> * Markup hiding
> * Menu integration
>
> Additional resources for evaluation:
> * Full feature checklist:
>
> https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/featur=
es.md
>
> * Test file:
>
> https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/test.m=
d
>
> * Screenshots:
>   https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo
>
>
> Overall, this patch brings 'markdown-ts-mode' from a minimal prototype
> to a mode that is practical for everyday Markdown editing.
>
> With this foundation in place, the remaining items in the feature list
> are already in progress, and features such as exporting, HTML preview,
> and a test suite can be added with less disruption.
>
> Thank you for your time and review.
>

Adding Yuan.

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

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato &lt;<a href=3D=
"mailto:rahuljuliato@HIDDEN">rahuljuliato@HIDDEN</a>&gt; wrote:</span=
></div></div><div class=3D"gmail_quote gmail_quote_container"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><br>
Hello,<br>
<br>
I&#39;m submitting a comprehensive patch that significantly improves<br>
&#39;markdown-ts-mode&#39;. I want to briefly explain the context, as the s=
ize<br>
of this patch may raise concerns.<br>
<br>
When &#39;markdown-ts-mode&#39; was first merged into Emacs, it was<br>
intentionally minimal: roughly 100 lines, just enough to get something<br>
working, with the expectation of incremental improvements.<br>
<br>
In recent months, as users started testing the mode, several issues were<br=
>
reported: font-lock leaking beyond code blocks, fill-paragraph merging<br>
list items, missing faces, non-clickable links, and lack of editing,<br>
navigation, and folding support. The mode worked for basic<br>
fontification, but was not yet suitable for regular use.<br>
<br>
I decided to put my other projects on hold and work through these<br>
reports one by one. What began as a set of focused fixes evolved into a<br>
broader rework of the mode=E2=80=99s internals. Over time, the implementati=
on<br>
grew from ~100 lines to approximately 2800.<br>
<br>
This work was done in close collaboration with St=C3=A9phane Marks, whose<b=
r>
reviews, patches, and discussions significantly influenced the design<br>
and implementation. I consider him a co-author of this work.<br>
<br>
Due to strong interdependencies, the changes could not be cleanly split<br>
into smaller independent patches. As a result, this is submitted as a<br>
single comprehensive change.<br>
<br>
Important note: there are no breaking changes.<br>
<br>
Existing behavior is preserved, and all changes are additive. Users of<br>
&#39;markdown-ts-mode&#39; will see the same buffers, with improved correct=
ness,<br>
additional features, and fewer bugs.<br>
<br>
Before describing the features, this patch also addresses several bug<br>
fixes:<br>
<br>
1. fill-paragraph merged adjacent list items into a single paragraph<br>
=C2=A0 =C2=A0(bug#80613).<br>
<br>
2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for<br>
=C2=A0 =C2=A0the rest of the session, due to modifying<br>
=C2=A0 =C2=A0font-lock-extra-managed-props globally instead of buffer-local=
ly.<br>
=C2=A0 =C2=A0Fixed using setq-local (bug#80690).<br>
<br>
3. Nested or indented list items were filled incorrectly due to column<br>
=C2=A0 =C2=A0alignment issues (bug#80625).<br>
<br>
4. Font-lock leaked beyond code blocks due to appended range settings<br>
=C2=A0 =C2=A0from embedded language modes.<br>
<br>
5. Recursive Markdown code blocks had no fontification.<br>
<br>
Some known limitations originate from the tree-sitter grammar and are<br>
documented in the code (e.g., HTML block handling and block quote<br>
embedding limitations).<br>
<br>
The mode now includes:<br>
<br>
Fontification:<br>
* Dedicated faces for all Markdown elements<br>
* Extended coverage (tables, entities, etc.)<br>
<br>
Links:<br>
* Clickable inline, reference, and automatic links<br>
* Reference resolution cache<br>
<br>
Code blocks:<br>
* Tree-sitter and non-tree-sitter language support<br>
* Embedded editing via markdown-ts-code-block-mode<br>
<br>
Editing:<br>
* Heading and list manipulation<br>
* Context-aware newline behavior<br>
* Structure insertion helpers<br>
* Checkbox toggling<br>
<br>
Navigation:<br>
* Imenu and outline integration<br>
* Heading traversal commands<br>
<br>
Fill:<br>
* Correct handling of lists, block quotes, and comments<br>
<br>
Visual:<br>
* Inline images<br>
* Markup hiding<br>
* Menu integration<br>
<br>
Additional resources for evaluation:<br>
* Full feature checklist:<br>
=C2=A0 <a href=3D"https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/br=
anch/main/features.md" rel=3D"noreferrer" target=3D"_blank">https://codeber=
g.org/LionyxML/markdown-ts-mode-lab/src/branch/main/features.md</a><br>
<br>
* Test file:<br>
=C2=A0 <a href=3D"https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/br=
anch/main/test.md" rel=3D"noreferrer" target=3D"_blank">https://codeberg.or=
g/LionyxML/markdown-ts-mode-lab/src/branch/main/test.md</a><br>
<br>
* Screenshots:<br>
=C2=A0 <a href=3D"https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/br=
anch/main/demo" rel=3D"noreferrer" target=3D"_blank">https://codeberg.org/L=
ionyxML/markdown-ts-mode-lab/src/branch/main/demo</a><br>
<br>
<br>
Overall, this patch brings &#39;markdown-ts-mode&#39; from a minimal protot=
ype<br>
to a mode that is practical for everyday Markdown editing.<br>
<br>
With this foundation in place, the remaining items in the feature list<br>
are already in progress, and features such as exporting, HTML preview,<br>
and a test suite can be added with less disruption.<br>
<br>
Thank you for your time and review.<br></blockquote><div><br></div><div cla=
ss=3D"gmail_default" style=3D"font-family:monospace">Adding Yuan.</div></di=
v></div>

--0000000000008f3b2d064ea02b23--




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

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


Received: (at submit) by debbugs.gnu.org; 4 Apr 2026 03:07:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 03 23:07:36 2026
Received: from localhost ([127.0.0.1]:38879 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w8rMG-0001oO-0p
	for submit <at> debbugs.gnu.org; Fri, 03 Apr 2026 23:07:36 -0400
Received: from lists.gnu.org ([2001:470:142::17]:41402)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1w8rMD-0001na-SD
 for submit <at> debbugs.gnu.org; Fri, 03 Apr 2026 23:07:34 -0400
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 <rahuljuliato@HIDDEN>)
 id 1w8rM6-0003Mj-7Z
 for bug-gnu-emacs@HIDDEN; Fri, 03 Apr 2026 23:07:26 -0400
Received: from mail-vk1-xa2e.google.com ([2607:f8b0:4864:20::a2e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <rahuljuliato@HIDDEN>)
 id 1w8rM3-0003jD-SB
 for bug-gnu-emacs@HIDDEN; Fri, 03 Apr 2026 23:07:25 -0400
Received: by mail-vk1-xa2e.google.com with SMTP id
 71dfb90a1353d-5673804da95so983934e0c.0
 for <bug-gnu-emacs@HIDDEN>; Fri, 03 Apr 2026 20:07:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775272042; x=1775876842; darn=gnu.org;
 h=mime-version:message-id:date:subject:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=7jZ5KUux4+VUlvSnyvO5Aoy+6V9lhUn3TAFazshgauc=;
 b=V8ZNBIz6K9uhfafO9iNd+MbOjVneh+cnzsxBhwTavb/q2Uv20NEj+zNUxLm6Oi6Dv6
 6FS9Iw6fogmQ2E9YnWlgq8KPaelN5ZoUI7/fyjT2YnoGM0U3nxfZ6lEQ6k0S7p7jXW+u
 LITqxlFMzCfPVVbMzW8UU4a02VOYpZ5PMg5vvGcYzEaG4qePDMNurQDoVPMoeEqqnkG+
 vpTyN++hpv5xUb19IKcaZA6cUsan5F+OZjO+IAAH/LyF0sPXguySG4Q1YjdU1Mk2ghEb
 3TUQEtTMZSW8Jj+5sIlUsJN2RFRJn0Q+UzM8hBeieKgNxkoN1oRv7/7Et3h2SJvo/2XF
 htPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775272042; x=1775876842;
 h=mime-version:message-id:date:subject:to:from:x-gm-gg
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=7jZ5KUux4+VUlvSnyvO5Aoy+6V9lhUn3TAFazshgauc=;
 b=r6rxtChkRcWQyzUZdwj6D9gEQP0brNSUm13TSnG6tzPuHIasYo2DBKL8i7uAV6Qiul
 nHev7/fFwnbfMz9s4Y7f2gBL6cOQCKZppLLLRIfA58HG2Dpq4r0CKaw+97cFtsRo1kZX
 GHej1nfeZ6Em+SJh0/F3TrMKYA/0muEnRT+217m45yOPz3LGSEVPSv3tFX9bXoyKYMbS
 Ub3soqo9VuTanz5+fskPdnn56oWgfSWi7vU5FBqd7YSZvOt1kB4puj4k9JANGWtah6Ok
 O6TKAt7zgXczByS26YzmqPftsgQPfqDY+9m9zxq3Bm0pU7cjmY+h98RMU9zXSfArj7fb
 K6jw==
X-Gm-Message-State: AOJu0YxI0340Z940CcFppsREOyBAS6VJmTSDV/3nfRcHJcbnkqNCXIDc
 N/PI5Y8yPZT1wdpSrgNz794XRnywN6u1aoD6TqJPQ5pNJmaIOqB5ab0CnuFi7w==
X-Gm-Gg: AeBDievxsZyUaHO49aGqMjT7Ny8uRxpFgzpbm1Dsq+5Z8+t2XXcsoHfTfUNwisbgw8T
 10Tn720/eMrVBGd7Z9dnCzXQycnjtGy1nQnW8/OTIKnatLdUElBcWBRFbz7jpdkTTa7TTbct8WS
 kU7N6JQzv0Z3lpZqmkhQk3LdgvUpb7MwlSDouor6CY6tm3RNnlYEduSkXEn93v3DagLQyMNbLOU
 rb/5VMzoVFpNPsCHTdKFHOPkg+P4vcZ5iak0n4z8TGQacvyxm+lqvsigMLkI+1NytH+lc31vFEN
 6zNR8YTFRY4OfVTT87hFc7vRwn7JOgQrOA+HcRvAYM9TSSuSJfI1fPnVU3PvtR9uFM5xLnCCBo+
 Xr2ipYHpWeHw3WOVFntGj91xy7cTUF/D5t2f6YucyhZb/XWjS1p6kE18LuyvouZ1sc1rUHIKHho
 /WFT6xvqAnXxi8I/PLl0/bgD/X/2OPTRd588KFhFGek0Ggw2HgGtgoa4pPigBiLS82bnxfxN+9d
 ERgCDyNFIWDbVoZhXQ0dMAo95LlVWDPu/gOn/Jb2mJhHA==
X-Received: by 2002:a05:6123:105:b0:56c:d753:db14 with SMTP id
 71dfb90a1353d-56dab9e45b1mr1784250e0c.14.1775272041631; 
 Fri, 03 Apr 2026 20:07:21 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-37.dial-up.telesp.net.br.
 [201.93.59.37]) by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56d9baff553sm8493084e0c.8.2026.04.03.20.07.19
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 03 Apr 2026 20:07:20 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 31.0.50; Improve 'markdown-ts-mode'
X-Debbugs-Cc: 
Date: Sat, 04 Apr 2026 00:07:17 -0300
Message-ID: <m2zf3jzamy.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Received-SPF: pass client-ip=2607:f8b0:4864:20::a2e;
 envelope-from=rahuljuliato@HIDDEN; helo=mail-vk1-xa2e.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Debbugs-Envelope-To: submit
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>

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


Hello,

I'm submitting a comprehensive patch that significantly improves
'markdown-ts-mode'. I want to briefly explain the context, as the size
of this patch may raise concerns.

When 'markdown-ts-mode' was first merged into Emacs, it was
intentionally minimal: roughly 100 lines, just enough to get something
working, with the expectation of incremental improvements.

In recent months, as users started testing the mode, several issues were
reported: font-lock leaking beyond code blocks, fill-paragraph merging
list items, missing faces, non-clickable links, and lack of editing,
navigation, and folding support. The mode worked for basic
fontification, but was not yet suitable for regular use.

I decided to put my other projects on hold and work through these
reports one by one. What began as a set of focused fixes evolved into a
broader rework of the mode=E2=80=99s internals. Over time, the implementati=
on
grew from ~100 lines to approximately 2800.

This work was done in close collaboration with St=C3=A9phane Marks, whose
reviews, patches, and discussions significantly influenced the design
and implementation. I consider him a co-author of this work.

Due to strong interdependencies, the changes could not be cleanly split
into smaller independent patches. As a result, this is submitted as a
single comprehensive change.

Important note: there are no breaking changes.

Existing behavior is preserved, and all changes are additive. Users of
'markdown-ts-mode' will see the same buffers, with improved correctness,
additional features, and fewer bugs.

Before describing the features, this patch also addresses several bug
fixes:

1. fill-paragraph merged adjacent list items into a single paragraph
   (bug#80613).

2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for
   the rest of the session, due to modifying
   font-lock-extra-managed-props globally instead of buffer-locally.
   Fixed using setq-local (bug#80690).

3. Nested or indented list items were filled incorrectly due to column
   alignment issues (bug#80625).

4. Font-lock leaked beyond code blocks due to appended range settings
   from embedded language modes.

5. Recursive Markdown code blocks had no fontification.

Some known limitations originate from the tree-sitter grammar and are
documented in the code (e.g., HTML block handling and block quote
embedding limitations).

The mode now includes:

Fontification:
* Dedicated faces for all Markdown elements
* Extended coverage (tables, entities, etc.)

Links:
* Clickable inline, reference, and automatic links
* Reference resolution cache

Code blocks:
* Tree-sitter and non-tree-sitter language support
* Embedded editing via markdown-ts-code-block-mode

Editing:
* Heading and list manipulation
* Context-aware newline behavior
* Structure insertion helpers
* Checkbox toggling

Navigation:
* Imenu and outline integration
* Heading traversal commands

Fill:
* Correct handling of lists, block quotes, and comments

Visual:
* Inline images
* Markup hiding
* Menu integration

Additional resources for evaluation:
* Full feature checklist:
  https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/featur=
es.md

* Test file:
  https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/test.md

* Screenshots:
  https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo


Overall, this patch brings 'markdown-ts-mode' from a minimal prototype
to a mode that is practical for everyday Markdown editing.

With this foundation in place, the remaining items in the feature list
are already in progress, and features such as exporting, HTML preview,
and a test suite can be added with less disruption.

Thank you for your time and review.

--
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSBmZTcwZWE5ZjE3YjI1OTA2NjM4MzE1MGVmZGRjYTQ3YTA2Yjc1NmE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYW5kIGEgbW9kZSBt
ZW51LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsOiBFeHBhbmQgQ29tbWVu
dGFyeSB3aXRoCmRvY3VtZW50YXRpb24gZm9yIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMsIGNv
ZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUtc2l0
dGVyIGdyYW1tYXIKYnVncy4KKG1hcmtkb3duLXRzKTogTmV3IGN1c3RvbWl6YXRpb24gZ3JvdXAg
d2l0aCA6dmVyc2lvbiBhbmQKOnBhY2thZ2UtdmVyc2lvbiB0YWdzLgoobWFya2Rvd24tdHMtaGlk
ZS1tYXJrdXApOiBBZGQgOnZlcnNpb24gYW5kIDpwYWNrYWdlLXZlcnNpb24uCihtYXJrZG93bi10
cy1lbGxpcHNpcyk6IE5ldyBvcHRpb24gZm9yIGZvbGRlZCBoZWFkaW5nIGVsbGlwc2lzLgoobWFy
a2Rvd24tdHMtbWVudS1iYXItc2hvdyk6IE5ldyBvcHRpb24gdG8gdG9nZ2xlIG1vZGUgbWVudS4K
KG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZyk6IE5ldyBvcHRpb24gZm9yIGRlZmF1bHQgZm9s
ZApsZXZlbC4KKG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpOiBOZXcgb3B0aW9uIHRvIGRpc3Bs
YXkgaW5saW5lCmltYWdlcy4KKG1hcmtkb3duLXRzLWltYWdlLW1heC13aWR0aCk6IE5ldyBvcHRp
b24gZm9yIGltYWdlIG1heCB3aWR0aC4KKG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGlu
ZS1pbWFnZXMpOiBOZXcgb3B0aW9uIGZvcgpyZW1vdGUgaW1hZ2UgaGFuZGxpbmcuCihtYXJrZG93
bi10cy1jaGVja2VkLWNoZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgY2hlY2tlZCBjaGVja2JveApk
aXNwbGF5IHN0cmluZy4KKG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRp
b24gZm9yIHVuY2hlY2tlZApjaGVja2JveCBkaXNwbGF5IHN0cmluZy4KKG1hcmtkb3duLXRzLXRo
ZW1hdGljLWJyZWFrLWNoYXJhY3Rlcik6IE5ldyBvcHRpb24gZm9yIHRoZW1hdGljCmJyZWFrIGRp
c3BsYXkgY2hhcmFjdGVyLgoobWFya2Rvd24tdHMtZW1waGFzaXMsIG1hcmtkb3duLXRzLWJvbGQp
CihtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoLCBtYXJrZG93bi10cy1saW5rKQoobWFya2Rvd24t
dHMtbGluay1kZXN0aW5hdGlvbiwgbWFya2Rvd24tdHMtY29kZS1zcGFuKQoobWFya2Rvd24tdHMt
Y29kZS1ibG9jaywgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuKQoobWFya2Rv
d24tdHMtaW5kZW50ZWQtY29kZS1ibG9jaywgbWFya2Rvd24tdHMtaHRtbC10YWcpCihtYXJrZG93
bi10cy1odG1sLWJsb2NrLCBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaykKKG1hcmtkb3duLXRz
LWVudGl0eS1yZWZlcmVuY2UpCihtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVu
Y2UsIG1hcmtkb3duLXRzLWxhdGV4KQoobWFya2Rvd24tdHMtdGFibGUtaGVhZGVyLCBtYXJrZG93
bi10cy10YWJsZS1jZWxsKQoobWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwsIG1hcmtk
b3duLXRzLXRhc2stdW5jaGVja2VkKQoobWFya2Rvd24tdHMtdGFzay1jaGVja2VkKTogTmV3IGZh
Y2VzLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2Rlcyk6IE5ldyB2YXJpYWJsZSByZXBsYWNp
bmcKbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbWFwIGFuZAptYXJrZG93bi10cy1j
b2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1hcCB3aXRoIHVuaWZpZWQgbGFuZ3VhZ2UgdG8KbW9kZSBt
YXBwaW5nIGluY2x1ZGluZyBoZXVyaXN0aWMgbG9va3VwLgoobWFya2Rvd24tdHMtLW1ha2UtbGlu
ay1idXR0b24pOiBOZXcgZnVuY3Rpb24gdG8gY3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMg
d2l0aCBtYWlsdG8sIGJyb3dzZS11cmwsIGFuZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93
bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVz
IGxpbmsgZGVzdGluYXRpb25zIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1s
aW5rLXJlZi1jYWNoZSwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93
bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMsCm1hcmtkb3duLXRzLS1yZXNvbHZlLWxpbmstcmVm
KTogTmV3IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb24KY2FjaGUgd2l0aCBjYXNlLWluc2Vuc2l0
aXZlIG1hdGNoaW5nIHBlciBDb21tb25NYXJrIHNwZWMuCihtYXJrZG93bi10cy0tZm9udGlmeS1s
aW5rLW5vZGUpOiBOZXcgZm9udGlmaWVyIGZvciBpbmxpbmUsCnJlZmVyZW5jZSwgc2hvcnRjdXQs
IGFuZCBjb2xsYXBzZWQgbGlua3MgYXMgY2xpY2thYmxlIGJ1dHRvbnMuCihtYXJrZG93bi10cy0t
Zm9udGlmeS1hdXRvbGluayk6IE5ldyBmb250aWZpZXIgZm9yIFVSSSBhbmQgZW1haWwKYXV0b2xp
bmtzIHdpdGggYW5nbGUgYnJhY2tldCBoaWRpbmcuCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5r
LXJlZi1sYWJlbCkKKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRlc3RpbmF0aW9uKTog
TmV3IGZvbnRpZmllcnMgZm9yCmxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgoobWFya2Rvd24t
dHMtLWxhdGV4LWJsb2NrLXZhbGlkLXApCihtYXJrZG93bi10cy0tZm9udGlmeS1sYXRleC1ibG9j
ayk6IE5ldyBMYVRlWC9tYXRoIGZvbnRpZmllcgp3aXRoIGNyb3NzLXBhcmFncmFwaCB2YWxpZGF0
aW9uLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSk6IE5ldyBmb250aWZp
ZXIgdGhhdApoaWRlcyBiYWNrc2xhc2ggaW4gZXNjYXBlcyBleGNlcHQgaW5zaWRlIExhVGVYIGJs
b2Nrcy4KKG1hcmtkb3duLXRzLS1kZWNvZGUtZW50aXR5LCBtYXJrZG93bi10cy0tZm9udGlmeS1l
bnRpdHkpOiBOZXcKSFRNTCBlbnRpdHkgZGVjb2RlciBhbmQgZm9udGlmaWVyIHVzaW5nIG9yZy1l
bnRpdGllcyBhbmQKc2dtbC1jaGFyLW5hbWVzIHdpdGggZGlzcGxheSBwcm9wZXJ0eSBmb3IgZGVj
b2RlZCB2YWx1ZXMuCihtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2JveCk6IE5ldyBmb250aWZp
ZXIgc2hvd2luZyBVbmljb2RlCmNoZWNrYm94IHN5bWJvbHMgd2hlbiBtYXJrdXAgaXMgaGlkZGVu
LgoobWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspOiBOZXcgZm9udGlmaWVyIHNo
b3dpbmcKaG9yaXpvbnRhbCBsaW5lIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRz
LS1mb250aWZ5LWNvZGUtYmxvY2spOiBOZXcgZm9udGlmaWVyIGFwcGx5aW5nCmJhY2tncm91bmQg
b3ZlcmxheSB0byBjb2RlIGJsb2NrcyB3aXRoIGxhbmd1YWdlIGFuZCBtb2RlCnByb3BlcnRpZXMu
CihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWF0LXApCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxh
bmd1YWdlLWF0KQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vzc29y
cyBmb3IgY29kZSBibG9jawpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1lbnUt
Y29kZS1ibG9jay1ub2RlLXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRldGVj
dGlvbi4KKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXApCihtYXJrZG93bi10cy0t
Zm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0YW5kYWxvbmUg
YW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHApCiht
YXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMtLWZvbnRpZnkt
YmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEgaml0LWxvY2sg
dXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncyk6
IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJzLCBhbmQgbmV3
IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxlbWVudHMuCiht
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCihtYXJrZG93bi10cy0tY29kZS1ibG9j
ay1ub24tdHMtbW9kZXMpOiBOZXcgYnVmZmVyLWxvY2FsIGFsaXN0cwpmb3IgY29kZSBibG9jayBs
YW5ndWFnZSB0cmFja2luZy4KKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25m
aWd1cmF0aW9uKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29u
ZmlncyB3aXRoIGRlbGF5LW1vZGUtaG9va3MuCihtYXJrZG93bi10cy0tY29uZmlndXJlLWN1cnJl
bnQtYnVmZmVyKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRzLS1hZGQtY29uZmlnLWZvci1tb2Rl
OyBkaXNhYmxlIHJhbmdlIHNldHRpbmdzIGFwcGVuZAp0byBwcmV2ZW50IGZvbnQtbG9jayBsZWFr
aW5nLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUpOiBOZXcgaGVscGVyIGV4dHJhY3Rp
bmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9jb250ZW50IG5vZGUuCihtYXJrZG93
bi10cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10
cmVlLXNpdHRlciBtb2RlcyB2aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93
bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlz
dGljIG1vZGUgbmFtZSBwcm9iaW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3Vh
Z2UpOiBSZW5hbWVkIGZyb20KbWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFn
ZSB3aXRoIHN1cHBvcnQgZm9yIG5vbi10cwptb2RlcyBhbmQgcmVjdXJzaXZlIG1hcmtkb3duIGhh
bmRsaW5nLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stdGhpbmctY29tbWFuZHMpCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1j
b21tYW5kcyk6IE5ldyBjb21tYW5kIGxpc3RzIGZvcgpjb2RlLWJsb2NrIGNvbnRleHQgZXhlY3V0
aW9uLgoobWFya2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLW1vZGUpCihtYXJrZG93bi10cy0t
bWF5YmUtcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2Nr
LXhyZWYtZmluZC1kZWZpbml0aW9ucykKKG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2Rl
LWJsb2NrKTogTmV3IGNvZGUgYmxvY2sgbWlub3IKbW9kZSB3aXRoIGluZGlyZWN0IGJ1ZmZlciBj
b21tYW5kIGRpc3BhdGNoLgoobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKTogVXBkYXRlIHJh
bmdlIGNvbmZpZ3VyYXRpb24uCihtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQoo
bWFya2Rvd24tdHMtLW91dGxpbmUtdmlldy1jaGFuZ2UpOiBOZXcgaGVscGVycyBmb3IgaW1hZ2UK
b3ZlcmxheSBtYW5hZ2VtZW50IGR1cmluZyBvdXRsaW5lIGZvbGQvdW5mb2xkLgoobWFya2Rvd24t
dHMtLXNldC1oaWRlLW1hcmt1cCk6IENsZWFyIGltYWdlIG92ZXJsYXlzIHdoZW4KdG9nZ2xpbmcg
bWFya3VwIHZpc2liaWxpdHkuCihtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMpCihtYXJr
ZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcyk6IE5ldyBmdW5jdGlvbnMgZm9yIHRvZ2dsaW5n
CmlubGluZSBpbWFnZSBkaXNwbGF5LgoobWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1s
ZXZlbCk6IE5ldyBjb25zdGFudC4KKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50LCBtYXJr
ZG93bi10cy0taGVhZGluZy1sZXZlbCkKKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KTog
TmV3IGhlYWRpbmcgbmF2aWdhdGlvbiBoZWxwZXJzLgoobWFya2Rvd24tdHMtcHJvbW90ZSwgbWFy
a2Rvd24tdHMtZGVtb3RlKTogTmV3IGNvbW1hbmRzIGZvcgpoZWFkaW5nIGFuZCBsaXN0IGl0ZW0g
cHJvbW90aW9uL2RlbW90aW9uIHdpdGggcmVnaW9uIHN1cHBvcnQuCihtYXJrZG93bi10cy0tcHJv
bW90ZS1vci1kZW1vdGUpCihtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uKTog
TmV3IGhlYWRpbmcgbGV2ZWwKYWRqdXN0bWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1tb3Zl
LXN1YnRyZWUtdXAsIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duKToKTmV3IGNvbW1hbmRz
IGZvciBtb3Zpbmcgc2VjdGlvbnMgYW5kIGxpc3QgaXRlbXMuCihtYXJrZG93bi10cy0tc2VjdGlv
bi1mb2xkZWQtcCkKKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93bik6IE5ldyBz
dWJ0cmVlIG1vdmUgd2l0aApmb2xkaW5nIHN0YXRlIHByZXNlcnZhdGlvbi4KKG1hcmtkb3duLXRz
LXRvZ2dsZS1jaGVja2JveCk6IE5ldyBjb21tYW5kIHRvIHRvZ2dsZSB0YXNrIGxpc3QKY2hlY2ti
b3hlcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpOiBOZXcgaGVscGVyIHdpdGgg
YmxvY2sgcXVvdGUKbWFya2VyIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtLWxpc3QtbWFya2VyLXdp
ZHRoLCBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXJlZ2lvbikKKG1hcmtkb3duLXRzLS1saXN0LW9y
ZGVyZWQtaXRlbS1wKTogTmV3IGxpc3QgaXRlbSBoZWxwZXJzLgoobWFya2Rvd24tdHMtLWxpc3Qt
cHJvbW90ZS1vci1kZW1vdGUpOiBOZXcgZnVuY3Rpb24gd2l0aCBvcmRlcmVkCmxpc3QgbmVzdGlu
ZyBndWFyZC4KKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sLCBtYXJrZG93bi10cy0tbGlzdC1t
b3ZlKTogTmV3IGxpc3QKaXRlbSBtb3ZlbWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1yZW51
bWJlci1saXN0KTogTmV3IGNvbW1hbmQgZm9yIHNlcXVlbnRpYWwgbGlzdApyZW51bWJlcmluZyB3
aXRoIHByZWZpeCBhcmd1bWVudCBzdXBwb3J0LgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXct
bWFya2VyKQoobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxpbmUpOiBOZXcgbWFya2VyIHN0
cmluZyBnZW5lcmF0b3JzCmZvciBsaXN0IGl0ZW0gaW5zZXJ0aW9uLgoobWFya2Rvd24tdHMtLWxp
bmUtYmxvY2stcXVvdGUtZGVwdGgpOiBOZXcgaGVscGVyIGNvdW50aW5nIGJsb2NrCnF1b3RlIGRl
cHRoLgoobWFya2Rvd24tdHMtbmV3bGluZSk6IE5ldyBSRVQgY29tbWFuZCBmb3IgY29udGV4dC1h
d2FyZQpuZXdsaW5lLgoobWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSk6IE5ldyBNLVJFVCBj
b21tYW5kIHRoYXQgY3JlYXRlcyBhCm5ldyBsaXN0IGl0ZW0uCihtYXJrZG93bi10cy0tZmlsbC11
bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5KTogTmV3IHRyZWUtc2l0dGVyCnF1ZXJ5IGZvciB1bmZpbGxh
YmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4pOiBOZXcgaGVs
cGVyIGZvciBsaXN0IGl0ZW0KdGV4dCBhbGlnbm1lbnQuCihtYXJrZG93bi10cy0tZmlsbC1saXN0
LWl0ZW0pOiBOZXcgZnVuY3Rpb24gZmlsbGluZyB3aXRoaW4gbGlzdAppdGVtcyB3aXRob3V0IG1l
cmdpbmcgYWRqYWNlbnQgaXRlbXMuCihtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCk6IE5ldyBh
ZGFwdGl2ZSBmaWxsIGZ1bmN0aW9uIGZvcgpsaXN0IGl0ZW0gY29udGludWF0aW9uLgoobWFya2Rv
d24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgpOiBOZXcgcGFyYWdyYXBoIG1vdGlvbgpyZXNw
ZWN0aW5nIGxpc3QgaXRlbXMgYW5kIHVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMtZmls
bC1wYXJhZ3JhcGgpOiBOZXcgZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gd2l0aApjb25kKiBkaXNw
YXRjaCBmb3IgbGlzdHMsIGJsb2NrIHF1b3RlcywgSFRNTCBjb21tZW50cywgYW5kCnVuZmlsbGFi
bGUgYmxvY2tzLgoobWFya2Rvd24tdHMtLWZpbGwtaHRtbC1jb21tZW50KTogTmV3IEhUTUwgY29t
bWVudCBmaWxsZXIgd2l0aApjb250aW51YXRpb24gYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWJs
b2NrLXF1b3RlLXByZWZpeCk6IE5ldyBoZWxwZXIgcHJlc2VydmluZwpleGlzdGluZyBibG9jayBx
dW90ZSBtYXJrZXIgc3R5bGUuCihtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSk6IE5ldyBi
bG9jayBxdW90ZSBmaWxsZXIgd2l0aApsaXN0IGl0ZW0gdGV4dCBjb2x1bW4gYWxpZ25tZW50Lgoo
bWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QpOiBOZXcgYWxpc3Qgb2YgZW1waGFzaXMgbWFya2Vy
cy4KKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KTogTmV3IHRyZWUtc2l0dGVy
IGJhc2VkCmVtcGhhc2lzIGRldGVjdGlvbi4KKG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNpcyk6
IE5ldyBjb21tYW5kIHJlbW92aW5nIGVtcGhhc2lzIGF0CnBvaW50IG9yIHJlZ2lvbi4KKG1hcmtk
b3duLXRzLWVtcGhhc2l6ZSk6IE5ldyBpbnRlcmFjdGl2ZSBlbXBoYXNpcyBpbnNlcnRpb24gd2l0
aApyZWdpb24gd3JhcHBpbmcgYW5kIHdvcmQtYXQtcG9pbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRz
LWluc2VydC1zdHJ1Y3R1cmUpOiBOZXcgY29tbWFuZCBmb3IgaW5zZXJ0aW5nIGNvZGUKYmxvY2tz
LCBibG9jayBxdW90ZXMsIGFuZCBkaXZpZGVycy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1i
bG9jayk6IE5ldyBmdW5jdGlvbiB3aXRoIGxhbmd1YWdlCmNvbXBsZXRpb24gZnJvbSBrbm93biBt
b2Rlcy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUpOiBOZXcgZnVuY3Rpb24gd2l0
aCByZWdpb24Kd3JhcHBpbmcuCihtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpOiBOZXcgZnVu
Y3Rpb24gZm9yIGhvcml6b250YWwKcnVsZXMuCihtYXJrZG93bi10cy0tYXBwbHktZWxsaXBzaXMp
OiBOZXcgZnVuY3Rpb24gYXBwbHlpbmcgY3VzdG9tCmVsbGlwc2lzIHZpYSBkaXNwbGF5IHRhYmxl
LgoobWFya2Rvd24tdHMtLXNldC11cCk6IFJlbmFtZWQgZnJvbSBtYXJrZG93bi10cy1zZXR1cDsg
cmVnaXN0ZXIKaml0LWxvY2sgZm9yIGJhcmUgVVJJIGZvbnRpZmljYXRpb247IG1hbmFnZQpmb250
LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcyBsb2NhbGx5LgoobWFya2Rvd24tdHMtb3V0bGluZS1j
eWNsZSk6IE5ldyBUQUIgY29tbWFuZCBjeWNsaW5nIG91dGxpbmUKdmlzaWJpbGl0eSBvbiBoZWFk
aW5ncy4KKG1hcmtkb3duLXRzLW1vZGUtbWFwKTogTmV3IGtleW1hcCB3aXRoIFJFVCBib3VuZCB0
bwptYXJrZG93bi10cy1uZXdsaW5lIChjb250ZXh0LWF3YXJlIGNvbnRpbnVhdGlvbiksIE0tUkVU
IGJvdW5kIHRvCm1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gKGV4cGxpY2l0IG5ldyBpdGVt
IGNyZWF0aW9uKSwgYW5kCmJpbmRpbmdzIGZvciBoZWFkaW5nIG5hdmlnYXRpb24sIHN0cnVjdHVy
ZSBlZGl0aW5nLCBlbXBoYXNpcywKYW5kIGxpc3Qgb3BlcmF0aW9ucy4KKG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZS1tYXApOiBOZXcga2V5bWFwIGZvciBjb2RlIGJsb2NrCmNvbnRleHQgd2l0
aCBpbmRlbnQsIGNvbW1lbnQsIHhyZWYsIGZpbGwsIGFuZCBNLVJFVCBiaW5kaW5nczsKb3ZlcnJp
ZGVzIGJvdGggUkVUIGFuZCBNLVJFVCB0bwplbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRl
bnQgdG8gcHJldmVudCBsaXN0IG1hcmtlcnMgaW5zaWRlCmNvZGUgYmxvY2tzLgoobWFya2Rvd24t
dHMtbW9kZS1tZW51KTogTmV3IG1lbnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFk
aW5ncywgRWRpdCBTdHJ1Y3R1cmUsIGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMt
bW9kZSk6IEFkZCBvdXRsaW5lLW1pbm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBh
cmFncmFwaCBpbnRlZ3JhdGlvbiwgY29kZS1ibG9jay1tb2RlIGhvb2tzLCBjb21tZW50CnNldHRp
bmdzLCBhbmQgb3V0bGluZS12aWV3LWNoYW5nZS1ob29rLgoobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1tb2RlKTogTmV3IG1pbm9yIG1vZGUgZm9yIGNvZGUgYmxvY2sKY29udGV4dC4KKG1hcmtkb3du
LXRzLW1vZGUtbWF5YmUpOiBVcGRhdGUgZG9jc3RyaW5nLgpBdXRvLW1vZGUtYWxpc3Q6IEFkZCAu
bWFya2Rvd24gYW5kIC5tZHggZXh0ZW5zaW9ucy4KSW5jbHVkZXMgZml4ZXMgZm9yOiAoYnVnIzgw
NjEzKSAoYnVnIzgwNjI1KSAoYnVnIzgwNjkwKQoKQ28tYXV0aG9yZWQtYnk6IFN0w6lwaGFuZSBN
YXJrcyA8c2hpcG1pbnRzQGdtYWlsLmNvbT4KLS0tCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsIHwgMjY3OCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hh
bmdlZCwgMjQ5OSBpbnNlcnRpb25zKCspLCAxNzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbCBiL2xpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUuZWwKaW5kZXggNjU3ZDZiYzQ2NmQuLjZmZTNmNzc2MDFhIDEwMDY0NAotLS0g
YS9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCisrKyBiL2xpc3AvdGV4dG1vZGVz
L21hcmtkb3duLXRzLW1vZGUuZWwKQEAgLTIsMTAgKzIsMTIgQEAKIAogOzsgQ29weXJpZ2h0IChD
KSAyMDI0LTIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKLTs7IEF1dGhvciAg
ICAgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Ci07OyBN
YWludGFpbmVyIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwuY29t
PgotOzsgQ3JlYXRlZCAgICA6IEFwcmlsIDIwMjQKLTs7IEtleXdvcmRzICAgOiBtYXJrZG93biBt
ZCBsYW5ndWFnZXMgdHJlZS1zaXR0ZXIKKzs7IEF1dGhvciAgICAgICAgICAgOiBSYWh1bCBNYXJ0
aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBNYWludGFpbmVyICAgICAg
IDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwuY29tPgorOzsgQ3Jl
YXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNpb24gICAgICAgICAgOiAgMS4wCis7
OyBQYWNrYWdlLVJlcXVpcmVzIDogKChlbWFjcyAiMzEuMSIpKQorOzsgS2V5d29yZHMgICAgICAg
ICA6IG1hcmtkb3duIG1kIHRleHQgZWRpdCBsYW5ndWFnZXMgdHJlZS1zaXR0ZXIKIAogOzsgVGhp
cyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgogCkBAIC0yMiwxMDEgKzI0LDIwMiBAQAogOzsg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKIDs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8v
d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIAotOzs7IFRyZWUtc2l0dGVyIGxhbmd1YWdlIHZlcnNp
b25zCis7OzsgQ29tbWVudGFyeToKKworOzsgVHJlZS1zaXR0ZXIgTGFuZ3VhZ2UgVmVyc2lvbnMK
IDs7CiA7OyBtYXJrZG93bi10cy1tb2RlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIHRoZSBmb2xsb3dp
bmcgZ3JhbW1hcnMgYW5kIHZlcnNpb246CiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duOiB2MC40
LjEKIDs7IC0gdHJlZS1zaXR0ZXItbWFya2Rvd24taW5saW5lOiB2MC40LjEKIDs7Ci07OyBXZSB0
cnkgb3VyIGJlc3QgdG8gbWFrZSBidWlsdGluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1h
cgotOzsgdmVyc2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5j
ZSB0byB3b3JrIHRvby4KLTs7IFNlbmQgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCi0K
LTs7OyBDb21tZW50YXJ5OgorOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHQtaW4gbW9k
ZXMgd29yayB3aXRoIGxhdGVzdCBncmFtbWFyCis7OyB2ZXJzaW9ucywgc28gYSBtb3JlIHJlY2Vu
dCBncmFtbWFyIGhhcyBhIGdvb2QgY2hhbmNlIHRvIHdvcmsuICBTZW5kCis7OyB1cyBhIGJ1ZyBy
ZXBvcnQgaWYgaXQgZG9lc24ndC4KKzs7Cis7OyBCaWRpcmVjdGlvbmFsIFRleHQgQ29uc2lkZXJh
dGlvbnMKKzs7Cis7OyBUZXh0IHdpdGggbWFya3VwIG1heSBuZWVkIGFuIGV4dHJhIG5ld2xpbmUg
YmVmb3JlIGJpZGlyZWN0aW9uYWwgdGV4dAorOzsgZm9yIGl0IHRvIHNob3cgY29ycmVjdGx5LiAg
VGhpcyBpcyBhIGxpbWl0YXRpb24gaW4gdGhlIEVtYWNzIGRpc3BsYXkKKzs7IGVuZ2luZS4KKzs7
Cis7OyBDb2RlIEJsb2NrIExhbmd1YWdlIE1vZGUgQ29uc2lkZXJhdGlvbnMKKzs7Cis7OyBGZW5j
ZWQgY29kZSBibG9jayBsYW5ndWFnZSBtb2RlcyBhcmUgZGVyaXZlZCBmcm9tIHRoZSB0YWJsZQor
OzsgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMnIGFuZCBoZXVyaXN0aWNzIGFkZGluZyAi
LXRzLW1vZGUiIGFuZAorOzsgIi1tb2RlIiB0byB0aGUgbGFuZ3VhZ2UgbmFtZS4gIElmIHlvdXIg
bGFuZ3VhZ2UncyBtb2RlIGlzIG5vdAorOzsgcHJvcGVybHkgcmVjb2duaXplZCwgYWRkIGl0IHRv
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJywgd2hpY2gKKzs7IHNlZS4KKzs7Cis7OyBF
YWNoIGxhbmd1YWdlJ3MgbWFqb3IgbW9kZSBpcyBlbmFibGVkIG9uY2UgcGVyIGBtYXJrZG93bi10
cy1tb2RlJworOzsgYnVmZmVyIGluIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBleHRyYWN0IGl0cyBk
ZWZhdWx0IGZvbnQtbG9jayBhbmQKKzs7IHRyZWUtc2l0dGVyIHNldHRpbmdzLiAgSW4gY29udmVu
dGlvbmFsIG5vbi10cmVlc2l0IGNvZGUgYmxvY2tzLCB0aGUKKzs7IG1ham9yIG1vZGUgaXMgZW5h
YmxlZCBlYWNoIHRpbWUgdGhlIGJsb2NrIGlzIGZvbnRpZmllZC4KKzs7Cis7OyBOT1RFOiBNYWpv
ciBtb2RlIGhvb2tzIGFyZSBub3QgcnVuIGFuZCBmb250LWxvY2ssIHRyZWVzaXQsIGluZGVudCwK
Kzs7IGNvbW1lbnQgcmVjb2duaXRpb24sIGV0Yy4gY3VzdG9taXphdGlvbnMgeW91IG1pZ2h0IGhh
dmUgaW4geW91ciBob29rcworOzsgYXJlIG5vdCBhcHBsaWVkLiAgQXMgYSByZXN1bHQsIHlvdXIg
Y29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBkaWZmZXJlbnQgaW4gYG1hcmtkb3duLXRzLW1v
ZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbGFuZ3VhZ2UgbWFqb3IKKzs7IG1vZGUgYnVmZmVycy4g
IE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBlYWNoIG1vZGUgaG9vaworOzsg
YW5kIGF2b2lkcyBjZXJ0YWluIHJlY3Vyc2l2ZSB0cmVlc2l0IGNhbGxiYWNrIGlzc3Vlcy4KKzs7
Cis7OyBDb2RlIEJsb2NrIENvbW1hbmRzCiA7OworOzsgU29tZSBjb21tb24gY29tbWFuZHMgd2ls
bCBvcGVyYXRlIHdpdGhpbiBhIGNvZGUgYmxvY2sgYW5kIGluIGl0cworOzsgbW9kZS4gIFRoaXMg
aXMgaW1wbGVtZW50ZWQgdXNpbmcgYW4gaW5kaXJlY3QgYnVmZmVyIGFuZCBzb21lIGNvbW1hbmRz
Cis7OyBtYXkgb3BlcmF0ZSBzbGlnaHRseSBkaWZmZXJlbnRseSB0byB0aGUgc2FtZSBjb21tYW5k
cyBpbnZva2VkIGluIGEKKzs7IG5hdGl2ZSBtb2RlIGJ1ZmZlci4KKzs7Cis7OyBUcmVlIFNpdHRl
ciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0aGUgdW5kZXJseWlu
ZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0IGl0cyBidWlsZCB0
aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0YWxsZWQuICBUaGVy
ZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVseSBhZmZlY3QKKzs7
IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQgYXMgdGhlc2UgYnVn
cyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBUaGUgTWFya2Rvd24g
Z3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBjaGlsZHJlbgorOzsg
ICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGggdGhlIGluc3BlY3Rv
ciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0cyBjb2RlIGJsb2Nr
cyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0eXBlIDQgKGA8IScg
Zm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAgYDwhRE9DVFlQRSBo
dG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNlcXVlbnQKKzs7ICAg
Y29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBhcyBhIHdvcmthcm91
bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3Ry
ZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3VwZXJzY3JpcHQgKGBe
dGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5vdAorOzsgICBzdXBw
b3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZsYWcgZXhpc3RzIGZv
cgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24gRXh0cmEgc3ludGF4
LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRlcmVkIChudW1iZXJl
ZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRpbmcKKzs7ICAgYSBg
MS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3QgcHJvZHVjZSBhIG5l
c3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0cyBpdCBhcyBhIGZs
YXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVudCBpdGVtJ3MgcGFy
YWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRlcmVkIChgLScsIGAq
JywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9wcm9tb3RlIG9mIG9y
ZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQuCis7OworOzsgLSBS
ZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1iZXItbGlzdCcpIG1h
eSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJkIGlmIHRoZSBwYXJz
ZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBgbGlzdCcgbm9kZXMs
IG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBzZXBhcmF0ZSBsaXN0
cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7OworOzsgLSBFbXB0
eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1heSBiZSBjbGFpbWVk
IGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9mIHRoYXQgYmxvY2ss
IHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2VwYXJhdG9ycy4KIAog
Ozs7IENvZGU6CiAKIChyZXF1aXJlICd0cmVlc2l0KQogKHJlcXVpcmUgJ3N1YnIteCkKLShyZXF1
aXJlICdvdXRsaW5lKQogKHJlcXVpcmUgJ3NlcSkKKyhyZXF1aXJlICdvdXRsaW5lKQorKHJlcXVp
cmUgJ2dvdG8tYWRkcikKKyhyZXF1aXJlICd4cmVmKQogCi0odHJlZXNpdC1kZWNsYXJlLXVuYXZh
aWxhYmxlLWZ1bmN0aW9ucykKLQotKGFkZC10by1saXN0Ci0gJ3RyZWVzaXQtbGFuZ3VhZ2Utc291
cmNlLWFsaXN0Ci0gJyhtYXJrZG93bgotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRl
ci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4NTIzMWNl
OGZhOGIxMWU3MDc0YmJlMjY1YjQ4YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJlZS1zaXR0
ZXItbWFya2Rvd24vc3JjIikKLSB0KQotKGFkZC10by1saXN0Ci0gJ3RyZWVzaXQtbGFuZ3VhZ2Ut
c291cmNlLWFsaXN0Ci0gJyhtYXJrZG93bi1pbmxpbmUKLSAgICJodHRwczovL2dpdGh1Yi5jb20v
dHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCi0gICA6Y29tbWl0ICI0
MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgotICAgOnNvdXJjZS1kaXIg
InRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMiKQotIHQpCi0KLTs7OyBIZWxwZXIgZnVu
Y3Rpb25zCi0KLShkZWZ2YXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbWFwCi0g
ICcoKCJjKysiIC4gY3BwKQotICAgICgiYyMiIC4gYy1zaGFycCkKLSAgICAoInNoIiAuIGJhc2gp
KQotICAiQWxpc3QgbWFwcGluZyBjb2RlIGJsb2NrIGxhbmd1YWdlIG5hbWVzIHRvIHRyZWUtc2l0
dGVyIGxhbmd1YWdlcy4KLQotS2V5cyBzaG91bGQgYmUgc3RyaW5ncywgYW5kIHZhbHVlcyBzaG91
bGQgYmUgbGFuZ3VhZ2Ugc3ltYm9scy4KLQotRm9yIGV4YW1wbGUsIFwiYysrXCIgaW4KLQotICAg
IGBgYGMrKwotICAgIGludCBtYWluKCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAg
YGBgCis7OzsgQ3VzdG9taXphdGlvbnM6CiAKLW1hcHMgdG8gdHJlZS1zaXR0ZXIgbGFuZ3VhZ2Ug
YGNwcCcuIikKLQotKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1h
cAotICAnKChiYXNoIC4gYmFzaC10cy1tb2RlKQotICAgIChjIC4gYy10cy1tb2RlKQotICAgIChj
LXNoYXJwIC4gY3NoYXJwLXRzLW1vZGUpCi0gICAgKGNtYWtlIC4gY21ha2UtdHMtbW9kZSkKLSAg
ICAoY3BwIC4gYysrLXRzLW1vZGUpCi0gICAgKGNzcyAuIGNzcy10cy1tb2RlKQotICAgIChkb2Nr
ZXJmaWxlIC4gZG9ja2VyZmlsZS10cy1tb2RlKQotICAgIChlbGl4aXIgLiBlbGl4aXItdHMtbW9k
ZSkKLSAgICAoZ28gLiBnby10cy1tb2RlKQotICAgIChnb21vZCAuIGdvLW1vZC10cy1tb2RlKQot
ICAgIChnb3dvcmsgLiBnby13b3JrLXRzLW1vZGUpCi0gICAgKGhlZXggLiBoZWV4LXRzLW1vZGUp
Ci0gICAgKGh0bWwgLiBodG1sLXRzLW1vZGUpCi0gICAgKGphdmEgLiBqYXZhLXRzLW1vZGUpCi0g
ICAgKGphdmFzY3JpcHQgLiBqcy10cy1tb2RlKQotICAgIChqc29uIC4ganNvbi10cy1tb2RlKQot
ICAgIChsdWEgLiBsdWEtdHMtbW9kZSkKLSAgICAocGhwIC4gcGhwLXRzLW1vZGUpCi0gICAgKHB5
dGhvbiAuIHB5dGhvbi10cy1tb2RlKQotICAgIChydWJ5IC4gcnVieS10cy1tb2RlKQotICAgIChy
dXN0IC4gcnVzdC10cy1tb2RlKQotICAgICh0b21sIC4gdG9tbC10cy1tb2RlKQotICAgICh0c3gg
LiB0c3gtdHMtbW9kZSkKLSAgICAodHlwZXNjcmlwdCAuIHR5cGVzY3JpcHQtdHMtbW9kZSkKLSAg
ICAoeWFtbCAuIHlhbWwtdHMtbW9kZSkpCi0gICJBbiBhbGlzdCBvZiBzdXBwb3J0ZWQgY29kZSBi
bG9jayBsYW5ndWFnZXMgYW5kIHRoZWlyIG1ham9yIG1vZGUuIikKKyhkZWZncm91cCBtYXJrZG93
bi10cyBuaWwKKyAgIk1ham9yIG1vZGUgZm9yIHZpZXdpbmcgYW5kIGVkaXRpbmcgTWFya2Rvd24g
YnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLSIKKyAgOmdyb3VwICd0ZXh0CisgIDpn
cm91cCAnZWRpdGluZworICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZjdXN0b20gbWFya2Rvd24t
dHMtaGlkZS1tYXJrdXAgbmlsCiAgICJOb24tbmlsIG1lYW5zIGhpZGUgTWFya2Rvd24gbWFya3Vw
IGRlbGltaXRlcnMgaW4gdGhpcyBidWZmZXIuIgogICA6dHlwZSAnYm9vbGVhbgogICA6c2FmZSAj
J2Jvb2xlYW5wCi0gIDpncm91cCAnbWFya2Rvd24tdHMpCi0KLTs7OyBGYWNlcworICA6dmVyc2lv
biAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93
bi10cy1lbGxpcHNpcyBuaWwKKyAgIlRoZSBlbGxpcHNpcyB0byB1c2UgaW4gZm9sZGVkIGhlYWRp
bmdzLgorV2hlbiBuaWwsIHVzZSB0aGUgc3RhbmRhcmQgdGhyZWUgZG90cy4gIFdoZW4gYSBub24t
ZW1wdHkgc3RyaW5nLAordXNlIHRoYXQgc3RyaW5nIGluc3RlYWQuIgorICA6dHlwZSAnKGNob2lj
ZSAoY29uc3QgOnRhZyAiRGVmYXVsdCAoLi4uKSIgbmlsKQorICAgICAgICAgICAgICAgICAoc3Ry
aW5nIDp0YWcgIlN0cmluZyIgOnZhbHVlICIg4oyEIikpCisgIDpzYWZlICMnc3RyaW5nLW9yLW51
bGwtcAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmN1c3RvbSBtYXJrZG93bi10cy1tZW51LWJhci1zaG93IHQKKyAgIk5vbi1uaWwgbWVhbnMgc2hv
dyB0aGUgTWFya2Rvd24gbWVudSBpbiB0aGUgbWVudSBiYXIuIgorICA6dHlwZSAnYm9vbGVhbgor
ICA6c2FmZSAjJ2Jvb2xlYW5wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9u
ICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZyAnc2hvdy1h
bGwKKyAgIkRlZmF1bHQgaGVhZGluZyBmb2xkaW5nIGxldmVsLiIKKyAgOnR5cGUgJyhjaG9pY2UK
KyAgICAgICAgICAoY29uc3QgOnRhZyAiU2hvdyBldmVyeXRoaW5nIiBzaG93LWFsbCkKKyAgICAg
ICAgICAoY29uc3QgOnRhZyAiRm9sZCBldmVyeXRoaW5nLCBzaG93aW5nIHRvcC1sZXZlbCBoZWFk
aW5ncyIgZm9sZC1hbGwpCisgICAgICAgICAgKGNvbnN0IDp0YWcgIkZvbGQgaGVhZGluZ3MsIHNo
b3dpbmcgYWxsIGhlYWRpbmcgbGV2ZWxzIiBmb2xkLWhlYWRpbmdzKSkKKyAgOnNhZmUgIydzeW1i
b2xwCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVm
Y3VzdG9tIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMgbmlsCisgICJOb24tbmlsIG1lYW5zIGRp
c3BsYXkgaW5saW5lIGltYWdlcyBiZWxvdyBpbWFnZSBsaW5rcy4iCisgIDp0eXBlICdib29sZWFu
CisgIDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNp
b24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoICd3aW5k
b3cKKyAgIk1heGltdW0gd2lkdGggb2YgaW5saW5lIGltYWdlcyBpbiBwaXhlbHMuCitXaGVuIGB3
aW5kb3cnLCB1c2UgdGhlIHdpbmRvdyBib2R5IHdpZHRoLiAgV2hlbiBhIG51bWJlciwgdXNlCit0
aGF0IGFzIHRoZSBtYXhpbXVtIHBpeGVsIHdpZHRoLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0
IDp0YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAgICAobmF0bnVtIDp0
YWcgIlBpeGVsIHdpZHRoIikpCisgIDpzYWZlIChsYW1iZGEgKHYpIChvciAoZXEgdiAnd2luZG93
KSAobmF0bnVtcCB2KSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFn
ZXMgbmlsCisgICJIb3cgdG8gZGlzcGxheSByZW1vdGUgaW5saW5lIGltYWdlcy4KK1doZW4gbmls
LCBkbyBub3QgZGlzcGxheSByZW1vdGUgaW1hZ2VzLiAgV2hlbiBgZG93bmxvYWQnLCBmZXRjaCB0
aGUKK2ltYWdlIGludG8gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBkaXNwbGF5IGl0LgorCitSZW1v
dGUgaW1hZ2VzIGFyZSBza2lwcGVkIGJ5IGRlZmF1bHQgZm9yIHNlY3VyaXR5LiIKKyAgOnR5cGUg
JyhjaG9pY2UgKGNvbnN0IDp0YWcgIlNraXAgcmVtb3RlIGltYWdlcyIgbmlsKQorICAgICAgICAg
ICAgICAgICAoY29uc3QgOnRhZyAiRG93bmxvYWQgcmVtb3RlIGltYWdlcyIgZG93bmxvYWQpKQor
ICA6c2FmZSAjJ3N5bWJvbHAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24g
IjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCAi4piRIgor
ICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoZWNrZWQgdGFzayBsaXN0IHN0
cmluZy4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChz
dHJpbmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIikKKyAgICAgICAgICAgICAgICAg
KGNvbnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBuaWwpKQorICA6c2FmZSAjJ3N0
cmluZy1vci1udWxsLXAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94ICLimJAiCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgdW5jaGVja2VkIHRhc2sgbGlzdCBz
dHJpbmcuCituaWwgZGlzcGxheXMgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAo
c3RyaW5nIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIHN0cmluZyIpCisgICAgICAgICAgICAgICAg
IChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnNhZmUgIydz
dHJpbmctb3ItbnVsbC1wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3RlciA/
4pSACisgICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgdGhlbWF0aWMgYnJlYWsg
c3RyaW5nLgorVGhlIGNoYXJhY3RlciBpcyByZXBlYXRlZCB0byBmaWxsIHRoZSB3aW5kb3cgd2lk
dGguCituaWwgZGlzcGxheXMgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY2hh
cmFjdGVyIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIGNoYXJhY3RlciIpCisgICAgICAgICAgICAg
ICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNp
b24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKzs7OyBGYWNlczoKIAogKGRl
Zmdyb3VwIG1hcmtkb3duLXRzLWZhY2VzIG5pbAotICAiRmFjZXMgdXNlZCBpbiBNYXJrZG93biBU
UyBNb2RlLiIKKyAgIkZhY2VzIHVzZWQgYnkgTWFya2Rvd24tVFMuIgogICA6Z3JvdXAgJ21hcmtk
b3duLXRzLWZhY2VzCiAgIDpncm91cCAnZmFjZXMpCiAKQEAgLTE0NCwxNiArMjQ3LDEzNSBAQCBt
YXJrZG93bi10cy1oZWFkaW5nLTUKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNiAnKCh0
ICg6aW5oZXJpdCBvdXRsaW5lLTYpKSkKICAgIkZhY2UgZm9yIHNpeHRoIGxldmVsIE1hcmtkb3du
IGhlYWRpbmdzLiIpCiAKLShkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDpp
bmhlcml0IHNoYWRvdykpKQotICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2Ug
LSBhbmQgKi4iKQorKGRlZmZhY2UgbWFya2Rvd24tdHMtZW1waGFzaXMgJygodCAoOmluaGVyaXQg
aXRhbGljKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBlbXBoYXNpcyAoaXRhbGljKSB0ZXh0LiIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWJvbGQgJygodCAoOmluaGVyaXQgYm9sZCkpKQorICAi
RmFjZSBmb3IgTWFya2Rvd24gc3Ryb25nIGVtcGhhc2lzIChib2xkKSB0ZXh0LiIpCisKKyhkZWZm
YWNlIG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2ggJygodCAoOnN0cmlrZS10aHJvdWdoIHQpKSkK
KyAgIkZhY2UgZm9yIE1hcmtkb3duIHN0cmlrZXRocm91Z2ggdGV4dC4iKQogCiAoZGVmZmFjZSBt
YXJrZG93bi10cy1ibG9jay1xdW90ZSAnKCh0ICg6aW5oZXJpdCBpdGFsaWMpKSkKICAgIkZhY2Ug
Zm9yIE1hcmtkb3duIGJsb2NrIHF1b3Rlcy4iKQogCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5r
ICcoKHQgKDppbmhlcml0IGxpbmspKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGxpbmsgdGV4dCBh
bmQgaW1hZ2UgZGVzY3JpcHRpb25zLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpbmstZGVz
dGluYXRpb24gJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNl
IGZvciBNYXJrZG93biBsaW5rIGRlc3RpbmF0aW9ucyAoVVJMcykuIikKKworKGRlZmZhY2UgbWFy
a2Rvd24tdHMtY29kZS1zcGFuICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkp
KQorICAiRmFjZSBmb3IgTWFya2Rvd24gaW5saW5lIGNvZGUgc3BhbnMuIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIGZlbmNlZCBjb2RlIGJsb2NrIGNvbnRlbnQuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRk
IGEgYDpiYWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdAorY29kZSBibG9jayByZWdp
b24sIGUuZy46CisgIChzZXQtZmFjZS1hdHRyaWJ1dGUgXFw9J21hcmtkb3duLXRzLWNvZGUtYmxv
Y2sgbmlsIDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMt
Y29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisgICcoKCgoYmFja2dyb3VuZCBsaWdodCkpICg6YmFj
a2dyb3VuZCAiZ3JheTk1IiA6ZXh0ZW5kIHQpKQorICAgICgoKGJhY2tncm91bmQgZGFyaykpICg6
YmFja2dyb3VuZCAiZ3JheTE1IiA6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGZl
bmNlZCBjb2RlIGJsb2NrIGNvbnRlbnQgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorVXNlZCBpbnN0
ZWFkIG9mIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyB3aGVuIGBtYXJrZG93bi10cy1oaWRlLW1h
cmt1cCcKK2lzIG5vbi1uaWwuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29k
ZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIE1hcmtkb3duIGluZGVudGVkIGNvZGUgYmxvY2tzLiIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWh0bWwtdGFnICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1kb2MtbWFya3VwLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIGlubGluZSBIVE1MIHRhZ3MgaW4gTWFya2Rvd24uIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtaHRtbC1ibG9jayAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1
cC1mYWNlKSkpCisgICJGYWNlIGZvciBIVE1MIGJsb2NrcyBpbiBNYXJrZG93bi4iKQorCisoZGVm
ZmFjZSBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4
dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250
YWwgcnVsZXMpLgorQ3VzdG9taXplIHRoaXMgZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3Ig
YSBmdWxsLXdpZHRoIHZpc3VhbCBydWxlLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWVudGl0
eS1yZWZlcmVuY2UgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkpKQorICAi
RmFjZSBmb3IgbmFtZWQgSFRNTCBlbnRpdHkgcmVmZXJlbmNlcyBsaWtlICZhbXA7IGFuZCAmY29w
eTsuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNl
CisgICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1lc2NhcGUtZmFjZSkpKQorICAiRmFjZSBmb3Ig
bnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBsaWtlICYjNjU7IGFuZCAmI3g0MTsuIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0ZXggJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmlu
Zy1mYWNlKSkpCisgICJGYWNlIGZvciBMYVRlWCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAo
JC4uLiQgYW5kICQkLi4uJCQpLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWhlYWRl
ciAnKCh0ICg6aW5oZXJpdCAoYm9sZCBmb250LWxvY2stZG9jLWZhY2UpKSkpCisgICJGYWNlIGZv
ciBNYXJrZG93biBwaXBlIHRhYmxlIGhlYWRlciBjZWxscy4iKQorCisoZGVmZmFjZSBtYXJrZG93
bi10cy10YWJsZS1jZWxsICcoKHQgKDppbmhlcml0IGRlZmF1bHQpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIHBpcGUgdGFibGUgZGF0YSBjZWxscy4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10
YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIE1hcmtkb3duIHBpcGUgdGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2Vw
YXJhdG9ycykuIikKKwogKGRlZmZhY2UgbWFya2Rvd24tdHMtbGFuZ3VhZ2Uta2V5d29yZCAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2sta2V5d29yZC1mYWNlKSkpCiAgICJGYWNlIGZvciB0aGUgbGFu
Z3VhZ2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIikKIAotOzs7IEZvbnQtbG9j
aworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygodCAoOmluaGVyaXQgc2hhZG93
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMgbGlrZSAtIGFuZCAqLiIpCisK
KyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtk
b3duLXRzLWxpc3QtbWFya2VyKSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFz
ayBsaXN0IG1hcmtlcnMuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtdGFzay1jaGVja2VkICco
KHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWxpc3QtbWFya2VyKSkpCisgICJGYWNlIGZvciBNYXJr
ZG93biBjaGVja2VkIHRhc2sgbGlzdCBtYXJrZXJzLiIpCisKKyh0cmVlc2l0LWRlY2xhcmUtdW5h
dmFpbGFibGUtZnVuY3Rpb25zKQorCisoYWRkLXRvLWxpc3QKKyAndHJlZXNpdC1sYW5ndWFnZS1z
b3VyY2UtYWxpc3QKKyAnKG1hcmtkb3duCisgICAiaHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0
dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgorICAgOmNvbW1pdCAiNDEzMjg1MjMx
Y2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKKyAgIDpzb3VyY2UtZGlyICJ0cmVlLXNp
dHRlci1tYXJrZG93bi9zcmMiKQorIHQpCisKKyhhZGQtdG8tbGlzdAorICd0cmVlc2l0LWxhbmd1
YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rvd24taW5saW5lCisgICAiaHR0cHM6Ly9naXRodWIu
Y29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgorICAgOmNvbW1p
dCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKKyAgIDpzb3VyY2Ut
ZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi1pbmxpbmUvc3JjIikKKyB0KQorCis7OzsgVmFyaWFi
bGVzOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggLiBi
YXNoLXRzLW1vZGUpCisgICAgKHNoZWxsIC4gYmFzaC10cy1tb2RlKQorICAgICgsKGludGVybiAi
YyMiKSAuIGMtc2hhcnApCisgICAgKGNwcCAuIGMrKy10cy1tb2RlKQorICAgIChlbCAuIGVtYWNz
LWxpc3AtbW9kZSkKKyAgICAoZWxpc3AgLiBlbWFjcy1saXNwLW1vZGUpCisgICAgKGdvbGFuZyAu
IGdvLXRzLW1vZGUpCisgICAgKGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCisgICAgKGdvd29yayAu
IGdvLXdvcmstdHMtbW9kZSkKKyAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCisgICAgKG1k
IC4gbWFya2Rvd24tdHMtbW9kZSkKKyAgICAocHkgLiBweXRob24tdHMtbW9kZSkKKyAgICAocmIg
LiBydWJ5LXRzLW1vZGUpCisgICAgKHJzIC4gcnVzdC10cy1tb2RlKQorICAgICh0ZXggLiBsYXRl
eC1tb2RlKQorICAgICh0cyAuIHR5cGVzY3JpcHQtdHMtbW9kZSkKKyAgICAoeW1sIC4geWFtbC10
cy1tb2RlKSkKKyAgIkFsaXN0IG1hcHBpbmcgY29kZSBibG9jayBsYW5ndWFnZXMgdG8gdGhlaXIg
bWFqb3IgbW9kZS4KK1RoZSBhbGlzdCBpcyBvZiB0aGUgZm9ybSAoTEFOR1VBR0UgLiBNQUpPUi1N
T0RFKS4KK01BSk9SLU1PREUgY2FuIGJlIGEgdHJlZS1zaXR0ZXIgb3IgYSBjb252ZW50aW9uYWwg
bW9kZS4KK0lmIHlvdSBwcmVmZXIgYSBjb252ZW50aW9uYWwgbW9kZSBvdmVyIGl0cyB0cmVlLXNp
dHRlciB2YXJpYW50LCBhZGQgb3IgcmVwbGFjZQorcmVsZXZhbnQgZW50cmllcy4gIEZvciBleGFt
cGxlOgorICAgIChhZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2Rlcwor
ICAgICAgXFw9JyhweXRob24gLiBweXRob24tbW9kZSkpCisgICAgKHNldGYgKGFsaXN0LWdldCBc
XD0ncHkgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcykKKyAgICAgICAgICBcXD0ncHl0aG9u
LW1vZGUpCitDb2RlIGJsb2NrcyBmb3IgdGhhdCBub24gdHJlZS1zaXR0ZXIgbW9kZXMgd2lsbCBi
ZSBmb250aWZpZWQgdXNpbmcgdGhlCittb2RlJ3MgY29udmVudGlvbmFsIGZvbnQtbG9jayBydWxl
cy4iKQorCis7OzsgRm9udC1sb2NrOgogCiAoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktZGVs
aW1pdGVyIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQogICAiRm9udGlmeSBkZWxp
bWl0ZXIgTk9ERSBhbmQgb3B0aW9uYWxseSBoaWRlIGl0cyBtYXJrdXAuCkBAIC0xNjgsMTMgKzM5
MCw1MTAgQEAgbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCiAgICAgKHB1dC10ZXh0LXBy
b3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkp
KQogCisoZGVmdmFyIHVybC1tYWlsLWNvbW1hbmQpIDsgdXJsL3VybC12YXJzLmVsCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbiAoYmVnIGVuZCB1cmwpCisgICJNYWtlIHRo
ZSByZWdpb24gZnJvbSBCRUcgdG8gRU5EIGEgY2xpY2thYmxlIGJ1dHRvbiBmb3IgVVJMLgorRm9y
IG1haWx0bzogVVJJcywgdXNlIGB1cmwtbWFpbC1jb21tYW5kJy4gIEZvciBvdGhlciBzY2hlbWVz
CitcKGUuZy4sIGh0dHAsIGZ0cCksIG9wZW4gd2l0aCBgYnJvd3NlLXVybCcuICBPdGhlcndpc2Us
IHRyZWF0IGFzCithIHJlbGF0aXZlIGZpbGUgcGF0aCBhbmQgb3BlbiB3aXRoIGBmaW5kLWZpbGUn
LiIKKyAgOzsgTk9URTogVVJJIHNjaGVtZSBhbmQgaG9zdCBuYW1lIGFyZSBjYXNlLWluc2Vuc2l0
aXZlIHBlciBSRkMgMzk4NgorICA7OyBhbmQgUkZDIDcyMzAuCisgIChsZXQgKChjYXNlLWZvbGQt
c2VhcmNoIG5pbCkpCisgICAgKG1ha2UtdGV4dC1idXR0b24gYmVnIGVuZAorICAgICAgICAgICAg
ICAgICAgICAgICdhY3Rpb24gKGxhbWJkYSAoX2J1dHRvbikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3Ry
aW5nLW1hdGNoLXAgIlxcYG1haWx0bzoiIHVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZnVuY2FsbCB1cmwtbWFpbC1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgbWFpbHRvOiIgIiIgdXJsKSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaC1wICJcXGBb
YS16XSs6IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJyb3dzZS11
cmwgdXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IChmaW5kLWZpbGUg
dXJsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICdmYWNlICdtYXJrZG93bi10cy1saW5rCisg
ICAgICAgICAgICAgICAgICAgICAgJ2hlbHAtZWNobyB1cmwpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1mb250aWZ5LWxpbmstZGVzdGluYXRpb24gKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZy
ZXN0IF8pCisgICJGb250aWZ5IGxpbmsgZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSBpdCB3aGVu
IG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0
aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVl
c2l0LW5vZGUtZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVy
cmlkZSBzdGFydCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1
dC10ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMt
LW1hcmt1cCkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSBu
aWwKKyAgIkNhY2hlZCBhbGlzdCBvZiAoTEFCRUwgLiBVUkwpIGZyb20gbGluayByZWZlcmVuY2Ug
ZGVmaW5pdGlvbnMuCitFYWNoIGVudHJ5IGlzIGEgY29ucyBjZWxsIG1hcHBpbmcgYSBkb3duY2Fz
ZWQgbGFiZWwgc3RyaW5nIHRvIGl0cworZGVzdGluYXRpb24gVVJMLiIpCisKKyhkZWZ2YXItbG9j
YWwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2sgbmlsCisgICJWYWx1ZSBvZiBgYnVm
ZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGNhY2hlIHdhcyBidWlsdC4iKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25zICgpCisgICJSZXR1cm4gYW4g
YWxpc3Qgb2YgKExBQkVMIC4gVVJMKSBmcm9tIGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgor
TEFCRUwgaXMgZG93bmNhc2VkIGZvciBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nLiAgUmVzdWx0
cyBhcmUKK2NhY2hlZCBhbmQgcmVidWlsdCBvbmx5IHdoZW4gdGhlIGJ1ZmZlciBjaGFuZ2VzLiIK
KyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrKSkpCisgICAgKHVubGVz
cyAoZXEgdGljayBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljaykKKyAgICAgIChsZXQq
ICgocm9vdCAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikpCisgICAgICAgICAg
ICAgKG1hdGNoZXMgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICAgICAg
ICByb290CisgICAgICAgICAgICAgICAgICAgICAgICcoKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtfbGFiZWwpIEBsYWJlbAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAobGlua19kZXN0aW5hdGlvbikgQGRlc3QpKSkpCisgICAgICAg
ICAgICAgZGVmcykKKyAgICAgICAgKHdoaWxlIG1hdGNoZXMKKyAgICAgICAgICAobGV0KiAoKGxh
YmVsLXBhaXIgKHBvcCBtYXRjaGVzKSkKKyAgICAgICAgICAgICAgICAgKGRlc3QtcGFpciAocG9w
IG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAobGJsLXRleHQgKHN0cmluZy10cmltICh0cmVl
c2l0LW5vZGUtdGV4dCAoY2RyIGxhYmVsLXBhaXIpIHQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlxcWyIgIlxcXSIpKSkKKyAgICAgICAgICAgIChwdXNoIChjb25z
IChkb3duY2FzZSBsYmwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtdGV4dCAoY2RyIGRlc3QtcGFpcikgdCkpCisgICAgICAgICAgICAgICAgICBkZWZzKSkpCisg
ICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSAobnJldmVyc2UgZGVmcykK
KyAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2sgdGljaykpKQor
ICAgIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
cmVzb2x2ZS1saW5rLXJlZiAobGFiZWwpCisgICJSZXNvbHZlIExBQkVMIHRvIGEgVVJMIHZpYSBs
aW5rIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4KK0xBQkVMIHNob3VsZCBiZSB0aGUgdGV4dCB3aXRo
b3V0IGJyYWNrZXRzLiAgTWF0Y2hpbmcgaXMKK2Nhc2UtaW5zZW5zaXRpdmUgcGVyIENvbW1vbk1h
cmsgc3BlYyBzZWN0aW9uIDQuNy4iCisgIChhbGlzdC1nZXQgKGRvd25jYXNlIGxhYmVsKSAobWFy
a2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25zKQorICAgICAgICAgICAgIG5pbCBuaWwgIydl
cXVhbCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUgKG5vZGUgb3Zl
cnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsgb3IgaW1hZ2UgdGV4dCBO
T0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1dvcmtzIGZvciBpbmxpbmUgbGlua3MsIHJlZmVy
ZW5jZSBsaW5rcywgc2hvcnRjdXQgbGlua3MsIGFuZAoraW1hZ2UgZGVzY3JpcHRpb25zLiAgVGhl
IFVSTCBpcyB0YWtlbiBmcm9tIGEgc2libGluZworYGxpbmtfZGVzdGluYXRpb24nIG5vZGUgd2hl
biBwcmVzZW50LCBvciByZXNvbHZlZCBmcm9tIGEKK2xpbmsgcmVmZXJlbmNlIGRlZmluaXRpb24s
IG9yIHRoZSBub2RlIHRleHQgaXRzZWxmIGlzIHVzZWQgYXMKK2ZhbGxiYWNrLiAgT1ZFUlJJREUs
IFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9k
ZSkpKQorICAgIDs7IFdoZW4gTk9ERSBpcyBhIGxpbmtfbGFiZWwgaW5zaWRlIGEgZnVsbF9yZWZl
cmVuY2VfbGluayB0aGF0CisgICAgOzsgYWxzbyBoYXMgYSBsaW5rX3RleHQsIHNraXAgaXQsIGxp
bmtfdGV4dCBoYW5kbGVzIHRoYXQgbGluay4KKyAgICAodW5sZXNzIChhbmQgKHN0cmluZz0gKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpICJsaW5rX2xhYmVsIikKKyAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsaW5rX3RleHRcXCciKSkKKyAgICAgICh0
cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQg
bm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICAgICAnbWFya2Rvd24tdHMtbGluayBv
dmVycmlkZSBzdGFydCBlbmQpCisgICAgICAobGV0KiAoKGRlc3QgKHRyZWVzaXQtc2VhcmNoLXN1
YnRyZWUgcGFyZW50ICJcXGBsaW5rX2Rlc3RpbmF0aW9uXFwnIikpCisgICAgICAgICAgICAgKHVy
bCAoaWYgZGVzdAorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBkZXN0
IHQpCisgICAgICAgICAgICAgICAgICAgIDs7IFJlZmVyZW5jZSBsaW5rczogcmVzb2x2ZSB2aWEg
bGlua19sYWJlbCBvciBsaW5rX3RleHQuCisgICAgICAgICAgICAgICAgICAgIChsZXQqICgobGFi
ZWwtbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcmVudCAiXFxgbGlua19sYWJlbFxcJyIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxhYmVsIChpZiBsYWJlbC1ub2RlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1ub2Rl
IHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
XFxbIiAiXFxdIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtdGV4dCBub2RlIHQpKSkpCisgICAgICAgICAgICAgICAgICAgICAgKG9yIChtYXJrZG93
bi10cy0tcmVzb2x2ZS1saW5rLXJlZiBsYWJlbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
bGFiZWwpKSkpKQorICAgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24KKyAgICAg
ICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkgdXJs
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBhdXRvbGluayBOT0RFIChVUkkgb3Ig
ZW1haWwpIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK0ZvciBlbWFpbCBhdXRvbGlua3MsIHRoZSBV
UkwgaXMgcHJlZml4ZWQgd2l0aCBcIm1haWx0bzpcIi4KK0FuZ2xlIGJyYWNrZXQgZGVsaW1pdGVy
cyBhcmUgaGlkZGVuIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5k
IEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlk
ZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAg
ICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChpbm5l
ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICgxKyBu
b2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpKSkKKyAgICAgICAgICh1cmwgKGlmIChzdHJpbmc9ICh0
cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiZW1haWxfYXV0b2xpbmsiKQorICAgICAgICAgICAgICAg
ICAgKGNvbmNhdCAibWFpbHRvOiIgaW5uZXIpCisgICAgICAgICAgICAgICAgaW5uZXIpKSkKKyAg
ICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCBub2RlLWVu
ZCAnbWFya2Rvd24tdHMtbGluayBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKG1hcmtkb3duLXRz
LS1tYWtlLWxpbmstYnV0dG9uIG5vZGUtc3RhcnQgbm9kZS1lbmQgdXJsKQorICAgICh3aGVuIG1h
cmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFy
dCAoMSsgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdt
YXJrZG93bi10cy0tbWFya3VwKQorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2RlLWVu
ZCkgbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93
bi10cy0tbWFya3VwKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYt
bGFiZWwgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsg
cmVmZXJlbmNlIGRlZmluaXRpb24gbGFiZWwgTk9ERSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitU
aGUgYnJhY2tldHMgYW5kIGNvbG9uIGFyZSBoaWRkZW4gd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgor
T1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1u
b2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5v
ZGUpKQorICAgICAgICAgKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKKyAgICAg
ICAgIChkZXN0LW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsaW5rX2Rl
c3RpbmF0aW9uXFwnIikpCisgICAgICAgICAodXJsICh3aGVuIGRlc3Qtbm9kZSAodHJlZXNpdC1u
b2RlLXRleHQgZGVzdC1ub2RlIHQpKSkpCisgICAgOzsgRm9udGlmeSB0aGUgbGFiZWwgdGV4dCAo
aW5zaWRlIGJyYWNrZXRzKS4KKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAg
ICAgKDErIG5vZGUtc3RhcnQpICgxLSBub2RlLWVuZCkKKyAgICAgJ21hcmtkb3duLXRzLWxpbmsg
b3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIDs7IE1ha2UgaXQgYSBjbGlja2FibGUgYnV0dG9uLgor
ICAgICh3aGVuIHVybAorICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uICgxKyBu
b2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpIHVybCkpCisgICAgOzsgSGlkZSAiWyIgYmVmb3JlIGxh
YmVsIGFuZCAiXTogIiBiZXR3ZWVuIGxhYmVsIGFuZCBkZXN0aW5hdGlvbi4KKyAgICAod2hlbiBt
YXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgKDErIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAn
bWFya2Rvd24tdHMtLW1hcmt1cCkKKyAgICAgIChsZXQgKChjb2xvbi1lbmQgKGlmIGRlc3Qtbm9k
ZSAodHJlZXNpdC1ub2RlLXN0YXJ0IGRlc3Qtbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAoMSsgbm9kZS1lbmQpKSkpCisgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoMS0gbm9kZS1l
bmQpIGNvbG9uLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFy
a2Rvd24tdHMtLW1hcmt1cCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5r
LXJlZi1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVzdCBfKQorICAiRm9u
dGlmeSBsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9uIGRlc3RpbmF0aW9uIE5PREUgYW5kIGhpZGUg
d2hlbiBtYXJrdXAgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQg
dGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgICh0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJl
ZXNpdC1ub2RlLWVuZCBub2RlKQorICAgJ21hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24gb3Zl
cnJpZGUgc3RhcnQgZW5kKQorICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRz
LS1tYXJrdXApKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYXRleC1ibG9jay12YWxpZC1wIChu
b2RlKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgbGF0ZXggYmxvY2sgTk9ERSBpcyB3aXRoaW4gYSBz
aW5nbGUgaW5saW5lIHNjb3BlLgorVGhlIGdsb2JhbCBpbmxpbmUgcGFyc2VyIGNhbiBjcmVhdGUg
ZmFsc2UgYGxhdGV4X2Jsb2NrJyBtYXRjaGVzCitzcGFubmluZyBhY3Jvc3MgcGFyYWdyYXBoIGJv
dW5kYXJpZXMuICBDaGVjayB0aGF0IHRoZSBvcGVuaW5nIGFuZAorY2xvc2luZyBkZWxpbWl0ZXJz
IHNoYXJlIHRoZSBzYW1lIG1hcmtkb3duIGBpbmxpbmUnIGFuY2VzdG9yLiIKKyAgKGxldCAoKG5v
ZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5kICgx
LSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKQorICAgICh3aGVuLWxldCogKChtZC1zdGFydCAo
dHJlZXNpdC1ub2RlLWF0IG5vZGUtc3RhcnQgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgICAo
bWQtZW5kICh0cmVlc2l0LW5vZGUtYXQgbm9kZS1lbmQgJ21hcmtkb3duKSkKKyAgICAgICAgICAg
ICAgICAoaW5saW5lLXN0YXJ0ICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1kLXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJl
ZXNpdC1ub2RlLXR5cGUgbikgImlubGluZSIpKSkpCisgICAgICAgICAgICAgICAgKGlubGluZS1l
bmQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1k
LWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImlubGlu
ZSIpKSkpKQorICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtc3RhcnQgaW5saW5lLXN0YXJ0KQor
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgaW5saW5lLWVuZCkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tZm9udGlmeS1sYXRleC1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGF0ZXggYmxvY2sgTk9ERSBhbmQgaGlkZSBpdHMgZGVs
aW1pdGVycyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitTa2lwIGZvbnRpZmljYXRpb24gZm9yIGZh
bHNlIG1hdGNoZXMgdGhhdCBzcGFuIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4KK09WRVJS
SURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRp
Znktd2l0aC1vdmVycmlkZScuIgorICAod2hlbiAobWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZh
bGlkLXAgbm9kZSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgICAnbWFy
a2Rvd24tdHMtbGF0ZXggb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICh3aGVuIG1hcmtkb3duLXRz
LWhpZGUtbWFya3VwCisgICAgICAoZG90aW1lcyAoaSAodHJlZXNpdC1ub2RlLWNoaWxkLWNvdW50
IG5vZGUpKQorICAgICAgICAobGV0ICgoY2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIGkp
KSkKKyAgICAgICAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAibGF0
ZXhfc3Bhbl9kZWxpbWl0ZXIiKQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICh0cmVl
c2l0LW5vZGUtc3RhcnQgY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbm9kZS1lbmQgY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lu
dmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LWJhY2tzbGFzaC1lc2NhcGUgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0
IF8pCisgICJGb250aWZ5IGJhY2tzbGFzaCBlc2NhcGUgTk9ERSwgaGlkaW5nIHRoZSBiYWNrc2xh
c2ggd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorU2tpcCBoaWRpbmcgaW5zaWRlIGBsYXRleF9ibG9j
aycgd2hlcmUgYmFja3NsYXNoZXMgYXJlIExhVGVYIHN5bnRheC4KK09WRVJSSURFLCBTVEFSVCwg
YW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVy
cmlkZScuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQor
ICAgICAgICAoaW4tbGF0ZXggKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAodHJlZXNpdC1ub2Rl
LXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAibGF0ZXhfYmxvY2siKSkp
CisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQgKDEr
IG5vZGUtc3RhcnQpCisgICAgICdtYXJrZG93bi10cy1kZWxpbWl0ZXIgb3ZlcnJpZGUgc3RhcnQg
ZW5kKQorICAgICh3aGVuIChhbmQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBpbi1sYXRl
eCkpCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3Vw
KSkpKQorCisoZGVmdmFyIHNnbWwtY2hhci1uYW1lcykKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1l
bnRpdHktZ2V0ICJvcmcvb3JnLWVudGl0aWVzLmVsIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1k
ZWNvZGUtZW50aXR5ICh0ZXh0KQorICAiRGVjb2RlIEhUTUwgZW50aXR5IFRFWFQgKGUuZy4sIFwi
JmFtcDtcIikgdG8gaXRzIGNoYXJhY3RlciBzdHJpbmcuCitSZXR1cm4gdGhlIGRlY29kZWQgc3Ry
aW5nLCBvciBuaWwgaWYgdGhlIGVudGl0eSBpcyB1bmtub3duLiIKKyAgKGNvbmQKKyAgIDs7IE51
bWVyaWMgaGV4ICYjeDFGNEE5OworICAgKChzdHJpbmctbWF0Y2ggIlxcYCYjeFxcKFtbOnhkaWdp
dDpdXStcXCk7XFwnIiB0ZXh0KQorICAgIChjaGFyLXRvLXN0cmluZyAoc3RyaW5nLXRvLW51bWJl
ciAobWF0Y2gtc3RyaW5nIDEgdGV4dCkgMTYpKSkKKyAgIDs7IE51bWVyaWMgZGVjaW1hbCAmIzEy
MzsKKyAgICgoc3RyaW5nLW1hdGNoICJcXGAmI1xcKFtbOmRpZ2l0Ol1dK1xcKTtcXCciIHRleHQp
CisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJpbmcgMSB0
ZXh0KSkpKQorICAgOzsgTmFtZWQgJmFtcDsgJmNvcHk7IHZpYSBvcmctZW50aXRpZXMsIGZhbGwg
YmFjayB0byBzZ21sLWNoYXItbmFtZXMKKyAgICgoc3RyaW5nLW1hdGNoICJcXGAmXFwoW1s6YWxu
dW06XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAobGV0ICgobmFtZSAobWF0Y2gtc3RyaW5nIDEgdGV4
dCkpKQorICAgICAgKHJlcXVpcmUgJ29yZy1lbnRpdGllcykKKyAgICAgIChpZi1sZXQqICgoZW50
cnkgKG9yZy1lbnRpdHktZ2V0IG5hbWUpKQorICAgICAgICAgICAgICAgICh1dGY4IChudGggNiBl
bnRyeSkpKQorICAgICAgICAgIHV0ZjgKKyAgICAgICAgKHJlcXVpcmUgJ3NnbWwtbW9kZSkKKyAg
ICAgICAgKHdoZW4tbGV0KiAoKGNvZGUgKHNlcS1wb3NpdGlvbiBzZ21sLWNoYXItbmFtZXMgbmFt
ZSAjJ2VxdWFsKSkpCisgICAgICAgICAgKGNoYXItdG8tc3RyaW5nIGNvZGUpKSkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1lbnRpdHkgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5k
ICZyZXN0IF8pCisgICJGb250aWZ5IGVudGl0eSBOT0RFIGFuZCBzaG93IGl0cyBkZWNvZGVkIHZh
bHVlIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUg
cGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAo
bGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9k
ZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgIChmYWNlIChpZiAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJlbnRpdHlfcmVmZXJlbmNlIikKKyAgICAgICAgICAg
ICAgICAgICdtYXJrZG93bi10cy1lbnRpdHktcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgJ21h
cmtkb3duLXRzLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSkpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiBtYXJr
ZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgICAod2hlbi1sZXQqICgoZGVjb2RlZCAobWFya2Rv
d24tdHMtLWRlY29kZS1lbnRpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtdGV4dCBub2RlIHQpKSkKKyAgICAgICAgICAgICAgICAgICAgKChjaGFyLWRpc3Bs
YXlhYmxlLXAgKGFyZWYgZGVjb2RlZCAwKSkpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5IGRlY29kZWQpKQorICAgICAgKHJlbW92ZS10
ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94IChub2RlIG92ZXJyaWRlIHN0YXJ0
IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3QgY2hlY2tib3ggTk9ERSwgc2hvdyBh
IFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwg
YW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVy
cmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChj
aGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgInRhc2tfbGlzdF9tYXJrZXJf
Y2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNrZWQgJ21hcmtkb3duLXRzLXRhc2st
Y2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpKQor
ICAgICAgICAgKHJlcGxhY2VtZW50IChpZiBjaGVja2VkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCkpKQorICAgICh0cmVlc2l0LWZvbnRpZnkt
d2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAoYW5kIG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50CisgICAgICAgICAgICAgKGNoYXItZGlzcGxh
eWFibGUtcCAoYXJlZiByZXBsYWNlbWVudCAwKSkpCisgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5IHJlcGxhY2VtZW50KQorICAgICAgKHJlbW92
ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0aGVtYXRpYyBicmVhayBOT0RFIGFu
ZCBzaG93IGEgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFu
ZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp
ZGUnLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAg
ICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAo
YW5kIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNo
YXJhY3RlcgorICAgICAgICAgICAgIChjaGFyLWRpc3BsYXlhYmxlLXAgbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyKSkKKyAgICAgICAgKGxldCogKChjb2wgKHNhdmUtZXhjdXJz
aW9uIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjdXJyZW50LWNvbHVtbikpKQorICAgICAgICAgICAgICAgOzsgU3BhbiBpZiB0aGUg
ZmFjZSBoYXMgbm9uLW5pbCA6ZXh0ZW5kLgorICAgICAgICAgICAgICAgKHNwYW4tbGVuZ3RoIChp
ZiAoZmFjZS1hdHRyaWJ1dGUgJ21hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5kIG5pbCAnZGVmYXVs
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC0gKHdpbmRvdy1ib2R5LXdpZHRo
KSBjb2wpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMikpKQorICAgICAgICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdkaXNwbGF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyBzcGFuLWxlbmd0aAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRo
ZW1hdGljLWJyZWFrLWNoYXJhY3RlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc
biIpKSkKKyAgICAgIChyZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQgbm9kZS1lbmQg
JyhkaXNwbGF5IG5pbCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJs
b2NrIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiRm9udGlmeSBjb2Rl
IGJsb2NrIGNvbnRlbnQgTk9ERSB3aXRoIGEgYmFja2dyb3VuZCBvdmVybGF5LgorVXNlIGBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLW1hcmt1cC1oaWRkZW4nIHdoZW4gbWFya3VwIGlzIGhpZGRlbiwK
K2BtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBvdGhlcndpc2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0
aGUKK2JhY2tncm91bmQgbGF5ZXJzIGl0c2VsZiBiZWhpbmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9u
dGlmaWNhdGlvbi4KK1RoZSBvdmVybGF5IGFsc28gc3RvcmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1
YWdlIGFuZCBtb2RlIGFzCitwcm9wZXJ0aWVzIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1
YWdlJyBhbmQKK2BtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQor
YG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQnLiIKKyAgKGxldCogKChub2RlLXN0
YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJl
Z2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgKG5vZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkK
KyAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorICAgICAg
ICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAoZmFjZSAoaWYgbWFya2Rvd24tdHMt
aGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1t
YXJrdXAtaGlkZGVuCisgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkK
KyAgICAgICAgIChsYW5nIChtYXJrZG93bi10cy0tbGFuZ3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAg
ICAgICAgIChtb2RlICh3aGVuIGxhbmcKKyAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1j
b2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykpKQorICAgICAgICAgKGV4aXN0aW5nIChzZXEt
ZmluZCAobGFtYmRhIChvdikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Zlcmxh
eS1nZXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2spKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAob3ZlcmxheXMtYXQgbm9kZS1zdGFydCkpKSkKKyAgICAoaWYgZXhpc3RpbmcKKyAg
ICAgICAgKHByb2duCisgICAgICAgICAgKG1vdmUtb3ZlcmxheSBleGlzdGluZyBub2RlLXN0YXJ0
IG5vZGUtZW5kKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnZmFjZSBmYWNlKQor
ICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1s
YW5ndWFnZSBsYW5nKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24t
dHMtY29kZS1ibG9jay1tb2RlIG1vZGUpKQorICAgICAgKGxldCAoKG92IChtYWtlLW92ZXJsYXkg
bm9kZS1zdGFydCBub2RlLWVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgOzsgTWFya2VycyBuZWVk
IHRvIGJlIHNldCBvbmx5IG9uY2UuCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24t
dHMtY29kZS1iZWctbWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS1zdGFydCkpCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1lbmQt
bWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS1lbmQpKQorICAg
ICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2sgdCkKKyAgICAgICAg
KG92ZXJsYXktcHV0IG92ICdmYWNlIGZhY2UpCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAob3ZlcmxheS1wdXQg
b3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKQorICAgICAgICAob3ZlcmxheS1w
dXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
YXQtcCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiBub24gbmlsIGlmIHBvaW50IGlzIGluIGEg
Y29kZSBibG9jay4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4iCisgIChnZXQtY2hhci1wcm9w
ZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQgKCZvcHRpb25hbCBwb3MpCisgICJS
ZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBvZiB0aGUgY29kZSBibG9jayBhdCBQT1MuCitJZiBQ
T1MgaXMgbmlsLCB1c2UgcG9pbnQuICBSZXR1cm5zIG5pbCBpZiBQT1MgaXMgbm90IGluc2lkZSBh
IGZlbmNlZAorY29kZSBibG9jay4gIFRoaXMgd29ya3MgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGEg
Z3Vlc3QgdHJlZS1zaXR0ZXIgcGFyc2VyCitpcyBhY3RpdmUsIHNpbmNlIHRoZSBsYW5ndWFnZSBp
cyBzdG9yZWQgb24gdGhlIGNvZGUgYmxvY2sgb3ZlcmxheSBieSB0aGUKK2hvc3QgcGFyc2VyJ3Mg
Zm9udGlmaWNhdGlvbi4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdt
YXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZS1hdCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiB0aGUgbWFqb3IgbW9k
ZSBmb3IgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LiAg
UmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQKK2NvZGUgYmxvY2sgb3Ig
aWYgdGhlIGxhbmd1YWdlIGhhcyBubyByZWNvZ25pemVkIG1vZGUuIgorICAoZ2V0LWNoYXItcHJv
cGVydHkgKG9yIHBvcyAocG9pbnQpKSAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlKSkKKwor
Ozs7IEltYWdlIGhhbmRsaW5nOgorCisoZGVmdW4gbWFya2Rvd24tdHMtLWltYWdlLWFsb25lLW9u
LWxpbmUtcCAobm9kZSkKKyAgIlJldHVybiBub24tbmlsIGlmIGltYWdlIE5PREUgaXMgdGhlIG9u
bHkgY29udGVudCBvbiBpdHMgbGluZS4KK1doaXRlc3BhY2UsIGJsb2NrIHF1b3RlIG1hcmtlcnMg
KGA+JyksIGFuZCBsaXN0IG1hcmtlcnMKK1woYC0nLCBgKicsIGArJywgYDEuJykgYmVmb3JlIHRo
ZSBpbWFnZSBhcmUgaWdub3JlZC4iCisgIChsZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUt
c3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkp
CisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAoZ290by1jaGFyIG5vZGUtc3RhcnQpCisgICAg
ICAobGV0ICgoYm9sIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAoZW9s
IChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICA7OyBCZWZvcmUgdGhlIGltYWdlOiBvbmx5
IGJsb2NrIHF1b3RlIG1hcmtlcnMsIHdoaXRlc3BhY2UsCisgICAgICAgIDs7IGFuZCBhbiBvcHRp
b25hbCBsaXN0IG1hcmtlciBhcmUgYWxsb3dlZC4KKyAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNo
LXAKKyAgICAgICAgICAgICAgKHJ4IGJvcworICAgICAgICAgICAgICAgICAgKHplcm8tb3ItbW9y
ZSAoYW55ICI+IFx0IikpCisgICAgICAgICAgICAgICAgICAob3B0aW9uYWwgKG9yIChzZXEgKGFu
eSAiLSorIikgIiAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VxIChvbmUt
b3ItbW9yZSBkaWdpdCkgKGFueSAiLikiICkgIiAiKSkpCisgICAgICAgICAgICAgICAgICBlb3Mp
CisgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgYm9sIG5vZGUt
c3RhcnQpKQorICAgICAgICAgICAgIDs7IEFmdGVyIHRoZSBpbWFnZTogb25seSB0cmFpbGluZyB3
aGl0ZXNwYWNlIGFsbG93ZWQuCisgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wCisgICAgICAg
ICAgICAgIChyeCBib3MgKHplcm8tb3ItbW9yZSAoYW55ICIgXHQiKSkgZW9zKQorICAgICAgICAg
ICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIG5vZGUtZW5kIGVvbCkpKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWltYWdlIChub2RlIF9vdmVycmlkZSBfc3Rh
cnQgX2VuZCAmcmVzdCBfKQorICAiU2hvdyBhbiBpbmxpbmUgaW1hZ2UgYXQgTk9ERS4KK1doZW4g
YG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMnIGlzIG5vbi1uaWwsIGRpc3BsYXkgdGhlIGltYWdl
LgorSWYgdGhlIGltYWdlIGxpbmsgaXMgdGhlIG9ubHkgY29udGVudCBvbiBpdHMgbGluZSwgZGlz
cGxheSB0aGUKK2ltYWdlIGJlbG93IHRoZSBsaW5rLiAgSWYgdGhlIGltYWdlIGlzIGlubGluZSB3
aXRoaW4gYSBwYXJhZ3JhcGgsCitkaXNwbGF5IGl0IHJpZ2h0IGFmdGVyIHRoZSBsaW5rIHRleHQu
CitSZW1vdGUgaW1hZ2VzIGFyZSBjb250cm9sbGVkIGJ5CitgbWFya2Rvd24tdHMtZGlzcGxheS1y
ZW1vdGUtaW5saW5lLWltYWdlcycuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9k
ZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2Rl
KSkKKyAgICAgICAgIChlb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgbm9kZS1lbmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAg
ICAgIChzZWFyY2gtZW5kIChtaW4gKDErIGVvbCkgKHBvaW50LW1heCkpKSkKKyAgICA7OyBBbHdh
eXMgY2xlYXIgc3RhbGUgb3ZlcmxheXMgZm9yIHRoaXMgbm9kZSdzIHJhbmdlLgorICAgIChkb2xp
c3QgKG92IChvdmVybGF5cy1pbiBub2RlLXN0YXJ0IHNlYXJjaC1lbmQpKQorICAgICAgKHdoZW4g
KGFuZCAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWltYWdlKQorICAgICAgICAgICAgICAg
ICAoPj0gKG92ZXJsYXktc3RhcnQgb3YpIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICg8
PSAob3ZlcmxheS1lbmQgb3YpIHNlYXJjaC1lbmQpKQorICAgICAgICAoZGVsZXRlLW92ZXJsYXkg
b3YpKSkKKyAgICAod2hlbiAoYW5kIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAgICAg
ICAgICAgIDs7IERvbid0IGNyZWF0ZSBpbWFnZSBvdmVybGF5cyBmb3Igbm9kZXMgaW5zaWRlCisg
ICAgICAgICAgICAgICA7OyBmb2xkZWQgKG91dGxpbmUtaW52aXNpYmxlKSBoZWFkaW5ncywgc2lu
Y2UgdGhlCisgICAgICAgICAgICAgICA7OyBpbWFnZXMgd291bGRuJ3QgYmUgdmlzaWJsZSBhbmQg
Y291bGQgaW50ZXJmZXJlCisgICAgICAgICAgICAgICA7OyB3aXRoIHRoZSBmb2xkZWQgZGlzcGxh
eS4KKyAgICAgICAgICAgICAgIChub3QgKG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1w
IG5vZGUtc3RhcnQpKSkKKyAgICAgIChsZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3VidHJl
ZSBub2RlICJcXGBsaW5rX2Rlc3RpbmF0aW9uXFwnIikpCisgICAgICAgICAgICAgKHVybCAoYW5k
IGRlc3QgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3QgdCkpKQorICAgICAgICAgICAgIChyZW1vdGVw
IChhbmQgdXJsIChzdHJpbmctbWF0Y2gtcCAiXFxgaHR0cHM/Oi8vIiB1cmwpKSkKKyAgICAgICAg
ICAgICAoZGlzcGxheWFibGUKKyAgICAgICAgICAgICAgKHdoZW4gdXJsCisgICAgICAgICAgICAg
ICAgKGlmIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIG1hcmtkb3duLXRz
LWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFnZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdkb3dubG9hZCkKKyAgICAgICAgICAgICAgICAgICAgICAoaWdub3JlLWVycm9ycworICAg
ICAgICAgICAgICAgICAgICAgICAgKHJlcXVpcmUgJ3VybC1oYW5kbGVycykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZXQtYnVmZmVyLW11bHRpYnl0ZSBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh1
cmwtaW5zZXJ0LWZpbGUtY29udGVudHMgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
YnVmZmVyLXN0cmluZykpKSkKKyAgICAgICAgICAgICAgICAgIChsZXQgKChmaWxlIChleHBhbmQt
ZmlsZS1uYW1lIHVybCkpKQorICAgICAgICAgICAgICAgICAgICAoYW5kIChub3QgKGZpbGUtcmVt
b3RlLXAgZmlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2Utc3VwcG9ydGVkLWZpbGUtcCBmaWxl
KQorICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUpKSkpKQorICAgICAgICAgICAgIChtYXgt
dyAoYW5kIGRpc3BsYXlhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBtYXJr
ZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHdpbmRvdy1ib2R5LXdpZHRoIG5pbCB0KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoKSkpCisgICAgICAgICAgICAgKGltZyAoYW5k
IG1heC13CisgICAgICAgICAgICAgICAgICAgICAgIChjcmVhdGUtaW1hZ2UgZGlzcGxheWFibGUg
bmlsIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWF4LXdp
ZHRoIG1heC13CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnNjYWxlIDEp
KSkpCisgICAgICAgICh3aGVuIGltZworICAgICAgICAgIChsZXQqICgoYWxvbmUgKG1hcmtkb3du
LXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAgbm9kZSkpCisgICAgICAgICAgICAgICAgIChzdHIg
KGlmIGFsb25lCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIlxuIiAocHJvcGVy
dGl6ZSAiICIgJ2Rpc3BsYXkgaW1nKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0
aXplICIgIiAnZGlzcGxheSBpbWcpKSkKKyAgICAgICAgICAgICAgICAgKG92IChtYWtlLW92ZXJs
YXkgKDEtIG5vZGUtZW5kKSBub2RlLWVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgICAgIChvdmVy
bGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UgdCkKKyAgICAgICAgICAgIChvdmVybGF5LXB1
dCBvdiAnYWZ0ZXItc3RyaW5nIHN0cikKKyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnZXZh
cG9yYXRlIHQpKSkpKSkpCisKKzs7OyBVUkwvVVJJIGhhbmRsaW5nOgorCisoZGVmdmFyIG1hcmtk
b3duLXRzLS1iYXJlLXVybC1yZWdleHAgZ290by1hZGRyZXNzLXVybC1yZWdleHAKKyAgIlJlZ2V4
cCBtYXRjaGluZyBiYXJlIFVSTHMgbm90IHdyYXBwZWQgaW4gYW5nbGUgYnJhY2tldHMgb3IgbGlu
ayBzeW50YXguIikKKworKGRlZnZhciBtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhw
IGdvdG8tYWRkcmVzcy1tYWlsLXJlZ2V4cAorICAiUmVnZXhwIG1hdGNoaW5nIGJhcmUgZW1haWwg
YWRkcmVzc2VzIG5vdCB3cmFwcGVkIGluIGFuZ2xlIGJyYWNrZXRzLiIpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1iYXJlLXVyaSAoc3RhcnQgZW5kKQorICAiRm9udGlmeSBiYXJlIFVS
TCBvciBlbWFpbCBVUkkgYmV0d2VlbiBTVEFSVCBhbmQgRU5ELgorU2tpcCBtYXRjaGVzIGFscmVh
ZHkgaW5zaWRlIHRyZWUtc2l0dGVyIGxpbmsgb3IgYXV0b2xpbmsgbm9kZXMuIgorICAoZG9saXN0
IChyZSAobGlzdCBtYXJrZG93bi10cy0tYmFyZS11cmwtcmVnZXhwCisgICAgICAgICAgICAgICAg
ICAgIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1yZWdleHApKQorICAgIChnb3RvLWNoYXIg
c3RhcnQpCisgICAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCByZSBlbmQgdCkKKyAgICAgIChs
ZXQqICgodXJpLXN0YXJ0IChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAgICAgICAgKHVyaS1l
bmQgKG1hdGNoLWVuZCAwKSkKKyAgICAgICAgICAgICAodXJpIChtYXRjaC1zdHJpbmcgMCkpCisg
ICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCB1cmktc3RhcnQgJ21hcmtkb3duLWlu
bGluZSkpCisgICAgICAgICAgICAgKHBhcmVudCAoYW5kIG5vZGUgKHRyZWVzaXQtbm9kZS1wYXJl
bnQgbm9kZSkpKQorICAgICAgICAgICAgIChwYXJlbnQtdHlwZSAoYW5kIHBhcmVudCAodHJlZXNp
dC1ub2RlLXR5cGUgcGFyZW50KSkpKQorICAgICAgICAodW5sZXNzIChvciAobWVtYmVyIHBhcmVu
dC10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiaW5saW5lX2xpbmsiICJmdWxs
X3JlZmVyZW5jZV9saW5rIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxhcHNl
ZF9yZWZlcmVuY2VfbGluayIgInNob3J0Y3V0X2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaW1hZ2UiICJ1cmlfYXV0b2xpbmsiICJlbWFpbF9hdXRvbGluayIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJsaW5rX2Rlc3RpbmF0aW9uIikpCisgICAgICAgICAgICAg
ICAgICAgIChtZW1iZXIgKGFuZCBub2RlICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKCJ1cmlfYXV0b2xpbmsiICJlbWFpbF9hdXRvbGluayIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5rX2Rlc3RpbmF0aW9uIiAiY29kZV9z
cGFuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvZGVfZmVuY2VfY29udGVudCIg
ImluZm9fc3RyaW5nIikpCisgICAgICAgICAgICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSB1
cmktc3RhcnQgJ2J1dHRvbikpCisgICAgICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0
dG9uCisgICAgICAgICAgIHVyaS1zdGFydCB1cmktZW5kCisgICAgICAgICAgIChpZiAoZXEgdXJp
LXN0YXJ0IDApCisgICAgICAgICAgICAgICB1cmkKKyAgICAgICAgICAgICAoY29uY2F0ICJtYWls
dG86IiB1cmkpKSkpKSkpKQorCis7OzsgdHJlZXNpdCBzZXR0aW5nczoKKwogKGRlZnZhciBtYXJr
ZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncwogICAodHJlZXNpdC1mb250LWxvY2stcnVsZXMKICAg
IDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6b3ZlcnJpZGUgdAogICAgOmZlYXR1cmUg
J2RlbGltaXRlcgotICAgJygoaW5saW5lX2xpbmsgWyAiWyIgIl0iICIoIiAiKSIgXSBAc2hhZG93
KQotICAgICAoaW1hZ2UgWyAiISIgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykpCisgICAnKChp
bmxpbmVfbGluayBbICJbIiAiXSIgIigiICIpIiBdIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsgWyAi
WyIgIl0iIF0gQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKKyAgICAgKHNob3J0Y3V0
X2xpbmsgWyAiWyIgIl0iIF0gQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKKyAgICAg
KGltYWdlIFsgIiEiICJbIiAiXSIgIigiICIpIiBdIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAnaGVhZGluZwpA
QCAtMTk0LDE2ICs5MTMsMzQgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAg
KGF0eF9oM19tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0
eF9oNF9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9o
NV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9t
YXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFy
a2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5k
ZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJf
dW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3Vh
Z2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJl
YWspIEBtYXJrZG93bi10cy1kZWxpbWl0ZXIpCi0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykg
QGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAgICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3du
LXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrKQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93
bi10cy1odG1sLWJsb2NrKQorICAgICAoKGluZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10
cy1pbmRlbnRlZC1jb2RlLWJsb2NrKQogICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFy
KSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpCiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2Vy
X3BsdXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9t
YXJrZXJfbWludXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAo
bGlzdF9tYXJrZXJfZG90KSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxp
c3RfaXRlbSAobGlzdF9tYXJrZXJfcGFyZW50aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtl
cikKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1jaGVja2JveCkKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtl
cl9jaGVja2VkKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktY2hlY2tib3gpCisgICAgIChwaXBlX3Rh
YmxlX2hlYWRlciAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWhlYWRlcikKKyAgICAgKHBpcGVfdGFi
bGVfaGVhZGVyIChwaXBlX3RhYmxlX2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisg
ICAgIChwaXBlX3RhYmxlX3JvdyAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxs
KQorICAgICAocGlwZV90YWJsZV9yb3cgKHBpcGVfdGFibGVfY2VsbCkgQG1hcmtkb3duLXRzLXRh
YmxlLWNlbGwpCisgICAgIChwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3cgInwiIEBtYXJrZG93bi10
cy10YWJsZS1kZWxpbWl0ZXItY2VsbCkKKyAgICAgKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRpb24K
KyAgICAgIChsaW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwp
CisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAobGlua19kZXN0aW5hdGlv
bikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRlc3RpbmF0aW9uKQorICAgICAobGlu
a19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1s
aW5rLWRlc3RpbmF0aW9uKQorICAgICAocGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3Rh
YmxlX2RlbGltaXRlcl9jZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwpKQog
CiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoCkBAIC0yMTcs
ODQgKzk1NCw5NTkgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgIChibG9j
a19xdW90ZV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgIChw
YXJhZ3JhcGggKGlubGluZSAoYmxvY2tfY29udGludWF0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyKSkpKQogCisgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCisgICA6ZmVhdHVyZSAn
cGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoZmVuY2VkX2NvZGVfYmxvY2sK
KyAgICAgIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpKQorICAgICAgKGNvZGVfZmVuY2VfY29udGVu
dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2RlLWJsb2NrKSkKKworICAgOmxhbmd1
YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFwaAorICAgOm92ZXJyaWRlICdhcHBl
bmQKKyAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrKSkKKwogICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxp
bmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoLWlubGluZQot
ICAgJygoKGltYWdlX2Rlc2NyaXB0aW9uKSBAbGluaykKLSAgICAgKChsaW5rX2Rlc3RpbmF0aW9u
KSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoKGNvZGVfc3BhbikgQGZvbnQtbG9jay1z
dHJpbmctZmFjZSkKKyAgICcoKChsaW5rX2Rlc3RpbmF0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChjb2RlX3NwYW4pIEBtYXJrZG93bi10cy1jb2Rl
LXNwYW4pCiAgICAgICgoY29kZV9zcGFuX2RlbGltaXRlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5
LWRlbGltaXRlcikKLSAgICAgKChlbXBoYXNpcykgQGl0YWxpYykKLSAgICAgKChzdHJvbmdfZW1w
aGFzaXMpIEBib2xkKQotICAgICAoaW5saW5lX2xpbmsgKGxpbmtfdGV4dCkgQGxpbmspCi0gICAg
IChpbmxpbmVfbGluayAobGlua19kZXN0aW5hdGlvbikgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkK
LSAgICAgKHNob3J0Y3V0X2xpbmsgKGxpbmtfdGV4dCkgQGxpbmspKQorICAgICAoKGVtcGhhc2lz
KSBAbWFya2Rvd24tdHMtZW1waGFzaXMpCisgICAgICgoc3Ryb25nX2VtcGhhc2lzKSBAbWFya2Rv
d24tdHMtYm9sZCkKKyAgICAgKChzdHJpa2V0aHJvdWdoKSBAbWFya2Rvd24tdHMtc3RyaWtldGhy
b3VnaCkKKyAgICAgKGlubGluZV9saW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1saW5rLW5vZGUpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5rIChsaW5rX3RleHQpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5rIChs
aW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoY29sbGFw
c2VkX3JlZmVyZW5jZV9saW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5r
LW5vZGUpCisgICAgIChzaG9ydGN1dF9saW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1saW5rLW5vZGUpCisgICAgIChpbWFnZSAoaW1hZ2VfZGVzY3JpcHRpb24pIEBtYXJrZG93
bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgICgodXJpX2F1dG9saW5rKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktYXV0b2xpbmspCisgICAgICgoZW1haWxfYXV0b2xpbmspIEBtYXJrZG93bi10
cy0tZm9udGlmeS1hdXRvbGluaykKKyAgICAgKGlubGluZV9saW5rIChsaW5rX3RpdGxlKSBAbWFy
a2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChiYWNrc2xhc2hfZXNjYXBlKSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSkKKyAgICAgKChlbnRpdHlfcmVmZXJl
bmNlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZW50aXR5KQorICAgICAoKG51bWVyaWNfY2hhcmFj
dGVyX3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWVudGl0eSkKKyAgICAgKChodG1s
X3RhZykgQG1hcmtkb3duLXRzLWh0bWwtdGFnKQorICAgICAoKGxhdGV4X2Jsb2NrKSBAbWFya2Rv
d24tdHMtLWZvbnRpZnktbGF0ZXgtYmxvY2spKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlu
bGluZQogICAgOmZlYXR1cmUgJ3BhcmFncmFwaC1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5k
CiAgICAnKChlbXBoYXNpc19kZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0
ZXIpCi0gICApKQogCi07OzsgSW1lbnUKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCisg
ICA6ZmVhdHVyZSAnaW1hZ2UtcHJldmlldworICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGlt
YWdlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaW1hZ2UpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRz
LWltZW51LW5vZGUtcCAobm9kZSkKKzs7OyBJbWVudToKKworKGRlZnVuIG1hcmtkb3duLXRzLS1p
bWVudS1oZWFkaW5nLW5vZGUtcCAobm9kZSkKICAgIkNoZWNrIGlmIE5PREUgaXMgYSB2YWxpZCBl
bnRyeSB0byBpbWVudS4iCi0gIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9k
ZS1wYXJlbnQgbm9kZSkpCi0gICAgICAgICAiYXR4X2hlYWRpbmciKSkKKyAgKGFuZCAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJpbmxpbmUiKQorICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAgICAgICJh
dHhfaGVhZGluZyIpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24g
KG5vZGUpCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmctbmFtZS1mdW5jdGlvbiAo
bm9kZSkKICAgIlJldHVybiBhbiBpbWVudSBlbnRyeSBpZiBOT0RFIGlzIGEgdmFsaWQgaGVhZGVy
LiIKICAgKGxldCAoKG5hbWUgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKLSAgICAoaWYgKG1h
cmtkb3duLXRzLWltZW51LW5vZGUtcCBub2RlKQotCSh0aHJlYWQtZmlyc3QgKHRyZWVzaXQtbm9k
ZS1wYXJlbnQgbm9kZSkgKHRyZWVzaXQtbm9kZS10ZXh0KSkKKyAgICAoaWYgKG1hcmtkb3duLXRz
LS1pbWVudS1oZWFkaW5nLW5vZGUtcCBub2RlKQorICAgICAgICAoY2FyIChzcGxpdC1zdHJpbmcg
KHRyZWVzaXQtbm9kZS10ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1u
b2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIiB0ICIgIikp
CiAgICAgICBuYW1lKSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSAo
bm9kZSkKLSAgIk1hdGNoIGEgaGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5n
LiIKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAgKG5vZGUpCisg
ICJDaGVjayBpZiBOT0RFIGlzIGFuIGluZm9fc3RyaW5nIChjb2RlIGJsb2NrIGhlYWRlcikuIgor
ICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImluZm9fc3RyaW5nIikKKyAg
ICAgICAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJsYW5ndWFnZSIpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5hbWUtZnVuY3Rpb24gKG5vZGUpCisgICJS
ZXR1cm4gYW4gaW1lbnUgZW50cnkgbmFtZSBmb3IgYSBjb2RlIGJsb2NrIGluZm9fc3RyaW5nIE5P
REUuCitVc2VzIHRoZSBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVyIHRoZSBsYW5ndWFnZSBuYW1lLiIK
KyAgKHdoZW4tbGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJs
YW5ndWFnZSIpKQorICAgICAgICAgICAgICAoZGVzYyAoc3RyaW5nLXRyaW0KKyAgICAgICAgICAg
ICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAg
ICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUpCisgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKSkpCisgICAgKGZvcm1hdCAiJXM6ICVzIiAodHJl
ZXNpdC1ub2RlLXRleHQgbGFuZy1ub2RlKSBkZXNjKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
b3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCisgICJNYXRjaCBOT0RFIGlmIGl0IGlzIGEgaGllcmFy
Y2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIKICAgKGFuZCAoZXF1YWwgKHRyZWVz
aXQtbm9kZS10eXBlIG5vZGUpICJzZWN0aW9uIikKICAgICAgICAod2hlbi1sZXQqICgoY2hpbGQg
KHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1u
b2RlLXR5cGUgY2hpbGQpICJhdHhfaGVhZGluZyIpKSkpCiAKLTs7OyBDb2RlIGJsb2NrcwotCi0o
ZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1jb25maWd1cmVkLWxhbmd1YWdlcyBuaWwKLSAgIkEg
bGlzdCBvZiBsYW5ndWFnZXMgdGhhdCBoYXZlIGJlZW4gc2V0dXAgaW4gdGhpcyBidWZmZXIuCi0K
LVdoZW4gYSBjb2RlIGJsb2NrIG9mIGEgbGFuZ3VhZ2UgYXBwZWFycywgYG1hcmtkb3duLXRzLW1v
ZGUnIGxvYWRzCi1sYW5ndWFnZSBzZXR1cHMgbGlrZSBmb250LWxvY2sgYW5kIGluZGVudGF0aW9u
IGZvciB0aGF0IGxhbmd1YWdlLCBhbmQKLWFkZHMgdGhhdCBsYW5ndWFnZSB0byB0aGlzIGxpc3Qu
IikKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1w
YXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11bSBBVFggaGVhZGluZyBsZXZlbCBp
biBNYXJrZG93biAoaDHigJNoNikuCitEZWZpbmVkIGJ5IHRoZSBDb21tb25NYXJrIHNwZWMgYW5k
IHRoZSB0cmVlLXNpdHRlciBncmFtbWFyLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGlu
Zy1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBhdHhfaGVhZGluZyBub2RlIGF0IG9yIGJlZm9y
ZSBwb2ludCwgb3IgbmlsLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCAo
cG9pbnQpICdtYXJrZG93bikpKQorICAgIChpZiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5v
ZGUpICJhdHhfaGVhZGluZyIpCisgICAgICAgIG5vZGUKKyAgICAgICh0cmVlc2l0LXBhcmVudC11
bnRpbAorICAgICAgIG5vZGUgKGxhbWJkYSAobikgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBu
KSAiYXR4X2hlYWRpbmciKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGluZy1sZXZl
bCAoaGVhZGluZykKKyAgIlJldHVybiB0aGUgbGV2ZWwgb2YgSEVBRElORyBub2RlICgxIHRvIGBt
YXJrZG93bi10cy0tcGFyc2VyLWhlYWRpbmctbWF4LWxldmVsJykuIgorICAobGV0ICgobWFya2Vy
ICh0cmVlc2l0LW5vZGUtY2hpbGQgaGVhZGluZyAwKSkpCisgICAgKGxlbmd0aCAodHJlZXNpdC1u
b2RlLXRleHQgbWFya2VyIHQpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1w
b2ludCAoKQorICAiUmV0dXJuIHRoZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4iCisg
ICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkK
KyAgICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG4pICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy1wcm9tb3RlICgpCisgICJQcm9tb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2lu
dC4KK0ZvciBoZWFkaW5ncywgZGVjcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4KK0Zv
ciBsaXN0IGl0ZW1zLCBkZWNyZWFzZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNpZW50
LW1hcmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3MgaW4g
dGhlIHJlZ2lvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5zaWVu
dC1tYXJrLW1vZGUgbWFyay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRl
bW90ZS1yZWdpb24gLTEpKQorICAgKChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQor
ICAgIChtYXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQgKG1h
cmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LWRlbW90ZSAoKQorICAiRGVtb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4K
K0ZvciBoZWFkaW5ncywgaW5jcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0ZvciBs
aXN0IGl0ZW1zLCBpbmNyZWFzZSBuZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1h
cmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0aGUg
cmVnaW9uLiIKKyAgKGludGVyYWN0aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50LW1h
cmstbW9kZSBtYXJrLWFjdGl2ZSkKKyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3Rl
LXJlZ2lvbiAxKSkKKyAgICgobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAo
bWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rvd24t
dHMtLXByb21vdGUtb3ItZGVtb3RlIDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90
ZS1vci1kZW1vdGUgKGRlbHRhKQorICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5IERF
TFRBIGxldmVscy4KK05lZ2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRpdmUg
ZGVtb3RlcyAobW9yZSAjKS4iCisgICh3aGVuLWxldCogKChoZWFkaW5nIChtYXJrZG93bi10cy0t
aGVhZGluZy1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChtYXJrZXIgKHRyZWVzaXQtbm9kZS1j
aGlsZCBoZWFkaW5nIDApKQorICAgICAgICAgICAgICAobGV2ZWwgKGxlbmd0aCAodHJlZXNpdC1u
b2RlLXRleHQgbWFya2VyIHQpKSkKKyAgICAgICAgICAgICAgKG5ldy1sZXZlbCAoKyBsZXZlbCBk
ZWx0YSkpKQorICAgICh3aGVuIChhbmQgKD49IG5ldy1sZXZlbCAxKSAoPD0gbmV3LWxldmVsIG1h
cmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQorICAgICAgKHNhdmUtZXhjdXJz
aW9uCisgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXIpKQorICAg
ICAgICAoZGVsZXRlLXJlZ2lvbiAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikKKyAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgKGluc2Vy
dCAobWFrZS1zdHJpbmcgbmV3LWxldmVsID8jKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
cHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNoYW5nZSBhbGwgaGVhZGluZ3Mg
aW4gdGhlIGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgorTmVnYXRpdmUgREVMVEEgcHJv
bW90ZXMgKGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3JlICMpLiIKKyAgKGxldCAoKGJl
ZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAo
c2F2ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgKHdoaWxlICg8IChw
b2ludCkgZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQp
CisgICAgICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSBkZWx0YSkpCisgICAg
ICAgIChmb3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXN1YnRy
ZWUtdXAgKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAgcGFz
dCB0aGUgcHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtkb3duLXRzLS1saXN0LW1vdmUg
dCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIHQpKSkKIAotKGRl
ZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyAobW9kZSkKLSAgIkhhcnZl
c3QgdHJlZS1zaXR0ZXIgY29uZmlncyBmcm9tIE1PREUuCi1SZXR1cm4gYSBwbGlzdCB3aXRoIHRo
ZSBmb2xsb3dpbmcga2V5cyBhbmQgdmFsdWU6CisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS1zdWJ0
cmVlLWRvd24gKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93
biBwYXN0IHRoZSBuZXh0IHNpYmxpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZiAobWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAgIChtYXJrZG93bi10cy0tbGlzdC1tb3Zl
IG5pbCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIG5pbCkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLXNlY3Rpb24tZm9sZGVkLXAgKHNlY3Rpb24pCisgICJSZXR1
cm4gbm9uLW5pbCBpZiBTRUNUSU9OJ3MgaGVhZGluZyBpcyBmb2xkZWQuCitDaGVja3Mgd2hldGhl
ciB0aGUgZW5kIG9mIHRoZSBoZWFkaW5nIGxpbmUgaGFzIGFuIG91dGxpbmUKK2ludmlzaWJsZSBv
dmVybGF5LiIKKyAgKGxldCAoKGhlYWRpbmcgKHRyZWVzaXQtbm9kZS1jaGlsZCBzZWN0aW9uIDAp
KSkKKyAgICAod2hlbiAoYW5kIGhlYWRpbmcKKyAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgaGVhZGluZykgImF0eF9oZWFkaW5nIikpCisgICAgICAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGhlYWRpbmcpKQorICAg
ICAgICAob3V0bGluZS1pbnZpc2libGUtcCAocG9zLWVvbCkpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duICh1cCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQg
c2VjdGlvbiBzdWJ0cmVlLgorSWYgVVAgaXMgbm9uLW5pbCwgbW92ZSBwYXN0IHRoZSBwcmV2aW91
cyBzaWJsaW5nOyBvdGhlcndpc2UgbW92ZSBkb3duLgorUHJlc2VydmVzIHRoZSBmb2xkaW5nIHN0
YXRlIG9mIGJvdGggc2VjdGlvbnMuIgorICAod2hlbi1sZXQqICgoc2VjdGlvbiAobWFya2Rvd24t
dHMtLXNlY3Rpb24tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAoc2libGluZyAoaWYgdXAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIHNlY3Rp
b24pCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcg
c2VjdGlvbikpKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIHNpYmxpbmcp
ICJzZWN0aW9uIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgc2VjdGlvbikp
CisgICAgICAgICAgICAgKHNlY29uZCAoaWYgdXAgc2VjdGlvbiBzaWJsaW5nKSkKKyAgICAgICAg
ICAgICAoZmlyc3QtZm9sZGVkIChtYXJrZG93bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBmaXJzdCkp
CisgICAgICAgICAgICAgKHNlY29uZC1mb2xkZWQgKG1hcmtkb3duLXRzLS1zZWN0aW9uLWZvbGRl
ZC1wIHNlY29uZCkpCisgICAgICAgICAgICAgKGZpcnN0LXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3Rh
cnQgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFy
dCBzZWNvbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNl
Y29uZCkpCisgICAgICAgICAgICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBh
bmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXIt
c3Vic3RyaW5nIGZpcnN0LXN0YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0
LXRleHQgKHN0cmluZy10cmltLXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFy
YXRvciAoc3Vic3RyaW5nIGZpcnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAg
ICAgICAoc2Vjb25kLXJhdyAoYnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVu
ZCkpCisgICAgICAgICAgICAgKHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQt
cmF3KSkKKyAgICAgICAgICAgICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5n
dGggc2Vjb25kLXRleHQpKSkKKyAgICAgICAgICAgICAoY29sIChjdXJyZW50LWNvbHVtbikpCisg
ICAgICAgICAgICAgKGxpbmUtb2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNp
dC1ub2RlLXN0YXJ0IHNlY3Rpb24pKSkpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1z
dGFydCBzZWNvbmQtZW5kKQorICAgICAgICAoZ290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAg
ICAoaW5zZXJ0IHNlY29uZC10ZXh0IHNlcGFyYXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAg
ICAgICA7OyBSZXN0b3JlIGZvbGRpbmcgc3RhdGUKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAgICAgICAod2hlbiAob3V0bGlu
ZS1vbi1oZWFkaW5nLXApCisgICAgICAgICAgICAoaWYgc2Vjb25kLWZvbGRlZAorICAgICAgICAg
ICAgICAgIChvdXRsaW5lLWhpZGUtc3VidHJlZSkKKyAgICAgICAgICAgICAgKG91dGxpbmUtc2hv
dy1zdWJ0cmVlKSkpCisgICAgICAgICAgKG91dGxpbmUtbmV4dC1oZWFkaW5nKQorICAgICAgICAg
ICh3aGVuIChvdXRsaW5lLW9uLWhlYWRpbmctcCkKKyAgICAgICAgICAgIChpZiBmaXJzdC1mb2xk
ZWQKKyAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXN1YnRyZWUpCisgICAgICAgICAgICAg
IChvdXRsaW5lLXNob3ctc3VidHJlZSkpKSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAg
ICAgICAgICAgICAgICAgICAgICAgZmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgr
IGZpcnN0LXN0YXJ0IChsZW5ndGggc2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAobGVuZ3RoIHNlcGFyYXRvcikpKSkKKyAgICAgICAgKGZvcndhcmQtbGluZSBsaW5lLW9mZnNl
dCkKKyAgICAgICAgKG1vdmUtdG8tY29sdW1uIGNvbCkpKSkpCisKKzs7OyBMaXN0IG1hbmlwdWxh
dGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveCAoKQorICAiVG9nZ2xl
IHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1cnJlbnQgbGluZS4KK1N3aXRjaGVzIGJl
dHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVyYWN0aXZlKQorICAod2hlbi1sZXQqICgo
cG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikgKHBvaW50KSkpCisgICAg
ICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93bikpCisgICAgICAg
ICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAg
bm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJl
ZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICh3aGVuLWxldCogKChtYXJr
ZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoY2hpbGQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBjaGls
ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygidGFza19saXN0X21hcmtl
cl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xp
c3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAobGV0ICgoYmVnICh0cmVlc2l0LW5vZGUt
c3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9kZS1lbmQgbWFya2Vy
KSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbWFya2Vy
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX2NoZWNrZWQi
KSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQor
ICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgKGluc2VydCAoaWYg
Y2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0
ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5uZXJtb3N0IGxpc3RfaXRlbSBub2RlIGNv
bnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhlIHBvc2l0aW9uIGFmdGVyIGBiYWNrLXRv
LWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCithIGxpbmUncyBsZWFkaW5nIHdoaXRlc3Bh
Y2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBsaW5lLAorbm90IHRvIGEgcHJlY2VkaW5n
IGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVzcGFjZS4KK0luc2lkZSBibG9jayBxdW90
ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24gcGFzdAordGhlIGA+JyBtYXJr
ZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50
YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHBv
cyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9sIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv
bikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgKG9yIChs
ZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgbm9k
ZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAgICAgIDs7IFZlcmlmeSB0aGUg
Y3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdzIHJhbmdlLgorICAgICAgICAgIDs7IGB0
cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2RlIGluc2lkZSBhIGxpc3RfaXRlbQorICAg
ICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBhIHByZWNlZGluZyBsaW5lLgorICAgICAg
ICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAgICAgKDw9ICh0cmVlc2l0LW5v
ZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5v
ZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBpdGVtKSkKKyAgICAgICAgOzsgV2hlbiBi
YWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2NrIHF1b3RlIG1hcmtlcnMsCisgICAgICAg
IDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0aGUgY29udGVudCBwb3NpdGlvbi4KKyAg
ICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdoZW4gKD4gY29udGVudC1wb3MgcG9zKQor
ICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0cmVlc2l0LW5vZGUtYXQgY29udGVudC1w
b3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVu
dC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY25vZGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl
cXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAgICAgICAg
ICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKDw9ICh0cmVl
c2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKD49
ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICAgICAgICBpdGVtKSkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCAoaXRlbSkKKyAg
IlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3QgbWFya2VyIGluY2x1ZGluZyB0cmFpbGlu
ZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkK
KyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFy
a2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gKGl0ZW0pCisg
ICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBmb3IgSVRFTSwgY2xhbXBlZCB0byBmdWxs
IGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5p
bmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBpdCBkb2VzIG5vdCBleHRlbmQgaW50byB0
aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGljaCB0cmVlLXNpdHRlciBtYXkgaW5jbHVk
ZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAg
ICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpCisgICAgICAgICAgICAg
ICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAgKGVuZCAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpCisg
ICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9u
KSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1v
cmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBub24tbmlsIGlmIElURU0gaXMgYW4gb3Jk
ZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG1hcmtlcikg
Imxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LXByb21vdGUt
b3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVzdGluZyBvZiB0aGUgbGlzdCBpdGVtIGF0
IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRlbW90ZSAoaW5kZW50KTsgb3RoZXJ3aXNl
IHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1iZXJlZCkgbGlzdCBpdGVtcyBhcmUgc2tp
cHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25vdCBzdXBwb3J0IG5lc3RpbmcgdGhlbSBi
eSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1p
dGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJlZ2lvbiAobWFya2Rvd24tdHMtLWxpc3Qt
aXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAgIChiZWcgKGNhciByZWdpb24pKQorICAg
ICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisgICAgKHdoZW4gKG1hcmtkb3duLXRzLS1s
aXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAodXNlci1lcnJvciAiT3JkZXJlZCBsaXN0
IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIgbGltaXRhdGlvbikiKSkKKyAgICAoaWYg
ZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50IGJ5IG1hcmtlciB3aWR0aCwgb25seSBp
ZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7IHNpYmxpbmcgdG8gbmVzdCB1bmRlciAo
bGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5n
IGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKG1hcmtkb3duLXRzLS1s
aXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7OyBQcm9tb3RlOiBkZWRlbnQgdG8gZ3Jh
bmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUt
cGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFuZHBhcmVudCAoYW5kIHBhcmVudC1saXN0
ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0KSkpCisgICAgICAgICAgICAgKGl0ZW0t
Y29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
YmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAgKHdoZW4gKGFuZCBncmFuZHBh
cmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgZ3JhbmRw
YXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAgICAgICAgICg+IGl0ZW0tY29sIDApKQor
ICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBncmFuZHBhcmVudCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0aW9uKSkpKQorICAgICAg
ICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0gZ3AtY29sIGl0ZW0tY29sKSkpKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIChub2RlKQorICAiUmV0dXJuIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyBOT0RFJ3Mgc3RhcnQuIgorICAoc2F2
ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlz
dC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRlbSBhdCBwb2ludC4KK0lmIFVQIGlzIG5v
bi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93
bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50
KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIGl0ZW0pKSkpCisgICAgKHdoZW4gKGVx
dWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAibGlzdF9pdGVtIikKKyAgICAgIChsZXQq
ICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisgICAgICAgICAgICAgKHNlY29uZCAoaWYg
dXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3Qtc3RhcnQgKG1hcmtkb3duLXRz
LS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAgICAgICAoc2Vjb25kLXN0YXJ0IChtYXJr
ZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtZW5k
ICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAgICAgOzsgRXh0cmFjdCBzZXBh
cmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgICAg
ICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0YXJ0IHNlY29uZC1zdGFydCkp
CisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmltLXJpZ2h0IGZpcnN0LXJhdykp
CisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZpcnN0LXJhdyAobGVuZ3RoIGZp
cnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAoYnVmZmVyLXN1YnN0cmluZyBz
ZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAgKHNlY29uZC10ZXh0IChzdHJp
bmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAgICAodHJhaWxpbmcgKHN1YnN0
cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkKKyAgICAgICAgICAgICAoY29s
IChjdXJyZW50LWNvbHVtbikpCisgICAgICAgICAgICAgKGxpbmUtb2Zmc2V0ICgtIChsaW5lLW51
bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUt
bnVtYmVyLWF0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1zdGFydCBpdGVtKSkpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gZmlyc3Qtc3RhcnQgc2Vj
b25kLWVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAgICAgKGluc2Vy
dCBzZWNvbmQtdGV4dCBzZXBhcmF0b3IgZmlyc3QtdGV4dCB0cmFpbGluZykKKyAgICAgICAgKGdv
dG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Qtc3RhcnQKKyAgICAg
ICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5ndGggc2Vjb25kLXRleHQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRvcikpKSkKKyAgICAgICAgKGZvcndh
cmQtbGluZSBsaW5lLW9mZnNldCkKKyAgICAgICAgKG1vdmUtdG8tY29sdW1uIGNvbCkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy1yZW51bWJlci1saXN0ICgmb3B0aW9uYWwgc3RhcnQpCisgICJS
ZW51bWJlciB0aGUgb3JkZXJlZCBsaXN0IGF0IHBvaW50LgorTnVtYmVycyBhcmUgYXNzaWduZWQg
c2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0IGl0ZW0ncworbnVtYmVyLiAgV2l0
aCBhIHByZWZpeCBhcmd1bWVudCBTVEFSVCwgc3RhcnQgbnVtYmVyaW5nIGZyb20gdGhhdAordmFs
dWUgaW5zdGVhZC4gIERvZXMgbm90aGluZyBmb3IgdW5vcmRlcmVkIGxpc3RzLiIKKyAgKGludGVy
YWN0aXZlICJQIikKKyAgKHdoZW4tbGV0KiAoKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
YXQtcG9pbnQpKQorICAgICAgICAgICAgICAobGlzdC1ub2RlICh0cmVlc2l0LW5vZGUtcGFyZW50
IGl0ZW0pKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGxpc3Qtbm9kZSkg
Imxpc3QiKQorICAgICAgKGxldCogKChjaGlsZHJlbiAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGxp
c3Qtbm9kZSkpCisgICAgICAgICAgICAgKGl0ZW1zIChzZXEtZmlsdGVyIChsYW1iZGEgKG4pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZSBuKSAibGlzdF9pdGVtIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuKSkKKyAgICAgICAgICAgICAoZmlyc3QtbWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgKGNh
ciBpdGVtcykgMCkpCisgICAgICAgICAgICAgKG1hcmtlci10eXBlICh0cmVlc2l0LW5vZGUtdHlw
ZSBmaXJzdC1tYXJrZXIpKSkKKyAgICAgICAgKHdoZW4gKG1lbWJlciBtYXJrZXItdHlwZSAnKCJs
aXN0X21hcmtlcl9kb3QiICJsaXN0X21hcmtlcl9wYXJlbnRoZXNpcyIpKQorICAgICAgICAgIChs
ZXQqICgoYmFzZSAoaWYgc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcmVmaXgt
bnVtZXJpYy12YWx1ZSBzdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRv
LW51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgZmly
c3QtbWFya2VyIHQpKSkpCisgICAgICAgICAgICAgICAgIChjb3VudCAobGVuZ3RoIGl0ZW1zKSkK
KyAgICAgICAgICAgICAgICAgOzsgU3RhcnQgZnJvbSB0aGUgbGFzdCBudW1iZXIgYW5kIHdvcmsg
YmFja3dhcmRzIHNvCisgICAgICAgICAgICAgICAgIDs7IHRoYXQgZWFybGllciBidWZmZXIgcG9z
aXRpb25zIHJlbWFpbiB2YWxpZC4KKyAgICAgICAgICAgICAgICAgKG51bSAoKyBiYXNlIGNvdW50
IC0xKSkpCisgICAgICAgICAgICAoZG9saXN0IChpdCAocmV2ZXJzZSBpdGVtcykpCisgICAgICAg
ICAgICAgIChsZXQqICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaXQgMCkpCisgICAgICAg
ICAgICAgICAgICAgICAobWFya2VyLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAg
ICAgICAgICAgICAgICAgICAgKGJvbCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAg
ICAgICAgICAgICAgICAgIDs7IEZ1bGwgdGV4dCBmcm9tIGJvbCB0byBlbmQgb2YgbWFya2VyIGlu
Y2x1ZGVzCisgICAgICAgICAgICAgICAgICAgICA7OyBhbnkgbGVhZGluZyB3aGl0ZXNwYWNlLCB0
aGUgbnVtYmVyLCBhbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICA7OyBzZXBhcmF0b3IgKGUu
Zy4sICIuICIgb3IgIi5cdCIpLgorICAgICAgICAgICAgICAgICAgICAgKGZ1bGwtdGV4dCAoYnVm
ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib2wgbWFya2VyLWVuZCkpCisgICAgICAgICAgICAgICAgICAgICAoaW5kZW50LXN0cgor
ICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpWzAtOV0iIGZ1bGwtdGV4dCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIGZ1bGwtdGV4dCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgICAgICAgICAgICAgIChzdWZmaXgtc3RyCisg
ICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJcXGBbWzpibGFuazpdXSpbMC05XStcXCguKlxcKVxcJyIgZnVsbC10ZXh0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgZnVsbC10ZXh0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgIi4gIikpCisgICAgICAgICAgICAgICAgICAgICAobmV3LXRl
eHQgKGNvbmNhdCBpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobnVtYmVyLXRvLXN0cmluZyBudW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdWZmaXgtc3RyKSkpCisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBib2wgbWFya2VyLWVuZCkKKyAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgYm9sKQorICAgICAgICAgICAgICAgICAgKGluc2VydCBu
ZXctdGV4dCkpKQorICAgICAgICAgICAgICAoY2wtZGVjZiBudW0pKQorICAgICAgICAgICAgKG1l
c3NhZ2UgIlJlbnVtYmVyZWQgJWQgaXRlbXMiIGNvdW50KSkpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIChpdGVtKQorICAiUmV0dXJuIHRoZSBtYXJrZXIg
c3RyaW5nIGZvciBhIG5ldyBpdGVtIGZvbGxvd2luZyBJVEVNLgorRm9yIHVub3JkZXJlZCBpdGVt
cywgcmV1c2UgdGhlIHNhbWUgbWFya2VyIGNoYXJhY3Rlci4KK0ZvciBvcmRlcmVkIGl0ZW1zLCBp
bmNyZW1lbnQgdGhlIG51bWJlci4iCisgIChsZXQqICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hp
bGQgaXRlbSAwKSkKKyAgICAgICAgICh0eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBtYXJrZXIpKQor
ICAgICAgICAgKGluZGVudCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAoZ290
by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpCisgICAgICAgICAgICAgICAgICAgKGN1
cnJlbnQtaW5kZW50YXRpb24pKSkKKyAgICAgICAgIChwcmVmaXggKG1ha2Utc3RyaW5nIGluZGVu
dCA/XHMpKSkKKyAgICAocGNhc2UgdHlwZQorICAgICAgKCJsaXN0X21hcmtlcl9taW51cyIgKGNv
bmNhdCBwcmVmaXggIi0gIikpCisgICAgICAoImxpc3RfbWFya2VyX3BsdXMiICAoY29uY2F0IHBy
ZWZpeCAiKyAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJfc3RhciIgIChjb25jYXQgcHJlZml4ICIq
ICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9kb3QiCisgICAgICAgKGxldCAoKG51bSAoc3RyaW5n
LXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQpKSkpCisgICAgICAgICAoY29u
Y2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAoMSsgbnVtKSkgIi4gIikpKQorICAgICAgKCJs
aXN0X21hcmtlcl9wYXJlbnRoZXNpcyIKKyAgICAgICAobGV0ICgobnVtIChzdHJpbmctdG8tbnVt
YmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkpKSkKKyAgICAgICAgIChjb25jYXQgcHJl
Zml4IChudW1iZXItdG8tc3RyaW5nICgxKyBudW0pKSAiKSAiKSkpCisgICAgICAoXyAoY29uY2F0
IHByZWZpeCAiLSAiKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1s
aW5lIChpdGVtKQorICAiUmV0dXJuIHRoZSBtYXJrZXIgc3RyaW5nIGZvciBhIG5ldyBpdGVtIGZv
bGxvd2luZyBJVEVNLgorV2hlbiB0aGUgY3VycmVudCBsaW5lIGhhcyBhIGxpc3QgbWFya2VyIHBh
dHRlcm4gYXQgYSBkaWZmZXJlbnQKK2luZGVudGF0aW9uIHRoYW4gSVRFTSAoZS5nLiwgYSBuZXN0
ZWQgbWFya2VyIHRoYXQgdGhlIGdyYW1tYXIgZGlkCitub3QgcmVjb2duaXplIGFzIGEgbGlzdF9p
dGVtKSwgdXNlIHRoZSBjdXJyZW50IGxpbmUncyBtYXJrZXIuCitPdGhlcndpc2UsIGZhbGwgYmFj
ayB0byBgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyJy4iCisgIChsZXQgKChtYXJr
ZXItbm9kZSAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQorICAgIChpZiAoPSAobGluZS1u
dW1iZXItYXQtcG9zKQorICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNpdC1u
b2RlLXN0YXJ0IG1hcmtlci1ub2RlKSkpCisgICAgICAgIDs7IEl0ZW0ncyBtYXJrZXIgaXMgb24g
dGhlIGN1cnJlbnQgbGluZTogdXNlIGl0IG5vcm1hbGx5LgorICAgICAgICAobWFya2Rvd24tdHMt
LWxpc3QtaXRlbS1uZXctbWFya2VyIGl0ZW0pCisgICAgICA7OyBJdGVtJ3MgbWFya2VyIGlzIG9u
IGEgZGlmZmVyZW50IGxpbmUuICBUaGUgcGFyc2VyIG1heSBoYXZlCisgICAgICA7OyBmYWlsZWQg
dG8gcmVjb2duaXplIGEgbmVzdGVkIG1hcmtlciAoZS5nLiwgYSBsb25lIGAgIC0gJworICAgICAg
OzsgcGFyc2VkIGFzIGEgc2V0ZXh0IGhlYWRpbmcpLiAgUmVhZCB0aGUgY3VycmVudCBsaW5lLgor
ICAgICAgKGxldCAoKGxpbmUgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAg
ICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9u
KSkpKQorICAgICAgICAoaWYgKHN0cmluZy1tYXRjaAorICAgICAgICAgICAgICJcXGBcXChbWzpi
bGFuazpdXSpcXClcXChbLSorXSBcXHxcXChbMC05XStcXClcXChbLildIFxcKVxcKSIKKyAgICAg
ICAgICAgICBsaW5lKQorICAgICAgICAgICAgKGxldCAoKGluZGVudCAobWF0Y2gtc3RyaW5nIDEg
bGluZSkpCisgICAgICAgICAgICAgICAgICAobnVtIChtYXRjaC1zdHJpbmcgMyBsaW5lKSkKKyAg
ICAgICAgICAgICAgICAgIChzdWZmaXggKG1hdGNoLXN0cmluZyA0IGxpbmUpKQorICAgICAgICAg
ICAgICAgICAgKHVub3JkZXJlZCAobWF0Y2gtc3RyaW5nIDIgbGluZSkpKQorICAgICAgICAgICAg
ICAoaWYgbnVtCisgICAgICAgICAgICAgICAgICAoY29uY2F0IGluZGVudCAobnVtYmVyLXRvLXN0
cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxKyAoc3RyaW5nLXRvLW51
bWJlciBudW0pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4KQorICAgICAgICAg
ICAgICAgIChjb25jYXQgaW5kZW50IHVub3JkZXJlZCkpKQorICAgICAgICAgIDs7IE5vIG1hcmtl
ciBwYXR0ZXJuIG9uIGN1cnJlbnQgbGluZTogdXNlIGl0ZW0ncyBtYXJrZXIuCisgICAgICAgICAg
KG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBpdGVtKSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1kZXB0aCAoJm9wdGlvbmFsIHBvcykKKyAgIkNv
dW50IHRoZSBudW1iZXIgb2YgYD4nIGJsb2NrIHF1b3RlIG1hcmtlcnMgb24gdGhlIGxpbmUgYXQg
UE9TLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKHdoZW4gcG9zIChnb3RvLWNoYXIgcG9zKSkK
KyAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgKGxldCAoKGNvdW50IDApKQorICAgICAgKHdo
aWxlIChhbmQgKG5vdCAoZW9scCkpCisgICAgICAgICAgICAgICAgICAobWVtcSAoY2hhci1hZnRl
cikgJyg/PiA/XHMgP1x0KSkpCisgICAgICAgICh3aGVuIChlcSAoY2hhci1hZnRlcikgPz4pCisg
ICAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpCisgICAgICAgIChmb3J3YXJkLWNoYXIg
MSkpCisgICAgICBjb3VudCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbmV3bGluZSAoKQorICAi
SW5zZXJ0IGEgbmV3bGluZSwgY29udGludWluZyB0aGUgY3VycmVudCBjb250ZXh0LgorSW5zaWRl
IGEgbGlzdCBpdGVtLCB0aGUgbmV3IGxpbmUgaXMgaW5kZW50ZWQgdG8gdGhlIGl0ZW0ncyB0ZXh0
Citjb2x1bW4gc28gdGhlIHBhcmFncmFwaCBjb250aW51ZXMuICBBIHNlY29uZCBSRVQgb24gYSBi
bGFuaworY29udGludWF0aW9uIGxpbmUgcmVtb3ZlcyB0aGUgaW5kZW50YXRpb24sIGRyb3BwaW5n
IHBvaW50IHRvCitjb2x1bW4gMCBzbyB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBlbmRzIHRoZSBs
aXN0LgorSW5zaWRlIGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGluZSBpbmNsdWRlcyB0aGUgcXVv
dGUgcHJlZml4LgorT3RoZXJ3aXNlLCBpbnNlcnQgYSBwbGFpbiBuZXdsaW5lLiIKKyAgKGludGVy
YWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikgKHBvaW50KSkKKyAgICAgICAg
ICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgOzsgVHJlZS1zaXR0ZXIgbWF5IHJlcG9ydCBh
IG5vZGUgaW5zaWRlIGEgYmxvY2tfcXVvdGUgZXZlbgorICAgICAgICAgOzsgd2hlbiBwb2ludCBp
cyBvbiBhIGJsYW5rIGxpbmUgcGFzdCB0aGUgcXVvdGUgKHRoZSBub2RlCisgICAgICAgICA7OyBz
cGFuIGNhbiBleHRlbmQgYmV5b25kIHRoZSBgPicgbGluZXMpLiAgT25seSB0cmVhdCB0aGUKKyAg
ICAgICAgIDs7IGxpbmUgYXMgaW5zaWRlIGEgYmxvY2sgcXVvdGUgaWYgaXQgYWN0dWFsbHkgc3Rh
cnRzIHdpdGgKKyAgICAgICAgIDs7IGEgYD4nIG1hcmtlci4KKyAgICAgICAgIChpbi1icSAoYW5k
ICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9ja19xdW90ZVxcJyIpCisgICAgICAg
ICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgKGJl
Z2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1hdC1wICJb
IFx0XSo+IikpKSkKKyAgICAgICAgIChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBv
aW50KSkpCisgICAgKGNvbmQKKyAgICAgKGl0ZW0KKyAgICAgIChsZXQqICgoY29sIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pKQorICAgICAgICAgICAgIChicS1wcmVm
aXggKHdoZW4gaW4tYnEgKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKSkKKyAgICAg
ICAgICAgICA7OyBgY29sJyBpcyB0aGUgYWJzb2x1dGUgY29sdW1uIG9mIHRoZSBpdGVtJ3MgdGV4
dCwKKyAgICAgICAgICAgICA7OyB3aGljaCBpbnNpZGUgYSBibG9jayBxdW90ZSBpbmNsdWRlcyB0
aGUgIj4gIiBwcmVmaXgKKyAgICAgICAgICAgICA7OyB3aWR0aC4gIFNpbmNlIHdlIGluc2VydCBg
YnEtcHJlZml4JyBzZXBhcmF0ZWx5LCB3ZQorICAgICAgICAgICAgIDs7IG11c3Qgc3VidHJhY3Qg
aXRzIGxlbmd0aCB0byBhdm9pZCBkb3VibGluZyBpdC4KKyAgICAgICAgICAgICAoaW5kZW50ICgt
IGNvbCAobGVuZ3RoIChvciBicS1wcmVmaXggIiIpKSkpCisgICAgICAgICAgICAgOzsgVGhlIGN1
cnJlbnQgbGluZSBpcyAiYmxhbmsiIGlmIGl0IGNvbnRhaW5zIG9ubHkKKyAgICAgICAgICAgICA7
OyB3aGl0ZXNwYWNlIChvciBxdW90ZSBwcmVmaXggKyB3aGl0ZXNwYWNlKSBhbmQgbm8KKyAgICAg
ICAgICAgICA7OyBhY3R1YWwgdGV4dCBmcm9tIGEgcHJldmlvdXMgUkVUJ3MgY29udGludWF0aW9u
IGluZGVudC4KKyAgICAgICAgICAgICAoYmxhbmstbGluZS1wIChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJeWz4gXHRdKiQiKSkpCisgICAgICAgICAgICAgOzsgUG9pbnQgaXMgYmVmb3JlIHRo
ZSBpdGVtJ3MgdGV4dCAoYXQgb3IgYmVmb3JlIHRoZQorICAgICAgICAgICAgIDs7IG1hcmtlciku
ICBBIHBsYWluIG5ld2xpbmUgaXMgYXBwcm9wcmlhdGUgaGVyZSwgYWRkaW5nCisgICAgICAgICAg
ICAgOzsgY29udGludWF0aW9uIGluZGVudCB3b3VsZCBzaGlmdCB0aGUgZXhpc3RpbmcgY29udGVu
dAorICAgICAgICAgICAgIDs7IHRvIHRoZSByaWdodC4KKyAgICAgICAgICAgICAoYmVmb3JlLXRl
eHQtcCAoPD0gKGN1cnJlbnQtY29sdW1uKSBjb2wpKSkKKyAgICAgICAgKGNvbmQKKyAgICAgICAg
IChibGFuay1saW5lLXAKKyAgICAgICAgICA7OyBUaGUgdXNlciBwcmVzc2VkIFJFVCBvbiBhbiBh
bHJlYWR5LWJsYW5rIGNvbnRpbnVhdGlvbgorICAgICAgICAgIDs7IGxpbmUuICBJbnN0ZWFkIG9m
IGFkZGluZyB5ZXQgYW5vdGhlciBpbmRlbnRlZCBibGFuaworICAgICAgICAgIDs7IGxpbmUsIHJl
bW92ZSB0aGUgaW5kZW50YXRpb24gYW5kIGluc2VydCBhIHBsYWluCisgICAgICAgICAgOzsgbmV3
bGluZS4gIFRoaXMgZHJvcHMgcG9pbnQgdG8gY29sdW1uIDAsIHdoaWNoIGlzIHRoZQorICAgICAg
ICAgIDs7IG9ubHkgd2F5IHRoZSB0cmVlLXNpdHRlciBtYXJrZG93biBncmFtbWFyIGVuZHMgYSBs
aXN0OgorICAgICAgICAgIDs7IGJsYW5rIGxpbmVzIGFsb25lIGRvIE5PVCBlbmQgYSBsaXN0LCBv
bmx5CisgICAgICAgICAgOzsgbm9uLWluZGVudGVkIGNvbnRlbnQgZG9lcy4gIFNvIHRoaXMgZ2l2
ZXMgdGhlIHVzZXIgYQorICAgICAgICAgIDs7IG5hdHVyYWwgIlJFVCBSRVQgdG8gZXhpdCB0aGUg
bGlzdCIgd29ya2Zsb3cuCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5uaW5n
LXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKQorICAgICAgICAgIChuZXdsaW5lKSkKKyAg
ICAgICAgIChiZWZvcmUtdGV4dC1wCisgICAgICAgICAgOzsgUG9pbnQgaXMgb24gb3IgYmVmb3Jl
IHRoZSBsaXN0IG1hcmtlcjsganVzdCBpbnNlcnQgYQorICAgICAgICAgIDs7IHBsYWluIG5ld2xp
bmUgc28gdGhlIGl0ZW0gaXMgcHVzaGVkIGRvd24gdW5jaGFuZ2VkLgorICAgICAgICAgIChuZXds
aW5lKSkKKyAgICAgICAgICh0CisgICAgICAgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQor
ICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3aGVuIGJxLXByZWZpeCAoaW5zZXJ0IGJx
LXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgaW5kZW50ID9ccykpKSkp
KQorICAgICAoaW4tYnEKKyAgICAgIChsZXQgKChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9j
ay1xdW90ZS1wcmVmaXgpKQorICAgICAgICAgICAgOzsgQSBsaW5lIHdpdGggb25seSBxdW90ZSBt
YXJrZXJzIGFuZCB3aGl0ZXNwYWNlIChlLmcuLAorICAgICAgICAgICAgOzsgIj4gIikgaXMgImJs
YW5rIiBpbnNpZGUgdGhlIHF1b3RlLiAgUkVUIGhlcmUgZXhpdHMgdGhlCisgICAgICAgICAgICA7
OyBxdW90ZSwgc2FtZSBhcyBSRVQgb24gYSBibGFuayBjb250aW51YXRpb24gbGluZSBleGl0cyBh
CisgICAgICAgICAgICA7OyBsaXN0OiByZW1vdmUgdGhlIHByZWZpeCBhbmQgZHJvcCB0byBjb2x1
bW4gMC4KKyAgICAgICAgICAgIChibGFuay1saW5lLXAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIl5bPiBcdF0qJCIpKSkpCisgICAgICAgIChpZiBi
bGFuay1saW5lLXAKKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAoZGVsZXRlLXJl
Z2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpCisgICAg
ICAgICAgICAgIChuZXdsaW5lKSkKKyAgICAgICAgICAoZGVsZXRlLWhvcml6b250YWwtc3BhY2Up
CisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKGluc2VydCBicS1wcmVmaXgpKSkpCisg
ICAgIDs7IERlZmF1bHQ6IHBsYWluIG5ld2xpbmUuICBUaGlzIGFsc28gaGFuZGxlcyBlbXB0eSBs
aXN0IG1hcmtlcnMKKyAgICAgOzsgKGUuZy4sICItICIgd2l0aCBubyB0ZXh0KSB0aGF0IHRoZSBn
cmFtbWFyIHBhcnNlcyBhcyBFUlJPUgorICAgICA7OyBub2RlcyByYXRoZXIgdGhhbiBsaXN0X2l0
ZW0gbm9kZXMuCisgICAgIDs7CisgICAgIDs7IFdoZW4gdGhlIGN1cnJlbnQgbGluZSBpcyBibGFu
ayAod2hpdGVzcGFjZSBvbmx5KSwgaXQgaXMgYQorICAgICA7OyBjb250aW51YXRpb24taW5kZW50
IGxpbmUgbGVmdCBieSBhIHByZXZpb3VzIFJFVCB0aGF0CisgICAgIDs7IHRyZWUtc2l0dGVyIG5v
IGxvbmdlciBjb25zaWRlcnMgcGFydCBvZiBhIGxpc3RfaXRlbS4gIENsZWFyCisgICAgIDs7IHRo
ZSB3aGl0ZXNwYWNlIHNvIG5vIHRyYWlsaW5nIHNwYWNlcyByZW1haW4sIGFuZCBpbnNlcnQgYQor
ICAgICA7OyBwbGFpbiBuZXdsaW5lIGF0IGNvbHVtbiAwIHRvIGV4aXQgdGhlIGxpc3QgY29udGV4
dC4KKyAgICAgKHQKKyAgICAgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAo
YmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIl5bIFx0XSsk
IikpCisgICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxp
bmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAobmV3bGluZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1pbnNlcnQtbGlzdC1pdGVtICgpCisgICJJbnNlcnQgYSBuZXcgbGlzdCBpdGVtLCBzcGxp
dHRpbmcgdGV4dCBhdCBwb2ludC4KK1RleHQgYWZ0ZXIgcG9pbnQgbW92ZXMgdG8gdGhlIG5ldyBp
dGVtLiAgQXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsCithbiBlbXB0eSBpdGVtIGlzIGluc2Vy
dGVkIGFib3ZlIGFuZCB0aGUgY3VycmVudCBjb250ZW50IGlzIHB1c2hlZCBkb3duLgorSW5zaWRl
IGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGluZSBpbmNsdWRlcyB0aGUgcXVvdGUgcHJlZml4Lgor
Rm9yIG9yZGVyZWQgbGlzdHMsIHRoZSBudW1iZXIgaXMgaW5jcmVtZW50ZWQuCitXaGVuIG5vdCBp
bnNpZGUgYSBsaXN0LCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRzLW5ld2xpbmUnLiIKKyAgKGlu
dGVyYWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAg
ICAgIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikgKHBvaW50KSkKKyAgICAg
ICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgKGluLWJxIChhbmQgKHRyZWVzaXQtcGFy
ZW50LXVudGlsIG5vZGUgIlxcYGJsb2NrX3F1b3RlXFwnIikKKyAgICAgICAgICAgICAgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKj4iKSkpKQor
ICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3Rl
LXByZWZpeCkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9p
bnQpKSkKKyAgICAoY29uZAorICAgICAoKGFuZCBpdGVtCisgICAgICAgICAgIChvciAobm90IGlu
LWJxKQorICAgICAgICAgICAgICAgKD49IChtYXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1k
ZXB0aCkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUt
ZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCAodHJlZXNpdC1u
b2RlLWNoaWxkIGl0ZW0gMCkpKSkpKQorICAgICAgKGxldCogKChuZXctbWFya2VyIChtYXJrZG93
bi10cy0tbmV3LW1hcmtlci1mb3ItbGluZSBpdGVtKSkKKyAgICAgICAgICAgICAoYXQtYm9sICg8
PSAoY3VycmVudC1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJz
aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFjay10by1pbmRlbnRhdGlvbikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWNvbHVtbikpKSkKKyAgICAgICAgICAg
ICAodGFpbCAod2hlbiAoYW5kIChub3QgYXQtYm9sKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG5vdCAobG9va2luZy1hdC1wICJbIFx0XSokIikpKQorICAgICAgICAgICAgICAgICAg
ICAgKGRlbGV0ZS1hbmQtZXh0cmFjdC1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAgICAocG9p
bnQpIChsaW5lLWVuZC1wb3NpdGlvbikpKSkpCisgICAgICAgIChpZiBhdC1ib2wKKyAgICAgICAg
ICAgIDs7IEF0IEJPTDogaW5zZXJ0IGVtcHR5IGl0ZW0gYWJvdmUsIHB1c2ggY3VycmVudCBsaW5l
IGRvd24uCisgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1s
aW5lKQorICAgICAgICAgICAgICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQor
ICAgICAgICAgICAgICAoaW5zZXJ0IG5ldy1tYXJrZXIgIlxuIikKKyAgICAgICAgICAgICAgKGJh
Y2stdG8taW5kZW50YXRpb24pKQorICAgICAgICAgIDs7IE1pZC1saW5lIG9yIEVPTDogbmV3IGl0
ZW0gYmVsb3cgd2l0aCB0YWlsIHRleHQuCisgICAgICAgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNw
YWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3aGVuIGJxLXByZWZpeCAoaW5z
ZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCBuZXctbWFya2VyKQorICAgICAgICAg
ICh3aGVuIHRhaWwgKHNhdmUtZXhjdXJzaW9uIChpbnNlcnQgKHN0cmluZy10cmltLWxlZnQgdGFp
bCkpKSkpKSkKKworICAgICA7OyBOb3QgaW4gYSBsaXN0OiBmYWxsIGJhY2sgdG8gbmV3bGluZSBi
ZWhhdmlvci4KKyAgICAgKHQgKG1hcmtkb3duLXRzLW5ld2xpbmUpKSkpKQorCis7OzsgRmlsbGlu
ZzoKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkK
KyAgJyhbKGZlbmNlZF9jb2RlX2Jsb2NrKSAoaW5kZW50ZWRfY29kZV9ibG9jaykgKHBpcGVfdGFi
bGUpXSBAYmxvY2spCisgICJUcmVlLXNpdHRlciBxdWVyeSBtYXRjaGluZyBibG9ja3Mgd2hlcmUg
ZmlsbGluZyBpcyBpbmhpYml0ZWQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
dGV4dC1jb2x1bW4gKGl0ZW0pCisgICJSZXR1cm4gdGhlIGNvbHVtbiB3aGVyZSB0aGUgdGV4dCBv
ZiBsaXN0IElURU0gc3RhcnRzLgorVGhpcyBpcyB0aGUgY29sdW1uIG9mIHRoZSBmaXJzdCBwYXJh
Z3JhcGggbm9kZSBpbnNpZGUgSVRFTSwgb3IKK3RoZSB3aWR0aCBvZiB0aGUgbGlzdCBtYXJrZXIg
aWYgbm8gcGFyYWdyYXBoIGlzIGZvdW5kLiIKKyAgKGxldCAoKHBhcmFncmFwaCAodHJlZXNpdC1z
ZWFyY2gtc3VidHJlZSBpdGVtICJcXGBwYXJhZ3JhcGhcXCciKSkpCisgICAgKGlmIHBhcmFncmFw
aAorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0
LW5vZGUtc3RhcnQgcGFyYWdyYXBoKSkKKyAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKQorICAg
ICAgKGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQorICAgICAgICAo
LSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpCisgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbWFya2VyKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gKGl0
ZW0ganVzdGlmeSkKKyAgIkZpbGwgdGhlIGNvbnRlbnRzIG9mIGxpc3QgSVRFTSwgcHJlc2Vydmlu
ZyBpdHMgaW5kZW50YXRpb24uCitOYXJyb3dzIHRvIElURU0ncyBvd24gcGFyYWdyYXBoIGNvbnRl
bnQgKGV4Y2x1ZGluZyBuZXN0ZWQgbGlzdHMpCithbmQgc2V0cyBgZmlsbC1wcmVmaXgnIHRvIGFs
aWduIGNvbnRpbnVhdGlvbiBsaW5lcyB3aXRoIHRoZSBzdGFydAorb2YgdGhlIGl0ZW0ncyB0ZXh0
LiAgSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGxldCogKChmaWxsLXBy
ZWZpeCAobWFrZS1zdHJpbmcgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRl
bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP1xzKSkKKyAgICAgICAgIDs7
IEZpbmQgdGhlIGl0ZW0ncyBvd24gcGFyYWdyYXBoIChmaXJzdCBwYXJhZ3JhcGggY2hpbGQpLgor
ICAgICAgICAgOzsgSWYgdGhlIGl0ZW0gaGFzIG5lc3RlZCBsaXN0cywgbmFycm93IHRvIGp1c3Qg
dGhlCisgICAgICAgICA7OyBwYXJhZ3JhcGggc28gd2UgZG9uJ3QgbWVyZ2UgbmVzdGVkIGl0ZW1z
LgorICAgICAgICAgKHBhcmEgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxgcGFyYWdy
YXBoXFwnIiBuaWwgbmlsIDEpKQorICAgICAgICAgKGJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0
ZW0pKQorICAgICAgICAgKGVuZCAoaWYgcGFyYQorICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS1lbmQgcGFyYSkKKyAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSkp
CisgICAgICAgICA7OyBVc2UgZGVmYXVsdCBwYXJhZ3JhcGggbW90aW9uIGluc2lkZSB0aGUgbmFy
cm93ZWQgcmVnaW9uCisgICAgICAgICA7OyBzbyB0aGF0IHRoZSBpbm5lciBgZmlsbC1wYXJhZ3Jh
cGgnIGRvZXMgbm90IHJlLWVudGVyIG91cgorICAgICAgICAgOzsgY3VzdG9tIHBhcmFncmFwaC1m
aW5kaW5nIGxvZ2ljLgorICAgICAgICAgKGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24g
Iydmb3J3YXJkLXBhcmFncmFwaCkpCisgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgIChuYXJy
b3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkpCisg
ICAgOzsgUmV0dXJuIG5vbi1uaWwgdG8gc2lnbmFsIHRoYXQgZmlsbGluZyBoYXMgYmVlbiBoYW5k
bGVkLAorICAgIDs7IGFzIHBlciB0aGUgY29udHJhY3Qgb2YgYGZpbGwtcGFyYWdyYXBoLWZ1bmN0
aW9uJy4KKyAgICB0KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1hZGFwdGl2ZS1maWxsICgpCisg
ICJSZXR1cm4gdGhlIGZpbGwgcHJlZml4IGZvciB0aGUgY3VycmVudCBsaW5lIGluIE1hcmtkb3du
LgorV2hlbiBpbnNpZGUgYSBsaXN0IGl0ZW0sIHJldHVybiBzcGFjZXMgbWF0Y2hpbmcgdGhlIGNv
bHVtbiB3aGVyZQordGhlIGl0ZW0ncyB0ZXh0IHN0YXJ0cy4iCisgIChhbmQtbGV0KiAoKG5vZGUg
KHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJh
Y2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICdtYXJrZG93
bikpCisgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxp
c3RfaXRlbVxcJyIpKSkKKyAgICAobWFrZS1zdHJpbmcgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
dGV4dC1jb2x1bW4gaXRlbSkgP1xzKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1mb3J3
YXJkLXBhcmFncmFwaCAoYXJnKQorICAiTW92ZSBmb3J3YXJkIGJ5IEFSRyBwYXJhZ3JhcGhzLCBy
ZXNwZWN0aW5nIE1hcmtkb3duIHN0cnVjdHVyZS4KK0xpc3QgaXRlbXMgYXJlIHRyZWF0ZWQgYXMg
aW5kaXZpZHVhbCBwYXJhZ3JhcGhzLiAgQmxvY2tzIG1hdGNoZWQKK2J5IGBtYXJrZG93bi10cy0t
ZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5JyBhcmUgc2tpcHBlZDogYm90aAorZm9yd2FyZCBh
bmQgYmFja3dhcmQgbW90aW9uIG1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgYmxvY2ssIHNvCitgZmls
bC1yZWdpb24nIHNlZXMgYSB6ZXJvLWxlbmd0aCByZWdpb24gYW5kIGxlYXZlcyB0aGUgYmxvY2sK
K3VuZmlsbGVkLiIKKyAgKGxldCAoKGRpcmVjdGlvbiAoaWYgKD4gYXJnIDApIDEgLTEpKQorICAg
ICAgICAoY291bnQgKGFicyBhcmcpKQorICAgICAgICAobW92ZWQgMCkpCisgICAgKGRvdGltZXMg
KF8gY291bnQpCisgICAgICA7OyBGb3IgYmFja3dhcmQgbW90aW9uLCBza2lwIGJhY2sgb3ZlciB3
aGl0ZXNwYWNlIHRvIGZpbmQKKyAgICAgIDs7IHRoZSBpdGVtIHdlIGFyZSBsZWF2aW5nLCBub3Qg
dGhlIG5leHQgb25lLgorICAgICAgKGxldCogKChwb3MgKGlmICg8IGRpcmVjdGlvbiAwKQorICAg
ICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAg
IChtYXggKHBvaW50LW1pbikgKDEtIChwb2ludCkpKSkKKyAgICAgICAgICAgICAgICAgICAgKHBv
aW50KSkpCisgICAgICAgICAgICAgKGJsb2NrIChjYXIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJr
ZG93bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxs
YWJsZS1ibG9jay1xdWVyeQorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKDErIHBvcykp
KSkKKyAgICAgICAgICAgICAoaW5kZW50ZWQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHBvcykKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgaW5kZW50
ZWQtcG9zICdtYXJrZG93bikpCisgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVu
dGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAgICAgOzsgV2hlbiBtb3ZpbmcgZm9y
d2FyZCBmcm9tIHdoaXRlc3BhY2UgYmV0d2VlbiBsaXN0IGl0ZW1zLAorICAgICAgICA7OyBza2lw
IHRvIHRoZSBuZXh0IG5vbi1ibGFuayBwb3NpdGlvbiBhbmQgY2hlY2sgYWdhaW4uCisgICAgICAg
ICh3aGVuIChhbmQgKG5vdCBpdGVtKSAobm90IGJsb2NrKSAoPiBkaXJlY3Rpb24gMCkpCisgICAg
ICAgICAgKGxldCAoKG5leHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgICAoc2V0cSBub2RlICh0cmVlc2l0LW5v
ZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAgIChzZXRxIGl0ZW0gKHRyZWVz
aXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkpCisgICAgICAgIChjb25k
CisgICAgICAgICA7OyBJbnNpZGUgYW4gdW5maWxsYWJsZSBibG9jazogc2tpcCBvdmVyIGl0IGVu
dGlyZWx5LgorICAgICAgICAgKGJsb2NrCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1u
b2RlLWVuZCAoY2RyIGJsb2NrKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkp
CisgICAgICAgICA7OyBJbnNpZGUgYSBsaXN0IGl0ZW06IHRyZWF0IGFzIHBhcmFncmFwaCBib3Vu
ZGFyeS4KKyAgICAgICAgIChpdGVtCisgICAgICAgICAgKGlmICg+IGRpcmVjdGlvbiAwKQorICAg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pKQorICAgICAgICAg
ICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKSkKKyAgICAgICAgICAoc2V0
cSBtb3ZlZCAoMSsgbW92ZWQpKSkKKyAgICAgICAgIDs7IERlZmF1bHQ6IHVzZSBzdGFuZGFyZCBw
YXJhZ3JhcGggbW90aW9uLgorICAgICAgICAgKHQKKyAgICAgICAgICAoZm9yd2FyZC1wYXJhZ3Jh
cGggZGlyZWN0aW9uKQorICAgICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKSkpKQorICAg
IDs7IFJldHVybiB0aGUgbnVtYmVyIG9mIHBhcmFncmFwaHMgbGVmdCB0byBtb3ZlICgwID0gYWxs
IGRvbmUpLgorICAgICgtIGNvdW50IG1vdmVkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmls
bC1wYXJhZ3JhcGggKCZvcHRpb25hbCBqdXN0aWZ5KQorICAiRmlsbCB0aGUgY3VycmVudCBwYXJh
Z3JhcGgsIHJlc3BlY3RpbmcgTWFya2Rvd24gYmxvY2sgc3RydWN0dXJlLgorVGhpcyBmdW5jdGlv
biBwcmV2ZW50cyBmaWxsaW5nIGluc2lkZSBibG9ja3MgbWF0Y2hlZCBieQorYG1hcmtkb3duLXRz
LS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnknLCBhbmQgZmlsbHMgd2l0aGluIGxpc3QKK2l0
ZW1zIHdpdGhvdXQgbWVyZ2luZyBhZGphY2VudCBpdGVtcy4gIEpVU1RJRlkgaXMgYXMgaW4KK2Bm
aWxsLXBhcmFncmFwaCcuIgorICAoY29uZCoKKyAgIDs7IERvbid0IGZpbGwgaW5zaWRlIHVuZmls
bGFibGUgYmxvY2tzLiAgVXNlIGEgcXVlcnkgYWdhaW5zdCB0aGUKKyAgIDs7IHJvb3Qgbm9kZSBi
ZWNhdXNlIGB0cmVlc2l0LW5vZGUtYXQnIG1heSBub3QgcmV0dXJuIGEgbm9kZQorICAgOzsgaW5z
aWRlIHRoZSBibG9jayB3aGVuIHBvaW50IGlzIG9uIGFub255bW91cyAodW5uYW1lZCkgdGV4dC4K
KyAgICgodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICh0cmVlc2l0LWJ1ZmZlci1yb290LW5v
ZGUgJ21hcmtkb3duKQorICAgICBtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1
ZXJ5CisgICAgIChwb2ludCkgKG1pbiAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKQorICAgIHQp
CisgICA7OyBGaWxsIHdpdGhpbiB0aGUgZW5jbG9zaW5nIGxpc3QgaXRlbS4gIFVzZQorICAgOzsg
YG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQnIHdoaWNoIGhhbmRsZXMgYmxvY2sgcXVv
dGUKKyAgIDs7IG1hcmtlcnMuICBXaGVuIHRoZSBsaXN0IGl0ZW0gaXMgaW5zaWRlIGEgYmxvY2sg
cXVvdGUsIGRlbGVnYXRlCisgICA7OyB0byB0aGUgYmxvY2sgcXVvdGUgZmlsbGVyIHdoaWNoIGhh
bmRsZXMgYD4gJyBwcmVmaXhlcyBjb3JyZWN0bHkuCisgICAoKGJpbmQtYW5kKiAoaXRlbSAobWFy
a2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChpZiAodHJlZXNpdC1wYXJlbnQt
dW50aWwgaXRlbSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAgICAgICAobWFya2Rvd24tdHMtLWZp
bGwtYmxvY2stcXVvdGUganVzdGlmeSkKKyAgICAgIChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0
ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBQb2ludCBpcyBvbiBhIGJsYW5rIGxpbmUgYmVmb3Jl
IGEgbGlzdC4gIElmIHRoZSBuZXh0CisgICA7OyBub24td2hpdGVzcGFjZSBwb3NpdGlvbiBmYWxs
cyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGZpbGwgdGhhdCBpdGVtLgorICAgKChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgKGxvb2tpbmctYXQtcCAiWyBcdF0q
JCIpKQorICAgIChhbmQtbGV0KiAoKG5leHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgICAgICAobmV4dC1ub2RlICh0
cmVlc2l0LW5vZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgIChpdGVt
ICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgIG5leHQtbm9kZSAi
XFxgbGlzdF9pdGVtXFwnIikpKQorICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWxpc3QtaXRlbSBp
dGVtIGp1c3RpZnkpKSkKKyAgIDs7IEZpbGwgd2l0aGluIGEgYmxvY2sgcXVvdGUuICBOYXJyb3cg
dG8gdGhlIHBhcmFncmFwaCBub2RlIGF0CisgICA7OyBwb2ludCdzIG5lc3RpbmcgbGV2ZWwgc28g
bGluZXMgd2l0aCBkaWZmZXJlbnQgYD4gJyBkZXB0aHMKKyAgIDs7IGFyZSBub3QgbWVyZ2VkLgor
ICAgKCh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAodHJlZXNpdC1ub2RlLWF0CisgICAgICAo
c2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAnbWFy
a2Rvd24pCisgICAgICJcXGBibG9ja19xdW90ZVxcJyIpCisgICAgKG1hcmtkb3duLXRzLS1maWxs
LWJsb2NrLXF1b3RlIGp1c3RpZnkpKQorICAgOzsgRmlsbCB3aXRoaW4gYW4gSFRNTCBjb21tZW50
LiAgVGhlIG5vZGUgdHlwZSBpcyAiaHRtbF9ibG9jayIKKyAgIDs7IGluIGdyYW1tYXIgdjAuNC54
IGFuZCAiY29tbWVudCIgaW4gc29tZSBvdGhlciB2ZXJzaW9ucy4KKyAgICgoYmluZC1hbmQqIChi
bG9jayAobGV0ICgobiAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkgJ21hcmtkb3duKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAob3IgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG4gIlxcYFxcKD86aHRtbF9ibG9ja1xcfGNvbW1lbnRcXClcXCci
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKG1lbWJlciAodHJlZXNpdC1ub2Rl
LXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiaHRt
bF9ibG9jayIgImNvbW1lbnQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4p
KSkpKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1lbnQgYmxvY2sganVzdGlmeSkp
CisgICA7OyBEZWZhdWx0OiBsZXQgZmlsbC1wYXJhZ3JhcGggaGFuZGxlIGl0LgorICAgKHQgbmls
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1lbnQgKG5vZGUganVzdGlm
eSkKKyAgIkZpbGwgSFRNTCBjb21tZW50IE5PREUsIGFsaWduaW5nIGNvbnRpbnVhdGlvbiBsaW5l
cy4KK1JldHVybiB0IGlmIE5PREUgaXMgYSBjb21tZW50IGFuZCB3YXMgZmlsbGVkLCBuaWwgb3Ro
ZXJ3aXNlLgorSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKHdoZW4gKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5v
ZGUpKQorICAgICAgICAgIChsb29raW5nLWF0LXAgIjwhLS0iKSkKKyAgICAobGV0ICgoZmlsbC1w
cmVmaXggKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hh
ciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICht
YWtlLXN0cmluZyAoKyAoY3VycmVudC1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsZW5ndGggIjwhLS0gIikpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID9ccykpKQorICAgICAgICAgIChhZGFwdGl2ZS1maWxsLWZ1bmN0aW9u
IG5pbCkKKyAgICAgICAgICAoZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbiAjJ2Zvcndh
cmQtcGFyYWdyYXBoKQorICAgICAgICAgIChmaWxsLXBhcmFncmFwaC1mdW5jdGlvbiBuaWwpKQor
ICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgICAgKG5hcnJvdy10by1yZWdpb24gKHRyZWVz
aXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgICAg
dCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCAoKQorICAiUmV0
dXJuIHRoZSBibG9jayBxdW90ZSBwcmVmaXggc3RyaW5nIGZyb20gdGhlIGN1cnJlbnQgbGluZS4K
K1JlYWQgdGhlIGFjdHVhbCBgPicgbWFya2VycyAod2l0aCB3aGF0ZXZlciBzcGFjaW5nIHRoZSB1
c2VyIHdyb3RlKQorZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIHNvIHRoYXQgZmlsbCBw
cmVzZXJ2ZXMgdGhlIGV4aXN0aW5nCitzdHlsZSAoZS5nLiwgYD4+PiAnIHN0YXlzIGA+Pj4gJywg
YD4gPiA+ICcgc3RheXMgYD4gPiA+ICcpLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGJlZ2lu
bmluZy1vZi1saW5lKQorICAgIChpZiAobG9va2luZy1hdCAiXFwoWz4gXHRdKj5cXClbIFx0XSoi
KQorICAgICAgICAoY29uY2F0IChtYXRjaC1zdHJpbmcgMCkpCisgICAgICAiPiAiKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSAoanVzdGlmeSkKKyAgIkZpbGwgdGhl
IHBhcmFncmFwaCBhdCBwb2ludCBpbnNpZGUgYSBibG9jayBxdW90ZS4KK0ZpbmQgdGhlIHBhcmFn
cmFwaCBub2RlIGF0IHBvaW50IHdpdGhpbiB0aGUgYmxvY2sgcXVvdGUgYW5kIGZpbGwKK29ubHkg
dGhhdCBwYXJhZ3JhcGgsIHByZXNlcnZpbmcgdGhlIGA+ICcgcHJlZml4LiAgV2hlbiB0aGUKK3Bh
cmFncmFwaCBpcyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGFsaWduIGNvbnRpbnVhdGlvbiBsaW5lcyB3
aXRoCit0aGUgaXRlbSdzIHRleHQgY29sdW1uLiAgSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJh
Z3JhcGgnLiIKKyAgOzsgU2tpcCBwYXN0IGA+ICcgbWFya2VycyBhbmQgYW55IGxpc3QgbWFya2Vy
IHRvIGxhbmQgaW5zaWRlIHRoZQorICA7OyBjb250ZW50LCB3aGVyZSB0aGUgcGFyYWdyYXBoIG5v
ZGUgbGl2ZXMuCisgIChsZXQqICgoY29udGVudC1wb3MgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAg
ICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICI+IFx0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
IDs7IElmIHdlIGxhbmQgb24gYSBsaXN0IG1hcmtlciwgc2tpcCBwYXN0IGl0LgorICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKGxvb2tpbmctYXQgIlstKitdIFxcfFswLTldK1suKV1ccyIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAobWluICgxKyAocG9pbnQpKSAocG9pbnQtbWF4KSkpKQor
ICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBjb250ZW50LXBvcyAnbWFya2Rvd24pKQor
ICAgICAgICAgKHBhcmEgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgbm9k
ZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlIG4pICJwYXJhZ3JhcGgiKSkpKSkKKyAgICAod2hlbiBwYXJhCisgICAgICA7OyBUaGUg
Z3JhbW1hciBtYXkgaW5jbHVkZSB0cmFpbGluZyBibG9ja19jb250aW51YXRpb24gbm9kZXMKKyAg
ICAgIDs7IChibGFuayBgPiA+JyBsaW5lcykgYXMgY2hpbGRyZW4gb2YgdGhlIHBhcmFncmFwaC4g
IFVzZSB0aGUKKyAgICAgIDs7IGVuZCBvZiB0aGUgbGFzdCBpbmxpbmUgY2hpbGQgc28gZmlsbCBk
b2VzIG5vdCBtZXJnZSBhY3Jvc3MKKyAgICAgIDs7IHdoYXQgc2hvdWxkIGJlIGEgcGFyYWdyYXBo
IGJvdW5kYXJ5LgorICAgICAgKGxldCogKChsYXN0LWlubGluZQorICAgICAgICAgICAgICAoc2Vx
LWZpbmQgKGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJpbmxpbmUiKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChyZXZlcnNlICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcGFyYSkpKSkKKyAgICAgICAgICAg
ICAocGFyYS1lbmQgKGlmIGxhc3QtaW5saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLWVuZCBsYXN0LWlubGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLWVuZCBwYXJhKSkpCisgICAgICAgICAgICAgKGJxLXByZWZpeCAobWFya2Rv
d24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAgICAgOzsgV2hlbiBpbnNpZGUg
YSBsaXN0IGl0ZW0sIGV4dGVuZCB0aGUgcHJlZml4IHdpdGggc3BhY2VzCisgICAgICAgICAgICAg
Ozsgc28gY29udGludWF0aW9uIGxpbmVzIGFsaWduIHdpdGggdGhlIGl0ZW0ncyB0ZXh0LgorICAg
ICAgICAgICAgIChsaXN0LWl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIHBhcmEgIlxcYGxpc3Rf
aXRlbVxcJyIpKQorICAgICAgICAgICAgIChwcmVmaXggKGlmIGxpc3QtaXRlbQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChsZXQqICgodGV4dC1jb2wgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
dGV4dC1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aXN0LWl0ZW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXh0cmEgKG1heCAw
ICgtIHRleHQtY29sIChsZW5ndGggYnEtcHJlZml4KSkpKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb25jYXQgYnEtcHJlZml4IChtYWtlLXN0cmluZyBleHRyYSA/XHMpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgYnEtcHJlZml4KSkKKyAgICAgICAgICAgICAoYWRhcHRpdmUtZmls
bC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgICAgKGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVu
Y3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAgICAoZmlsbC1wYXJhZ3JhcGgt
ZnVuY3Rpb24gbmlsKSkKKyAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgICAgICA7OyBO
YXJyb3cgdG8gdGhlIGZ1bGwgbGluZXMgb2YgdGhlIHBhcmFncmFwaCBzbyB0aGF0IHRoZQorICAg
ICAgICAgIDs7IGA+ICcgbWFya2VycyBhcmUgaW5jbHVkZWQgaW4gdGhlIGZpbGwgcmVnaW9uLgor
ICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uCisgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBwYXJhKSkKKyAgICAg
ICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgKHBvaW50KSkKKyAgICAg
ICAgICAgcGFyYS1lbmQpCisgICAgICAgICAgKGxldCAoKGZpbGwtcHJlZml4IHByZWZpeCkpCisg
ICAgICAgICAgICAoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkpKSkpKQorICB0KQorCis7OzsgQ29k
ZSBibG9ja3M6CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3Vh
Z2VzIG5pbAorICAiQWxpc3QgbWFwcGluZyBsYW5ndWFnZSBub2RlIG5hbWVzIHRvIHRzIGxhbmd1
YWdlLgorSWYgYSBsYW5ndWFnZSBpcyBub3QgYSB0cyBsYW5ndWFnZSBvciBpcyBub3QgbWFwcGVk
IHRvIG9uZSwgaXQgd2lsbCBiZQoraW4gYG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1t
b2RlcycuIikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMt
bW9kZXMgbmlsCisgICJBbGlzdCBtYXBwaW5nIGxhbmd1YWdlcyB0byBub24tdHJlZS1zaXR0ZXIg
bW9kZXMgZm9yIGNvZGUgYmxvY2tzLgorUG9wdWxhdGVkIGJ5IGBtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZScgdG8gaWRlbnRpZnkgYQorY29kZS1ibG9jayBsYW5ndWFnZSBtb2Rl
IHdoaWNoIGlzIG5vdCBhIHRyZWUtc2l0dGVyIG1vZGUgb3IgZm9yIHdoaWNoCit0aGUgdHJlZS1z
aXR0ZXIgZ3JhbW1hciBpcyB1bmF2YWlsYWJsZS4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhh
cnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24gKG1vZGUpCisgICJIYXJ2ZXN0IHRyZWUt
c2l0dGVyIGNvbmZpZ3VyYXRpb24gZnJvbSBNT0RFLgorUmV0dXJuIGEgcGxpc3Qgd2l0aCB0aGUg
Zm9sbG93aW5nIGtleXMgYW5kIHZhbHVlczoKIAogICAgIDpmb250LWxvY2sgKGZyb20gYHRyZWVz
aXQtZm9udC1sb2NrLXNldHRpbmdzJykKICAgICA6c2ltcGxlLWluZGVudCAoZnJvbSBgdHJlZXNp
dC1zaW1wbGUtaW5kZW50LXJ1bGVzJykKICAgICA6cmFuZ2UgKGZyb20gYHRyZWVzaXQtcmFuZ2Ut
c2V0dGluZ3MnKSIKICAgKHdpdGgtdGVtcC1idWZmZXIKLSAgICAoZnVuY2FsbCBtb2RlKQotICAg
IChsaXN0IDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAoZGVsYXkt
bW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkKKyAgICAobGlzdCA6bGFuZ3VhZ2UgKHRyZWVzaXQt
bGFuZ3VhZ2UtYXQgKHBvaW50LW1pbikpCisgICAgICAgICAgOmZvbnQtbG9jayB0cmVlc2l0LWZv
bnQtbG9jay1zZXR0aW5ncwogICAgICAgICAgIDpzaW1wbGUtaW5kZW50IHRyZWVzaXQtc2ltcGxl
LWluZGVudC1ydWxlcwogICAgICAgICAgIDpyYW5nZSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzKSkp
CiAKLShkZWZ1biBtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZSAobGFuZ3VhZ2UgbW9k
ZSkKLSAgIkFkZCBjb25maWd1cmF0aW9ucyBmb3IgTEFOR1VBR0UgZnJvbSBNT0RFIHRvIGN1cnJl
bnQgYnVmZmVyLgotCi1Db25maWd1cmF0aW9uIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50
LiAgRm9yIGZvbnQtbG9jayBydWxlcywgdXNlCi10aGUgc2FtZSBmZWF0dXJlcyBlbmFibGVkIGlu
IE1PREUuIgotICAobGV0ICgoY29uZmlncyAobWFya2Rvd24tdHMtLWhhcnZlc3QtdHJlZXNpdC1j
b25maWdzIG1vZGUpKSkKLSAgICAoaWdub3JlIGxhbmd1YWdlKSA7IFdlIG1pZ2h0IG1ha2UgdXNl
IG9mIHRoaXMgbGF0ZXIuCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAg
ICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgICAg
ICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0dGluZ3MsIGluY2x1ZGluZyBvbmVzIHRo
YXQKLSAgICAgICAgICAgICAgICAgIDs7IGRvbid0IHBlcnRhaW4gdG8gTEFOR1VBR0UuICBUaGlz
IHdheSB3ZSBnZXQganNkb2MKLSAgICAgICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwg
Zm9yIGV4YW1wbGUuCi0gICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3MgOmZvbnQt
bG9jaykpKQotICAgIChzZXRxIHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcwotICAgICAgICAg
IChhcHBlbmQgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCi0gICAgICAgICAgICAgICAgICA7
OyBTaW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgotICAgICAgICAgICAgICAgICAgKHBs
aXN0LWdldCBjb25maWdzIDpzaW1wbGUtaW5kZW50KSkpCisoZGVmdW4gbWFya2Rvd24tdHMtLWNv
bmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciAoY29uZmlndXJhdGlvbikKKyAgIkFkZCBDT05GSUdVUkFU
SU9OIHRvIHRoZSBjdXJyZW50IGJ1ZmZlci4KK0NPTkZJR1VSQVRJT04gaW5jbHVkZXMgZm9udC1s
b2NrIGFuZCBpbmRlbnQgcnVsZXMuICBGb3IgZm9udC1sb2NrIHJ1bGVzLAordXNlIHRoZSBzYW1l
IGZlYXR1cmVzIGVuYWJsZWQgaW4gTU9ERS4iCisgIChzZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNl
dHRpbmdzCisgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAg
ICAgICAgICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0dGluZ3MsIGluY2x1ZGluZyBv
bmVzIHRoYXQKKyAgICAgICAgICAgICAgICA7OyBkb24ndCBwZXJ0YWluIHRvIE1PREUuICBUaGlz
IHdheSwgd2UgZ2V0IGpzZG9jCisgICAgICAgICAgICAgICAgOzsgZnJvbSBqcy10cy1tb2RlLCBm
b3IgZXhhbXBsZS4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOmZv
bnQtbG9jaykpKQorICAoc2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKKyAgICAgICAg
KGFwcGVuZCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKKyAgICAgICAgICAgICAgICA7OyBT
aW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgorICAgICAgICAgICAgICAgIChwbGlzdC1n
ZXQgY29uZmlndXJhdGlvbiA6c2ltcGxlLWluZGVudCkpKQogICAgIChzZXRxIHRyZWVzaXQtcmFu
Z2Utc2V0dGluZ3MKICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKICAg
ICAgICAgICAgICAgICAgIDs7IEZpbHRlciBvdXQgZnVuY3Rpb24gcXVlcmllcywgYmVjYXVzZSB0
aGV5IGFyZQpAQCAtMzAyLDUyICsxOTE0LDM5NyBAQCBtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1m
b3ItbW9kZQogICAgICAgICAgICAgICAgICAgOzsgQ2FzZSBpbiBwb2ludDogYy10cy1tb2RlJ3Mg
cmFuZ2Ugc2V0dGluZy4KICAgICAgICAgICAgICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKHNl
dHRpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGZ1bmN0aW9ucCAo
Y2FyIHNldHRpbmcpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3MgOnJhbmdlKSkpKQotICAgIChzZXRxLWxvY2FsIGluZGVudC1saW5lLWZ1bmN0aW9u
ICMndHJlZXNpdC1pbmRlbnQpCi0gICAgKHNldHEtbG9jYWwgaW5kZW50LXJlZ2lvbi1mdW5jdGlv
biAjJ3RyZWVzaXQtaW5kZW50LXJlZ2lvbikpKQotCi0oZGVmdW4gbWFya2Rvd24tdHMtLWNvbnZl
cnQtY29kZS1ibG9jay1sYW5ndWFnZSAobm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6cmFuZ2UpKSkpCisgIChzZXRxLWxvY2FsIGlu
ZGVudC1saW5lLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQpCisgIChzZXRxLWxvY2FsIGluZGVu
dC1yZWdpb24tZnVuY3Rpb24gIyd0cmVlc2l0LWluZGVudC1yZWdpb24pKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgKG5vZGUpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdl
IHN5bWJvbCBmb3IgY29kZV9mZW5jZV9jb250ZW50IE5PREUuIgorICAod2hlbi1sZXQqICgocGFy
ZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgICAgICAobGFuZy1ub2Rl
ICh3aGVuIHBhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNo
LXN1YnRyZWUgcGFyZW50ICJcXGBsYW5ndWFnZVxcJyIpKSkpCisgICAgKGludGVybiAodHJlZXNp
dC1ub2RlLXRleHQgbGFuZy1ub2RlIHQpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlm
eS1ub24tdHMtY29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAg
IkZvbnRpZnkgY29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNpbmcgYSBub24tdHJlZS1zaXR0ZXIg
bW9kZS4KK0FwcGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2Nr
IGluIGEgdGVtcG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBh
c3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLgorCitOT0RF
IHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2VkIHRocm91Z2gKK2BtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5IGhhdmUgY2xhc3NpZmllZCB0aGlzCitub2RlIGFz
IGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1sZXQqICgobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1
YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAgICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgICAoYmxv
Y2stc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAgICAgKGNvbnRl
bnQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpKQorICAgICh3aGVuICg+IChsZW5ndGggY29u
dGVudCkgMCkKKyAgICAgIChsZXQgKChwcm9wcworICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVm
ZmVyCisgICAgICAgICAgICAgICAoaW5zZXJ0IGNvbnRlbnQpCisgICAgICAgICAgICAgICAoZGVs
YXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkKKyAgICAgICAgICAgICAgIChmb250LWxvY2st
ZW5zdXJlKQorICAgICAgICAgICAgICAgKGxldCAocmVzdWx0IChwb3MgKHBvaW50LW1pbikpKQor
ICAgICAgICAgICAgICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQorICAgICAgICAgICAg
ICAgICAgIChsZXQqICgobmV4dCAobmV4dC1zaW5nbGUtcHJvcGVydHktY2hhbmdlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgJ2ZhY2UgbmlsIChwb2ludC1tYXgpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXByb3BlcnR5IHBvcyAnZmFj
ZSkpKQorICAgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAgICAgICAgICAg
ICAgICAocHVzaCAobGlzdCAoMS0gcG9zKSAoMS0gbmV4dCkgZmFjZSkgcmVzdWx0KSkKKyAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIHBvcyBuZXh0KSkpCisgICAgICAgICAgICAgICAgIChucmV2
ZXJzZSByZXN1bHQpKSkpKQorICAgICAgICAoZG9saXN0IChyYW5nZSBwcm9wcykKKyAgICAgICAg
ICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgICAgKCsgYmxvY2stc3Rh
cnQgKG50aCAwIHJhbmdlKSkKKyAgICAgICAgICAgKCsgYmxvY2stc3RhcnQgKG50aCAxIHJhbmdl
KSkKKyAgICAgICAgICAgKG50aCAyIHJhbmdlKQorICAgICAgICAgICBvdmVycmlkZSBzdGFydCBl
bmQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUg
KGxhbmcpCisgICJDb21wdXRlIGFuZCBjYWNoZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywgYSBz
eW1ib2wuCitDb25zdWx0IHRoZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXAnIGNhY2hlLCBv
ciBwcm9iZSBtb2RlIG5hbWVzLgorUmV0dXJuIGEgdmFsaWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIK
KyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlcykpKQorICAgICAgbWFwcGVkLW1vZGUKKyAgICAobGV0ICgobGFuZy1zdHJp
bmcgKHN5bWJvbC1uYW1lIGxhbmcpKSkKKyAgICAgIChjYXRjaCA6bW9kZQorICAgICAgICAoZG9s
aXN0IChtb2RlCisgICAgICAgICAgICAgICAgIChsaXN0CisgICAgICAgICAgICAgICAgICA7OyBU
cnkgYSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhlIHJhdyBzdHJpbmcuCisgICAgICAgICAgICAgICAg
ICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMtbW9kZSIpCisgICAgICAgICAgICAgICAgICA7OyBU
cnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmluZy4KKyAgICAgICAgICAg
ICAgICAgIChjb25jYXQgbGFuZy1zdHJpbmcgIi1tb2RlIikKKyAgICAgICAgICAgICAgICAgIDs7
IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0aGUgZG93bmNhc2VkIHN0cmluZy4KKyAgICAgICAg
ICAgICAgICAgIChjb25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAiLXRzLW1vZGUiKQorICAg
ICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIGRvd25j
YXNlZCBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAoY29uY2F0IChkb3duY2FzZSBsYW5nLXN0
cmluZykgIi1tb2RlIikpKQorICAgICAgICAgIChzZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAg
ICAgICAgICAod2hlbiAoZmJvdW5kcCBtb2RlKQorICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFu
ZyBtb2RlKSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKQorICAgICAgICAgICAgKHRocm93
IDptb2RlIG1vZGUpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1s
YW5ndWFnZSAobm9kZSkKICAgIkNvbnZlcnQgTk9ERSB0byBhIGxhbmd1YWdlIGZvciB0aGUgY29k
ZSBibG9jay4iCi0gIChsZXQqICgobGFuZy1zdHJpbmcgKGFsaXN0LWdldCAodHJlZXNpdC1ub2Rl
LXRleHQgbm9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1hcAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpIG5pbCAjJ2VxdWFsKSkKLSAgICAgICAgIChsYW5n
IChpZiAoc3ltYm9scCBsYW5nLXN0cmluZykKLSAgICAgICAgICAgICAgICAgICBsYW5nLXN0cmlu
ZwotICAgICAgICAgICAgICAgICAoaW50ZXJuIChkb3duY2FzZSBsYW5nLXN0cmluZykpKSkpCi0g
ICAgOzsgRklYTUU6IEtpbmQgb2YgYSBoYWNrIGhlcmU6IHdlIHVzZSB0aGlzIGZ1bmN0aW9uIGFz
IGEgaG9vayBmb3IKLSAgICA7OyBsb2FkaW5nIHVwIGNvbmZpZ3MgZm9yIHRoZSBsYW5ndWFnZSBm
b3IgdGhlIGNvZGUgYmxvY2sgb24tZGVtYW5kLgotICAgIChsZXQgKChtb2RlIChhbGlzdC1nZXQg
bGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1hcCkpKQotICAgICAgOzsg
SWYgdGhlcmUncyBubyBzdXBwb3J0ZWQgbW9kZSBmb3IgdGhlIGxhbmd1YWdlLCByZXR1cm4gbmls
LAotICAgICAgOzsgd2hpY2ggbWFrZXMgRW1hY3Mgc2tpcCB0aGUgY29kZSBibG9jay4KLSAgICAg
IChpZiAobm90IChhbmQgbW9kZSAoZmJvdW5kcCBtb2RlKSkpCi0gICAgICAgICAgbmlsCi0gICAg
ICAgIDs7IElmIHRoZXJlJ3MgYSBtYWpvciBtb2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHNldCB1cCB0
aGUgY29uZmlnCi0gICAgICAgIDs7IGFuZCByZXR1cm4gdGhlIGxhbmd1YWdlLgotICAgICAgICAo
d2hlbiAobm90IChtZW1xIGxhbmcgbWFya2Rvd24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkK
LSAgICAgICAgICAobWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUgbGFuZyBtb2RlKQot
ICAgICAgICAgIChwdXNoIGxhbmcgbWFya2Rvd24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkK
LSAgICAgICAgbGFuZykpKSkKKyAgKGxldCogKChsYW5nIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10
ZXh0IG5vZGUpKSkKKyAgICAgICAgIChtb2RlIChtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5n
dWFnZS1tb2RlIGxhbmcpKQorICAgICAgICAgKHRzLWxhbmd1YWdlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpKQorICAgICAgICAgKG5vbi10cy1sYW5n
dWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVz
KSkpCisgICAgKGNvbmQKKyAgICAgKChmYm91bmRwIG1vZGUpCisgICAgICAoY29uZAorICAgICAg
IDs7IFJldHVybiBrbm93biB0cmVlc2l0IGxhbmd1YWdlLgorICAgICAgICh0cy1sYW5ndWFnZSB0
cy1sYW5ndWFnZSkKKyAgICAgICA7OyBSZXR1cm4gbmlsIGZvciBrbm93biBub24tdHJlZXNpdCBs
YW5ndWFnZSBmb3IgZm9udC1sb2NrLgorICAgICAgIChub24tdHMtbGFuZ3VhZ2UgbmlsKQorICAg
ICAgIDs7IE1hcmtkb3duIGl0c2VsZiBuZWVkcyB0d28gcGFyc2VycyAobWFya2Rvd24gKworICAg
ICAgIDs7IG1hcmtkb3duLWlubGluZSksIHNvIHRyZWVzaXQgZW1iZWRkaW5nICh3aGljaCBjcmVh
dGVzIG9ubHkKKyAgICAgICA7OyBvbmUpIGNhbm5vdCBmdWxseSBmb250aWZ5IGl0LiAgUm91dGUg
dGhyb3VnaCB0aGUgbm9uLXRzCisgICAgICAgOzsgcGF0aCBzbyB0aGUgdGVtcCBidWZmZXIgcnVu
cyB0aGUgZnVsbCBtb2RlIHdpdGggYm90aAorICAgICAgIDs7IHBhcnNlcnMuCisgICAgICAgKChl
cSBtb2RlICdtYXJrZG93bi10cy1tb2RlKQorICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKQorICAgICAgICAgIChwdXNoIChjb25z
IGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAg
ICAgbmlsKQorICAgICAgICh0CisgICAgICAgIChsZXQqICgoY29uZmlndXJhdGlvbiAobWFya2Rv
d24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2RlKSkKKyAgICAgICAgICAgICAgICh0cy1sYW5ndWFnZSAocGxp
c3QtZ2V0IGNvbmZpZ3VyYXRpb24gOmxhbmd1YWdlKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAg
ICAgICAgKChhbmQgdHMtbGFuZ3VhZ2UKKyAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25m
aWd1cmF0aW9uIDpmb250LWxvY2spKQorICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1jb25maWd1
cmUtY3VycmVudC1idWZmZXIgY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgICh1bmxlc3MgKGFz
c3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCisgICAgICAgICAgICAg
IChwdXNoIChjb25zIGxhbmcgdHMtbGFuZ3VhZ2UpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxh
bmd1YWdlcykpCisgICAgICAgICAgICB0cy1sYW5ndWFnZSkKKyAgICAgICAgICAgOzsgT3RoZXJ3
aXNlLCBjbGFzc2lmeSBtb2RlIGFzIG5vbi10cmVlLXNpdHRlci4KKyAgICAgICAgICAgKHQKKyAg
ICAgICAgICAgICh1bmxlc3MgKGFzc3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24t
dHMtbW9kZXMpCisgICAgICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAgICAgICAgIG5pbCkpKSkpKQorICAg
ICAodCBuaWwpKSkpCisKKzs7OyBDb2RlIGJsb2NrIG1pbm9yIG1vZGUgc3VwcG9ydCBhbmQgY29k
ZS1ibG9jayBjb250ZXh0IGNvbW1hbmRzOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxv
Y2stY29tbWFuZHMgJyhpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRlbnQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2xpbmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQtZHdpbQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudC1saW5lCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50LW9yLXVuY29tbWVudC1y
ZWdpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9nLWZpbGwtcmVpbmRlbnQtZGVmdW4pCisgICJDb21tYW5kcyB0
byBleGVjdXRlIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVu
LWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLXRoaW5nLWNvbW1hbmRzICcoeHJlZi1maW5kLWRlZmluaXRpb25zKQorICAiQ29tbWFuZHMg
dGhhdCBuZWVkIGEgXCJ0aGluZ1wiIGF0IHBvaW50IGluIGEgY29kZS1ibG9jayBjb250ZXh0Lgor
U2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZh
ciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1jb21tYW5kcyAnKGNvbW1lbnQtb3ItdW5j
b21tZW50LXJlZ2lvbikKKyAgIkNvbW1hbmRzIHRoYXQgbmVlZCBhIHJlZ2lvbiBpbiBhIGNvZGUt
YmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxv
Y2snLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2stbW9kZSAoKQor
ICAiRW5hYmxlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnIHdoZW4gaWYgYSBmZW5jZWQg
Y29kZSBibG9jay4iCisgIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUgKGlmIChtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWF0LXApIDEgLTEpKSkKKworOzsgTk9URTogRG8gbm90IGFkZCB0aGlz
IGNvbW1hbmQgdG8gYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnLgorKGRlZnVuIG1h
cmtkb3duLXRzLS1jb2RlLWJsb2NrLW5ld2xpbmUgKCZvcHRpb25hbCBhcmcgaW50ZXJhY3RpdmUp
CisgICAiSW5zZXJ0IGEgbmV3bGluZSwgYW5kIG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5l
dyBsaW5lLgorV2l0aCBwcmVmaXggYXJndW1lbnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xp
bmVzLgorCitJZiBgZWxlY3RyaWMtaW5kZW50LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50
cyB0aGUgZmluYWwgbmV3IGxpbmUKK3RoYXQgaXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJl
Y2VkaW5nIGxpbmUuICBUbyBqdXN0IGluc2VydAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMt
aW5kZW50LWp1c3QtbmV3bGluZV0uCisKK0lmIGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwg
dGhpcyBtYXkgY2F1c2UgYXV0b21hdGljIGxpbmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcg
bGluZS4gIEEgbm9uLW5pbCBBUkcgaW5oaWJpdHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1o
YXJkLW5ld2xpbmVzJyBpcyBlbmFibGVkLCB0aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhl
IHRleHQtcHJvcGVydHkgYGhhcmQnLgorCitBIG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQg
bWVhbnMgdG8gcnVuIHRoZSBgcG9zdC1zZWxmLWluc2VydC1ob29rJy4iCisgICAoaW50ZXJhY3Rp
dmUgIipQXG5wIikKKyAgIChpZi1sZXQqICgoYmxvY2stbW9kZSAobWFya2Rvd24tdHMtY29kZS1i
bG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAgICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAg
ICAgIChtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayBibG9jay1tb2RlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnbmV3bGluZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RpdmUpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9u
YWwganVzdGlmeSkKKyAgIlJlZmlsbCBvciByZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0
aGF0IGNvbnRhaW5zIHBvaW50LgorSWYgdGhlIHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29t
bWVudCwgZmlsbCB0aGUgcGFyYWdyYXBoIHRoYXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3Mg
cG9pbnQuCisKK090aGVyd2lzZSwgcmVpbmRlbnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhh
dCBjb250YWlucyBwb2ludCBvcgorZm9sbG93cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24t
bmlsIChpbnRlcmFjdGl2ZWx5LCB3aXRoIHByZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dl
bGwuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9n
LW1vZGUpCisgICAgICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50
LWRlZnVuIGp1c3RpZnkpKQorICAgICAgICAodAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVs
eSAjJ2ZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhp
cyBjb21tYW5kIHRvIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBt
YXJrZG93bi10cy0tY29kZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3Mp
CisgICJIZWxwZXIgY29tbWFuZCBmb3IgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2Rl
LWJsb2NrIGNvbnRleHQuCitGaW5kIHRoaW5nIGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVu
Y2VzIG9uIHRoZSB4cmVmIHN0YWNrIHRvIHRoZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBB
UkdTIGlmIG5vdCBpbiBhIGNvZGUgYmxvY2sgd2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChp
bnRlcmFjdGl2ZSkKKyAgKGlmLWxldCogKChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAg
IChjb25kaXRpb24tY2FzZSBlcnIKKyAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAg
ICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJl
ZiBtYXJrZXIgaW4gdGhlIGJhc2UgYnVmZmVyLiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdp
bGwgYmUgcmV0YWluZWQgaWYgdGhlIGNvbW1hbmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBp
bgorICAgICAgICAgICAgICAgIDs7IHRoZSBpbmRpcmVjdCBidWZmZXIgd2hpY2ggd2Ugd2lsbCBw
b3AuCisgICAgICAgICAgICAgICAgKHhyZWYtcHVzaC1tYXJrZXItc3RhY2spCisgICAgICAgICAg
ICAgICAgOzsgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaXMgYSB0aGluZyBjb21tYW5kIGluCisg
ICAgICAgICAgICAgICAgOzsgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMn
LgorICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9j
ayBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMneHJlZi1maW5kLWRlZmluaXRpb25zCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MpKQorICAgICAgICAgICAg
OzsgUG9wIHRoZSB0b3AgeHJlZiBtYXJrZXIuICBJZiB0aGUgY29tbWFuZCBzdWNjZWVkZWQsIHRo
ZQorICAgICAgICAgICAgOzsgdG9wIG1hcmtlciB3aWxsIGJlIHRoZSBpbmRpcmVjdCBidWZmZXIg
bWFya2VyLiAgSWYgaXQKKyAgICAgICAgICAgIDs7IGZhaWxlZCwgd2UnbGwgcG9wIHRoZSBwbGFj
ZWhvbGRlciB3aGljaCBpcyBub3cgb2Ygbm8KKyAgICAgICAgICAgIDs7IHZhbHVlPAorICAgICAg
ICAgICAgOzsgVE9ETzogUHJvcG9zZSBhbiBgeHJlZicgcG9wIGZ1bmN0aW9uIHRoYXQgZG9lc24n
dCAiZ28KKyAgICAgICAgICAgIDs7IGJhY2siLgorICAgICAgICAgICAgKGxldCAoKGhpc3Rvcnkg
KHhyZWYtLWdldC1oaXN0b3J5KSkpCisgICAgICAgICAgICAgICh1bmxlc3MgKG51bGwgKGNhciBo
aXN0b3J5KSkKKyAgICAgICAgICAgICAgICAocG9wIChjYXIgaGlzdG9yeSkpKSkpCisgICAgICAg
IChlcnJvcgorICAgICAgICAgOzsgUHJvcGFnYXRlIHRoZSBzaWduYWwuCisgICAgICAgICAoc2ln
bmFsIChjYXIgZXJyKSAoY2RyIGVycikpKSkKKyAgICA7OyBOb3QgaW4gYSBjb2RlIGJsb2NrIGNv
bnRleHQuICBUaGlzIHNob3VsZCByZWFsbHkgbmV2ZXIgaGFwcGVuLgorICAgIChmdW5jYWxsLWlu
dGVyYWN0aXZlbHkgIyd4cmVmLWZpbmQtZGVmaW5pdGlvbnMgYXJncykpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgKCkKKyAgIkhlbHBlciBm
dW5jdGlvbiB0byB3cmFwIGEgY29tbWFuZCBmb3IgYSBjb2RlLWJsb2NrIGNvbnRleHQuCitJZiBg
dGhpcy1jb21tYW5kJyBpcyBhIG1lbWJlciBvZiBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21t
YW5kcycgYW5kCitwb2ludCBpcyB3aXRoaW4gYSBjb2RlIGJsb2NrIHdpdGggYW4gYXZhaWxhYmxl
IG1vZGUsIGl0IHdpbGwgcnVuIGluIHRoYXQKK2NvZGUgYmxvY2sncyBtb2RlIGluIGEgYnVmZmVy
IG5hcnJvd2VkIHRvIGl0cyBjb250ZW50LiAgT3RoZXJ3aXNlLCB0aGUKK2NvbW1hbmQgd2lsbCBy
dW4gaW4gdGhlIGNvbnRleHQgb2YgdGhlIGBtYXJrZG93bi10cy1tb2RlJyBidWZmZXIuIgorICAo
d2hlbiAobWVtcSB0aGlzLWNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcykK
KyAgICAod2hlbi1sZXQqICgoY29tbWFuZCB0aGlzLWNvbW1hbmQpCisgICAgICAgICAgICAgICAg
KGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCkpCisgICAgICAgICAg
ICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAo
bGFtYmRhICgmcmVzdCBhcmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyYWN0
aXZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5ICMnbWFya2Rvd24tdHMtLXJ1
bi1jb21tYW5kLWluLWNvZGUtYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIChibG9jay1tb2RlIGNvbW1hbmQg
JnJlc3QgYXJncykKKyAgIlJ1biBDT01NQU5EIGluIEJMT0NLLU1PREUuCitBUkdTIGFyZSBjYXB0
dXJlZCBieSBgbWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIK
KyAgKHdoZW4tbGV0KiAoKGJlZyAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24t
dHMtY29kZS1iZWctbWFya2VyKSkKKyAgICAgICAgICAgICAgKGVuZCAoZ2V0LWNoYXItcHJvcGVy
dHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyKSkpCisgICAgKGxldCAoKHJl
Z2lvbi1iZWcgKHVzZS1yZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAocmVnaW9uLWVuZCAo
dXNlLXJlZ2lvbi1lbmQpKSkKKyAgICAgIDs7IFVzZSBhIG5vbi1jbG9uZWQgaW5kaXJlY3QgYnVm
ZmVyIHRvIGF2b2lkIGNoYW5naW5nIG1ham9yIG1vZGUKKyAgICAgIDs7IGluIHRoZSBwYXJlbnQg
YnVmZmVyICh3aGljaCB3b3VsZCB0cmFzaCBsb2NhbCB2YXJpYWJsZXMpLiAgVGhpcworICAgICAg
OzsgYWxzbyBlbnN1cmVzIHRyZWVzaXQgc2V0dXAgaXMgbm90IGNvcGllZCBvdmVyIG9yIGl0IGdl
dHMKKyAgICAgIDs7IGNvbmZ1c2VkLgorICAgICAgKGxldCAoKGluZGlyZWN0LWJ1ZmZlciAobWFr
ZS1pbmRpcmVjdC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50
LWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmF0ZS1uZXctYnVm
ZmVyLW5hbWUgKGJ1ZmZlci1uYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5p
bCAnaW5oaWJpdC1idWZmZXItaG9va3MpKQorICAgICAgICAgICAgKGluZGlyZWN0LWRlYWN0aXZh
dGUtbWFyaykKKyAgICAgICAgICAgIChwb2ludC1kZWx0YSAwKSkKKyAgICAgICAgKHVud2luZC1w
cm90ZWN0CisgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIK
KyAgICAgICAgICAgICAgOzsgQ29weSB0aGUgYmFzZSBidWZmZXIncyByZWdpb24sIGlmIHRoZXJl
IGlzIG9uZS4KKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCByZWdpb24tYmVnIHJlZ2lvbi1lbmQp
CisgICAgICAgICAgICAgICAgKHNldC1tYXJrIChpZiAoPCAocG9pbnQpIHJlZ2lvbi1lbmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24tZW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVnaW9uLWJlZykpCisgICAgICAgICAgICAgICAgKGFjdGl2YXRlLW1hcmsp
KQorICAgICAgICAgICAgICAoZGVsYXktbW9kZS1ob29rcworICAgICAgICAgICAgICAgIChmdW5j
YWxsIGJsb2NrLW1vZGUpCisgICAgICAgICAgICAgICAgKHJlYWQtb25seS1tb2RlIC0xKQorICAg
ICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgICAgICAg
KGxldCAoKHBvaW50IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgKHBvaW50LW1hcmtl
ciAocG9pbnQtbWFya2VyKSkpCisgICAgICAgICAgICAgICAgICAgIChjb25kCisgICAgICAgICAg
ICAgICAgICAgICAoKG1lbXEgY29tbWFuZCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNv
bW1hbmRzKQorICAgICAgICAgICAgICAgICAgICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmct
YXQtcG9pbnQgJ3N5bWJvbCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwtaW50
ZXJhY3RpdmVseSBjb21tYW5kIHRoaW5nKSkpCisgICAgICAgICAgICAgICAgICAgICAoKG1lbXEg
Y29tbWFuZCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1jb21tYW5kcykKKyAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiAoYW5kIHJlZ2lvbi1iZWcgcmVnaW9uLWVuZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChhcHBseSAjJ2Z1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLWJlZyByZWdpb24tZW5kIGFyZ3Mp
KSkKKyAgICAgICAgICAgICAgICAgICAgICgoemVyb3AgKGNkciAoZnVuYy1hcml0eSBjb21tYW5k
KSkpCisgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5k
KSkKKyAgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgKGNhbGwt
aW50ZXJhY3RpdmVseSBjb21tYW5kKSkpCisgICAgICAgICAgICAgICAgICAgIChzZXRxIGluZGly
ZWN0LWRlYWN0aXZhdGUtbWFyayBkZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgICAgICAgICAg
IDs7IFRoZSBoZXVyaXN0aWMgb2Ygd2hlbiB0byBtb3ZlIHBvaW50LgorICAgICAgICAgICAgICAg
ICAgICA7OyBkZWFjdGl2YXRlLW1hcmsgcChkKT1wbShkKSBkZWx0YQorICAgICAgICAgICAgICAg
ICAgICA7OyBuaWwgICAgICAgICAgICAgbm8gICAgICAgICAwICAgOyBjbGFzcyBBCisgICAgICAg
ICAgICAgICAgICAgIDs7IG5pbCAgICAgICAgICAgICB5ZXMgICAgICAgIHllcyA7IGNsYXNzIEIK
KyAgICAgICAgICAgICAgICAgICAgOzsgdCAgICAgICAgICAgICAgIG5vICAgICAgICAgMCAgIDsg
Y2xhc3MgQworICAgICAgICAgICAgICAgICAgICA7OyB0ICAgICAgICAgICAgICAgeWVzICAgICAg
ICB5ZXMgOyBjbGFzcyBECisgICAgICAgICAgICAgICAgICAgIDs7IEE6IG5pbAorICAgICAgICAg
ICAgICAgICAgICA7OyBCOiBpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisgICAgICAgICAgICAgICAg
ICAgIDs7IEM6IGNvbW1lbnQtb3ItdW5jb21tZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAg
ICA7OyBEOiBjb21tZW50LWR3aW0gbmV3bGluZSBlbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1p
bmRlbnQKKyAgICAgICAgICAgICAgICAgICAgOzsgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2st
ZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAgICAgICAgIChzZXRxIHBvaW50LWRlbHRhICgtIChw
b2ludCkgcG9pbnQpKQorICAgICAgICAgICAgICAgICAgKHdoZW4gKG5vdCAoZXEgcG9pbnQtZGVs
dGEgKC0gKHBvaW50LW1hcmtlcikgcG9pbnQtbWFya2VyKSkpCisgICAgICAgICAgICAgICAgICAg
IChzZXRxIHBvaW50LWRlbHRhIDApKSkpKQorICAgICAgICAgIChraWxsLWJ1ZmZlciBpbmRpcmVj
dC1idWZmZXIpCisgICAgICAgICAgOzsgUHJvcGFnYXRlIG1hcmsgZGVhY3RpdmF0aW9uIHRvIHRo
ZSBiYXNlIGJ1ZmZlci4KKyAgICAgICAgICAoc2V0cSBkZWFjdGl2YXRlLW1hcmsgaW5kaXJlY3Qt
ZGVhY3RpdmF0ZS1tYXJrKQorICAgICAgICAgIDs7IE1vdmUgYmFzZSBidWZmZXIgcG9pbnQgaWYg
aXQgbW92ZWQgaW4gdGhlIGluZGlyZWN0IGJ1ZmZlci4KKyAgICAgICAgICAoZ290by1jaGFyICgr
IChwb2ludCkgcG9pbnQtZGVsdGEpKQorICAgICAgICAgIDs7IFJlY29yZCB0aGUgb3JpZ2luYWwg
Y29tbWFuZC4KKyAgICAgICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAg
ICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0aW5nIHJlZ2lvbiBpcyByZWZvbnRpZmllZC4KKyAg
ICAgICAgICAoZm9udC1sb2NrLWZsdXNoIGJlZyBlbmQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyIChwb3MgJm9wdGlvbmFsIGJhY2t3YXJkKQor
ICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRl
ciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TLgorU2VhcmNoIGJhY2t3YXJk
IGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgorICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCAodHJl
ZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAgICAgICAgICAgIChs
YW1iZGEgKG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZz0gKHRyZWVz
aXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciIpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmluZC1uZXh0LWNvZGUtYmxvY2st
ZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwb3MgYmFja3dhcmQgcmVtYWluKQorICAiUmV0dXJuIHRoZSBuZXh0
IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitT
ZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBwb2ludCcsIGlmIFBPUyBpcyBuaWwuCitTZWFyY2gg
YmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9uLW5pbC4KK0lmIFJFTUFJTiBpcyBub24tbmlsLCBt
b3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZSBjdXJyZW50IGNvZGUKK2Jsb2NrLCBpZiBp
biBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAocG9pbnQpKSkKKyAgKGFuZC1sZXQqICgobm9k
ZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkp
CisgICAgKGxldCAoKGluLWJsb2NrIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLWF0LXAgcG9zKSkp
CisgICAgICAoY29uZAorICAgICAgICgoYW5kIHJlbWFpbiBpbi1ibG9jaykKKyAgICAgICAgbm9k
ZSkKKyAgICAgICAocmVtYWluCisgICAgICAgIG5pbCkKKyAgICAgICAodAorICAgICAgICAod2hp
bGUgKGFuZCBub2RlCisgICAgICAgICAgICAgICAgICAgIDs7IElmIGJhY2t3YXJkLCBza2lwIHRo
ZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAgICAgICAgICAgICAgOzsgc3RhcnRpbmcgZGVsaW1p
dGVyLgorICAgICAgICAgICAgICAgICAgICAob3IgKGFuZCBiYWNrd2FyZCBpbi1ibG9jayAodHJl
ZXNpdC1ub2RlLW5leHQtc2libGluZyBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChu
b3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkpKSkKKyAgICAgICAgICAoc2V0cSBp
bi1ibG9jayAobWFya2Rvd24tdHMtY29kZS1ibG9jay1hdC1wIHBvcykpCisgICAgICAgICAgKHNl
dHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5v
ZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2RlIChtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2Nr
LWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkKKyAgICAgICAgbm9kZSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jayAoYXJnKQorICAiTW92ZSBwb2ludCB0
byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29kZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1
bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRl
cmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2RlCisgICAgICAgICAgICAgICAobWFya2Rv
d24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlciBuaWwgbmlsIGFyZykpKQorICAg
IChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrIChhcmcpCisgICJNb3ZlIHBvaW50IHRv
IHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMgY29kZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBh
cmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJlbnQgY29kZSBibG9jay4iCisgIChp
bnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2RlCisgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlciBuaWwgJ2JhY2t3YXJkIGFy
ZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkpKQorCis7Ozsg
SGVscGVyczoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1wIChwb3Mp
CisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJl
Z2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEgKG92KSAoZXEgKG92ZXJsYXktZ2V0IG92ICdpbnZp
c2libGUpICdvdXRsaW5lKSkKKyAgICAgICAgICAgKG92ZXJsYXlzLWF0IHBvcykpKQogCiAoZGVm
dW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzICgpCiAgICJSZXR1cm4gcmFuZ2Ugc2V0dGlu
Z3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCiAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCiAgICA6
ZW1iZWQgJ21hcmtkb3duLWlubGluZQogICAgOmhvc3QgJ21hcmtkb3duCi0gICA6cmFuZ2UtZm4g
Iyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4KICAgICcoKGlubGluZSkgQG1hcmtk
b3duLWlubGluZSkKIAotICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9j
ay1sYW5ndWFnZQorICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3Vh
Z2UKICAgIDpob3N0ICdtYXJrZG93bgogICAgOmxvY2FsIHQKICAgICcoKGZlbmNlZF9jb2RlX2Js
b2NrIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpIEBsYW5ndWFnZSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBjb250ZW50KSkpKQogCisoZGVmdW4gbWFya2Rv
d24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cyAoKQorICAiUmVtb3ZlIGFsbCBpbmxpbmUgaW1h
Z2Ugb3ZlcmxheXMgZnJvbSB0aGUgY3VycmVudCBidWZmZXIuIgorICAoZG9saXN0IChvdiAob3Zl
cmxheXMtaW4gKHBvaW50LW1pbikgKHBvaW50LW1heCkpKQorICAgICh3aGVuIChvdmVybGF5LWdl
dCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSAoKQorICAiVXBkYXRlIGlt
YWdlIG92ZXJsYXlzIGFmdGVyIG91dGxpbmUgZm9sZC91bmZvbGQuCitSZW1vdmVzIGltYWdlIG92
ZXJsYXlzIGluIGZvbGRlZCByZWdpb25zIGFuZCB0cmlnZ2VycworcmVmb250aWZpY2F0aW9uIHNv
IHRoYXQgaW1hZ2VzIGluIHVuZm9sZGVkIHJlZ2lvbnMgYXJlIHJlY3JlYXRlZC4iCisgICh3aGVu
IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFn
ZS1vdmVybGF5cykKKyAgICAoZm9udC1sb2NrLWZsdXNoKSkpCisKIChkZWZ1biBtYXJrZG93bi10
cy0tc2V0LWhpZGUtbWFya3VwICh2YWx1ZSkKICAgIlNldCBoaWRpbmcgb2YgTWFya2Rvd24gbWFy
a3VwIGRlbGltaXRlcnMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgogVkFMVUUgbm9uLW5pbCBoaWRl
cyBtYXJrdXAsIG5pbCBzaG93cyBpdC4iCiAgIChpZiB2YWx1ZQogICAgICAgKGFkZC10by1pbnZp
c2liaWxpdHktc3BlYyAnbWFya2Rvd24tdHMtLW1hcmt1cCkKICAgICAocmVtb3ZlLWZyb20taW52
aXNpYmlsaXR5LXNwZWMgJ21hcmtkb3duLXRzLS1tYXJrdXApKQorICAod2hlbiBtYXJrZG93bi10
cy1pbmxpbmUtaW1hZ2VzCisgICAgKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMp
KQogICAoZm9udC1sb2NrLWZsdXNoKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRl
LW1hcmt1cCAoKQpAQCAtMzU2LDE1ICsyMzEzLDIzMCBAQCBtYXJrZG93bi10cy10b2dnbGUtaGlk
ZS1tYXJrdXAKICAgKHNldHEgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCkpCiAgIChtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3du
LXRzLWhpZGUtbWFya3VwKSkKIAorKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdl
cyAodmFsdWUpCisgICJTZXQgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50
IGJ1ZmZlci4KK1ZBTFVFIG5vbi1uaWwgZGlzcGxheXMgaW1hZ2VzLCBuaWwgcmVtb3ZlcyB0aGVt
LiIKKyAgKGlmIHZhbHVlCisgICAgICAodHJlZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1
cmVzICcoaW1hZ2UtcHJldmlldykpCisgICAgKHRyZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1m
ZWF0dXJlcyBuaWwgJyhpbWFnZS1wcmV2aWV3KSkpCisgIChtYXJrZG93bi10cy0tcmVtb3ZlLWlt
YWdlLW92ZXJsYXlzKQorICAoZm9udC1sb2NrLWZsdXNoKSkKIAotOzs7IE1ham9yIG1vZGUKLQot
KGRlZnVuIG1hcmtkb3duLXRzLXNldHVwICgpCi0gICJTZXR1cCB0cmVlc2l0IGZvciBgbWFya2Rv
d24tdHMtbW9kZScuIgotICAobWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1t
YXJrdXApCisoZGVmdW4gbWFya2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMgKCkKKyAgIlRv
Z2dsZSBkaXNwbGF5IG9mIGlubGluZSBpbWFnZXMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLiIKKyAg
KGludGVyYWN0aXZlKQorICAoc2V0cSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIChub3QgbWFy
a2Rvd24tdHMtaW5saW5lLWltYWdlcykpCisgIChtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFn
ZXMgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcykKKyAgKG1lc3NhZ2UgIklubGluZSBpbWFnZXMg
JXMiIChpZiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzICJlbmFibGVkIiAiZGlzYWJsZWQiKSkp
CisKKzs7OyBFbXBoYXNpczoKKworKGRlZnZhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdAor
ICAnKCg/YiAuICIqKiIpCisgICAgKD9CIC4gIl9fIikKKyAgICAoP2kgLiAiKiIpCisgICAgKD9J
IC4gIl8iKQorICAgICg/cyAuICJ+fiIpCisgICAgKD9jIC4gImAiKQorICAgICg/YSAuICIqKioi
KSkKKyAgIkFsaXN0IG9mIGVtcGhhc2lzIG1hcmtlcnMgZm9yIGBtYXJrZG93bi10cy1lbXBoYXNp
emUnLgorRWFjaCBlbnRyeSBpcyAoS0VZIC4gTUFSS0VSKSB3aGVyZSBLRVkgaXMgYSBjaGFyYWN0
ZXIgKG5vdCBhIHN0cmluZykgYW5kCitNQVJLRVIgaXMgdGhlIE1hcmtkb3duIGVtcGhhc2l6ZWQg
dGV4dCBwcmVmaXgvc3VmZml4LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW1waGFzaXMtbm9k
ZS1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBlbXBoYXNpcyBub2RlIGF0IHBvaW50LCBvciBu
aWwuCitGaW5kcyB0aGUgaW5uZXJtb3N0IGBlbXBoYXNpcycsIGBzdHJvbmdfZW1waGFzaXMnLAor
YHN0cmlrZXRocm91Z2gnLCBvciBgY29kZV9zcGFuJyBub2RlLiIKKyAgKHdoZW4tbGV0KiAoKG5v
ZGUgKHRyZWVzaXQtbm9kZS1hdCAocG9pbnQpICdtYXJrZG93bi1pbmxpbmUpKSkKKyAgICAodHJl
ZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgKG1l
bWJlciAodHJlZXNpdC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgJygiZW1waGFz
aXMiICJzdHJvbmdfZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91
Z2giICJjb2RlX3NwYW4iKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW1vdmUtZW1waGFz
aXMgKCkKKyAgIlJlbW92ZSBlbXBoYXNpcyBhcm91bmQgcG9pbnQgb3IgcmVnaW9uLgorV2l0aCBh
biBhY3RpdmUgcmVnaW9uLCBzdHJpcCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG1hcmtlcnMgZnJv
bQordGhlIHNlbGVjdGVkIHRleHQuICBXaXRob3V0IGEgcmVnaW9uLCBmaW5kIHRoZSBlbXBoYXNp
cyBub2RlIGF0Citwb2ludCB1c2luZyB0cmVlLXNpdHRlciBhbmQgcmVtb3ZlIGl0cyBtYXJrZXJz
LiIKKyAgKGludGVyYWN0aXZlKQorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQqICgo
YmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkK
KyAgICAgICAgICAgICAodGV4dCAoYnVmZmVyLXN1YnN0cmluZyBiZWcgZW5kKSkKKyAgICAgICAg
ICAgICAoc3RyaXBwZWQgbmlsKSkKKyAgICAgICAgKGNsLWxvb3AgZm9yIChfa2V5IC4gbSkgaW4g
KHNvcnQgKGNvcHktc2VxdWVuY2UgbWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGEgYikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiAobGVuZ3RoIChjZHIgYSkpIChs
ZW5ndGggKGNkciBiKSkpKSkKKyAgICAgICAgICAgICAgICAgZm9yIHJlID0gKGNvbmNhdCAiXFxg
IiAocmVnZXhwLXF1b3RlIG0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc
KFxcKD86LlxcfFxuXFwpKlxcKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmVnZXhwLXF1b3RlIG0pICJcXCciKQorICAgICAgICAgICAgICAgICB3aGVuIChzdHJpbmctbWF0
Y2ggcmUgdGV4dCkKKyAgICAgICAgICAgICAgICAgZG8gKHNldHEgc3RyaXBwZWQgKG1hdGNoLXN0
cmluZyAxIHRleHQpKQorICAgICAgICAgICAgICAgICBhbmQgcmV0dXJuIG5pbCkKKyAgICAgICAg
KHdoZW4gc3RyaXBwZWQKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBiZWcgZW5kKQorICAgICAg
ICAgIChpbnNlcnQgc3RyaXBwZWQpKSkKKyAgICA7OyBGaW5kIHRoZSBvdXRlcm1vc3QgZW1waGFz
aXMgbm9kZSBhdCBwb2ludC4KKyAgICAod2hlbi1sZXQqICgoaW5uZXIgKG1hcmtkb3duLXRzLS1l
bXBoYXNpcy1ub2RlLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgICAobm9kZSAobGV0ICgobiBp
bm5lcikpCisgICAgICAgICAgICAgICAgICAgICAgICAod2hpbGUgKGxldCAoKHBhcmVudCAodHJl
ZXNpdC1ub2RlLXBhcmVudCBuKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
d2hlbiAoYW5kIHBhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBwYXJlbnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiZW1waGFzaXMiICJzdHJvbmdf
ZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RyaWtldGhyb3VnaCIgImNvZGVfc3BhbiIpKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbiBwYXJlbnQpKSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICBuKSkKKyAgICAgICAgICAgICAgICAoc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgICAgICAgICAoZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAg
ICAgICAgICAgICh0ZXh0ICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlIHQpKQorICAgICAgICAgICAg
ICAgICh0eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkKKyAgICAgICAgICAgICAgICAobWxl
biAocGNhc2UgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgKCJzdHJvbmdfZW1waGFzaXMi
CisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4LXAgIl8iIHRleHQp
IDIgMikpCisgICAgICAgICAgICAgICAgICAgICAgICAoImVtcGhhc2lzIgorICAgICAgICAgICAg
ICAgICAgICAgICAgIChpZiAoc3RyaW5nLXByZWZpeC1wICJfIiB0ZXh0KSAxIDEpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKCJzdHJpa2V0aHJvdWdoIiAyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKCJjb2RlX3NwYW4iIDEpKSkKKyAgICAgICAgICAgICAgICAoaW5uZXItdGV4dCAoc3Vi
c3RyaW5nIHRleHQgbWxlbiAoLSAobGVuZ3RoIHRleHQpIG1sZW4pKSkpCisgICAgICAobGV0ICgo
b2Zmc2V0ICgtIChwb2ludCkgc3RhcnQgbWxlbikpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBz
dGFydCBlbmQpCisgICAgICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgICAgIChpbnNlcnQgaW5u
ZXItdGV4dCkKKyAgICAgICAgKGdvdG8tY2hhciAoKyBzdGFydCAobWF4IDAgb2Zmc2V0KSkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtZW1waGFzaXplICgmb3B0aW9uYWwgY2hhcikKKyAgIklu
c2VydCBvciBjaGFuZ2UgZW1waGFzaXMgb24gdGV4dC4KK0lmIHRoZXJlIGlzIGFuIGFjdGl2ZSBy
ZWdpb24sIHdyYXAgaXQgd2l0aCBlbXBoYXNpcyBtYXJrZXJzLgorSWYgdGhlcmUgaXMgbm8gcmVn
aW9uLCBpbnNlcnQgbWFya2VyIHBhaXJzIGFuZCBwbGFjZSBwb2ludCBiZXR3ZWVuCit0aGVtLiAg
Q0hBUiBzZWxlY3RzIHRoZSBlbXBoYXNpcyB0eXBlOgorCisgIGIgICAqKmJvbGQqKiAgICAgICBC
ICBfX2JvbGRfXworICBpICAgKml0YWxpYyogICAgICAgSSAgX2l0YWxpY18KKyAgYSAgICoqKmJv
bGQraXRhbGljKioqCisgIHMgICB+fnN0cmlrZXRocm91Z2h+fgorICBjICAgYGNvZGVgCisgIFNQ
QyByZW1vdmUgZW1waGFzaXMgYXQgcG9pbnQgb3IgcmVnaW9uIgorICAoaW50ZXJhY3RpdmUKKyAg
ICJjRW1waGFzaXMgW2Jdb2xkIFtCXW9sZF8gW2lddGFsaWMgW0lddGFsaWNfIFthXWxsIFtzXXRy
aWtlIFtjXW9kZSBTUEMgcmVtb3ZlOiIpCisgIChpZiAoZXEgY2hhciA/XHMpCisgICAgICAobWFy
a2Rvd24tdHMtcmVtb3ZlLWVtcGhhc2lzKQorICAgIChpZi1sZXQqICgobWFya2VyIChjZHIgKGFz
c3EgY2hhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdCkpKSkKKyAgICAgICAgKGlmICh1c2Ut
cmVnaW9uLXApCisgICAgICAgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAg
ICAgICAgICAgICAgICAgIChlbmQgKGNvcHktbWFya2VyIChyZWdpb24tZW5kKSkpKQorICAgICAg
ICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIGVuZCkK
KyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikKKyAgICAgICAgICAgICAgICAoZ290by1j
aGFyIGJlZykKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikpKQorICAgICAgICAgIChp
Zi1sZXQqICgoYm91bmRzIChib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQgJ3dvcmQpKSkKKyAgICAg
ICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAoY2Ry
IGJvdW5kcykpCisgICAgICAgICAgICAgICAgKGluc2VydCBtYXJrZXIpCisgICAgICAgICAgICAg
ICAgKGdvdG8tY2hhciAoY2FyIGJvdW5kcykpCisgICAgICAgICAgICAgICAgKGluc2VydCBtYXJr
ZXIpKQorICAgICAgICAgICAgKGluc2VydCBtYXJrZXIgbWFya2VyKQorICAgICAgICAgICAgKGJh
Y2t3YXJkLWNoYXIgKGxlbmd0aCBtYXJrZXIpKSkpCisgICAgICAodXNlci1lcnJvciAiTm8gc3Vj
aCBlbXBoYXNpcyBtYXJrZXI6ICVjIiBjaGFyKSkpKQorCis7OzsgQmxvY2sgc3RydWN0dXJlOgor
CisoZGVmdW4gbWFya2Rvd24tdHMtaW5zZXJ0LXN0cnVjdHVyZSAoJm9wdGlvbmFsIGNoYXIpCisg
ICJJbnNlcnQgYSBibG9jayBzdHJ1Y3R1cmUuCitJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9u
LCB3cmFwIGl0LiAgT3RoZXJ3aXNlLCBpbnNlcnQgYW4gZW1wdHkKK2Jsb2NrIGFuZCBwbGFjZSBw
b2ludCBpbnNpZGUuICBDSEFSIHNlbGVjdHMgdGhlIHN0cnVjdHVyZSB0eXBlOgorCisgIGMgIGZl
bmNlZCBjb2RlIGJsb2NrIChgYGApCisgIHQgIHRpbGRlIGZlbmNlZCBjb2RlIGJsb2NrICh+fn4p
CisgIHEgIGJsb2NrIHF1b3RlICg+ICkKKyAgZCAgaG9yaXpvbnRhbCBkaXZpZGVyL3J1bGUgKC0t
LSkiCisgIChpbnRlcmFjdGl2ZSAiY1N0cnVjdHVyZSBbY11vZGUgYmxvY2sgW3RdaWxkZSBjb2Rl
IGJsb2NrIFtxXXVvdGUgW2RdaXZpZGVyOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9jIChtYXJr
ZG93bi10cy0taW5zZXJ0LWNvZGUtYmxvY2sgP2ApKQorICAgICg/dCAobWFya2Rvd24tdHMtLWlu
c2VydC1jb2RlLWJsb2NrID9+KSkKKyAgICAoP3EgKG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2st
cXVvdGUpKQorICAgICg/ZCAobWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKSkKKyAgICAoXyAo
dXNlci1lcnJvciAiTm8gc3VjaCBzdHJ1Y3R1cmU6ICVjIiBjaGFyKSkpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWluc2VydC1jb2RlLWJsb2NrIChjaGFyICZvcHRpb25hbCBsYW5ndWFnZSkKKyAg
Ikluc2VydCBhIGZlbmNlZCBjb2RlIGJsb2NrIHVzaW5nIGEgQ0hBUiBzZXF1ZW5jZS4KK0NIQVIg
c2hvdWxkIGJlIG9uZSBvZiBhIGJhY2t0aWNrIG9yIGEgdGlsZGUuCitMQU5HVUFHRSBpcyBhIHdo
aXRlc3BhY2UgZnJlZSBsYW5ndWFnZSBzdHJpbmcuIgorICAoc2V0cSBsYW5ndWFnZQorICAgICAg
ICAob3IgbGFuZ3VhZ2UKKyAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAg
ICAgICAgICAgICAiW1s6Ymxhbms6XV0iICIiCisgICAgICAgICAgICAgKGxldCAoKGNvbXBsZXRp
b24taWdub3JlLWNhc2UgbmlsKQorICAgICAgICAgICAgICAgICAgIChjYW5kaWRhdGVzCisgICAg
ICAgICAgICAgICAgICAgIChzZXEtbWFwCisgICAgICAgICAgICAgICAgICAgICAjJ3N5bWJvbC1u
YW1lCisgICAgICAgICAgICAgICAgICAgICAoc2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAg
ICAoYXBwZW5kIChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2Vz
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10
cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFwY2FyICMnY2FyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMpKSkpKSkKKyAgICAg
ICAgICAgICAgIChjb21wbGV0aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAiQ29kZSBibG9jayBs
YW5ndWFnZTogIgorICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICBu
aWwKKyAgICAgICAgICAgICAgICAnY29uZmlybSA7IFByb21wdCBpZiB0aGUgbGFuZ3VhZ2UgaXMg
bm90IG9uIG91ciBsaXN0LgorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdt
YXJrZG93bi10cy1sYW5ndWFnZS1oaXN0b3J5KSkpKSkKKyAgKGxldCAoKGZlbmNlLXN0cmluZyAo
bWFrZS1zdHJpbmcgMyBjaGFyKSkpCisgICAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAgIChs
ZXQgKChiZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAoZW5kIChyZWdpb24t
ZW5kKSkpCisgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAoZ290by1jaGFy
IGVuZCkKKyAgICAgICAgICAgICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxuIikpCisgICAgICAg
ICAgICAoaW5zZXJ0IGZlbmNlLXN0cmluZyAiXG4iKQorICAgICAgICAgICAgKGdvdG8tY2hhciBi
ZWcpCisgICAgICAgICAgICAoaW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG4iKSkpCisg
ICAgICAoaW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG5cbiIgZmVuY2Utc3RyaW5nKQor
ICAgICAgKGZvcndhcmQtbGluZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQt
YmxvY2stcXVvdGUgKCkKKyAgIkluc2VydCBhIGJsb2NrIHF1b3RlLiIKKyAgKGlmICh1c2UtcmVn
aW9uLXApCisgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAg
IChlbmQgKGNvcHktbWFya2VyIChyZWdpb24tZW5kKSkpKQorICAgICAgICAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAod2hpbGUgKDwgKHBvaW50
KSBlbmQpCisgICAgICAgICAgICAoaW5zZXJ0ICI+ICIpCisgICAgICAgICAgICAoZm9yd2FyZC1s
aW5lIDEpKSkpCisgICAgKGluc2VydCAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5z
ZXJ0LWRpdmlkZXIgKCkKKyAgIkluc2VydCBhIGhvcml6b250YWwgcnVsZS4iCisgICh1bmxlc3Mg
KGJvbHApIChpbnNlcnQgIlxuIikpCisgIChpbnNlcnQgIlxuLS0tXG5cbiIpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lzICgpCisgICJBcHBseSBgbWFya2Rvd24tdHMtZWxs
aXBzaXMnIHRvIHRoZSBjdXJyZW50IGJ1ZmZlcidzIGRpc3BsYXkgdGFibGUuIgorICAoaWYgKGFu
ZCAoc3RyaW5ncCBtYXJrZG93bi10cy1lbGxpcHNpcykKKyAgICAgICAgICAgKG5vdCAoc3RyaW5n
LWVtcHR5LXAgbWFya2Rvd24tdHMtZWxsaXBzaXMpKSkKKyAgICAgIChsZXQgKCh0YWJsZSAob3Ig
YnVmZmVyLWRpc3BsYXktdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZGlzcGxh
eS10YWJsZSkpKSkKKyAgICAgICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QKKyAgICAgICAgIHRh
YmxlIDQKKyAgICAgICAgICh2Y29uY2F0IChtYXBjYXIgKGxhbWJkYSAoYykgKG1ha2UtZ2x5cGgt
Y29kZSBjICdzaGFkb3cpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1l
bGxpcHNpcykpKQorICAgICAgICAoc2V0cSBidWZmZXItZGlzcGxheS10YWJsZSB0YWJsZSkpCisg
ICAgKHdoZW4gYnVmZmVyLWRpc3BsYXktdGFibGUKKyAgICAgIChzZXQtZGlzcGxheS10YWJsZS1z
bG90IGJ1ZmZlci1kaXNwbGF5LXRhYmxlIDQgbmlsKSkpKQorCis7OzsgTWFqb3IgbW9kZToKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtdXAgKCkKKyAgIlNldCB1cCB0cmVlc2l0IGZvciBgbWFy
a2Rvd24tdHMtbW9kZScuIgogICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cyBtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncykKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1y
YW5nZS1zZXR0aW5ncyAobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKSkKLSAgKGFkZC10by1s
aXN0ICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcyAnaW52aXNpYmxlKQorICAocHJvZ24K
KyAgICAobWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAg
KG1ha2UtbG9jYWwtdmFyaWFibGUgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2VkLXByb3BzKQorICAg
IChkb2xpc3QgKHByb3AgJyhpbnZpc2libGUgZGlzcGxheSBidXR0b24gY2F0ZWdvcnkgYWN0aW9u
IGhlbHAtZWNobykpCisgICAgICAoYWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2Vk
LXByb3BzIHByb3ApKSkKIAogICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCiAgICAg
KHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnaHRtbCkKQEAgLTQyOSwzOCArMjYwMSwxODUgQEAgbWFy
a2Rvd24tdHMtc2V0dXAKICAgICAgICAgICAgICAgICAgICAgICAgICAnKChwbHVzX21ldGFkYXRh
KSBAdG9tbCkpKSkpCiAKICAgKHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCkKKyAgOzsgRG8gbm90
IGVuYWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5kaXJlY3QgYnVmZmVycyBzdWNoIGFzIHRoZSBv
bmUKKyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2NrIGNvbW1hbmRzLgorICAodW5sZXNzIChidWZm
ZXItYmFzZS1idWZmZXIpCisgICAgKGppdC1sb2NrLXJlZ2lzdGVyICMnbWFya2Rvd24tdHMtLWZv
bnRpZnktYmFyZS11cmkpKQogICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93
bi10cy1oaWRlLW1hcmt1cCkpCiAKKyhkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlICgp
CisgICJDeWNsZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWFkaW5nIGF0IHBvaW50LgorT24gYSBoZWFk
aW5nLCBjYWxsIGBvdXRsaW5lLWN5Y2xlJy4gIE90aGVyd2lzZSBkbyBub3RoaW5nLiIKKyAgKGlu
dGVyYWN0aXZlKQorICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAgKG91dGxpbmUt
Y3ljbGUpKSkKKworKGRlZnZhci1rZXltYXAgbWFya2Rvd24tdHMtbW9kZS1tYXAKKyAgOmRvYyAi
S2V5bWFwIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgorICAiTS08bGVmdD4iICAgICMnbWFya2Rv
d24tdHMtcHJvbW90ZQorICAiTS08cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtZGVtb3RlCisgICJN
LTx1cD4iICAgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAKKyAgIk0tPGRvd24+IiAg
ICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duCisgICJDLWMgQy1uIiAgICAgIydvdXRs
aW5lLW5leHQtaGVhZGluZworICAiQy1jIEMtcCIgICAgICMnb3V0bGluZS1wcmV2aW91cy1oZWFk
aW5nCisgICJDLWMgQy11IiAgICAgIydvdXRsaW5lLXVwLWhlYWRpbmcKKyAgIkMtYyBDLWYiICAg
ICAjJ291dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICJDLWMgQy1iIiAgICAgIydvdXRsaW5l
LWJhY2t3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBDLXggQy1mIiAjJ21hcmtkb3duLXRzLWVtcGhh
c2l6ZQorICAiQy1jIEMteCBDLW0iICMnbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwCisg
ICJDLWMgQy14IEMtdiIgIydtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcworICAiQy1j
IEMtYyIgICAgICMnbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94CisgICJDLWMgQy1yIiAgICAg
IydtYXJrZG93bi10cy1yZW51bWJlci1saXN0CisgICJDLWMgQy0sIiAgICAgIydtYXJrZG93bi10
cy1pbnNlcnQtc3RydWN0dXJlCisgICJDLWMgQy12IG4iICAgIydtYXJrZG93bi10cy1tb3ZlLXRv
LW5leHQtY29kZS1ibG9jaworICAiQy1jIEMtdiBwIiAgICMnbWFya2Rvd24tdHMtbW92ZS10by1w
cmV2aW91cy1jb2RlLWJsb2NrCisgICJSRVQiICAgICAgICAgIydtYXJrZG93bi10cy1uZXdsaW5l
CisgICJNLVJFVCIgICAgICAgIydtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVtCisgICJUQUIi
ICAgICAgICAgIydtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlKQorCisoZGVmdmFyLWtleW1hcCBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBmb3IgYG1hcmtk
b3duLXRzLWNvZGUtYmxvY2stbW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGluIGBtYXJrZG93
bi10cy1tb2RlLW1hcCcgdG8gc3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1hbmRzIGluIGEg
Y29kZS1ibG9jayBjb250ZXh0LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2RlLW1hcAorICAi
TS0uIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5kLWRlZmluaXRp
b25zCisgICJUQUIiICAgICAgICAgIydpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisgICJSRVQiICAg
ICAgICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJDLWoiICAgICAgICAg
IydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLVJFVCIgICAgICAgIydtYXJr
ZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLXEiICAgICAgICAgIydtYXJrZG93bi10
cy0tY29kZS1ibG9jay1maWxsLXBhcmFncmFwaCkKKworKGVhc3ktbWVudS1kZWZpbmUgbWFya2Rv
d24tdHMtbW9kZS1tZW51IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgICJgbWFya2Rvd24tdHMtbW9k
ZScgbWVudS4iCisgICcoIk1hcmtkb3duIiA6dmlzaWJsZSBtYXJrZG93bi10cy1tZW51LWJhci1z
aG93CisgICAgIi0tIgorICAgIFsiQ3ljbGUgT3V0bGluZSBWaXNpYmlsaXR5IiBtYXJrZG93bi10
cy1vdXRsaW5lLWN5Y2xlCisgICAgIDpoZWxwICJDeWNsZSBoZWFkaW5nIHZpc2liaWxpdHkgZnJv
bSBwb2ludCJdCisgICAgWyJUb2dnbGUgSGlkZSBNYXJrdXAiIG1hcmtkb3duLXRzLXRvZ2dsZS1o
aWRlLW1hcmt1cAorICAgICA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cAorICAgICA6aGVscCAiVG9nZ2xlIGRpc3BsYXkgb2YgbWFya3VwIGNoYXJhY3RlcnMi
XQorICAgIFsiVG9nZ2xlIElubGluZSBJbWFnZXMiIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUt
aW1hZ2VzCisgICAgIDpzdHlsZSB0b2dnbGUgOnNlbGVjdGVkIG1hcmtkb3duLXRzLWlubGluZS1p
bWFnZXMKKyAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIGlubGluZSBpbWFnZXMgYmVsb3cg
bGlua3MiXQorICAgICItLSIKKyAgICBbIlVwIiBvdXRsaW5lLXVwLWhlYWRpbmcKKyAgICAgOmhl
bHAgIk1vdmUgdG8gdGhlIHBhcmVudCBoZWFkaW5nIl0KKyAgICBbIk5leHQiIG91dGxpbmUtbmV4
dC1oZWFkaW5nCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmciXQorICAgIFsi
UHJldmlvdXMiIG91dGxpbmUtcHJldmlvdXMtaGVhZGluZworICAgICA6aGVscCAiTW92ZSB0byB0
aGUgcHJldmlvdXMgaGVhZGluZyJdCisgICAgWyJOZXh0IFNhbWUgTGV2ZWwiIG91dGxpbmUtZm9y
d2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmcgYXQg
dGhlIHNhbWUgbGV2ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgb3V0bGluZS1iYWNr
d2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91cyBoZWFkaW5n
IGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICAiLS0iCisgICAgWyJKdW1wIiBpbWVudQorICAgICA6
aGVscCAiSnVtcCB0byBhIGhlYWRpbmcgdmlhIGNvbXBsZXRpb24iXQorICAgICItLSIKKyAgICBb
Ik1vdmUgU3VidHJlZSBVcCIgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwCisgICAgIDpoZWxw
ICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIHVwIl0KKyAgICBbIk1vdmUg
U3VidHJlZSBEb3duIiBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bgorICAgICA6aGVscCAi
TW92ZSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGxpc3QgaXRlbSBkb3duIl0KKyAgICBbIlByb21v
dGUiIG1hcmtkb3duLXRzLXByb21vdGUKKyAgICAgOmhlbHAgIlByb21vdGUgaGVhZGluZyBvciBs
aXN0IGl0ZW0iXQorICAgIFsiRGVtb3RlIiBtYXJrZG93bi10cy1kZW1vdGUKKyAgICAgOmhlbHAg
IkRlbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJdCisgICAgIi0tIgorICAgIFsiRW1waGFzaXMu
Li4iIG1hcmtkb3duLXRzLWVtcGhhc2l6ZQorICAgICA6aGVscCAiQWRkIG9yIGNoYW5nZSBlbXBo
YXNpcyBvbiByZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgbWFya2Rvd24tdHMt
aW5zZXJ0LXN0cnVjdHVyZQorICAgICA6aGVscCAiSW5zZXJ0IGEgY29kZSBibG9jaywgcXVvdGUs
IG9yIG90aGVyIHN0cnVjdHVyZSJdCisgICAgIi0tIgorICAgIFsiVG9nZ2xlIENoZWNrYm94IiBt
YXJrZG93bi10cy10b2dnbGUtY2hlY2tib3gKKyAgICAgOmhlbHAgIlRvZ2dsZSB0YXNrIGxpc3Qg
Y2hlY2tib3ggYXQgcG9pbnQiXQorICAgIFsiTmV3IExpc3QgSXRlbSIgbWFya2Rvd24tdHMtaW5z
ZXJ0LWxpc3QtaXRlbQorICAgICA6aGVscCAiSW5zZXJ0IGEgbmV3IGxpc3QgaXRlbSBhZnRlciB0
aGUgY3VycmVudCBvbmUiXQorICAgIFsiUmVudW1iZXIgTGlzdCIgbWFya2Rvd24tdHMtcmVudW1i
ZXItbGlzdAorICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2ludCJd
KSkKKwogOzs7IyMjYXV0b2xvYWQKIChkZWZpbmUtZGVyaXZlZC1tb2RlIG1hcmtkb3duLXRzLW1v
ZGUgdGV4dC1tb2RlICJNYXJrZG93biIKICAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFya2Rv
d24gdXNpbmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iCiAKLSAgKHNldHEtbG9jYWwgY29tbWVudC1z
dGFydCAiPCEtLSAiKQotICAoc2V0cS1sb2NhbCBjb21tZW50LWVuZCAiIC0tPiIpCisgIChzZXRx
LWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIgorICAgICAgICAgICAgICBjb21tZW50LWVuZCAi
IC0tPiIKKyAgICAgICAgICAgICAgY29tbWVudC1zdGFydC1za2lwICI8IS0tWyBcdF0qIgorICAg
ICAgICAgICAgICBjb21tZW50LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAgICAgICAgICAgIGNv
bW1lbnQtdXNlLXN5bnRheCBuaWwpCisKKyAgKHNldHEtbG9jYWwgZmlsbC1wYXJhZ3JhcGgtZnVu
Y3Rpb24KKyAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGgKKyAgICAg
ICAgICAgICAgZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbgorICAgICAgICAgICAgICAj
J21hcmtkb3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKQorICA7OyBgYWRhcHRpdmUtZmls
bC1mdW5jdGlvbicgdGFrZXMgcHJlY2VkZW5jZSBvdmVyCisgIDs7IGBhZGFwdGl2ZS1maWxsLXJl
Z2V4cCc7IHRoZSBkZWZhdWx0IHJlZ2V4cCBpcyBmaW5lIGFzIGEKKyAgOzsgZmFsbGJhY2sgZm9y
IHBsYWluIChub24tbGlzdCkgcGFyYWdyYXBocy4KKyAgKHNldHEtbG9jYWwgYWRhcHRpdmUtZmls
bC1mdW5jdGlvbiAjJ21hcmtkb3duLXRzLS1hZGFwdGl2ZS1maWxsKQogCiAgIChzZXRxLWxvY2Fs
IGZvbnQtbG9jay1kZWZhdWx0cyBuaWwKLQkgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJl
LWxpc3QgJygoZGVsaW1pdGVyIGhlYWRpbmcpCi0JCQkJCSAgICAgICAocGFyYWdyYXBoKQotCQkJ
CQkgICAgICAgKHBhcmFncmFwaC1pbmxpbmUpKSkKKyAgICAgICAgICAgICAgdHJlZXNpdC1mb250
LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBoZWFkaW5nKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWdyYXBoKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWdyYXBoLWlubGluZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlLXByZXZp
ZXcpKSkKIAogICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0aW5ncwotICAg
ICAgICAgICAgICBgKCgiSGVhZGluZ3MiICwjJ21hcmtkb3duLXRzLWltZW51LW5vZGUtcAotICAg
ICAgICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtaW1lbnUtbmFtZS1mdW5jdGlvbikpKQot
ICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlICMnbWFya2Rvd24tdHMtb3V0
bGluZS1wcmVkaWNhdGUpCisgICAgICAgICAgICAgIGAoKCJIZWFkaW5ncyIgLCMnbWFya2Rvd24t
dHMtLWltZW51LWhlYWRpbmctbm9kZS1wCisgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93
bi10cy0taW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICgiQ29k
ZSBCbG9ja3MiICwjJ21hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5vZGUtcAorICAgICAg
ICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtLWltZW51LWNvZGUtYmxvY2stbmFtZS1mdW5j
dGlvbikpKQorICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlICMnbWFya2Rv
d24tdHMtLW91dGxpbmUtcHJlZGljYXRlKQorCisgIChzZXRxLWxvY2FsIG91dGxpbmUtbWlub3It
bW9kZS1jeWNsZSB0KQorICAob3V0bGluZS1taW5vci1tb2RlIDEpCisKKyAgKG1hcmtkb3duLXRz
LS1hcHBseS1lbGxpcHNpcykKKworICA7OyBOT1RFOiBgb3V0bGluZS12aWV3LWNoYW5nZS1ob29r
JyB3YXMgb2Jzb2xldGVkIGluIDI5LjEgKGNvbW1pdAorICA7OyA1M2IxZTZmOTZjYikgb24gdGhl
IGdyb3VuZHMgdGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQgbm8KKyAgOzsgcmVwbGFj
ZW1lbnQgd2FzIHByb3ZpZGVkIGFuZCBvdXRsaW5lLmVsIGl0c2VsZiBzdGlsbCBydW5zIHRoZSBo
b29rCisgIDs7IGluIDEwKyBwbGFjZXMuCisgICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChv
YnNvbGV0ZSBvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2spKQorICAgIChhZGQtaG9vayAnb3V0bGlu
ZS12aWV3LWNoYW5nZS1ob29rCisgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLW91dGxpbmUt
dmlldy1jaGFuZ2UgbmlsIHQpKQogCiAgICh3aGVuIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3Rh
bGxlZCAnbWFya2Rvd24pCiAgICAgICAgICAgICAgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAn
bWFya2Rvd24taW5saW5lKSkKICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bi1p
bmxpbmUpCiAgICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFya2Rvd24pCi0gICAgKG1hcmtk
b3duLXRzLXNldHVwKSkpCisgICAgKG1hcmtkb3duLXRzLS1zZXQtdXApCisKKyAgICAocGNhc2Ug
bWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nCisgICAgICAoJ3Nob3ctYWxsIChpZ25vcmUpKQor
ICAgICAgKCdmb2xkLWFsbCAob3V0bGluZS1oaWRlLXN1YmxldmVscyAxKSkKKyAgICAgICgnZm9s
ZC1oZWFkaW5ncyAob3V0bGluZS1zaG93LWFsbCkKKyAgICAgICAgICAgICAgICAgICAgICAob3V0
bGluZS1oaWRlLXJlZ2lvbi1ib2R5IChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKQorCisgIDs7
IFN1cHBvcnQgZm9yIGV4ZWN1dGluZyBjb21tYW5kcyBpbiBhIGNvZGUtYmxvY2sgY29udGV4dC4K
KworICA7OyBFbmFibGUgdGhlIG1pbm9yIG1vZGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9k
ZScgYW5kIGl0cyBrZXltYXAKKyAgOzsgd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBjb2RlIGJsb2Nr
LgorICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rCisgICAgICAgICAgICAjJ21hcmtkb3du
LXRzLS1lbmFibGUtY29kZS1ibG9jay1tb2RlIG5pbCAnbG9jYWwpCisgIDs7IElmIGBzYXZlLXBs
YWNlLW1vZGUnIG9yIHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQgY291bGQgc3RhcnQgd2l0aGluIGEK
KyAgOzsgY29kZSBibG9jayBzbyBpbml0aWFsaXplIHRoYXQgc3RhdGUuCisgIChydW4td2l0aC1p
ZGxlLXRpbWVyIDAuMDEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMt
LWVuYWJsZS1jb2RlLWJsb2NrLW1vZGUpCisgIDs7IEZvciBlYWNoIGVsaWdpYmxlIGNvbW1hbmQs
IGV4ZWN1dGUgaXQgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQsCisgIDs7IG90aGVyd2lzZSBpbiB0
aGUgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcidzIGNvbnRleHQuCisgIChhZGQtaG9vayAncHJl
LWNvbW1hbmQtaG9vaworICAgICAgICAgICAgIydtYXJrZG93bi10cy0tbWF5YmUtcnVuLWNvbW1h
bmQtaW4tY29kZS1ibG9jayBuaWwgJ2xvY2FsKSkKIAogKGRlcml2ZWQtbW9kZS1hZGQtcGFyZW50
cyAnbWFya2Rvd24tdHMtbW9kZSAnKG1hcmtkb3duLW1vZGUpKQogCisoZGVmaW5lLW1pbm9yLW1v
ZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlCisgICJNb2RlIGVuYWJsZWQgaWYgcG9pbnQg
aXMgd2l0aGluIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICA6aW50ZXJhY3RpdmUgbmlsKQorCiA7
OzsjIyNhdXRvbG9hZAogKGRlZnVuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUgKCkKICAgIkVuYWJs
ZSBgbWFya2Rvd24tdHMtbW9kZScgd2hlbiBpdHMgZ3JhbW1hciBpcyBhdmFpbGFibGUuCi1BbHNv
IHByb3Bvc2UgdG8gaW5zdGFsbCB0aGUgZ3JhbW1hciB3aGVuIGB0cmVlc2l0LWVuYWJsZWQtbW9k
ZXMnCi1pcyB0IG9yIGNvbnRhaW5zIHRoZSBtb2RlIG5hbWUuIgorUHJvcG9zZSBwcm9wb3NlIHRv
IGluc3RhbGwgdGhlIGdyYW1tYXIgd2hlbiBgdHJlZXNpdC1lbmFibGVkLW1vZGVzJyBpcyB0Citv
ciBjb250YWlucyB0aGUgbW9kZSBuYW1lLiIKICAgKGRlY2xhcmUtZnVuY3Rpb24gdHJlZXNpdC1s
YW5ndWFnZS1hdmFpbGFibGUtcCAidHJlZXNpdC5jIikKICAgKGlmIChvciAodHJlZXNpdC1sYW5n
dWFnZS1hdmFpbGFibGUtcCAnbWFya2Rvd24pCiAgICAgICAgICAgKGVxIHRyZWVzaXQtZW5hYmxl
ZC1tb2RlcyB0KQpAQCAtNDcxLDcgKzI3OTAsOCBAQCBtYXJrZG93bi10cy1tb2RlLW1heWJlCiA7
OzsjIyNhdXRvbG9hZAogKHdoZW4gKGJvdW5kcCAndHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFs
aXN0KQogICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZFxcJyIgLiBtYXJr
ZG93bi10cy1tb2RlLW1heWJlKSkKLSAgOzsgVG8gYmUgYWJsZSB0byB0b2dnbGUgYmV0d2VlbiBh
biBleHRlcm5hbCBwYWNrYWdlIGFuZCBjb3JlIHRzLW1vZGU6CisgIChhZGQtdG8tbGlzdCAnYXV0
by1tb2RlLWFsaXN0ICcoIlxcLm1hcmtkb3duXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUp
KQorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZHhcXCciIC4gbWFya2Rv
d24tdHMtbW9kZS1tYXliZSkpCiAgIChhZGQtdG8tbGlzdCAndHJlZXNpdC1tYWpvci1tb2RlLXJl
bWFwLWFsaXN0CiAgICAgICAgICAgICAgICAnKG1hcmtkb3duLW1vZGUgLiBtYXJrZG93bi10cy1t
b2RlKSkpCiAKLS0gCjIuNTMuMAoK
--=-=-=--




Acknowledgement sent to Rahul Martim Juliato <rahuljuliato@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#80740; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 9 May 2026 03:30:05 UTC

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