X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=blV8ALTCvFAikdk8EeRcTee+r9LbWoNt8ovXw+xs8/M=; b=X/fvVXY7LAbWmCvKGYqBjEkofM1/2tjlXNKJRebXwVNXuSgWLQ6LJGzZkIB2N5iwCO DmUoGNz7PphWeyQ5mUmaGAP3/OzFRJRoD3XLt7A8AiKhjXAMexm0xjgB8hUH1HkcMJZ9 Lx5hH6JXxI05TOG+55yiRUUJIhTjMA7inmflD8SeNJ/i1Ckja33u964RICz9lRIWSzpt 4AJaX567jkQqGpQAeROzRxPaXZfsC4JUUotkIMmkr4kp9FcA8JBt+vwkdtey6s2giKF5 FC0qhFbqVHnTaEMxksIz5y3+2ns8ycqNauwcMgDAdD+dMDhaYrmacOwStKhZR8P91iL+ K5RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=blV8ALTCvFAikdk8EeRcTee+r9LbWoNt8ovXw+xs8/M=; b=lp1lyopJK2ehrRTSWHh/IatpW82yLd1vzRGy/6Z3yTp3y2f3WNiRGRg1OQi15mYjdI ConJN1SMDVBM9+hN6cv8QaEmJMeUn6vf6KqxiF0c0TpVgOc8mrZsVqPj6wsGSsbbsanM NGpSLCufyoET2osxGlv9+Rps1Wkht8+UQpWyyllwKtXzOYlMeebo/NsFCIHhDDTqKlyR lUNZ7RHh0uDRKSX8gDnG5KVld3KpiH19e3mAXDcPaYH4fWfdH1E+ne2I/e7vtAZAOIsJ /kLrW4kaPy8cDmcejA+fr1gvDCvhsWfxBQckFwficrTmyEoMyA2nUBJeajXMRIYCar5R wv5A== X-Gm-Message-State: APjAAAX2LtDRo2ZGx5/UixURce0SQOTLhqWM2U3xSrvld2IIrqg0B/je zQzUD1OSN+YSQBk/iP7HST8KNXAt X-Google-Smtp-Source: APXvYqzKEC/MEHGQDGWzeUBaZK+v3SZWB1tZkkuH5TUVv6Yzbv2A6gGoDm0mLPGjTbR8Wa2ZZnEmzg== X-Received: by 2002:ac2:4308:: with SMTP id l8mr6113141lfh.25.1567500553674; Tue, 03 Sep 2019 01:49:13 -0700 (PDT) Subject: Re: ANNOUNCE: DJGPP port of tcp/ip library Watt-32 (version 2.2 dev.rel. 11) uploaded. To: djgpp AT delorie DOT com References: <201907102113 DOT x6ALDVG8006695 AT delorie DOT com> <53a929c4-eb6e-4e21-9128-84083b678cc5 AT googlegroups DOT com> <5D6D641F DOT 3080909 AT gmx DOT de> <6f711aea-e445-4c7b-99d2-2de41e6e9d90 AT googlegroups DOT com> From: "Gisle Vanem (gisle DOT vanem AT gmail DOT com) [via djgpp AT delorie DOT com]" Message-ID: Date: Tue, 3 Sep 2019 10:49:12 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <6f711aea-e445-4c7b-99d2-2de41e6e9d90@googlegroups.com> Content-Type: multipart/mixed; boundary="------------E61B8F7B4A5F7807633FD874" Content-Language: en-GB Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk This is a multi-part message in MIME format. --------------E61B8F7B4A5F7807633FD874 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit RayeR wrote: >> These macros are defined to nothing for gcc/djgpp and I have experienced no issue with them. > > Yes, but where you have the definition? In '$WATT_ROOT/sys/cdefs.h', for __clang__: #define W32_CLANG_PACK_WARN_OFF() W32_GCC_PRAGMA (clang diagnostic push) \ W32_GCC_PRAGMA (clang diagnostic ignored "-Wpragma-pack") #define W32_CLANG_PACK_WARN_DEF() W32_GCC_PRAGMA (clang diagnostic pop) For others simply: #define W32_CLANG_PACK_WARN_OFF() #define W32_CLANG_PACK_WARN_DEF() These macros many places are used w/o any trailing ';'. -- --gv --------------E61B8F7B4A5F7807633FD874 Content-Type: text/plain; charset=UTF-8; name="cdefs.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="cdefs.h" LyohXGZpbGUgc3lzL2NkZWZzLmgNCiAqDQogKiBDLWNvbXBpbGVyIGRlZmluaXRpb25zLiBS ZWYgZm9yIGEgbG9uZyBsaXN0IG9mIGNvbXBpbGVyIGJ1aWx0LWluOg0KICogICBodHRwczov L3NvdXJjZWZvcmdlLm5ldC9wL3ByZWRlZi93aWtpL0NvbXBpbGVycy8NCiAqLw0KDQovKg0K ICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkzDQogKglUaGUgUmVnZW50cyBvZiB0aGUgVW5p dmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqDQogKiBU aGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtl bGV5IGJ5DQogKiBCZXJrZWxleSBTb2Z0d2FyZSBEZXNpZ24sIEluYy4NCiAqDQogKiBSZWRp c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQNCiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KICogYXJlIG1ldDoNCiAqIDEuIFJlZGlzdHJp YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0 DQogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93 aW5nIGRpc2NsYWltZXIuDQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0aGlz IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo ZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCiAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlh bHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQ0KICogICAg bXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50Og0KICoJVGhpcyBw cm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBv Zg0KICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuDQogKiA0 LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2Yg aXRzIGNvbnRyaWJ1dG9ycw0KICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlDQogKiAgICB3aXRob3V0 IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqDQogKiBUSElTIFNPRlRX QVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJ UycnIEFORA0KICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQogKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQ0K ICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBD T05UUklCVVRPUlMgQkUgTElBQkxFDQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KICogREFN QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV QlNUSVRVVEUgR09PRFMNCiAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KICogSE9XRVZFUiBDQVVTRUQg QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT VFJJQ1QNCiAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCiAqIE9VVCBPRiBUSEUgVVNFIE9GIFRI SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCiAq IFNVQ0ggREFNQUdFLg0KICoNCiAqICAgQCgjKWNkZWZzLmggIDguNyAoQmVya2VsZXkpIDEv MjEvOTQNCiAqLw0KDQojaWZuZGVmIF9fU1lTX0NERUZTX0gNCiNkZWZpbmUgX19TWVNfQ0RF RlNfSA0KDQojaWYgZGVmaW5lZChfX0hJR0hDX18pDQogIC8qDQogICAqIE5vdGUgdG8gSGln aC1DIHVzZXJzOg0KICAgKiAgIFRoZSBiZWxvdyBwcmFnbWEgKHRvIHN1cHByZXNzIHdhcm5p bmcgZm9yICcjaW5jbHVkZV9uZXh0JyBsaW5lKSBoYXMgbm8gZWZmZWN0DQogICAqICAgaGVy ZS4gVGhlIHByYWdtYSBuZWVkcyB0byBiZSBwdXQgaW4geW91ciBDRkxBR1MgYXMNCiAgICog ICAnLUhwcmFnbWE9T2Zmd2Fybig0OTEpJy4NCiAgICoNCiAgICogICBUaGUgd2FybmluZyB3 L28gdGhpcyBwcmFnbWEgaXMgc29tZXRoaW5nIGxpa2U6DQogICAqICAgICJ3ICIuLi8uLi9p bmMvc3lzL2NkZWZzLmgiLEw2MC9DMjMoIzQ5MSk6ICBVbnJlY29nbml6ZWQgcHJlcHJvY2Vz c29yIGRpcmVjdGl2ZToiDQogICAqLw0KI2VuZGlmDQoNCiNpZiBkZWZpbmVkKF9fREpHUFBf XykgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9fTUlOR1c2NF9fKQ0KICAj aW5jbHVkZV9uZXh0IDxzeXMvY2RlZnMuaD4NCg0KI2Vsc2UNCiAgI2lmIGRlZmluZWQoX19j cGx1c3BsdXMpDQogICAgI2RlZmluZSBfX0JFR0lOX0RFQ0xTICBleHRlcm4gIkMiIHsNCiAg ICAjZGVmaW5lIF9fRU5EX0RFQ0xTICAgIH0NCiAgI2Vsc2UNCiAgICAjZGVmaW5lIF9fQkVH SU5fREVDTFMNCiAgICAjZGVmaW5lIF9fRU5EX0RFQ0xTDQogICNlbmRpZg0KI2VuZGlmDQoN Cg0KI2lmIGRlZmluZWQoX19HTlVDX18pDQogICNkZWZpbmUgVzMyX0dDQ19WRVJTSU9OICAo X19HTlVDX18gKiAxMDAwMCArIF9fR05VQ19NSU5PUl9fICogMTAwICsgXA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF9fR05VQ19QQVRDSExFVkVMX18pDQojZWxzZQ0KICAjZGVm aW5lIFczMl9HQ0NfVkVSU0lPTiAgMA0KI2VuZGlmDQoNCi8qDQogKiBNYWNyb3MgZm9yIGdj YyAyLjUrIGZlYXR1cmVzLg0KICovDQojaWYgKFczMl9HQ0NfVkVSU0lPTiA+PSAyMDUwMCkN CiAgI2lmIChXMzJfR0NDX1ZFUlNJT04gPj0gNTAxMDApICAgIC8qIGNvcnJlY3Q/ICovDQog ICAgI2RlZmluZSBXMzJfQVRUUl9QUklOVEYoXzEsXzIpICBfX2F0dHJpYnV0ZV9fICgoX19m b3JtYXRfXyhnbnVfcHJpbnRmLF8xLF8yKSkpDQogICAgI2RlZmluZSBXMzJfQVRUUl9TQ0FO RihfMSxfMikgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyhnbnVfc2NhbmYsXzEsXzIp KSkNCiAgI2Vsc2UNCiAgICAjZGVmaW5lIFczMl9BVFRSX1BSSU5URihfMSxfMikgIF9fYXR0 cmlidXRlX18gKChmb3JtYXQocHJpbnRmLF8xLF8yKSkpDQogICAgI2RlZmluZSBXMzJfQVRU Ul9TQ0FORihfMSxfMikgICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0KHNjYW5mLF8xLF8yKSkp DQogICNlbmRpZg0KDQogICNkZWZpbmUgVzMyX0FUVFJfTk9JTkxJTkUoKSAgICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub2lubGluZV9fKSkgICAgIC8qIGRvIG5vdCBpbmxpbmUgdGhpcyBm dW5jICovDQogICNkZWZpbmUgVzMyX0FUVFJfUkVHUEFSTShfbikgICAgICBfX2F0dHJpYnV0 ZV9fICgocmVncGFybShfbikpKSAgICAgIC8qIHBhcmFtZXRlcnMgYXJlIGluIHJlZ2lzdGVy cy4gKi8NCiAgI2RlZmluZSBXMzJfQVRUUl9OT1JFVFVSTigpICAgICAgIF9fYXR0cmlidXRl X18gKChub3JldHVybikpICAgICAgICAgLyogZnVuY3Rpb24gbmV2ZXIgcmV0dXJucyAqLw0K ICAjZGVmaW5lIFczMl9BUkdfTk9OTlVMTChfMSkgICAgICAgX19hdHRyaWJ1dGVfXyAoKG5v bm51bGwoXzEpKSkgICAgICAvKiBhcmd1bWVudCBjYW5ub3QgYmUgTlVMTCAqLw0KI2Vsc2UN CiAgI2lmIGRlZmluZWQoX19jbGFuZ19fKQ0KICAgICNkZWZpbmUgVzMyX0FUVFJfUFJJTlRG KF8xLF8yKSAgX19hdHRyaWJ1dGVfXyAoKGZvcm1hdChwcmludGYsXzEsXzIpKSkNCiAgICAj ZGVmaW5lIFczMl9BVFRSX1NDQU5GKF8xLF8yKSAgIF9fYXR0cmlidXRlX18gKChmb3JtYXQo c2NhbmYsXzEsXzIpKSkNCiAgI2Vsc2UNCiAgICAjZGVmaW5lIFczMl9BVFRSX1BSSU5URihf MSxfMikNCiAgICAjZGVmaW5lIFczMl9BVFRSX1NDQU5GKF8xLF8yKQ0KICAjZW5kaWYNCg0K ICAjZGVmaW5lIFczMl9BVFRSX05PSU5MSU5FKCkNCiAgI2RlZmluZSBXMzJfQVRUUl9SRUdQ QVJNKF9uKQ0KICAjZGVmaW5lIFczMl9BVFRSX05PUkVUVVJOKCkNCiAgI2RlZmluZSBXMzJf QVJHX05PTk5VTEwoXzEpDQojZW5kaWYNCg0KLyogV2FybiBvbiBkZXByZWNhdGVkIHR5cGUv ZnVuYw0KICovDQojaWYgKFczMl9HQ0NfVkVSU0lPTiA+PSAzMDEwMCkNCiAgI2RlZmluZSBX MzJfQVRUUl9ERVBSRUNBVEVEICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkN CiNlbHNlDQogICNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTcwMCkg IC8qIFZpc3VhbCBTdHVkaW8gMjAxMSsgPyAqLw0KICAgICNkZWZpbmUgVzMyX0FUVFJfREVQ UkVDQVRFRCAgX19kZWNsc3BlYyhkZXByZWNhdGVkKQ0KICAjZWxzZQ0KICAgICNkZWZpbmUg VzMyX0FUVFJfREVQUkVDQVRFRA0KICAjZW5kaWYNCiNlbmRpZg0KDQovKiBEZXRlY3Rpb24g b2YgdGhlIHZhcmlvdXMgQm9ybGFuZC9Db2RlR2VhckMvQ0J1aWxkZXIgdmVyc2lvbnMuDQog KiBOb3Qgc3VyZSBhYm91dCB0aGUgJzB4MDcwMCcgdmFsdWUuDQogKg0KICogUmVmczogaHR0 cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9wcmVkZWYvd2lraS9Db21waWxlcnMvDQogKiAgICAg ICBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DJTJCJTJCQnVpbGRlcg0KICovDQoj aWYgZGVmaW5lZChfX0JPUkxBTkRDX18pDQogICNpZiAoX19CT1JMQU5EQ19fID49IDB4MDcw MCkNCiAgLy8jcHJhZ21hIG1lc3NhZ2UgKCJJIGFtIEVtYmFyY2FkZXJvIikNCiAgICAjZGVm aW5lIFczMl9JU19FTUJBUkNBREVSTyAxDQogICNlbmRpZg0KDQogICNpZiBkZWZpbmVkKF9f Q09ERUdFQVJDX18pDQogIC8vI3ByYWdtYSBtZXNzYWdlICgiSSBhbSBDb2RlR2VhckMiKQ0K ICAgICNkZWZpbmUgVzMyX0lTX0NPREVHRUFSQyAxDQogICNlbmRpZg0KI2VuZGlmDQoNCiNp ZiBkZWZpbmVkKF9fQ0NETF9fKSAgICAvKiBMYWRTb2Z0IGNvbXBpbGVyICovDQogICNkZWZp bmUgY2RlY2wgX2NkZWNsDQoNCiNlbGlmICFkZWZpbmVkKGNkZWNsKSAmJiAoZGVmaW5lZChf X01JTkdXMzJfXykgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSkNCiAgI2RlZmluZSBjZGVjbCBf X2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKQ0KI2VuZGlmDQoNCiNpZiBkZWZpbmVkKF9NU0Nf VkVSKSB8fCBkZWZpbmVkKF9fUE9DQ19fKQ0KICAjdW5kZWYgY2RlY2wNCiAgI2lmIChfTVND X1ZFUiA8PSA2MDApICYmICFkZWZpbmVkKF9fUE9DQ19fKQ0KICAgICNkZWZpbmUgY2RlY2wg X2NkZWNsDQogICAgI3VuZGVmICBfX1NURENfXw0KICAgICNkZWZpbmUgX19TVERDX18gMQ0K ICAjZWxzZQ0KICAgICNkZWZpbmUgY2RlY2wgX19jZGVjbA0KICAjZW5kaWYNCiAgI2RlZmlu ZSBOT19BTlNJX0tFWVdPUkRTDQoNCiNlbGlmIGRlZmluZWQoX19ETUNfXykgICAgLyogRGln aXRhbCBNYXJzIGNvbXBpbGVyICovDQogICNkZWZpbmUgTk9fVU5ERVJTQ09SRSBfX3N5c2Nh bGwNCiAgLyogZS5nLiBpbnQgTk9fVU5ERVJTQ09SRSBmb28gKHZvaWQpOyAqLw0KI2VuZGlm DQoNCiNpZm5kZWYgY2RlY2wNCiNkZWZpbmUgY2RlY2wNCiNlbmRpZg0KDQovKg0KICogTWlu R1ctdzY0IGRlZmluZXMgYm90aCBfX01JTkdXNjRfXyAqYW5kKiBfX01JTkdXMzJfXywgYnV0 IF9fTUlOR1c2NF9fDQogKiBpcyBvbmx5IGRlZmluZWQgZm9yIF9XSU42NCB0YXJnZXRzLiBf X01JTkdXNjRfVkVSU0lPTl9bTUFKT1J8TUlOT1JdDQogKiBpcyBkZWZpbmVkIGluIE1pbkdX NjQncyA8X21pbmd3Lmg+Lg0KICoNCiAqIE1pbkdXLXc2NC4gSS5lLiAiR0NDIGZvciBib3Ro IHg2NCAmIHg4NiBXaW5kb3dzIi4NCiAqIFRoaXMgaXMgbm90IGZyb20gdGhlIG1pbmd3Lm9y ZyBmb2xrcywgYnV0IGZyb20gdGhlc2U6DQogKiAgIGh0dHA6Ly9taW5ndy13NjQuc291cmNl Zm9yZ2UubmV0Lw0KICoNCiAqIE9yIHRvIG1ha2UgdGhpcyBldmVuIG1vcmUgY29uZnVzaW5n LCB0aGUgVERNLWdjYyBzaG91bGQgYWN0IHRoZSBzYW1lDQogKiBhcyBNaW5HVy13NjQ6DQog KiAgIGh0dHA6Ly90ZG0tZ2NjLnRkcmFnb24ubmV0Lw0KICoNCiAqIEl0IHVzZXMgaXQncyBv d24gdmVyc2lvbmluZy4NCiAqDQogKiBVc2luZyB0aGUgIm9mZmljaWFsIiAzMi1iaXQgTWlu R1cgd2l0aCBXYXR0LTMyLCB0aGUgVzMyX01JTkdXX1ZFUigpIG1hY3JvDQogKiB0ZXN0cyBm b3Igc29tZSBzdHJ1Y3RzIGFuZCBwcm90b3R5cGVzIGFkZGVkIGluIE1pbkdXIDMuMSAoPyku IEZvciBuZXdlcg0KICogTWluR1ctWzMyfDY0XSB2ZXJzaW9ucywgd2UganVzdCBhc3N1bWUg ZS5nLiAnc3RydWN0IHRpbWV6b25lJyBldGMuIGFyZQ0KICogYXZhaWxhYmxlLg0KICovDQoj aWYgIWRlZmluZWQoX19NSU5HVzMyX18pDQogICNkZWZpbmUgVzMyX01JTkdXX1ZFUihtYWpv cixtaW5vcikgIDANCiNlbHNlDQogICNpbmNsdWRlIDxfbWluZ3cuaD4NCg0KICAjaWYgZGVm aW5lZChfX01JTkdXNjRfVkVSU0lPTl9NQUpPUikNCiAgICAvKg0KICAgICAqICdfX01JTkdX NjRfVkVSU0lPTl9bTUFKT1J8TUlOT1JdJyBpcyBkZWZpbmVkIGluIF9taW5ndy5oIGluIHRo ZQ0KICAgICAqIE1pbkdXLXc2NCBwcm9qZWN0Lg0KICAgICAqIE5vdCBhIHR5cG87IE1pbkdX LTY0IGRvZXNuJ3QgZGVmaW5lIF9fTUlOR1c2NF9bTUFKT1J8TUlOT1JdX1ZFUlNJT04NCiAg ICAgKi8NCiAgICAjZGVmaW5lIFczMl9NSU5HV19WRVIobWFqb3IsbWlub3IpICAxDQogICAg I2RlZmluZSBXMzJfSVNfTUlOR1c2NCAgICAgICAgICAgICAgMQ0KDQogICNlbGlmIGRlZmlu ZWQoX19NSU5HV19NQUpPUl9WRVJTSU9OKQ0KICAgIC8qDQogICAgICogJ19fTUlOR1dfTUFK T1JfVkVSU0lPTicgaXMgZGVmaW5lZCB0aHJvdWdoIF9taW5ndy5oIGluIE1pbkdXLVJUIHY0 Ky4NCiAgICAgKi8NCiAgICAjZGVmaW5lIFczMl9NSU5HV19WRVIobWFqb3IsbWlub3IpICAx DQoNCiAgI2Vsc2UgLyogcGxhaW4gb2xkIG1pbmd3Lm9yZyAocHJpb3IgdG8gdjQuMCk6ICov DQogICAgI2RlZmluZSBXMzJfTUlOR1dfVkVSKG1ham9yLG1pbm9yKSAoX19NSU5HVzMyX01B Sk9SX1ZFUlNJT04gPiAobWFqb3IpIHx8ICAgXA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChfX01JTkdXMzJfTUFKT1JfVkVSU0lPTiA9PSAobWFqb3IpICYm IFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19NSU5HVzMy X01JTk9SX1ZFUlNJT04gPj0gKG1pbm9yKSkpDQogICNlbmRpZg0KI2VuZGlmDQoNCiNpZiBk ZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChfX1BPQ0NfXykNCiAgLyoNCiAgICogQWxs IE1TIGNvbXBpbGVycyAoUXVpY2stQy9WaXN1YWwtQyBmb3IgRE9TLCBWQyBmb3IgV2luZG93 cykgaW5zaXN0cw0KICAgKiB0aGF0IHNpZ25hbC1oYW5kbGVycywgYXRleGl0IGZ1bmN0aW9u cyBhbmQgdmFyLWFyZyBmdW5jdGlvbnMgbXVzdCBiZQ0KICAgKiBkZWZpbmVkIGFzIGNkZWNs LiBUaGlzIGlzIG9ubHkgYW4gaXNzdWUgaWYgYSBwcm9ncmFtIGlzIHVzaW5nICdmYXN0Y2Fs bCcNCiAgICogZ2xvYmFsbHkgKGNsIG9wdGlvbiAnLUdyJykuDQogICAqIFJlZi4gdGhlIHVz ZSBvZiAnV0lOQVBJVicgaW4gdGhlIFdpbmRvd3MgU0RLcy4NCiAgICoNCiAgICogQnV0IFdh dGNvbSdzIHJlZ2lzdGVyIGNhbGwgZG9lc24ndCBuZWVkIHRoaXMuICh3Y2MzODYgLWVjZikN CiAgICovDQogICN1bmRlZiAgTVNfQ0RFQ0wNCiAgI2RlZmluZSBNU19DREVDTCAgIGNkZWNs DQoNCiAgLyogU2VlIDxzeXMvdzMyYXBpLmg+IGZvciB0aGUgcmF0aW9uYWxlIGJlaGluZCAn VzMyX0NBTEwnLiBJdCdzDQogICAqIGN1cnJlbnRseSBmb3JjZWQgdG8gJ2NkZWNsJyBvbiBX aW5kb3dzLiBUaHVzICdXMzJfQ0RFQ0wnIGFuZCAnTVNfQ0RFQ0wnDQogICAqIHNob3VsZCBi ZSBpbXBvcnRhbnQgZm9yIE1TVkMgdXNlcnMgb24gV2luZG93cyBvbmx5LiBCdXQgSSdtIG5v dA0KICAgKiBzdXJlLi4uLg0KICAgKi8NCiAgI2RlZmluZSBXMzJfQ0RFQ0wgIGNkZWNsDQoj ZWxzZQ0KICAjZGVmaW5lIE1TX0NERUNMDQogICNkZWZpbmUgVzMyX0NERUNMDQojZW5kaWYN Cg0KDQovKg0KICogVGhlIF9fQ09OQ0FUIG1hY3JvIGlzIHVzZWQgdG8gY29uY2F0ZW5hdGUg cGFydHMgb2Ygc3ltYm9sIG5hbWVzLCBlLmcuDQogKiB3aXRoICIjZGVmaW5lIE9MRChmb28p IF9fQ09OQ0FUKG9sZCxmb28pIiwgT0xEKGZvbykgcHJvZHVjZXMgb2xkZm9vLg0KICogVGhl IF9fQ09OQ0FUIG1hY3JvIGlzIGEgYml0IHRyaWNreSAtLSBtYWtlIHN1cmUgeW91IGRvbid0 IHB1dCBzcGFjZXMNCiAqIGluIGJldHdlZW4gaXRzIGFyZ3VtZW50cy4gIF9fQ09OQ0FUIGNh biBhbHNvIGNvbmNhdGVuYXRlIGRvdWJsZS1xdW90ZWQNCiAqIHN0cmluZ3MgcHJvZHVjZWQg YnkgdGhlIF9fU1RSSU5HIG1hY3JvLCBidXQgdGhpcyBvbmx5IHdvcmtzIHdpdGggQU5TSSBD Lg0KICovDQojaWYgKChkZWZpbmVkKF9fU1REQ19fKSAmJiBfX1NURENfXykgfHwgZGVmaW5l ZChfX2NwbHVzcGx1cykgfHwgXA0KICAgIGRlZmluZWQoX19UVVJCT0NfXykpICYmICFkZWZp bmVkKF9fQ1lHV0lOX18pDQogICN1bmRlZiAgX19QDQogICNkZWZpbmUgX19QKHByb3Rvcykg ICAgIHByb3RvcyAgICAgICAgLyogZnVsbC1ibG93biBBTlNJIEMgKi8NCiAgI2RlZmluZSBf X0NPTkNBVCh4LHkpICAgeCAjIyB5DQogICNkZWZpbmUgX19TVFJJTkcoeCkgICAgICN4DQoN CiAgI2RlZmluZSBfX2NvbnN0ICAgICAgICAgY29uc3QgICAgICAgICAvKiBkZWZpbmUgcmVz ZXJ2ZWQgbmFtZXMgdG8gc3RhbmRhcmQgKi8NCiAgI2RlZmluZSBfX3NpZ25lZCAgICAgICAg c2lnbmVkDQovKiNkZWZpbmUgX192b2xhdGlsZSAgICAgIHZvbGF0aWxlICovDQogICNpZiBk ZWZpbmVkKF9fY3BsdXNwbHVzKQ0KICAgICNkZWZpbmUgX19pbmxpbmUgICAgICBpbmxpbmUg ICAgICAgIC8qIGNvbnZlcnQgdG8gQysrIGtleXdvcmQgKi8NCiAgI2VsaWYgIWRlZmluZWQo X19HTlVDX18pICYmICFkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChfX1dBVENPTUNf XykNCiAgICAjZGVmaW5lIF9faW5saW5lICAgICAgICAgICAgICAgICAgICAvKiBkZWxldGUg R0NDL01TQy9XYXRjb20ga2V5d29yZCAqLw0KICAjZW5kaWYNCg0KI2Vsc2UNCiAgI2RlZmlu ZSBfX1AocHJvdG9zKSAgICAgKCkgICAgICAgICAgICAvKiB0cmFkaXRpb25hbCBDIHByZXBy b2Nlc3NvciAqLw0KICAjZGVmaW5lIF9fQ09OQ0FUKHgseSkgICB4LyoqL3kNCiAgI2RlZmlu ZSBfX1NUUklORyh4KSAgICAgIngiDQoNCiAgI2lmICFkZWZpbmVkKF9fR05VQ19fKSAmJiAh ZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoX19XQVRDT01DX18pDQogICAgI2RlZmlu ZSBfX2lubGluZQ0KICAjZW5kaWYNCg0KICAjaWYgIWRlZmluZWQoX19HTlVDX18pDQogICAg I2RlZmluZSBfX2NvbnN0ICAgICAgICAgICAgICAgICAgICAgLyogZGVsZXRlIHBzZXVkby1B TlNJIEMga2V5d29yZHMgKi8NCiAgICAjZGVmaW5lIF9fc2lnbmVkDQogLyogI2RlZmluZSBf X3ZvbGF0aWxlICovDQoNCiAgICAvKg0KICAgICAqIEluIG5vbi1BTlNJIEMgZW52aXJvbm1l bnRzLCBuZXcgcHJvZ3JhbXMgd2lsbCB3YW50IEFOU0ktb25seSBDIGtleXdvcmRzDQogICAg ICogZGVsZXRlZCBmcm9tIHRoZSBwcm9ncmFtIGFuZCBvbGQgcHJvZ3JhbXMgd2lsbCB3YW50 IHRoZW0gbGVmdCBhbG9uZS4NCiAgICAgKiBXaGVuIHVzaW5nIGEgY29tcGlsZXIgb3RoZXIg dGhhbiBnY2MsIHByb2dyYW1zIHVzaW5nIHRoZSBBTlNJIEMga2V5d29yZHMNCiAgICAgKiBj b25zdCwgaW5saW5lIGV0Yy4gYXMgbm9ybWFsIGlkZW50aWZpZXJzIHNob3VsZCBkZWZpbmUg LUROT19BTlNJX0tFWVdPUkRTLg0KICAgICAqIFdoZW4gdXNpbmcgImdjYyAtdHJhZGl0aW9u YWwiLCB3ZSBhc3N1bWUgdGhhdCB0aGlzIGlzIHRoZSBpbnRlbnQ7IGlmDQogICAgICogX19H TlVDX18gaXMgZGVmaW5lZCBidXQgX19TVERDX18gaXMgbm90LCB3ZSBsZWF2ZSB0aGUgbmV3 IGtleXdvcmRzIGFsb25lLg0KICAgICAqLw0KICAgICNpZiAhZGVmaW5lZChOT19BTlNJX0tF WVdPUkRTKQ0KICAgICAgI2RlZmluZSBjb25zdCAgICAgICAgICAgICAgICAgICAgIC8qIGRl bGV0ZSBBTlNJIEMga2V5d29yZHMgKi8NCiAgICAgICNkZWZpbmUgaW5saW5lDQogICAgICAj ZGVmaW5lIHNpZ25lZA0KICAgICAgI2RlZmluZSB2b2xhdGlsZQ0KICAgICNlbmRpZg0KICAj ZW5kaWYgIC8qICFfX0dOVUNfXyAqLw0KI2VuZGlmICAgIC8qIChfX1NURENfXyB8fCBfX2Nw bHVwbHVzKSAmJiAhX19DWUdXSU5fXyAqLw0KDQovKg0KICogR0NDMSBhbmQgc29tZSB2ZXJz aW9ucyBvZiBHQ0MyIGRlY2xhcmUgZGVhZCAobm9uLXJldHVybmluZykgYW5kDQogKiBwdXJl IChubyBzaWRlIGVmZmVjdHMpIGZ1bmN0aW9ucyB1c2luZyAidm9sYXRpbGUiIGFuZCAiY29u c3QiOw0KICogdW5mb3J0dW5hdGVseSwgdGhlc2UgdGhlbiBjYXVzZSB3YXJuaW5ncyB1bmRl ciAiLWFuc2kgLXBlZGFudGljIi4NCiAqIEdDQzIgdXNlcyBhIG5ldywgcGVjdWxpYXIgX19h dHRyaWJ1dGVfXygoYXR0cnMpKSBzdHlsZS4gIEFsbCBvZg0KICogdGhlc2Ugd29yayBmb3Ig R05VIEMrKyAobW9kdWxvIGEgc2xpZ2h0IGdsaXRjaCBpbiB0aGUgQysrIGdyYW1tYXINCiAq IGluIHRoZSBkaXN0cmlidXRpb24gdmVyc2lvbiBvZiAyLjUuNSkuDQogKi8NCiNpZiAoVzMy X0dDQ19WRVJTSU9OID4gMCkgJiYgKFczMl9HQ0NfVkVSU0lPTiA8IDIwNTAwKQ0KICAjdW5k ZWYgIF9fYXR0cmlidXRlX18NCiAgI2RlZmluZSBfX2F0dHJpYnV0ZV9fKHgpICAvKiBkZWxl dGUgX19hdHRyaWJ1dGVfXyBpZiBub24tZ2NjICovDQogICNpZiBkZWZpbmVkKF9fR05VQ19f KSAmJiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pDQogICAgI3VuZGVmIF9fZGVhZA0KICAg ICN1bmRlZiBfX3B1cmUNCiAgICAjZGVmaW5lIF9fZGVhZCAgX192b2xhdGlsZQ0KICAgICNk ZWZpbmUgX19wdXJlICBfX2NvbnN0DQogICAgI3VuZGVmICBfX2RlYWQyDQogICAgI2RlZmlu ZSBfX2RlYWQyDQogICNlbmRpZg0KI2VuZGlmDQoNCi8qDQogKiBNYWNyb3MgZm9yIGdjYyA0 LjYrIFByYWdtYXMuIFJlZi46DQogKiBodHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9n Y2MvRGlhZ25vc3RpYy1QcmFnbWFzLmh0bWwNCiAqLw0KI2lmIChXMzJfR0NDX1ZFUlNJT04g Pj0gNDA2MDApIHx8IGRlZmluZWQoX19jbGFuZ19fKQ0KICAjZGVmaW5lIFczMl9HQ0NfUFJB R01BKHgpICBfUHJhZ21hICgjeCkNCiNlbHNlDQogICNkZWZpbmUgVzMyX0dDQ19QUkFHTUEo eCkNCiNlbmRpZg0KDQovKg0KICogVGhlIGFib3ZlIGNvdWxkIGJlIHVzZWQgYXM6DQogKiAg IFczMl9HQ0NfUFJBR01BIChtZXNzYWdlOiAiRml4IHRoaXMiKQ0KICoNCiAqIG9yOg0KICog ICNpZiAoVzMyX0dDQ19WRVJTSU9OID49IDQwNjAwKQ0KICogICAgI3ByYWdtYSBtZXNzYWdl ICgiRml4IHRoaXMiKQ0KICogICNlbmRpZg0KICoNCiAqIEJ1dCBNU1ZDIChhbmQgb3RoZXJz IGJlc2lkZXMgSGlnaC1DKSBkb2Vzbid0IGhhbmRsZSBhIHByYWdtYSBpbiBhDQogKiAjZGVm aW5lIHN0YXRlbWVudC4gSGVuY2UgbXVzdCBlbmNsb3NlIGl0IGluIGFuICNpZmRlZi4gTGlr ZToNCiAqDQogKiAjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE1MDAp DQogKiAgICNwcmFnbWEgbWVzc2FnZSAoIkZpeCB0aGlzIikNCiAqICNlbmRpZg0KICovDQoN Cg0KLyoNCiAqIGdjYyA+PSA0LjIgaGF2ZSBhbiBpc3N1ZSB3aXRoICdfX2lubGluZV9fJy4g V2UgbXVzdCBlbnN1cmUNCiAqIHRoYXQgYWx3YXlzIHRyYWRpdGlvbmFsIEdOVSBleHRlcm4g aW5saW5lIHNlbWFudGljcyBhcmUgdXNlZA0KICogKGFrYSAtZmdudTg5LWlubGluZSkgZXZl biBpZiBJU08gQzk5IHNlbWFudGljcyBoYXZlIGJlZW4gc3BlY2lmaWVkLg0KICovDQojaWYg KFczMl9HQ0NfVkVSU0lPTiA+PSA0MDIwMCkgJiYgIWRlZmluZWQoX19OT19JTkxJTkVfXykg LyogLU8wICovDQogICNkZWZpbmUgVzMyX0dDQ19JTkxJTkUgZXh0ZXJuIF9faW5saW5lX18g X19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkNCiNlbHNlDQogICNkZWZpbmUgVzMy X0dDQ19JTkxJTkUgZXh0ZXJuIF9faW5saW5lX18NCiNlbmRpZg0KDQojaWYgZGVmaW5lZChf X0dOVUNfXykNCiAgI2RlZmluZSBXMzJfSU5MSU5FIFczMl9HQ0NfSU5MSU5FDQojZWxzZQ0K ICAjZGVmaW5lIFczMl9JTkxJTkUgX19pbmxpbmUNCiNlbmRpZg0KDQojZGVmaW5lIFczMl9D TEFOR19QQUNLX1dBUk5fT0ZGKCkNCiNkZWZpbmUgVzMyX0NMQU5HX1BBQ0tfV0FSTl9ERUYo KQ0KDQojaWYgZGVmaW5lZChfX2NsYW5nX18pDQogIC8qDQogICAqIFRvIHN1cHByZXNzIGNs YW5nIHdhcm5pbmdzIGxpa2U6DQogICAqICAgQXJyYXkgYWNjZXNzIChmcm9tIHZhcmlhYmxl ICd4JykgcmVzdWx0cyBpbiBhIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZQ0KICAgKg0KICAg KiBpbiBzdGF0ZW1lbnRzIGxpa2U6DQogICAqICAgaWYgKCF4WzBdKSB7DQogICAqICAgICAg Li4uDQogICAqDQogICAqIFNvIG9uZSBjb3VsZCB3cml0ZSBpdCBsaWtlOg0KICAgKiAgIGlm IChXMzJfQ0xBTkdfTk9OTlVMTCh4KSB8fCAheFswXSkgew0KICAgKiAgICAgIC4uLg0KICAg Ki8NCiAgI2RlZmluZSBXMzJfQ0xBTkdfTk9OTlVMTCh4KSAhKHgpDQoNCiAgI2lmIChfX2Ns YW5nX21ham9yX18gPj0gNikNCiAgICAvKg0KICAgICAqIGNsYW5nIHY2LnggaW50cm9kdXNl ZCBzZXZlcmFsIG5ldyB3YXJuaW5ncy4gRXNwZWNpYWxseSBhbm5veWluZyB3aGVuIGluY2x1 ZGluZw0KICAgICAqIDxzeXMvcGFja19vbi5oPiBhbmQgPHN5cy9wYWNrX29mZi5oPiBpcyB0 aGlzOg0KICAgICAqICAgdGhlIGN1cnJlbnQgI3ByYWdtYSBwYWNrIGFsaWdtZW50IHZhbHVl IGlzIG1vZGlmaWVkIGluIHRoZSBpbmNsdWRlZCBmaWxlIFstV3ByYWdtYS1wYWNrXQ0KICAg ICAqDQogICAgICogQ29udHJvbCB0aGVzZSB3YXJuaW5ncyB1c2luZyB0aGUgYmVsb3cgbWFj cm9zLg0KICAgICAqIEFsd2F5cyB1c2VkIHdoZW4gYnVpbGRpbmcgKm9yKiB1c2luZyBXYXR0 LTMyLiBVc2VkIGxpa2UgdGhpczoNCiAgICAgKg0KICAgICAqICBXMzJfQ0xBTkdfUEFDS19X QVJOX09GRigpICAvLyAicHVzaCIgd2FybmluZyBzdGF0ZSBhbmQgdHVybiBvZmYgIi1XcHJh Z21hLXBhY2siLg0KICAgICAqICAjaW5jbHVkZSA8c3lzL3BhY2tfb24uaD4NCiAgICAgKg0K ICAgICAqICAuLi4gc29tZSBzdHJ1Y3R1cmVzIHRoYXQgbmVlZHMgdGlnaHQgMS1ieXRlIHBh Y2tpbmcgb2YgbWVtYmVycy4NCiAgICAgKg0KICAgICAqICAjaW5jbHVkZSA8c3lzL3BhY2tf b2ZmLmg+ICAvLyByZXN0b3JlIGRlZmF1bHQgcGFja2luZw0KICAgICAqICBXMzJfQ0xBTkdf UEFDS19XQVJOX0RFRigpICAvLyAicG9wIiB0aGUgd2FybmluZyBzZXQgYnkgJ1czMl9DTEFO R19QQUNLX1dBUk5fT0ZGKCknLg0KICAgICAqLw0KICAgICN1bmRlZiAgVzMyX0NMQU5HX1BB Q0tfV0FSTl9PRkYNCiAgICAjZGVmaW5lIFczMl9DTEFOR19QQUNLX1dBUk5fT0ZGKCkgVzMy X0dDQ19QUkFHTUEgKGNsYW5nIGRpYWdub3N0aWMgcHVzaCkgXA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBXMzJfR0NDX1BSQUdNQSAoY2xhbmcgZGlhZ25vc3Rp YyBpZ25vcmVkICItV3ByYWdtYS1wYWNrIikNCg0KICAgICN1bmRlZiAgVzMyX0NMQU5HX1BB Q0tfV0FSTl9ERUYNCiAgICAjZGVmaW5lIFczMl9DTEFOR19QQUNLX1dBUk5fREVGKCkgIFcz Ml9HQ0NfUFJBR01BIChjbGFuZyBkaWFnbm9zdGljIHBvcCkNCiAgI2VuZGlmDQoNCiNlbHNl DQogICNkZWZpbmUgVzMyX0NMQU5HX05PTk5VTEwoeCkgMA0KI2VuZGlmDQoNCg0KLyoNCiAq IERlbGV0ZSBwc2V1ZG8ta2V5d29yZHMgd2hlcmV2ZXIgdGhleSBhcmUgbm90IGF2YWlsYWJs ZSBvciBuZWVkZWQuDQogKiBUaGlzIHNlZW1zIHRvIGJyZWFrIE1pbkdXIGluIG15c3Rlcmlv dXMgd2F5cywgc28gbGVhdmUgaXQuDQogKi8NCiNpZm5kZWYgX19kZWFkDQojZGVmaW5lIF9f ZGVhZA0KI2VuZGlmDQoNCiNpZm5kZWYgX19kZWFkMg0KI2RlZmluZSBfX2RlYWQyDQojZW5k aWYNCg0KI2lmbmRlZiBfX3B1cmUNCiNkZWZpbmUgX19wdXJlDQojZW5kaWYNCg0KI2lmICFk ZWZpbmVkKF9fY3BsdXNwbHVzKQ0KICAvKg0KICAgKiBtaW4oKSAmIG1heCgpIG1hY3Jvcw0K ICAgKi8NCiAgI2lmIGRlZmluZWQoX19ISUdIQ19fKQ0KICAgICN1bmRlZiAgbWluDQogICAg I3VuZGVmICBtYXgNCiAgICAjZGVmaW5lIG1pbihhLGIpIF9taW4oYSxiKSAgLyogaW50cmlu c2ljIGZ1bmN0aW9ucyAqLw0KICAgICNkZWZpbmUgbWF4KGEsYikgX21heChhLGIpDQogICNl bmRpZg0KDQogICNpZm5kZWYgbWluDQogICNkZWZpbmUgbWluKGEsYikgKCgoYSkgPCAoYikp ID8gKGEpIDogKGIpKQ0KICAjZW5kaWYNCg0KICAjaWZuZGVmIG1heA0KICAjZGVmaW5lIG1h eChhLGIpICgoKGEpID4gKGIpKSA/IChhKSA6IChiKSkNCiAgI2VuZGlmDQojZW5kaWYNCg0K LyoNCiAqIGZyb20gTmV0QlNEJ3MgPHN5cy9jZGVmc19hb3V0Lmg+DQogKg0KICogV3JpdHRl biBieSBKLlQuIENvbmtsaW4gPGp0Y0B3aW1zZXkuY29tPiAwMS8xNy85NS4NCiAqIFB1Ymxp YyBkb21haW4uDQogKi8NCg0KLyogI2RlZmluZSBfQ19MQUJFTCh4KSBfX0NPTkNBVChfLHgp ICovDQoNCiNpZiBkZWZpbmVkKF9fR05VQ19fKQ0KICAjZGVmaW5lIF9faW5kcl9yZWZlcmVu Y2Uoc3ltLGFsaWFzKSAgICAgICAgICAgICAgICBcDQogICAgICAgICAgX19hc21fXygiLnN0 YWJzIFwiXyIgI2FsaWFzICJcIiwxMSwwLDAsMCIpO1wNCiAgICAgICAgICBfX2FzbV9fKCIu c3RhYnMgXCJfIiAjc3ltICJcIiwxLDAsMCwwIik7DQoNCiAgI2RlZmluZSBfX3dhcm5fcmVm ZXJlbmNlcyhzeW0sbXNnKSAgICAgICAgICAgICAgICAgXA0KICAgICAgICAgIF9fYXNtX18o Ii5zdGFicyBcIiIgbXNnICJcIiwzMCwwLDAsMCIpOyAgICBcDQogICAgICAgICAgX19hc21f XygiLnN0YWJzIFwiXyIgI3N5bSAiXCIsMSwwLDAsMCIpOw0KDQogICNkZWZpbmUgX19JRFNU UklORyhuYW1lLHN0cmluZykgIFwNCiAgICAgICAgICBzdGF0aWMgY29uc3QgY2hhciBuYW1l W10gX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpID0gc3RyaW5nDQojZWxzZQ0KICAjZGVm aW5lIF9faW5kcl9yZWZlcmVuY2Uoc3ltLGFsaWFzKQ0KICAjZGVmaW5lIF9fd2Fybl9yZWZl cmVuY2VzKHN5bSxtc2cpDQogICNkZWZpbmUgX19JRFNUUklORyhuYW1lLHN0cmluZykgIHN0 YXRpYyBjb25zdCBjaGFyIG5hbWVbXSA9IHN0cmluZw0KI2VuZGlmDQoNCiNkZWZpbmUgX19S Q1NJRChfcykgICAgICAgICAgICAgICAgX19JRFNUUklORyhyY3NpZCxfcykNCiNkZWZpbmUg X19DT1BZUklHSFQoX3MpICAgICAgICAgICAgX19JRFNUUklORyhjb3B5cmlnaHQsX3MpDQoN CiNkZWZpbmUgX19LRVJORUxfUkNTSUQoX24sX3MpICAgICAgX19JRFNUUklORyhfX0NPTkNB VChyY3NpZCxfbiksX3MpDQojZGVmaW5lIF9fS0VSTkVMX0NPUFlSSUdIVChfbixfcykgIF9f SURTVFJJTkcoX19DT05DQVQoY29weXJpZ2h0LF9uKSxfcykNCg0KI2VuZGlmDQo= --------------E61B8F7B4A5F7807633FD874--