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 1vxBSc-001zw4-2j for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 22:09:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vxBSa-0039aK-1L for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 22:09:52 +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 1vxBSa-0039aC-00 for pgsql-hackers@lists.postgresql.org; Mon, 02 Mar 2026 22:09:52 +0000 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vxBSY-00000000534-13g6 for pgsql-hackers@lists.postgresql.org; Mon, 02 Mar 2026 22:09:51 +0000 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-415b23dd6e5so69850fac.3 for ; Mon, 02 Mar 2026 14:09:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772489390; cv=none; d=google.com; s=arc-20240605; b=jky5ey/VYhq9SeBczDvOLHukVbFxk+KggpzdmR8FV803vWIwg42Q2ZQqICM0dYFYtO tdx/EXXrimHJ1G7PGq7JfTbTQHOvKtelJKMo/qxpbUQ64Iz3mx5eqdwCUtUExR3MWLPw /NM6d2jwPUos1RucvNPcLQr/R8eBeelIDK/EAQPj+ZE4p3zJK2Gm7Mu+w21TtBnoHKwL JquACPPymWdncnw7m5tXSzSBoeK7brJxOVPa2AhASUAfVCpCLrqQ2m3uNYbcO87SLcKi jzeW3Jzy6OFf9iczbusArUBzYe+WMKkV8LzJCTmr/tMUemilqrtS0DNN7tOF2iGmZmtk czNw== 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=OQVFboyTw6burWlcvdFR7xOBqttz/d9iJ2M0I8pYnAg=; fh=k8lp94uYajfKJ++2s8eV9GbbkbT9weJFBvGoJRHmQPk=; b=lp7089tW59x+XUhOEX/GmtiDglvB4aZI84vnrPo33erZeviHsgRkxwhcKTkD2W7c9X GSfuXq90iyQs6xjZoR95c3atx11vpCRnyrwqevWd2c3InhJ7sxSS1lSpvlQjaiTa5ied 947iEIS+vOB2GYhfsFzFE1snSR6krv8QPHNPU/nAI2qVGqCVh6js41V+zdyJgKXzk8Fm e7vWedLQSOXEMnkaZzuzKZTron48eU+yw5K0wTTOgnISK416jsiUkFm98HsCquVNCT77 rz/QSX9G6TNlAYgIuvDCxwC+ROlBa90rULxGvOPLycbVmyE5lOK4/U1L9MaYXcYyVJlJ 4SAg==; 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=20230601; t=1772489390; x=1773094190; 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=OQVFboyTw6burWlcvdFR7xOBqttz/d9iJ2M0I8pYnAg=; b=ke7Cahg7cMZBL8mMevDKnQtutQaJ0ziWkupveNMTp19/vHo4EwnbU11GPhQsQx2OFM tGqw8pfVmxooux3X3aQR/7jt5zF74O0+6NmDTYhaxKqa/RM1Q2jptrn07LmpVouNOweW XBiDglr/2aQxKsm5tFRdmuWImaeUrT4OzU3wrwN2SKKkRurObY3FEdmKk8fWxMsSMwg5 pIWdWnq0x7/IcvMOKrX+3JrjmTsoxrAZLK62h8XpBxyzEoXL9iuZavAJftj4DelS4Pp7 tv2oJIIB5yHGyAa538XPPmrXPx5fgDs5dt0lWfz4toROjfwAcvRryNf9JBsXTNnrKqR/ hdEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772489390; x=1773094190; 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=OQVFboyTw6burWlcvdFR7xOBqttz/d9iJ2M0I8pYnAg=; b=cyiMne6770WtFZM3AhmFCLcPXeWzhSCktl3FFNn9xmZ8c+D4weq8CP8sb/oWYiT6NB lUR+fbosgzNIKjJMfY1W7BcaygliBCCUysLrF3+h7HTpYyNtkLpujHIJyJojSdxtsgZh BnOqnwfUcs+afGX3QaXLJYye36zXj7YSoK/AUojlLWKaBID+RzPRIbDU7KgICCCiSxq+ 4/Ecw9Nzs12bdXe1jUIaX+4bBhm0JGawekWSzex1es/Nf9gPsY7M0gBn/OLxZmfulL2I dZ3z0GoXxfhWn2a5SeOX3wpSlOl45wPtZqmoFfjuKT7oFcYPb7MlQ32M79G9v9CtTWFD pEbw== X-Forwarded-Encrypted: i=1; AJvYcCW2aP39mcKg6uY1vnA3iyf0vRTQlETRe5Itz53A9jDZisz1cWZ7hEsJNOkAm6TlWFT+X7E49ZCxMcSaB4UD@lists.postgresql.org X-Gm-Message-State: AOJu0Yypz0WKddR2GyeNfwqnS79mCj8mNFVcydjYmEIYpzYmou32yr7k HB/6Qa0Kk6KYo80Axd+p9/dJMSdoVBmWrt9/7lbun47Z0EXfuyWffUqS09+x3m5Lis7Vd+iWQ7E qrX5cTSisaNXhWpSen3PdnaWmJALwJJQ= X-Gm-Gg: ATEYQzygo9z5U9LPc1OncAWf3zf5VbindFocNX/QZbh6Wb/F2ptrMvbfekXzYzB1aBO KYjHsFGEjXsDGpjg6ML8tvC9NWnMkPUaril3XWkrlwVM/rzvFVR9RSWEqnSdr/r1KHYFTTxzdiD 04sDOQWfBO2Rljfyq5/t33oqrVhWeQEd905S8s7l4Me7ev3oq/pn6XlNwbBEeDrWKO2cQz/niu1 GeBAgPCP1fp/Bk5tMc+eBoN8YXDpBs4dGe395VBSSAOI9AwF8BMXeyNxTwR781H7XhkX+ElnYtB ar/mitY= X-Received: by 2002:a05:6820:2107:b0:679:97ac:2cc0 with SMTP id 006d021491bc7-679fadf38admr7981267eaf.24.1772489389681; Mon, 02 Mar 2026 14:09:49 -0800 (PST) MIME-Version: 1.0 References: <1136161.1769654478@sss.pgh.pa.us> In-Reply-To: From: "David G. Johnston" Date: Mon, 2 Mar 2026 15:09:12 -0700 X-Gm-Features: AaiRm53jr0jPRNujfZgWy0V2eFIr3vx-iJdTu2QUilYbRZ_yxHcGc_5_cdtHjsg Message-ID: Subject: Re: pg_plan_advice To: Robert Haas Cc: Alexandra Wang , Richard Guo , Lukas Fittl , Tom Lane , Jacob Champion , Dian Fay , Matheus Alcantara , Jakub Wartak , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000070cb1d064c11d8b7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000070cb1d064c11d8b7 Content-Type: multipart/alternative; boundary="00000000000070cb1c064c11d8b5" --00000000000070cb1c064c11d8b5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Mar 1, 2026 at 9:10=E2=80=AFPM David G. Johnston wrote: > On Fri, Feb 27, 2026 at 6:16=E2=80=AFPM David G. Johnston < > david.g.johnston@gmail.com> wrote: > >> On Fri, Feb 27, 2026 at 3:46=E2=80=AFPM Robert Haas >> wrote: >> >>> On Thu, Feb 26, 2026 at 8:55=E2=80=AFAM Robert Haas >>> wrote: >>> > Thanks, Alex, for the review. >>> >>> Here's v18. In addition to fixing the problems pointed out by Alex, >>> there are a couple of significant changes in this version. >>> >>> >> I have a mind to walk through the readmes and sgmls but its going to be >> in chunks. Here's one for the readme for pg_plan_advice with a couple o= f >> preliminary sgml changes. >> >> > 0003 sgml focus with some readme. > > And now 0004 sgml (no readme): My OCD wants these named pg_advice_{plan,collect,stash} so they sort together. Strongly thinking using "entries" throughout makes more sense than "query texts and advice string" - it is shorter and more inclusive since the actual stored info covers IDs and timestamp. I made one swap where shared was being mentioned before local. I added some unresearched answers to open questions I had at the end of the main section. Namely, pertaining to advice feedback output and capturing explain plans themselves. David J. --00000000000070cb1c064c11d8b5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sun,= Mar 1, 2026 at 9:10=E2=80=AFPM David G. Johnston <david.g.johnston@gmail.com&g= t; wrote:
On Fri, Feb 27, 2026 at 6:16=E2=80=AFPM David G. Jo= hnston <= david.g.johnston@gmail.com> wrote:
= On Fri, Feb 27, 2026= at 3:46=E2=80=AFPM Robert Haas <robertmhaas@gmail.com> wrote:
=
robertmhaas@gmail.com> wro= te:
> Thanks, Alex, for the review.

