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 1wNdrr-000xRs-1v for pgsql-hackers@arkaria.postgresql.org; Thu, 14 May 2026 21:45:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wNdrp-00FDW4-31 for pgsql-hackers@arkaria.postgresql.org; Thu, 14 May 2026 21:45:17 +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 1wNdrp-00FDVr-1B for pgsql-hackers@lists.postgresql.org; Thu, 14 May 2026 21:45:17 +0000 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wNdrm-00000000e5F-1gxr for pgsql-hackers@postgresql.org; Thu, 14 May 2026 21:45:16 +0000 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7dcdaf06498so5691105a34.2 for ; Thu, 14 May 2026 14:45:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20251104.gappssmtp.com; s=20251104; t=1778795112; x=1779399912; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=s7bkVxW95h4diGcu85He6uw4TIFTWuRQhk/VIJry/Yc=; b=VUin1qZCR+wHf3Giijm3me2xh9/MgpXmFGb1cNdVPiqyqF9tR+kwSDrzz2n+VPeZZN 0bnaWj46pUwHHar71oZWDjabJc48HagguOHwCaNlx6fELHAqlu6BAAnYiGLN2gZ00lmQ kuSMVtf5w0rY5RUTdJj/BQC3zOSBB7onGyRispRIjJsFJXDmGN/vXjrxFlHwivZ2xqI5 BgHb1c1+EN+6jtiCGaJq61BxGU7dtMbLnj5VZkoqCSGf39VAuccJTAtNHB/0gsOXgfFm hcMIxGOkZ+fv3bOD+jxQpHOIkGU0lPCxj84d+tbfBnLa8EOkWw3zczwNyhmITIXvUkGL twhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778795112; x=1779399912; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=s7bkVxW95h4diGcu85He6uw4TIFTWuRQhk/VIJry/Yc=; b=Z1JUMQWw2meM2f5t2wq4Y6xetthlYuiriTBZbyBtBextUacyjPAbmhS/EnPNdBkal7 a/11lPTIGGVJa9Y2t695WUtbjR2Mcvwz9vOMBnoYuW82AA4e67II6RZ7wLDtD0tZp14q UoFeSuRkvIM2bSXhV3efpWBECPGxpfvwULZRsY1rdo1gsur7KJK9tHFsLmsnr8HfRCCa Urcesm/0OPdeN06NBEmhRkNofBLUHwg6EQ0zrQOvggSJPKvBltN6Ota8HyHbVV2fSpo5 sHplfuV9w5mxkIz0Tt4GZXLmAkGHdqSP+MeaJA0+PBb5B1tlhSuZumIlolLCRAXNC1QJ 88vg== X-Forwarded-Encrypted: i=1; AFNElJ9kDFsJgc4YK5+8J0psazq8AaroVxxS/BOs6/kLHE+rwzfiDMUxnNrVg1Zeyoax4GY45vTJRoQJraWxNC+l@postgresql.org X-Gm-Message-State: AOJu0YyK1vKO8tjcCLXim75837+DUEKxKYnQzmzRFfrpKFdvoB1ma/8Z tv10NofYZcGXdc+6Jqss2T0RvTTtTDtu054uuXwLH7InAZjbr3KuRLtuHXZKnjjGnA== X-Gm-Gg: Acq92OG/+sWTM15tfXogUCIIlV4DqdEEMlgIK0lfpBRWybqQV2fc2EhXyEnOEEAU5pl V1jJ5gOeHrheYTvj6C+S6LuWTpl6TzYqFQGFGAgdwG9P+DnLXL8PhskS5CP0A54wRS7sShf03/8 vnizy+15TLDSjaNlm1VBVcf2upYGtYyo3MK7h1dKJ7Gx18QprPkk5wqFblTwuiszyVyVDNCR47o XJGbmmAW9DaAoV03rEDoKGLfMf3XlzrSV9IQWhtevQziyI0HpTCv8zrfCpjDfbf68qKgSIFz12p MIDBN5ll2HaG3QqBYiOkkqHhA58vdYEQ05ETthS50OdVqzayoNdDXvmqRtKPktN+0ywIHMP1jbx dFgomYhItJjUHO/+yLVampPxDRTuEWNeP583oFmsG8M9It3cOQhLGEZzm0V23y8IzVvuMvIeuZb M0FDRAxh8/RKfp+E/c2FtD X-Received: by 2002:a05:6830:82f9:b0:7dd:e032:3cec with SMTP id 46e09a7af769-7e4f2baff32mr722615a34.21.1778795112273; Thu, 14 May 2026 14:45:12 -0700 (PDT) Received: from [10.10.241.5] ([50.175.226.10]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e55843cbaesm165285a34.3.2026.05.14.14.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 May 2026 14:45:11 -0700 (PDT) Message-ID: Subject: Re: Bug in ALTER SUBSCRIPTION ... SERVER / ... CONNECTION with broken old server From: Jeff Davis To: Chao Li Cc: Zsolt Parragi , "Hayato Kuroda (Fujitsu)" , Ajin Cherian , PostgreSQL-development Date: Thu, 14 May 2026 14:45:10 -0700 In-Reply-To: <705148C3-519C-45E7-9EA8-48D9F3B79B06@gmail.com> References: <960DD2C4-A22C-463A-90ED-86E0FABD8D20@gmail.com> <8B38AFCA-7FFA-44CF-B9A8-81BDCEAFB224@gmail.com> <705148C3-519C-45E7-9EA8-48D9F3B79B06@gmail.com> Content-Type: multipart/mixed; boundary="=-4RSGsc7inCq8kuCylf4g" User-Agent: Evolution 3.52.3-0ubuntu1.1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-4RSGsc7inCq8kuCylf4g Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, I added a fix to the series: v5-0001 fixes check_pub_rdt for the foreign server case. On Sat, 2026-05-09 at 11:08 +0800, Chao Li wrote: > Ah, I see. You added a new conninfo_needed parameter to > GetSubscription(), which separates the decision of building conninfo > from the ACL check. Cool, I believe this is a better approach. >=20 > So 0001 looks good to me. nitpick is that conninfo_aclcheck is now > only meaningful when conninfo_needed is true. I wonder if we should > mention that briefly in the function header comment, or add an > assertion such as: Assert(conninfo_needed || !conninfo_aclcheck); to > avoid possible misuse of conninfo_aclcheck in the future. I refactored the fix in v5-0002 to do this in a more organized way: now all option parsing happens first, so I can more precisely decide which paths need conninfo and which ones don't. > So with 0002, if slotname is NULL but rstates is not NIL, it looks > possible that we no longer build conninfo and therefore skip the > cleanup on the publisher side. I separated this into two patches: v5-0003 just moves the connection string building after the early exit, so that if slotname is NONE and rstates is NIL, then it won't try to build the connection string at all (and therefore won't get an error while doing so). v5-0004 fixes the remaining issue when slotname is NONE and rstates is *not* NIL. It uses a subtransaction to catch the error, so that the DROP TRANSACTION will still succeed even though it can't connect to the publisher to drop the tablesync slots. This feels a bit over- engineered, but it does maintain the expected behavior in this case. It also routes errors inside of ForeignServerConnectionString() through ReportSlotConnectionError(), which adds a helpful hint. Regards, Jeff Davis --=-4RSGsc7inCq8kuCylf4g Content-Disposition: attachment; filename*0=v5-0001-Check-retain_dead_tuples-for-ALTER-SUBSCRIPTION-..pat; filename*1=ch Content-Type: text/x-patch; name="v5-0001-Check-retain_dead_tuples-for-ALTER-SUBSCRIPTION-..patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmMGVkYzQ1ODU2YTRjNmQyZGRiOWY4M2Q1M2JkMWM1MDk3ODgwMWQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDEyIE1heSAyMDI2IDE0OjU3OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSAxLzRdIENo ZWNrIHJldGFpbl9kZWFkX3R1cGxlcyBmb3IgQUxURVIgU1VCU0NSSVBUSU9OIC4uLgogU0VSVkVS LgoKUHJldmlvdXNseSwgdGhlIHN1YnNjcmlwdGlvbiBzZXR0aW5nIHJldGFpbl9kZWFkX3R1cGxl cyBkaWRuJ3QgY2F1c2UKQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBTRVJWRVIgdG8gY2hlY2sgdGhl IHB1Ymxpc2hlci4gQW5kIGlmIHRoZQpwdWJsaXNoZXIgd2FzIGNoZWNrZWQgZm9yIHNvbWUgb3Ro ZXIgcmVhc29uLCB0aGVuIGl0IHdvdWxkIHVzZSB0aGUgb2xkCmNvbm5pbmZvLgoKRml4IEFMVEVS IFNVQlNDUklQVElPTiAuLi4gU0VSVkVSIHRvIGFsd2F5cyBjaGVjayB0aGUgcHVibGlzaGVyIHdo ZW4KcmV0YWluX2RlYWRfdHVwbGVzIGlzIHNldCwgYW5kIHRvIHVzZSB0aGUgbmV3IGNvbm5lY3Rp b24gaW5mbywgbGlrZQpBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIENPTk5FQ1RJT04uCi0tLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIHwgMjEgKysrKysrKysrKysrKysr LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggNzgxOGY2NjdlZGYu LjUyMzk1OWJhMGNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRp b25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBA IC0xNDI3LDYgKzE0MjcsNyBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAlib29sCQlyZXRhaW5fZGVhZF90dXBsZXM7 CiAJaW50CQkJbWF4X3JldGVudGlvbjsKIAlib29sCQlyZXRlbnRpb25fYWN0aXZlOworCWNoYXIJ ICAgKm5ld19jb25uaW5mbyA9IE5VTEw7CiAJY2hhcgkgICAqb3JpZ2luOwogCVN1YnNjcmlwdGlv biAqc3ViOwogCUZvcm1fcGdfc3Vic2NyaXB0aW9uIGZvcm07CkBAIC0xODEwLDcgKzE4MTEsNiBA QCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAkJCQlGb3JlaWduU2VydmVyICpuZXdfc2VydmVyOwogCQkJCU9iamVjdEFk ZHJlc3MgcmVmZXJlbmNlZDsKIAkJCQlBY2xSZXN1bHQJYWNscmVzdWx0OwotCQkJCWNoYXIJICAg KmNvbm5pbmZvOwogCiAJCQkJLyoKIAkJCQkgKiBSZW1vdmUgd2hhdCB3YXMgdGhlcmUgYmVmb3Jl LCBlaXRoZXIgYW5vdGhlciBmb3JlaWduIHNlcnZlcgpAQCAtMTg0NiwxMyArMTg0NiwxMyBAQCBB bHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3Rt dCAqc3RtdCwKIAkJCQkvKiBtYWtlIHN1cmUgYSB1c2VyIG1hcHBpbmcgZXhpc3RzICovCiAJCQkJ R2V0VXNlck1hcHBpbmcoZm9ybS0+c3Vib3duZXIsIG5ld19zZXJ2ZXItPnNlcnZlcmlkKTsKIAot CQkJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoZm9ybS0+c3Vib3du ZXIsCi0JCQkJCQkJCQkJCQkJCSBuZXdfc2VydmVyKTsKKwkJCQluZXdfY29ubmluZm8gPSBGb3Jl aWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhmb3JtLT5zdWJvd25lciwKKwkJCQkJCQkJCQkJCQkJ CSBuZXdfc2VydmVyKTsKIAogCQkJCS8qIExvYWQgdGhlIGxpYnJhcnkgcHJvdmlkaW5nIHVzIGxp YnBxIGNhbGxzLiAqLwogCQkJCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsK IAkJCQkvKiBDaGVjayB0aGUgY29ubmVjdGlvbiBpbmZvIHN0cmluZy4gKi8KLQkJCQl3YWxyY3Zf Y2hlY2tfY29ubmluZm8oY29ubmluZm8sCisJCQkJd2FscmN2X2NoZWNrX2Nvbm5pbmZvKG5ld19j b25uaW5mbywKIAkJCQkJCQkJCSAgc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVy c3VwZXJ1c2VyKTsKIAogCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0obmV3X3NlcnZlci0+c2VydmVyaWQpOwpAQCAtMTg2Myw2 ICsxODYzLDEzIEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJCQkJdXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCX0K KworCQkJLyoKKwkJCSAqIFNpbmNlIHRoZSByZW1vdGUgc2VydmVyIGNvbmZpZ3VyYXRpb24gbWln aHQgaGF2ZSBjaGFuZ2VkLAorCQkJICogcGVyZm9ybSBhIGNoZWNrIHRvIGVuc3VyZSBpdCBwZXJt aXRzIGVuYWJsaW5nCisJCQkgKiByZXRhaW5fZGVhZF90dXBsZXMuCisJCQkgKi8KKwkJCWNoZWNr X3B1Yl9yZHQgPSBzdWItPnJldGFpbmRlYWR0dXBsZXM7CiAJCQlicmVhazsKIAogCQljYXNlIEFM VEVSX1NVQlNDUklQVElPTl9DT05ORUNUSU9OOgpAQCAtMTg3NywxMCArMTg4NCwxMiBAQCBBbHRl clN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9 IHRydWU7CiAJCQl9CiAKKwkJCW5ld19jb25uaW5mbyA9IHN0bXQtPmNvbm5pbmZvOworCiAJCQkv KiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KIAkJCWxvYWRf ZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAkJCS8qIENoZWNrIHRoZSBjb25uZWN0 aW9uIGluZm8gc3RyaW5nLiAqLwotCQkJd2FscmN2X2NoZWNrX2Nvbm5pbmZvKHN0bXQtPmNvbm5p bmZvLAorCQkJd2FscmN2X2NoZWNrX2Nvbm5pbmZvKG5ld19jb25uaW5mbywKIAkJCQkJCQkJICBz dWItPnBhc3N3b3JkcmVxdWlyZWQgJiYgIXN1Yi0+b3duZXJzdXBlcnVzZXIpOwogCiAJCQl2YWx1 ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9CkBAIC0yMTI5LDcgKzIx MzgsNyBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2Ny aXB0aW9uU3RtdCAqc3RtdCwKIAkJICogYXZhaWxhYmxlLgogCQkgKi8KIAkJbXVzdF91c2VfcGFz c3dvcmQgPSBzdWItPnBhc3N3b3JkcmVxdWlyZWQgJiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0J CXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KHN0bXQtPmNvbm5pbmZvID8gc3RtdC0+Y29ubmluZm8g OiBzdWItPmNvbm5pbmZvLAorCQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChuZXdfY29ubmluZm8g PyBuZXdfY29ubmluZm8gOiBzdWItPmNvbm5pbmZvLAogCQkJCQkJCQl0cnVlLCB0cnVlLCBtdXN0 X3VzZV9wYXNzd29yZCwgc3ViLT5uYW1lLAogCQkJCQkJCQkmZXJyKTsKIAkJaWYgKCF3cmNvbm4p Ci0tIAoyLjQzLjAKCg== --=-4RSGsc7inCq8kuCylf4g Content-Disposition: attachment; filename="v5-0002-Avoid-errors-during-ALTER-SUBSCRIPTION.patch" Content-Type: text/x-patch; name="v5-0002-Avoid-errors-during-ALTER-SUBSCRIPTION.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2YWI4NWQ3YjIyMjA0ZGQ0MDU2MjE1NzA5NmU2OTg5ZjA0OTMyYWUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDEyIE1heSAyMDI2IDE0OjEwOjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSAyLzRdIEF2 b2lkIGVycm9ycyBkdXJpbmcgQUxURVIgU1VCU0NSSVBUSU9OLgoKUHJldmlvdXNseSwgd2hlbiBy ZXRyaWV2aW5nIHRoZSBvbGQgU3Vic2NyaXB0aW9uIG9iamVjdCwgY29uc3RydWN0aW5nCnRoZSBj b25uaW5mbyBjb3VsZCBlbmNvdW50ZXIgYW4gZXJyb3IgZHVyaW5nCkZvcmVpZ25TZXJ2ZXJDb25u ZWN0aW9uU3RyaW5nKCkuIEFDTCBlcnJvcnMgd2VyZSBoYW5kbGVkIHByb3Blcmx5LCBidXQKb3Ro ZXIgZXJyb3JzIGNvdWxkIGludGVyZmVyZSB3aXRoIGEgdXNlciBmaXhpbmcgdGhlIHByb2JsZW0g d2l0aCBBTFRFUgpTVUJTQ1JJUFRJT04uCgpSZXBvcnRlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5j aGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRDkwODM3MEYtMjY5NS00MjMxLTg1 MUQtMTcxNzlBNkE2RjJBQGdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmMgICAgICB8ICA3MiArKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgIHwgMTEwICsrKysrKysrKysrKysrKy0tLS0tLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgIHwgICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAgfCAgIDMgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCB8ICAyOCArKysrKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvcmVncmVzcy5jICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgfCAgMzQgKysrKysrLQogNyBmaWxlcyBjaGFuZ2Vk LCAxODEgaW5zZXJ0aW9ucygrKSwgNzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf c3Vic2NyaXB0aW9uLmMKaW5kZXggMWYxZmRjNzVhZjYuLjgyZmM5MWUwODEwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKQEAgLTcyLDkgKzcyLDE1IEBAIEdldFB1YmxpY2F0 aW9uc1N0cihMaXN0ICpwdWJsaWNhdGlvbnMsIFN0cmluZ0luZm8gZGVzdCwgYm9vbCBxdW90ZV9s aXRlcmFsKQogCiAvKgogICogRmV0Y2ggdGhlIHN1YnNjcmlwdGlvbiBmcm9tIHRoZSBzeXNjYWNo ZS4KKyAqCisgKiBJZiBjb25uaW5mb19uZWVkZWQgaXMgdHJ1ZSwgY29ubmluZm8gd2lsbCBiZSBj b25zdHJ1Y3RlZCwgcG9zc2libHkKKyAqIGVuY291bnRlcmluZyBlcnJvcnMgaW4gRm9yZWlnblNl cnZlckNvbm5lY3Rpb25TdHJpbmcoKS4gQ2FsbGVycyBub3QKKyAqIGV4cGVjdGluZyBzdWNoIGVy cm9ycyBzaG91bGQgcGFzcyBmYWxzZSwgaW4gd2hpY2ggY2FzZSBjb25uaW5mbyB3aWxsIGJlCisg KiBOVUxMLgogICovCiBTdWJzY3JpcHRpb24gKgotR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwg Ym9vbCBtaXNzaW5nX29rLCBib29sIGFjbGNoZWNrKQorR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJp ZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGNvbm5pbmZvX25lZWRlZCwKKwkJCQlib29sIGNvbm5p bmZvX2FjbGNoZWNrKQogewogCUhlYXBUdXBsZQl0dXA7CiAJU3Vic2NyaXB0aW9uICpzdWI7CkBA IC04NCw2ICs5MCw4IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19v aywgYm9vbCBhY2xjaGVjaykKIAlNZW1vcnlDb250ZXh0IGN4dDsKIAlNZW1vcnlDb250ZXh0IG9s ZGN4dDsKIAorCUFzc2VydChjb25uaW5mb19uZWVkZWQgfHwgIWNvbm5pbmZvX2FjbGNoZWNrKTsK KwogCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShTVUJTQ1JJUFRJT05PSUQsIE9iamVjdElkR2V0RGF0 dW0oc3ViaWQpKTsKIAogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQpAQCAtMTAwLDcgKzEw OCw3IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaywgYm9vbCBh Y2xjaGVjaykKIAogCXN1YmZvcm0gPSAoRm9ybV9wZ19zdWJzY3JpcHRpb24pIEdFVFNUUlVDVCh0 dXApOwogCi0Jc3ViID0gcGFsbG9jX29iamVjdChTdWJzY3JpcHRpb24pOworCXN1YiA9IHBhbGxv YzBfb2JqZWN0KFN1YnNjcmlwdGlvbik7CiAJc3ViLT5jeHQgPSBjeHQ7CiAJc3ViLT5vaWQgPSBz dWJpZDsKIAlzdWItPmRiaWQgPSBzdWJmb3JtLT5zdWJkYmlkOwpAQCAtMTE5LDM4ICsxMjcsNDAg QEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGFjbGNo ZWNrKQogCXN1Yi0+bWF4cmV0ZW50aW9uID0gc3ViZm9ybS0+c3VibWF4cmV0ZW50aW9uOwogCXN1 Yi0+cmV0ZW50aW9uYWN0aXZlID0gc3ViZm9ybS0+c3VicmV0ZW50aW9uYWN0aXZlOwogCi0JLyog R2V0IGNvbm5pbmZvICovCi0JaWYgKE9pZElzVmFsaWQoc3ViZm9ybS0+c3Vic2VydmVyKSkKKwlp ZiAoY29ubmluZm9fbmVlZGVkKQogCXsKLQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKLQkJRm9yZWln blNlcnZlciAqc2VydmVyOwotCi0JCXNlcnZlciA9IEdldEZvcmVpZ25TZXJ2ZXIoc3ViZm9ybS0+ c3Vic2VydmVyKTsKLQotCQkvKiByZWNoZWNrIEFDTCBpZiByZXF1ZXN0ZWQgKi8KLQkJaWYgKGFj bGNoZWNrKQorCQlpZiAoT2lkSXNWYWxpZChzdWJmb3JtLT5zdWJzZXJ2ZXIpKQogCQl7Ci0JCQlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsCi0JCQkJ CQkJCQkJc3ViZm9ybS0+c3Vic2VydmVyLAotCQkJCQkJCQkJCXN1YmZvcm0tPnN1Ym93bmVyLCBB Q0xfVVNBR0UpOwotCi0JCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQkJCWVyZXBv cnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAotCQkJCQkJIGVycm1zZygic3Vic2NyaXB0aW9uIG93bmVyIFwiJXNcIiBkb2VzIG5vdCBoYXZl IHBlcm1pc3Npb24gb24gZm9yZWlnbiBzZXJ2ZXIgXCIlc1wiIiwKLQkJCQkJCQkJR2V0VXNlck5h bWVGcm9tSWQoc3ViZm9ybS0+c3Vib3duZXIsIGZhbHNlKSwKLQkJCQkJCQkJc2VydmVyLT5zZXJ2 ZXJuYW1lKSkpOworCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwkJCUZvcmVpZ25TZXJ2ZXIgKnNl cnZlcjsKKworCQkJc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlcihzdWJmb3JtLT5zdWJzZXJ2ZXIp OworCisJCQlpZiAoY29ubmluZm9fYWNsY2hlY2spCisJCQl7CisJCQkJLyogcmVjaGVjayBBQ0wg aWYgcmVxdWVzdGVkICovCisJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKEZvcmVpZ25T ZXJ2ZXJSZWxhdGlvbklkLAorCQkJCQkJCQkJCQlzdWJmb3JtLT5zdWJzZXJ2ZXIsCisJCQkJCQkJ CQkJCXN1YmZvcm0tPnN1Ym93bmVyLCBBQ0xfVVNBR0UpOworCisJCQkJaWYgKGFjbHJlc3VsdCAh PSBBQ0xDSEVDS19PSykKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJCSBlcnJtc2coInN1YnNjcmlwdGlv biBvd25lciBcIiVzXCIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIG9uIGZvcmVpZ24gc2VydmVy IFwiJXNcIiIsCisJCQkJCQkJCQlHZXRVc2VyTmFtZUZyb21JZChzdWJmb3JtLT5zdWJvd25lciwg ZmFsc2UpLAorCQkJCQkJCQkJc2VydmVyLT5zZXJ2ZXJuYW1lKSkpOworCQkJfQorCisJCQlzdWIt PmNvbm5pbmZvID0gRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoc3ViZm9ybS0+c3Vib3du ZXIsCisJCQkJCQkJCQkJCQkJCSAgc2VydmVyKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWRhdHVt ID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsCisJCQkJCQkJCQkJICAg dHVwLAorCQkJCQkJCQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvKTsKKwkJ CXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAkJfQotCi0JCXN1 Yi0+Y29ubmluZm8gPSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhzdWJmb3JtLT5zdWJv d25lciwKLQkJCQkJCQkJCQkJCQkgIHNlcnZlcik7Ci0JfQotCWVsc2UKLQl7Ci0JCWRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsCi0JCQkJCQkJCQkgICB0dXAs Ci0JCQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyk7Ci0JCXN1Yi0+ Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAl9CiAKIAkvKiBHZXQgc2xv dG5hbWUgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCA1MjM5 NTliYTBjZS4uMDFlOTkyZjY1NmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25j bWRzLmMKQEAgLTE0MjAsNiArMTQyMCw3IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCURhdHVtCQl2YWx1ZXNbTmF0 dHNfcGdfc3Vic2NyaXB0aW9uXTsKIAlIZWFwVHVwbGUJdHVwOwogCU9pZAkJCXN1YmlkOworCWJv b2wJCWNvbm5pbmZvX25lZWRlZCA9IHRydWU7CiAJYm9vbAkJdXBkYXRlX3R1cGxlID0gZmFsc2U7 CiAJYm9vbAkJdXBkYXRlX2ZhaWxvdmVyID0gZmFsc2U7CiAJYm9vbAkJdXBkYXRlX3R3b19waGFz ZSA9IGZhbHNlOwpAQCAtMTQ1NCwxNCArMTQ1NSw4OCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJYWNsY2hlY2tf ZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfU1VCU0NSSVBUSU9OLAogCQkJCQkgICBz dG10LT5zdWJuYW1lKTsKIAorCS8qIHBhcnNlIGFuZCBjaGVjayBvcHRpb25zICovCisJc3dpdGNo IChzdG10LT5raW5kKQorCXsKKwkJY2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fT1BUSU9OUzoKKwkJ CXN1cHBvcnRlZF9vcHRzID0gKFNVQk9QVF9TTE9UX05BTUUgfAorCQkJCQkJCSAgU1VCT1BUX1NZ TkNIUk9OT1VTX0NPTU1JVCB8IFNVQk9QVF9CSU5BUlkgfAorCQkJCQkJCSAgU1VCT1BUX1NUUkVB TUlORyB8IFNVQk9QVF9UV09QSEFTRV9DT01NSVQgfAorCQkJCQkJCSAgU1VCT1BUX0RJU0FCTEVf T05fRVJSIHwKKwkJCQkJCQkgIFNVQk9QVF9QQVNTV09SRF9SRVFVSVJFRCB8CisJCQkJCQkJICBT VUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX0ZBSUxPVkVSIHwKKwkJCQkJCQkgIFNVQk9QVF9S RVRBSU5fREVBRF9UVVBMRVMgfAorCQkJCQkJCSAgU1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJ T04gfAorCQkJCQkJCSAgU1VCT1BUX1dBTF9SRUNFSVZFUl9USU1FT1VUIHwKKwkJCQkJCQkgIFNV Qk9QVF9PUklHSU4pOworCQkJYnJlYWs7CisKKwkJY2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fRU5B QkxFRDoKKwkJCXN1cHBvcnRlZF9vcHRzID0gU1VCT1BUX0VOQUJMRUQ7CisJCQlicmVhazsKKwor CQljYXNlIEFMVEVSX1NVQlNDUklQVElPTl9TRVRfUFVCTElDQVRJT046CisJCQlzdXBwb3J0ZWRf b3B0cyA9IFNVQk9QVF9DT1BZX0RBVEEgfCBTVUJPUFRfUkVGUkVTSDsKKwkJCWJyZWFrOworCisJ CWNhc2UgQUxURVJfU1VCU0NSSVBUSU9OX0FERF9QVUJMSUNBVElPTjoKKwkJY2FzZSBBTFRFUl9T VUJTQ1JJUFRJT05fRFJPUF9QVUJMSUNBVElPTjoKKwkJCXN1cHBvcnRlZF9vcHRzID0gU1VCT1BU X1JFRlJFU0ggfCBTVUJPUFRfQ09QWV9EQVRBOworCQkJYnJlYWs7CisKKwkJY2FzZSBBTFRFUl9T VUJTQ1JJUFRJT05fUkVGUkVTSF9QVUJMSUNBVElPTjoKKwkJCXN1cHBvcnRlZF9vcHRzID0gU1VC T1BUX0NPUFlfREFUQTsKKwkJCWJyZWFrOworCisJCWNhc2UgQUxURVJfU1VCU0NSSVBUSU9OX1NL SVA6CisJCQlzdXBwb3J0ZWRfb3B0cyA9IFNVQk9QVF9MU047CisJCQlicmVhazsKKworCQlkZWZh dWx0OgorCQkJc3VwcG9ydGVkX29wdHMgPSAwOworCQkJYnJlYWs7CisJfQorCisJaWYgKHN1cHBv cnRlZF9vcHRzID4gMCkKKwkJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10 LT5vcHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOworCisJLyoKKwkgKiBFbnN1cmUgdGhh dCBBTFRFUiBTVUJTQ1JJUFRJT04gY29tbWFuZHMgdGhhdCBjb3VsZCBiZSB1c2VkIHRvIGZpeCBh CisJICogYnJva2VuIGNvbm5lY3Rpb24gb3IgcHJlcGFyZSB0byBkcm9wIGEgYnJva2VuIHN1YnNj cmlwdGlvbiBkb24ndAorCSAqIGF0dGVtcHQgdG8gY29uc3RydWN0IHRoZSBjb25uaW5mby4gT3Ro ZXJ3aXNlLCB3ZSBtaWdodCBlbmNvdW50ZXIgdGhlCisJICogZXJyb3IgdGhlIHVzZXIgaXMgdHJ5 aW5nIHRvIGZpeC4KKwkgKgorCSAqIFNwZWNpZmljYWxseSwgQUxURVIgU1VCU0NSSVBUSU9OIC4u LiBTRVJWRVIsIEFMVEVSIFNVQlNDUklQVElPTiAuLi4KKwkgKiBDT05ORUNUSU9OLCBvciBBTFRF UiBTVUJTQ1JJUFRJT04gLi4uIFNFVCAoc2xvdF9uYW1lID0gTk9ORSkuCisJICoKKwkgKiBOQjog aWYgdGhlIHVzZXIgc3BlY2lmaWVzIG11bHRpcGxlIFNFVCBvcHRpb25zLCB0aGVuIHdlIG1heSBz dGlsbCBuZWVkCisJICogdG8gY29uc3RydWN0IGNvbm5pbmZvIGV2ZW4gaWYgc2xvdF9uYW1lIGlz IHNldCB0byBOT05FLgorCSAqLworCWlmIChzdG10LT5raW5kID09IEFMVEVSX1NVQlNDUklQVElP Tl9TRVJWRVIgfHwKKwkJc3RtdC0+a2luZCA9PSBBTFRFUl9TVUJTQ1JJUFRJT05fQ09OTkVDVElP TikKKwl7CisJCWNvbm5pbmZvX25lZWRlZCA9IGZhbHNlOworCX0KKwllbHNlIGlmIChzdG10LT5r aW5kID09IEFMVEVSX1NVQlNDUklQVElPTl9PUFRJT05TKQorCXsKKwkJaWYgKElzU2V0KG9wdHMu c3BlY2lmaWVkX29wdHMsIFNVQk9QVF9TTE9UX05BTUUpICYmICFvcHRzLnNsb3RfbmFtZSkKKwkJ CWNvbm5pbmZvX25lZWRlZCA9IGZhbHNlOworCisJCS8qIGZvciB0aGVzZSBvcHRpb25zLCB3ZSBz dGlsbCBuZWVkIGNvbm5pbmZvICovCisJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBT VUJPUFRfRkFJTE9WRVIpIHx8CisJCQlJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRf VFdPUEhBU0VfQ09NTUlUKSB8fAorCQkJSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BU X1JFVEFJTl9ERUFEX1RVUExFUykpCisJCQljb25uaW5mb19uZWVkZWQgPSB0cnVlOworCX0KKwog CS8qCiAJICogU2tpcCBBQ0wgY2hlY2tzIG9uIHRoZSBzdWJzY3JpcHRpb24ncyBmb3JlaWduIHNl cnZlciwgaWYgYW55LiBJZgogCSAqIGNoYW5naW5nIHRoZSBzZXJ2ZXIgKG9yIHJlcGxhY2luZyBp dCB3aXRoIGEgcmF3IGNvbm5lY3Rpb24pLCB0aGVuIHRoZQogCSAqIG9sZCBvbmUgd2lsbCBiZSBy ZW1vdmVkIGFueXdheS4gSWYgY2hhbmdpbmcgc29tZXRoaW5nIHVucmVsYXRlZCwKIAkgKiB0aGVy ZSdzIG5vIG5lZWQgdG8gZG8gYW4gYWRkaXRpb25hbCBBQ0wgY2hlY2sgaGVyZTsgdGhhdCB3aWxs IGJlIGRvbmUKLQkgKiBieSB0aGUgc3Vic2NyaXB0aW9uIHdvcmtlciBhbnl3YXkuCisJICogYnkg dGhlIHN1YnNjcmlwdGlvbiB3b3JrZXIuCiAJICovCi0Jc3ViID0gR2V0U3Vic2NyaXB0aW9uKHN1 YmlkLCBmYWxzZSwgZmFsc2UpOworCXN1YiA9IEdldFN1YnNjcmlwdGlvbihzdWJpZCwgZmFsc2Us IGNvbm5pbmZvX25lZWRlZCwgZmFsc2UpOwogCiAJcmV0YWluX2RlYWRfdHVwbGVzID0gc3ViLT5y ZXRhaW5kZWFkdHVwbGVzOwogCW9yaWdpbiA9IHN1Yi0+b3JpZ2luOwpAQCAtMTQ5MiwyMCArMTU2 Nyw2IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3Jp cHRpb25TdG10ICpzdG10LAogCXsKIAkJY2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fT1BUSU9OUzoK IAkJCXsKLQkJCQlzdXBwb3J0ZWRfb3B0cyA9IChTVUJPUFRfU0xPVF9OQU1FIHwKLQkJCQkJCQkJ ICBTVUJPUFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8Ci0JCQkJCQkJCSAg U1VCT1BUX1NUUkVBTUlORyB8IFNVQk9QVF9UV09QSEFTRV9DT01NSVQgfAotCQkJCQkJCQkgIFNV Qk9QVF9ESVNBQkxFX09OX0VSUiB8Ci0JCQkJCQkJCSAgU1VCT1BUX1BBU1NXT1JEX1JFUVVJUkVE IHwKLQkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX0ZBSUxPVkVSIHwKLQkJ CQkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKLQkJCQkJCQkJICBTVUJPUFRfTUFY X1JFVEVOVElPTl9EVVJBVElPTiB8Ci0JCQkJCQkJCSAgU1VCT1BUX1dBTF9SRUNFSVZFUl9USU1F T1VUIHwKLQkJCQkJCQkJICBTVUJPUFRfT1JJR0lOKTsKLQotCQkJCXBhcnNlX3N1YnNjcmlwdGlv bl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywKLQkJCQkJCQkJCQkgICBzdXBwb3J0ZWRf b3B0cywgJm9wdHMpOwotCiAJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9Q VF9TTE9UX05BTUUpKQogCQkJCXsKIAkJCQkJLyoKQEAgLTE3NjksOCArMTgzMCw2IEBAIEFsdGVy U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpz dG10LAogCiAJCWNhc2UgQUxURVJfU1VCU0NSSVBUSU9OX0VOQUJMRUQ6CiAJCQl7Ci0JCQkJcGFy c2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25zLAotCQkJCQkJCQkJ CSAgIFNVQk9QVF9FTkFCTEVELCAmb3B0cyk7CiAJCQkJQXNzZXJ0KElzU2V0KG9wdHMuc3BlY2lm aWVkX29wdHMsIFNVQk9QVF9FTkFCTEVEKSk7CiAKIAkJCQlpZiAoIXN1Yi0+c2xvdG5hbWUgJiYg b3B0cy5lbmFibGVkKQpAQCAtMTkwNywxMCArMTk2Niw2IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJCWNhc2Ug QUxURVJfU1VCU0NSSVBUSU9OX1NFVF9QVUJMSUNBVElPTjoKIAkJCXsKLQkJCQlzdXBwb3J0ZWRf b3B0cyA9IFNVQk9QVF9DT1BZX0RBVEEgfCBTVUJPUFRfUkVGUkVTSDsKLQkJCQlwYXJzZV9zdWJz Y3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlvbnMsCi0JCQkJCQkJCQkJICAgc3Vw cG9ydGVkX29wdHMsICZvcHRzKTsKLQogCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9z dWJwdWJsaWNhdGlvbnMgLSAxXSA9CiAJCQkJCXB1YmxpY2F0aW9uTGlzdFRvQXJyYXkoc3RtdC0+ cHVibGljYXRpb24pOwogCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnB1Ymxp Y2F0aW9ucyAtIDFdID0gdHJ1ZTsKQEAgLTE5NTQsMTAgKzIwMDksNiBAQCBBbHRlclN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJ CQlMaXN0CSAgICpwdWJsaXN0OwogCQkJCWJvb2wJCWlzYWRkID0gc3RtdC0+a2luZCA9PSBBTFRF Ul9TVUJTQ1JJUFRJT05fQUREX1BVQkxJQ0FUSU9OOwogCi0JCQkJc3VwcG9ydGVkX29wdHMgPSBT VUJPUFRfUkVGUkVTSCB8IFNVQk9QVF9DT1BZX0RBVEE7Ci0JCQkJcGFyc2Vfc3Vic2NyaXB0aW9u X29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25zLAotCQkJCQkJCQkJCSAgIHN1cHBvcnRlZF9v cHRzLCAmb3B0cyk7Ci0KIAkJCQlwdWJsaXN0ID0gbWVyZ2VfcHVibGljYXRpb25zKHN1Yi0+cHVi bGljYXRpb25zLCBzdG10LT5wdWJsaWNhdGlvbiwgaXNhZGQsIHN0bXQtPnN1Ym5hbWUpOwogCQkJ CXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJwdWJsaWNhdGlvbnMgLSAxXSA9CiAJCQkJ CXB1YmxpY2F0aW9uTGlzdFRvQXJyYXkocHVibGlzdCk7CkBAIC0yMDE1LDkgKzIwNjYsNiBAQCBB bHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3Rt dCAqc3RtdCwKIAkJCQkJCQkgZXJybXNnKCIlcyBpcyBub3QgYWxsb3dlZCBmb3IgZGlzYWJsZWQg c3Vic2NyaXB0aW9ucyIsCiAJCQkJCQkJCQkiQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNI IFBVQkxJQ0FUSU9OIikpKTsKIAotCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0 ZSwgc3RtdC0+b3B0aW9ucywKLQkJCQkJCQkJCQkgICBTVUJPUFRfQ09QWV9EQVRBLCAmb3B0cyk7 Ci0KIAkJCQkvKgogCQkJCSAqIFRoZSBzdWJzY3JpcHRpb24gb3B0aW9uICJ0d29fcGhhc2UiIHJl cXVpcmVzIHRoYXQKIAkJCQkgKiByZXBsaWNhdGlvbiBoYXMgcGFzc2VkIHRoZSBpbml0aWFsIHRh YmxlIHN5bmNocm9uaXphdGlvbgpAQCAtMjA2Myw4ICsyMTExLDYgQEAgQWx0ZXJTdWJzY3JpcHRp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAkJ Y2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fU0tJUDoKIAkJCXsKLQkJCQlwYXJzZV9zdWJzY3JpcHRp b25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlvbnMsIFNVQk9QVF9MU04sICZvcHRzKTsKLQog CQkJCS8qIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gU0tJUCBzdXBwb3J0cyBvbmx5IExTTiBvcHRp b24gKi8KIAkJCQlBc3NlcnQoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX0xTTikp OwogCkBAIC0yMTMwLDYgKzIxNzYsOCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJY2hhcgkgICAqZXJyOwogCQlX YWxSZWNlaXZlckNvbm4gKndyY29ubjsKIAorCQlBc3NlcnQoY29ubmluZm9fbmVlZGVkKTsKKwog CQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KIAkJbG9h ZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC93b3JrZXIuYwppbmRleCBkZDZmYzM4YTQxZS4uOTA5YmQ0N2YwYTkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtNTA1OSw3ICs1MDU5LDcg QEAgbWF5YmVfcmVyZWFkX3N1YnNjcmlwdGlvbih2b2lkKQogCQlzdGFydGVkX3R4ID0gdHJ1ZTsK IAl9CiAKLQluZXdzdWIgPSBHZXRTdWJzY3JpcHRpb24oTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJp ZCwgdHJ1ZSwgdHJ1ZSk7CisJbmV3c3ViID0gR2V0U3Vic2NyaXB0aW9uKE15TG9naWNhbFJlcFdv cmtlci0+c3ViaWQsIHRydWUsIHRydWUsIHRydWUpOwogCiAJaWYgKG5ld3N1YikKIAl7CkBAIC01 ODA4LDcgKzU4MDgsNyBAQCBJbml0aWFsaXplTG9nUmVwV29ya2VyKHZvaWQpCiAJTG9ja1NoYXJl ZE9iamVjdChTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBNeUxvZ2ljYWxSZXBXb3JrZXItPnN1Ymlk LCAwLAogCQkJCQkgQWNjZXNzU2hhcmVMb2NrKTsKIAotCU15U3Vic2NyaXB0aW9uID0gR2V0U3Vi c2NyaXB0aW9uKE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQsIHRydWUsIHRydWUpOworCU15U3Vi c2NyaXB0aW9uID0gR2V0U3Vic2NyaXB0aW9uKE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQsIHRy dWUsIHRydWUsIHRydWUpOwogCiAJaWYgKE15U3Vic2NyaXB0aW9uKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IGE2YTJhZDFlNDljLi40ODk0NDIwMTg4OSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC0yMTMsNyArMjEzLDggQEAgdHlw ZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RPX0NMSUVO VF9DT0RFICovCiAKIGV4dGVybiBTdWJzY3JpcHRpb24gKkdldFN1YnNjcmlwdGlvbihPaWQgc3Vi aWQsIGJvb2wgbWlzc2luZ19vaywKLQkJCQkJCQkJCSBib29sIGFjbGNoZWNrKTsKKwkJCQkJCQkJ CSBib29sIGNvbm5pbmZvX25lZWRlZCwKKwkJCQkJCQkJCSBib29sIGNvbm5pbmZvX2FjbGNoZWNr KTsKIGV4dGVybiB2b2lkIERpc2FibGVTdWJzY3JpcHRpb24oT2lkIHN1YmlkKTsKIAogZXh0ZXJu IGludAlDb3VudERCU3Vic2NyaXB0aW9ucyhPaWQgZGJpZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggN2UzY2FiZGI5M2YuLjNlNDQyMzJlYjIzIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xNjksMTkg KzE2OSwzOSBAQCBERVRBSUw6ICBGb3JlaWduIGRhdGEgd3JhcHBlciBtdXN0IGJlIGRlZmluZWQg d2l0aCBDT05ORUNUSU9OIHNwZWNpZmllZC4KIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsK IEFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfZmR3IENPTk5FQ1RJT04gdGVzdF9mZHdf Y29ubmVjdGlvbjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19zdWJzY3JpcHRp b25fdXNlcjM7Ci1DUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgU0VSVkVSIHRl c3Rfc2VydmVyIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoc2xvdF9uYW1lID0gJ2R1bW15Jywg Y29ubmVjdCA9IGZhbHNlKTsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBT RVJWRVIgdGVzdF9zZXJ2ZXIKKyAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChzbG90X25hbWUg PSAnZHVtbXknLCBjb25uZWN0ID0gZmFsc2UpOwogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVz aCBwdWJsaWNhdGlvbnMuCi1EUk9QIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlcjMgU0VSVkVSIHRlc3Rfc2VydmVyOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O OwogUkVWT0tFIFVTQUdFIE9OIEZPUkVJR04gU0VSVkVSIHRlc3Rfc2VydmVyIEZST00gcmVncmVz c19zdWJzY3JpcHRpb25fdXNlcjM7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIzOwotLS0gZmFpbCwgbXVzdCBjb25uZWN0IGJ1dCBsYWNrcyBVU0FH RSBvbiBzZXJ2ZXIsIGFzIHdlbGwgYXMgdXNlciBtYXBwaW5nCistLSBvaywgbGFja3MgVVNBR0Ug b24gdGVzdF9zZXJ2ZXIsIGJ1dCByZXBsYWNpbmcgY29ubmVjdGlvbiBhbnl3YXkKK0JFR0lOOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHBhc3N3b3JkPXNlY3JldCc7CitBQk9SVDsKKy0tIGZhaWxzLCBj YW5ub3QgZHJvcCBzbG90CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2OwogRVJS T1I6ICBjb3VsZCBub3QgY29ubmVjdCB0byBwdWJsaXNoZXIgd2hlbiBhdHRlbXB0aW5nIHRvIGRy b3AgcmVwbGljYXRpb24gc2xvdCAiZHVtbXkiOiBzdWJzY3JpcHRpb24gb3duZXIgInJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIzIiBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gb24gZm9yZWlnbiBz ZXJ2ZXIgInRlc3Rfc2VydmVyIgogSElOVDogIFVzZSBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJ U0FCTEUgdG8gZGlzYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgdGhlbiB1c2UgQUxURVIgU1VC U0NSSVBUSU9OIC4uLiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpIHRvIGRpc2Fzc29jaWF0ZSBpdCBm cm9tIHRoZSBzbG90LgorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworR1JBTlQgVVNBR0Ug T04gRk9SRUlHTiBTRVJWRVIgdGVzdF9zZXJ2ZXIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNl cjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIz OwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgU0VUIChzbG90X25hbWUgPSBO T05FKTsKLURST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjY7CitEUk9QIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWI2OyAtLW9rCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjYgU0VSVkVSIHRlc3Rfc2VydmVyCisgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAo c2xvdF9uYW1lID0gJ2R1bW15JywgY29ubmVjdCA9IGZhbHNlKTsKK1dBUk5JTkc6ICBzdWJzY3Jp cHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlh dGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24g c2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9u IHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorRFJPUCBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiB0ZXN0X3NlcnZlcjsKKy0tIG9rLCB0ZXN0X3NlcnZl ciBsYWNrcyB1c2VyIG1hcHBpbmcsIGJ1dCByZXBsYWNpbmcgY29ubmVjdGlvbiBhbnl3YXkKK0JF R0lOOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHBhc3N3b3JkPXNlY3JldCc7CitBQk9SVDsKK0NSRUFU RSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiB0ZXN0 X3NlcnZlciBPUFRJT05TKHVzZXIgJ2ZvbycsIHBhc3N3b3JkICdzZWNyZXQnKTsKK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2OyAtLW9rCitEUk9QIFVTRVIgTUFQUElORyBG T1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHRlc3Rfc2VydmVyOwogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogUkVWT0tFIENS RUFURSBPTiBEQVRBQkFTRSBSRUdSRVNTSU9OIEZST00gcmVncmVzc19zdWJzY3JpcHRpb25fdXNl cjM7CiBEUk9QIFNFUlZFUiB0ZXN0X3NlcnZlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvcmVncmVzcy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMKaW5kZXggMmJjYjU1NTlh NDUuLjU5ODYzNWI2NTU4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYwor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCisjaW5jbHVkZSAiZm9yZWlnbi9mb3JlaWduLmgi CiAjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCiAjaW5jbHVk ZSAibWlzY2FkbWluLmgiCkBAIC03MzUsNiArNzM2LDggQEAgUEdfRlVOQ1RJT05fSU5GT19WMSh0 ZXN0X2Zkd19jb25uZWN0aW9uKTsKIERhdHVtCiB0ZXN0X2Zkd19jb25uZWN0aW9uKFBHX0ZVTkNU SU9OX0FSR1MpCiB7CisJLyogRW5zdXJlIHRoZSB0ZXN0IGZhaWxzIGlmIG5vIHZhbGlkIHVzZXIg bWFwcGluZyBleGlzdHMuICovCisJR2V0VXNlck1hcHBpbmcoUEdfR0VUQVJHX09JRCgwKSwgUEdf R0VUQVJHX09JRCgxKSk7CiAJUEdfUkVUVVJOX1RFWFRfUChjc3RyaW5nX3RvX3RleHQoImRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB1c2VyPWRvZXNub3RleGlzdCBwYXNzd29yZD1zZWNyZXQi KSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCmluZGV4IDZjM2Q5NjMy ZThhLi5mNjEwZDZhZGUxOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2Ny aXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBA IC0xMjEsMTggKzEyMSw0NCBAQCBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBBTFRFUiBG T1JFSUdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdyBDT05ORUNUSU9OIHRlc3RfZmR3X2Nvbm5lY3Rp b247CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIz OwogCi1DUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgU0VSVkVSIHRlc3Rfc2Vy dmVyIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoc2xvdF9uYW1lID0gJ2R1bW15JywgY29ubmVj dCA9IGZhbHNlKTsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIg dGVzdF9zZXJ2ZXIKKyAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChzbG90X25hbWUgPSAnZHVt bXknLCBjb25uZWN0ID0gZmFsc2UpOwogCi1EUk9QIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHRlc3Rfc2VydmVyOwogUkVTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OOwogUkVWT0tFIFVTQUdFIE9OIEZPUkVJR04gU0VSVkVSIHRlc3Rfc2VydmVyIEZS T00gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwogCi0tLSBmYWlsLCBtdXN0IGNvbm5lY3QgYnV0 IGxhY2tzIFVTQUdFIG9uIHNlcnZlciwgYXMgd2VsbCBhcyB1c2VyIG1hcHBpbmcKKy0tIG9rLCBs YWNrcyBVU0FHRSBvbiB0ZXN0X3NlcnZlciwgYnV0IHJlcGxhY2luZyBjb25uZWN0aW9uIGFueXdh eQorQkVHSU47CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgcGFzc3dvcmQ9c2VjcmV0JzsKK0FCT1JUOwor CistLSBmYWlscywgY2Fubm90IGRyb3Agc2xvdAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViNjsKIAorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworR1JBTlQgVVNBR0UgT04g Rk9SRUlHTiBTRVJWRVIgdGVzdF9zZXJ2ZXIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7 CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwor CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVQgKHNsb3RfbmFtZSA9IE5P TkUpOwotRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsKK0RST1AgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YjY7IC0tb2sKKworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWI2IFNFUlZFUiB0ZXN0X3NlcnZlcgorICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEgg KHNsb3RfbmFtZSA9ICdkdW1teScsIGNvbm5lY3QgPSBmYWxzZSk7CisKK0RST1AgVVNFUiBNQVBQ SU5HIEZPUiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMyBTRVJWRVIgdGVzdF9zZXJ2ZXI7CisK Ky0tIG9rLCB0ZXN0X3NlcnZlciBsYWNrcyB1c2VyIG1hcHBpbmcsIGJ1dCByZXBsYWNpbmcgY29u bmVjdGlvbiBhbnl3YXkKK0JFR0lOOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YjYgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHBhc3N3b3JkPXNlY3Jl dCc7CitBQk9SVDsKKworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlcjMgU0VSVkVSIHRlc3Rfc2VydmVyIE9QVElPTlModXNlciAnZm9vJywgcGFzc3dvcmQg J3NlY3JldCcpOworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVQgKHNs b3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsgLS1v aworCitEUk9QIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VS VkVSIHRlc3Rfc2VydmVyOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXI7CiBSRVZPS0UgQ1JFQVRFIE9OIERBVEFCQVNFIFJFR1JFU1NJT04gRlJP TSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKLS0gCjIuNDMuMAoK --=-4RSGsc7inCq8kuCylf4g Content-Disposition: attachment; filename*0=v5-0003-Avoid-errors-during-DROP-SUBSCRIPTION-when-slot_n.pat; filename*1=ch Content-Type: text/x-patch; name="v5-0003-Avoid-errors-during-DROP-SUBSCRIPTION-when-slot_n.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0MmJkMTJhNjMzOGQwOWQ2ODMyZTRhZjFlNjlmODVjMjc5MGRhZDIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDEyIE1heSAyMDI2IDE0OjI5OjI5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSAzLzRdIEF2 b2lkIGVycm9ycyBkdXJpbmcgRFJPUCBTVUJTQ1JJUFRJT04gd2hlbiBzbG90X25hbWUKIGlzIE5P TkUuCgpQcmV2aW91c2x5LCBpZiB0aGUgc3Vic2NyaXB0aW9uIHVzZWQgYSBzZXJ2ZXIsCkZvcmVp Z25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKCkgY291bGQgcmFpc2UgYW4gZXJyb3IgKGUuZy4gbWlz c2luZwp1c2VyIG1hcHBpbmcpIGR1cmluZyBEUk9QIFNVQlNDUklQVElPTiBldmVuIGlmIHRoZSBj b25uaW5mbyB3YXNuJ3QKbmVlZGVkIGF0IGFsbC4KCkNvbnN0cnVjdCBjb25uaW5mbyBhZnRlciB0 aGUgZWFybHkgcmV0dXJuLCBzbyB0aGF0IGlmIHNsb3RfbmFtZSBpcwpOT05FIGFuZCByc3RhdGVz IGlzIE5JTCwgdGhlIERST1AgU1VCU0NSSVBUSU9OIHdpbGwgc3VjY2VlZCBldmVuIGlmCkZvcmVp Z25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKCkgcmFpc2VzIGFuIGVycm9yIChlLmcuIG1pc3Npbmcg dXNlcgptYXBwaW5nKS4KCklmIHNsb3RfbmFtZSBpcyBOT05FIGFuZCByc3RhdGVzIGlzIG5vdCBO SUwsIERST1AgU1VCU0NSSVBUSU9OIG1heQpzdGlsbCBlbmNvdW50ZXIgYW4gZXJyb3IgZnJvbSBG b3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZygpLgoKUmVwb3J0ZWQtYnk6IEhheWF0byBLdXJv ZGEgKEZ1aml0c3UpIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTogQ2hh byBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9PUzlQUjAxTUIxMjE0OUI1NERFQTE0ODEwOEM2RkE1NjY3RjUyRDJAT1M5UFIwMU1CMTIx NDkuanBucHJkMDEucHJvZC5vdXRsb29rLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYyAgICB8IDg2ICsrKysrKysrKysrKystLS0tLS0tLS0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCB8ICA1ICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgfCAgNSArLQogMyBmaWxlcyBjaGFuZ2VkLCA1 NyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMKaW5kZXggMDFlOTkyZjY1NmUuLjhhMzQ5ZjdlMGJlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVk ZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNs dWRlICJ1dGlscy9wZ19sc24uaCIKKyNpbmNsdWRlICJ1dGlscy9yZXNvd25lci5oIgogI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIC8qCkBAIC0yMjI2LDYgKzIyMjcsNDMgQEAgQWx0ZXJT dWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0 bXQsCiAJcmV0dXJuIG15c2VsZjsKIH0KIAorLyoKKyAqIENvbnN0cnVjdCBjb25uaW5mbyBmcm9t IGEgc3Vic2NyaXB0aW9uJ3Mgc2VydmVyLiBMaWtlIGxpYnBxcmN2X2Nvbm5lY3QoKSwKKyAqIGlm IGFuIGVycm9yIG9jY3Vycywgc2V0ICplcnIgdG8gdGhlIGVycm9yIG1lc3NhZ2UgYW5kIHJldHVy biBOVUxMLgorICoKKyAqIEhvd2V2ZXIsIGZhaWx1cmVzIGluIEZvcmVpZ25TZXJ2ZXJDb25uZWN0 aW9uU3RyaW5nKCkgbWF5IGVyZXBvcnQoRVJST1IpLAorICogYW5kIChhbHNvIGxpa2UgbGlicHFy Y3ZfY29ubmVjdCkgaXQncyBub3Qgd29ydGggYWRkaW5nIHRoZSBtYWNoaW5lcnkgdG8KKyAqIHBh c3MgYWxsIG9mIHRob3NlIGJhY2sgdG8gdGhlIGNhbGxlciBqdXN0IHRvIGNvdmVyIHRoaXMgb25l IGNhc2UuCisgKi8KK3N0YXRpYyBjaGFyICoKK2NvbnN0cnVjdF9zdWJzZXJ2ZXJfY29ubmluZm8o T2lkIHN1YnNlcnZlciwgT2lkIHN1Ym93bmVyLCBjaGFyICoqZXJyKQoreworCUFjbFJlc3VsdAkJ IGFjbHJlc3VsdDsKKwlGb3JlaWduU2VydmVyCSpzZXJ2ZXI7CisKKwkqZXJyID0gTlVMTDsKKwor CXNlcnZlciA9IEdldEZvcmVpZ25TZXJ2ZXIoc3Vic2VydmVyKTsKKworCWFjbHJlc3VsdCA9IG9i amVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc3Vic2VydmVyLAorCQkJCQkJ CQlzdWJvd25lciwgQUNMX1VTQUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQor CXsKKwkJLyoKKwkJICogVW5hYmxlIHRvIGdlbmVyYXRlIGNvbm5lY3Rpb24gc3RyaW5nIGJlY2F1 c2UgcGVybWlzc2lvbnMgb24gdGhlCisJCSAqIGZvcmVpZ24gc2VydmVyIGhhdmUgYmVlbiByZW1v dmVkLiBGb2xsb3cgdGhlIHNhbWUgbG9naWMgYXMgYW4KKwkJICogdW51c2FibGUgc3ViY29ubmlu Zm8gKHdoaWNoIHdpbGwgcmVzdWx0IGluIGFuIEVSUk9SIGxhdGVyCisJCSAqIHVubGVzcyBzbG90 X25hbWUgPSBOT05FKS4KKwkJICovCisJCSplcnIgPSBwc3ByaW50ZihfKCJzdWJzY3JpcHRpb24g b3duZXIgXCIlc1wiIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiBvbiBmb3JlaWduIHNlcnZlciBc IiVzXCIiKSwKKwkJCQkJCUdldFVzZXJOYW1lRnJvbUlkKHN1Ym93bmVyLCBmYWxzZSksCisJCQkJ CQlzZXJ2ZXItPnNlcnZlcm5hbWUpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gRm9y ZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoc3Vib3duZXIsIHNlcnZlcik7Cit9CisKIC8qCiAg KiBEcm9wIGEgc3Vic2NyaXB0aW9uCiAgKi8KQEAgLTIyMzcsMTAgKzIyNzUsMTIgQEAgRHJvcFN1 YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQog CUhlYXBUdXBsZQl0dXA7CiAJT2lkCQkJc3ViaWQ7CiAJT2lkCQkJc3Vib3duZXI7CisJT2lkCQkJ c3Vic2VydmVyOworCWNoYXIJICAgKnN1YmNvbm5pbmZvID0gTlVMTDsKIAlEYXR1bQkJZGF0dW07 CiAJYm9vbAkJaXNudWxsOwogCWNoYXIJICAgKnN1Ym5hbWU7Ci0JY2hhcgkgICAqY29ubmluZm87 CisJY2hhcgkgICAqY29ubmluZm8gPSBOVUxMOwogCWNoYXIJICAgKnNsb3RuYW1lOwogCUxpc3QJ ICAgKnN1YndvcmtlcnM7CiAJTGlzdENlbGwgICAqbGM7CkBAIC0yMjc5LDkgKzIzMTksMTUgQEAg RHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExl dmVsKQogCQlyZXR1cm47CiAJfQogCisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoU1VCU0NSSVBU SU9OT0lELCB0dXAsCisJCQkJCQkJQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8sICZp c251bGwpOworCWlmICghaXNudWxsKQorCQlzdWJjb25uaW5mbyA9IFRleHREYXR1bUdldENTdHJp bmcoZGF0dW0pOworCiAJZm9ybSA9IChGb3JtX3BnX3N1YnNjcmlwdGlvbikgR0VUU1RSVUNUKHR1 cCk7CiAJc3ViaWQgPSBmb3JtLT5vaWQ7CiAJc3Vib3duZXIgPSBmb3JtLT5zdWJvd25lcjsKKwlz dWJzZXJ2ZXIgPSBmb3JtLT5zdWJzZXJ2ZXI7CiAJbXVzdF91c2VfcGFzc3dvcmQgPSAhc3VwZXJ1 c2VyX2FyZyhzdWJvd25lcikgJiYgZm9ybS0+c3VicGFzc3dvcmRyZXF1aXJlZDsKIAogCS8qIG11 c3QgYmUgb3duZXIgKi8KQEAgLTIzMDMsMzkgKzIzNDksNiBAQCBEcm9wU3Vic2NyaXB0aW9uKERy b3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCQkJCQkJCSAgIEFu dW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym5hbWUpOwogCXN1Ym5hbWUgPSBwc3RyZHVwKE5hbWVTdHIo KkRhdHVtR2V0TmFtZShkYXR1bSkpKTsKIAotCS8qIEdldCBjb25uaW5mbyAqLwotCWlmIChPaWRJ c1ZhbGlkKGZvcm0tPnN1YnNlcnZlcikpCi0JewotCQlBY2xSZXN1bHQJYWNscmVzdWx0OwotCQlG b3JlaWduU2VydmVyICpzZXJ2ZXI7Ci0KLQkJc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlcihmb3Jt LT5zdWJzZXJ2ZXIpOwotCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soRm9yZWlnblNlcnZl clJlbGF0aW9uSWQsIGZvcm0tPnN1YnNlcnZlciwKLQkJCQkJCQkJCWZvcm0tPnN1Ym93bmVyLCBB Q0xfVVNBR0UpOwotCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQl7Ci0JCQkvKgot CQkJICogVW5hYmxlIHRvIGdlbmVyYXRlIGNvbm5lY3Rpb24gc3RyaW5nIGJlY2F1c2UgcGVybWlz c2lvbnMgb24gdGhlCi0JCQkgKiBmb3JlaWduIHNlcnZlciBoYXZlIGJlZW4gcmVtb3ZlZC4gRm9s bG93IHRoZSBzYW1lIGxvZ2ljIGFzIGFuCi0JCQkgKiB1bnVzYWJsZSBzdWJjb25uaW5mbyAod2hp Y2ggd2lsbCByZXN1bHQgaW4gYW4gRVJST1IgbGF0ZXIKLQkJCSAqIHVubGVzcyBzbG90X25hbWUg PSBOT05FKS4KLQkJCSAqLwotCQkJZXJyID0gcHNwcmludGYoXygic3Vic2NyaXB0aW9uIG93bmVy IFwiJXNcIiBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gb24gZm9yZWlnbiBzZXJ2ZXIgXCIlc1wi IiksCi0JCQkJCQkgICBHZXRVc2VyTmFtZUZyb21JZChmb3JtLT5zdWJvd25lciwgZmFsc2UpLAot CQkJCQkJICAgc2VydmVyLT5zZXJ2ZXJuYW1lKTsKLQkJCWNvbm5pbmZvID0gTlVMTDsKLQkJfQot CQllbHNlCi0JCQljb25uaW5mbyA9IEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKGZvcm0t PnN1Ym93bmVyLAotCQkJCQkJCQkJCQkJCSBzZXJ2ZXIpOwotCX0KLQllbHNlCi0JewotCQlkYXR1 bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBUSU9OT0lELCB0dXAsCi0JCQkJCQkJ CQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyk7Ci0JCWNvbm5pbmZvID0gVGV4 dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7Ci0JfQotCiAJLyogR2V0IHNsb3RuYW1lICovCiAJZGF0 dW0gPSBTeXNDYWNoZUdldEF0dHIoU1VCU0NSSVBUSU9OT0lELCB0dXAsCiAJCQkJCQkJQW51bV9w Z19zdWJzY3JpcHRpb25fc3Vic2xvdG5hbWUsICZpc251bGwpOwpAQCAtMjQ3Miw2ICsyNDg1LDEx IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNU b3BMZXZlbCkKIAkgKi8KIAlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CiAK KwlpZiAoT2lkSXNWYWxpZChzdWJzZXJ2ZXIpKQorCQljb25uaW5mbyA9IGNvbnN0cnVjdF9zdWJz ZXJ2ZXJfY29ubmluZm8oc3Vic2VydmVyLCBzdWJvd25lciwgJmVycik7CisJZWxzZQorCQljb25u aW5mbyA9IHN1YmNvbm5pbmZvOworCiAJaWYgKGNvbm5pbmZvKQogCQl3cmNvbm4gPSB3YWxyY3Zf Y29ubmVjdChjb25uaW5mbywgdHJ1ZSwgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJ CXN1Ym5hbWUsICZlcnIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CmluZGV4IDNlNDQyMzJlYjIzLi40MWJjMjY1ZWRmYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTk4LDEwICsxOTgsMTEgQEAgRFJPUCBVU0VS IE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiB0ZXN0X3NlcnZl cjsKIEJFR0lOOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgQ09OTkVDVElP TiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHBhc3N3b3JkPXNlY3JldCc7CiBBQk9SVDsK LUNSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZF UiB0ZXN0X3NlcnZlciBPUFRJT05TKHVzZXIgJ2ZvbycsIHBhc3N3b3JkICdzZWNyZXQnKTsKKy0t IGZhaWxzLCBjYW5ub3QgZHJvcCBzbG90CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI2OworRVJST1I6ICB1c2VyIG1hcHBpbmcgbm90IGZvdW5kIGZvciB1c2VyICJyZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyMyIsIHNlcnZlciAidGVzdF9zZXJ2ZXIiCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViNiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViNjsgLS1vawotRFJPUCBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiB0ZXN0X3NlcnZlcjsKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIFJFVk9LRSBDUkVBVEUgT04g REFUQUJBU0UgUkVHUkVTU0lPTiBGUk9NIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwogRFJP UCBTRVJWRVIgdGVzdF9zZXJ2ZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z dWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbApp bmRleCBmNjEwZDZhZGUxOC4uNTc2ZWUxN2RmZDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2Ny aXB0aW9uLnNxbApAQCAtMTUzLDEzICsxNTMsMTIgQEAgQkVHSU47CiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViNiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgcGFzc3dvcmQ9c2VjcmV0JzsKIEFCT1JUOwogCi1DUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMyBTRVJWRVIgdGVzdF9zZXJ2ZXIgT1BUSU9OUyh1c2Vy ICdmb28nLCBwYXNzd29yZCAnc2VjcmV0Jyk7CistLSBmYWlscywgY2Fubm90IGRyb3Agc2xvdAor RFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsKIAogQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjYgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YjY7IC0tb2sKIAotRFJPUCBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiB0ZXN0X3NlcnZlcjsKLQogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogUkVWT0tFIENSRUFURSBP TiBEQVRBQkFTRSBSRUdSRVNTSU9OIEZST00gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CiAK LS0gCjIuNDMuMAoK --=-4RSGsc7inCq8kuCylf4g Content-Disposition: attachment; filename="v5-0004-DROP-SUBSCRIPTION-improve-error-message.patch" Content-Type: text/x-patch; name="v5-0004-DROP-SUBSCRIPTION-improve-error-message.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1NmQyOWFiMWMwOTgzOWZkMjRkZDFjOTQ3YmYyMjA2OTUzNDU1NGEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDE0IE1heSAyMDI2IDEwOjU5OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSA0LzRdIERS T1AgU1VCU0NSSVBUSU9OOiBpbXByb3ZlIGVycm9yIG1lc3NhZ2UuCgpQcmV2aW91c2x5LCB3aGVu IGNvbnN0cnVjdGluZyB0aGUgY29ubmluZm8gZm9yIGEgc3Vic2NyaXB0aW9uIHVzaW5nIGEKc2Vy dmVyLCBlcnJvcnMgZnJvbSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZygpIHdlcmUgcmFp c2VkCmltbWVkaWF0ZWx5LCBsb3NpbmcgdGhlIGhlbHBmdWwgSElOVCBhcyB3ZWxsIGFzIHdhcm5p bmdzIGFib3V0CnRhYmxlc3luYyBzbG90cy4gQUNMIGVycm9ycyB3ZXJlIGhhbmRsZWQgYnkgZXhw bGljaXRseSBmb3JtYXR0aW5nIGFuCmVycm9yIG1lc3NhZ2UgYW5kIHBhc3NpbmcgaXQgdG8gUmVw b3J0U2xvdENvbm5lY3Rpb25FcnJvcigpLgoKVXNlIGEgc3VidHJhbnNhY3Rpb24gdG8gY2FwdHVy ZSBBQ0wgZXJyb3JzIGFuZApGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZygpIGVycm9ycyBh bmQgcmVwb3J0IHdpdGgKUmVwb3J0U2xvdENvbm5lY3Rpb25FcnJvcigpIGNvbnNpc3RlbnRseS4K ClJlcG9ydGVkLWJ5OiBIYXlhdG8gS3Vyb2RhIChGdWppdHN1KSA8a3Vyb2RhLmhheWF0b0BmdWpp dHN1LmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vT1M5UFIwMU1CMTIxNDlCNTRERUExNDgxMDhD NkZBNTY2N0Y1MkQyQE9TOVBSMDFNQjEyMTQ5LmpwbnByZDAxLnByb2Qub3V0bG9vay5jb20KLS0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgICAgfCA2NSArKysrKysr KysrKysrKystLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5v dXQgfCAgMyArLQogMiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggOGEzNDlm N2UwYmUuLjdiMDViNTRmOWE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5jCkBAIC0yMjMxLDM3ICsyMjMxLDYyIEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogICogQ29uc3RydWN0IGNvbm5p bmZvIGZyb20gYSBzdWJzY3JpcHRpb24ncyBzZXJ2ZXIuIExpa2UgbGlicHFyY3ZfY29ubmVjdCgp LAogICogaWYgYW4gZXJyb3Igb2NjdXJzLCBzZXQgKmVyciB0byB0aGUgZXJyb3IgbWVzc2FnZSBh bmQgcmV0dXJuIE5VTEwuCiAgKgotICogSG93ZXZlciwgZmFpbHVyZXMgaW4gRm9yZWlnblNlcnZl ckNvbm5lY3Rpb25TdHJpbmcoKSBtYXkgZXJlcG9ydChFUlJPUiksCi0gKiBhbmQgKGFsc28gbGlr ZSBsaWJwcXJjdl9jb25uZWN0KSBpdCdzIG5vdCB3b3J0aCBhZGRpbmcgdGhlIG1hY2hpbmVyeSB0 bwotICogcGFzcyBhbGwgb2YgdGhvc2UgYmFjayB0byB0aGUgY2FsbGVyIGp1c3QgdG8gY292ZXIg dGhpcyBvbmUgY2FzZS4KKyAqIFVzZXMgYSBzdWJ0cmFuc2FjdGlvbiBzbyB0aGF0IHdlIGNhbiBj YXRjaCBhcmJpdHJhcnkgZXJyb3JzIGZyb20KKyAqIEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3Ry aW5nKCkuCiAgKi8KIHN0YXRpYyBjaGFyICoKIGNvbnN0cnVjdF9zdWJzZXJ2ZXJfY29ubmluZm8o T2lkIHN1YnNlcnZlciwgT2lkIHN1Ym93bmVyLCBjaGFyICoqZXJyKQogewotCUFjbFJlc3VsdAkJ IGFjbHJlc3VsdDsKLQlGb3JlaWduU2VydmVyCSpzZXJ2ZXI7CisJTWVtb3J5Q29udGV4dAkgb2xk Y3h0CQkgPSBDdXJyZW50TWVtb3J5Q29udGV4dDsKKwlSZXNvdXJjZU93bmVyCSBvbGRyZXNvd25l ciA9IEN1cnJlbnRSZXNvdXJjZU93bmVyOworCUVycm9yRGF0YQkJKmVkYXRhCQkgPSBOVUxMOwor CWNoYXIJCQkqY29ubmluZm8JID0gTlVMTDsKIAogCSplcnIgPSBOVUxMOwogCi0Jc2VydmVyID0g R2V0Rm9yZWlnblNlcnZlcihzdWJzZXJ2ZXIpOworCUJlZ2luSW50ZXJuYWxTdWJUcmFuc2FjdGlv bihOVUxMKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAotCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc3Vic2VydmVyLAotCQkJ CQkJCQlzdWJvd25lciwgQUNMX1VTQUdFKTsKLQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09L KQorCVBHX1RSWSgpOwogCXsKLQkJLyoKLQkJICogVW5hYmxlIHRvIGdlbmVyYXRlIGNvbm5lY3Rp b24gc3RyaW5nIGJlY2F1c2UgcGVybWlzc2lvbnMgb24gdGhlCi0JCSAqIGZvcmVpZ24gc2VydmVy IGhhdmUgYmVlbiByZW1vdmVkLiBGb2xsb3cgdGhlIHNhbWUgbG9naWMgYXMgYW4KLQkJICogdW51 c2FibGUgc3ViY29ubmluZm8gKHdoaWNoIHdpbGwgcmVzdWx0IGluIGFuIEVSUk9SIGxhdGVyCi0J CSAqIHVubGVzcyBzbG90X25hbWUgPSBOT05FKS4KLQkJICovCi0JCSplcnIgPSBwc3ByaW50Zihf KCJzdWJzY3JpcHRpb24gb3duZXIgXCIlc1wiIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiBvbiBm b3JlaWduIHNlcnZlciBcIiVzXCIiKSwKLQkJCQkJCUdldFVzZXJOYW1lRnJvbUlkKHN1Ym93bmVy LCBmYWxzZSksCi0JCQkJCQlzZXJ2ZXItPnNlcnZlcm5hbWUpOwotCQlyZXR1cm4gTlVMTDsKKwkJ QWNsUmVzdWx0CQkgYWNscmVzdWx0OworCQlGb3JlaWduU2VydmVyCSpzZXJ2ZXI7CisKKwkJc2Vy dmVyID0gR2V0Rm9yZWlnblNlcnZlcihzdWJzZXJ2ZXIpOworCQlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIHN1YnNlcnZlciwKKwkJCQkJCQkJCXN1 Ym93bmVyLCBBQ0xfVVNBR0UpOworCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxF R0UpLAorCQkJCQllcnJtc2coInN1YnNjcmlwdGlvbiBvd25lciBcIiVzXCIgZG9lcyBub3QgaGF2 ZSBwZXJtaXNzaW9uIG9uIGZvcmVpZ24gc2VydmVyIFwiJXNcIiIsCisJCQkJCQkgICBHZXRVc2Vy TmFtZUZyb21JZChzdWJvd25lciwgZmFsc2UpLAorCQkJCQkJICAgc2VydmVyLT5zZXJ2ZXJuYW1l KSk7CisKKwkJY29ubmluZm8gPSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhzdWJvd25l ciwgc2VydmVyKTsKKwkJUmVsZWFzZUN1cnJlbnRTdWJUcmFuc2FjdGlvbigpOworCQlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKwkJQ3VycmVudFJlc291cmNlT3duZXIgPSBvbGRyZXNv d25lcjsKKwl9CisJUEdfQ0FUQ0goKTsKKwl7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj eHQpOworCQllZGF0YSA9IENvcHlFcnJvckRhdGEoKTsKKwkJRmx1c2hFcnJvclN0YXRlKCk7CisJ CVJvbGxiYWNrQW5kUmVsZWFzZUN1cnJlbnRTdWJUcmFuc2FjdGlvbigpOworCQlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKwkJQ3VycmVudFJlc291cmNlT3duZXIgPSBvbGRyZXNvd25l cjsKKworCQljb25uaW5mbyA9IE5VTEw7CisJfQorCVBHX0VORF9UUlkoKTsKKworCWlmICghY29u bmluZm8pCisJeworCQkqZXJyID0gcHN0cmR1cChlZGF0YS0+bWVzc2FnZSk7CisJCUZyZWVFcnJv ckRhdGEoZWRhdGEpOwogCX0KIAotCXJldHVybiBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmlu ZyhzdWJvd25lciwgc2VydmVyKTsKKwlyZXR1cm4gY29ubmluZm87CiB9CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggNDFiYzI2NWVkZmIuLjFh ZjVhZWM4NzhmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlw dGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0 CkBAIC0yMDAsNyArMjAwLDggQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYg Q09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHBhc3MKIEFCT1JUOwogLS0g ZmFpbHMsIGNhbm5vdCBkcm9wIHNsb3QKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YjY7Ci1FUlJPUjogIHVzZXIgbWFwcGluZyBub3QgZm91bmQgZm9yIHVzZXIgInJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIzIiwgc2VydmVyICJ0ZXN0X3NlcnZlciIKK0VSUk9SOiAgY291bGQgbm90 IGNvbm5lY3QgdG8gcHVibGlzaGVyIHdoZW4gYXR0ZW1wdGluZyB0byBkcm9wIHJlcGxpY2F0aW9u IHNsb3QgImR1bW15IjogdXNlciBtYXBwaW5nIG5vdCBmb3VuZCBmb3IgdXNlciAicmVncmVzc19z dWJzY3JpcHRpb25fdXNlcjMiLCBzZXJ2ZXIgInRlc3Rfc2VydmVyIgorSElOVDogIFVzZSBBTFRF UiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEUgdG8gZGlzYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBh bmQgdGhlbiB1c2UgQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUp IHRvIGRpc2Fzc29jaWF0ZSBpdCBmcm9tIHRoZSBzbG90LgogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YjYgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjY7IC0tb2sKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19zdWJzY3JpcHRpb25fdXNlcjsKLS0gCjIuNDMuMAoK --=-4RSGsc7inCq8kuCylf4g--