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 1whqd2-000SAq-0V for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 15:25:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whqd0-00Db9i-25 for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 15:25:31 +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 1whqd0-00Db9Z-0h for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 15:25:31 +0000 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whqcy-00000000UqD-06pk for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 15:25:30 +0000 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-476a130c138so41359f8f.0 for ; Thu, 09 Jul 2026 08:25:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783610727; cv=none; d=google.com; s=arc-20260327; b=K6XM+nao8eKoCCpWOzUJD+/V+TnEkCpNSZJ7WLvOmYrFzAY+K8aWof2lh7f/GpJ91o FZszfT1Kp/MMMGMplnycAN9B4OnWVQBwll+7IGiZx5m6qBdhgKeDtsvvWZG42rMuKEkq ynaHLD7CkUoAtjbYLBct3i+fUeDfFei/hB+AbXFUPasmH7z8RhLC+kuVZU+BGBwk6Qgl AssniCBO8gja9s8ZIp/pKS/DZTKsjhpsNHXT94mq9PfdtH7BcBpYS5nXfkYnND89CBEf d/bRELeXB5tPHWZu9ggrIG0Y7aexT5qXVUrk2nIUwSHgHeauid97mjrhndpGTIUOc7wf yiBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=/vGiv2FX+8nfW5GjO3BWZ4noAqevTdKry0zuYiHvmxI=; fh=hfFR/I+Chaa6xI5WsXq5o9/oF7I8X26exkhGFJm0hgQ=; b=M1u7xjMMVd+WZqlbbYewVzlXeWrUIQj2JRWuLQSobqTRP1o9HtiAAvZ0FSsW3sRrjx IXI9pUQ0Uqn7vhtp6a35fS9VVyZNPgJkpwGo7w2oLzxOpMlNhvvZ+HNBIHmiqlWxQsM2 id17E5E15APjJcOOUQbZizG9OD4il/z02iLWJDjpik8aW1rpVoCNS1OUR6M5K2DfpQQP mMdeacmJUyMrxuhPzgTx/SFmggCd34c7X7liGJCN7jCwEh0BdKPBO3ZJft5vrrQYZJ8c j2qVn+DPRapJjQVWKs7CFZI98uYnzdO16AGmfu2m73edexxm6G/tOtf5ZwhyGLkYC1W6 s+7g==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bowt-ie.20251104.gappssmtp.com; s=20251104; t=1783610727; x=1784215527; darn=lists.postgresql.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=/vGiv2FX+8nfW5GjO3BWZ4noAqevTdKry0zuYiHvmxI=; b=Ml82OsIg0xucZMnu3e5RfuNVbqhNpDutx7dqj5mVwAVMytNrQDX3AoWlmcSr3VVVje WgKXO7gvWDzSeh9BwE2L1qph7dgYeoqKm/EABfQMOWJLdsoAFqcx7mwWfgDmRxGZeLPr w3gSBtOIK8Kyx0AXGKOjKWpQ5AziwtgmIIm/LI1psuDN3NB8YDf3QlzjnFOOG22QARD7 e8y0xnjV4QsKalDgQz/1gRBn+8f7Fk7DzJfRFiY6yRg+8fndj1MFWZsDuRwd4rFV7mVr UhKBqMoCg01FrGlGlN5IWaCICe+VG0yId08a8KKTkpNeWbeHvqAMJ+dP0A2imJ+arZaQ PiKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783610727; x=1784215527; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=/vGiv2FX+8nfW5GjO3BWZ4noAqevTdKry0zuYiHvmxI=; b=A70uwfaO/wRrF4ogItmPdYIWoBO+rfwK91YBQWyBjGDEC8rX09R46tTTSmogRb4rur OO3jHuU77M07ylaGdd1cQ0LuAedKhsZkE5sZlgw9h67kHNQWR81nihmXe+ydqB8pl/S3 k6bbCGVhMEQY3lSU3GZY/uMsCs1WlrsjnCnM1M8aVN8SWH5Q9w+fvs4b4OheIqDhgRBP obZ1Dw6VQuM46k0G4UX4qU4/RFXuKvpXajOKETeKKyTNjhK1/xkUYaEZEQAPDgawm+ec eTd/Eq4cevV42h2UQ9zOLbU4+fMxRTrorPmS6UfmYKcfvV2LRMKnQFOK8UgASm52uVvo uwHQ== X-Gm-Message-State: AOJu0YyxGcX1MM14M3XR3ngMKNK2koYiL8fVg07p53CLGWVWdPRAGuNh XmmpBWOYnaox8+OZoqib+GhO8rvctJkNHAnP7n8QYFscCEkSyO4d+1bvrvgDaKNKi0wcCfYUao4 9ulQL8pIc4HM1zVs5jIrO9ZGc207L9i3qA+D7g2IvrA== X-Gm-Gg: AfdE7cm3i/UnsvPd1v+z9c2W0zy+OJV0wFkWe76qkNF8BEyjAfp0a5K4JLNP+KfD3Uy PV/FIOb/Weobds7IGSgfWDP7/uLoj79uQhd0uSUyqGN5Tv1TSge6hvCzhz5M8+axZNItz2WkypV Cvt+nwPW/paL49DseHBpwDCRV7mo9bLla5ytfHkvDsV3j7zngfjbhs5hmHmge8+dr53Lue3WU0X DgHPCqVgWxO3dHQ6nqYrbdVXr89YtmPwRhnbliPBpAk69a2FckELTj9rTsTPwACAwgAnYGQcwxP n/GdUnzUXoHKMpziOYjMCluZG8NbXs2TrXVeFKYqS/A= X-Received: by 2002:a5d:5e8b:0:b0:475:f100:3600 with SMTP id ffacd0b85a97d-47df078b345mr8711090f8f.61.1783610727252; Thu, 09 Jul 2026 08:25:27 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Geoghegan Date: Thu, 9 Jul 2026 11:24:59 -0400 X-Gm-Features: AUfX_mwvnNH1-rPDc98ESn7jDnKN9ZzQfmLeyztRfm2uHQUii78t-cPdADNCoUs Message-ID: Subject: Re: Hash index bucket split bug To: Amit Kapila Cc: PostgreSQL Hackers , Robert Haas Content-Type: multipart/mixed; boundary="000000000000d0fc4006562f3ba1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d0fc4006562f3ba1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 9, 2026 at 6:45=E2=80=AFAM Amit Kapila wrote: > I am getting following regression diff even after applying the patch: > -step s1_split: <... completed> > step s2_scan: > SELECT count(*) FROM hash_split_test > WHERE v =3D (SELECT k FROM hash_split_key); > @@ -68,3 +67,4 @@ > 11 > (1 row) This is just a minor test flakiness issue with the isolation test. Apparently, we need to force a deterministic report position by adding a no-op step to the splitter's session. Attached v2 has a more stable version of the isolation test (no other changes compared to V1). Does this version work for you? The isolation test is just for illustrative purposes. I don't think that it's committable. --=20 Peter Geoghegan --000000000000d0fc4006562f3ba1 Content-Type: application/octet-stream; name="v2-0001-Fix-hash-index-scans-concurrent-with-bucket-split.patch" Content-Disposition: attachment; filename="v2-0001-Fix-hash-index-scans-concurrent-with-bucket-split.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrdnpfsu0 RnJvbSBhMjVhYzEwMTQ1ODdiYzI5YzllZTRmMmQ2NDA2ZDI1YWZiZjc1OWVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBHZW9naGVnYW4gPHBnQGJvd3QuaWU+CkRhdGU6IFdl ZCwgOCBKdWwgMjAyNiAxNDoxODowNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggdjIgMS8yXSBGaXgg aGFzaCBpbmRleCBzY2FucyBjb25jdXJyZW50IHdpdGggYnVja2V0IHNwbGl0cy4KCk92ZXJzaWdo dCBpbiBjb21taXQgN2M3NWVmNTcsIHdoaWNoIGludHJvZHVjZWQgcGFnZS1hdC1hLXRpbWUgcHJv Y2Vzc2luZwpvZiBoYXNoIGluZGV4IHNjYW5zLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNo L2hhc2hzZWFyY2guYyB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBj aGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hhc2gvaGFzaHNlYXJjaC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHNlYXJjaC5j CmluZGV4IDg5ZDFjNWJjNi4uNzg4MmE1MzFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNoc2VhcmNoLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHNl YXJjaC5jCkBAIC03NSw2ICs3NSwyOCBAQCBfaGFzaF9uZXh0KEluZGV4U2NhbkRlc2Mgc2Nhbiwg U2NhbkRpcmVjdGlvbiBkaXIpCiAJCQkJaWYgKCFfaGFzaF9yZWFkcGFnZShzY2FuLCAmYnVmLCBk aXIpKQogCQkJCQllbmRfb2Zfc2NhbiA9IHRydWU7CiAJCQl9CisJCQllbHNlIGlmIChzby0+aGFz aHNvX2J1Y19wb3B1bGF0ZWQgJiYgIXNvLT5oYXNoc29fYnVjX3NwbGl0KQorCQkJeworCQkJCS8q CisJCQkJICogZW5kIG9mIGJ1Y2tldCBiZWluZyBwb3B1bGF0ZWQ6IGNvbnRpbnVlIHRoZSBzY2Fu IGluIHRoZQorCQkJCSAqIGJ1Y2tldCBiZWluZyBzcGxpdCwgb24gd2hvc2UgcHJpbWFyeSBwYWdl IHdlIGhhdmUgaGVsZCBhCisJCQkJICogcGluIHNpbmNlIF9oYXNoX2ZpcnN0CisJCQkJICovCisJ CQkJYnVmID0gc28tPmhhc2hzb19zcGxpdF9idWNrZXRfYnVmOworCQkJCUFzc2VydChCdWZmZXJJ c1ZhbGlkKGJ1ZikpOworCQkJCUxvY2tCdWZmZXIoYnVmLCBCVUZGRVJfTE9DS19TSEFSRSk7CisJ CQkJUHJlZGljYXRlTG9ja1BhZ2UocmVsLCBCdWZmZXJHZXRCbG9ja051bWJlcihidWYpLAorCQkJ CQkJCQkgIHNjYW4tPnhzX3NuYXBzaG90KTsKKworCQkJCS8qCisJCQkJICogc2V0dGluZyBoYXNo c29fYnVjX3NwbGl0IHRvIHRydWUgaW5kaWNhdGVzIHRoYXQgd2UgYXJlCisJCQkJICogc2Nhbm5p bmcgYnVja2V0IGJlaW5nIHNwbGl0LgorCQkJCSAqLworCQkJCXNvLT5oYXNoc29fYnVjX3NwbGl0 ID0gdHJ1ZTsKKworCQkJCWlmICghX2hhc2hfcmVhZHBhZ2Uoc2NhbiwgJmJ1ZiwgZGlyKSkKKwkJ CQkJZW5kX29mX3NjYW4gPSB0cnVlOworCQkJfQogCQkJZWxzZQogCQkJCWVuZF9vZl9zY2FuID0g dHJ1ZTsKIAkJfQpAQCAtMTA0LDYgKzEyNiwzOCBAQCBfaGFzaF9uZXh0KEluZGV4U2NhbkRlc2Mg c2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpCiAJCQkJaWYgKCFfaGFzaF9yZWFkcGFnZShzY2FuLCAm YnVmLCBkaXIpKQogCQkJCQllbmRfb2Zfc2NhbiA9IHRydWU7CiAJCQl9CisJCQllbHNlIGlmIChz by0+aGFzaHNvX2J1Y19wb3B1bGF0ZWQgJiYgc28tPmhhc2hzb19idWNfc3BsaXQpCisJCQl7CisJ CQkJUGFnZQkJcGFnZTsKKwkJCQlIYXNoUGFnZU9wYXF1ZSBvcGFxdWU7CisKKwkJCQkvKgorCQkJ CSAqIHN0YXJ0IG9mIGJ1Y2tldCBiZWluZyBzcGxpdDogY29udGludWUgdGhlIHNjYW4gZnJvbSB0 aGUKKwkJCQkgKiBsYXN0IHBhZ2UgaW4gdGhlIGNoYWluIG9mIHRoZSBidWNrZXQgYmVpbmcgcG9w dWxhdGVkLCBvbgorCQkJCSAqIHdob3NlIHByaW1hcnkgcGFnZSB3ZSBoYXZlIGhlbGQgYSBwaW4g c2luY2UgX2hhc2hfZmlyc3QKKwkJCQkgKi8KKwkJCQlidWYgPSBzby0+aGFzaHNvX2J1Y2tldF9i dWY7CisJCQkJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQoYnVmKSk7CisJCQkJTG9ja0J1ZmZlcihidWYs IEJVRkZFUl9MT0NLX1NIQVJFKTsKKwkJCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWYpOworCQkJ CW9wYXF1ZSA9IEhhc2hQYWdlR2V0T3BhcXVlKHBhZ2UpOworCisJCQkJLyogbW92ZSB0byB0aGUg ZW5kIG9mIGJ1Y2tldCBjaGFpbiAqLworCQkJCXdoaWxlIChCbG9ja051bWJlcklzVmFsaWQob3Bh cXVlLT5oYXNob19uZXh0Ymxrbm8pKQorCQkJCQlfaGFzaF9yZWFkbmV4dChzY2FuLCAmYnVmLCAm cGFnZSwgJm9wYXF1ZSk7CisKKwkJCQkvKgorCQkJCSAqIHNldHRpbmcgaGFzaHNvX2J1Y19zcGxp dCB0byBmYWxzZSBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUKKwkJCQkgKiBzY2FubmluZyB0aGUgYnVj a2V0IGJlaW5nIHBvcHVsYXRlZC4gIE9ubHkgc2V0IGl0IGFmdGVyCisJCQkJICogdGhlIGNoYWlu IHdhbGsgYWJvdmU7IG90aGVyd2lzZSBfaGFzaF9yZWFkbmV4dCB3b3VsZAorCQkJCSAqIGFkdmFu Y2UgdG8gdGhlIGJ1Y2tldCBiZWluZyBzcGxpdCBvbiByZWFjaGluZyB0aGUgZW5kIG9mCisJCQkJ ICogdGhlIGNoYWluLCBpbnN0ZWFkIG9mIHN0b3BwaW5nIHRoZXJlLgorCQkJCSAqLworCQkJCXNv LT5oYXNoc29fYnVjX3NwbGl0ID0gZmFsc2U7CisKKwkJCQlpZiAoIV9oYXNoX3JlYWRwYWdlKHNj YW4sICZidWYsIGRpcikpCisJCQkJCWVuZF9vZl9zY2FuID0gdHJ1ZTsKKwkJCX0KIAkJCWVsc2UK IAkJCQllbmRfb2Zfc2NhbiA9IHRydWU7CiAJCX0KLS0gCjIuNTMuMAoK --000000000000d0fc4006562f3ba1 Content-Type: application/octet-stream; name="v2-0002-Add-tests-for-hash-index-scans-concurrent-with-bu.patch" Content-Disposition: attachment; filename="v2-0002-Add-tests-for-hash-index-scans-concurrent-with-bu.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrdnpft51 RnJvbSA4NjA5MGUwMjQ5ODA2NTg3MTI1Yjc4MWZhYjUzN2I1Y2MwODZkM2Q4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBHZW9naGVnYW4gPHBnQGJvd3QuaWU+CkRhdGU6IFdl ZCwgOCBKdWwgMjAyNiAxNToxODowNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggdjIgMi8yXSBBZGQg dGVzdHMgZm9yIGhhc2ggaW5kZXggc2NhbnMgY29uY3VycmVudCB3aXRoIGJ1Y2tldAogc3BsaXRz LgoKVGVzdCB0aGUgYnVnIGZpeGVkIGJ5IHRoZSBwcmVjZWRpbmcgY29tbWl0IGF0IHR3byBsZXZl bHMsIHVzaW5nIHR3byBuZXcKaW5qZWN0aW9uIHBvaW50cyBpbiBfaGFzaF9zcGxpdGJ1Y2tldDog YW4gZXJyb3ItbW9kZSBwb2ludCBwbGFjZWQKYmVmb3JlIHR1cGxlIHJlbG9jYXRpb24gYmVnaW5z ICh3aGVyZSBleGlzdGluZyBjb2RlIGNhbiBmYWlsIGFueXdheSksCmFuZCBhIHdhaXQtbW9kZSBw b2ludCBwbGFjZWQgYWZ0ZXIgdHVwbGUgcmVsb2NhdGlvbiwgd2hlcmUgdGhlIHNwbGl0dGVyCmhv bGRzIG5vIGJ1ZmZlciBjb250ZW50IGxvY2tzLgoKQSByZWdyZXNzIHRlc3QgdXNlcyB0aGUgZXJy b3ItbW9kZSBwb2ludCB0byBpbnRlcnJ1cHQgYSBzcGxpdCBwYXJ0d2F5CnRocm91Z2gsIHRoZW4g dmVyaWZpZXMgdGhhdCBmb3J3YXJkLCBiYWNrd2FyZCwgYW5kIGJpdG1hcCBzY2FucyBvZiB0aGUK YWZmZWN0ZWQgYnVja2V0IHBhaXIgYWxsIGFncmVlIHdpdGggYSBzZXFzY2FuLiAgVGhlIGJ1ZyBp c24ndCBzcGVjaWZpYwp0byBpbnRlcnJ1cHRlZCBzcGxpdHM6IGludGVycnVwdGluZyBhIHNwbGl0 IGlzIGp1c3QgdGhlIG1vc3QgY29udmVuaWVudAp3YXkgdG8gaG9sZCB0aGUgYnVja2V0IHBhaXIg aW4gdGhlIHNhbWUgc3RhdGUgdGhhdCBzY2FucyBvYnNlcnZlIHdoaWxlCmFueSBzcGxpdCBpcyBp biBwcm9ncmVzcywgbWFraW5nIHRoZSB0ZXN0IGRldGVybWluaXN0aWMgd2l0aG91dCBhCnNlY29u ZCBzZXNzaW9uLgoKQW4gaXNvbGF0aW9uIHRlc3QgcHJvdmVzIHRoYXQgY2xhaW0gZGlyZWN0bHk6 IGl0IHBhdXNlcyBhIHNwbGl0dGVyIG9uCnRoZSB3YWl0LW1vZGUgcG9pbnQgYW5kIHJ1bnMgdGhl IHNhbWUgc2NhbnMgZnJvbSBhIHNlY29uZCBzZXNzaW9uIHdoaWxlCnRoZSBzcGxpdCByZW1haW5z IGdlbnVpbmVseSBpbiBwcm9ncmVzcywgdGhlbiBsZXRzIHRoZSBzcGxpdCBmaW5pc2ggYW5kCnNj YW5zIG9uY2UgbW9yZS4KCkNvLUF1dGhvcmVkLUJ5OiBDbGF1ZGUgRmFibGUgNSA8bm9yZXBseUBh bnRocm9waWMuY29tPgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hwYWdlLmMgICAg ICAgICAgICB8ICAgNSArCiBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZp bGUgICAgfCAgIDMgKy0KIC4uLi9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2hhc2gtc3BsaXQu b3V0ICB8ICA3MSArKysrKysrKysrCiAuLi4vaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9oYXNo X3NwbGl0Lm91dCAgfCAxMzEgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9tb2R1bGVzL2lu amVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQgfCAgIDIgKwogLi4uL2luamVjdGlvbl9wb2ludHMv c3BlY3MvaGFzaC1zcGxpdC5zcGVjICAgIHwgIDg1ICsrKysrKysrKysrKwogLi4uL2luamVjdGlv bl9wb2ludHMvc3FsL2hhc2hfc3BsaXQuc3FsICAgICAgIHwgIDgwICsrKysrKysrKysrCiA3IGZp bGVzIGNoYW5nZWQsIDM3NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2hhc2gt c3BsaXQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25f cG9pbnRzL2V4cGVjdGVkL2hhc2hfc3BsaXQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2hhc2gtc3BsaXQuc3BlYwogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvaGFzaF9z cGxpdC5zcWwKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNocGFnZS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBhZ2UuYwppbmRleCA4MDk5YjBkMDIuLmMy ZTcyMTNjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBhZ2UuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNocGFnZS5jCkBAIC0zNSw2ICszNSw3IEBA CiAjaW5jbHVkZSAicG9ydC9wZ19iaXR1dGlscy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJlZGlj YXRlLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9zbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvaW5qZWN0 aW9uX3BvaW50LmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAKIHN0YXRpYyBib29sIF9oYXNo X2FsbG9jX2J1Y2tldHMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBmaXJzdGJsb2NrLApAQCAt MTEwNCw2ICsxMTA1LDggQEAgX2hhc2hfc3BsaXRidWNrZXQoUmVsYXRpb24gcmVsLAogCW5wYWdl ID0gQnVmZmVyR2V0UGFnZShuYnVmKTsKIAlub3BhcXVlID0gSGFzaFBhZ2VHZXRPcGFxdWUobnBh Z2UpOwogCisJSU5KRUNUSU9OX1BPSU5UKCJoYXNoLXNwbGl0LWJlZm9yZS1yZWxvY2F0aW9uIiwg TlVMTCk7CisKIAkvKiBDb3B5IHRoZSBwcmVkaWNhdGUgbG9ja3MgZnJvbSBvbGQgYnVja2V0IHRv IG5ldyBidWNrZXQuICovCiAJUHJlZGljYXRlTG9ja1BhZ2VTcGxpdChyZWwsCiAJCQkJCQkgICBC dWZmZXJHZXRCbG9ja051bWJlcihidWNrZXRfb2J1ZiksCkBAIC0xMjUyLDYgKzEyNTUsOCBAQCBf aGFzaF9zcGxpdGJ1Y2tldChSZWxhdGlvbiByZWwsCiAJCQkvKiBiZSB0aWR5ICovCiAJCQlmb3Ig KGkgPSAwOyBpIDwgbml0dXBzOyBpKyspCiAJCQkJcGZyZWUoaXR1cHNbaV0pOworCisJCQlJTkpF Q1RJT05fUE9JTlQoImhhc2gtc3BsaXQtYWZ0ZXItcmVsb2NhdGlvbiIsIE5VTEwpOwogCQkJYnJl YWs7CiAJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRz L01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL01ha2VmaWxlCmlu ZGV4IGMwMWQyZmIwOS4uMjNlMDAyMDdiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2lu amVjdGlvbl9wb2ludHMvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25f cG9pbnRzL01ha2VmaWxlCkBAIC05LDEwICs5LDExIEBAIEVYVEVOU0lPTiA9IGluamVjdGlvbl9w b2ludHMKIERBVEEgPSBpbmplY3Rpb25fcG9pbnRzLS0xLjAuc3FsCiBQR0ZJTEVERVNDID0gImlu amVjdGlvbl9wb2ludHMgLSBmYWNpbGl0eSBmb3IgaW5qZWN0aW9uIHBvaW50cyIKIAotUkVHUkVT UyA9IGluamVjdGlvbl9wb2ludHMgaGFzaGFnZyByZWluZGV4X2NvbmMgdmFjdXVtCitSRUdSRVNT ID0gaW5qZWN0aW9uX3BvaW50cyBoYXNoYWdnIHJlaW5kZXhfY29uYyB2YWN1dW0gaGFzaF9zcGxp dAogUkVHUkVTU19PUFRTID0gLS1kbHBhdGg9JCh0b3BfYnVpbGRkaXIpL3NyYy90ZXN0L3JlZ3Jl c3MKIAogSVNPTEFUSU9OID0gYmFzaWMgXAorCSAgICBoYXNoLXNwbGl0IFwKIAkgICAgaW5wbGFj ZSBcCiAJICAgIHJlcGFjayBcCiAJICAgIHJlcGFja190ZW1wb3JhbCBcCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaGFzaC1zcGxpdC5vdXQg Yi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaGFzaC1zcGxpdC5v dXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi40OTYyMGI3OWMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQv aGFzaC1zcGxpdC5vdXQKQEAgLTAsMCArMSw3MSBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDIg c2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMxX3NwbGl0IHMyX2luc2VydCBzMl9z Y2FuIHMyX2JhY2sgczJfZGV0YWNoIHMyX3dha2V1cCBzMV9ub29wIHMyX3NjYW4KK2luamVjdGlv bl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMV9zcGxpdDogCisgICAgSU5TRVJUIElOVE8gaGFz aF9zcGxpdF90ZXN0CisgICAgICBTRUxFQ1QgMTAwMDAwMCArIGcgRlJPTSBoYXNoX3NwbGl0X2dl b20sIGdlbmVyYXRlX3NlcmllcygxLCAzMjAgKiBuYnVja2V0cykgZzsKKyA8d2FpdGluZyAuLi4+ CitzdGVwIHMyX2luc2VydDogCisgICAgSU5TRVJUIElOVE8gaGFzaF9zcGxpdF90ZXN0IFNFTEVD VCBrIEZST00gaGFzaF9zcGxpdF9rZXk7CisKK3N0ZXAgczJfc2NhbjogCisgICAgU0VMRUNUIGNv dW50KCopIEZST00gaGFzaF9zcGxpdF90ZXN0CisgICAgIFdIRVJFIHYgPSAoU0VMRUNUIGsgRlJP TSBoYXNoX3NwbGl0X2tleSk7CisKK2NvdW50CistLS0tLQorICAgMTEKKygxIHJvdykKKworc3Rl cCBzMl9iYWNrOiAKKyAgICBCRUdJTjsKKyAgICBERUNMQVJFIGMgU0NST0xMIENVUlNPUiBGT1IK KyAgICAgIFNFTEVDVCB2ID0gKFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXkpIEZST00gaGFz aF9zcGxpdF90ZXN0CisgICAgICAgV0hFUkUgdiA9IChTRUxFQ1QgayBGUk9NIGhhc2hfc3BsaXRf a2V5KTsKKyAgICBNT1ZFIEZPUldBUkQgQUxMIElOIGM7CisgICAgRkVUQ0ggQkFDS1dBUkQgQUxM IEZST00gYzsKKyAgICBDT01NSVQ7CisKKz9jb2x1bW4/CistLS0tLS0tLQordCAgICAgICAKK3Qg ICAgICAgCit0ICAgICAgIAordCAgICAgICAKK3QgICAgICAgCit0ICAgICAgIAordCAgICAgICAK K3QgICAgICAgCit0ICAgICAgIAordCAgICAgICAKK3QgICAgICAgCisoMTEgcm93cykKKworc3Rl cCBzMl9kZXRhY2g6IFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnaGFzaC1zcGxpdC1h ZnRlci1yZWxvY2F0aW9uJyk7CitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJf d2FrZXVwOiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2hhc2gtc3BsaXQtYWZ0ZXIt cmVsb2NhdGlvbicpOworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3NwbGl0 OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczFfbm9vcDogCitzdGVwIHMyX3NjYW46IAorICAgIFNF TEVDVCBjb3VudCgqKSBGUk9NIGhhc2hfc3BsaXRfdGVzdAorICAgICBXSEVSRSB2ID0gKFNFTEVD VCBrIEZST00gaGFzaF9zcGxpdF9rZXkpOworCitjb3VudAorLS0tLS0KKyAgIDExCisoMSByb3cp CisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3Rl ZC9oYXNoX3NwbGl0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBl Y3RlZC9oYXNoX3NwbGl0Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjA3NTQ2MThjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9u X3BvaW50cy9leHBlY3RlZC9oYXNoX3NwbGl0Lm91dApAQCAtMCwwICsxLDEzMSBAQAorLS0gVGVz dCBoYXNoIGluZGV4IHNjYW5zIG9mIGEgYnVja2V0IHBhaXIgd2hvc2Ugc3BsaXQgaXMgaW5jb21w bGV0ZQorLS0KKy0tIFRoZSBiZWhhdmlvciB0ZXN0ZWQgaGVyZSBpcyBub3Qgc3BlY2lmaWMgdG8g aW5jb21wbGV0ZSBzcGxpdHM6IGl0CistLSBhcHBsaWVzIHRvIGFueSBzY2FuIHRoYXQgcnVucyB3 aGlsZSB0aGUgYnVja2V0IHBhaXIncyBzcGxpdC1pbi1wcm9ncmVzcworLS0gZmxhZ3MgYXJlIHNl dCwgd2hpY2ggaXMgdGhlIGNhc2UgZm9yIHRoZSBkdXJhdGlvbiBvZiBldmVyeSBzcGxpdC4KKy0t IEludGVycnVwdGluZyBhIHNwbGl0IGlzIG1lcmVseSB0aGUgbW9zdCBjb252ZW5pZW50IHdheSB0 byBob2xkIHRoZQorLS0gYnVja2V0IHBhaXIgaW4gdGhhdCBzdGF0ZTogaXQgbWFrZXMgdGhlIHRl c3RzIGJlbG93IGRldGVybWluaXN0aWMsCistLSB3aXRob3V0IGFueSBuZWVkIGZvciBhIHNlY29u ZCBzZXNzaW9uLiAgVGhlIGhhc2gtc3BsaXQgaXNvbGF0aW9uIHRlc3QKKy0tIHByb3ZpZGVzIGVx dWl2YWxlbnQgY292ZXJhZ2UgZm9yIHNjYW5zIHRoYXQgcnVuIGR1cmluZyBhIGxpdmUgc3BsaXQu CitDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7CitTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19zZXRfbG9jYWwoKTsKKyBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2NhbCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIGhhc2hfc3Bs aXRfdGVzdCAodiBpbnQ0KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7CitDUkVB VEUgSU5ERVggaGFzaF9zcGxpdF9pbmRleCBPTiBoYXNoX3NwbGl0X3Rlc3QgVVNJTkcgaGFzaCAo dik7CistLSBEZXRlcm1pbmUgdGhlIGxheW91dCBvZiB0aGUgKG5ldmVyLXNwbGl0KSBpbmRleDog b25lIG1ldGFwYWdlLCBuYnVja2V0cworLS0gYnVja2V0IHBhZ2VzLCBhbmQgb25lIGJpdG1hcCBw YWdlLiAgVGhlIGluZGV4J3MgZmlyc3QgYnVja2V0IHNwbGl0IHdpbGwKKy0tIHNwbGl0IGJ1Y2tl dCAwLCBjcmVhdGluZyBidWNrZXQgbmJ1Y2tldHMuCitDUkVBVEUgVEVNUCBUQUJMRSBoYXNoX3Nw bGl0X2dlb20gQVMKKyAgU0VMRUNUIHBnX3JlbGF0aW9uX3NpemUoJ2hhc2hfc3BsaXRfaW5kZXgn KSAvCisgICAgICAgICBjdXJyZW50X3NldHRpbmcoJ2Jsb2NrX3NpemUnKTo6YmlnaW50IC0gMiBB UyBuYnVja2V0czsKKy0tIHNhbml0eTogaW5pdGlhbCBidWNrZXQgY291bnRzIGFyZSBhbHdheXMg cG93ZXJzIG9mIHR3bworU0VMRUNUIG5idWNrZXRzID4gMCBBTkQgKG5idWNrZXRzICYgKG5idWNr ZXRzIC0gMSkpID0gMCBBUyBuYnVja2V0c19vaworICBGUk9NIGhhc2hfc3BsaXRfZ2VvbTsKKyBu YnVja2V0c19vayAKKy0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKKy0tIENob29zZSBhIHZh bHVlIHRoYXQgbWFwcyB0byBidWNrZXQgMCBiZWZvcmUgdGhlIHNwbGl0IGFuZCB0byB0aGUgbmV3 CistLSBidWNrZXQgYWZ0ZXJ3YXJkcworQ1JFQVRFIFRFTVAgVEFCTEUgaGFzaF9zcGxpdF9rZXkg QVMKKyAgU0VMRUNUIG1pbih2KTo6aW50NCBBUyBrCisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMTAwMDApIHYsIGhhc2hfc3BsaXRfZ2VvbQorICAgV0hFUkUgKGhhc2hpbnQ0KHY6OmludDQp ICYgKDIgKiBuYnVja2V0cyAtIDEpKSA9IG5idWNrZXRzOworSU5TRVJUIElOVE8gaGFzaF9zcGxp dF90ZXN0CisgIFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXksIGdlbmVyYXRlX3Nlcmllcygx LCAxMCk7CistLSBFcnJvciBvdXQgZHVyaW5nIHRoZSBmaXJzdCBidWNrZXQgc3BsaXQsIGxlYXZp bmcgaXQgaW5jb21wbGV0ZQorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdoYXNoLXNw bGl0LWJlZm9yZS1yZWxvY2F0aW9uJywgJ2Vycm9yJyk7CisgaW5qZWN0aW9uX3BvaW50c19hdHRh Y2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0lOU0VSVCBJTlRP IGhhc2hfc3BsaXRfdGVzdAorICBTRUxFQ1QgMTAwMDAwMCArIGcgRlJPTSBoYXNoX3NwbGl0X2dl b20sIGdlbmVyYXRlX3NlcmllcygxLCAzNTAgKiBuYnVja2V0cykgZzsKK0VSUk9SOiAgZXJyb3Ig dHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGFzaC1zcGxpdC1iZWZvcmUtcmVsb2NhdGlv bgorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdoYXNoLXNwbGl0LWJlZm9yZS1yZWxv Y2F0aW9uJyk7CisgaW5qZWN0aW9uX3BvaW50c19kZXRhY2ggCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKKy0tIFRoaXMgaW5zZXJ0aW9uIGdvZXMgdG8gdGhlIG5ldyBi dWNrZXQsIHdoaWNoIGlzIHN0aWxsIGZsYWdnZWQgYXMgYmVpbmcKKy0tIHBvcHVsYXRlZCBieSB0 aGUgaW5jb21wbGV0ZSBzcGxpdAorSU5TRVJUIElOVE8gaGFzaF9zcGxpdF90ZXN0IFNFTEVDVCBr IEZST00gaGFzaF9zcGxpdF9rZXk7CistLSBTY2FucyBvZiB0aGF0IGJ1Y2tldCBtdXN0IHZpc2l0 IGJvdGggYnVja2V0cyBvZiB0aGUgaW5jb21wbGV0ZSBzcGxpdDoKKy0tIHRoZSBmcmVzaCByb3cg ZnJvbSB0aGUgbmV3IGJ1Y2tldCwgcGx1cyB0aGUgMTAgb2xkZXIgcm93cyB0aGF0IHJlbWFpbgor LS0gaW4gYnVja2V0IDAKK1NFVCBlbmFibGVfc2Vxc2NhbiA9IG9mZjsKK1NFVCBlbmFibGVfYml0 bWFwc2NhbiA9IG9mZjsKK0VYUExBSU4gKENPU1RTIE9GRikKKyAgU0VMRUNUIGNvdW50KCopIEZS T00gaGFzaF9zcGxpdF90ZXN0CisgICBXSEVSRSB2ID0gKFNFTEVDVCBrIEZST00gaGFzaF9zcGxp dF9rZXkpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIEluaXRQbGFuIGV4cHJfMQorICAgICAt PiAgU2VxIFNjYW4gb24gaGFzaF9zcGxpdF9rZXkKKyAgICAgICAgICAgRGlzYWJsZWQ6IHRydWUK KyAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGhhc2hfc3BsaXRfaW5kZXggb24gaGFzaF9zcGxpdF90 ZXN0CisgICAgICAgICBJbmRleCBDb25kOiAodiA9IChJbml0UGxhbiBleHByXzEpLmNvbDEpCiso NiByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBoYXNoX3NwbGl0X3Rlc3QKKyBXSEVSRSB2 ID0gKFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXkpOworIGNvdW50IAorLS0tLS0tLQorICAg IDExCisoMSByb3cpCisKKy0tIEJhY2t3YXJkIHNjYW5zIG11c3QgdmlzaXQgYm90aCBidWNrZXRz IHRvbywgaW4gdGhlIG9wcG9zaXRlIG9yZGVyCitCRUdJTjsKK0RFQ0xBUkUgYyBTQ1JPTEwgQ1VS U09SIEZPUgorICBTRUxFQ1QgdiA9IChTRUxFQ1QgayBGUk9NIGhhc2hfc3BsaXRfa2V5KSBGUk9N IGhhc2hfc3BsaXRfdGVzdAorICAgV0hFUkUgdiA9IChTRUxFQ1QgayBGUk9NIGhhc2hfc3BsaXRf a2V5KTsKK01PVkUgRk9SV0FSRCBBTEwgSU4gYzsKK0ZFVENIIEJBQ0tXQVJEIEFMTCBGUk9NIGM7 CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorIHQKKyB0CisgdAorIHQKKyB0CisgdAorIHQK KyB0CisgdAorIHQKKygxMSByb3dzKQorCitDT01NSVQ7CistLSBTYW1lIGNvdW50IHZpYSBhIGJp dG1hcCBzY2FuLCB3aGljaCBzaGFyZXMgdGhlIHVuZGVybHlpbmcgc2NhbiBjb2RlCitTRVQgZW5h YmxlX2luZGV4c2NhbiA9IG9mZjsKK1NFVCBlbmFibGVfYml0bWFwc2NhbiA9IG9uOworU0VMRUNU IGNvdW50KCopIEZST00gaGFzaF9zcGxpdF90ZXN0CisgV0hFUkUgdiA9IChTRUxFQ1QgayBGUk9N IGhhc2hfc3BsaXRfa2V5KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMQorKDEgcm93KQorCist LSBBbmQgdGhlIGdyb3VuZCB0cnV0aCwgdmlhIHRoZSBoZWFwCitTRVQgZW5hYmxlX2JpdG1hcHNj YW4gPSBvZmY7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGhh c2hfc3BsaXRfdGVzdAorIFdIRVJFIHYgPSAoU0VMRUNUIGsgRlJPTSBoYXNoX3NwbGl0X2tleSk7 CisgY291bnQgCistLS0tLS0tCisgICAgMTEKKygxIHJvdykKKworUkVTRVQgZW5hYmxlX2luZGV4 c2NhbjsKK1JFU0VUIGVuYWJsZV9iaXRtYXBzY2FuOworRFJPUCBUQUJMRSBoYXNoX3NwbGl0X3Rl c3Q7CitEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkCmluZGV4IDU5ZGJhMWNiMC4uYTBiMGM0ODI3 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkCkBA IC0zNiw2ICszNiw3IEBAIHRlc3RzICs9IHsKICAgICAgICdoYXNoYWdnJywKICAgICAgICdyZWlu ZGV4X2NvbmMnLAogICAgICAgJ3ZhY3V1bScsCisgICAgICAnaGFzaF9zcGxpdCcsCiAgICAgXSwK ICAgICAncmVncmVzc19hcmdzJzogWyctLWRscGF0aCcsIG1lc29uLnByb2plY3RfYnVpbGRfcm9v dCgpIC8gJ3NyYy90ZXN0L3JlZ3Jlc3MnXSwKICAgICAjIFRoZSBpbmplY3Rpb24gcG9pbnRzIGFy ZSBjbHVzdGVyLXdpZGUsIHNvIGRpc2FibGUgaW5zdGFsbGNoZWNrCkBAIC00NCw2ICs0NSw3IEBA IHRlc3RzICs9IHsKICAgJ2lzb2xhdGlvbic6IHsKICAgICAnc3BlY3MnOiBbCiAgICAgICAnYmFz aWMnLAorICAgICAgJ2hhc2gtc3BsaXQnLAogICAgICAgJ2lucGxhY2UnLAogICAgICAgJ3JlcGFj aycsCiAgICAgICAncmVwYWNrX3RlbXBvcmFsJywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9oYXNoLXNwbGl0LnNwZWMgYi9zcmMvdGVzdC9tb2R1 bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3MvaGFzaC1zcGxpdC5zcGVjCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMWE4ZTk1YzRjCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2hhc2gtc3BsaXQuc3BlYwpAQCAt MCwwICsxLDg1IEBACisjIFRlc3QgaGFzaCBpbmRleCBzY2FucyB0aGF0IHJ1biB3aGlsZSBhIGJ1 Y2tldCBzcGxpdCBpcyBpbiBwcm9ncmVzcy4KKyMKKyMgVGhlIGludGVyZXN0aW5nIHdpbmRvdyBv cGVucyBvbmNlIHRoZSBzcGxpdCBoYXMgcmVsb2NhdGVkIHR1cGxlcyB0byB0aGUKKyMgbmV3IGJ1 Y2tldCwgYmVmb3JlIHRoZSBidWNrZXRzJyBzcGxpdC1pbi1wcm9ncmVzcyBmbGFncyBhcmUgY2xl YXJlZC4gIEEKKyMgY29uY3VycmVudCBzY2FuIHdob3NlIHZhbHVlIGJlbG9uZ3MgdG8gdGhlIG5l dyBidWNrZXQgbXVzdCB2aXNpdCBib3RoCisjIGJ1Y2tldHMgb2YgdGhlIHBhaXI6IGl0IHNraXBz IHRoZSBtb3ZlZC1ieS1zcGxpdCB0dXBsZXMgaW4gdGhlIG5ldworIyBidWNrZXQsIHNvIGl0IGhh cyB0byByZWFkIHRoZWlyIGF1dGhvcml0YXRpdmUgY29waWVzIGZyb20gdGhlIG9sZAorIyBidWNr ZXQsIHBsdXMgYW55IHR1cGxlcyBpbnNlcnRlZCBpbnRvIHRoZSBuZXcgYnVja2V0IGFmdGVyIHRo ZSBzcGxpdAorIyBiZWdhbi4KKyMKKyMgczEgcGVyZm9ybXMgdGhlIHNwbGl0LCBwYXVzaW5nIGlu c2lkZSB0aGF0IHdpbmRvdyBvbiBhIHdhaXQgaW5qZWN0aW9uCisjIHBvaW50IChwbGFjZWQgd2hl cmUgdGhlIHNwbGl0dGVyIGhvbGRzIG5vIGJ1ZmZlciBjb250ZW50IGxvY2tzKS4gIHMyCisjIHRo ZW4gaW5zZXJ0cyBhIG1hdGNoaW5nIHJvdyAod2hpY2ggZ29lcyB0byB0aGUgbmV3IGJ1Y2tldCkg YW5kIHNjYW5zLAorIyBib3RoIGZvcndhcmRzIGFuZCBiYWNrd2FyZHMuCisKK3NldHVwCit7Cisg ICAgQ1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworICAgIENSRUFURSBUQUJMRSBo YXNoX3NwbGl0X3Rlc3QgKHYgaW50NCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gZmFsc2Up OworICAgIENSRUFURSBJTkRFWCBoYXNoX3NwbGl0X2luZGV4IE9OIGhhc2hfc3BsaXRfdGVzdCBV U0lORyBoYXNoICh2KTsKKyAgICBDUkVBVEUgVEFCTEUgaGFzaF9zcGxpdF9nZW9tIEFTCisgICAg ICBTRUxFQ1QgcGdfcmVsYXRpb25fc2l6ZSgnaGFzaF9zcGxpdF9pbmRleCcpIC8KKyAgICAgICAg ICAgICBjdXJyZW50X3NldHRpbmcoJ2Jsb2NrX3NpemUnKTo6YmlnaW50IC0gMiBBUyBuYnVja2V0 czsKKyAgICBDUkVBVEUgVEFCTEUgaGFzaF9zcGxpdF9rZXkgQVMKKyAgICAgIFNFTEVDVCBtaW4o dik6OmludDQgQVMgaworICAgICAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwMCkgdiwg aGFzaF9zcGxpdF9nZW9tCisgICAgICAgV0hFUkUgKGhhc2hpbnQ0KHY6OmludDQpICYgKDIgKiBu YnVja2V0cyAtIDEpKSA9IG5idWNrZXRzOworICAgIElOU0VSVCBJTlRPIGhhc2hfc3BsaXRfdGVz dAorICAgICAgU0VMRUNUIGsgRlJPTSBoYXNoX3NwbGl0X2tleSwgZ2VuZXJhdGVfc2VyaWVzKDEs IDEwKTsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFRBQkxFIGhhc2hfc3BsaXRfdGVzdCwg aGFzaF9zcGxpdF9nZW9tLCBoYXNoX3NwbGl0X2tleTsKKyAgICBEUk9QIEVYVEVOU0lPTiBpbmpl Y3Rpb25fcG9pbnRzOworfQorCitzZXNzaW9uIHMxCitzZXR1cAoreworICAgIFNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX3NldF9sb2NhbCgpOworICAgIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0 dGFjaCgnaGFzaC1zcGxpdC1hZnRlci1yZWxvY2F0aW9uJywgJ3dhaXQnKTsKK30KK3N0ZXAgczFf c3BsaXQKK3sKKyAgICBJTlNFUlQgSU5UTyBoYXNoX3NwbGl0X3Rlc3QKKyAgICAgIFNFTEVDVCAx MDAwMDAwICsgZyBGUk9NIGhhc2hfc3BsaXRfZ2VvbSwgZ2VuZXJhdGVfc2VyaWVzKDEsIDMyMCAq IG5idWNrZXRzKSBnOworfQorc3RlcCBzMV9ub29wIHsgfQorCitzZXNzaW9uIHMyCitzZXR1cAor eworICAgIFNFVCBlbmFibGVfc2Vxc2NhbiA9IG9mZjsKKyAgICBTRVQgZW5hYmxlX2JpdG1hcHNj YW4gPSBvZmY7Cit9CitzdGVwIHMyX2luc2VydAoreworICAgIElOU0VSVCBJTlRPIGhhc2hfc3Bs aXRfdGVzdCBTRUxFQ1QgayBGUk9NIGhhc2hfc3BsaXRfa2V5OworfQorc3RlcCBzMl9zY2FuCit7 CisgICAgU0VMRUNUIGNvdW50KCopIEZST00gaGFzaF9zcGxpdF90ZXN0CisgICAgIFdIRVJFIHYg PSAoU0VMRUNUIGsgRlJPTSBoYXNoX3NwbGl0X2tleSk7Cit9CitzdGVwIHMyX2JhY2sKK3sKKyAg ICBCRUdJTjsKKyAgICBERUNMQVJFIGMgU0NST0xMIENVUlNPUiBGT1IKKyAgICAgIFNFTEVDVCB2 ID0gKFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXkpIEZST00gaGFzaF9zcGxpdF90ZXN0Cisg ICAgICAgV0hFUkUgdiA9IChTRUxFQ1QgayBGUk9NIGhhc2hfc3BsaXRfa2V5KTsKKyAgICBNT1ZF IEZPUldBUkQgQUxMIElOIGM7CisgICAgRkVUQ0ggQkFDS1dBUkQgQUxMIEZST00gYzsKKyAgICBD T01NSVQ7Cit9CitzdGVwIHMyX2RldGFjaCB7IFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFj aCgnaGFzaC1zcGxpdC1hZnRlci1yZWxvY2F0aW9uJyk7IH0KK3N0ZXAgczJfd2FrZXVwIHsgU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdoYXNoLXNwbGl0LWFmdGVyLXJlbG9jYXRpb24n KTsgfQorCisjIFNjYW4gZHVyaW5nIHRoZSBwYXVzZWQgc3BsaXQsIHRoZW4gbGV0IHRoZSBzcGxp dCBmaW5pc2ggYW5kIHNjYW4gYWdhaW4uCisjIFRoZSBkZXRhY2ggbXVzdCBoYXBwZW4gYmVmb3Jl IHRoZSB3YWtldXA6IHRoZSBzYW1lIElOU0VSVCBjYW4gdHJpZ2dlcgorIyBhbm90aGVyIHNwbGl0 LCB3aGljaCBtdXN0IG5vdCBoaXQgdGhlIGluamVjdGlvbiBwb2ludCBhZ2Fpbi4gIFRoZSBuby1v cAorIyBzdGVwIGluIHRoZSBzcGxpdHRlcidzIHNlc3Npb24gZm9yY2VzIHRoZSBpc29sYXRpb24g dGVzdGVyIHRvIHdhaXQgZm9yCisjIHMxX3NwbGl0IHRvIGZpbmlzaCwga2VlcGluZyB0aGUgcG9z aXRpb24gb2YgaXRzIGNvbXBsZXRpb24gcmVwb3J0IHN0YWJsZQorIyByZWdhcmRsZXNzIG9mIGhv dyBsb25nIHRoZSByZW1haW5pbmcgaW5zZXJ0cyB0YWtlIChzZWUgYmFzaWMuc3BlYykuCitwZXJt dXRhdGlvbiBzMV9zcGxpdCBzMl9pbnNlcnQgczJfc2NhbiBzMl9iYWNrIHMyX2RldGFjaCBzMl93 YWtldXAgczFfbm9vcCBzMl9zY2FuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvc3FsL2hhc2hfc3BsaXQuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rp b25fcG9pbnRzL3NxbC9oYXNoX3NwbGl0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjAxMGI2NTg4MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv aW5qZWN0aW9uX3BvaW50cy9zcWwvaGFzaF9zcGxpdC5zcWwKQEAgLTAsMCArMSw4MCBAQAorLS0g VGVzdCBoYXNoIGluZGV4IHNjYW5zIG9mIGEgYnVja2V0IHBhaXIgd2hvc2Ugc3BsaXQgaXMgaW5j b21wbGV0ZQorLS0KKy0tIFRoZSBiZWhhdmlvciB0ZXN0ZWQgaGVyZSBpcyBub3Qgc3BlY2lmaWMg dG8gaW5jb21wbGV0ZSBzcGxpdHM6IGl0CistLSBhcHBsaWVzIHRvIGFueSBzY2FuIHRoYXQgcnVu cyB3aGlsZSB0aGUgYnVja2V0IHBhaXIncyBzcGxpdC1pbi1wcm9ncmVzcworLS0gZmxhZ3MgYXJl IHNldCwgd2hpY2ggaXMgdGhlIGNhc2UgZm9yIHRoZSBkdXJhdGlvbiBvZiBldmVyeSBzcGxpdC4K Ky0tIEludGVycnVwdGluZyBhIHNwbGl0IGlzIG1lcmVseSB0aGUgbW9zdCBjb252ZW5pZW50IHdh eSB0byBob2xkIHRoZQorLS0gYnVja2V0IHBhaXIgaW4gdGhhdCBzdGF0ZTogaXQgbWFrZXMgdGhl IHRlc3RzIGJlbG93IGRldGVybWluaXN0aWMsCistLSB3aXRob3V0IGFueSBuZWVkIGZvciBhIHNl Y29uZCBzZXNzaW9uLiAgVGhlIGhhc2gtc3BsaXQgaXNvbGF0aW9uIHRlc3QKKy0tIHByb3ZpZGVz IGVxdWl2YWxlbnQgY292ZXJhZ2UgZm9yIHNjYW5zIHRoYXQgcnVuIGR1cmluZyBhIGxpdmUgc3Bs aXQuCitDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7CitTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c19zZXRfbG9jYWwoKTsKKworQ1JFQVRFIFRBQkxFIGhhc2hfc3BsaXRfdGVzdCAodiBp bnQ0KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7CitDUkVBVEUgSU5ERVggaGFz aF9zcGxpdF9pbmRleCBPTiBoYXNoX3NwbGl0X3Rlc3QgVVNJTkcgaGFzaCAodik7CisKKy0tIERl dGVybWluZSB0aGUgbGF5b3V0IG9mIHRoZSAobmV2ZXItc3BsaXQpIGluZGV4OiBvbmUgbWV0YXBh Z2UsIG5idWNrZXRzCistLSBidWNrZXQgcGFnZXMsIGFuZCBvbmUgYml0bWFwIHBhZ2UuICBUaGUg aW5kZXgncyBmaXJzdCBidWNrZXQgc3BsaXQgd2lsbAorLS0gc3BsaXQgYnVja2V0IDAsIGNyZWF0 aW5nIGJ1Y2tldCBuYnVja2V0cy4KK0NSRUFURSBURU1QIFRBQkxFIGhhc2hfc3BsaXRfZ2VvbSBB UworICBTRUxFQ1QgcGdfcmVsYXRpb25fc2l6ZSgnaGFzaF9zcGxpdF9pbmRleCcpIC8KKyAgICAg ICAgIGN1cnJlbnRfc2V0dGluZygnYmxvY2tfc2l6ZScpOjpiaWdpbnQgLSAyIEFTIG5idWNrZXRz OworLS0gc2FuaXR5OiBpbml0aWFsIGJ1Y2tldCBjb3VudHMgYXJlIGFsd2F5cyBwb3dlcnMgb2Yg dHdvCitTRUxFQ1QgbmJ1Y2tldHMgPiAwIEFORCAobmJ1Y2tldHMgJiAobmJ1Y2tldHMgLSAxKSkg PSAwIEFTIG5idWNrZXRzX29rCisgIEZST00gaGFzaF9zcGxpdF9nZW9tOworCistLSBDaG9vc2Ug YSB2YWx1ZSB0aGF0IG1hcHMgdG8gYnVja2V0IDAgYmVmb3JlIHRoZSBzcGxpdCBhbmQgdG8gdGhl IG5ldworLS0gYnVja2V0IGFmdGVyd2FyZHMKK0NSRUFURSBURU1QIFRBQkxFIGhhc2hfc3BsaXRf a2V5IEFTCisgIFNFTEVDVCBtaW4odik6OmludDQgQVMgaworICAgIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMDAwKSB2LCBoYXNoX3NwbGl0X2dlb20KKyAgIFdIRVJFIChoYXNoaW50NCh2Ojpp bnQ0KSAmICgyICogbmJ1Y2tldHMgLSAxKSkgPSBuYnVja2V0czsKKworSU5TRVJUIElOVE8gaGFz aF9zcGxpdF90ZXN0CisgIFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXksIGdlbmVyYXRlX3Nl cmllcygxLCAxMCk7CisKKy0tIEVycm9yIG91dCBkdXJpbmcgdGhlIGZpcnN0IGJ1Y2tldCBzcGxp dCwgbGVhdmluZyBpdCBpbmNvbXBsZXRlCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2go J2hhc2gtc3BsaXQtYmVmb3JlLXJlbG9jYXRpb24nLCAnZXJyb3InKTsKK0lOU0VSVCBJTlRPIGhh c2hfc3BsaXRfdGVzdAorICBTRUxFQ1QgMTAwMDAwMCArIGcgRlJPTSBoYXNoX3NwbGl0X2dlb20s IGdlbmVyYXRlX3NlcmllcygxLCAzNTAgKiBuYnVja2V0cykgZzsKK1NFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2RldGFjaCgnaGFzaC1zcGxpdC1iZWZvcmUtcmVsb2NhdGlvbicpOworCistLSBUaGlz IGluc2VydGlvbiBnb2VzIHRvIHRoZSBuZXcgYnVja2V0LCB3aGljaCBpcyBzdGlsbCBmbGFnZ2Vk IGFzIGJlaW5nCistLSBwb3B1bGF0ZWQgYnkgdGhlIGluY29tcGxldGUgc3BsaXQKK0lOU0VSVCBJ TlRPIGhhc2hfc3BsaXRfdGVzdCBTRUxFQ1QgayBGUk9NIGhhc2hfc3BsaXRfa2V5OworCistLSBT Y2FucyBvZiB0aGF0IGJ1Y2tldCBtdXN0IHZpc2l0IGJvdGggYnVja2V0cyBvZiB0aGUgaW5jb21w bGV0ZSBzcGxpdDoKKy0tIHRoZSBmcmVzaCByb3cgZnJvbSB0aGUgbmV3IGJ1Y2tldCwgcGx1cyB0 aGUgMTAgb2xkZXIgcm93cyB0aGF0IHJlbWFpbgorLS0gaW4gYnVja2V0IDAKK1NFVCBlbmFibGVf c2Vxc2NhbiA9IG9mZjsKK1NFVCBlbmFibGVfYml0bWFwc2NhbiA9IG9mZjsKK0VYUExBSU4gKENP U1RTIE9GRikKKyAgU0VMRUNUIGNvdW50KCopIEZST00gaGFzaF9zcGxpdF90ZXN0CisgICBXSEVS RSB2ID0gKFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXkpOworU0VMRUNUIGNvdW50KCopIEZS T00gaGFzaF9zcGxpdF90ZXN0CisgV0hFUkUgdiA9IChTRUxFQ1QgayBGUk9NIGhhc2hfc3BsaXRf a2V5KTsKKworLS0gQmFja3dhcmQgc2NhbnMgbXVzdCB2aXNpdCBib3RoIGJ1Y2tldHMgdG9vLCBp biB0aGUgb3Bwb3NpdGUgb3JkZXIKK0JFR0lOOworREVDTEFSRSBjIFNDUk9MTCBDVVJTT1IgRk9S CisgIFNFTEVDVCB2ID0gKFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXkpIEZST00gaGFzaF9z cGxpdF90ZXN0CisgICBXSEVSRSB2ID0gKFNFTEVDVCBrIEZST00gaGFzaF9zcGxpdF9rZXkpOwor TU9WRSBGT1JXQVJEIEFMTCBJTiBjOworRkVUQ0ggQkFDS1dBUkQgQUxMIEZST00gYzsKK0NPTU1J VDsKKworLS0gU2FtZSBjb3VudCB2aWEgYSBiaXRtYXAgc2Nhbiwgd2hpY2ggc2hhcmVzIHRoZSB1 bmRlcmx5aW5nIHNjYW4gY29kZQorU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBvZmY7CitTRVQgZW5h YmxlX2JpdG1hcHNjYW4gPSBvbjsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGhhc2hfc3BsaXRfdGVz dAorIFdIRVJFIHYgPSAoU0VMRUNUIGsgRlJPTSBoYXNoX3NwbGl0X2tleSk7CistLSBBbmQgdGhl IGdyb3VuZCB0cnV0aCwgdmlhIHRoZSBoZWFwCitTRVQgZW5hYmxlX2JpdG1hcHNjYW4gPSBvZmY7 CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGhhc2hfc3BsaXRf dGVzdAorIFdIRVJFIHYgPSAoU0VMRUNUIGsgRlJPTSBoYXNoX3NwbGl0X2tleSk7CitSRVNFVCBl bmFibGVfaW5kZXhzY2FuOworUkVTRVQgZW5hYmxlX2JpdG1hcHNjYW47CisKK0RST1AgVEFCTEUg aGFzaF9zcGxpdF90ZXN0OworRFJPUCBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKLS0gCjIu NTMuMAoK --000000000000d0fc4006562f3ba1--