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 1wCnVW-002Jpm-1Z for pgsql-bugs@arkaria.postgresql.org; Tue, 14 Apr 2026 23:49:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wCnVT-00DYK4-2l for pgsql-bugs@arkaria.postgresql.org; Tue, 14 Apr 2026 23:49:24 +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 1wCnVT-00DYJq-16 for pgsql-bugs@lists.postgresql.org; Tue, 14 Apr 2026 23:49:24 +0000 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wCnVS-000000013Cb-0qJP for pgsql-bugs@lists.postgresql.org; Tue, 14 Apr 2026 23:49:23 +0000 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-41c0aae84e5so2895782fac.3 for ; Tue, 14 Apr 2026 16:49:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776210562; cv=none; d=google.com; s=arc-20240605; b=QYXYOqqkXswhX/84n1XtjQzCQN50YNbrpSsIhHj4WvpfG2sUV9ao9CLTzJl/OMmLu+ rDYte6UXRZFJ8QXbcKCmr8AoPlsPak7WRIkS09VlOVDfgaAE8eKBLy9m7mhvIdYmogc8 w+edf9eKzrDgU59I79rThiqQZXlGGky8hq9CVDu9gXbVIB2Zn13sof0OGEAiyk6nb7Zo 62DTjlo2jdO49QpTrwL+4awSxM+pGoAHZg3VkVCvsn+VvpyYXHRVWyKTP01uVv0ZzYcn 5f9tjoVD0e4C3AN+nA1IaiafHZtQ2Qg89y9BuhmfhOSMOmg4jcOVcYOVh8p0XDD5j4yh GU7g== 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=0tc7rgHcnEQLptOw4RbaysPqz2OLyZ/sqokSTHN2rGE=; fh=eBcw8hVHNOVrlaiY6dHPcJvBlw3mpTLhGhTvyY45+jM=; b=YOtxNKf0+mocuvQnP0PEuGz+TieWrdkhVMDmZ49V7ty5xrneW0s1WwzKO6+aqB72Aw M2J9O81j2D4DEEwECMrn9RT+/5YBroIu6M9+VA5mOtDfh2ehd53S5qfOjAzGTmo2Ungf 2/Zi7r/s1sDlrsHM0SMrIu9pXVvq0rY7+ulxmfmaiLN7pLBg6BcLkZsm4A30xLwoy9kS n2nnnB7rXKZC0hOX585F63L5TEeR9QtqifiI/+DQuAoI71SkjUaEF+Tn1/YE7L5hIOMf /IySHDP8ab/G7Z/so5bcgFOTpptSvmqUfpODokDOqh7qkqPN0TcfLpFuW87ZyCC5vJ7e sGLw==; 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=1776210562; x=1776815362; 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=0tc7rgHcnEQLptOw4RbaysPqz2OLyZ/sqokSTHN2rGE=; b=i8zqKaVcAvQfzJuV8sZbS48bYHw66xy+SjDNYC0txeVFdqwDRXsFhH7Ojp9/OHhNh4 lPtMahqsrGT9V7C7CHmvi9FCpFNLC7wEAMig6am/MvR8Mpo3AcfHzHuPKrovV/TcOV69 RrXDx88v9Ta3I21a1ZwA8tUDWbr2i28wjkoTE2TMKc+9FGMMG34jgqs28rqhep3Zc9Di A1Rm03L932d6GiWlP4h8gKhCuzMCVyAB0C2if+YywbJhkOj8+rNVE9u8xp9EedbV0u2H 39r+qsAwuFeNm7EYDt4aaYPCU22FQ2Mef8kdew849FqcuB4gcjpDskQZOELtDlqYi8sr DItw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776210562; x=1776815362; 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=0tc7rgHcnEQLptOw4RbaysPqz2OLyZ/sqokSTHN2rGE=; b=PJTpC02UKfjLaEDkfW+A+EGx0sQeqvVY6er/hf2znmYgtyqQWZe+UdqYe4/LdVfxZF ed5VEKIdZTOQVIYhQ4Xr0FE0TRrhGYic/Ddjm8CJPIame2gyd+1mNSOEbhBiqWPH9wHv +VgMCnb6pnrpOfLpa0sepi1BHkbLkd9JD1cRLy5K2Hp93hu0qJu/Dc9Xdzj5E+dsFA70 sKLo7JF9hNzBvOOGtLHLtpj+WV2go8J34DQ3IpjGQ/HldF5YBQKsXnnc+qy85c9zYJDv 1gq/NAzbPgmZmqtfIOHFhMzEo+nh3NHjUDSOUV49hcYXcucmq/aM3FBUeqNYsoE3IC2o OA/w== X-Forwarded-Encrypted: i=1; AFNElJ/joayv2KE5kSynBOAj0qfvRZ2WOHL7SDO9afCyI2qBItQ7cQamXpUcD/3f6XII03x0OVaJrEacvUh2@lists.postgresql.org X-Gm-Message-State: AOJu0YxH1+dnjPBxI6JunjC4qTvWI1t/tmMzHPEXa2MxF4/uAPU6tOzD OemNoFaMMLscTQwGG5hx83NKKGWrRTthdlEC8f86KfR8v4ukx3VSIbt7qQeAk3HjYW6ka0D5tJp pqFRL1/gUA9znynjV1TbWEe+JpCQAfFI= X-Gm-Gg: AeBDiesSVm9S0Kl+4u0inDj4X+fOXAHYa66XHpBbayxq6D+NTUakXWw/9mVsRc2Hhtl M29J3L/LMLmKgphze08hEKz/gt0kbaLGqwayo+WVTFWZDEfyqbrz0UnmFMlQO32EFGHVPOHXjgt QdGJYbuU8zxEoGmOssn7aIlTKwC4IGaHqrFw/xvEtrkePULwf+5/1R8Kh2eLMIa2yKTwOmVTtEE p5HB1nK+GHzFc1uxE9ZATxI5DCYcylYNwmt+8wu++ekSiUiiGb/Fx/CmbqM9AsYmYpwizgB+MRC 6efzHsFygU6/9j58z1bspn1M9gJ3GA== X-Received: by 2002:a05:6870:1654:b0:41b:e8e2:5ccd with SMTP id 586e51a60fabf-423e116a734mr10598660fac.42.1776210562002; Tue, 14 Apr 2026 16:49:22 -0700 (PDT) MIME-Version: 1.0 References: <19382-4c2060ffee72759b@postgresql.org> In-Reply-To: From: surya poondla Date: Tue, 14 Apr 2026 16:49:09 -0700 X-Gm-Features: AQROBzA9WT14lSO4K_mfRU2ItCQY5HmTW20XjVVmdDBQzBrairBGFMBsLMZXb40 Message-ID: Subject: Re: BUG #19382: Server crash at __nss_database_lookup To: Andrey Borodin Cc: songjinzhou , dllggyx , pgsql-bugs Content-Type: multipart/mixed; boundary="000000000000984974064f743fff" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000984974064f743fff Content-Type: multipart/alternative; boundary="000000000000984971064f743ffd" --000000000000984971064f743ffd Content-Type: text/plain; charset="UTF-8" Hi All, The latest CFBot run (v5 patch) shows one CI failure: FreeBSD - Meson: test_misc/007_catcache_inval exits with status 29. This failure is unrelated to the patch. The failing test exercises catalog cache invalidation using injection points on SQL function lookups, no PL/pgSQL, no record variables, no composite type handling. The patch only touches assign_record_var() in pl_exec.c and PLpgSQL_rec in plpgsql.h, neither of which are executed by this test. All PL/pgSQL regression tests pass on all platforms. Re-attaching the patch to kick in the CFBot again. Regards, Surya Poondla --000000000000984971064f743ffd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi All,

