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 1wD7u3-002dM7-1s for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Apr 2026 21:36:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wD7u2-002KHF-2B for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Apr 2026 21:36:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wD7u2-002KH7-0P for pgsql-hackers@lists.postgresql.org; Wed, 15 Apr 2026 21:36:06 +0000 Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wD7tv-00000001DFJ-0bI2 for pgsql-hackers@lists.postgresql.org; Wed, 15 Apr 2026 21:36:05 +0000 Received: by mail-ua1-x930.google.com with SMTP id a1e0cc1a2514c-954997c9014so2838412241.3 for ; Wed, 15 Apr 2026 14:35:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776288958; cv=none; d=google.com; s=arc-20240605; b=TMrKbb4SyirqjoirPg4/2Ck/jBwx+F8ffzRemU1Px3+yWZbadLMn64n+lzWpW3r4wq s/ZGnx2MquWF6d9c3NogwCfEkK2Mw863lTAYeRzasDB8rhAucZHQLsnh+fGBjayCFc34 VOKkc+GnIZBPaDRDL756lth/v/pJ2qsfSdOJ3MVwSOJ9e/FOoVYsjFR9d48ZcXgwlzYp xpMm5Jn+PJHJxX0uh4yvCDkU6Zr5y7htqTglhkSpZN+R/xvWvWnqhwkEZqUDUtx5UmN7 WHsCR8+cMsQmn7qTbLY3lMzF/94q4vFEX0kdy+dg2WlLb5Xn1k1FwZfjnxO+p0jFt6pk U0Vg== 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=LiAI5M1knQSRcn+VAyPMSofO/eMiluyIbL/QbbNIuCg=; fh=dxJXJbLzq9Nah1LUdsj4QTuQ3JoDScd0wp1YHY64NXM=; b=bWVz9J4wjSVrVvIuTjbR0XBcCfyFROsDiRHm63uM8ojUWTYHYOR8W3JfyXFUjfB5hK ZDkGWAXV1eqp4VudBibYuJCWItwSnwfyNWGlEHTNNhBYpUW3N+TDUjGKkwVZEQyXpi1T NleLYZ1pU+InETZqBp08ATFaH5arX3ZV0GNNjD9Ove4j4v8RmQjbk2OIWBrAMrgzIdT8 yqS4f3S67kbFW2ztBE0HscgiHu/xHQuRf9T7HvCREV/FmBQmGXYW9OWilGFMEOkHGkI8 4wCX5vpH6fVUrvu9P7kjbljkAHQHZHWKAEn0txz2YKSzROBz498CLwOFTq1MOOBN65Hm HVaA==; 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=1776288958; x=1776893758; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=LiAI5M1knQSRcn+VAyPMSofO/eMiluyIbL/QbbNIuCg=; b=f4ZJmL4+BGlKhLNmKh65qnPQcWOhcjQ8Ai9ASOhhA8NfHZBn4rN8sU+Y+MEHEDd9ep A7PJaVu8/3dlVCPcmcb+2lrquxlH4XtFsM/AGu6ZdIKCB1n+NjQIED5gbGgS6HOMyOe0 BzUNsV3rRmQ8smC4bEzdFjp6REJTlP/1SSEPFGmJ9cjUNfM4Oyc0Gq7GEYumLuhUfsm4 2w1MNYiRWKUdOY63T8YT4uXS5P1ySQqdHeNa7e+39wRHVvQxIczcdTxRi8JfL2+Qm2ZI 9eSIrHC5sHBhFDoPzkMEt3gXc9irqLkzU1VB5oKdAWClx/LUrA6Rstj+rJQ7w9wMGIY5 ovnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776288958; x=1776893758; 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=LiAI5M1knQSRcn+VAyPMSofO/eMiluyIbL/QbbNIuCg=; b=HGKgcRd6KBqnmtL6pa0sPogQLJLeizPyl4KXri0TXfovRBq4yVz2kPWNPLWO3SF28x oZb264QHkJ0zvEvBtTalAbCVa9CGWDasBF3tRpyRgqf16/LMbxzTmN7D5c5qJdbkVxl8 DDq3dpyXiTo8OlF83QJcCCgsoxC+KM6b5Drb5F1L94+adVs5jckI8eZalinEVdCozFmC YuOx9oQJKctMG55s7qldNXsy8SFDQMSe0IKuGAr1YV4dr4KZmCnUvYGDWC2K+waapcaE gb/8BV6kGNPBxqwFN0tTKJfwTMUGOFnBcTlKLFvWB+09FGksFqJCjXuBT+XDLsdpzJ1B 6BXg== X-Gm-Message-State: AOJu0YwjIKHughL5XVYcIJsVF6VB9S4bmQ7V5FzOq6cs+HlZfMoQXaSD 1Mf7UFADx84O29kcR/F/jmdJw8Y1RVjxV0xj5iAMTCa3z6avPj0vkS0FuSowZcztoGuhIRHnJHF d2cdFDn31OXOEyKVclAcGTvfHTXyL/eLOaXUB X-Gm-Gg: AeBDieuJY3A94/1ds3xWYH3+hIZvYAgUvhRxYarsgpQ2ZaT6w6oHqK1ju/qZQo8BPO8 DsY+wSdP3pz0n4bUIlZn+UpPYktfuEMkyDoFgbmlDtTPujeG3LXe4NZ2TSydwplOoDbJne7+kJI 0ESX7ZoEjqXWFKbE8im6z1JUDPxnOlScaSFgCddateADkGdsDmEjuU78WV/ow0WhzyWht6V8v/k UxTsWZAEuSOTfDaTtMD3VeJaVwPZEh8HHVDO0v9+W0mbc3fDSrT9vviBimkAExYWsKQ42FQqP9a ElrhhigpxeyZPcV9cA== X-Received: by 2002:a05:6102:5086:b0:611:6fef:905 with SMTP id ada2fe7eead31-6116fef0cb2mr4569230137.20.1776288958288; Wed, 15 Apr 2026 14:35:58 -0700 (PDT) MIME-Version: 1.0 From: SATYANARAYANA NARLAPURAM Date: Wed, 15 Apr 2026 14:35:46 -0700 X-Gm-Features: AQROBzBKh89fjjeTCV7s3iOHadJ-SPyA7-X3eL76NZe6qjPtBLaLvQJgX0LSyq0 Message-ID: Subject: pg_overexplain produces invalid JSON with RANGE_TABLE option To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000060b510064f86800e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000060b510064f86800e Content-Type: multipart/alternative; boundary="00000000000060b50f064f86800c" --00000000000060b50f064f86800c Content-Type: text/plain; charset="UTF-8" Hi Hackers, It appears that pg_overexplain produces invalid JSON output when EXPLAIN (FORMAT JSON, RANGE_TABLE) is used. The "Unprunable RTIs" and "Result RTIs" properties are emitted as key:value pairs directly inside the "Range Table" JSON array, which is structurally invalid. Attempted to fix this by moving ExplainCloseGroup() before the two overexplain_bitmapset() calls, so the properties are emitted as siblings of "Range Table" in the parent object rather than inside the array. Attached a patch to address this which also includes a test. Repro: LOAD 'pg_overexplain'; CREATE TABLE t1 (id serial PRIMARY KEY, val text); CREATE TABLE t2 (id serial PRIMARY KEY, a_id int REFERENCES t1(id), data text); INSERT INTO t1 VALUES (1, 'x'), (2, 'y'); INSERT INTO t2 VALUES (1, 1, 'd1'), (2, 2, 'd2'); EXPLAIN (FORMAT JSON, RANGE_TABLE) EXPLAIN (FORMAT JSON, RANGE_TABLE) SELECT * FROM t1 a JOIN t2 b ON a.id = b.a_id WHERE a.id = 1; " | tail -n +2 | python3 -c "import json,sys; json.loads(sys.stdin.read()); print('VALID JSON')" Thanks, Satya --00000000000060b50f064f86800c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

