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.94.2) (envelope-from ) id 1tk6FG-00HYjV-4I for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Feb 2025 18:53:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tk6FE-001gfR-M9 for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Feb 2025 18:53:28 +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.94.2) (envelope-from ) id 1tk6FE-001gfH-6t for pgsql-hackers@lists.postgresql.org; Mon, 17 Feb 2025 18:53:28 +0000 Received: from forward500a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d500]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tk6FA-001P4K-1Y for pgsql-hackers@lists.postgresql.org; Mon, 17 Feb 2025 18:53:27 +0000 Received: from mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:7ca4:0:640:e165:0]) by forward500a.mail.yandex.net (Yandex) with ESMTPS id 60D2160D37; Mon, 17 Feb 2025 21:53:21 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id GrZDd2AOd8c0-oVAu4vGJ; Mon, 17 Feb 2025 21:53:20 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.com; s=mail; t=1739818400; bh=9KiGyHkQWtEp7lXhhhu7S/lGE+qSmFaLLni+8UEzrf0=; h=In-Reply-To:Cc:Date:References:To:Subject:Message-ID:From; b=SJnwcHdYj5ItR11i3oHELQ1i/6/RxthEsSxdo0UAVg8cwuBpnFLbj24HpNyM2sMu/ Zs5HYKJdrIjEYSESAA4Lb1OllVQRmfOX8Q9C+EaLudh/srcb8A7jnDlfExoqR5ijPY IwIrOFV84w5Hn6jzZ2lWHsSIt4Te2ORUly/fAe0A= Authentication-Results: mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.com Content-Type: multipart/mixed; boundary="------------hrs9PSwmyg9HhF0JOjXez0AQ" Message-ID: Date: Mon, 17 Feb 2025 21:53:16 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: explain analyze rows=%.0f To: Robert Haas Cc: Matheus Alcantara , Guillaume Lelarge , Daniel Gustafsson , Ibrar Ahmed , "Gregory Stark (as CFM)" , Amit Kapila , Justin Pryzby , Peter Geoghegan , vignesh C , "David G. Johnston" , Alena Rybakina , Andrei Lepikhov , pgsql-hackers@lists.postgresql.org, Tom Lane References: <70bc1af0-6910-4f71-84ba-fa02095fe9ba@tantorlabs.com> <3212947.1739306803@sss.pgh.pa.us> <3365160.1739385615@sss.pgh.pa.us> <0e4c813a-18eb-41e2-8edb-89b78d43c82d@gmail.com> <01ec86c1-e04b-4cbe-b641-22cae8b87604@tantorlabs.com> Content-Language: en-US From: Ilia Evdokimov In-Reply-To: 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. --------------hrs9PSwmyg9HhF0JOjXez0AQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 17.02.2025 17:19, Robert Haas wrote: > On Mon, Feb 17, 2025 at 3:08 AM Ilia Evdokimov > wrote: >> You're right—floor shouldn't be used since it behaves differently across >> platforms, as Tom also pointed out earlier. I like the idea of using %, >> but since the compiler doesn't allow this operation with double, we need >> to cast it to int64. I checked how nloops and ntuples are modified - >> they are only incremented by 1. So that the casting might be safe. If I >> missed anything or if there's a reason why this casting wouldn't be >> safe, please let me know. > What I've been advocating for is just: > > if (nloops > 1) > > Instead of: > > if (nloops > 1 && rows_is_fractonal) > > I don't think it's really safe to just cast a double back to int64. In > practice, the number of tuples should never be large enough to > overflow int64, but if it did, this result would be nonsense. Also, if > the double ever lost precision, the result would be nonsense. If we > want to have an exact count of tuples, we ought to change ntuples and > ntuples2 to be uint64. But I don't think we should do that in this > patch, because that adds a whole bunch of new problems to worry about > and might cause us to get nothing committed. Instead, I think we > should just always show two decimal digits if there's more than one > loop. > > That's simpler than what the patch currently does and avoids this > problem. Perhaps it's objectionable for some other reason, but if so, > can somebody please spell out what that reason is so we can talk about > it? > I have no objections. I agree if we are going to transition from double to int64, it should be done properly, but definitely not in current thread. As for documentation changes, I'll keep t1.unique > t2.unique. If we use equality instead, we need to explicitly show rows=1.00, which would likely raise too many questions from users what it means. I attached patches v11 with changes. -- Best regards, Ilia Evdokimov, Tantor Labs LLC. --------------hrs9PSwmyg9HhF0JOjXez0AQ Content-Type: text/x-patch; charset=UTF-8; name="v11-0002-Clarify-display-of-rows-as-decimal-fractions.patch" Content-Disposition: attachment; filename*0="v11-0002-Clarify-display-of-rows-as-decimal-fractions.patch" Content-Transfer-Encoding: base64 RnJvbSA3NjZlOGJmNDZhNDE1Y2YzYzRlM2E0Yzk0YTI0NzllYTkxZDNlOTNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZA dGFudG9ybGFicy5jb20+CkRhdGU6IE1vbiwgMTcgRmViIDIwMjUgMjE6MjI6MTEgKzAzMDAK U3ViamVjdDogW1BBVENIIHYxMSAyLzJdIENsYXJpZnkgZGlzcGxheSBvZiByb3dzIGFzIGRl Y2ltYWwgZnJhY3Rpb25zCgpXaGVuIGxvb3BzID4gMSwgdGhlIGF2ZXJhZ2Ugcm93cyB2YWx1 ZSBpcyBub3cgZGlzcGxheWVkIGFzIGEgZGVjaW1hbCBmcmFjdGlvbgp3aXRoIHR3byBkaWdp dHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQgaW4gRVhQTEFJTiBBTkFMWVpFLgoKUHJldmlv dXNseSwgdGhlIGF2ZXJhZ2Ugcm93cyB2YWx1ZSB3YXMgYWx3YXlzIHJvdW5kZWQgdG8gYW4g aW50ZWdlciwKd2hpY2ggY291bGQgbGVhZCB0byBtaXNsZWFkaW5nIHJlc3VsdHMgd2hlbiBl c3RpbWF0aW5nIHRvdGFsIHJvd3MKYnkgbXVsdGlwbHlpbmcgcm93cyBieSBsb29wLiBUaGlz IGNoYW5nZSBlbnN1cmVzIHRoYXQgdXNlcnMKZ2V0IGEgbW9yZSBhY2N1cmF0ZSByZXByZXNl bnRhdGlvbiBvZiB0aGUgZGF0YSBmbG93IHRocm91Z2ggZXhlY3V0aW9uIG5vZGVzLgotLS0K IGRvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwgfCAzOSArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAx OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGVyZm9ybS5zZ21s IGIvZG9jL3NyYy9zZ21sL3BlcmZvcm0uc2dtbAppbmRleCBhNTAyYTJhYWJhLi41ODhlZTZk NWFhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGVyZm9ybS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9wZXJmb3JtLnNnbWwKQEAgLTcxNywyNiArNzE3LDI2IEBAIEZST00gdGVuazEg dDEgV0hFUkUgdDEudGVuID0gKFNFTEVDVCAocmFuZG9tKCkgKiAxMCk6OmludGVnZXIpOwog PHNjcmVlbj4KIEVYUExBSU4gQU5BTFlaRSBTRUxFQ1QgKgogRlJPTSB0ZW5rMSB0MSwgdGVu azIgdDIKLVdIRVJFIHQxLnVuaXF1ZTEgJmx0OyAxMCBBTkQgdDEudW5pcXVlMiA9IHQyLnVu aXF1ZTI7CitXSEVSRSB0MS50aG91c2FuZCAmbHQ7IDEwIEFORCB0MS51bmlxdWUyICZndDsg dDIudW5pcXVlMjsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJnp3c3A7LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSBOZXN0ZWQgTG9vcCAgKGNvc3Q9NC42NS4uMTE4LjUwIHJvd3M9MTAgd2lkdGg9 NDg4KSAoYWN0dWFsIHRpbWU9MC4wMTcuLjAuMDUxIHJvd3M9MTAgbG9vcHM9MSkKLSAgIEJ1 ZmZlcnM6IHNoYXJlZCBoaXQ9MzYgcmVhZD02Ci0gICAtJmd0OyAgQml0bWFwIEhlYXAgU2Nh biBvbiB0ZW5rMSB0MSAgKGNvc3Q9NC4zNi4uMzkuMzggcm93cz0xMCB3aWR0aD0yNDQpIChh Y3R1YWwgdGltZT0wLjAwOS4uMC4wMTcgcm93cz0xMCBsb29wcz0xKQotICAgICAgICAgUmVj aGVjayBDb25kOiAodW5pcXVlMSAmbHQ7IDEwKQotICAgICAgICAgSGVhcCBCbG9ja3M6IGV4 YWN0PTEwCi0gICAgICAgICBCdWZmZXJzOiBzaGFyZWQgaGl0PTMgcmVhZD01IHdyaXR0ZW49 NAotICAgICAgICAgLSZndDsgIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEg IChjb3N0PTAuMDAuLjQuMzYgcm93cz0xMCB3aWR0aD0wKSAoYWN0dWFsIHRpbWU9MC4wMDQu LjAuMDA0IHJvd3M9MTAgbG9vcHM9MSkKLSAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1 bmlxdWUxICZsdDsgMTApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0m endzcDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AgIChjb3N0PTUuNDAuLjEx NTcxLjQ0IHJvd3M9MzU2NjY3IHdpZHRoPTQ4OCkgKGFjdHVhbCB0aW1lPTAuMDQyLi4xMTcu MjA1IHJvd3M9NTEzODMyIGxvb3BzPTEpCisgICBCdWZmZXJzOiBzaGFyZWQgaGl0PTE5Mzc3 IHJlYWQ9MjkKKyAgIC0mZ3Q7ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxIHQxICAoY29z dD01LjExLi4yMzMuNjAgcm93cz0xMDcgd2lkdGg9MjQ0KSAoYWN0dWFsIHRpbWU9MC4wMjEu LjAuMTAzIHJvd3M9MTAwIGxvb3BzPTEpCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICh0aG91 c2FuZCAmbHQ7IDEwKQorICAgICAgICAgSGVhcCBCbG9ja3M6IGV4YWN0PTkwCisgICAgICAg ICBCdWZmZXJzOiBzaGFyZWQgaGl0PTkyCisgICAgICAgICAtJmd0OyAgQml0bWFwIEluZGV4 IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMgIChjb3N0PTAuMDAuLjUuMDkgcm93cz0x MDcgd2lkdGg9MCkgKGFjdHVhbCB0aW1lPTAuMDEwLi4wLjAxMCByb3dzPTEwMCBsb29wcz0x KQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kICZsdDsgMTApCiAgICAg ICAgICAgICAgICBCdWZmZXJzOiBzaGFyZWQgaGl0PTIKLSAgIC0mZ3Q7ICBJbmRleCBTY2Fu IHVzaW5nIHRlbmsyX3VuaXF1ZTIgb24gdGVuazIgdDIgIChjb3N0PTAuMjkuLjcuOTAgcm93 cz0xIHdpZHRoPTI0NCkgKGFjdHVhbCB0aW1lPTAuMDAzLi4wLjAwMyByb3dzPTEgbG9vcHM9 MTApCi0gICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IHQxLnVuaXF1ZTIpCi0gICAg ICAgICBCdWZmZXJzOiBzaGFyZWQgaGl0PTI0IHJlYWQ9NgorICAgLSZndDsgIEluZGV4IFNj YW4gdXNpbmcgdGVuazJfdW5pcXVlMiBvbiB0ZW5rMiB0MiAgKGNvc3Q9MC4yOS4uNzIuNjMg cm93cz0zMzMzIHdpZHRoPTI0NCkgKGFjdHVhbCB0aW1lPTAuMDA2Li4wLjQxMCByb3dzPTUx MzguMzIgbG9vcHM9MTAwKQorICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgJmx0OyB0 MS51bmlxdWUyKQorICAgICAgICAgQnVmZmVyczogc2hhcmVkIGhpdD0xOTI4NSByZWFkPTI5 CiAgUGxhbm5pbmc6Ci0gICBCdWZmZXJzOiBzaGFyZWQgaGl0PTE1IGRpcnRpZWQ9OQotIFBs YW5uaW5nIFRpbWU6IDAuNDg1IG1zCi0gRXhlY3V0aW9uIFRpbWU6IDAuMDczIG1zCisgICBC dWZmZXJzOiBzaGFyZWQgaGl0PTI1OCByZWFkPTkgZGlydGllZD0yCisgUGxhbm5pbmcgVGlt ZTogMC41MTkgbXMKKyBFeGVjdXRpb24gVGltZTogMTMxLjM3OCBtcwogPC9zY3JlZW4+CiAK ICAgICBOb3RlIHRoYXQgdGhlIDxxdW90ZT5hY3R1YWwgdGltZTwvcXVvdGU+IHZhbHVlcyBh cmUgaW4gbWlsbGlzZWNvbmRzIG9mCkBAIC03NTYsOCArNzU2LDkgQEAgV0hFUkUgdDEudW5p cXVlMSAmbHQ7IDEwIEFORCB0MS51bmlxdWUyID0gdDIudW5pcXVlMjsKICAgICB2YWx1ZXMg c2hvd24gYXJlIGF2ZXJhZ2VzIHBlci1leGVjdXRpb24uICBUaGlzIGlzIGRvbmUgdG8gbWFr ZSB0aGUgbnVtYmVycwogICAgIGNvbXBhcmFibGUgd2l0aCB0aGUgd2F5IHRoYXQgdGhlIGNv c3QgZXN0aW1hdGVzIGFyZSBzaG93bi4gIE11bHRpcGx5IGJ5CiAgICAgdGhlIDxsaXRlcmFs Pmxvb3BzPC9saXRlcmFsPiB2YWx1ZSB0byBnZXQgdGhlIHRvdGFsIHRpbWUgYWN0dWFsbHkg c3BlbnQgaW4KLSAgICB0aGUgbm9kZS4gIEluIHRoZSBhYm92ZSBleGFtcGxlLCB3ZSBzcGVu dCBhIHRvdGFsIG9mIDAuMDMwIG1pbGxpc2Vjb25kcwotICAgIGV4ZWN1dGluZyB0aGUgaW5k ZXggc2NhbnMgb24gPGxpdGVyYWw+dGVuazI8L2xpdGVyYWw+LgorICAgIHRoZSBub2RlLCBh bmQgdG8gZ2V0IHRoZSB0b3RhbCByb3dzIHByb2Nlc3NlZCBpbiB0aGUgbm9kZS4gSW4gdGhl IGFib3ZlIGV4YW1wbGUsCisgICAgd2Ugc3BlbnQgYSB0b3RhbCBvZiA0MSBtaWxsaXNlY29u ZHMgZXhlY3V0aW5nIHRoZSBpbmRleCBzY2FucywKKyAgICBhbmQgdGhlIG5vZGUgcHJvY2Vz c2VkIGEgdG90YWwgb2YgNTEzODMyIHJvd3Mgb24gPGxpdGVyYWw+dGVuazI8L2xpdGVyYWw+ LgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLS0gCjIuMzQuMQoK --------------hrs9PSwmyg9HhF0JOjXez0AQ Content-Type: text/x-patch; charset=UTF-8; name="v11-0001-Clarify-display-of-rows-as-decimal-fractions.patch" Content-Disposition: attachment; filename*0="v11-0001-Clarify-display-of-rows-as-decimal-fractions.patch" Content-Transfer-Encoding: base64 RnJvbSA3Y2IzZjM2ZjNmYjRkYjBmNzVhNzJkZjFjYWE1ZTMyMTgxOThmYTg0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZA dGFudG9ybGFicy5jb20+CkRhdGU6IE1vbiwgMTcgRmViIDIwMjUgMjE6MjA6MTAgKzAzMDAK U3ViamVjdDogW1BBVENIIHYxMSAxLzJdIENsYXJpZnkgZGlzcGxheSBvZiByb3dzIGFzIGRl Y2ltYWwgZnJhY3Rpb25zCgpXaGVuIGxvb3BzID4gMSwgdGhlIGF2ZXJhZ2Ugcm93cyB2YWx1 ZSBpcyBub3cgZGlzcGxheWVkIGFzIGEgZGVjaW1hbCBmcmFjdGlvbgp3aXRoIHR3byBkaWdp dHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQgaW4gRVhQTEFJTiBBTkFMWVpFLgoKUHJldmlv dXNseSwgdGhlIGF2ZXJhZ2Ugcm93cyB2YWx1ZSB3YXMgYWx3YXlzIHJvdW5kZWQgdG8gYW4g aW50ZWdlciwKd2hpY2ggY291bGQgbGVhZCB0byBtaXNsZWFkaW5nIHJlc3VsdHMgd2hlbiBl c3RpbWF0aW5nIHRvdGFsIHJvd3MKYnkgbXVsdGlwbHlpbmcgcm93cyBieSBsb29wLiBUaGlz IGNoYW5nZSBlbnN1cmVzIHRoYXQgdXNlcnMKZ2V0IGEgbW9yZSBhY2N1cmF0ZSByZXByZXNl bnRhdGlvbiBvZiB0aGUgZGF0YSBmbG93IHRocm91Z2ggZXhlY3V0aW9uIG5vZGVzLgotLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAgICAgICAgICB8IDUwICsr KysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0ICAgICAg ICAgfCAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZW1vaXplLm91dCAgICAg ICAgIHwgODYgKysrKysrKysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wYXJ0aXRpb25fcHJ1bmUub3V0IHwgNDIgKysrKy0tLS0tCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3NlbGVjdF9wYXJhbGxlbC5vdXQgfCAyNCArKystLS0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwgICAgICB8ICAyICstCiA2IGZpbGVzIGNo YW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCA5NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9leHBsYWluLmMKaW5kZXggZGM0YmVmOWFiOC4uZWE0YWU2MGQ1NyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2V4cGxhaW4uYwpAQCAtMTk4MSwxNCArMTk4MSwxNSBAQCBFeHBsYWluTm9kZShQbGFu U3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5jZXN0b3JzLAogCiAJCWlmIChlcy0+Zm9ybWF0 ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCiAJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oZXMt PnN0ciwgIiAoYWN0dWFsICIpOworCiAJCQlpZiAoZXMtPnRpbWluZykKLQkJCQlhcHBlbmRT dHJpbmdJbmZvKGVzLT5zdHIsCi0JCQkJCQkJCSAiIChhY3R1YWwgdGltZT0lLjNmLi4lLjNm IHJvd3M9JS4wZiBsb29wcz0lLjBmKSIsCi0JCQkJCQkJCSBzdGFydHVwX21zLCB0b3RhbF9t cywgcm93cywgbmxvb3BzKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICJ0aW1l PSUuM2YuLiUuM2YgIiwgc3RhcnR1cF9tcywgdG90YWxfbXMpOworCisJCQlpZiAobmxvb3Bz ID4gMSkKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICJyb3dzPSUuMmYgbG9vcHM9 JS4wZikiLCByb3dzLCBubG9vcHMpOwogCQkJZWxzZQotCQkJCWFwcGVuZFN0cmluZ0luZm8o ZXMtPnN0ciwKLQkJCQkJCQkJICIgKGFjdHVhbCByb3dzPSUuMGYgbG9vcHM9JS4wZikiLAot CQkJCQkJCQkgcm93cywgbmxvb3BzKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIs ICJyb3dzPSUuMGYgbG9vcHM9JS4wZikiLCByb3dzLCBubG9vcHMpOwogCQl9CiAJCWVsc2UK IAkJewpAQCAtMTk5OSw4ICsyMDAwLDE2IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxh bnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFj dHVhbCBUb3RhbCBUaW1lIiwgIm1zIiwgdG90YWxfbXMsCiAJCQkJCQkJCQkgMywgZXMpOwog CQkJfQotCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBSb3dzIiwgTlVMTCwgcm93 cywgMCwgZXMpOwotCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBMb29wcyIsIE5V TEwsIG5sb29wcywgMCwgZXMpOworCQkJaWYgKG5sb29wcyA+IDEpCisJCQl7CisJCQkJRXhw bGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBSb3dzIiwgTlVMTCwgcm93cywgMiwgZXMpOwor CQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1YWwgTG9vcHMiLCBOVUxMLCBubG9vcHMs IDAsIGVzKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlFeHBsYWluUHJvcGVydHlGbG9h dCgiQWN0dWFsIFJvd3MiLCBOVUxMLCByb3dzLCAwLCBlcyk7CisJCQkJRXhwbGFpblByb3Bl cnR5RmxvYXQoIkFjdHVhbCBMb29wcyIsIE5VTEwsIG5sb29wcywgMCwgZXMpOworCQkJfQog CQl9CiAJfQogCWVsc2UgaWYgKGVzLT5hbmFseXplKQpAQCAtMjA1MiwxNCArMjA2MSwxNCBA QCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5jZXN0b3JzLAog CQkJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKIAkJCXsKIAkJCQlF eHBsYWluSW5kZW50VGV4dChlcyk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAi YWN0dWFsICIpOwogCQkJCWlmIChlcy0+dGltaW5nKQotCQkJCQlhcHBlbmRTdHJpbmdJbmZv KGVzLT5zdHIsCi0JCQkJCQkJCQkgImFjdHVhbCB0aW1lPSUuM2YuLiUuM2Ygcm93cz0lLjBm IGxvb3BzPSUuMGZcbiIsCi0JCQkJCQkJCQkgc3RhcnR1cF9tcywgdG90YWxfbXMsIHJvd3Ms IG5sb29wcyk7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgInRpbWU9JS4zZi4u JS4zZiIsIHN0YXJ0dXBfbXMsIHRvdGFsX21zKTsKKworCQkJCWlmIChubG9vcHMgPiAxKQor CQkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICJyb3dzPSUuMmYgbG9vcHM9JS4wZlxu Iiwgcm93cywgbmxvb3BzKTsKIAkJCQllbHNlCi0JCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMt PnN0ciwKLQkJCQkJCQkJCSAiYWN0dWFsIHJvd3M9JS4wZiBsb29wcz0lLjBmXG4iLAotCQkJ CQkJCQkJIHJvd3MsIG5sb29wcyk7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwg InJvd3M9JS4wZiBsb29wcz0lLjBmXG4iLCByb3dzLCBubG9vcHMpOwogCQkJfQogCQkJZWxz ZQogCQkJewpAQCAtMjA3MCw4ICsyMDc5LDE3IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAq cGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0 KCJBY3R1YWwgVG90YWwgVGltZSIsICJtcyIsCiAJCQkJCQkJCQkJIHRvdGFsX21zLCAzLCBl cyk7CiAJCQkJfQotCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1YWwgUm93cyIsIE5V TEwsIHJvd3MsIDAsIGVzKTsKLQkJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiQWN0dWFsIExv b3BzIiwgTlVMTCwgbmxvb3BzLCAwLCBlcyk7CisKKwkJCQlpZiAobmxvb3BzID4gMSkKKwkJ CQl7CisJCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1YWwgUm93cyIsIE5VTEwsIHJv d3MsIDIsIGVzKTsKKwkJCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBMb29wcyIs IE5VTEwsIG5sb29wcywgMCwgZXMpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlF eHBsYWluUHJvcGVydHlGbG9hdCgiQWN0dWFsIFJvd3MiLCBOVUxMLCByb3dzLCAwLCBlcyk7 CisJCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1YWwgTG9vcHMiLCBOVUxMLCBubG9v cHMsIDAsIGVzKTsKKwkJCQl9CiAJCQl9CiAKIAkJCUV4cGxhaW5DbG9zZVdvcmtlcihuLCBl cyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dAppbmRleCBlZTMxZTQx ZDUwLi5lYjE4NzUxNmIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2V4cGxhaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5v dXQKQEAgLTUyOCw3ICs1MjgsNyBAQCBzZWxlY3QganNvbmJfcHJldHR5KAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiUGxhbiBSb3dzIjogMCwgICAgICAgICAgICAgICAgKwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhbiBXaWR0aCI6IDAsICAgICAgICAg ICAgICAgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG90YWwgQ29zdCI6IDAu MCwgICAgICAgICAgICAgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFs IFJvd3MiOiAwLCAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiQWN0dWFsIFJvd3MiOiAwLjAsICAgICAgICAgICAgKwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiQWN0dWFsIExvb3BzIjogMCwgICAgICAgICAgICAgKwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiU3RhcnR1cCBDb3N0IjogMC4wLCAgICAgICAgICAgKwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAg ICAgICAgKwpAQCAtNTc1LDcgKzU3NSw3IEBAIHNlbGVjdCBqc29uYl9wcmV0dHkoCiAgICAg ICAgICAgICAgICAgICAgICAiUGxhbiBSb3dzIjogMCwgICAgICAgICAgICAgICAgICAgICAg ICArCiAgICAgICAgICAgICAgICAgICAgICAiUGxhbiBXaWR0aCI6IDAsICAgICAgICAgICAg ICAgICAgICAgICArCiAgICAgICAgICAgICAgICAgICAgICAiVG90YWwgQ29zdCI6IDAuMCwg ICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIFJv d3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAi QWN0dWFsIFJvd3MiOiAwLjAsICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgICAgICAg ICAgICAgICAiQWN0dWFsIExvb3BzIjogMCwgICAgICAgICAgICAgICAgICAgICArCiAgICAg ICAgICAgICAgICAgICAgICAiU3RhcnR1cCBDb3N0IjogMC4wLCAgICAgICAgICAgICAgICAg ICArCiAgICAgICAgICAgICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAg ICAgICAgICAgICArCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21l bW9pemUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZW1vaXplLm91dAppbmRl eCA1ZWNmOTcxZGFkLi5kYmQwMTA2NmQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL21lbW9pemUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bWVtb2l6ZS5vdXQKQEAgLTM1LDE4ICszNSwxOCBAQCBTRUxFQ1QgZXhwbGFpbl9tZW1vaXpl KCcKIFNFTEVDVCBDT1VOVCgqKSxBVkcodDEudW5pcXVlMSkgRlJPTSB0ZW5rMSB0MQogSU5O RVIgSk9JTiB0ZW5rMSB0MiBPTiB0MS51bmlxdWUxID0gdDIudHdlbnR5CiBXSEVSRSB0Mi51 bmlxdWUxIDwgMTAwMDsnLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGV4cGxhaW5fbWVtb2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX21lbW9pemUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQWdncmVnYXRlIChhY3R1YWwgcm93cz0xIGxv b3BzPU4pCiAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTEwMDAgbG9vcHM9TikK ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSB0MiAoYWN0dWFsIHJvd3M9MTAwMCBs b29wcz1OKQogICAgICAgICAgICAgICAgRmlsdGVyOiAodW5pcXVlMSA8IDEwMDApCiAgICAg ICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiA5MDAwCi0gICAgICAgICAtPiAg TWVtb2l6ZSAoYWN0dWFsIHJvd3M9MSBsb29wcz1OKQorICAgICAgICAgLT4gIE1lbW9pemUg KGFjdHVhbCByb3dzPTEuMDAgbG9vcHM9TikKICAgICAgICAgICAgICAgIENhY2hlIEtleTog dDIudHdlbnR5CiAgICAgICAgICAgICAgICBDYWNoZSBNb2RlOiBsb2dpY2FsCiAgICAgICAg ICAgICAgICBIaXRzOiA5ODAgIE1pc3NlczogMjAgIEV2aWN0aW9uczogWmVybyAgT3ZlcmZs b3dzOiAwICBNZW1vcnkgVXNhZ2U6IE5rQgotICAgICAgICAgICAgICAgLT4gIEluZGV4IE9u bHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxIHQxIChhY3R1YWwgcm93cz0x IGxvb3BzPU4pCisgICAgICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRl bmsxX3VuaXF1ZTEgb24gdGVuazEgdDEgKGFjdHVhbCByb3dzPTEuMDAgbG9vcHM9TikKICAg ICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gdDIudHdlbnR5KQog ICAgICAgICAgICAgICAgICAgICAgSGVhcCBGZXRjaGVzOiBOCiAoMTIgcm93cykKQEAgLTY2 LDE4ICs2NiwxOCBAQCBTRUxFQ1QgQ09VTlQoKiksQVZHKHQyLnVuaXF1ZTEpIEZST00gdGVu azEgdDEsCiBMQVRFUkFMIChTRUxFQ1QgdDIudW5pcXVlMSBGUk9NIHRlbmsxIHQyCiAgICAg ICAgICBXSEVSRSB0MS50d2VudHkgPSB0Mi51bmlxdWUxIE9GRlNFVCAwKSB0MgogV0hFUkUg dDEudW5pcXVlMSA8IDEwMDA7JywgZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBleHBsYWluX21lbW9pemUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9tZW1vaXpl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFnZ3JlZ2F0ZSAoYWN0dWFsIHJvd3M9 MSBsb29wcz1OKQogICAgLT4gIE5lc3RlZCBMb29wIChhY3R1YWwgcm93cz0xMDAwIGxvb3Bz PU4pCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgdDEgKGFjdHVhbCByb3dzPTEw MDAgbG9vcHM9TikKICAgICAgICAgICAgICAgIEZpbHRlcjogKHVuaXF1ZTEgPCAxMDAwKQog ICAgICAgICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogOTAwMAotICAgICAgICAg LT4gIE1lbW9pemUgKGFjdHVhbCByb3dzPTEgbG9vcHM9TikKKyAgICAgICAgIC0+ICBNZW1v aXplIChhY3R1YWwgcm93cz0xLjAwIGxvb3BzPU4pCiAgICAgICAgICAgICAgICBDYWNoZSBL ZXk6IHQxLnR3ZW50eQogICAgICAgICAgICAgICAgQ2FjaGUgTW9kZTogYmluYXJ5CiAgICAg ICAgICAgICAgICBIaXRzOiA5ODAgIE1pc3NlczogMjAgIEV2aWN0aW9uczogWmVybyAgT3Zl cmZsb3dzOiAwICBNZW1vcnkgVXNhZ2U6IE5rQgotICAgICAgICAgICAgICAgLT4gIEluZGV4 IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxIHQyIChhY3R1YWwgcm93 cz0xIGxvb3BzPU4pCisgICAgICAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5n IHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdDIgKGFjdHVhbCByb3dzPTEuMDAgbG9vcHM9TikK ICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gdDEudHdlbnR5 KQogICAgICAgICAgICAgICAgICAgICAgSGVhcCBGZXRjaGVzOiBOCiAoMTIgcm93cykKQEAg LTEwMCwyMCArMTAwLDIwIEBAIExBVEVSQUwgKAogKSB0MgogT04gdDEudHdvID0gdDIudHdv CiBXSEVSRSB0MS51bmlxdWUxIDwgMTA7JywgZmFsc2UpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9tZW1vaXplICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl eHBsYWluX21lbW9pemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFnZ3Jl Z2F0ZSAoYWN0dWFsIHJvd3M9MSBsb29wcz1OKQogICAgLT4gIE5lc3RlZCBMb29wIExlZnQg Sm9pbiAoYWN0dWFsIHJvd3M9MjAgbG9vcHM9TikKICAgICAgICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdDEgKGFjdHVhbCByb3dzPTEwIGxvb3Bz PU4pCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMSA8IDEwKQotICAgICAg ICAgLT4gIE1lbW9pemUgKGFjdHVhbCByb3dzPTIgbG9vcHM9TikKKyAgICAgICAgIC0+ICBN ZW1vaXplIChhY3R1YWwgcm93cz0yLjAwIGxvb3BzPU4pCiAgICAgICAgICAgICAgICBDYWNo ZSBLZXk6IHQxLnR3bwogICAgICAgICAgICAgICAgQ2FjaGUgTW9kZTogYmluYXJ5CiAgICAg ICAgICAgICAgICBIaXRzOiA4ICBNaXNzZXM6IDIgIEV2aWN0aW9uczogWmVybyAgT3ZlcmZs b3dzOiAwICBNZW1vcnkgVXNhZ2U6IE5rQgotICAgICAgICAgICAgICAgLT4gIFN1YnF1ZXJ5 IFNjYW4gb24gdDIgKGFjdHVhbCByb3dzPTIgbG9vcHM9TikKKyAgICAgICAgICAgICAgIC0+ ICBTdWJxdWVyeSBTY2FuIG9uIHQyIChhY3R1YWwgcm93cz0yLjAwIGxvb3BzPU4pCiAgICAg ICAgICAgICAgICAgICAgICBGaWx0ZXI6ICh0MS50d28gPSB0Mi50d28pCiAgICAgICAgICAg ICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiAyCi0gICAgICAgICAgICAgICAg ICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsxIHQyXzEg KGFjdHVhbCByb3dzPTQgbG9vcHM9TikKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdDJfMSAoYWN0dWFsIHJvd3M9 NC4wMCBsb29wcz1OKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KHVuaXF1ZTEgPCA0KQogKDEzIHJvd3MpCiAKQEAgLTEzNCwxOCArMTM0LDE4IEBAIFNFTEVD VCBleHBsYWluX21lbW9pemUoJwogU0VMRUNUIENPVU5UKCopLCBBVkcodDEudHdlbnR5KSBG Uk9NIHRlbmsxIHQxIExFRlQgSk9JTgogTEFURVJBTCAoU0VMRUNUIHQxLnR3bysxIEFTIGMx LCB0Mi51bmlxdWUxIEFTIGMyIEZST00gdGVuazEgdDIpIHMgT04gVFJVRQogV0hFUkUgcy5j MSA9IHMuYzIgQU5EIHQxLnVuaXF1ZTEgPCAxMDAwOycsIGZhbHNlKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9tZW1vaXplICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4 cGxhaW5fbWVtb2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBZ2dyZWdhdGUg KGFjdHVhbCByb3dzPTEgbG9vcHM9TikKICAgIC0+ICBOZXN0ZWQgTG9vcCAoYWN0dWFsIHJv d3M9MTAwMCBsb29wcz1OKQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsxIHQxIChh Y3R1YWwgcm93cz0xMDAwIGxvb3BzPU4pCiAgICAgICAgICAgICAgICBGaWx0ZXI6ICh1bmlx dWUxIDwgMTAwMCkKICAgICAgICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDkw MDAKLSAgICAgICAgIC0+ICBNZW1vaXplIChhY3R1YWwgcm93cz0xIGxvb3BzPU4pCisgICAg ICAgICAtPiAgTWVtb2l6ZSAoYWN0dWFsIHJvd3M9MS4wMCBsb29wcz1OKQogICAgICAgICAg ICAgICAgQ2FjaGUgS2V5OiAodDEudHdvICsgMSkKICAgICAgICAgICAgICAgIENhY2hlIE1v ZGU6IGJpbmFyeQogICAgICAgICAgICAgICAgSGl0czogOTk4ICBNaXNzZXM6IDIgIEV2aWN0 aW9uczogWmVybyAgT3ZlcmZsb3dzOiAwICBNZW1vcnkgVXNhZ2U6IE5rQgotICAgICAgICAg ICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9uIHRlbmsx IHQyIChhY3R1YWwgcm93cz0xIGxvb3BzPU4pCisgICAgICAgICAgICAgICAtPiAgSW5kZXgg T25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdDIgKGFjdHVhbCByb3dz PTEuMDAgbG9vcHM9TikKICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKCh0MS50d28g KyAxKSA9IHVuaXF1ZTEpCiAgICAgICAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkg RmlsdGVyOiA5OTk5CiAgICAgICAgICAgICAgICAgICAgICBIZWFwIEZldGNoZXM6IE4KQEAg LTE3MywxMSArMTczLDExIEBAIFdIRVJFIHMuYzEgPSBzLmMyIEFORCB0MS51bmlxdWUxIDwg MTAwMDsnLCBmYWxzZSk7CiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgdDEgKGFj dHVhbCByb3dzPTEwMDAgbG9vcHM9TikKICAgICAgICAgICAgICAgIEZpbHRlcjogKHVuaXF1 ZTEgPCAxMDAwKQogICAgICAgICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogOTAw MAotICAgICAgICAgLT4gIE1lbW9pemUgKGFjdHVhbCByb3dzPTEgbG9vcHM9TikKKyAgICAg ICAgIC0+ICBNZW1vaXplIChhY3R1YWwgcm93cz0xLjAwIGxvb3BzPU4pCiAgICAgICAgICAg ICAgICBDYWNoZSBLZXk6IHQxLnR3bywgdDEudHdlbnR5CiAgICAgICAgICAgICAgICBDYWNo ZSBNb2RlOiBiaW5hcnkKICAgICAgICAgICAgICAgIEhpdHM6IDk4MCAgTWlzc2VzOiAyMCAg RXZpY3Rpb25zOiBaZXJvICBPdmVyZmxvd3M6IDAgIE1lbW9yeSBVc2FnZTogTmtCCi0gICAg ICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgdDIgKGFjdHVhbCByb3dzPTEgbG9v cHM9TikKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSB0MiAoYWN0dWFs IHJvd3M9MS4wMCBsb29wcz1OKQogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKHQx LnR3ZW50eSA9IHVuaXF1ZTEpIEFORCAodDEudHdvID0gdHdvKSkKICAgICAgICAgICAgICAg ICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDk5OTkKICgxMiByb3dzKQpAQCAtMjA3 LDE1ICsyMDcsMTUgQEAgVkFDVVVNIEFOQUxZWkUgZXhwcl9rZXk7CiBTRUxFQ1QgZXhwbGFp bl9tZW1vaXplKCcKIFNFTEVDVCAqIEZST00gZXhwcl9rZXkgdDEgSU5ORVIgSk9JTiBleHBy X2tleSB0MgogT04gdDEueCA9IHQyLnQ6Om51bWVyaWMgQU5EIHQxLnQ6Om51bWVyaWMgPSB0 Mi54OycsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXhwbGFpbl9tZW1vaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fbWVtb2l6ZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9vcCAoYWN0dWFsIHJvd3M9ODAgbG9vcHM9TikK ICAgIC0+ICBTZXEgU2NhbiBvbiBleHByX2tleSB0MSAoYWN0dWFsIHJvd3M9NDAgbG9vcHM9 TikKLSAgIC0+ICBNZW1vaXplIChhY3R1YWwgcm93cz0yIGxvb3BzPU4pCisgICAtPiAgTWVt b2l6ZSAoYWN0dWFsIHJvd3M9Mi4wMCBsb29wcz1OKQogICAgICAgICAgQ2FjaGUgS2V5OiB0 MS54LCAodDEudCk6Om51bWVyaWMKICAgICAgICAgIENhY2hlIE1vZGU6IGxvZ2ljYWwKICAg ICAgICAgIEhpdHM6IDIwICBNaXNzZXM6IDIwICBFdmljdGlvbnM6IFplcm8gIE92ZXJmbG93 czogMCAgTWVtb3J5IFVzYWdlOiBOa0IKLSAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4g dXNpbmcgZXhwcl9rZXlfaWR4X3hfdCBvbiBleHByX2tleSB0MiAoYWN0dWFsIHJvd3M9MiBs b29wcz1OKQorICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBleHByX2tleV9p ZHhfeF90IG9uIGV4cHJfa2V5IHQyIChhY3R1YWwgcm93cz0yLjAwIGxvb3BzPU4pCiAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoeCA9ICh0MS50KTo6bnVtZXJpYykKICAgICAgICAg ICAgICAgIEZpbHRlcjogKHQxLnggPSAodCk6Om51bWVyaWMpCiAgICAgICAgICAgICAgICBI ZWFwIEZldGNoZXM6IE4KQEAgLTIzMiwxOCArMjMyLDE4IEBAIFNFTEVDVCBleHBsYWluX21l bW9pemUoJwogU0VMRUNUIENPVU5UKCopLEFWRyh0MS51bmlxdWUxKSBGUk9NIHRlbmsxIHQx CiBJTk5FUiBKT0lOIHRlbmsxIHQyIE9OIHQxLnVuaXF1ZTEgPSB0Mi50aG91c2FuZAogV0hF UkUgdDIudW5pcXVlMSA8IDEyMDA7JywgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4cGxhaW5fbWVtb2l6ZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX21lbW9p emUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQWdncmVnYXRlIChhY3R1YWwgcm93 cz0xIGxvb3BzPU4pCiAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTEyMDAgbG9v cHM9TikKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSB0MiAoYWN0dWFsIHJvd3M9 MTIwMCBsb29wcz1OKQogICAgICAgICAgICAgICAgRmlsdGVyOiAodW5pcXVlMSA8IDEyMDAp CiAgICAgICAgICAgICAgICBSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiA4ODAwCi0gICAgICAg ICAtPiAgTWVtb2l6ZSAoYWN0dWFsIHJvd3M9MSBsb29wcz1OKQorICAgICAgICAgLT4gIE1l bW9pemUgKGFjdHVhbCByb3dzPTEuMDAgbG9vcHM9TikKICAgICAgICAgICAgICAgIENhY2hl IEtleTogdDIudGhvdXNhbmQKICAgICAgICAgICAgICAgIENhY2hlIE1vZGU6IGxvZ2ljYWwK ICAgICAgICAgICAgICAgIEhpdHM6IE4gIE1pc3NlczogTiAgRXZpY3Rpb25zOiBOICBPdmVy Zmxvd3M6IDAgIE1lbW9yeSBVc2FnZTogTmtCCi0gICAgICAgICAgICAgICAtPiAgSW5kZXgg T25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTEgb24gdGVuazEgdDEgKGFjdHVhbCByb3dz PTEgbG9vcHM9TikKKyAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcg dGVuazFfdW5pcXVlMSBvbiB0ZW5rMSB0MSAoYWN0dWFsIHJvd3M9MS4wMCBsb29wcz1OKQog ICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSB0Mi50aG91c2Fu ZCkKICAgICAgICAgICAgICAgICAgICAgIEhlYXAgRmV0Y2hlczogTgogKDEyIHJvd3MpCkBA IC0yNjEsNyArMjYxLDcgQEAgU0VMRUNUICogRlJPTSBmbHQgZjEgSU5ORVIgSk9JTiBmbHQg ZjIgT04gZjEuZiA9IGYyLmY7JywgZmFsc2UpOwogIE5lc3RlZCBMb29wIChhY3R1YWwgcm93 cz00IGxvb3BzPU4pCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIGZsdF9mX2lkeCBv biBmbHQgZjEgKGFjdHVhbCByb3dzPTIgbG9vcHM9TikKICAgICAgICAgIEhlYXAgRmV0Y2hl czogTgotICAgLT4gIE1lbW9pemUgKGFjdHVhbCByb3dzPTIgbG9vcHM9TikKKyAgIC0+ICBN ZW1vaXplIChhY3R1YWwgcm93cz0yLjAwIGxvb3BzPU4pCiAgICAgICAgICBDYWNoZSBLZXk6 IGYxLmYKICAgICAgICAgIENhY2hlIE1vZGU6IGxvZ2ljYWwKICAgICAgICAgIEhpdHM6IDEg IE1pc3NlczogMSAgRXZpY3Rpb25zOiBaZXJvICBPdmVyZmxvd3M6IDAgIE1lbW9yeSBVc2Fn ZTogTmtCCkBAIC0yNzMsMTYgKzI3MywxNiBAQCBTRUxFQ1QgKiBGUk9NIGZsdCBmMSBJTk5F UiBKT0lOIGZsdCBmMiBPTiBmMS5mID0gZjIuZjsnLCBmYWxzZSk7CiAtLSBFbnN1cmUgbWVt b2l6ZSBvcGVyYXRlcyBpbiBiaW5hcnkgbW9kZQogU0VMRUNUIGV4cGxhaW5fbWVtb2l6ZSgn CiBTRUxFQ1QgKiBGUk9NIGZsdCBmMSBJTk5FUiBKT0lOIGZsdCBmMiBPTiBmMS5mID49IGYy LmY7JywgZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWlu X21lbW9pemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFp bl9tZW1vaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wIChhY3R1YWwgcm93cz00IGxvb3Bz PU4pCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIGZsdF9mX2lkeCBvbiBmbHQgZjEg KGFjdHVhbCByb3dzPTIgbG9vcHM9TikKICAgICAgICAgIEhlYXAgRmV0Y2hlczogTgotICAg LT4gIE1lbW9pemUgKGFjdHVhbCByb3dzPTIgbG9vcHM9TikKKyAgIC0+ICBNZW1vaXplIChh Y3R1YWwgcm93cz0yLjAwIGxvb3BzPU4pCiAgICAgICAgICBDYWNoZSBLZXk6IGYxLmYKICAg ICAgICAgIENhY2hlIE1vZGU6IGJpbmFyeQogICAgICAgICAgSGl0czogMCAgTWlzc2VzOiAy ICBFdmljdGlvbnM6IFplcm8gIE92ZXJmbG93czogMCAgTWVtb3J5IFVzYWdlOiBOa0IKLSAg ICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgZmx0X2ZfaWR4IG9uIGZsdCBmMiAo YWN0dWFsIHJvd3M9MiBsb29wcz1OKQorICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1 c2luZyBmbHRfZl9pZHggb24gZmx0IGYyIChhY3R1YWwgcm93cz0yLjAwIGxvb3BzPU4pCiAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoZiA8PSBmMS5mKQogICAgICAgICAgICAgICAg SGVhcCBGZXRjaGVzOiBOCiAoMTAgcm93cykKQEAgLTMwMCwzMiArMzAwLDMyIEBAIEFOQUxZ WkUgc3RydGVzdDsKIC0tIEVuc3VyZSB3ZSBnZXQgMyBoaXRzIGFuZCAzIG1pc3NlcwogU0VM RUNUIGV4cGxhaW5fbWVtb2l6ZSgnCiBTRUxFQ1QgKiBGUk9NIHN0cnRlc3QgczEgSU5ORVIg Sk9JTiBzdHJ0ZXN0IHMyIE9OIHMxLm4gPj0gczIubjsnLCBmYWxzZSk7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX21lbW9pemUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fbWVtb2l6ZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTI0IGxvb3BzPU4pCiAgICAtPiAg U2VxIFNjYW4gb24gc3RydGVzdCBzMSAoYWN0dWFsIHJvd3M9NiBsb29wcz1OKQogICAgICAg ICAgRGlzYWJsZWQ6IHRydWUKLSAgIC0+ICBNZW1vaXplIChhY3R1YWwgcm93cz00IGxvb3Bz PU4pCisgICAtPiAgTWVtb2l6ZSAoYWN0dWFsIHJvd3M9NC4wMCBsb29wcz1OKQogICAgICAg ICAgQ2FjaGUgS2V5OiBzMS5uCiAgICAgICAgICBDYWNoZSBNb2RlOiBiaW5hcnkKICAgICAg ICAgIEhpdHM6IDMgIE1pc3NlczogMyAgRXZpY3Rpb25zOiBaZXJvICBPdmVyZmxvd3M6IDAg IE1lbW9yeSBVc2FnZTogTmtCCi0gICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBzdHJ0 ZXN0X25faWR4IG9uIHN0cnRlc3QgczIgKGFjdHVhbCByb3dzPTQgbG9vcHM9TikKKyAgICAg ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHN0cnRlc3Rfbl9pZHggb24gc3RydGVzdCBzMiAo YWN0dWFsIHJvd3M9NC4wMCBsb29wcz1OKQogICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KG4gPD0gczEubikKICg5IHJvd3MpCiAKIC0tIEVuc3VyZSB3ZSBnZXQgMyBoaXRzIGFuZCAz IG1pc3NlcwogU0VMRUNUIGV4cGxhaW5fbWVtb2l6ZSgnCiBTRUxFQ1QgKiBGUk9NIHN0cnRl c3QgczEgSU5ORVIgSk9JTiBzdHJ0ZXN0IHMyIE9OIHMxLnQgPj0gczIudDsnLCBmYWxzZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX21lbW9pemUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fbWVt b2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTI0IGxvb3Bz PU4pCiAgICAtPiAgU2VxIFNjYW4gb24gc3RydGVzdCBzMSAoYWN0dWFsIHJvd3M9NiBsb29w cz1OKQogICAgICAgICAgRGlzYWJsZWQ6IHRydWUKLSAgIC0+ICBNZW1vaXplIChhY3R1YWwg cm93cz00IGxvb3BzPU4pCisgICAtPiAgTWVtb2l6ZSAoYWN0dWFsIHJvd3M9NC4wMCBsb29w cz1OKQogICAgICAgICAgQ2FjaGUgS2V5OiBzMS50CiAgICAgICAgICBDYWNoZSBNb2RlOiBi aW5hcnkKICAgICAgICAgIEhpdHM6IDMgIE1pc3NlczogMyAgRXZpY3Rpb25zOiBaZXJvICBP dmVyZmxvd3M6IDAgIE1lbW9yeSBVc2FnZTogTmtCCi0gICAgICAgICAtPiAgSW5kZXggU2Nh biB1c2luZyBzdHJ0ZXN0X3RfaWR4IG9uIHN0cnRlc3QgczIgKGFjdHVhbCByb3dzPTQgbG9v cHM9TikKKyAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHN0cnRlc3RfdF9pZHggb24g c3RydGVzdCBzMiAoYWN0dWFsIHJvd3M9NC4wMCBsb29wcz1OKQogICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKHQgPD0gczEudCkKICg5IHJvd3MpCiAKQEAgLTM0OCw3ICszNDgsNyBA QCBTRUxFQ1QgKiBGUk9NIHBydCB0MSBJTk5FUiBKT0lOIHBydCB0MiBPTiB0MS5hID0gdDIu YTsnLCBmYWxzZSk7CiAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTE2IGxvb3Bz PU4pCiAgICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIGlwcnRfcDFfYSBvbiBw cnRfcDEgdDFfMSAoYWN0dWFsIHJvd3M9NCBsb29wcz1OKQogICAgICAgICAgICAgICAgSGVh cCBGZXRjaGVzOiBOCi0gICAgICAgICAtPiAgTWVtb2l6ZSAoYWN0dWFsIHJvd3M9NCBsb29w cz1OKQorICAgICAgICAgLT4gIE1lbW9pemUgKGFjdHVhbCByb3dzPTQuMDAgbG9vcHM9TikK ICAgICAgICAgICAgICAgIENhY2hlIEtleTogdDFfMS5hCiAgICAgICAgICAgICAgICBDYWNo ZSBNb2RlOiBsb2dpY2FsCiAgICAgICAgICAgICAgICBIaXRzOiAzICBNaXNzZXM6IDEgIEV2 aWN0aW9uczogWmVybyAgT3ZlcmZsb3dzOiAwICBNZW1vcnkgVXNhZ2U6IE5rQgpAQCAtMzU4 LDcgKzM1OCw3IEBAIFNFTEVDVCAqIEZST00gcHJ0IHQxIElOTkVSIEpPSU4gcHJ0IHQyIE9O IHQxLmEgPSB0Mi5hOycsIGZhbHNlKTsKICAgIC0+ICBOZXN0ZWQgTG9vcCAoYWN0dWFsIHJv d3M9MTYgbG9vcHM9TikKICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgaXBy dF9wMl9hIG9uIHBydF9wMiB0MV8yIChhY3R1YWwgcm93cz00IGxvb3BzPU4pCiAgICAgICAg ICAgICAgICBIZWFwIEZldGNoZXM6IE4KLSAgICAgICAgIC0+ICBNZW1vaXplIChhY3R1YWwg cm93cz00IGxvb3BzPU4pCisgICAgICAgICAtPiAgTWVtb2l6ZSAoYWN0dWFsIHJvd3M9NC4w MCBsb29wcz1OKQogICAgICAgICAgICAgICAgQ2FjaGUgS2V5OiB0MV8yLmEKICAgICAgICAg ICAgICAgIENhY2hlIE1vZGU6IGxvZ2ljYWwKICAgICAgICAgICAgICAgIEhpdHM6IDMgIE1p c3NlczogMSAgRXZpY3Rpb25zOiBaZXJvICBPdmVyZmxvd3M6IDAgIE1lbW9yeSBVc2FnZTog TmtCCkBAIC0zNzgsNyArMzc4LDcgQEAgT04gdDEuYSA9IHQyLmE7JywgZmFsc2UpOwogIE5l c3RlZCBMb29wIChhY3R1YWwgcm93cz0xNiBsb29wcz1OKQogICAgLT4gIEluZGV4IE9ubHkg U2NhbiB1c2luZyBpcHJ0X3AxX2Egb24gcHJ0X3AxIHQxIChhY3R1YWwgcm93cz00IGxvb3Bz PU4pCiAgICAgICAgICBIZWFwIEZldGNoZXM6IE4KLSAgIC0+ICBNZW1vaXplIChhY3R1YWwg cm93cz00IGxvb3BzPU4pCisgICAtPiAgTWVtb2l6ZSAoYWN0dWFsIHJvd3M9NC4wMCBsb29w cz1OKQogICAgICAgICAgQ2FjaGUgS2V5OiB0MS5hCiAgICAgICAgICBDYWNoZSBNb2RlOiBs b2dpY2FsCiAgICAgICAgICBIaXRzOiAzICBNaXNzZXM6IDEgIEV2aWN0aW9uczogWmVybyAg T3ZlcmZsb3dzOiAwICBNZW1vcnkgVXNhZ2U6IE5rQgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CmluZGV4IDZmODBiNjJhM2IuLjFkYmU2 ZmY1NGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9u X3BydW5lLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9w cnVuZS5vdXQKQEAgLTIzNjcsNyArMjM2Nyw3IEBAIGJlZ2luCiAgICAgICAgICAgICAkMSkK ICAgICBsb29wCiAgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxuLCAnV29ya2VycyBM YXVuY2hlZDogXGQrJywgJ1dvcmtlcnMgTGF1bmNoZWQ6IE4nKTsKLSAgICAgICAgbG4gOj0g cmVnZXhwX3JlcGxhY2UobG4sICdhY3R1YWwgcm93cz1cZCsgbG9vcHM9XGQrJywgJ2FjdHVh bCByb3dzPU4gbG9vcHM9TicpOworICAgICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwg J2FjdHVhbCByb3dzPVxkKyg/OlwuXGQrKT8gbG9vcHM9XGQrJywgJ2FjdHVhbCByb3dzPU4g bG9vcHM9TicpOwogICAgICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwgJ1Jvd3MgUmVt b3ZlZCBieSBGaWx0ZXI6IFxkKycsICdSb3dzIFJlbW92ZWQgYnkgRmlsdGVyOiBOJyk7CiAg ICAgICAgIHJldHVybiBuZXh0IGxuOwogICAgIGVuZCBsb29wOwpAQCAtMjk0MCw3ICsyOTQw LDcgQEAgdXBkYXRlIGFiX2ExIHNldCBiID0gMyBmcm9tIGFiX2EyIHdoZXJlIGFiX2EyLmIg PSAoc2VsZWN0IDEpOycpOwogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGFiX2Ex X2IxIGFiX2ExXzEgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBhYl9hMV9iMiBhYl9hMV8yIChhY3R1YWwgcm93cz0xIGxvb3BzPTEp CiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gYWJfYTFfYjMgYWJfYTFfMyAoYWN0 dWFsIHJvd3M9MSBsb29wcz0xKQotICAgICAgICAgLT4gIE1hdGVyaWFsaXplIChhY3R1YWwg cm93cz0xIGxvb3BzPTMpCisgICAgICAgICAtPiAgTWF0ZXJpYWxpemUgKGFjdHVhbCByb3dz PTEuMDAgbG9vcHM9MykKICAgICAgICAgICAgICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKICAgICAgICAgICAgICAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dz PTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBhYl9h Ml9iMSBhYl9hMl8xIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCkBAIC0yOTgzLDEyICsyOTgz LDEyIEBAIHNldCBlbmFibGVfaGFzaGpvaW4gPSBvZmY7CiBzZXQgZW5hYmxlX21lcmdlam9p biA9IG9mZjsKIGV4cGxhaW4gKGFuYWx5emUsIGNvc3RzIG9mZiwgc3VtbWFyeSBvZmYsIHRp bWluZyBvZmYsIGJ1ZmZlcnMgb2ZmKQogc2VsZWN0ICogZnJvbSB0YmwxIGpvaW4gdHBydCBv biB0YmwxLmNvbDEgPiB0cHJ0LmNvbDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIE5lc3RlZCBMb29wIChhY3R1YWwgcm93cz02IGxvb3BzPTEpCiAgICAt PiAgU2VxIFNjYW4gb24gdGJsMSAoYWN0dWFsIHJvd3M9MiBsb29wcz0xKQotICAgLT4gIEFw cGVuZCAoYWN0dWFsIHJvd3M9MyBsb29wcz0yKQotICAgICAgICAgLT4gIEluZGV4IFNjYW4g dXNpbmcgdHBydDFfaWR4IG9uIHRwcnRfMSAoYWN0dWFsIHJvd3M9MiBsb29wcz0yKQorICAg LT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9My4wMCBsb29wcz0yKQorICAgICAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgdHBydDFfaWR4IG9uIHRwcnRfMSAoYWN0dWFsIHJvd3M9Mi4wMCBs b29wcz0yKQogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPCB0YmwxLmNvbDEp CiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Ml9pZHggb24gdHBydF8yIChh Y3R1YWwgcm93cz0yIGxvb3BzPTEpCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29s MSA8IHRibDEuY29sMSkKQEAgLTMwMDQsMTQgKzMwMDQsMTQgQEAgc2VsZWN0ICogZnJvbSB0 YmwxIGpvaW4gdHBydCBvbiB0YmwxLmNvbDEgPiB0cHJ0LmNvbDE7CiAKIGV4cGxhaW4gKGFu YWx5emUsIGNvc3RzIG9mZiwgc3VtbWFyeSBvZmYsIHRpbWluZyBvZmYsIGJ1ZmZlcnMgb2Zm KQogc2VsZWN0ICogZnJvbSB0YmwxIGpvaW4gdHBydCBvbiB0YmwxLmNvbDEgPSB0cHJ0LmNv bDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBM b29wIChhY3R1YWwgcm93cz0yIGxvb3BzPTEpCiAgICAtPiAgU2VxIFNjYW4gb24gdGJsMSAo YWN0dWFsIHJvd3M9MiBsb29wcz0xKQotICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MSBs b29wcz0yKQorICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MS4wMCBsb29wcz0yKQogICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDFfaWR4IG9uIHRwcnRfMSAobmV2ZXIg ZXhlY3V0ZWQpCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA9IHRibDEuY29s MSkKLSAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQyX2lkeCBvbiB0cHJ0XzIg KGFjdHVhbCByb3dzPTEgbG9vcHM9MikKKyAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5n IHRwcnQyX2lkeCBvbiB0cHJ0XzIgKGFjdHVhbCByb3dzPTEuMDAgbG9vcHM9MikKICAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5jb2wxKQogICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgdHBydDNfaWR4IG9uIHRwcnRfMyAobmV2ZXIgZXhlY3V0ZWQp CiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA9IHRibDEuY29sMSkKQEAgLTMw NDksMTYgKzMwNDksMTYgQEAgb3JkZXIgYnkgdGJsMS5jb2wxLCB0cHJ0LmNvbDE7CiBpbnNl cnQgaW50byB0YmwxIHZhbHVlcyAoMTAwMSksICgxMDEwKSwgKDEwMTEpOwogZXhwbGFpbiAo YW5hbHl6ZSwgY29zdHMgb2ZmLCBzdW1tYXJ5IG9mZiwgdGltaW5nIG9mZiwgYnVmZmVycyBv ZmYpCiBzZWxlY3QgKiBmcm9tIHRibDEgaW5uZXIgam9pbiB0cHJ0IG9uIHRibDEuY29sMSA+ IHRwcnQuY29sMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg TmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTIzIGxvb3BzPTEpCiAgICAtPiAgU2VxIFNjYW4g b24gdGJsMSAoYWN0dWFsIHJvd3M9NSBsb29wcz0xKQotICAgLT4gIEFwcGVuZCAoYWN0dWFs IHJvd3M9NSBsb29wcz01KQotICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDFf aWR4IG9uIHRwcnRfMSAoYWN0dWFsIHJvd3M9MiBsb29wcz01KQorICAgLT4gIEFwcGVuZCAo YWN0dWFsIHJvd3M9NC42MCBsb29wcz01KQorICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNp bmcgdHBydDFfaWR4IG9uIHRwcnRfMSAoYWN0dWFsIHJvd3M9Mi4wMCBsb29wcz01KQogICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPCB0YmwxLmNvbDEpCi0gICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Ml9pZHggb24gdHBydF8yIChhY3R1YWwgcm93cz0z IGxvb3BzPTQpCisgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Ml9pZHggb24g dHBydF8yIChhY3R1YWwgcm93cz0yLjc1IGxvb3BzPTQpCiAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoY29sMSA8IHRibDEuY29sMSkKLSAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIHRwcnQzX2lkeCBvbiB0cHJ0XzMgKGFjdHVhbCByb3dzPTEgbG9vcHM9MikKKyAgICAg ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQzX2lkeCBvbiB0cHJ0XzMgKGFjdHVhbCBy b3dzPTEuMDAgbG9vcHM9MikKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxIDwg dGJsMS5jb2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDRfaWR4IG9u IHRwcnRfNCAobmV2ZXIgZXhlY3V0ZWQpCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo Y29sMSA8IHRibDEuY29sMSkKQEAgLTMwNzAsMTYgKzMwNzAsMTYgQEAgc2VsZWN0ICogZnJv bSB0YmwxIGlubmVyIGpvaW4gdHBydCBvbiB0YmwxLmNvbDEgPiB0cHJ0LmNvbDE7CiAKIGV4 cGxhaW4gKGFuYWx5emUsIGNvc3RzIG9mZiwgc3VtbWFyeSBvZmYsIHRpbWluZyBvZmYsIGJ1 ZmZlcnMgb2ZmKQogc2VsZWN0ICogZnJvbSB0YmwxIGlubmVyIGpvaW4gdHBydCBvbiB0Ymwx LmNvbDEgPSB0cHJ0LmNvbDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIE5lc3RlZCBMb29wIChhY3R1YWwgcm93cz0zIGxvb3BzPTEpCiAgICAtPiAgU2Vx IFNjYW4gb24gdGJsMSAoYWN0dWFsIHJvd3M9NSBsb29wcz0xKQotICAgLT4gIEFwcGVuZCAo YWN0dWFsIHJvd3M9MSBsb29wcz01KQorICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MC42 MCBsb29wcz01KQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDFfaWR4IG9u IHRwcnRfMSAobmV2ZXIgZXhlY3V0ZWQpCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo Y29sMSA9IHRibDEuY29sMSkKLSAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQy X2lkeCBvbiB0cHJ0XzIgKGFjdHVhbCByb3dzPTEgbG9vcHM9MikKKyAgICAgICAgIC0+ICBJ bmRleCBTY2FuIHVzaW5nIHRwcnQyX2lkeCBvbiB0cHJ0XzIgKGFjdHVhbCByb3dzPTEuMDAg bG9vcHM9MikKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5jb2wx KQotICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDNfaWR4IG9uIHRwcnRfMyAo YWN0dWFsIHJvd3M9MCBsb29wcz0zKQorICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg dHBydDNfaWR4IG9uIHRwcnRfMyAoYWN0dWFsIHJvd3M9MC4zMyBsb29wcz0zKQogICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPSB0YmwxLmNvbDEpCiAgICAgICAgICAtPiAg SW5kZXggU2NhbiB1c2luZyB0cHJ0NF9pZHggb24gdHBydF80IChuZXZlciBleGVjdXRlZCkK ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5jb2wxKQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3RfcGFyYWxsZWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3RfcGFyYWxsZWwub3V0CmluZGV4IGE4 MDkwMzY0NTMuLjQ3MzJhZDZiZmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2VsZWN0X3BhcmFsbGVsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3NlbGVjdF9wYXJhbGxlbC5vdXQKQEAgLTU4MywxNyArNTgzLDE3IEBAIGFsdGVyIHRh YmxlIHRlbmsyIHNldCAocGFyYWxsZWxfd29ya2VycyA9IDApOwogZXhwbGFpbiAoYW5hbHl6 ZSwgdGltaW5nIG9mZiwgc3VtbWFyeSBvZmYsIGNvc3RzIG9mZiwgYnVmZmVycyBvZmYpCiAg ICBzZWxlY3QgY291bnQoKikgZnJvbSB0ZW5rMSwgdGVuazIgd2hlcmUgdGVuazEuaHVuZHJl ZCA+IDEKICAgICAgICAgYW5kIHRlbmsyLnRob3VzYW5kPTA7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFnZ3JlZ2F0ZSAoYWN0dWFsIHJvd3M9MSBsb29w cz0xKQogICAgLT4gIE5lc3RlZCBMb29wIChhY3R1YWwgcm93cz05ODAwMCBsb29wcz0xKQog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsyIChhY3R1YWwgcm93cz0xMCBsb29wcz0x KQogICAgICAgICAgICAgICAgRmlsdGVyOiAodGhvdXNhbmQgPSAwKQogICAgICAgICAgICAg ICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogOTk5MAotICAgICAgICAgLT4gIEdhdGhlciAo YWN0dWFsIHJvd3M9OTgwMCBsb29wcz0xMCkKKyAgICAgICAgIC0+ICBHYXRoZXIgKGFjdHVh bCByb3dzPTk4MDAuMDAgbG9vcHM9MTApCiAgICAgICAgICAgICAgICBXb3JrZXJzIFBsYW5u ZWQ6IDQKICAgICAgICAgICAgICAgIFdvcmtlcnMgTGF1bmNoZWQ6IDQKLSAgICAgICAgICAg ICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB0ZW5rMSAoYWN0dWFsIHJvd3M9MTk2MCBs b29wcz01MCkKKyAgICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB0ZW5r MSAoYWN0dWFsIHJvd3M9MTk2MC4wMCBsb29wcz01MCkKICAgICAgICAgICAgICAgICAgICAg IEZpbHRlcjogKGh1bmRyZWQgPiAxKQogICAgICAgICAgICAgICAgICAgICAgUm93cyBSZW1v dmVkIGJ5IEZpbHRlcjogNDAKICgxMSByb3dzKQpAQCAtNjE3LDIxICs2MTcsMjEgQEAgYmVn aW4KIGVuZDsKICQkOwogc2VsZWN0ICogZnJvbSBleHBsYWluX3BhcmFsbGVsX3NvcnRfc3Rh dHMoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9wYXJhbGxlbF9zb3J0X3N0 YXRzICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fcGFyYWxsZWxfc29ydF9zdGF0cyAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVk IExvb3AgTGVmdCBKb2luIChhY3R1YWwgcm93cz0zMDAwMCBsb29wcz0xKQogICAgLT4gIFZh bHVlcyBTY2FuIG9uICIqVkFMVUVTKiIgKGFjdHVhbCByb3dzPTMgbG9vcHM9MSkKLSAgIC0+ ICBHYXRoZXIgTWVyZ2UgKGFjdHVhbCByb3dzPTEwMDAwIGxvb3BzPTMpCisgICAtPiAgR2F0 aGVyIE1lcmdlIChhY3R1YWwgcm93cz0xMDAwMC4wMCBsb29wcz0zKQogICAgICAgICAgV29y a2VycyBQbGFubmVkOiA0CiAgICAgICAgICBXb3JrZXJzIExhdW5jaGVkOiA0Ci0gICAgICAg ICAtPiAgU29ydCAoYWN0dWFsIHJvd3M9MjAwMCBsb29wcz0xNSkKKyAgICAgICAgIC0+ICBT b3J0IChhY3R1YWwgcm93cz0yMDAwLjAwIGxvb3BzPTE1KQogICAgICAgICAgICAgICAgU29y dCBLZXk6IHRlbmsxLnRlbgogICAgICAgICAgICAgICAgU29ydCBNZXRob2Q6IHF1aWNrc29y dCAgTWVtb3J5OiB4eHgKICAgICAgICAgICAgICAgIFdvcmtlciAwOiAgU29ydCBNZXRob2Q6 IHF1aWNrc29ydCAgTWVtb3J5OiB4eHgKICAgICAgICAgICAgICAgIFdvcmtlciAxOiAgU29y dCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiB4eHgKICAgICAgICAgICAgICAgIFdvcmtl ciAyOiAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiB4eHgKICAgICAgICAgICAg ICAgIFdvcmtlciAzOiAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiB4eHgKLSAg ICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB0ZW5rMSAoYWN0dWFsIHJv d3M9MjAwMCBsb29wcz0xNSkKKyAgICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2Nh biBvbiB0ZW5rMSAoYWN0dWFsIHJvd3M9MjAwMC4wMCBsb29wcz0xNSkKICAgICAgICAgICAg ICAgICAgICAgIEZpbHRlcjogKHRlbiA8IDEwMCkKICgxNCByb3dzKQogCkBAIC0xMTcwLDEy ICsxMTcwLDEyIEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKIFNBVkVQT0lOVCBzZXR0aW5nczsK IFNFVCBMT0NBTCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSA9IDE7CiBFWFBMQUlOIChhbmFseXpl LCB0aW1pbmcgb2ZmLCBzdW1tYXJ5IG9mZiwgY29zdHMgb2ZmLCBidWZmZXJzIG9mZikgU0VM RUNUICogRlJPTSB0ZW5rMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBHYXRoZXIgKGFjdHVhbCByb3dzPTEwMDAwIGxvb3BzPTEpCiAgICBXb3JrZXJz IFBsYW5uZWQ6IDQKICAgIFdvcmtlcnMgTGF1bmNoZWQ6IDQKLSAgIC0+ICBQYXJhbGxlbCBT ZXEgU2NhbiBvbiB0ZW5rMSAoYWN0dWFsIHJvd3M9MjAwMCBsb29wcz01KQorICAgLT4gIFBh cmFsbGVsIFNlcSBTY2FuIG9uIHRlbmsxIChhY3R1YWwgcm93cz0yMDAwLjAwIGxvb3BzPTUp CiAoNCByb3dzKQogCiBST0xMQkFDSyBUTyBTQVZFUE9JTlQgc2V0dGluZ3M7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbAppbmRleCA4NjYyMWRjZWMwLi42 YWFkMDIxNTZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25f cHJ1bmUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5z cWwKQEAgLTU4Niw3ICs1ODYsNyBAQCBiZWdpbgogICAgICAgICAgICAgJDEpCiAgICAgbG9v cAogICAgICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwgJ1dvcmtlcnMgTGF1bmNoZWQ6 IFxkKycsICdXb3JrZXJzIExhdW5jaGVkOiBOJyk7Ci0gICAgICAgIGxuIDo9IHJlZ2V4cF9y ZXBsYWNlKGxuLCAnYWN0dWFsIHJvd3M9XGQrIGxvb3BzPVxkKycsICdhY3R1YWwgcm93cz1O IGxvb3BzPU4nKTsKKyAgICAgICAgbG4gOj0gcmVnZXhwX3JlcGxhY2UobG4sICdhY3R1YWwg cm93cz1cZCsoPzpcLlxkKyk/IGxvb3BzPVxkKycsICdhY3R1YWwgcm93cz1OIGxvb3BzPU4n KTsKICAgICAgICAgbG4gOj0gcmVnZXhwX3JlcGxhY2UobG4sICdSb3dzIFJlbW92ZWQgYnkg RmlsdGVyOiBcZCsnLCAnUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogTicpOwogICAgICAgICBy ZXR1cm4gbmV4dCBsbjsKICAgICBlbmQgbG9vcDsKLS0gCjIuMzQuMQoK --------------hrs9PSwmyg9HhF0JOjXez0AQ--