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 3E84FC433F5 for ; Sat, 30 Oct 2021 01:32:43 +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 D46A16101E for ; Sat, 30 Oct 2021 01:32:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org D46A16101E 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]:54652 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mgdEf-0006SK-Rn for qemu-devel@archiver.kernel.org; Fri, 29 Oct 2021 21:32:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40756) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mgd3Z-0002zE-Si for qemu-devel@nongnu.org; Fri, 29 Oct 2021 21:21:14 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:7471) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1mgd3P-0001eC-0H for qemu-devel@nongnu.org; Fri, 29 Oct 2021 21:21:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1635556863; x=1667092863; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4d0mIq3/glnrjoVTGuVxNAWE65lNhOSAgq/tQ/nzAF0=; b=gWrN2EVsMyXUOIOxDFk/lRfwmvAsfqFCYluwx1BaZLq85xJm0xQVYNQw gp6MZXAzB6ojoonXIuMfu/YfLuAzidrlBLkhwArrdFp9lmrr85LIMQv2x jsl6idV/sbfVq2jIQaKPDi8XKyh8iNAzI/zgB6Zlga6RUDNO+ky8BG+mQ I=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-01.qualcomm.com with ESMTP; 29 Oct 2021 18:20:58 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg01-sd.qualcomm.com with ESMTP; 29 Oct 2021 18:20:57 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id EEAFF1D86; Fri, 29 Oct 2021 20:20:56 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v5 05/30] Hexagon HVX (target/hexagon) macros Date: Fri, 29 Oct 2021 20:20:24 -0500 Message-Id: <1635556849-18120-6-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1635556849-18120-1-git-send-email-tsimpson@quicinc.com> References: <1635556849-18120-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.38; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-01.qualcomm.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, 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 YWdvbi9tYWNyb3MuaAppbmRleCAxM2U5NTdiLi4xOWQxMDNjIDEwMDY0NAotLS0gYS90YXJnZXQv 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 bmUgZkNBU1Q0XzhzKEEpICgoaW50NjRfdCkoKGludDMyX3QpKEEpKSkKQEAgLTUxMCw3ICs1Mjgs OSBAQCBzdGF0aWMgaW5saW5lIFRDR3YgZ2VuX3JlYWRfaXJlZyhUQ0d2IHJlc3VsdCwgVENHdiB2 YWwsIGludCBzaGlmdCkKICNkZWZpbmUgZlBNX00oUkVHLCBNVkFMKSAgICBkbyB7IFJFRyA9IFJF RyArIChNVkFMKTsgfSB3aGlsZSAoMCkKICNlbmRpZgogI2RlZmluZSBmU0NBTEUoTiwgQSkgKCgo aW50NjRfdCkoQSkpIDw8IE4pCisjZGVmaW5lIGZWU0FUVyhBKSBmVlNBVE4oMzIsICgobG9uZyBs b25nKUEpKQogI2RlZmluZSBmU0FUVyhBKSBmU0FUTigzMiwgKChsb25nIGxvbmcpQSkpCisjZGVm aW5lIGZWU0FUKEEpIGZWU0FUTigzMiwgKEEpKQogI2RlZmluZSBmU0FUKEEpIGZTQVROKDMyLCAo QSkpCiAjZGVmaW5lIGZTQVRfT1JJR19TSEwoQSwgT1JJR19SRUcpIFwKICAgICAoKCgoaW50MzJf dCkoKGZTQVQoQSkpIF4gKChpbnQzMl90KShPUklHX1JFRykpKSkgPCAwKSBcCkBAIC02NDcsMTIg KzY2NywxNCBAQCBzdGF0aWMgaW5saW5lIFRDR3YgZ2VuX3JlYWRfaXJlZyhUQ0d2IHJlc3VsdCwg VENHdiB2YWwsIGludCBzaGlmdCkKICAgICAgICAgICAgIGZTRVRCSVQoaiwgRFNULCBWQUwpOyBc CiAgICAgICAgIH0gXAogICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZDT1VOVE9ORVNfMihWQUwp IGN0cG9wMTYoVkFMKQogI2RlZmluZSBmQ09VTlRPTkVTXzQoVkFMKSBjdHBvcDMyKFZBTCkKICNk ZWZpbmUgZkNPVU5UT05FU184KFZBTCkgY3Rwb3A2NChWQUwpCiAjZGVmaW5lIGZCUkVWXzgoVkFM KSByZXZiaXQ2NChWQUwpCiAjZGVmaW5lIGZCUkVWXzQoVkFMKSByZXZiaXQzMihWQUwpCiAjZGVm aW5lIGZDTDFfOChWQUwpIGNsbzY0KFZBTCkKICNkZWZpbmUgZkNMMV80KFZBTCkgY2xvMzIoVkFM KQorI2RlZmluZSBmQ0wxXzIoVkFMKSAoY2x6MzIofih1aW50MTZfdCkoVkFMKSAmIDB4ZmZmZikg LSAxNikKICNkZWZpbmUgZklOVEVSTEVBVkUoT0RELCBFVkVOKSBpbnRlcmxlYXZlKE9ERCwgRVZF TikKICNkZWZpbmUgZkRFSU5URVJMRUFWRShNSVhFRCkgZGVpbnRlcmxlYXZlKE1JWEVEKQogI2Rl ZmluZSBmSElERShBKSBBCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9tbXZlYy9tYWNyb3Mu aCBiL3RhcmdldC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjEwZjQ2MzAKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9t 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 ZWN0b3Jfc2NhdHRlcl9pbml0KGVudikKKyNkZWZpbmUgZkdBVEhFUl9JTklUKFJFR0lPTl9TVEFS VCwgTEVOR1RILCBFTEVNRU5UX1NJWkUpIFwKKyAgICBtZW1fdmVjdG9yX2dhdGhlcl9pbml0KGVu dikKKyNkZWZpbmUgZlNDQVRURVJfRklOSVNIKE9QKQorI2RlZmluZSBmR0FUSEVSX0ZJTklTSCgp CisjZGVmaW5lIGZMT0dfU0NBVFRFUl9PUChTSVpFKSBcCisgICAgZG8geyBcCisgICAgICAgIGVu di0+dnRjbV9sb2cub3AgPSB0cnVlOyBcCisgICAgICAgIGVudi0+dnRjbV9sb2cub3Bfc2l6ZSA9 IFNJWkU7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBmVkxPR19WVENNX1dPUkRfSU5DUkVN RU5UKEVBLCBPRkZTRVQsIElOQywgSURYLCBBTElHTk1FTlQsIExFTikgXAorICAgIGRvIHsgXAor ICAgICAgICBpbnQgbG9nX2J5dGUgPSAwOyBcCisgICAgICAgIHRhcmdldF91bG9uZyB2YSA9IEVB OyBcCisgICAgICAgIHRhcmdldF91bG9uZyB2YV9oaWdoID0gRUEgKyBMRU47IFwKKyAgICAgICAg Zm9yIChpbnQgaTAgPSAwOyBpMCA8IDQ7IGkwKyspIHsgXAorICAgICAgICAgICAgbG9nX2J5dGUg PSAodmEgKyBpMCkgPD0gdmFfaGlnaDsgXAorICAgICAgICAgICAgTE9HX1ZUQ01fQllURSh2YSAr IGkwLCBsb2dfYnl0ZSwgSU5DLiB1Yls0ICogSURYICsgaTBdLCBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgIDQgKiBJRFggKyBpMCk7IFwKKyAgICAgICAgfSBcCisgICAgfSB3aGlsZSAoMCkK KyNkZWZpbmUgZlZMT0dfVlRDTV9IQUxGV09SRF9JTkNSRU1FTlQoRUEsIE9GRlNFVCwgSU5DLCBJ RFgsIEFMSUdOTUVOVCwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIGludCBsb2dfYnl0ZSA9 IDA7IFwKKyAgICAgICAgdGFyZ2V0X3Vsb25nIHZhID0gRUE7IFwKKyAgICAgICAgdGFyZ2V0X3Vs b25nIHZhX2hpZ2ggPSBFQSArIExFTjsgXAorICAgICAgICBmb3IgKGludCBpMCA9IDA7IGkwIDwg MjsgaTArKykgeyBcCisgICAgICAgICAgICBsb2dfYnl0ZSA9ICh2YSArIGkwKSA8PSB2YV9oaWdo OyBcCisgICAgICAgICAgICBMT0dfVlRDTV9CWVRFKHZhICsgaTAsIGxvZ19ieXRlLCBJTkMudWJb MiAqIElEWCArIGkwXSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAyICogSURYICsgaTAp OyBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgZlZMT0dfVlRDTV9I QUxGV09SRF9JTkNSRU1FTlRfRFYoRUEsIE9GRlNFVCwgSU5DLCBJRFgsIElEWDIsIElEWF9ILCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMSUdOTUVOVCwgTEVO KSBcCisgICAgZG8geyBcCisgICAgICAgIGludCBsb2dfYnl0ZSA9IDA7IFwKKyAgICAgICAgdGFy Z2V0X3Vsb25nIHZhID0gRUE7IFwKKyAgICAgICAgdGFyZ2V0X3Vsb25nIHZhX2hpZ2ggPSBFQSAr IExFTjsgXAorICAgICAgICBmb3IgKGludCBpMCA9IDA7IGkwIDwgMjsgaTArKykgeyBcCisgICAg ICAgICAgICBsb2dfYnl0ZSA9ICh2YSArIGkwKSA8PSB2YV9oaWdoOyBcCisgICAgICAgICAgICBM T0dfVlRDTV9CWVRFKHZhICsgaTAsIGxvZ19ieXRlLCBJTkMudWJbMiAqIElEWCArIGkwXSwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAyICogSURYICsgaTApOyBcCisgICAgICAgIH0gXAor ICAgIH0gd2hpbGUgKDApCisKKy8qIE5PVEUgLSBXaWxsIHRoaXMgYWx3YXlzIGJlIHRtcF9WUmVn c1swXTsgKi8KKyNkZWZpbmUgR0FUSEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCBF TEVNRU5UX1NJWkUsIEJBTktfSURYLCBRVkFMKSBcCisgICAgZG8geyBcCisgICAgICAgIGludCBp MDsgXAorICAgICAgICB0YXJnZXRfdWxvbmcgdmEgPSBFQTsgXAorICAgICAgICB0YXJnZXRfdWxv bmcgdmFfaGlnaCA9IEVBICsgTEVOOyBcCisgICAgICAgIHVpbnRwdHJfdCByYSA9IEdFVFBDKCk7 IFwKKyAgICAgICAgaW50IGxvZ19iYW5rID0gMDsgXAorICAgICAgICBpbnQgbG9nX2J5dGUgPSAw OyBcCisgICAgICAgIGZvciAoaTAgPSAwOyBpMCA8IEVMRU1FTlRfU0laRTsgaTArKykgeyBcCisg ICAgICAgICAgICBsb2dfYnl0ZSA9ICgodmEgKyBpMCkgPD0gdmFfaGlnaCkgJiYgUVZBTDsgXAor ICAgICAgICAgICAgbG9nX2JhbmsgfD0gKGxvZ19ieXRlIDw8IGkwKTsgXAorICAgICAgICAgICAg dWludDhfdCBCOyBcCisgICAgICAgICAgICBCID0gY3B1X2xkdWJfZGF0YV9yYShlbnYsIEVBICsg aTAsIHJhKTsgXAorICAgICAgICAgICAgZW52LT50bXBfVlJlZ3NbMF0udWJbRUxFTUVOVF9TSVpF ICogSURYICsgaTBdID0gQjsgXAorICAgICAgICAgICAgTE9HX1ZUQ01fQllURSh2YSArIGkwLCBs b2dfYnl0ZSwgQiwgRUxFTUVOVF9TSVpFICogSURYICsgaTApOyBcCisgICAgICAgIH0gXAorICAg IH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fR0FUSEVSX1dPUkQoRUEsIE9GRlNFVCwg SURYLCBMRU4pIFwKKyAgICBkbyB7IFwKKyAgICAgICAgR0FUSEVSX0ZVTkNUSU9OKEVBLCBPRkZT RVQsIElEWCwgTEVOLCA0LCBJRFgsIDEpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlZM T0dfVlRDTV9HQVRIRVJfSEFMRldPUkQoRUEsIE9GRlNFVCwgSURYLCBMRU4pIFwKKyAgICBkbyB7 IFwKKyAgICAgICAgR0FUSEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCAyLCBJRFgs IDEpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlZMT0dfVlRDTV9HQVRIRVJfSEFMRldP UkRfRFYoRUEsIE9GRlNFVCwgSURYLCBJRFgyLCBJRFhfSCwgTEVOKSBcCisgICAgZG8geyBcCisg ICAgICAgIEdBVEhFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJRFgsIExFTiwgMiwgKDIgKiBJRFgy ICsgSURYX0gpLCAxKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fR0FU SEVSX1dPUkRRKEVBLCBPRkZTRVQsIElEWCwgUSwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAg IEdBVEhFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJRFgsIExFTiwgNCwgSURYLCBcCisgICAgICAg ICAgICAgICAgICAgICAgICBmR0VUUUJJVChRc1YsIDQgKiBJRFggKyBpMCkpOyBcCisgICAgfSB3 aGlsZSAoMCkKKyNkZWZpbmUgZlZMT0dfVlRDTV9HQVRIRVJfSEFMRldPUkRRKEVBLCBPRkZTRVQs IElEWCwgUSwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIEdBVEhFUl9GVU5DVElPTihFQSwg T0ZGU0VULCBJRFgsIExFTiwgMiwgSURYLCBcCisgICAgICAgICAgICAgICAgICAgICAgICBmR0VU UUJJVChRc1YsIDIgKiBJRFggKyBpMCkpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZlZM T0dfVlRDTV9HQVRIRVJfSEFMRldPUkRRX0RWKEVBLCBPRkZTRVQsIElEWCwgSURYMiwgSURYX0gs IFEsIExFTikgXAorICAgIGRvIHsgXAorICAgICAgICBHQVRIRVJfRlVOQ1RJT04oRUEsIE9GRlNF VCwgSURYLCBMRU4sIDIsICgyICogSURYMiArIElEWF9IKSwgXAorICAgICAgICAgICAgICAgICAg ICAgICAgZkdFVFFCSVQoUXNWLCAyICogSURYICsgaTApKTsgXAorICAgIH0gd2hpbGUgKDApCisj ZGVmaW5lIFNDQVRURVJfT1BfV1JJVEVfVE9fTUVNKFRZUEUpIFwKKyAgICBkbyB7IFwKKyAgICAg ICAgdWludHB0cl90IHJhID0gR0VUUEMoKTsgXAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IHNpemVvZihNTVZlY3Rvcik7IGkgKz0gc2l6ZW9mKFRZUEUpKSB7IFwKKyAgICAgICAgICAgIGlm ICh0ZXN0X2JpdChpLCBlbnYtPnZ0Y21fbG9nLm1hc2spKSB7IFwKKyAgICAgICAgICAgICAgICBU WVBFIGRzdCA9IDA7IFwKKyAgICAgICAgICAgICAgICBUWVBFIGluYyA9IDA7IFwKKyAgICAgICAg ICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemVvZihUWVBFKTsgaisrKSB7IFwKKyAgICAg ICAgICAgICAgICAgICAgdWludDhfdCB2YWw7IFwKKyAgICAgICAgICAgICAgICAgICAgdmFsID0g Y3B1X2xkdWJfZGF0YV9yYShlbnYsIGVudi0+dnRjbV9sb2cudmFbaSArIGpdLCByYSk7IFwKKyAg ICAgICAgICAgICAgICAgICAgZHN0IHw9IHZhbCA8PCAoOCAqIGopOyBcCisgICAgICAgICAgICAg ICAgICAgIGluYyB8PSBlbnYtPnZ0Y21fbG9nLmRhdGEudWJbaiArIGldIDw8ICg4ICogaik7IFwK KyAgICAgICAgICAgICAgICAgICAgY2xlYXJfYml0KGogKyBpLCBlbnYtPnZ0Y21fbG9nLm1hc2sp OyBcCisgICAgICAgICAgICAgICAgICAgIGVudi0+dnRjbV9sb2cuZGF0YS51YltqICsgaV0gPSAw OyBcCisgICAgICAgICAgICAgICAgfSBcCisgICAgICAgICAgICAgICAgZHN0ICs9IGluYzsgXAor ICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZW9mKFRZUEUpOyBqKyspIHsg XAorICAgICAgICAgICAgICAgICAgICBjcHVfc3RiX2RhdGFfcmEoZW52LCBlbnYtPnZ0Y21fbG9n LnZhW2kgKyBqXSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRzdCA+ PiAoOCAqIGopKSAmIDB4RkYsIHJhKTsgXAorICAgICAgICAgICAgICAgIH0gXAorICAgICAgICAg ICAgfSBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIFNDQVRURVJfT1Bf UFJPQkVfTUVNKFRZUEUsIE1NVV9JRFgsIFJFVEFERFIpIFwKKyAgICBkbyB7IFwKKyAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBzaXplb2YoTU1WZWN0b3IpOyBpICs9IHNpemVvZihUWVBFKSkg eyBcCisgICAgICAgICAgICBpZiAodGVzdF9iaXQoaSwgZW52LT52dGNtX2xvZy5tYXNrKSkgeyBc CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzaXplb2YoVFlQRSk7IGorKykg eyBcCisgICAgICAgICAgICAgICAgICAgIHByb2JlX3JlYWQoZW52LCBlbnYtPnZ0Y21fbG9nLnZh W2kgKyBqXSwgMSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NVV9JRFgsIFJF VEFERFIpOyBcCisgICAgICAgICAgICAgICAgICAgIHByb2JlX3dyaXRlKGVudiwgZW52LT52dGNt X2xvZy52YVtpICsgal0sIDEsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1V X0lEWCwgUkVUQUREUik7IFwKKyAgICAgICAgICAgICAgICB9IFwKKyAgICAgICAgICAgIH0gXAor ICAgICAgICB9IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBTQ0FUVEVSX0ZVTkNUSU9OKEVB LCBPRkZTRVQsIElEWCwgTEVOLCBFTEVNX1NJWkUsIEJBTktfSURYLCBRVkFMLCBJTikgXAorICAg IGRvIHsgXAorICAgICAgICBpbnQgaTA7IFwKKyAgICAgICAgdGFyZ2V0X3Vsb25nIHZhID0gRUE7 IFwKKyAgICAgICAgdGFyZ2V0X3Vsb25nIHZhX2hpZ2ggPSBFQSArIExFTjsgXAorICAgICAgICBp bnQgbG9nX2JhbmsgPSAwOyBcCisgICAgICAgIGludCBsb2dfYnl0ZSA9IDA7IFwKKyAgICAgICAg Zm9yIChpMCA9IDA7IGkwIDwgRUxFTV9TSVpFOyBpMCsrKSB7IFwKKyAgICAgICAgICAgIGxvZ19i eXRlID0gKCh2YSArIGkwKSA8PSB2YV9oaWdoKSAmJiBRVkFMOyBcCisgICAgICAgICAgICBsb2df YmFuayB8PSAobG9nX2J5dGUgPDwgaTApOyBcCisgICAgICAgICAgICBMT0dfVlRDTV9CWVRFKHZh ICsgaTAsIGxvZ19ieXRlLCBJTi51YltFTEVNX1NJWkUgKiBJRFggKyBpMF0sIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgRUxFTV9TSVpFICogSURYICsgaTApOyBcCisgICAgICAgIH0gXAor ICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fSEFMRldPUkQoRUEsIE9GRlNFVCwg SU4sIElEWCwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIFNDQVRURVJfRlVOQ1RJT04oRUEs IE9GRlNFVCwgSURYLCBMRU4sIDIsIElEWCwgMSwgSU4pOyBcCisgICAgfSB3aGlsZSAoMCkKKyNk ZWZpbmUgZlZMT0dfVlRDTV9XT1JEKEVBLCBPRkZTRVQsIElOLCBJRFgsIExFTikgXAorICAgIGRv IHsgXAorICAgICAgICBTQ0FUVEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCA0LCBJ RFgsIDEsIElOKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fSEFMRldP UkRRKEVBLCBPRkZTRVQsIElOLCBJRFgsIFEsIExFTikgXAorICAgIGRvIHsgXAorICAgICAgICBT Q0FUVEVSX0ZVTkNUSU9OKEVBLCBPRkZTRVQsIElEWCwgTEVOLCAyLCBJRFgsIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBmR0VUUUJJVChRc1YsIDIgKiBJRFggKyBpMCksIElOKTsgXAorICAg IH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fV09SRFEoRUEsIE9GRlNFVCwgSU4sIElE WCwgUSwgTEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIFNDQVRURVJfRlVOQ1RJT04oRUEsIE9G RlNFVCwgSURYLCBMRU4sIDQsIElEWCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGZHRVRR QklUKFFzViwgNCAqIElEWCArIGkwKSwgSU4pOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUg ZlZMT0dfVlRDTV9IQUxGV09SRF9EVihFQSwgT0ZGU0VULCBJTiwgSURYLCBJRFgyLCBJRFhfSCwg TEVOKSBcCisgICAgZG8geyBcCisgICAgICAgIFNDQVRURVJfRlVOQ1RJT04oRUEsIE9GRlNFVCwg SURYLCBMRU4sIDIsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMiAqIElEWDIgKyBJRFhf SCksIDEsIElOKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGZWTE9HX1ZUQ01fSEFMRldP UkRRX0RWKEVBLCBPRkZTRVQsIElOLCBJRFgsIFEsIElEWDIsIElEWF9ILCBMRU4pIFwKKyAgICBk byB7IFwKKyAgICAgICAgU0NBVFRFUl9GVU5DVElPTihFQSwgT0ZGU0VULCBJRFgsIExFTiwgMiwg KDIgKiBJRFgyICsgSURYX0gpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgZkdFVFFCSVQo UXNWLCAyICogSURYICsgaTApLCBJTik7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBmU1RP UkVSRUxFQVNFKEVBLCBUWVBFKSBcCisgICAgZG8geyBcCisgICAgICAgIGZWX0FMX0NIRUNLKEVB LCBmVkVDU0laRSgpIC0gMSk7IFwKKyAgICB9IHdoaWxlICgwKQorI2lmZGVmIFFFTVVfR0VORVJB VEUKKyNkZWZpbmUgZkxPQURNTVYoRUEsIERTVCkgZ2VuX3ZyZWdfbG9hZChjdHgsIERTVCMjX29m ZiwgRUEsIHRydWUpCisjZW5kaWYKKyNpZmRlZiBRRU1VX0dFTkVSQVRFCisjZGVmaW5lIGZMT0FE TU1WVShFQSwgRFNUKSBnZW5fdnJlZ19sb2FkKGN0eCwgRFNUIyNfb2ZmLCBFQSwgZmFsc2UpCisj ZW5kaWYKKyNpZmRlZiBRRU1VX0dFTkVSQVRFCisjZGVmaW5lIGZTVE9SRU1NVihFQSwgU1JDKSBc CisgICAgZ2VuX3ZyZWdfc3RvcmUoY3R4LCBpbnNuLCBwa3QsIEVBLCBTUkMjI19vZmYsIGluc24t PnNsb3QsIHRydWUpCisjZW5kaWYKKyNpZmRlZiBRRU1VX0dFTkVSQVRFCisjZGVmaW5lIGZTVE9S RU1NVlEoRUEsIFNSQywgTUFTSykgXAorICAgIGdlbl92cmVnX21hc2tlZF9zdG9yZShjdHgsIEVB LCBTUkMjI19vZmYsIE1BU0sjI19vZmYsIGluc24tPnNsb3QsIGZhbHNlKQorI2VuZGlmCisjaWZk ZWYgUUVNVV9HRU5FUkFURQorI2RlZmluZSBmU1RPUkVNTVZOUShFQSwgU1JDLCBNQVNLKSBcCisg ICAgZ2VuX3ZyZWdfbWFza2VkX3N0b3JlKGN0eCwgRUEsIFNSQyMjX29mZiwgTUFTSyMjX29mZiwg aW5zbi0+c2xvdCwgdHJ1ZSkKKyNlbmRpZgorI2lmZGVmIFFFTVVfR0VORVJBVEUKKyNkZWZpbmUg ZlNUT1JFTU1WVShFQSwgU1JDKSBcCisgICAgZ2VuX3ZyZWdfc3RvcmUoY3R4LCBpbnNuLCBwa3Qs IEVBLCBTUkMjI19vZmYsIGluc24tPnNsb3QsIGZhbHNlKQorI2VuZGlmCisjZGVmaW5lIGZWRk9S RUFDSChXSURUSCwgVkFSKSBmb3IgKFZBUiA9IDA7IFZBUiA8IGZWRUxFTShXSURUSCk7IFZBUisr KQorI2RlZmluZSBmVkFSUkFZX0VMRU1FTlRfQUNDRVNTKEFSUkFZLCBUWVBFLCBJTkRFWCkgXAor ICAgIEFSUkFZLnZbKElOREVYKSAvIChmVkVDU0laRSgpIC8gKHNpemVvZihBUlJBWS5UWVBFWzBd KSkpXS5UWVBFWyhJTkRFWCkgJSBcCisgICAgKGZWRUNTSVpFKCkgLyAoc2l6ZW9mKEFSUkFZLlRZ UEVbMF0pKSldCisKKyNkZWZpbmUgZlZTQVREVyhVLCBWKSBmVlNBVFcoKCgoKGxvbmcgbG9uZylV KSA8PCAzMikgfCBmWlhUTigzMiwgNjQsIFYpKSkKKyNkZWZpbmUgZlZBU0xfU0FUSEkoVSwgVikg ZlZTQVRXKCgoVSkgPDwgMSkgfCAoKFYpID4+IDMxKSkKKyNkZWZpbmUgZlZVQUREU0FUKFdJRFRI LCBVLCBWKSBcCisgICAgZlZTQVRVTihXSURUSCwgZlpYVE4oV0lEVEgsIDIgKiBXSURUSCwgVSkg KyBmWlhUTihXSURUSCwgMiAqIFdJRFRILCBWKSkKKyNkZWZpbmUgZlZTQUREU0FUKFdJRFRILCBV LCBWKSBcCisgICAgZlZTQVROKFdJRFRILCBmU1hUTihXSURUSCwgMiAqIFdJRFRILCBVKSArIGZT WFROKFdJRFRILCAyICogV0lEVEgsIFYpKQorI2RlZmluZSBmVlVTVUJTQVQoV0lEVEgsIFUsIFYp IFwKKyAgICBmVlNBVFVOKFdJRFRILCBmWlhUTihXSURUSCwgMiAqIFdJRFRILCBVKSAtIGZaWFRO KFdJRFRILCAyICogV0lEVEgsIFYpKQorI2RlZmluZSBmVlNTVUJTQVQoV0lEVEgsIFUsIFYpIFwK KyAgICBmVlNBVE4oV0lEVEgsIGZTWFROKFdJRFRILCAyICogV0lEVEgsIFUpIC0gZlNYVE4oV0lE VEgsIDIgKiBXSURUSCwgVikpCisjZGVmaW5lIGZWQVZHVShXSURUSCwgVSwgVikgXAorICAgICgo ZlpYVE4oV0lEVEgsIDIgKiBXSURUSCwgVSkgKyBmWlhUTihXSURUSCwgMiAqIFdJRFRILCBWKSkg Pj4gMSkKKyNkZWZpbmUgZlZBVkdVUk5EKFdJRFRILCBVLCBWKSBcCisgICAgKChmWlhUTihXSURU SCwgMiAqIFdJRFRILCBVKSArIGZaWFROKFdJRFRILCAyICogV0lEVEgsIFYpICsgMSkgPj4gMSkK KyNkZWZpbmUgZlZOQVZHVShXSURUSCwgVSwgVikgXAorICAgICgoZlpYVE4oV0lEVEgsIDIgKiBX SURUSCwgVSkgLSBmWlhUTihXSURUSCwgMiAqIFdJRFRILCBWKSkgPj4gMSkKKyNkZWZpbmUgZlZO QVZHVVJORFNBVChXSURUSCwgVSwgVikgXAorICAgIGZWU0FUVU4oV0lEVEgsICgoZlpYVE4oV0lE VEgsIDIgKiBXSURUSCwgVSkgLSBcCisgICAgICAgICAgICAgICAgICAgICBmWlhUTihXSURUSCwg MiAqIFdJRFRILCBWKSArIDEpID4+IDEpKQorI2RlZmluZSBmVkFWR1MoV0lEVEgsIFUsIFYpIFwK KyAgICAoKGZTWFROKFdJRFRILCAyICogV0lEVEgsIFUpICsgZlNYVE4oV0lEVEgsIDIgKiBXSURU SCwgVikpID4+IDEpCisjZGVmaW5lIGZWQVZHU1JORChXSURUSCwgVSwgVikgXAorICAgICgoZlNY VE4oV0lEVEgsIDIgKiBXSURUSCwgVSkgKyBmU1hUTihXSURUSCwgMiAqIFdJRFRILCBWKSArIDEp ID4+IDEpCisjZGVmaW5lIGZWTkFWR1MoV0lEVEgsIFUsIFYpIFwKKyAgICAoKGZTWFROKFdJRFRI LCAyICogV0lEVEgsIFUpIC0gZlNYVE4oV0lEVEgsIDIgKiBXSURUSCwgVikpID4+IDEpCisjZGVm aW5lIGZWTkFWR1NSTkQoV0lEVEgsIFUsIFYpIFwKKyAgICAoKGZTWFROKFdJRFRILCAyICogV0lE VEgsIFUpIC0gZlNYVE4oV0lEVEgsIDIgKiBXSURUSCwgVikgKyAxKSA+PiAxKQorI2RlZmluZSBm Vk5BVkdTUk5EU0FUKFdJRFRILCBVLCBWKSBcCisgICAgZlZTQVROKFdJRFRILCAoKGZTWFROKFdJ RFRILCAyICogV0lEVEgsIFUpIC0gXAorICAgICAgICAgICAgICAgICAgICBmU1hUTihXSURUSCwg MiAqIFdJRFRILCBWKSArIDEpID4+IDEpKQorI2RlZmluZSBmVk5PUk9VTkQoVkFMLCBTSEFNVCkg VkFMCisjZGVmaW5lIGZWTk9TQVQoVkFMKSBWQUwKKyNkZWZpbmUgZlZST1VORChWQUwsIFNIQU1U KSBcCisgICAgKChWQUwpICsgKCgoU0hBTVQpID4gMCkgPyAoMUxMIDw8ICgoU0hBTVQpIC0gMSkp IDogMCkpCisjZGVmaW5lIGZDQVJSWV9GUk9NX0FERDMyKEEsIEIsIEMpIFwKKyAgICAoKChmWlhU TigzMiwgNjQsIEEpICsgZlpYVE4oMzIsIDY0LCBCKSArIEMpID4+IDMyKSAmIDEpCisjZGVmaW5l IGZVQVJDSF9OT1RFX1BVTVBfNFgoKQorI2RlZmluZSBmVUFSQ0hfTk9URV9QVU1QXzJYKCkKKwor I2RlZmluZSBJVjFERUFEKCkKKyNlbmRpZgotLSAKMi43LjQKCg==