From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id DF0E33858D32 for ; Mon, 22 Aug 2022 19:09:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DF0E33858D32 Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-175-BH3QVlOWOuWg8SKPvfYD8A-1; Mon, 22 Aug 2022 15:09:57 -0400 X-MC-Unique: BH3QVlOWOuWg8SKPvfYD8A-1 Received: by mail-oo1-f72.google.com with SMTP id x20-20020a4a6214000000b0044896021930so6021260ooc.6 for ; Mon, 22 Aug 2022 12:09:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc; bh=vhMnFigzjhs5GK1tBVcsICW12OSo80e8WsQ7QDcwQ3k=; b=IABLPFUiq/EUQmJqfD+1/4FZ3eWjnmxE+8rsGpXl7JvjQad+9w0axeKWcSoFUsCNMr pQNR+U/asFZgGoJJgffFnP+Gpr3fTjj3r0NoQ7GvV29tiA/CEj5Xm24NhU2LfZ+0SSEV P8b1T8ohRmweZNAtCkXQ0k6hvsQSmSMYnkiAII4qIR8b+RiE+Ko9YMXQy1OEekg6CcI4 Sr7XQbPKN4ZfIqngpEaMF4rTCnCz3ljuBkOAEnNViBcRz4l6lviskXZFc+ZGCol35KeF Nqb6NO4iJkLGwJTb/gtVy8PMB46ziMCcg219Lf6+YxeSla0mPPmlHL5Soqsxtg4deHJ8 AE3A== X-Gm-Message-State: ACgBeo2jigHZfqmVmCKmL71mZXbvo4eDu+vXN2784el4n8z5d/9FGtc6 mLwfQRs5pwlJxBG3OBMC1JAXDSvpJcY6Psn7k3TkuILrsJpwejZKUlM4p7lC5wwsUiBXIhtlnnD sTl1hZKHHv52b6zv03D91ga1YvTHCGGhBIA== X-Received: by 2002:a05:6870:2197:b0:11c:ec7c:e19f with SMTP id l23-20020a056870219700b0011cec7ce19fmr6867934oae.119.1661195396512; Mon, 22 Aug 2022 12:09:56 -0700 (PDT) X-Google-Smtp-Source: AA6agR4vyU2GHzjBrupIh5N/kcZGV5swIs7HKdHY7AZHaF2VDvb5u9rYapvlbj8D3XoZKI88pk1njhQ68vodsnpCXuc= X-Received: by 2002:a05:6870:2197:b0:11c:ec7c:e19f with SMTP id l23-20020a056870219700b0011cec7ce19fmr6867926oae.119.1661195396183; Mon, 22 Aug 2022 12:09:56 -0700 (PDT) MIME-Version: 1.0 From: Ulrich Drepper Date: Mon, 22 Aug 2022 21:09:45 +0200 Message-ID: Subject: [Patch] add more C++ name hints. v2 To: gcc-patches@gcc.gnu.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000007e3d8505e6d9311d" X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, HTML_MESSAGE, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, 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 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2022 19:10:01 -0000 --0000000000007e3d8505e6d9311d Content-Type: text/plain; charset="UTF-8" This is the second version of the proposed patch to add more identifiers to the known list to give hints about #include and version numbers. Marek looked through the first version and found it acceptable but remarked that the list is getting long and the sequential search performed by the current code might not be adequate. Especially because I offered to add even more known names to the list. This second version replaces the current lookup implementation with a gperf-generated hash function. Since gperf is already a dependency for maintainers the use of the tool itself shouldn't be a problem. I followed the existing practice for the cfns.gperf file and its use so, if the handling of that file works, so should the handling of the new file, std-name-hint.gperf. Please let me know if this is acceptable. I built a compiler with this code and tested the hinting. contrib/ChangeLog * gcc_update (files_and_dependencies): Add gcc/cp/std-name-hint.h depend on gcc/cp/std-name-hint.gperf. gcc/cp/ChangeLog * Make-lang.in: Add rule to build std-name-hint.h. * name-lookup.cc (struct std_name_hint): Remove definition. Instead... Include "std-name-hint.h". (get_std_name_hint): Remove hints array and lookup code. Instead call std_name_hint_lookup::find. * std-name-hint.gperf: New file. * std-name-hint.h: New file. --0000000000007e3d8505e6d9311d Content-Type: application/octet-stream; name="d-g++-std-io-syms-hints-v2" Content-Disposition: attachment; filename="d-g++-std-io-syms-hints-v2" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l754tu3x0 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvZ2NjX3VwZGF0ZSBiL2NvbnRyaWIvZ2NjX3VwZGF0ZQppbmRl eCAyZWUxYmMxMzE2Ny4uZGQ4YjZkMGI2YmYgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvZ2NjX3VwZGF0 ZQorKysgYi9jb250cmliL2djY191cGRhdGUKQEAgLTk0LDYgKzk0LDcgQEAgZ2NjL2NvbmZpZy9y czYwMDAvcnM2MDAwLXRhYmxlcy5vcHQ6IGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC1jcHVzLmRl ZiBnY2MvY29uZmkKIGdjYy9jb25maWcvcnM2MDAwL2Z1c2lvbi5tZDogZ2NjL2NvbmZpZy9yczYw MDAvZ2VuZnVzaW9uLnBsCiAjIEFuZCB0aGVuLCBsYW5ndWFnZS1zcGVjaWZpYyBmaWxlcwogZ2Nj L2NwL2NmbnMuaDogZ2NjL2NwL2NmbnMuZ3BlcmYKK2djYy9jcC9zdGQtbmFtZS1oaW50Lmg6IGdj Yy9jcC9zdGQtbmFtZS1oaW50LmdwZXJmCiAjIHRlc3RzdWl0ZQogIyBXaXRob3V0IHRoaXMsIF9Q cmFnbWEzLmMgY2FuIGhhdmUgYSBmYWxzZSBuZWdhdGl2ZS4KIGdjYy90ZXN0c3VpdGUvZ2NjLmRn L2NwcC9fUHJhZ21hMy5jOiBnY2MvdGVzdHN1aXRlL2djYy5kZy9jcHAvbWkxYy5oCmRpZmYgLS1n aXQgYS9nY2MvY3AvTWFrZS1sYW5nLmluIGIvZ2NjL2NwL01ha2UtbGFuZy5pbgppbmRleCAyM2Q5 OGM4OTdiNS4uMzhkOGVlZWQxZjAgMTAwNjQ0Ci0tLSBhL2djYy9jcC9NYWtlLWxhbmcuaW4KKysr IGIvZ2NjL2NwL01ha2UtbGFuZy5pbgpAQCAtMTUzLDYgKzE1MywxNSBAQCBlbmRpZgogCWdwZXJm IC1vIC1DIC1FIC1rICcxLTYsJCQnIC1qMSAtRCAtTiAnbGliY19uYW1lX3AnIC1MIEMrKyBcCiAJ CSQoc3JjZGlyKS9jcC9jZm5zLmdwZXJmIC0tb3V0cHV0LWZpbGUgJChzcmNkaXIpL2NwL2NmbnMu aAogCisjIFRoZSBzYW1lIHByb2NlZHVyZSBmb3IgdGhlIHN0ZC1uYW1lLWhpbnQuZ3BlcmYgZmls ZS4KK2lmZXEgKCQoRU5BQkxFX01BSU5UQUlORVJfUlVMRVMpLCB0cnVlKQorJChzcmNkaXIpL2Nw L3N0ZC1uYW1lLWhpbnQuaDogJChzcmNkaXIpL2NwL3N0ZC1uYW1lLWhpbnQuZ3BlcmYKK2Vsc2UK KyQoc3JjZGlyKS9jcC9zdGQtbmFtZS1oaW50Lmg6CitlbmRpZgorCWdwZXJmIC1vIC1DIC1FIC1r ICcxLDIsNywxMSwkJCcgLUQgLU4gZmluZCAtTCBDKysgXAorCQkkKHNyY2RpcikvY3Avc3RkLW5h bWUtaGludC5ncGVyZiAtLW91dHB1dC1maWxlICQoc3JjZGlyKS9jcC9zdGQtbmFtZS1oaW50LmgK KwogY2MxcGx1cy5mZGE6IC4uL3N0YWdlMS1nY2MvY2MxcGx1cyQoZXhlZXh0KSAuLi9wcmV2LWdj Yy8kKFBFUkZfREFUQSkKIAkkKENSRUFURV9HQ09WKSAtYmluYXJ5IC4uL3N0YWdlMS1nY2MvY2Mx cGx1cyQoZXhlZXh0KSAtZ2NvdiBjYzFwbHVzLmZkYSAtcHJvZmlsZSAuLi9wcmV2LWdjYy8kKFBF UkZfREFUQSkgLWdjb3ZfdmVyc2lvbiAxCiAKZGlmZiAtLWdpdCBhL2djYy9jcC9uYW1lLWxvb2t1 cC5jYyBiL2djYy9jcC9uYW1lLWxvb2t1cC5jYwppbmRleCBjZTYyMjc2MWExYS4uZjg5YTFkYzQx MTEgMTAwNjQ0Ci0tLSBhL2djYy9jcC9uYW1lLWxvb2t1cC5jYworKysgYi9nY2MvY3AvbmFtZS1s b29rdXAuY2MKQEAgLTY2OTEsMjAgKzY2OTEsMTQgQEAgc3VnZ2VzdF9hbHRlcm5hdGl2ZXNfaW5f b3RoZXJfbmFtZXNwYWNlcyAobG9jYXRpb25fdCBsb2NhdGlvbiwgdHJlZSBuYW1lKQogfQogCiAv KiBBIHdlbGwta25vd24gbmFtZSB3aXRoaW4gdGhlIEMrKyBzdGFuZGFyZCBsaWJyYXJ5LCByZXR1 cm5lZCBieQotICAgZ2V0X3N0ZF9uYW1lX2hpbnQuICAqLworICAgZ2V0X3N0ZF9uYW1lX2hpbnQu CiAKLXN0cnVjdCBzdGRfbmFtZV9oaW50Ci17Ci0gIC8qIEEgbmFtZSB3aXRoaW4gInN0ZDo6Ii4g ICovCi0gIGNvbnN0IGNoYXIgKm5hbWU7Ci0KLSAgLyogVGhlIGhlYWRlciBuYW1lIGRlZmluaW5n IGl0IHdpdGhpbiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnkKLSAgICAgKHdpdGggJzwnIGFuZCAn PicpLiAgKi8KLSAgY29uc3QgY2hhciAqaGVhZGVyOworICAgVGhlIGdwZXJmLWdlbmVyYXRlZCBm aWxlIGNvbnRhaW5zIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBjbGFzcworICAgInN0ZF9uYW1lX2hp bnRfbG9va3VwIiB3aXRoIGEgc3RhdGljIG1lbWJlciBmdW5jdGlvbiB3aGljaAorICAgcmV0dXJu cyB0aGUgcG9pbnRlciB0byBhIHN0cnVjdHVyZSAic3RkX25hbWVfaGludCIgd2hpY2gKKyAgIGlz IGFsc28gZGVmaW5lZCBpbiB0aGF0IGZpbGUuICAqLwogCi0gIC8qIFRoZSBkaWFsZWN0IG9mIEMr KyBpbiB3aGljaCB0aGlzIHdhcyBhZGRlZC4gICovCi0gIGVudW0gY3h4X2RpYWxlY3QgbWluX2Rp YWxlY3Q7Ci19OworI2luY2x1ZGUgInN0ZC1uYW1lLWhpbnQuaCIKIAogLyogU3Vicm91dGluZSBv ZiBtYXliZV9zdWdnZXN0X21pc3NpbmdfaGVhZGVyIGZvciBoYW5kbGluZyB1bnJlY29nbml6ZWQg bmFtZXMKICAgIGZvciBzb21lIG9mIHRoZSBtb3N0IGNvbW1vbiBuYW1lcyB3aXRoaW4gInN0ZDo6 Ii4KQEAgLTY3MTMsMjE4ICs2NzA3LDcgQEAgc3RydWN0IHN0ZF9uYW1lX2hpbnQKIHN0YXRpYyBj b25zdCBzdGRfbmFtZV9oaW50ICoKIGdldF9zdGRfbmFtZV9oaW50IChjb25zdCBjaGFyICpuYW1l KQogewotICBzdGF0aWMgY29uc3Qgc3RkX25hbWVfaGludCBoaW50c1tdID0gewotICAgIC8qIDxh bnk+LiAgKi8KLSAgICB7ImFueSIsICI8YW55PiIsIGN4eDE3fSwKLSAgICB7ImFueV9jYXN0Iiwg Ijxhbnk+IiwgY3h4MTd9LAotICAgIHsibWFrZV9hbnkiLCAiPGFueT4iLCBjeHgxN30sCi0gICAg LyogPGFycmF5Pi4gICovCi0gICAgeyJhcnJheSIsICI8YXJyYXk+IiwgY3h4MTF9LAotICAgIHsi dG9fYXJyYXkiLCAiPGFycmF5PiIsIGN4eDIwfSwKLSAgICAvKiA8YXRvbWljPi4gICovCi0gICAg eyJhdG9taWMiLCAiPGF0b21pYz4iLCBjeHgxMX0sCi0gICAgeyJhdG9taWNfZmxhZyIsICI8YXRv bWljPiIsIGN4eDExfSwKLSAgICB7ImF0b21pY19yZWYiLCAiPGF0b21pYz4iLCBjeHgyMH0sCi0g ICAgLyogPGJpdHNldD4uICAqLwotICAgIHsiYml0c2V0IiwgIjxiaXRzZXQ+IiwgY3h4MTF9LAot ICAgIC8qIDxjb21wYXJlPiAqLwotICAgIHsid2Vha19lcXVhbGl0eSIsICI8Y29tcGFyZT4iLCBj eHgyMH0sCi0gICAgeyJzdHJvbmdfZXF1YWxpdHkiLCAiPGNvbXBhcmU+IiwgY3h4MjB9LAotICAg IHsicGFydGlhbF9vcmRlcmluZyIsICI8Y29tcGFyZT4iLCBjeHgyMH0sCi0gICAgeyJ3ZWFrX29y ZGVyaW5nIiwgIjxjb21wYXJlPiIsIGN4eDIwfSwKLSAgICB7InN0cm9uZ19vcmRlcmluZyIsICI8 Y29tcGFyZT4iLCBjeHgyMH0sCi0gICAgLyogPGNvbXBsZXg+LiAgKi8KLSAgICB7ImNvbXBsZXgi LCAiPGNvbXBsZXg+IiwgY3h4OTh9LAotICAgIHsiY29tcGxleF9saXRlcmFscyIsICI8Y29tcGxl eD4iLCBjeHgxNH0sCi0gICAgLyogPGNvbmRpdGlvbl92YXJpYWJsZT4uICovCi0gICAgeyJjb25k aXRpb25fdmFyaWFibGUiLCAiPGNvbmRpdGlvbl92YXJpYWJsZT4iLCBjeHgxMX0sCi0gICAgeyJj b25kaXRpb25fdmFyaWFibGVfYW55IiwgIjxjb25kaXRpb25fdmFyaWFibGU+IiwgY3h4MTF9LAot ICAgIC8qIDxjc3RkZGVmPi4gICovCi0gICAgeyJieXRlIiwgIjxjc3RkZGVmPiIsIGN4eDE3fSwK LSAgICAvKiA8ZGVxdWU+LiAgKi8KLSAgICB7ImRlcXVlIiwgIjxkZXF1ZT4iLCBjeHg5OH0sCi0g ICAgLyogPGZvcndhcmRfbGlzdD4uICAqLwotICAgIHsiZm9yd2FyZF9saXN0IiwgIjxmb3J3YXJk X2xpc3Q+IiwgY3h4MTF9LAotICAgIC8qIDxmc3RyZWFtPi4gICovCi0gICAgeyJiYXNpY19maWxl YnVmIiwgIjxmc3RyZWFtPiIsIGN4eDk4fSwKLSAgICB7ImJhc2ljX2lmc3RyZWFtIiwgIjxmc3Ry ZWFtPiIsIGN4eDk4fSwKLSAgICB7ImJhc2ljX29mc3RyZWFtIiwgIjxmc3RyZWFtPiIsIGN4eDk4 fSwKLSAgICB7ImJhc2ljX2ZzdHJlYW0iLCAiPGZzdHJlYW0+IiwgY3h4OTh9LAotICAgIHsiZnN0 cmVhbSIsICI8ZnN0cmVhbT4iLCBjeHg5OH0sCi0gICAgeyJpZnN0cmVhbSIsICI8ZnN0cmVhbT4i LCBjeHg5OH0sCi0gICAgeyJvZnN0cmVhbSIsICI8ZnN0cmVhbT4iLCBjeHg5OH0sCi0gICAgLyog PGZ1bmN0aW9uYWw+LiAgKi8KLSAgICB7ImJpbmQiLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MTF9LAot ICAgIHsiYmluZF9mcm9udCIsICI8ZnVuY3Rpb25hbD4iLCBjeHgyMH0sCi0gICAgeyJmdW5jdGlv biIsICI8ZnVuY3Rpb25hbD4iLCBjeHgxMX0sCi0gICAgeyJoYXNoIiwgIjxmdW5jdGlvbmFsPiIs IGN4eDExfSwKLSAgICB7Imludm9rZSIsICI8ZnVuY3Rpb25hbD4iLCBjeHgxN30sCi0gICAgeyJt ZW1fZm4iLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MTF9LAotICAgIHsibm90X2ZuIiwgIjxmdW5jdGlv bmFsPiIsIGN4eDE3fSwKLSAgICB7InJlZmVyZW5jZV93cmFwcGVyIiwgIjxmdW5jdGlvbmFsPiIs IGN4eDExfSwKLSAgICB7InVud3JhcF9yZWZlcmVuY2UiLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MjB9 LAotICAgIHsidW53cmFwX3JlZmVyZW5jZV90IiwgIjxmdW5jdGlvbmFsPiIsIGN4eDIwfSwKLSAg ICB7InVud3JhcF9yZWZfZGVjYXkiLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MjB9LAotICAgIHsidW53 cmFwX3JlZl9kZWNheV90IiwgIjxmdW5jdGlvbmFsPiIsIGN4eDIwfSwKLSAgICAvKiA8ZnV0dXJl Pi4gKi8KLSAgICB7ImFzeW5jIiwgIjxmdXR1cmU+IiwgY3h4MTF9LAotICAgIHsiZnV0dXJlIiwg IjxmdXR1cmU+IiwgY3h4MTF9LAotICAgIHsicGFja2FnZWRfdGFzayIsICI8ZnV0dXJlPiIsIGN4 eDExfSwKLSAgICB7InByb21pc2UiLCAiPGZ1dHVyZT4iLCBjeHgxMX0sCi0gICAgLyogPGlvc3Ry ZWFtPi4gICovCi0gICAgeyJjaW4iLCAiPGlvc3RyZWFtPiIsIGN4eDk4fSwKLSAgICB7ImNvdXQi LCAiPGlvc3RyZWFtPiIsIGN4eDk4fSwKLSAgICB7ImNlcnIiLCAiPGlvc3RyZWFtPiIsIGN4eDk4 fSwKLSAgICB7ImNsb2ciLCAiPGlvc3RyZWFtPiIsIGN4eDk4fSwKLSAgICB7IndjaW4iLCAiPGlv c3RyZWFtPiIsIGN4eDk4fSwKLSAgICB7Indjb3V0IiwgIjxpb3N0cmVhbT4iLCBjeHg5OH0sCi0g ICAgeyJ3Y2xvZyIsICI8aW9zdHJlYW0+IiwgY3h4OTh9LAotICAgIC8qIDxpc3RyZWFtPi4gICov Ci0gICAgeyJpc3RyZWFtIiwgIjxpc3RyZWFtPiIsIGN4eDk4fSwKLSAgICAvKiA8aXRlcmF0b3I+ LiAgKi8KLSAgICB7ImFkdmFuY2UiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4fSwKLSAgICB7ImJhY2tf aW5zZXJ0ZXIiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4fSwKLSAgICB7ImJlZ2luIiwgIjxpdGVyYXRv cj4iLCBjeHgxMX0sCi0gICAgeyJkaXN0YW5jZSIsICI8aXRlcmF0b3I+IiwgY3h4OTh9LAotICAg IHsiZW5kIiwgIjxpdGVyYXRvcj4iLCBjeHgxMX0sCi0gICAgeyJmcm9udF9pbnNlcnRlciIsICI8 aXRlcmF0b3I+IiwgY3h4OTh9LAotICAgIHsiaW5zZXJ0ZXIiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4 fSwKLSAgICB7ImlzdHJlYW1faXRlcmF0b3IiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4fSwKLSAgICB7 ImlzdHJlYW1idWZfaXRlcmF0b3IiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4fSwKLSAgICB7Iml0ZXJh dG9yX3RyYWl0cyIsICI8aXRlcmF0b3I+IiwgY3h4OTh9LAotICAgIHsibW92ZV9pdGVyYXRvciIs ICI8aXRlcmF0b3I+IiwgY3h4MTF9LAotICAgIHsibmV4dCIsICI8aXRlcmF0b3I+IiwgY3h4MTF9 LAotICAgIHsib3N0cmVhbV9pdGVyYXRvciIsICI8aXRlcmF0b3I+IiwgY3h4OTh9LAotICAgIHsi b3N0cmVhbWJ1Zl9pdGVyYXRvciIsICI8aXRlcmF0b3I+IiwgY3h4OTh9LAotICAgIHsicHJldiIs ICI8aXRlcmF0b3I+IiwgY3h4MTF9LAotICAgIHsicmV2ZXJzZV9pdGVyYXRvciIsICI8aXRlcmF0 b3I+IiwgY3h4OTh9LAotICAgIC8qIDxvc3RyZWFtPi4gICovCi0gICAgeyJvc3RyZWFtIiwgIjxv c3RyZWFtPiIsIGN4eDk4fSwKLSAgICAvKiA8bGlzdD4uICAqLwotICAgIHsibGlzdCIsICI8bGlz dD4iLCBjeHg5OH0sCi0gICAgLyogPG1hcD4uICAqLwotICAgIHsibWFwIiwgIjxtYXA+IiwgY3h4 OTh9LAotICAgIHsibXVsdGltYXAiLCAiPG1hcD4iLCBjeHg5OH0sCi0gICAgLyogPG1lbW9yeT4u ICAqLwotICAgIHsiYWxsb2NhdGVfc2hhcmVkIiwgIjxtZW1vcnk+IiwgY3h4MTF9LAotICAgIHsi YWxsb2NhdG9yIiwgIjxtZW1vcnk+IiwgY3h4OTh9LAotICAgIHsiYWxsb2NhdG9yX3RyYWl0cyIs ICI8bWVtb3J5PiIsIGN4eDExfSwKLSAgICB7Im1ha2Vfc2hhcmVkIiwgIjxtZW1vcnk+IiwgY3h4 MTF9LAotICAgIHsibWFrZV91bmlxdWUiLCAiPG1lbW9yeT4iLCBjeHgxNH0sCi0gICAgeyJzaGFy ZWRfcHRyIiwgIjxtZW1vcnk+IiwgY3h4MTF9LAotICAgIHsidW5pcXVlX3B0ciIsICI8bWVtb3J5 PiIsIGN4eDExfSwKLSAgICB7IndlYWtfcHRyIiwgIjxtZW1vcnk+IiwgY3h4MTF9LAotICAgIC8q IDxtZW1vcnlfcmVzb3VyY2U+LiAgKi8KLSAgICB7InBtciIsICI8bWVtb3J5X3Jlc291cmNlPiIs IGN4eDE3fSwKLSAgICAvKiA8bXV0ZXg+LiAgKi8KLSAgICB7Im11dGV4IiwgIjxtdXRleD4iLCBj eHgxMX0sCi0gICAgeyJ0aW1lZF9tdXRleCIsICI8bXV0ZXg+IiwgY3h4MTF9LAotICAgIHsicmVj dXJzaXZlX211dGV4IiwgIjxtdXRleD4iLCBjeHgxMX0sCi0gICAgeyJyZWN1cnNpdmVfdGltZWRf bXV0ZXgiLCAiPG11dGV4PiIsIGN4eDExfSwKLSAgICB7Im9uY2VfZmxhZyIsICI8bXV0ZXg+Iiwg Y3h4MTF9LAotICAgIHsiY2FsbF9vbmNlLCIsICI8bXV0ZXg+IiwgY3h4MTF9LAotICAgIHsibG9j ayIsICI8bXV0ZXg+IiwgY3h4MTF9LAotICAgIHsic2NvcGVkX2xvY2siLCAiPG11dGV4PiIsIGN4 eDE3fSwKLSAgICB7InRyeV9sb2NrIiwgIjxtdXRleD4iLCBjeHgxMX0sCi0gICAgeyJsb2NrX2d1 YXJkIiwgIjxtdXRleD4iLCBjeHgxMX0sCi0gICAgeyJ1bmlxdWVfbG9jayIsICI8bXV0ZXg+Iiwg Y3h4MTF9LAotICAgIC8qIDxvcHRpb25hbD4uICovCi0gICAgeyJvcHRpb25hbCIsICI8b3B0aW9u YWw+IiwgY3h4MTd9LAotICAgIHsibWFrZV9vcHRpb25hbCIsICI8b3B0aW9uYWw+IiwgY3h4MTd9 LAotICAgIC8qIDxvc3RyZWFtPi4gICovCi0gICAgeyJvc3RyZWFtIiwgIjxvc3RyZWFtPiIsIGN4 eDk4fSwKLSAgICB7Indvc3RyZWFtIiwgIjxvc3RyZWFtPiIsIGN4eDk4fSwKLSAgICB7ImVuZHMi LCAiPG9zdHJlYW0+IiwgY3h4OTh9LAotICAgIHsiZmx1c2giLCAiPG9zdHJlYW0+IiwgY3h4OTh9 LAotICAgIHsiZW5kbCIsICI8b3N0cmVhbT4iLCBjeHg5OH0sCi0gICAgLyogPHF1ZXVlPi4gICov Ci0gICAgeyJxdWV1ZSIsICI8cXVldWU+IiwgY3h4OTh9LAotICAgIHsicHJpb3JpdHlfcXVldWUi LCAiPHF1ZXVlPiIsIGN4eDk4fSwKLSAgICAvKiA8c2V0Pi4gICovCi0gICAgeyJzZXQiLCAiPHNl dD4iLCBjeHg5OH0sCi0gICAgeyJtdWx0aXNldCIsICI8c2V0PiIsIGN4eDk4fSwKLSAgICAvKiA8 c2hhcmVkX211dGV4Pi4gICovCi0gICAgeyJzaGFyZWRfbG9jayIsICI8c2hhcmVkX211dGV4PiIs IGN4eDE0fSwKLSAgICB7InNoYXJlZF9tdXRleCIsICI8c2hhcmVkX211dGV4PiIsIGN4eDE3fSwK LSAgICB7InNoYXJlZF90aW1lZF9tdXRleCIsICI8c2hhcmVkX211dGV4PiIsIGN4eDE0fSwKLSAg ICAvKiA8c291cmNlX2xvY2F0aW9uPi4gICovCi0gICAgeyJzb3VyY2VfbG9jYXRpb24iLCAiPHNv dXJjZV9sb2NhdGlvbj4iLCBjeHgyMH0sCi0gICAgLyogPHNzdHJlYW0+LiAgKi8KLSAgICB7ImJh c2ljX3N0cmluZ2J1ZiIsICI8c3N0cmVhbT4iLCBjeHg5OH0sCi0gICAgeyJiYXNpY19pc3RyaW5n c3RyZWFtIiwgIjxzc3RyZWFtPiIsIGN4eDk4fSwKLSAgICB7ImJhc2ljX29zdHJpbmdzdHJlYW0i LCAiPHNzdHJlYW0+IiwgY3h4OTh9LAotICAgIHsiYmFzaWNfc3RyaW5nc3RyZWFtIiwgIjxzc3Ry ZWFtPiIsIGN4eDk4fSwKLSAgICB7ImlzdHJpbmdzdHJlYW0iLCAiPHNzdHJlYW0+IiwgY3h4OTh9 LAotICAgIHsib3N0cmluZ3N0cmVhbSIsICI8c3N0cmVhbT4iLCBjeHg5OH0sCi0gICAgeyJzdHJp bmdzdHJlYW0iLCAiPHNzdHJlYW0+IiwgY3h4OTh9LAotICAgIC8qIDxzdGFjaz4uICAqLwotICAg IHsic3RhY2siLCAiPHN0YWNrPiIsIGN4eDk4fSwKLSAgICAvKiA8c3RyaW5nPi4gICovCi0gICAg eyJiYXNpY19zdHJpbmciLCAiPHN0cmluZz4iLCBjeHg5OH0sCi0gICAgeyJzdHJpbmciLCAiPHN0 cmluZz4iLCBjeHg5OH0sCi0gICAgeyJ3c3RyaW5nIiwgIjxzdHJpbmc+IiwgY3h4OTh9LAotICAg IHsidThzdHJpbmciLCAiPHN0cmluZz4iLCBjeHgyMH0sCi0gICAgeyJ1MTZzdHJpbmciLCAiPHN0 cmluZz4iLCBjeHgxMX0sCi0gICAgeyJ1MzJzdHJpbmciLCAiPHN0cmluZz4iLCBjeHgxMX0sCi0g ICAgLyogPHN0cmluZ192aWV3Pi4gICovCi0gICAgeyJiYXNpY19zdHJpbmdfdmlldyIsICI8c3Ry aW5nX3ZpZXc+IiwgY3h4MTd9LAotICAgIHsic3RyaW5nX3ZpZXciLCAiPHN0cmluZ192aWV3PiIs IGN4eDE3fSwKLSAgICAvKiA8dGhyZWFkPi4gICovCi0gICAgeyJ0aHJlYWQiLCAiPHRocmVhZD4i LCBjeHgxMX0sCi0gICAgeyJ0aGlzX3RocmVhZCIsICI8dGhyZWFkPiIsIGN4eDExfSwKLSAgICAv KiA8dHVwbGU+LiAgKi8KLSAgICB7ImFwcGx5IiwgIjx0dXBsZT4iLCBjeHgxN30sCi0gICAgeyJm b3J3YXJkX2FzX3R1cGxlIiwgIjx0dXBsZT4iLCBjeHgxMX0sCi0gICAgeyJtYWtlX2Zyb21fdHVw bGUiLCAiPHR1cGxlPiIsIGN4eDE3fSwKLSAgICB7Im1ha2VfdHVwbGUiLCAiPHR1cGxlPiIsIGN4 eDExfSwKLSAgICB7InRpZSIsICI8dHVwbGU+IiwgY3h4MTF9LAotICAgIHsidHVwbGUiLCAiPHR1 cGxlPiIsIGN4eDExfSwKLSAgICB7InR1cGxlX2NhdCIsICI8dHVwbGU+IiwgY3h4MTF9LAotICAg IHsidHVwbGVfZWxlbWVudCIsICI8dHVwbGU+IiwgY3h4MTF9LAotICAgIHsidHVwbGVfZWxlbWVu dF90IiwgIjx0dXBsZT4iLCBjeHgxNH0sCi0gICAgeyJ0dXBsZV9zaXplIiwgIjx0dXBsZT4iLCBj eHgxMX0sCi0gICAgeyJ0dXBsZV9zaXplX3YiLCAiPHR1cGxlPiIsIGN4eDE3fSwKLSAgICAvKiA8 dHlwZV90cmFpdHM+LiAgKi8KLSAgICB7ImVuYWJsZV9pZiIsICI8dHlwZV90cmFpdHM+IiwgY3h4 MTF9LAotICAgIHsiZW5hYmxlX2lmX3QiLCAiPHR5cGVfdHJhaXRzPiIsIGN4eDE0fSwKLSAgICB7 Imludm9rZV9yZXN1bHQiLCAiPHR5cGVfdHJhaXRzPiIsIGN4eDE3fSwKLSAgICB7Imludm9rZV9y ZXN1bHRfdCIsICI8dHlwZV90cmFpdHM+IiwgY3h4MTd9LAotICAgIHsicmVtb3ZlX2N2cmVmIiwg Ijx0eXBlX3RyYWl0cz4iLCBjeHgyMH0sCi0gICAgeyJyZW1vdmVfY3ZyZWZfdCIsICI8dHlwZV90 cmFpdHM+IiwgY3h4MjB9LAotICAgIHsidHlwZV9pZGVudGl0eSIsICI8dHlwZV90cmFpdHM+Iiwg Y3h4MjB9LAotICAgIHsidHlwZV9pZGVudGl0eV90IiwgIjx0eXBlX3RyYWl0cz4iLCBjeHgyMH0s Ci0gICAgeyJ2b2lkX3QiLCAiPHR5cGVfdHJhaXRzPiIsIGN4eDE3fSwKLSAgICB7ImNvbmp1bmN0 aW9uIiwgIjx0eXBlX3RyYWl0cz4iLCBjeHgxN30sCi0gICAgeyJjb25qdW5jdGlvbl92IiwgIjx0 eXBlX3RyYWl0cz4iLCBjeHgxN30sCi0gICAgeyJkaXNqdW5jdGlvbiIsICI8dHlwZV90cmFpdHM+ IiwgY3h4MTd9LAotICAgIHsiZGlzanVuY3Rpb25fdiIsICI8dHlwZV90cmFpdHM+IiwgY3h4MTd9 LAotICAgIHsibmVnYXRpb24iLCAiPHR5cGVfdHJhaXRzPiIsIGN4eDE3fSwKLSAgICB7Im5lZ2F0 aW9uX3YiLCAiPHR5cGVfdHJhaXRzPiIsIGN4eDE3fSwKLSAgICAvKiA8dW5vcmRlcmVkX21hcD4u ICAqLwotICAgIHsidW5vcmRlcmVkX21hcCIsICI8dW5vcmRlcmVkX21hcD4iLCBjeHgxMX0sCi0g ICAgeyJ1bm9yZGVyZWRfbXVsdGltYXAiLCAiPHVub3JkZXJlZF9tYXA+IiwgY3h4MTF9LAotICAg IC8qIDx1bm9yZGVyZWRfc2V0Pi4gICovCi0gICAgeyJ1bm9yZGVyZWRfc2V0IiwgIjx1bm9yZGVy ZWRfc2V0PiIsIGN4eDExfSwKLSAgICB7InVub3JkZXJlZF9tdWx0aXNldCIsICI8dW5vcmRlcmVk X3NldD4iLCBjeHgxMX0sCi0gICAgLyogPHV0aWxpdHk+LiAgKi8KLSAgICB7ImRlY2x2YWwiLCAi PHV0aWxpdHk+IiwgY3h4MTF9LAotICAgIHsiZm9yd2FyZCIsICI8dXRpbGl0eT4iLCBjeHgxMX0s Ci0gICAgeyJtYWtlX3BhaXIiLCAiPHV0aWxpdHk+IiwgY3h4OTh9LAotICAgIHsibW92ZSIsICI8 dXRpbGl0eT4iLCBjeHgxMX0sCi0gICAgeyJwYWlyIiwgIjx1dGlsaXR5PiIsIGN4eDk4fSwKLSAg ICAvKiA8dmFyaWFudD4uICAqLwotICAgIHsidmFyaWFudCIsICI8dmFyaWFudD4iLCBjeHgxN30s Ci0gICAgeyJ2aXNpdCIsICI8dmFyaWFudD4iLCBjeHgxN30sCi0gICAgLyogPHZlY3Rvcj4uICAq LwotICAgIHsidmVjdG9yIiwgIjx2ZWN0b3I+IiwgY3h4OTh9LAotICB9OwotICBjb25zdCBzaXpl X3QgbnVtX2hpbnRzID0gQVJSQVlfU0laRSAoaGludHMpOwotICBmb3IgKHNpemVfdCBpID0gMDsg aSA8IG51bV9oaW50czsgaSsrKQotICAgIHsKLSAgICAgIGlmIChzdHJjbXAgKG5hbWUsIGhpbnRz W2ldLm5hbWUpID09IDApCi0JcmV0dXJuICZoaW50c1tpXTsKLSAgICB9Ci0gIHJldHVybiBOVUxM OworICByZXR1cm4gc3RkX25hbWVfaGludF9sb29rdXA6OmZpbmQobmFtZSwgc3RybGVuKG5hbWUp KTsKIH0KIAogLyogRGVzY3JpYmUgRElBTEVDVC4gICovCi0tLSAvZGV2L251bGwJMjAyMi0wOC0x OCAxMzozODo0Ny43NjAzOTE5NDEgKzAyMDAKKysrIGIvZ2NjL2NwL3N0ZC1uYW1lLWhpbnQuZ3Bl cmYJMjAyMi0wOC0yMiAxOTo0NTo1My4yMzcxMjc5OTggKzAyMDAKQEAgLTAsMCArMSwyODcgQEAK KyVsYW5ndWFnZT1DKysKKyVkZWZpbmUgY2xhc3MtbmFtZSBzdGRfbmFtZV9oaW50X2xvb2t1cAor JXN0cnVjdC10eXBlCisleworLyogQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorCitUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCisKK0dDQyBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVy Cit0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIKK3ZlcnNpb24uCisKK0dDQyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKK1dB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM SVRZIG9yCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKK2ZvciBtb3JlIGRldGFpbHMuCisKK1lvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCithbG9u ZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQorPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKyV9CitzdHJ1Y3Qgc3RkX25hbWVfaGludAorewor ICAvKiBBIG5hbWUgd2l0aGluICJzdGQ6OiIuICAqLworICBjb25zdCBjaGFyICpuYW1lOworCisg IC8qIFRoZSBoZWFkZXIgbmFtZSBkZWZpbmluZyBpdCB3aXRoaW4gdGhlIEMrKyBTdGFuZGFyZCBM aWJyYXJ5CisgICAgICh3aXRoICc8JyBhbmQgJz4nKS4gICovCisgIGNvbnN0IGNoYXIqIGhlYWRl cjsKKworICAvKiBUaGUgZGlhbGVjdCBvZiBDKysgaW4gd2hpY2ggdGhpcyB3YXMgYWRkZWQuICAq LworICBlbnVtIGN4eF9kaWFsZWN0IG1pbl9kaWFsZWN0OworfTsKKyUlCisjIFRoZSBzdGFuZGFy ZC1kZWZpbmVkIHR5cGVzLCBmdW5jdGlvbnMsIGFuZCBvcHRpb25zIGluIHRoZSBzdGQ6OiBuYW1l c3BhY2UKKyMgYXMgZGVmaW5lZCBpbiB0aGUgQysrIGxhbmd1YWdlIHNwZWNpZmljYXRpb24uICBU aGUgcmVzdWx0IGlzIHVzZWQgaW4gdGhlCisjIGdldF9zdGRfbmFtZV9oaW50IGZ1bmN0aW9ucy4K KyMgICB0aHJvd3MgYW4gZXhjZXB0aW9uLgorIworIyA8YW55PgorYW55LCAiPGFueT4iLCBjeHgx NworYW55X2Nhc3QsICI8YW55PiIsIGN4eDE3CittYWtlX2FueSwgIjxhbnk+IiwgY3h4MTcKKyMg PGFycmF5PgorYXJyYXksICI8YXJyYXk+IiwgY3h4MTEKK3RvX2FycmF5LCAiPGFycmF5PiIsIGN4 eDIwCisjIDxhdG9taWM+CithdG9taWMsICI8YXRvbWljPiIsIGN4eDExCithdG9taWNfZmxhZywg IjxhdG9taWM+IiwgY3h4MTEKK2F0b21pY19yZWYsICI8YXRvbWljPiIsIGN4eDIwCisjIDxiaXRz ZXQ+CitiaXRzZXQsICI8Yml0c2V0PiIsIGN4eDExCisjIDxjb21wYXJlPgord2Vha19lcXVhbGl0 eSwgIjxjb21wYXJlPiIsIGN4eDIwCitzdHJvbmdfZXF1YWxpdHksICI8Y29tcGFyZT4iLCBjeHgy MAorcGFydGlhbF9vcmRlcmluZywgIjxjb21wYXJlPiIsIGN4eDIwCit3ZWFrX29yZGVyaW5nLCAi PGNvbXBhcmU+IiwgY3h4MjAKK3N0cm9uZ19vcmRlcmluZywgIjxjb21wYXJlPiIsIGN4eDIwCisj IDxjb21wbGV4PgorY29tcGxleCwgIjxjb21wbGV4PiIsIGN4eDk4Citjb21wbGV4X2xpdGVyYWxz LCAiPGNvbXBsZXg+IiwgY3h4MTQKKyMgPGNvbmRpdGlvbl92YXJpYWJsZT4uICovCitjb25kaXRp b25fdmFyaWFibGUsICI8Y29uZGl0aW9uX3ZhcmlhYmxlPiIsIGN4eDExCitjb25kaXRpb25fdmFy aWFibGVfYW55LCAiPGNvbmRpdGlvbl92YXJpYWJsZT4iLCBjeHgxMQorIyA8Y3N0ZGRlZj4KK2J5 dGUsICI8Y3N0ZGRlZj4iLCBjeHgxNworIyA8ZGVxdWU+CitkZXF1ZSwgIjxkZXF1ZT4iLCBjeHg5 OAorIyA8Zm9yd2FyZF9saXN0PgorZm9yd2FyZF9saXN0LCAiPGZvcndhcmRfbGlzdD4iLCBjeHgx MQorIyA8ZnN0cmVhbT4KK2Jhc2ljX2ZpbGVidWYsICI8ZnN0cmVhbT4iLCBjeHg5OAorYmFzaWNf aWZzdHJlYW0sICI8ZnN0cmVhbT4iLCBjeHg5OAorYmFzaWNfb2ZzdHJlYW0sICI8ZnN0cmVhbT4i LCBjeHg5OAorYmFzaWNfZnN0cmVhbSwgIjxmc3RyZWFtPiIsIGN4eDk4Citmc3RyZWFtLCAiPGZz dHJlYW0+IiwgY3h4OTgKK2lmc3RyZWFtLCAiPGZzdHJlYW0+IiwgY3h4OTgKK29mc3RyZWFtLCAi PGZzdHJlYW0+IiwgY3h4OTgKKyMgPGZ1bmN0aW9uYWw+CitiaW5kLCAiPGZ1bmN0aW9uYWw+Iiwg Y3h4MTEKK2JpbmRfZnJvbnQsICI8ZnVuY3Rpb25hbD4iLCBjeHgyMAorZnVuY3Rpb24sICI8ZnVu Y3Rpb25hbD4iLCBjeHgxMQoraGFzaCwgIjxmdW5jdGlvbmFsPiIsIGN4eDExCitpbnZva2UsICI8 ZnVuY3Rpb25hbD4iLCBjeHgxNworbWVtX2ZuLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MTEKK25vdF9m biwgIjxmdW5jdGlvbmFsPiIsIGN4eDE3CityZWZlcmVuY2Vfd3JhcHBlciwgIjxmdW5jdGlvbmFs PiIsIGN4eDExCit1bndyYXBfcmVmZXJlbmNlLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MjAKK3Vud3Jh cF9yZWZlcmVuY2VfdCwgIjxmdW5jdGlvbmFsPiIsIGN4eDIwCit1bndyYXBfcmVmX2RlY2F5LCAi PGZ1bmN0aW9uYWw+IiwgY3h4MjAKK3Vud3JhcF9yZWZfZGVjYXlfdCwgIjxmdW5jdGlvbmFsPiIs IGN4eDIwCisjIDxmdXR1cmU+LiAqLworYXN5bmMsICI8ZnV0dXJlPiIsIGN4eDExCitmdXR1cmUs ICI8ZnV0dXJlPiIsIGN4eDExCitwYWNrYWdlZF90YXNrLCAiPGZ1dHVyZT4iLCBjeHgxMQorcHJv bWlzZSwgIjxmdXR1cmU+IiwgY3h4MTEKKyMgPGlvbWFuaXA+CityZXNldGlvc2ZsYWdzLCAiPGlv bWFuaXA+IiwgY3h4OTgKK3NldGlvc2ZsYWdzLCAiPGlvbWFuaXA+IiwgY3h4OTgKK3NldGJhc2Us ICI8aW9tYW5pcD4iLCBjeHg5OAorc2V0ZmlsbCwgIjxpb21hbmlwPiIsIGN4eDk4CitzZXRwcmVj aXNpb24sICI8aW9tYW5pcD4iLCBjeHg5OAorc2V0dywgIjxpb21hbmlwPiIsIGN4eDk4CitnZXRf bW9uZXksICI8aW9tYW5pcD4iLCBjeHgxMQorcHV0X21vbmV5LCAiPGlvbWFuaXA+IiwgY3h4MTEK K2dldF90aW1lLCAiPGlvbWFuaXA+IiwgY3h4MTEKK3B1dF90aW1lLCAiPGlvbWFuaXA+IiwgY3h4 MTEKK3F1b3RlZCwgIjxpb21hbmlwPiIsIGN4eDE0CisjIDxpb3M+Citib29sYWxwaGEsICI8aW9z PiIsIGN4eDk4Citub2Jvb2xhbHBoYSwgIjxpb3M+IiwgY3h4OTgKK3Nob3diYXNlLCAiPGlvcz4i LCBjeHg5OAorbm9zaG93YmFzZSwgIjxpb3M+IiwgY3h4OTgKK3Nob3dwb2ludCwgIjxpb3M+Iiwg Y3h4OTgKK25vc2hvd3BvaW50LCAiPGlvcz4iLCBjeHg5OAorc2hvd3BvcywgIjxpb3M+IiwgY3h4 OTgKK25vc2hvd3BvcywgIjxpb3M+IiwgY3h4OTgKK3NraXB3cywgIjxpb3M+IiwgY3h4OTgKK25v c2tpcHdzLCAiPGlvcz4iLCBjeHg5OAordXBwZXJjYXNlLCAiPGlvcz4iLCBjeHg5OAorbm91cHBl cmNhc2UsICI8aW9zPiIsIGN4eDk4Cit1bml0YnVmLCAiPGlvcz4iLCBjeHg5OAorbm91bml0YnVm LCAiPGlvcz4iLCBjeHg5OAoraW50ZXJuYWwsICI8aW9zPiIsIGN4eDk4CitsZWZ0LCAiPGlvcz4i LCBjeHg5OAorcmlnaHQsICI8aW9zPiIsIGN4eDk4CitkZWMsICI8aW9zPiIsIGN4eDk4CitoZXgs ICI8aW9zPiIsIGN4eDk4CitvY3QsICI8aW9zPiIsIGN4eDk4CitmaXhlZCwgIjxpb3M+IiwgY3h4 OTgKK3NjaWVudGlmaWMsICI8aW9zPiIsIGN4eDk4CitoZXhmbG9hdCwgIjxpb3M+IiwgY3h4MTEK K2RlZmF1bHRmbG9hdCwgIjxpb3M+IiwgY3h4MTEKKyMgPGlvc3RyZWFtPgorY2luLCAiPGlvc3Ry ZWFtPiIsIGN4eDk4Citjb3V0LCAiPGlvc3RyZWFtPiIsIGN4eDk4CitjZXJyLCAiPGlvc3RyZWFt PiIsIGN4eDk4CitjbG9nLCAiPGlvc3RyZWFtPiIsIGN4eDk4Cit3Y2luLCAiPGlvc3RyZWFtPiIs IGN4eDk4Cit3Y291dCwgIjxpb3N0cmVhbT4iLCBjeHg5OAord2Nsb2csICI8aW9zdHJlYW0+Iiwg Y3h4OTgKKyMgPGlzdHJlYW0+Citpc3RyZWFtLCAiPGlzdHJlYW0+IiwgY3h4OTgKK3dzLCAiPGlz dHJlYW0+IiwgY3h4OTgKKyMgPGl0ZXJhdG9yPgorYWR2YW5jZSwgIjxpdGVyYXRvcj4iLCBjeHg5 OAorYmFja19pbnNlcnRlciwgIjxpdGVyYXRvcj4iLCBjeHg5OAorYmVnaW4sICI8aXRlcmF0b3I+ IiwgY3h4MTEKK2Rpc3RhbmNlLCAiPGl0ZXJhdG9yPiIsIGN4eDk4CitlbmQsICI8aXRlcmF0b3I+ IiwgY3h4MTEKK2Zyb250X2luc2VydGVyLCAiPGl0ZXJhdG9yPiIsIGN4eDk4CitpbnNlcnRlciwg IjxpdGVyYXRvcj4iLCBjeHg5OAoraXN0cmVhbV9pdGVyYXRvciwgIjxpdGVyYXRvcj4iLCBjeHg5 OAoraXN0cmVhbWJ1Zl9pdGVyYXRvciwgIjxpdGVyYXRvcj4iLCBjeHg5OAoraXRlcmF0b3JfdHJh aXRzLCAiPGl0ZXJhdG9yPiIsIGN4eDk4Cittb3ZlX2l0ZXJhdG9yLCAiPGl0ZXJhdG9yPiIsIGN4 eDExCituZXh0LCAiPGl0ZXJhdG9yPiIsIGN4eDExCitvc3RyZWFtX2l0ZXJhdG9yLCAiPGl0ZXJh dG9yPiIsIGN4eDk4Citvc3RyZWFtYnVmX2l0ZXJhdG9yLCAiPGl0ZXJhdG9yPiIsIGN4eDk4Citw cmV2LCAiPGl0ZXJhdG9yPiIsIGN4eDExCityZXZlcnNlX2l0ZXJhdG9yLCAiPGl0ZXJhdG9yPiIs IGN4eDk4CisjIDxvc3RyZWFtPgorb3N0cmVhbSwgIjxvc3RyZWFtPiIsIGN4eDk4CitlbmRzLCAi PG9zdHJlYW0+IiwgY3h4OTgKK2ZsdXNoLCAiPG9zdHJlYW0+IiwgY3h4OTgKK2VuZGwsICI8b3N0 cmVhbT4iLCBjeHg5OAorZW1pdF9vbl9mbHVzaCwgIjxvc3RyZWFtPiIsIGN4eDIwCitub2VtaXRf b25fZmx1c2gsICI8b3N0cmVhbT4iLCBjeHgyMAorZmx1c2hfZW1pdCwgIjxvc3RyZWFtPiIsIGN4 eDIwCisjIDxsaXN0PgorbGlzdCwgIjxsaXN0PiIsIGN4eDk4CisjIDxtYXA+CittYXAsICI8bWFw PiIsIGN4eDk4CittdWx0aW1hcCwgIjxtYXA+IiwgY3h4OTgKKyMgPG1lbW9yeT4KK2FsbG9jYXRl X3NoYXJlZCwgIjxtZW1vcnk+IiwgY3h4MTEKK2FsbG9jYXRvciwgIjxtZW1vcnk+IiwgY3h4OTgK K2FsbG9jYXRvcl90cmFpdHMsICI8bWVtb3J5PiIsIGN4eDExCittYWtlX3NoYXJlZCwgIjxtZW1v cnk+IiwgY3h4MTEKK21ha2VfdW5pcXVlLCAiPG1lbW9yeT4iLCBjeHgxNAorc2hhcmVkX3B0ciwg IjxtZW1vcnk+IiwgY3h4MTEKK3VuaXF1ZV9wdHIsICI8bWVtb3J5PiIsIGN4eDExCit3ZWFrX3B0 ciwgIjxtZW1vcnk+IiwgY3h4MTEKKyMgPG1lbW9yeV9yZXNvdXJjZT4KK3BtciwgIjxtZW1vcnlf cmVzb3VyY2U+IiwgY3h4MTcKKyMgPG11dGV4PgorbXV0ZXgsICI8bXV0ZXg+IiwgY3h4MTEKK3Rp bWVkX211dGV4LCAiPG11dGV4PiIsIGN4eDExCityZWN1cnNpdmVfbXV0ZXgsICI8bXV0ZXg+Iiwg Y3h4MTEKK3JlY3Vyc2l2ZV90aW1lZF9tdXRleCwgIjxtdXRleD4iLCBjeHgxMQorb25jZV9mbGFn LCAiPG11dGV4PiIsIGN4eDExCitjYWxsX29uY2UsICI8bXV0ZXg+IiwgY3h4MTEKK2xvY2ssICI8 bXV0ZXg+IiwgY3h4MTEKK3Njb3BlZF9sb2NrLCAiPG11dGV4PiIsIGN4eDE3Cit0cnlfbG9jaywg IjxtdXRleD4iLCBjeHgxMQorbG9ja19ndWFyZCwgIjxtdXRleD4iLCBjeHgxMQordW5pcXVlX2xv Y2ssICI8bXV0ZXg+IiwgY3h4MTEKKyMgPG9wdGlvbmFsPi4gKi8KK29wdGlvbmFsLCAiPG9wdGlv bmFsPiIsIGN4eDE3CittYWtlX29wdGlvbmFsLCAiPG9wdGlvbmFsPiIsIGN4eDE3CisjIDxvc3Ry ZWFtPgorb3N0cmVhbSwgIjxvc3RyZWFtPiIsIGN4eDk4Cit3b3N0cmVhbSwgIjxvc3RyZWFtPiIs IGN4eDk4CitlbmRzLCAiPG9zdHJlYW0+IiwgY3h4OTgKK2ZsdXNoLCAiPG9zdHJlYW0+IiwgY3h4 OTgKK2VuZGwsICI8b3N0cmVhbT4iLCBjeHg5OAorIyA8cXVldWU+CitxdWV1ZSwgIjxxdWV1ZT4i LCBjeHg5OAorcHJpb3JpdHlfcXVldWUsICI8cXVldWU+IiwgY3h4OTgKKyMgPHNldD4KK3NldCwg IjxzZXQ+IiwgY3h4OTgKK211bHRpc2V0LCAiPHNldD4iLCBjeHg5OAorIyA8c2hhcmVkX211dGV4 Pgorc2hhcmVkX2xvY2ssICI8c2hhcmVkX211dGV4PiIsIGN4eDE0CitzaGFyZWRfbXV0ZXgsICI8 c2hhcmVkX211dGV4PiIsIGN4eDE3CitzaGFyZWRfdGltZWRfbXV0ZXgsICI8c2hhcmVkX211dGV4 PiIsIGN4eDE0CisjIDxzb3VyY2VfbG9jYXRpb24+Citzb3VyY2VfbG9jYXRpb24sICI8c291cmNl X2xvY2F0aW9uPiIsIGN4eDIwCisjIDxzc3RyZWFtPgorYmFzaWNfc3RyaW5nYnVmLCAiPHNzdHJl YW0+IiwgY3h4OTgKK2Jhc2ljX2lzdHJpbmdzdHJlYW0sICI8c3N0cmVhbT4iLCBjeHg5OAorYmFz aWNfb3N0cmluZ3N0cmVhbSwgIjxzc3RyZWFtPiIsIGN4eDk4CitiYXNpY19zdHJpbmdzdHJlYW0s ICI8c3N0cmVhbT4iLCBjeHg5OAoraXN0cmluZ3N0cmVhbSwgIjxzc3RyZWFtPiIsIGN4eDk4Citv c3RyaW5nc3RyZWFtLCAiPHNzdHJlYW0+IiwgY3h4OTgKK3N0cmluZ3N0cmVhbSwgIjxzc3RyZWFt PiIsIGN4eDk4CisjIDxzdGFjaz4KK3N0YWNrLCAiPHN0YWNrPiIsIGN4eDk4CisjIDxzdHJpbmc+ CitiYXNpY19zdHJpbmcsICI8c3RyaW5nPiIsIGN4eDk4CitzdHJpbmcsICI8c3RyaW5nPiIsIGN4 eDk4Cit3c3RyaW5nLCAiPHN0cmluZz4iLCBjeHg5OAordThzdHJpbmcsICI8c3RyaW5nPiIsIGN4 eDIwCit1MTZzdHJpbmcsICI8c3RyaW5nPiIsIGN4eDExCit1MzJzdHJpbmcsICI8c3RyaW5nPiIs IGN4eDExCisjIDxzdHJpbmdfdmlldz4KK2Jhc2ljX3N0cmluZ192aWV3LCAiPHN0cmluZ192aWV3 PiIsIGN4eDE3CitzdHJpbmdfdmlldywgIjxzdHJpbmdfdmlldz4iLCBjeHgxNworIyA8dGhyZWFk PgordGhyZWFkLCAiPHRocmVhZD4iLCBjeHgxMQordGhpc190aHJlYWQsICI8dGhyZWFkPiIsIGN4 eDExCisjIDx0dXBsZT4KK2FwcGx5LCAiPHR1cGxlPiIsIGN4eDE3Citmb3J3YXJkX2FzX3R1cGxl LCAiPHR1cGxlPiIsIGN4eDExCittYWtlX2Zyb21fdHVwbGUsICI8dHVwbGU+IiwgY3h4MTcKK21h a2VfdHVwbGUsICI8dHVwbGU+IiwgY3h4MTEKK3RpZSwgIjx0dXBsZT4iLCBjeHgxMQordHVwbGUs ICI8dHVwbGU+IiwgY3h4MTEKK3R1cGxlX2NhdCwgIjx0dXBsZT4iLCBjeHgxMQordHVwbGVfZWxl bWVudCwgIjx0dXBsZT4iLCBjeHgxMQordHVwbGVfZWxlbWVudF90LCAiPHR1cGxlPiIsIGN4eDE0 Cit0dXBsZV9zaXplLCAiPHR1cGxlPiIsIGN4eDExCit0dXBsZV9zaXplX3YsICI8dHVwbGU+Iiwg Y3h4MTcKKyMgPHR5cGVfdHJhaXRzPgorZW5hYmxlX2lmLCAiPHR5cGVfdHJhaXRzPiIsIGN4eDEx CitlbmFibGVfaWZfdCwgIjx0eXBlX3RyYWl0cz4iLCBjeHgxNAoraW52b2tlX3Jlc3VsdCwgIjx0 eXBlX3RyYWl0cz4iLCBjeHgxNworaW52b2tlX3Jlc3VsdF90LCAiPHR5cGVfdHJhaXRzPiIsIGN4 eDE3CityZW1vdmVfY3ZyZWYsICI8dHlwZV90cmFpdHM+IiwgY3h4MjAKK3JlbW92ZV9jdnJlZl90 LCAiPHR5cGVfdHJhaXRzPiIsIGN4eDIwCit0eXBlX2lkZW50aXR5LCAiPHR5cGVfdHJhaXRzPiIs IGN4eDIwCit0eXBlX2lkZW50aXR5X3QsICI8dHlwZV90cmFpdHM+IiwgY3h4MjAKK3ZvaWRfdCwg Ijx0eXBlX3RyYWl0cz4iLCBjeHgxNworY29uanVuY3Rpb24sICI8dHlwZV90cmFpdHM+IiwgY3h4 MTcKK2Nvbmp1bmN0aW9uX3YsICI8dHlwZV90cmFpdHM+IiwgY3h4MTcKK2Rpc2p1bmN0aW9uLCAi PHR5cGVfdHJhaXRzPiIsIGN4eDE3CitkaXNqdW5jdGlvbl92LCAiPHR5cGVfdHJhaXRzPiIsIGN4 eDE3CituZWdhdGlvbiwgIjx0eXBlX3RyYWl0cz4iLCBjeHgxNworbmVnYXRpb25fdiwgIjx0eXBl X3RyYWl0cz4iLCBjeHgxNworIyA8dW5vcmRlcmVkX21hcD4KK3Vub3JkZXJlZF9tYXAsICI8dW5v cmRlcmVkX21hcD4iLCBjeHgxMQordW5vcmRlcmVkX211bHRpbWFwLCAiPHVub3JkZXJlZF9tYXA+ IiwgY3h4MTEKKyMgPHVub3JkZXJlZF9zZXQ+Cit1bm9yZGVyZWRfc2V0LCAiPHVub3JkZXJlZF9z ZXQ+IiwgY3h4MTEKK3Vub3JkZXJlZF9tdWx0aXNldCwgIjx1bm9yZGVyZWRfc2V0PiIsIGN4eDEx CisjIDx1dGlsaXR5PgorZGVjbHZhbCwgIjx1dGlsaXR5PiIsIGN4eDExCitmb3J3YXJkLCAiPHV0 aWxpdHk+IiwgY3h4MTEKK21ha2VfcGFpciwgIjx1dGlsaXR5PiIsIGN4eDk4Cittb3ZlLCAiPHV0 aWxpdHk+IiwgY3h4MTEKK3BhaXIsICI8dXRpbGl0eT4iLCBjeHg5OAorIyA8dmFyaWFudD4KK3Zh cmlhbnQsICI8dmFyaWFudD4iLCBjeHgxNwordmlzaXQsICI8dmFyaWFudD4iLCBjeHgxNworIyA8 dmVjdG9yPgordmVjdG9yLCAiPHZlY3Rvcj4iLCBjeHg5OAotLS0gL2Rldi9udWxsCTIwMjItMDgt MTggMTM6Mzg6NDcuNzYwMzkxOTQxICswMjAwCisrKyBiL2djYy9jcC9zdGQtbmFtZS1oaW50LmgJ MjAyMi0wOC0yMiAxOTo0NTo1OC4zNjA0MTg3NDYgKzAyMDAKQEAgLTAsMCArMSw2NzUgQEAKKy8q IEMrKyBjb2RlIHByb2R1Y2VkIGJ5IGdwZXJmIHZlcnNpb24gMy4xICovCisvKiBDb21tYW5kLWxp bmU6IGdwZXJmIC1vIC1DIC1FIC1EIC1OIGZpbmQgLUwgQysrIC0tb3V0cHV0LWZpbGUgc3RkLW5h bWUtaGludC5oIC1rJzEsMiw3LDExLCQnIHN0ZC1uYW1lLWhpbnQuZ3BlcmYgICovCisKKyNpZiAh KCgnICcgPT0gMzIpICYmICgnIScgPT0gMzMpICYmICgnIicgPT0gMzQpICYmICgnIycgPT0gMzUp IFwKKyAgICAgICYmICgnJScgPT0gMzcpICYmICgnJicgPT0gMzgpICYmICgnXCcnID09IDM5KSAm JiAoJygnID09IDQwKSBcCisgICAgICAmJiAoJyknID09IDQxKSAmJiAoJyonID09IDQyKSAmJiAo JysnID09IDQzKSAmJiAoJywnID09IDQ0KSBcCisgICAgICAmJiAoJy0nID09IDQ1KSAmJiAoJy4n ID09IDQ2KSAmJiAoJy8nID09IDQ3KSAmJiAoJzAnID09IDQ4KSBcCisgICAgICAmJiAoJzEnID09 IDQ5KSAmJiAoJzInID09IDUwKSAmJiAoJzMnID09IDUxKSAmJiAoJzQnID09IDUyKSBcCisgICAg ICAmJiAoJzUnID09IDUzKSAmJiAoJzYnID09IDU0KSAmJiAoJzcnID09IDU1KSAmJiAoJzgnID09 IDU2KSBcCisgICAgICAmJiAoJzknID09IDU3KSAmJiAoJzonID09IDU4KSAmJiAoJzsnID09IDU5 KSAmJiAoJzwnID09IDYwKSBcCisgICAgICAmJiAoJz0nID09IDYxKSAmJiAoJz4nID09IDYyKSAm JiAoJz8nID09IDYzKSAmJiAoJ0EnID09IDY1KSBcCisgICAgICAmJiAoJ0InID09IDY2KSAmJiAo J0MnID09IDY3KSAmJiAoJ0QnID09IDY4KSAmJiAoJ0UnID09IDY5KSBcCisgICAgICAmJiAoJ0Yn ID09IDcwKSAmJiAoJ0cnID09IDcxKSAmJiAoJ0gnID09IDcyKSAmJiAoJ0knID09IDczKSBcCisg ICAgICAmJiAoJ0onID09IDc0KSAmJiAoJ0snID09IDc1KSAmJiAoJ0wnID09IDc2KSAmJiAoJ00n ID09IDc3KSBcCisgICAgICAmJiAoJ04nID09IDc4KSAmJiAoJ08nID09IDc5KSAmJiAoJ1AnID09 IDgwKSAmJiAoJ1EnID09IDgxKSBcCisgICAgICAmJiAoJ1InID09IDgyKSAmJiAoJ1MnID09IDgz KSAmJiAoJ1QnID09IDg0KSAmJiAoJ1UnID09IDg1KSBcCisgICAgICAmJiAoJ1YnID09IDg2KSAm JiAoJ1cnID09IDg3KSAmJiAoJ1gnID09IDg4KSAmJiAoJ1knID09IDg5KSBcCisgICAgICAmJiAo J1onID09IDkwKSAmJiAoJ1snID09IDkxKSAmJiAoJ1xcJyA9PSA5MikgJiYgKCddJyA9PSA5Mykg XAorICAgICAgJiYgKCdeJyA9PSA5NCkgJiYgKCdfJyA9PSA5NSkgJiYgKCdhJyA9PSA5NykgJiYg KCdiJyA9PSA5OCkgXAorICAgICAgJiYgKCdjJyA9PSA5OSkgJiYgKCdkJyA9PSAxMDApICYmICgn ZScgPT0gMTAxKSAmJiAoJ2YnID09IDEwMikgXAorICAgICAgJiYgKCdnJyA9PSAxMDMpICYmICgn aCcgPT0gMTA0KSAmJiAoJ2knID09IDEwNSkgJiYgKCdqJyA9PSAxMDYpIFwKKyAgICAgICYmICgn aycgPT0gMTA3KSAmJiAoJ2wnID09IDEwOCkgJiYgKCdtJyA9PSAxMDkpICYmICgnbicgPT0gMTEw KSBcCisgICAgICAmJiAoJ28nID09IDExMSkgJiYgKCdwJyA9PSAxMTIpICYmICgncScgPT0gMTEz KSAmJiAoJ3InID09IDExNCkgXAorICAgICAgJiYgKCdzJyA9PSAxMTUpICYmICgndCcgPT0gMTE2 KSAmJiAoJ3UnID09IDExNykgJiYgKCd2JyA9PSAxMTgpIFwKKyAgICAgICYmICgndycgPT0gMTE5 KSAmJiAoJ3gnID09IDEyMCkgJiYgKCd5JyA9PSAxMjEpICYmICgneicgPT0gMTIyKSBcCisgICAg ICAmJiAoJ3snID09IDEyMykgJiYgKCd8JyA9PSAxMjQpICYmICgnfScgPT0gMTI1KSAmJiAoJ34n ID09IDEyNikpCisvKiBUaGUgY2hhcmFjdGVyIHNldCBpcyBub3QgYmFzZWQgb24gSVNPLTY0Ni4g ICovCisjZXJyb3IgImdwZXJmIGdlbmVyYXRlZCB0YWJsZXMgZG9uJ3Qgd29yayB3aXRoIHRoaXMg ZXhlY3V0aW9uIGNoYXJhY3RlciBzZXQuIFBsZWFzZSByZXBvcnQgYSBidWcgdG8gPGJ1Zy1ncGVy ZkBnbnUub3JnPi4iCisjZW5kaWYKKworI2xpbmUgNCAic3RkLW5hbWUtaGludC5ncGVyZiIKKwor LyogQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitU aGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCisKK0dDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCit0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIKK3ZlcnNpb24uCisKK0dDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKK1dBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCitGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKK2ZvciBtb3JlIGRldGFpbHMuCisKK1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCithbG9uZyB3aXRoIEdDQzsgc2VlIHRo ZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQorPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKyNsaW5lIDIzICJzdGQtbmFtZS1oaW50LmdwZXJmIgorc3RydWN0IHN0ZF9uYW1l X2hpbnQKK3sKKyAgLyogQSBuYW1lIHdpdGhpbiAic3RkOjoiLiAgKi8KKyAgY29uc3QgY2hhciAq bmFtZTsKKworICAvKiBUaGUgaGVhZGVyIG5hbWUgZGVmaW5pbmcgaXQgd2l0aGluIHRoZSBDKysg U3RhbmRhcmQgTGlicmFyeQorICAgICAod2l0aCAnPCcgYW5kICc+JykuICAqLworICBjb25zdCBj aGFyKiBoZWFkZXI7CisKKyAgLyogVGhlIGRpYWxlY3Qgb2YgQysrIGluIHdoaWNoIHRoaXMgd2Fz IGFkZGVkLiAgKi8KKyAgZW51bSBjeHhfZGlhbGVjdCBtaW5fZGlhbGVjdDsKK307CisvKiBtYXhp bXVtIGtleSByYW5nZSA9IDYyNiwgZHVwbGljYXRlcyA9IDQgKi8KKworY2xhc3Mgc3RkX25hbWVf aGludF9sb29rdXAKK3sKK3ByaXZhdGU6CisgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGhh c2ggKGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbik7CitwdWJsaWM6CisgIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgc3RkX25hbWVfaGludCAqZmluZCAoY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVu KTsKK307CisKK2lubGluZSB1bnNpZ25lZCBpbnQKK3N0ZF9uYW1lX2hpbnRfbG9va3VwOjpoYXNo IChjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4pCit7CisgIHN0YXRpYyBjb25zdCB1bnNpZ25l ZCBzaG9ydCBhc3NvX3ZhbHVlc1tdID0KKyAgICB7CisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCAgIDUsCisgICAgICA2MzUsICAgMCwgNjM1LCA2MzUs IDYzNSwgNjM1LCAgMjUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgIDQ1LCA2MzUsICAyNSwgIDcwLCAxNjUsCisgICAgICAgMjAsICAgMCwgIDM1LCAyMjUs IDE5MCwgIDk1LCA2MzUsIDEyMCwgMTgzLCAgMTAsCisgICAgICAgIDUsICAyNSwgMTY1LCAgIDUs ICAgNSwgIDEwLCAgIDAsICA1NSwgICA0LCAxNDMsCisgICAgICAxMTUsIDIyOSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1LCA2MzUsIDYzNSwgNjM1LCA2MzUsCisgICAgICA2MzUsIDYzNSwgNjM1LCA2MzUs IDYzNSwgNjM1CisgICAgfTsKKyAgdW5zaWduZWQgaW50IGh2YWwgPSBsZW47CisKKyAgc3dpdGNo IChodmFsKQorICAgIHsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIGh2YWwgKz0gYXNzb192YWx1 ZXNbc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oc3RyWzEwXSldOworICAgICAgLypGQUxMVEhS T1VHSCovCisgICAgICBjYXNlIDEwOgorICAgICAgY2FzZSA5OgorICAgICAgY2FzZSA4OgorICAg ICAgY2FzZSA3OgorICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzW3N0YXRpY19jYXN0PHVuc2ln bmVkIGNoYXI+KHN0cls2XSldOworICAgICAgLypGQUxMVEhST1VHSCovCisgICAgICBjYXNlIDY6 CisgICAgICBjYXNlIDU6CisgICAgICBjYXNlIDQ6CisgICAgICBjYXNlIDM6CisgICAgICBjYXNl IDI6CisgICAgICAgIGh2YWwgKz0gYXNzb192YWx1ZXNbc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hh cj4oc3RyWzFdKV07CisgICAgICAvKkZBTExUSFJPVUdIKi8KKyAgICAgIGNhc2UgMToKKyAgICAg ICAgaHZhbCArPSBhc3NvX3ZhbHVlc1tzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihzdHJbMF0p XTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICByZXR1cm4gaHZhbCArIGFzc29fdmFsdWVzW3N0 YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHN0cltsZW4gLSAxXSldOworfQorCitjb25zdCBzdHJ1 Y3Qgc3RkX25hbWVfaGludCAqCitzdGRfbmFtZV9oaW50X2xvb2t1cDo6ZmluZCAoY29uc3QgY2hh ciAqc3RyLCBzaXplX3QgbGVuKQoreworICBlbnVtCisgICAgeworICAgICAgVE9UQUxfS0VZV09S RFMgPSAyMDUsCisgICAgICBNSU5fV09SRF9MRU5HVEggPSAyLAorICAgICAgTUFYX1dPUkRfTEVO R1RIID0gMjIsCisgICAgICBNSU5fSEFTSF9WQUxVRSA9IDksCisgICAgICBNQVhfSEFTSF9WQUxV RSA9IDYzNAorICAgIH07CisKKyAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdGRfbmFtZV9oaW50IHdv cmRsaXN0W10gPQorICAgIHsKKyNsaW5lIDE1OCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAg IHsibmV4dCIsICI8aXRlcmF0b3I+IiwgY3h4MTF9LAorI2xpbmUgMjEyICJzdGQtbmFtZS1oaW50 LmdwZXJmIgorICAgICAgeyJzZXQiLCAiPHNldD4iLCBjeHg5OH0sCisjbGluZSAyODcgInN0ZC1u YW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InZlY3RvciIsICI8dmVjdG9yPiIsIGN4eDk4fSwKKyNs aW5lIDEwMSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsic2V0YmFzZSIsICI8aW9tYW5p cD4iLCBjeHg5OH0sCisjbGluZSAxNjUgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImVu ZHMiLCAiPG9zdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUgMjA1ICJzdGQtbmFtZS1oaW50LmdwZXJm IgorICAgICAgeyJlbmRzIiwgIjxvc3RyZWFtPiIsIGN4eDk4fSwKKyNsaW5lIDg2ICJzdGQtbmFt ZS1oaW50LmdwZXJmIgorICAgICAgeyJtZW1fZm4iLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MTF9LAor I2xpbmUgNjkgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImRlcXVlIiwgIjxkZXF1ZT4i LCBjeHg5OH0sCisjbGluZSAxNjIgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InJldmVy c2VfaXRlcmF0b3IiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4fSwKKyNsaW5lIDE1MSAic3RkLW5hbWUt aGludC5ncGVyZiIKKyAgICAgIHsiZW5kIiwgIjxpdGVyYXRvcj4iLCBjeHgxMX0sCisjbGluZSAy NjQgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InZvaWRfdCIsICI8dHlwZV90cmFpdHM+ IiwgY3h4MTd9LAorI2xpbmUgMjg0ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ2YXJp YW50IiwgIjx2YXJpYW50PiIsIGN4eDE3fSwKKyNsaW5lIDI4MSAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsibW92ZSIsICI8dXRpbGl0eT4iLCBjeHgxMX0sCisjbGluZSA4NyAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsibm90X2ZuIiwgIjxmdW5jdGlvbmFsPiIsIGN4eDE3fSwK KyNsaW5lIDI2OSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsibmVnYXRpb24iLCAiPHR5 cGVfdHJhaXRzPiIsIGN4eDE3fSwKKyNsaW5lIDI3MCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAg ICAgIHsibmVnYXRpb25fdiIsICI8dHlwZV90cmFpdHM+IiwgY3h4MTd9LAorI2xpbmUgMTIyICJz dGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJub3VwcGVyY2FzZSIsICI8aW9zPiIsIGN4eDk4 fSwKKyNsaW5lIDQzICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJhbnlfY2FzdCIsICI8 YW55PiIsIGN4eDE3fSwKKyNsaW5lIDE4MSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsi bWFrZV91bmlxdWUiLCAiPG1lbW9yeT4iLCBjeHgxNH0sCisjbGluZSAxNDcgInN0ZC1uYW1lLWhp bnQuZ3BlcmYiCisgICAgICB7ImFkdmFuY2UiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4fSwKKyNsaW5l IDE1NyAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsibW92ZV9pdGVyYXRvciIsICI8aXRl cmF0b3I+IiwgY3h4MTF9LAorI2xpbmUgMjQ2ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAg eyJtYWtlX2Zyb21fdHVwbGUiLCAiPHR1cGxlPiIsIGN4eDE3fSwKKyNsaW5lIDEzNCAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsiZGVmYXVsdGZsb2F0IiwgIjxpb3M+IiwgY3h4MTF9LAor I2xpbmUgMjQ5ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ0dXBsZSIsICI8dHVwbGU+ IiwgY3h4MTF9LAorI2xpbmUgMjU3ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJlbmFi bGVfaWZfdCIsICI8dHlwZV90cmFpdHM+IiwgY3h4MTR9LAorI2xpbmUgMTY0ICJzdGQtbmFtZS1o aW50LmdwZXJmIgorICAgICAgeyJvc3RyZWFtIiwgIjxvc3RyZWFtPiIsIGN4eDk4fSwKKyNsaW5l IDIwMyAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsib3N0cmVhbSIsICI8b3N0cmVhbT4i LCBjeHg5OH0sCisjbGluZSAyNjEgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InJlbW92 ZV9jdnJlZl90IiwgIjx0eXBlX3RyYWl0cz4iLCBjeHgyMH0sCisjbGluZSAyMDkgInN0ZC1uYW1l LWhpbnQuZ3BlcmYiCisgICAgICB7InF1ZXVlIiwgIjxxdWV1ZT4iLCBjeHg5OH0sCisjbGluZSAx NTkgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7Im9zdHJlYW1faXRlcmF0b3IiLCAiPGl0 ZXJhdG9yPiIsIGN4eDk4fSwKKyNsaW5lIDIyNyAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAg IHsic3RyaW5nc3RyZWFtIiwgIjxzc3RyZWFtPiIsIGN4eDk4fSwKKyNsaW5lIDI1MSAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsidHVwbGVfZWxlbWVudCIsICI8dHVwbGU+IiwgY3h4MTF9 LAorI2xpbmUgMjUyICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ0dXBsZV9lbGVtZW50 X3QiLCAiPHR1cGxlPiIsIGN4eDE0fSwKKyNsaW5lIDc3ICJzdGQtbmFtZS1oaW50LmdwZXJmIgor ICAgICAgeyJmc3RyZWFtIiwgIjxmc3RyZWFtPiIsIGN4eDk4fSwKKyNsaW5lIDIxMyAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsibXVsdGlzZXQiLCAiPHNldD4iLCBjeHg5OH0sCisjbGlu ZSAyODAgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7Im1ha2VfcGFpciIsICI8dXRpbGl0 eT4iLCBjeHg5OH0sCisjbGluZSAyNTMgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InR1 cGxlX3NpemUiLCAiPHR1cGxlPiIsIGN4eDExfSwKKyNsaW5lIDEwMCAic3RkLW5hbWUtaGludC5n cGVyZiIKKyAgICAgIHsic2V0aW9zZmxhZ3MiLCAiPGlvbWFuaXA+IiwgY3h4OTh9LAorI2xpbmUg OTkgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InJlc2V0aW9zZmxhZ3MiLCAiPGlvbWFu aXA+IiwgY3h4OTh9LAorI2xpbmUgMTQ5ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJi ZWdpbiIsICI8aXRlcmF0b3I+IiwgY3h4MTF9LAorI2xpbmUgMTA5ICJzdGQtbmFtZS1oaW50Lmdw ZXJmIgorICAgICAgeyJxdW90ZWQiLCAiPGlvbWFuaXA+IiwgY3h4MTR9LAorI2xpbmUgMjc1ICJz dGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ1bm9yZGVyZWRfc2V0IiwgIjx1bm9yZGVyZWRf c2V0PiIsIGN4eDExfSwKKyNsaW5lIDI3NiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsi dW5vcmRlcmVkX211bHRpc2V0IiwgIjx1bm9yZGVyZWRfc2V0PiIsIGN4eDExfSwKKyNsaW5lIDI1 NiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiZW5hYmxlX2lmIiwgIjx0eXBlX3RyYWl0 cz4iLCBjeHgxMX0sCisjbGluZSA5NSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiZnV0 dXJlIiwgIjxmdXR1cmU+IiwgY3h4MTF9LAorI2xpbmUgMjYwICJzdGQtbmFtZS1oaW50LmdwZXJm IgorICAgICAgeyJyZW1vdmVfY3ZyZWYiLCAiPHR5cGVfdHJhaXRzPiIsIGN4eDIwfSwKKyNsaW5l IDI0OCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsidGllIiwgIjx0dXBsZT4iLCBjeHgx MX0sCisjbGluZSAyNDcgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7Im1ha2VfdHVwbGUi LCAiPHR1cGxlPiIsIGN4eDExfSwKKyNsaW5lIDcxICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAg ICAgeyJmb3J3YXJkX2xpc3QiLCAiPGZvcndhcmRfbGlzdD4iLCBjeHgxMX0sCisjbGluZSA3OSAi c3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsib2ZzdHJlYW0iLCAiPGZzdHJlYW0+IiwgY3h4 OTh9LAorI2xpbmUgMjg1ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ2aXNpdCIsICI8 dmFyaWFudD4iLCBjeHgxN30sCisjbGluZSAxMjcgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAg ICB7InJpZ2h0IiwgIjxpb3M+IiwgY3h4OTh9LAorI2xpbmUgODUgInN0ZC1uYW1lLWhpbnQuZ3Bl cmYiCisgICAgICB7Imludm9rZSIsICI8ZnVuY3Rpb25hbD4iLCBjeHgxN30sCisjbGluZSAyNzkg InN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImZvcndhcmQiLCAiPHV0aWxpdHk+IiwgY3h4 MTF9LAorI2xpbmUgMTE0ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJub3Nob3diYXNl IiwgIjxpb3M+IiwgY3h4OTh9LAorI2xpbmUgMTUzICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAg ICAgeyJpbnNlcnRlciIsICI8aXRlcmF0b3I+IiwgY3h4OTh9LAorI2xpbmUgMTYwICJzdGQtbmFt ZS1oaW50LmdwZXJmIgorICAgICAgeyJvc3RyZWFtYnVmX2l0ZXJhdG9yIiwgIjxpdGVyYXRvcj4i LCBjeHg5OH0sCisjbGluZSA1MSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiYXRvbWlj X3JlZiIsICI8YXRvbWljPiIsIGN4eDIwfSwKKyNsaW5lIDExMiAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsibm9ib29sYWxwaGEiLCAiPGlvcz4iLCBjeHg5OH0sCisjbGluZSAxNDggInN0 ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImJhY2tfaW5zZXJ0ZXIiLCAiPGl0ZXJhdG9yPiIs IGN4eDk4fSwKKyNsaW5lIDE4MyAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsidW5pcXVl X3B0ciIsICI8bWVtb3J5PiIsIGN4eDExfSwKKyNsaW5lIDg5ICJzdGQtbmFtZS1oaW50LmdwZXJm IgorICAgICAgeyJ1bndyYXBfcmVmZXJlbmNlIiwgIjxmdW5jdGlvbmFsPiIsIGN4eDIwfSwKKyNs aW5lIDkwICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ1bndyYXBfcmVmZXJlbmNlX3Qi LCAiPGZ1bmN0aW9uYWw+IiwgY3h4MjB9LAorI2xpbmUgMjE5ICJzdGQtbmFtZS1oaW50LmdwZXJm IgorICAgICAgeyJzb3VyY2VfbG9jYXRpb24iLCAiPHNvdXJjZV9sb2NhdGlvbj4iLCBjeHgyMH0s CisjbGluZSAyNTQgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InR1cGxlX3NpemVfdiIs ICI8dHVwbGU+IiwgY3h4MTd9LAorI2xpbmUgODMgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAg ICB7ImZ1bmN0aW9uIiwgIjxmdW5jdGlvbmFsPiIsIGN4eDExfSwKKyNsaW5lIDE0NCAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsiaXN0cmVhbSIsICI8aXN0cmVhbT4iLCBjeHg5OH0sCisj bGluZSAyMjkgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InN0YWNrIiwgIjxzdGFjaz4i LCBjeHg5OH0sCisjbGluZSAxNTQgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImlzdHJl YW1faXRlcmF0b3IiLCAiPGl0ZXJhdG9yPiIsIGN4eDk4fSwKKyNsaW5lIDEyMyAic3RkLW5hbWUt aGludC5ncGVyZiIKKyAgICAgIHsidW5pdGJ1ZiIsICI8aW9zPiIsIGN4eDk4fSwKKyNsaW5lIDIy NCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiYmFzaWNfc3RyaW5nc3RyZWFtIiwgIjxz c3RyZWFtPiIsIGN4eDk4fSwKKyNsaW5lIDI0NSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAg IHsiZm9yd2FyZF9hc190dXBsZSIsICI8dHVwbGU+IiwgY3h4MTF9LAorI2xpbmUgMTI0ICJzdGQt bmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJub3VuaXRidWYiLCAiPGlvcz4iLCBjeHg5OH0sCisj bGluZSAxMTkgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InNraXB3cyIsICI8aW9zPiIs IGN4eDk4fSwKKyNsaW5lIDc1ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJiYXNpY19v ZnN0cmVhbSIsICI8ZnN0cmVhbT4iLCBjeHg5OH0sCisjbGluZSAxNTYgInN0ZC1uYW1lLWhpbnQu Z3BlcmYiCisgICAgICB7Iml0ZXJhdG9yX3RyYWl0cyIsICI8aXRlcmF0b3I+IiwgY3h4OTh9LAor I2xpbmUgNzYgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImJhc2ljX2ZzdHJlYW0iLCAi PGZzdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUgMTMxICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAg ICAgeyJmaXhlZCIsICI8aW9zPiIsIGN4eDk4fSwKKyNsaW5lIDE4NCAic3RkLW5hbWUtaGludC5n cGVyZiIKKyAgICAgIHsid2Vha19wdHIiLCAiPG1lbW9yeT4iLCBjeHgxMX0sCisjbGluZSAxMDQg InN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InNldHciLCAiPGlvbWFuaXA+IiwgY3h4OTh9 LAorI2xpbmUgMTUyICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJmcm9udF9pbnNlcnRl ciIsICI8aXRlcmF0b3I+IiwgY3h4OTh9LAorI2xpbmUgMjIxICJzdGQtbmFtZS1oaW50LmdwZXJm IgorICAgICAgeyJiYXNpY19zdHJpbmdidWYiLCAiPHNzdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUg MTQ1ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ3cyIsICI8aXN0cmVhbT4iLCBjeHg5 OH0sCisjbGluZSA5MiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsidW53cmFwX3JlZl9k ZWNheV90IiwgIjxmdW5jdGlvbmFsPiIsIGN4eDIwfSwKKyNsaW5lIDUzICJzdGQtbmFtZS1oaW50 LmdwZXJmIgorICAgICAgeyJiaXRzZXQiLCAiPGJpdHNldD4iLCBjeHgxMX0sCisjbGluZSA3OCAi c3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiaWZzdHJlYW0iLCAiPGZzdHJlYW0+IiwgY3h4 OTh9LAorI2xpbmUgMTM4ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJjZXJyIiwgIjxp b3N0cmVhbT4iLCBjeHg5OH0sCisjbGluZSA4OCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAg IHsicmVmZXJlbmNlX3dyYXBwZXIiLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MTF9LAorI2xpbmUgOTcg InN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InByb21pc2UiLCAiPGZ1dHVyZT4iLCBjeHgx MX0sCisjbGluZSAxNjEgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InByZXYiLCAiPGl0 ZXJhdG9yPiIsIGN4eDExfSwKKyNsaW5lIDgyICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAg eyJiaW5kX2Zyb250IiwgIjxmdW5jdGlvbmFsPiIsIGN4eDIwfSwKKyNsaW5lIDE4NiAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsicG1yIiwgIjxtZW1vcnlfcmVzb3VyY2U+IiwgY3h4MTd9 LAorI2xpbmUgMTU1ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJpc3RyZWFtYnVmX2l0 ZXJhdG9yIiwgIjxpdGVyYXRvcj4iLCBjeHg5OH0sCisjbGluZSAxODggInN0ZC1uYW1lLWhpbnQu Z3BlcmYiCisgICAgICB7Im11dGV4IiwgIjxtdXRleD4iLCBjeHgxMX0sCisjbGluZSAxMjYgInN0 ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImxlZnQiLCAiPGlvcz4iLCBjeHg5OH0sCisjbGlu ZSAxMjggInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImRlYyIsICI8aW9zPiIsIGN4eDk4 fSwKKyNsaW5lIDgxICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJiaW5kIiwgIjxmdW5j dGlvbmFsPiIsIGN4eDExfSwKKyNsaW5lIDEyMCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAg IHsibm9za2lwd3MiLCAiPGlvcz4iLCBjeHg5OH0sCisjbGluZSAxNjcgInN0ZC1uYW1lLWhpbnQu Z3BlcmYiCisgICAgICB7ImVuZGwiLCAiPG9zdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUgMjA3ICJz dGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJlbmRsIiwgIjxvc3RyZWFtPiIsIGN4eDk4fSwK KyNsaW5lIDEzMCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsib2N0IiwgIjxpb3M+Iiwg Y3h4OTh9LAorI2xpbmUgMTM3ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJjb3V0Iiwg Ijxpb3N0cmVhbT4iLCBjeHg5OH0sCisjbGluZSA0OSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAg ICAgIHsiYXRvbWljIiwgIjxhdG9taWM+IiwgY3h4MTF9LAorI2xpbmUgMjgyICJzdGQtbmFtZS1o aW50LmdwZXJmIgorICAgICAgeyJwYWlyIiwgIjx1dGlsaXR5PiIsIGN4eDk4fSwKKyNsaW5lIDE3 NCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsibWFwIiwgIjxtYXA+IiwgY3h4OTh9LAor I2xpbmUgMTkzICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJjYWxsX29uY2UiLCAiPG11 dGV4PiIsIGN4eDExfSwKKyNsaW5lIDk0ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJh c3luYyIsICI8ZnV0dXJlPiIsIGN4eDExfSwKKyNsaW5lIDExNiAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsibm9zaG93cG9pbnQiLCAiPGlvcz4iLCBjeHg5OH0sCisjbGluZSAyMDQgInN0 ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7Indvc3RyZWFtIiwgIjxvc3RyZWFtPiIsIGN4eDk4 fSwKKyNsaW5lIDI1OCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiaW52b2tlX3Jlc3Vs dCIsICI8dHlwZV90cmFpdHM+IiwgY3h4MTd9LAorI2xpbmUgMTE4ICJzdGQtbmFtZS1oaW50Lmdw ZXJmIgorICAgICAgeyJub3Nob3dwb3MiLCAiPGlvcz4iLCBjeHg5OH0sCisjbGluZSAyNTkgInN0 ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7Imludm9rZV9yZXN1bHRfdCIsICI8dHlwZV90cmFp dHM+IiwgY3h4MTd9LAorI2xpbmUgMjQxICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ0 aHJlYWQiLCAiPHRocmVhZD4iLCBjeHgxMX0sCisjbGluZSAxMDMgInN0ZC1uYW1lLWhpbnQuZ3Bl cmYiCisgICAgICB7InNldHByZWNpc2lvbiIsICI8aW9tYW5pcD4iLCBjeHg5OH0sCisjbGluZSAx MTMgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InNob3diYXNlIiwgIjxpb3M+IiwgY3h4 OTh9LAorI2xpbmUgNzQgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImJhc2ljX2lmc3Ry ZWFtIiwgIjxmc3RyZWFtPiIsIGN4eDk4fSwKKyNsaW5lIDE3OCAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsiYWxsb2NhdG9yIiwgIjxtZW1vcnk+IiwgY3h4OTh9LAorI2xpbmUgMTMzICJz dGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJoZXhmbG9hdCIsICI8aW9zPiIsIGN4eDExfSwK KyNsaW5lIDExNyAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsic2hvd3BvcyIsICI8aW9z PiIsIGN4eDk4fSwKKyNsaW5lIDE3MCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiZmx1 c2hfZW1pdCIsICI8b3N0cmVhbT4iLCBjeHgyMH0sCisjbGluZSAyNTAgInN0ZC1uYW1lLWhpbnQu Z3BlcmYiCisgICAgICB7InR1cGxlX2NhdCIsICI8dHVwbGU+IiwgY3h4MTF9LAorI2xpbmUgMTc5 ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJhbGxvY2F0b3JfdHJhaXRzIiwgIjxtZW1v cnk+IiwgY3h4MTF9LAorI2xpbmUgMTkxICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJy ZWN1cnNpdmVfdGltZWRfbXV0ZXgiLCAiPG11dGV4PiIsIGN4eDExfSwKKyNsaW5lIDEwOCAic3Rk LW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsicHV0X3RpbWUiLCAiPGlvbWFuaXA+IiwgY3h4MTF9 LAorI2xpbmUgMjEwICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJwcmlvcml0eV9xdWV1 ZSIsICI8cXVldWU+IiwgY3h4OTh9LAorI2xpbmUgMTkwICJzdGQtbmFtZS1oaW50LmdwZXJmIgor ICAgICAgeyJyZWN1cnNpdmVfbXV0ZXgiLCAiPG11dGV4PiIsIGN4eDExfSwKKyNsaW5lIDIzMiAi c3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsic3RyaW5nIiwgIjxzdHJpbmc+IiwgY3h4OTh9 LAorI2xpbmUgMTA3ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJnZXRfdGltZSIsICI8 aW9tYW5pcD4iLCBjeHgxMX0sCisjbGluZSAyMjMgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAg ICB7ImJhc2ljX29zdHJpbmdzdHJlYW0iLCAiPHNzdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUgNzMg InN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImJhc2ljX2ZpbGVidWYiLCAiPGZzdHJlYW0+ IiwgY3h4OTh9LAorI2xpbmUgMjcyICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ1bm9y ZGVyZWRfbWFwIiwgIjx1bm9yZGVyZWRfbWFwPiIsIGN4eDExfSwKKyNsaW5lIDEyMSAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsidXBwZXJjYXNlIiwgIjxpb3M+IiwgY3h4OTh9LAorI2xp bmUgMjczICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ1bm9yZGVyZWRfbXVsdGltYXAi LCAiPHVub3JkZXJlZF9tYXA+IiwgY3h4MTF9LAorI2xpbmUgMTgyICJzdGQtbmFtZS1oaW50Lmdw ZXJmIgorICAgICAgeyJzaGFyZWRfcHRyIiwgIjxtZW1vcnk+IiwgY3h4MTF9LAorI2xpbmUgNDIg InN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImFueSIsICI8YW55PiIsIGN4eDE3fSwKKyNs aW5lIDE3NSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsibXVsdGltYXAiLCAiPG1hcD4i LCBjeHg5OH0sCisjbGluZSA0NiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiYXJyYXki LCAiPGFycmF5PiIsIGN4eDExfSwKKyNsaW5lIDEzNiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAg ICAgIHsiY2luIiwgIjxpb3N0cmVhbT4iLCBjeHg5OH0sCisjbGluZSAyMzggInN0ZC1uYW1lLWhp bnQuZ3BlcmYiCisgICAgICB7ImJhc2ljX3N0cmluZ192aWV3IiwgIjxzdHJpbmdfdmlldz4iLCBj eHgxN30sCisjbGluZSAxNjggInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImVtaXRfb25f Zmx1c2giLCAiPG9zdHJlYW0+IiwgY3h4MjB9LAorI2xpbmUgMTgwICJzdGQtbmFtZS1oaW50Lmdw ZXJmIgorICAgICAgeyJtYWtlX3NoYXJlZCIsICI8bWVtb3J5PiIsIGN4eDExfSwKKyNsaW5lIDQ0 ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJtYWtlX2FueSIsICI8YW55PiIsIGN4eDE3 fSwKKyNsaW5lIDE3MiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsibGlzdCIsICI8bGlz dD4iLCBjeHg5OH0sCisjbGluZSAyMjYgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7Im9z dHJpbmdzdHJlYW0iLCAiPHNzdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUgNDcgInN0ZC1uYW1lLWhp bnQuZ3BlcmYiCisgICAgICB7InRvX2FycmF5IiwgIjxhcnJheT4iLCBjeHgyMH0sCisjbGluZSAx NTAgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImRpc3RhbmNlIiwgIjxpdGVyYXRvcj4i LCBjeHg5OH0sCisjbGluZSAxOTcgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImxvY2tf Z3VhcmQiLCAiPG11dGV4PiIsIGN4eDExfSwKKyNsaW5lIDExMSAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsiYm9vbGFscGhhIiwgIjxpb3M+IiwgY3h4OTh9LAorI2xpbmUgNTkgInN0ZC1u YW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InN0cm9uZ19vcmRlcmluZyIsICI8Y29tcGFyZT4iLCBj eHgyMH0sCisjbGluZSAxOTYgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InRyeV9sb2Nr IiwgIjxtdXRleD4iLCBjeHgxMX0sCisjbGluZSAyNjcgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisg ICAgICB7ImRpc2p1bmN0aW9uIiwgIjx0eXBlX3RyYWl0cz4iLCBjeHgxN30sCisjbGluZSAyNjgg InN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImRpc2p1bmN0aW9uX3YiLCAiPHR5cGVfdHJh aXRzPiIsIGN4eDE3fSwKKyNsaW5lIDY3ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJi eXRlIiwgIjxjc3RkZGVmPiIsIGN4eDE3fSwKKyNsaW5lIDExNSAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsic2hvd3BvaW50IiwgIjxpb3M+IiwgY3h4OTh9LAorI2xpbmUgNjQgInN0ZC1u YW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImNvbmRpdGlvbl92YXJpYWJsZSIsICI8Y29uZGl0aW9u X3ZhcmlhYmxlPiIsIGN4eDExfSwKKyNsaW5lIDEyOSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAg ICAgIHsiaGV4IiwgIjxpb3M+IiwgY3h4OTh9LAorI2xpbmUgMTQxICJzdGQtbmFtZS1oaW50Lmdw ZXJmIgorICAgICAgeyJ3Y291dCIsICI8aW9zdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUgMjIyICJz dGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJiYXNpY19pc3RyaW5nc3RyZWFtIiwgIjxzc3Ry ZWFtPiIsIGN4eDk4fSwKKyNsaW5lIDE2OSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsi bm9lbWl0X29uX2ZsdXNoIiwgIjxvc3RyZWFtPiIsIGN4eDIwfSwKKyNsaW5lIDEyNSAic3RkLW5h bWUtaGludC5ncGVyZiIKKyAgICAgIHsiaW50ZXJuYWwiLCAiPGlvcz4iLCBjeHg5OH0sCisjbGlu ZSAxNDAgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7IndjaW4iLCAiPGlvc3RyZWFtPiIs IGN4eDk4fSwKKyNsaW5lIDIzNCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsidThzdHJp bmciLCAiPHN0cmluZz4iLCBjeHgyMH0sCisjbGluZSA1NiAic3RkLW5hbWUtaGludC5ncGVyZiIK KyAgICAgIHsic3Ryb25nX2VxdWFsaXR5IiwgIjxjb21wYXJlPiIsIGN4eDIwfSwKKyNsaW5lIDYy ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJjb21wbGV4X2xpdGVyYWxzIiwgIjxjb21w bGV4PiIsIGN4eDE0fSwKKyNsaW5lIDE5NCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsi bG9jayIsICI8bXV0ZXg+IiwgY3h4MTF9LAorI2xpbmUgMTg5ICJzdGQtbmFtZS1oaW50LmdwZXJm IgorICAgICAgeyJ0aW1lZF9tdXRleCIsICI8bXV0ZXg+IiwgY3h4MTF9LAorI2xpbmUgMjMxICJz dGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJiYXNpY19zdHJpbmciLCAiPHN0cmluZz4iLCBj eHg5OH0sCisjbGluZSA5NiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsicGFja2FnZWRf dGFzayIsICI8ZnV0dXJlPiIsIGN4eDExfSwKKyNsaW5lIDIzOSAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsic3RyaW5nX3ZpZXciLCAiPHN0cmluZ192aWV3PiIsIGN4eDE3fSwKKyNsaW5l IDIyNSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiaXN0cmluZ3N0cmVhbSIsICI8c3N0 cmVhbT4iLCBjeHg5OH0sCisjbGluZSAxOTggInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7 InVuaXF1ZV9sb2NrIiwgIjxtdXRleD4iLCBjeHgxMX0sCisjbGluZSAyNjMgInN0ZC1uYW1lLWhp bnQuZ3BlcmYiCisgICAgICB7InR5cGVfaWRlbnRpdHlfdCIsICI8dHlwZV90cmFpdHM+IiwgY3h4 MjB9LAorI2xpbmUgMjE2ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJzaGFyZWRfbXV0 ZXgiLCAiPHNoYXJlZF9tdXRleD4iLCBjeHgxN30sCisjbGluZSAyNjUgInN0ZC1uYW1lLWhpbnQu Z3BlcmYiCisgICAgICB7ImNvbmp1bmN0aW9uIiwgIjx0eXBlX3RyYWl0cz4iLCBjeHgxN30sCisj bGluZSAyNjYgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImNvbmp1bmN0aW9uX3YiLCAi PHR5cGVfdHJhaXRzPiIsIGN4eDE3fSwKKyNsaW5lIDIxNyAic3RkLW5hbWUtaGludC5ncGVyZiIK KyAgICAgIHsic2hhcmVkX3RpbWVkX211dGV4IiwgIjxzaGFyZWRfbXV0ZXg+IiwgY3h4MTR9LAor I2xpbmUgMTAyICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJzZXRmaWxsIiwgIjxpb21h bmlwPiIsIGN4eDk4fSwKKyNsaW5lIDIzNiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsi dTMyc3RyaW5nIiwgIjxzdHJpbmc+IiwgY3h4MTF9LAorI2xpbmUgMjM1ICJzdGQtbmFtZS1oaW50 LmdwZXJmIgorICAgICAgeyJ1MTZzdHJpbmciLCAiPHN0cmluZz4iLCBjeHgxMX0sCisjbGluZSAy NzggInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7ImRlY2x2YWwiLCAiPHV0aWxpdHk+Iiwg Y3h4MTF9LAorI2xpbmUgOTEgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7InVud3JhcF9y ZWZfZGVjYXkiLCAiPGZ1bmN0aW9uYWw+IiwgY3h4MjB9LAorI2xpbmUgMjAxICJzdGQtbmFtZS1o aW50LmdwZXJmIgorICAgICAgeyJtYWtlX29wdGlvbmFsIiwgIjxvcHRpb25hbD4iLCBjeHgxN30s CisjbGluZSAyMDAgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7Im9wdGlvbmFsIiwgIjxv cHRpb25hbD4iLCBjeHgxN30sCisjbGluZSA4NCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAg IHsiaGFzaCIsICI8ZnVuY3Rpb25hbD4iLCBjeHgxMX0sCisjbGluZSAxNjYgInN0ZC1uYW1lLWhp bnQuZ3BlcmYiCisgICAgICB7ImZsdXNoIiwgIjxvc3RyZWFtPiIsIGN4eDk4fSwKKyNsaW5lIDIw NiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiZmx1c2giLCAiPG9zdHJlYW0+IiwgY3h4 OTh9LAorI2xpbmUgMjQ0ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJhcHBseSIsICI8 dHVwbGU+IiwgY3h4MTd9LAorI2xpbmUgNjEgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7 ImNvbXBsZXgiLCAiPGNvbXBsZXg+IiwgY3h4OTh9LAorI2xpbmUgMjQyICJzdGQtbmFtZS1oaW50 LmdwZXJmIgorICAgICAgeyJ0aGlzX3RocmVhZCIsICI8dGhyZWFkPiIsIGN4eDExfSwKKyNsaW5l IDE3NyAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiYWxsb2NhdGVfc2hhcmVkIiwgIjxt ZW1vcnk+IiwgY3h4MTF9LAorI2xpbmUgMTMyICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAg eyJzY2llbnRpZmljIiwgIjxpb3M+IiwgY3h4OTh9LAorI2xpbmUgMTkyICJzdGQtbmFtZS1oaW50 LmdwZXJmIgorICAgICAgeyJvbmNlX2ZsYWciLCAiPG11dGV4PiIsIGN4eDExfSwKKyNsaW5lIDEw NiAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsicHV0X21vbmV5IiwgIjxpb21hbmlwPiIs IGN4eDExfSwKKyNsaW5lIDEwNSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiZ2V0X21v bmV5IiwgIjxpb21hbmlwPiIsIGN4eDExfSwKKyNsaW5lIDE5NSAic3RkLW5hbWUtaGludC5ncGVy ZiIKKyAgICAgIHsic2NvcGVkX2xvY2siLCAiPG11dGV4PiIsIGN4eDE3fSwKKyNsaW5lIDU4ICJz dGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ3ZWFrX29yZGVyaW5nIiwgIjxjb21wYXJlPiIs IGN4eDIwfSwKKyNsaW5lIDU1ICJzdGQtbmFtZS1oaW50LmdwZXJmIgorICAgICAgeyJ3ZWFrX2Vx dWFsaXR5IiwgIjxjb21wYXJlPiIsIGN4eDIwfSwKKyNsaW5lIDIxNSAic3RkLW5hbWUtaGludC5n cGVyZiIKKyAgICAgIHsic2hhcmVkX2xvY2siLCAiPHNoYXJlZF9tdXRleD4iLCBjeHgxNH0sCisj bGluZSA1MCAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsiYXRvbWljX2ZsYWciLCAiPGF0 b21pYz4iLCBjeHgxMX0sCisjbGluZSAxNDIgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7 IndjbG9nIiwgIjxpb3N0cmVhbT4iLCBjeHg5OH0sCisjbGluZSA2NSAic3RkLW5hbWUtaGludC5n cGVyZiIKKyAgICAgIHsiY29uZGl0aW9uX3ZhcmlhYmxlX2FueSIsICI8Y29uZGl0aW9uX3Zhcmlh YmxlPiIsIGN4eDExfSwKKyNsaW5lIDEzOSAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsi Y2xvZyIsICI8aW9zdHJlYW0+IiwgY3h4OTh9LAorI2xpbmUgMjYyICJzdGQtbmFtZS1oaW50Lmdw ZXJmIgorICAgICAgeyJ0eXBlX2lkZW50aXR5IiwgIjx0eXBlX3RyYWl0cz4iLCBjeHgyMH0sCisj bGluZSAyMzMgInN0ZC1uYW1lLWhpbnQuZ3BlcmYiCisgICAgICB7IndzdHJpbmciLCAiPHN0cmlu Zz4iLCBjeHg5OH0sCisjbGluZSA1NyAic3RkLW5hbWUtaGludC5ncGVyZiIKKyAgICAgIHsicGFy dGlhbF9vcmRlcmluZyIsICI8Y29tcGFyZT4iLCBjeHgyMH0KKyAgICB9OworCisgIHN0YXRpYyBj b25zdCBzaG9ydCBsb29rdXBbXSA9CisgICAgeworICAgICAgICAtMSwgICAtMSwgICAtMSwgICAt MSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwKKyAgICAgICAgLTEsICAgIDAsICAgLTEsICAgLTEs ICAgLTEsICAgIDEsICAgLTEsICAgIDIsCisgICAgICAgIC0xLCAgICAzLCAgIC0xLCAtMjI4LCAg IC0xLCAgICA2LCAtMjAxLCAgIC0yLAorICAgICAgICAtMSwgICAgNywgICAgOCwgICAtMSwgICAg OSwgICAtMSwgICAtMSwgICAtMSwKKyAgICAgICAgLTEsICAgLTEsICAgLTEsICAgMTAsICAgMTEs ICAgLTEsICAgLTEsICAgMTIsCisgICAgICAgIC0xLCAgIDEzLCAgIC0xLCAgIDE0LCAgIDE1LCAg IC0xLCAgIDE2LCAgIC0xLAorICAgICAgICAxNywgICAtMSwgICAtMSwgICAxOCwgICAxOSwgICAy MCwgICAtMSwgICAyMSwKKyAgICAgICAgLTEsICAgMjIsICAgLTEsICAgLTEsICAgMjMsICAgMjQs IC0yODcsICAgLTEsCisgICAgICAgIDI3LCAgIDI4LCAgIDI5LCAgIDMwLCAgIDMxLCAgIC0xLCAg IDMyLCAgIC0xLAorICAgICAgICAzMywgICAzNCwgICAzNSwgICAzNiwgICAzNywgICAtMSwgICAz OCwgICAtMSwKKyAgICAgICAgMzksIC0xODAsICAgLTIsICAgLTEsICAgLTEsICAgLTEsICAgNDAs ICAgLTEsCisgICAgICAgIDQxLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIDQyLCAgIDQzLCAg IC0xLAorICAgICAgICA0NCwgICA0NSwgICA0NiwgICAtMSwgICA0NywgICAtMSwgICA0OCwgICA0 OSwKKyAgICAgICAgNTAsICAgNTEsICAgNTIsICAgNTMsICAgLTEsICAgLTEsICAgNTQsICAgLTEs CisgICAgICAgIC0xLCAgIDU1LCAgIDU2LCAgIDU3LCAgIDU4LCAgIC0xLCAgIDU5LCAgIC0xLAor ICAgICAgICA2MCwgICA2MSwgICAtMSwgICA2MiwgICAtMSwgICA2MywgICA2NCwgICAtMSwKKyAg ICAgICAgNjUsICAgLTEsICAgLTEsICAgLTEsICAgNjYsICAgLTEsICAgLTEsICAgNjcsCisgICAg ICAgIDY4LCAgIDY5LCAgIDcwLCAgIC0xLCAgIC0xLCAgIDcxLCAgIC0xLCAgIC0xLAorICAgICAg ICA3MiwgICAtMSwgICA3MywgICAtMSwgICAtMSwgICA3NCwgICA3NSwgICAtMSwKKyAgICAgICAg LTEsICAgNzYsICAgLTEsICAgNzcsICAgNzgsICAgNzksICAgLTEsICAgODAsCisgICAgICAgIDgx LCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIDgyLCAgIC0xLCAgIC0xLAorICAgICAgICA4Mywg ICAtMSwgICAtMSwgICA4NCwgICAtMSwgICA4NSwgICA4NiwgICA4NywKKyAgICAgICAgLTEsICAg ODgsICAgODksICAgLTEsICAgOTAsICAgLTEsICAgLTEsICAgOTEsCisgICAgICAgIDkyLCAgIDkz LCAgIC0xLCAgIDk0LCAgIDk1LCAgIDk2LCAgIC0xLCAgIDk3LAorICAgICAgLTQwMywgIDEwMCwg IDEwMSwgICAtMSwgIDEwMiwgLTEwNywgICAtMiwgIDEwMywKKyAgICAgICAgLTEsICAgLTEsICAg LTEsICAxMDQsICAxMDUsICAxMDYsICAxMDcsICAgLTEsCisgICAgICAgIC0xLCAgIC0xLCAgIC0x LCAgMTA4LCAgIC0xLCAgMTA5LCAgMTEwLCAgMTExLAorICAgICAgIDExMiwgIDExMywgIDExNCwg IDExNSwgICAtMSwgICAtMSwgIDExNiwgIDExNywKKyAgICAgICAgLTEsICAgLTEsICAgLTEsICAx MTgsICAxMTksICAxMjAsICAgLTEsICAgLTEsCisgICAgICAgIC0xLCAgIC0xLCAgMTIxLCAgIC0x LCAgMTIyLCAgIC0xLCAgMTIzLCAgMTI0LAorICAgICAgIDEyNSwgIDEyNiwgICAtMSwgIDEyNywg IDEyOCwgICAtMSwgICAtMSwgICAtMSwKKyAgICAgICAxMjksICAgLTEsICAgLTEsICAgLTEsICAg LTEsICAxMzAsICAxMzEsICAgLTEsCisgICAgICAgIC0xLCAgIC0xLCAgMTMyLCAgIC0xLCAgMTMz LCAgIC0xLCAgMTM0LCAgMTM1LAorICAgICAgIDEzNiwgICAtMSwgICAtMSwgICAtMSwgIDEzNywg ICAtMSwgIDEzOCwgICAtMSwKKyAgICAgICAgLTEsICAxMzksICAgLTEsICAgLTEsICAxNDAsICAx NDEsICAgLTEsICAgLTEsCisgICAgICAgIC0xLCAgIC0xLCAgMTQyLCAgMTQzLCAgIC0xLCAgIC0x LCAgIC0xLCAgMTQ0LAorICAgICAgIDE0NSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgIDE0Niwg IDE0NywgIDE0OCwKKyAgICAgICAgLTEsICAgLTEsICAxNDksICAgLTEsICAgLTEsICAxNTAsICAx NTEsICAxNTIsCisgICAgICAgMTUzLCAgIC0xLCAgIC0xLCAgMTU0LCAgMTU1LCAgIC0xLCAgIC0x LCAgIC0xLAorICAgICAgICAtMSwgIDE1NiwgIDE1NywgIDE1OCwgIDE1OSwgIDE2MCwgIDE2MSwg ICAtMSwKKyAgICAgICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAxNjIsICAgLTEsICAgLTEsICAg LTEsCisgICAgICAgIC0xLCAgIC0xLCAgIC0xLCAgMTYzLCAgMTY0LCAgIC0xLCAgIC0xLCAgIC0x LAorICAgICAgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwK KyAgICAgICAgLTEsICAgLTEsICAxNjUsICAxNjYsICAxNjcsICAgLTEsICAgLTEsICAgLTEsCisg ICAgICAgMTY4LCAgMTY5LCAgIC0xLCAgIC0xLCAgMTcwLCAgIC0xLCAgIC0xLCAgMTcxLAorICAg ICAgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwKKyAgICAg ICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAxNzIsICAgLTEsICAgLTEsICAgLTEsCisgICAgICAg MTczLCAgMTc0LCAgMTc1LCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgMTc2LAorICAgICAgIDE3 NywgICAtMSwgICAtMSwgICAtMSwgICAtMSwgIDE3OCwgICAtMSwgICAtMSwKKyAgICAgICAgLTEs ICAxNzksICAgLTEsICAxODAsICAgLTEsICAgLTEsICAgLTEsICAgLTEsCisgICAgICAgIC0xLCAg MTgxLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgMTgyLCAgIC0xLAorICAgICAgICAtMSwgIDE4 MywgICAtMSwgICAtMSwgICAtMSwgLTYyMCwgIC0yMSwgICAtMiwKKyAgICAgICAgLTEsICAgLTEs ICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsCisgICAgICAgMTg2LCAgIC0xLCAg IC0xLCAgMTg3LCAgIC0xLCAgIC0xLCAgIC0xLCAgMTg4LAorICAgICAgICAtMSwgIDE4OSwgICAt MSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwKKyAgICAgICAgLTEsICAgLTEsICAgLTEs ICAgLTEsICAgLTEsICAxOTAsICAgLTEsICAxOTEsCisgICAgICAgIC0xLCAgIC0xLCAgIC0xLCAg IC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLAorICAgICAgICAtMSwgICAtMSwgICAtMSwgICAt MSwgICAtMSwgICAtMSwgICAtMSwgIDE5MiwKKyAgICAgICAgLTEsICAgLTEsICAgLTEsICAgLTEs ICAxOTMsICAgLTEsICAgLTEsICAxOTQsCisgICAgICAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAg IC0xLCAgIC0xLCAgIC0xLCAgIC0xLAorICAgICAgICAtMSwgIDE5NSwgICAtMSwgICAtMSwgICAt MSwgIDE5NiwgICAtMSwgICAtMSwKKyAgICAgICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEs ICAgLTEsICAgLTEsICAgLTEsCisgICAgICAgMTk3LCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAg IC0xLCAgIC0xLCAgIC0xLAorICAgICAgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAt MSwgICAtMSwgICAtMSwKKyAgICAgICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEs ICAgLTEsICAgLTEsCisgICAgICAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAg IC0xLCAgIC0xLAorICAgICAgICAtMSwgICAtMSwgICAtMSwgIDE5OCwgICAtMSwgICAtMSwgICAt MSwgICAtMSwKKyAgICAgICAgLTEsICAgLTEsICAxOTksICAgLTEsICAyMDAsICAgLTEsICAgLTEs ICAgLTEsCisgICAgICAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAg IC0xLAorICAgICAgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAt MSwKKyAgICAgICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEs CisgICAgICAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLAor ICAgICAgICAtMSwgIDIwMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwKKyAg ICAgICAgLTEsICAgLTEsICAyMDIsICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsCisgICAg ICAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLAorICAgICAg ICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwKKyAgICAgICAg LTEsICAgLTEsICAyMDMsICAgLTEsICAgLTEsICAgLTEsICAgLTEsICAgLTEsCisgICAgICAgIC0x LCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLCAgIC0xLAorICAgICAgICAtMSwg ICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwgICAtMSwKKyAgICAgICAgLTEsICAg LTEsICAyMDQKKyAgICB9OworCisgIGlmIChsZW4gPD0gTUFYX1dPUkRfTEVOR1RIICYmIGxlbiA+ PSBNSU5fV09SRF9MRU5HVEgpCisgICAgeworICAgICAgdW5zaWduZWQgaW50IGtleSA9IGhhc2gg KHN0ciwgbGVuKTsKKworICAgICAgaWYgKGtleSA8PSBNQVhfSEFTSF9WQUxVRSkKKyAgICAgICAg eworICAgICAgICAgIGludCBpbmRleCA9IGxvb2t1cFtrZXldOworCisgICAgICAgICAgaWYgKGlu ZGV4ID49IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnMgPSB3 b3JkbGlzdFtpbmRleF0ubmFtZTsKKworICAgICAgICAgICAgICBpZiAoKnN0ciA9PSAqcyAmJiAh c3RyY21wIChzdHIgKyAxLCBzICsgMSkpCisgICAgICAgICAgICAgICAgcmV0dXJuICZ3b3JkbGlz dFtpbmRleF07CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZSBpZiAoaW5kZXggPCAtVE9U QUxfS0VZV09SRFMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGludCBvZmZzZXQgPSAt IDEgLSBUT1RBTF9LRVlXT1JEUyAtIGluZGV4OworICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg c3RkX25hbWVfaGludCAqd29yZHB0ciA9ICZ3b3JkbGlzdFtUT1RBTF9LRVlXT1JEUyArIGxvb2t1 cFtvZmZzZXRdXTsKKyAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHN0ZF9uYW1lX2hpbnQgKndv cmRlbmRwdHIgPSB3b3JkcHRyICsgLWxvb2t1cFtvZmZzZXQgKyAxXTsKKworICAgICAgICAgICAg ICB3aGlsZSAod29yZHB0ciA8IHdvcmRlbmRwdHIpCisgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqcyA9IHdvcmRwdHItPm5hbWU7CisKKyAgICAgICAgICAg ICAgICAgIGlmICgqc3RyID09ICpzICYmICFzdHJjbXAgKHN0ciArIDEsIHMgKyAxKSkKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIHdvcmRwdHI7CisgICAgICAgICAgICAgICAgICB3b3JkcHRy Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor ICByZXR1cm4gMDsKK30K --0000000000007e3d8505e6d9311d--