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 1wXWmn-003JZc-2f for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Jun 2026 04:12:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wXWml-00ECjb-01 for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Jun 2026 04:12:55 +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 1wXWmk-00ECjT-0r for pgsql-hackers@lists.postgresql.org; Thu, 11 Jun 2026 04:12:54 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wXWmh-000000027Vo-05vo for pgsql-hackers@lists.postgresql.org; Thu, 11 Jun 2026 04:12:53 +0000 Received: by mail-lf1-x12e.google.com with SMTP id 2adb3069b0e04-5aa5f11deb2so8568204e87.3 for ; Wed, 10 Jun 2026 21:12:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781151169; cv=none; d=google.com; s=arc-20240605; b=d2G27lLiwklRxvMjmvksx0YQyAexRQUMKLzvZRNIoenN/ymh9nWHcnzfb5Sh0EwpUS CF5q5Mqn4S0UWUsKK2twbPQLBRZ5zTKOIyDKudWlVEaicI7zgFbIFdfIx8VoDSvVrJJt LJipFZVEvl9ovtLDDHV/U1+vhJOxsdBx1BwHiaiGsBQ6BgRf7A7Zg8bcDDnwVUz3w+XR xAAM7M5fUhwg28E+N526pUj0fPHhjg3cEBcydWrS4dogmfeBL/HhlJCtGykf8vTlys4D nkSsZVaCIQxsrXM3AlCivPPcAU6SCD3FMlnSIcKziDd/7wqYQrYYMeJ4eHu7KqmpFTT0 FdAQ== 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=Ad2nlGaN6Dsw4NXPbSZjgBlPfhrBdMw96yzRTP6ELDQ=; fh=oEuy9KHu03lJF0GLKujgPqx1f3m1vqTsZzeT5EcEHtE=; b=IIqTS/LQfjLEPOY6kPhsyXBT7nEDksHRem+hVpreHKzaz/xKj1n+yySn/1Uv44NbzH V2GpAZ3HjU3v/lx0bkwPSEZse7PdCmPSgkFGYqUQaxgt9u1ys7odkUKKZxxEndCbPMIN gXwY8zeEpfX+Ls/bnMdoW6g+9qq/JiyJMiybQBQGwYJ2whLHT0JKVEbn4Zx3zpR1SPFA mWZmaiduv59IRiY7/G8Bzt8B3nVlyHHL8/rzK/CtDxtgVucz+yVc8SUPGtHebDVXu9Vv R195X9RFHzJqgTcQJvOVFRFGzos0kZ6EKw7pX4GDphVTb/167BI2PEisanr8poODNC+e UvWg==; 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=1781151169; x=1781755969; 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=Ad2nlGaN6Dsw4NXPbSZjgBlPfhrBdMw96yzRTP6ELDQ=; b=db2MphJaHf6AMaGESFKG2MxEEjjpoBim8/yzUhp8FffZ2sJbNHB87BFWY8sjbofNE5 EmCpm1qzwynPMC+zd11XpR/KgKRN7cydc4no21a3Fpw9Llk3WMTAD1rZcEM08Sy/jOjF lzLN+Kiq4GP6LcetAET6J8bXJmcUEoIIXg3ZW7ES6hWn7CknWAI9TcJ71MElAq6kNQxz uTmyl2nyu9YrDLy9g4JOGE3E9DBBpSaltctH73GhdhTjBmLlEJ+wMGSauZrpaM0sbiOI s74BMO+Aolg5eHQkwwT2ysVUPDpGSRHvh5Ht7bQgPINUQTQvwSD5CJasPR6yIZyInGoz hfmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781151169; x=1781755969; 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=Ad2nlGaN6Dsw4NXPbSZjgBlPfhrBdMw96yzRTP6ELDQ=; b=CVR7oR1NWkl0m08b0cfKcYE8V0bPjvUKlS35y3Mr5XfND4re7MU0xPsFjkS8r9vXLd gw2jRKYySlfPLh4+y8o+LqeKj3rpluJsUn7VnlAz/x8jVJbcuE9YSCip7w/gNY/iFfsT 2dwlyGMxKh5uyHgkaslFUgBagq9qrkx3nTJxkLGvj9aaNT8NUoWXXNyrQYXMqG8iQTHQ BYrQL/IDxXfm5NUfj822QtR+8SpxJqjlrOoLd1rEMAF1gLY0bCQsfbg2VNBBbF5SYHtt LEru2QWZ1DE+qKrRGRt7cBxcEdOrmVTttyZYc0BObe3CgDrylb6ArJRCKYyEifwHBvPq EYuA== X-Forwarded-Encrypted: i=1; AFNElJ8RdJChyagJ1xAcQebEjXvGveDBKU4VXXlJpiyf21SyaBY1vLLdYKbRvTfGH+gjUKvEDUMDcDQwF8oAeDIf@lists.postgresql.org X-Gm-Message-State: AOJu0Yx5E4VJv3w2huWqGnk5ZDyIRxNY5ZukHx6YqNaWTzr+xklKrC0z 98cbSFawx3Qnsk8t7L3FrLATLHsR4VjPaxC8wyqGz5IXU5T9dBt6bzyYioh0qRdazvoszV9majG 2YNqdT1MwgwqOUaxuTLyRd/tKkRTmaIY= X-Gm-Gg: Acq92OHc89VNK+3WVW14ojU5+yaiEIJMSXUbpzqdREkcYm6dvYMvzBaZOHkYliaRmNe absgTBtcZwDMSvdcopKVCuCWbDXzRAZM6kxmOhh+DjcXC1K3OM4chosoFIZ7jp5ss+taYEtBSdN 07lwaiWmaFty2m4JTXwE85rELIJSmKvjdSmKZANjeQ/o58/mKboO6pdfbBhsLqpU3zcUgioBsSQ bVeGZe3VCK1ZUfSBzVG6+n/IgBWfqKbdS8aRBOQ7JW//7uJwjljUcuuwecZe+ca2u8sGtiE3aX/ A8Pt9/b5EU1RZDaAvyM= X-Received: by 2002:a05:6512:12c5:b0:5aa:71fd:de75 with SMTP id 2adb3069b0e04-5ad27fbfe44mr269861e87.39.1781151169206; Wed, 10 Jun 2026 21:12:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Thu, 11 Jun 2026 09:42:32 +0530 X-Gm-Features: AVVi8CeGfPJbnsHA4-RNHNUqGj8KkQuYomgXk49LkuqioQ43digHjR-VmaL56oo Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: shveta malik Cc: Amit Kapila , vignesh C , Nisha Moond , Peter Smith , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000bb74a80653f2926d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bb74a80653f2926d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 10, 2026 at 3:07=E2=80=AFPM shveta malik wrote: > > On Wed, Jun 10, 2026 at 12:48=E2=80=AFPM Amit Kapila wrote: > > > > On Mon, Jun 8, 2026 at 7:01=E2=80=AFPM Dilip Kumar wrote: > > > > > > On Mon, Jun 8, 2026 at 11:43=E2=80=AFAM shveta malik wrote: > > > > > > > > On Fri, Jun 5, 2026 at 4:22=E2=80=AFPM Dilip Kumar wrote: > > > > > > After rethinking my previous stance on blocking these operations, let > > > me clarify the core principle I think we should follow for CLTs. I am > > > completely open to feedback on this approach: > > > > > > 1. Block Direct Mutations: We should block any operation that directl= y > > > modifies the CLT or its underlying data (e.g., DROP TABLE, ALTER > > > TABLE, INSERT, UPDATE), which impact the operation on CLT or update > > > the CLT data. > > > 2. Don't block Indirect/Edge-Case Operations: We should not write > > > custom code just to block edge cases that don't directly modify CLT > > > data or impact the operations on CLT. > > > > Unlike system catalogs which are allowed to be modified with the > > allow_system_table_mods GUC, the TOAST model seems more appropriate > > for conflict log tables where the external modifications are blocked, > > due to following reasons: > > 1. The apply worker assumes a fixed schema. ConflictLogSchema[] in > > conflict.c is a hardcoded array of column definitions used to build > > tuples at runtime. If allow_system_table_mods=3Don lets someone add a > > column or attach a trigger that errors out, the apply worker's > > insertion path breaks with error or crash. There is no recovery path = =E2=80=94 > > it's not like a user catalog where a DBA might legitimately need to > > patch something in an emergency. > > 2. allow_system_table_mods allowed to modify catalog tables and that > > seems to be designed for bootstrap, not conflict log tables. The GUC > > exists so initdb can modify system catalogs they own. Conflict log > > tables are subscription-specific runtime objects. No legitimate > > internal tooling scenario requires adding triggers or rules to them. > > > > There could be other cases for allow_system_table_mods to allow > > modifying system catalog for emergency repair of catalog table or some > > upgrade scripts used by extensions to allow adding additional entries > > in catalog tables like pg_proc but I don't see such maintenance > > required for conflict log tables. So, it seems better to block all the > > additional operations discussed. > > > > +1. irrespective of GUC value, we can block such operations. Some > operations are allowed even with this GUC set to false (as stated in > my previous emails). Yeah that makes sense. Here is the POC patch to block such operations for the conflict log table. Please let me know your thoughts --=20 Regards, Dilip Kumar Google --000000000000bb74a80653f2926d Content-Type: text/plain; charset="US-ASCII"; name="v1-0001-Report-error-for-ddls-on-conflict-log-tables.patch.txt" Content-Disposition: attachment; filename="v1-0001-Report-error-for-ddls-on-conflict-log-tables.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq8ze8ab0 RnJvbSAzM2JjZGRhOGIwYjg0YmFiNjAyODI0MDNmNmViM2MyYzkzMGM3ZTUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxMCBKdW4gMjAyNiAxNjo1Mjo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjFd IFJlcG9ydCBlcnJvciBmb3IgZGRscyBvbiBjb25mbGljdCBsb2cgdGFibGVzCgotLS0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMgICAgIHwgMTkgKysrKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3BvbGljeS5jICAgICAgIHwgMTIgKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3N0YXRzY21kcy5jICAgIHwgMTIgKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jICAgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3RyaWdnZXIuYyAgICAgIHwgMjUgKysrKysrKysrKwogc3JjL2JhY2tlbmQvcmV3cml0 ZS9yZXdyaXRlRGVmaW5lLmMgfCAyMiArKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTYzIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYwppbmRleCBmNjZiOGYxN2I5Yi4uZGU1 NmRjYzZkNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYwpAQCAtMTYsNiArMTYsNyBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKKyNpbmNs dWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9sb2Nr Y21kcy5oIgpAQCAtOTIsNiArOTMsMTcgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvckxvY2tUYWJsZShj b25zdCBSYW5nZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJlbGlkLAogCQkJCQkJcnYtPnJl bG5hbWUpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbGtpbmQpKSk7 CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3Rl bSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbgorCSAqIGFuZCBzaG91bGQgbm90IGJlIGxvY2tlZCBl eHBsaWNpdGx5LgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoZ2V0X3Jl bF9uYW1lc3BhY2UocmVsaWQpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVu aWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUp LAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkgdGhl IHN5c3RlbSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbi4iKSkpOworCiAJLyoKIAkgKiBNYWtlIG5v dGUgaWYgYSB0ZW1wb3JhcnkgcmVsYXRpb24gaGFzIGJlZW4gYWNjZXNzZWQgaW4gdGhpcwogCSAq IHRyYW5zYWN0aW9uLgpAQCAtMTk4LDYgKzIxMCwxMyBAQCBMb2NrVmlld1JlY3Vyc2Vfd2Fsa2Vy KE5vZGUgKm5vZGUsIExvY2tWaWV3UmVjdXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQkJCXJlbGtp bmQgIT0gUkVMS0lORF9WSUVXKQogCQkJCWNvbnRpbnVlOwogCisJCQkvKgorCQkJICogQ29uZmxp Y3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIGZvciBsb2dpY2FsCisJCQkg KiByZXBsaWNhdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBsb2NrZWQgZXhwbGljaXRseS4KKwkJCSAq LworCQkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShnZXRfcmVsX25hbWVzcGFjZShy ZWxpZCkpKQorCQkJCWNvbnRpbnVlOworCiAJCQkvKgogCQkJICogV2UgbWlnaHQgYmUgZGVhbGlu ZyB3aXRoIGEgc2VsZi1yZWZlcmVudGlhbCB2aWV3LiAgSWYgc28sIHdlCiAJCQkgKiBjYW4ganVz dCBzdG9wIHJlY3Vyc2luZywgc2luY2Ugd2UgYWxyZWFkeSBsb2NrZWQgaXQuCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wb2xpY3kuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Bv bGljeS5jCmluZGV4IDIxYjhlZWJlMzJkLi45OTE5YTdlNDEyNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcG9saWN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9saWN5 LmMKQEAgLTc5LDYgKzc5LDE4IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JQb2xpY3koY29uc3QgUmFu Z2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAlpZiAoIW9iamVjdF9vd25lcmNo ZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hlY2tf ZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdldF9yZWxfcmVs a2luZChyZWxpZCkpLCBydi0+cmVsbmFtZSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAor CSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgZGlyZWN0bHksIGFzIGl0IGNv dWxkIGRpc3J1cHQKKwkgKiBjb25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0 TG9nVGFibGVDbGFzcyhjbGFzc2Zvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lv biBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlydi0+cmVs bmFtZSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBi eSB0aGUgc3lzdGVtIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uLiIpKSk7CisKIAkvKiBObyBzeXN0 ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkLiAqLwogCWlm ICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgY2xhc3Nmb3Jt KSkKIAkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0 YXRzY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKaW5kZXggYjM1NDcy M2JlNDQuLjE4MTQzYTljYjc2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0 c2NtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwpAQCAtMTQ3LDYg KzE0NywxOCBAQCBDcmVhdGVTdGF0aXN0aWNzKENyZWF0ZVN0YXRzU3RtdCAqc3RtdCwgYm9vbCBj aGVja19yaWdodHMpCiAJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIGdldF9y ZWxraW5kX29ianR5cGUocmVsLT5yZF9yZWwtPnJlbGtpbmQpLAogCQkJCQkJICAgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSk7CiAKKwkJLyoKKwkJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uCisJCSAqIGNvbmZsaWN0 IGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSBleHRlbmRlZCBzdGF0aXN0aWNzLCBhcyBpdAor CQkgKiBjb3VsZCBkaXNydXB0IGNvbmZsaWN0IGxvZ2dpbmcuCisJCSAqLworCQlpZiAoSXNDb25m bGljdExvZ1RhYmxlQ2xhc3MocmVsLT5yZF9yZWwpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkJIGVycm1zZygi cGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJ CQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJCSBlcnJkZXRhaWwoIkNvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbCByZXBs aWNhdGlvbi4iKSkpOworCiAJCS8qIENyZWF0aW5nIHN0YXRpc3RpY3Mgb24gc3lzdGVtIGNhdGFs b2dzIGlzIG5vdCBhbGxvd2VkICovCiAJCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNT eXN0ZW1SZWxhdGlvbihyZWwpKQogCQkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKaW5kZXggNmZmZDIxYzY4YzQuLmQ4NzU0YWE5M2RiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwpAQCAtMjc1MCw2ICsyNzUwLDE4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1 bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJCSBlcnJt c2coImNhbm5vdCBpbmhlcml0IGZyb20gcGFydGl0aW9uIFwiJXNcIiIsCiAJCQkJCQkJUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSkpOwogCisJCS8qCisJCSAqIENvbmZsaWN0IGxv ZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbAorCQkgKiByZXBs aWNhdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHBhcmVudCB0YWJsZXMsIGFzCisJCSAq IGluaGVyaXRhbmNlIGNvdWxkIGludGVyZmVyZSB3aXRoIHRoZSBsb2dnaW5nIGJlaGF2aW9yLgor CQkgKi8KKwkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShyZWxhdGlvbi0+cmRfcmVs LT5yZWxuYW1lc3BhY2UpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coImNhbm5vdCBpbmhlcml0IGZyb20g Y29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsYXRpb24pKSwKKwkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUg bWFuYWdlZCBieSB0aGUgc3lzdGVtIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uLiIpKSk7CisKIAkJ aWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJgogCQkJ cmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUgJiYKIAkJ CXJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkK QEAgLTM4ODcsNiArMzg5OSwxOSBAQCByZW5hbWVhdHRfY2hlY2soT2lkIG15cmVsaWQsIEZvcm1f cGdfY2xhc3MgY2xhc3Nmb3JtLCBib29sIHJlY3Vyc2luZykKIAlpZiAoIW9iamVjdF9vd25lcmNo ZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgbXlyZWxpZCwgR2V0VXNlcklkKCkpKQogCQlhY2xjaGVj a19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9y ZWxraW5kKG15cmVsaWQpKSwKIAkJCQkJICAgTmFtZVN0cihjbGFzc2Zvcm0tPnJlbG5hbWUpKTsK KworCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBs b2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBi ZSBtb2RpZmllZCBkaXJlY3RseSwgYXMgaXQgY291bGQgZGlzcnVwdAorCSAqIGNvbmZsaWN0IGxv Z2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzZm9ybSkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklM RUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxp Y3QgbG9nIHRhYmxlIiwKKwkJCQkJCU5hbWVTdHIoY2xhc3Nmb3JtLT5yZWxuYW1lKSksCisJCQkJ IGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVt IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVN b2RzICYmIElzU3lzdGVtQ2xhc3MobXlyZWxpZCwgY2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJP UiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLApAQCAtNjg4 OSw2ICs2OTE0LDE4IEBAIEFUU2ltcGxlUGVybWlzc2lvbnMoQWx0ZXJUYWJsZVR5cGUgY21kdHlw ZSwgUmVsYXRpb24gcmVsLCBpbnQgYWxsb3dlZF90YXJnZXRzKQogCQlhY2xjaGVja19lcnJvcihB Q0xDSEVDS19OT1RfT1dORVIsIGdldF9yZWxraW5kX29ianR5cGUocmVsLT5yZF9yZWwtPnJlbGtp bmQpLAogCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKIAorCS8qCisJICog Q29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxp Y2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBiZSBhbHRlcmVkIGRp cmVjdGx5LCBhcyBpdCBjb3VsZCBkaXNydXB0IGNvbmZsaWN0CisJICogbG9nZ2luZy4KKwkgKi8K KwlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVsLT5yZF9yZWwpKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJ IGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJs ZSIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQkgZXJyZGV0YWls KCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0gZm9yIGxvZ2lj YWwgcmVwbGljYXRpb24uIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNT eXN0ZW1SZWxhdGlvbihyZWwpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBAIC0xMDE5OCw2ICsxMDIzNSwxOCBAQCBBVEFk ZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRh YiwgUmVsYXRpb24gcmVsLAogCQkJCSBlcnJtc2coInJlZmVyZW5jZWQgcmVsYXRpb24gXCIlc1wi IGlzIG5vdCBhIHRhYmxlIiwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHBrcmVsKSkp KTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5v dCBiZSByZWZlcmVuY2VkIGJ5IGZvcmVpZ24ga2V5cywgYXMgaXQgY291bGQKKwkgKiBkaXNydXB0 IGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHBr cmVsLT5yZF9yZWwpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5T VUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwi JXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShwa3JlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG1h bmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbi4iKSkpOworCiAJaWYg KCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbVJlbGF0aW9uKHBrcmVsKSkKIAkJZXJl cG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LApAQCAtMTk4MTgsNiArMTk4NjcsMTggQEAgUmFuZ2VWYXJDYWxsYmFja093bnNSZWxhdGlvbihj b25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9P V05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQocmVsSWQpKSwKIAkJCQkJ ICAgcmVsYXRpb24tPnJlbG5hbWUpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFy ZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBs b2dnaW5nIGFuZCBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGRpcmVjdGx5LCBhcyBpdCBjb3VsZCBk aXNydXB0CisJICogY29uZmxpY3QgbG9nZ2luZy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdExvZ1Rh YmxlQ2xhc3MoKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkpKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJ IGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJs ZSIsCisJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3Qg bG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmCiAJCUlzU3lzdGVtQ2xh c3MocmVsSWQsIChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QodHVwbGUpKSkKIAkJZXJlcG9ydChF UlJPUiwKQEAgLTE5ODUzLDYgKzE5OTE0LDE4IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JBbHRlclJl bGF0aW9uKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJaWYg KCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGlkLCBHZXRVc2VySWQo KSkpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2Jq dHlwZShnZXRfcmVsX3JlbGtpbmQocmVsaWQpKSwgcnYtPnJlbG5hbWUpOwogCisJLyoKKwkgKiBD b25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGJlIGFsdGVyZWQgZGly ZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLwor CWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhjbGFzc2Zvcm0pKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVy cm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIs CisJCQkJCQlydi0+cmVsbmFtZSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxl cyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uLiIpKSk7 CisKIAkvKiBObyBzeXN0ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRseSBh bGxvd2VkLiAqLwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhy ZWxpZCwgY2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpp bmRleCBiODdiNGI0MGQwNy4uNWZjZTFjZjRkNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAg LTMxNCw2ICszMTQsMTggQEAgQ3JlYXRlVHJpZ2dlckZpcmluZ09uKGNvbnN0IENyZWF0ZVRyaWdT dG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCVJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJl bC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFy ZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBs b2dnaW5nIGFuZCBzaG91bGQgbm90IGhhdmUgdHJpZ2dlcnMsIGFzIGl0IGNvdWxkIGRpc3J1cHQg Y29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFz cyhyZWwtPnJkX3JlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDog XCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG1h bmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbi4iKSkpOworCiAJaWYg KCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbVJlbGF0aW9uKHJlbCkpCiAJCWVyZXBv cnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwK QEAgLTE0NDMsNiArMTQ1NSwxOSBAQCBSYW5nZVZhckNhbGxiYWNrRm9yUmVuYW1lVHJpZ2dlcihj b25zdCBSYW5nZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJlbGlkLAogCS8qIHlvdSBtdXN0 IG93biB0aGUgdGFibGUgdG8gcmVuYW1lIG9uZSBvZiBpdHMgdHJpZ2dlcnMgKi8KIAlpZiAoIW9i amVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQsIEdldFVzZXJJZCgpKSkK IAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBl KGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCBydi0+cmVsbmFtZSk7CisKKwkvKgorCSAqIENvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSB0cmlnZ2VycywgYXMg aXQgY291bGQgZGlzcnVwdCBjb25mbGljdAorCSAqIGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29u ZmxpY3RMb2dUYWJsZUNsYXNzKGZvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lv biBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlydi0+cmVs bmFtZSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBi eSB0aGUgc3lzdGVtIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uLiIpKSk7CisKIAlpZiAoIWFsbG93 U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIGZvcm0pKQogCQllcmVwb3J0 KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYyBiL3NyYy9iYWNr ZW5kL3Jld3JpdGUvcmV3cml0ZURlZmluZS5jCmluZGV4IDZhMjIzZmJlYWE0Li4zNDNkNzRjYzcy ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMKKysrIGIv c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMKQEAgLTI2Miw2ICsyNjIsMTcgQEAg RGVmaW5lUXVlcnlSZXdyaXRlKGNvbnN0IGNoYXIgKnJ1bGVuYW1lLAogCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUoZXZlbnRfcmVsYXRpb24pKSwKIAkJCQkgZXJyZGV0YWlsX3JlbGtpbmRf bm90X3N1cHBvcnRlZChldmVudF9yZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kKSkpOwogCisJLyoK KwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGhhdmUgcnVs ZXMsIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QgbG9nZ2luZy4KKwkgKi8KKwlpZiAoSXND b25mbGljdExvZ1RhYmxlQ2xhc3MoZXZlbnRfcmVsYXRpb24tPnJkX3JlbCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJ CQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRh YmxlIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGV2ZW50X3JlbGF0aW9uKSksCisJ CQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lz dGVtIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVtVGFi bGVNb2RzICYmIElzU3lzdGVtUmVsYXRpb24oZXZlbnRfcmVsYXRpb24pKQogCQllcmVwb3J0KEVS Uk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBAIC03 NzIsNiArNzgzLDE3IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVSdWxlKGNvbnN0IFJhbmdl VmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCQkJIGVycm1zZygicmVsYXRpb24g XCIlc1wiIGNhbm5vdCBoYXZlIHJ1bGVzIiwgcnYtPnJlbG5hbWUpLAogCQkJCSBlcnJkZXRhaWxf cmVsa2luZF9ub3Rfc3VwcG9ydGVkKGZvcm0tPnJlbGtpbmQpKSk7CiAKKwkvKgorCSAqIENvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSBydWxlcywgYXMgaXQg Y291bGQgZGlzcnVwdCBjb25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9n VGFibGVDbGFzcyhmb3JtKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVk OiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAor CQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkgdGhlIHN5 c3RlbSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbi4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3RlbVRh YmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAotLSAKMi40OS4w Cgo= --000000000000bb74a80653f2926d--