From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com [IPv6:2a00:1450:4864:20::231]) by sourceware.org (Postfix) with ESMTPS id BAE703857BB3 for ; Wed, 23 Aug 2023 22:00:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BAE703857BB3 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lj1-x231.google.com with SMTP id 38308e7fff4ca-2bcbfb3705dso54655041fa.1 for ; Wed, 23 Aug 2023 15:00:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692828013; x=1693432813; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SgAHY8bmTUEHz97S/TwUYFcKJ0bYTNGQYymsoPT4tmU=; b=jyQPQapenu9yZzqrcv/2s2S19P5tPY5rNbGeTiuL0itDfS7tvkS3N0TS7yYYvC+Vyx XwXihmFY9KzuwXIXrghmI4/gzjHrP9jvmNGMZSs7YvAdZfo4D1Crjrr1fDTHd35kpXwq JkqhRaU9/CjhCe6O3CDKG2haCF/otRWYizCIhFvrpOzyC59nxvdWkpYKRwlvoRcQtthv Wy/COAUKS62WD93HDCPianK2bhDGEcS9mp52iXqLyG7NIhNLWVzr5xT/w4sgnHfyWFfE vHKc5u7EFdNbDgyEPiGahA91Glj8j0l1HcTQIjw84Sd5KBGnde2Ot4n5DxwTpVp98ids ce6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692828013; x=1693432813; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SgAHY8bmTUEHz97S/TwUYFcKJ0bYTNGQYymsoPT4tmU=; b=IdZnx9eAWXxBUyyOQcxfgMjBFDullhB5wxRaMVtC3PhzFoHmWkXBQ2aC07BfLB6LOh 9FbVZgR4q9aDgApTjWpV/35JmZ4Q7yM/FXYee+TUUy75OEcn8ZBMJYpH3BpIP+NPPaCQ O/QJmcbieqfB5SYh9aI7x9qfzK3LpKGjTEUvVItgHLh5OuSCpsTVNdVWx2hbmMKUJktl nS4pBB8+mZGGctZQKuJQltR26hw9y9rKRxVqUYPdEHO1Py3rP3otu2x0wJLQHlpxeZiw gnGMOAG79OF/9CxpFU4RTTahAg7VkIHN2t5fSSfg8LFqNQ11FkmGjmVd2k0lABOlQ4Gc EoOA== X-Gm-Message-State: AOJu0YzDbdYiDz4s2lBlMJQGcLK5dlIrHlo5kzwZMfRdfyYXaHe6CozF EC/cpVC3oxjbclRAAeb3HMaXQa1/P0bUege30D9LWNbA X-Google-Smtp-Source: AGHT+IGgWvzwSXJg2ZJu5S/krN3RxvZ7UdEkR7GCYLLBkO8wDBJC17l02Dmi8XRidOOE/0ffDr3WVwtp5lob4iCzgnY= X-Received: by 2002:a2e:81ca:0:b0:2bb:a28b:58e1 with SMTP id s10-20020a2e81ca000000b002bba28b58e1mr11559804ljg.41.1692828012765; Wed, 23 Aug 2023 15:00:12 -0700 (PDT) MIME-Version: 1.0 From: Oleg Tolmatcev Date: Wed, 23 Aug 2023 23:59:59 +0200 Message-ID: Subject: [PATCH V4] optimize handle_COMDAT To: binutils@sourceware.org Content-Type: multipart/mixed; boundary="0000000000005df91206039e3c2b" X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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: --0000000000005df91206039e3c2b Content-Type: text/plain; charset="UTF-8" Thank you Alan, I could reproduce the bugs and I have fixed them. "make check" does not fail anymore. Best regards Oleg Tolmatcev --0000000000005df91206039e3c2b Content-Type: application/octet-stream; name="0001-optimize-handle_COMDAT.patch" Content-Disposition: attachment; filename="0001-optimize-handle_COMDAT.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lloa1ytb0 RnJvbSBkYTdjMDBiMzE0NWIwNGUxZmEyMDhiOTdjZjgyMzNhMGU0MmE0MDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbGVnIFRvbG1hdGNldiA8b2xlZy50b2xtYXRjZXZAZ21haWwu Y29tPgpEYXRlOiBTdW4sIDE4IEp1biAyMDIzIDE5OjM1OjM4ICswMjAwClN1YmplY3Q6IFtQQVRD SF0gb3B0aW1pemUgaGFuZGxlX0NPTURBVAoKU2lnbmVkLW9mZi1ieTogT2xlZyBUb2xtYXRjZXYg PG9sZWcudG9sbWF0Y2V2QGdtYWlsLmNvbT4KLS0tCiBiZmQvY29mZmNvZGUuaCAgIHwgMjg5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiBiZmQvY29mZmdl bi5jICAgIHwgICA4ICsrCiBiZmQvbGliY29mZi1pbi5oIHwgIDEyICsrCiBiZmQvcGVpY29kZS5o ICAgIHwgIDE3ICsrKwogNCBmaWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKSwgMTI0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2JmZC9jb2ZmY29kZS5oIGIvYmZkL2NvZmZjb2RlLmgK aW5kZXggNjc4OWY3ZjNjYy4uMzVkNDBhOTUwMSAxMDA2NDQKLS0tIGEvYmZkL2NvZmZjb2RlLmgK KysrIGIvYmZkL2NvZmZjb2RlLmgKQEAgLTM1Miw2ICszNTIsNyBAQCBDT0RFX0ZSQUdNRU5UCiAq LwogCiAjaW5jbHVkZSAibGliaWJlcnR5LmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CiAKICNpZmRl ZiBDT0ZGX1dJVEhfUEUKICNpbmNsdWRlICJwZWljb2RlLmgiCkBAIC04NTIsMTkgKzg1MywxOSBA QCBzdHlwX3RvX3NlY19mbGFncyAoYmZkICphYmZkLAogCiAjZWxzZSAvKiBDT0ZGX1dJVEhfUEUg Ki8KIAorc3RhdGljIHN0cnVjdCBjb21kYXRfaGFzaF9lbnRyeSAqCitmaW5kX2ZsYWdzIChodGFi X3QgY29tZGF0X2hhc2gsIGludCB0YXJnZXRfaW5kZXgpCit7CisgIHN0cnVjdCBjb21kYXRfaGFz aF9lbnRyeSBuZWVkbGU7CisgIG5lZWRsZS50YXJnZXRfaW5kZXggPSB0YXJnZXRfaW5kZXg7CisK KyAgcmV0dXJuIGh0YWJfZmluZCAoY29tZGF0X2hhc2gsICZuZWVkbGUpOworfQorCiBzdGF0aWMg Ym9vbAotaGFuZGxlX0NPTURBVCAoYmZkICogYWJmZCwKLQkgICAgICAgZmxhZ3dvcmQgKnNlY19m bGFncywKLQkgICAgICAgdm9pZCAqIGhkciwKLQkgICAgICAgY29uc3QgY2hhciAqbmFtZSwKLQkg ICAgICAgYXNlY3Rpb24gKnNlY3Rpb24pCitmaWxsX2NvbWRhdF9oYXNoIChiZmQgKmFiZmQpCiB7 Ci0gIHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKmludGVybmFsX3MgPSAoc3RydWN0IGludGVybmFs X3NjbmhkciAqKSBoZHI7CiAgIGJmZF9ieXRlICplc3ltc3RhcnQsICplc3ltLCAqZXN5bWVuZDsK LSAgaW50IHNlZW5fc3RhdGUgPSAwOwotICBjaGFyICp0YXJnZXRfbmFtZSA9IE5VTEw7Ci0KLSAg KnNlY19mbGFncyB8PSBTRUNfTElOS19PTkNFOwogCiAgIC8qIFVuZm9ydHVuYXRlbHksIHRoZSBQ RSBmb3JtYXQgc3RvcmVzIGVzc2VudGlhbCBpbmZvcm1hdGlvbiBpbgogICAgICB0aGUgc3ltYm9s IHRhYmxlLCBvZiBhbGwgcGxhY2VzLiAgV2UgbmVlZCB0byBleHRyYWN0IHRoYXQKQEAgLTg5NSwx MyArODk2LDEwIEBAIGhhbmRsZV9DT01EQVQgKGJmZCAqIGFiZmQsCiAgICAgewogICAgICAgY2hh ciBidWZbU1lNTk1MRU4gKyAxXTsKICAgICAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CisgICAgICBm bGFnd29yZCBzZWNfZmxhZ3MgPSBTRUNfTElOS19PTkNFOwogCiAgICAgICBiZmRfY29mZl9zd2Fw X3N5bV9pbiAoYWJmZCwgZXN5bSwgJmlzeW0pOwogCi0gICAgICBCRkRfQVNTRVJUIChzaXplb2Yg KGludGVybmFsX3MtPnNfbmFtZSkgPD0gU1lNTk1MRU4pOwotCi0gICAgICBpZiAoaXN5bS5uX3Nj bnVtID09IHNlY3Rpb24tPnRhcmdldF9pbmRleCkKLQl7CiAJICAvKiBBY2NvcmRpbmcgdG8gdGhl IE1TVkMgZG9jdW1lbnRhdGlvbiwgdGhlIGZpcnN0CiAJICAgICBUV08gZW50cmllcyB3aXRoIHRo ZSBzZWN0aW9uICMgYXJlIGJvdGggb2YKIAkgICAgIGludGVyZXN0IHRvIHVzLiAgVGhlIGZpcnN0 IG9uZSBpcyB0aGUgInNlY3Rpb24KQEAgLTkzNCwxMjEgKzkzMiw3NiBAQCBoYW5kbGVfQ09NREFU IChiZmQgKiBhYmZkLAogCSAgICB7CiAJICAgICAgX2JmZF9lcnJvcl9oYW5kbGVyIChfKCIlcEI6 IHVuYWJsZSB0byBsb2FkIENPTURBVCBzZWN0aW9uIG5hbWUiKSwKIAkJCQkgIGFiZmQpOwotCSAg ICAgIHJldHVybiBmYWxzZTsKKwkgICAgICBjb250aW51ZTsKIAkgICAgfQogCi0JICBzd2l0Y2gg KHNlZW5fc3RhdGUpCi0JICAgIHsKLQkgICAgY2FzZSAwOgotCSAgICAgIHsKLQkJLyogVGhlIGZp cnN0IHRpbWUgd2UndmUgc2VlbiB0aGUgc3ltYm9sLiAgKi8KLQkJdW5pb24gaW50ZXJuYWxfYXV4 ZW50IGF1eDsKLQotCQkvKiBJZiBpdCBpc24ndCB0aGUgc3R1ZmYgd2UncmUgZXhwZWN0aW5nLCBk aWU7Ci0JCSAgIFRoZSBNUyBkb2N1bWVudGF0aW9uIGlzIHZhZ3VlLCBidXQgaXQKLQkJICAgYXBw ZWFycyB0aGF0IHRoZSBzZWNvbmQgZW50cnkgc2VydmVzIEJPVEgKLQkJICAgYXMgdGhlIGNvbWRh dCBzeW1ib2wgYW5kIHRoZSBkZWZpbmluZwotCQkgICBzeW1ib2wgcmVjb3JkIChlaXRoZXIgQ19T VEFUIG9yIENfRVhULAotCQkgICBwb3NzaWJseSB3aXRoIGFuIGF1eCBlbnRyeSB3aXRoIGRlYnVn Ci0JCSAgIGluZm9ybWF0aW9uIGlmIGl0J3MgYSBmdW5jdGlvbi4pICBJdAotCQkgICBhcHBlYXJz IHRoZSBvbmx5IHdheSB0byBmaW5kIHRoZSBzZWNvbmQgb25lCi0JCSAgIGlzIHRvIGNvdW50LiAg KE9uIEludGVsLCB0aGV5IGFwcGVhciB0byBiZQotCQkgICBhZGphY2VudCwgYnV0IG9uIEFscGhh LCB0aGV5IGhhdmUgYmVlbgotCQkgICBmb3VuZCBzZXBhcmF0ZWQuKQotCi0JCSAgIEhlcmUsIHdl IHRoaW5rIHdlJ3ZlIGZvdW5kIHRoZSBmaXJzdCBvbmUsCi0JCSAgIGJ1dCB0aGVyZSdzIHNvbWUg Y2hlY2tpbmcgd2UgY2FuIGRvIHRvIGJlCi0JCSAgIHN1cmUuICAqLwotCi0JCWlmICghICgoaXN5 bS5uX3NjbGFzcyA9PSBDX1NUQVQKLQkJCXx8IGlzeW0ubl9zY2xhc3MgPT0gQ19FWFQpCi0JCSAg ICAgICAmJiBCVFlQRSAoaXN5bS5uX3R5cGUpID09IFRfTlVMTAotCQkgICAgICAgJiYgaXN5bS5u X3ZhbHVlID09IDApKQotCQkgIHsKLQkJICAgIC8qIE1hbGZvcm1lZCBpbnB1dCBmaWxlcyBjYW4g dHJpZ2dlciB0aGlzIHRlc3QuCi0JCSAgICAgICBjZiBQUiAyMTc4MS4gICovCi0JCSAgICBfYmZk X2Vycm9yX2hhbmRsZXIgKF8oIiVwQjogZXJyb3I6IHVuZXhwZWN0ZWQgc3ltYm9sICclcycgaW4g Q09NREFUIHNlY3Rpb24iKSwKLQkJCQkJYWJmZCwgc3ltbmFtZSk7Ci0JCSAgICByZXR1cm4gZmFs c2U7Ci0JCSAgfQorICAgICAgdW5pb24gaW50ZXJuYWxfYXV4ZW50IGF1eDsKIAotCQkvKiBGSVhN RSBMQVRFUjogTVNWQyBnZW5lcmF0ZXMgc2VjdGlvbiBuYW1lcwotCQkgICBsaWtlIC50ZXh0IGZv ciBjb21kYXRzLiAgR2FzIGdlbmVyYXRlcwotCQkgICBuYW1lcyBsaWtlIC50ZXh0JGZvb19fRnYg KGluIHRoZSBjYXNlIG9mIGEKLQkJICAgZnVuY3Rpb24pLiAgU2VlIGNvbW1lbnQgYWJvdmUgZm9y IG1vcmUuICAqLworICAgICAgc3RydWN0IGNvbWRhdF9oYXNoX2VudHJ5IG5lZWRsZTsKKyAgICAg IG5lZWRsZS50YXJnZXRfaW5kZXggPSBpc3ltLm5fc2NudW07CiAKLQkJaWYgKGlzeW0ubl9zY2xh c3MgPT0gQ19TVEFUICYmIHN0cmNtcCAobmFtZSwgc3ltbmFtZSkgIT0gMCkKLQkJICAvKiB4Z2V0 dGV4dDpjLWZvcm1hdCAqLwotCQkgIF9iZmRfZXJyb3JfaGFuZGxlciAoXygiJXBCOiB3YXJuaW5n OiBDT01EQVQgc3ltYm9sICclcyciCi0JCQkJCSIgZG9lcyBub3QgbWF0Y2ggc2VjdGlvbiBuYW1l ICclcyciKSwKLQkJCQkgICAgICBhYmZkLCBzeW1uYW1lLCBuYW1lKTsKLQotCQkvKiBUaGlzIGlz IHRoZSBzZWN0aW9uIHN5bWJvbC4gICovCi0JCXNlZW5fc3RhdGUgPSAxOwotCQl0YXJnZXRfbmFt ZSA9IHN0cmNociAobmFtZSwgJyQnKTsKLQkJaWYgKHRhcmdldF9uYW1lICE9IE5VTEwpCi0JCSAg ewotCQkgICAgLyogR2FzIG1vZGUuICAqLwotCQkgICAgc2Vlbl9zdGF0ZSA9IDI7Ci0JCSAgICAv KiBTa2lwIHRoZSBgJCcuICAqLwotCQkgICAgdGFyZ2V0X25hbWUgKz0gMTsKLQkJICB9CisgICAg ICB2b2lkICoqc2xvdAorCSAgPSBodGFiX2ZpbmRfc2xvdCAocGVfZGF0YSAoYWJmZCktPmNvbWRh dF9oYXNoLCAmbmVlZGxlLCBJTlNFUlQpOworICAgICAgaWYgKHNsb3QgPT0gTlVMTCkKKwlyZXR1 cm4gZmFsc2U7CiAKLQkJaWYgKGlzeW0ubl9udW1hdXggPT0gMCkKLQkJICBhdXgueF9zY24ueF9j b21kYXQgPSAwOwotCQllbHNlCi0JCSAgeworICAgICAgaWYgKCpzbG90ID09IE5VTEwpCisJewor CSAgaWYgKGlzeW0ubl9udW1hdXggPT0gMCkKKwkgICAgYXV4Lnhfc2NuLnhfY29tZGF0ID0gMDsK KwkgIGVsc2UKKwkgICAgewogCQkgICAgLyogUFIgMTc1MTI6IGZpbGU6IGUyY2ZlNTRmLiAgKi8K LQkJICAgIGlmIChlc3ltICsgYmZkX2NvZmZfc3ltZXN6IChhYmZkKSA+PSBlc3ltZW5kKQotCQkg ICAgICB7Ci0JCQkvKiB4Z2V0dGV4dDpjLWZvcm1hdCAqLwotCQkJX2JmZF9lcnJvcl9oYW5kbGVy IChfKCIlcEI6IHdhcm5pbmc6IG5vIHN5bWJvbCBmb3IiCi0JCQkJCSAgICAgICIgc2VjdGlvbiAn JXMnIGZvdW5kIiksCi0JCQkJCSAgICBhYmZkLCBzeW1uYW1lKTsKLQkJCWJyZWFrOwotCQkgICAg ICB9Ci0JCSAgICBiZmRfY29mZl9zd2FwX2F1eF9pbiAoYWJmZCwgZXN5bSArIGJmZF9jb2ZmX3N5 bWVzeiAoYWJmZCksCi0JCQkJCSAgaXN5bS5uX3R5cGUsIGlzeW0ubl9zY2xhc3MsCi0JCQkJCSAg MCwgaXN5bS5uX251bWF1eCwgJmF1eCk7Ci0JCSAgfQorCSAgICAgIGlmIChlc3ltICsgYmZkX2Nv ZmZfc3ltZXN6IChhYmZkKSA+PSBlc3ltZW5kKQorCQl7CisJCSAgLyogeGdldHRleHQ6Yy1mb3Jt YXQgKi8KKwkJICBfYmZkX2Vycm9yX2hhbmRsZXIgKF8gKCIlcEI6IHdhcm5pbmc6IG5vIHN5bWJv bCBmb3IiCisJCQkJCSAiIHNlY3Rpb24gJyVzJyBmb3VuZCIpLAorCQkJCSAgICAgIGFiZmQsIHN5 bW5hbWUpOworCQkgIGNvbnRpbnVlOworCQl9CisJICAgICAgYmZkX2NvZmZfc3dhcF9hdXhfaW4g KGFiZmQsIChlc3ltICsgYmZkX2NvZmZfc3ltZXN6IChhYmZkKSksCisJCQkJICAgIGlzeW0ubl90 eXBlLCBpc3ltLm5fc2NsYXNzLCAwLAorCQkJCSAgICBpc3ltLm5fbnVtYXV4LCAmYXV4KTsKKwkg ICAgfQogCi0JCS8qIEZJWE1FOiBNaWNyb3NvZnQgdXNlcyBOT0RVUExJQ0FURVMgYW5kCi0JCSAg IEFTU09DSUFUSVZFLCBidXQgZ251IHVzZXMgQU5ZIGFuZAotCQkgICBTQU1FX1NJWkUuICBVbmZv cnR1bmF0ZWx5LCBnbnUgZG9lc24ndCBkbwotCQkgICB0aGUgY29tZGF0IHN5bWJvbHMgcmlnaHQu ICBTbywgdW50aWwgd2UgY2FuCi0JCSAgIGZpeCBpdCB0byBkbyB0aGUgcmlnaHQgdGhpbmcsIHdl IGFyZQotCQkgICB0ZW1wb3JhcmlseSBkaXNhYmxpbmcgY29tZGF0cyBmb3IgdGhlIE1TCi0JCSAg IHR5cGVzICh0aGV5J3JlIHVzZWQgaW4gRExMcyBhbmQgQysrLCBidXQgd2UKLQkJICAgZG9uJ3Qg c3VwcG9ydCAqdGhlaXIqIEMrKyBsaWJyYXJpZXMgYW55d2F5Ci0JCSAgIC0gREouICAqLwotCi0J CS8qIEN5Z3dpbiBkb2VzIG5vdCBmb2xsb3cgdGhlIE1TIHN0eWxlLCBhbmQKLQkJICAgdXNlcyBB TlkgYW5kIFNBTUVfU0laRSB3aGVyZSBOT0RVUExJQ0FURVMKLQkJICAgYW5kIEFTU09DSUFUSVZF IHNob3VsZCBiZSB1c2VkLiAgRm9yCi0JCSAgIEludGVyaXgsIHdlIGp1c3QgZG8gdGhlIHJpZ2h0 IHRoaW5nIHVwCi0JCSAgIGZyb250LiAgKi8KLQotCQlzd2l0Y2ggKGF1eC54X3Njbi54X2NvbWRh dCkKLQkJICB7Ci0JCSAgY2FzZSBJTUFHRV9DT01EQVRfU0VMRUNUX05PRFVQTElDQVRFUzoKKwkg IC8qIEZJWE1FOiBNaWNyb3NvZnQgdXNlcyBOT0RVUExJQ0FURVMgYW5kCisJICAgICBBU1NPQ0lB VElWRSwgYnV0IGdudSB1c2VzIEFOWSBhbmQKKwkgICAgIFNBTUVfU0laRS4gIFVuZm9ydHVuYXRl bHksIGdudSBkb2Vzbid0IGRvCisJICAgICB0aGUgY29tZGF0IHN5bWJvbHMgcmlnaHQuICBTbywg dW50aWwgd2UgY2FuCisJICAgICBmaXggaXQgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nLCB3ZSBhcmUK KwkgICAgIHRlbXBvcmFyaWx5IGRpc2FibGluZyBjb21kYXRzIGZvciB0aGUgTVMKKwkgICAgIHR5 cGVzICh0aGV5J3JlIHVzZWQgaW4gRExMcyBhbmQgQysrLCBidXQgd2UKKwkgICAgIGRvbid0IHN1 cHBvcnQgKnRoZWlyKiBDKysgbGlicmFyaWVzIGFueXdheQorCSAgICAgLSBESi4gICovCisKKwkg IC8qIEN5Z3dpbiBkb2VzIG5vdCBmb2xsb3cgdGhlIE1TIHN0eWxlLCBhbmQKKwkgICAgIHVzZXMg QU5ZIGFuZCBTQU1FX1NJWkUgd2hlcmUgTk9EVVBMSUNBVEVTCisJICAgICBhbmQgQVNTT0NJQVRJ VkUgc2hvdWxkIGJlIHVzZWQuICBGb3IKKwkgICAgIEludGVyaXgsIHdlIGp1c3QgZG8gdGhlIHJp Z2h0IHRoaW5nIHVwCisJICAgICBmcm9udC4gICovCisKKwkgIHN3aXRjaCAoYXV4Lnhfc2NuLnhf Y29tZGF0KQorCSAgICB7CisJICAgIGNhc2UgSU1BR0VfQ09NREFUX1NFTEVDVF9OT0RVUExJQ0FU RVM6CiAjaWZkZWYgU1RSSUNUX1BFX0ZPUk1BVAotCQkgICAgKnNlY19mbGFncyB8PSBTRUNfTElO S19EVVBMSUNBVEVTX09ORV9PTkxZOworCSAgICAgIHNlY19mbGFncyB8PSBTRUNfTElOS19EVVBM SUNBVEVTX09ORV9PTkxZOwogI2Vsc2UKLQkJICAgICpzZWNfZmxhZ3MgJj0gflNFQ19MSU5LX09O Q0U7CisJICAgICAgc2VjX2ZsYWdzICY9IH5TRUNfTElOS19PTkNFOwogI2VuZGlmCiAJCSAgICBi cmVhazsKIAogCQkgIGNhc2UgSU1BR0VfQ09NREFUX1NFTEVDVF9BTlk6Ci0JCSAgICAqc2VjX2Zs YWdzIHw9IFNFQ19MSU5LX0RVUExJQ0FURVNfRElTQ0FSRDsKKwkgICAgICBzZWNfZmxhZ3MgfD0g U0VDX0xJTktfRFVQTElDQVRFU19ESVNDQVJEOwogCQkgICAgYnJlYWs7CiAKIAkJICBjYXNlIElN QUdFX0NPTURBVF9TRUxFQ1RfU0FNRV9TSVpFOgotCQkgICAgKnNlY19mbGFncyB8PSBTRUNfTElO S19EVVBMSUNBVEVTX1NBTUVfU0laRTsKKwkgICAgICBzZWNfZmxhZ3MgfD0gU0VDX0xJTktfRFVQ TElDQVRFU19TQU1FX1NJWkU7CiAJCSAgICBicmVhazsKIAogCQkgIGNhc2UgSU1BR0VfQ09NREFU X1NFTEVDVF9FWEFDVF9NQVRDSDoKIAkJICAgIC8qIE5vdCB5ZXQgZnVsbHkgaW1wbGVtZW50ZWQg Pz8/ICovCi0JCSAgICAqc2VjX2ZsYWdzIHw9IFNFQ19MSU5LX0RVUExJQ0FURVNfU0FNRV9DT05U RU5UUzsKKwkgICAgICBzZWNfZmxhZ3MgfD0gU0VDX0xJTktfRFVQTElDQVRFU19TQU1FX0NPTlRF TlRTOwogCQkgICAgYnJlYWs7CiAKIAkJICAgIC8qIGRlYnVnJFMgZ2V0cyB0aGlzIGNhc2U7IG90 aGVyCkBAIC0xMDYxLDI0ICsxMDE0LDQyIEBAIGhhbmRsZV9DT01EQVQgKGJmZCAqIGFiZmQsCiAJ CSAgY2FzZSBJTUFHRV9DT01EQVRfU0VMRUNUX0FTU09DSUFUSVZFOgogI2lmZGVmIFNUUklDVF9Q RV9GT1JNQVQKIAkJICAgIC8qIEZJWE1FOiBUaGlzIGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50 ZWQuICAqLwotCQkgICAgKnNlY19mbGFncyB8PSBTRUNfTElOS19EVVBMSUNBVEVTX0RJU0NBUkQ7 CisJICAgICAgc2VjX2ZsYWdzIHw9IFNFQ19MSU5LX0RVUExJQ0FURVNfRElTQ0FSRDsKICNlbHNl Ci0JCSAgICAqc2VjX2ZsYWdzICY9IH5TRUNfTElOS19PTkNFOworCSAgICAgIHNlY19mbGFncyAm PSB+U0VDX0xJTktfT05DRTsKICNlbmRpZgogCQkgICAgYnJlYWs7CiAKIAkJICBkZWZhdWx0OiAg LyogMCBtZWFucyAibm8gc3ltYm9sIiAqLwogCQkgICAgLyogZGVidWckRiBnZXRzIHRoaXMgY2Fz ZTsgb3RoZXIKIAkJICAgICAgIGltcGxpY2F0aW9ucyA/Pz8gKi8KLQkJICAgICpzZWNfZmxhZ3Mg fD0gU0VDX0xJTktfRFVQTElDQVRFU19ESVNDQVJEOworCSAgICAgIHNlY19mbGFncyB8PSBTRUNf TElOS19EVVBMSUNBVEVTX0RJU0NBUkQ7CiAJCSAgICBicmVhazsKLQkJICB9Ci0JICAgICAgfQot CSAgICAgIGJyZWFrOworCSAgICB9CiAKLQkgICAgY2FzZSAyOgorCSAgKnNsb3QgPSBiZmRfem1h bGxvYyAoc2l6ZW9mIChzdHJ1Y3QgY29tZGF0X2hhc2hfZW50cnkpKTsKKwkgIGlmICgqc2xvdCA9 PSBOVUxMKQorCSAgICByZXR1cm4gZmFsc2U7CisJICBzdHJ1Y3QgY29tZGF0X2hhc2hfZW50cnkg Km5ld2VudHJ5ID0gKnNsb3Q7CisJICBuZXdlbnRyeS0+c2VjX2ZsYWdzID0gc2VjX2ZsYWdzOwor CSAgbmV3ZW50cnktPnN5bW5hbWUgPSBiZmRfc3RyZHVwIChzeW1uYW1lKTsKKwkgIG5ld2VudHJ5 LT50YXJnZXRfaW5kZXggPSBpc3ltLm5fc2NudW07CisJICBuZXdlbnRyeS0+aXN5bSA9IGlzeW07 CisJICBuZXdlbnRyeS0+Y29tZGF0X3N5bWJvbCA9IC0xOworCX0KKyAgICAgIGVsc2UKKwl7CisJ ICBzdHJ1Y3QgY29tZGF0X2hhc2hfZW50cnkgKmVudHJ5ID0gKnNsb3Q7CisKKyAgICAgICAgICBp ZiAoZW50cnktPmNvbWRhdF9zeW1ib2wgIT0gLTEpCisgICAgICAgICAgICBjb250aW51ZTsKKwor CSAgY2hhciAqdGFyZ2V0X25hbWUgPSBzdHJjaHIgKGVudHJ5LT5zeW1uYW1lLCAnJCcpOworCSAg aWYgKHRhcmdldF9uYW1lICE9IE5VTEwpCisJICAgIHsKIAkgICAgICAvKiBHYXMgbW9kZTogdGhl IGZpcnN0IG1hdGNoaW5nIG9uIHBhcnRpYWwgbmFtZS4gICovCiAKKwkgICAgICB0YXJnZXRfbmFt ZSArPSAxOwogI2lmbmRlZiBUQVJHRVRfVU5ERVJTQ09SRQogI2RlZmluZSBUQVJHRVRfVU5ERVJT Q09SRSAwCiAjZW5kaWYKQEAgLTEwODksMTYgKzEwNjAsMjYgQEAgaGFuZGxlX0NPTURBVCAoYmZk ICogYWJmZCwKIAkJICAvKiBOb3QgdGhlIG5hbWUgd2UncmUgbG9va2luZyBmb3IgKi8KIAkJICBj b250aW51ZTsKIAkJfQotCSAgICAgIC8qIEZhbGwgdGhyb3VnaC4gICovCi0JICAgIGNhc2UgMToK KwkgICAgfQogCSAgICAgIC8qIE1TVkMgbW9kZTogdGhlIGxleGljYWxseSBzZWNvbmQgc3ltYm9s IChvcgogCQkgZHJvcCB0aHJvdWdoIGZyb20gdGhlIGFib3ZlKS4gICovCi0JICAgICAgewogCQkv KiBUaGlzIG11c3QgdGhlIHNlY29uZCBzeW1ib2wgd2l0aCB0aGUKIAkJICAgc2VjdGlvbiAjLiAg SXQgaXMgdGhlIGFjdHVhbCBzeW1ib2wgbmFtZS4KIAkJICAgSW50ZWwgcHV0cyB0aGUgdHdvIGFk amFjZW50LCBidXQgQWxwaGEgKGF0CiAJCSAgIGxlYXN0KSBzcHJlYWRzIHRoZW0gb3V0LiAgKi8K IAorCSAgZW50cnktPmNvbWRhdF9zeW1ib2wgPSAoZXN5bSAtIGVzeW1zdGFydCkgLyBiZmRfY29m Zl9zeW1lc3ogKGFiZmQpOworCSAgZW50cnktPmNvbWRhdF9uYW1lID0gYmZkX3N0cmR1cCAoc3lt bmFtZSk7CisJfQorICAgIH0KKworICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wKK2lu c2VydF9jb2ZmX2NvbWRhdF9pbmZvIChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0aW9uLCBjb25z dCBjaGFyICpzeW1uYW1lLAorCQkJIGxvbmcgc3ltYm9sKQorewogCQlzdHJ1Y3QgY29mZl9jb21k YXRfaW5mbyAqY29tZGF0OwogCQlzaXplX3QgbGVuID0gc3RybGVuIChzeW1uYW1lKSArIDE7CiAK QEAgLTExMDcsMTYgKzEwODgsNzYgQEAgaGFuZGxlX0NPTURBVCAoYmZkICogYWJmZCwKIAkJICBy ZXR1cm4gZmFsc2U7CiAKIAkJY29mZl9zZWN0aW9uX2RhdGEgKGFiZmQsIHNlY3Rpb24pLT5jb21k YXQgPSBjb21kYXQ7Ci0JCWNvbWRhdC0+c3ltYm9sID0gKGVzeW0gLSBlc3ltc3RhcnQpIC8gYmZk X2NvZmZfc3ltZXN6IChhYmZkKTsKKwkJY29tZGF0LT5zeW1ib2wgPSBzeW1ib2w7CiAJCWNoYXIg Km5ld25hbWUgPSAoY2hhciAqKSAoY29tZGF0ICsgMSk7CiAJCWNvbWRhdC0+bmFtZSA9IG5ld25h bWU7CiAJCW1lbWNweSAobmV3bmFtZSwgc3ltbmFtZSwgbGVuKTsKIAkJcmV0dXJuIHRydWU7Ci0J ICAgICAgfQotCSAgICB9Cit9CisKK3N0YXRpYyBib29sCitoYW5kbGVfQ09NREFUIChiZmQgKmFi ZmQsIGZsYWd3b3JkICpzZWNfZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUsCisJICAgICAgIGFzZWN0 aW9uICpzZWN0aW9uKQoreworICBpZiAoaHRhYl9lbGVtZW50cyAocGVfZGF0YSAoYWJmZCktPmNv bWRhdF9oYXNoKSA9PSAwKQorICAgIGlmICghIGZpbGxfY29tZGF0X2hhc2ggKGFiZmQpKQorICAg ICAgcmV0dXJuIGZhbHNlOworCisgIHN0cnVjdCBjb21kYXRfaGFzaF9lbnRyeSAqZm91bmQKKyAg ICAgID0gZmluZF9mbGFncyAocGVfZGF0YSAoYWJmZCktPmNvbWRhdF9oYXNoLCBzZWN0aW9uLT50 YXJnZXRfaW5kZXgpOworICBpZiAoZm91bmQgIT0gTlVMTCkKKyAgICB7CisKKyAgICAgIHN0cnVj dCBpbnRlcm5hbF9zeW1lbnQgaXN5bSA9IGZvdW5kLT5pc3ltOworCisgICAgICAvKiBJZiBpdCBp c24ndCB0aGUgc3R1ZmYgd2UncmUgZXhwZWN0aW5nLCBkaWU7CisJIFRoZSBNUyBkb2N1bWVudGF0 aW9uIGlzIHZhZ3VlLCBidXQgaXQKKwkgYXBwZWFycyB0aGF0IHRoZSBzZWNvbmQgZW50cnkgc2Vy dmVzIEJPVEgKKwkgYXMgdGhlIGNvbWRhdCBzeW1ib2wgYW5kIHRoZSBkZWZpbmluZworCSBzeW1i b2wgcmVjb3JkIChlaXRoZXIgQ19TVEFUIG9yIENfRVhULAorCSBwb3NzaWJseSB3aXRoIGFuIGF1 eCBlbnRyeSB3aXRoIGRlYnVnCisJIGluZm9ybWF0aW9uIGlmIGl0J3MgYSBmdW5jdGlvbi4pICBJ dAorCSBhcHBlYXJzIHRoZSBvbmx5IHdheSB0byBmaW5kIHRoZSBzZWNvbmQgb25lCisJIGlzIHRv IGNvdW50LiAgKE9uIEludGVsLCB0aGV5IGFwcGVhciB0byBiZQorCSBhZGphY2VudCwgYnV0IG9u IEFscGhhLCB0aGV5IGhhdmUgYmVlbgorCSBmb3VuZCBzZXBhcmF0ZWQuKQorCisJIEhlcmUsIHdl IHRoaW5rIHdlJ3ZlIGZvdW5kIHRoZSBmaXJzdCBvbmUsCisJIGJ1dCB0aGVyZSdzIHNvbWUgY2hl Y2tpbmcgd2UgY2FuIGRvIHRvIGJlCisJIHN1cmUuICAqLworCisgICAgICBpZiAoISAoKGlzeW0u bl9zY2xhc3MgPT0gQ19TVEFUIHx8IGlzeW0ubl9zY2xhc3MgPT0gQ19FWFQpCisJICAgICAmJiBC VFlQRSAoaXN5bS5uX3R5cGUpID09IFRfTlVMTCAmJiBpc3ltLm5fdmFsdWUgPT0gMCkpCisJewor CSAgLyogTWFsZm9ybWVkIGlucHV0IGZpbGVzIGNhbiB0cmlnZ2VyIHRoaXMgdGVzdC4KKwkgICAg IGNmIFBSIDIxNzgxLiAgKi8KKwkgIF9iZmRfZXJyb3JfaGFuZGxlciAoCisJICAgICAgXyAoIiVw QjogZXJyb3I6IHVuZXhwZWN0ZWQgc3ltYm9sICclcycgaW4gQ09NREFUIHNlY3Rpb24iKSwgYWJm ZCwKKwkgICAgICBmb3VuZC0+c3ltbmFtZSk7CisJICByZXR1cm4gZmFsc2U7CiAJfQotICAgIH0K IAorICAgICAgLyogRklYTUUgTEFURVI6IE1TVkMgZ2VuZXJhdGVzIHNlY3Rpb24gbmFtZXMKKwkg bGlrZSAudGV4dCBmb3IgY29tZGF0cy4gIEdhcyBnZW5lcmF0ZXMKKwkgbmFtZXMgbGlrZSAudGV4 dCRmb29fX0Z2IChpbiB0aGUgY2FzZSBvZiBhCisJIGZ1bmN0aW9uKS4gIFNlZSBjb21tZW50IGFi b3ZlIGZvciBtb3JlLiAgKi8KKworICAgICAgaWYgKGlzeW0ubl9zY2xhc3MgPT0gQ19TVEFUICYm IHN0cmNtcCAobmFtZSwgZm91bmQtPnN5bW5hbWUpICE9IDApCisJLyogeGdldHRleHQ6Yy1mb3Jt YXQgKi8KKwlfYmZkX2Vycm9yX2hhbmRsZXIgKF8gKCIlcEI6IHdhcm5pbmc6IENPTURBVCBzeW1i b2wgJyVzJyIKKwkJCSAgICAgICAiIGRvZXMgbm90IG1hdGNoIHNlY3Rpb24gbmFtZSAnJXMnIiks CisJCQkgICAgYWJmZCwgZm91bmQtPnN5bW5hbWUsIG5hbWUpOworCisgICAgICBpZiAoZm91bmQt PmNvbWRhdF9zeW1ib2wgIT0gLTEpCisJeworCSAgaWYgKCEgaW5zZXJ0X2NvZmZfY29tZGF0X2lu Zm8gKGFiZmQsIHNlY3Rpb24sIGZvdW5kLT5jb21kYXRfbmFtZSwKKwkJCQkJIGZvdW5kLT5jb21k YXRfc3ltYm9sKSkKKwkgICAgcmV0dXJuIGZhbHNlOworCX0KKyAgICAgICpzZWNfZmxhZ3MgPSAq c2VjX2ZsYWdzIHwgZm91bmQtPnNlY19mbGFnczsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0K KyAgKnNlY19mbGFncyA9ICpzZWNfZmxhZ3MgfCBTRUNfTElOS19PTkNFOwogICByZXR1cm4gdHJ1 ZTsKIH0KIApAQCAtMTI2OCw3ICsxMzA5LDcgQEAgc3R5cF90b19zZWNfZmxhZ3MgKGJmZCAqYWJm ZCwKIAkgIGJyZWFrOwogCWNhc2UgSU1BR0VfU0NOX0xOS19DT01EQVQ6CiAJICAvKiBDT01EQVQg Z2V0cyB2ZXJ5IHNwZWNpYWwgdHJlYXRtZW50LiAgKi8KLQkgIGlmICghaGFuZGxlX0NPTURBVCAo YWJmZCwgJnNlY19mbGFncywgaGRyLCBuYW1lLCBzZWN0aW9uKSkKKwkgIGlmICghaGFuZGxlX0NP TURBVCAoYWJmZCwgJnNlY19mbGFncywgbmFtZSwgc2VjdGlvbikpCiAJICAgIHJlc3VsdCA9IGZh bHNlOwogCSAgYnJlYWs7CiAJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL2JmZC9jb2ZmZ2VuLmMgYi9i ZmQvY29mZmdlbi5jCmluZGV4IDFlYzlhNTE4NWMuLmJmOTYzM2EyYjMgMTAwNjQ0Ci0tLSBhL2Jm ZC9jb2ZmZ2VuLmMKKysrIGIvYmZkL2NvZmZnZW4uYwpAQCAtMjkzLDYgKzI5Myw4IEBAIGNvZmZf b2JqZWN0X2NsZWFudXAgKGJmZCAqYWJmZCkKIAkgICAgaHRhYl9kZWxldGUgKHRkLT5zZWN0aW9u X2J5X2luZGV4KTsKIAkgIGlmICh0ZC0+c2VjdGlvbl9ieV90YXJnZXRfaW5kZXgpCiAJICAgIGh0 YWJfZGVsZXRlICh0ZC0+c2VjdGlvbl9ieV90YXJnZXRfaW5kZXgpOworCSAgaWYgKG9ial9wZSAo YWJmZCkgJiYgcGVfZGF0YSAoYWJmZCktPmNvbWRhdF9oYXNoKQorCSAgICBodGFiX2RlbGV0ZSAo cGVfZGF0YSAoYWJmZCktPmNvbWRhdF9oYXNoKTsKIAl9CiAgICAgfQogfQpAQCAtMzI5Miw2ICsz Mjk0LDEyIEBAIF9iZmRfY29mZl9mcmVlX2NhY2hlZF9pbmZvIChiZmQgKmFiZmQpCiAJICB0ZGF0 YS0+c2VjdGlvbl9ieV90YXJnZXRfaW5kZXggPSBOVUxMOwogCX0KIAorICAgICAgaWYgKG9ial9w ZSAoYWJmZCkgJiYgcGVfZGF0YSAoYWJmZCktPmNvbWRhdF9oYXNoKQorCXsKKwkgIGh0YWJfZGVs ZXRlIChwZV9kYXRhIChhYmZkKS0+Y29tZGF0X2hhc2gpOworCSAgcGVfZGF0YSAoYWJmZCktPmNv bWRhdF9oYXNoID0gTlVMTDsKKwl9CisKICAgICAgIF9iZmRfZHdhcmYyX2NsZWFudXBfZGVidWdf aW5mbyAoYWJmZCwgJnRkYXRhLT5kd2FyZjJfZmluZF9saW5lX2luZm8pOwogICAgICAgX2JmZF9z dGFiX2NsZWFudXAgKGFiZmQsICZ0ZGF0YS0+bGluZV9pbmZvKTsKIApkaWZmIC0tZ2l0IGEvYmZk L2xpYmNvZmYtaW4uaCBiL2JmZC9saWJjb2ZmLWluLmgKaW5kZXggNGUyMjAzNjU2ZC4uZWFjZmNi M2VjMyAxMDA2NDQKLS0tIGEvYmZkL2xpYmNvZmYtaW4uaAorKysgYi9iZmQvbGliY29mZi1pbi5o CkBAIC0xNjEsMTAgKzE2MSwyMiBAQCB0eXBlZGVmIHN0cnVjdCBwZV90ZGF0YQogICAgIGNvbnN0 IGNoYXIgKnN0eWxlOwogICAgIGFzZWN0aW9uICpzZWM7CiAgIH0gYnVpbGRfaWQ7CisKKyAgaHRh Yl90IGNvbWRhdF9oYXNoOwogfSBwZV9kYXRhX3R5cGU7CiAKICNkZWZpbmUgcGVfZGF0YShiZmQp CQkoKGJmZCktPnRkYXRhLnBlX29ial9kYXRhKQogCitzdHJ1Y3QgY29tZGF0X2hhc2hfZW50cnkK K3sKKyAgaW50IHRhcmdldF9pbmRleDsKKyAgc3RydWN0IGludGVybmFsX3N5bWVudCBpc3ltOwor ICBjaGFyICpzeW1uYW1lOworICBmbGFnd29yZCBzZWNfZmxhZ3M7CisgIGNoYXIgKmNvbWRhdF9u YW1lOworICBsb25nIGNvbWRhdF9zeW1ib2w7Cit9OworCiAvKiBUZGF0YSBmb3IgWENPRkYgZmls ZXMuICAqLwogCiBzdHJ1Y3QgeGNvZmZfdGRhdGEKZGlmZiAtLWdpdCBhL2JmZC9wZWljb2RlLmgg Yi9iZmQvcGVpY29kZS5oCmluZGV4IDJjZDAyMGU2OTkuLjVhYzZiMGRjNTMgMTAwNjQ0Ci0tLSBh L2JmZC9wZWljb2RlLmgKKysrIGIvYmZkL3BlaWNvZGUuaApAQCAtMjU1LDYgKzI1NSwyMSBAQCBj b2ZmX3N3YXBfc2NuaGRyX2luIChiZmQgKiBhYmZkLCB2b2lkICogZXh0LCB2b2lkICogaW4pCiAj ZW5kaWYKIH0KIAorc3RhdGljIGhhc2h2YWxfdAoraHRhYl9oYXNoX2ZsYWdzIChjb25zdCB2b2lk ICplbnRyeSkKK3sKKyAgY29uc3Qgc3RydWN0IGNvbWRhdF9oYXNoX2VudHJ5ICpmZSA9IGVudHJ5 OworICByZXR1cm4gZmUtPnRhcmdldF9pbmRleDsKK30KKworc3RhdGljIGludAoraHRhYl9lcV9m bGFncyAoY29uc3Qgdm9pZCAqZTEsIGNvbnN0IHZvaWQgKmUyKQoreworICBjb25zdCBzdHJ1Y3Qg Y29tZGF0X2hhc2hfZW50cnkgKmZlMSA9IGUxOworICBjb25zdCBzdHJ1Y3QgY29tZGF0X2hhc2hf ZW50cnkgKmZlMiA9IGUyOworICByZXR1cm4gZmUxLT50YXJnZXRfaW5kZXggPT0gZmUyLT50YXJn ZXRfaW5kZXg7Cit9CisKIHN0YXRpYyBib29sCiBwZV9ta29iamVjdCAoYmZkICogYWJmZCkKIHsK QEAgLTI5MSw2ICszMDYsOCBAQCBwZV9ta29iamVjdCAoYmZkICogYWJmZCkKICAgcGUtPmRvc19t ZXNzYWdlWzE0XSA9IDB4MjQ7CiAgIHBlLT5kb3NfbWVzc2FnZVsxNV0gPSAweDA7CiAKKyAgcGUt PmNvbWRhdF9oYXNoID0gaHRhYl9jcmVhdGUgKDEwLCBodGFiX2hhc2hfZmxhZ3MsIGh0YWJfZXFf ZmxhZ3MsIE5VTEwpOworCiAgIG1lbXNldCAoJiBwZS0+cGVfb3B0aGRyLCAwLCBzaXplb2YgcGUt PnBlX29wdGhkcik7CiAKICAgYmZkX2NvZmZfbG9uZ19zZWN0aW9uX25hbWVzIChhYmZkKQotLSAK Mi40MS4wLndpbmRvd3MuMQoK --0000000000005df91206039e3c2b--