The latest CFBot run (v5 patch) shows one C= I failure: FreeBSD - Meson: test_misc/007_catcache_inval exits with status = 29.
This failure is unrelated to the patch.
The failing test exerci= ses catalog cache invalidation using injection points on SQL function looku= ps, no PL/pgSQL, no record variables, no composite type handling.

T= he patch only touches assign_record_var() in pl_exec.c and PLpgSQL_rec in p= lpgsql.h, neither of which are executed by this test. All PL/pgSQL regressi= on tests pass on all platforms.

Re-attaching the=C2=A0patch to kick= in the CFBot again.

Regards,
Surya Poondla
--000000000000984971064f743ffd-- --000000000000984974064f743fff Content-Type: application/octet-stream; name="0005-Fix-bug-19382-server-crash-when-ALTER-TYPE-is-used-m.patch" Content-Disposition: attachment; filename="0005-Fix-bug-19382-server-crash-when-ALTER-TYPE-is-used-m.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnz9wa8r0 RnJvbSAyZDgzZGRlMzJhM2E5NGI3Mjk4Mzk5YzNmNDdjMzhmNzAyY2M5NmU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzcG9vbmRsYSA8c19wb29uZGxhQGFwcGxlLmNvbT4KRGF0ZTog RnJpLCAyMyBKYW4gMjAyNiAxNzoyODo1NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjVdIEZpeCAo YnVnICMxOTM4Mikgc2VydmVyIGNyYXNoIHdoZW4gQUxURVIgVFlQRSBpcyB1c2VkCiBtaWQtdHJh bnNhY3Rpb24gaW4gUEwvcGdTUUwKCldoZW4gQUxURVIgVFlQRSBjaGFuZ2VzIGEgY29tcG9zaXRl IHR5cGUncyBjb2x1bW4gdHlwZXMgd2l0aGluIGEKdHJhbnNhY3Rpb24sIFBML3BnU1FMIHJlY29y ZCB2YXJpYWJsZXMgdGhhdCB3ZXJlIHBvcHVsYXRlZCBiZWZvcmUKdGhlIEFMVEVSIHN0aWxsIGhv bGQgZGF0YSBpbiB0aGUgb2xkIGZvcm1hdC4gUmV0dXJuaW5nIHN1Y2ggcmVjb3JkcwpjYXVzZXMg YSBjcmFzaCBiZWNhdXNlIHRoZSBvdXRwdXQgZnVuY3Rpb25zIGV4cGVjdCBkYXRhIG1hdGNoaW5n IHRoZQpuZXcgdHlwZSBkZWZpbml0aW9uLCBub3QgdGhlIG9sZCBvbmUuCgpUaGUgY3Jhc2ggbWFu aWZlc3RlZCBhcyBhIHNlZ21lbnRhdGlvbiBmYXVsdCBpbiByZWNvcmRfb3V0KCkgd2hlbiBpdAph dHRlbXB0ZWQgdG8gaW50ZXJwcmV0IGludGVnZXIgZGF0YSBhcyBhIHRleHQgcG9pbnRlciwgZHVl IHRvIHRoZQptaXNtYXRjaCBiZXR3ZWVuIHRoZSBzdG9yZWQgZGF0YSBhbmQgdGhlIGN1cnJlbnQg dHlwZSBkZWZpbml0aW9uLgoKVGhlIGZpeCBzbmFwc2hvdHMgdHVwRGVzY19pZGVudGlmaWVyIHZh bHVlcyBmb3IgYWxsIGNvbXBvc2l0ZSB0eXBlcwpyZWFjaGFibGUgZnJvbSBhIHJlY29yZCB2YXJp YWJsZSdzIHR5cGUgKGluY2x1ZGluZyBuZXN0ZWQgY29tcG9zaXRlCnR5cGVzKSBhdCBhc3NpZ25t ZW50IHRpbWUuIEF0IFJFVFVSTi9SRVRVUk4gTkVYVCB0aW1lLCB0aGVzZQppZGVudGlmaWVycyBh cmUgY29tcGFyZWQgYWdhaW5zdCBjdXJyZW50IHZhbHVlcyBmcm9tIHRoZSB0eXBlIGNhY2hlLgpJ ZiBhbnkgaGF2ZSBjaGFuZ2VkLCBhbiBlcnJvciBpcyByYWlzZWQgaW5zdGVhZCBvZiByaXNraW5n IGEgY3Jhc2guCi0tLQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91 dCAgIHwgIDY3ICsrKysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyAgICAgICAgICAg ICAgICAgIHwgMjA5ICsrKysrKysrKysrKysrKysrLQogc3JjL3BsL3BscGdzcWwvc3JjL3BscGdz cWwuaCAgICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxw Z3NxbF9yZWNvcmQuc3FsICAgICB8ICA1OCArKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAzNDIgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0 ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CmluZGV4IDUxMWY5ZTAzYzg1Li5hZDIxZjhiYmYzZiAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dAor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CkBAIC04 ODUsMyArODg1LDcwIEBAIHRhYmxlIHR3b19pbnQ4c190YWI7CiAgKDQyLDQyKQogKDEgcm93KQog CistLSBUZXN0cyBmb3IgYnVnICMxOTM4Mjogc2VydmVyIGNyYXNoIHdoZW4gQUxURVIgVFlQRSBp cyB1c2VkIG1pZC10cmFuc2FjdGlvbgorLS0gaW4gUEwvcGdTUUwuIFJlY29yZCB2YXJpYWJsZXMg cG9wdWxhdGVkIGJlZm9yZSBBTFRFUiBUWVBFIG11c3Qgbm90IGJlCistLSByZXR1cm5lZCwgYXMg dGhlIHN0b3JlZCBkYXRhIG5vIGxvbmdlciBtYXRjaGVzIHRoZSBjdXJyZW50IHR5cGUgZGVmaW5p dGlvbi4KKy0tIENhc2UgMTogRGlyZWN0IGNvbXBvc2l0ZSB0eXBlIGNoYW5nZSAoSU5UIC0+IFRF WFQpCitjcmVhdGUgdHlwZSBidWcxOTM4Ml9mb28gYXMgKGEgaW50LCBiIGludCk7CitjcmVhdGUg ZnVuY3Rpb24gYnVnMTkzODJfdGVzdF9kaXJlY3QoKSByZXR1cm5zIHJlY29yZCBhcyAkJAorZGVj bGFyZSByIGJ1ZzE5MzgyX2ZvbyA6PSByb3coMTIzLCBwb3dlcigyLCAzMCkpOworYmVnaW4KKyAg ICBhbHRlciB0eXBlIGJ1ZzE5MzgyX2ZvbyBhbHRlciBhdHRyaWJ1dGUgYiB0eXBlIHRleHQ7Cisg ICAgcmV0dXJuIHI7CitlbmQ7CiskJCBsYW5ndWFnZSBwbHBnc3FsOworc2VsZWN0IGJ1ZzE5Mzgy X3Rlc3RfZGlyZWN0KCk7CitFUlJPUjogIGNhbm5vdCByZXR1cm4gcmVjb3JkIHZhcmlhYmxlICJy IiBhZnRlciBjb21wb3NpdGUgdHlwZSAiYnVnMTkzODJfZm9vIiB3YXMgYWx0ZXJlZAorSElOVDog IFJlYXNzaWduIHRoZSByZWNvcmQgdmFyaWFibGUgYWZ0ZXIgQUxURVIgVFlQRS4KK0NPTlRFWFQ6 ICBQTC9wZ1NRTCBmdW5jdGlvbiBidWcxOTM4Ml90ZXN0X2RpcmVjdCgpIGxpbmUgNSBhdCBSRVRV Uk4KK2Ryb3AgZnVuY3Rpb24gYnVnMTkzODJfdGVzdF9kaXJlY3QoKTsKK2Ryb3AgdHlwZSBidWcx OTM4Ml9mb28gY2FzY2FkZTsKKy0tIENhc2UgMjogTmVzdGVkIGNvbXBvc2l0ZSB0eXBlIGNoYW5n ZQorY3JlYXRlIHR5cGUgYnVnMTkzODJfaW5uZXIgYXMgKHggaW50LCB5IGludCk7CitjcmVhdGUg dHlwZSBidWcxOTM4Ml9vdXRlciBhcyAoYSBpbnQsIGIgYnVnMTkzODJfaW5uZXIpOworY3JlYXRl IGZ1bmN0aW9uIGJ1ZzE5MzgyX3Rlc3RfbmVzdGVkKCkgcmV0dXJucyByZWNvcmQgYXMgJCQKK2Rl Y2xhcmUgciBidWcxOTM4Ml9vdXRlcjsKK2JlZ2luCisgICAgciA6PSByb3coMSwgcm93KDEwLCBw b3dlcigyLCAzMCk6OmludDQpOjpidWcxOTM4Ml9pbm5lcik6OmJ1ZzE5MzgyX291dGVyOworICAg IGFsdGVyIHR5cGUgYnVnMTkzODJfaW5uZXIgYWx0ZXIgYXR0cmlidXRlIHkgdHlwZSB0ZXh0Owor ICAgIHJldHVybiByOworZW5kOworJCQgbGFuZ3VhZ2UgcGxwZ3NxbDsKK3NlbGVjdCBidWcxOTM4 Ml90ZXN0X25lc3RlZCgpOworRVJST1I6ICBjYW5ub3QgcmV0dXJuIHJlY29yZCB2YXJpYWJsZSAi ciIgYWZ0ZXIgY29tcG9zaXRlIHR5cGUgImJ1ZzE5MzgyX2lubmVyIiB3YXMgYWx0ZXJlZAorSElO VDogIFJlYXNzaWduIHRoZSByZWNvcmQgdmFyaWFibGUgYWZ0ZXIgQUxURVIgVFlQRS4KK0NPTlRF WFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBidWcxOTM4Ml90ZXN0X25lc3RlZCgpIGxpbmUgNiBhdCBS RVRVUk4KK2Ryb3AgZnVuY3Rpb24gYnVnMTkzODJfdGVzdF9uZXN0ZWQoKTsKK2Ryb3AgdHlwZSBi dWcxOTM4Ml9vdXRlciBjYXNjYWRlOworZHJvcCB0eXBlIGJ1ZzE5MzgyX2lubmVyIGNhc2NhZGU7 CistLSBDYXNlIDM6IE9VVCBwYXJhbWV0ZXIKK2NyZWF0ZSB0eXBlIGJ1ZzE5MzgyX2ZvbzEgYXMg KGEgaW50LCBiIGludCk7CitjcmVhdGUgZnVuY3Rpb24gYnVnMTkzODJfdGVzdF9vdXQob3V0IHIx IGJ1ZzE5MzgyX2ZvbzEpIGFzICQkCitiZWdpbgorICAgIHIxIDo9IHJvdygxLCAyKTsKKyAgICBh bHRlciB0eXBlIGJ1ZzE5MzgyX2ZvbzEgYWx0ZXIgYXR0cmlidXRlIGIgdHlwZSB0ZXh0OworICAg IHJldHVybjsKK2VuZDsKKyQkIGxhbmd1YWdlIHBscGdzcWw7CitzZWxlY3QgYnVnMTkzODJfdGVz dF9vdXQoKTsKK0VSUk9SOiAgY2Fubm90IHJldHVybiByZWNvcmQgdmFyaWFibGUgInIxIiBhZnRl ciBjb21wb3NpdGUgdHlwZSAiYnVnMTkzODJfZm9vMSIgd2FzIGFsdGVyZWQKK0hJTlQ6ICBSZWFz c2lnbiB0aGUgcmVjb3JkIHZhcmlhYmxlIGFmdGVyIEFMVEVSIFRZUEUuCitDT05URVhUOiAgUEwv cGdTUUwgZnVuY3Rpb24gYnVnMTkzODJfdGVzdF9vdXQoKSBsaW5lIDUgYXQgUkVUVVJOCitkcm9w IGZ1bmN0aW9uIGJ1ZzE5MzgyX3Rlc3Rfb3V0KCk7Citkcm9wIHR5cGUgYnVnMTkzODJfZm9vMSBj YXNjYWRlOworLS0gQ2FzZSA0OiBObyBBTFRFUiBUWVBFIChiYXNlbGluZSDigJQgbXVzdCBub3Qg ZXJyb3IpCitjcmVhdGUgdHlwZSBidWcxOTM4Ml9mb28yIGFzIChhIGludCwgYiBpbnQpOworY3Jl YXRlIGZ1bmN0aW9uIGJ1ZzE5MzgyX3Rlc3RfYmFzZWxpbmUoKSByZXR1cm5zIGJ1ZzE5MzgyX2Zv bzIgYXMgJCQKK2RlY2xhcmUgciBidWcxOTM4Ml9mb28yIDo9IHJvdygxLCAyKTsKK2JlZ2luCisg ICAgcmV0dXJuIHI7CitlbmQ7CiskJCBsYW5ndWFnZSBwbHBnc3FsOworc2VsZWN0IGJ1ZzE5Mzgy X3Rlc3RfYmFzZWxpbmUoKTsKKyBidWcxOTM4Ml90ZXN0X2Jhc2VsaW5lIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKDEsMikKKygxIHJvdykKKworZHJvcCBmdW5jdGlvbiBidWcxOTM4Ml90 ZXN0X2Jhc2VsaW5lKCk7Citkcm9wIHR5cGUgYnVnMTkzODJfZm9vMjsKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5j CmluZGV4IDY1YjBmZDA3OTBmLi5iZTM1Mjk0NDVmOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC00 NzAsNiArNDcwLDEyIEBAIHN0YXRpYyBjaGFyICpmb3JtYXRfcHJlcGFyZWRwYXJhbXNkYXRhKFBM cGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiBzdGF0aWMgUExwZ1NRTF92YXJpYWJsZSAqbWFrZV9j YWxsc3RtdF90YXJnZXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCQkJICBQ THBnU1FMX2V4cHIgKmV4cHIpOwogCitzdGF0aWMgdm9pZCBjaGVja19yZWNvcmRfdHlwZV9ub3Rf YWx0ZXJlZChQTHBnU1FMX3JlYyAqcmVjKTsKK3N0YXRpYyB2b2lkIGNvbGxlY3RfY29tcG9zaXRl X3R5cGVfdmVyc2lvbnMoT2lkIHR5cGlkLAorCQkJCQkJCQkJCQlPaWQgKipvaWRzLCB1aW50NjQg Kip2ZXJzaW9ucywKKwkJCQkJCQkJCQkJaW50ICpuLCBpbnQgKmFsbG9jKTsKK3N0YXRpYyB2b2lk IHNuYXBzaG90X3JlY29yZF9jb21wb3NpdGVfdHlwZXMoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0 ZSwKKwkJCQkJCQkJCQkJUExwZ1NRTF9yZWMgKnJlYyk7CiAKIC8qIC0tLS0tLS0tLS0KICAqIHBs cGdzcWxfZXhlY19mdW5jdGlvbglDYWxsZWQgYnkgdGhlIGNhbGwgaGFuZGxlciBmb3IKQEAgLTMy ODcsOCArMzI5MywzMCBAQCBleGVjX3N0bXRfcmV0dXJuKFBMcGdTUUxfZXhlY3N0YXRlICplc3Rh dGUsIFBMcGdTUUxfc3RtdF9yZXR1cm4gKnN0bXQpCiAJCQkJfQogCQkJCWJyZWFrOwogCi0JCQlj YXNlIFBMUEdTUUxfRFRZUEVfUk9XOgogCQkJY2FzZSBQTFBHU1FMX0RUWVBFX1JFQzoKKwkJCQl7 CisJCQkJCVBMcGdTUUxfcmVjICpyZWMgPSAoUExwZ1NRTF9yZWMgKikgcmV0dmFyOworCQkJCQlp bnQzMgkJcmV0dHlwbW9kOworCisJCQkJCS8qCisJCQkJCSAqIENoZWNrIGlmIHRoZSByZWNvcmQn cyBjb21wb3NpdGUgdHlwZSB3YXMgYWx0ZXJlZCBzaW5jZQorCQkJCQkgKiB0aGUgcmVjb3JkIHdh cyBwb3B1bGF0ZWQuIElmIHNvLCByYWlzZSBhbiBlcnJvciB0bworCQkJCQkgKiBwcmV2ZW50IGNy YXNoZXMgd2hlbiBvdXRwdXR0aW5nIHRoZSByZWNvcmQuCisJCQkJCSAqLworCQkJCQlpZiAocmVj LT5yZWN0eXBlaWQgIT0gUkVDT1JET0lEICYmIHJlYy0+ZXJoICE9IE5VTEwgJiYKKwkJCQkJCSFF eHBhbmRlZFJlY29yZElzRW1wdHkocmVjLT5lcmgpKQorCQkJCQkJY2hlY2tfcmVjb3JkX3R5cGVf bm90X2FsdGVyZWQocmVjKTsKKworCQkJCQlleGVjX2V2YWxfZGF0dW0oZXN0YXRlLAorCQkJCQkJ CQkJcmV0dmFyLAorCQkJCQkJCQkJJmVzdGF0ZS0+cmV0dHlwZSwKKwkJCQkJCQkJCSZyZXR0eXBt b2QsCisJCQkJCQkJCQkmZXN0YXRlLT5yZXR2YWwsCisJCQkJCQkJCQkmZXN0YXRlLT5yZXRpc251 bGwpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSBQTFBHU1FMX0RUWVBFX1JPVzoKIAkJ CQl7CiAJCQkJCS8qIGV4ZWNfZXZhbF9kYXR1bSBjYW4gaGFuZGxlIHRoZXNlIGNhc2VzICovCiAJ CQkJCWludDMyCQlyZXR0eXBtb2Q7CkBAIC0zNDM0LDYgKzM0NjIsMTQgQEAgZXhlY19zdG10X3Jl dHVybl9uZXh0KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQkJCVR1cGxlRGVzYwlyZWNf dHVwZGVzYzsKIAkJCQkJVHVwbGVDb252ZXJzaW9uTWFwICp0dXBtYXA7CiAKKwkJCQkJLyoKKwkJ CQkJICogQ2hlY2sgaWYgdGhlIHJlY29yZCdzIGNvbXBvc2l0ZSB0eXBlIHdhcyBhbHRlcmVkIHNp bmNlCisJCQkJCSAqIHRoZSByZWNvcmQgd2FzIHBvcHVsYXRlZC4gSWYgc28sIHJhaXNlIGFuIGVy cm9yIHRvCisJCQkJCSAqIHByZXZlbnQgY3Jhc2hlcyB3aGVuIHN0b3JpbmcgdG8gdGhlIHR1cGxl c3RvcmUuCisJCQkJCSAqLworCQkJCQlpZiAocmVjLT5yZWN0eXBlaWQgIT0gUkVDT1JET0lEICYm IHJlYy0+ZXJoICE9IE5VTEwpCisJCQkJCQljaGVja19yZWNvcmRfdHlwZV9ub3RfYWx0ZXJlZChy ZWMpOworCiAJCQkJCS8qIElmIHJlYyBpcyBudWxsLCB0cnkgdG8gY29udmVydCBpdCB0byBhIHJv dyBvZiBudWxscyAqLwogCQkJCQlpZiAocmVjLT5lcmggPT0gTlVMTCkKIAkJCQkJCWluc3RhbnRp YXRlX2VtcHR5X3JlY29yZF92YXJpYWJsZShlc3RhdGUsIHJlYyk7CkBAIC03MDQyLDYgKzcwNzgs MTAgQEAgZXhlY19tb3ZlX3JvdyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCWlmIChy ZWMtPmVyaCkKIAkJCQkJRGVsZXRlRXhwYW5kZWRPYmplY3QoRXhwYW5kZWRSZWNvcmRHZXREYXR1 bShyZWMtPmVyaCkpOwogCQkJCXJlYy0+ZXJoID0gTlVMTDsKKwkJCQkvKiBDbGVhciBjb21wb3Np dGUgdHlwZSBzbmFwc2hvdCAqLworCQkJCXJlYy0+bkNvbXBUeXBlcyA9IDA7CisJCQkJcmVjLT5j b21wVHlwZU9pZHMgPSBOVUxMOworCQkJCXJlYy0+Y29tcFR5cGVWZXJzaW9ucyA9IE5VTEw7CiAJ CQl9CiAJCQlyZXR1cm47CiAJCX0KQEAgLTg5NjcsNiArOTAwNyw5IEBAIGFzc2lnbl9yZWNvcmRf dmFyKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIFBMcGdTUUxfcmVjICpyZWMsCiAKIAkvKiAu Li4gYW5kIGluc3RhbGwgdGhlIG5ldyAqLwogCXJlYy0+ZXJoID0gZXJoOworCisJLyogU25hcHNo b3QgY29tcG9zaXRlIHR5cGUgdmVyc2lvbnMgZm9yIEFMVEVSIFRZUEUgZGV0ZWN0aW9uICovCisJ c25hcHNob3RfcmVjb3JkX2NvbXBvc2l0ZV90eXBlcyhlc3RhdGUsIHJlYyk7CiB9CiAKIC8qCkBA IC05MjE2LDMgKzkyNTksMTY3IEBAIGZvcm1hdF9wcmVwYXJlZHBhcmFtc2RhdGEoUExwZ1NRTF9l eGVjc3RhdGUgKmVzdGF0ZSwKIAogCXJldHVybiBwYXJhbXN0ci5kYXRhOwogfQorCisvKgorICog Y2hlY2tfcmVjb3JkX3R5cGVfbm90X2FsdGVyZWQKKyAqCisgKiBDaGVjayBpZiBhbnkgY29tcG9z aXRlIHR5cGUgcmVhY2hhYmxlIGZyb20gdGhpcyByZWNvcmQncyB0eXBlIGhhcyBiZWVuCisgKiBh bHRlcmVkIHNpbmNlIHRoZSByZWNvcmQgd2FzIHBvcHVsYXRlZC4gIElmIHNvLCByYWlzZSBhbiBl cnJvciB0byBwcmV2ZW50CisgKiBjcmFzaGVzIHRoYXQgd291bGQgb2NjdXIgd2hlbiBvdXRwdXR0 aW5nIGRhdGEgdGhhdCBubyBsb25nZXIgbWF0Y2hlcyB0aGUKKyAqIGN1cnJlbnQgdHlwZSBkZWZp bml0aW9uLgorICoKKyAqIFVzZXMgdGhlIGNvbXBvc2l0ZSB0eXBlIHZlcnNpb24gc25hcHNob3Qg dGFrZW4gYXQgcmVjb3JkIGFzc2lnbm1lbnQgdGltZQorICogdG8gZGV0ZWN0IGNoYW5nZXMgaW4g Ym90aCB0aGUgb3V0ZXJtb3N0IHR5cGUgYW5kIGFueSBuZXN0ZWQgY29tcG9zaXRlIHR5cGVzLgor ICovCitzdGF0aWMgdm9pZAorY2hlY2tfcmVjb3JkX3R5cGVfbm90X2FsdGVyZWQoUExwZ1NRTF9y ZWMgKnJlYykKK3sKKwlpbnQJCQlpOworCisJLyogTm90aGluZyB0byBkbyBmb3IgYW5vbnltb3Vz IFJFQ09SRCB0eXBlIG9yIG5vIHNuYXBzaG90ICovCisJaWYgKHJlYy0+cmVjdHlwZWlkID09IFJF Q09SRE9JRCB8fCByZWMtPm5Db21wVHlwZXMgPD0gMCkKKwkJcmV0dXJuOworCisJZm9yIChpID0g MDsgaSA8IHJlYy0+bkNvbXBUeXBlczsgaSsrKQorCXsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGVu dHJ5OworCisJCXR5cGVudHJ5ID0gbG9va3VwX3R5cGVfY2FjaGUocmVjLT5jb21wVHlwZU9pZHNb aV0sIFRZUEVDQUNIRV9UVVBERVNDKTsKKworCQlpZiAodHlwZW50cnktPnR1cERlc2NfaWRlbnRp ZmllciAhPSByZWMtPmNvbXBUeXBlVmVyc2lvbnNbaV0pCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygiY2Fu bm90IHJldHVybiByZWNvcmQgdmFyaWFibGUgXCIlc1wiIGFmdGVyIGNvbXBvc2l0ZSB0eXBlIFwi JXNcIiB3YXMgYWx0ZXJlZCIsCisJCQkJCQkJcmVjLT5yZWZuYW1lLAorCQkJCQkJCWZvcm1hdF90 eXBlX2JlKHJlYy0+Y29tcFR5cGVPaWRzW2ldKSksCisJCQkJCSBlcnJoaW50KCJSZWFzc2lnbiB0 aGUgcmVjb3JkIHZhcmlhYmxlIGFmdGVyIEFMVEVSIFRZUEUuIikpKTsKKwl9Cit9CisKKy8qCisg KiBjb2xsZWN0X2NvbXBvc2l0ZV90eXBlX3ZlcnNpb25zCisgKgorICogUmVjdXJzaXZlbHkgY29s bGVjdCB0dXBEZXNjX2lkZW50aWZpZXIgdmFsdWVzIGZvciBhIGNvbXBvc2l0ZSB0eXBlIGFuZAor ICogYWxsIGNvbXBvc2l0ZSB0eXBlcyByZWFjaGFibGUgZnJvbSBpdHMgYXR0cmlidXRlcy4gIFNr aXBzIGFub255bW91cworICogUkVDT1JEIHR5cGVzIGFuZCB0eXBlcyBhbHJlYWR5IHJlY29yZGVk ICh0byBwcmV2ZW50IGluZmluaXRlIHJlY3Vyc2lvbikuCisgKgorICogb2lkcy92ZXJzaW9ucyBh cnJheXMgYXJlIHJlcGFsbG9jJ2QgYXMgbmVlZGVkOyBuL2FsbG9jIHVwZGF0ZWQgaW4gcGxhY2Uu CisgKi8KK3N0YXRpYyB2b2lkCitjb2xsZWN0X2NvbXBvc2l0ZV90eXBlX3ZlcnNpb25zKE9pZCB0 eXBpZCwKKwkJCQkJCQkJT2lkICoqb2lkcywgdWludDY0ICoqdmVyc2lvbnMsCisJCQkJCQkJCWlu dCAqbiwgaW50ICphbGxvYykKK3sKKwlUeXBlQ2FjaGVFbnRyeSAqdHlwZW50cnk7CisJVHVwbGVE ZXNjCXR1cGRlc2M7CisJaW50CQkJaTsKKworCS8qIFNraXAgaWYgYWxyZWFkeSByZWNvcmRlZCAq LworCWZvciAoaSA9IDA7IGkgPCAqbjsgaSsrKQorCXsKKwkJaWYgKCgqb2lkcylbaV0gPT0gdHlw aWQpCisJCQlyZXR1cm47CisJfQorCisJdHlwZW50cnkgPSBsb29rdXBfdHlwZV9jYWNoZSh0eXBp ZCwgVFlQRUNBQ0hFX1RVUERFU0MpOworCisJLyogR3JvdyBhcnJheXMgaWYgbmVlZGVkICovCisJ aWYgKCpuID49ICphbGxvYykKKwl7CisJCSphbGxvYyAqPSAyOworCQkqb2lkcyA9IHJlcGFsbG9j KCpvaWRzLCAqYWxsb2MgKiBzaXplb2YoT2lkKSk7CisJCSp2ZXJzaW9ucyA9IHJlcGFsbG9jKCp2 ZXJzaW9ucywgKmFsbG9jICogc2l6ZW9mKHVpbnQ2NCkpOworCX0KKworCSgqb2lkcylbKm5dID0g dHlwaWQ7CisJKCp2ZXJzaW9ucylbKm5dID0gdHlwZW50cnktPnR1cERlc2NfaWRlbnRpZmllcjsK KwkoKm4pKys7CisKKwl0dXBkZXNjID0gdHlwZW50cnktPnR1cERlc2M7CisJaWYgKHR1cGRlc2Mg PT0gTlVMTCkKKwkJcmV0dXJuOworCisJLyogUmVjdXJzZSBpbnRvIGNvbXBvc2l0ZS10eXBlIGF0 dHJpYnV0ZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0dHM7IGkrKykKKwl7CisJ CUZvcm1fcGdfYXR0cmlidXRlIGF0dHIgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpOworCQlP aWQJCQlhdHRydHlwaWQ7CisJCWNoYXIJCXR5cHR5cGU7CisKKwkJaWYgKGF0dHItPmF0dGlzZHJv cHBlZCkKKwkJCWNvbnRpbnVlOworCisJCWF0dHJ0eXBpZCA9IGF0dHItPmF0dHR5cGlkOworCQlp ZiAoYXR0cnR5cGlkID09IFJFQ09SRE9JRCkKKwkJCWNvbnRpbnVlOworCisJCXR5cHR5cGUgPSBn ZXRfdHlwdHlwZShhdHRydHlwaWQpOworCisJCS8qIFJlc29sdmUgZG9tYWluIHR5cGVzIHRvIHRo ZWlyIGJhc2UgdHlwZSAqLworCQlpZiAodHlwdHlwZSA9PSBUWVBUWVBFX0RPTUFJTikKKwkJewor CQkJYXR0cnR5cGlkID0gZ2V0QmFzZVR5cGUoYXR0cnR5cGlkKTsKKwkJCXR5cHR5cGUgPSBnZXRf dHlwdHlwZShhdHRydHlwaWQpOworCQl9CisKKwkJaWYgKHR5cHR5cGUgPT0gVFlQVFlQRV9DT01Q T1NJVEUpCisJCQljb2xsZWN0X2NvbXBvc2l0ZV90eXBlX3ZlcnNpb25zKGF0dHJ0eXBpZCwKKwkJ CQkJCQkJCQkgICBvaWRzLCB2ZXJzaW9ucywgbiwgYWxsb2MpOworCX0KK30KKworLyoKKyAqIHNu YXBzaG90X3JlY29yZF9jb21wb3NpdGVfdHlwZXMKKyAqCisgKiBUYWtlIGEgc25hcHNob3Qgb2Yg dHVwRGVzY19pZGVudGlmaWVyIHZhbHVlcyBmb3IgYWxsIGNvbXBvc2l0ZSB0eXBlcworICogcmVh Y2hhYmxlIGZyb20gdGhlIHJlY29yZCdzIGRlY2xhcmVkIHR5cGUuICBDYWxsZWQgd2hlbiBhIHJl Y29yZCB2YXJpYWJsZQorICogaXMgYXNzaWduZWQgYSBuZXcgdmFsdWUsIHNvIHRoYXQgY2hlY2tf cmVjb3JkX3R5cGVfbm90X2FsdGVyZWQoKSBjYW4KKyAqIGRldGVjdCBtaWQtdHJhbnNhY3Rpb24g QUxURVIgVFlQRSBhdCBSRVRVUk4gdGltZS4KKyAqLworc3RhdGljIHZvaWQKK3NuYXBzaG90X3Jl Y29yZF9jb21wb3NpdGVfdHlwZXMoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKKwkJCQkJCQkJ UExwZ1NRTF9yZWMgKnJlYykKK3sKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKwlpbnQJCQlhbGxv YyA9IDg7CisJaW50CQkJbiA9IDA7CisJT2lkCQkgICAqb2lkczsKKwl1aW50NjQJICAgKnZlcnNp b25zOworCisJLyogTm90aGluZyB0byBkbyBmb3IgYW5vbnltb3VzIFJFQ09SRCB0eXBlICovCisJ aWYgKHJlYy0+cmVjdHlwZWlkID09IFJFQ09SRE9JRCkKKwl7CisJCXJlYy0+bkNvbXBUeXBlcyA9 IDA7CisJCXJldHVybjsKKwl9CisKKwlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0 YXRlLT5kYXR1bV9jb250ZXh0KTsKKwlvaWRzID0gcGFsbG9jKGFsbG9jICogc2l6ZW9mKE9pZCkp OworCXZlcnNpb25zID0gcGFsbG9jKGFsbG9jICogc2l6ZW9mKHVpbnQ2NCkpOworCisJY29sbGVj dF9jb21wb3NpdGVfdHlwZV92ZXJzaW9ucyhyZWMtPnJlY3R5cGVpZCwKKwkJCQkJCQkJCSZvaWRz LCAmdmVyc2lvbnMsICZuLCAmYWxsb2MpOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4 dCk7CisKKwlpZiAobiA+IDApCisJeworCQkvKiBGcmVlIHByZXZpb3VzIHNuYXBzaG90IGlmIGFu eSAqLworCQlpZiAocmVjLT5jb21wVHlwZU9pZHMpCisJCQlwZnJlZShyZWMtPmNvbXBUeXBlT2lk cyk7CisJCWlmIChyZWMtPmNvbXBUeXBlVmVyc2lvbnMpCisJCQlwZnJlZShyZWMtPmNvbXBUeXBl VmVyc2lvbnMpOworCisJCXJlYy0+bkNvbXBUeXBlcyA9IG47CisJCXJlYy0+Y29tcFR5cGVPaWRz ID0gb2lkczsKKwkJcmVjLT5jb21wVHlwZVZlcnNpb25zID0gdmVyc2lvbnM7CisJfQorCWVsc2UK Kwl7CisJCXBmcmVlKG9pZHMpOworCQlwZnJlZSh2ZXJzaW9ucyk7CisJCXJlYy0+bkNvbXBUeXBl cyA9IDA7CisJCXJlYy0+Y29tcFR5cGVPaWRzID0gTlVMTDsKKwkJcmVjLT5jb21wVHlwZVZlcnNp b25zID0gTlVMTDsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaAppbmRleCBhZGRiMTRhOTk1OS4uY2Y5 YTY1NzYxM2QgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaApAQCAtNDM1LDYgKzQzNSwxNSBAQCB0eXBlZGVm IHN0cnVjdCBQTHBnU1FMX3JlYwogCiAJLyogV2UgYWx3YXlzIHN0b3JlIHJlY29yZCB2YXJpYWJs ZXMgYXMgImV4cGFuZGVkIiByZWNvcmRzICovCiAJRXhwYW5kZWRSZWNvcmRIZWFkZXIgKmVyaDsK KworCS8qCisJICogQ29tcG9zaXRlIHR5cGUgdmVyc2lvbiBzbmFwc2hvdCBmb3IgQUxURVIgVFlQ RSBkZXRlY3Rpb24uCisJICogUG9wdWxhdGVkIHdoZW4gdGhlIHJlY29yZCBpcyBhc3NpZ25lZDsg Y2hlY2tlZCBhdCBSRVRVUk4gdGltZS4KKwkgKiBJbmNsdWRlcyB0aGUgb3V0ZXJtb3N0IHR5cGUg YW5kIGFsbCBuZXN0ZWQgY29tcG9zaXRlIHR5cGVzLgorCSAqLworCWludAkJCW5Db21wVHlwZXM7 CisJT2lkCQkgICAqY29tcFR5cGVPaWRzOworCXVpbnQ2NAkgICAqY29tcFR5cGVWZXJzaW9uczsK IH0gUExwZ1NRTF9yZWM7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3Fs L3BscGdzcWxfcmVjb3JkLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9yZWNv cmQuc3FsCmluZGV4IDRmYmVkMzhiOGJiLi45NWY0MGUxNWIyZiAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3JlY29yZC5zcWwKKysrIGIvc3JjL3BsL3BscGdzcWwv c3JjL3NxbC9wbHBnc3FsX3JlY29yZC5zcWwKQEAgLTU3NywzICs1NzcsNjEgQEAgaW5zZXJ0IGlu dG8gdHdvX2ludDhzX3RhYiB2YWx1ZXMgKGNvbXByZXN1bHQoNDIpKTsKIC0tIHJlY29ubmVjdCBz byB3ZSBsb3NlIGFueSBsb2NhbCBrbm93bGVkZ2Ugb2YgYW5vbnltb3VzIHJlY29yZCB0eXBlcwog XGMgLQogdGFibGUgdHdvX2ludDhzX3RhYjsKKworLS0gVGVzdHMgZm9yIGJ1ZyAjMTkzODI6IHNl cnZlciBjcmFzaCB3aGVuIEFMVEVSIFRZUEUgaXMgdXNlZCBtaWQtdHJhbnNhY3Rpb24KKy0tIGlu IFBML3BnU1FMLiBSZWNvcmQgdmFyaWFibGVzIHBvcHVsYXRlZCBiZWZvcmUgQUxURVIgVFlQRSBt dXN0IG5vdCBiZQorLS0gcmV0dXJuZWQsIGFzIHRoZSBzdG9yZWQgZGF0YSBubyBsb25nZXIgbWF0 Y2hlcyB0aGUgY3VycmVudCB0eXBlIGRlZmluaXRpb24uCisKKy0tIENhc2UgMTogRGlyZWN0IGNv bXBvc2l0ZSB0eXBlIGNoYW5nZSAoSU5UIC0+IFRFWFQpCitjcmVhdGUgdHlwZSBidWcxOTM4Ml9m b28gYXMgKGEgaW50LCBiIGludCk7CitjcmVhdGUgZnVuY3Rpb24gYnVnMTkzODJfdGVzdF9kaXJl Y3QoKSByZXR1cm5zIHJlY29yZCBhcyAkJAorZGVjbGFyZSByIGJ1ZzE5MzgyX2ZvbyA6PSByb3co MTIzLCBwb3dlcigyLCAzMCkpOworYmVnaW4KKyAgICBhbHRlciB0eXBlIGJ1ZzE5MzgyX2ZvbyBh bHRlciBhdHRyaWJ1dGUgYiB0eXBlIHRleHQ7CisgICAgcmV0dXJuIHI7CitlbmQ7CiskJCBsYW5n dWFnZSBwbHBnc3FsOworc2VsZWN0IGJ1ZzE5MzgyX3Rlc3RfZGlyZWN0KCk7Citkcm9wIGZ1bmN0 aW9uIGJ1ZzE5MzgyX3Rlc3RfZGlyZWN0KCk7Citkcm9wIHR5cGUgYnVnMTkzODJfZm9vIGNhc2Nh ZGU7CisKKy0tIENhc2UgMjogTmVzdGVkIGNvbXBvc2l0ZSB0eXBlIGNoYW5nZQorY3JlYXRlIHR5 cGUgYnVnMTkzODJfaW5uZXIgYXMgKHggaW50LCB5IGludCk7CitjcmVhdGUgdHlwZSBidWcxOTM4 Ml9vdXRlciBhcyAoYSBpbnQsIGIgYnVnMTkzODJfaW5uZXIpOworY3JlYXRlIGZ1bmN0aW9uIGJ1 ZzE5MzgyX3Rlc3RfbmVzdGVkKCkgcmV0dXJucyByZWNvcmQgYXMgJCQKK2RlY2xhcmUgciBidWcx OTM4Ml9vdXRlcjsKK2JlZ2luCisgICAgciA6PSByb3coMSwgcm93KDEwLCBwb3dlcigyLCAzMCk6 OmludDQpOjpidWcxOTM4Ml9pbm5lcik6OmJ1ZzE5MzgyX291dGVyOworICAgIGFsdGVyIHR5cGUg YnVnMTkzODJfaW5uZXIgYWx0ZXIgYXR0cmlidXRlIHkgdHlwZSB0ZXh0OworICAgIHJldHVybiBy OworZW5kOworJCQgbGFuZ3VhZ2UgcGxwZ3NxbDsKK3NlbGVjdCBidWcxOTM4Ml90ZXN0X25lc3Rl ZCgpOworZHJvcCBmdW5jdGlvbiBidWcxOTM4Ml90ZXN0X25lc3RlZCgpOworZHJvcCB0eXBlIGJ1 ZzE5MzgyX291dGVyIGNhc2NhZGU7Citkcm9wIHR5cGUgYnVnMTkzODJfaW5uZXIgY2FzY2FkZTsK KworLS0gQ2FzZSAzOiBPVVQgcGFyYW1ldGVyCitjcmVhdGUgdHlwZSBidWcxOTM4Ml9mb28xIGFz IChhIGludCwgYiBpbnQpOworY3JlYXRlIGZ1bmN0aW9uIGJ1ZzE5MzgyX3Rlc3Rfb3V0KG91dCBy MSBidWcxOTM4Ml9mb28xKSBhcyAkJAorYmVnaW4KKyAgICByMSA6PSByb3coMSwgMik7CisgICAg YWx0ZXIgdHlwZSBidWcxOTM4Ml9mb28xIGFsdGVyIGF0dHJpYnV0ZSBiIHR5cGUgdGV4dDsKKyAg ICByZXR1cm47CitlbmQ7CiskJCBsYW5ndWFnZSBwbHBnc3FsOworc2VsZWN0IGJ1ZzE5MzgyX3Rl c3Rfb3V0KCk7Citkcm9wIGZ1bmN0aW9uIGJ1ZzE5MzgyX3Rlc3Rfb3V0KCk7Citkcm9wIHR5cGUg YnVnMTkzODJfZm9vMSBjYXNjYWRlOworCistLSBDYXNlIDQ6IE5vIEFMVEVSIFRZUEUgKGJhc2Vs aW5lIOKAlCBtdXN0IG5vdCBlcnJvcikKK2NyZWF0ZSB0eXBlIGJ1ZzE5MzgyX2ZvbzIgYXMgKGEg aW50LCBiIGludCk7CitjcmVhdGUgZnVuY3Rpb24gYnVnMTkzODJfdGVzdF9iYXNlbGluZSgpIHJl dHVybnMgYnVnMTkzODJfZm9vMiBhcyAkJAorZGVjbGFyZSByIGJ1ZzE5MzgyX2ZvbzIgOj0gcm93 KDEsIDIpOworYmVnaW4KKyAgICByZXR1cm4gcjsKK2VuZDsKKyQkIGxhbmd1YWdlIHBscGdzcWw7 CitzZWxlY3QgYnVnMTkzODJfdGVzdF9iYXNlbGluZSgpOworZHJvcCBmdW5jdGlvbiBidWcxOTM4 Ml90ZXN0X2Jhc2VsaW5lKCk7Citkcm9wIHR5cGUgYnVnMTkzODJfZm9vMjsKLS0gCjIuMzkuNSAo QXBwbGUgR2l0LTE1NCkKCg== --000000000000984974064f743fff--