From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com [IPv6:2607:f8b0:4864:20::112e]) by sourceware.org (Postfix) with ESMTPS id 007F13858D37 for ; Sat, 16 Mar 2024 16:33:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 007F13858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 007F13858D37 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::112e ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710606809; cv=none; b=M0GpQkhVNTOAmbOl8Kc0myo/6WCC31rSeNxdhUqEI4n9KcPXftX76wrKymIsagAPWnkC0b0dhhaseTK3lH407+xh5NtVLgOm9ADPDOWFGAmaeZzV8z2geKY8HLACNQHSCRBe37XC45UZCNhZF3NCinVIA9GvtldZtb6tFrz57sc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710606809; c=relaxed/simple; bh=fyihJU7pwPh0L1MqrjINOLTKS+3qDwn0mDb2UFzVF5s=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=dWSsO2XaPX9dQRjI3jauFapcrKJ8jYKZdy/rhTTdOaQlLxvR2fM4lWhBWc3ngZ7CkjULFseWk39DTCib9HZqt/Fjcn+rwZqZw7RcNra1CeqLcGc0QosH0ALOmKEvbXbKDpaAuZzsU1c3jKrqt5f8I9YpBmNphbGJGlrUedXzBug= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-609f1b77728so32217587b3.3 for ; Sat, 16 Mar 2024 09:33:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710606798; x=1711211598; darn=sourceware.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=LbQd3VWkMAf7YQGFOunn7fkGpZJcq8J4716s6+Rv+Hc=; b=GvzjVV45ya8lnrGPlW4diw0Nn3t1LX+O1k4I2FnSFMpuzGKQDvGhrFStmj/E+V/xPU 8lMxmr7c8OdmKqsUgXnrLfphiNQu8d6uNhlpzfKdTKIU2WZ/neeOlotcSkczSCn34jft 4I8pr76WKxfjzXHd1v82EvNlM6UMiyVQnTqp1a54KIm5DdjkDxcgvloOmj6+1x7fITE/ rijCl1EycvwiDZoy1SB7Q+9UFJ0ivIIKnx9On/S7ZcvJRHxReselPf+2eOWGk7wEucz+ GB/OIeVTae4iG5dlsyGKI8lr/4P0hxc+waHNMReIk+HyN27eDEqpksbfVG/OMH7xIwfR iYLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710606798; x=1711211598; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LbQd3VWkMAf7YQGFOunn7fkGpZJcq8J4716s6+Rv+Hc=; b=XWuB6cEeP74sInA+wRHBBhpKurtLpId8AUp0KGy0wOazxGf3W7FdmiKgxCuEEI9TD/ O+W251tCSPcSenkQq8Pzi5P6b1WI7z56cX0lVQ3aNfmoy4D3B4tbxkFNSrbthWoUkwGY Dfi7KODonsdxEIBhdq+nSy1MgtVC1DW3kaurGd5+uWNeziLVqU9fT2FrrAWRMqdqkIxq x9Ax/pbGGnlDntNVzVba9L1OW0T9++KXF3ganG5E1u8gHgeSYkl21JdgXcbXtk7r9tBt VqzkjvYwR85WQ2V0ZAfjYxMTv1Adqti9o+zlAxCVuEwD3Ib+LhBZkiMpAN0g0lK9W5G4 ZXtw== X-Gm-Message-State: AOJu0Yw3pERjXvz9huJ5/GjlyvX5KT/C4WWFYU4gSRsvH615J7iz+QSG 959+QV4Su9sAtkWKnwuOSXMMo5Ouh6Ekxp4K36wRTXYdYWt8qv/AUK4Ht6bbD6Cp+uo76hU3M1k dInmfCbhzLk2let3PeY7uAtk/Dmlf8+0D X-Google-Smtp-Source: AGHT+IHPtuMTHTDcesQeFvgVJQI1zqpJS4I50Y9sd0xYbxx7yXyugok5T+25LGhvL0LyjYs+qzKejsQOUa58v6fkrJY= X-Received: by 2002:a0d:cec2:0:b0:609:e38d:a9da with SMTP id q185-20020a0dcec2000000b00609e38da9damr8568554ywd.0.1710606798157; Sat, 16 Mar 2024 09:33:18 -0700 (PDT) MIME-Version: 1.0 References: <878r2ifdrx.fsf@oldenburg.str.redhat.com> <87y1aidxq6.fsf@oldenburg.str.redhat.com> In-Reply-To: From: "H.J. Lu" Date: Sat, 16 Mar 2024 09:32:41 -0700 Message-ID: Subject: Re: [PATCH] x86-64: Stack alignment in _dl_tlsdesc_dynamic and red zone usage (bug 31501) To: Florian Weimer Cc: libc-alpha@sourceware.org Content-Type: multipart/mixed; boundary="0000000000008eaf230613c9aed9" X-Spam-Status: No, score=-3019.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --0000000000008eaf230613c9aed9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Mar 16, 2024 at 8:18=E2=80=AFAM H.J. Lu wrote= : > > On Sat, Mar 16, 2024 at 8:04=E2=80=AFAM Florian Weimer wrote: > > > > * H. J. Lu: > > > > > On Sat, Mar 16, 2024 at 7:43=E2=80=AFAM H.J. Lu = wrote: > > >> > > >> On Sat, Mar 16, 2024 at 7:37=E2=80=AFAM H.J. Lu wrote: > > >> > > > >> > On Sat, Mar 16, 2024 at 7:33=E2=80=AFAM Florian Weimer wrote: > > >> > > > > >> > > In sysdeps/x86_64/dl-tlsdesc-dynamic.h, the stack pointer is > > >> > > realigned for some variants (notably _dl_tlsdesc_dynamic_xsavec)= . > > >> > > This realignment does not take into account that the function ha= s > > >> > > already used part of the red zone at this point, thus clobbering > > >> > > the initally saved register values located there if the stack > > >> > > alignment inherited from the caller is unfortunate. > > >> > > > > >> > > (Note: I do not know to write a good test case for this in the e= xisting > > >> > > framework. We saw this as a random LTO plugin crash when buildi= ng GCC > > >> > > with -mtls-dialect=3Dgnu2. The existing tests on pass on x86_64= -linux-gnu > > >> > > with this change here.) > > > > > > We should try to find a testcase. Can you provide a backtrace when i= t > > > happens? It should be possible to write a testcase with the backtrac= e. > > > > In my reproducer, when %rbx is about to be clobbered, I see > > (%rsp % 64) =3D=3D 8 at the start of _dl_tlsdesc_dynamic_xsavec. > > > > The %rbx register does not get clobbered if (%rsp % 64) =3D=3D 56. > > > > Does this help? > > > > Yes. I am working on a testcase. Hi Florian, Please verify if this is the right testcase. Thanks. --=20 H.J. --0000000000008eaf230613c9aed9 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-a-test-for-BZ-31501.patch" Content-Disposition: attachment; filename="0001-Add-a-test-for-BZ-31501.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltub2s200 RnJvbSA4YzE2N2JkNGQ5ZmFkZGY5NTgwZjU1MTgyNTQyZThhMDVhMjVmZDYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMTYgTWFyIDIwMjQgMDg6NDI6MjcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgYSB0 ZXN0IGZvciBCWiAjMzE1MDEKCi0tLQogc3lzZGVwcy94ODZfNjQvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgIHwgMTYgKysrKysKIHN5c2RlcHMveDg2XzY0L3RzdC1nbnUyLXRsczIteDg2LTY0 LW1vZDAuUyB8IDU3ICsrKysrKysrKysrKysrKysrCiBzeXNkZXBzL3g4Nl82NC90c3QtZ251Mi10 bHMyLXg4Ni02NC1tb2QxLlMgfCA3NCArKysrKysrKysrKysrKysrKysrKysrCiBzeXNkZXBzL3g4 Nl82NC90c3QtZ251Mi10bHMyLXg4Ni02NC1tb2QyLlMgfCA1NyArKysrKysrKysrKysrKysrKwog c3lzZGVwcy94ODZfNjQvdHN0LWdudTItdGxzMi14ODYtNjQuYyAgICAgIHwgMjEgKysrKysrCiA1 IGZpbGVzIGNoYW5nZWQsIDIyNSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lz ZGVwcy94ODZfNjQvdHN0LWdudTItdGxzMi14ODYtNjQtbW9kMC5TCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3lzZGVwcy94ODZfNjQvdHN0LWdudTItdGxzMi14ODYtNjQtbW9kMS5TCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3lzZGVwcy94ODZfNjQvdHN0LWdudTItdGxzMi14ODYtNjQtbW9kMi5TCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODZfNjQvdHN0LWdudTItdGxzMi14ODYtNjQuYwoKZGlm ZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L01ha2VmaWxlIGIvc3lzZGVwcy94ODZfNjQvTWFrZWZp bGUKaW5kZXggNjZiMjE5NTRmMy4uZjAyMDc3M2U1NiAxMDA2NDQKLS0tIGEvc3lzZGVwcy94ODZf NjQvTWFrZWZpbGUKKysrIGIvc3lzZGVwcy94ODZfNjQvTWFrZWZpbGUKQEAgLTIxNyw2ICsyMTcs MjIgQEAgdmFsZ3JpbmQtc3VwcHJlc3Npb25zLXRzdC12YWxncmluZC1zbW9rZSA9IFwKICAgLS1z dXBwcmVzc2lvbnM9JCguLilzeXNkZXBzL3g4Nl82NC90c3QtdmFsZ3JpbmQtc21va2Uuc3VwcAog ZW5kaWYKIAordGVzdHMgKz0gXAorICB0c3QtZ251Mi10bHMyLXg4Ni02NCBcCisjIHRlc3RzCisK K21vZHVsZXMtbmFtZXMgKz0gXAorICB0c3QtZ251Mi10bHMyLXg4Ni02NC1tb2QwIFwKKyAgdHN0 LWdudTItdGxzMi14ODYtNjQtbW9kMSBcCisgIHRzdC1nbnUyLXRsczIteDg2LTY0LW1vZDIgXAor IyBtb2R1bGVzLW5hbWVzCisKKyQob2JqcGZ4KXRzdC1nbnUyLXRsczIteDg2LTY0OiAkKHNoYXJl ZC10aHJlYWQtbGlicmFyeSkKKyQob2JqcGZ4KXRzdC1nbnUyLXRsczIteDg2LTY0Lm91dDogXAor ICAkKG9ianBmeCl0c3QtZ251Mi10bHMyLXg4Ni02NC1tb2QwLnNvIFwKKyAgJChvYmpwZngpdHN0 LWdudTItdGxzMi14ODYtNjQtbW9kMS5zbyBcCisgICQob2JqcGZ4KXRzdC1nbnUyLXRsczIteDg2 LTY0LW1vZDIuc28KKwogZW5kaWYgIyAkKHN1YmRpcikgPT0gZWxmCiAKIGlmZXEgKCQoc3ViZGly KSxjc3UpCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC90c3QtZ251Mi10bHMyLXg4Ni02NC1t b2QwLlMgYi9zeXNkZXBzL3g4Nl82NC90c3QtZ251Mi10bHMyLXg4Ni02NC1tb2QwLlMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODEyOWIyODA2MQotLS0gL2Rldi9udWxs CisrKyBiL3N5c2RlcHMveDg2XzY0L3RzdC1nbnUyLXRsczIteDg2LTY0LW1vZDAuUwpAQCAtMCww ICsxLDU3IEBACisvKiBUZXN0IFRMU0RFU0MgcmVsb2NhdGlvbiB3aXRoIHg4Ni02NC4KKyAgIENv cHlyaWdodCAoQykgMjAyNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFy eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsg aWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKwku dGV4dAorCS5wMmFsaWduIDQKKwkuZ2xvYmwJYXBwbHlfdGxzCisJLnR5cGUJYXBwbHlfdGxzLCBA ZnVuY3Rpb24KK2FwcGx5X3RsczoKKwkuY2ZpX3N0YXJ0cHJvYworCXN1YnEJJDI0LCAlcnNwCisJ LmNmaV9kZWZfY2ZhX29mZnNldCAzMgorCW1vdmRxdQkoJXJkaSksICV4bW0wCisJbW92cQklZnM6 NDAsICVyYXgKKwltb3ZxCSVyYXgsIDgoJXJzcCkKKwl4b3JsCSVlYXgsICVlYXgKKwlsZWFxCXRs c192YXIwQFRMU0RFU0MoJXJpcCksICVyYXgKKwljYWxsCSp0bHNfdmFyMEBUTFNDQUxMKCVyYXgp CisJYWRkcQklZnM6MCwgJXJheAorCW1vdnVwcwkleG1tMCwgKCVyYXgpCisJbW92ZHF1CTE2KCVy ZGkpLCAleG1tMQorCW1vdnVwcwkleG1tMSwgMTYoJXJheCkKKwltb3ZxCTgoJXJzcCksICVyZHgK KwlzdWJxCSVmczo0MCwgJXJkeAorCWpuZQkuTDUKKwlhZGRxCSQyNCwgJXJzcAorCS5jZmlfcmVt ZW1iZXJfc3RhdGUKKwkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDgKKwlyZXQKKy5MNToKKwkuY2ZpX3Jl c3RvcmVfc3RhdGUKKwljYWxsCV9fc3RhY2tfY2hrX2ZhaWxAUExUCisJLmNmaV9lbmRwcm9jCisJ LnNpemUJYXBwbHlfdGxzLCAuLWFwcGx5X3RscworCS5oaWRkZW4JdGxzX3ZhcjAKKwkuZ2xvYmwJ dGxzX3ZhcjAKKwkuc2VjdGlvbgkudGJzcywiYXdUIixAbm9iaXRzCisJLmFsaWduIDgKKwkudHlw ZQl0bHNfdmFyMCwgQG9iamVjdAorCS5zaXplCXRsc192YXIwLCAzMgordGxzX3ZhcjA6CisJLnpl cm8JMzIKKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCmRpZmYgLS1naXQg YS9zeXNkZXBzL3g4Nl82NC90c3QtZ251Mi10bHMyLXg4Ni02NC1tb2QxLlMgYi9zeXNkZXBzL3g4 Nl82NC90c3QtZ251Mi10bHMyLXg4Ni02NC1tb2QxLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uYWY0YjdjYTc2MQotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMveDg2 XzY0L3RzdC1nbnUyLXRsczIteDg2LTY0LW1vZDEuUwpAQCAtMCwwICsxLDc0IEBACisvKiBUZXN0 IFRMU0RFU0MgcmVsb2NhdGlvbiB3aXRoIHg4Ni02NC4KKyAgIENvcHlyaWdodCAoQykgMjAyNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIFNlbGVjdCBhbiBvZmZzZXQg d2hpY2ggd2lsbCBjYXVzZSBfZGxfdGxzZGVzY19keW5hbWljX3hzYXZlYyB0bworICAgY2xvYmJl ciAlcmJ4LiAgKi8KKyNkZWZpbmUgT0ZGU0VUICg1NiArIDE2ICsgMTYgKyAxNikKKworCS50ZXh0 CisJLnAyYWxpZ24gNAorCS5nbG9ibAlhcHBseV90bHMKKwkudHlwZQlhcHBseV90bHMsIEBmdW5j dGlvbgorYXBwbHlfdGxzOgorCS5jZmlfc3RhcnRwcm9jCisJcHVzaHEJJXJicAorCS5jZmlfZGVm X2NmYV9vZmZzZXQgMTYKKwkuY2ZpX29mZnNldCA2LCAtMTYKKwltb3ZxCSVyc3AsICVyYnAKKwku Y2ZpX2RlZl9jZmFfcmVnaXN0ZXIgNgorCS8qIEFsaWduIHN0YWNrIHRvIDY0IGJ5dGVzLiAgKi8K KwlhbmRxCSQtNjQsICVyc3AKKwlwdXNocQklcmJ4CisJc3VicQkkT0ZGU0VULCAlcnNwCisJbW92 ZHF1CSglcmRpKSwgJXhtbTAKKwltb3ZxCSVmczo0MCwgJXJheAorCW1vdnEJJXJheCwgNTYoJXJz cCkKKwl4b3JsCSVlYXgsICVlYXgKKwlsZWFxCXRsc192YXIxQFRMU0RFU0MoJXJpcCksICVyYXgK KwljYWxsCSp0bHNfdmFyMUBUTFNDQUxMKCVyYXgpCisJYWRkcQklZnM6MCwgJXJheAorCW1vdnVw cwkleG1tMCwgMzIoJXJheCkKKwltb3ZkcXUJMTYoJXJkaSksICV4bW0xCisJYWRkcQkkMzIsICVy YXgKKwltb3Z1cHMJJXhtbTEsIDE2KCVyYXgpCisJbW92cQk1NiglcnNwKSwgJXJkeAorCXN1YnEJ JWZzOjQwLCAlcmR4CisJam5lCS5MNQorCS8qIEFsbCB2ZXJzaW9ucyBvZiBfZGxfdGxzZGVzY19k eW5hbWljIHNob3VsZCBwcmVzZXJ2ZSAlcmJ4LiAgKi8KKwljbXBxCU9GRlNFVCglcnNwKSwgJXJi eAorCWpuZQkuTGhsdAorCWxlYXZlCisJLmNmaV9yZW1lbWJlcl9zdGF0ZQorCS5jZmlfZGVmX2Nm YSA3LCA4CisJcmV0CisuTGhsdDoKKwlobHQKKy5MNToKKwkuY2ZpX3Jlc3RvcmVfc3RhdGUKKwlj YWxsCV9fc3RhY2tfY2hrX2ZhaWxAUExUCisJLmNmaV9lbmRwcm9jCisJLnNpemUJYXBwbHlfdGxz LCAuLWFwcGx5X3RscworCS5oaWRkZW4JdGxzX3ZhcjEKKwkuZ2xvYmwJdGxzX3ZhcjEKKwkuc2Vj dGlvbgkudGJzcywiYXdUIixAbm9iaXRzCisJLmFsaWduIDE2CisJLnR5cGUJdGxzX3ZhcjEsIEBv YmplY3QKKwkuc2l6ZQl0bHNfdmFyMSwgMzIwMAordGxzX3ZhcjE6CisJLnplcm8JMzIwMAorCS5z ZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKZGlmZiAtLWdpdCBhL3N5c2RlcHMv eDg2XzY0L3RzdC1nbnUyLXRsczIteDg2LTY0LW1vZDIuUyBiL3N5c2RlcHMveDg2XzY0L3RzdC1n bnUyLXRsczIteDg2LTY0LW1vZDIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi5kODJmNWYwMjliCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvdHN0LWdu dTItdGxzMi14ODYtNjQtbW9kMi5TCkBAIC0wLDAgKzEsNTcgQEAKKy8qIFRlc3QgVExTREVTQyBy ZWxvY2F0aW9uIHdpdGggeDg2LTY0LgorICAgQ29weXJpZ2h0IChDKSAyMDI0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworCS50ZXh0CisJLnAyYWxpZ24gNAorCS5nbG9ibAlh cHBseV90bHMKKwkudHlwZQlhcHBseV90bHMsIEBmdW5jdGlvbgorYXBwbHlfdGxzOgorCS5jZmlf c3RhcnRwcm9jCisJc3VicQkkMjQsICVyc3AKKwkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDMyCisJbW92 ZHF1CSglcmRpKSwgJXhtbTAKKwltb3ZxCSVmczo0MCwgJXJheAorCW1vdnEJJXJheCwgOCglcnNw KQorCXhvcmwJJWVheCwgJWVheAorCWxlYXEJdGxzX3ZhcjJAVExTREVTQyglcmlwKSwgJXJheAor CWNhbGwJKnRsc192YXIyQFRMU0NBTEwoJXJheCkKKwlhZGRxCSVmczowLCAlcmF4CisJbW92dXBz CSV4bW0wLCAoJXJheCkKKwltb3ZkcXUJMTYoJXJkaSksICV4bW0xCisJbW92dXBzCSV4bW0xLCAx NiglcmF4KQorCW1vdnEJOCglcnNwKSwgJXJkeAorCXN1YnEJJWZzOjQwLCAlcmR4CisJam5lCS5M NQorCWFkZHEJJDI0LCAlcnNwCisJLmNmaV9yZW1lbWJlcl9zdGF0ZQorCS5jZmlfZGVmX2NmYV9v ZmZzZXQgOAorCXJldAorLkw1OgorCS5jZmlfcmVzdG9yZV9zdGF0ZQorCWNhbGwJX19zdGFja19j aGtfZmFpbEBQTFQKKwkuY2ZpX2VuZHByb2MKKwkuc2l6ZQlhcHBseV90bHMsIC4tYXBwbHlfdGxz CisJLmhpZGRlbgl0bHNfdmFyMgorCS5nbG9ibAl0bHNfdmFyMgorCS5zZWN0aW9uCS50YnNzLCJh d1QiLEBub2JpdHMKKwkuYWxpZ24gOAorCS50eXBlCXRsc192YXIyLCBAb2JqZWN0CisJLnNpemUJ dGxzX3ZhcjIsIDMyCit0bHNfdmFyMjoKKwkuemVybwkzMgorCS5zZWN0aW9uCS5ub3RlLkdOVS1z dGFjaywiIixAcHJvZ2JpdHMKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L3RzdC1nbnUyLXRs czIteDg2LTY0LmMgYi9zeXNkZXBzL3g4Nl82NC90c3QtZ251Mi10bHMyLXg4Ni02NC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjc4NzE4MTU0NWIKLS0tIC9kZXYvbnVs bAorKysgYi9zeXNkZXBzL3g4Nl82NC90c3QtZ251Mi10bHMyLXg4Ni02NC5jCkBAIC0wLDAgKzEs MjEgQEAKKy8qIFRlc3QgVExTREVTQyByZWxvY2F0aW9uIHdpdGggeDg2LTY0LgorICAgQ29weXJp Z2h0IChDKSAyMDI0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBu b3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2RlZmlu ZSBNT0QoaSkgInRzdC1nbnUyLXRsczIteDg2LTY0LW1vZCIgI2kgIi5zbyIKKworI2luY2x1ZGUg PGVsZi90c3QtZ251Mi10bHMyLmM+Ci0tIAoyLjQ0LjAKCg== --0000000000008eaf230613c9aed9--