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 1vnz6Y-00EPdC-1s for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 13:09:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vnz6X-00GzR0-20 for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 13:09:05 +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 1vnz6X-00GzQr-0p for pgsql-hackers@lists.postgresql.org; Thu, 05 Feb 2026 13:09:05 +0000 Received: from mail.nataraj.su ([168.119.121.177]) by magus.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1vnz6U-00000001C2n-33lH for pgsql-hackers@lists.postgresql.org; Thu, 05 Feb 2026 13:09:04 +0000 Received: from [0.0.0.0] (static.76.198.203.116.clients.your-server.de [116.203.198.76]) by mail.nataraj.su (Postfix) with ESMTPSA id E48E51453C3; Thu, 5 Feb 2026 16:09:00 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------5Jc8aT6MWjWkT0QFiKtxdEYy" Message-ID: <20b95759-b5d6-4d46-9ab5-3ca54a9b58be@nataraj.su> Date: Thu, 5 Feb 2026 16:08:59 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] ternary reloption type To: =?UTF-8?Q?=C3=81lvaro_Herrera?= Cc: PostgreSQL Hackers , Chris Travers , Timur Magomedov , Nathan Bossart References: <202601211907.po3lliqjtvsy@alvherre.pgsql> Content-Language: en-US, ru-RU From: Nikolay Shaplov In-Reply-To: <202601211907.po3lliqjtvsy@alvherre.pgsql> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------5Jc8aT6MWjWkT0QFiKtxdEYy Content-Type: multipart/alternative; boundary="------------OfjnlO9IVIsjG7CBWnDDnAxg" --------------OfjnlO9IVIsjG7CBWnDDnAxg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 21.01.2026 22:23, Álvaro Herrera wrote: >> I've rebased the rest of patches, and the whole patchset is in the >> attachment. > I'm not a fan of how these commit messages are structured. You explain > the point of the whole patch series in the commit message for 0001, but > that one only adds some tests for the existing behavior. If I were to > commit that, it would make no sense in the overall Postgres commit > history. So I have squashed 0001 with 0002, and also with the fraction > of 0004 that includes tests for the feature in 0002. I guess that comes from my frustration with big reloptions patch. I've been  looking for a way to make iy more easy to read and understand. My thought was that if I split them into logical "layers" showing the  development of the patch's idea, it would be more easy to understand them as a whole. And they were intended to be squashed before commit, may be I should state that more clearly. > I think it's > strange to submit those tests in 0004, when the other half of the tests > are for the feature in 0003. Yeah, here you are right, I should add tests both to 0003 and 0004. I did not think they can be committed separately > I recommend to consider how you structure > your patch splits so that they would make sense in the Postgres commit > history assuming they are committed on separate days, and that there are > multiple other commits in between. Second part of ternary options patch is consist of one piece, so now it is not a problem, and as for big reloptions patch, I think we can discuss it later. I doubt it is readable when it is provided in single piece. > I do agree with Nathan that there seems to be little point in the > message saying this new type is different from Boolean. The user can > still say only "on" or "off". Even with your "alias" proposal, there > will only be a mechanism to let the system choose between those two > values, but it will still be one or the other. There's no provision to > have the system behave as if the user set the value to half. For ternary options with explicit "third" value, I added another error message, it says nothing about option type, it just lists possible values. This can be good solution. > Another thing I did is remove default_val for ternaries. As far as I > can see, it makes no sense. If your reloption defaults to either on or > off, then it's just a Boolean, right? It can no longer be unset, > because if you unset it, then it becomes the default. For the part you've committed that is correct. But with explicit "third" option, you can't tell for sure which value is default. Like: prefer_XXXX_optimization: yes/no/never It can be implemented as ternary option, but default value here can be "yes". I would not try to predict what behavior option developer will need, and try to provide all possibilities. That's why I put default value back. But I will not be much upset if you still decide to remove it. Or I can remove it myself if you insist. We can add it later when someone runs into this "never" case. > Anyway, I have pushed the first part, after rewriting the commit > message. Thanks! Now the world is better place, from my point of view. > You can resubmit the rest after rebasing on the current tree. > I have also marked the commitfest item as committed. Please create a > new one for the next part. I've reworked second part of the patch, It is in the attachment, and I am going to create new commitfest record for it. Thank you for your work. --------------OfjnlO9IVIsjG7CBWnDDnAxg Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


On 21.01.2026 22:23, Álvaro Herrera wrote:
I've rebased the rest of patches, and the whole patchset is in the
attachment.
I'm not a fan of how these commit messages are structured.  You explain
the point of the whole patch series in the commit message for 0001, but
that one only adds some tests for the existing behavior.  If I were to
commit that, it would make no sense in the overall Postgres commit
history.  So I have squashed 0001 with 0002, and also with the fraction
of 0004 that includes tests for the feature in 0002.  

I guess that comes from my frustration with big reloptions patch. I've been  looking
for a way to make iy more easy to read and understand. My thought was that if
I split them into logical "layers" showing the  development of the patch's idea, it
would be more easy to understand them as a whole. And they were intended
to be squashed before commit, may be I should state that more clearly.

I think it's
strange to submit those tests in 0004, when the other half of the tests
are for the feature in 0003.  

Yeah, here you are right, I should add tests both to 0003 and 0004. I did not think
they can be committed separately

I recommend to consider how you structure
your patch splits so that they would make sense in the Postgres commit
history assuming they are committed on separate days, and that there are
multiple other commits in between.

Second part of ternary options patch is consist of one piece, so now it is not a problem,
and as for big reloptions patch, I think we can discuss it later. I doubt it is readable
when it is provided in single piece. 

I do agree with Nathan that there seems to be little point in the
message saying this new type is different from Boolean.  The user can
still say only "on" or "off".  Even with your "alias" proposal, there
will only be a mechanism to let the system choose between those two
values, but it will still be one or the other.  There's no provision to
have the system behave as if the user set the value to half.

For ternary options with explicit "third" value, I added another error message, it says nothing
about option type, it just lists possible values. This can be good solution.

Another thing I did is remove default_val for ternaries.  As far as I
can see, it makes no sense.  If your reloption defaults to either on or
off, then it's just a Boolean, right?  It can no longer be unset,
because if you unset it, then it becomes the default.
For the part you've committed that is correct. But with explicit "third" option, you can't tell
for sure which value is default. Like:
prefer_XXXX_optimization: yes/no/never
It can be implemented as ternary option, but default value here can be "yes".
I would not try to predict what behavior option developer will need, and try to provide all
possibilities.
That's why I put default value back. But I will not be much upset if you still decide to remove it.
Or I can remove it myself if you insist. We can add it later when someone runs into this "never" case.
Anyway, I have pushed the first part, after rewriting the commit
message.  

Thanks! Now the world is better place, from my point of view.

