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 1vpCsS-003Ulo-2e for pgsql-hackers@arkaria.postgresql.org; Sun, 08 Feb 2026 22:03:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vpCsR-008hhf-2w for pgsql-hackers@arkaria.postgresql.org; Sun, 08 Feb 2026 22:03:35 +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 1vpCsR-008hhX-1b for pgsql-hackers@lists.postgresql.org; Sun, 08 Feb 2026 22:03:35 +0000 Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vpCsP-00000001ijm-1FzG for pgsql-hackers@lists.postgresql.org; Sun, 08 Feb 2026 22:03:35 +0000 Received: by mail-qk1-x734.google.com with SMTP id af79cd13be357-8c69ffb226eso357273285a.1 for ; Sun, 08 Feb 2026 14:03:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1770588211; x=1771193011; darn=lists.postgresql.org; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:from:to:cc:subject:date:message-id:reply-to; bh=CoF9NDX0r3jvXKUtJAvnWTgqJikibFtTlnf1Ceo2W2g=; b=c5bJRuwDQcTfQzJxFkPlT69k7Uq56mwFbZnpr/m6OiLQ+4OxxgBjNocJCi1FOYSp2D wlgHygbRIznlORuaPeBKbkt470qa/C0TYoS97ocGk+GU1UcqRlzWElduTSWN4HAERUJG 2lf/OIfac3LmOiXOPdhcYZv8mMkGLj6Fa85Vc1zi4Ip+pdpbFIledqdg6ps/PHHo2eMX FOiw1Z0TzVpGDXzZnxPozyM0oM2+axI2MbEAyRXA1Ord1J1EEJRpPdmt29nZQXT248D5 EvJ1fQoJ3gY5G8d4EYc3eZVYCGxAfvUHmNaeZzY6/hinkX9k/7Qcx1CcJpu+rqLNtS2T d+WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770588211; x=1771193011; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CoF9NDX0r3jvXKUtJAvnWTgqJikibFtTlnf1Ceo2W2g=; b=brCY+Z2j0hq/26Un9YyvVsAKgCtnp+V8rd71FLKWly909YXA3UGq2AEIbvqaq46nHL BCOqxhDGMP3K1OUSnA4O5G86hq9onncwPL2+M4bJucptBdTkLW121dgFnCikFVjODXY1 64qyoWZIfOX/Hp/MUw6EpPtHKowJRiGUFKHOxaG8aFaaLz3VeOqPTnr/OLmSalxqje4R NnUWQDUnsgff/qGCqMQ37OW6BRC6Xn1b1ebVKxBptdWclgasw5SD/SiahHcrgdvlCsA0 EBcbeu9cnpVOzNKdgAnaslNHM5WWcQPFsFvRUBdrGv60kp4ta2zBdCp/+kka6Q8I7g+3 n2Xw== X-Gm-Message-State: AOJu0YzmwrE8s0NQcjqepuwEcQMigem6GDpDcE6n4lSsNWJg6Bu2lkgy tK1BetiGCzseDRyXGVXIoDwlP9wwFKk2kv3oLWirAo9Hn8uWNypeLOa1ht+4ZoRbonQ= X-Gm-Gg: AZuq6aKAAtZdYLl5Uha1zAu5PZvDNIqGNUx1puhut0+L9T8O0YxO32UIijcL00wrWG1 +xx3B/jS1Hb4FQJ6m+fBmxMFLurIsmgmLSKWjezZMNLRWuIEIeBymhYbo5TXEoJtOwnRe7QkrdB VaJu4mAsEQ2ODp3qRQCz/lTAy0dsx9h0Jtap49DDUCuwD5yefF5n2B/lsNIvZt/xdQ9Zp6I0O4e bbUJLt67JIcwswf7J7Zi01IipK8Omo0ohnRBWV/mNphgG7iE12BROuZDoA5GYKgGmqpGizQkfcQ nqNN7DgtrMFtaRh/6rcncDYHlUFQqwdha8wXG/k7evF5ZVIMZ7C9myyZF+jT6hqH6Tf4dy1s3Yn 169iRGJTTVYFhg9zvh6YUuT+p9hdyBmkbjWgLqX9Lsfn6BkaTsnEAm5+cSnGHkPL4Wsj7DsBi0r hHFCKBNPR4LBr0EqoObgQkUeSj9VaWMx6Jn/E= X-Received: by 2002:a05:620a:1710:b0:8c7:155a:6d04 with SMTP id af79cd13be357-8caf1023ec9mr1257677385a.54.1770588211111; Sun, 08 Feb 2026 14:03:31 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8cafa4b49casm662117885a.49.2026.02.08.14.03.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 08 Feb 2026 14:03:30 -0800 (PST) Content-Type: multipart/mixed; boundary=4cca3b359b24a9c4ab83fb6dea782f6c417b9c326cd8b9c0ac226c67549f Date: Sun, 08 Feb 2026 23:03:27 +0100 Message-Id: Cc: "PostgreSQL Hackers" , "Dave Cramer" , "Jacob Champion" , "Heikki Linnakangas" Subject: Re: Add GoAway protocol message for graceful but fast server shutdown/switchover To: "Zsolt Parragi" From: "Jelte Fennema-Nio" MIME-Version: 1.0 References: In-Reply-To: X-TUID: 58pBJ3Lce8wk List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --4cca3b359b24a9c4ab83fb6dea782f6c417b9c326cd8b9c0ac226c67549f Content-Type: multipart/alternative; boundary=0aa46894d4e2f01a6af3cd42d8397ddea0ba440f9631883305257c458957 --0aa46894d4e2f01a6af3cd42d8397ddea0ba440f9631883305257c458957 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Tue, 27 Jan 2026 at 13:57, Zsolt Parragi wro= te: > I only have a few stylistic comments and one question about the wal > sender part - but maybe I don't understand something there. Thanks for the review. I updated the stylistic things. And I agree with you on the walsender note, so I stopped sending the signal to those backends. I also rebased to use Jacob his new table and slightly tweaked the docs a bit in a few places. Attached is v5 --0aa46894d4e2f01a6af3cd42d8397ddea0ba440f9631883305257c458957-- --4cca3b359b24a9c4ab83fb6dea782f6c417b9c326cd8b9c0ac226c67549f Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=nocfbot.v5-0002-Add-pytest-based-tests-for-GoAway-message.patch Content-Type: text/x-patch; charset=utf-8; name=nocfbot.v5-0002-Add-pytest-based-tests-for-GoAway-message.patch RnJvbSBmYjk4YWYyMjYyNzRlZjE0ZThlZWQwZjc0NjgwZThiOGE0ZTUxODIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUaHUsIDIzIE9jdCAyMDI1IDE0OjMxOjUyICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NSAyLzJdIEFkZCBweXRlc3QgYmFzZWQgdGVzdHMgZm9yIEdvQXdheSBtZXNzYWdlCgpJIHVzZWQg dGhpcyBwYXRjaHNldCBhcyBhIHRyaWFsIGZvciB0aGUgbmV3IHB5dGVzdCBzdWl0ZSB0aGF0IEph Y29iIGlzCnRyeWluZyB0byBpbnRyb2R1Y2UuIEZlZWwgZnJlZSB0byBsb29rIGF0IGl0LCBidXQg SSdkIHNheSBkb24ndCByZXZpZXcKdGhpcyB0ZXN0IGluIGRldGFpbCB1bnRpbCB3ZSBoYXZlIHRo ZSBweXRlc3QgY2hhbmdlcyBtZXJnZWQgb3IgYXQgbGVhc3QKaW4gYSBtb3JlIGFncmVlZCB1cG9u IHN0YXRlLiBUaGlzIHBhdGNoIGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGF0IHYzCnBhdGNoc2V0LiBU aGlzIHRlc3QgaXMgbm90IGFwcGxpZWQgYnkgY2Zib3QuCgpUZXN0aW5nIHRoaXMgYW55IG90aGVy IHdheSBpcyBhY3R1YWxseSBxdWl0ZSBkaWZmaWN1bHQgd2l0aCB0aGUKaW5mcmFzdHJ1Y3R1cmUg d2UgY3VycmVudGx5IGhhdmUgKG9mIGNvdXJzZSBJIGNvdWxkIGNoYW5nZSB0aGF0LCBidXQgSSdk Cm11Y2ggcmF0aGVyIHNwZW5kIHRoYXQgZW5lcmd5L3RpbWUgb24gbWFraW5nIHRoZSBweXRlc3Qg dGVzdCBzdWl0ZSBhCnRoaW5nKToKLSBwZ3JlZ3Jlc3MgYW5kIHBlcmwgdGVzdHMgZG9uJ3Qgd29y ayBiZWNhdXNlIHdlIG5lZWQgdG8gY2FsbCBhIG5ldwogIGxpYnBxIGZ1bmN0aW9uIHRoYXQgaXMg bm90IGV4cG9zZWQgaW4gcHNxbCAoSSBndWVzcyBJIGNvdWxkIGV4cG9zZSBpdAogIHdpdGggc29t ZSBcZ29hd2F5cmVjZWl2ZWQgY29tbWFuZCwgYnV0IGl0IGRvZXNuJ3Qgc2VlbSB2ZXJ5IHVzZWZ1 bCkuCi0gbGlicHFfcGlwZWxpbmUgY2Fubm90IHRlc3QgdGhpcyBiZWNhdXNlIGl0IHdvdWxkIG5l ZWQgdG8gcmVzdGFydAogIHRoZSBQb3N0Z3JlcyBzZXJ2ZXIgYW5kIGFsbCBpdCBoYXMKLS0tCiBz cmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCAgICAgICAgfCAgMSArCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9weXQvdGVzdF9nb2F3YXkucHkgfCA0NyArKysrKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkgICAgICAgICAgfCAxOCArKysrKysr KysrCiBzcmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5weSAgICAgICAgfCAyNCArKysrKysr KysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9weXQvdGVzdF9nb2F3YXkucHkKCmRpZmYgLS1naXQg YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L21lc29uLmJ1aWxkCmluZGV4IDU2NzkwZGQ5MmE5Li45ODNhZjFkNWJlYSAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvbWVzb24uYnVpbGQKQEAgLTE2Myw2ICsxNjMsNyBAQCB0ZXN0cyArPSB7CiAgICdweXRlc3Qn OiB7CiAgICAgJ3Rlc3RzJzogWwogICAgICAgJ3B5dC90ZXN0X2xvYWRfYmFsYW5jZS5weScsCisg ICAgICAncHl0L3Rlc3RfZ29hd2F5LnB5JywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfZ29hd2F5LnB5IGIvc3JjL2ludGVyZmFjZXMv bGlicHEvcHl0L3Rlc3RfZ29hd2F5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5hMDNiNTMzZjNmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL3B5dC90ZXN0X2dvYXdheS5weQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoYykg MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIiIiCitUZXN0cyBm b3IgdGhlIEdvQXdheSBwcm90b2NvbCBtZXNzYWdlIGR1cmluZyBzbWFydCBzaHV0ZG93bi4KKwor VGhlIEdvQXdheSBtZXNzYWdlIGlzIHNlbnQgYnkgdGhlIHNlcnZlciBkdXJpbmcgc21hcnQgc2h1 dGRvd24gdG8gcG9saXRlbHkKK3JlcXVlc3QgdGhhdCBjbGllbnRzIGRpc2Nvbm5lY3Qgd2hlbiBj b252ZW5pZW50LiBUaGUgY29ubmVjdGlvbiByZW1haW5zCitmdW5jdGlvbmFsIGFmdGVyIHJlY2Vp dmluZyB0aGUgbWVzc2FnZS4KKyIiIgorCisKK2RlZiB0ZXN0X2dvYXdheV9zbWFydF9zaHV0ZG93 bihwZywgd2FpdF91bnRpbCk6CisgICAgIiIiCisgICAgVGVzdCB0aGF0IEdvQXdheSBtZXNzYWdl IGlzIHNlbnQgZHVyaW5nIHNtYXJ0IHNodXRkb3duLgorCisgICAgVGhpcyB0ZXN0OgorICAgIDEu IENvbm5lY3RzIHRvIGEgcnVubmluZyBQb3N0Z3JlU1FMIHNlcnZlciB2aWEgVW5peCBzb2NrZXQK KyAgICAyLiBWZXJpZmllcyBHb0F3YXkgaXMgbm90IHJlY2VpdmVkIGluaXRpYWxseQorICAgIDMu IEluaXRpYXRlcyBhIHNtYXJ0IHNodXRkb3duCisgICAgNC4gVmVyaWZpZXMgdGhhdCBHb0F3YXkg aXMgcmVjZWl2ZWQKKyAgICA1LiBWZXJpZmllcyB0aGF0IHF1ZXJpZXMgc3RpbGwgd29yayBhZnRl ciBHb0F3YXkKKyAgICAiIiIKKworICAgICMgQ29ubmVjdCB0byB0aGUgc2VydmVyIHZpYSBVbml4 IHNvY2tldCwgbGlicHEgd2lsbCByZXF1ZXN0IHRoZQorICAgICMgX3BxXy5nb2F3YXkgcHJvdG9j b2wgZXh0ZW5zaW9uCisgICAgY29ubiA9IHBnLmNvbm5lY3QobWF4X3Byb3RvY29sX3ZlcnNpb249 ImxhdGVzdCIpCisKKyAgICAjIEluaXRpYWxseSwgR29Bd2F5IHNob3VsZCBub3QgYmUgcmVjZWl2 ZWQKKyAgICBhc3NlcnQgbm90IGNvbm4uZ29hd2F5X3JlY2VpdmVkKCksICJHb0F3YXkgc2hvdWxk IG5vdCBiZSByZWNlaXZlZCBpbml0aWFsbHkiCisKKyAgICAjIEV4ZWN1dGUgYSBzaW1wbGUgcXVl cnkgdG8gZW5zdXJlIGNvbm5lY3Rpb24gaXMgd29ya2luZworICAgIGNvbm4uc3FsKCJTRUxFQ1Qg MSIpCisKKyAgICBwZy5wZ19jdGwoInN0b3AiLCAiLS1tb2RlIiwgInNtYXJ0IiwgIi0tbm8td2Fp dCIpCisKKyAgICBmb3IgXyBpbiB3YWl0X3VudGlsKCJEaWQgbm90IHJlY2VpdmUgR29Bd2F5IGFm dGVyIHNtYXJ0IHNodXRkb3duIik6CisgICAgICAgICMgQ29uc3VtZSBhbnkgZGF0YSB0aGUgYmFj a2VuZCBtYXkgaGF2ZSBzZW50IChsaWtlIEdvQXdheSkKKyAgICAgICAgYXNzZXJ0IGNvbm4uY29u c3VtZV9pbnB1dCgpCisgICAgICAgIGlmIGNvbm4uZ29hd2F5X3JlY2VpdmVkKCk6CisgICAgICAg ICAgICBicmVhaworCisgICAgIyBDb25uZWN0aW9uIHNob3VsZCBzdGlsbCBiZSBmdW5jdGlvbmFs IGFmdGVyIHJlY2VpdmluZyBHb0F3YXkKKyAgICBjb25uLnNxbCgiU0VMRUNUIDIiKQorICAgIGNv bm4uc3FsKCJTRUxFQ1QgMyIpCisKKyAgICAjIFZlcmlmeSBHb0F3YXkgaXMgc3RpbGwgZmxhZ2dl ZAorICAgIGFzc2VydCBjb25uLmdvYXdheV9yZWNlaXZlZCgpLCAiR29Bd2F5IGZsYWcgc2hvdWxk IHJlbWFpbiBzZXQiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkg Yi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkKaW5kZXggMWMwNTliOWI0NDYuLmMxMzc2 ODhhMWFhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2NvcmUucHkKKysrIGIv c3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19jb3JlLnB5CkBAIC0xNDcsNiArMTQ3LDEyIEBAIGRlZiBs b2FkX2xpYnBxX2hhbmRsZShsaWJkaXIsIGJpbmRpcik6CiAgICAgbGliLlBRcmVzdWx0RXJyb3JG aWVsZC5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCiAgICAgbGliLlBRcmVzdWx0RXJyb3JGaWVs ZC5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwgY3R5cGVzLmNfaW50XQogCisgICAgbGliLlBRZ29B d2F5UmVjZWl2ZWQucmVzdHlwZSA9IGN0eXBlcy5jX2ludAorICAgIGxpYi5QUWdvQXdheVJlY2Vp dmVkLmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKworICAgIGxpYi5QUWNvbnN1bWVJbnB1dC5yZXN0 eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBRY29uc3VtZUlucHV0LmFyZ3R5cGVzID0gW19Q R2Nvbm5fcF0KKwogICAgIHJldHVybiBsaWIKIAogCkBAIC00MTksNiArNDI1LDE4IEBAIGNsYXNz IFBHY29ubihjb250ZXh0bGliLkFic3RyYWN0Q29udGV4dE1hbmFnZXIpOgogICAgICAgICBlbHNl OgogICAgICAgICAgICAgcmVzLnJhaXNlX2Vycm9yKCkKIAorICAgIGRlZiBjb25zdW1lX2lucHV0 KHNlbGYpIC0+IGJvb2w6CisgICAgICAgICIiIgorICAgICAgICBDb25zdW1lcyBhbnkgYXZhaWxh YmxlIGlucHV0IGZyb20gdGhlIHNlcnZlci4gUmV0dXJucyBUcnVlIG9uIHN1Y2Nlc3MuCisgICAg ICAgICIiIgorICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9saWIuUFFjb25zdW1lSW5wdXQoc2Vs Zi5faGFuZGxlKSkKKworICAgIGRlZiBnb2F3YXlfcmVjZWl2ZWQoc2VsZikgLT4gYm9vbDoKKyAg ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgVHJ1ZSBpZiBhIEdvQXdheSBtZXNzYWdlIHdhcyBy ZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gYm9v bChzZWxmLl9saWIuUFFnb0F3YXlSZWNlaXZlZChzZWxmLl9oYW5kbGUpKQorCiAKIGRlZiBjb25u c3RyKG9wdHM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6CiAgICAgIiIiCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL2Zp eHR1cmVzLnB5CmluZGV4IDhjMGNiNjBkYWE1Li40YWE2YzczMzQ5ZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcHl0ZXN0L3B5cGcvZml4dHVyZXMucHkKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcv Zml4dHVyZXMucHkKQEAgLTU3LDYgKzU3LDMwIEBAIGRlZiByZW1haW5pbmdfdGltZW91dF9tb2R1 bGUoKToKICAgICByZXR1cm4gbGFtYmRhOiBtYXgoZGVhZGxpbmUgLSB0aW1lLm1vbm90b25pYygp LCAwKQogCiAKK0BweXRlc3QuZml4dHVyZQorZGVmIHdhaXRfdW50aWwocmVtYWluaW5nX3RpbWVv dXQpOgorICAgIGRlZiB3YWl0X3VudGlsKGVycm9yX21lc3NhZ2U9IkRpZCBub3QgY29tcGxldGUg aW4gdGltZSIsIHRpbWVvdXQ9Tm9uZSwgaW50ZXJ2YWw9MSk6CisgICAgICAgICIiIgorICAgICAg ICBMb29wIHVudGlsIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQuIElmIHRoZSB0aW1lb3V0IGlzIHJl YWNoZWQsIHJhaXNlIGFuCisgICAgICAgIGV4Y2VwdGlvbiB3aXRoIHRoZSBnaXZlbiBlcnJvciBt ZXNzYWdlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgdGltZW91dCBpcyBOb25lOgorICAgICAg ICAgICAgdGltZW91dCA9IHJlbWFpbmluZ190aW1lb3V0KCkKKworICAgICAgICBlbmQgPSB0aW1l LnRpbWUoKSArIHRpbWVvdXQKKyAgICAgICAgcHJpbnRfcHJvZ3Jlc3MgPSB0aW1lb3V0IC8gMTAg PiA0CisgICAgICAgIGxhc3RfcHJpbnRlZF9wcm9ncmVzcyA9IDAKKyAgICAgICAgd2hpbGUgdGlt ZS50aW1lKCkgPCBlbmQ6CisgICAgICAgICAgICBpZiBwcmludF9wcm9ncmVzcyBhbmQgdGltZS50 aW1lKCkgLSBsYXN0X3ByaW50ZWRfcHJvZ3Jlc3MgPiA0OgorICAgICAgICAgICAgICAgIGxhc3Rf cHJpbnRlZF9wcm9ncmVzcyA9IHRpbWUudGltZSgpCisgICAgICAgICAgICAgICAgcHJpbnQoZiJ7 ZXJyb3JfbWVzc2FnZX0gLSB3aWxsIHJldHJ5IikKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAg ICAgICB0aW1lLnNsZWVwKGludGVydmFsKQorICAgICAgICByYWlzZSBUaW1lb3V0RXJyb3IoZXJy b3JfbWVzc2FnZSkKKworICAgIHJldHVybiB3YWl0X3VudGlsCisKKwogQHB5dGVzdC5maXh0dXJl KHNjb3BlPSJzZXNzaW9uIikKIGRlZiBsaWJwcV9oYW5kbGUobGliZGlyLCBiaW5kaXIpOgogICAg ICIiIgotLSAKMi41Mi4wCgo= --4cca3b359b24a9c4ab83fb6dea782f6c417b9c326cd8b9c0ac226c67549f Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v5-0001-Add-GoAway-protocol-message-for-graceful-but-fast.patch Content-Type: text/x-patch; charset=utf-8; name=v5-0001-Add-GoAway-protocol-message-for-graceful-but-fast.patch RnJvbSBlN2Q5NTJiNTM1ZGJmOWU5NmFlNzZlMWQ0MmVlZTZhMmFkNjdmN2Y1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDE5IE9jdCAyMDI1IDAwOjMwOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 NSAxLzJdIEFkZCBHb0F3YXkgcHJvdG9jb2wgbWVzc2FnZSBmb3IgZ3JhY2VmdWwgYnV0IGZhc3QK 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 ICAgfCA1MiArKysrKysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21s ICAgICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICB8IDIzICsrKysrKysrKwogc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY3NpZ25hbC5jIHwgIDMgKysKIHNyYy9iYWNrZW5kL3Rjb3AvYmFja2VuZF9z dGFydHVwLmMgICB8IDIxICsrKysrKystLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAg ICAgICAgIHwgMzYgKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgg ICAgICAgICB8ICA1ICsrCiBzcmMvaW5jbHVkZS9saWJwcS9wcm90b2NvbC5oICAgICAgICAgfCAg MSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCAgICAgfCAgMSArCiBzcmMvaW5j bHVkZS90Y29wL3Rjb3Bwcm90LmggICAgICAgICAgfCAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJw cS9leHBvcnRzLnR4dCAgICAgfCAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0 LmMgICAgfCAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgICAgICAgfCAyNyAr KysrKysrKysrKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgIHwgMzYgKysr KysrKysrKysrLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggICAgICB8ICA1ICsr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgfCAgMSArCiAxNiBmaWxlcyBj aGFuZ2VkLCAyNzMgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCAy MWUxYmEzNGE0ZS4uOWE2Mzg0N2NmZWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCkBAIC0yMjMxLDYgKzIyMzEsMTQgQEAg cG9zdGdyZXNxbDovLyUyRnZhciUyRmxpYiUyRnBvc3RncmVzcWwvZGJuYW1lCiAgICAgICAgIGVx dWl2YWxlbnQgdG8gdGhlIGxhdGVzdCBwcm90b2NvbCB2ZXJzaW9uIHN1cHBvcnRlZCBieSB0aGUg bGlicHEKICAgICAgICAgdmVyc2lvbiBiZWluZyB1c2VkLCB3aGljaCBpcyBjdXJyZW50bHkgPGxp dGVyYWw+My4yPC9saXRlcmFsPi4KICAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAg ICAgICAgV2hlbiB1c2luZyBwcm90b2NvbCB2ZXJzaW9uIDxsaXRlcmFsPjMuMjwvbGl0ZXJhbD4g b3IgaGlnaGVyLAorICAgICAgICA8YXBwbGljYXRpb24+bGlicHE8L2FwcGxpY2F0aW9uPiByZXF1 ZXN0cyBhbGwgc3VwcG9ydGVkCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9InByb3RvY29sLWV4dGVu c2lvbnMiPnByb3RvY29sIGV4dGVuc2lvbnM8L2xpbms+CisgICAgICAgIGZyb20gdGhlIHNlcnZl ciwgc3VjaCBhcyA8bGl0ZXJhbD5nb2F3YXk8L2xpdGVyYWw+CisgICAgICAgIHdoaWNoIGVuYWJs ZXMgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFnb0F3YXlSZWNlaXZlZCIvPi4KKyAgICAgICA8L3Bh cmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMjk4Nyw2 ICsyOTk1LDUwIEBAIGludCBQUXNlcnZlclZlcnNpb24oY29uc3QgUEdjb25uICpjb25uKTsKICAg ICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkg aWQ9ImxpYnBxLVBRZ29Bd2F5UmVjZWl2ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFnb0F3 YXlSZWNlaXZlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWdvQXdheVJlY2VpdmVk PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBh cmE+CisgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBzZXJ2ZXIgaGFzIHNlbnQgYSA8bGl0ZXJh bD5Hb0F3YXk8L2xpdGVyYWw+IG1lc3NhZ2UsCisgICAgICAgcmVxdWVzdGluZyB0aGUgY2xpZW50 IHRvIGRpc2Nvbm5lY3Qgd2hlbiBjb252ZW5pZW50LgorCis8c3lub3BzaXM+CitpbnQgUFFnb0F3 YXlSZWNlaXZlZChjb25zdCBQR2Nvbm4gKmNvbm4pOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFy YT4KKworICAgICAgPHBhcmE+CisgICAgICAgVGhlIDxsaXRlcmFsPkdvQXdheTwvbGl0ZXJhbD4g bWVzc2FnZSBpcyBzZW50IGJ5IHRoZSBzZXJ2ZXIgZHVyaW5nIGEKKyAgICAgICBzbWFydCBzaHV0 ZG93biB0byBwb2xpdGVseSByZXF1ZXN0IHRoYXQgY2xpZW50cyBkaXNjb25uZWN0LiBUaGlzIGlz CisgICAgICAgYWR2aXNvcnkgb25seSAtIHRoZSBjb25uZWN0aW9uIHJlbWFpbnMgZnVsbHkgZnVu Y3Rpb25hbCBhbmQgcXVlcmllcworICAgICAgIGNhbiBjb250aW51ZSB0byBiZSBleGVjdXRlZC4g QXBwbGljYXRpb25zIGNhbiBjaG9vc2UgdG8gaG9ub3IgdGhlIHJlcXVlc3QKKyAgICAgICBieSBj YWxsaW5nIHRoaXMgZnVuY3Rpb24gcGVyaW9kaWNhbGx5IGFuZCBkaXNjb25uZWN0IGdyYWNlZnVs bHkgd2hlbgorICAgICAgIHBvc3NpYmxlLCBzdWNoIGFzIGFmdGVyIGNvbXBsZXRpbmcgdGhlIGN1 cnJlbnQgdHJhbnNhY3Rpb24uCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAg IFRoaXMgbWVzc2FnZSBpcyBvbmx5IHNlbnQgdG8gY2xpZW50cyB0aGF0IHJlcXVlc3QgdGhlCisg ICAgICAgPGxpdGVyYWw+Z29hd2F5PC9saXRlcmFsPiBwcm90b2NvbCBleHRlbnNpb24gaW4gdGhl IHN0YXJ0dXAgbWVzc2FnZSwKKyAgICAgICB3aGljaCA8YXBwbGljYXRpb24+bGlicHE8L2FwcGxp Y2F0aW9uPiBkb2VzIHdoZW4gdXNpbmcgcHJvdG9jb2wgdmVyc2lvbgorICAgICAgIDMuMiBvciBo aWdoZXIgKHNlZSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LW1heC1wcm90b2NvbC12ZXJz aW9uIi8+KS4KKyAgICAgICBUaGUgZnVuY3Rpb24gcmV0dXJucyAxIGlmIHRoZSA8bGl0ZXJhbD5H b0F3YXk8L2xpdGVyYWw+IG1lc3NhZ2Ugd2FzCisgICAgICAgcmVjZWl2ZWQsIDAgb3RoZXJ3aXNl LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICA8ZnVuY3Rpb24+UFFnb0F3 YXlSZWNlaXZlZDwvZnVuY3Rpb24+IGRvZXMgbm90IGFjdHVhbGx5IHJlYWQgZGF0YSBmcm9tIHRo ZQorICAgICAgIHNlcnZlcjsgaXQganVzdCByZXR1cm5zIG1lc3NhZ2VzIHByZXZpb3VzbHkgYWJz b3JiZWQgYnkgYW5vdGhlcgorICAgICAgIDxhcHBsaWNhdGlvbj5saWJwcTwvYXBwbGljYXRpb24+ IGZ1bmN0aW9uLiBTbyBub3JtYWxseSB5b3Ugd291bGQgZmlyc3QKKyAgICAgICBjYWxsIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRY29uc3VtZUlucHV0Ii8+LCB0aGVuIGNoZWNrCisgICAgICAgPGZ1 bmN0aW9uPlBRZ29Bd2F5UmVjZWl2ZWQ8L2Z1bmN0aW9uPi4gIFlvdSBjYW4gdXNlCisgICAgICAg PGZ1bmN0aW9uPnNlbGVjdCgpPC9mdW5jdGlvbj4gdG8gd2FpdCBmb3IgZGF0YSB0byBhcnJpdmUg ZnJvbSB0aGUKKyAgICAgICBzZXJ2ZXIsIHRoZXJlYnkgdXNpbmcgbm8gPGFjcm9ueW0+Q1BVPC9h Y3JvbnltPiBwb3dlciB1bmxlc3MgdGhlcmUgaXMKKyAgICAgICBzb21ldGhpbmcgdG8gZG8uICAo U2VlIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc29ja2V0Ii8+IHRvIG9idGFpbiB0aGUgZmlsZQor ICAgICAgIGRlc2NyaXB0b3IgbnVtYmVyIHRvIHVzZSB3aXRoIDxmdW5jdGlvbj5zZWxlY3QoKTwv ZnVuY3Rpb24+LikKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZXJyb3JNZXNzYWdlIj4K ICAgICAgPHRlcm0+CiAgICAgICA8ZnVuY3Rpb24+UFFlcnJvck1lc3NhZ2U8L2Z1bmN0aW9uPjxp bmRleHRlcm0+PHByaW1hcnk+UFFlcnJvck1lc3NhZ2U8L3ByaW1hcnk+PC9pbmRleHRlcm0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCBiL2RvYy9zcmMvc2dtbC9wcm90 b2NvbC5zZ21sCmluZGV4IDg5YWM2ODBlZmQ1Li5lNDMwYTA2MTRmYyAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwK QEAgLTMzNSw4ICszMzUsMTQgQEAKIAogICAgICA8dGJvZHk+CiAgICAgICA8cm93PgotICAgICAg IDxlbnRyeSBuYW1lc3Q9Imxhc3QiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj4KLSAg ICAgICAgPGVtcGhhc2lzPihObyBzdXBwb3J0ZWQgcHJvdG9jb2wgZXh0ZW5zaW9ucyBhcmUgY3Vy cmVudGx5IGRlZmluZWQuKTwvZW1waGFzaXM+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPmdvYXdh eTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD4xPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgPGVudHJ5PlBvc3RncmVTUUwgMTk8L2VudHJ5PgorICAgICAgIDxlbnRy eT4KKyAgICAgICAgRW5hYmxlcyB0aGUgc2VydmVyIHRvIHNlbmQKKyAgICAgICAgPGxpbmsgbGlu a2VuZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUdvQXdheSI+R29Bd2F5PC9saW5rPgorICAg ICAgICBtZXNzYWdlcyB0byByZXF1ZXN0IHRoZSBjbGllbnQgdG8gZGlzY29ubmVjdCB3aGVuIGNv bnZlbmllbnQuCisgICAgICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1hc3luYyIvPiBm b3IgbW9yZSBkZXRhaWxzLgogICAgICAgIDwvZW50cnk+CiAgICAgICA8L3Jvdz4KICAgICAgPC90 Ym9keT4KQEAgLTY5OSw2ICs3MDUsMTcgQEAKICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3Rp dGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg PHRlcm0+R29Bd2F5PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAg ICAgICBUaGUgc2VydmVyIHJlcXVlc3RzIHRoZSBjbGllbnQgcG9saXRlbHkgdG8gY2xvc2UgdGhl IGNvbm5lY3Rpb24gYXQgaXRzCisgICAgICAgIGVhcmxpZXN0IGNvbnZlbmllbnQgbW9tZW50LiBT ZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtYXN5bmMiLz4gZm9yCisgICAgICAgIG1vcmUgZGV0 YWlscy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3Rl bnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4KIApAQCAtMTQ0Nyw3ICsxNDY0 LDcgQEAgU0VMQ1QgMS8wOzwhLS0gdGhpcyB0eXBvIGlzIGludGVudGlvbmFsIC0tPgogICAgPC9w YXJhPgogCiAgICA8cGFyYT4KLSAgICBJdCBpcyBwb3NzaWJsZSBmb3IgTm90aWNlUmVzcG9uc2Ug YW5kIFBhcmFtZXRlclN0YXR1cyBtZXNzYWdlcyB0byBiZQorICAgIEl0IGlzIHBvc3NpYmxlIGZv ciBOb3RpY2VSZXNwb25zZSwgUGFyYW1ldGVyU3RhdHVzIGFuZCBHb0F3YXkgbWVzc2FnZXMgdG8g YmUKICAgICBpbnRlcnNwZXJzZWQgYmV0d2VlbiBDb3B5RGF0YSBtZXNzYWdlczsgZnJvbnRlbmRz IG11c3QgaGFuZGxlIHRoZXNlIGNhc2VzLAogICAgIGFuZCBzaG91bGQgYmUgcHJlcGFyZWQgZm9y IG90aGVyIGFzeW5jaHJvbm91cyBtZXNzYWdlIHR5cGVzIGFzIHdlbGwgKHNlZQogICAgIDx4cmVm IGxpbmtlbmQ9InByb3RvY29sLWFzeW5jIi8+KS4gIE90aGVyd2lzZSwgYW55IG1lc3NhZ2UgdHlw ZSBvdGhlciB0aGFuCkBAIC0xNTU4LDYgKzE1NzUsMjggQEAgU0VMQ1QgMS8wOzwhLS0gdGhpcyB0 eXBvIGlzIGludGVudGlvbmFsIC0tPgogICAgIHBhcmFtZXRlcnMgdGhhdCBpdCBkb2VzIG5vdCB1 bmRlcnN0YW5kIG9yIGNhcmUgYWJvdXQuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIEEg R29Bd2F5IG1lc3NhZ2UgaXMgc2VudCBieSB0aGUgc2VydmVyIHRvIHBvbGl0ZWx5IHJlcXVlc3Qg dGhlIGNsaWVudCB0bworICAgIGRpc2Nvbm5lY3Qgd2hlbiBjb252ZW5pZW50IGFuZCByZWNvbm5l Y3Qgd2hlbiB0aGUgY2xpZW50IG5lZWRzIGEgY29ubmVjdGlvbgorICAgIGFnYWluLiBUaGlzIGlz IGFkdmlzb3J5IG9ubHkgLSB0aGUgY29ubmVjdGlvbiByZW1haW5zIGZ1bGx5IGZ1bmN0aW9uYWwg YW5kCisgICAgcXVlcmllcyBjYW4gY29udGludWUgdG8gYmUgZXhlY3V0ZWQuICJXaGVuIGNvbnZl bmllbnQiIGlzIHZlcnkgdmFndWVseQorICAgIGRlZmluZWQgb24gcHVycG9zZSBiZWNhdXNlIGl0 IGRlcGVuZHMgb24gdGhlIGNsaWVudCBhbmQgYXBwbGljYXRpb24gd2hldGhlcgorICAgIHN1Y2gg YSBtb21lbnQgZXZlbiBleGlzdHMuIFNvIGNsaWVudHMgYXJlIGFsbG93ZWQgdG8gY29tcGxldGVs eSBpZ25vcmUgdGhpcworICAgIG1lc3NhZ2UgYW5kIGRpc2Nvbm5lY3Qgd2hlbmV2ZXIgdGhleSBv dGhlcndpc2Ugd291bGQgaGF2ZS4gQW4gaW1wb3J0YW50CisgICAgdHlwZSBvZiBjbGllbnQgdGhh dCBjYW4gYWN0dWFsbHkgaG9ub3IgdGhlIHJlcXVlc3QgdG8gZGlzY29ubmVjdCBlYXJseSBpcyBh CisgICAgY2xpZW50IHRoYXQgbWFpbnRhaW5zIGEgY29ubmVjdGlvbiBwb29sLiBTdWNoIGEgY2xp ZW50IGNhbiBob25vciB0aGUKKyAgICByZXF1ZXN0IGJ5IGRpc2Nvbm5lY3RpbmcgYSBjb25uZWN0 aW9uIHRoYXQgaGFzIHJlY2VpdmVkIGEgR29Bd2F5IG1lc3NhZ2UKKyAgICB3aGVuIGl0J3Mgbm90 IGluIHVzZSBieSBhIHVzZXIgb2YgdGhlIHBvb2wuIEl0IGlzIGFsbG93ZWQgZm9yIGEgc2VydmVy IHRvCisgICAgc2VuZCBtdWx0aXBsZSBHb0F3YXkgbWVzc2FnZXMgb24gdGhlIHNhbWUgY29ubmVj dGlvbiwgYnV0IGFueSBzdWJzZXF1ZW50CisgICAgR29Bd2F5IG1lc3NhZ2VzIGFmdGVyIHRoZSBm aXJzdCBHb0F3YXkgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIGNsaWVudCdzCisgICAgYmVoYXZpb3Iu IFRoZSBHb0F3YXkgbWVzc2FnZSBpcyBjdXJyZW50bHkgc2VudCBieSBQb3N0Z3JlcyBkdXJpbmcg dGhlCisgICAgInNtYXJ0IiBzaHV0ZG93biBwcm9jZWR1cmUgKGkuZS4gd2hlbiBwb3N0bWFzdGVy IHJlY2VpdmVzCisgICAgPHN5c3RlbWl0ZW0+U0lHVEVSTTwvc3lzdGVtaXRlbT4pLiBUaGUgc2Vy dmVyIG9ubHkgc2VuZHMgdGhlIEdvQXdheQorICAgIG1lc3NhZ2UgdG8gY2xpZW50cyB0aGF0IHJl cXVlc3QgdGhlIDxsaXRlcmFsPmdvYXdheTwvbGl0ZXJhbD4gcHJvdG9jb2wKKyAgICBleHRlbnNp b24gYnkgc2V0dGluZyA8bGl0ZXJhbD5fcHFfLmdvYXdheTwvbGl0ZXJhbD4gdG8gPGxpdGVyYWw+ MTwvbGl0ZXJhbD4KKyAgICBpbiB0aGUgU3RhcnR1cE1lc3NhZ2UuCisgICA8L3BhcmE+CisKICAg IDxwYXJhPgogICAgIElmIGEgZnJvbnRlbmQgaXNzdWVzIGEgPGNvbW1hbmQ+TElTVEVOPC9jb21t YW5kPiBjb21tYW5kLCB0aGVuIHRoZQogICAgIGJhY2tlbmQgd2lsbCBzZW5kIGEgTm90aWZpY2F0 aW9uUmVzcG9uc2UgbWVzc2FnZSAobm90IHRvIGJlCkBAIC01MzQ4LDYgKzUzODcsMzEgQEAgcHNx bCAiZGJuYW1lPXBvc3RncmVzIHJlcGxpY2F0aW9uPWRhdGFiYXNlIiAtYyAiSURFTlRJRllfU1lT VEVNOyIKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0 ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Hb0F3YXkiPgorICAgIDx0ZXJtPkdv QXdheSAoQik8L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8dmFyaWFibGVsaXN0PgorICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRlMSgnZycpPC90ZXJtPgorICAgICAg IDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZGVudGlmaWVzIHRoZSBtZXNz YWdlIGFzIGEgcG9saXRlIHJlcXVlc3QgZm9yIHRoZSBjbGllbnQgdG8gZGlzY29ubmVjdC4KKyAg ICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMig0KTwvdGVybT4KKyAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3Nh Z2UgY29udGVudHMgaW4gYnl0ZXMsIGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+Cisg ICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8L3ZhcmlhYmxl bGlzdD4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0 ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1HU1NFTkNSZXF1ZXN0Ij4KICAgICA8 dGVybT5HU1NFTkNSZXF1ZXN0IChGKTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGQ2MTMzYmZlYmM2Li43ZDJiYzU5MTBjNiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTIxMzQsNyArMjEzNCwzMCBAQCBwcm9jZXNz X3BtX3NodXRkb3duX3JlcXVlc3Qodm9pZCkKIAkJCSAqIGxhdGVyIHN0YXRlLCBkbyBub3QgY2hh bmdlIGl0LgogCQkJICovCiAJCQlpZiAocG1TdGF0ZSA9PSBQTV9SVU4gfHwgcG1TdGF0ZSA9PSBQ TV9IT1RfU1RBTkRCWSkKKwkJCXsKKwkJCQlkbGlzdF9pdGVyCWl0ZXI7CisKIAkJCQljb25uc0Fs bG93ZWQgPSBmYWxzZTsKKworCQkJCS8qCisJCQkJICogU2lnbmFsIGFsbCBiYWNrZW5kcyB0byBz ZW5kIGEgR29Bd2F5IG1lc3NhZ2UgdG8gdGhlaXIKKwkJCQkgKiBjbGllbnRzLCB0byBwb2xpdGVs eSByZXF1ZXN0IHRoYXQgdGhleSBkaXNjb25uZWN0LgorCQkJCSAqLworCQkJCWRsaXN0X2ZvcmVh Y2goaXRlciwgJkFjdGl2ZUNoaWxkTGlzdCkKKwkJCQl7CisJCQkJCVBNQ2hpbGQgICAgKmJwID0g ZGxpc3RfY29udGFpbmVyKFBNQ2hpbGQsIGVsZW0sIGl0ZXIuY3VyKTsKKworCQkJCQkvKgorCQkJ CQkgKiBPbmx5IHNpZ25hbCByZWd1bGFyIGJhY2tlbmRzLCBzaW5jZSB0aG9zZSBuZWVkIHRvIG5v dGlmeQorCQkJCQkgKiB0aGVpciBjbGllbnRzIHVzaW5nIGEgR29Bd2F5IG1lc3NhZ2UuCisJCQkJ CSAqLworCQkJCQlpZiAoYnAtPmJrZW5kX3R5cGUgPT0gQl9CQUNLRU5EKQorCQkJCQl7CisJCQkJ CQlTZW5kUHJvY1NpZ25hbChicC0+cGlkLCBQUk9DU0lHX1NNQVJUX1NIVVRET1dOLAorCQkJCQkJ CQkJICAgSU5WQUxJRF9QUk9DX05VTUJFUik7CisJCQkJCX0KKwkJCQl9CisJCQl9CiAJCQllbHNl IGlmIChwbVN0YXRlID09IFBNX1NUQVJUVVAgfHwgcG1TdGF0ZSA9PSBQTV9SRUNPVkVSWSkKIAkJ CXsKIAkJCQkvKiBUaGVyZSBzaG91bGQgYmUgbm8gY2xpZW50cywgc28gcHJvY2VlZCB0byBzdG9w IGNoaWxkcmVuICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2ln bmFsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggOGU1Njky MmRjZWEuLjVjMzZlZmY5YjUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9w cm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCkBA IC02OTQsNiArNjk0LDkgQEAgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lHTkFMX0FSR1Mp CiAJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX0xPR19NRU1PUllfQ09OVEVYVCkpCiAJCUhh bmRsZUxvZ01lbW9yeUNvbnRleHRJbnRlcnJ1cHQoKTsKIAorCWlmIChDaGVja1Byb2NTaWduYWwo UFJPQ1NJR19TTUFSVF9TSFVURE9XTikpCisJCUhhbmRsZVNtYXJ0U2h1dGRvd25JbnRlcnJ1cHQo KTsKKwogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19QQVJBTExFTF9BUFBMWV9NRVNTQUdF KSkKIAkJSGFuZGxlUGFyYWxsZWxBcHBseU1lc3NhZ2VJbnRlcnJ1cHQoKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdGNvcC9iYWNrZW5kX3N0YXJ0dXAuYyBiL3NyYy9iYWNrZW5kL3Rjb3Av YmFja2VuZF9zdGFydHVwLmMKaW5kZXggYzUxNzExNTkyN2MuLjE3YWIwNjNiY2FiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1cC5jCisrKyBiL3NyYy9iYWNrZW5k L3Rjb3AvYmFja2VuZF9zdGFydHVwLmMKQEAgLTc3OSwxMSArNzc5LDI0IEBAIFByb2Nlc3NTdGFy dHVwUGFja2V0KFBvcnQgKnBvcnQsIGJvb2wgc3NsX2RvbmUsIGJvb2wgZ3NzX2RvbmUpCiAJCQl7 CiAJCQkJLyoKIAkJCQkgKiBBbnkgb3B0aW9uIGJlZ2lubmluZyB3aXRoIF9wcV8uIGlzIHJlc2Vy dmVkIGZvciB1c2UgYXMgYQotCQkJCSAqIHByb3RvY29sLWxldmVsIG9wdGlvbiwgYnV0IGF0IHBy ZXNlbnQgbm8gc3VjaCBvcHRpb25zIGFyZQotCQkJCSAqIGRlZmluZWQuCisJCQkJICogcHJvdG9j b2wtbGV2ZWwgb3B0aW9uLgogCQkJCSAqLwotCQkJCXVucmVjb2duaXplZF9wcm90b2NvbF9vcHRp b25zID0KLQkJCQkJbGFwcGVuZCh1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucywgcHN0cmR1 cChuYW1lcHRyKSk7CisJCQkJaWYgKHN0cmNtcChuYW1lcHRyLCAiX3BxXy5nb2F3YXkiKSA9PSAw KQorCQkJCXsKKwkJCQkJLyogQ2xpZW50IHdhbnRzIHRvIHJlY2VpdmUgR29Bd2F5IG1lc3NhZ2Vz LiAqLworCQkJCQlpZiAoc3RyY21wKHZhbHB0ciwgIjEiKSAhPSAwKQorCQkJCQkJZXJlcG9ydChG QVRBTCwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04pLAorCQkJ CQkJCQkgZXJybXNnKCJpbnZhbGlkIHZhbHVlIGZvciBwcm90b2NvbCBvcHRpb24gXCIlc1wiOiBc IiVzXCIiLAorCQkJCQkJCQkJCW5hbWVwdHIsIHZhbHB0ciksCisJCQkJCQkJCSBlcnJoaW50KCJW YWxpZCB2YWx1ZXMgYXJlOiBcIjFcIi4iKSkpOworCQkJCQlwb3J0LT5nb2F3YXlfbmVnb3RpYXRl ZCA9IHRydWU7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCXVucmVjb2duaXplZF9wcm90 b2NvbF9vcHRpb25zID0KKwkJCQkJCWxhcHBlbmQodW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlv bnMsIHBzdHJkdXAobmFtZXB0cikpOworCQkJCX0KIAkJCX0KIAkJCWVsc2UKIAkJCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYwppbmRleCAwMmU5YWFhNmJjYS4uZDkxNWM5N2NhYzYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMK QEAgLTQyLDggKzQyLDEwIEBACiAjaW5jbHVkZSAiY29tbW9uL3BnX3BybmcuaCIKICNpbmNsdWRl ICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvbGlicHEuaCIKKyNpbmNsdWRlICJsaWJwcS9w cWNvbW0uaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgogI2luY2x1ZGUgImxpYnBxL3Bx c2lnbmFsLmgiCisjaW5jbHVkZSAibGlicHEvcHJvdG9jb2wuaCIKICNpbmNsdWRlICJtYi9wZ193 Y2hhci5oIgogI2luY2x1ZGUgIm1iL3N0cmluZ2luZm9fbWIuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKQEAgLTkxLDYgKzkzLDE0IEBAIGNvbnN0IGNoYXIgKmRlYnVnX3F1ZXJ5X3N0cmluZzsg LyogY2xpZW50LXN1cHBsaWVkIHF1ZXJ5IHN0cmluZyAqLwogLyogTm90ZTogd2hlcmVUb1NlbmRP dXRwdXQgaXMgaW5pdGlhbGl6ZWQgZm9yIHRoZSBib290c3RyYXAvc3RhbmRhbG9uZSBjYXNlICov CiBDb21tYW5kRGVzdCB3aGVyZVRvU2VuZE91dHB1dCA9IERlc3REZWJ1ZzsKIAorLyoKKyAqIFRy YWNrIHdoZXRoZXIgd2UndmUgYmVlbiBub3RpZmllZCBvZiBzbWFydCBzaHV0ZG93biBhbmQgc2Vu dCBHb0F3YXkuCisgKiBTbWFydFNodXRkb3duUGVuZGluZyBpcyBzZXQgYnkgdGhlIFBST0NTSUdf U01BUlRfU0hVVERPV04gc2lnbmFsIGhhbmRsZXIuCisgKiBHb0F3YXlTZW50IHRyYWNrcyB3aGV0 aGVyIHdlJ3ZlIGFscmVhZHkgc2VudCB0aGUgR29Bd2F5IG1lc3NhZ2UuCisgKi8KK3N0YXRpYyB2 b2xhdGlsZSBzaWdfYXRvbWljX3QgU21hcnRTaHV0ZG93blBlbmRpbmcgPSBmYWxzZTsKK3N0YXRp YyBib29sIEdvQXdheVNlbnQgPSBmYWxzZTsKKwogLyogZmxhZyBmb3IgbG9nZ2luZyBlbmQgb2Yg c2Vzc2lvbiAqLwogYm9vbAkJTG9nX2Rpc2Nvbm5lY3Rpb25zID0gZmFsc2U7CiAKQEAgLTUwNyw2 ICs1MTcsMjAgQEAgUHJvY2Vzc0NsaWVudFJlYWRJbnRlcnJ1cHQoYm9vbCBibG9ja2VkKQogCQkv KiBDaGVjayBmb3IgZ2VuZXJhbCBpbnRlcnJ1cHRzIHRoYXQgYXJyaXZlZCBiZWZvcmUvd2hpbGUg cmVhZGluZyAqLwogCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwogCisJCS8qIFNlbmQgR29Bd2F5 IG1lc3NhZ2UgaWYgc21hcnQgc2h1dGRvd24gaXMgcGVuZGluZyAqLworCQlpZiAoU21hcnRTaHV0 ZG93blBlbmRpbmcgJiYgIUdvQXdheVNlbnQgJiYKKwkJCXdoZXJlVG9TZW5kT3V0cHV0ID09IERl c3RSZW1vdGUgJiYKKwkJCU15UHJvY1BvcnQgJiYgTXlQcm9jUG9ydC0+Z29hd2F5X25lZ290aWF0 ZWQpCisJCXsKKwkJCVN0cmluZ0luZm9EYXRhIGJ1ZjsKKworCQkJcHFfYmVnaW5tZXNzYWdlKCZi dWYsIFBxTXNnX0dvQXdheSk7CisJCQlwcV9lbmRtZXNzYWdlKCZidWYpOworCQkJcHFfZmx1c2go KTsKKworCQkJR29Bd2F5U2VudCA9IHRydWU7CisJCX0KKwogCQkvKiBQcm9jZXNzIHNpbnZhbCBj YXRjaHVwIGludGVycnVwdHMsIGlmIGFueSAqLwogCQlpZiAoY2F0Y2h1cEludGVycnVwdFBlbmRp bmcpCiAJCQlQcm9jZXNzQ2F0Y2h1cEludGVycnVwdCgpOwpAQCAtMzA2Niw2ICszMDkwLDE4IEBA IEZsb2F0RXhjZXB0aW9uSGFuZGxlcihTSUdOQUxfQVJHUykKIAkJCQkJICAgImludmFsaWQgb3Bl cmF0aW9uLCBzdWNoIGFzIGRpdmlzaW9uIGJ5IHplcm8uIikpKTsKIH0KIAorLyoKKyAqIFRlbGwg dGhlIG5leHQgUHJvY2Vzc0NsaWVudFJlYWRJbnRlcnJ1cHQoKSBjYWxsIHRvIHNlbmQgYSBHb0F3 YXkgbWVzc2FnZSB0bworICogdGhlIGNsaWVudC4gIFJ1bnMgaW4gYSBTSUdVU1IxIGhhbmRsZXIu CisgKi8KK3ZvaWQKK0hhbmRsZVNtYXJ0U2h1dGRvd25JbnRlcnJ1cHQodm9pZCkKK3sKKwlTbWFy dFNodXRkb3duUGVuZGluZyA9IHRydWU7CisJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7CisJLyog bGF0Y2ggd2lsbCBiZSBzZXQgYnkgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIgKi8KK30KKwog LyoKICAqIFRlbGwgdGhlIG5leHQgQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKSB0byBjaGVjayBmb3Ig YSBwYXJ0aWN1bGFyIHR5cGUgb2YKICAqIHJlY292ZXJ5IGNvbmZsaWN0LiAgUnVucyBpbiBhIFNJ R1VTUjEgaGFuZGxlci4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgg Yi9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oCmluZGV4IDkyMWIyZGFhNGZmLi5iODc2OTQx MmM3MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaAorKysgYi9zcmMv aW5jbHVkZS9saWJwcS9saWJwcS1iZS5oCkBAIC0yMDIsNiArMjAyLDExIEBAIHR5cGVkZWYgc3Ry dWN0IFBvcnQKIAl2b2lkCSAgICpnc3M7CiAjZW5kaWYKIAorCS8qCisJICogUHJvdG9jb2wgZXh0 ZW5zaW9ucy4KKwkgKi8KKwlib29sCQlnb2F3YXlfbmVnb3RpYXRlZDsJLyogY2xpZW50IHN1cHBv cnRzIEdvQXdheSBtZXNzYWdlICovCisKIAkvKgogCSAqIFNTTCBzdHJ1Y3R1cmVzLgogCSAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbGlicHEvcHJvdG9jb2wuaCBiL3NyYy9pbmNsdWRlL2xp YnBxL3Byb3RvY29sLmgKaW5kZXggZWFlOGYwZTcyMzguLmZkM2MxOTVkYWEyIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9saWJwcS9wcm90b2NvbC5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYnBxL3By b3RvY29sLmgKQEAgLTUzLDYgKzUzLDcgQEAKICNkZWZpbmUgUHFNc2dfRnVuY3Rpb25DYWxsUmVz cG9uc2UJJ1YnCiAjZGVmaW5lIFBxTXNnX0NvcHlCb3RoUmVzcG9uc2UJCSdXJwogI2RlZmluZSBQ cU1zZ19SZWFkeUZvclF1ZXJ5CQkJJ1onCisjZGVmaW5lIFBxTXNnX0dvQXdheQkJCQknZycKICNk ZWZpbmUgUHFNc2dfTm9EYXRhCQkJCSduJwogI2RlZmluZSBQcU1zZ19Qb3J0YWxTdXNwZW5kZWQJ CSdzJwogI2RlZmluZSBQcU1zZ19QYXJhbWV0ZXJEZXNjcmlwdGlvbgkndCcKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9w cm9jc2lnbmFsLmgKaW5kZXggZTUyYjhlYjc2OTcuLmY1ZmRmODBkYTlmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdl L3Byb2NzaWduYWwuaApAQCAtMzYsNiArMzYsNyBAQCB0eXBlZGVmIGVudW0KIAlQUk9DU0lHX0JB UlJJRVIsCQkJLyogZ2xvYmFsIGJhcnJpZXIgaW50ZXJydXB0ICAqLwogCVBST0NTSUdfTE9HX01F TU9SWV9DT05URVhULCAvKiBhc2sgYmFja2VuZCB0byBsb2cgdGhlIG1lbW9yeSBjb250ZXh0cyAq LwogCVBST0NTSUdfUEFSQUxMRUxfQVBQTFlfTUVTU0FHRSwgLyogTWVzc2FnZSBmcm9tIHBhcmFs bGVsIGFwcGx5IHdvcmtlcnMgKi8KKwlQUk9DU0lHX1NNQVJUX1NIVVRET1dOLAkJLyogbm90aWZ5 IGJhY2tlbmQgb2Ygc21hcnQgc2h1dGRvd24gKi8KIAogCS8qIFJlY292ZXJ5IGNvbmZsaWN0IHJl YXNvbnMgKi8KIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0ZJUlNULApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdGNvcC90Y29wcHJvdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC90Y29wcHJvdC5o CmluZGV4IDU0ZGRlZTg3NWVkLi4yYzAyOWVmZTc3OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dGNvcC90Y29wcHJvdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaApAQCAtNzQs NiArNzQsNyBAQCBleHRlcm4gdm9pZCBkaWUoU0lHTkFMX0FSR1MpOwogcGdfbm9yZXR1cm4gZXh0 ZXJuIHZvaWQgcXVpY2tkaWUoU0lHTkFMX0FSR1MpOwogZXh0ZXJuIHZvaWQgU3RhdGVtZW50Q2Fu Y2VsSGFuZGxlcihTSUdOQUxfQVJHUyk7CiBwZ19ub3JldHVybiBleHRlcm4gdm9pZCBGbG9hdEV4 Y2VwdGlvbkhhbmRsZXIoU0lHTkFMX0FSR1MpOworZXh0ZXJuIHZvaWQgSGFuZGxlU21hcnRTaHV0 ZG93bkludGVycnVwdCh2b2lkKTsKIGV4dGVybiB2b2lkIEhhbmRsZVJlY292ZXJ5Q29uZmxpY3RJ bnRlcnJ1cHQoUHJvY1NpZ25hbFJlYXNvbiByZWFzb24pOwogZXh0ZXJuIHZvaWQgUHJvY2Vzc0Ns aWVudFJlYWRJbnRlcnJ1cHQoYm9vbCBibG9ja2VkKTsKIGV4dGVybiB2b2lkIFByb2Nlc3NDbGll bnRXcml0ZUludGVycnVwdChib29sIGJsb2NrZWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZXhwb3J0cy50eHQgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dApp bmRleCBkYmJhZTY0MmQ3Ni4uMzM4NWU2NWMzODkgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2V4cG9ydHMudHh0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0 CkBAIC0yMTAsMyArMjEwLDQgQEAgUFFnZXRBdXRoRGF0YUhvb2sgICAgICAgICAyMDcKIFBRZGVm YXVsdEF1dGhEYXRhSG9vayAgICAgMjA4CiBQUWZ1bGxQcm90b2NvbFZlcnNpb24gICAgIDIwOQog YXBwZW5kUFFFeHBCdWZmZXJWQSAgICAgICAyMTAKK1BRZ29Bd2F5UmVjZWl2ZWQgICAgICAgICAg MjExCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKaW5kZXggYTBkMmY3NDk4MTEuLmM3NTgwODc0 YjVhIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCkBAIC03MDAsNiArNzAwLDcgQEAgcHFE cm9wU2VydmVyRGF0YShQR2Nvbm4gKmNvbm4pCiAJY29ubi0+cGFzc3dvcmRfbmVlZGVkID0gZmFs c2U7CiAJY29ubi0+Z3NzYXBpX3VzZWQgPSBmYWxzZTsKIAljb25uLT53cml0ZV9mYWlsZWQgPSBm YWxzZTsKKwljb25uLT5nb2F3YXlfcmVjZWl2ZWQgPSBmYWxzZTsKIAlmcmVlKGNvbm4tPndyaXRl X2Vycl9tc2cpOwogCWNvbm4tPndyaXRlX2Vycl9tc2cgPSBOVUxMOwogCWNvbm4tPm9hdXRoX3dh bnRfcmV0cnkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4 ZWMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwppbmRleCAyMDNkMzg4YmRiZi4u YmMxZDk1MzI0ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKQEAgLTI3MDIsNiArMjcwMiwzMyBA QCBQUW5vdGlmaWVzKFBHY29ubiAqY29ubikKIAlyZXR1cm4gZXZlbnQ7CiB9CiAKKy8qCisgKiBQ UWdvQXdheVJlY2VpdmVkCisgKgkgIHJldHVybnMgMSBpZiBhIEdvQXdheSBtZXNzYWdlIGhhcyBi ZWVuIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlcgorICoJICByZXR1cm5zIDAgaWYgbm90CisgKgor ICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVhZCBhbnkgbmV3IGRhdGEgZnJv bSB0aGUgc29ja2V0OworICogY2FsbGVyIHNob3VsZCBjYWxsIFBRY29uc3VtZUlucHV0KCkgZmly c3QgaWYgdGhleSB3YW50IHRvIGVuc3VyZQorICogYWxsIGF2YWlsYWJsZSBkYXRhIGhhcyBiZWVu IHJlYWQuCisgKi8KK2ludAorUFFnb0F3YXlSZWNlaXZlZChQR2Nvbm4gKmNvbm4pCit7CisJaWYg KCFjb25uKQorCQlyZXR1cm4gMDsKKworCWlmIChjb25uLT5nb2F3YXlfcmVjZWl2ZWQpCisJCXJl dHVybiAxOworCisJLyoKKwkgKiBQYXJzZSBhbnkgYXZhaWxhYmxlIGRhdGEgdG8gc2VlIGlmIGEg R29Bd2F5IG1lc3NhZ2UgaGFzIGFycml2ZWQuCisJICovCisJcGFyc2VJbnB1dChjb25uKTsKKwor CXJldHVybiBjb25uLT5nb2F3YXlfcmVjZWl2ZWQgPyAxIDogMDsKK30KKworCiAvKgogICogUFFw dXRDb3B5RGF0YSAtIHNlbmQgc29tZSBkYXRhIHRvIHRoZSBiYWNrZW5kIGR1cmluZyBDT1BZIElO IG9yIENPUFkgQk9USAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXBy b3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKaW5kZXggOTBi YmIyZWJhMWYuLmQ3NmYxMmM0ZTYwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwpA QCAtMTM0LDggKzEzNCw4IEBAIHBxUGFyc2VJbnB1dDMoUEdjb25uICpjb25uKQogCQl9CiAKIAkJ LyoKLQkJICogTk9USUZZIGFuZCBOT1RJQ0UgbWVzc2FnZXMgY2FuIGhhcHBlbiBpbiBhbnkgc3Rh dGU7IGFsd2F5cyBwcm9jZXNzCi0JCSAqIHRoZW0gcmlnaHQgYXdheS4KKwkJICogTk9USUZZIGFu ZCBOT1RJQ0UgYW5kIEdvQXdheSBtZXNzYWdlcyBjYW4gaGFwcGVuIGluIGFueSBzdGF0ZTsKKwkJ ICogYWx3YXlzIHByb2Nlc3MgdGhlbSByaWdodCBhd2F5LgogCQkgKgogCQkgKiBNb3N0IG90aGVy IG1lc3NhZ2VzIHNob3VsZCBvbmx5IGJlIHByb2Nlc3NlZCB3aGlsZSBpbiBCVVNZIHN0YXRlLgog CQkgKiAoSW4gcGFydGljdWxhciwgaW4gUkVBRFkgc3RhdGUgd2UgaG9sZCBvZmYgZnVydGhlciBw YXJzaW5nIHVudGlsCkBAIC0xNTksNiArMTU5LDEwIEBAIHBxUGFyc2VJbnB1dDMoUEdjb25uICpj b25uKQogCQkJaWYgKHBxR2V0RXJyb3JOb3RpY2UzKGNvbm4sIGZhbHNlKSkKIAkJCQlyZXR1cm47 CiAJCX0KKwkJZWxzZSBpZiAoaWQgPT0gUHFNc2dfR29Bd2F5KQorCQl7CisJCQljb25uLT5nb2F3 YXlfcmVjZWl2ZWQgPSB0cnVlOworCQl9CiAJCWVsc2UgaWYgKGNvbm4tPmFzeW5jU3RhdHVzICE9 IFBHQVNZTkNfQlVTWSkKIAkJewogCQkJLyogSWYgbm90IElETEUgc3RhdGUsIGp1c3Qgd2FpdCAu Li4gKi8KQEAgLTE1MTEsOCArMTUxNSw3IEBAIHBxR2V0TmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9u MyhQR2Nvbm4gKmNvbm4pCiAJY29ubi0+cHZlcnNpb24gPSB0aGVpcl92ZXJzaW9uOwogCiAJLyoK LQkgKiBXZSBkb24ndCBjdXJyZW50bHkgcmVxdWVzdCBhbnkgcHJvdG9jb2wgZXh0ZW5zaW9ucywg c28gd2UgZG9uJ3QgZXhwZWN0Ci0JICogdGhlIHNlcnZlciB0byByZXBseSB3aXRoIGFueSBlaXRo ZXIuCisJICogUHJvY2VzcyB0aGUgbGlzdCBvZiB1bnN1cHBvcnRlZCBwcm90b2NvbCBleHRlbnNp b25zLgogCSAqLwogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtOyBpKyspCiAJewpAQCAtMTUyNSw2 ICsxNTI4LDE3IEBAIHBxR2V0TmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9uMyhQR2Nvbm4gKmNvbm4p CiAJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAicmVjZWl2ZWQgaW52YWxpZCBwcm90 b2NvbCBuZWdvdGlhdGlvbiBtZXNzYWdlOiBzZXJ2ZXIgcmVwb3J0ZWQgdW5zdXBwb3J0ZWQgcGFy YW1ldGVyIG5hbWUgd2l0aG91dCBhIFwiJXNcIiBwcmVmaXggKFwiJXNcIikiLCAiX3BxXy4iLCBj b25uLT53b3JrQnVmZmVyLmRhdGEpOwogCQkJZ290byBmYWlsdXJlOwogCQl9CisKKwkJLyoKKwkJ ICogSGFuZGxlIGtub3duIHByb3RvY29sIGV4dGVuc2lvbnMuIFVua25vd24gZXh0ZW5zaW9ucyB0 aGF0IHdlcmUgbm90CisJCSAqIHJlcXVlc3RlZCBieSB1cyBhcmUgYW4gZXJyb3IuCisJCSAqLwor CQlpZiAoc3RyY21wKGNvbm4tPndvcmtCdWZmZXIuZGF0YSwgIl9wcV8uZ29hd2F5IikgPT0gMCkK KwkJeworCQkJLyogU2VydmVyIGRvZXNuJ3Qgc3VwcG9ydCBHb0F3YXksIHRoYXQncyBmaW5lICov CisJCQljb250aW51ZTsKKwkJfQorCiAJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJy ZWNlaXZlZCBpbnZhbGlkIHByb3RvY29sIG5lZ290aWF0aW9uIG1lc3NhZ2U6IHNlcnZlciByZXBv cnRlZCBhbiB1bnN1cHBvcnRlZCBwYXJhbWV0ZXIgdGhhdCB3YXMgbm90IHJlcXVlc3RlZCAoXCIl c1wiKSIsIGNvbm4tPndvcmtCdWZmZXIuZGF0YSk7CiAJCWdvdG8gZmFpbHVyZTsKIAl9CkBAIC0x ODY4LDYgKzE4ODIsOSBAQCBnZXRDb3B5RGF0YU1lc3NhZ2UoUEdjb25uICpjb25uKQogCQkJCWlm IChnZXRQYXJhbWV0ZXJTdGF0dXMoY29ubikpCiAJCQkJCXJldHVybiAwOwogCQkJCWJyZWFrOwor CQkJY2FzZSBQcU1zZ19Hb0F3YXk6CisJCQkJY29ubi0+Z29hd2F5X3JlY2VpdmVkID0gdHJ1ZTsK KwkJCQlicmVhazsKIAkJCWNhc2UgUHFNc2dfQ29weURhdGE6CiAJCQkJcmV0dXJuIG1zZ0xlbmd0 aDsKIAkJCWNhc2UgUHFNc2dfQ29weURvbmU6CkBAIC0yMzYxLDYgKzIzNzgsOSBAQCBwcUZ1bmN0 aW9uQ2FsbDMoUEdjb25uICpjb25uLCBPaWQgZm5pZCwKIAkJCQlpZiAoZ2V0UGFyYW1ldGVyU3Rh dHVzKGNvbm4pKQogCQkJCQljb250aW51ZTsKIAkJCQlicmVhazsKKwkJCWNhc2UgUHFNc2dfR29B d2F5OgorCQkJCWNvbm4tPmdvYXdheV9yZWNlaXZlZCA9IHRydWU7CisJCQkJYnJlYWs7CiAJCQlk ZWZhdWx0OgogCQkJCS8qIFRoZSBiYWNrZW5kIHZpb2xhdGVzIHRoZSBwcm90b2NvbC4gKi8KIAkJ CQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAicHJvdG9jb2wgZXJyb3I6IGlkPTB4JXgi LCBpZCk7CkBAIC0yNDg2LDYgKzI1MDYsMTQgQEAgYnVpbGRfc3RhcnR1cF9wYWNrZXQoY29uc3Qg UEdjb25uICpjb25uLCBjaGFyICpwYWNrZXQsCiAJCX0KIAl9CiAKKwkvKgorCSAqIFJlcXVlc3Qg cHJvdG9jb2wgZXh0ZW5zaW9ucy4gT25seSBkbyB0aGlzIGZvciBwcm90b2NvbCB2ZXJzaW9uIDMu MiBhbmQKKwkgKiBsYXRlciwgdG8gYXZvaWQgY29uZnVzaW5nIG9sZCBwcm94aWVzIHRoYXQgZG9u J3QgdW5kZXJzdGFuZCBfcHFfLioKKwkgKiBvcHRpb25zLgorCSAqLworCWlmIChjb25uLT5wdmVy c2lvbiA+PSBQR19QUk9UT0NPTCgzLCAyKSkKKwkJQUREX1NUQVJUVVBfT1BUSU9OKCJfcHFfLmdv YXdheSIsICIxIik7CisKIAkvKiBBZGQgdHJhaWxpbmcgdGVybWluYXRvciAqLwogCWlmIChwYWNr ZXQpCiAJCXBhY2tldFtwYWNrZXRfbGVuXSA9ICdcMCc7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9saWJwcS1mZS5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaApp bmRleCA5MDVmMmYzM2FiOC4uOTZlZmRjYzUyM2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2xpYnBxLWZlLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaApA QCAtNjMsNiArNjMsMTAgQEAgZXh0ZXJuICJDIgogLyogSW5kaWNhdGVzIHByZXNlbmNlIG9mIHRo ZSBQUUFVVEhEQVRBX1BST01QVF9PQVVUSF9ERVZJQ0UgYXV0aGRhdGEgaG9vayAqLwogI2RlZmlu ZSBMSUJQUV9IQVNfUFJPTVBUX09BVVRIX0RFVklDRSAxCiAKKy8qIEZlYXR1cmVzIGFkZGVkIGlu IFBvc3RncmVTUUwgdjE5OiAqLworLyogSW5kaWNhdGVzIHByZXNlbmNlIG9mIFBRZ29Bd2F5UmVj ZWl2ZWQgKi8KKyNkZWZpbmUgTElCUFFfSEFTX0dPQVdBWSAxCisKIC8qCiAgKiBPcHRpb24gZmxh Z3MgZm9yIFBRY29weVJlc3VsdAogICovCkBAIC00MTEsNiArNDE1LDcgQEAgZXh0ZXJuIGNvbnN0 IGNoYXIgKlBRcGFyYW1ldGVyU3RhdHVzKGNvbnN0IFBHY29ubiAqY29ubiwKIGV4dGVybiBpbnQJ UFFwcm90b2NvbFZlcnNpb24oY29uc3QgUEdjb25uICpjb25uKTsKIGV4dGVybiBpbnQJUFFmdWxs UHJvdG9jb2xWZXJzaW9uKGNvbnN0IFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CVBRc2VydmVy VmVyc2lvbihjb25zdCBQR2Nvbm4gKmNvbm4pOworZXh0ZXJuIGludAlQUWdvQXdheVJlY2VpdmVk KFBHY29ubiAqY29ubik7CiBleHRlcm4gY2hhciAqUFFlcnJvck1lc3NhZ2UoY29uc3QgUEdjb25u ICpjb25uKTsKIGV4dGVybiBpbnQJUFFzb2NrZXQoY29uc3QgUEdjb25uICpjb25uKTsKIGV4dGVy biBpbnQJUFFiYWNrZW5kUElEKGNvbnN0IFBHY29ubiAqY29ubik7CmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBx LWludC5oCmluZGV4IGZiNmE3Y2JmMTVkLi5kMjAyNmE2YTg0OSAxMDA2NDQKLS0tIGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtaW50LmgKQEAgLTUxMSw2ICs1MTEsNyBAQCBzdHJ1Y3QgcGdfY29ubgogCWJvb2wJCXNpZ3Bp cGVfZmxhZzsJLyogY2FuIHdlIG1hc2sgU0lHUElQRSB2aWEgTVNHX05PU0lHTkFMPyAqLwogCWJv b2wJCXdyaXRlX2ZhaWxlZDsJLyogaGF2ZSB3ZSBoYWQgYSB3cml0ZSBmYWlsdXJlIG9uIHNvY2s/ ICovCiAJY2hhcgkgICAqd3JpdGVfZXJyX21zZzsJLyogd3JpdGUgZXJyb3IgbWVzc2FnZSwgb3Ig TlVMTCBpZiBPT00gKi8KKwlib29sCQlnb2F3YXlfcmVjZWl2ZWQ7CS8qIHRydWUgaWYgc2VydmVy IHNlbnQgR29Bd2F5IG1lc3NhZ2UgKi8KIAogCWJvb2wJCWF1dGhfcmVxdWlyZWQ7CS8qIHJlcXVp cmUgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIGZyb20KIAkJCQkJCQkJICogdGhlIHNlcnZl cj8gKi8KCmJhc2UtY29tbWl0OiA3M2RkNzE2M2M1ZDE5ZjkzYjYyOWQxY2NkOWQyYTJkZTZlOTY2 N2Y2CnByZXJlcXVpc2l0ZS1wYXRjaC1pZDogODczMGUyMGZhYmNjOWIwNjJlYTFjYjk1YjAyODA0 ZWUyYTBjN2EyNgpwcmVyZXF1aXNpdGUtcGF0Y2gtaWQ6IDE5NzRkYWU4ZDRiZWRmMzY3Nzc5NTEz N2MyMjgxZTJlNWRmOGQ5NTUKcHJlcmVxdWlzaXRlLXBhdGNoLWlkOiBkODVmZWQzYjI3MTkzNjRi NWE5MDVkMWFjZTIzMzcxYmU2ZjNlZDAzCnByZXJlcXVpc2l0ZS1wYXRjaC1pZDogMDYzMGVhZDQ2 ZDFiOGM0MDE3N2E1NTRiNzc5MzQ0NGExY2I1NzgyOQpwcmVyZXF1aXNpdGUtcGF0Y2gtaWQ6IGQ1 YmQ5ZDdiYmVmOTY3OTA1MDU4Y2Q3ODAwN2U0NzY2YjI5ZTc4MzMKLS0gCjIuNTIuMAoK --4cca3b359b24a9c4ab83fb6dea782f6c417b9c326cd8b9c0ac226c67549f--