Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vBcaq-001YEr-OD for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Oct 2025 17:25:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vBcap-000RH3-Cu for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Oct 2025 17:25:46 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vBcap-000RGv-12 for pgsql-hackers@lists.postgresql.org; Wed, 22 Oct 2025 17:25:46 +0000 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vBcal-003eVz-1k for pgsql-hackers@postgresql.org; Wed, 22 Oct 2025 17:25:45 +0000 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-77f67ba775aso9150638b3a.3 for ; Wed, 22 Oct 2025 10:25:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761153941; x=1761758741; darn=postgresql.org; h=in-reply-to:references:to:from:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=glkru03bELBQex7YRsQiiOZ4hICk9lXsKy5b+gTbuMQ=; b=F/kMahWeJcioXhwX3LzBddMyqo1GBX5oIRU5nB+bdHi9ayY0x6IdD6ooUsj5ZASWsK PmHaLtsV1MycVLchfmimWFwgUOMScP7OzS7csD1MZnpQe3Sw81yJ5zJuTWpGu12pRjve /Fag8rP8++00EmIVrv9BW35oYzPsU5j5RqCtTH8zAyZEKeTmCSyUSEUXs8EUQC/KSCKN ravtWKvc6dxjqmQDQIqvQKLGqJAYlToa3NSrkOxWnZY1cNL/2BU5n7C30VRTlZhO7TRs meKUyPNGG4iY2+CFWkMBv26SgyvRYTgs/M7xWELMRBSE/H0SKAlAZikRNwbRMkZIIncB 1vew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761153941; x=1761758741; h=in-reply-to:references:to:from:subject:cc:message-id:date :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=glkru03bELBQex7YRsQiiOZ4hICk9lXsKy5b+gTbuMQ=; b=kpA5deASCI0Qp/3ufLJMRSbEyOWNvNZMx1Av3hS8L3kBalzLGeVBGarKd6nwp3ogyz 9mCIIoeGsG/kWQaZhmPmjW+lTYcr3ELdQ50lEA1zm4kFLE6oQbdBKwrqokLlSnFWv6it /D1UWUVfTXer7EBKJ/JjFclny0Y1oHFf1QPQbqQKqbO94EJ6fo1UPV6XjSmFdNE0GhHa 39CyWWfX321uRZL/Q1nqOktFyLQOBmn2F6cjvuBNo2Y7GOm8HrW78v7x78JJgbH+fH3W ex9BD0yAoAXYLilzT1+O1Pm9wXN2ca1r0t/2AvhJALALDoTnBvjg9POWkNnOvkaP16Og XNCw== X-Forwarded-Encrypted: i=1; AJvYcCX2nVb+jMmob7J7glsblk0U12bQ44PHR9lGs1cme2+TuYGSQKriBsF/uay3ehZidGVJj4uaXEInDhyeXmsS@postgresql.org X-Gm-Message-State: AOJu0YxomuO0owYQzUjyf4Rz63vbXXkDnmRAQMMO/Tpp5OGPxeqmA7E2 meKdFyP6I6YuJl2xrOqg4WbXnhYZZlJoMBFxmevgy0SZuVRBCbOue9GbSrDJJDBy X-Gm-Gg: ASbGncugf9hCdV3n7W2nLfkOHF012S65C3mS5kzUXWWbnSPuz8VkjiCkMOBNA1unepx z+OkoUOmdATSfb6Gt6ywJQPuNduI0kBWNw5QFo/4p7pTW6nzN6b5fu9otuhZ53qsc0mG0Fv48Zc cQId6jvgkyzy/1r0KGJf0ylBJuGNjcWPrhZfpQH5ysWTFZDz8jpavZrzLLkA0bLInvgC61EiJnb 3ubzxRUFOsELQMjogZ5Z96OGuhY8zw5ev1CNTlRguhXsJp/5hMPO/nA9la6EO9e1VFntiKCeijK YLjhCt6S+8Qb35A+URK8znB35P/mSsQrr4V8c/wXi44K+FbDAOJWb+j2H6nvit3pvOY7HXfQjSo QtKOxT4SlyphjAwpbY82tAGOs9EEQLUMLBFN58LcRvOIMH60WagT5nuKJWpXbw4gkaxZVlAB7uJ oYzchUOb+zmHndNaR+NZrB6Q== X-Google-Smtp-Source: AGHT+IHw27HD/FCnhmYnWGVMVHy28u6puDdlNDjTT0WmPYUtwkZ9nrj2yz9yGa2SQNMwl1DX2Fb6jA== X-Received: by 2002:a05:6a20:244b:b0:334:7bce:8391 with SMTP id adf61e73a8af0-334a86500d6mr26584415637.56.1761153941308; Wed, 22 Oct 2025 10:25:41 -0700 (PDT) Received: from localhost ([2804:14d:328a:a59c:216b:5cab:1c36:6d5]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33e224c9bd0sm3095478a91.21.2025.10.22.10.25.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 22 Oct 2025 10:25:40 -0700 (PDT) Content-Type: multipart/mixed; boundary=4c2ae3179dbc93f96c75cfd693d1c109f9bd370bb990bf2f18e7f487f91b Mime-Version: 1.0 Date: Wed, 22 Oct 2025 14:25:36 -0300 Message-Id: Cc: "Masahiko Sawada" , "Joel Jacobson" , "Arseniy Mukhin" , "Rishu Bagga" , "Yura Sokolov" , "Daniil Davydov" <3danissimo@gmail.com>, "Alexandra Wang" , "pgsql-hackers" , "Tom Lane" Subject: Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue From: "Matheus Alcantara" To: =?utf-8?q?=C3=81lvaro_Herrera?= , "Matheus Alcantara" X-Mailer: aerc 0.21.0 References: <202510221548.tgggefdrlpo3@alvherre.pgsql> In-Reply-To: <202510221548.tgggefdrlpo3@alvherre.pgsql> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --4c2ae3179dbc93f96c75cfd693d1c109f9bd370bb990bf2f18e7f487f91b Content-Type: multipart/alternative; boundary=7eb03d9b148ca16ca8c5a27304c8212a9991b8c194494856bc131c4e3efd --7eb03d9b148ca16ca8c5a27304c8212a9991b8c194494856bc131c4e3efd Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 On Wed Oct 22, 2025 at 12:49 PM -03, =C3=81lvaro Herrera wrote: > On 2025-Oct-22, Matheus Alcantara wrote: > >> I'm wondering if the 002_aborted_tx_notifies.pl is still needed with >> this architecture being used. I think that it's not, but perhaps is a >> good test to keep it? > > I'd rather have tests than not, but I'd think it needs to be behind > PG_TEST_EXTRA because of things like > > +$node->safe_psql('postgres', 'select consume_xids(10000000);'); > Attached v10 with wrapping into PG_TEST_EXTRA. Should we enable this somewhere to be executed on build farm? -- Matheus Alcantara --7eb03d9b148ca16ca8c5a27304c8212a9991b8c194494856bc131c4e3efd-- --4c2ae3179dbc93f96c75cfd693d1c109f9bd370bb990bf2f18e7f487f91b Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v10-0001-Prevent-VACUUM-from-truncating-XIDs-still-presen.patch Content-Type: text/plain; charset=utf-8; name=v10-0001-Prevent-VACUUM-from-truncating-XIDs-still-presen.patch RnJvbSBhN2UzZjQzZjMwOTE1MjBmZjZkY2FhN2QwYjBhM2I1YTc0NzI5ZjE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEphY29ic29uIDxqb2VsQGNvbXBpbGVyLm9yZz4KRGF0 ZTogU3VuLCAxOSBPY3QgMjAyNSAxODo1NToyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjEwIDEv Ml0gUHJldmVudCBWQUNVVU0gZnJvbSB0cnVuY2F0aW5nIFhJRHMgc3RpbGwgcHJlc2VudCBpbgog bm90aWZpY2F0aW9uIHF1ZXVlCgpWQUNVVU0ncyBjb21wdXRhdGlvbiBvZiBkYXRmcm96ZW54aWQg ZGlkIG5vdCBhY2NvdW50IGZvciB0cmFuc2FjdGlvbiBJRHMKaW4gdGhlIExJU1RFTi9OT1RJRlkg cXVldWUuICBUaGlzIGFsbG93ZWQgVkFDVVVNIHRvIHRydW5jYXRlIGNsb2cKZW50cmllcyBmb3Ig WElEcyB0aGF0IHdlcmUgc3RpbGwgcmVmZXJlbmNlZCBieSBxdWV1ZWQgbm90aWZpY2F0aW9ucywK Y2F1c2luZyBiYWNrZW5kcyB0byBmYWlsIGluIFRyYW5zYWN0aW9uSWREaWRDb21taXQgd2hlbiBs YXRlciBwcm9jZXNzaW5nCnRob3NlIG5vdGlmaWNhdGlvbnMuCgpGaXggYnkgYWRkaW5nIEdldE9s ZGVzdFF1ZXVlZE5vdGlmeVhpZCB0byBmaW5kIHRoZSBvbGRlc3QgWElEIGluIHF1ZXVlZApub3Rp ZmljYXRpb25zIGZvciB0aGUgY3VycmVudCBkYXRhYmFzZSwgYW5kIGNvbnN0cmFpbmluZyBkYXRm cm96ZW54aWQgdG8Kbm90IHBhc3MgdGhhdC4gIFRoZSBmdW5jdGlvbiBzY2FucyBmcm9tIFFVRVVF X1RBSUwsIHNpbmNlIG5vdGlmaWNhdGlvbnMKbWF5IGhhdmUgYmVlbiB3cml0dGVuIGJlZm9yZSBh bnkgbGlzdGVuZXJzIGV4aXN0ZWQuCgpUbyBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLCByZWZhY3Rv ciBTTFJVIHBhZ2UtcmVhZGluZyBjb2RlIGludG8gYSBuZXcKaGVscGVyIGZ1bmN0aW9uIGFzeW5j UXVldWVSZWFkUGFnZVRvQnVmZmVyLgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMg IHwgMTM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bS5jIHwgIDEyICsrKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaCAg fCAgIDMgKwogMyBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2FzeW5jLmMKaW5kZXggNGJkMzdkNWJlYjUuLjdjOWQ3ODMxYzlmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2FzeW5jLmMKQEAgLTE4NDEsNiArMTg0MSw0NCBAQCBQcm9jZXNzTm90aWZ5SW50ZXJy dXB0KGJvb2wgZmx1c2gpCiAJCVByb2Nlc3NJbmNvbWluZ05vdGlmeShmbHVzaCk7CiB9CiAKKy8q CisgKiBSZWFkIGEgcGFnZSBmcm9tIHRoZSBTTFJVIHF1ZXVlIGludG8gYSBsb2NhbCBidWZmZXIu CisgKgorICogUmVhZHMgdGhlIHBhZ2UgY29udGFpbmluZyAncG9zJywgY29weWluZyB0aGUgZGF0 YSBmcm9tIHRoZSBjdXJyZW50IG9mZnNldAorICogZWl0aGVyIHRvIHRoZSBlbmQgb2YgdGhlIHBh Z2Ugb3IgdXAgdG8gJ2hlYWQnICh3aGljaGV2ZXIgY29tZXMgZmlyc3QpCisgKiBpbnRvIHBhZ2Vf YnVmZmVyLgorICovCitzdGF0aWMgdm9pZAorYXN5bmNRdWV1ZVJlYWRQYWdlVG9CdWZmZXIoUXVl dWVQb3NpdGlvbiBwb3MsIFF1ZXVlUG9zaXRpb24gaGVhZCwKKwkJCQkJCSAgIGNoYXIgKnBhZ2Vf YnVmZmVyKQoreworCWludDY0CQljdXJwYWdlID0gUVVFVUVfUE9TX1BBR0UocG9zKTsKKwlpbnQJ CQljdXJvZmZzZXQgPSBRVUVVRV9QT1NfT0ZGU0VUKHBvcyk7CisJaW50CQkJc2xvdG5vOworCWlu dAkJCWNvcHlzaXplOworCisJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoTm90 aWZ5Q3RsLCBjdXJwYWdlLAorCQkJCQkJCQkJCUludmFsaWRUcmFuc2FjdGlvbklkKTsKKworCWlm IChjdXJwYWdlID09IFFVRVVFX1BPU19QQUdFKGhlYWQpKQorCXsKKwkJLyogd2Ugb25seSB3YW50 IHRvIHJlYWQgYXMgZmFyIGFzIGhlYWQgKi8KKwkJY29weXNpemUgPSBRVUVVRV9QT1NfT0ZGU0VU KGhlYWQpIC0gY3Vyb2Zmc2V0OworCQlpZiAoY29weXNpemUgPCAwKQorCQkJY29weXNpemUgPSAw OwkJLyoganVzdCBmb3Igc2FmZXR5ICovCisJfQorCWVsc2UKKwl7CisJCS8qIGZldGNoIGFsbCB0 aGUgcmVzdCBvZiB0aGUgcGFnZSAqLworCQljb3B5c2l6ZSA9IFFVRVVFX1BBR0VTSVpFIC0gY3Vy b2Zmc2V0OworCX0KKworCW1lbWNweShwYWdlX2J1ZmZlciArIGN1cm9mZnNldCwKKwkJICAgTm90 aWZ5Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10gKyBjdXJvZmZzZXQsCisJCSAgIGNv cHlzaXplKTsKKwkvKiBSZWxlYXNlIGxvY2sgdGhhdCB3ZSBnb3QgZnJvbSBTaW1wbGVMcnVSZWFk UGFnZV9SZWFkT25seSgpICovCisJTFdMb2NrUmVsZWFzZShTaW1wbGVMcnVHZXRCYW5rTG9jayhO b3RpZnlDdGwsIGN1cnBhZ2UpKTsKK30KIAogLyoKICAqIFJlYWQgYWxsIHBlbmRpbmcgbm90aWZp Y2F0aW9ucyBmcm9tIHRoZSBxdWV1ZSwgYW5kIGRlbGl2ZXIgYXBwcm9wcmlhdGUKQEAgLTE5MzIs MzYgKzE5NzAsMTMgQEAgYXN5bmNRdWV1ZVJlYWRBbGxOb3RpZmljYXRpb25zKHZvaWQpCiAKIAkJ ZG8KIAkJewotCQkJaW50NjQJCWN1cnBhZ2UgPSBRVUVVRV9QT1NfUEFHRShwb3MpOwotCQkJaW50 CQkJY3Vyb2Zmc2V0ID0gUVVFVUVfUE9TX09GRlNFVChwb3MpOwotCQkJaW50CQkJc2xvdG5vOwot CQkJaW50CQkJY29weXNpemU7Ci0KIAkJCS8qCiAJCQkgKiBXZSBjb3B5IHRoZSBkYXRhIGZyb20g U0xSVSBpbnRvIGEgbG9jYWwgYnVmZmVyLCBzbyBhcyB0byBhdm9pZAogCQkJICogaG9sZGluZyB0 aGUgU0xSVSBsb2NrIHdoaWxlIHdlIGFyZSBleGFtaW5pbmcgdGhlIGVudHJpZXMgYW5kCiAJCQkg KiBwb3NzaWJseSB0cmFuc21pdHRpbmcgdGhlbSB0byBvdXIgZnJvbnRlbmQuICBDb3B5IG9ubHkg dGhlIHBhcnQKIAkJCSAqIG9mIHRoZSBwYWdlIHdlIHdpbGwgYWN0dWFsbHkgaW5zcGVjdC4KIAkJ CSAqLwotCQkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoTm90aWZ5Q3RsLCBj dXJwYWdlLAotCQkJCQkJCQkJCQkJSW52YWxpZFRyYW5zYWN0aW9uSWQpOwotCQkJaWYgKGN1cnBh Z2UgPT0gUVVFVUVfUE9TX1BBR0UoaGVhZCkpCi0JCQl7Ci0JCQkJLyogd2Ugb25seSB3YW50IHRv IHJlYWQgYXMgZmFyIGFzIGhlYWQgKi8KLQkJCQljb3B5c2l6ZSA9IFFVRVVFX1BPU19PRkZTRVQo aGVhZCkgLSBjdXJvZmZzZXQ7Ci0JCQkJaWYgKGNvcHlzaXplIDwgMCkKLQkJCQkJY29weXNpemUg PSAwOwkvKiBqdXN0IGZvciBzYWZldHkgKi8KLQkJCX0KLQkJCWVsc2UKLQkJCXsKLQkJCQkvKiBm ZXRjaCBhbGwgdGhlIHJlc3Qgb2YgdGhlIHBhZ2UgKi8KLQkJCQljb3B5c2l6ZSA9IFFVRVVFX1BB R0VTSVpFIC0gY3Vyb2Zmc2V0OwotCQkJfQotCQkJbWVtY3B5KHBhZ2VfYnVmZmVyLmJ1ZiArIGN1 cm9mZnNldCwKLQkJCQkgICBOb3RpZnlDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXSAr IGN1cm9mZnNldCwKLQkJCQkgICBjb3B5c2l6ZSk7Ci0JCQkvKiBSZWxlYXNlIGxvY2sgdGhhdCB3 ZSBnb3QgZnJvbSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seSgpICovCi0JCQlMV0xvY2tSZWxl YXNlKFNpbXBsZUxydUdldEJhbmtMb2NrKE5vdGlmeUN0bCwgY3VycGFnZSkpOworCQkJYXN5bmNR dWV1ZVJlYWRQYWdlVG9CdWZmZXIocG9zLCBoZWFkLCBwYWdlX2J1ZmZlci5idWYpOwogCiAJCQkv KgogCQkJICogUHJvY2VzcyBtZXNzYWdlcyB1cCB0byB0aGUgc3RvcCBwb3NpdGlvbiwgZW5kIG9m IHBhZ2UsIG9yIGFuCkBAIC0yMDk3LDYgKzIxMTIsODIgQEAgYXN5bmNRdWV1ZVByb2Nlc3NQYWdl RW50cmllcyh2b2xhdGlsZSBRdWV1ZVBvc2l0aW9uICpjdXJyZW50LAogCXJldHVybiByZWFjaGVk U3RvcDsKIH0KIAorLyoKKyAqIEdldCB0aGUgb2xkZXN0IFhJRCBpbiB0aGUgbm90aWZpY2F0aW9u IHF1ZXVlIHRoYXQgaGFzIG5vdCB5ZXQgYmVlbgorICogcHJvY2Vzc2VkIGJ5IGFsbCBsaXN0ZW5p bmcgYmFja2VuZHMuCisgKgorICogUmV0dXJucyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBpZiB0aGVy ZSBhcmUgbm8gdW5wcm9jZXNzZWQgbm90aWZpY2F0aW9ucy4KKyAqLworVHJhbnNhY3Rpb25JZAor R2V0T2xkZXN0UXVldWVkTm90aWZ5WGlkKHZvaWQpCit7CisJUXVldWVQb3NpdGlvbiBwb3M7CisJ UXVldWVQb3NpdGlvbiBoZWFkOworCVRyYW5zYWN0aW9uSWQgb2xkZXN0WGlkID0gSW52YWxpZFRy YW5zYWN0aW9uSWQ7CisKKwkvKiBwYWdlX2J1ZmZlciBtdXN0IGJlIGFkZXF1YXRlbHkgYWxpZ25l ZCwgc28gdXNlIGEgdW5pb24gKi8KKwl1bmlvbgorCXsKKwkJY2hhcgkJYnVmW1FVRVVFX1BBR0VT SVpFXTsKKwkJQXN5bmNRdWV1ZUVudHJ5IGFsaWduOworCX0JCQlwYWdlX2J1ZmZlcjsKKworCUxX TG9ja0FjcXVpcmUoTm90aWZ5UXVldWVMb2NrLCBMV19FWENMVVNJVkUpOworCisJLyoKKwkgKiBX ZSBtdXN0IHN0YXJ0IGF0IFFVRVVFX1RBSUwgc2luY2Ugbm90aWZpY2F0aW9uIGRhdGEgbWlnaHQg aGF2ZSBiZWVuCisJICogd3JpdHRlbiBiZWZvcmUgdGhlcmUgd2VyZSBhbnkgbGlzdGVuaW5nIGJh Y2tlbmRzLgorCSAqLworCXBvcyA9IFFVRVVFX1RBSUw7CisJaGVhZCA9IFFVRVVFX0hFQUQ7CisK KwkvKiBJZiB0aGUgcXVldWUgaXMgZW1wdHksIG5vIFhJRHMgbmVlZCBwcm90ZWN0aW9uICovCisJ aWYgKFFVRVVFX1BPU19FUVVBTChwb3MsIGhlYWQpKQorCXsKKwkJTFdMb2NrUmVsZWFzZShOb3Rp ZnlRdWV1ZUxvY2spOworCQlyZXR1cm4gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJfQorCisJd2hp bGUgKCFRVUVVRV9QT1NfRVFVQUwocG9zLCBoZWFkKSkKKwl7CisJCWludAkJCWN1cm9mZnNldDsK KwkJQXN5bmNRdWV1ZUVudHJ5ICpxZTsKKworCQkvKiBSZWFkIHRoZSBjdXJyZW50IHBhZ2UgZnJv bSBTTFJVIGludG8gb3VyIGxvY2FsIGJ1ZmZlciAqLworCQlhc3luY1F1ZXVlUmVhZFBhZ2VUb0J1 ZmZlcihwb3MsIGhlYWQsIHBhZ2VfYnVmZmVyLmJ1Zik7CisKKwkJY3Vyb2Zmc2V0ID0gUVVFVUVf UE9TX09GRlNFVChwb3MpOworCisJCS8qIFByb2Nlc3MgYWxsIGVudHJpZXMgb24gdGhpcyBwYWdl IHVwIHRvIGhlYWQgKi8KKwkJd2hpbGUgKGN1cm9mZnNldCArIFFVRVVFQUxJR04oQXN5bmNRdWV1 ZUVudHJ5RW1wdHlTaXplKSA8PSBRVUVVRV9QQUdFU0laRSAmJgorCQkJICAgIVFVRVVFX1BPU19F UVVBTChwb3MsIGhlYWQpKQorCQl7CisJCQlxZSA9IChBc3luY1F1ZXVlRW50cnkgKikgKHBhZ2Vf YnVmZmVyLmJ1ZiArIGN1cm9mZnNldCk7CisKKwkJCS8qCisJCQkgKiBDaGVjayBpZiB0aGlzIGVu dHJ5IGlzIGZvciBvdXIgZGF0YWJhc2UgYW5kIGhhcyBhIHZhbGlkIFhJRC4KKwkJCSAqIE9ubHkg ZW50cmllcyBmb3Igb3VyIGRhdGFiYXNlIG1hdHRlciBmb3Igb3VyIGRhdGZyb3plbnhpZC4KKwkJ CSAqLworCQkJaWYgKHFlLT5kYm9pZCA9PSBNeURhdGFiYXNlSWQgJiYgVHJhbnNhY3Rpb25JZElz VmFsaWQocWUtPnhpZCkpCisJCQl7CisJCQkJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChvbGRl c3RYaWQpIHx8CisJCQkJCVRyYW5zYWN0aW9uSWRQcmVjZWRlcyhxZS0+eGlkLCBvbGRlc3RYaWQp KQorCQkJCQlvbGRlc3RYaWQgPSBxZS0+eGlkOworCQkJfQorCisJCQkvKiBBZHZhbmNlIHRvIG5l eHQgZW50cnkgKi8KKwkJCWlmIChhc3luY1F1ZXVlQWR2YW5jZSgmcG9zLCBxZS0+bGVuZ3RoKSkK KwkJCQlicmVhazsJCQkvKiBhZHZhbmNlZCB0byBuZXh0IHBhZ2UgKi8KKworCQkJY3Vyb2Zmc2V0 ID0gUVVFVUVfUE9TX09GRlNFVChwb3MpOworCQl9CisJfQorCisJTFdMb2NrUmVsZWFzZShOb3Rp ZnlRdWV1ZUxvY2spOworCisJcmV0dXJuIG9sZGVzdFhpZDsKK30KKwogLyoKICAqIEFkdmFuY2Ug dGhlIHNoYXJlZCBxdWV1ZSB0YWlsIHZhcmlhYmxlIHRvIHRoZSBtaW5pbXVtIG9mIGFsbCB0aGUK ICAqIHBlci1iYWNrZW5kIHRhaWwgcG9pbnRlcnMuICBUcnVuY2F0ZSBwZ19ub3RpZnkgc3BhY2Ug aWYgcG9zc2libGUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCmluZGV4IGVkMDNlM2JkNTBkLi42YzYwMWNl ODFhYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMu aCIKICNpbmNsdWRlICJjb21tYW5kcy9jbHVzdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJvZ3Jlc3MuaCIKQEAgLTE2MTcsNiArMTYxOCw3 IEBAIHZhY191cGRhdGVfZGF0ZnJvemVueGlkKHZvaWQpCiAJYm9vbAkJZGlydHkgPSBmYWxzZTsK IAlTY2FuS2V5RGF0YSBrZXlbMV07CiAJdm9pZAkgICAqaW5wbGFjZV9zdGF0ZTsKKwlUcmFuc2Fj dGlvbklkIG9sZGVzdE5vdGlmeVhpZDsKIAogCS8qCiAJICogUmVzdHJpY3QgdGhpcyB0YXNrIHRv IG9uZSBiYWNrZW5kIHBlciBkYXRhYmFzZS4gIFRoaXMgYXZvaWRzIHJhY2UKQEAgLTE3MzMsNiAr MTczNSwxNiBAQCB2YWNfdXBkYXRlX2RhdGZyb3plbnhpZCh2b2lkKQogCWlmIChib2d1cykKIAkJ cmV0dXJuOwogCisJLyoKKwkgKiBBbHNvIGNvbnNpZGVyIHRoZSBvbGRlc3QgWElEIGluIHRoZSBu b3RpZmljYXRpb24gcXVldWUsIHNpbmNlIGJhY2tlbmRzCisJICogd2lsbCBuZWVkIHRvIGNhbGwg VHJhbnNhY3Rpb25JZERpZENvbW1pdCgpIG9uIHRob3NlIFhJRHMgd2hlbgorCSAqIHByb2Nlc3Np bmcgdGhlIG5vdGlmaWNhdGlvbnMuCisJICovCisJb2xkZXN0Tm90aWZ5WGlkID0gR2V0T2xkZXN0 UXVldWVkTm90aWZ5WGlkKCk7CisJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKG9sZGVzdE5vdGlm eVhpZCkgJiYKKwkJVHJhbnNhY3Rpb25JZFByZWNlZGVzKG9sZGVzdE5vdGlmeVhpZCwgbmV3RnJv emVuWGlkKSkKKwkJbmV3RnJvemVuWGlkID0gb2xkZXN0Tm90aWZ5WGlkOworCiAJQXNzZXJ0KFRy YW5zYWN0aW9uSWRJc05vcm1hbChuZXdGcm96ZW5YaWQpKTsKIAlBc3NlcnQoTXVsdGlYYWN0SWRJ c1ZhbGlkKG5ld01pbk11bHRpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2FzeW5jLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9hc3luYy5oCmluZGV4IGY3NWMzZGY5NTU2 Li5hYzMyM2FkYTQ5MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaAor KysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9hc3luYy5oCkBAIC0yNiw2ICsyNiw5IEBAIGV4dGVy biB2b2lkIE5vdGlmeU15RnJvbnRFbmQoY29uc3QgY2hhciAqY2hhbm5lbCwKIAkJCQkJCQkgY29u c3QgY2hhciAqcGF5bG9hZCwKIAkJCQkJCQkgaW50MzIgc3JjUGlkKTsKIAorLyogZ2V0IG9sZGVz dCBYSUQgaW4gdGhlIG5vdGlmaWNhdGlvbiBxdWV1ZSBmb3IgdmFjdXVtIGZyZWV6ZSAqLworZXh0 ZXJuIFRyYW5zYWN0aW9uSWQgR2V0T2xkZXN0UXVldWVkTm90aWZ5WGlkKHZvaWQpOworCiAvKiBu b3RpZnktcmVsYXRlZCBTUUwgc3RhdGVtZW50cyAqLwogZXh0ZXJuIHZvaWQgQXN5bmNfTm90aWZ5 KGNvbnN0IGNoYXIgKmNoYW5uZWwsIGNvbnN0IGNoYXIgKnBheWxvYWQpOwogZXh0ZXJuIHZvaWQg QXN5bmNfTGlzdGVuKGNvbnN0IGNoYXIgKmNoYW5uZWwpOwotLSAKMi41MS4wCgo= --4c2ae3179dbc93f96c75cfd693d1c109f9bd370bb990bf2f18e7f487f91b Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v10-0002-Add-tap-tests-for-listen-notify-vacuum-freeze.patch Content-Type: text/plain; charset=utf-8; name=v10-0002-Add-tap-tests-for-listen-notify-vacuum-freeze.patch RnJvbSAwYTY0NGQzZDcwNjFmZjMxNmIxMWE4MjQ1MTE4YjdkNzBmN2U5ODZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IFdlZCwgMjIgT2N0IDIwMjUgMTE6MDY6MTggLTAzMDAKU3ViamVjdDogW1BBVENIIHYxMCAy LzJdIEFkZCB0YXAgdGVzdHMgZm9yIGxpc3RlbiBub3RpZnkgdmFjdXVtIGZyZWV6ZQoKLS0tCiBz cmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMv dGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVz dC9tb2R1bGVzL3Rlc3RfbGlzdGVuX25vdGlmeS9NYWtlZmlsZSAgfCAxOSArKysrKwogLi4uL21v ZHVsZXMvdGVzdF9saXN0ZW5fbm90aWZ5L21lc29uLmJ1aWxkICAgIHwgMTQgKysrKwogLi4uL3Rl c3RfbGlzdGVuX25vdGlmeS90LzAwMV94aWRfZnJlZXplLnBsICAgIHwgNzQgKysrKysrKysrKysr KysrKwogLi4uL3QvMDAyX2Fib3J0ZWRfdHhfbm90aWZpZXMucGwgICAgICAgICAgICAgIHwgODQg KysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAxOTMgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9saXN0ZW5fbm90aWZ5L01h a2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2xpc3Rlbl9u b3RpZnkvbWVzb24uYnVpbGQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rl c3RfbGlzdGVuX25vdGlmeS90LzAwMV94aWRfZnJlZXplLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2xpc3Rlbl9ub3RpZnkvdC8wMDJfYWJvcnRlZF90eF9ub3Rp Zmllcy5wbAoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUgYi9zcmMvdGVz dC9tb2R1bGVzL01ha2VmaWxlCmluZGV4IDkwMmE3OTU0MTAxLi5hMDE1Yzk2MWQzNSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL01h a2VmaWxlCkBAIC0yOSw2ICsyOSw3IEBAIFNVQkRJUlMgPSBcCiAJCSAgdGVzdF9pbnQxMjggXAog CQkgIHRlc3RfaW50ZWdlcnNldCBcCiAJCSAgdGVzdF9qc29uX3BhcnNlciBcCisJCSAgdGVzdF9s aXN0ZW5fbm90aWZ5IFwKIAkJICB0ZXN0X2xmaW5kIFwKIAkJICB0ZXN0X2x3bG9ja190cmFuY2hl cyBcCiAJCSAgdGVzdF9taXNjIFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvbWVzb24u YnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCmluZGV4IDE0ZmM3NjFjNGNmLi42 YWYzMzQ0OGQ3YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZAorKysg Yi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCkBAIC0yOCw2ICsyOCw3IEBAIHN1YmRpcign dGVzdF9naW5wb3N0aW5nbGlzdCcpCiBzdWJkaXIoJ3Rlc3RfaW50MTI4JykKIHN1YmRpcigndGVz dF9pbnRlZ2Vyc2V0JykKIHN1YmRpcigndGVzdF9qc29uX3BhcnNlcicpCitzdWJkaXIoJ3Rlc3Rf bGlzdGVuX25vdGlmeScpCiBzdWJkaXIoJ3Rlc3RfbGZpbmQnKQogc3ViZGlyKCd0ZXN0X2x3bG9j a190cmFuY2hlcycpCiBzdWJkaXIoJ3Rlc3RfbWlzYycpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL3Rlc3RfbGlzdGVuX25vdGlmeS9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVz dF9saXN0ZW5fbm90aWZ5L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5jMWViNGZkZTM3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9saXN0ZW5fbm90aWZ5L01ha2VmaWxlCkBAIC0wLDAgKzEsMTkgQEAKKyMgc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2xpc3Rlbl9ub3RpZnkvTWFrZWZpbGUKKworTU9EVUxFID0gdGVzdF9saXN0 ZW5fbm90aWZ5CitQR0ZJTEVERVNDID0gInRlc3RfbGlzdGVuX25vdGlmeSAtIHJlZ3Jlc3Npb24g dGVzdGluZyBmb3IgTElTVEVOL05PVElGWSBzdXBwb3J0IgorCitUQVBfVEVTVFMgPSAxCisKK0VY VFJBX0lOU1RBTEw9c3JjL3Rlc3QvbW9kdWxlcy94aWRfd3JhcGFyb3VuZAorCitpZmRlZiBVU0Vf UEdYUworUEdfQ09ORklHID0gcGdfY29uZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcp IC0tcGd4cykKK2luY2x1ZGUgJChQR1hTKQorZWxzZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2xpc3Rlbl9ub3RpZnkKK3RvcF9idWlsZGRpciA9IC4uLy4uLy4uLy4uCitpbmNsdWRl ICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3NyY2Rp cikvY29udHJpYi9jb250cmliLWdsb2JhbC5taworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvdGVzdF9saXN0ZW5fbm90aWZ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2xpc3Rlbl9ub3RpZnkvbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmE2ODA1MmNkMzUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2xpc3Rlbl9ub3RpZnkvbWVzb24uYnVpbGQKQEAgLTAsMCArMSwxNCBAQAor IyBDb3B5cmlnaHQgKGMpIDIwMjItMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKwordGVzdHMgKz0geworICAnbmFtZSc6ICd0ZXN0X2xpc3Rlbl9ub3RpZnknLAorICAn c2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3VycmVudF9i dWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAndGVzdHMnOiBbCisgICAgICAndC8wMDFfeGlk X2ZyZWV6ZS5wbCcsCisgICAgICAndC8wMDJfYWJvcnRlZF90eF9ub3RpZmllcy5wbCcKKyAgICBd LAorICB9LAorfQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbGlzdGVuX25v dGlmeS90LzAwMV94aWRfZnJlZXplLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2xpc3Rlbl9u b3RpZnkvdC8wMDFfeGlkX2ZyZWV6ZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uYThiYmQyNjhjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfbGlzdGVuX25vdGlmeS90LzAwMV94aWRfZnJlZXplLnBsCkBAIC0wLDAgKzEsNzQgQEAK KyMgQ29weXJpZ2h0IChjKSAyMDI0LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7Cit1c2Ug RmlsZTo6UGF0aCBxdyhta3BhdGgpOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG5vZGUg PSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2RlLT5pbml0Owor JG5vZGUtPnN0YXJ0OworCisjIENoZWNrIGlmIHRoZSBleHRlbnNpb24geGlkX3dyYXBhcm91bmQg aXMgYXZhaWxhYmxlLCBhcyBpdCBtYXkgYmUKKyMgcG9zc2libGUgdGhhdCB0aGlzIHNjcmlwdCBp cyBydW4gd2l0aCBpbnN0YWxsY2hlY2ssIHdoZXJlIHRoZSBtb2R1bGUKKyMgd291bGQgbm90IGJl IGluc3RhbGxlZCBieSBkZWZhdWx0LgoraWYgKCEkbm9kZS0+Y2hlY2tfZXh0ZW5zaW9uKCd4aWRf d3JhcGFyb3VuZCcpKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0V4dGVuc2lvbiB4aWRfd3JhcGFy b3VuZCBub3QgaW5zdGFsbGVkJzsKK30KKworIyBTZXR1cAorJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAnQ1JFQVRFIEVYVEVOU0lPTiB4aWRfd3JhcGFyb3VuZCcpOworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSdDUkVBVEUgVEFCTEUgdCBBUyBTRUxFQ1QgZyBBUyBhLCBnKzIg QVMgYiBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDEwMDAwMCkgZzsnCispOworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSdBTFRFUiBEQVRBQkFTRSB0ZW1wbGF0ZTAgV0lUSCBBTExPV19D T05ORUNUSU9OUyB0cnVlJyk7CisKKyMgLS0tIFN0YXJ0IFNlc3Npb24gMSBhbmQgbGVhdmUgaXQg aWRsZSBpbiB0cmFuc2FjdGlvbgorbXkgJHBzcWxfc2Vzc2lvbjEgPSAkbm9kZS0+YmFja2dyb3Vu ZF9wc3FsKCdwb3N0Z3JlcycpOworJHBzcWxfc2Vzc2lvbjEtPnF1ZXJ5X3NhZmUoJ2xpc3RlbiBz OycsICJTZXNzaW9uIDEgbGlzdGVucyB0byAncyciKTsKKyRwc3FsX3Nlc3Npb24xLT5xdWVyeV9z YWZlKCdiZWdpbjsnLCAiU2Vzc2lvbiAxIHN0YXJ0cyBhIHRyYW5zYWN0aW9uIik7CisKKyMgLS0t IFNlc3Npb24gMiwgbXVsdGlwbGUgbm90aWZ5J3MsIGFuZCBjb21taXQgLS0tCitmb3IgbXkgJGkg KDEgLi4gMTApCit7CisJJG5vZGUtPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywgIgorCQlCRUdJ TjsKKwkJTk9USUZZIHMsICckaSc7CisJCUNPTU1JVDsiKTsKK30KKworIyBDb25zdW1lIGVub3Vn aCBYSURzIHRvIHRyaWdnZXIgdHJ1bmNhdGlvbgorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnc2VsZWN0IGNvbnN1bWVfeGlkcygxMDAwMDAwMCk7Jyk7CisKKyMgRXhlY3V0ZSB1cGRhdGUg c28gdGhlIGZyb3plbiB4aWQgb2YgInQiIHRhYmxlIGlzIHVwZGF0ZWQgdG8gYSB4aWQgZ3JlYXRl cgorIyB0aGFuIGNvbnN1bWVfeGlkcygpIHJlc3VsdAorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnVVBEQVRFIHQgU0VUIGEgPSBhK2I7Jyk7CisKKyMgUmVtZW1iZXIgY3VycmVudCBkYXRm cm96ZW54aWQgYmVmb3JlIHZhY3V1bSBmcmVlemUgdG8gZW5zdXJlIHRoYXQgaXQgaXMgYWR2YW5j ZWQuCitteSAkZGF0YWZyb256ZW54aWQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJz ZWxlY3QgZGF0ZnJvemVueGlkIGZyb20gcGdfZGF0YWJhc2Ugd2hlcmUgZGF0bmFtZSA9ICdwb3N0 Z3JlcyciKTsKKworIyBFeGVjdXRlIHZhY3V1bSBmcmVlemUgb24gYWxsIGRhdGFiYXNlcworJG5v ZGUtPmNvbW1hbmRfb2soWyAndmFjdXVtZGInLCAnLS1hbGwnLCAnLS1mcmVlemUnLCAnLS1wb3J0 JywgJG5vZGUtPnBvcnQgXSwKKwkidmFjdXVtZGIgLS1hbGwgLS1mcmVlemUiKTsKKworIyBHZXQg dGhlIG5ldyBkYXRmcm96ZW54aWQgYWZ0ZXIgdmFjdXVtIGZyZWV6ZSB0byBlbnN1cmUgdGhhdCBp cyBhZHZhbmNlZCBidXQKKyMgd2UgY2FuIHN0aWxsIGdldCB0aGUgbm90aWZpY2F0aW9uIHN0YXR1 cyBvZiB0aGUgbm90aWZpY2F0aW9uCitteSAkZGF0YWZyb256ZW54aWRfZnJlZXplID0gJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAic2VsZWN0IGRhdGZyb3plbnhpZCBmcm9tIHBnX2RhdGFi YXNlIHdoZXJlIGRhdG5hbWUgPSAncG9zdGdyZXMnIik7CitvaygkZGF0YWZyb256ZW54aWRfZnJl ZXplID4gJGRhdGFmcm9uemVueGlkLCAnZGF0ZnJvemVueGlkIGlzIGFkdmFuY2VkJyk7CisKKyMg T24gU2Vzc2lvbiAxLCBjb21taXQgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgbm90aWZpY2F0aW9u cyBpcyByZWNlaXZlZAorbXkgJHJlcyA9ICRwc3FsX3Nlc3Npb24xLT5xdWVyeV9zYWZlKCdjb21t aXQ7JywgImNvbW1pdCBsaXN0ZW4gczsiKTsKK215ICRub3RpZmljYXRpb25zX2NvdW50ID0gMDsK K2ZvcmVhY2ggbXkgJGkgKHNwbGl0KCdcbicsICRyZXMpKQoreworCSRub3RpZmljYXRpb25zX2Nv dW50Kys7CisJbGlrZSgkaSwgcXIvQXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbiAicyIgd2l0aCBw YXlsb2FkICIkbm90aWZpY2F0aW9uc19jb3VudCIgcmVjZWl2ZWQvKTsKK30KK2lzKCRub3RpZmlj YXRpb25zX2NvdW50LCAxMCwgJ3JlY2VpdmVkIGFsbCBjb21taXR0ZWQgbm90aWZpY2F0aW9ucycp OworCitkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9s aXN0ZW5fbm90aWZ5L3QvMDAyX2Fib3J0ZWRfdHhfbm90aWZpZXMucGwgYi9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfbGlzdGVuX25vdGlmeS90LzAwMl9hYm9ydGVkX3R4X25vdGlmaWVzLnBsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NjRjOTU5YTVhOQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9saXN0ZW5fbm90aWZ5L3QvMDAyX2Fib3J0 ZWRfdHhfbm90aWZpZXMucGwKQEAgLTAsMCArMSw4NCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjQt MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsK K3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBGaWxlOjpQYXRoIHF3KG1rcGF0aCk7 Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpV dGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitpZiAoISRFTlZ7UEdfVEVTVF9FWFRSQX0gfHwgJEVO VntQR19URVNUX0VYVFJBfSAhfiAvXGJsaXN0ZW5fbm90aWZ5XGIvKQoreworCXBsYW4gc2tpcF9h bGwgPT4gInRlc3QgbGlzdGVuX25vdGlmeSBub3QgZW5hYmxlZCBpbiBQR19URVNUX0VYVFJBIjsK K30KKworIyBUZXN0IGNoZWNrcyB0aGF0IGxpc3RlbmVycyBkbyBub3QgcmVjZWl2ZSBub3RpZmlj YXRpb25zIGZyb20gYWJvcnRlZAorIyB0cmFuc2FjdGlvbiBldmVuIGlmIG5vdGlmaWNhdGlvbnMg aGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBsaXN0ZW4vbm90aWZ5CisjIHF1ZXVlLiBUbyByZXByb2R1 Y2UgaXQgd2UgdXNlIHRoZSBmYWN0IHRoYXQgc2VyaWFsaXphYmxlIGNvbmZsaWN0cworIyBhcmUg Y2hlY2tlZCBhZnRlciB0eCBhZGRzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHF1ZXVlLgorCitteSAk bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZScpOworJG5vZGUtPmlu aXQ7Ciskbm9kZS0+c3RhcnQ7CisKKyMgU2V0dXAKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgJ0NSRUFURSBUQUJMRSB0MSAoYSBiaWdzZXJpYWwpOycpOworCisjIExpc3RlbmVyCitteSAk cHNxbF9saXN0ZW5lciA9ICRub2RlLT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVzJyk7CiskcHNx bF9saXN0ZW5lci0+cXVlcnlfc2FmZSgnTElTVEVOIGNoOycpOworCisjIFNlc3Npb24xLiBTdGFy dCBTRVJJQUxJWkFCTEUgdHggYW5kIGFkZCBhIG5vdGlmaWNhdGlvbi4KK215ICRwc3FsX3Nlc3Np b24xID0gJG5vZGUtPmJhY2tncm91bmRfcHNxbCgncG9zdGdyZXMnKTsKKyRwc3FsX3Nlc3Npb24x LT5xdWVyeV9zYWZlKCIKKwlCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOworCVNF TEVDVCAqIEZST00gdDE7CisJSU5TRVJUIElOVE8gdDEgREVGQVVMVCBWQUxVRVM7CisJTk9USUZZ IGNoLCdjb21taXR0ZWRfMCc7CisJTk9USUZZIGNoLCdjb21taXR0ZWRfMSc7CisiKTsKKworIyBT ZXNzaW9uMi4gU3RhcnQgU0VSSUFMSVpBQkxFIHR4LCBhZGQgYSBub3RpZmljYXRpb24gYW5kIGlu dHJvZHVjZSBhIGNvbmZsaWN0CisjIHdpdGggc2Vzc2lvbjEuCitteSAkcHNxbF9zZXNzaW9uMiA9 ICRub2RlLT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVzJywgb25fZXJyb3Jfc3RvcCA9PiAwKTsK KyRwc3FsX3Nlc3Npb24yLT5xdWVyeV9zYWZlKCIKKwlCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VS SUFMSVpBQkxFOworCVNFTEVDVCAqIEZST00gdDE7CisJSU5TRVJUIElOVE8gdDEgREVGQVVMVCBW QUxVRVM7CisiKTsKKworIyBTZW5kIG5vdGlmaWNhdGlvbnMgdGhhdCBzaG91bGQgbm90IGJlIGV2 ZW50dWFsbHkgZGVsaXZlcmVkLCBhcyBzZXNzaW9uMgorIyB0cmFuc2FjdGlvbiB3aWxsIGJlIGFi b3J0ZWQuCitteSAkbWVzc2FnZSA9ICdhYm9ydGVkXycgLiAnYScgeCAxMDAwOworZm9yIChteSAk aSA9IDA7ICRpIDwgMTA7ICRpKyspIHsKKyAgICAkcHNxbF9zZXNzaW9uMi0+cXVlcnlfc2FmZSgi Tk9USUZZIGNoLCAnJGkkbWVzc2FnZSciKTsKK30KKworIyBTZXNzaW9uMSBzaG91bGQgYmUgY29t bWl0dGVkIHN1Y2Nlc3NmdWxseS4gTGlzdGVuZXJzIG11c3QgcmVjZWl2ZSBzZXNzaW9uMQorIyBu b3RpZmljYXRpb25zLgorJHBzcWxfc2Vzc2lvbjEtPnF1ZXJ5X3NhZmUoIkNPTU1JVDsiKTsKKwor IyBTZXNzaW9uMiBzaG91bGQgYmUgYWJvcnRlZCBkdWUgdG8gdGhlIGNvbmZsaWN0IHdpdGggc2Vz c2lvbjEuIFRyYW5zYWN0aW9uCisjIGlzIGFib3J0ZWQgYWZ0ZXIgYWRkaW5nIG5vdGlmaWNhdGlv bnMgdG8gdGhlIGxpc3Rlbi9ub3RpZnkgcXVldWUsIGJ1dAorIyBsaXN0ZW5lcnMgc2hvdWxkIG5v dCByZWNlaXZlIHNlc3Npb24yIG5vdGlmaWNhdGlvbnMuCiskcHNxbF9zZXNzaW9uMi0+cXVlcnko IkNPTU1JVDsiKTsKKworIyBzZW5kIG1vcmUgbm90aWZpY2F0aW9ucyBhZnRlciBhYm9ydGVkCisk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJOT1RJRlkgY2gsICdjb21taXR0ZWRfMic7Iik7 Ciskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJOT1RJRlkgY2gsICdjb21taXR0ZWRfMyc7 Iik7CisKKyMgZmV0Y2ggbm90aWZpY2F0aW9ucworbXkgJHJlcyA9ICRwc3FsX2xpc3RlbmVyLT5x dWVyeV9zYWZlKCdiZWdpbjsgY29tbWl0OycpOworCisjIGNoZWNrIHJlY2VpdmVkIG5vdGlmaWNh dGlvbnMKK215IEBsaW5lcyA9IHNwbGl0KCdcbicsICRyZXMpOworaXMoQGxpbmVzLCA0LCAncmVj ZWl2ZWQgYWxsIGNvbW1pdHRlZCBub3RpZmljYXRpb25zJyk7Citmb3IgKG15ICRpID0gMDsgJGkg PCA0OyAkaSsrKSB7CisgICAgbGlrZSgkbGluZXNbJGldLCBxci9Bc3luY2hyb25vdXMgbm90aWZp Y2F0aW9uICJjaCIgd2l0aCBwYXlsb2FkICJjb21taXR0ZWRfJGkiIHJlY2VpdmVkLyk7Cit9CisK K29rKCRwc3FsX2xpc3RlbmVyLT5xdWl0KTsKK29rKCRwc3FsX3Nlc3Npb24xLT5xdWl0KTsKK29r KCRwc3FsX3Nlc3Npb24yLT5xdWl0KTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjUxLjAKCg== --4c2ae3179dbc93f96c75cfd693d1c109f9bd370bb990bf2f18e7f487f91b--