From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 514AEC433F5 for ; Tue, 12 Oct 2021 10:41:20 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B731E61050 for ; Tue, 12 Oct 2021 10:41:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B731E61050 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:54146 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1maFDi-0004SJ-QE for qemu-devel@archiver.kernel.org; Tue, 12 Oct 2021 06:41:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1maEl7-0000cF-Fo for qemu-devel@nongnu.org; Tue, 12 Oct 2021 06:11:45 -0400 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:64084) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1maEl0-0006yI-UM for qemu-devel@nongnu.org; Tue, 12 Oct 2021 06:11:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1634033498; x=1665569498; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YGD6GGUjALsr+s/OLDbMBfVo0rUV/+BCYpQV2QkXpUs=; b=fesTLhYZLDE3xnh/P8oz+pfAoIXdvg+HZs4vbyraRtrZj/HNxAhcJg9G ZbwXw7dxoG/zf5XwdMRDS1MkUwcL7BsE2JzSjc9C/93irmCVSKt3H//Hy pXIiwUboT4039Sld/hwY0MJidvsBFIBw60FkXqhRYIlP/Y9Md9UF2kynd s=; Received: from unknown (HELO ironmsg03-sd.qualcomm.com) ([10.53.140.143]) by alexa-out-sd-02.qualcomm.com with ESMTP; 12 Oct 2021 03:11:24 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg03-sd.qualcomm.com with ESMTP; 12 Oct 2021 03:11:23 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 440D213BE; Tue, 12 Oct 2021 05:11:22 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v4 05/30] Hexagon HVX (target/hexagon) macros Date: Tue, 12 Oct 2021 05:10:43 -0500 Message-Id: <1634033468-23566-6-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1634033468-23566-1-git-send-email-tsimpson@quicinc.com> References: <1634033468-23566-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=199.106.114.39; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-02.qualcomm.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ale@rev.ng, bcain@quicinc.com, tsimpson@quicinc.com, richard.henderson@linaro.org, f4bug@amsat.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" bWFjcm9zIHRvIGludGVyZmFjZSB3aXRoIHRoZSBnZW5lcmF0b3IKbWFjcm9zIHJlZmVyZW5jZWQg aW4gaW5zdHJ1Y3Rpb24gc2VtYW50aWNzCgpBY2tlZC1ieTogUmljaGFyZCBIZW5kZXJzb24gPHJp Y2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29u IDx0c2ltcHNvbkBxdWljaW5jLmNvbT4KLS0tCiB0YXJnZXQvaGV4YWdvbi9tYWNyb3MuaCAgICAg ICB8ICAyMiArKysKIHRhcmdldC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oIHwgMzU0ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzNzYg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL21tdmVjL21h Y3Jvcy5oCgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vbWFjcm9zLmggYi90YXJnZXQvaGV4 YWdvbi9tYWNyb3MuaAppbmRleCA0NGU5Yjg1Li40NDIxMjg1IDEwMDY0NAotLS0gYS90YXJnZXQv aGV4YWdvbi9tYWNyb3MuaAorKysgYi90YXJnZXQvaGV4YWdvbi9tYWNyb3MuaApAQCAtMjY2LDYg KzI2NiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2VuX3ByZWRfY2FuY2VsKFRDR3YgcHJlZCwg aW50IHNsb3RfbnVtKQogCiAjZGVmaW5lIGZORVdSRUdfU1QoVkFMKSAoVkFMKQogCisjZGVmaW5l IGZWU0FUVVZBTE4oTiwgVkFMKSBcCisgICAgKHsgXAorICAgICAgICAoKChpbnQpKFZBTCkpIDwg MCkgPyAwIDogKCgxTEwgPDwgKE4pKSAtIDEpOyBcCisgICAgfSkKICNkZWZpbmUgZlNBVFVWQUxO KE4sIFZBTCkgXAogICAgICh7IFwKICAgICAgICAgZlNFVF9PVkVSRkxPVygpOyBcCkBAIC0yNzYs MTAgKzI4MCwxNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2VuX3ByZWRfY2FuY2VsKFRDR3YgcHJl ZCwgaW50IHNsb3RfbnVtKQogICAgICAgICBmU0VUX09WRVJGTE9XKCk7IFwKICAgICAgICAgKChW QUwpIDwgMCkgPyAoLSgxTEwgPDwgKChOKSAtIDEpKSkgOiAoKDFMTCA8PCAoKE4pIC0gMSkpIC0g MSk7IFwKICAgICB9KQorI2RlZmluZSBmVlNBVFZBTE4oTiwgVkFMKSBcCisgICAgKHsgXAorICAg ICAgICAoKFZBTCkgPCAwKSA/ICgtKDFMTCA8PCAoKE4pIC0gMSkpKSA6ICgoMUxMIDw8ICgoTikg LSAxKSkgLSAxKTsgXAorICAgIH0pCiAjZGVmaW5lIGZaWFROKE4sIE0sIFZBTCkgKCgoTikgIT0g MCkgPyBleHRyYWN0NjQoKFZBTCksIDAsIChOKSkgOiAwTEwpCiAjZGVmaW5lIGZTWFROKE4sIE0s IFZBTCkgKCgoTikgIT0gMCkgPyBzZXh0cmFjdDY0KChWQUwpLCAwLCAoTikpIDogMExMKQogI2Rl ZmluZSBmU0FUTihOLCBWQUwpIFwKICAgICAoKGZTWFROKE4sIDY0LCBWQUwpID09IChWQUwpKSA/ IChWQUwpIDogZlNBVFZBTE4oTiwgVkFMKSkKKyNkZWZpbmUgZlZTQVROKE4sIFZBTCkgXAorICAg ICgoZlNYVE4oTiwgNjQsIFZBTCkgPT0gKFZBTCkpID8gKFZBTCkgOiBmVlNBVFZBTE4oTiwgVkFM KSkKICNkZWZpbmUgZkFERFNBVDY0KERTVCwgQSwgQikgXAogICAgIGRvIHsgXAogICAgICAgICB1 aW50NjRfdCBfX2EgPSBmQ0FTVDh1KEEpOyBcCkBAIC0zMDIsMTIgKzMxMiwxOCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgZ2VuX3ByZWRfY2FuY2VsKFRDR3YgcHJlZCwgaW50IHNsb3RfbnVtKQogICAg ICAgICAgICAgRFNUID0gX19zdW07IFwKICAgICAgICAgfSBcCiAgICAgfSB3aGlsZSAoMCkKKyNk ZWZpbmUgZlZTQVRVTihOLCBWQUwpIFwKKyAgICAoKGZaWFROKE4sIDY0LCBWQUwpID09IChWQUwp KSA/IChWQUwpIDogZlZTQVRVVkFMTihOLCBWQUwpKQogI2RlZmluZSBmU0FUVU4oTiwgVkFMKSBc CiAgICAgKChmWlhUTihOLCA2NCwgVkFMKSA9PSAoVkFMKSkgPyAoVkFMKSA6IGZTQVRVVkFMTihO LCBWQUwpKQogI2RlZmluZSBmU0FUSChWQUwpIChmU0FUTigxNiwgVkFMKSkKICNkZWZpbmUgZlNB VFVIKFZBTCkgKGZTQVRVTigxNiwgVkFMKSkKKyNkZWZpbmUgZlZTQVRIKFZBTCkgKGZWU0FUTigx NiwgVkFMKSkKKyNkZWZpbmUgZlZTQVRVSChWQUwpIChmVlNBVFVOKDE2LCBWQUwpKQogI2RlZmlu ZSBmU0FUVUIoVkFMKSAoZlNBVFVOKDgsIFZBTCkpCiAjZGVmaW5lIGZTQVRCKFZBTCkgKGZTQVRO KDgsIFZBTCkpCisjZGVmaW5lIGZWU0FUVUIoVkFMKSAoZlZTQVRVTig4LCBWQUwpKQorI2RlZmlu ZSBmVlNBVEIoVkFMKSAoZlZTQVROKDgsIFZBTCkpCiAjZGVmaW5lIGZJTU1FWFQoSU1NKSAoSU1N ID0gSU1NKQogI2RlZmluZSBmTVVTVF9JTU1FWFQoSU1NKSBmSU1NRVhUKElNTSkKIApAQCAtNDE0 LDYgKzQzMCw4IEBAIHN0YXRpYyBpbmxpbmUgVENHdiBnZW5fcmVhZF9pcmVnKFRDR3YgcmVzdWx0 LCBUQ0d2IHZhbCwgaW50IHNoaWZ0KQogI2RlZmluZSBmQ0FTVDRzKEEpICgoaW50MzJfdCkoQSkp CiAjZGVmaW5lIGZDQVNUOHUoQSkgKCh1aW50NjRfdCkoQSkpCiAjZGVmaW5lIGZDQVNUOHMoQSkg KChpbnQ2NF90KShBKSkKKyNkZWZpbmUgZkNBU1QyXzJzKEEpICgoaW50MTZfdCkoQSkpCisjZGVm aW5lIGZDQVNUMl8ydShBKSAoKHVpbnQxNl90KShBKSkKICNkZWZpbmUgZkNBU1Q0XzRzKEEpICgo aW50MzJfdCkoQSkpCiAjZGVmaW5lIGZDQVNUNF80dShBKSAoKHVpbnQzMl90KShBKSkKICNkZWZp bmUgZkNBU1Q0XzhzKEEpICgoaW50NjRfdCkoKGludDMyX3QpKEEpKSkKQEAgLTUxMSw3ICs1Mjks OSBAQCBzdGF0aWMgaW5saW5lIFRDR3YgZ2VuX3JlYWRfaXJlZyhUQ0d2IHJlc3VsdCwgVENHdiB2 YWwsIGludCBzaGlmdCkKICNkZWZpbmUgZlBNX00oUkVHLCBNVkFMKSAgICBkbyB7IFJFRyA9IFJF RyArIChNVkFMKTsgfSB3aGlsZSAoMCkKICNlbmRpZgogI2RlZmluZSBmU0NBTEUoTiwgQSkgKCgo aW50NjRfdCkoQSkpIDw8IE4pCisjZGVmaW5lIGZWU0FUVyhBKSBmVlNBVE4oMzIsICgobG9uZyBs b25nKUEpKQogI2RlZmluZSBmU0FUVyhBKSBmU0FUTigzMiwgKChsb25nIGxvbmcpQSkpCisjZGVm aW5lIGZWU0FUKEEpIGZWU0FUTigzMiwgKEEpKQogI2RlZmluZSBmU0FUKEEpIGZTQVROKDMyLCAo QSkpCiAjZGVmaW5lIGZTQVRfT1JJR19TSEwoQSwgT1JJR19SRUcpIFwKICAgICAoKCgoaW50MzJf dCkoKGZTQVQoQSkpIF4gKChpbnQzMl90KShPUklHX1JFRykpKSkgPCAwKSBcCkBAIC02NDgsMTIg KzY2OCwxNCBAQCBzdGF0aWMgaW5saW5lIFRDR3YgZ2VuX3JlYWRfaXJlZyhUQ0d2IHJlc3VsdCwg VENHdiB2YWwsIGludCBzaGlmdCkKICAgICAgICAgICAgIGZTRVRCSVQoaiwgRFNULCBWQUwpOyBc CiAgICAgICAgIH0gXAogICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZDT1VOVE9ORVNfMihWQUwp IGN0cG9wMTYoVkFMKQogI2RlZmluZSBmQ09VTlRPTkVTXzQoVkFMKSBjdHBvcDMyKFZBTCkKICNk ZWZpbmUgZkNPVU5UT05FU184KFZBTCkgY3Rwb3A2NChWQUwpCiAjZGVmaW5lIGZCUkVWXzgoVkFM KSByZXZiaXQ2NChWQUwpCiAjZGVmaW5lIGZCUkVWXzQoVkFMKSByZXZiaXQzMihWQUwpCiAjZGVm aW5lIGZDTDFfOChWQUwpIGNsbzY0KFZBTCkKICNkZWZpbmUgZkNMMV80KFZBTCkgY2xvMzIoVkFM KQorI2RlZmluZSBmQ0wxXzIoVkFMKSAoY2x6MzIofih1aW50MTZfdCkoVkFMKSAmIDB4ZmZmZikg LSAxNikKICNkZWZpbmUgZklOVEVSTEVBVkUoT0RELCBFVkVOKSBpbnRlcmxlYXZlKE9ERCwgRVZF TikKICNkZWZpbmUgZkRFSU5URVJMRUFWRShNSVhFRCkgZGVpbnRlcmxlYXZlKE1JWEVEKQogI2Rl ZmluZSBmSElERShBKSBBCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9tbXZlYy9tYWNyb3Mu aCBiL3RhcmdldC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmVmZjg4MmMKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9t bXZlYy9tYWNyb3MuaApAQCAtMCwwICsxLDM1NCBAQAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAx OS0yMDIxIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2 ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgor ICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisj aWZuZGVmIEhFWEFHT05fTU1WRUNfTUFDUk9TX0gKKyNkZWZpbmUgSEVYQUdPTl9NTVZFQ19NQUNS T1NfSAorCisjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgorI2luY2x1ZGUgInFlbXUvaG9zdC11dGls cy5oIgorI2luY2x1ZGUgImFyY2guaCIKKyNpbmNsdWRlICJtbXZlYy9zeXN0ZW1fZXh0X21tdmVj LmgiCisKKyNpZm5kZWYgUUVNVV9HRU5FUkFURQorI2RlZmluZSBWZFYgICAgICAoKihNTVZlY3Rv ciAqKShWZFZfdm9pZCkpCisjZGVmaW5lIFZzViAgICAgICgqKE1NVmVjdG9yICopKFZzVl92b2lk KSkKKyNkZWZpbmUgVnVWICAgICAgKCooTU1WZWN0b3IgKikoVnVWX3ZvaWQpKQorI2RlZmluZSBW dlYgICAgICAoKihNTVZlY3RvciAqKShWdlZfdm9pZCkpCisjZGVmaW5lIFZ3ViAgICAgICgqKE1N VmVjdG9yICopKFZ3Vl92b2lkKSkKKyNkZWZpbmUgVnhWICAgICAgKCooTU1WZWN0b3IgKikoVnhW X3ZvaWQpKQorI2RlZmluZSBWeVYgICAgICAoKihNTVZlY3RvciAqKShWeVZfdm9pZCkpCisKKyNk ZWZpbmUgVmRkViAgICAgKCooTU1WZWN0b3JQYWlyICopKFZkZFZfdm9pZCkpCisjZGVmaW5lIFZ1 dVYgICAgICgqKE1NVmVjdG9yUGFpciAqKShWdXVWX3ZvaWQpKQorI2RlZmluZSBWdnZWICAgICAo KihNTVZlY3RvclBhaXIgKikoVnZ2Vl92b2lkKSkKKyNkZWZpbmUgVnh4ViAgICAgKCooTU1WZWN0 b3JQYWlyICopKFZ4eFZfdm9pZCkpCisKKyNkZWZpbmUgUWVWICAgICAgKCooTU1RUmVnICopKFFl Vl92b2lkKSkKKyNkZWZpbmUgUWRWICAgICAgKCooTU1RUmVnICopKFFkVl92b2lkKSkKKyNkZWZp bmUgUXNWICAgICAgKCooTU1RUmVnICopKFFzVl92b2lkKSkKKyNkZWZpbmUgUXRWICAgICAgKCoo TU1RUmVnICopKFF0Vl92b2lkKSkKKyNkZWZpbmUgUXVWICAgICAgKCooTU1RUmVnICopKFF1Vl92 b2lkKSkKKyNkZWZpbmUgUXZWICAgICAgKCooTU1RUmVnICopKFF2Vl92b2lkKSkKKyNkZWZpbmUg UXhWICAgICAgKCooTU1RUmVnICopKFF4Vl92b2lkKSkKKyNlbmRpZgorCisjZGVmaW5lIExPR19W VENNX0JZVEUoVkEsIE1BU0ssIFZBTCwgSURYKSBcCisgICAgZG8geyBcCisgICAgICAgIGVudi0+ dnRjbV9sb2cuZGF0YS51YltJRFhdID0gKFZBTCk7IFwKKyAgICAgICAgaWYgKE1BU0spIHsgXAor ICAgICAgICAgICAgc2V0X2JpdCgoSURYKSwgZW52LT52dGNtX2xvZy5tYXNrKTsgXAorICAgICAg ICB9IGVsc2UgeyBcCisgICAgICAgICAgICBjbGVhcl9iaXQoKElEWCksIGVudi0+dnRjbV9sb2cu bWFzayk7IFwKKyAgICAgICAgfSBcCisgICAgICAgIGVudi0+dnRjbV9sb2cudmFbSURYXSA9IChW QSk7IFwKKyAgICB9IHdoaWxlICgwKQorCisjZGVmaW5lIGZOT1RRKFZBTCkgXAorICAgICh7IFwK KyAgICAgICAgTU1RUmVnIF9yZXQ7ICBcCisgICAgICAgIGludCBfaV87ICBcCisgICAgICAgIGZv ciAoX2lfID0gMDsgX2lfIDwgZlZFQ1NJWkUoKSAvIDY0OyBfaV8rKykgeyBcCisgICAgICAgICAg ICBfcmV0LnVkW19pX10gPSB+VkFMLnVkW19pX107IFwKKyAgICAgICAgfSBcCisgICAgICAgIF9y ZXQ7XAorICAgICB9KQorI2RlZmluZSBmR0VUUUJJVFMoUkVHLCBXSURUSCwgTUFTSywgQklUTk8p IFwKKyAgICAoKE1BU0spICYgKFJFRy53WyhCSVROTykgPj4gNV0gPj4gKChCSVROTykgJiAweDFm KSkpCisjZGVmaW5lIGZHRVRRQklUKFJFRywgQklUTk8pIGZHRVRRQklUUyhSRUcsIDEsIDEsIEJJ VE5PKQorI2RlZmluZSBmR0VOTUFTS1coUVJFRywgSURYKSBcCisgICAgKCgoZkdFVFFCSVQoUVJF RywgKElEWCAqIDQgKyAwKSkgPyAweEZGIDogMHgwKSA8PCAwKSAgfCBcCisgICAgICgoZkdFVFFC SVQoUVJFRywgKElEWCAqIDQgKyAxKSkgPyAweEZGIDogMHgwKSA8PCA4KSAgfCBcCisgICAgICgo ZkdFVFFCSVQoUVJFRywgKElEWCAqIDQgKyAyKSkgPyAweEZGIDogMHgwKSA8PCAxNikgfCBcCisg ICAgICgoZkdFVFFCSVQoUVJFRywgKElEWCAqIDQgKyAzKSkgPyAweEZGIDogMHgwKSA8PCAyNCkp CisjZGVmaW5lIGZHRVROSUJCTEUoSURYLCBTUkMpIChmU1hUTig0LCA4LCAoU1JDID4+ICg0ICog SURYKSkgJiAweEYpKQorI2RlZmluZSBmR0VUQ1JVTUIoSURYLCBTUkMpIChmU1hUTigyLCA4LCAo U1JDID4+ICgyICogSURYKSkgJiAweDMpKQorI2RlZmluZSBmR0VUQ1JVTUJfU1lNTUVUUklDKElE WCwgU1JDKSBcCisgICAgKChmR0VUQ1JVTUIoSURYLCBTUkMpID49IDAgPyAoMiAtIGZHRVRDUlVN QihJRFgsIFNSQykpIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZHRVRDUlVN QihJRFgsIFNSQykpKQorI2RlZmluZSBmR0VOTUFTS0goUVJFRywgSURYKSBcCisgICAgKCgoZkdF VFFCSVQoUVJFRywgKElEWCAqIDIgKyAwKSkgPyAweEZGIDogMHgwKSA8PCAwKSB8IFwKKyAgICAg KChmR0VUUUJJVChRUkVHLCAoSURYICogMiArIDEpKSA/IDB4RkYgOiAweDApIDw8IDgpKQorI2Rl ZmluZSBmR0VUTUFTS1coVlJFRywgUVJFRywgSURYKSAoVlJFRy53W0lEWF0gJiBmR0VOTUFTS1co KFFSRUcpLCBJRFgpKQorI2RlZmluZSBmR0VUTUFTS0goVlJFRywgUVJFRywgSURYKSAoVlJFRy5o W0lEWF0gJiBmR0VOTUFTS0goKFFSRUcpLCBJRFgpKQorI2RlZmluZSBmQ09ORE1BU0s4KFFSRUcs IElEWCwgWUVTVkFMLCBOT1ZBTCkgXAorICAgIChmR0VUUUJJVChRUkVHLCBJRFgpID8gKFlFU1ZB TCkgOiAoTk9WQUwpKQorI2RlZmluZSBmQ09ORE1BU0sxNihRUkVHLCBJRFgsIFlFU1ZBTCwgTk9W QUwpIFwKKyAgICAoKGZHRU5NQVNLSChRUkVHLCBJRFgpICYgKFlFU1ZBTCkpIHwgXAorICAgICAo ZkdFTk1BU0tIKGZOT1RRKFFSRUcpLCBJRFgpICYgKE5PVkFMKSkpCisjZGVmaW5lIGZDT05ETUFT SzMyKFFSRUcsIElEWCwgWUVTVkFMLCBOT1ZBTCkgXAorICAgICgoZkdFTk1BU0tXKFFSRUcsIElE WCkgJiAoWUVTVkFMKSkgfCBcCisgICAgIChmR0VOTUFTS1coZk5PVFEoUVJFRyksIElEWCkgJiAo Tk9WQUwpKSkKKyNkZWZpbmUgZlNFVFFCSVRTKFJFRywgV0lEVEgsIE1BU0ssIEJJVE5PLCBWQUwp IFwKKyAgICBkbyB7IFwKKyAgICAgICAgdWludDMyX3QgX19UTVAgPSAoVkFMKTsgXAorICAgICAg ICBSRUcud1soQklUTk8pID4+IDVdICY9IH4oKE1BU0spIDw8ICgoQklUTk8pICYgMHgxZikpOyBc CisgICAgICAgIFJFRy53WyhCSVROTykgPj4gNV0gfD0gKCgoX19UTVApICYgKE1BU0spKSA8PCAo KEJJVE5PKSAmIDB4MWYpKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZTRVRRQklUKFJF RywgQklUTk8sIFZBTCkgZlNFVFFCSVRTKFJFRywgMSwgMSwgQklUTk8sIFZBTCkKKyNkZWZpbmUg ZlZCWVRFUygpIChmVkVDU0laRSgpKQorI2RlZmluZSBmVkFMSUdOKEFERFIsIExPRzJfQUxJR05N RU5UKSAoQUREUiA9IEFERFIgJiB+KExPRzJfQUxJR05NRU5UIC0gMSkpCisjZGVmaW5lIGZWTEFT VEJZVEUoQUREUiwgTE9HMl9BTElHTk1FTlQpIChBRERSID0gQUREUiB8IChMT0cyX0FMSUdOTUVO VCAtIDEpKQorI2RlZmluZSBmVkVMRU0oV0lEVEgpICgoZlZFQ1NJWkUoKSAqIDgpIC8gV0lEVEgp CisjZGVmaW5lIGZWRUNMT0dTSVpFKCkgKDcpCisjZGVmaW5lIGZWRUNTSVpFKCkgKDEgPDwgZlZF Q0xPR1NJWkUoKSkKKyNkZWZpbmUgZlNXQVBCKEEsIEIpIGRvIHsgdWludDhfdCB0bXAgPSBBOyBB ID0gQjsgQiA9IHRtcDsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlZfQUxfQ0hFQ0soRUEsIE1BU0sp IFwKKyAgICBpZiAoKEVBKSAmIChNQVNLKSkgeyBcCisgICAgICAgIHdhcm4oImFsaWduaW5nIG1p c2FsaWduZWQgdmVjdG9yLiBFQT0lMDh4IiwgKEVBKSk7IFwKKyAgICB9CisjZGVmaW5lIGZTQ0FU VEVSX0lOSVQoUkVHSU9OX1NUQVJULCBMRU5HVEgsIEVMRU1FTlRfU0laRSkgXAorICAgIG1lbV92 ZWN0b3Jfc2NhdHRlcl9pbml0KGVudiwgc2xvdCwgUkVHSU9OX1NUQVJULCBMRU5HVEgsIEVMRU1F TlRfU0laRSkKKyNkZWZpbmUgZkdBVEhFUl9JTklUKFJFR0lPTl9TVEFSVCwgTEVOR1RILCBFTEVN RU5UX1NJWkUpIFwKKyAgICBtZW1fdmVjdG9yX2dhdGhlcl9pbml0KGVudiwgUkVHSU9OX1NUQVJU LCBMRU5HVEgsIEVMRU1FTlRfU0laRSkKKyNkZWZpbmUgZlNDQVRURVJfRklOSVNIKE9QKQorI2Rl ZmluZSBmR0FUSEVSX0ZJTklTSCgpCisjZGVmaW5lIGZMT0dfU0NBVFRFUl9PUChTSVpFKSBcCisg ICAgZG8geyBcCisgICAgICAgIGVudi0+dnRjbV9sb2cub3AgPSB0cnVlOyBcCisgICAgICAgIGVu di0+dnRjbV9sb2cub3Bfc2l6ZSA9IFNJWkU7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBm VkxPR19WVENNX1dPUkRfSU5DUkVNRU5UKEVBLCBPRkZTRVQsIElOQywgSURYLCBBTElHTk1FTlQs IExFTikgXAorICAgIGRvIHsgXAorICAgICAgICBpbnQgbG9nX2J5dGUgPSAwOyBcCisgICAgICAg IHRhcmdldF91bG9uZyB2YSA9IEVBOyBcCisgICAgICAgIHRhcmdldF91bG9uZyB2YV9oaWdoID0g RUEgKyBMRU47IFwKKyAgICAgICAgZm9yIChpbnQgaTAgPSAwOyBpMCA8IDQ7IGkwKyspIHsgXAor ICAgICAgICAgICAgbG9nX2J5dGUgPSAodmEgKyBpMCkgPD0gdmFfaGlnaDsgXAorICAgICAgICAg ICAgTE9HX1ZUQ01fQllURSh2YSArIGkwLCBsb2dfYnl0ZSwgSU5DLiB1Yls0ICogSURYICsgaTBd LCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIDQgKiBJRFggKyBpMCk7IFwKKyAgICAgICAg fSBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlZMT0dfVlRDTV9IQUxGV09SRF9JTkNSRU1F TlQoRUEsIE9GRlNFVCwgSU5DLCBJRFgsIEFMSUdOTUVOVCwgTEVOKSBcCisgICAgZG8geyBcCisg ICAgICAgIGludCBsb2dfYnl0ZSA9IDA7IFwKKyAgICAgICAgdGFyZ2V0X3Vsb25nIHZhID0gRUE7 IFwKKyAgICAgICAgdGFyZ2V0X3Vsb25nIHZhX2hpZ2ggPSBFQSArIExFTjsgXAorICAgICAgICBm b3IgKGludCBpMCA9IDA7IGkwIDwgMjsgaTArKykgeyBcCisgICAgICAgICAgICBsb2dfYnl0ZSA9 ICh2YSArIGkwKSA8PSB2YV9oaWdoOyBcCisgICAgICAgICAgICBMT0dfVlRDTV9CWVRFKHZhICsg aTAsIGxvZ19ieXRlLCBJTkMudWJbMiAqIElEWCArIGkwXSwgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAyICogSURYICsgaTApOyBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUgKDApCisK KyNkZWZpbmUgZlZMT0dfVlRDTV9IQUxGV09SRF9JTkNSRU1FTlRfRFYoRUEsIE9GRlNFVCwgSU5D LCBJRFgsIElEWDIsIElEWF9ILCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFMSUdOTUVOVCwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIGludCBsb2dfYnl0 ZSA9IDA7IFwKKyAgICAgICAgdGFyZ2V0X3Vsb25nIHZhID0gRUE7IFwKKyAgICAgICAgdGFyZ2V0 X3Vsb25nIHZhX2hpZ2ggPSBFQSArIExFTjsgXAorICAgICAgICBmb3IgKGludCBpMCA9IDA7IGkw IDwgMjsgaTArKykgeyBcCisgICAgICAgICAgICBsb2dfYnl0ZSA9ICh2YSArIGkwKSA8PSB2YV9o aWdoOyBcCisgICAgICAgICAgICBMT0dfVlRDTV9CWVRFKHZhICsgaTAsIGxvZ19ieXRlLCBJTkMu dWJbMiAqIElEWCArIGkwXSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAyICogSURYICsg aTApOyBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUgKDApCisKKy8qIE5PVEUgLSBXaWxsIHRo aXMgYWx3YXlzIGJlIHRtcF9WUmVnc1swXTsgKi8KKyNkZWZpbmUgR0FUSEVSX0ZVTkNUSU9OKEVB LCBPRkZTRVQsIElEWCwgTEVOLCBFTEVNRU5UX1NJWkUsIEJBTktfSURYLCBRVkFMKSBcCisgICAg ZG8geyBcCisgICAgICAgIGludCBpMDsgXAorICAgICAgICB0YXJnZXRfdWxvbmcgdmEgPSBFQTsg XAorICAgICAgICB0YXJnZXRfdWxvbmcgdmFfaGlnaCA9IEVBICsgTEVOOyBcCisgICAgICAgIHVp bnRwdHJfdCByYSA9IEdFVFBDKCk7IFwKKyAgICAgICAgaW50IGxvZ19iYW5rID0gMDsgXAorICAg ICAgICBpbnQgbG9nX2J5dGUgPSAwOyBcCisgICAgICAgIGZvciAoaTAgPSAwOyBpMCA8IEVMRU1F TlRfU0laRTsgaTArKykgeyBcCisgICAgICAgICAgICBsb2dfYnl0ZSA9ICgodmEgKyBpMCkgPD0g dmFfaGlnaCkgJiYgUVZBTDsgXAorICAgICAgICAgICAgbG9nX2JhbmsgfD0gKGxvZ19ieXRlIDw8 IGkwKTsgXAorICAgICAgICAgICAgdWludDhfdCBCOyBcCisgICAgICAgICAgICBCID0gY3B1X2xk dWJfZGF0YV9yYShlbnYsIEVBICsgaTAsIHJhKTsgXAorICAgICAgICAgICAgZW52LT50bXBfVlJl Z3NbMF0udWJbRUxFTUVOVF9TSVpFICogSURYICsgaTBdID0gQjsgXAorICAgICAgICAgICAgTE9H X1ZUQ01fQllURSh2YSArIGkwLCBsb2dfYnl0ZSwgQiwgRUxFTUVOVF9TSVpFICogSURYICsgaTAp OyBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fR0FU SEVSX1dPUkQoRUEsIE9GRlNFVCwgSURYLCBMRU4pIFwKKyAgICBkbyB7IFwKKyAgICAgICAgR0FU SEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCA0LCBJRFgsIDEpOyBcCisgICAgfSB3 aGlsZSAoMCkKKyNkZWZpbmUgZlZMT0dfVlRDTV9HQVRIRVJfSEFMRldPUkQoRUEsIE9GRlNFVCwg SURYLCBMRU4pIFwKKyAgICBkbyB7IFwKKyAgICAgICAgR0FUSEVSX0ZVTkNUSU9OKEVBLCBPRkZT RVQsIElEWCwgTEVOLCAyLCBJRFgsIDEpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlZM T0dfVlRDTV9HQVRIRVJfSEFMRldPUkRfRFYoRUEsIE9GRlNFVCwgSURYLCBJRFgyLCBJRFhfSCwg TEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIEdBVEhFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJ RFgsIExFTiwgMiwgKDIgKiBJRFgyICsgSURYX0gpLCAxKTsgXAorICAgIH0gd2hpbGUgKDApCisj ZGVmaW5lIGZWTE9HX1ZUQ01fR0FUSEVSX1dPUkRRKEVBLCBPRkZTRVQsIElEWCwgUSwgTEVOKSBc CisgICAgZG8geyBcCisgICAgICAgIEdBVEhFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJRFgsIExF TiwgNCwgSURYLCBcCisgICAgICAgICAgICAgICAgICAgICAgICBmR0VUUUJJVChRc1YsIDQgKiBJ RFggKyBpMCkpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlZMT0dfVlRDTV9HQVRIRVJf SEFMRldPUkRRKEVBLCBPRkZTRVQsIElEWCwgUSwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAg IEdBVEhFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJRFgsIExFTiwgMiwgSURYLCBcCisgICAgICAg ICAgICAgICAgICAgICAgICBmR0VUUUJJVChRc1YsIDIgKiBJRFggKyBpMCkpOyBcCisgICAgfSB3 aGlsZSAoMCkKKyNkZWZpbmUgZlZMT0dfVlRDTV9HQVRIRVJfSEFMRldPUkRRX0RWKEVBLCBPRkZT RVQsIElEWCwgSURYMiwgSURYX0gsIFEsIExFTikgXAorICAgIGRvIHsgXAorICAgICAgICBHQVRI RVJfRlVOQ1RJT04oRUEsIE9GRlNFVCwgSURYLCBMRU4sIDIsICgyICogSURYMiArIElEWF9IKSwg XAorICAgICAgICAgICAgICAgICAgICAgICAgZkdFVFFCSVQoUXNWLCAyICogSURYICsgaTApKTsg XAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIFNDQVRURVJfT1BfV1JJVEVfVE9fTUVNKFRZUEUp IFwKKyAgICBkbyB7IFwKKyAgICAgICAgdWludHB0cl90IHJhID0gR0VUUEMoKTsgXAorICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IGVudi0+dnRjbV9sb2cuc2l6ZTsgaSArPSBzaXplb2YoVFlQ RSkpIHsgXAorICAgICAgICAgICAgaWYgKHRlc3RfYml0KGksIGVudi0+dnRjbV9sb2cubWFzaykp IHsgXAorICAgICAgICAgICAgICAgIFRZUEUgZHN0ID0gMDsgXAorICAgICAgICAgICAgICAgIFRZ UEUgaW5jID0gMDsgXAorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZW9m KFRZUEUpOyBqKyspIHsgXAorICAgICAgICAgICAgICAgICAgICB1aW50OF90IHZhbDsgXAorICAg ICAgICAgICAgICAgICAgICB2YWwgPSBjcHVfbGR1Yl9kYXRhX3JhKGVudiwgZW52LT52dGNtX2xv Zy52YVtpICsgal0sIHJhKTsgXAorICAgICAgICAgICAgICAgICAgICBkc3QgfD0gdmFsIDw8ICg4 ICogaik7IFwKKyAgICAgICAgICAgICAgICAgICAgaW5jIHw9IGVudi0+dnRjbV9sb2cuZGF0YS51 YltqICsgaV0gPDwgKDggKiBqKTsgXAorICAgICAgICAgICAgICAgICAgICBjbGVhcl9iaXQoaiAr IGksIGVudi0+dnRjbV9sb2cubWFzayk7IFwKKyAgICAgICAgICAgICAgICAgICAgZW52LT52dGNt X2xvZy5kYXRhLnViW2ogKyBpXSA9IDA7IFwKKyAgICAgICAgICAgICAgICB9IFwKKyAgICAgICAg ICAgICAgICBkc3QgKz0gaW5jOyBcCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGog PCBzaXplb2YoVFlQRSk7IGorKykgeyBcCisgICAgICAgICAgICAgICAgICAgIGNwdV9zdGJfZGF0 YV9yYShlbnYsIGVudi0+dnRjbV9sb2cudmFbaSArIGpdLCBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZHN0ID4+ICg4ICogaikpICYgMHhGRiwgcmEpOyBcCisgICAgICAg ICAgICAgICAgfSBcCisgICAgICAgICAgICB9IFwKKyAgICAgICAgfSBcCisgICAgfSB3aGlsZSAo MCkKKyNkZWZpbmUgU0NBVFRFUl9PUF9QUk9CRV9NRU0oVFlQRSwgTU1VX0lEWCwgUkVUQUREUikg XAorICAgIGRvIHsgXAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVudi0+dnRjbV9sb2cu c2l6ZTsgaSArPSBzaXplb2YoVFlQRSkpIHsgXAorICAgICAgICAgICAgaWYgKHRlc3RfYml0KGks IGVudi0+dnRjbV9sb2cubWFzaykpIHsgXAorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAw OyBqIDwgc2l6ZW9mKFRZUEUpOyBqKyspIHsgXAorICAgICAgICAgICAgICAgICAgICBwcm9iZV9y ZWFkKGVudiwgZW52LT52dGNtX2xvZy52YVtpICsgal0sIDEsIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNTVVfSURYLCBSRVRBRERSKTsgXAorICAgICAgICAgICAgICAgICAgICBw cm9iZV93cml0ZShlbnYsIGVudi0+dnRjbV9sb2cudmFbaSArIGpdLCAxLCBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1NVV9JRFgsIFJFVEFERFIpOyBcCisgICAgICAgICAgICAg ICAgfSBcCisgICAgICAgICAgICB9IFwKKyAgICAgICAgfSBcCisgICAgfSB3aGlsZSAoMCkKKyNk ZWZpbmUgU0NBVFRFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJRFgsIExFTiwgRUxFTV9TSVpFLCBC QU5LX0lEWCwgUVZBTCwgSU4pIFwKKyAgICBkbyB7IFwKKyAgICAgICAgaW50IGkwOyBcCisgICAg ICAgIHRhcmdldF91bG9uZyB2YSA9IEVBOyBcCisgICAgICAgIHRhcmdldF91bG9uZyB2YV9oaWdo ID0gRUEgKyBMRU47IFwKKyAgICAgICAgaW50IGxvZ19iYW5rID0gMDsgXAorICAgICAgICBpbnQg bG9nX2J5dGUgPSAwOyBcCisgICAgICAgIGZvciAoaTAgPSAwOyBpMCA8IEVMRU1fU0laRTsgaTAr KykgeyBcCisgICAgICAgICAgICBsb2dfYnl0ZSA9ICgodmEgKyBpMCkgPD0gdmFfaGlnaCkgJiYg UVZBTDsgXAorICAgICAgICAgICAgbG9nX2JhbmsgfD0gKGxvZ19ieXRlIDw8IGkwKTsgXAorICAg ICAgICAgICAgTE9HX1ZUQ01fQllURSh2YSArIGkwLCBsb2dfYnl0ZSwgSU4udWJbRUxFTV9TSVpF ICogSURYICsgaTBdLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVMRU1fU0laRSAqIElE WCArIGkwKTsgXAorICAgICAgICB9IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBmVkxPR19W VENNX0hBTEZXT1JEKEVBLCBPRkZTRVQsIElOLCBJRFgsIExFTikgXAorICAgIGRvIHsgXAorICAg ICAgICBTQ0FUVEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCAyLCBJRFgsIDEsIElO KTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fV09SRChFQSwgT0ZGU0VU LCBJTiwgSURYLCBMRU4pIFwKKyAgICBkbyB7IFwKKyAgICAgICAgU0NBVFRFUl9GVU5DVElPTihF QSwgT0ZGU0VULCBJRFgsIExFTiwgNCwgSURYLCAxLCBJTik7IFwKKyAgICB9IHdoaWxlICgwKQor I2RlZmluZSBmVkxPR19WVENNX0hBTEZXT1JEUShFQSwgT0ZGU0VULCBJTiwgSURYLCBRLCBMRU4p IFwKKyAgICBkbyB7IFwKKyAgICAgICAgU0NBVFRFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJRFgs IExFTiwgMiwgSURYLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgZkdFVFFCSVQoUXNWLCAy ICogSURYICsgaTApLCBJTik7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBmVkxPR19WVENN X1dPUkRRKEVBLCBPRkZTRVQsIElOLCBJRFgsIFEsIExFTikgXAorICAgIGRvIHsgXAorICAgICAg ICBTQ0FUVEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCA0LCBJRFgsIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICBmR0VUUUJJVChRc1YsIDQgKiBJRFggKyBpMCksIElOKTsgXAor ICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fSEFMRldPUkRfRFYoRUEsIE9GRlNF VCwgSU4sIElEWCwgSURYMiwgSURYX0gsIExFTikgXAorICAgIGRvIHsgXAorICAgICAgICBTQ0FU VEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCAyLCBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgKDIgKiBJRFgyICsgSURYX0gpLCAxLCBJTik7IFwKKyAgICB9IHdoaWxlICgwKQor I2RlZmluZSBmVkxPR19WVENNX0hBTEZXT1JEUV9EVihFQSwgT0ZGU0VULCBJTiwgSURYLCBRLCBJ RFgyLCBJRFhfSCwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIFNDQVRURVJfRlVOQ1RJT04o RUEsIE9GRlNFVCwgSURYLCBMRU4sIDIsICgyICogSURYMiArIElEWF9IKSwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgIGZHRVRRQklUKFFzViwgMiAqIElEWCArIGkwKSwgSU4pOyBcCisgICAg fSB3aGlsZSAoMCkKKyNkZWZpbmUgZlNUT1JFUkVMRUFTRShFQSwgVFlQRSkgXAorICAgIGRvIHsg XAorICAgICAgICBmVl9BTF9DSEVDSyhFQSwgZlZFQ1NJWkUoKSAtIDEpOyBcCisgICAgfSB3aGls ZSAoMCkKKyNpZmRlZiBRRU1VX0dFTkVSQVRFCisjZGVmaW5lIGZMT0FETU1WKEVBLCBEU1QpIGdl bl92cmVnX2xvYWQoY3R4LCBEU1QjI19vZmYsIEVBLCB0cnVlKQorI2VuZGlmCisjaWZkZWYgUUVN VV9HRU5FUkFURQorI2RlZmluZSBmTE9BRE1NVlUoRUEsIERTVCkgZ2VuX3ZyZWdfbG9hZChjdHgs IERTVCMjX29mZiwgRUEsIGZhbHNlKQorI2VuZGlmCisjaWZkZWYgUUVNVV9HRU5FUkFURQorI2Rl ZmluZSBmU1RPUkVNTVYoRUEsIFNSQykgXAorICAgIGdlbl92cmVnX3N0b3JlKGN0eCwgaW5zbiwg cGt0LCBFQSwgU1JDIyNfb2ZmLCBpbnNuLT5zbG90LCB0cnVlKQorI2VuZGlmCisjaWZkZWYgUUVN VV9HRU5FUkFURQorI2RlZmluZSBmU1RPUkVNTVZRKEVBLCBTUkMsIE1BU0spIFwKKyAgICBnZW5f dnJlZ19tYXNrZWRfc3RvcmUoY3R4LCBFQSwgU1JDIyNfb2ZmLCBNQVNLIyNfb2ZmLCBpbnNuLT5z bG90LCBmYWxzZSkKKyNlbmRpZgorI2lmZGVmIFFFTVVfR0VORVJBVEUKKyNkZWZpbmUgZlNUT1JF TU1WTlEoRUEsIFNSQywgTUFTSykgXAorICAgIGdlbl92cmVnX21hc2tlZF9zdG9yZShjdHgsIEVB LCBTUkMjI19vZmYsIE1BU0sjI19vZmYsIGluc24tPnNsb3QsIHRydWUpCisjZW5kaWYKKyNpZmRl ZiBRRU1VX0dFTkVSQVRFCisjZGVmaW5lIGZTVE9SRU1NVlUoRUEsIFNSQykgXAorICAgIGdlbl92 cmVnX3N0b3JlKGN0eCwgaW5zbiwgcGt0LCBFQSwgU1JDIyNfb2ZmLCBpbnNuLT5zbG90LCBmYWxz ZSkKKyNlbmRpZgorI2RlZmluZSBmVkZPUkVBQ0goV0lEVEgsIFZBUikgZm9yIChWQVIgPSAwOyBW QVIgPCBmVkVMRU0oV0lEVEgpOyBWQVIrKykKKyNkZWZpbmUgZlZBUlJBWV9FTEVNRU5UX0FDQ0VT UyhBUlJBWSwgVFlQRSwgSU5ERVgpIFwKKyAgICBBUlJBWS52WyhJTkRFWCkgLyAoZlZFQ1NJWkUo KSAvIChzaXplb2YoQVJSQVkuVFlQRVswXSkpKV0uVFlQRVsoSU5ERVgpICUgXAorICAgIChmVkVD U0laRSgpIC8gKHNpemVvZihBUlJBWS5UWVBFWzBdKSkpXQorCisjZGVmaW5lIGZWU0FURFcoVSwg VikgZlZTQVRXKCgoKChsb25nIGxvbmcpVSkgPDwgMzIpIHwgZlpYVE4oMzIsIDY0LCBWKSkpCisj ZGVmaW5lIGZWQVNMX1NBVEhJKFUsIFYpIGZWU0FUVygoKFUpIDw8IDEpIHwgKChWKSA+PiAzMSkp CisjZGVmaW5lIGZWVUFERFNBVChXSURUSCwgVSwgVikgXAorICAgIGZWU0FUVU4oV0lEVEgsIGZa WFROKFdJRFRILCAyICogV0lEVEgsIFUpICsgZlpYVE4oV0lEVEgsIDIgKiBXSURUSCwgVikpCisj ZGVmaW5lIGZWU0FERFNBVChXSURUSCwgVSwgVikgXAorICAgIGZWU0FUTihXSURUSCwgZlNYVE4o V0lEVEgsIDIgKiBXSURUSCwgVSkgKyBmU1hUTihXSURUSCwgMiAqIFdJRFRILCBWKSkKKyNkZWZp bmUgZlZVU1VCU0FUKFdJRFRILCBVLCBWKSBcCisgICAgZlZTQVRVTihXSURUSCwgZlpYVE4oV0lE VEgsIDIgKiBXSURUSCwgVSkgLSBmWlhUTihXSURUSCwgMiAqIFdJRFRILCBWKSkKKyNkZWZpbmUg ZlZTU1VCU0FUKFdJRFRILCBVLCBWKSBcCisgICAgZlZTQVROKFdJRFRILCBmU1hUTihXSURUSCwg MiAqIFdJRFRILCBVKSAtIGZTWFROKFdJRFRILCAyICogV0lEVEgsIFYpKQorI2RlZmluZSBmVkFW R1UoV0lEVEgsIFUsIFYpIFwKKyAgICAoKGZaWFROKFdJRFRILCAyICogV0lEVEgsIFUpICsgZlpY VE4oV0lEVEgsIDIgKiBXSURUSCwgVikpID4+IDEpCisjZGVmaW5lIGZWQVZHVVJORChXSURUSCwg VSwgVikgXAorICAgICgoZlpYVE4oV0lEVEgsIDIgKiBXSURUSCwgVSkgKyBmWlhUTihXSURUSCwg MiAqIFdJRFRILCBWKSArIDEpID4+IDEpCisjZGVmaW5lIGZWTkFWR1UoV0lEVEgsIFUsIFYpIFwK KyAgICAoKGZaWFROKFdJRFRILCAyICogV0lEVEgsIFUpIC0gZlpYVE4oV0lEVEgsIDIgKiBXSURU SCwgVikpID4+IDEpCisjZGVmaW5lIGZWTkFWR1VSTkRTQVQoV0lEVEgsIFUsIFYpIFwKKyAgICBm VlNBVFVOKFdJRFRILCAoKGZaWFROKFdJRFRILCAyICogV0lEVEgsIFUpIC0gXAorICAgICAgICAg ICAgICAgICAgICAgZlpYVE4oV0lEVEgsIDIgKiBXSURUSCwgVikgKyAxKSA+PiAxKSkKKyNkZWZp bmUgZlZBVkdTKFdJRFRILCBVLCBWKSBcCisgICAgKChmU1hUTihXSURUSCwgMiAqIFdJRFRILCBV KSArIGZTWFROKFdJRFRILCAyICogV0lEVEgsIFYpKSA+PiAxKQorI2RlZmluZSBmVkFWR1NSTkQo V0lEVEgsIFUsIFYpIFwKKyAgICAoKGZTWFROKFdJRFRILCAyICogV0lEVEgsIFUpICsgZlNYVE4o V0lEVEgsIDIgKiBXSURUSCwgVikgKyAxKSA+PiAxKQorI2RlZmluZSBmVk5BVkdTKFdJRFRILCBV LCBWKSBcCisgICAgKChmU1hUTihXSURUSCwgMiAqIFdJRFRILCBVKSAtIGZTWFROKFdJRFRILCAy ICogV0lEVEgsIFYpKSA+PiAxKQorI2RlZmluZSBmVk5BVkdTUk5EKFdJRFRILCBVLCBWKSBcCisg ICAgKChmU1hUTihXSURUSCwgMiAqIFdJRFRILCBVKSAtIGZTWFROKFdJRFRILCAyICogV0lEVEgs IFYpICsgMSkgPj4gMSkKKyNkZWZpbmUgZlZOQVZHU1JORFNBVChXSURUSCwgVSwgVikgXAorICAg IGZWU0FUTihXSURUSCwgKChmU1hUTihXSURUSCwgMiAqIFdJRFRILCBVKSAtIFwKKyAgICAgICAg ICAgICAgICAgICAgZlNYVE4oV0lEVEgsIDIgKiBXSURUSCwgVikgKyAxKSA+PiAxKSkKKyNkZWZp bmUgZlZOT1JPVU5EKFZBTCwgU0hBTVQpIFZBTAorI2RlZmluZSBmVk5PU0FUKFZBTCkgVkFMCisj ZGVmaW5lIGZWUk9VTkQoVkFMLCBTSEFNVCkgXAorICAgICgoVkFMKSArICgoKFNIQU1UKSA+IDAp ID8gKDFMTCA8PCAoKFNIQU1UKSAtIDEpKSA6IDApKQorI2RlZmluZSBmQ0FSUllfRlJPTV9BREQz MihBLCBCLCBDKSBcCisgICAgKCgoZlpYVE4oMzIsIDY0LCBBKSArIGZaWFROKDMyLCA2NCwgQikg KyBDKSA+PiAzMikgJiAxKQorI2RlZmluZSBmVUFSQ0hfTk9URV9QVU1QXzRYKCkKKyNkZWZpbmUg ZlVBUkNIX05PVEVfUFVNUF8yWCgpCisKKyNkZWZpbmUgSVYxREVBRCgpCisjZW5kaWYKLS0gCjIu Ny40Cgo=