Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wSmZz-0005qI-1Y for pgsql-bugs@arkaria.postgresql.org; Fri, 29 May 2026 02:04:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSmZy-0014ex-03 for pgsql-bugs@arkaria.postgresql.org; Fri, 29 May 2026 02:04:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wSmZx-0014eo-2P for pgsql-bugs@lists.postgresql.org; Fri, 29 May 2026 02:04:06 +0000 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wSmZw-000000003vq-0X3w for pgsql-bugs@lists.postgresql.org; Fri, 29 May 2026 02:04:05 +0000 Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-bd2087858c4so2386894266b.0 for ; Thu, 28 May 2026 19:04:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780020242; cv=none; d=google.com; s=arc-20240605; b=L92AuAxOMBX2yAaCXeBHSAyKbpsoVjFzcUaFlk+l3fz3gcy5LocPAh9OxICPxuHRgw 0i+PjonsoxdIVbgsFoo5R+s3orj6ZHiJMCvwrGt7CLunC+pd1XcT3/PoQEUgy8eF4C/T T4P11EyxbfSHlfG5gm9/j63BLVQ+ysOHETrRd50ZipvUnZBisK7sZGBpPdWyaldGBhrx iKNraNpgHBIIBwDZGEVzBxuOgmN5HwzZWmMCAJcUIcnNSnpxIhgFw2kNcYgrSjTNGWKR COMPT+tt7PVKUBrKw51zW93aEDaf+IVFtxaawRtg0g+U9/BvSQKYb8Cyr9J6pPFdkAAi Xbbw== 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=l4fdml+vpwaGiFZmgXYM4cbnH//Hcv86KHAKDtzE8Rw=; fh=LeApmvyQf5YCCUrdy4SQsmEYj1Ke5s0SNMyBBzIgTdA=; b=ClXwbPqAO9WFnJ5uzmC2jsCoP8rrENwK91if8wD1XyAsR+DykTkQZfMHnTZeZOvNiy 9KiiauR/i+O++MswJYpZM4JZX27oaw8uYpFPnmY2CuT4mAR78T5lDV2he8FcPVY2u28G uhYMvmq6fKrgkEEskz3D+Q5eX3I5xfbymL7xEZmVpgOiAH6OmxzLfjkANd94AnsZDJVU 6buMi9hUlYhSlf5vI1WDVbgFdlxeRVasaR+9oF8kgtOHovCTBe2syAFSKiqgUjy6BXyb UacbeMLV06WFwOfCzfbWsNG2TkgyuW1jpWj9lPL50QL8emxU+/z/JLDSkIMA3aFohQ28 eZNg==; darn=lists.postgresql.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=1780020242; x=1780625042; darn=lists.postgresql.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=l4fdml+vpwaGiFZmgXYM4cbnH//Hcv86KHAKDtzE8Rw=; b=OjTorPuswwHeGEyLHRlZIIm/2/wqjveR8ZjgB5Al+m2vqq8pHULhcwWGEJXZ6qovQl nr5VPi/K6nEgHVUHNEvxOLF+aQJw8JZKijYu5fpy/9XGH2qfWD5vMsIQmtnFwq5fCtrQ bCJMgisqSj1fxF59bWdp4tVsodgxpQH8NlH5I7USGN1CNXaP3bV+r5GKWsEUFrncqb02 n03TCuG3jYnssRKZrX93OpHmrQU35+zBT+6Q4JIY5jlobHg/sr9pvGNHVNmOPh6yxtfO Me/A+cXbVU4YtL4EaI+e3CjjZ3PiU/KuxcjPpApzBeE6ZYgBNNJ5upDQQvbWp/PKeGll 9/Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780020242; x=1780625042; 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=l4fdml+vpwaGiFZmgXYM4cbnH//Hcv86KHAKDtzE8Rw=; b=MQRWiAB4b4rfkmwc7xDc0jwYy9KpWkG7jHODrfiJntcLnUY/h/+Wou7tu/octFbrtk tTDe1C5DFcL2eapAOAWYs6YmBnKse1nj4vMZo167IfZjZFcLT+fJRQHAzCRh6CRzewpy orQ2Rvcy4ml6pM+LOTTadwC/HwK3NmONBhUkU9IxDdMKQGxj9yRvxrqOxpG9wdhumKrs QZ3UnlhWp7/UwTK0Exi000Phi0htcYIys1rZL6nk2CghOxI3iDnT393z43MtskawTJuH sjMMxaaWZtZ2kW23JUp468FHhQMYeQi4huIQdFi5FgQG/I8J+ovazLE/9UOimm8csgR2 neXg== X-Gm-Message-State: AOJu0YxurLL7utqbyV2JwzAvhecZdFhVa/FX4c3yoQPFMjkpZYAG9zAT vK7QgVNUQLvGNNGeUiEM6eg8sjRnAUNBafkG+E+uYyW0SQpbMMPSpnys7RNNBV9I3WDgDmh5T+i uJnJ8DM+fXTMT5bdvgPgsvcr2wINn8fbzv1KbeX0= X-Gm-Gg: Acq92OFvPTAjqHtak3Afij1yUrNCvWRD/ZGDCS5Gbi8ql11LTcmacj0kW83fPscuh4U Zrp58NoxiUKsoN+sc9rILDzyVGvXZctouNFixTN6u9TlQGKO+6O8Kw7h1ll6I/5bRrHPa0e2XV4 MKbpkM2PuQkWc6MncrEJJyiKfA/fZQbH4ewGRVoMYqzDThOZy78vXhyrEO/lPVWGbBpJn3VhYYG lfyv1bwX69yQQYl0hh6Uk6cU+p387wrQV5GT3RkkZ/roiJQ/g4OB4Z4qRwPU4fcJXqumQIa2N5H B7B+Qu2Wz1PQomxI1Z4U9T7QFuXaQ+UkpIaLpyGa+IeodFboGXVVMbiXcU38dQ== X-Received: by 2002:a17:907:7291:b0:be8:93c2:cbae with SMTP id a640c23a62f3a-be9c933e3c0mr21898866b.19.1780020242215; Thu, 28 May 2026 19:04:02 -0700 (PDT) MIME-Version: 1.0 References: <19493-5878eac7a2525c23@postgresql.org> <2d59d7d6-6afe-4565-8ff7-ae764651589a@gmail.com> <1779843554.737126560@fmail2.qdit> <418106.1779844099@sss.pgh.pa.us> In-Reply-To: From: Tender Wang Date: Fri, 29 May 2026 10:03:50 +0800 X-Gm-Features: AVHnY4LgribC1Ws_HRNHY_YqN6yoc4eGKdTmj2YVq2lVKYAf1NTCnCU5SFzex2M Message-ID: Subject: Re: BUG #19493: Assertion failure in pg_plan_advice with EXISTS subquery and DO_NOT_SCAN advice To: pgsql-bugs@lists.postgresql.org Cc: Robert Haas , Tom Lane , Ayush Tiwari , =?UTF-8?B?0JrQsNC70LjQvdC40L0g0J3QuNC60LjRgtCw?= , Michael Paquier , Pierre Forstmann Content-Type: multipart/mixed; boundary="0000000000003b32db0652eb42b6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003b32db0652eb42b6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all, Ayush Tiwari =E4=BA=8E2026=E5=B9=B45=E6=9C=88= 27=E6=97=A5=E5=91=A8=E4=B8=89 15:16=E5=86=99=E9=81=93=EF=BC=9A > > Hi, > > On Wed, 27 May 2026 at 09:20, Tender Wang wrote: >> >> Hi, all >> >> I find an easier way as follows: >> diff --git a/contrib/pg_plan_advice/pgpa_trove.c >> b/contrib/pg_plan_advice/pgpa_trove.c >> index ca69f3bd3df..64af4b1435b 100644 >> --- a/contrib/pg_plan_advice/pgpa_trove.c >> +++ b/contrib/pg_plan_advice/pgpa_trove.c >> @@ -179,7 +179,6 @@ pgpa_build_trove(List *advice_items) >> * but in the future this >> might not be true, e.g. a custom >> * scan could replace a join. >> */ >> - Assert(target->ttype =3D=3D >> PGPA_TARGET_IDENTIFIER); >> pgpa_trove_add_to_slice(&trove->= scan, >> >> item->tag, target); >> } > > > Thanks for checking this. > > I agree that removing the assertion looks like the better approach. I attached a patch to fix this issue. In syntax.sql, I saw this: " -- Tags like SEQ_SCAN and NO_GATHER don't allow sublists at all; other tags= , -- except for JOIN_ORDER, allow at most one level of sublist. Hence, these -- examples should error out. " So 'DO_NOT_SCAN((x))' is valid syntax. The original codes in pgpa_build_trove() may forget about this case. I added this syntax case to the syntax.sql. I also added the query to scan.sql and adjusted the original comments. --=20 Thanks, Tender Wang --0000000000003b32db0652eb42b6 Content-Type: application/octet-stream; name="0001-pg_plan_advice-fix-assertion-failure-with-ordered-li.patch" Content-Disposition: attachment; filename="0001-pg_plan_advice-fix-assertion-failure-with-ordered-li.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpq9vx5q0 RnJvbSAxMjJiZjUyOTViNGNjNDYyMDA2NTVkMTFlYzE3ZTRkOGY2ZDcyOTAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUZW5kZXIgV2FuZyA8dG5kcndhbmdAZ21haWwuY29tPgpEYXRl OiBGcmksIDI5IE1heSAyMDI2IDA5OjM3OjQ2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gcGdfcGxh bl9hZHZpY2U6IGZpeCBhc3NlcnRpb24gZmFpbHVyZSB3aXRoIG9yZGVyZWQtbGlzdCBzY2FuCiB0 YXJnZXRzCgpTY2FuIGFkdmljZSB0YXJnZXRzIGFyZSBub3QgYWx3YXlzIHJlcHJlc2VudGVkIGFz ClBHUEFfVEFSR0VUX0lERU5USUZJRVIuICBTb21lIHZhbGlkIGFkdmljZSBlbnRyaWVzIG1heSB1 c2UKUEdQQV9UQVJHRVRfT1JERVJFRF9MSVNUIHRhcmdldHMsIGNhdXNpbmcgdGhlIGFzc2VydGlv biBpbgpwZ3BhX2J1aWxkX3Ryb3ZlKCkgdG8gZmFpbC4KClJlbW92ZSB0aGUgb3Zlcmx5IHJlc3Ry aWN0aXZlIGFzc2VydGlvbiBhbmQgYWxsb3cgYWxsIHZhbGlkCnNjYW4gYWR2aWNlIHRhcmdldCB0 eXBlcyB0byBiZSBhZGRlZCB0byB0aGUgc2NhbiB0cm92ZS4KCkFkZCBhIHJlZ3Jlc3Npb24gdGVz dCBjb3ZlcmluZyBvcmRlcmVkLWxpc3Qgc2NhbiB0YXJnZXRzLgotLS0KIGNvbnRyaWIvcGdfcGxh bl9hZHZpY2UvZXhwZWN0ZWQvc2Nhbi5vdXQgICB8IDIyICsrKysrKysrKysrKysrKysrKysrKysK IGNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvc3ludGF4Lm91dCB8ICA2ICsrKysrKwog Y29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3Ryb3ZlLmMgICAgICAgIHwgIDkgKysrKystLS0t CiBjb250cmliL3BnX3BsYW5fYWR2aWNlL3NxbC9zY2FuLnNxbCAgICAgICAgfCAgNyArKysrKysr CiBjb250cmliL3BnX3BsYW5fYWR2aWNlL3NxbC9zeW50YXguc3FsICAgICAgfCAgNCArKysrCiA1 IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9zY2FuLm91dCBiL2NvbnRyaWIv cGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvc2Nhbi5vdXQKaW5kZXggZjQwMzZlNGNiZGQuLjAxM2Vk MWFhNTRlIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL3NjYW4u b3V0CisrKyBiL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvc2Nhbi5vdXQKQEAgLTc2 OSw2ICs3NjksMjggQEAgU0VMRUNUICogRlJPTSAoU0VMRUNUICogRlJPTSBzY2FuX3RhYmxlIHMg V0hFUkUgYSA9IDEgT0ZGU0VUIDApOwogICAgTk9fR0FUSEVSKHVubmFtZWRfc3VicXVlcnkgc0B1 bm5hbWVkX3N1YnF1ZXJ5KQogKDcgcm93cykKIAorQ09NTUlUOworLS0gVGVzdCBzdWJsaXN0IGlu IFRhZ3MKK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdET19OT1Rf U0NBTigoczEpKSc7CitFWFBMQUlOKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCitTRUxFQ1QgKiBG Uk9NIHNjYW5fdGFibGUgczEgV0hFUkUgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIHNjYW5fdGFibGUg czIgV0hFUkUgczEuYSA9IHMyLmEgT0ZGU0VUIDApOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBT Y2FuIG9uIHNjYW5fdGFibGUgczEKKyAgIERpc2FibGVkOiB0cnVlCisgICBGaWx0ZXI6IEVYSVNU UyhTdWJQbGFuIGV4aXN0c18xKQorICAgU3ViUGxhbiBleGlzdHNfMQorICAgICAtPiAgSW5kZXgg T25seSBTY2FuIHVzaW5nIHNjYW5fdGFibGVfcGtleSBvbiBzY2FuX3RhYmxlIHMyCisgICAgICAg ICAgIEluZGV4IENvbmQ6IChhID0gczEuYSkKKyBTdXBwbGllZCBQbGFuIEFkdmljZToKKyAgIERP X05PVF9TQ0FOKChzMSkpIC8qIG1hdGNoZWQsIGZhaWxlZCAqLworIEdlbmVyYXRlZCBQbGFuIEFk dmljZToKKyAgIFNFUV9TQ0FOKHMxKQorICAgSU5ERVhfT05MWV9TQ0FOKHMyQGV4aXN0c18xIHB1 YmxpYy5zY2FuX3RhYmxlX3BrZXkpCisgICBOT19HQVRIRVIoczEgczJAZXhpc3RzXzEpCisoMTIg cm93cykKKwogQ09NTUlUOwogLS0gVGVzdCBhIG5vbi1yZXBlYXRhYmxlIHRhYmxlc2FtcGxlIG1l dGhvZCB3aXRoIGEgc2Nhbi1sZXZlbCBNYXRlcmlhbGl6ZS4KIENSRUFURSBFWFRFTlNJT04gdHNt X3N5c3RlbV90aW1lOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3Rl ZC9zeW50YXgub3V0IGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9zeW50YXgub3V0 CmluZGV4IGMzZjJjYmQ2ZGNhLi4zMzY2ZTU0NGNlMCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19w bGFuX2FkdmljZS9leHBlY3RlZC9zeW50YXgub3V0CisrKyBiL2NvbnRyaWIvcGdfcGxhbl9hZHZp Y2UvZXhwZWN0ZWQvc3ludGF4Lm91dApAQCAtMTI5LDYgKzEyOSwxMiBAQCBERVRBSUw6ICBDb3Vs ZCBub3QgcGFyc2UgYWR2aWNlOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKCIKIFNFVCBwZ19w bGFuX2FkdmljZS5hZHZpY2UgPSAnR0FUSEVSKCgoeCkpKSc7CiBFUlJPUjogIGludmFsaWQgdmFs dWUgZm9yIHBhcmFtZXRlciAicGdfcGxhbl9hZHZpY2UuYWR2aWNlIjogIkdBVEhFUigoKHgpKSki CiBERVRBSUw6ICBDb3VsZCBub3QgcGFyc2UgYWR2aWNlOiBzeW50YXggZXJyb3IgYXQgb3IgbmVh ciAiKCIKKy0tIHN1Y2Nlc3MKK1NFVCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnRE9fTk9UX1ND QU4oKHgpKSc7CistLSBmYWlsCitTRVQgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ0RPX05PVF9T Q0FOKCgoeCkpKSc7CitFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAicGdfcGxh bl9hZHZpY2UuYWR2aWNlIjogIkRPX05PVF9TQ0FOKCgoeCkpKSIKK0RFVEFJTDogIENvdWxkIG5v dCBwYXJzZSBhZHZpY2U6IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIoIgogLS0gTGVnYWwgY29t bWVudHMuCiBTRVQgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJy8qKi8nOwogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgMTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdw YV90cm92ZS5jIGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3Ryb3ZlLmMKaW5kZXggY2E2 OWYzYmQzZGYuLjcyYzdmZDAyNWQzIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3BsYW5fYWR2aWNl L3BncGFfdHJvdmUuYworKysgYi9jb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfdHJvdmUuYwpA QCAtMTc1LDExICsxNzUsMTIgQEAgcGdwYV9idWlsZF90cm92ZShMaXN0ICphZHZpY2VfaXRlbXMp CiAJCQkJZm9yZWFjaF9wdHIocGdwYV9hZHZpY2VfdGFyZ2V0LCB0YXJnZXQsIGl0ZW0tPnRhcmdl dHMpCiAJCQkJewogCQkJCQkvKgotCQkJCQkgKiBGb3Igbm93LCBhbGwgb2Ygb3VyIHNjYW4gdHlw ZXMgdGFyZ2V0IHNpbmdsZSByZWxhdGlvbnMsCi0JCQkJCSAqIGJ1dCBpbiB0aGUgZnV0dXJlIHRo aXMgbWlnaHQgbm90IGJlIHRydWUsIGUuZy4gYSBjdXN0b20KLQkJCQkJICogc2NhbiBjb3VsZCBy ZXBsYWNlIGEgam9pbi4KKwkJCQkJICogU2NhbiBhZHZpY2UgY29tbW9ubHkgdGFyZ2V0cyBhIHNp bmdsZSByZWxhdGlvbiwgYnV0IHRoaXMgaXMgbm90CisJCQkJCSAqIGd1YXJhbnRlZWQgYnkgdGhl IHJlcHJlc2VudGF0aW9uOiB0YXJnZXRzIG1heSBhbHNvIGJlIG9yZGVyZWQgbGlzdHMsCisJCQkJ CSAqIGFuZCBmdXR1cmUgc2NhbiBhZHZpY2UgbWlnaHQgY292ZXIgbW9yZSBjb21wbGV4IHRhcmdl dHMgc3VjaCBhcyBhCisJCQkJCSAqIGN1c3RvbSBzY2FuIHJlcGxhY2luZyBhIGpvaW4uICBUaGVy ZWZvcmUsIGRvIG5vdCBhc3N1bWUgaWRlbnRpZmllci1vbmx5CisJCQkJCSAqIHRhcmdldHMgaGVy ZS4KIAkJCQkJICovCi0JCQkJCUFzc2VydCh0YXJnZXQtPnR0eXBlID09IFBHUEFfVEFSR0VUX0lE RU5USUZJRVIpOwogCQkJCQlwZ3BhX3Ryb3ZlX2FkZF90b19zbGljZSgmdHJvdmUtPnNjYW4sCiAJ CQkJCQkJCQkJCWl0ZW0tPnRhZywgdGFyZ2V0KTsKIAkJCQl9CmRpZmYgLS1naXQgYS9jb250cmli L3BnX3BsYW5fYWR2aWNlL3NxbC9zY2FuLnNxbCBiL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2Uvc3Fs L3NjYW4uc3FsCmluZGV4IDk4YmVlODhkZTkxLi4xNDQwYzkzYmM3MCAxMDA2NDQKLS0tIGEvY29u dHJpYi9wZ19wbGFuX2FkdmljZS9zcWwvc2Nhbi5zcWwKKysrIGIvY29udHJpYi9wZ19wbGFuX2Fk dmljZS9zcWwvc2Nhbi5zcWwKQEAgLTE5Nyw2ICsxOTcsMTMgQEAgRVhQTEFJTiAoQ09TVFMgT0ZG LCBQTEFOX0FEVklDRSkKIFNFTEVDVCAqIEZST00gKFNFTEVDVCAqIEZST00gc2Nhbl90YWJsZSBz IFdIRVJFIGEgPSAxIE9GRlNFVCAwKTsKIENPTU1JVDsKIAorLS0gVGVzdCBzdWJsaXN0IGluIFRh Z3MKK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdET19OT1RfU0NB TigoczEpKSc7CitFWFBMQUlOKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCitTRUxFQ1QgKiBGUk9N IHNjYW5fdGFibGUgczEgV0hFUkUgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIHNjYW5fdGFibGUgczIg V0hFUkUgczEuYSA9IHMyLmEgT0ZGU0VUIDApOworQ09NTUlUOworCiAtLSBUZXN0IGEgbm9uLXJl cGVhdGFibGUgdGFibGVzYW1wbGUgbWV0aG9kIHdpdGggYSBzY2FuLWxldmVsIE1hdGVyaWFsaXpl LgogQ1JFQVRFIEVYVEVOU0lPTiB0c21fc3lzdGVtX3RpbWU7CiBDUkVBVEUgVEFCTEUgc2Nhbl90 c20gKGkgaW50KTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2Uvc3FsL3N5bnRh eC5zcWwgYi9jb250cmliL3BnX3BsYW5fYWR2aWNlL3NxbC9zeW50YXguc3FsCmluZGV4IGYyNzRm YTQ4NjM2Li5jOWM1ZWI4NGYzYSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19wbGFuX2FkdmljZS9z cWwvc3ludGF4LnNxbAorKysgYi9jb250cmliL3BnX3BsYW5fYWR2aWNlL3NxbC9zeW50YXguc3Fs CkBAIC00Miw2ICs0MiwxMCBAQCBTRVQgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJzEyMyc7CiAt LSBleGFtcGxlcyBzaG91bGQgZXJyb3Igb3V0LgogU0VUIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9 ICdTRVFfU0NBTigoeCkpJzsKIFNFVCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnR0FUSEVSKCgo eCkpKSc7CistLSBzdWNjZXNzCitTRVQgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ0RPX05PVF9T Q0FOKCh4KSknOworLS0gZmFpbAorU0VUIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdET19OT1Rf U0NBTigoKHgpKSknOwogCiAtLSBMZWdhbCBjb21tZW50cy4KIFNFVCBwZ19wbGFuX2FkdmljZS5h ZHZpY2UgPSAnLyoqLyc7Ci0tIAoyLjM0LjEKCg== --0000000000003b32db0652eb42b6--