Here's v18. In addition to fixing the problems pointed out by Alex,
there are a couple of significant changes in this version.


I = have a mind to walk through the readmes and sgmls but its going to be in ch= unks.=C2=A0 Here's one for the readme for pg_plan_advice with a couple = of preliminary sgml changes.


0003 sgml focus with some readm= e.


And now 0004 sgml (no readme):

My OCD wants these named pg_advice_{plan,collect,stash} so= they sort together.

Strongly thinking using "e= ntries" throughout makes more sense than "query texts and advice = string" - it is shorter and=C2=A0more=C2=A0inclusive since the actual = stored info covers IDs and timestamp.

I made one swap = where shared was being mentioned before local.

I added= some unresearched answers to open questions I had at the end of the main s= ection.=C2=A0 Namely, pertaining to advice=C2=A0feedback output and capturi= ng explain plans themselves.

David J.
--00000000000070cb1c064c11d8b5-- --00000000000070cb1d064c11d8b7 Content-Type: text/x-patch; charset="US-ASCII"; name="nocfbot-v18-0004-pgcollectadvice-sgml.diff" Content-Disposition: attachment; filename="nocfbot-v18-0004-pgcollectadvice-sgml.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm9qcnqh0 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wZ2NvbGxlY3RhZHZpY2Uuc2dtbCBiL2RvYy9zcmMv c2dtbC9wZ2NvbGxlY3RhZHZpY2Uuc2dtbAppbmRleCBmZDdkODc5ZDgxNi4uYmEyODM3YzM5ODIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wZ2NvbGxlY3RhZHZpY2Uuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcGdjb2xsZWN0YWR2aWNlLnNnbWwKQEAgLTExLDExICsxMSwxNiBAQAogICBUaGUg PGZpbGVuYW1lPnBnX2NvbGxlY3RfYWR2aWNlPC9maWxlbmFtZT4gZXh0ZW5zaW9uIGFsbG93cyB5 b3UgdG8KICAgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBwbGFuIGFkdmljZSBlYWNoIHRpbWUgYSBx dWVyeSBpcyBwbGFubmVkIGFuZCBzdG9yZQogICB0aGUgcXVlcnkgYW5kIHRoZSBnZW5lcmF0ZWQg YWR2aWNlIHN0cmluZyBlaXRoZXIgaW4gbG9jYWwgb3Igc2hhcmVkIG1lbW9yeS4KKyAgQ29sbGVj dGlvbiBlbmFibGVtZW50IGFuZCBlbnRyaWVzIGFyZSBkZXNjcmliZWQgYmVsb3csIGJ1dCBpbXBv cnRhbnRseSwKKyAgdGhlcmUgaXMgbm8gZGVkdXBsaWNhdGlvbiBpbnZvbHZlZDsgZWFjaCBwbGFu bmluZyBldmVudCBwcm9kdWNlcyBvbmUgZW50cnksCisgIGFuZCBhIG1hbmRhdG9yeSBjYXAgb24g dGhlIG51bWJlciBvZiBlbnRyaWVzIGFsbG93ZWQgbXVzdCBiZSBzZXQgYmVmb3JlCisgIGVuYWJs aW5nIGNvbGxlY3Rpb24uCiAgIE5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiByZXF1aXJlcyB0aGUg PHhyZWYgbGlua2VuZD0icGdwbGFuYWR2aWNlIiAvPiBtb2R1bGUsCi0gIHdoaWNoIHBlcmZvcm1z IHRoZSBhY3R1YWwgcGxhbiBhZHZpY2UgZ2VuZXJhdGlvbjsgdGhpcyBtb2R1bGUgb25seSBrbm93 cwotICBob3cgdG8gc3RvcmUgdGhlIGdlbmVyYXRlZCBhZHZpY2UgZm9yIGxhdGVyIGV4YW1pbmF0 aW9uLiBXaGVuZXZlcgotICA8bGl0ZXJhbD5wZ19jb2xsZWN0X2FkdmljZTwvbGl0ZXJhbD4gaXMg bG9hZGVkLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgbG9hZAotICA8bGl0ZXJhbD5wZ19wbGFuX2Fk dmljZTwvbGl0ZXJhbD4uCisgIHdoaWNoIHBlcmZvcm1zIHRoZSBhY3R1YWwgcGxhbiBhZHZpY2Ug Z2VuZXJhdGlvbjsgdGhpcyBtb2R1bGUganVzdCBoYW5kbGVzCisgIGVuYWJsaW5nIGF1dG9tYXRp YyBnZW5lcmF0aW9uIGFuZCBwZXJmb3JtaW5nIHRoZSBzdG9yYWdlIG9mIHRoZSBnZW5lcmF0ZWQK KyAgYWR2aWNlIGZvciBsYXRlciBleGFtaW5hdGlvbiB0aHJvdWdoIHRoZSBleHRlbnNpb24ncyB2 aWV3cy4KKyAgV2hlbmV2ZXIgPGxpdGVyYWw+cGdfY29sbGVjdF9hZHZpY2U8L2xpdGVyYWw+IGlz IGxvYWRlZCwgaXQgd2lsbCBhdXRvbWF0aWNhbGx5CisgIGxvYWQgPGxpdGVyYWw+cGdfcGxhbl9h ZHZpY2U8L2xpdGVyYWw+LgogIDwvcGFyYT4KIAogIDxwYXJhPgpAQCAtMzAsMTIgKzM1LDE0IEBA CiAgPC9wYXJhPgogCiAgPHBhcmE+Ci0gIDxsaXRlcmFsPnBnX2NvbGxlY3RfYWR2aWNlPC9saXRl cmFsPiBpbmNsdWRlcyBib3RoIGEgc2hhcmVkIGFkdmljZQotICBjb2xsZWN0b3IgYW5kIGEgbG9j YWwgYWR2aWNlIGNvbGxlY3Rvci4gVGhlIGxvY2FsIGFkdmljZSBjb2xsZWN0b3IgbWFrZXMKLSAg cXVlcmllcyBhbmQgdGhlaXIgYWR2aWNlIHN0cmluZ3MgdmlzaWJsZSBvbmx5IHRvIHRoZSBzZXNz aW9uIHdoZXJlIHRob3NlCi0gIHF1ZXJpZXMgd2VyZSBwbGFubmVkLCB3aGlsZSB0aGUgc2hhcmVk IGFkdmljZSBjb2xsZWN0b3IgY29sbGVjdHMgZGF0YQotICBvbiBhIHN5c3RlbS13aWRlIGJhc2lz LCBhbmQgYXV0aG9yaXplZCB1c2VycyBjYW4gZXhhbWluZSBkYXRhIGZyb20gYWxsCi0gIHNlc3Np b25zLgorICA8bGl0ZXJhbD5wZ19jb2xsZWN0X2FkdmljZTwvbGl0ZXJhbD4gaW5jbHVkZXMgYm90 aCBhIGxvY2FsIGFkdmljZQorICBjb2xsZWN0b3IgYW5kIGEgc2hhcmVkIGFkdmljZSBjb2xsZWN0 b3IuCisgIFRoZSBsb2NhbCBhZHZpY2UgY29sbGVjdG9yIHN0b3JlcyBlbnRyaWVzIGxvY2FsbHkg dG8gdGhlIHNlc3Npb24gd2hlcmUgdGhvc2UKKyAgcXVlcmllcyB3ZXJlIHBsYW5uZWQgYW5kIHJl cXVpcmVzIHRoZSBleHRlbnNpb24gdG8gYmUgaW5zdGFsbGVkIHdpdGhpbiB0aGUKKyAgZGF0YWJh c2UgdGhlIHNlc3Npb24gaXMgY29ubmVjdGVkIHRvLgorICBUaGUgc2hhcmVkIGFkdmljZSBjb2xs ZWN0b3Igc3RvcmVzIGVudHJpZXMgZm9yIGFsbCBkYXRhYmFzZXMgaW4gdGhlIGNsdXN0ZXIsCisg IGFuZCBhdXRob3JpemVkIHVzZXJzIGNhbiBleGFtaW5lIGVudHJpZXMgZnJvbSBhbnkgc2Vzc2lv biBjb25uZWN0ZWQgdG8gYQorICBkYXRhYmFzZSB3aGVyZSB0aGUgZXh0ZW5zaW9uIGlzIGluc3Rh bGxlZC4KICA8L3BhcmE+CiAKICA8cGFyYT4KQEAgLTY3LDE0ICs3NCwyNiBAQAogIDwvcGFyYT4K IAogIDxwYXJhPgotICBJbiBhZGRpdGlvbiB0byB0aGUgcXVlcnkgdGV4dHMgYW5kIGFkdmljZSBz dHJpbmdzLCB0aGUgYWR2aWNlIGNvbGxlY3RvcnMKLSAgd2lsbCBhbHNvIHN0b3JlIHRoZSBPSUQg b2YgdGhlIHJvbGUgdGhhdCBjYXVzZWQgdGhlIHF1ZXJ5IHRvIGJlIHBsYW5uZWQsCisgIEZvciBl YWNoIGVudHJ5IGluIGEgY29sbGVjdG9yLCBpbiBhZGRpdGlvbiB0byB0aGUgcXVlcnkgdGV4dHMg YW5kIGFkdmljZQorICBzdHJpbmdzLCB0aGUgYWR2aWNlIGNvbGxlY3RvciB3aWxsIGFsc28gc3Rv cmUgdGhlIE9JRCBvZiB0aGUgcm9sZSB0aGF0IGNhdXNlZCB0aGUgcXVlcnkgdG8gYmUgcGxhbm5l ZCwKICAgdGhlIE9JRCBvZiB0aGUgZGF0YWJhc2UgaW4gd2hpY2ggdGhlIHF1ZXJ5IHdhcyBwbGFu bmVkLCB0aGUgcXVlcnkgSUQsCiAgIGFuZCB0aGUgdGltZSBhdCB3aGljaCB0aGUgY29sbGVjdGlv biBvY2N1cnJlZC4gVGhpcyBtb2R1bGUgZG9lcyBub3QKICAgYXV0b21hdGljYWxseSBlbmFibGUg cXVlcnkgSUQgY29tcHV0YXRpb247IHRoZXJlZm9yZSwgaWYgeW91IHdhbnQgdGhlCi0gIHF1ZXJ5 IElEIHZhbHVlIHRvIGJlIHBvcHVsYXRlZCBpbiBjb2xsZWN0ZWQgYWR2aWNlLCBiZSBzdXJlIHRv IGNvbmZpZ3VyZQotICA8bGl0ZXJhbD5jb21wdXRlX3F1ZXJ5X2lkID0gb248L2xpdGVyYWw+LiBP dGhlcndpc2UsIHRoZSBxdWVyeSBJRCBtYXkKLSAgYWx3YXlzIHNob3cgYXMgPGxpdGVyYWw+MDwv bGl0ZXJhbD4uCisgIHF1ZXJ5IElEIHZhbHVlIHRvIGJlIHBvcHVsYXRlZCBpbiBjb2xsZWN0ZWQg YWR2aWNlLCBiZSBzdXJlIHRoZSBzZXR0aW5nCisgIDxsaXRlcmFsPmNvbXB1dGVfcXVlcnlfaWQ8 L2xpdGVyYWw+IGlzIHNldCB0byA8bGl0ZXJhbD5vbjwvbGl0ZXJhbD4sCisgIG90aGVyd2lzZSB0 aGUgcXVlcnkgSUQgd2lsbCBhcHBlYXIgYXMgPGxpdGVyYWw+MDwvbGl0ZXJhbD4uCisgPC9wYXJh PgorCisgPHBhcmE+CisgIFRoZSBwZ19wbGFuX2FkdmljZSBtb2R1bGUgYWxzbyBwcm9kdWNlcyBm ZWVkYmFjazsgdGhlIGNvbGxlY3RvcgorICBpcyB1bmFibGUgdG8gY2FwdHVyZSBzdWNoIGZlZWRi YWNrIGFzIGl0IHJlbGllcyBvbiBydW5uaW5nIGV4cGxhaW4KKyAgd2l0aCBQTEFOX0FEVklDRSB3 aGljaCBkb2VzIG5vdCBoYXBwZW4gZHVyaW5nIG5vcm1hbCBleGVjdXRpb24uCisgPC9wYXJhPgor CisgPHBhcmE+CisgIFBsYW4gYWR2aWNlIGlzIG5vdCBhIHN1YnN0aXR1dGUgZm9yIHNlZWluZyBh IHF1ZXJ5IHBsYW4uIFRoZSBhdXRvX2V4cGxhaW4KKyAgbW9kdWxlIGNhbiBiZSB1c2VkIChpbXBy ZWNpc2VseSkgaW4gY29uanVuY3Rpb24gd2l0aCB0aGlzIG1vZHVsZSB0byBhZGQgZXhwbGFpbgor ICBvdXRwdXQgdG8gdGhlIGNvcnB1cyBvZiBwbGFubmVyIGRhdGEgYXV0b21hdGljYWxseSBjYXB0 dXJlZCBmb3IgZXhlY3V0ZWQgcXVlcmllcy4KICA8L3BhcmE+CiAKICA8c2VjdDIgaWQ9InBnY29s bGVjdGFkdmljZS1mdW5jdGlvbnMiPgpAQCAtOTIsOCArMTExLDcgQEAKIAogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+Ci0gICAgICBSZW1vdmVzIGFsbCBjb2xsZWN0ZWQgcXVlcnkgdGV4dHMg YW5kIGFkdmljZSBzdHJpbmdzIGZyb20gYmFja2VuZC1sb2NhbAotICAgICAgbWVtb3J5LgorICAg ICAgUmVtb3ZlcyBhbGwgY29sbGVjdGVkIGVudHJpZXMgZnJvbSBiYWNrZW5kLWxvY2FsIG1lbW9y eS4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAg LTExMCw4ICsxMjgsNyBAQAogCiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFJl dHVybnMgYWxsIHF1ZXJ5IHRleHRzIGFuZCBhZHZpY2Ugc3RyaW5ncyBzdG9yZWQgaW4gdGhlIGxv Y2FsCi0gICAgICBhZHZpY2UgY29sbGVjdG9yLgorICAgICAgUmV0dXJucyBhbGwgZW50cmllcyBz dG9yZWQgaW4gdGhlIGxvY2FsIGFkdmljZSBjb2xsZWN0b3IuCiAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xMjYsOCArMTQzLDcgQEAKIAogICAg IDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBSZW1vdmVzIGFsbCBjb2xsZWN0ZWQgcXVl cnkgdGV4dHMgYW5kIGFkdmljZSBzdHJpbmdzIGZyb20gc2hhcmVkCi0gICAgICBtZW1vcnkuCisg ICAgICBSZW1vdmVzIGFsbCBjb2xsZWN0ZWQgZW50aXJlcyBmcm9tIHNoYXJlZCBtZW1vcnkuCiAg ICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xNDQs OCArMTYwLDcgQEAKIAogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBSZXR1cm5z IGFsbCBxdWVyeSB0ZXh0cyBhbmQgYWR2aWNlIHN0cmluZ3Mgc3RvcmVkIGluIHRoZSBzaGFyZWQK LSAgICAgIGFkdmljZSBjb2xsZWN0b3IuCisgICAgICBSZXR1cm5zIGFsbCBlbnRyaWVzIHN0b3Jl ZCBpbiB0aGUgc2hhcmVkIGFkdmljZSBjb2xsZWN0b3IuCiAgICAgIDwvcGFyYT4KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xNzAsNyArMTg1LDcgQEAKICAgICA8bGlz dGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgPHZhcm5hbWU+cGdfY29sbGVjdF9hZHZpY2UubG9j YWxfY29sbGVjdG9yPC92YXJuYW1lPiBlbmFibGVzIHRoZQotICAgICAgbG9jYWwgYWR2aWNlIGNv bGxlY3Rvci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4K KyAgICAgIGxvY2FsIGFkdmljZSBjb2xsZWN0b3IuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDxsaXRl cmFsPmZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KQEAgLTE4Niw4ICsyMDEsOCBAQAogICAgIDxsaXN0aXRlbT4KICAgICAg PHBhcmE+CiAgICAgICA8dmFybmFtZT5wZ19jb2xsZWN0X2FkdmljZS5sb2NhbF9jb2xsZWN0aW9u X2xpbWl0PC92YXJuYW1lPiBzZXRzIHRoZQotICAgICAgbWF4aW11bSBudW1iZXIgb2YgcXVlcnkg dGV4dHMgYW5kIGFkdmljZSBzdHJpbmdzIHJldGFpbmVkIGJ5IHRoZQotICAgICAgbG9jYWwgYWR2 aWNlIGNvbGxlY3Rvci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDxsaXRlcmFsPjA8L2xpdGVyYWw+ LgorICAgICAgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyByZXRhaW5lZCBieSB0aGUgbG9jYWwg YWR2aWNlIGNvbGxlY3Rvci4KKyAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDxsaXRlcmFsPjA8 L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgpAQCAtMjAzLDcgKzIxOCw3IEBACiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAg ICAgIDx2YXJuYW1lPnBnX2NvbGxlY3RfYWR2aWNlLnNoYXJlZF9jb2xsZWN0b3I8L3Zhcm5hbWU+ IGVuYWJsZXMgdGhlCi0gICAgICBzaGFyZWQgYWR2aWNlIGNvbGxlY3Rvci4gIFRoZSBkZWZhdWx0 IHZhbHVlIGlzIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KKyAgICAgIHNoYXJlZCBhZHZpY2Ug Y29sbGVjdG9yLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4u CiAgICAgICBPbmx5IHN1cGVydXNlcnMgYW5kIHVzZXJzIHdpdGggdGhlIGFwcHJvcHJpYXRlIDxs aXRlcmFsPlNFVDwvbGl0ZXJhbD4KICAgICAgIHByaXZpbGVnZSBjYW4gY2hhbmdlIHRoaXMgc2V0 dGluZy4KICAgICAgPC9wYXJhPgpAQCAtMjIxLDggKzIzNiw4IEBACiAgICAgPGxpc3RpdGVtPgog ICAgICA8cGFyYT4KICAgICAgIDx2YXJuYW1lPnBnX2NvbGxlY3RfYWR2aWNlLnNoYXJlZF9jb2xs ZWN0aW9uX2xpbWl0PC92YXJuYW1lPiBzZXRzIHRoZQotICAgICAgbWF4aW11bSBudW1iZXIgb2Yg cXVlcnkgdGV4dHMgYW5kIGFkdmljZSBzdHJpbmdzIHJldGFpbmVkIGJ5IHRoZQotICAgICAgc2hh cmVkIGFkdmljZSBjb2xsZWN0b3IuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJhbD4wPC9s aXRlcmFsPi4KKyAgICAgIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgcmV0YWluZWQgYnkgdGhl IHNoYXJlZCBhZHZpY2UgY29sbGVjdG9yLgorICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgPGxp dGVyYWw+MDwvbGl0ZXJhbD4uCiAgICAgICBPbmx5IHN1cGVydXNlcnMgYW5kIHVzZXJzIHdpdGgg dGhlIGFwcHJvcHJpYXRlIDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4KICAgICAgIHByaXZpbGVnZSBj YW4gY2hhbmdlIHRoaXMgc2V0dGluZy4KICAgICAgPC9wYXJhPgo= --00000000000070cb1d064c11d8b7--