It appears that pg_ove= rexplain produces invalid JSON output when
EXPLAIN (FORMAT JSON, RANGE= _TABLE) is used. The "Unprunable RTIs" and
"Result RTIs&q= uot; properties are emitted as key:value pairs directly inside
the "= ;Range Table" JSON array, which is structurally invalid.
Attempted to fix this by moving ExplainCloseGroup() before the = two overexplain_bitmapset()=C2=A0
calls, so the properties are em= itted as siblings of "Range Table" in the parent object rather=C2= =A0
than inside the array.

Attached a patc= h to address this which also includes a test.

Repro:=

LOAD 'pg_overexplain';
=C2=A0 CREATE T= ABLE t1 (id serial PRIMARY KEY, val text);
=C2=A0 CREATE TABLE t2 (id se= rial PRIMARY KEY, a_id int REFERENCES t1(id), data text);
=C2=A0 INSERT = INTO t1 VALUES (1, 'x'), (2, 'y');
=C2=A0 INSERT INTO t2= VALUES (1, 1, 'd1'), (2, 2, 'd2');

EXPLA= IN (FORMAT JSON, RANGE_TABLE)
=C2=A0=C2=A0 EXPLAIN (FORMAT JSON, RANGE_TABLE)
=C2=A0 =C2=A0 SELECT * FROM t1 a JOIN= t2 b ON a.id =3D b.a_id WHERE a.id =3D 1; "=C2=A0
| tail -n +2 | python3 -c &q= uot;import json,sys; json.loads(sys.stdin.read()); print('VALID JSON= 9;)"

Thanks,
Satya

--00000000000060b50f064f86800c-- --00000000000060b510064f86800e Content-Type: application/octet-stream; name="0001-Fix-pg_overexplain-invalid-JSON-with-RANGE_TABLE.patch" Content-Disposition: attachment; filename="0001-Fix-pg_overexplain-invalid-JSON-with-RANGE_TABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo0kj5840 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vZXhwZWN0ZWQvcGdfb3ZlcmV4cGxh aW4ub3V0IGIvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9leHBlY3RlZC9wZ19vdmVyZXhwbGFpbi5v dXQKaW5kZXggMDVjNjY4NmQuLjEyYWI5MjYyIDEwMDY0NAotLS0gYS9jb250cmliL3BnX292ZXJl eHBsYWluL2V4cGVjdGVkL3BnX292ZXJleHBsYWluLm91dAorKysgYi9jb250cmliL3BnX292ZXJl eHBsYWluL2V4cGVjdGVkL3BnX292ZXJleHBsYWluLm91dApAQCAtMjk0LDEzICsyOTQsMTMxIEBA ICQkKTsKICAgICAgICAgIDxTZWN1cml0eS1CYXJyaWVyPmZhbHNlPC9TZWN1cml0eS1CYXJyaWVy PiAgICAgICAgICAgICAgICAgKwogICAgICAgICAgPExhdGVyYWw+ZmFsc2U8L0xhdGVyYWw+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgPC9SYW5nZS1UYWJsZS1F bnRyeT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICA8 VW5wcnVuYWJsZS1SVElzPjEgMyA0PC9VbnBydW5hYmxlLVJUSXM+ICAgICAgICAgICAgICAgICAg ICAgKwotICAgICAgIDxSZXN1bHQtUlRJcz5ub25lPC9SZXN1bHQtUlRJcz4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCiAgICAgIDwvUmFuZ2UtVGFibGU+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgPFVucHJ1bmFibGUtUlRJcz4x IDMgNDwvVW5wcnVuYWJsZS1SVElzPiAgICAgICAgICAgICAgICAgICAgICAgKworICAgICA8UmVz dWx0LVJUSXM+bm9uZTwvUmVzdWx0LVJUSXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCiAgICA8L1F1ZXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKICA8L2V4cGxhaW4+CiAoMSByb3cpCiAKKy0tIFRlc3QgSlNPTiBm b3JtYXQgd2l0aCBSQU5HRV9UQUJMRSB0byB2ZXJpZnkgdmFsaWQgSlNPTiBzdHJ1Y3R1cmUuCitT RUxFQ1QgZXhwbGFpbl9maWx0ZXIoJCQKK0VYUExBSU4gKFJBTkdFX1RBQkxFLCBGT1JNQVQgSlNP TiwgQ09TVFMgT0ZGKQorU0VMRUNUIGdlbnVzLCBhcnJheV9hZ2cobmFtZSBPUkRFUiBCWSBuYW1l KSBGUk9NIHZlZ2V0YWJsZXMgR1JPVVAgQlkgZ2VudXMKKyQkKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgIlBsYW4iOiB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTm9kZSBUeXBlIjogIkFnZ3JlZ2F0 ZSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiU3RyYXRlZ3kiOiAi U29ydGVkIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiUGFy dGlhbCBNb2RlIjogIlNpbXBsZSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiR3JvdXAgS2V5IjogWyJ2ZWdldGFibGVz LmdlbnVzIl0sICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiUGxhbnMiOiBbICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgIk5vZGUgVHlwZSI6ICJTb3J0IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgIlBhcmVudCBSZWxhdGlvbnNoaXAiOiAiT3V0ZXIiLCAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIkRpc2FibGVkIjogZmFs c2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIlNvcnQg S2V5IjogWyJ2ZWdldGFibGVzLmdlbnVzIiwgInZlZ2V0YWJsZXMubmFtZSJdLCsKKyAgICAgICAg ICAgIlBsYW5zIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICJOb2RlIFR5cGUiOiAiQXBwZW5kIiwgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICJQYXJlbnQgUmVsYXRpb25zaGlwIjog Ik91dGVyIiwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICJQYXJhbGxlbCBBd2Fy ZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICJBc3lu YyBDYXBhYmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICJBcHBlbmQgUlRJcyI6ICIxIiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICJDaGlsZCBBcHBlbmQgUlRJcyI6ICJub25lIiwgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICJTdWJwbGFucyBSZW1vdmVkIjogMCwgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICJQbGFucyI6IFsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAiTm9kZSBUeXBlIjogIlNlcSBTY2FuIiwgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJNZW1iZXIiLCAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAiUmVsYXRpb24gTmFtZSI6 ICJicmFzc2ljYSIsICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAiQWxpYXMi OiAidmVnZXRhYmxlc18xIiwgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAiU2NhbiBSVEkiOiAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAiTm9kZSBUeXBlIjogIlNlcSBT Y2FuIiwgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAiUGFyZW50IFJl bGF0aW9uc2hpcCI6ICJNZW1iZXIiLCAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAi UGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAiUmVsYXRpb24gTmFtZSI6ICJkYXVjdXMiLCAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAiQWxpYXMiOiAidmVnZXRhYmxlc18yIiwgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAiU2NhbiBSVEkiOiA0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg IF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICBdICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlJhbmdlIFRhYmxl IjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICJSVEkiOiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICJLaW5kIjogInJlbGF0aW9uIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJJbmhlcml0ZWQiOiB0cnVlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJJbiBGcm9tIENsYXVzZSI6IHRy dWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJFcmVmIjogInZl Z2V0YWJsZXMgKGlkLCBuYW1lLCBnZW51cykiLCAgICAgICAgICAgICAgICsKKyAgICAgICAgICJS ZWxhdGlvbiI6ICJ2ZWdldGFibGVzIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICJSZWxhdGlvbiBLaW5kIjogInBhcnRpdGlvbmVkX3RhYmxlIiwgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICJSZWxhdGlvbiBMb2NrIE1vZGUiOiAiQWNjZXNzU2hhcmVMb2NrIiwg ICAgICAgICAgICAgICsKKyAgICAgICAgICJQZXJtaXNzaW9uIEluZm8gSW5kZXgiOiAxLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJTZWN1cml0eSBCYXJyaWVyIjogZmFs c2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJMYXRlcmFsIjogZmFs c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICB9LCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICJSVEkiOiAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICJLaW5kIjogImdyb3VwIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJJbmhlcml0ZWQiOiBmYWxzZSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJJbiBGcm9tIENsYXVzZSI6 IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJFcmVmIjog IlwiKkdST1VQKlwiIChnZW51cykiLCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICJTZWN1cml0eSBCYXJyaWVyIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICJMYXRlcmFsIjogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJSVEkiOiAzLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJLaW5kIjogInJl bGF0aW9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJJ bmhlcml0ZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICJJbiBGcm9tIENsYXVzZSI6IHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICJBbGlhcyI6ICJ2ZWdldGFibGVzIChpZCwgbmFtZSwgZ2VudXMpIiwg ICAgICAgICAgICAgICsKKyAgICAgICAgICJFcmVmIjogInZlZ2V0YWJsZXMgKGlkLCBuYW1lLCBn ZW51cykiLCAgICAgICAgICAgICAgICsKKyAgICAgICAgICJSZWxhdGlvbiI6ICJicmFzc2ljYSIs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJSZWxhdGlvbiBLaW5k IjogInJlbGF0aW9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJSZWxh dGlvbiBMb2NrIE1vZGUiOiAiQWNjZXNzU2hhcmVMb2NrIiwgICAgICAgICAgICAgICsKKyAgICAg ICAgICJTZWN1cml0eSBCYXJyaWVyIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICJMYXRlcmFsIjogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJSVEkiOiA0LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJLaW5kIjog InJlbGF0aW9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICJJbmhlcml0ZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICJJbiBGcm9tIENsYXVzZSI6IHRydWUsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICJBbGlhcyI6ICJ2ZWdldGFibGVzIChpZCwgbmFtZSwgZ2VudXMp IiwgICAgICAgICAgICAgICsKKyAgICAgICAgICJFcmVmIjogInZlZ2V0YWJsZXMgKGlkLCBuYW1l LCBnZW51cykiLCAgICAgICAgICAgICAgICsKKyAgICAgICAgICJSZWxhdGlvbiI6ICJkYXVjdXMi LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJSZWxhdGlvbiBL aW5kIjogInJlbGF0aW9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJS ZWxhdGlvbiBMb2NrIE1vZGUiOiAiQWNjZXNzU2hhcmVMb2NrIiwgICAgICAgICAgICAgICsKKyAg ICAgICAgICJTZWN1cml0eSBCYXJyaWVyIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICJMYXRlcmFsIjogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlVucHJ1bmFibGUgUlRJcyI6 ICIxIDMgNCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlJlc3VsdCBS VElzIjogIm5vbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIH0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyBdCisoMSByb3cpCisKIC0tIFRlc3QganVzdCB0aGUgREVCVUcgb3B0aW9uLiBWZXJpZnkg dGhhdCBpdCBzaG93cyBpbmZvcm1hdGlvbiBhYm91dAogLS0gZGlzYWJsZWQgbm9kZXMsIHBhcmFs bGVsIHNhZmV0eSwgYW5kIHRoZSBwYXJhbGxlbE1vZGVOZWVkZWQgZmxhZy4KIFNFVCBlbmFibGVf c2Vxc2NhbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19v dmVyZXhwbGFpbi5jIGIvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jCmlu ZGV4IDcxNWVkYThkLi5mYjI3N2UwMiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19vdmVyZXhwbGFp bi9wZ19vdmVyZXhwbGFpbi5jCisrKyBiL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vcGdfb3ZlcmV4 cGxhaW4uYwpAQCAtNzc2LDcgKzc3NiwxNCBAQCBvdmVyZXhwbGFpbl9yYW5nZV90YWJsZShQbGFu bmVkU3RtdCAqcGxhbm5lZHN0bXQsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCUV4cGxhaW5DbG9zZUdy b3VwKCJSYW5nZSBUYWJsZSBFbnRyeSIsIE5VTEwsIHRydWUsIGVzKTsKIAl9CiAKLQkvKiBQcmlu dCBQbGFubmVkU3RtdCBmaWVsZHMgdGhhdCBjb250YWluIFJUSXMuICovCisJLyogQ2xvc2UgdGhl IFJhbmdlIFRhYmxlIGFycmF5IGJlZm9yZSBlbWl0dGluZyBQbGFubmVkU3RtdC1sZXZlbCBmaWVs ZHMuICovCisJRXhwbGFpbkNsb3NlR3JvdXAoIlJhbmdlIFRhYmxlIiwgIlJhbmdlIFRhYmxlIiwg ZmFsc2UsIGVzKTsKKworCS8qCisJICogUHJpbnQgUGxhbm5lZFN0bXQgZmllbGRzIHRoYXQgY29u dGFpbiBSVElzLiAgVGhlc2UgYXJlIHByb3BlcnRpZXMgb2YKKwkgKiB0aGUgUGxhbm5lZFN0bXQs IG5vdCBvZiBpbmRpdmlkdWFsIFJURXMsIHNvIHRoZXkgYmVsb25nIG91dHNpZGUgdGhlCisJICog UmFuZ2UgVGFibGUgYXJyYXkuCisJICovCiAJaWYgKGVzLT5mb3JtYXQgIT0gRVhQTEFJTl9GT1JN QVRfVEVYVCB8fAogCQkhYm1zX2lzX2VtcHR5KHBsYW5uZWRzdG10LT51bnBydW5hYmxlUmVsaWRz KSkKIAkJb3ZlcmV4cGxhaW5fYml0bWFwc2V0KCJVbnBydW5hYmxlIFJUSXMiLCBwbGFubmVkc3Rt dC0+dW5wcnVuYWJsZVJlbGlkcywKQEAgLTc4NSw5ICs3OTIsNiBAQCBvdmVyZXhwbGFpbl9yYW5n ZV90YWJsZShQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCSFi bXNfaXNfZW1wdHkocGxhbm5lZHN0bXQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzKSkKIAkJb3ZlcmV4 cGxhaW5fYml0bWFwc2V0KCJSZXN1bHQgUlRJcyIsIHBsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlv blJlbGlkcywKIAkJCQkJCQkgIGVzKTsKLQotCS8qIENsb3NlIGdyb3VwLCB3ZSdyZSBhbGwgZG9u ZSAqLwotCUV4cGxhaW5DbG9zZUdyb3VwKCJSYW5nZSBUYWJsZSIsICJSYW5nZSBUYWJsZSIsIGZh bHNlLCBlcyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9jb250cmliL3BnX292ZXJleHBsYWluL3Nx bC9wZ19vdmVyZXhwbGFpbi5zcWwgYi9jb250cmliL3BnX292ZXJleHBsYWluL3NxbC9wZ19vdmVy ZXhwbGFpbi5zcWwKaW5kZXggZDA3ZjkzNjguLjNmMTdiNjFhIDEwMDY0NAotLS0gYS9jb250cmli L3BnX292ZXJleHBsYWluL3NxbC9wZ19vdmVyZXhwbGFpbi5zcWwKKysrIGIvY29udHJpYi9wZ19v dmVyZXhwbGFpbi9zcWwvcGdfb3ZlcmV4cGxhaW4uc3FsCkBAIC02Niw2ICs2NiwxMiBAQCBFWFBM QUlOIChERUJVRywgUkFOR0VfVEFCTEUsIEZPUk1BVCBYTUwsIENPU1RTIE9GRikKIFNFTEVDVCBn ZW51cywgYXJyYXlfYWdnKG5hbWUgT1JERVIgQlkgbmFtZSkgRlJPTSB2ZWdldGFibGVzIEdST1VQ IEJZIGdlbnVzCiAkJCk7CiAKKy0tIFRlc3QgSlNPTiBmb3JtYXQgd2l0aCBSQU5HRV9UQUJMRSB0 byB2ZXJpZnkgdmFsaWQgSlNPTiBzdHJ1Y3R1cmUuCitTRUxFQ1QgZXhwbGFpbl9maWx0ZXIoJCQK K0VYUExBSU4gKFJBTkdFX1RBQkxFLCBGT1JNQVQgSlNPTiwgQ09TVFMgT0ZGKQorU0VMRUNUIGdl bnVzLCBhcnJheV9hZ2cobmFtZSBPUkRFUiBCWSBuYW1lKSBGUk9NIHZlZ2V0YWJsZXMgR1JPVVAg QlkgZ2VudXMKKyQkKTsKKwogLS0gVGVzdCBqdXN0IHRoZSBERUJVRyBvcHRpb24uIFZlcmlmeSB0 aGF0IGl0IHNob3dzIGluZm9ybWF0aW9uIGFib3V0CiAtLSBkaXNhYmxlZCBub2RlcywgcGFyYWxs ZWwgc2FmZXR5LCBhbmQgdGhlIHBhcmFsbGVsTW9kZU5lZWRlZCBmbGFnLgogU0VUIGVuYWJsZV9z ZXFzY2FuID0gZmFsc2U7Cg== --00000000000060b510064f86800e--