From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id 3CF91385800E for ; Fri, 25 Dec 2020 03:25:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3CF91385800E Received: by mail-ot1-x336.google.com with SMTP id r9so3106833otk.11 for ; Thu, 24 Dec 2020 19:25:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=Mzro2XkfI257bk88M0KuCyJsl6ZO16nnU3spAUUxwig=; b=pU3cD8MyWfihV/mbhVzj0ilazMcCnvMRBjQbYNlm0E3gTU/YcZgy3ybwP8RG8WBYdB 5i5uSiLsY2ueVQ/TVpc82RQE/jibZwmgjPlyB+drhtHmgbeHFy0t43HkY4BLCHy3Xpjc +uqWuEbCaKX8ITn6JKmH6RFexsQ4d4bzD+hNJuu7Q/dU9vQHgBfoUoEz9Gz+9etk5oM8 nHQY8QAk97b15lvcKkpiV6O3mJcJDqb26RKWcyY3nK5H6jQlpfVuI5y0Z0SFeHouayIo RL7VLH1i/I+L1Kq/VbwYljSL8DerWiMgopel19WV6IinljlHcD5dDlmKCEaR2cgQnuSM uT+A== X-Gm-Message-State: AOAM5310DeowjgtuYCWNLn7ZFI2SYpUGJ4QUUAM+EHlENg1zUafWBjsR MbOcdLw3yoAzxyEZCQqM7/KEGrNnqHzhAKrzLi2SDnK0rk4= X-Google-Smtp-Source: ABdhPJxbRS3EpnHQ1SPpfqYbykzy6oG8c5KK9Ar7nCCvePQlYS8NUp3FgFAGmg/X6musyII1DRCFHbYhY/S1fkbYUJ0= X-Received: by 2002:a05:6830:1d71:: with SMTP id l17mr24571267oti.269.1608866749464; Thu, 24 Dec 2020 19:25:49 -0800 (PST) MIME-Version: 1.0 References: <20201224230256.2646417-1-hjl.tools@gmail.com> In-Reply-To: <20201224230256.2646417-1-hjl.tools@gmail.com> From: "H.J. Lu" Date: Thu, 24 Dec 2020 19:25:13 -0800 Message-ID: Subject: V2 [PATCH] x86: Add tests for IFUNC resolver with CPU_FEATURE_USABLE To: GNU C Library , Florian Weimer Content-Type: multipart/mixed; boundary="0000000000001802c105b7417b64" X-Spam-Status: No, score=-3036.5 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 autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Dec 2020 03:25:52 -0000 --0000000000001802c105b7417b64 Content-Type: text/plain; charset="UTF-8" On Thu, Dec 24, 2020 at 3:02 PM H.J. Lu wrote: > > Add tests for IFUNC resolver using CPU_FEATURE_USABLE with and without > lazy binding. Update tests to properly check IFUNC resolver. Florian, your patch failed: FAIL: elf/tst-ifunc-platform-3-bindnow FAIL: elf/tst-ifunc-platform-3-lazy due to [hjl@gnu-cfl-2 build-x86_64-linux]$ readelf -rW elf/tst-ifunc-platform-mod-3.so | grep __x86_cpu_array 0000000000003fe0 0000000200000006 R_X86_64_GLOB_DAT 0000000000000000 __x86_cpu_array@GLIBC_2.33 + 0 [hjl@gnu-cfl-2 build-x86_64-linux]$ readelf -rW elf/tst-ifunc-platform-3-lazy | grep __x86_cpu_array 0000000000406d80 0000003600000005 R_X86_64_COPY 0000000000406d80 __x86_cpu_array@GLIBC_2.33 + 0 [hjl@gnu-cfl-2 build-x86_64-linux]$ -- H.J. --0000000000001802c105b7417b64 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-x86-Add-tests-for-IFUNC-resolver-with-CPU_FEATURE_US.patch" Content-Disposition: attachment; filename="0001-x86-Add-tests-for-IFUNC-resolver-with-CPU_FEATURE_US.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kj3pkcl90 RnJvbSA2N2RiMzFlYzVhM2Y1NzBhNmEyYmJmNDBmNjEwMTRjMjY3YzQyNzk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMjQgRGVjIDIwMjAgMTQ6MDY6MzAgLTA4MDAKU3ViamVjdDogW1BBVENIXSB4ODY6IEFk ZCB0ZXN0cyBmb3IgSUZVTkMgcmVzb2x2ZXIgd2l0aCBDUFVfRkVBVFVSRV9VU0FCTEUKCkFkZCB0 ZXN0cyBmb3IgSUZVTkMgcmVzb2x2ZXIgdXNpbmcgQ1BVX0ZFQVRVUkVfVVNBQkxFIHdpdGggYW5k IHdpdGhvdXQKbGF6eSBiaW5kaW5nLgotLS0KIHN5c2RlcHMveDg2L01ha2VmaWxlICAgICAgICAg ICAgICAgICAgICAgICB8IDMwICsrKysrKystCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZv cm0tMS1iaW5kbm93LmMgfCAgMSArCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0tMS1s YXp5LmMgICAgfCA4NyArKysrKysrKysrKysrKysrKysrKysrCiBzeXNkZXBzL3g4Ni90c3QtaWZ1 bmMtcGxhdGZvcm0tMS1zdGF0aWMuYyAgfCAgMSArCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxh dGZvcm0tMi1iaW5kbm93LmMgfCAgMSArCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0t Mi1sYXp5LmMgICAgfCA1MSArKysrKysrKysrKysrCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxh dGZvcm0tMy1iaW5kbm93LmMgfCAgMSArCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0t My1sYXp5LmMgICAgfCAgMSArCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0tbW9kLTIu YyAgICAgfCA2NSArKysrKysrKysrKysrKysrCiBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZv cm0tbW9kLTMuYyAgICAgfCA3MSArKysrKysrKysrKysrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQs IDMwNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5 c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS0xLWJpbmRub3cuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHN5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS0xLWxhenkuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IHN5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS0xLXN0YXRpYy5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTItYmluZG5vdy5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTItbGF6eS5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTMtYmlu ZG5vdy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3Jt LTMtbGF6eS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRm b3JtLW1vZC0yLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxh dGZvcm0tbW9kLTMuYwoKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L01ha2VmaWxlIGIvc3lzZGVw cy94ODYvTWFrZWZpbGUKaW5kZXggMDAxMDlkZWQxMS4uY2Q3NTJiOWJkNiAxMDA2NDQKLS0tIGEv c3lzZGVwcy94ODYvTWFrZWZpbGUKKysrIGIvc3lzZGVwcy94ODYvTWFrZWZpbGUKQEAgLTcsOCAr NywzNCBAQCBzeXNkZXAtZGwtcm91dGluZXMgKz0gZGwtZ2V0LWNwdS1mZWF0dXJlcwogc3lzZGVw X2hlYWRlcnMgKz0gYml0cy9wbGF0Zm9ybS94ODYuaCBzeXMvcGxhdGZvcm0veDg2LmgKIAogdGVz dHMgKz0gdHN0LWdldC1jcHUtZmVhdHVyZXMgdHN0LWdldC1jcHUtZmVhdHVyZXMtc3RhdGljIFwK LQkgdHN0LWNwdS1mZWF0dXJlcy1jcHVpbmZvIHRzdC1jcHUtZmVhdHVyZXMtc3VwcG9ydHMKLXRl c3RzLXN0YXRpYyArPSB0c3QtZ2V0LWNwdS1mZWF0dXJlcy1zdGF0aWMKKwkgdHN0LWNwdS1mZWF0 dXJlcy1jcHVpbmZvIHRzdC1jcHUtZmVhdHVyZXMtc3VwcG9ydHMgXAorCSB0c3QtaWZ1bmMtcGxh dGZvcm0tMS1iaW5kbm93ICBcCisJIHRzdC1pZnVuYy1wbGF0Zm9ybS0xLWxhenkgXAorCSB0c3Qt aWZ1bmMtcGxhdGZvcm0tMS1zdGF0aWMgXAorCSB0c3QtaWZ1bmMtcGxhdGZvcm0tMi1iaW5kbm93 ICBcCisJIHRzdC1pZnVuYy1wbGF0Zm9ybS0yLWxhenkgXAorCSB0c3QtaWZ1bmMtcGxhdGZvcm0t My1iaW5kbm93ICBcCisJIHRzdC1pZnVuYy1wbGF0Zm9ybS0zLWxhenkKK3Rlc3RzLXN0YXRpYyAr PSB0c3QtZ2V0LWNwdS1mZWF0dXJlcy1zdGF0aWMgXAorCSB0c3QtaWZ1bmMtcGxhdGZvcm0tMS1z dGF0aWMKKworbW9kdWxlcy1uYW1lcyArPSB0c3QtaWZ1bmMtcGxhdGZvcm0tbW9kLTIgXAorCXRz dC1pZnVuYy1wbGF0Zm9ybS1tb2QtMworCitMREZMQUdTLXRzdC1pZnVuYy1wbGF0Zm9ybS0xLWxh enkgPSAtV2wsLXosbGF6eQorTERGTEFHUy10c3QtaWZ1bmMtcGxhdGZvcm0tMS1iaW5kbm93ID0g LVdsLC16LG5vdwordHN0LWlmdW5jLXBsYXRmb3JtLTEtYmluZG5vdy1FTlYgPSBMRF9CSU5EX05P Vz0xCitMREZMQUdTLXRzdC1pZnVuYy1wbGF0Zm9ybS0yLWxhenkgPSAtV2wsLXosbGF6eQorTERG TEFHUy10c3QtaWZ1bmMtcGxhdGZvcm0tMi1iaW5kbm93ID0gLVdsLC16LG5vdwordHN0LWlmdW5j LXBsYXRmb3JtLTItYmluZG5vdy1FTlYgPSBMRF9CSU5EX05PVz0xCitMREZMQUdTLXRzdC1pZnVu Yy1wbGF0Zm9ybS0zLWxhenkgPSAtV2wsLXosbGF6eQorTERGTEFHUy10c3QtaWZ1bmMtcGxhdGZv cm0tMy1iaW5kbm93ID0gLVdsLC16LG5vdwordHN0LWlmdW5jLXBsYXRmb3JtLTMtYmluZG5vdy1F TlYgPSBMRF9CSU5EX05PVz0xCisKKyQob2JqcGZ4KXRzdC1pZnVuYy1wbGF0Zm9ybS0yLWJpbmRu b3c6ICQob2JqcGZ4KXRzdC1pZnVuYy1wbGF0Zm9ybS1tb2QtMi5zbworJChvYmpwZngpdHN0LWlm dW5jLXBsYXRmb3JtLTItbGF6eTogJChvYmpwZngpdHN0LWlmdW5jLXBsYXRmb3JtLW1vZC0yLnNv CiskKG9ianBmeCl0c3QtaWZ1bmMtcGxhdGZvcm0tMy1iaW5kbm93OiAkKG9ianBmeCl0c3QtaWZ1 bmMtcGxhdGZvcm0tbW9kLTMuc28KKyQob2JqcGZ4KXRzdC1pZnVuYy1wbGF0Zm9ybS0zLWxhenk6 ICQob2JqcGZ4KXRzdC1pZnVuYy1wbGF0Zm9ybS1tb2QtMy5zbwogZW5kaWYKIAogaWZlcSAoJChz dWJkaXIpLG1hdGgpCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0t MS1iaW5kbm93LmMgYi9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0tMS1iaW5kbm93LmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjgzOTEwNDhhZQotLS0gL2Rl di9udWxsCisrKyBiL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS0xLWJpbmRub3cuYwpA QCAtMCwwICsxIEBACisjaW5jbHVkZSAidHN0LWlmdW5jLXBsYXRmb3JtLTEtbGF6eS5jIgpkaWZm IC0tZ2l0IGEvc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTEtbGF6eS5jIGIvc3lzZGVw cy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTEtbGF6eS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjI1NTZjMjNmM2MKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3g4 Ni90c3QtaWZ1bmMtcGxhdGZvcm0tMS1sYXp5LmMKQEAgLTAsMCArMSw4NyBAQAorLyogUHJvZ3Jh bSB3aXRoIGxvY2FsIElGVU5DIHJlc29sdmVyIGFuZCA8c3lzL3BsYXRmb3JtL3g4Ni5oPi4KKyAg IENvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFy eTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor CisjaW5jbHVkZSA8c3lzL3BsYXRmb3JtL3g4Ni5oPgorI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2su aD4KKworZW51bSBpc2EKK3sKKyAgaGFzX25vbmUsCisgIGhhc19zc2UyLAorICBoYXNfYXZ4MiwK KyAgaGFzX2F2eDUxMmYKK307CisKK3N0YXRpYyBlbnVtIGlzYQorbm9uZSAodm9pZCkKK3sKKyAg cmV0dXJuIGhhc19ub25lOworfQorCitzdGF0aWMgZW51bSBpc2EKK3NzZTIgKHZvaWQpCit7Cisg IHJldHVybiBoYXNfc3NlMjsKK30KKworc3RhdGljIGVudW0gaXNhCithdngyICh2b2lkKQorewor ICByZXR1cm4gaGFzX2F2eDI7Cit9CisKK3N0YXRpYyBlbnVtIGlzYQorYXZ4NTEyZiAodm9pZCkK K3sKKyAgcmV0dXJuIGhhc19hdng1MTJmOworfQorCitzdGF0aWMgX190eXBlb2ZfXyAoYXZ4Mikg KgorcmVzb2x2ZXIgKHZvaWQpCit7CisgIGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkYp KQorICAgIHJldHVybiBhdng1MTJmOworICBlbHNlIGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFW WDIpKQorICAgIHJldHVybiBhdngyOworICBlbHNlIGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKFNT RTIpKQorICAgIHJldHVybiBzc2UyOworICByZXR1cm4gbm9uZTsKK30KKworc3RhdGljIGVudW0g aXNhIGNwdWlkICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoaWZ1bmMgKCJyZXNvbHZlciIpKSk7CisK K3N0YXRpYyBpbnQKK2RvX3Rlc3QgKHZvaWQpCit7CisgIGVudW0gaXNhIGhhc19pc2EgPSBjcHVp ZCAoKTsKKyAgVEVTVF9WRVJJRllfRVhJVCAoISFDUFVfRkVBVFVSRV9VU0FCTEUgKFNTRTIpCisJ CSAgICA9PSAhIV9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJzc2UyIikpOworICBURVNUX1ZFUklG WV9FWElUICghIUNQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKwkJICAgID09ICEhX19idWlsdGlu X2NwdV9zdXBwb3J0cyAoImF2eDIiKSk7CisgIFRFU1RfVkVSSUZZX0VYSVQgKCEhQ1BVX0ZFQVRV UkVfVVNBQkxFIChBVlg1MTJGKQorCQkgICAgPT0gISFfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgi YXZ4NTEyZiIpKTsKKyAgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdng1MTJmIikpCisg ICAgVEVTVF9WRVJJRllfRVhJVCAoaGFzX2lzYSA9PSBoYXNfYXZ4NTEyZik7CisgIGVsc2UgaWYg KF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdngyIikpCisgICAgVEVTVF9WRVJJRllfRVhJVCAo aGFzX2lzYSA9PSBoYXNfYXZ4Mik7CisgIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMg KCJzc2UyIikpCisgICAgVEVTVF9WRVJJRllfRVhJVCAoaGFzX2lzYSA9PSBoYXNfc3NlMik7Cisg IHJldHVybiAwOworfQorCisjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgpkaWZmIC0t Z2l0IGEvc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTEtc3RhdGljLmMgYi9zeXNkZXBz L3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0tMS1zdGF0aWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi5mODM5MTA0OGFlCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94 ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTEtc3RhdGljLmMKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUg InRzdC1pZnVuYy1wbGF0Zm9ybS0xLWxhenkuYyIKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L3Rz dC1pZnVuYy1wbGF0Zm9ybS0yLWJpbmRub3cuYyBiL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0 Zm9ybS0yLWJpbmRub3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43 YzI0NTVjMmEwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRm b3JtLTItYmluZG5vdy5jCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICJ0c3QtaWZ1bmMtcGxhdGZv cm0tMi1sYXp5LmMiCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0t Mi1sYXp5LmMgYi9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0tMi1sYXp5LmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZGIzY2M1ZTEyMwotLS0gL2Rldi9udWxs CisrKyBiL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS0yLWxhenkuYwpAQCAtMCwwICsx LDUxIEBACisvKiBQcm9ncmFtIHdpdGggbG9jYWwgSUZVTkMgcmVzb2x2ZXIgYW5kIDxzeXMvcGxh dGZvcm0veDg2Lmg+LgorICAgQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRo IHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxzeXMvcGxhdGZvcm0veDg2Lmg+CisjaW5jbHVk ZSA8c3VwcG9ydC9jaGVjay5oPgorCitlbnVtIGlzYQoreworICBoYXNfbm9uZSwKKyAgaGFzX3Nz ZTIsCisgIGhhc19hdngyLAorICBoYXNfYXZ4NTEyZgorfTsKKworZXh0ZXJuIGVudW0gaXNhIGNw dWlkICh2b2lkKTsKKworc3RhdGljIGludAorZG9fdGVzdCAodm9pZCkKK3sKKyAgZW51bSBpc2Eg aGFzX2lzYSA9IGNwdWlkICgpOworICBURVNUX1ZFUklGWV9FWElUICghIUNQVV9GRUFUVVJFX1VT QUJMRSAoU1NFMikKKwkJICAgID09ICEhX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInNzZTIiKSk7 CisgIFRFU1RfVkVSSUZZX0VYSVQgKCEhQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorCQkgICAg PT0gISFfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgiYXZ4MiIpKTsKKyAgVEVTVF9WRVJJRllfRVhJ VCAoISFDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkYpCisJCSAgICA9PSAhIV9fYnVpbHRpbl9j cHVfc3VwcG9ydHMgKCJhdng1MTJmIikpOworICBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAo ImF2eDUxMmYiKSkKKyAgICBURVNUX1ZFUklGWV9FWElUIChoYXNfaXNhID09IGhhc19hdng1MTJm KTsKKyAgZWxzZSBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImF2eDIiKSkKKyAgICBURVNU X1ZFUklGWV9FWElUIChoYXNfaXNhID09IGhhc19hdngyKTsKKyAgZWxzZSBpZiAoX19idWlsdGlu X2NwdV9zdXBwb3J0cyAoInNzZTIiKSkKKyAgICBURVNUX1ZFUklGWV9FWElUIChoYXNfaXNhID09 IGhhc19zc2UyKTsKKyAgcmV0dXJuIDA7Cit9CisKKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJp dmVyLmM+CmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0tMy1iaW5k bm93LmMgYi9zeXNkZXBzL3g4Ni90c3QtaWZ1bmMtcGxhdGZvcm0tMy1iaW5kbm93LmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2MyNDU1YzJhMAotLS0gL2Rldi9udWxs CisrKyBiL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS0zLWJpbmRub3cuYwpAQCAtMCww ICsxIEBACisjaW5jbHVkZSAidHN0LWlmdW5jLXBsYXRmb3JtLTItbGF6eS5jIgpkaWZmIC0tZ2l0 IGEvc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLTMtbGF6eS5jIGIvc3lzZGVwcy94ODYv dHN0LWlmdW5jLXBsYXRmb3JtLTMtbGF6eS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjdjMjQ1NWMyYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3g4Ni90c3Qt aWZ1bmMtcGxhdGZvcm0tMy1sYXp5LmMKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgInRzdC1pZnVu Yy1wbGF0Zm9ybS0yLWxhenkuYyIKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1w bGF0Zm9ybS1tb2QtMi5jIGIvc3lzZGVwcy94ODYvdHN0LWlmdW5jLXBsYXRmb3JtLW1vZC0yLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzMwMjI3N2JlNAotLS0gL2Rl di9udWxsCisrKyBiL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS1tb2QtMi5jCkBAIC0w LDAgKzEsNjUgQEAKKy8qIFNoYXJlZCBvYmplY3Qgd2l0aCBsb2NhbCBJRlVOQyByZXNvbHZlciBh bmQgPHN5cy9wbGF0Zm9ybS94ODYuaD4uCisgICBDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMg TGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNl IGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS94ODYu aD4KKworZW51bSBpc2EKK3sKKyAgaGFzX25vbmUsCisgIGhhc19zc2UyLAorICBoYXNfYXZ4MiwK KyAgaGFzX2F2eDUxMmYKK307CisKK3N0YXRpYyBlbnVtIGlzYQorbm9uZSAodm9pZCkKK3sKKyAg cmV0dXJuIGhhc19ub25lOworfQorCitzdGF0aWMgZW51bSBpc2EKK3NzZTIgKHZvaWQpCit7Cisg IHJldHVybiBoYXNfc3NlMjsKK30KKworc3RhdGljIGVudW0gaXNhCithdngyICh2b2lkKQorewor ICByZXR1cm4gaGFzX2F2eDI7Cit9CisKK3N0YXRpYyBlbnVtIGlzYQorYXZ4NTEyZiAodm9pZCkK K3sKKyAgcmV0dXJuIGhhc19hdng1MTJmOworfQorCitzdGF0aWMgX190eXBlb2ZfXyAoYXZ4Mikg KgorcmVzb2x2ZXIgKHZvaWQpCit7CisgIGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkYp KQorICAgIHJldHVybiBhdng1MTJmOworICBlbHNlIGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFW WDIpKQorICAgIHJldHVybiBhdngyOworICBlbHNlIGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKFNT RTIpKQorICAgIHJldHVybiBzc2UyOworICByZXR1cm4gbm9uZTsKK30KKworZW51bSBpc2EgY3B1 aWQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChpZnVuYyAoInJlc29sdmVyIikpKTsKZGlmZiAtLWdp dCBhL3N5c2RlcHMveDg2L3RzdC1pZnVuYy1wbGF0Zm9ybS1tb2QtMy5jIGIvc3lzZGVwcy94ODYv dHN0LWlmdW5jLXBsYXRmb3JtLW1vZC0zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uMTAwMmM0NDRhYgotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMveDg2L3RzdC1p ZnVuYy1wbGF0Zm9ybS1tb2QtMy5jCkBAIC0wLDAgKzEsNzEgQEAKKy8qIFNoYXJlZCBvYmplY3Qg d2l0aCBsb2NhbCBJRlVOQyByZXNvbHZlciBhbmQgPHN5cy9wbGF0Zm9ybS94ODYuaD4uCisgICBD b3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7 IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKwor I2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS94ODYuaD4KKworZW51bSBpc2EKK3sKKyAgaGFzX25vbmUs CisgIGhhc19zc2UyLAorICBoYXNfYXZ4MiwKKyAgaGFzX2F2eDUxMmYKK307CisKK3N0YXRpYyBl bnVtIGlzYQorbm9uZSAodm9pZCkKK3sKKyAgcmV0dXJuIGhhc19ub25lOworfQorCitzdGF0aWMg ZW51bSBpc2EKK3NzZTIgKHZvaWQpCit7CisgIHJldHVybiBoYXNfc3NlMjsKK30KKworc3RhdGlj IGVudW0gaXNhCithdngyICh2b2lkKQoreworICByZXR1cm4gaGFzX2F2eDI7Cit9CisKK3N0YXRp YyBlbnVtIGlzYQorYXZ4NTEyZiAodm9pZCkKK3sKKyAgcmV0dXJuIGhhc19hdng1MTJmOworfQor CitzdGF0aWMgX190eXBlb2ZfXyAoYXZ4MikgKgorcmVzb2x2ZXIgKHZvaWQpCit7CisgIGlmIChD UFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkYpKQorICAgIHJldHVybiBhdng1MTJmOworICBlbHNl IGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpKQorICAgIHJldHVybiBhdngyOworICBlbHNl IGlmIChDUFVfRkVBVFVSRV9VU0FCTEUgKFNTRTIpKQorICAgIHJldHVybiBzc2UyOworICByZXR1 cm4gbm9uZTsKK30KKworc3RhdGljIGVudW0gaXNhIGNwdWlkX2xvY2FsICh2b2lkKSBfX2F0dHJp YnV0ZV9fICgoaWZ1bmMgKCJyZXNvbHZlciIpKSk7CisKK2VudW0gaXNhCitjcHVpZCAodm9pZCkK K3sKKyAgcmV0dXJuIGNwdWlkX2xvY2FsICgpOworfQotLSAKMi4yOS4yCgo= --0000000000001802c105b7417b64--