You can resubmit the rest after rebasing on the current tree.
I have also marked the commitfest item as committed.  Please create a
new one for the next part.
I've reworked second part of the patch, It is in the attachment, and I am going to create new commitfest record for it. Thank you for your work. --------------OfjnlO9IVIsjG7CBWnDDnAxg-- --------------5Jc8aT6MWjWkT0QFiKtxdEYy Content-Type: text/x-patch; charset=UTF-8; name="v1a-0001-Convert-vacuum_index_cleanup-and-gist-s-bufferin.patch" Content-Disposition: attachment; filename*0="v1a-0001-Convert-vacuum_index_cleanup-and-gist-s-bufferin.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzNDAzMzQwYmMxYjZjNTJjMDEyZmJiZTM5MmRjZDdhYjUzYTM5NzgwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IFNoYXBsb3YgPGRoeWFuQG5hdGFyYWou c3U+CkRhdGU6IFRodSwgNCBTZXAgMjAyNSAxOToyMjoyMSArMDMwMApTdWJqZWN0OiBbUEFU Q0ggdjFhIDEvMV0gQ29udmVydCBgdmFjdXVtX2luZGV4X2NsZWFudXBgIGFuZCBnaXN0J3Mg YGJ1ZmZlcmluZ2AKIHJlbG9wdGlvbnMgZnJvbSBlbnVtIHRvIHRlcm5hcnkgdHlwZQoKRW51 bSByZWxvcHRpb25zIGB2YWN1dW1faW5kZXhfY2xlYW51cGAgYW5kIGdpc3QncyBgYnVmZmVy aW5nYCBiZWhhdmVzIGFsbW9zdApsaWtlIHRlcm5hcnkgb3B0aW9ucywgZXhjZXB0IHRoYXQg dGhlaXIgdGhpcmQgInVuc2V0IiB2YWx1ZSBjYW4gYmUgZXhwbGljaXRseQpzZXQgYnkgc3Bl Y2lmeWluZyBrZXl3b3JkICJhdXRvIi4KCkhlcmUgd2UgYWRkIGB1bnNldF9hbGlhc2AgaW50 byB0ZXJuYXJ5IG9wdGlvbiBkZWZpbml0aW9uLCB0aGF0IHdpbGwgcGVybWl0CmV4cGxpY2l0 bHkgc2V0dGluZyB0aGlyZCAidW5lc3QiIHZhbHVlLCBhbmQgY29udmVydCBgdmFjdXVtX2lu ZGV4X2NsZWFudXBgCmFuZCBgYnVmZmVyaW5nYCByZWxvcHRpb25zIHRvIHRlcm5hcnkgdHlw ZS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyAgICAgICAg fCAxMTEgKysrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 YnVpbGQuYyAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bS5jICAgICAgICAgICAgICAgICB8ICAxMSArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3Rf cHJpdmF0ZS5oICAgICAgICAgICAgIHwgIDEwICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVs b3B0aW9ucy5oICAgICAgICAgICAgICAgfCAgMTEgKy0KIHNyYy9pbmNsdWRlL3V0aWxzL3Jl bC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3JjL3Rlc3QvbW9kdWxlcy9k dW1teV9pbmRleF9hbS9SRUFETUUgICAgICAgIHwgICAzICstCiAuLi4vbW9kdWxlcy9kdW1t eV9pbmRleF9hbS9kdW1teV9pbmRleF9hbS5jICAgfCAgMTEgKy0KIC4uLi9kdW1teV9pbmRl eF9hbS9leHBlY3RlZC9yZWxvcHRpb25zLm91dCAgICB8ICAyNyArKystLQogLi4uL21vZHVs ZXMvZHVtbXlfaW5kZXhfYW0vc3FsL3JlbG9wdGlvbnMuc3FsIHwgICA3ICsrCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dpc3Qub3V0ICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmVsb3B0aW9ucy5vdXQgICAgICB8ICAxOCArKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3JlbG9wdGlvbnMuc3FsICAgICAgICAgICB8ICAxMCArKwog MTMgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDk2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5kZXggMjM3YWI4ZDBl ZDkuLjJjYTQ1Yzk4NjYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3JlbG9wdGlvbnMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlv bnMuYwpAQCAtMTczLDcgKzE3MywyOSBAQCBzdGF0aWMgcmVsb3B0X3Rlcm5hcnkgdGVybmFy eVJlbE9wdHNbXSA9CiAJCQkiRW5hYmxlcyB2YWN1dW0gdG8gdHJ1bmNhdGUgZW1wdHkgcGFn ZXMgYXQgdGhlIGVuZCBvZiB0aGlzIHRhYmxlIiwKIAkJCVJFTE9QVF9LSU5EX0hFQVAgfCBS RUxPUFRfS0lORF9UT0FTVCwKIAkJCVNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jawotCQl9CisJ CX0sCisJCU5VTEwsCisJCVBHX1RFUk5BUllfVU5TRVQKKwl9LAorCXsKKwkJeworCQkJInZh Y3V1bV9pbmRleF9jbGVhbnVwIiwKKwkJCSJDb250cm9scyBpbmRleCB2YWN1dW1pbmcgYW5k IGluZGV4IGNsZWFudXAiLAorCQkJUkVMT1BUX0tJTkRfSEVBUCB8IFJFTE9QVF9LSU5EX1RP QVNULAorCQkJU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrCisJCX0sCisJCSJhdXRvIiwKKwkJ UEdfVEVSTkFSWV9VTlNFVAorCX0sCisJeworCQl7CisJCQkiYnVmZmVyaW5nIiwKKwkJCSJF bmFibGVzIGJ1ZmZlcmluZyBidWlsZCBmb3IgdGhpcyBHaVNUIGluZGV4IiwKKwkJCVJFTE9Q VF9LSU5EX0dJU1QsCisJCQlBY2Nlc3NFeGNsdXNpdmVMb2NrCisJCX0sCisJCSJhdXRvIiwK KwkJUEdfVEVSTkFSWV9VTlNFVAogCX0sCiAJLyogbGlzdCB0ZXJtaW5hdG9yICovCiAJewpA QCAtNTA1LDMwICs1MjcsNiBAQCBzdGF0aWMgcmVsb3B0X3JlYWwgcmVhbFJlbE9wdHNbXSA9 CiAJe3tOVUxMfX0KIH07CiAKLS8qIHZhbHVlcyBmcm9tIFN0ZFJkT3B0SW5kZXhDbGVhbnVw ICovCi1zdGF0aWMgcmVsb3B0X2VudW1fZWx0X2RlZiBTdGRSZE9wdEluZGV4Q2xlYW51cFZh bHVlc1tdID0KLXsKLQl7ImF1dG8iLCBTVERSRF9PUFRJT05fVkFDVVVNX0lOREVYX0NMRUFO VVBfQVVUT30sCi0JeyJvbiIsIFNURFJEX09QVElPTl9WQUNVVU1fSU5ERVhfQ0xFQU5VUF9P Tn0sCi0JeyJvZmYiLCBTVERSRF9PUFRJT05fVkFDVVVNX0lOREVYX0NMRUFOVVBfT0ZGfSwK LQl7InRydWUiLCBTVERSRF9PUFRJT05fVkFDVVVNX0lOREVYX0NMRUFOVVBfT059LAotCXsi ZmFsc2UiLCBTVERSRF9PUFRJT05fVkFDVVVNX0lOREVYX0NMRUFOVVBfT0ZGfSwKLQl7Inll cyIsIFNURFJEX09QVElPTl9WQUNVVU1fSU5ERVhfQ0xFQU5VUF9PTn0sCi0JeyJubyIsIFNU RFJEX09QVElPTl9WQUNVVU1fSU5ERVhfQ0xFQU5VUF9PRkZ9LAotCXsiMSIsIFNURFJEX09Q VElPTl9WQUNVVU1fSU5ERVhfQ0xFQU5VUF9PTn0sCi0JeyIwIiwgU1REUkRfT1BUSU9OX1ZB Q1VVTV9JTkRFWF9DTEVBTlVQX09GRn0sCi0Jeyhjb25zdCBjaGFyICopIE5VTEx9CQkvKiBs aXN0IHRlcm1pbmF0b3IgKi8KLX07Ci0KLS8qIHZhbHVlcyBmcm9tIEdpc3RPcHRCdWZmZXJp bmdNb2RlICovCi1zdGF0aWMgcmVsb3B0X2VudW1fZWx0X2RlZiBnaXN0QnVmZmVyaW5nT3B0 VmFsdWVzW10gPQotewotCXsiYXV0byIsIEdJU1RfT1BUSU9OX0JVRkZFUklOR19BVVRPfSwK LQl7Im9uIiwgR0lTVF9PUFRJT05fQlVGRkVSSU5HX09OfSwKLQl7Im9mZiIsIEdJU1RfT1BU SU9OX0JVRkZFUklOR19PRkZ9LAotCXsoY29uc3QgY2hhciAqKSBOVUxMfQkJLyogbGlzdCB0 ZXJtaW5hdG9yICovCi19OwotCiAvKiB2YWx1ZXMgZnJvbSBWaWV3T3B0Q2hlY2tPcHRpb24g Ki8KIHN0YXRpYyByZWxvcHRfZW51bV9lbHRfZGVmIHZpZXdDaGVja09wdFZhbHVlc1tdID0K IHsKQEAgLTU0MCwyOCArNTM4LDYgQEAgc3RhdGljIHJlbG9wdF9lbnVtX2VsdF9kZWYgdmll d0NoZWNrT3B0VmFsdWVzW10gPQogCiBzdGF0aWMgcmVsb3B0X2VudW0gZW51bVJlbE9wdHNb XSA9CiB7Ci0JewotCQl7Ci0JCQkidmFjdXVtX2luZGV4X2NsZWFudXAiLAotCQkJIkNvbnRy b2xzIGluZGV4IHZhY3V1bWluZyBhbmQgaW5kZXggY2xlYW51cCIsCi0JCQlSRUxPUFRfS0lO RF9IRUFQIHwgUkVMT1BUX0tJTkRfVE9BU1QsCi0JCQlTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxv Y2sKLQkJfSwKLQkJU3RkUmRPcHRJbmRleENsZWFudXBWYWx1ZXMsCi0JCVNURFJEX09QVElP Tl9WQUNVVU1fSU5ERVhfQ0xFQU5VUF9BVVRPLAotCQlnZXR0ZXh0X25vb3AoIlZhbGlkIHZh bHVlcyBhcmUgXCJvblwiLCBcIm9mZlwiLCBhbmQgXCJhdXRvXCIuIikKLQl9LAotCXsKLQkJ ewotCQkJImJ1ZmZlcmluZyIsCi0JCQkiRW5hYmxlcyBidWZmZXJpbmcgYnVpbGQgZm9yIHRo aXMgR2lTVCBpbmRleCIsCi0JCQlSRUxPUFRfS0lORF9HSVNULAotCQkJQWNjZXNzRXhjbHVz aXZlTG9jawotCQl9LAotCQlnaXN0QnVmZmVyaW5nT3B0VmFsdWVzLAotCQlHSVNUX09QVElP Tl9CVUZGRVJJTkdfQVVUTywKLQkJZ2V0dGV4dF9ub29wKCJWYWxpZCB2YWx1ZXMgYXJlIFwi b25cIiwgXCJvZmZcIiwgYW5kIFwiYXV0b1wiLiIpCi0JfSwKIAl7CiAJCXsKIAkJCSJjaGVj a19vcHRpb24iLApAQCAtOTI5LDEyICs5MDUsMTQgQEAgYWRkX2xvY2FsX2Jvb2xfcmVsb3B0 aW9uKGxvY2FsX3JlbG9wdHMgKnJlbG9wdHMsIGNvbnN0IGNoYXIgKm5hbWUsCiAgKi8KIHN0 YXRpYyByZWxvcHRfdGVybmFyeSAqCiBpbml0X3Rlcm5hcnlfcmVsb3B0aW9uKGJpdHMzMiBr aW5kcywgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqZGVzYywKLQkJCQkJICAgTE9D S01PREUgbG9ja21vZGUpCisJCQkgcGdfdGVybmFyeSBkZWZhdWx0X3ZhbCwgY29uc3QgY2hh ciogdW5zZXRfYWxpYXMsIExPQ0tNT0RFIGxvY2ttb2RlKQogewogCXJlbG9wdF90ZXJuYXJ5 ICpuZXdvcHRpb247CiAKIAluZXdvcHRpb24gPSAocmVsb3B0X3Rlcm5hcnkgKikKIAkJYWxs b2NhdGVfcmVsb3B0aW9uKGtpbmRzLCBSRUxPUFRfVFlQRV9URVJOQVJZLCBuYW1lLCBkZXNj LCBsb2NrbW9kZSk7CisJbmV3b3B0aW9uLT5kZWZhdWx0X3ZhbCA9IGRlZmF1bHRfdmFsOwor CW5ld29wdGlvbi0+dW5zZXRfYWxpYXMgPSB1bnNldF9hbGlhczsKIAogCXJldHVybiBuZXdv cHRpb247CiB9CkBAIC05NDUsMTIgKzkyMywxMiBAQCBpbml0X3Rlcm5hcnlfcmVsb3B0aW9u KGJpdHMzMiBraW5kcywgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqZGVzYywKICAq Lwogdm9pZAogYWRkX3Rlcm5hcnlfcmVsb3B0aW9uKGJpdHMzMiBraW5kcywgY29uc3QgY2hh ciAqbmFtZSwgY29uc3QgY2hhciAqZGVzYywKLQkJCQkJICBMT0NLTU9ERSBsb2NrbW9kZSkK KwkJICBwZ190ZXJuYXJ5IGRlZmF1bHRfdmFsLCBjb25zdCBjaGFyKiB1bnNldF9hbGlhcywg IExPQ0tNT0RFIGxvY2ttb2RlKQogewogCXJlbG9wdF90ZXJuYXJ5ICpuZXdvcHRpb247CiAK LQluZXdvcHRpb24gPQotCQlpbml0X3Rlcm5hcnlfcmVsb3B0aW9uKGtpbmRzLCBuYW1lLCBk ZXNjLCBsb2NrbW9kZSk7CisJbmV3b3B0aW9uID0gaW5pdF90ZXJuYXJ5X3JlbG9wdGlvbihr aW5kcywgbmFtZSwgZGVzYywgZGVmYXVsdF92YWwsCisJCQkJCQkJCQkJCQkJdW5zZXRfYWxp YXMsIGxvY2ttb2RlKTsKIAogCWFkZF9yZWxvcHRpb24oKHJlbG9wdF9nZW4gKikgbmV3b3B0 aW9uKTsKIH0KQEAgLTk2MywxMiArOTQxLDEzIEBAIGFkZF90ZXJuYXJ5X3JlbG9wdGlvbihi aXRzMzIga2luZHMsIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmRlc2MsCiAgKi8K IHZvaWQKIGFkZF9sb2NhbF90ZXJuYXJ5X3JlbG9wdGlvbihsb2NhbF9yZWxvcHRzICpyZWxv cHRzLCBjb25zdCBjaGFyICpuYW1lLAotCQkJCQkJCWNvbnN0IGNoYXIgKmRlc2MsIGludCBv ZmZzZXQpCisJCQkJCQkJY29uc3QgY2hhciAqZGVzYywgcGdfdGVybmFyeSBkZWZhdWx0X3Zh bCwKKwkJCQkJCQljb25zdCBjaGFyKiB1bnNldF9hbGlhcywgaW50IG9mZnNldCkKIHsKIAly ZWxvcHRfdGVybmFyeSAqbmV3b3B0aW9uOwogCi0JbmV3b3B0aW9uID0KLQkJaW5pdF90ZXJu YXJ5X3JlbG9wdGlvbihSRUxPUFRfS0lORF9MT0NBTCwgbmFtZSwgZGVzYywgMCk7CisJbmV3 b3B0aW9uID0gaW5pdF90ZXJuYXJ5X3JlbG9wdGlvbihSRUxPUFRfS0lORF9MT0NBTCwgbmFt ZSwgZGVzYywKKwkJCQkJCQkJCQkJCWRlZmF1bHRfdmFsLCB1bnNldF9hbGlhcywgMCk7CiAK IAlhZGRfbG9jYWxfcmVsb3B0aW9uKHJlbG9wdHMsIChyZWxvcHRfZ2VuICopIG5ld29wdGlv biwgb2Zmc2V0KTsKIH0KQEAgLTE3MDksMTUgKzE2ODgsMzUgQEAgcGFyc2Vfb25lX3JlbG9w dGlvbihyZWxvcHRfdmFsdWUgKm9wdGlvbiwgY2hhciAqdGV4dF9zdHIsIGludCB0ZXh0X2xl biwKIAkJY2FzZSBSRUxPUFRfVFlQRV9URVJOQVJZOgogCQkJewogCQkJCWJvb2wJCWI7CisJ CQkJcmVsb3B0X3Rlcm5hcnkgKm9wdCA9IChyZWxvcHRfdGVybmFyeSAqKSBvcHRpb24tPmdl bjsKIAogCQkJCXBhcnNlZCA9IHBhcnNlX2Jvb2wodmFsdWUsICZiKTsKIAkJCQlvcHRpb24t PnRlcm5hcnlfdmFsID0gYiA/IFBHX1RFUk5BUllfVFJVRSA6CiAJCQkJCVBHX1RFUk5BUllf RkFMU0U7Ci0JCQkJaWYgKHZhbGlkYXRlICYmICFwYXJzZWQpCisKKwkJCQkvKiBJZiBubyAi dW5zZXQgYWxpYXMiIHNldCwgdGhpcyBvcHRpb24gYmVoYXZlcyBhbG1vc3QgbGlrZQorCQkJ CSAqIGJvb2xlYW4sIHNvIHJlcG9ydCBlcnJvciBhY2NvcmRpbmdseSAqLworCQkJCWlmICgh b3B0LT51bnNldF9hbGlhcyAmJiB2YWxpZGF0ZSAmJiAhcGFyc2VkKQogCQkJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCiAJCQkJCQkJZXJybXNnKCJpbnZhbGlkIHZhbHVlIGZvciBib29sZWFuIG9wdGlvbiBc IiVzXCI6ICVzIiwKIAkJCQkJCQkJICAgb3B0aW9uLT5nZW4tPm5hbWUsIHZhbHVlKSk7CisK KwkJCQlpZiAoIXBhcnNlZCAmJiBvcHQtPnVuc2V0X2FsaWFzKQorCQkJCXsKKwkJCQkJaWYg KHBnX3N0cmNhc2VjbXAodmFsdWUsIG9wdC0+dW5zZXRfYWxpYXMpID09IDApCisJCQkJCXsK KwkJCQkJCW9wdGlvbi0+dGVybmFyeV92YWwgPSBQR19URVJOQVJZX1VOU0VUOworCQkJCQkJ cGFyc2VkID0gdHJ1ZTsKKwkJCQkJfQorCQkJCX0KKwkJCQlpZiAodmFsaWRhdGUgJiYgIXBh cnNlZCkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQllcnJtc2coImludmFsaWQgdmFsdWUg Zm9yIG9wdGlvbiBcIiVzXCI6ICVzIiwKKwkJCQkJCQkJCW9wdGlvbi0+Z2VuLT5uYW1lLCB2 YWx1ZSksCisJCQkJCQkJZXJyZGV0YWlsKCJWYWxpZCB2YWx1ZXMgYXJlIFwib25cIiwgXCJv ZmZcIiwgYW5kIFwiJXNcIi4iLAorCQkJCQkJCQkJCW9wdC0+dW5zZXRfYWxpYXMpKSk7CiAJ CQl9CiAJCQlicmVhazsKIAkJY2FzZSBSRUxPUFRfVFlQRV9JTlQ6CkBAIC0yMDA4LDcgKzIw MDcsNyBAQCBkZWZhdWx0X3JlbG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxp ZGF0ZSwgcmVsb3B0X2tpbmQga2luZCkKIAkJb2Zmc2V0b2YoU3RkUmRPcHRpb25zLCB1c2Vy X2NhdGFsb2dfdGFibGUpfSwKIAkJeyJwYXJhbGxlbF93b3JrZXJzIiwgUkVMT1BUX1RZUEVf SU5ULAogCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIHBhcmFsbGVsX3dvcmtlcnMpfSwKLQkJ eyJ2YWN1dW1faW5kZXhfY2xlYW51cCIsIFJFTE9QVF9UWVBFX0VOVU0sCisJCXsidmFjdXVt X2luZGV4X2NsZWFudXAiLCBSRUxPUFRfVFlQRV9URVJOQVJZLAogCQlvZmZzZXRvZihTdGRS ZE9wdGlvbnMsIHZhY3V1bV9pbmRleF9jbGVhbnVwKX0sCiAJCXsidmFjdXVtX3RydW5jYXRl IiwgUkVMT1BUX1RZUEVfVEVSTkFSWSwKIAkJb2Zmc2V0b2YoU3RkUmRPcHRpb25zLCB2YWN1 dW1fdHJ1bmNhdGUpfSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dp c3RidWlsZC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKaW5kZXgg N2Y1N2M3ODdmNGMuLjQwMzFhMDdkZTBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0YnVpbGQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 YnVpbGQuYwpAQCAtMjEzLDkgKzIxMyw5IEBAIGdpc3RidWlsZChSZWxhdGlvbiBoZWFwLCBS ZWxhdGlvbiBpbmRleCwgSW5kZXhJbmZvICppbmRleEluZm8pCiAJICovCiAJaWYgKG9wdGlv bnMpCiAJewotCQlpZiAob3B0aW9ucy0+YnVmZmVyaW5nX21vZGUgPT0gR0lTVF9PUFRJT05f QlVGRkVSSU5HX09OKQorCQlpZiAob3B0aW9ucy0+YnVmZmVyaW5nX21vZGUgPT0gUEdfVEVS TkFSWV9UUlVFKQogCQkJYnVpbGRzdGF0ZS5idWlsZE1vZGUgPSBHSVNUX0JVRkZFUklOR19T VEFUUzsKLQkJZWxzZSBpZiAob3B0aW9ucy0+YnVmZmVyaW5nX21vZGUgPT0gR0lTVF9PUFRJ T05fQlVGRkVSSU5HX09GRikKKwkJZWxzZSBpZiAob3B0aW9ucy0+YnVmZmVyaW5nX21vZGUg PT0gUEdfVEVSTkFSWV9GQUxTRSkKIAkJCWJ1aWxkc3RhdGUuYnVpbGRNb2RlID0gR0lTVF9C VUZGRVJJTkdfRElTQUJMRUQ7CiAJCWVsc2UJCQkJCS8qIG11c3QgYmUgImF1dG8iICovCiAJ CQlidWlsZHN0YXRlLmJ1aWxkTW9kZSA9IEdJU1RfQlVGRkVSSU5HX0FVVE87CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZhY3V1bS5jCmluZGV4IDAzOTMyZjQ1YzhhLi44OTVhN2QyZTNhMSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtLmMKQEAgLTIxNzgsMjIgKzIxNzgsMjEgQEAgdmFjdXVtX3JlbChPaWQg cmVsaWQsIFJhbmdlVmFyICpyZWxhdGlvbiwgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAkgKi8K IAlpZiAocGFyYW1zLmluZGV4X2NsZWFudXAgPT0gVkFDT1BUVkFMVUVfVU5TUEVDSUZJRUQp CiAJewotCQlTdGRSZE9wdEluZGV4Q2xlYW51cCB2YWN1dW1faW5kZXhfY2xlYW51cDsKKwkJ cGdfdGVybmFyeSB2YWN1dW1faW5kZXhfY2xlYW51cDsKIAogCQlpZiAocmVsLT5yZF9vcHRp b25zID09IE5VTEwpCi0JCQl2YWN1dW1faW5kZXhfY2xlYW51cCA9IFNURFJEX09QVElPTl9W QUNVVU1fSU5ERVhfQ0xFQU5VUF9BVVRPOworCQkJdmFjdXVtX2luZGV4X2NsZWFudXAgPSBQ R19URVJOQVJZX1VOU0VUOwogCQllbHNlCiAJCQl2YWN1dW1faW5kZXhfY2xlYW51cCA9CiAJ CQkJKChTdGRSZE9wdGlvbnMgKikgcmVsLT5yZF9vcHRpb25zKS0+dmFjdXVtX2luZGV4X2Ns ZWFudXA7CiAKLQkJaWYgKHZhY3V1bV9pbmRleF9jbGVhbnVwID09IFNURFJEX09QVElPTl9W QUNVVU1fSU5ERVhfQ0xFQU5VUF9BVVRPKQorCQlpZiAodmFjdXVtX2luZGV4X2NsZWFudXAg PT0gUEdfVEVSTkFSWV9VTlNFVCkKIAkJCXBhcmFtcy5pbmRleF9jbGVhbnVwID0gVkFDT1BU VkFMVUVfQVVUTzsKLQkJZWxzZSBpZiAodmFjdXVtX2luZGV4X2NsZWFudXAgPT0gU1REUkRf T1BUSU9OX1ZBQ1VVTV9JTkRFWF9DTEVBTlVQX09OKQorCQllbHNlIGlmICh2YWN1dW1faW5k ZXhfY2xlYW51cCA9PSBQR19URVJOQVJZX1RSVUUpCiAJCQlwYXJhbXMuaW5kZXhfY2xlYW51 cCA9IFZBQ09QVFZBTFVFX0VOQUJMRUQ7CiAJCWVsc2UKIAkJewotCQkJQXNzZXJ0KHZhY3V1 bV9pbmRleF9jbGVhbnVwID09Ci0JCQkJICAgU1REUkRfT1BUSU9OX1ZBQ1VVTV9JTkRFWF9D TEVBTlVQX09GRik7CisJCQlBc3NlcnQodmFjdXVtX2luZGV4X2NsZWFudXAgPT0gUEdfVEVS TkFSWV9GQUxTRSk7CiAJCQlwYXJhbXMuaW5kZXhfY2xlYW51cCA9IFZBQ09QVFZBTFVFX0RJ U0FCTEVEOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3Rf cHJpdmF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oCmluZGV4IDU1 MmY2MDVjMGFhLi42ZGI1ZjBhMWM5YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L2dpc3RfcHJpdmF0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZhdGUu aApAQCAtMzgwLDE0ICszODAsNiBAQCB0eXBlZGVmIHN0cnVjdCBHSVNUQnVpbGRCdWZmZXJz CiAJaW50CQkJcm9vdGxldmVsOwogfSBHSVNUQnVpbGRCdWZmZXJzOwogCi0vKiBHaVNUT3B0 aW9ucy0+YnVmZmVyaW5nX21vZGUgdmFsdWVzICovCi10eXBlZGVmIGVudW0gR2lzdE9wdEJ1 ZmZlcmluZ01vZGUKLXsKLQlHSVNUX09QVElPTl9CVUZGRVJJTkdfQVVUTywKLQlHSVNUX09Q VElPTl9CVUZGRVJJTkdfT04sCi0JR0lTVF9PUFRJT05fQlVGRkVSSU5HX09GRiwKLX0gR2lz dE9wdEJ1ZmZlcmluZ01vZGU7Ci0KIC8qCiAgKiBTdG9yYWdlIHR5cGUgZm9yIEdpU1QncyBy ZWxvcHRpb25zCiAgKi8KQEAgLTM5NSw3ICszODcsNyBAQCB0eXBlZGVmIHN0cnVjdCBHaVNU T3B0aW9ucwogewogCWludDMyCQl2bF9sZW5fOwkJLyogdmFybGVuYSBoZWFkZXIgKGRvIG5v dCB0b3VjaCBkaXJlY3RseSEpICovCiAJaW50CQkJZmlsbGZhY3RvcjsJCS8qIHBhZ2UgZmls bCBmYWN0b3IgaW4gcGVyY2VudCAoMC4uMTAwKSAqLwotCUdpc3RPcHRCdWZmZXJpbmdNb2Rl IGJ1ZmZlcmluZ19tb2RlOwkvKiBidWZmZXJpbmcgYnVpbGQgbW9kZSAqLworCXBnX3Rlcm5h cnkJYnVmZmVyaW5nX21vZGU7CS8qIGJ1ZmZlcmluZyBidWlsZCBtb2RlICovCiB9IEdpU1RP cHRpb25zOwogCiAvKiBnaXN0LmMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9yZWxvcHRpb25zLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsb3B0aW9ucy5oCmluZGV4 IDBiZDE3YjMwY2E3Li40MGNlMjkxYzg5NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL3JlbG9wdGlvbnMuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsb3B0aW9ucy5o CkBAIC05OSw3ICs5OSw4IEBAIHR5cGVkZWYgc3RydWN0IHJlbG9wdF9ib29sCiB0eXBlZGVm IHN0cnVjdCByZWxvcHRfdGVybmFyeQogewogCXJlbG9wdF9nZW4JZ2VuOwotCS8qIHRlcm5h cmllcyBoYXZlIG5vIGRlZmF1bHRfdmFsOiBvdGhlcndpc2UgdGhleSdkIGp1c3QgYmUgYm9v bHMgKi8KKwljb25zdCBjaGFyCSp1bnNldF9hbGlhczsgLyogd29yZCB0aGF0IHdpbGwgYmUg dHJlYXRlZCBhcyB1bnNldCB2YWx1ZSAqLworCWludAkJCWRlZmF1bHRfdmFsOwogfSByZWxv cHRfdGVybmFyeTsKIAogdHlwZWRlZiBzdHJ1Y3QgcmVsb3B0X2ludApAQCAtMTkxLDcgKzE5 Miw4IEBAIGV4dGVybiByZWxvcHRfa2luZCBhZGRfcmVsb3B0aW9uX2tpbmQodm9pZCk7CiBl eHRlcm4gdm9pZCBhZGRfYm9vbF9yZWxvcHRpb24oYml0czMyIGtpbmRzLCBjb25zdCBjaGFy ICpuYW1lLCBjb25zdCBjaGFyICpkZXNjLAogCQkJCQkJCSAgIGJvb2wgZGVmYXVsdF92YWws IExPQ0tNT0RFIGxvY2ttb2RlKTsKIGV4dGVybiB2b2lkIGFkZF90ZXJuYXJ5X3JlbG9wdGlv bihiaXRzMzIga2luZHMsIGNvbnN0IGNoYXIgKm5hbWUsCi0JCQkJCQkJCSAgY29uc3QgY2hh ciAqZGVzYywgTE9DS01PREUgbG9ja21vZGUpOworCQkJCQljb25zdCBjaGFyICpkZXNjLCBw Z190ZXJuYXJ5IGRlZmF1bHRfdmFsLAorCQkJCQljb25zdCBjaGFyKiB1bnNldF9hbGlhcywg TE9DS01PREUgbG9ja21vZGUpOwogZXh0ZXJuIHZvaWQgYWRkX2ludF9yZWxvcHRpb24oYml0 czMyIGtpbmRzLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpkZXNjLAogCQkJCQkJ CSAgaW50IGRlZmF1bHRfdmFsLCBpbnQgbWluX3ZhbCwgaW50IG1heF92YWwsCiAJCQkJCQkJ ICBMT0NLTU9ERSBsb2NrbW9kZSk7CkBAIC0yMTIsOCArMjE0LDkgQEAgZXh0ZXJuIHZvaWQg YWRkX2xvY2FsX2Jvb2xfcmVsb3B0aW9uKGxvY2FsX3JlbG9wdHMgKnJlbG9wdHMsIGNvbnN0 IGNoYXIgKm5hbWUsCiAJCQkJCQkJCQkgY29uc3QgY2hhciAqZGVzYywgYm9vbCBkZWZhdWx0 X3ZhbCwKIAkJCQkJCQkJCSBpbnQgb2Zmc2V0KTsKIGV4dGVybiB2b2lkIGFkZF9sb2NhbF90 ZXJuYXJ5X3JlbG9wdGlvbihsb2NhbF9yZWxvcHRzICpyZWxvcHRzLAotCQkJCQkJCQkJCWNv bnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmRlc2MsCi0JCQkJCQkJCQkJaW50IG9mZnNl dCk7CisJCQkJCQkJCWNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmRlc2MsCisJCQkJ CQkJCXBnX3Rlcm5hcnkgZGVmYXVsdF92YWwsIGNvbnN0IGNoYXIqIHVuc2V0X2FsaWFzLAor CQkJCQkJCQlpbnQgb2Zmc2V0KTsKIGV4dGVybiB2b2lkIGFkZF9sb2NhbF9pbnRfcmVsb3B0 aW9uKGxvY2FsX3JlbG9wdHMgKnJlbG9wdHMsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCQkJ CQljb25zdCBjaGFyICpkZXNjLCBpbnQgZGVmYXVsdF92YWwsCiAJCQkJCQkJCQlpbnQgbWlu X3ZhbCwgaW50IG1heF92YWwsIGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAppbmRleCAyMzY4MzBm NmI5My4uZGI2YjA0M2QyZDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCkBAIC0zMzAsMTQgKzMzMCw2IEBAIHR5 cGVkZWYgc3RydWN0IEF1dG9WYWNPcHRzCiAJZmxvYXQ4CQlhbmFseXplX3NjYWxlX2ZhY3Rv cjsKIH0gQXV0b1ZhY09wdHM7CiAKLS8qIFN0ZFJkT3B0aW9ucy0+dmFjdXVtX2luZGV4X2Ns ZWFudXAgdmFsdWVzICovCi10eXBlZGVmIGVudW0gU3RkUmRPcHRJbmRleENsZWFudXAKLXsK LQlTVERSRF9PUFRJT05fVkFDVVVNX0lOREVYX0NMRUFOVVBfQVVUTyA9IDAsCi0JU1REUkRf T1BUSU9OX1ZBQ1VVTV9JTkRFWF9DTEVBTlVQX09GRiwKLQlTVERSRF9PUFRJT05fVkFDVVVN X0lOREVYX0NMRUFOVVBfT04sCi19IFN0ZFJkT3B0SW5kZXhDbGVhbnVwOwotCiB0eXBlZGVm IHN0cnVjdCBTdGRSZE9wdGlvbnMKIHsKIAlpbnQzMgkJdmxfbGVuXzsJCS8qIHZhcmxlbmEg aGVhZGVyIChkbyBub3QgdG91Y2ggZGlyZWN0bHkhKSAqLwpAQCAtMzQ2LDcgKzMzOCw3IEBA IHR5cGVkZWYgc3RydWN0IFN0ZFJkT3B0aW9ucwogCUF1dG9WYWNPcHRzIGF1dG92YWN1dW07 CQkvKiBhdXRvdmFjdXVtLXJlbGF0ZWQgb3B0aW9ucyAqLwogCWJvb2wJCXVzZXJfY2F0YWxv Z190YWJsZTsgLyogdXNlIGFzIGFuIGFkZGl0aW9uYWwgY2F0YWxvZyByZWxhdGlvbiAqLwog CWludAkJCXBhcmFsbGVsX3dvcmtlcnM7CS8qIG1heCBudW1iZXIgb2YgcGFyYWxsZWwgd29y a2VycyAqLwotCVN0ZFJkT3B0SW5kZXhDbGVhbnVwIHZhY3V1bV9pbmRleF9jbGVhbnVwOwkv KiBjb250cm9scyBpbmRleCB2YWN1dW1pbmcgKi8KKwlwZ190ZXJuYXJ5CXZhY3V1bV9pbmRl eF9jbGVhbnVwOyAvKiBjb250cm9scyBpbmRleCB2YWN1dW1pbmcgKi8KIAlwZ190ZXJuYXJ5 CXZhY3V1bV90cnVuY2F0ZTsJLyogZW5hYmxlcyB2YWN1dW0gdG8gdHJ1bmNhdGUgYSByZWxh dGlvbiAqLwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvZHVtbXlfaW5k ZXhfYW0vUkVBRE1FIGIvc3JjL3Rlc3QvbW9kdWxlcy9kdW1teV9pbmRleF9hbS9SRUFETUUK aW5kZXggNjA0ZDgyM2MyZTQuLmQ4MGFmZjBkYjE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9t b2R1bGVzL2R1bW15X2luZGV4X2FtL1JFQURNRQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2R1 bW15X2luZGV4X2FtL1JFQURNRQpAQCAtNSw3ICs1LDggQEAgRHVtbXkgaW5kZXggQU0gaXMg YSBtb2R1bGUgZm9yIHRlc3RpbmcgYW55IGZhY2lsaXR5IHVzYWJsZSBieSBhbiBpbmRleAog YWNjZXNzIG1ldGhvZCwgd2hvc2UgY29kZSBpcyBrZXB0IGEgbWF4aW11bSBzaW1wbGUuCiAK IFRoaXMgaW5jbHVkZXMgdGVzdHMgZm9yIGFsbCByZWxhdGlvbiBvcHRpb24gdHlwZXM6Ci0t IGJvb2xlYW4gJiB0ZXJuYXJ5CistIGJvb2xlYW4KKy0gdGVybmFyeQogLSBlbnVtCiAtIGlu dGVnZXIKIC0gcmVhbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9kdW1teV9pbmRl eF9hbS9kdW1teV9pbmRleF9hbS5jIGIvc3JjL3Rlc3QvbW9kdWxlcy9kdW1teV9pbmRleF9h bS9kdW1teV9pbmRleF9hbS5jCmluZGV4IDMxZjhkMmI4MTYxLi5lOGY2ZGNhYzlkZSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9kdW1teV9pbmRleF9hbS9kdW1teV9pbmRleF9h bS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvZHVtbXlfaW5kZXhfYW0vZHVtbXlfaW5kZXhf YW0uYwpAQCAtNDEsNiArNDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBEdW1teUluZGV4T3B0aW9u cwogCWRvdWJsZQkJb3B0aW9uX3JlYWw7CiAJYm9vbAkJb3B0aW9uX2Jvb2w7CiAJcGdfdGVy bmFyeQlvcHRpb25fdGVybmFyeV8xOworCXBnX3Rlcm5hcnkJb3B0aW9uX3Rlcm5hcnlfMjsK IAlEdW1teUFtRW51bSBvcHRpb25fZW51bTsKIAlpbnQJCQlvcHRpb25fc3RyaW5nX3ZhbF9v ZmZzZXQ7CiAJaW50CQkJb3B0aW9uX3N0cmluZ19udWxsX29mZnNldDsKQEAgLTEwNCwxMiAr MTA1LDIwIEBAIGNyZWF0ZV9yZWxvcHRpb25zX3RhYmxlKHZvaWQpCiAKIAlhZGRfdGVybmFy eV9yZWxvcHRpb24oZGlfcmVsb3B0X2tpbmQsICJvcHRpb25fdGVybmFyeV8xIiwKIAkJCQkJ CSAgIk9uZSB0ZXJuYXJ5IG9wdGlvbiBmb3IgZHVtbXlfaW5kZXhfYW0iLAotCQkJCQkJICBB Y2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwkJCQkJICAgUEdfVEVSTkFSWV9VTlNFVCwgTlVMTCwg QWNjZXNzRXhjbHVzaXZlTG9jayk7CiAJZGlfcmVsb3B0X3RhYltpXS5vcHRuYW1lID0gIm9w dGlvbl90ZXJuYXJ5XzEiOwogCWRpX3JlbG9wdF90YWJbaV0ub3B0dHlwZSA9IFJFTE9QVF9U WVBFX1RFUk5BUlk7CiAJZGlfcmVsb3B0X3RhYltpXS5vZmZzZXQgPSBvZmZzZXRvZihEdW1t eUluZGV4T3B0aW9ucywgb3B0aW9uX3Rlcm5hcnlfMSk7CiAJaSsrOwogCisJYWRkX3Rlcm5h cnlfcmVsb3B0aW9uKGRpX3JlbG9wdF9raW5kLCAib3B0aW9uX3Rlcm5hcnlfMiIsCisJCQkJ CSAgICJTZWNvbmQgdGVybmFyeSBvcHRpb24gZm9yIGR1bW15X2luZGV4X2FtIiwKKwkJCQkJ ICAgUEdfVEVSTkFSWV9UUlVFLCAiZG9fbm90X2tub3dfeWV0IiwgQWNjZXNzRXhjbHVzaXZl TG9jayk7CisJZGlfcmVsb3B0X3RhYltpXS5vcHRuYW1lID0gIm9wdGlvbl90ZXJuYXJ5XzIi OworCWRpX3JlbG9wdF90YWJbaV0ub3B0dHlwZSA9IFJFTE9QVF9UWVBFX1RFUk5BUlk7CisJ ZGlfcmVsb3B0X3RhYltpXS5vZmZzZXQgPSBvZmZzZXRvZihEdW1teUluZGV4T3B0aW9ucywg b3B0aW9uX3Rlcm5hcnlfMik7CisJaSsrOworCiAJYWRkX2VudW1fcmVsb3B0aW9uKGRpX3Jl bG9wdF9raW5kLCAib3B0aW9uX2VudW0iLAogCQkJCQkgICAiRW51bSBvcHRpb24gZm9yIGR1 bW15X2luZGV4X2FtIiwKIAkJCQkJICAgZHVtbXlBbUVudW1WYWx1ZXMsCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9tb2R1bGVzL2R1bW15X2luZGV4X2FtL2V4cGVjdGVkL3JlbG9wdGlvbnMu b3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9kdW1teV9pbmRleF9hbS9leHBlY3RlZC9yZWxvcHRp b25zLm91dAppbmRleCAzYjA2ZDUxNDk5NS4uOTBhYmJlMmUzNzMgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvZHVtbXlfaW5kZXhfYW0vZXhwZWN0ZWQvcmVsb3B0aW9ucy5vdXQK KysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9kdW1teV9pbmRleF9hbS9leHBlY3RlZC9yZWxvcHRp b25zLm91dApAQCAtMTksNiArMTksNyBAQCBDUkVBVEUgSU5ERVggZHVtbXlfdGVzdF9pZHgg T04gZHVtbXlfdGVzdF90YWIKICAgVVNJTkcgZHVtbXlfaW5kZXhfYW0gKGkpIFdJVEggKAog ICBvcHRpb25fYm9vbCA9IGZhbHNlLAogICBvcHRpb25fdGVybmFyeV8xLAorICBvcHRpb25f dGVybmFyeV8yID0gb2ZmLAogICBvcHRpb25faW50ID0gNSwKICAgb3B0aW9uX3JlYWwgPSAz LjEsCiAgIG9wdGlvbl9lbnVtID0gJ3R3bycsCkBAIC0zMywxNyArMzQsMTkgQEAgU0VMRUNU IHVubmVzdChyZWxvcHRpb25zKSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAnZHVt bXlfdGVzdF9pZHgnOwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgb3B0aW9uX2Jvb2w9 ZmFsc2UKICBvcHRpb25fdGVybmFyeV8xPXRydWUKKyBvcHRpb25fdGVybmFyeV8yPW9mZgog IG9wdGlvbl9pbnQ9NQogIG9wdGlvbl9yZWFsPTMuMQogIG9wdGlvbl9lbnVtPXR3bwogIG9w dGlvbl9zdHJpbmdfdmFsPW51bGwKICBvcHRpb25fc3RyaW5nX251bGw9dmFsCi0oNyByb3dz KQorKDggcm93cykKIAogLS0gQUxURVIgSU5ERVggLi4gU0VUCiBBTFRFUiBJTkRFWCBkdW1t eV90ZXN0X2lkeCBTRVQgKG9wdGlvbl9pbnQgPSAxMCk7CiBBTFRFUiBJTkRFWCBkdW1teV90 ZXN0X2lkeCBTRVQgKG9wdGlvbl9ib29sID0gdHJ1ZSk7CiBBTFRFUiBJTkRFWCBkdW1teV90 ZXN0X2lkeCBTRVQgKG9wdGlvbl90ZXJuYXJ5XzEgPSBmYWxzZSk7CitBTFRFUiBJTkRFWCBk dW1teV90ZXN0X2lkeCBTRVQgKG9wdGlvbl90ZXJuYXJ5XzIgPSBEb19Ob3RfS25vd19ZRVQp OwogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHggU0VUIChvcHRpb25fcmVhbCA9IDMuMik7 CiBBTFRFUiBJTkRFWCBkdW1teV90ZXN0X2lkeCBTRVQgKG9wdGlvbl9zdHJpbmdfdmFsID0g J3ZhbDInKTsKIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX3N0cmlu Z19udWxsID0gTlVMTCk7CkBAIC01MiwyMSArNTUsMjMgQEAgQUxURVIgSU5ERVggZHVtbXlf dGVzdF9pZHggU0VUIChvcHRpb25fZW51bSA9ICd0aHJlZScpOwogRVJST1I6ICBpbnZhbGlk IHZhbHVlIGZvciBlbnVtIG9wdGlvbiAib3B0aW9uX2VudW0iOiB0aHJlZQogREVUQUlMOiAg VmFsaWQgdmFsdWVzIGFyZSAib25lIiBhbmQgInR3byIuCiBTRUxFQ1QgdW5uZXN0KHJlbG9w dGlvbnMpIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdkdW1teV90ZXN0X2lkeCc7 Ci0gICAgICAgICB1bm5lc3QgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgIHVubmVzdCAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgb3B0aW9uX2ludD0xMAogIG9wdGlvbl9ib29sPXRydWUK ICBvcHRpb25fdGVybmFyeV8xPWZhbHNlCisgb3B0aW9uX3Rlcm5hcnlfMj1kb19ub3Rfa25v d195ZXQKICBvcHRpb25fcmVhbD0zLjIKICBvcHRpb25fc3RyaW5nX3ZhbD12YWwyCiAgb3B0 aW9uX3N0cmluZ19udWxsPW51bGwKICBvcHRpb25fZW51bT1vbmUKLSg3IHJvd3MpCisoOCBy b3dzKQogCiAtLSBBTFRFUiBJTkRFWCAuLiBSRVNFVAogQUxURVIgSU5ERVggZHVtbXlfdGVz dF9pZHggUkVTRVQgKG9wdGlvbl9pbnQpOwogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHgg UkVTRVQgKG9wdGlvbl9ib29sKTsKIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFJFU0VU IChvcHRpb25fdGVybmFyeV8xKTsKK0FMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFJFU0VU IChvcHRpb25fdGVybmFyeV8yKTsKIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFJFU0VU IChvcHRpb25fcmVhbCk7CiBBTFRFUiBJTkRFWCBkdW1teV90ZXN0X2lkeCBSRVNFVCAob3B0 aW9uX2VudW0pOwogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHggUkVTRVQgKG9wdGlvbl9z dHJpbmdfdmFsKTsKQEAgLTExMywxMyArMTE4LDIxIEBAIEFMVEVSIElOREVYIGR1bW15X3Rl c3RfaWR4IFNFVCAob3B0aW9uX3Rlcm5hcnlfMSA9IDMuNCk7IC0tIGVycm9yCiBFUlJPUjog IGludmFsaWQgdmFsdWUgZm9yIGJvb2xlYW4gb3B0aW9uICJvcHRpb25fdGVybmFyeV8xIjog My40CiBBTFRFUiBJTkRFWCBkdW1teV90ZXN0X2lkeCBTRVQgKG9wdGlvbl90ZXJuYXJ5XzEg PSAndmFsNCcpOyAtLSBlcnJvcgogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBib29sZWFu IG9wdGlvbiAib3B0aW9uX3Rlcm5hcnlfMSI6IHZhbDQKK0FMVEVSIElOREVYIGR1bW15X3Rl c3RfaWR4IFNFVCAob3B0aW9uX3Rlcm5hcnlfMSA9ICdkb19ub3Rfa25vd195ZXQnKTsgLS0g ZXJyb3IuIFZhbGlkIGZvciB0ZXJuYXJ5MiBub3QgZm9yIHRlcm5hcnkxCitFUlJPUjogIGlu dmFsaWQgdmFsdWUgZm9yIGJvb2xlYW4gb3B0aW9uICJvcHRpb25fdGVybmFyeV8xIjogZG9f bm90X2tub3dfeWV0CitBTFRFUiBJTkRFWCBkdW1teV90ZXN0X2lkeCBTRVQgKG9wdGlvbl90 ZXJuYXJ5XzIgPSAnZG9fbm90X2tub3dfeWV0Jyk7IC0tIG9rCitBTFRFUiBJTkRFWCBkdW1t eV90ZXN0X2lkeCBTRVQgKG9wdGlvbl90ZXJuYXJ5XzIgPSAnaWxsZWdhbF92YWx1ZScpOyAt LSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBvcHRpb24gIm9wdGlvbl90ZXJu YXJ5XzIiOiBpbGxlZ2FsX3ZhbHVlCitERVRBSUw6ICBWYWxpZCB2YWx1ZXMgYXJlICJvbiIs ICJvZmYiLCBhbmQgImRvX25vdF9rbm93X3lldCIuCiBTRUxFQ1QgdW5uZXN0KHJlbG9wdGlv bnMpIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdkdW1teV90ZXN0X2lkeCc7Ci0g ICAgICAgdW5uZXN0ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgdW5uZXN0ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBvcHRpb25fdGVybmFyeV8xPTEKLSgxIHJvdykKKyBvcHRpb25fdGVybmFyeV8y PWRvX25vdF9rbm93X3lldAorKDIgcm93cykKIAogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9p ZHggUkVTRVQgKG9wdGlvbl90ZXJuYXJ5XzEpOworQUxURVIgSU5ERVggZHVtbXlfdGVzdF9p ZHggUkVTRVQgKG9wdGlvbl90ZXJuYXJ5XzIpOwogLS0gRmxvYXQKIEFMVEVSIElOREVYIGR1 bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX3JlYWwgPSA0KTsgLS0gb2sKIEFMVEVSIElOREVY IGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX3JlYWwgPSB0cnVlKTsgLS0gZXJyb3IKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvZHVtbXlfaW5kZXhfYW0vc3FsL3JlbG9wdGlv bnMuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy9kdW1teV9pbmRleF9hbS9zcWwvcmVsb3B0aW9u cy5zcWwKaW5kZXggMmNkZmYwODIwZjYuLmY4Yjk4NTA1NWMxIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9tb2R1bGVzL2R1bW15X2luZGV4X2FtL3NxbC9yZWxvcHRpb25zLnNxbAorKysgYi9z cmMvdGVzdC9tb2R1bGVzL2R1bW15X2luZGV4X2FtL3NxbC9yZWxvcHRpb25zLnNxbApAQCAt MTksNiArMTksNyBAQCBDUkVBVEUgSU5ERVggZHVtbXlfdGVzdF9pZHggT04gZHVtbXlfdGVz dF90YWIKICAgVVNJTkcgZHVtbXlfaW5kZXhfYW0gKGkpIFdJVEggKAogICBvcHRpb25fYm9v bCA9IGZhbHNlLAogICBvcHRpb25fdGVybmFyeV8xLAorICBvcHRpb25fdGVybmFyeV8yID0g b2ZmLAogICBvcHRpb25faW50ID0gNSwKICAgb3B0aW9uX3JlYWwgPSAzLjEsCiAgIG9wdGlv bl9lbnVtID0gJ3R3bycsCkBAIC0zMiw2ICszMyw3IEBAIFNFTEVDVCB1bm5lc3QocmVsb3B0 aW9ucykgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ2R1bW15X3Rlc3RfaWR4JzsK IEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX2ludCA9IDEwKTsKIEFM VEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX2Jvb2wgPSB0cnVlKTsKIEFM VEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX3Rlcm5hcnlfMSA9IGZhbHNl KTsKK0FMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX3Rlcm5hcnlfMiA9 IERvX05vdF9Lbm93X1lFVCk7CiBBTFRFUiBJTkRFWCBkdW1teV90ZXN0X2lkeCBTRVQgKG9w dGlvbl9yZWFsID0gMy4yKTsKIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0 aW9uX3N0cmluZ192YWwgPSAndmFsMicpOwogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHgg U0VUIChvcHRpb25fc3RyaW5nX251bGwgPSBOVUxMKTsKQEAgLTQzLDYgKzQ1LDcgQEAgU0VM RUNUIHVubmVzdChyZWxvcHRpb25zKSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAn ZHVtbXlfdGVzdF9pZHgnOwogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHggUkVTRVQgKG9w dGlvbl9pbnQpOwogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHggUkVTRVQgKG9wdGlvbl9i b29sKTsKIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFJFU0VUIChvcHRpb25fdGVybmFy eV8xKTsKK0FMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFJFU0VUIChvcHRpb25fdGVybmFy eV8yKTsKIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFJFU0VUIChvcHRpb25fcmVhbCk7 CiBBTFRFUiBJTkRFWCBkdW1teV90ZXN0X2lkeCBSRVNFVCAob3B0aW9uX2VudW0pOwogQUxU RVIgSU5ERVggZHVtbXlfdGVzdF9pZHggUkVTRVQgKG9wdGlvbl9zdHJpbmdfdmFsKTsKQEAg LTY4LDggKzcxLDEyIEBAIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9u X3Rlcm5hcnlfMSA9IDQpOyAtLSBlcnJvcgogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHgg U0VUIChvcHRpb25fdGVybmFyeV8xID0gMSk7IC0tIG9rLCBhcyB0cnVlCiBBTFRFUiBJTkRF WCBkdW1teV90ZXN0X2lkeCBTRVQgKG9wdGlvbl90ZXJuYXJ5XzEgPSAzLjQpOyAtLSBlcnJv cgogQUxURVIgSU5ERVggZHVtbXlfdGVzdF9pZHggU0VUIChvcHRpb25fdGVybmFyeV8xID0g J3ZhbDQnKTsgLS0gZXJyb3IKK0FMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0 aW9uX3Rlcm5hcnlfMSA9ICdkb19ub3Rfa25vd195ZXQnKTsgLS0gZXJyb3IuIFZhbGlkIGZv ciB0ZXJuYXJ5MiBub3QgZm9yIHRlcm5hcnkxCitBTFRFUiBJTkRFWCBkdW1teV90ZXN0X2lk eCBTRVQgKG9wdGlvbl90ZXJuYXJ5XzIgPSAnZG9fbm90X2tub3dfeWV0Jyk7IC0tIG9rCitB TFRFUiBJTkRFWCBkdW1teV90ZXN0X2lkeCBTRVQgKG9wdGlvbl90ZXJuYXJ5XzIgPSAnaWxs ZWdhbF92YWx1ZScpOyAtLSBlcnJvcgogU0VMRUNUIHVubmVzdChyZWxvcHRpb25zKSBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAnZHVtbXlfdGVzdF9pZHgnOwogQUxURVIgSU5E RVggZHVtbXlfdGVzdF9pZHggUkVTRVQgKG9wdGlvbl90ZXJuYXJ5XzEpOworQUxURVIgSU5E RVggZHVtbXlfdGVzdF9pZHggUkVTRVQgKG9wdGlvbl90ZXJuYXJ5XzIpOwogLS0gRmxvYXQK IEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX3JlYWwgPSA0KTsgLS0g b2sKIEFMVEVSIElOREVYIGR1bW15X3Rlc3RfaWR4IFNFVCAob3B0aW9uX3JlYWwgPSB0cnVl KTsgLS0gZXJyb3IKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2lz dC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dpc3Qub3V0CmluZGV4IGM3NWJi YjIzYjZlLi4xOWRjNTQ3ZDVmOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9naXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dpc3Qub3V0 CkBAIC0xMiw3ICsxMiw3IEBAIGNyZWF0ZSBpbmRleCBnaXN0X3BvaW50aWR4NCBvbiBnaXN0 X3BvaW50X3RibCB1c2luZyBnaXN0KHApIHdpdGggKGJ1ZmZlcmluZyA9IGF1CiBkcm9wIGlu ZGV4IGdpc3RfcG9pbnRpZHgyLCBnaXN0X3BvaW50aWR4MywgZ2lzdF9wb2ludGlkeDQ7CiAt LSBNYWtlIHN1cmUgYmFkIHZhbHVlcyBhcmUgcmVmdXNlZAogY3JlYXRlIGluZGV4IGdpc3Rf cG9pbnRpZHg1IG9uIGdpc3RfcG9pbnRfdGJsIHVzaW5nIGdpc3QocCkgd2l0aCAoYnVmZmVy aW5nID0gaW52YWxpZF92YWx1ZSk7Ci1FUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIGVudW0g b3B0aW9uICJidWZmZXJpbmciOiBpbnZhbGlkX3ZhbHVlCitFUlJPUjogIGludmFsaWQgdmFs dWUgZm9yIG9wdGlvbiAiYnVmZmVyaW5nIjogaW52YWxpZF92YWx1ZQogREVUQUlMOiAgVmFs aWQgdmFsdWVzIGFyZSAib24iLCAib2ZmIiwgYW5kICJhdXRvIi4KIGNyZWF0ZSBpbmRleCBn aXN0X3BvaW50aWR4NSBvbiBnaXN0X3BvaW50X3RibCB1c2luZyBnaXN0KHApIHdpdGggKGZp bGxmYWN0b3I9OSk7CiBFUlJPUjogIHZhbHVlIDkgb3V0IG9mIGJvdW5kcyBmb3Igb3B0aW9u ICJmaWxsZmFjdG9yIgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y ZWxvcHRpb25zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmVsb3B0aW9ucy5v dXQKaW5kZXggZTNhOTc0ZjI2MTEuLjZlNjVjZDVjM2RhIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3JlbG9wdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcmVsb3B0aW9ucy5vdXQKQEAgLTExNiw2ICsxMTYsMjQgQEAgU0VMRUNU IHJlbG9wdGlvbnMgRlJPTSBwZ19jbGFzcyBXSEVSRSBvaWQgPSAncmVsb3B0aW9uc190ZXN0 Jzo6cmVnY2xhc3M7CiAge3ZhY3V1bV90cnVuY2F0ZT1mYWxzfQogKDEgcm93KQogCistLSBw cmVmZXJyZWQgInRydWUiIGFsaWFzIGlzIHN0b3JlZCBpbiBwZ19jbGFzcworRFJPUCBUQUJM RSByZWxvcHRpb25zX3Rlc3Q7CitDUkVBVEUgVEFCTEUgcmVsb3B0aW9uc190ZXN0KGkgSU5U KSBXSVRIICh2YWN1dW1faW5kZXhfY2xlYW51cD1vbik7CitTRUxFQ1QgcmVsb3B0aW9ucyBG Uk9NIHBnX2NsYXNzIFdIRVJFIG9pZCA9ICdyZWxvcHRpb25zX3Rlc3QnOjpyZWdjbGFzczsK KyAgICAgICAgcmVsb3B0aW9ucyAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge3ZhY3V1bV9pbmRleF9jbGVhbnVwPW9ufQorKDEgcm93KQorCistLSBjdXN0b20g InRoaXJkIiB2YWx1ZSBpcyBhdmFpbGFibGUKK0RST1AgVEFCTEUgcmVsb3B0aW9uc190ZXN0 OworQ1JFQVRFIFRBQkxFIHJlbG9wdGlvbnNfdGVzdChpIElOVCkgV0lUSCAodmFjdXVtX2lu ZGV4X2NsZWFudXA9YXV0byk7CitTRUxFQ1QgcmVsb3B0aW9ucyBGUk9NIHBnX2NsYXNzIFdI RVJFIG9pZCA9ICdyZWxvcHRpb25zX3Rlc3QnOjpyZWdjbGFzczsKKyAgICAgICAgIHJlbG9w dGlvbnMgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHt2YWN1 dW1faW5kZXhfY2xlYW51cD1hdXRvfQorKDEgcm93KQorCiAtLSBUZXN0IHZhY3V1bV90cnVu Y2F0ZSBvcHRpb24KIERST1AgVEFCTEUgcmVsb3B0aW9uc190ZXN0OwogQ1JFQVRFIFRFTVAg VEFCTEUgcmVsb3B0aW9uc190ZXN0KGkgSU5UIE5PVCBOVUxMLCBqIHRleHQpCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yZWxvcHRpb25zLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3JlbG9wdGlvbnMuc3FsCmluZGV4IDY4MGM4YmY4NjE0Li5jOTk2NzNkYjll YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmVsb3B0aW9ucy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmVsb3B0aW9ucy5zcWwKQEAgLTcwLDYgKzcwLDE2 IEBAIERST1AgVEFCTEUgcmVsb3B0aW9uc190ZXN0OwogQ1JFQVRFIFRBQkxFIHJlbG9wdGlv bnNfdGVzdChpIElOVCkgV0lUSCAodmFjdXVtX3RydW5jYXRlPUZhTFMpOwogU0VMRUNUIHJl bG9wdGlvbnMgRlJPTSBwZ19jbGFzcyBXSEVSRSBvaWQgPSAncmVsb3B0aW9uc190ZXN0Jzo6 cmVnY2xhc3M7CiAKKy0tIHByZWZlcnJlZCAidHJ1ZSIgYWxpYXMgaXMgc3RvcmVkIGluIHBn X2NsYXNzCitEUk9QIFRBQkxFIHJlbG9wdGlvbnNfdGVzdDsKK0NSRUFURSBUQUJMRSByZWxv cHRpb25zX3Rlc3QoaSBJTlQpIFdJVEggKHZhY3V1bV9pbmRleF9jbGVhbnVwPW9uKTsKK1NF TEVDVCByZWxvcHRpb25zIEZST00gcGdfY2xhc3MgV0hFUkUgb2lkID0gJ3JlbG9wdGlvbnNf dGVzdCc6OnJlZ2NsYXNzOworCistLSBjdXN0b20gInRoaXJkIiB2YWx1ZSBpcyBhdmFpbGFi bGUKK0RST1AgVEFCTEUgcmVsb3B0aW9uc190ZXN0OworQ1JFQVRFIFRBQkxFIHJlbG9wdGlv bnNfdGVzdChpIElOVCkgV0lUSCAodmFjdXVtX2luZGV4X2NsZWFudXA9YXV0byk7CitTRUxF Q1QgcmVsb3B0aW9ucyBGUk9NIHBnX2NsYXNzIFdIRVJFIG9pZCA9ICdyZWxvcHRpb25zX3Rl c3QnOjpyZWdjbGFzczsKKwogLS0gVGVzdCB2YWN1dW1fdHJ1bmNhdGUgb3B0aW9uCiBEUk9Q IFRBQkxFIHJlbG9wdGlvbnNfdGVzdDsKIAotLSAKMi40Ny4zCgo= --------------5Jc8aT6MWjWkT0QFiKtxdEYy--