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 1wRPUZ-002K0O-1P for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 07:12:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wRPUX-000NwE-0p for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 07:12:50 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRPUW-000Nw5-2K for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 07:12:49 +0000 Received: from mail-ua1-x935.google.com ([2607:f8b0:4864:20::935]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wRPUV-00000000fIE-2nNn for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 07:12:48 +0000 Received: by mail-ua1-x935.google.com with SMTP id a1e0cc1a2514c-961780b0b98so2507397241.0 for ; Mon, 25 May 2026 00:12:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779693167; cv=none; d=google.com; s=arc-20240605; b=WKgnUm7M1uF72wRryZGwy9w5w69h1td/mcbSZia2aLE9aL6mkB76wzZ7bKbgG7Ap10 IeGUVG/ZrpXZbu2X5n3rfNJarQw9sykJZkxl8r+nr3kIpePmi1k+2bqPwbG4zON7NB4o p/MtoYFiEGKjhGp5HczZ77X/aQ3XVf70BDwMrqS72iCJ9n8S3H8aenUqZ7bkHAm1HH0/ 2i+QzKcq30RbzANSU0u16iluetkTBdjngp2xiWM+v05F5cGbUhr0yciVrvR2Eba6UMRH zcYR9eScUV5sDYXduqO5AHikZ6ipcvaTgJI1+O0QYKdSX8aNOrHxEEBbQz5MXAe2oeok p5Vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=8B9JH9H4amNL4F5w6l6ONWxf+fjyA3Ow0A9bYRjzeyM=; fh=owZqeVnSWY7t43UFj2RIQ2J2lp1QYicL/Y7Ko4uhUD8=; b=VDiZXCvqd9lRGhaEjqIhcrX6IcQdPQHihDRPbTxUIjoKTy30laLKJpuoAzIIi+3LGW abmYhYpAdTR/81+wxoNmTuP4F1BH599cuOtKTNjnTE/RrG6HSSTge+sNkeE3GdoSFdZh QnoJCbA4kbfemf8ffGrqqdGVdSjzmn4hBsNjJy6IqZktJFLcOkCQ7VIzTzFuDFbNaPGK kxdpndd3pp8su3g+72dnLy0ZSpLpq9bylarHQIhJpgz6cVRzKEt6kdiOzuEJI3rKz+ms IJwasDoNgVlP0mVNI1BYgzlsGdW2NhASNOIttBHulm7W3cnhLTh4Q14OjeAw3umffxDN C07w==; 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=gmail.com; s=20251104; t=1779693167; x=1780297967; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=8B9JH9H4amNL4F5w6l6ONWxf+fjyA3Ow0A9bYRjzeyM=; b=HdxQw+/tJWLHsoCU0OXeSk+Zstu8tPiQt0rnQGYB2j78lqrFKT5Flomx060Cqbkl5d 1mPDGoUPCcfyjBWFTjAnjvATjvgH2O+NAKQYOV83poK92OcjewzNvbGPdw9ynUlIzUhp R4ogn4imXyuNr7Yaqs0J/WzwHYVC2XEPtfGHx/koHhmhYjW1iG7m+K/IbbCdgC4R/vRL HtA4HFEnuDXDg15Cw2YkeFxmYre4utunEIi/mtcnRO9RdCZhLvn2C5w8rFdJZOrG8j+c 2atxR7JstdAKqBhzJiDZyiu4OsjxPiAppW0U27xGSnWhukM669SixCkbI3048ypVcboy vuaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779693167; x=1780297967; h=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; bh=8B9JH9H4amNL4F5w6l6ONWxf+fjyA3Ow0A9bYRjzeyM=; b=Xo2a/rWmUK7O+6THNWeCrvAZ7ENXxA4E892R5efmH0FtuTH9EZSvOGwDNlIEIOD24K cmJXy19UxrU8acf/XMNCPdEMHF+CCgb0LciMuEawD3KFF+kxsYHSPnE4Ee14QaRZEzHS LgjWhdDhDEw+uELQ9AyX3WxvWOvFGTB4RORbZrLAQ2i0yYsu1YCXF78hGLJwj0BykSrc WkG1vcx2cesKOsz+76aYgN8PAwN+95o0L/BO9XFowXzPNheu48bJdeTCrjS1Yb0ZHVY5 hUxpibqiOtL0wtPgVA9tLA2CoJcP81Mcij2h6RZDPkjhPrrojhmqBpzmdiAA6AhGbYP7 pSpQ== X-Forwarded-Encrypted: i=1; AFNElJ8DMW4M858njHgQmu6CvAMg7qOCmhjgNChwT3G+1tEMB2t3NP0wmhxHrOnVPPhwmck7cE2a8mJgTm8+WB+p@lists.postgresql.org X-Gm-Message-State: AOJu0YweVxNNe8g0hMimUS/MQrXf0/LuMB6kAH1ZefX2thKcRUHVi69u 7ZmbnuLtoOvUzwNbdg5aRsCIcsJICvTtx2wN9itMgW4dBBVst4tPvZzu2Z5qk79xvQO0WVp5znb BMsCdo5Zun1n8bgyGwqCK7TTalB/u5Aw= X-Gm-Gg: Acq92OHfLVHe708YhF0tObDeDVBKdRrzbfX7tbGIhGGvEq5/brNC3r963zM5Nc58iw+ 77l83p+mc/BGZIwkCO84i84s0Rk5EQF20fCT/rrAP5vwlijwFVRfGK/Lgb3wLoPCB21RLwwVWNb 3luQvIIj6d7fq7yHqinur5UnMawQiGpyrubH0V54Mkicx6dBTfZxQRIkwaKfBBedemQ00hYeD+4 TeX0ByJ+p8dmsvcZC66Rdctkoe6FP3VPlhHoCGy62Evt1oACRlsKJDHxCAhUWwn9s9dCGL61RdE 9YO8aYc= X-Received: by 2002:a05:6102:3ecb:b0:631:4580:6a33 with SMTP id ada2fe7eead31-67c8cba5789mr6303885137.21.1779693166777; Mon, 25 May 2026 00:12:46 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: SATYANARAYANA NARLAPURAM Date: Mon, 25 May 2026 00:12:34 -0700 X-Gm-Features: AVHnY4J-OFOpdYA16IBopMOUh94W4Z2DBs0931888YkjpfDPBw7lon-b3QR0rw8 Message-ID: Subject: Re: [PATCH] Release replication slot on error in SQL-callable slot functions To: shveta malik Cc: vignesh C , Fujii Masao , PostgreSQL Hackers , shveta malik Content-Type: multipart/mixed; boundary="00000000000003f3d806529f1b84" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000003f3d806529f1b84 Content-Type: multipart/alternative; boundary="00000000000003f3d706529f1b82" --00000000000003f3d706529f1b82 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi On Fri, May 22, 2026 at 2:16=E2=80=AFAM shveta malik wrote: > Thanks for reporting the issue. I could reproduce the same issue with > all these as well: > > pg_logical_slot_peek_changes > pg_logical_slot_get_binary_changes > pg_logical_slot_peek_binary_changes > Please find the attached v2 patch that addressed these three cases as well. Thanks, Satya --00000000000003f3d706529f1b82 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Fri, May 22, 2= 026 at 2:16=E2=80=AFAM shveta malik <shveta.malik@gmail.com> wrote:
Thanks for reporting the issue. I could reprod= uce the same issue with
all these as well:

pg_logical_slot_peek_changes
pg_logical_slot_get_binary_changes
pg_logical_slot_peek_binary_changes

Ple= ase find the attached v2 patch that addressed these three cases as well.

Thanks,
Satya
=C2=A0
=
--00000000000003f3d706529f1b82-- --00000000000003f3d806529f1b84 Content-Type: application/octet-stream; name="v2-0001-Release-replication-slot-on-error-in-slot-SQL-functions.patch" Content-Disposition: attachment; filename="v2-0001-Release-replication-slot-on-error-in-slot-SQL-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpkvbwwp0 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dCBiL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dAppbmRleCA3ZGUwM2M3OWY2Zi4u MjJlZThmZGMwYjggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9z bG90Lm91dAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQKQEAg LTQ2NiwzICs0NjYsODAgQEAgU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncGh5c2lj YWxfc2xvdCcpOwogIAogKDEgcm93KQogCistLQorLS0gVGVzdCB0aGF0IHRlbXBvcmFyeSBzbG90 cyBhcmUgcHJvcGVybHkgZHJvcHBlZCBvbiBlcnJvciwgZXZlbiB3aGVuCistLSB0aGUgZXJyb3Ig aXMgY2F1Z2h0IGJ5IGEgUEwvcGdTUUwgRVhDRVBUSU9OIGhhbmRsZXIgKHdoaWNoIGRvZXNuJ3QK Ky0tIHRlcm1pbmF0ZSB0aGUgc2Vzc2lvbikuCistLSBUZXN0IDE6IGNyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3Qgd2l0aCBpbnZhbGlkIHBsdWdpbiAodGVtcG9yYXJ5PXRydWUpCitETyAk JAorQkVHSU4KKyAgICBQRVJGT1JNIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Qo J3JlZ3Jlc3Npb25fc2xvdF9lcnJvcicsICdub25leGlzdGVudF9wbHVnaW5feHl6JywgdHJ1ZSk7 CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2F1Z2h0OiAl JywgU1FMRVJSTTsKK0VORDsKKyQkOworTk9USUNFOiAgY2F1Z2h0OiBjb3VsZCBub3QgYWNjZXNz IGZpbGUgIm5vbmV4aXN0ZW50X3BsdWdpbl94eXoiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CitTRUxFQ1QgY291bnQoKikgPSAwIEFTIHNsb3Rfd2FzX2Ryb3BwZWQgRlJPTSBwZ19yZXBsaWNh dGlvbl9zbG90cworICAgIFdIRVJFIHNsb3RfbmFtZSA9ICdyZWdyZXNzaW9uX3Nsb3RfZXJyb3In OworIHNsb3Rfd2FzX2Ryb3BwZWQgCistLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK Ky0tIFRlc3QgMjogc2Vzc2lvbiByZW1haW5zIHVzYWJsZSBhZnRlciB0aGUgZXJyb3IgKE15UmVw bGljYXRpb25TbG90IGNsZWFyZWQpCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2lj YWxfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJywgJ3Rlc3RfZGVjb2Rpbmcn LCB0cnVlKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK1NFTEVD VCBjb3VudCgqKSA9IDEgQVMgc2xvdF9leGlzdHMgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cwor ICAgIFdIRVJFIHNsb3RfbmFtZSA9ICdyZWdyZXNzaW9uX3Nsb3RfdDMnOworIHNsb3RfZXhpc3Rz IAorLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0gVGVzdCAzOiBwZ19yZXBsaWNhdGlv bl9zbG90X2FkdmFuY2Ugd2l0aCBhIG5vbi1leGlzdGVudCBzbG90IGluc2lkZQorLS0gYW4gRVhD RVBUSU9OIGJsb2NrIOKAlCBtdXN0IG5vdCBsZWF2ZSBNeVJlcGxpY2F0aW9uU2xvdCBkYW5nbGlu Zy4KK0RPICQkCitCRUdJTgorICAgIFBFUkZPUk0gcGdfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNl KCdyZWdyZXNzaW9uX3Nsb3Rfbm9uZXhpc3QnLCAnMC8xJyk7CitFWENFUFRJT04gV0hFTiBPVEhF UlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2F1Z2h0OiAlJywgU1FMRVJSTTsKK0VORDsKKyQk OworTk9USUNFOiAgY2F1Z2h0OiByZXBsaWNhdGlvbiBzbG90ICJyZWdyZXNzaW9uX3Nsb3Rfbm9u ZXhpc3QiIGRvZXMgbm90IGV4aXN0CistLSBTZXNzaW9uIGlzIHN0aWxsIGhlYWx0aHk6IHdlIGNh biBhZHZhbmNlIHRoZSByZWFsIHNsb3QKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBsaWNh dGlvbl9zbG90X2FkdmFuY2UoJ3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJlbnRfd2FsX2xz bigpKTsKKyAgICAgc2xvdF9uYW1lICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3Npb25fc2xvdF90MworKDEgcm93KQorCistLSBUZXN0IDQ6IGNvcHlfcmVwbGljYXRpb25fc2xv dCB3aXRoIG1heF9yZXBsaWNhdGlvbl9zbG90cyBleGNlZWRlZC4KKy0tIFdlIHJlZHVjZSBtYXhf cmVwbGljYXRpb25fc2xvdHMgYXJ0aWZpY2lhbGx5IGJ5IGZpbGxpbmcgYWxsIHJlbWFpbmluZyBz bG90cy4KKy0tIEluc3RlYWQsIHRyaWdnZXIgYW4gZXJyb3IgYnkgY29weWluZyB0byBhbiBhbHJl YWR5LWV4aXN0aW5nIG5hbWUuCitETyAkJAorQkVHSU4KKyAgICBQRVJGT1JNIHBnX2NvcHlfbG9n aWNhbF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfdDMnLCAncmVncmVzc2lvbl9z bG90X3QzJyk7CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAn Y2F1Z2h0OiAlJywgU1FMRVJSTTsKK0VORDsKKyQkOworTk9USUNFOiAgY2F1Z2h0OiByZXBsaWNh dGlvbiBzbG90ICJyZWdyZXNzaW9uX3Nsb3RfdDMiIGFscmVhZHkgZXhpc3RzCistLSBUaGUgb3Jp Z2luYWwgc2xvdCBtdXN0IHN0aWxsIGV4aXN0IGFuZCBiZSB1c2FibGUKK1NFTEVDVCBjb3VudCgq KSA9IDEgQVMgb3JpZ19zbG90X29rIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMKKyAgICBXSEVS RSBzbG90X25hbWUgPSAncmVncmVzc2lvbl9zbG90X3QzJzsKKyBvcmlnX3Nsb3Rfb2sgCistLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0gQ2xlYW51cCAoc2xvdCBpcyB0ZW1wb3Jhcnks IHdpbGwgZHJvcCBvbiBkaXNjb25uZWN0IGFueXdheSwgYnV0IGJlIGV4cGxpY2l0KQorU0VMRUNU IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJyk7CisgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJv dykKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbCBiL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwKaW5kZXggNTgwZTNhZTNiZWYuLjI5YWJm MzAyNDEzIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsCisr KyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwKQEAgLTE5MCwzICsxOTAsNTIg QEAgU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfdHJ1ZV9zbG90Jyk7 CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90Jyk7 CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3Qn KTsKIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKwor LS0KKy0tIFRlc3QgdGhhdCB0ZW1wb3Jhcnkgc2xvdHMgYXJlIHByb3Blcmx5IGRyb3BwZWQgb24g ZXJyb3IsIGV2ZW4gd2hlbgorLS0gdGhlIGVycm9yIGlzIGNhdWdodCBieSBhIFBML3BnU1FMIEVY Q0VQVElPTiBoYW5kbGVyICh3aGljaCBkb2Vzbid0CistLSB0ZXJtaW5hdGUgdGhlIHNlc3Npb24p LgorLS0gVGVzdCAxOiBjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90IHdpdGggaW52YWxp ZCBwbHVnaW4gKHRlbXBvcmFyeT10cnVlKQorRE8gJCQKK0JFR0lOCisgICAgUEVSRk9STSBwZ19j cmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfZXJyb3InLCAn bm9uZXhpc3RlbnRfcGx1Z2luX3h5eicsIHRydWUpOworRVhDRVBUSU9OIFdIRU4gT1RIRVJTIFRI RU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhdWdodDogJScsIFNRTEVSUk07CitFTkQ7CiskJDsKK1NF TEVDVCBjb3VudCgqKSA9IDAgQVMgc2xvdF93YXNfZHJvcHBlZCBGUk9NIHBnX3JlcGxpY2F0aW9u X3Nsb3RzCisgICAgV0hFUkUgc2xvdF9uYW1lID0gJ3JlZ3Jlc3Npb25fc2xvdF9lcnJvcic7CisK Ky0tIFRlc3QgMjogc2Vzc2lvbiByZW1haW5zIHVzYWJsZSBhZnRlciB0aGUgZXJyb3IgKE15UmVw bGljYXRpb25TbG90IGNsZWFyZWQpCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2lj YWxfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJywgJ3Rlc3RfZGVjb2Rpbmcn LCB0cnVlKTsKK1NFTEVDVCBjb3VudCgqKSA9IDEgQVMgc2xvdF9leGlzdHMgRlJPTSBwZ19yZXBs aWNhdGlvbl9zbG90cworICAgIFdIRVJFIHNsb3RfbmFtZSA9ICdyZWdyZXNzaW9uX3Nsb3RfdDMn OworCistLSBUZXN0IDM6IHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZSB3aXRoIGEgbm9uLWV4 aXN0ZW50IHNsb3QgaW5zaWRlCistLSBhbiBFWENFUFRJT04gYmxvY2sg4oCUIG11c3Qgbm90IGxl YXZlIE15UmVwbGljYXRpb25TbG90IGRhbmdsaW5nLgorRE8gJCQKK0JFR0lOCisgICAgUEVSRk9S TSBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoJ3JlZ3Jlc3Npb25fc2xvdF9ub25leGlzdCcs ICcwLzEnKTsKK0VYQ0VQVElPTiBXSEVOIE9USEVSUyBUSEVOCisgICAgUkFJU0UgTk9USUNFICdj YXVnaHQ6ICUnLCBTUUxFUlJNOworRU5EOworJCQ7CistLSBTZXNzaW9uIGlzIHN0aWxsIGhlYWx0 aHk6IHdlIGNhbiBhZHZhbmNlIHRoZSByZWFsIHNsb3QKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBw Z19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoJ3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJl bnRfd2FsX2xzbigpKTsKKworLS0gVGVzdCA0OiBjb3B5X3JlcGxpY2F0aW9uX3Nsb3Qgd2l0aCBt YXhfcmVwbGljYXRpb25fc2xvdHMgZXhjZWVkZWQuCistLSBXZSByZWR1Y2UgbWF4X3JlcGxpY2F0 aW9uX3Nsb3RzIGFydGlmaWNpYWxseSBieSBmaWxsaW5nIGFsbCByZW1haW5pbmcgc2xvdHMuCist LSBJbnN0ZWFkLCB0cmlnZ2VyIGFuIGVycm9yIGJ5IGNvcHlpbmcgdG8gYW4gYWxyZWFkeS1leGlz dGluZyBuYW1lLgorRE8gJCQKK0JFR0lOCisgICAgUEVSRk9STSBwZ19jb3B5X2xvZ2ljYWxfcmVw bGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJywgJ3JlZ3Jlc3Npb25fc2xvdF90Mycp OworRVhDRVBUSU9OIFdIRU4gT1RIRVJTIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhdWdodDog JScsIFNRTEVSUk07CitFTkQ7CiskJDsKKy0tIFRoZSBvcmlnaW5hbCBzbG90IG11c3Qgc3RpbGwg ZXhpc3QgYW5kIGJlIHVzYWJsZQorU0VMRUNUIGNvdW50KCopID0gMSBBUyBvcmlnX3Nsb3Rfb2sg RlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cworICAgIFdIRVJFIHNsb3RfbmFtZSA9ICdyZWdyZXNz aW9uX3Nsb3RfdDMnOworCistLSBDbGVhbnVwIChzbG90IGlzIHRlbXBvcmFyeSwgd2lsbCBkcm9w IG9uIGRpc2Nvbm5lY3QgYW55d2F5LCBidXQgYmUgZXhwbGljaXQpCitTRUxFQ1QgcGdfZHJvcF9y ZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfdDMnKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCmluZGV4IDcxZmJhZjcyMjY5Li5hYTU2 ZTkwYmZhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dp Y2FsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxm dW5jcy5jCkBAIC0xOTcsMTAgKzE5NywxMCBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXNf Z3V0cyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgogCWVs c2UKIAkJZW5kX29mX3dhbCA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CiAKLQlSZXBsaWNh dGlvblNsb3RBY3F1aXJlKE5hbWVTdHIoKm5hbWUpLCB0cnVlLCB0cnVlKTsKLQogCVBHX1RSWSgp OwogCXsKKwkJUmVwbGljYXRpb25TbG90QWNxdWlyZShOYW1lU3RyKCpuYW1lKSwgdHJ1ZSwgdHJ1 ZSk7CisKIAkJLyogcmVzdGFydCBhdCBzbG90J3MgY29uZmlybWVkX2ZsdXNoICovCiAJCWN0eCA9 IENyZWF0ZURlY29kaW5nQ29udGV4dChJbnZhbGlkWExvZ1JlY1B0ciwKIAkJCQkJCQkJCW9wdGlv bnMsCkBAIC0zMjAsNiArMzIwLDkgQEAgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzX2d1dHMo RnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9vbCBiaW4KIAkJLyogY2xl YXIgYWxsIHRpbWV0cmF2ZWwgZW50cmllcyAqLwogCQlJbnZhbGlkYXRlU3lzdGVtQ2FjaGVzKCk7 CiAKKwkJaWYgKE15UmVwbGljYXRpb25TbG90ICE9IE5VTEwpCisJCQlSZXBsaWNhdGlvblNsb3RS ZWxlYXNlKCk7CisKIAkJUEdfUkVfVEhST1coKTsKIAl9CiAJUEdfRU5EX1RSWSgpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCAxNmZiZDM4MzczNS4uYWNjNjQzYWM3NDkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCkBAIC0xNDgsMzggKzE0OCw1NSBAQCBjcmVh dGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGNoYXIgKnBsdWdpbiwKIAkJ CQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLCB0d29fcGhhc2Us CiAJCQkJCQkgIGZhbHNlLCBmYWlsb3ZlciwgZmFsc2UpOwogCi0JLyoKLQkgKiBFbnN1cmUgdGhl IGxvZ2ljYWwgZGVjb2RpbmcgaXMgZW5hYmxlZCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZSBsb2dp Y2FsCi0JICogZGVjb2RpbmcgY29udGV4dC4KLQkgKi8KLQlFbnN1cmVMb2dpY2FsRGVjb2RpbmdF bmFibGVkKCk7Ci0JQXNzZXJ0KElzTG9naWNhbERlY29kaW5nRW5hYmxlZCgpKTsKKwlQR19UUlko KTsKKwl7CisJCS8qCisJCSAqIEVuc3VyZSB0aGUgbG9naWNhbCBkZWNvZGluZyBpcyBlbmFibGVk IGJlZm9yZSBpbml0aWFsaXppbmcgdGhlIGxvZ2ljYWwKKwkJICogZGVjb2RpbmcgY29udGV4dC4K KwkJICovCisJCUVuc3VyZUxvZ2ljYWxEZWNvZGluZ0VuYWJsZWQoKTsKKwkJQXNzZXJ0KElzTG9n aWNhbERlY29kaW5nRW5hYmxlZCgpKTsKIAotCS8qCi0JICogQ3JlYXRlIGxvZ2ljYWwgZGVjb2Rp bmcgY29udGV4dCB0byBmaW5kIHN0YXJ0IHBvaW50IG9yLCBpZiB3ZSBkb24ndAotCSAqIG5lZWQg aXQsIHRvIDEpIGJ1bXAgc2xvdCdzIHJlc3RhcnRfbHNuIGFuZCB4bWluIDIpIGNoZWNrIHBsdWdp biBzYW5pdHkuCi0JICoKLQkgKiBOb3RlOiB3aGVuICFmaW5kX3N0YXJ0cG9pbnQgdGhpcyBpcyBz dGlsbCBpbXBvcnRhbnQsIGJlY2F1c2UgaXQncyBhdAotCSAqIHRoaXMgcG9pbnQgdGhhdCB0aGUg b3V0cHV0IHBsdWdpbiBpcyB2YWxpZGF0ZWQuCi0JICovCi0JY3R4ID0gQ3JlYXRlSW5pdERlY29k aW5nQ29udGV4dChwbHVnaW4sIE5JTCwKLQkJCQkJCQkJCWZhbHNlLAkvKiBqdXN0IGNhdGFsb2dz IGlzIE9LICovCi0JCQkJCQkJCQlmYWxzZSwJLyogbm90IHJlcGFjayAqLwotCQkJCQkJCQkJcmVz dGFydF9sc24sCi0JCQkJCQkJCQlYTF9ST1VUSU5FKC5wYWdlX3JlYWQgPSByZWFkX2xvY2FsX3hs b2dfcGFnZSwKLQkJCQkJCQkJCQkJICAgLnNlZ21lbnRfb3BlbiA9IHdhbF9zZWdtZW50X29wZW4s Ci0JCQkJCQkJCQkJCSAgIC5zZWdtZW50X2Nsb3NlID0gd2FsX3NlZ21lbnRfY2xvc2UpLAotCQkJ CQkJCQkJTlVMTCwgTlVMTCwgTlVMTCk7CisJCS8qCisJCSAqIENyZWF0ZSBsb2dpY2FsIGRlY29k aW5nIGNvbnRleHQgdG8gZmluZCBzdGFydCBwb2ludCBvciwgaWYgd2UgZG9uJ3QKKwkJICogbmVl ZCBpdCwgdG8gMSkgYnVtcCBzbG90J3MgcmVzdGFydF9sc24gYW5kIHhtaW4gMikgY2hlY2sgcGx1 Z2luIHNhbml0eS4KKwkJICoKKwkJICogTm90ZTogd2hlbiAhZmluZF9zdGFydHBvaW50IHRoaXMg aXMgc3RpbGwgaW1wb3J0YW50LCBiZWNhdXNlIGl0J3MgYXQKKwkJICogdGhpcyBwb2ludCB0aGF0 IHRoZSBvdXRwdXQgcGx1Z2luIGlzIHZhbGlkYXRlZC4KKwkJICovCisJCWN0eCA9IENyZWF0ZUlu aXREZWNvZGluZ0NvbnRleHQocGx1Z2luLCBOSUwsCisJCQkJCQkJCQkJZmFsc2UsCS8qIGp1c3Qg Y2F0YWxvZ3MgaXMgT0sgKi8KKwkJCQkJCQkJCQlmYWxzZSwJLyogbm90IHJlcGFjayAqLworCQkJ CQkJCQkJCXJlc3RhcnRfbHNuLAorCQkJCQkJCQkJCVhMX1JPVVRJTkUoLnBhZ2VfcmVhZCA9IHJl YWRfbG9jYWxfeGxvZ19wYWdlLAorCQkJCQkJCQkJCQkJICAgLnNlZ21lbnRfb3BlbiA9IHdhbF9z ZWdtZW50X29wZW4sCisJCQkJCQkJCQkJCQkgICAuc2VnbWVudF9jbG9zZSA9IHdhbF9zZWdtZW50 X2Nsb3NlKSwKKwkJCQkJCQkJCQlOVUxMLCBOVUxMLCBOVUxMKTsKIAotCS8qCi0JICogSWYgY2Fs bGVyIG5lZWRzIHVzIHRvIGRldGVybWluZSB0aGUgZGVjb2Rpbmcgc3RhcnQgcG9pbnQsIGRvIHNv IG5vdy4KLQkgKiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZS4KLQkgKi8KLQlpZiAoZmluZF9zdGFy dHBvaW50KQotCQlEZWNvZGluZ0NvbnRleHRGaW5kU3RhcnRwb2ludChjdHgpOworCQkvKgorCQkg KiBJZiBjYWxsZXIgbmVlZHMgdXMgdG8gZGV0ZXJtaW5lIHRoZSBkZWNvZGluZyBzdGFydCBwb2lu dCwgZG8gc28gbm93LgorCQkgKiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZS4KKwkJICovCisJCWlm IChmaW5kX3N0YXJ0cG9pbnQpCisJCQlEZWNvZGluZ0NvbnRleHRGaW5kU3RhcnRwb2ludChjdHgp OwogCi0JLyogZG9uJ3QgbmVlZCB0aGUgZGVjb2RpbmcgY29udGV4dCBhbnltb3JlICovCi0JRnJl ZURlY29kaW5nQ29udGV4dChjdHgpOworCQkvKiBkb24ndCBuZWVkIHRoZSBkZWNvZGluZyBjb250 ZXh0IGFueW1vcmUgKi8KKwkJRnJlZURlY29kaW5nQ29udGV4dChjdHgpOworCX0KKwlQR19DQVRD SCgpOworCXsKKwkJLyoKKwkJICogRHJvcCB0aGUgc2xvdCBvbiBlcnJvci4gIFJlcGxpY2F0aW9u U2xvdFJlbGVhc2UoKSBvbmx5IGRyb3BzCisJCSAqIFJTX0VQSEVNRVJBTCBzbG90cywgc28gZm9y IFJTX1RFTVBPUkFSWSBzbG90cyB3ZSBtdXN0IGV4cGxpY2l0bHkKKwkJICogY2FsbCBSZXBsaWNh dGlvblNsb3REcm9wQWNxdWlyZWQoKSB0byBhdm9pZCBsZWF2aW5nIHRoZSBzbG90CisJCSAqIGJl aGluZCAoZS5nLiB3aGVuIHRoZSBlcnJvciBpcyBjYXVnaHQgYnkgYSBQTC9wZ1NRTCBFWENFUFRJ T04KKwkJICogaGFuZGxlciB0aGF0IGRvZXNuJ3QgdGVybWluYXRlIHRoZSBzZXNzaW9uKS4KKwkJ ICovCisJCWlmIChNeVJlcGxpY2F0aW9uU2xvdCAhPSBOVUxMKQorCQkJUmVwbGljYXRpb25TbG90 RHJvcEFjcXVpcmVkKCk7CisJCVBHX1JFX1RIUk9XKCk7CisJfQorCVBHX0VORF9UUlkoKTsKIH0K IAogLyoKQEAgLTU2Niw0OSArNTgzLDU4IEBAIHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZShQ R19GVU5DVElPTl9BUkdTKQogCWVsc2UKIAkJbW92ZXRvID0gTWluKG1vdmV0bywgR2V0WExvZ1Jl cGxheVJlY1B0cihOVUxMKSk7CiAKLQkvKiBBY3F1aXJlIHRoZSBzbG90IHNvIHdlICJvd24iIGl0 ICovCi0JUmVwbGljYXRpb25TbG90QWNxdWlyZShOYW1lU3RyKCpzbG90bmFtZSksIHRydWUsIHRy dWUpOwotCi0JLyogQSBzbG90IHdob3NlIHJlc3RhcnRfbHNuIGhhcyBuZXZlciBiZWVuIHJlc2Vy dmVkIGNhbm5vdCBiZSBhZHZhbmNlZCAqLwotCWlmICghWExvZ1JlY1B0cklzVmFsaWQoTXlSZXBs aWNhdGlvblNsb3QtPmRhdGEucmVzdGFydF9sc24pKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShl cnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAotCQkJCSBl cnJtc2coInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNhbm5vdCBiZSBhZHZhbmNlZCIsCi0JCQkJ CQlOYW1lU3RyKCpzbG90bmFtZSkpLAotCQkJCSBlcnJkZXRhaWwoIlRoaXMgc2xvdCBoYXMgbmV2 ZXIgcHJldmlvdXNseSByZXNlcnZlZCBXQUwsIG9yIGl0IGhhcyBiZWVuIGludmFsaWRhdGVkLiIp KSk7CisJUEdfVFJZKCk7CisJeworCQkvKiBBY3F1aXJlIHRoZSBzbG90IHNvIHdlICJvd24iIGl0 ICovCisJCVJlcGxpY2F0aW9uU2xvdEFjcXVpcmUoTmFtZVN0cigqc2xvdG5hbWUpLCB0cnVlLCB0 cnVlKTsKKwkJLyogQSBzbG90IHdob3NlIHJlc3RhcnRfbHNuIGhhcyBuZXZlciBiZWVuIHJlc2Vy dmVkIGNhbm5vdCBiZSBhZHZhbmNlZCAqLworCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKE15UmVw bGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJ CQkgZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBjYW5ub3QgYmUgYWR2YW5jZWQiLAor CQkJCQkJCU5hbWVTdHIoKnNsb3RuYW1lKSksCisJCQkJCSBlcnJkZXRhaWwoIlRoaXMgc2xvdCBo YXMgbmV2ZXIgcHJldmlvdXNseSByZXNlcnZlZCBXQUwsIG9yIGl0IGhhcyBiZWVuIGludmFsaWRh dGVkLiIpKSk7CiAKLQkvKgotCSAqIENoZWNrIGlmIHRoZSBzbG90IGlzIG5vdCBtb3ZpbmcgYmFj a3dhcmRzLiAgUGh5c2ljYWwgc2xvdHMgcmVseSBzaW1wbHkKLQkgKiBvbiByZXN0YXJ0X2xzbiBh cyBhIG1pbmltdW0gcG9pbnQsIHdoaWxlIGxvZ2ljYWwgc2xvdHMgaGF2ZSBjb25maXJtZWQKLQkg KiBjb25zdW1wdGlvbiB1cCB0byBjb25maXJtZWRfZmx1c2gsIG1lYW5pbmcgdGhhdCBpbiBib3Ro IGNhc2VzIGRhdGEKLQkgKiBvbGRlciB0aGFuIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBhbnltb3Jl LgotCSAqLwotCWlmIChPaWRJc1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLmRhdGFiYXNl KSkKLQkJbWlubHNuID0gTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuY29uZmlybWVkX2ZsdXNoOwot CWVsc2UKLQkJbWlubHNuID0gTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucmVzdGFydF9sc247CisJ CS8qCisJCSAqIENoZWNrIGlmIHRoZSBzbG90IGlzIG5vdCBtb3ZpbmcgYmFja3dhcmRzLiAgUGh5 c2ljYWwgc2xvdHMgcmVseSBzaW1wbHkKKwkJICogb24gcmVzdGFydF9sc24gYXMgYSBtaW5pbXVt IHBvaW50LCB3aGlsZSBsb2dpY2FsIHNsb3RzIGhhdmUgY29uZmlybWVkCisJCSAqIGNvbnN1bXB0 aW9uIHVwIHRvIGNvbmZpcm1lZF9mbHVzaCwgbWVhbmluZyB0aGF0IGluIGJvdGggY2FzZXMgZGF0 YQorCQkgKiBvbGRlciB0aGFuIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBhbnltb3JlLgorCQkgKi8K KwkJaWYgKE9pZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZGF0YWJhc2UpKQorCQkJ bWlubHNuID0gTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuY29uZmlybWVkX2ZsdXNoOworCQllbHNl CisJCQltaW5sc24gPSBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbjsKIAotCWlm IChtb3ZldG8gPCBtaW5sc24pCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09E RV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCi0JCQkJIGVycm1zZygiY2Fubm90 IGFkdmFuY2UgcmVwbGljYXRpb24gc2xvdCB0byAlWC8lMDhYLCBtaW5pbXVtIGlzICVYLyUwOFgi LAotCQkJCQkJTFNOX0ZPUk1BVF9BUkdTKG1vdmV0byksIExTTl9GT1JNQVRfQVJHUyhtaW5sc24p KSkpOworCQlpZiAobW92ZXRvIDwgbWlubHNuKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCSBl cnJtc2coImNhbm5vdCBhZHZhbmNlIHJlcGxpY2F0aW9uIHNsb3QgdG8gJVgvJTA4WCwgbWluaW11 bSBpcyAlWC8lMDhYIiwKKwkJCQkJCQlMU05fRk9STUFUX0FSR1MobW92ZXRvKSwgTFNOX0ZPUk1B VF9BUkdTKG1pbmxzbikpKSk7CiAKLQkvKiBEbyB0aGUgYWN0dWFsIHNsb3QgdXBkYXRlLCBkZXBl bmRpbmcgb24gdGhlIHNsb3QgdHlwZSAqLwotCWlmIChPaWRJc1ZhbGlkKE15UmVwbGljYXRpb25T bG90LT5kYXRhLmRhdGFiYXNlKSkKLQkJZW5kbHNuID0gcGdfbG9naWNhbF9yZXBsaWNhdGlvbl9z bG90X2FkdmFuY2UobW92ZXRvKTsKLQllbHNlCi0JCWVuZGxzbiA9IHBnX3BoeXNpY2FsX3JlcGxp Y2F0aW9uX3Nsb3RfYWR2YW5jZShtb3ZldG8pOworCQkvKiBEbyB0aGUgYWN0dWFsIHNsb3QgdXBk YXRlLCBkZXBlbmRpbmcgb24gdGhlIHNsb3QgdHlwZSAqLworCQlpZiAoT2lkSXNWYWxpZChNeVJl cGxpY2F0aW9uU2xvdC0+ZGF0YS5kYXRhYmFzZSkpCisJCQllbmRsc24gPSBwZ19sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3RfYWR2YW5jZShtb3ZldG8pOworCQllbHNlCisJCQllbmRsc24gPSBwZ19w aHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UobW92ZXRvKTsKIAotCXZhbHVlc1swXSA9 IE5hbWVHZXREYXR1bSgmTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEubmFtZSk7Ci0JbnVsbHNbMF0g PSBmYWxzZTsKKwkJdmFsdWVzWzBdID0gTmFtZUdldERhdHVtKCZNeVJlcGxpY2F0aW9uU2xvdC0+ ZGF0YS5uYW1lKTsKKwkJbnVsbHNbMF0gPSBmYWxzZTsKIAotCS8qCi0JICogUmVjb21wdXRlIHRo ZSBtaW5pbXVtIExTTiBhbmQgeG1pbiBhY3Jvc3MgYWxsIHNsb3RzIHRvIGFkanVzdCB3aXRoIHRo ZQotCSAqIGFkdmFuY2luZyBwb3RlbnRpYWxseSBkb25lLgotCSAqLwotCVJlcGxpY2F0aW9uU2xv dHNDb21wdXRlUmVxdWlyZWRYbWluKGZhbHNlKTsKLQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJl cXVpcmVkTFNOKCk7CisJCS8qCisJCSAqIFJlY29tcHV0ZSB0aGUgbWluaW11bSBMU04gYW5kIHht aW4gYWNyb3NzIGFsbCBzbG90cyB0byBhZGp1c3Qgd2l0aCB0aGUKKwkJICogYWR2YW5jaW5nIHBv dGVudGlhbGx5IGRvbmUuCisJCSAqLworCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVk WG1pbihmYWxzZSk7CisJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKTsKKwl9 CisJUEdfQ0FUQ0goKTsKKwl7CisJCWlmIChNeVJlcGxpY2F0aW9uU2xvdCAhPSBOVUxMKQorCQkJ UmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworCQlQR19SRV9USFJPVygpOworCX0KKwlQR19FTkRf VFJZKCk7CiAKIAlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CiAKQEAgLTc2Myw3ICs3ODksMTMg QEAgY29weV9yZXBsaWNhdGlvbl9zbG90KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGxv Z2ljYWxfc2xvdCkKIAkvKgogCSAqIFVwZGF0ZSB0aGUgZGVzdGluYXRpb24gc2xvdCB0byBjdXJy ZW50IHZhbHVlcyBvZiB0aGUgc291cmNlIHNsb3Q7CiAJICogcmVjaGVjayB0aGF0IHRoZSBzb3Vy Y2Ugc2xvdCBpcyBzdGlsbCB0aGUgb25lIHdlIHNhdyBwcmV2aW91c2x5LgorCSAqCisJICogVXNl IFBHX1RSWSB0byBlbnN1cmUgd2UgZHJvcCB0aGUgZGVzdGluYXRpb24gc2xvdCBpZiBhbnkgdmFs aWRhdGlvbgorCSAqIGVycm9yIG9jY3Vycy4gIFdpdGhvdXQgdGhpcywgYW4gZXJyb3IgY2F1Z2h0 IGJ5IGEgUEwvcGdTUUwgRVhDRVBUSU9OCisJICogaGFuZGxlciB3b3VsZCBsZWF2ZSBNeVJlcGxp Y2F0aW9uU2xvdCBzZXQsIGNyYXNoaW5nIG9uIHRoZSBuZXh0IHNsb3QKKwkgKiBvcGVyYXRpb24u CiAJICovCisJUEdfVFJZKCk7CiAJewogCQlUcmFuc2FjdGlvbklkIGNvcHlfZWZmZWN0aXZlX3ht aW47CiAJCVRyYW5zYWN0aW9uSWQgY29weV9lZmZlY3RpdmVfY2F0YWxvZ194bWluOwpAQCAtNzk3 LDkgKzgyOSw2IEBAIGNvcHlfcmVwbGljYXRpb25fc2xvdChGdW5jdGlvbkNhbGxJbmZvIGZjaW5m bywgYm9vbCBsb2dpY2FsX3Nsb3QpCiAJCSAqIG9yIHRoZSByZXN0YXJ0X2xzbiBlaXRoZXIgaXMg aW52YWxpZCBvciBoYXMgZ29uZSBiYWNrd2FyZC4gKFRoZQogCQkgKiByZXN0YXJ0X2xzbiBjb3Vs ZCBnbyBiYWNrd2FyZHMgaWYgdGhlIHNvdXJjZSBzbG90IGlzIGRyb3BwZWQgYW5kCiAJCSAqIGNv cGllZCBmcm9tIGFuIG9sZGVyIHNsb3QgZHVyaW5nIGluc3RhbGxhdGlvbi4pCi0JCSAqCi0JCSAq IFNpbmNlIGVycm9yaW5nIG91dCB3aWxsIHJlbGVhc2UgYW5kIGRyb3AgdGhlIGRlc3RpbmF0aW9u IHNsb3Qgd2UKLQkJICogZG9uJ3QgbmVlZCB0byByZWxlYXNlIGl0IGhlcmUuCiAJCSAqLwogCQlp ZiAoY29weV9yZXN0YXJ0X2xzbiA8IHNyY19yZXN0YXJ0X2xzbiB8fAogCQkJc3JjX2lzbG9naWNh bCAhPSBjb3B5X2lzbG9naWNhbCB8fApAQCAtODU3LDYgKzg4NiwxOCBAQCBjb3B5X3JlcGxpY2F0 aW9uX3Nsb3QoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgbG9naWNhbF9zbG90KQogCQl9 CiAjZW5kaWYKIAl9CisJUEdfQ0FUQ0goKTsKKwl7CisJCS8qCisJCSAqIERyb3AgdGhlIG5ld2x5 LWNyZWF0ZWQgZGVzdGluYXRpb24gc2xvdCBvbiBlcnJvci4gU2FtZSBhcyBpbgorCQkgKiBjcmVh dGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCk6IHVzZSBSZXBsaWNhdGlvblNsb3REcm9wQWNx dWlyZWQoKQorCQkgKiB0byBoYW5kbGUgYm90aCBSU19FUEhFTUVSQUwgYW5kIFJTX1RFTVBPUkFS WSBzbG90cy4KKwkJICovCisJCWlmIChNeVJlcGxpY2F0aW9uU2xvdCAhPSBOVUxMKQorCQkJUmVw bGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCk7CisJCVBHX1JFX1RIUk9XKCk7CisJfQorCVBHX0VO RF9UUlkoKTsKIAogCS8qIHRhcmdldCBzbG90IGZ1bGx5IGNyZWF0ZWQsIG1hcmsgYXMgcGVyc2lz dGVudCBpZiBuZWVkZWQgKi8KIAlpZiAobG9naWNhbF9zbG90ICYmICF0ZW1wb3JhcnkpCg== --00000000000003f3d806529f1b84--