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 1vk8Uf-00AHQ8-0o for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Jan 2026 22:22: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 1vk8Ud-005fh4-39 for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Jan 2026 22:22:04 +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 1vk8Ud-005fgv-1I for pgsql-hackers@lists.postgresql.org; Sun, 25 Jan 2026 22:22:03 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vk8Ub-00000000RhS-1Si6 for pgsql-hackers@lists.postgresql.org; Sun, 25 Jan 2026 22:22:03 +0000 Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-64d1ef53cf3so4981471a12.0 for ; Sun, 25 Jan 2026 14:22:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1769379721; x=1769984521; darn=lists.postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=4G8lDyz8cIqXa4xydTwxsmcY4gL1NWL7wxZjCoWrTc0=; b=dQpVHCapTSo6Tl8xe2q9tvL7FPRQIYeUi2JMsj4sxFiCzCsX7uklcTTsEZLWBG8odJ RktpYexW8YjNtc1l8Kwkz6BIwOMsrcGcAkwK2dl5u4653wq1NpVIvIylIg/102Lg/7ts WQKfR2xNCApz3SWBt6Okhi8hcHFZbkOfGnzRG2b4s8Lwdo2X173j3fEvzjhBNl3rvSNN kk/Z/88fj92FIJbabCqzK7K2a38fOGMHO092RhH0ONz1HgkIVmK2TeaMS2aJvUT2IXZN RhoqKX11oyztv9MYyNUrgEBCq2SWnW+7vDm/+lIIgt6fteeaZQGoTcu0UHbuKintQg8N BneQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769379721; x=1769984521; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4G8lDyz8cIqXa4xydTwxsmcY4gL1NWL7wxZjCoWrTc0=; b=GtsqAqD+S6L5GX+Qev5LgJWuGNJPkQgWCdZagh81CdPGNus0dRYMewhxS03SS9Vmki 7fmf309Isf91uCgVNW/a0UV4YyDD/bCU7BnpTQFoWmTByVuMgNO17CqbZLDuCv6fMBeH 630h32sgQ5rhKBdfDdRaUbqogMYgdd9m5fVGXS3p2GapFlp2NbQuGX3DrasEMJf65Usc ZhHsyrLtThKZcy3M84jVgdmGf/GsOPMfFBJpUdMPRRI3aKKk2rWzoskr7qEAgGugoy4I eTpgi/G+gC2Uj201E8mlBVOrmyrX+Rln/IbIGxN/oFFHXO/dvy6v89BfVjMee8pcS1Bf nvpA== X-Forwarded-Encrypted: i=1; AJvYcCUvuXzVTDu+8L+D4BwI1dkU/WS7Uygr7a1epAbcQyQxep7sLPmRk1Q36hScVan8KectMl5SyImIqe0J/vgD@lists.postgresql.org X-Gm-Message-State: AOJu0Yz+MZFV1RqdAvPtMYfq7+ieIkVez2QvwA1KLYz02D6ki4GHAblJ HHehwEbkS+NENyGQPY/SPu9ZYq8NB79h13Kfr7qS1CpTWbsQQLu4qc+B7Zn2icA9SAw= X-Gm-Gg: AZuq6aINHKJ66EVJDaHYHIm7+ITUqCB/7yS3korb2hBUYu9f824CN1IygANgapVNAXr YsbvymJiHFHrVMm2C0OT8NsL7lvnhC5WM3bVdC8RvYej2G77cEnxiKCIZDgKH1UJMA4YlJVjYO4 Rdg28BFgq/z1Dev+RPKXrszCADEez8fgUne8pi8f4ZVvt6VZkTDkZ5jb2UW5vt5DdenUmIYk0oE LstBhVlAA77Fxc0DmTCGWK5VoBxPxuRhnphRMI9XuyGQc9qnTBmBlBUrVGd2JX9Ot/HAHH3LhjV 7RlsQ7g5IKSV3fZi9TLENy5Kit+eLojmJmGmiAgIo87vxG7R/L7SL0oIjhOmov6H/0bjAkhlACv G4V+KDCjQIoww6sa6JcEpSnKiluKdpFVtTm7amQe13MoUr38MtTssPMiyONQyyuDSRPGnOSZ6Eb 6cBeHuwfaFnnEuROA7dGEiEKEa0Xxj1oo5whMIapqy74y9Ng== X-Received: by 2002:a05:6402:364a:b0:658:218b:3ae with SMTP id 4fb4d7f45d1cf-658706aa077mr1110746a12.2.1769379719847; Sun, 25 Jan 2026 14:21:59 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6584b92b98asm3945324a12.19.2026.01.25.14.21.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 25 Jan 2026 14:21:59 -0800 (PST) Content-Type: multipart/mixed; boundary=51e09d9ebbe4eb1961033892669fb326760aa84f93c891ab52f4a47ff870 Mime-Version: 1.0 Date: Sun, 25 Jan 2026 23:21:58 +0100 Message-Id: Cc: "Dave Cramer" , "Jacob Champion" , "Heikki Linnakangas" Subject: Re: Add GoAway protocol message for graceful but fast server shutdown/switchover To: "Jelte Fennema-Nio" , "PostgreSQL Hackers" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --51e09d9ebbe4eb1961033892669fb326760aa84f93c891ab52f4a47ff870 Content-Type: multipart/alternative; boundary=dff06ab80eda032afa27c85d23b6d8a20542f6c317d1a0259cfe2748b9aa --dff06ab80eda032afa27c85d23b6d8a20542f6c317d1a0259cfe2748b9aa Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Thu Jan 8, 2026 at 10:15 AM CET, Jelte Fennema-Nio wrote: > After pushback on another threadabout introducing additional minor > protocol versions[1], I've decided to change this patch to use a > protocol extension instead of a minor version bump. Turns out there were still some leftovers from using a version bump in the libpq_pipeline tests. Removed those too now. --dff06ab80eda032afa27c85d23b6d8a20542f6c317d1a0259cfe2748b9aa-- --51e09d9ebbe4eb1961033892669fb326760aa84f93c891ab52f4a47ff870 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=nocfbot.v4-0002-Add-pytest-based-tests-for-GoAway-message.patch Content-Type: text/x-patch; charset=utf-8; name=nocfbot.v4-0002-Add-pytest-based-tests-for-GoAway-message.patch RnJvbSA0MDY3YmIxZmMyOTczY2U5NWZmNGI4MmFjZTBmMmQ0MDBiNDVhNjU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUaHUsIDIzIE9jdCAyMDI1IDE0OjMxOjUyICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NCAyLzJdIEFkZCBweXRlc3QgYmFzZWQgdGVzdHMgZm9yIEdvQXdheSBtZXNzYWdlCgpJIHVzZWQg dGhpcyBwYXRjaHNldCBhcyBhIHRyaWFsIGZvciB0aGUgbmV3IHB5dGVzdCBzdWl0ZSB0aGF0IEph Y29iIGlzCnRyeWluZyB0byBpbnRyb2R1Y2UuIEZlZWwgZnJlZSB0byBsb29rIGF0IGl0LCBidXQg SSdkIHNheSBkb24ndCByZXZpZXcKdGhpcyB0ZXN0IGluIGRldGFpbCB1bnRpbCB3ZSBoYXZlIHRo ZSBweXRlc3QgY2hhbmdlcyBtZXJnZWQgb3IgYXQgbGVhc3QKaW4gYSBtb3JlIGFncmVlZCB1cG9u IHN0YXRlLiBUaGlzIHBhdGNoIGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGF0IHYzCnBhdGNoc2V0LiBU aGlzIHRlc3QgaXMgbm90IGFwcGxpZWQgYnkgY2Zib3QuCgpUZXN0aW5nIHRoaXMgYW55IG90aGVy IHdheSBpcyBhY3R1YWxseSBxdWl0ZSBkaWZmaWN1bHQgd2l0aCB0aGUKaW5mcmFzdHJ1Y3R1cmUg d2UgY3VycmVudGx5IGhhdmUgKG9mIGNvdXJzZSBJIGNvdWxkIGNoYW5nZSB0aGF0LCBidXQgSSdk Cm11Y2ggcmF0aGVyIHNwZW5kIHRoYXQgZW5lcmd5L3RpbWUgb24gbWFraW5nIHRoZSBweXRlc3Qg dGVzdCBzdWl0ZSBhCnRoaW5nKToKLSBwZ3JlZ3Jlc3MgYW5kIHBlcmwgdGVzdHMgZG9uJ3Qgd29y ayBiZWNhdXNlIHdlIG5lZWQgdG8gY2FsbCBhIG5ldwogIGxpYnBxIGZ1bmN0aW9uIHRoYXQgaXMg bm90IGV4cG9zZWQgaW4gcHNxbCAoSSBndWVzcyBJIGNvdWxkIGV4cG9zZSBpdAogIHdpdGggc29t ZSBcZ29hd2F5cmVjZWl2ZWQgY29tbWFuZCwgYnV0IGl0IGRvZXNuJ3Qgc2VlbSB2ZXJ5IHVzZWZ1 bCkuCi0gbGlicHFfcGlwZWxpbmUgY2Fubm90IHRlc3QgdGhpcyBiZWNhdXNlIGl0IHdvdWxkIG5l ZWQgdG8gcmVzdGFydAogIHRoZSBQb3N0Z3JlcyBzZXJ2ZXIgYW5kIGFsbCBpdCBoYXMKLS0tCiBz cmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCAgICAgICAgfCAgMSArCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9weXQvdGVzdF9nb2F3YXkucHkgfCA1NCArKysrKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkgICAgICAgICAgfCAxOCArKysrKysr KysKIHNyYy90ZXN0L3B5dGVzdC9weXBnL2ZpeHR1cmVzLnB5ICAgICAgICB8IDI0ICsrKysrKysr KysrCiA0IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9weXQvdGVzdF9nb2F3YXkucHkKCmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21l c29uLmJ1aWxkCmluZGV4IDU2NzkwZGQ5MmE5Li45ODNhZjFkNWJlYSAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv bWVzb24uYnVpbGQKQEAgLTE2Myw2ICsxNjMsNyBAQCB0ZXN0cyArPSB7CiAgICdweXRlc3QnOiB7 CiAgICAgJ3Rlc3RzJzogWwogICAgICAgJ3B5dC90ZXN0X2xvYWRfYmFsYW5jZS5weScsCisgICAg ICAncHl0L3Rlc3RfZ29hd2F5LnB5JywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfZ29hd2F5LnB5IGIvc3JjL2ludGVyZmFjZXMvbGli cHEvcHl0L3Rlc3RfZ29hd2F5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi4zOTQxZTU2NjZhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L3B5dC90ZXN0X2dvYXdheS5weQpAQCAtMCwwICsxLDU0IEBACisjIENvcHlyaWdodCAoYykgMjAy NSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIiIiCitUZXN0cyBmb3Ig dGhlIEdvQXdheSBwcm90b2NvbCBtZXNzYWdlIGR1cmluZyBzbWFydCBzaHV0ZG93bi4KKworVGhl IEdvQXdheSBtZXNzYWdlIGlzIHNlbnQgYnkgdGhlIHNlcnZlciBkdXJpbmcgc21hcnQgc2h1dGRv d24gdG8gcG9saXRlbHkKK3JlcXVlc3QgdGhhdCBjbGllbnRzIGRpc2Nvbm5lY3Qgd2hlbiBjb252 ZW5pZW50LiBUaGUgY29ubmVjdGlvbiByZW1haW5zCitmdW5jdGlvbmFsIGFmdGVyIHJlY2Vpdmlu ZyB0aGUgbWVzc2FnZS4KKyIiIgorCisKK2RlZiB0ZXN0X2dvYXdheV9zbWFydF9zaHV0ZG93bihw Zywgd2FpdF91bnRpbCk6CisgICAgIiIiCisgICAgVGVzdCB0aGF0IEdvQXdheSBtZXNzYWdlIGlz IHNlbnQgZHVyaW5nIHNtYXJ0IHNodXRkb3duLgorCisgICAgVGhpcyB0ZXN0OgorICAgIDEuIENv bm5lY3RzIHRvIGEgcnVubmluZyBQb3N0Z3JlU1FMIHNlcnZlciB2aWEgVW5peCBzb2NrZXQKKyAg ICAyLiBWZXJpZmllcyBHb0F3YXkgaXMgbm90IHJlY2VpdmVkIGluaXRpYWxseQorICAgIDMuIElu aXRpYXRlcyBhIHNtYXJ0IHNodXRkb3duCisgICAgNC4gVmVyaWZpZXMgdGhhdCBHb0F3YXkgaXMg cmVjZWl2ZWQKKyAgICA1LiBWZXJpZmllcyB0aGF0IHF1ZXJpZXMgc3RpbGwgd29yayBhZnRlciBH b0F3YXkKKyAgICA2LiBEaXNjb25uZWN0cyBhbmQgdmVyaWZpZXMgdGhlIHNlcnZlciBzaHV0cyBk b3duCisgICAgIiIiCisKKyAgICAjIENvbm5lY3QgdG8gdGhlIHNlcnZlciB2aWEgVW5peCBzb2Nr ZXQsIGxpYnBxIHdpbGwgcmVxdWVzdCB0aGUKKyAgICAjIF9wcV8uZ29hd2F5IHByb3RvY29sIGV4 dGVuc2lvbgorICAgIGNvbm4gPSBwZy5jb25uZWN0KG1heF9wcm90b2NvbF92ZXJzaW9uPSJsYXRl c3QiKQorCisgICAgIyBJbml0aWFsbHksIEdvQXdheSBzaG91bGQgbm90IGJlIHJlY2VpdmVkCisg ICAgYXNzZXJ0IG5vdCBjb25uLmdvYXdheV9yZWNlaXZlZCgpLCAiR29Bd2F5IHNob3VsZCBub3Qg YmUgcmVjZWl2ZWQgaW5pdGlhbGx5IgorCisgICAgIyBFeGVjdXRlIGEgc2ltcGxlIHF1ZXJ5IHRv IGVuc3VyZSBjb25uZWN0aW9uIGlzIHdvcmtpbmcKKyAgICBjb25uLnNxbCgiU0VMRUNUIDEiKQor CisgICAgcGcucGdfY3RsKCJzdG9wIiwgIi0tbW9kZSIsICJzbWFydCIsICItLW5vLXdhaXQiKQor CisgICAgZm9yIF8gaW4gd2FpdF91bnRpbCgiRGlkIG5vdCByZWNlaXZlIEdvQXdheSBhZnRlciBz bWFydCBzaHV0ZG93biIpOgorICAgICAgICAjIENvbnN1bWUgYW55IGRhdGEgdGhlIGJhY2tlbmQg bWF5IGhhdmUgc2VudCAobGlrZSBHb0F3YXkpCisgICAgICAgIGFzc2VydCBjb25uLmNvbnN1bWVf aW5wdXQoKQorICAgICAgICBpZiBjb25uLmdvYXdheV9yZWNlaXZlZCgpOgorICAgICAgICAgICAg YnJlYWsKKworICAgICMgRXhlY3V0ZSBhIHF1ZXJ5IC0gdGhpcyB3aWxsIHRyaWdnZXIgdGhlIGJh Y2tlbmQgdG8gc2VuZCBHb0F3YXkgYmVmb3JlCisgICAgIyBwcm9jZXNzaW5nIHRoZSBxdWVyeSwg YW5kIHRoZSBjbGllbnQgd2lsbCBwYXJzZSBpdAorICAgIGNvbm4uc3FsKCJTRUxFQ1QgMiIpCisK KyAgICAjIENoZWNrIHRoYXQgR29Bd2F5IHdhcyByZWNlaXZlZAorICAgIGFzc2VydCBjb25uLmdv YXdheV9yZWNlaXZlZCgpLCAiR29Bd2F5IHNob3VsZCBiZSByZWNlaXZlZCBhZnRlciBzbWFydCBz aHV0ZG93biIKKworICAgICMgQ29ubmVjdGlvbiBzaG91bGQgc3RpbGwgYmUgZnVuY3Rpb25hbCAt IHRyeSBvbmUgbW9yZSBxdWVyeQorICAgIGNvbm4uc3FsKCJTRUxFQ1QgMyIpCisKKyAgICAjIFZl cmlmeSBHb0F3YXkgaXMgc3RpbGwgZmxhZ2dlZAorICAgIGFzc2VydCBjb25uLmdvYXdheV9yZWNl aXZlZCgpLCAiR29Bd2F5IGZsYWcgc2hvdWxkIHJlbWFpbiBzZXQiCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkgYi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUu cHkKaW5kZXggMWMwNTliOWI0NDYuLmMxMzc2ODhhMWFhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9w eXRlc3QvbGlicHEvX2NvcmUucHkKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19jb3JlLnB5 CkBAIC0xNDcsNiArMTQ3LDEyIEBAIGRlZiBsb2FkX2xpYnBxX2hhbmRsZShsaWJkaXIsIGJpbmRp cik6CiAgICAgbGliLlBRcmVzdWx0RXJyb3JGaWVsZC5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9w CiAgICAgbGliLlBRcmVzdWx0RXJyb3JGaWVsZC5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwgY3R5 cGVzLmNfaW50XQogCisgICAgbGliLlBRZ29Bd2F5UmVjZWl2ZWQucmVzdHlwZSA9IGN0eXBlcy5j X2ludAorICAgIGxpYi5QUWdvQXdheVJlY2VpdmVkLmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKwor ICAgIGxpYi5QUWNvbnN1bWVJbnB1dC5yZXN0eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBR Y29uc3VtZUlucHV0LmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKwogICAgIHJldHVybiBsaWIKIAog CkBAIC00MTksNiArNDI1LDE4IEBAIGNsYXNzIFBHY29ubihjb250ZXh0bGliLkFic3RyYWN0Q29u dGV4dE1hbmFnZXIpOgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmVzLnJhaXNlX2Vycm9y KCkKIAorICAgIGRlZiBjb25zdW1lX2lucHV0KHNlbGYpIC0+IGJvb2w6CisgICAgICAgICIiIgor ICAgICAgICBDb25zdW1lcyBhbnkgYXZhaWxhYmxlIGlucHV0IGZyb20gdGhlIHNlcnZlci4gUmV0 dXJucyBUcnVlIG9uIHN1Y2Nlc3MuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gYm9vbChz ZWxmLl9saWIuUFFjb25zdW1lSW5wdXQoc2VsZi5faGFuZGxlKSkKKworICAgIGRlZiBnb2F3YXlf cmVjZWl2ZWQoc2VsZikgLT4gYm9vbDoKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgVHJ1 ZSBpZiBhIEdvQXdheSBtZXNzYWdlIHdhcyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuCisgICAg ICAgICIiIgorICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9saWIuUFFnb0F3YXlSZWNlaXZlZChz ZWxmLl9oYW5kbGUpKQorCiAKIGRlZiBjb25uc3RyKG9wdHM6IERpY3Rbc3RyLCBBbnldKSAtPiBz dHI6CiAgICAgIiIiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5w eSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL2ZpeHR1cmVzLnB5CmluZGV4IDhjMGNiNjBkYWE1Li40 YWE2YzczMzQ5ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvZml4dHVyZXMucHkK KysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvZml4dHVyZXMucHkKQEAgLTU3LDYgKzU3LDMwIEBA IGRlZiByZW1haW5pbmdfdGltZW91dF9tb2R1bGUoKToKICAgICByZXR1cm4gbGFtYmRhOiBtYXgo ZGVhZGxpbmUgLSB0aW1lLm1vbm90b25pYygpLCAwKQogCiAKK0BweXRlc3QuZml4dHVyZQorZGVm IHdhaXRfdW50aWwocmVtYWluaW5nX3RpbWVvdXQpOgorICAgIGRlZiB3YWl0X3VudGlsKGVycm9y X21lc3NhZ2U9IkRpZCBub3QgY29tcGxldGUgaW4gdGltZSIsIHRpbWVvdXQ9Tm9uZSwgaW50ZXJ2 YWw9MSk6CisgICAgICAgICIiIgorICAgICAgICBMb29wIHVudGlsIHRoZSB0aW1lb3V0IGlzIHJl YWNoZWQuIElmIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQsIHJhaXNlIGFuCisgICAgICAgIGV4Y2Vw dGlvbiB3aXRoIHRoZSBnaXZlbiBlcnJvciBtZXNzYWdlLgorICAgICAgICAiIiIKKyAgICAgICAg aWYgdGltZW91dCBpcyBOb25lOgorICAgICAgICAgICAgdGltZW91dCA9IHJlbWFpbmluZ190aW1l b3V0KCkKKworICAgICAgICBlbmQgPSB0aW1lLnRpbWUoKSArIHRpbWVvdXQKKyAgICAgICAgcHJp bnRfcHJvZ3Jlc3MgPSB0aW1lb3V0IC8gMTAgPiA0CisgICAgICAgIGxhc3RfcHJpbnRlZF9wcm9n cmVzcyA9IDAKKyAgICAgICAgd2hpbGUgdGltZS50aW1lKCkgPCBlbmQ6CisgICAgICAgICAgICBp ZiBwcmludF9wcm9ncmVzcyBhbmQgdGltZS50aW1lKCkgLSBsYXN0X3ByaW50ZWRfcHJvZ3Jlc3Mg PiA0OgorICAgICAgICAgICAgICAgIGxhc3RfcHJpbnRlZF9wcm9ncmVzcyA9IHRpbWUudGltZSgp CisgICAgICAgICAgICAgICAgcHJpbnQoZiJ7ZXJyb3JfbWVzc2FnZX0gLSB3aWxsIHJldHJ5IikK KyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICB0aW1lLnNsZWVwKGludGVydmFsKQorICAg ICAgICByYWlzZSBUaW1lb3V0RXJyb3IoZXJyb3JfbWVzc2FnZSkKKworICAgIHJldHVybiB3YWl0 X3VudGlsCisKKwogQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKIGRlZiBsaWJwcV9o YW5kbGUobGliZGlyLCBiaW5kaXIpOgogICAgICIiIgotLSAKMi41Mi4wCgo= --51e09d9ebbe4eb1961033892669fb326760aa84f93c891ab52f4a47ff870 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0001-Add-GoAway-protocol-message-for-graceful-but-fast.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0001-Add-GoAway-protocol-message-for-graceful-but-fast.patch RnJvbSAzMzZmNWVhZGYwNWY0MmUwMWNmZmUyZDgyNDMyNGJhYTJlODMyOTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDE5IE9jdCAyMDI1IDAwOjMwOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NCAxLzJdIEFkZCBHb0F3YXkgcHJvdG9jb2wgbWVzc2FnZSBmb3IgZ3JhY2VmdWwgYnV0IGZhc3QK IHNlcnZlciBzaHV0ZG93bi9zd2l0Y2hvdmVyCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGEgbmV3 IEdvQXdheSBiYWNrZW5kLXRvLWZyb250ZW5kIHByb3RvY29sCm1lc3NhZ2UgKGJ5dGUgJ2cnKSB0 aGF0IHRoZSBzZXJ2ZXIgY2FuIHNlbmQgdG8gdGhlIGNsaWVudCB0byBwb2xpdGVseQpyZXF1ZXN0 IHRoYXQgY2xpZW50IHRvIGRpc2Nvbm5lY3QvcmVjb25uZWN0IHdoZW4gY29udmVuaWVudC4gVGhp cyBtZXNzYWdlIGlzCmFkdmlzb3J5IG9ubHkgLSB0aGUgY29ubmVjdGlvbiByZW1haW5zIGZ1bGx5 IGZ1bmN0aW9uYWwgYW5kIGNsaWVudHMgbWF5CmNvbnRpbnVlIGV4ZWN1dGluZyBxdWVyaWVzIGFu ZCBzdGFydGluZyBuZXcgdHJhbnNhY3Rpb25zLiAiV2hlbgpjb252ZW5pZW50IiBpcyBvYnZpb3Vz bHkgbm90IHZlcnkgd2VsbCBkZWZpbmVkLCBidXQgdGhlIHByaW1hcnkgdGFyZ2V0CmNsaWVudHMg YXJlIGNsaWVudHMgdGhhdCBtYWludGFpbiBhIGNvbm5lY3Rpb24gcG9vbC4gU3VjaCBjbGllbnRz IHNob3VsZApkaXNjb25uZWN0L3JlY29ubmVjdCBhIGNvbm5lY3Rpb24gaW4gdGhlIHBvb2wgd2hl biB0aGVyZSdzIG5vIHVzZXIgb2YKdGhhdCBjb25uZWN0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8g aG93IHN1Y2ggY2xpZW50cyBvZnRlbiBjdXJyZW50bHkKcmVtb3ZlIGEgY29ubmVjdGlvbiBmcm9t IHRoZSBwb29sIGFmdGVyIHRoZSBjb25uZWN0aW9uIGhpdHMgYSBtYXhpbXVtCmxpZmV0aW1lIG9m IGUuZy4gMSBob3VyLgoKVGhpcyBuZXcgbWVzc2FnZSBpcyB1c2VkIGJ5IFBvc3RncmVzIGR1cmlu ZyB0aGUgYWxyZWFkeSBleGlzdGluZyAic21hcnQiCnNodXRkb3duIHByb2NlZHVyZSAoaS5lLiB3 aGVuIHBvc3RtYXN0ZXIgcmVjZWl2ZXMgU0lHVEVSTSkuIFdoZW4KUG9zdGdyZXMgaXMgaW4gInNt YXJ0IiBzaHV0ZG93biBtb2RlIGV4aXN0aW5nIGNsaWVudHMgY2FuIGNvbnRpbnVlIHRvCnJ1biBx dWVyaWVzIGFzIHVzdWFsIGJ1dCBuZXcgY29ubmVjdGlvbiBhdHRlbXB0cyBhcmUgcmVqZWN0ZWQu IFRoaXMgbW9kZQppcyBwcmltYXJpbHkgdXNlZnVsIHdoZW4gdHJpZ2dlcmluZyBhIHN3aXRjaG92 ZXIgb2YgYSByZWFkIHJlcGxpY2EuIEEKbG9hZCBiYWxhbmNlciBjYW4gcm91dGUgbmV3IGNvbm5l Y3Rpb25zIG9ubHkgdG8gdGhlIG5ldyByZWFkIHJlcGxpY2EsCndoaWxlIHRoZSBvbGQgbG9hZCBi YWxhbmNlciBrZWVwcyBzZXJ2aW5nIHRoZSBleGlzdGluZyBjb25uZWN0aW9ucyB1bnRpbAp0aGV5 IGRpc2Nvbm5lY3QuIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhpcyBkcmFpbmluZyBvZiBjb25uZWN0 aW9ucyBjb3VsZApvZnRlbiB0YWtlIGEgbG9uZyB0aW1lLiBFdmVuIHdoZW4gY2xpZW50cyBvbmx5 IHJ1biB2ZXJ5IHNob3J0CnF1ZXJpZXMvdHJhbnNhY3Rpb25zIGJlY2F1c2UgdGhlIHNlc3Npb24g Y2FuIGJlIGtlcHQgb3BlbiBtdWNoIGxvbmdlcgoobWFueSBjb25uZWN0aW9uIHBvb2xzIHVzZSAx IGhvdXIgbWF4IGxpZmV0aW1lIG9mIGEgY29ubmVjdGlvbiBieSBkZWZhdWx0KS4KV2l0aCB0aGUg aW50cm9kdWN0aW9uIG9mIHRoZSBHb0F3YXkgbWVzc2FnZSBQb3N0Z3JlcyBub3cgc2VuZHMgdGhp cwptZXNzYWdlIHRvIGFsbCBjb25uZWN0ZWQgY2xpZW50cyB3aGVuIGl0IGVudGVycyBzbWFydCBz aHV0ZG93biBtb2RlLgpJZiB0aGVzZSBjbGllbnRzIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UgYnkg cmVjb25uZWN0aW5nL2Rpc2Nvbm5lY3RpbmcKZWFybGllciB0aGFuIHRoZWlyIG1heGltdW0gY29u bmVjdGlvbiBsaWZldGltZSB0aGUgZHJhaW5pbmcgY2FuIGNvbXBsZXRlCm11Y2ggcXVpY2tlci4g U2ltaWxhciBiZW5lZml0cyB0byBzd2l0Y2hvdmVyIGR1cmF0aW9uIGNhbiBiZSBhY2hpZXZlZApm b3Igb3RoZXIgYXBwbGljYXRpb25zIG9yIHByb3hpZXMgaW1wbGVtZW50aW5nIHRoZSBQb3N0Z3Jl cyBwcm90b2NvbCwKbGlrZSB3aGVuIHN3aXRjaGluZyBvdmVyIGEgY2x1c3RlciBvZiBQZ0JvdW5j ZXIgbWFjaGluZXMgdG8gYSBuZXdlcgp2ZXJzaW9uLgoKQXBwbGljYXRpb25zL2NsaWVudHMgdGhh dCB1c2UgbGlicHEgY2FuIHBlcmlvZGljYWxseSBjaGVjayB0aGUgcmVzdWx0IG9mClBRZ29Bd2F5 UmVjZWl2ZWQoKSBhdCBhbiBpbmFjdGl2ZSB0aW1lIHRvIHNlZSB3aGV0aGVyIHRoZXkgYXJlIGFz a2VkIHRvCnJlY29ubmVjdC4KLS0tCiBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAg ICAgfCAgNTEgKysrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgICAgICAg ICAgIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9wb3N0bWFzdGVyLmMgIHwgIDI0ICsrKysrKysKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3Byb2NzaWduYWwuYyB8ICAgMyArCiBzcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1cC5j ICAgfCAgMjEgKysrKy0tCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgfCAg MzYgKysrKysrKysrKwogc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaCAgICAgICAgIHwgICA1 ICsrCiBzcmMvaW5jbHVkZS9saWJwcS9wcm90b2NvbC5oICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3Av dGNvcHByb3QuaCAgICAgICAgICB8ICAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRz LnR4dCAgICAgfCAgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jICAgIHwg ICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYyAgICAgICB8ICAyNyArKysrKysr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYyAgfCAgMzkgKysrKysrKystLQog c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaCAgICAgIHwgICA1ICsrCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgfCAgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMzEw IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXggMjFlMWJhMzRhNGUu LjJlYTlkNDY3NWE1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMjIzMSw2ICsyMjMxLDEzIEBAIHBvc3RncmVzcWw6 Ly8lMkZ2YXIlMkZsaWIlMkZwb3N0Z3Jlc3FsL2RibmFtZQogICAgICAgICBlcXVpdmFsZW50IHRv IHRoZSBsYXRlc3QgcHJvdG9jb2wgdmVyc2lvbiBzdXBwb3J0ZWQgYnkgdGhlIGxpYnBxCiAgICAg ICAgIHZlcnNpb24gYmVpbmcgdXNlZCwgd2hpY2ggaXMgY3VycmVudGx5IDxsaXRlcmFsPjMuMjwv bGl0ZXJhbD4uCiAgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFdoZW4g dXNpbmcgcHJvdG9jb2wgdmVyc2lvbiA8bGl0ZXJhbD4zLjI8L2xpdGVyYWw+IG9yIGhpZ2hlciwK KyAgICAgICAgPGFwcGxpY2F0aW9uPmxpYnBxPC9hcHBsaWNhdGlvbj4gcmVxdWVzdHMgYWxsIHN1 cHBvcnRlZCBwcm90b2NvbAorICAgICAgICBleHRlbnNpb25zIGZyb20gdGhlIHNlcnZlciwgc3Vj aCBhcyA8bGl0ZXJhbD5nb2F3YXk8L2xpdGVyYWw+CisgICAgICAgIHdoaWNoIGVuYWJsZXMgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFnb0F3YXlSZWNlaXZlZCIvPi4KKyAgICAgICA8L3BhcmE+CiAg ICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMjk4Nyw2ICsyOTk0 LDUwIEBAIGludCBQUXNlcnZlclZlcnNpb24oY29uc3QgUEdjb25uICpjb25uKTsKICAgICAgPC9s aXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imxp YnBxLVBRZ29Bd2F5UmVjZWl2ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFnb0F3YXlSZWNl aXZlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWdvQXdheVJlY2VpdmVkPC9wcmlt YXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBzZXJ2ZXIgaGFzIHNlbnQgYSA8bGl0ZXJhbD5Hb0F3 YXk8L2xpdGVyYWw+IG1lc3NhZ2UsCisgICAgICAgcmVxdWVzdGluZyB0aGUgY2xpZW50IHRvIGRp c2Nvbm5lY3Qgd2hlbiBjb252ZW5pZW50LgorCis8c3lub3BzaXM+CitpbnQgUFFnb0F3YXlSZWNl aXZlZChjb25zdCBQR2Nvbm4gKmNvbm4pOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKwor ICAgICAgPHBhcmE+CisgICAgICAgVGhlIDxsaXRlcmFsPkdvQXdheTwvbGl0ZXJhbD4gbWVzc2Fn ZSBpcyBzZW50IGJ5IHRoZSBzZXJ2ZXIgZHVyaW5nIGEKKyAgICAgICBzbWFydCBzaHV0ZG93biB0 byBwb2xpdGVseSByZXF1ZXN0IHRoYXQgY2xpZW50cyBkaXNjb25uZWN0LiBUaGlzIGlzCisgICAg ICAgYWR2aXNvcnkgb25seSAtIHRoZSBjb25uZWN0aW9uIHJlbWFpbnMgZnVsbHkgZnVuY3Rpb25h bCBhbmQgcXVlcmllcworICAgICAgIGNhbiBjb250aW51ZSB0byBiZSBleGVjdXRlZC4gQXBwbGlj YXRpb25zIGNhbiBjaG9vc2UgdG8gaG9ub3IgdGhlIHJxdWVzdAorICAgICAgIGJ5IGNhbGxpbmcg dGhpcyBmdW5jdGlvbiBwZXJpb2RpY2FsbHkgYW5kIGRpc2Nvbm5lY3QgZ3JhY2VmdWxseSB3aGVu CisgICAgICAgcG9zc2libGUsIHN1Y2ggYXMgYWZ0ZXIgY29tcGxldGluZyB0aGUgY3VycmVudCB0 cmFuc2FjdGlvbi4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBt ZXNzYWdlIGlzIG9ubHkgc2VudCB0byBjbGllbnRzIHRoYXQgcmVxdWVzdCB0aGUKKyAgICAgICA8 bGl0ZXJhbD5nb2F3YXk8L2xpdGVyYWw+IHByb3RvY29sIGV4dGVuc2lvbiBpbiB0aGUgc3RhcnR1 cCBtZXNzYWdlLAorICAgICAgIHdoaWNoIDxhcHBsaWNhdGlvbj5saWJwcTwvYXBwbGljYXRpb24+ IGRvZXMgd2hlbiB1c2luZyBwcm90b2NvbCB2ZXJzaW9uCisgICAgICAgMy4yIG9yIGhpZ2hlciAo c2VlIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtbWF4LXByb3RvY29sLXZlcnNpb24iLz4p LgorICAgICAgIFRoZSBmdW5jdGlvbiByZXR1cm5zIDEgaWYgdGhlIDxsaXRlcmFsPkdvQXdheTwv bGl0ZXJhbD4gbWVzc2FnZSB3YXMKKyAgICAgICByZWNlaXZlZCwgMCBvdGhlcndpc2UuCisgICAg ICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIDxmdW5jdGlvbj5QUWdvQXdheVJlY2Vp dmVkPC9mdW5jdGlvbj4gZG9lcyBub3QgYWN0dWFsbHkgcmVhZCBkYXRhIGZyb20gdGhlCisgICAg ICAgc2VydmVyOyBpdCBqdXN0IHJldHVybnMgbWVzc2FnZXMgcHJldmlvdXNseSBhYnNvcmJlZCBi eSBhbm90aGVyCisgICAgICAgPGFwcGxpY2F0aW9uPmxpYnBxPC9hcHBsaWNhdGlvbj4gZnVuY3Rp b24uIFNvIG5vcm1hbGx5IHlvdSB3b3VsZCBmaXJzdAorICAgICAgIGNhbGwgPHhyZWYgbGlua2Vu ZD0ibGlicHEtUFFjb25zdW1lSW5wdXQiLz4sIHRoZW4gY2hlY2sKKyAgICAgICA8ZnVuY3Rpb24+ UFFnb0F3YXlSZWNlaXZlZDwvZnVuY3Rpb24+LiAgWW91IGNhbiB1c2UKKyAgICAgICA8ZnVuY3Rp b24+c2VsZWN0KCk8L2Z1bmN0aW9uPiB0byB3YWl0IGZvciBkYXRhIHRvIGFycml2ZSBmcm9tIHRo ZQorICAgICAgIHNlcnZlciwgdGhlcmVieSB1c2luZyBubyA8YWNyb255bT5DUFU8L2Fjcm9ueW0+ IHBvd2VyIHVubGVzcyB0aGVyZSBpcworICAgICAgIHNvbWV0aGluZyB0byBkby4gIChTZWUgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFzb2NrZXQiLz4gdG8gb2J0YWluIHRoZSBmaWxlCisgICAgICAg ZGVzY3JpcHRvciBudW1iZXIgdG8gdXNlIHdpdGggPGZ1bmN0aW9uPnNlbGVjdCgpPC9mdW5jdGlv bj4uKQorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFlcnJvck1lc3NhZ2UiPgogICAgICA8 dGVybT4KICAgICAgIDxmdW5jdGlvbj5QUWVycm9yTWVzc2FnZTwvZnVuY3Rpb24+PGluZGV4dGVy bT48cHJpbWFyeT5QUWVycm9yTWVzc2FnZTwvcHJpbWFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNn bWwKaW5kZXggYTJiNTI4YzQ4MWUuLjg4OWUyMzMwNGI2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbApAQCAtMjcw LDYgKzI3MCw0NyBAQAogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4K KworICAgPHBhcmE+CisgICAgSW4gYWRkaXRpb24gdG8gcHJvdG9jb2wgdmVyc2lvbiBuZWdvdGlh dGlvbiwgdGhlIGNsaWVudCBjYW4gcmVxdWVzdAorICAgIG9wdGlvbmFsIHByb3RvY29sIGV4dGVu c2lvbnMgYnkgaW5jbHVkaW5nIHBhcmFtZXRlcnMgaW4gdGhlIHN0YXJ0dXAgbWVzc2FnZS4KKyAg ICBQcm90b2NvbCBleHRlbnNpb24gcGFyYW1ldGVyIG5hbWVzIG11c3QgYmUgcHJlZml4ZWQgd2l0 aAorICAgIDxsaXRlcmFsPl9wcV8uPC9saXRlcmFsPiB0byBkaXN0aW5ndWlzaCB0aGVtIGZyb20g c2VydmVyIHBhcmFtZXRlcnMuIEZvcgorICAgIGV4YW1wbGUsIHRoZSA8bGl0ZXJhbD5nb2F3YXk8 L2xpdGVyYWw+IGV4dGVuc2lvbiBpcyByZXF1ZXN0ZWQgYnkgaW5jbHVkaW5nCisgICAgPGxpdGVy YWw+X3BxXy5nb2F3YXk8L2xpdGVyYWw+IGluIHRoZSBzdGFydHVwIG1lc3NhZ2UuIElmIHRoZSBz ZXJ2ZXIgZG9lcworICAgIG5vdCByZWNvZ25pemUgYW4gZXh0ZW5zaW9uLCBpdCB3aWxsIHJlcG9y dCBpdCBpbiB0aGUKKyAgICBOZWdvdGlhdGVQcm90b2NvbFZlcnNpb24gbWVzc2FnZS4gPHhyZWYg bGlua2VuZD0icHJvdG9jb2wtZXh0ZW5zaW9ucy10YWJsZSIvPgorICAgIHNob3dzIHRoZSBjdXJy ZW50bHkgc3VwcG9ydGVkIHByb3RvY29sIGV4dGVuc2lvbnMuCisgICA8L3BhcmE+CisKKyAgIDx0 YWJsZSBpZD0icHJvdG9jb2wtZXh0ZW5zaW9ucy10YWJsZSI+CisgICAgPHRpdGxlPlByb3RvY29s IEV4dGVuc2lvbnM8L3RpdGxlPgorCisgICAgPHRncm91cCBjb2xzPSI0Ij4KKyAgICAgPHRoZWFk PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+RXh0ZW5zaW9uPC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+U3VwcG9ydGVkIFZhbHVlczwvZW50cnk+CisgICAgICAgPGVudHJ5PkludHJvZHVjZWQg SW48L2VudHJ5PgorICAgICAgIDxlbnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgICA8L3Jv dz4KKyAgICAgPC90aGVhZD4KKworICAgICA8dGJvZHk+CisgICAgICA8cm93PgorICAgICAgIDxl bnRyeT48bGl0ZXJhbD5nb2F3YXk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxp dGVyYWw+MTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT5Qb3N0Z3JlU1FMIDE5PC9l bnRyeT4KKyAgICAgICA8ZW50cnk+CisgICAgICAgIEVuYWJsZXMgdGhlIHNlcnZlciB0byBzZW5k CisgICAgICAgIDxsaW5rIGxpbmtlbmQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Hb0F3YXki PkdvQXdheTwvbGluaz4KKyAgICAgICAgbWVzc2FnZXMgdG8gcmVxdWVzdCB0aGUgY2xpZW50IHRv IGRpc2Nvbm5lY3Qgd2hlbiBjb252ZW5pZW50LgorICAgICAgICBTZWUgPHhyZWYgbGlua2VuZD0i cHJvdG9jb2wtYXN5bmMiLz4gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgICA8L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgogICA8 L3NlY3QyPgogIDwvc2VjdDE+CiAKQEAgLTU5MCw2ICs2MzEsMTcgQEAKICAgICAgICA8L3BhcmE+ CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgPHRlcm0+R29Bd2F5PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgIDxwYXJhPgorICAgICAgICBUaGUgc2VydmVyIHJlcXVlc3RzIHRoZSBzZXJ2ZXIgcG9saXRl bHkgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24gYXQgaXRzCisgICAgICAgIGVhcmxpZXN0IGNvbnZl bmllbnQgbW9tZW50LiBTZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtYXN5bmMiLz4gZm9yCisg ICAgICAgIG1vcmUgZGV0YWlscy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgor ICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4KIApA QCAtMTMzOCw3ICsxMzkwLDcgQEAgU0VMQ1QgMS8wOzwhLS0gdGhpcyB0eXBvIGlzIGludGVudGlv bmFsIC0tPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBJdCBpcyBwb3NzaWJsZSBmb3Ig Tm90aWNlUmVzcG9uc2UgYW5kIFBhcmFtZXRlclN0YXR1cyBtZXNzYWdlcyB0byBiZQorICAgIEl0 IGlzIHBvc3NpYmxlIGZvciBOb3RpY2VSZXNwb25zZSwgUGFyYW1ldGVyU3RhdHVzIGFuZCBHb0F3 YXkgbWVzc2FnZXMgdG8gYmUKICAgICBpbnRlcnNwZXJzZWQgYmV0d2VlbiBDb3B5RGF0YSBtZXNz YWdlczsgZnJvbnRlbmRzIG11c3QgaGFuZGxlIHRoZXNlIGNhc2VzLAogICAgIGFuZCBzaG91bGQg YmUgcHJlcGFyZWQgZm9yIG90aGVyIGFzeW5jaHJvbm91cyBtZXNzYWdlIHR5cGVzIGFzIHdlbGwg KHNlZQogICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWFzeW5jIi8+KS4gIE90aGVyd2lzZSwg YW55IG1lc3NhZ2UgdHlwZSBvdGhlciB0aGFuCkBAIC0xNDQ5LDYgKzE1MDEsMjcgQEAgU0VMQ1Qg MS8wOzwhLS0gdGhpcyB0eXBvIGlzIGludGVudGlvbmFsIC0tPgogICAgIHBhcmFtZXRlcnMgdGhh dCBpdCBkb2VzIG5vdCB1bmRlcnN0YW5kIG9yIGNhcmUgYWJvdXQuCiAgICA8L3BhcmE+CiAKKyAg IDxwYXJhPgorICAgIEEgR29Bd2F5IG1lc3NhZ2UgaXMgc2VudCBieSB0aGUgc2VydmVyIHRvIHBv bGl0ZWx5IHJlcXVlc3QgdGhlIGNsaWVudCB0bworICAgIGRpc2Nvbm5lY3Qgd2hlbiBjb252ZW5p ZW50IGFuZCByZWNvbm5lY3Qgd2hlbiB0aGUgY2xpZW50IG5lZWRzIGEgY29ubmVjdGlvbgorICAg IGFnYWluLiBUaGlzIGlzIGFkdmlzb3J5IG9ubHkgLSB0aGUgY29ubmVjdGlvbiByZW1haW5zIGZ1 bGx5IGZ1bmN0aW9uYWwgYW5kCisgICAgcXVlcmllcyBjYW4gY29udGludWUgdG8gYmUgZXhlY3V0 ZWQuICJXaGVuIGNvbnZlbmllbnQiIGlzIHZlcnkgdmFndWVseQorICAgIGRlZmluZWQgb24gcHVy cG9zZSBiZWNhdXNlIGl0IGRlcGVuZHMgb24gdGhlIGNsaWVudCBhbmQgYXBwbGljYXRpb24gd2hl dGhlcgorICAgIHN1Y2ggYSBtb21lbnQgZXZlbiBleGlzdHMuIFNvIGNsaWVudHMgYXJlIGFsbG93 ZWQgdG8gY29tcGxldGVseSBpZ25vcmUgdGhpcworICAgIG1lc3NhZ2UgYW5kIGRpc2Nvbm5lY3Qg d2hlbmV2ZXIgdGhleSBvdGhlcndpc2Ugd291bGQgaGF2ZS4gQW4gaW1wb3J0YW50CisgICAgdHlw ZSBvZiBjbGllbnQgdGhhdCBjYW4gYWN0dWFsbHkgaG9ub3IgdGhlIHJlcXVlc3QgdG8gZGlzY29u bmVjdCBlYXJseSBpcyBhCisgICAgY2xpZW50IHRoYXQgbWFpbnRhaW5zIGEgY29ubmVjdGlvbiBw b29sLiBTdWNoIGEgY2xpZW50IGNhbiBob25vciB0aGUKKyAgICByZXF1ZXN0IGJ5IGRpc2Nvbm5l Y3RpbmcgYSBjb25uZWN0aW9uIHRoYXQgaGFzIHJlY2VpdmVkIGEgR29Bd2F5IG1lc3NhZ2UKKyAg ICB3aGVuIGl0J3Mgbm90IGluIHVzZSBieSBhIHVzZXIgb2YgdGhlIHBvb2wuIEl0IGlzIGFsbG93 ZWQgZm9yIGEgc2VydmVyIHRvCisgICAgc2VuZCBtdWx0aXBsZSBHb0F3YXkgbWVzc2FnZXMgb24g dGhlIHNhbWUgY29ubmVjdGlvbiwgYnV0IGFueSBzdWJzZXF1ZW50CisgICAgR29Bd2F5IG1lc3Nh Z2VzIGFmdGVyIHRoZSBmaXJzdCBHb0F3YXkgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIGNsaWVudCdz CisgICAgYmVoYXZpb3IuIFRoZSBHb0F3YXkgbWVzc2FnZSBpcyBjdXJyZW50bHkgc2VudCBieSBQ b3N0Z3JlcyBkdXJpbmcgdGhlCisgICAgInNtYXJ0IiBzaHV0ZG93biBwcm9jZWR1cmUgKGkuZS4g d2hlbiBwb3N0bWFzdGVyIHJlY2VpdmVzCisgICAgPHN5c3RlbWl0ZW0+U0lHVEVSTTwvc3lzdGVt aXRlbT4pLiBUaGUgc2VydmVyIG9ubHkgc2VuZHMgdGhlIEdvQXdheQorICAgIG1lc3NhZ2UgdG8g Y2xpZW50cyB0aGF0IHJlcXVlc3QgdGhlIDxsaXRlcmFsPmdvYXdheTwvbGl0ZXJhbD4KKyAgICBw cm90b2NvbCBleHRlbnNpb24gaW4gdGhlIHN0YXJ0dXAgbWVzc2FnZS4KKyAgIDwvcGFyYT4KKwog ICAgPHBhcmE+CiAgICAgSWYgYSBmcm9udGVuZCBpc3N1ZXMgYSA8Y29tbWFuZD5MSVNURU48L2Nv bW1hbmQ+IGNvbW1hbmQsIHRoZW4gdGhlCiAgICAgYmFja2VuZCB3aWxsIHNlbmQgYSBOb3RpZmlj YXRpb25SZXNwb25zZSBtZXNzYWdlIChub3QgdG8gYmUKQEAgLTUyMzksNiArNTMxMiwzMSBAQCBw c3FsICJkYm5hbWU9cG9zdGdyZXMgcmVwbGljYXRpb249ZGF0YWJhc2UiIC1jICJJREVOVElGWV9T WVNURU07IgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUdvQXdheSI+CisgICAgPHRlcm0+ R29Bd2F5IChCKTwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDx2YXJpYWJsZWxpc3Q+Cisg ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUxKCdnJyk8L3Rlcm0+CisgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1l c3NhZ2UgYXMgYSBwb2xpdGUgcmVxdWVzdCBmb3IgdGhlIGNsaWVudCB0byBkaXNjb25uZWN0Lgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyKDQpPC90ZXJtPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBMZW5ndGggb2YgbWVz c2FnZSBjb250ZW50cyBpbiBieXRlcywgaW5jbHVkaW5nIHNlbGYuCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFi bGVsaXN0PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxp c3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUdTU0VOQ1JlcXVlc3QiPgogICAg IDx0ZXJtPkdTU0VOQ1JlcXVlc3QgKEYpPC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTYxNTEs NyArNjI0OSw4IEBAIHBzcWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1kYXRhYmFzZSIg LWMgIklERU5USUZZX1NZU1RFTTsiCiAKICAgICAgICAgIEluIGFkZGl0aW9uIHRvIHRoZSBhYm92 ZSwgb3RoZXIgcGFyYW1ldGVycyBtYXkgYmUgbGlzdGVkLgogICAgICAgICAgUGFyYW1ldGVyIG5h bWVzIGJlZ2lubmluZyB3aXRoIDxsaXRlcmFsPl9wcV8uPC9saXRlcmFsPiBhcmUKLSAgICAgICAg IHJlc2VydmVkIGZvciB1c2UgYXMgcHJvdG9jb2wgZXh0ZW5zaW9ucywgd2hpbGUgb3RoZXJzIGFy ZQorICAgICAgICAgcmVzZXJ2ZWQgZm9yIHVzZSBhcyBwcm90b2NvbCBleHRlbnNpb25zIChzZWUK KyAgICAgICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWV4dGVuc2lvbnMtdGFibGUiLz4pLCB3 aGlsZSBvdGhlcnMgYXJlCiAgICAgICAgICB0cmVhdGVkIGFzIHJ1bi10aW1lIHBhcmFtZXRlcnMg dG8gYmUgc2V0IGF0IGJhY2tlbmQgc3RhcnQKICAgICAgICAgIHRpbWUuICBTdWNoIHNldHRpbmdz IHdpbGwgYmUgYXBwbGllZCBkdXJpbmcgYmFja2VuZCBzdGFydAogICAgICAgICAgKGFmdGVyIHBh cnNpbmcgdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgaWYgYW55KSBhbmQgd2lsbApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCBkNjEzM2JmZWJjNi4uZGVhM2FlNTcyMjMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0yMTM0LDcgKzIxMzQsMzEgQEAgcHJv Y2Vzc19wbV9zaHV0ZG93bl9yZXF1ZXN0KHZvaWQpCiAJCQkgKiBsYXRlciBzdGF0ZSwgZG8gbm90 IGNoYW5nZSBpdC4KIAkJCSAqLwogCQkJaWYgKHBtU3RhdGUgPT0gUE1fUlVOIHx8IHBtU3RhdGUg PT0gUE1fSE9UX1NUQU5EQlkpCisJCQl7CisJCQkJZGxpc3RfaXRlcglpdGVyOworCiAJCQkJY29u bnNBbGxvd2VkID0gZmFsc2U7CisKKwkJCQkvKgorCQkJCSAqIFNpZ25hbCBhbGwgYmFja2VuZHMg dG8gc2VuZCBhIEdvQXdheSBtZXNzYWdlIHRvIHRoZWlyCisJCQkJICogY2xpZW50cywgdG8gcG9s aXRlbHkgcmVxdWVzdCB0aGF0IHRoZXkgZGlzY29ubmVjdC4KKwkJCQkgKi8KKwkJCQlkbGlzdF9m b3JlYWNoKGl0ZXIsICZBY3RpdmVDaGlsZExpc3QpCisJCQkJeworCQkJCQlQTUNoaWxkICAgICpi cCA9IGRsaXN0X2NvbnRhaW5lcihQTUNoaWxkLCBlbGVtLCBpdGVyLmN1cik7CisKKwkJCQkJLyoK KwkJCQkJICogT25seSBzaWduYWwgcmVndWxhciBiYWNrZW5kcyBhbmQgd2Fsc2VuZGVycy4gU2tp cAorCQkJCQkgKiBhdXhpbGlhcnkgcHJvY2Vzc2VzIGFuZCBkZWFkLWVuZCBiYWNrZW5kcy4KKwkJ CQkJICovCisJCQkJCWlmIChicC0+YmtlbmRfdHlwZSA9PSBCX0JBQ0tFTkQgfHwKKwkJCQkJCWJw LT5ia2VuZF90eXBlID09IEJfV0FMX1NFTkRFUikKKwkJCQkJeworCQkJCQkJU2VuZFByb2NTaWdu YWwoYnAtPnBpZCwgUFJPQ1NJR19TTUFSVF9TSFVURE9XTiwKKwkJCQkJCQkJCSAgIElOVkFMSURf UFJPQ19OVU1CRVIpOworCQkJCQl9CisJCQkJfQorCQkJfQogCQkJZWxzZSBpZiAocG1TdGF0ZSA9 PSBQTV9TVEFSVFVQIHx8IHBtU3RhdGUgPT0gUE1fUkVDT1ZFUlkpCiAJCQl7CiAJCQkJLyogVGhl cmUgc2hvdWxkIGJlIG5vIGNsaWVudHMsIHNvIHByb2NlZWQgdG8gc3RvcCBjaGlsZHJlbiAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IDhlNTY5MjJkY2VhLi41YzM2ZWZm OWI1MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCisr KyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwpAQCAtNjk0LDYgKzY5NCw5 IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJR05BTF9BUkdTKQogCWlmIChDaGVja1By b2NTaWduYWwoUFJPQ1NJR19MT0dfTUVNT1JZX0NPTlRFWFQpKQogCQlIYW5kbGVMb2dNZW1vcnlD b250ZXh0SW50ZXJydXB0KCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfU01BUlRf U0hVVERPV04pKQorCQlIYW5kbGVTbWFydFNodXRkb3duSW50ZXJydXB0KCk7CisKIAlpZiAoQ2hl Y2tQcm9jU2lnbmFsKFBST0NTSUdfUEFSQUxMRUxfQVBQTFlfTUVTU0FHRSkpCiAJCUhhbmRsZVBh cmFsbGVsQXBwbHlNZXNzYWdlSW50ZXJydXB0KCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3Rjb3AvYmFja2VuZF9zdGFydHVwLmMgYi9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1 cC5jCmluZGV4IDk0YTdiODM5NTYzLi45YWNiZDlmMDNhYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdGNvcC9iYWNrZW5kX3N0YXJ0dXAuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRf c3RhcnR1cC5jCkBAIC03NzksMTEgKzc3OSwyNCBAQCBQcm9jZXNzU3RhcnR1cFBhY2tldChQb3J0 ICpwb3J0LCBib29sIHNzbF9kb25lLCBib29sIGdzc19kb25lKQogCQkJewogCQkJCS8qCiAJCQkJ ICogQW55IG9wdGlvbiBiZWdpbm5pbmcgd2l0aCBfcHFfLiBpcyByZXNlcnZlZCBmb3IgdXNlIGFz IGEKLQkJCQkgKiBwcm90b2NvbC1sZXZlbCBvcHRpb24sIGJ1dCBhdCBwcmVzZW50IG5vIHN1Y2gg b3B0aW9ucyBhcmUKLQkJCQkgKiBkZWZpbmVkLgorCQkJCSAqIHByb3RvY29sLWxldmVsIG9wdGlv bi4KIAkJCQkgKi8KLQkJCQl1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucyA9Ci0JCQkJCWxh cHBlbmQodW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlvbnMsIHBzdHJkdXAobmFtZXB0cikpOwor CQkJCWlmIChzdHJjbXAobmFtZXB0ciwgIl9wcV8uZ29hd2F5IikgPT0gMCkKKwkJCQl7CisJCQkJ CS8qIENsaWVudCB3YW50cyB0byByZWNlaXZlIEdvQXdheSBtZXNzYWdlcy4gKi8KKwkJCQkJaWYg KHN0cmNtcCh2YWxwdHIsICIxIikgIT0gMCkKKwkJCQkJCWVyZXBvcnQoRkFUQUwsCisJCQkJCQkJ CShlcnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklPTEFUSU9OKSwKKwkJCQkJCQkJIGVycm1zZygi aW52YWxpZCB2YWx1ZSBmb3IgcHJvdG9jb2wgb3B0aW9uIFwiJXNcIjogXCIlc1wiIiwKKwkJCQkJ CQkJCQluYW1lcHRyLCB2YWxwdHIpLAorCQkJCQkJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFy ZTogXCIxXCIuIikpKTsKKwkJCQkJcG9ydC0+Z29hd2F5X25lZ290aWF0ZWQgPSB0cnVlOworCQkJ CX0KKwkJCQllbHNlCisJCQkJeworCQkJCQl1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucyA9 CisJCQkJCQlsYXBwZW5kKHVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zLCBwc3RyZHVwKG5h bWVwdHIpKTsKKwkJCQl9CiAJCQl9CiAJCQllbHNlCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKaW5kZXgg ZTU0YmYxZTc2MGYuLmU4MmNmNGJjNTM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bv c3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC00Miw4ICs0Miwx MCBAQAogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAiaml0L2ppdC5oIgog I2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCisjaW5jbHVkZSAibGlicHEvcHFjb21tLmgiCiAjaW5j bHVkZSAibGlicHEvcHFmb3JtYXQuaCIKICNpbmNsdWRlICJsaWJwcS9wcXNpZ25hbC5oIgorI2lu Y2x1ZGUgImxpYnBxL3Byb3RvY29sLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNs dWRlICJtYi9zdHJpbmdpbmZvX21iLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCkBAIC05MSw2 ICs5MywxNCBAQCBjb25zdCBjaGFyICpkZWJ1Z19xdWVyeV9zdHJpbmc7IC8qIGNsaWVudC1zdXBw bGllZCBxdWVyeSBzdHJpbmcgKi8KIC8qIE5vdGU6IHdoZXJlVG9TZW5kT3V0cHV0IGlzIGluaXRp YWxpemVkIGZvciB0aGUgYm9vdHN0cmFwL3N0YW5kYWxvbmUgY2FzZSAqLwogQ29tbWFuZERlc3Qg d2hlcmVUb1NlbmRPdXRwdXQgPSBEZXN0RGVidWc7CiAKKy8qCisgKiBUcmFjayB3aGV0aGVyIHdl J3ZlIGJlZW4gbm90aWZpZWQgb2Ygc21hcnQgc2h1dGRvd24gYW5kIHNlbnQgR29Bd2F5LgorICog U21hcnRTaHV0ZG93blBlbmRpbmcgaXMgc2V0IGJ5IHRoZSBQUk9DU0lHX1NNQVJUX1NIVVRET1dO IHNpZ25hbCBoYW5kbGVyLgorICogR29Bd2F5U2VudCB0cmFja3Mgd2hldGhlciB3ZSd2ZSBhbHJl YWR5IHNlbnQgdGhlIEdvQXdheSBtZXNzYWdlLgorICovCitzdGF0aWMgdm9sYXRpbGUgc2lnX2F0 b21pY190IFNtYXJ0U2h1dGRvd25QZW5kaW5nID0gZmFsc2U7CitzdGF0aWMgYm9vbCBHb0F3YXlT ZW50ID0gZmFsc2U7CisKIC8qIGZsYWcgZm9yIGxvZ2dpbmcgZW5kIG9mIHNlc3Npb24gKi8KIGJv b2wJCUxvZ19kaXNjb25uZWN0aW9ucyA9IGZhbHNlOwogCkBAIC01MDgsNiArNTE4LDIwIEBAIFBy b2Nlc3NDbGllbnRSZWFkSW50ZXJydXB0KGJvb2wgYmxvY2tlZCkKIAkJLyogQ2hlY2sgZm9yIGdl bmVyYWwgaW50ZXJydXB0cyB0aGF0IGFycml2ZWQgYmVmb3JlL3doaWxlIHJlYWRpbmcgKi8KIAkJ Q0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKIAorCQkvKiBTZW5kIEdvQXdheSBtZXNzYWdlIGlmIHNt YXJ0IHNodXRkb3duIGlzIHBlbmRpbmcgKi8KKwkJaWYgKFNtYXJ0U2h1dGRvd25QZW5kaW5nICYm ICFHb0F3YXlTZW50ICYmCisJCQl3aGVyZVRvU2VuZE91dHB1dCA9PSBEZXN0UmVtb3RlICYmCisJ CQlNeVByb2NQb3J0ICYmIE15UHJvY1BvcnQtPmdvYXdheV9uZWdvdGlhdGVkKQorCQl7CisJCQlT dHJpbmdJbmZvRGF0YSBidWY7CisKKwkJCXBxX2JlZ2lubWVzc2FnZSgmYnVmLCBQcU1zZ19Hb0F3 YXkpOworCQkJcHFfZW5kbWVzc2FnZSgmYnVmKTsKKwkJCXBxX2ZsdXNoKCk7CisKKwkJCUdvQXdh eVNlbnQgPSB0cnVlOworCQl9CisKIAkJLyogUHJvY2VzcyBzaW52YWwgY2F0Y2h1cCBpbnRlcnJ1 cHRzLCBpZiBhbnkgKi8KIAkJaWYgKGNhdGNodXBJbnRlcnJ1cHRQZW5kaW5nKQogCQkJUHJvY2Vz c0NhdGNodXBJbnRlcnJ1cHQoKTsKQEAgLTMwODcsNiArMzExMSwxOCBAQCBGbG9hdEV4Y2VwdGlv bkhhbmRsZXIoU0lHTkFMX0FSR1MpCiAJCQkJCSAgICJpbnZhbGlkIG9wZXJhdGlvbiwgc3VjaCBh cyBkaXZpc2lvbiBieSB6ZXJvLiIpKSk7CiB9CiAKKy8qCisgKiBUZWxsIHRoZSBuZXh0IENIRUNL X0ZPUl9JTlRFUlJVUFRTKCkgb3IgbWFpbiBsb29wIGl0ZXJhdGlvbiB0byBzZW5kIGEKKyAqIEdv QXdheSBtZXNzYWdlIHRvIHRoZSBjbGllbnQuICBSdW5zIGluIGEgU0lHVVNSMSBoYW5kbGVyLgor ICovCit2b2lkCitIYW5kbGVTbWFydFNodXRkb3duSW50ZXJydXB0KHZvaWQpCit7CisJU21hcnRT aHV0ZG93blBlbmRpbmcgPSB0cnVlOworCUludGVycnVwdFBlbmRpbmcgPSB0cnVlOworCS8qIGxh dGNoIHdpbGwgYmUgc2V0IGJ5IHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyICovCit9CisKIC8q CiAgKiBUZWxsIHRoZSBuZXh0IENIRUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gY2hlY2sgZm9yIGEg cGFydGljdWxhciB0eXBlIG9mCiAgKiByZWNvdmVyeSBjb25mbGljdC4gIFJ1bnMgaW4gYSBTSUdV U1IxIGhhbmRsZXIuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oIGIv c3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaAppbmRleCA5MjFiMmRhYTRmZi4uYjg3Njk0MTJj NzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvbGlicHEvbGlicHEtYmUuaApAQCAtMjAyLDYgKzIwMiwxMSBAQCB0eXBlZGVmIHN0cnVj dCBQb3J0CiAJdm9pZAkgICAqZ3NzOwogI2VuZGlmCiAKKwkvKgorCSAqIFByb3RvY29sIGV4dGVu c2lvbnMuCisJICovCisJYm9vbAkJZ29hd2F5X25lZ290aWF0ZWQ7CS8qIGNsaWVudCBzdXBwb3J0 cyBHb0F3YXkgbWVzc2FnZSAqLworCiAJLyoKIAkgKiBTU0wgc3RydWN0dXJlcy4KIAkgKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL3Byb3RvY29sLmggYi9zcmMvaW5jbHVkZS9saWJw cS9wcm90b2NvbC5oCmluZGV4IGVhZThmMGU3MjM4Li5mZDNjMTk1ZGFhMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbGlicHEvcHJvdG9jb2wuaAorKysgYi9zcmMvaW5jbHVkZS9saWJwcS9wcm90 b2NvbC5oCkBAIC01Myw2ICs1Myw3IEBACiAjZGVmaW5lIFBxTXNnX0Z1bmN0aW9uQ2FsbFJlc3Bv bnNlCSdWJwogI2RlZmluZSBQcU1zZ19Db3B5Qm90aFJlc3BvbnNlCQknVycKICNkZWZpbmUgUHFN c2dfUmVhZHlGb3JRdWVyeQkJCSdaJworI2RlZmluZSBQcU1zZ19Hb0F3YXkJCQkJJ2cnCiAjZGVm aW5lIFBxTXNnX05vRGF0YQkJCQknbicKICNkZWZpbmUgUHFNc2dfUG9ydGFsU3VzcGVuZGVkCQkn cycKICNkZWZpbmUgUHFNc2dfUGFyYW1ldGVyRGVzY3JpcHRpb24JJ3QnCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJv Y3NpZ25hbC5oCmluZGV4IGU1MmI4ZWI3Njk3Li5mNWZkZjgwZGE5ZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9w cm9jc2lnbmFsLmgKQEAgLTM2LDYgKzM2LDcgQEAgdHlwZWRlZiBlbnVtCiAJUFJPQ1NJR19CQVJS SUVSLAkJCS8qIGdsb2JhbCBiYXJyaWVyIGludGVycnVwdCAgKi8KIAlQUk9DU0lHX0xPR19NRU1P UllfQ09OVEVYVCwgLyogYXNrIGJhY2tlbmQgdG8gbG9nIHRoZSBtZW1vcnkgY29udGV4dHMgKi8K IAlQUk9DU0lHX1BBUkFMTEVMX0FQUExZX01FU1NBR0UsIC8qIE1lc3NhZ2UgZnJvbSBwYXJhbGxl bCBhcHBseSB3b3JrZXJzICovCisJUFJPQ1NJR19TTUFSVF9TSFVURE9XTiwJCS8qIG5vdGlmeSBi YWNrZW5kIG9mIHNtYXJ0IHNodXRkb3duICovCiAKIAkvKiBSZWNvdmVyeSBjb25mbGljdCByZWFz b25zICovCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9GSVJTVCwKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaApp bmRleCA1NGRkZWU4NzVlZC4uMmMwMjllZmU3NzggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rj b3AvdGNvcHByb3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKQEAgLTc0LDYg Kzc0LDcgQEAgZXh0ZXJuIHZvaWQgZGllKFNJR05BTF9BUkdTKTsKIHBnX25vcmV0dXJuIGV4dGVy biB2b2lkIHF1aWNrZGllKFNJR05BTF9BUkdTKTsKIGV4dGVybiB2b2lkIFN0YXRlbWVudENhbmNl bEhhbmRsZXIoU0lHTkFMX0FSR1MpOwogcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgRmxvYXRFeGNl cHRpb25IYW5kbGVyKFNJR05BTF9BUkdTKTsKK2V4dGVybiB2b2lkIEhhbmRsZVNtYXJ0U2h1dGRv d25JbnRlcnJ1cHQodm9pZCk7CiBleHRlcm4gdm9pZCBIYW5kbGVSZWNvdmVyeUNvbmZsaWN0SW50 ZXJydXB0KFByb2NTaWduYWxSZWFzb24gcmVhc29uKTsKIGV4dGVybiB2b2lkIFByb2Nlc3NDbGll bnRSZWFkSW50ZXJydXB0KGJvb2wgYmxvY2tlZCk7CiBleHRlcm4gdm9pZCBQcm9jZXNzQ2xpZW50 V3JpdGVJbnRlcnJ1cHQoYm9vbCBibG9ja2VkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2V4cG9ydHMudHh0IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKaW5k ZXggZGJiYWU2NDJkNzYuLjMzODVlNjVjMzg5IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9leHBvcnRzLnR4dAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dApA QCAtMjEwLDMgKzIxMCw0IEBAIFBRZ2V0QXV0aERhdGFIb29rICAgICAgICAgMjA3CiBQUWRlZmF1 bHRBdXRoRGF0YUhvb2sgICAgIDIwOAogUFFmdWxsUHJvdG9jb2xWZXJzaW9uICAgICAyMDkKIGFw cGVuZFBRRXhwQnVmZmVyVkEgICAgICAgMjEwCitQUWdvQXdheVJlY2VpdmVkICAgICAgICAgIDIx MQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCmluZGV4IGEwZDJmNzQ5ODExLi5jNzU4MDg3NGI1 YSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtNzAwLDYgKzcwMCw3IEBAIHBxRHJv cFNlcnZlckRhdGEoUEdjb25uICpjb25uKQogCWNvbm4tPnBhc3N3b3JkX25lZWRlZCA9IGZhbHNl OwogCWNvbm4tPmdzc2FwaV91c2VkID0gZmFsc2U7CiAJY29ubi0+d3JpdGVfZmFpbGVkID0gZmFs c2U7CisJY29ubi0+Z29hd2F5X3JlY2VpdmVkID0gZmFsc2U7CiAJZnJlZShjb25uLT53cml0ZV9l cnJfbXNnKTsKIAljb25uLT53cml0ZV9lcnJfbXNnID0gTlVMTDsKIAljb25uLT5vYXV0aF93YW50 X3JldHJ5ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVj LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKaW5kZXggMjAzZDM4OGJkYmYuLjBj MzNlYWEzZmIwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCkBAIC0yNzAyLDYgKzI3MDIsMzMgQEAg UFFub3RpZmllcyhQR2Nvbm4gKmNvbm4pCiAJcmV0dXJuIGV2ZW50OwogfQogCisvKgorICogUFFn b0F3YXlSZWNlaXZlZAorICoJICByZXR1cm5zIDEgaWYgYSBHb0F3YXkgbWVzc2FnZSBoYXMgYmVl biByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIKKyAqCSAgcmV0dXJucyAwIGlmIG5vdAorICoKKyAq IE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlYWQgYW55IG5ldyBkYXRhIGZyb20g dGhlIHNvY2tldDsKKyAqIGNhbGxlciBzaG91bGQgY2FsbCBQUWNvbnN1bWVJbnB1dCgpIGZpcnN0 IGlmIHRoZXkgd2FudCB0byBlbnN1cmUKKyAqIGFsbCBhdmFpbGFibGUgZGF0YSBoYXMgYmVlbiBy ZWFkLgorICovCitpbnQKK1BRZ29Bd2F5UmVjZWl2ZWQoUEdjb25uICpjb25uKQoreworCWlmICgh Y29ubikKKwkJcmV0dXJuIDA7CisKKwlpZiAoY29ubi0+Z29hd2F5X3JlY2VpdmVkKQorCQlyZXR1 cm4gMTsKKworCS8qCisJICogUGFyc2UgYW55IGF2YWlsYWJsZSBkYXRhIHRvIHNlZSBpZiBhIEdv QXdheSBtZXNzYWdlIGhhcyBhcnJpdmVkLgorCSAqLworCXBxUGFyc2VJbnB1dDMoY29ubik7CisK KwlyZXR1cm4gY29ubi0+Z29hd2F5X3JlY2VpdmVkID8gMSA6IDA7Cit9CisKKwogLyoKICAqIFBR cHV0Q29weURhdGEgLSBzZW5kIHNvbWUgZGF0YSB0byB0aGUgYmFja2VuZCBkdXJpbmcgQ09QWSBJ TiBvciBDT1BZIEJPVEgKICAqCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1w cm90b2NvbDMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCmluZGV4IDEw MzQyODAzM2VmLi40OGQ5YzM3YjA3MiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtcHJvdG9jb2wzLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMK QEAgLTEzNCw4ICsxMzQsOCBAQCBwcVBhcnNlSW5wdXQzKFBHY29ubiAqY29ubikKIAkJfQogCiAJ CS8qCi0JCSAqIE5PVElGWSBhbmQgTk9USUNFIG1lc3NhZ2VzIGNhbiBoYXBwZW4gaW4gYW55IHN0 YXRlOyBhbHdheXMgcHJvY2VzcwotCQkgKiB0aGVtIHJpZ2h0IGF3YXkuCisJCSAqIE5PVElGWSBh bmQgTk9USUNFIGFuZCBHb0F3YXkgbWVzc2FnZXMgY2FuIGhhcHBlbiBpbiBhbnkgc3RhdGU7CisJ CSAqIGFsd2F5cyBwcm9jZXNzIHRoZW0gcmlnaHQgYXdheS4KIAkJICoKIAkJICogTW9zdCBvdGhl ciBtZXNzYWdlcyBzaG91bGQgb25seSBiZSBwcm9jZXNzZWQgd2hpbGUgaW4gQlVTWSBzdGF0ZS4K IAkJICogKEluIHBhcnRpY3VsYXIsIGluIFJFQURZIHN0YXRlIHdlIGhvbGQgb2ZmIGZ1cnRoZXIg cGFyc2luZyB1bnRpbApAQCAtMTU5LDYgKzE1OSwxMCBAQCBwcVBhcnNlSW5wdXQzKFBHY29ubiAq Y29ubikKIAkJCWlmIChwcUdldEVycm9yTm90aWNlMyhjb25uLCBmYWxzZSkpCiAJCQkJcmV0dXJu OwogCQl9CisJCWVsc2UgaWYgKGlkID09IFBxTXNnX0dvQXdheSkKKwkJeworCQkJY29ubi0+Z29h d2F5X3JlY2VpdmVkID0gdHJ1ZTsKKwkJfQogCQllbHNlIGlmIChjb25uLT5hc3luY1N0YXR1cyAh PSBQR0FTWU5DX0JVU1kpCiAJCXsKIAkJCS8qIElmIG5vdCBJRExFIHN0YXRlLCBqdXN0IHdhaXQg Li4uICovCkBAIC0zMDUsNiArMzA5LDkgQEAgcHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pCiAJ CQkJCWlmIChnZXRQYXJhbWV0ZXJTdGF0dXMoY29ubikpCiAJCQkJCQlyZXR1cm47CiAJCQkJCWJy ZWFrOworCQkJCWNhc2UgUHFNc2dfR29Bd2F5OgorCQkJCQljb25uLT5nb2F3YXlfcmVjZWl2ZWQg PSB0cnVlOworCQkJCQlicmVhazsKIAkJCQljYXNlIFBxTXNnX0JhY2tlbmRLZXlEYXRhOgogCiAJ CQkJCS8qCkBAIC0xNDk5LDggKzE1MDYsNyBAQCBwcUdldE5lZ290aWF0ZVByb3RvY29sVmVyc2lv bjMoUEdjb25uICpjb25uKQogCWNvbm4tPnB2ZXJzaW9uID0gdGhlaXJfdmVyc2lvbjsKIAogCS8q Ci0JICogV2UgZG9uJ3QgY3VycmVudGx5IHJlcXVlc3QgYW55IHByb3RvY29sIGV4dGVuc2lvbnMs IHNvIHdlIGRvbid0IGV4cGVjdAotCSAqIHRoZSBzZXJ2ZXIgdG8gcmVwbHkgd2l0aCBhbnkgZWl0 aGVyLgorCSAqIFByb2Nlc3MgdGhlIGxpc3Qgb2YgdW5zdXBwb3J0ZWQgcHJvdG9jb2wgZXh0ZW5z aW9ucy4KIAkgKi8KIAlmb3IgKGludCBpID0gMDsgaSA8IG51bTsgaSsrKQogCXsKQEAgLTE1MTMs NiArMTUxOSwxNyBAQCBwcUdldE5lZ290aWF0ZVByb3RvY29sVmVyc2lvbjMoUEdjb25uICpjb25u KQogCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInJlY2VpdmVkIGludmFsaWQgcHJv dG9jb2wgbmVnb3RpYXRpb24gbWVzc2FnZTogc2VydmVyIHJlcG9ydGVkIHVuc3VwcG9ydGVkIHBh cmFtZXRlciBuYW1lIHdpdGhvdXQgYSBcIiVzXCIgcHJlZml4IChcIiVzXCIpIiwgIl9wcV8uIiwg Y29ubi0+d29ya0J1ZmZlci5kYXRhKTsKIAkJCWdvdG8gZmFpbHVyZTsKIAkJfQorCisJCS8qCisJ CSAqIEhhbmRsZSBrbm93biBwcm90b2NvbCBleHRlbnNpb25zLiBVbmtub3duIGV4dGVuc2lvbnMg dGhhdCB3ZXJlIG5vdAorCQkgKiByZXF1ZXN0ZWQgYnkgdXMgYXJlIGFuIGVycm9yLgorCQkgKi8K KwkJaWYgKHN0cmNtcChjb25uLT53b3JrQnVmZmVyLmRhdGEsICJfcHFfLmdvYXdheSIpID09IDAp CisJCXsKKwkJCS8qIFNlcnZlciBkb2Vzbid0IHN1cHBvcnQgR29Bd2F5LCB0aGF0J3MgZmluZSAq LworCQkJY29udGludWU7CisJCX0KKwogCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAi cmVjZWl2ZWQgaW52YWxpZCBwcm90b2NvbCBuZWdvdGlhdGlvbiBtZXNzYWdlOiBzZXJ2ZXIgcmVw b3J0ZWQgYW4gdW5zdXBwb3J0ZWQgcGFyYW1ldGVyIHRoYXQgd2FzIG5vdCByZXF1ZXN0ZWQgKFwi JXNcIikiLCBjb25uLT53b3JrQnVmZmVyLmRhdGEpOwogCQlnb3RvIGZhaWx1cmU7CiAJfQpAQCAt MTg1Niw2ICsxODczLDkgQEAgZ2V0Q29weURhdGFNZXNzYWdlKFBHY29ubiAqY29ubikKIAkJCQlp ZiAoZ2V0UGFyYW1ldGVyU3RhdHVzKGNvbm4pKQogCQkJCQlyZXR1cm4gMDsKIAkJCQlicmVhazsK KwkJCWNhc2UgUHFNc2dfR29Bd2F5OgorCQkJCWNvbm4tPmdvYXdheV9yZWNlaXZlZCA9IHRydWU7 CisJCQkJYnJlYWs7CiAJCQljYXNlIFBxTXNnX0NvcHlEYXRhOgogCQkJCXJldHVybiBtc2dMZW5n dGg7CiAJCQljYXNlIFBxTXNnX0NvcHlEb25lOgpAQCAtMjM0OSw2ICsyMzY5LDkgQEAgcHFGdW5j dGlvbkNhbGwzKFBHY29ubiAqY29ubiwgT2lkIGZuaWQsCiAJCQkJaWYgKGdldFBhcmFtZXRlclN0 YXR1cyhjb25uKSkKIAkJCQkJY29udGludWU7CiAJCQkJYnJlYWs7CisJCQljYXNlIFBxTXNnX0dv QXdheToKKwkJCQljb25uLT5nb2F3YXlfcmVjZWl2ZWQgPSB0cnVlOworCQkJCWJyZWFrOwogCQkJ ZGVmYXVsdDoKIAkJCQkvKiBUaGUgYmFja2VuZCB2aW9sYXRlcyB0aGUgcHJvdG9jb2wuICovCiAJ CQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInByb3RvY29sIGVycm9yOiBpZD0weCV4 IiwgaWQpOwpAQCAtMjQ3NCw2ICsyNDk3LDE0IEBAIGJ1aWxkX3N0YXJ0dXBfcGFja2V0KGNvbnN0 IFBHY29ubiAqY29ubiwgY2hhciAqcGFja2V0LAogCQl9CiAJfQogCisJLyoKKwkgKiBSZXF1ZXN0 IHByb3RvY29sIGV4dGVuc2lvbnMuIE9ubHkgZG8gdGhpcyBmb3IgcHJvdG9jb2wgdmVyc2lvbiAz LjIgYW5kCisJICogbGF0ZXIsIHRvIGF2b2lkIGNvbmZ1c2luZyBvbGQgcHJveGllcyB0aGF0IGRv bid0IHVuZGVyc3RhbmQgX3BxXy4qCisJICogb3B0aW9ucy4KKwkgKi8KKwlpZiAoY29ubi0+cHZl cnNpb24gPj0gUEdfUFJPVE9DT0woMywgMikpCisJCUFERF9TVEFSVFVQX09QVElPTigiX3BxXy5n b2F3YXkiLCAiMSIpOworCiAJLyogQWRkIHRyYWlsaW5nIHRlcm1pbmF0b3IgKi8KIAlpZiAocGFj a2V0KQogCQlwYWNrZXRbcGFja2V0X2xlbl0gPSAnXDAnOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvbGlicHEtZmUuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgK aW5kZXggOTA1ZjJmMzNhYjguLjk2ZWZkY2M1MjNkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9saWJwcS1mZS5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgK QEAgLTYzLDYgKzYzLDEwIEBAIGV4dGVybiAiQyIKIC8qIEluZGljYXRlcyBwcmVzZW5jZSBvZiB0 aGUgUFFBVVRIREFUQV9QUk9NUFRfT0FVVEhfREVWSUNFIGF1dGhkYXRhIGhvb2sgKi8KICNkZWZp bmUgTElCUFFfSEFTX1BST01QVF9PQVVUSF9ERVZJQ0UgMQogCisvKiBGZWF0dXJlcyBhZGRlZCBp biBQb3N0Z3JlU1FMIHYxOTogKi8KKy8qIEluZGljYXRlcyBwcmVzZW5jZSBvZiBQUWdvQXdheVJl Y2VpdmVkICovCisjZGVmaW5lIExJQlBRX0hBU19HT0FXQVkgMQorCiAvKgogICogT3B0aW9uIGZs YWdzIGZvciBQUWNvcHlSZXN1bHQKICAqLwpAQCAtNDExLDYgKzQxNSw3IEBAIGV4dGVybiBjb25z dCBjaGFyICpQUXBhcmFtZXRlclN0YXR1cyhjb25zdCBQR2Nvbm4gKmNvbm4sCiBleHRlcm4gaW50 CVBRcHJvdG9jb2xWZXJzaW9uKGNvbnN0IFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CVBRZnVs bFByb3RvY29sVmVyc2lvbihjb25zdCBQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlQUXNlcnZl clZlcnNpb24oY29uc3QgUEdjb25uICpjb25uKTsKK2V4dGVybiBpbnQJUFFnb0F3YXlSZWNlaXZl ZChQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGNoYXIgKlBRZXJyb3JNZXNzYWdlKGNvbnN0IFBHY29u biAqY29ubik7CiBleHRlcm4gaW50CVBRc29ja2V0KGNvbnN0IFBHY29ubiAqY29ubik7CiBleHRl cm4gaW50CVBRYmFja2VuZFBJRChjb25zdCBQR2Nvbm4gKmNvbm4pOwpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJw cS1pbnQuaAppbmRleCBmYjZhN2NiZjE1ZC4uZDIwMjZhNmE4NDkgMTAwNjQ0Ci0tLSBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xp YnBxLWludC5oCkBAIC01MTEsNiArNTExLDcgQEAgc3RydWN0IHBnX2Nvbm4KIAlib29sCQlzaWdw aXBlX2ZsYWc7CS8qIGNhbiB3ZSBtYXNrIFNJR1BJUEUgdmlhIE1TR19OT1NJR05BTD8gKi8KIAli b29sCQl3cml0ZV9mYWlsZWQ7CS8qIGhhdmUgd2UgaGFkIGEgd3JpdGUgZmFpbHVyZSBvbiBzb2Nr PyAqLwogCWNoYXIJICAgKndyaXRlX2Vycl9tc2c7CS8qIHdyaXRlIGVycm9yIG1lc3NhZ2UsIG9y IE5VTEwgaWYgT09NICovCisJYm9vbAkJZ29hd2F5X3JlY2VpdmVkOwkvKiB0cnVlIGlmIHNlcnZl ciBzZW50IEdvQXdheSBtZXNzYWdlICovCiAKIAlib29sCQlhdXRoX3JlcXVpcmVkOwkvKiByZXF1 aXJlIGFuIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBmcm9tCiAJCQkJCQkJCSAqIHRoZSBzZXJ2 ZXI/ICovCi0tIAoyLjUyLjAKCg== --51e09d9ebbe4eb1961033892669fb326760aa84f93c891ab52f4a47ff870--