From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 120293 invoked by alias); 24 May 2017 00:52:33 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 120274 invoked by uid 89); 24 May 2017 00:52:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=tired, sk:private X-HELO: mail-io0-f179.google.com Received: from mail-io0-f179.google.com (HELO mail-io0-f179.google.com) (209.85.223.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 24 May 2017 00:52:30 +0000 Received: by mail-io0-f179.google.com with SMTP id p24so108499185ioi.0 for ; Tue, 23 May 2017 17:52:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=CbTgm25q7WCp4AdXAaYtx61Q366Jgd+si9TZmg4yKMw=; b=YbNuU7yDma+J6v4c5y0QLlyhn1CMqn09C44LwLPIOvoo23nvNp/2wznNHnvbDmhqYm +z4Gzhl+yNDzlR+g9ZAw8SEfv5uDPmWH+6NzpcV7ojWnD/emQA9y6B2lkPw7IKh7JN2g mlYctNmYFpHRMTTujqhLGHWu9Nr+vuKVqG70+w6Xk3687KjdVC2NVKN91SIqzQd8GjlN Hyg1evChVLwxjRQyfl6pnwdSWeS2nv5OfPL6ljnc3sax4pYqsi2LfWYQDWo/q3Omwcme rZJ2urTzNMYZi2Iaz9vR6JYD/gVWQeAO6gaWEVy4AmyVFACkWlZ/TrtOn8qs8HnlWuwa R7qg== X-Gm-Message-State: AODbwcCwGPwYzdvZaTVQIY+3xIKU0jSrsvMTf8hE6fn3+N7gqx8Gz/Hc akCTljvGJv9SMvP0gyhuolZf9Ls2Qa/N X-Received: by 10.107.6.218 with SMTP id f87mr29228304ioi.2.1495587151954; Tue, 23 May 2017 17:52:31 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.6.226 with HTTP; Tue, 23 May 2017 17:52:09 -0700 (PDT) In-Reply-To: References: From: Jason Merrill Date: Wed, 24 May 2017 01:45:00 -0000 Message-ID: Subject: Re: RFA: PATCH to add id_strcmp helper function To: Martin Sebor Cc: gcc-patches List Content-Type: multipart/mixed; boundary="001a113fb1caec976d05503a8431" X-IsSubscribed: yes X-SW-Source: 2017-05/txt/msg01814.txt.bz2 --001a113fb1caec976d05503a8431 Content-Type: text/plain; charset="UTF-8" Content-length: 792 On Thu, May 18, 2017 at 11:03 PM, Martin Sebor wrote: > On 05/18/2017 08:30 PM, Jason Merrill wrote: >> >> I got tired of writing strcmp (IDENTIFIER_POINTER and decided to wrap >> it in an inline function. I decided to use "id_strcmp" instead of >> just overloading strcmp, but I don't feel strongly about that choice. >> >> The second patch changes all existing uses of that pattern to use the >> new function. >> >> OK for trunk? > > > Since all the uses are of the form !id_strcmp(), would taking > a step further and introducing a bool id_equal() be going too > far? > > Besides being (arguably) easier to read, it would get around > the question of whether it should be !id_strcmp() or > id_strcmp == 0, or perhaps even 0 == id_strcmp(). Makes sense. OK for trunk? --001a113fb1caec976d05503a8431 Content-Type: text/plain; charset="US-ASCII"; name="id-equal.diff" Content-Disposition: attachment; filename="id-equal.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3209lok0 Content-length: 20488 Y29tbWl0IGNhOTZkODUzM2Y4MDhlOGI4ZWJjZDM1ZWU2OTlhOTBkY2MyYmY4 Y2YKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFRodSBNYXkgMTggMTU6MjM6MjcgMjAxNyAtMDQwMAoKICAgICAg ICAgICAgKiB0cmVlLmggKGlkX2VxdWFsKTogTmV3LgogICAgCiAgICAgICAg ICAgICogZHdhcmYyb3V0LmMsIGhzYS1nZW4uYywgaXBhLWRldmlydC5jLCBv bXAtZXhwYW5kLmMsCiAgICAgICAgICAgIG9tcC1zaW1kLWNsb25lLmMsIHJl YWQtcnRsLWZ1bmN0aW9uLmMsIHRyZWUtY2hrcC5jLCB0cmVlLmM6IFVzZSBp dAogICAgICAgICAgICBpbnN0ZWFkIG9mIHN0cmNtcCBvZiBJREVOVElGSUVS X1BPSU5URVIuCiAgICBjLWZhbWlseS8KICAgICAgICAgICAgKiBjLWFkYS1z cGVjLmMsIGMtcHJhZ21hLmM6IFVzZSBpdC4KICAgIGNwLwogICAgICAgICAg ICAqIGNwLXRyZWUuaCwgZGVjbDIuYywgbWFuZ2xlLmMsIHBhcnNlci5jLCBw dC5jLCBzZW1hbnRpY3MuYzogVXNlIGl0LgogICAgICAgICAgICAqIGVycm9y LmM6IFVzZSBpc190aGlzX3BhcmFtZXRlci4KCmRpZmYgLS1naXQgYS9nY2Mv Yy1mYW1pbHkvYy1hZGEtc3BlYy5jIGIvZ2NjL2MtZmFtaWx5L2MtYWRhLXNw ZWMuYwppbmRleCAxOGM1Y2NmLi42Y2YyOThhIDEwMDY0NAotLS0gYS9nY2Mv Yy1mYW1pbHkvYy1hZGEtc3BlYy5jCisrKyBiL2djYy9jLWZhbWlseS9jLWFk YS1zcGVjLmMKQEAgLTE3OTksNyArMTc5OSw3IEBAIGlzX2NoYXJfYXJyYXkg KHRyZWUgdCkKIAogICB0bXAgPSBUUkVFX1RZUEUgKHRtcCk7CiAgIHJldHVy biBudW1fZGltID09IDEgJiYgVFJFRV9DT0RFICh0bXApID09IElOVEVHRVJf VFlQRQotICAgICYmICFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoREVD TF9OQU1FIChUWVBFX05BTUUgKHRtcCkpKSwgImNoYXIiKTsKKyAgICAmJiBp ZF9lcXVhbCAoREVDTF9OQU1FIChUWVBFX05BTUUgKHRtcCkpLCAiY2hhciIp OwogfQogCiAvKiBEdW1wIGluIEJVRkZFUiBhbiBhcnJheSB0eXBlIFQgaW4g QWRhIHN5bnRheC4gIEFzc3VtZSB0aGF0IHRoZSAidHlwZSIKZGlmZiAtLWdp dCBhL2djYy9jLWZhbWlseS9jLXByYWdtYS5jIGIvZ2NjL2MtZmFtaWx5L2Mt cHJhZ21hLmMKaW5kZXggYmMzNjYyNi4uNDhiMDJiOCAxMDA2NDQKLS0tIGEv Z2NjL2MtZmFtaWx5L2MtcHJhZ21hLmMKKysrIGIvZ2NjL2MtZmFtaWx5L2Mt cHJhZ21hLmMKQEAgLTUxNCw3ICs1MTQsNyBAQCBoYW5kbGVfcHJhZ21hX3Jl ZGVmaW5lX2V4dG5hbWUgKGNwcF9yZWFkZXIgKiBBUkdfVU5VU0VEIChkdW1t eSkpCiAJICAgICAgY29uc3QgY2hhciAqbmFtZSA9IElERU5USUZJRVJfUE9J TlRFUiAoREVDTF9BU1NFTUJMRVJfTkFNRSAoZGVjbCkpOwogCSAgICAgIG5h bWUgPSB0YXJnZXRtLnN0cmlwX25hbWVfZW5jb2RpbmcgKG5hbWUpOwogCi0J ICAgICAgaWYgKHN0cmNtcCAobmFtZSwgSURFTlRJRklFUl9QT0lOVEVSIChu ZXduYW1lKSkpCisJICAgICAgaWYgKCFpZF9lcXVhbCAobmV3bmFtZSwgbmFt ZSkpCiAJCXdhcm5pbmcgKE9QVF9XcHJhZ21hcywgIiNwcmFnbWEgcmVkZWZp bmVfZXh0bmFtZSBpZ25vcmVkIGR1ZSB0byAiCiAJCQkgImNvbmZsaWN0IHdp dGggcHJldmlvdXMgcmVuYW1lIik7CiAJICAgIH0KQEAgLTU4Nyw3ICs1ODcs NyBAQCBtYXliZV9hcHBseV9yZW5hbWluZ19wcmFnbWEgKHRyZWUgZGVjbCwg dHJlZSBhc21uYW1lKQogCWlmIChERUNMX05BTUUgKGRlY2wpID09IHAtPm9s ZG5hbWUpCiAJICB7CiAJICAgIC8qIE9ubHkgd2FybiBpZiB0aGVyZSBpcyBh IGNvbmZsaWN0LiAgKi8KLQkgICAgaWYgKHN0cmNtcCAoSURFTlRJRklFUl9Q T0lOVEVSIChwLT5uZXduYW1lKSwgb2xkbmFtZSkpCisJICAgIGlmICghaWRf ZXF1YWwgKHAtPm5ld25hbWUsIG9sZG5hbWUpKQogCSAgICAgIHdhcm5pbmcg KE9QVF9XcHJhZ21hcywgIiNwcmFnbWEgcmVkZWZpbmVfZXh0bmFtZSBpZ25v cmVkIGR1ZSB0byAiCiAJCSAgICAgICAiY29uZmxpY3Qgd2l0aCBwcmV2aW91 cyByZW5hbWUiKTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2NwL2NwLXRyZWUuaCBi L2djYy9jcC9jcC10cmVlLmgKaW5kZXggOThlZjAyMy4uN2M0NmNhZCAxMDA2 NDQKLS0tIGEvZ2NjL2NwL2NwLXRyZWUuaAorKysgYi9nY2MvY3AvY3AtdHJl ZS5oCkBAIC0yOTYwLDcgKzI5NjAsNyBAQCBzdHJ1Y3QgR1RZKCgpKSBsYW5n X2RlY2wgewogICAgdGVtcGxhdGUgZnVuY3Rpb24uICAqLwogI2RlZmluZSBE RUNMX1BSRVRUWV9GVU5DVElPTl9QKE5PREUpIFwKICAgKERFQ0xfTkFNRSAo Tk9ERSkgXAotICAgJiYgIXN0cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSIChE RUNMX05BTUUgKE5PREUpKSwgIl9fUFJFVFRZX0ZVTkNUSU9OX18iKSkKKyAg ICYmIGlkX2VxdWFsIChERUNMX05BTUUgKE5PREUpLCAiX19QUkVUVFlfRlVO Q1RJT05fXyIpKQogCiAvKiBOb256ZXJvIGlmIHRoZSB2YXJpYWJsZSB3YXMg ZGVjbGFyZWQgdG8gYmUgdGhyZWFkLWxvY2FsLgogICAgV2UgbmVlZCBhIHNw ZWNpYWwgQysrIHZlcnNpb24gb2YgdGhpcyB0ZXN0IGJlY2F1c2UgdGhlIG1p ZGRsZS1lbmQKZGlmZiAtLWdpdCBhL2djYy9jcC9kZWNsMi5jIGIvZ2NjL2Nw L2RlY2wyLmMKaW5kZXggODUzMTBlMC4uMjk4ODNkYSAxMDA2NDQKLS0tIGEv Z2NjL2NwL2RlY2wyLmMKKysrIGIvZ2NjL2NwL2RlY2wyLmMKQEAgLTgyNyw3 ICs4MjcsNyBAQCBncm9rZmllbGQgKGNvbnN0IGNwX2RlY2xhcmF0b3IgKmRl Y2xhcmF0b3IsCiAJfQogCiAgICAgICBpZiAoSURFTlRJRklFUl9QT0lOVEVS IChuYW1lKVswXSA9PSAnXycKLQkgICYmICEgc3RyY21wIChJREVOVElGSUVS X1BPSU5URVIgKG5hbWUpLCAiX3ZwdHIiKSkKKwkgICYmIGlkX2VxdWFsIChu YW1lLCAiX3ZwdHIiKSkKIAllcnJvciAoIm1lbWJlciAlcUQgY29uZmxpY3Rz IHdpdGggdmlydHVhbCBmdW5jdGlvbiB0YWJsZSBmaWVsZCBuYW1lIiwKIAkg ICAgICAgdmFsdWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL2djYy9jcC9lcnJv ci5jIGIvZ2NjL2NwL2Vycm9yLmMKaW5kZXggMWFlMjViYi4uYjY1Y2VlNCAx MDA2NDQKLS0tIGEvZ2NjL2NwL2Vycm9yLmMKKysrIGIvZ2NjL2NwL2Vycm9y LmMKQEAgLTIxNDksOCArMjE0OSw3IEBAIGR1bXBfZXhwciAoY3h4X3ByZXR0 eV9wcmludGVyICpwcCwgdHJlZSB0LCBpbnQgZmxhZ3MpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmbGFncyB8IFRGRl9FWFBSX0lOX1BBUkVOUyk7 CiAJCXBwX2N4eF9kb3QgKHBwKTsKIAkgICAgICB9Ci0JICAgIGVsc2UgaWYg KFRSRUVfQ09ERSAob2IpICE9IFBBUk1fREVDTAotCQkgICAgIHx8IHN0cmNt cCAoSURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUgKG9iKSksICJ0aGlz IikpCisJICAgIGVsc2UgaWYgKCFpc190aGlzX3BhcmFtZXRlciAob2IpKQog CSAgICAgIHsKIAkJZHVtcF9leHByIChwcCwgb2IsIGZsYWdzIHwgVEZGX0VY UFJfSU5fUEFSRU5TKTsKIAkJcHBfY3h4X2Fycm93IChwcCk7CkBAIC0yMjMx LDkgKzIyMzAsNyBAQCBkdW1wX2V4cHIgKGN4eF9wcmV0dHlfcHJpbnRlciAq cHAsIHRyZWUgdCwgaW50IGZsYWdzKQogCWlmIChJTkRJUkVDVF9SRUZfUCAo b2IpKQogCSAgewogCSAgICBvYiA9IFRSRUVfT1BFUkFORCAob2IsIDApOwot CSAgICBpZiAoVFJFRV9DT0RFIChvYikgIT0gUEFSTV9ERUNMCi0JCXx8IChE RUNMX05BTUUgKG9iKQotCQkgICAgJiYgc3RyY21wIChJREVOVElGSUVSX1BP SU5URVIgKERFQ0xfTkFNRSAob2IpKSwgInRoaXMiKSkpCisJICAgIGlmICgh aXNfdGhpc19wYXJhbWV0ZXIgKG9iKSkKIAkgICAgICB7CiAJCWR1bXBfZXhw ciAocHAsIG9iLCBmbGFncyB8IFRGRl9FWFBSX0lOX1BBUkVOUyk7CiAJCWlm IChUUkVFX0NPREUgKFRSRUVfVFlQRSAob2IpKSA9PSBSRUZFUkVOQ0VfVFlQ RSkKZGlmZiAtLWdpdCBhL2djYy9jcC9tYW5nbGUuYyBiL2djYy9jcC9tYW5n bGUuYwppbmRleCA0MjI5MGZlLi5lODY2Njc1IDEwMDY0NAotLS0gYS9nY2Mv Y3AvbWFuZ2xlLmMKKysrIGIvZ2NjL2NwL21hbmdsZS5jCkBAIC0yOTAwLDcg KzI5MDAsNyBAQCB3cml0ZV9leHByZXNzaW9uICh0cmVlIGV4cHIpCiAgICAg d3JpdGVfdGVtcGxhdGVfYXJnX2xpdGVyYWwgKGV4cHIpOwogICBlbHNlIGlm IChjb2RlID09IFBBUk1fREVDTCAmJiBERUNMX0FSVElGSUNJQUwgKGV4cHIp KQogICAgIHsKLSAgICAgIGdjY19hc3NlcnQgKCFzdHJjbXAgKCJ0aGlzIiwg SURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUgKGV4cHIpKSkpOworICAg ICAgZ2NjX2Fzc2VydCAoaWRfZXF1YWwgKERFQ0xfTkFNRSAoZXhwciksICJ0 aGlzIikpOwogICAgICAgd3JpdGVfc3RyaW5nICgiZnBUIik7CiAgICAgfQog ICBlbHNlIGlmIChjb2RlID09IFBBUk1fREVDTCkKZGlmZiAtLWdpdCBhL2dj Yy9jcC9wYXJzZXIuYyBiL2djYy9jcC9wYXJzZXIuYwppbmRleCA0ZjJjMmQ1 Li5hMWFkYTAyIDEwMDY0NAotLS0gYS9nY2MvY3AvcGFyc2VyLmMKKysrIGIv Z2NjL2NwL3BhcnNlci5jCkBAIC0zMjAxLDcgKzMyMDEsNyBAQCBjcF9wYXJz ZXJfZGlhZ25vc2VfaW52YWxpZF90eXBlX25hbWUgKGNwX3BhcnNlciAqcGFy c2VyLCB0cmVlIGlkLAogCQkiLXN0ZD1jKysxMSBvciAtc3RkPWdudSsrMTEi KTsKICAgICAgIGVsc2UgaWYgKGN4eF9kaWFsZWN0IDwgY3h4MTEKIAkgICAg ICAgJiYgVFJFRV9DT0RFIChpZCkgPT0gSURFTlRJRklFUl9OT0RFCi0JICAg ICAgICYmICFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoaWQpLCAidGhy ZWFkX2xvY2FsIikpCisJICAgICAgICYmIGlkX2VxdWFsIChpZCwgInRocmVh ZF9sb2NhbCIpKQogCWluZm9ybSAobG9jYXRpb24sICJDKysxMSAlPHRocmVh ZF9sb2NhbCU+IG9ubHkgYXZhaWxhYmxlIHdpdGggIgogCQkiLXN0ZD1jKysx MSBvciAtc3RkPWdudSsrMTEiKTsKICAgICAgIGVsc2UgaWYgKCFmbGFnX2Nv bmNlcHRzICYmIGlkID09IHJpZHBvaW50ZXJzWyhpbnQpUklEX0NPTkNFUFRd KQpAQCAtNzgyMyw3ICs3ODIzLDcgQEAgY3BfcGFyc2VyX3VuYXJ5X2V4cHJl c3Npb24gKGNwX3BhcnNlciAqcGFyc2VyLCBjcF9pZF9raW5kICogcGlkaywK IAkJLyogSVNPIEMrKyBkZWZpbmVzIGFsaWdub2Ygb25seSB3aXRoIHR5cGVz LCBub3Qgd2l0aAogCQkgICBleHByZXNzaW9ucy4gU28gcGVkd2FybiBpZiBh bGlnbm9mIGlzIHVzZWQgd2l0aCBhIG5vbi0KIAkJICAgdHlwZSBleHByZXNz aW9uLiBIb3dldmVyLCBfX2FsaWdub2ZfXyBpcyBvay4gICovCi0JCWlmICgh c3RyY21wIChJREVOVElGSUVSX1BPSU5URVIgKHRva2VuLT51LnZhbHVlKSwg ImFsaWdub2YiKSkKKwkJaWYgKGlkX2VxdWFsICh0b2tlbi0+dS52YWx1ZSwg ImFsaWdub2YiKSkKIAkJICBwZWR3YXJuICh0b2tlbi0+bG9jYXRpb24sIE9Q VF9XcGVkYW50aWMsCiAJCQkgICAiSVNPIEMrKyBkb2VzIG5vdCBhbGxvdyAl PGFsaWdub2YlPiAiCiAJCQkgICAid2l0aCBhIG5vbi10eXBlIik7CkBAIC0y MDM5NywxNyArMjAzOTcsMTcgQEAgY3BfcGFyc2VyX3ZpcnRfc3BlY2lmaWVy X3NlcV9vcHQgKGNwX3BhcnNlciogcGFyc2VyKQogICAgICAgLyogU2VlIGlm IGl0J3MgYSB2aXJ0LXNwZWNpZmllci1xdWFsaWZpZXIuICAqLwogICAgICAg aWYgKHRva2VuLT50eXBlICE9IENQUF9OQU1FKQogICAgICAgICBicmVhazsK LSAgICAgIGlmICghc3RyY21wIChJREVOVElGSUVSX1BPSU5URVIodG9rZW4t PnUudmFsdWUpLCAib3ZlcnJpZGUiKSkKKyAgICAgIGlmIChpZF9lcXVhbCAo dG9rZW4tPnUudmFsdWUsICJvdmVycmlkZSIpKQogICAgICAgICB7CiAgICAg ICAgICAgbWF5YmVfd2Fybl9jcHAweCAoQ1BQMFhfT1ZFUlJJREVfQ09OVFJP TFMpOwogICAgICAgICAgIHZpcnRfc3BlY2lmaWVyID0gVklSVF9TUEVDX09W RVJSSURFOwogICAgICAgICB9Ci0gICAgICBlbHNlIGlmICghc3RyY21wIChJ REVOVElGSUVSX1BPSU5URVIodG9rZW4tPnUudmFsdWUpLCAiZmluYWwiKSkK KyAgICAgIGVsc2UgaWYgKGlkX2VxdWFsICh0b2tlbi0+dS52YWx1ZSwgImZp bmFsIikpCiAgICAgICAgIHsKICAgICAgICAgICBtYXliZV93YXJuX2NwcDB4 IChDUFAwWF9PVkVSUklERV9DT05UUk9MUyk7CiAgICAgICAgICAgdmlydF9z cGVjaWZpZXIgPSBWSVJUX1NQRUNfRklOQUw7CiAgICAgICAgIH0KLSAgICAg IGVsc2UgaWYgKCFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUih0b2tlbi0+ dS52YWx1ZSksICJfX2ZpbmFsIikpCisgICAgICBlbHNlIGlmIChpZF9lcXVh bCAodG9rZW4tPnUudmFsdWUsICJfX2ZpbmFsIikpCiAgICAgICAgIHsKICAg ICAgICAgICB2aXJ0X3NwZWNpZmllciA9IFZJUlRfU1BFQ19GSU5BTDsKICAg ICAgICAgfQpAQCAtMjc2NDQsNyArMjc2NDQsNyBAQCBzdGF0aWMgYm9vbAog dG9rZW5faXNfX3RocmVhZCAoY3BfdG9rZW4gKnRva2VuKQogewogICBnY2Nf YXNzZXJ0ICh0b2tlbi0+a2V5d29yZCA9PSBSSURfVEhSRUFEKTsKLSAgcmV0 dXJuICFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAodG9rZW4tPnUudmFs dWUpLCAiX190aHJlYWQiKTsKKyAgcmV0dXJuIGlkX2VxdWFsICh0b2tlbi0+ dS52YWx1ZSwgIl9fdGhyZWFkIik7CiB9CiAKIC8qIFNldCB0aGUgbG9jYXRp b24gZm9yIGEgZGVjbGFyYXRvciBzcGVjaWZpZXIgYW5kIGNoZWNrIGlmIGl0 IGlzCkBAIC0zMTI1NCw3ICszMTI1NCw3IEBAIGNwX3BhcnNlcl9vYWNjX3No YXBlX2NsYXVzZSAoY3BfcGFyc2VyICpwYXJzZXIsIG9tcF9jbGF1c2VfY29k ZSBraW5kLAogCSAgICB9CiAJICAvKiBXb3JrZXIgbnVtOiBhcmd1bWVudCBh bmQgdmVjdG9yIGxlbmd0aDogYXJndW1lbnRzLiAgKi8KIAkgIGVsc2UgaWYg KGNwX2xleGVyX25leHRfdG9rZW5faXMgKGxleGVyLCBDUFBfTkFNRSkKLQkJ ICAgJiYgc3RyY21wIChpZCwgSURFTlRJRklFUl9QT0lOVEVSIChuZXh0LT51 LnZhbHVlKSkgPT0gMAorCQkgICAmJiBpZF9lcXVhbCAobmV4dC0+dS52YWx1 ZSwgaWQpCiAJCSAgICYmIGNwX2xleGVyX250aF90b2tlbl9pcyAobGV4ZXIs IDIsIENQUF9DT0xPTikpCiAJICAgIHsKIAkgICAgICBjcF9sZXhlcl9jb25z dW1lX3Rva2VuIChsZXhlcik7ICAvKiBpZCAgKi8KQEAgLTM3MTI1LDEwICsz NzEyNSw4IEBAIGNwX3BhcnNlcl9vbXBfZGVjbGFyZV9yZWR1Y3Rpb24gKGNw X3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaywKICAgICAg IGVsc2UgaWYgKEFSSVRITUVUSUNfVFlQRV9QICh0eXBlKQogCSAgICAgICAm JiAob3JpZ19yZWR1Y19pZCA9PSBOVUxMX1RSRUUKIAkJICAgfHwgKFRSRUVf Q09ERSAodHlwZSkgIT0gQ09NUExFWF9UWVBFCi0JCSAgICAgICAmJiAoc3Ry Y21wIChJREVOVElGSUVSX1BPSU5URVIgKG9yaWdfcmVkdWNfaWQpLAotCQkJ CSAgICJtaW4iKSA9PSAwCi0JCQkgICB8fCBzdHJjbXAgKElERU5USUZJRVJf UE9JTlRFUiAob3JpZ19yZWR1Y19pZCksCi0JCQkJICAgICAgIm1heCIpID09 IDApKSkpCisJCSAgICAgICAmJiAoaWRfZXF1YWwgKG9yaWdfcmVkdWNfaWQs ICJtaW4iKQorCQkJICAgfHwgaWRfZXF1YWwgKG9yaWdfcmVkdWNfaWQsICJt YXgiKSkpKSkKIAllcnJvcl9hdCAobG9jLCAicHJlZGVjbGFyZWQgYXJpdGht ZXRpYyB0eXBlICVxVCBpbiAiCiAJCSAgICAgICAiJTwjcHJhZ21hIG9tcCBk ZWNsYXJlIHJlZHVjdGlvbiU+IiwgdHlwZSk7CiAgICAgICBlbHNlIGlmIChU UkVFX0NPREUgKHR5cGUpID09IEZVTkNUSU9OX1RZUEUKQEAgLTM4NjY1LDE1 ICszODY2MywxNSBAQCBjcF9wYXJzZXJfY2lsa19zaW1kX2NsYXVzZV9uYW1l IChjcF9wYXJzZXIgKnBhcnNlcikKICAgICBjbGF1c2VfdHlwZSA9IFBSQUdN QV9DSUxLX0NMQVVTRV9QUklWQVRFOwogICBlbHNlIGlmICghdG9rZW4tPnUu dmFsdWUgfHwgdG9rZW4tPnR5cGUgIT0gQ1BQX05BTUUpCiAgICAgcmV0dXJu IFBSQUdNQV9DSUxLX0NMQVVTRV9OT05FOwotICBlbHNlIGlmICghc3RyY21w IChJREVOVElGSUVSX1BPSU5URVIgKHRva2VuLT51LnZhbHVlKSwgInZlY3Rv cmxlbmd0aCIpKQorICBlbHNlIGlmIChpZF9lcXVhbCAodG9rZW4tPnUudmFs dWUsICJ2ZWN0b3JsZW5ndGgiKSkKICAgICBjbGF1c2VfdHlwZSA9IFBSQUdN QV9DSUxLX0NMQVVTRV9WRUNUT1JMRU5HVEg7Ci0gIGVsc2UgaWYgKCFzdHJj bXAgKElERU5USUZJRVJfUE9JTlRFUiAodG9rZW4tPnUudmFsdWUpLCAibGlu ZWFyIikpCisgIGVsc2UgaWYgKGlkX2VxdWFsICh0b2tlbi0+dS52YWx1ZSwg ImxpbmVhciIpKQogICAgIGNsYXVzZV90eXBlID0gUFJBR01BX0NJTEtfQ0xB VVNFX0xJTkVBUjsKLSAgZWxzZSBpZiAoIXN0cmNtcCAoSURFTlRJRklFUl9Q T0lOVEVSICh0b2tlbi0+dS52YWx1ZSksICJmaXJzdHByaXZhdGUiKSkKKyAg ZWxzZSBpZiAoaWRfZXF1YWwgKHRva2VuLT51LnZhbHVlLCAiZmlyc3Rwcml2 YXRlIikpCiAgICAgY2xhdXNlX3R5cGUgPSBQUkFHTUFfQ0lMS19DTEFVU0Vf RklSU1RQUklWQVRFOwotICBlbHNlIGlmICghc3RyY21wIChJREVOVElGSUVS X1BPSU5URVIgKHRva2VuLT51LnZhbHVlKSwgImxhc3Rwcml2YXRlIikpCisg IGVsc2UgaWYgKGlkX2VxdWFsICh0b2tlbi0+dS52YWx1ZSwgImxhc3Rwcml2 YXRlIikpCiAgICAgY2xhdXNlX3R5cGUgPSBQUkFHTUFfQ0lMS19DTEFVU0Vf TEFTVFBSSVZBVEU7Ci0gIGVsc2UgaWYgKCFzdHJjbXAgKElERU5USUZJRVJf UE9JTlRFUiAodG9rZW4tPnUudmFsdWUpLCAicmVkdWN0aW9uIikpCisgIGVs c2UgaWYgKGlkX2VxdWFsICh0b2tlbi0+dS52YWx1ZSwgInJlZHVjdGlvbiIp KQogICAgIGNsYXVzZV90eXBlID0gUFJBR01BX0NJTEtfQ0xBVVNFX1JFRFVD VElPTjsKICAgZWxzZQogICAgIHJldHVybiBQUkFHTUFfQ0lMS19DTEFVU0Vf Tk9ORTsKZGlmZiAtLWdpdCBhL2djYy9jcC9wdC5jIGIvZ2NjL2NwL3B0LmMK aW5kZXggNTRkZTM0Yi4uNDk5NTdmOSAxMDA2NDQKLS0tIGEvZ2NjL2NwL3B0 LmMKKysrIGIvZ2NjL2NwL3B0LmMKQEAgLTM0MjYsNyArMzQyNiw3IEBAIGJ1 aWx0aW5fcGFja19mbl9wICh0cmVlIGZuKQogICAgICAgfHwgIURFQ0xfSVNf QlVJTFRJTiAoZm4pKQogICAgIHJldHVybiBmYWxzZTsKIAotICBpZiAoc3Ry Y21wIChJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoZm4pKSwgIl9f aW50ZWdlcl9wYWNrIikgPT0gMCkKKyAgaWYgKGlkX2VxdWFsIChERUNMX05B TUUgKGZuKSwgIl9faW50ZWdlcl9wYWNrIikpCiAgICAgcmV0dXJuIHRydWU7 CiAKICAgcmV0dXJuIGZhbHNlOwpAQCAtMzUwNCw3ICszNTA0LDcgQEAgZXhw YW5kX2J1aWx0aW5fcGFja19jYWxsICh0cmVlIGNhbGwsIHRyZWUgYXJncywg dHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4sCiAKICAgdHJlZSBmbiA9IENBTExf RVhQUl9GTiAoY2FsbCk7CiAKLSAgaWYgKHN0cmNtcCAoSURFTlRJRklFUl9Q T0lOVEVSIChERUNMX05BTUUgKGZuKSksICJfX2ludGVnZXJfcGFjayIpID09 IDApCisgIGlmIChpZF9lcXVhbCAoREVDTF9OQU1FIChmbiksICJfX2ludGVn ZXJfcGFjayIpKQogICAgIHJldHVybiBleHBhbmRfaW50ZWdlcl9wYWNrIChj YWxsLCBhcmdzLCBjb21wbGFpbiwgaW5fZGVjbCk7CiAKICAgcmV0dXJuIE5V TExfVFJFRTsKZGlmZiAtLWdpdCBhL2djYy9jcC9zZW1hbnRpY3MuYyBiL2dj Yy9jcC9zZW1hbnRpY3MuYwppbmRleCAxYmE5NjFlLi4wZTllMzQ4IDEwMDY0 NAotLS0gYS9nY2MvY3Avc2VtYW50aWNzLmMKKysrIGIvZ2NjL2NwL3NlbWFu dGljcy5jCkBAIC0yODgyLDcgKzI4ODIsNyBAQCBiZWdpbl9jbGFzc19kZWZp bml0aW9uICh0cmVlIHQpCiAgICAgICBpZiAobnMgJiYgVFJFRV9DT0RFIChu cykgPT0gTkFNRVNQQUNFX0RFQ0wKIAkgICYmIERFQ0xfQ09OVEVYVCAobnMp ID09IHN0ZF9ub2RlCiAJICAmJiBERUNMX05BTUUgKG5zKQotCSAgJiYgIXN0 cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUgKG5zKSksICJk ZWNpbWFsIikpCisJICAmJiBpZF9lcXVhbCAoREVDTF9OQU1FIChucyksICJk ZWNpbWFsIikpCiAJewogCSAgY29uc3QgY2hhciAqbiA9IFRZUEVfTkFNRV9T VFJJTkcgKHQpOwogCSAgaWYgKChzdHJjbXAgKG4sICJkZWNpbWFsMzIiKSA9 PSAwKQpkaWZmIC0tZ2l0IGEvZ2NjL2R3YXJmMm91dC5jIGIvZ2NjL2R3YXJm Mm91dC5jCmluZGV4IDVmZjQ1ZWIuLjdhNDJmOGYgMTAwNjQ0Ci0tLSBhL2dj Yy9kd2FyZjJvdXQuYworKysgYi9nY2MvZHdhcmYyb3V0LmMKQEAgLTIwNjIx LDcgKzIwNjIxLDcgQEAgYWRkX2NhbGxpbmdfY29udmVudGlvbl9hdHRyaWJ1 dGUgKGR3X2RpZV9yZWYgc3Vicl9kaWUsIHRyZWUgZGVjbCkKIAkgICB0YXJn ZXRtLmR3YXJmX2NhbGxpbmdfY29udmVudGlvbiAoVFJFRV9UWVBFIChkZWNs KSkpOwogCiAgIGlmIChpc19mb3J0cmFuICgpCi0gICAgICAmJiAhc3RyY21w IChJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfQVNTRU1CTEVSX05BTUUgKGRl Y2wpKSwgIk1BSU5fXyIpKQorICAgICAgJiYgaWRfZXF1YWwgKERFQ0xfQVNT RU1CTEVSX05BTUUgKGRlY2wpLCAiTUFJTl9fIikpCiAgICAgewogICAgICAg LyogRFdBUkYgMiBkb2Vzbid0IHByb3ZpZGUgYSB3YXkgdG8gaWRlbnRpZnkg YSBwcm9ncmFtJ3Mgc291cmNlLWxldmVsCiAJZW50cnkgcG9pbnQuICBEV19B VF9jYWxsaW5nX2NvbnZlbnRpb24gYXR0cmlidXRlcyBhcmUgb25seSBtZWFu dApkaWZmIC0tZ2l0IGEvZ2NjL2hzYS1nZW4uYyBiL2djYy9oc2EtZ2VuLmMK aW5kZXggYzVkOGE2ZS4uM2FhNjVmMyAxMDA2NDQKLS0tIGEvZ2NjL2hzYS1n ZW4uYworKysgYi9nY2MvaHNhLWdlbi5jCkBAIC0zOTI0LDcgKzM5MjQsNyBA QCBnZXRfaHNhX2tlcm5lbF9kaXNwYXRjaF9vZmZzZXQgKGNvbnN0IGNoYXIg KmZpZWxkX25hbWUpCiAKICAgZm9yICh0cmVlIGNoYWluID0gVFlQRV9GSUVM RFMgKCpoc2Ffa2VybmVsX2Rpc3BhdGNoX3R5cGUpOwogICAgICAgIGNoYWlu ICE9IE5VTExfVFJFRTsgY2hhaW4gPSBUUkVFX0NIQUlOIChjaGFpbikpCi0g ICAgaWYgKHN0cmNtcCAoZmllbGRfbmFtZSwgSURFTlRJRklFUl9QT0lOVEVS IChERUNMX05BTUUgKGNoYWluKSkpID09IDApCisgICAgaWYgKGlkX2VxdWFs IChERUNMX05BTUUgKGNoYWluKSwgZmllbGRfbmFtZSkpCiAgICAgICByZXR1 cm4gaW50X2J5dGVfcG9zaXRpb24gKGNoYWluKTsKIAogICBnY2NfdW5yZWFj aGFibGUgKCk7CmRpZmYgLS1naXQgYS9nY2MvaXBhLWRldmlydC5jIGIvZ2Nj L2lwYS1kZXZpcnQuYwppbmRleCBjNzQ2MGNhLi5kYzkyMzJjIDEwMDY0NAot LS0gYS9nY2MvaXBhLWRldmlydC5jCisrKyBiL2djYy9pcGEtZGV2aXJ0LmMK QEAgLTIzNTksNyArMjM1OSw3IEBAIGlzX2N4YV9wdXJlX3ZpcnR1YWxfcCAo dHJlZSB0YXJnZXQpCiB7CiAgIHJldHVybiB0YXJnZXQgJiYgVFJFRV9DT0RF IChUUkVFX1RZUEUgKHRhcmdldCkpICE9IE1FVEhPRF9UWVBFCiAJICYmIERF Q0xfTkFNRSAodGFyZ2V0KQotCSAmJiAhc3RyY21wIChJREVOVElGSUVSX1BP SU5URVIgKERFQ0xfTkFNRSAodGFyZ2V0KSksCisJICYmIGlkX2VxdWFsIChE RUNMX05BTUUgKHRhcmdldCksCiAJCSAgICAgIl9fY3hhX3B1cmVfdmlydHVh bCIpOwogfQogCmRpZmYgLS1naXQgYS9nY2Mvb21wLWV4cGFuZC5jIGIvZ2Nj L29tcC1leHBhbmQuYwppbmRleCA3YTdjNzQ3Li41M2QzZDNmIDEwMDY0NAot LS0gYS9nY2Mvb21wLWV4cGFuZC5jCisrKyBiL2djYy9vbXAtZXhwYW5kLmMK QEAgLTQzNjYsOSArNDM2Niw5IEBAIGV4cGFuZF9jaWxrX2ZvciAoc3RydWN0 IG9tcF9yZWdpb24gKnJlZ2lvbiwgc3RydWN0IG9tcF9mb3JfZGF0YSAqZmQp CiAgIHRyZWUgdCwgbG93X3ZhbCA9IE5VTExfVFJFRSwgaGlnaF92YWwgPSBO VUxMX1RSRUU7CiAgIGZvciAodCA9IERFQ0xfQVJHVU1FTlRTIChjaGlsZF9m bmRlY2wpOyB0OyB0ID0gVFJFRV9DSEFJTiAodCkpCiAgICAgewotICAgICAg aWYgKCFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FICh0 KSksICJfX2hpZ2giKSkKKyAgICAgIGlmIChpZF9lcXVhbCAoREVDTF9OQU1F ICh0KSwgIl9faGlnaCIpKQogCWhpZ2hfdmFsID0gdDsKLSAgICAgIGVsc2Ug aWYgKCFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FICh0 KSksICJfX2xvdyIpKQorICAgICAgZWxzZSBpZiAoaWRfZXF1YWwgKERFQ0xf TkFNRSAodCksICJfX2xvdyIpKQogCWxvd192YWwgPSB0OwogICAgIH0KICAg Z2NjX2Fzc2VydCAobG93X3ZhbCAmJiBoaWdoX3ZhbCk7CmRpZmYgLS1naXQg YS9nY2Mvb21wLXNpbWQtY2xvbmUuYyBiL2djYy9vbXAtc2ltZC1jbG9uZS5j CmluZGV4IDk5NTg5ZDQuLjNhYThiMTMgMTAwNjQ0Ci0tLSBhL2djYy9vbXAt c2ltZC1jbG9uZS5jCisrKyBiL2djYy9vbXAtc2ltZC1jbG9uZS5jCkBAIC00 MTcsOCArNDE3LDcgQEAgc2ltZF9jbG9uZV9tYW5nbGUgKHN0cnVjdCBjZ3Jh cGhfbm9kZSAqbm9kZSwKICAgICAgaWYgdGhlIHNpbWRsZW4gaXMgYXNzdW1l ZCB0byBiZSA4IGZvciB0aGUgZmlyc3Qgb25lLCBldGMuICAqLwogICBmb3Ig KHN0cnVjdCBjZ3JhcGhfbm9kZSAqY2xvbmUgPSBub2RlLT5zaW1kX2Nsb25l czsgY2xvbmU7CiAgICAgICAgY2xvbmUgPSBjbG9uZS0+c2ltZGNsb25lLT5u ZXh0X2Nsb25lKQotICAgIGlmIChzdHJjbXAgKElERU5USUZJRVJfUE9JTlRF UiAoREVDTF9BU1NFTUJMRVJfTkFNRSAoY2xvbmUtPmRlY2wpKSwKLQkJc3Ry KSA9PSAwKQorICAgIGlmIChpZF9lcXVhbCAoREVDTF9BU1NFTUJMRVJfTkFN RSAoY2xvbmUtPmRlY2wpLCBzdHIpKQogICAgICAgcmV0dXJuIE5VTExfVFJF RTsKIAogICByZXR1cm4gZ2V0X2lkZW50aWZpZXIgKHN0cik7CmRpZmYgLS1n aXQgYS9nY2MvcmVhZC1ydGwtZnVuY3Rpb24uYyBiL2djYy9yZWFkLXJ0bC1m dW5jdGlvbi5jCmluZGV4IGM1MDI3OTcxLi5lYzI1MDUxIDEwMDY0NAotLS0g YS9nY2MvcmVhZC1ydGwtZnVuY3Rpb24uYworKysgYi9nY2MvcmVhZC1ydGwt ZnVuY3Rpb24uYwpAQCAtNTM2LDcgKzUzNiw3IEBAIHN0YXRpYyB0cmVlCiBm aW5kX3BhcmFtX2J5X25hbWUgKHRyZWUgZm5kZWNsLCBjb25zdCBjaGFyICpu YW1lKQogewogICBmb3IgKHRyZWUgYXJnID0gREVDTF9BUkdVTUVOVFMgKGZu ZGVjbCk7IGFyZzsgYXJnID0gVFJFRV9DSEFJTiAoYXJnKSkKLSAgICBpZiAo c3RyY21wIChuYW1lLCBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAo YXJnKSkpID09IDApCisgICAgaWYgKGlkX2VxdWFsIChERUNMX05BTUUgKGFy ZyksIG5hbWUpKQogICAgICAgcmV0dXJuIGFyZzsKICAgcmV0dXJuIE5VTExf VFJFRTsKIH0KQEAgLTEzMjQsNyArMTMyNCw3IEBAIGZ1bmN0aW9uX3JlYWRl cjo6cGFyc2VfbWVtX2V4cHIgKGNvbnN0IGNoYXIgKmRlc2MpCiAgIGludCBp OwogICB0cmVlIHQ7CiAgIEZPUl9FQUNIX1ZFQ19FTFQgKG1fZmFrZV9zY29w ZSwgaSwgdCkKLSAgICBpZiAoc3RyY21wIChkZXNjLCBJREVOVElGSUVSX1BP SU5URVIgKERFQ0xfTkFNRSAodCkpKSA9PSAwKQorICAgIGlmIChpZF9lcXVh bCAoREVDTF9OQU1FICh0KSwgZGVzYykpCiAgICAgICByZXR1cm4gdDsKIAog ICAvKiBOb3QgZm91bmQ/ICBDcmVhdGUgaXQuCmRpZmYgLS1naXQgYS9nY2Mv dHJlZS1jaGtwLmMgYi9nY2MvdHJlZS1jaGtwLmMKaW5kZXggMjMwMGU5OC4u MTcyYzI4ZSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtY2hrcC5jCisrKyBiL2dj Yy90cmVlLWNoa3AuYwpAQCAtMjM3OSw4ICsyMzc5LDcgQEAgY2hrcF9nZXRf Ym91bmRfZm9yX3Bhcm0gKHRyZWUgcGFybSkKIAkgdG8gdXNlIHplcm8gYm91 bmRzIGZvciBpbnB1dCBhcmd1bWVudHMgb2YgbWFpbgogCSBmdW5jdGlvbi4g ICovCiAgICAgICBlbHNlIGlmIChmbGFnX2Noa3BfemVyb19pbnB1dF9ib3Vu ZHNfZm9yX21haW4KLQkgICAgICAgJiYgc3RyY21wIChJREVOVElGSUVSX1BP SU5URVIgKERFQ0xfQVNTRU1CTEVSX05BTUUgKG9yaWdfZGVjbCkpLAotCQkJ ICAibWFpbiIpID09IDApCisJICAgICAgICYmIGlkX2VxdWFsIChERUNMX0FT U0VNQkxFUl9OQU1FIChvcmlnX2RlY2wpLCAibWFpbiIpKQogCWJvdW5kcyA9 IGNoa3BfZ2V0X3plcm9fYm91bmRzICgpOwogICAgICAgZWxzZSBpZiAoQk9V TkRFRF9QIChwYXJtKSkKIAl7CmRpZmYgLS1naXQgYS9nY2MvdHJlZS5jIGIv Z2NjL3RyZWUuYwppbmRleCBkYjMxNjIwLi5kODdkNTg1IDEwMDY0NAotLS0g YS9nY2MvdHJlZS5jCisrKyBiL2djYy90cmVlLmMKQEAgLTYwNTAsNyArNjA1 MCw3IEBAIHByaXZhdGVfaXNfYXR0cmlidXRlX3AgKGNvbnN0IGNoYXIgKmF0 dHJfbmFtZSwgc2l6ZV90IGF0dHJfbGVuLCBjb25zdF90cmVlIGlkZW50CiAK ICAgaWYgKGlkZW50X2xlbiA9PSBhdHRyX2xlbikKICAgICB7Ci0gICAgICBp ZiAoc3RyY21wIChhdHRyX25hbWUsIElERU5USUZJRVJfUE9JTlRFUiAoaWRl bnQpKSA9PSAwKQorICAgICAgaWYgKGlkX2VxdWFsIChpZGVudCwgYXR0cl9u YW1lKSkKIAlyZXR1cm4gdHJ1ZTsKICAgICB9CiAgIGVsc2UgaWYgKGlkZW50 X2xlbiA9PSBhdHRyX2xlbiArIDQpCmRpZmYgLS1naXQgYS9nY2MvdHJlZS5o IGIvZ2NjL3RyZWUuaAppbmRleCBjNmU4ODNjLi5jMjNhMzcwIDEwMDY0NAot LS0gYS9nY2MvdHJlZS5oCisrKyBiL2djYy90cmVlLmgKQEAgLTM2MTgsNiAr MzYxOCwyMCBAQCB0cmVlX29wZXJhbmRfY2hlY2tfY29kZSAoY29uc3RfdHJl ZSBfX3QsIGVudW0gdHJlZV9jb2RlIF9fY29kZSwgaW50IF9faSwKIAogI2Vu ZGlmCiAKKy8qIFRydWUgaWZmIGFuIGlkZW50aWZpZXIgbWF0Y2hlcyBhIEMg c3RyaW5nLiAgKi8KKworaW5saW5lIGJvb2wKK2lkX2VxdWFsIChjb25zdF90 cmVlIGlkLCBjb25zdCBjaGFyICpzdHIpCit7CisgIHJldHVybiAhc3RyY21w IChJREVOVElGSUVSX1BPSU5URVIgKGlkKSwgc3RyKTsKK30KKworaW5saW5l IGJvb2wKK2lkX2VxdWFsIChjb25zdCBjaGFyICpzdHIsIGNvbnN0X3RyZWUg aWQpCit7CisgIHJldHVybiAhc3RyY21wIChzdHIsIElERU5USUZJRVJfUE9J TlRFUiAoaWQpKTsKK30KKwogI2RlZmluZSBlcnJvcl9tYXJrX25vZGUJCQln bG9iYWxfdHJlZXNbVElfRVJST1JfTUFSS10KIAogI2RlZmluZSBpbnRRSV90 eXBlX25vZGUJCQlnbG9iYWxfdHJlZXNbVElfSU5UUUlfVFlQRV0K --001a113fb1caec976d05503a8431--