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 1w1Aro-0003vI-0i for pgsql-committers@arkaria.postgresql.org; Fri, 13 Mar 2026 22:20:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w1Aqo-000KY6-0U for pgsql-committers@arkaria.postgresql.org; Fri, 13 Mar 2026 22:19:22 +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 1w1Aqn-000KXx-2J for pgsql-committers@lists.postgresql.org; Fri, 13 Mar 2026 22:19:22 +0000 Received: from mail-oi1-x22d.google.com ([2607:f8b0:4864:20::22d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1Aqk-000000001LR-34jh for pgsql-committers@lists.postgresql.org; Fri, 13 Mar 2026 22:19:21 +0000 Received: by mail-oi1-x22d.google.com with SMTP id 5614622812f47-467161c4ba7so1743671b6e.0 for ; Fri, 13 Mar 2026 15:19:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1773440358; x=1774045158; darn=lists.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=08El0ekMXnEdQhhSrbRzfvjovtIFSAXXWwfOun/liWc=; b=kSNE3BlKP5Bz1LSR7ediyD1RxB5hWO7JNAyIQQLPI9wcQx+3SBn7+j86UqcV4Il9i3 SP0QF83Yo3r94VjdAKya+xAd0u43/MKzBE+9oT6vZNpMMES5+pCUV/v95gWHPEa3v4eq 7JPRVo/WS6iOFkc5420wd7Bms8y0VvEzLS2kcdo5RTSlUqwmUTAZXMsIAiSm8kxw2C8b wFEZlEmWfGmSv30yXgQ6McgPcHWQy7Kn5dkeXAUpOI5XpxAGals9ZWOvQ59j5xuxHWmT N39zpjS6/jkwT1nuDYHgOi5FDNdmiOuMW/1atSq83NJNZQZXUCWv8A3TDHyAGC8shjZg GGow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773440358; x=1774045158; 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=08El0ekMXnEdQhhSrbRzfvjovtIFSAXXWwfOun/liWc=; b=DcxgQ1lCpD9Iak3mUKmx37imgh0poBZZQgRxseRMhk8LKzU1tN0n7YMXiDoh0Lb/nF Gal6PZPx+wbxmHq0lzjXlQUiMGklC0ehdjLyGqdswqjlGvxqXUt4uEG/WgAnRqQfUkmh a8qVbNIldgVHgJy52/zGTudpvkUBAWudHK5jd36YoAoDFdozQ/MJelna1dIs11oxkSMI rClJ/d5GLQW8UiuWPTPg18ZNAAvlY2ClL1llrrpR6SbLGUTub9QkMAd9zcEU3w80SBhC JlzTio+ITNwRqdZG23pY966SSbdeFCUF40q/Jg2hm69IVLtSY4UTkIxRthDWOUGAK669 Fu7w== X-Forwarded-Encrypted: i=1; AJvYcCWuQqRRKQ4lfagAv0NJDPvrERNaNUPMhCfs9KeyU8yB6X/4OCo5iK+eoHOoOzGd59VhsC+qT6vyeWX3FrEduJ+O@lists.postgresql.org X-Gm-Message-State: AOJu0YyWTjOp/v2J9bj+cHNcLD3ygtRo20fT03zCM/TeDg5KRYiMdfvD pd8PDJNqh/xE9pRpu8ESzUQcyER1MjefE0usMJYhlZF6QB0MsAAVjtGY8tLT88q2SQ== X-Gm-Gg: ATEYQzxksZbsqeVSo1hwLgPPL0ZrrO5DicCV762c0CWidgngAITNsDqlQp9jkHJttM/ R5eCQfs9epkr/LMYUMwkLYUxbxdTkNgnE98rtF25ud8Qvirt1814N7yJnwVfYAMwmZtDX0eRZgc Zc1nHflXUKlP4bzQOFMHuqxmT+LLMInFt/DWiC7aPCXZo9MxI+jF0ov/f9+CzYN1GEqV1sG0OEk axJ0jFV3E9iSFyi94Vb5e4ToQw/puJctplU9f+2nJ7gPP2Ecn8WHofZTKdFad56H5/dsAi0gCt3 4AGXUd0O1QSl+ZOLuEiwqufy+QDZLtDLKvgRG7YF4Boab/3YGhZkpKlVwzEk8QspIqfUo8qaCGp 9tAQjE2rs7u+Ch2Ma5w6VbopyhIxcCfDkuQ9qOlpE3nDsHA6ONXah63VkW7dVoubL2VizaBn66Z dJ2ZkrYWSL4zIppdvwH/nq X-Received: by 2002:a05:6808:1905:b0:45e:fff5:89b4 with SMTP id 5614622812f47-467430c5741mr4895615b6e.10.1773440358363; Fri, 13 Mar 2026 15:19:18 -0700 (PDT) Received: from [10.10.244.3] ([50.175.226.10]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e2df1ddsm9392199fac.9.2026.03.13.15.19.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2026 15:19:17 -0700 (PDT) Message-ID: <9b7764e7265ce963915864d9b6f1234ed898d28b.camel@j-davis.com> Subject: Re: pgsql: CREATE SUBSCRIPTION ... SERVER. From: Jeff Davis To: Andres Freund Cc: Peter Eisentraut , Jeff Davis , pgsql-committers@lists.postgresql.org Date: Fri, 13 Mar 2026 15:19:16 -0700 In-Reply-To: <7p3wxukzmbgek4hrmottdglzqdz3kdy2u56deleevn5mnr4oxj@2by4knqffewh> References: <1bb21c7d-885f-4f07-a3ed-21b60d7c92c6@eisentraut.org> <03d52b80fd264bb683fb2c46ad7a2934cb656f1a.camel@j-davis.com> <44cbdf50807b0232d0a01f0fababc7cbeeb33eb0.camel@j-davis.com> <7p3wxukzmbgek4hrmottdglzqdz3kdy2u56deleevn5mnr4oxj@2by4knqffewh> Content-Type: multipart/mixed; boundary="=-W5TMUXeenth1accqdvz/" 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 --=-W5TMUXeenth1accqdvz/ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2026-03-13 at 16:48 -0400, Andres Freund wrote: > I suspect the more scalable approach would be to create a dedicated > memory > context for each GetSubscription() call that's then torn down during > invalidation. Attached. This is posted as an alternative to the previous patch. Regards, Jeff Davis --=-W5TMUXeenth1accqdvz/ Content-Disposition: attachment; filename="v22-0001-Temp-context-for-maybe_reread_subscription.patch" Content-Type: text/x-patch; name="v22-0001-Temp-context-for-maybe_reread_subscription.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5ODcwNWYwNmE4ZGZiNzU3YzVkYjY5ZjNiNGY5ZWEyZDczZjIxZGViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDEzIE1hciAyMDI2IDEzOjI0OjE4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MjJdIFRlbXAg Y29udGV4dCBmb3IgbWF5YmVfcmVyZWFkX3N1YnNjcmlwdGlvbigpLgoKTW92ZSB0ZW1wIGNvbnRl eHQgZnJvbSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZygpIHRvCm1heWJlX3JlcmVhZF9z dWJzY3JpcHRpb24oKSwgc28gdGhhdCBpdCBwcmV2ZW50cyBtb3JlCmludmFsaWRhdGlvbi1yZWxh dGVkIGxlYWtzLgoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwu ZGU+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20veHZkanJkcW5wYXAzdXE3b3diYW94 M3I3cDVnZjdzdjYyYWFxZjJqdTN2YjZ5Z2xhdHIlNDBrdnZ3aG91ZHJseHEKLS0tCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgIHwgMTQgLS0tLS0KIHNyYy9iYWNrZW5k L2ZvcmVpZ24vZm9yZWlnbi5jICAgICAgICAgICAgfCA2NyArKysrKysrLS0tLS0tLS0tLS0tLS0t LS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgfCAzMCArKysrKysr KystLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICB8ICAxIC0KIDQg ZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggMzY3M2Q0ZjBiYzEuLmNhMDUzYzE1MmNm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKQEAgLTIxNiwyMCArMjE2LDYg QEAgQ291bnREQlN1YnNjcmlwdGlvbnMoT2lkIGRiaWQpCiAJcmV0dXJuIG5zdWJzOwogfQogCi0v KgotICogRnJlZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHN1YnNjcmlwdGlvbiBzdHJ1Y3QuCi0gKi8K LXZvaWQKLUZyZWVTdWJzY3JpcHRpb24oU3Vic2NyaXB0aW9uICpzdWIpCi17Ci0JcGZyZWUoc3Vi LT5uYW1lKTsKLQlwZnJlZShzdWItPmNvbm5pbmZvKTsKLQlpZiAoc3ViLT5zbG90bmFtZSkKLQkJ cGZyZWUoc3ViLT5zbG90bmFtZSk7Ci0JbGlzdF9mcmVlX2RlZXAoc3ViLT5wdWJsaWNhdGlvbnMp OwotCXBmcmVlKHN1Yik7Ci19Ci0KIC8qCiAgKiBEaXNhYmxlIHRoZSBnaXZlbiBzdWJzY3JpcHRp b24uCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWlnbi5jIGIvc3Jj L2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKaW5kZXggY2YxMGE4YzAwZjkuLmY0MzdiNDQ3Mjgy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYworKysgYi9zcmMvYmFj a2VuZC9mb3JlaWduL2ZvcmVpZ24uYwpAQCAtMjE5LDYzICsyMTksMzIgQEAgR2V0Rm9yZWlnblNl cnZlckJ5TmFtZShjb25zdCBjaGFyICpzcnZuYW1lLCBib29sIG1pc3Npbmdfb2spCiAKIC8qCiAg KiBSZXRyaWV2ZSBjb25uZWN0aW9uIHN0cmluZyBmcm9tIHNlcnZlcidzIEZEVy4KKyAqCisgKiBO QjogbGVha3MgaW50byBDdXJyZW50TWVtb3J5Q29udGV4dC4KICAqLwogY2hhciAqCiBGb3JlaWdu U2VydmVyQ29ubmVjdGlvblN0cmluZyhPaWQgdXNlcmlkLCBPaWQgc2VydmVyaWQpCiB7Ci0JTWVt b3J5Q29udGV4dCB0ZW1wQ29udGV4dDsKLQlNZW1vcnlDb250ZXh0IG9sZGN4dDsKLQljaGFyCSAg ICpyZXN1bHQgPSBOVUxMOwotCi0JLyoKLQkgKiBHZXRGb3JlaWduU2VydmVyLCBHZXRGb3JlaWdu RGF0YVdyYXBwZXIsIGFuZCB0aGUgY29ubmVjdGlvbiBmdW5jdGlvbgotCSAqIGl0c2VsZiBhbGwg bGVhayBtZW1vcnkgaW50byBDdXJyZW50TWVtb3J5Q29udGV4dC4gU3dpdGNoIHRvIGEgdGVtcG9y YXJ5Ci0JICogY29udGV4dCBmb3IgZWFzeSBjbGVhbnVwLgotCSAqLwotCXRlbXBDb250ZXh0ID0g QWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlDb250ZXh0LAotCQkJCQkJCQkJCSJG RFdDb25uZWN0aW9uQ29udGV4dCIsCi0JCQkJCQkJCQkJQUxMT0NTRVRfU01BTExfU0laRVMpOwot Ci0Jb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHRlbXBDb250ZXh0KTsKLQotCVBHX1RS WSgpOwotCXsKLQkJRm9yZWlnblNlcnZlciAqc2VydmVyOwotCQlGb3JlaWduRGF0YVdyYXBwZXIg KmZkdzsKLQkJdGV4dAkgICAqY29ubmVjdGlvbl90ZXh0ID0gTlVMTDsKLQkJRGF0dW0JCWNvbm5l Y3Rpb25fZGF0dW07Ci0KLQkJc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlcihzZXJ2ZXJpZCk7Ci0J CWZkdyA9IEdldEZvcmVpZ25EYXRhV3JhcHBlcihzZXJ2ZXItPmZkd2lkKTsKLQotCQlpZiAoIU9p ZElzVmFsaWQoZmR3LT5mZHdjb25uZWN0aW9uKSkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygiZm9y ZWlnbiBkYXRhIHdyYXBwZXIgXCIlc1wiIGRvZXMgbm90IHN1cHBvcnQgc3Vic2NyaXB0aW9uIGNv bm5lY3Rpb25zIiwKLQkJCQkJCQlmZHctPmZkd25hbWUpLAotCQkJCQkgZXJyZGV0YWlsKCJGb3Jl aWduIGRhdGEgd3JhcHBlciBtdXN0IGJlIGRlZmluZWQgd2l0aCBDT05ORUNUSU9OIHNwZWNpZmll ZC4iKSkpOwotCi0KLQkJY29ubmVjdGlvbl9kYXR1bSA9IE9pZEZ1bmN0aW9uQ2FsbDMoZmR3LT5m ZHdjb25uZWN0aW9uLAotCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHVzZXJpZCksCi0JCQkJ CQkJCQkJCU9iamVjdElkR2V0RGF0dW0oc2VydmVyaWQpLAotCQkJCQkJCQkJCQlQb2ludGVyR2V0 RGF0dW0oTlVMTCkpOworCUZvcmVpZ25TZXJ2ZXIgKnNlcnZlcjsKKwlGb3JlaWduRGF0YVdyYXBw ZXIgKmZkdzsKKwlEYXR1bQkJY29ubmVjdGlvbl9kYXR1bTsKIAotCQljb25uZWN0aW9uX3RleHQg PSBEYXR1bUdldFRleHRQUChjb25uZWN0aW9uX2RhdHVtKTsKKwlzZXJ2ZXIgPSBHZXRGb3JlaWdu U2VydmVyKHNlcnZlcmlkKTsKKwlmZHcgPSBHZXRGb3JlaWduRGF0YVdyYXBwZXIoc2VydmVyLT5m ZHdpZCk7CiAKLQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7Ci0JCXJlc3VsdCA9IHRl eHRfdG9fY3N0cmluZygodGV4dCAqKSBjb25uZWN0aW9uX3RleHQpOwotCX0KLQlQR19GSU5BTExZ KCk7Ci0JewotCQkvKiBuby1vcCBvbiBzdWNjZXNzIHBhdGggKi8KLQkJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGN4dCk7CisJaWYgKCFPaWRJc1ZhbGlkKGZkdy0+ZmR3Y29ubmVjdGlvbikpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJCSBlcnJtc2coImZvcmVpZ24gZGF0YSB3cmFwcGVyIFwiJXNcIiBkb2VzIG5vdCBz dXBwb3J0IHN1YnNjcmlwdGlvbiBjb25uZWN0aW9ucyIsCisJCQkJCQlmZHctPmZkd25hbWUpLAor CQkJCSBlcnJkZXRhaWwoIkZvcmVpZ24gZGF0YSB3cmFwcGVyIG11c3QgYmUgZGVmaW5lZCB3aXRo IENPTk5FQ1RJT04gc3BlY2lmaWVkLiIpKSk7CiAKLQkJTWVtb3J5Q29udGV4dERlbGV0ZSh0ZW1w Q29udGV4dCk7Ci0JfQotCVBHX0VORF9UUlkoKTsKKwljb25uZWN0aW9uX2RhdHVtID0gT2lkRnVu Y3Rpb25DYWxsMyhmZHctPmZkd2Nvbm5lY3Rpb24sCisJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1 bSh1c2VyaWQpLAorCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oc2VydmVyaWQpLAorCQkJCQkJ CQkJCVBvaW50ZXJHZXREYXR1bShOVUxMKSk7CiAKLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiB0 ZXh0X3RvX2NzdHJpbmcoRGF0dW1HZXRUZXh0UFAoY29ubmVjdGlvbl9kYXR1bSkpOwogfQogCiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDAzMzg1ODc1MmQ5 Li5lMDBkYTQ4YWUzOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC93b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5j CkBAIC00NzksNiArNDc5LDcgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgTG9naWNhbFN0cmVhbWlu Z0NvbnRleHQgPSBOVUxMOwogV2FsUmVjZWl2ZXJDb25uICpMb2dSZXBXb3JrZXJXYWxSY3ZDb25u ID0gTlVMTDsKIAogU3Vic2NyaXB0aW9uICpNeVN1YnNjcmlwdGlvbiA9IE5VTEw7CitNZW1vcnlD b250ZXh0IE15U3Vic2NyaXB0aW9uQ3R4ID0gTlVMTDsKIHN0YXRpYyBib29sIE15U3Vic2NyaXB0 aW9uVmFsaWQgPSBmYWxzZTsKIAogc3RhdGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29ya2Vy c19zdWJpZHMgPSBOSUw7CkBAIC01MDQyLDYgKzUwNDMsNyBAQCB2b2lkCiBtYXliZV9yZXJlYWRf c3Vic2NyaXB0aW9uKHZvaWQpCiB7CiAJTWVtb3J5Q29udGV4dCBvbGRjdHg7CisJTWVtb3J5Q29u dGV4dCBuZXdjdHg7CiAJU3Vic2NyaXB0aW9uICpuZXdzdWI7CiAJYm9vbAkJc3RhcnRlZF90eCA9 IGZhbHNlOwogCkBAIC01MDU2LDggKzUwNTgsMTUgQEAgbWF5YmVfcmVyZWFkX3N1YnNjcmlwdGlv bih2b2lkKQogCQlzdGFydGVkX3R4ID0gdHJ1ZTsKIAl9CiAKLQkvKiBFbnN1cmUgYWxsb2NhdGlv bnMgaW4gcGVybWFuZW50IGNvbnRleHQuICovCi0Jb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKEFwcGx5Q29udGV4dCk7CisJbmV3Y3R4ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEFwcGx5 Q29udGV4dCwKKwkJCQkJCQkJICAgIlN1YnNjcmlwdGlvbiBDb250ZXh0IiwKKwkJCQkJCQkJICAg QUxMT0NTRVRfU01BTExfU0laRVMpOworCisJLyoKKwkgKiBHZXRTdWJzY3JpcHRpb24oKSBsZWFr cyBhIG51bWJlciBvZiBzbWFsbCBhbGxvY2F0aW9ucywgc28gdXNlIGEKKwkgKiBzdWJjb250ZXh0 IGZvciBlYWNoIGNhbGwuCisJICovCisJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKG5l d2N0eCk7CiAKIAluZXdzdWIgPSBHZXRTdWJzY3JpcHRpb24oTXlMb2dpY2FsUmVwV29ya2VyLT5z dWJpZCwgdHJ1ZSwgdHJ1ZSk7CiAKQEAgLTUxNDksNyArNTE1OCw4IEBAIG1heWJlX3JlcmVhZF9z dWJzY3JpcHRpb24odm9pZCkKIAl9CiAKIAkvKiBDbGVhbiBvbGQgc3Vic2NyaXB0aW9uIGluZm8g YW5kIHN3aXRjaCB0byBuZXcgb25lLiAqLwotCUZyZWVTdWJzY3JpcHRpb24oTXlTdWJzY3JpcHRp b24pOworCU1lbW9yeUNvbnRleHREZWxldGUoTXlTdWJzY3JpcHRpb25DdHgpOworCU15U3Vic2Ny aXB0aW9uQ3R4ID0gbmV3Y3R4OwogCU15U3Vic2NyaXB0aW9uID0gbmV3c3ViOwogCiAJTWVtb3J5 Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CkBAIC01Nzk0LDEyICs1ODA0LDE5IEBAIEluaXRpYWxp emVMb2dSZXBXb3JrZXIodm9pZCkKIAkgKi8KIAlTZXRDb25maWdPcHRpb24oInNlYXJjaF9wYXRo IiwgIiIsIFBHQ19TVVNFVCwgUEdDX1NfT1ZFUlJJREUpOwogCi0JLyogTG9hZCB0aGUgc3Vic2Ny aXB0aW9uIGludG8gcGVyc2lzdGVudCBtZW1vcnkgY29udGV4dC4gKi8KIAlBcHBseUNvbnRleHQg PSBBbGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKIAkJCQkJCQkJCQkgIkFw cGx5Q29udGV4dCIsCiAJCQkJCQkJCQkJIEFMTE9DU0VUX0RFRkFVTFRfU0laRVMpOworCisJLyoK KwkgKiBHZXRTdWJzY3JpcHRpb24oKSBsZWFrcyBhIG51bWJlciBvZiBzbWFsbCBhbGxvY2F0aW9u cywgc28gdXNlIGEKKwkgKiBzdWJjb250ZXh0IGZvciBlYWNoIGNhbGwuCisJICovCisJTXlTdWJz Y3JpcHRpb25DdHggPSBBbGxvY1NldENvbnRleHRDcmVhdGUoQXBwbHlDb250ZXh0LAorCQkJCQkJ CQkJCQkgICJTdWJzY3JpcHRpb24gQ29udGV4dCIsCisJCQkJCQkJCQkJCSAgQUxMT0NTRVRfU01B TExfU0laRVMpOworCiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKLQlvbGRjdHggPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250ZXh0KTsKIAogCS8qCiAJICogTG9jayB0aGUgc3Vi c2NyaXB0aW9uIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjb25jdXJyZW50bHkgZHJvcHBlZCwK QEAgLTU4MDgsNyArNTgyNSwxMCBAQCBJbml0aWFsaXplTG9nUmVwV29ya2VyKHZvaWQpCiAJICov CiAJTG9ja1NoYXJlZE9iamVjdChTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBNeUxvZ2ljYWxSZXBX b3JrZXItPnN1YmlkLCAwLAogCQkJCQkgQWNjZXNzU2hhcmVMb2NrKTsKKworCW9sZGN0eCA9IE1l bW9yeUNvbnRleHRTd2l0Y2hUbyhNeVN1YnNjcmlwdGlvbkN0eCk7CiAJTXlTdWJzY3JpcHRpb24g PSBHZXRTdWJzY3JpcHRpb24oTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwgdHJ1ZSwgdHJ1ZSk7 CisKIAlpZiAoIU15U3Vic2NyaXB0aW9uKQogCXsKIAkJZXJlcG9ydChMT0csCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uaAppbmRleCAwMDU4ZDkzODdkNy4uMmY2ZjdiNTc2OTggMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtMjEyLDcgKzIxMiw2IEBAIHR5 cGVkZWYgc3RydWN0IFN1YnNjcmlwdGlvbgogCiBleHRlcm4gU3Vic2NyaXB0aW9uICpHZXRTdWJz Y3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2ssCiAJCQkJCQkJCQkgYm9vbCBhY2xj aGVjayk7Ci1leHRlcm4gdm9pZCBGcmVlU3Vic2NyaXB0aW9uKFN1YnNjcmlwdGlvbiAqc3ViKTsK IGV4dGVybiB2b2lkIERpc2FibGVTdWJzY3JpcHRpb24oT2lkIHN1YmlkKTsKIAogZXh0ZXJuIGlu dAlDb3VudERCU3Vic2NyaXB0aW9ucyhPaWQgZGJpZCk7Ci0tIAoyLjQzLjAKCg== --=-W5TMUXeenth1accqdvz/--