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 X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A1BBC43460 for ; Thu, 6 May 2021 18:58:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 B731361164 for ; Thu, 6 May 2021 18:58:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B731361164 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D19066EDBC; Thu, 6 May 2021 18:57:19 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id EB0046ECED; Thu, 6 May 2021 18:57:11 +0000 (UTC) IronPort-SDR: ercXXhNNwZzXpojjaCRYfqkwZuTBnZxzi/U24Ygq1kRDqwWd8wlUVO6LJU8a+8WPIfhS+ABW2d GpnBiHGS+ulQ== X-IronPort-AV: E=McAfee;i="6200,9189,9976"; a="198195429" X-IronPort-AV: E=Sophos;i="5.82,278,1613462400"; d="scan'208";a="198195429" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2021 11:57:10 -0700 IronPort-SDR: 2wZ1lIll7KHUtCTV0HHD9UXK4xOvJm8fwtz0/FYvh3HOJSivSwIws08MU90G/Hq42AJUug5ulT a1O2sMln9Atg== X-IronPort-AV: E=Sophos;i="5.82,278,1613462400"; d="scan'208";a="469583380" Received: from dhiatt-server.jf.intel.com ([10.54.81.3]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2021 11:57:08 -0700 From: Matthew Brost To: , Date: Thu, 6 May 2021 12:13:22 -0700 Message-Id: <20210506191451.77768-9-matthew.brost@intel.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210506191451.77768-1-matthew.brost@intel.com> References: <20210506191451.77768-1-matthew.brost@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [RFC PATCH 08/97] drm/i915/guc: Keep strict GuC ABI definitions X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jason.ekstrand@intel.com, daniel.vetter@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CgpPdXIg ZndpZi5oIGZpbGUgaXMgbm93IG1peCBvZiBzdHJpY3QgZmlybXdhcmUgQUJJIGRlZmluaXRpb25z IGFuZApzZXQgb2Ygb3VyIGhlbHBlcnMuIEluIGFudGljaXBhdGlvbiBvZiB1cGNvbWluZyBjaGFu Z2VzIHRvIHRoZSBHdUMKaW50ZXJmYWNlIHRyeSB0byBrZWVwIHRoZW0gc2VwYXJhdGUgaW4gc21h bGxlciBtYWludGFpbmFibGUgZmlsZXMuCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgV2FqZGVjemtv IDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dGhldyBCcm9z dCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+CkNjOiBNaWNoYcWCIFdpbmlhcnNraSA8bWljaGFs LndpbmlhcnNraUBpbnRlbC5jb20+Ci0tLQogLi4uL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3Vj X2FjdGlvbnNfYWJpLmggIHwgIDUxICsrKysrCiAuLi4vZ3QvdWMvYWJpL2d1Y19jb21tdW5pY2F0 aW9uX2N0Yl9hYmkuaCAgICAgfCAxMDYgKysrKysrKysrCiAuLi4vZ3QvdWMvYWJpL2d1Y19jb21t dW5pY2F0aW9uX21taW9fYWJpLmggICAgfCAgNTIgKysrKysKIC4uLi9ncHUvZHJtL2k5MTUvZ3Qv dWMvYWJpL2d1Y19lcnJvcnNfYWJpLmggICB8ICAxNCArKwogLi4uL2dwdS9kcm0vaTkxNS9ndC91 Yy9hYmkvZ3VjX21lc3NhZ2VzX2FiaS5oIHwgIDIxICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9pbnRlbF9ndWNfZndpZi5oICAgfCAyMDMgKy0tLS0tLS0tLS0tLS0tLS0tCiA2IGZpbGVz IGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspLCAxOTcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19hY3Rpb25zX2FiaS5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19j b21tdW5pY2F0aW9uX2N0Yl9hYmkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJvcnNfYWJpLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX21l c3NhZ2VzX2FiaS5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJp L2d1Y19hY3Rpb25zX2FiaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19h Y3Rpb25zX2FiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTBl ZmVmOGE3M2U0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv YWJpL2d1Y19hY3Rpb25zX2FiaS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDIxIEludGVsIENv cnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfQUJJX0dVQ19BQ1RJT05TX0FCSV9ICisjZGVmaW5l IF9BQklfR1VDX0FDVElPTlNfQUJJX0gKKworZW51bSBpbnRlbF9ndWNfYWN0aW9uIHsKKwlJTlRF TF9HVUNfQUNUSU9OX0RFRkFVTFQgPSAweDAsCisJSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX1BS RUVNUFRJT04gPSAweDIsCisJSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX0VOR0lORV9SRVNFVCA9 IDB4MywKKwlJTlRFTF9HVUNfQUNUSU9OX0FMTE9DQVRFX0RPT1JCRUxMID0gMHgxMCwKKwlJTlRF TF9HVUNfQUNUSU9OX0RFQUxMT0NBVEVfRE9PUkJFTEwgPSAweDIwLAorCUlOVEVMX0dVQ19BQ1RJ T05fTE9HX0JVRkZFUl9GSUxFX0ZMVVNIX0NPTVBMRVRFID0gMHgzMCwKKwlJTlRFTF9HVUNfQUNU SU9OX1VLX0xPR19FTkFCTEVfTE9HR0lORyA9IDB4NDAsCisJSU5URUxfR1VDX0FDVElPTl9GT1JD RV9MT0dfQlVGRkVSX0ZMVVNIID0gMHgzMDIsCisJSU5URUxfR1VDX0FDVElPTl9FTlRFUl9TX1NU QVRFID0gMHg1MDEsCisJSU5URUxfR1VDX0FDVElPTl9FWElUX1NfU1RBVEUgPSAweDUwMiwKKwlJ TlRFTF9HVUNfQUNUSU9OX1NMUENfUkVRVUVTVCA9IDB4MzAwMywKKwlJTlRFTF9HVUNfQUNUSU9O X0FVVEhFTlRJQ0FURV9IVUMgPSAweDQwMDAsCisJSU5URUxfR1VDX0FDVElPTl9SRUdJU1RFUl9D T01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1MDUsCisJSU5URUxfR1VDX0FDVElPTl9ERVJF R0lTVEVSX0NPTU1BTkRfVFJBTlNQT1JUX0JVRkZFUiA9IDB4NDUwNiwKKwlJTlRFTF9HVUNfQUNU SU9OX0xJTUlUCit9OworCitlbnVtIGludGVsX2d1Y19wcmVlbXB0X29wdGlvbnMgeworCUlOVEVM X0dVQ19QUkVFTVBUX09QVElPTl9EUk9QX1dPUktfUSA9IDB4NCwKKwlJTlRFTF9HVUNfUFJFRU1Q VF9PUFRJT05fRFJPUF9TVUJNSVRfUSA9IDB4OCwKK307CisKK2VudW0gaW50ZWxfZ3VjX3JlcG9y dF9zdGF0dXMgeworCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX1VOS05PV04gPSAweDAsCisJSU5U RUxfR1VDX1JFUE9SVF9TVEFUVVNfQUNLRUQgPSAweDEsCisJSU5URUxfR1VDX1JFUE9SVF9TVEFU VVNfRVJST1IgPSAweDIsCisJSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNfQ09NUExFVEUgPSAweDQs Cit9OworCitlbnVtIGludGVsX2d1Y19zbGVlcF9zdGF0ZV9zdGF0dXMgeworCUlOVEVMX0dVQ19T TEVFUF9TVEFURV9TVUNDRVNTID0gMHgxLAorCUlOVEVMX0dVQ19TTEVFUF9TVEFURV9QUkVFTVBU X1RPX0lETEVfRkFJTEVEID0gMHgyLAorCUlOVEVMX0dVQ19TTEVFUF9TVEFURV9FTkdJTkVfUkVT RVRfRkFJTEVEID0gMHgzCisjZGVmaW5lIElOVEVMX0dVQ19TTEVFUF9TVEFURV9JTlZBTElEX01B U0sgMHg4MDAwMDAwMAorfTsKKworI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfTE9HR0lOR19FTkFC TEVECSgxIDw8IDApCisjZGVmaW5lIEdVQ19MT0dfQ09OVFJPTF9WRVJCT1NJVFlfU0hJRlQJNAor I2RlZmluZSBHVUNfTE9HX0NPTlRST0xfVkVSQk9TSVRZX01BU0sJKDB4RiA8PCBHVUNfTE9HX0NP TlRST0xfVkVSQk9TSVRZX1NISUZUKQorI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfREVGQVVMVF9M T0dHSU5HCSgxIDw8IDgpCisKKyNlbmRpZiAvKiBfQUJJX0dVQ19BQ1RJT05TX0FCSV9IICovCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2NvbW11bmljYXRp b25fY3RiX2FiaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19jb21tdW5p Y2F0aW9uX2N0Yl9hYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmViZDhjM2UwZTRiYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9jdGJfYWJpLmgKQEAgLTAsMCArMSwxMDYgQEAKKy8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAx NC0yMDIxIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfQUJJX0dVQ19DT01NVU5J Q0FUSU9OX0NUQl9BQklfSAorI2RlZmluZSBfQUJJX0dVQ19DT01NVU5JQ0FUSU9OX0NUQl9BQklf SAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoqCisgKiBET0M6IENUQiBiYXNlZCBj b21tdW5pY2F0aW9uCisgKgorICogVGhlIENUQiAoY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyKSBj b21tdW5pY2F0aW9uIGJldHdlZW4gSG9zdCBhbmQgR3VDCisgKiBpcyBiYXNlZCBvbiB1MzIgZGF0 YSBzdHJlYW0gd3JpdHRlbiB0byB0aGUgc2hhcmVkIGJ1ZmZlci4gT25lIGJ1ZmZlciBjYW4KKyAq IGJlIHVzZWQgdG8gdHJhbnNtaXQgZGF0YSBvbmx5IGluIG9uZSBkaXJlY3Rpb24gKG9uZS1kaXJl Y3Rpb25hbCBjaGFubmVsKS4KKyAqCisgKiBDdXJyZW50IHN0YXR1cyBvZiB0aGUgZWFjaCBidWZm ZXIgaXMgc3RvcmVkIGluIHRoZSBidWZmZXIgZGVzY3JpcHRvci4KKyAqIEJ1ZmZlciBkZXNjcmlw dG9yIGhvbGRzIHRhaWwgYW5kIGhlYWQgZmllbGRzIHRoYXQgcmVwcmVzZW50cyBhY3RpdmUgZGF0 YQorICogc3RyZWFtLiBUaGUgdGFpbCBmaWVsZCBpcyB1cGRhdGVkIGJ5IHRoZSBkYXRhIHByb2R1 Y2VyIChzZW5kZXIpLCBhbmQgaGVhZAorICogZmllbGQgaXMgdXBkYXRlZCBieSB0aGUgZGF0YSBj b25zdW1lciAocmVjZWl2ZXIpOjoKKyAqCisgKiAgICAgICstLS0tLS0tLS0tLS0rCisgKiAgICAg IHwgREVTQ1JJUFRPUiB8ICAgICAgICAgICs9PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0r PT09PT09PT0rCisgKiAgICAgICs9PT09PT09PT09PT0rICAgICAgICAgIHwgICAgICAgICAgICAg ICAgIHwgTUVTU0FHRShzKSB8ICAgICAgICB8CisgKiAgICAgIHwgYWRkcmVzcyAgICB8LS0tLS0t LS0tPis9PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rPT09PT09PT0rCisgKiAgICAgICst LS0tLS0tLS0tLS0rCisgKiAgICAgIHwgaGVhZCAgICAgICB8ICAgICAgICAgIF4tLS0tLWhlYWQt LS0tLS0tLV4KKyAqICAgICAgKy0tLS0tLS0tLS0tLSsKKyAqICAgICAgfCB0YWlsICAgICAgIHwg ICAgICAgICAgXi0tLS0tLS0tLXRhaWwtLS0tLS0tLS0tLS0tLS0tLV4KKyAqICAgICAgKy0tLS0t LS0tLS0tLSsKKyAqICAgICAgfCBzaXplICAgICAgIHwgICAgICAgICAgXi0tLS0tLS0tLS0tLS0t LXNpemUtLS0tLS0tLS0tLS0tLS0tLS0tLV4KKyAqICAgICAgKy0tLS0tLS0tLS0tLSsKKyAqCisg KiBFYWNoIG1lc3NhZ2UgaW4gZGF0YSBzdHJlYW0gc3RhcnRzIHdpdGggdGhlIHNpbmdsZSB1MzIg dHJlYXRlZCBhcyBhIGhlYWRlciwKKyAqIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHNldCBvZiB1MzIg ZGF0YSB0aGF0IG1ha2VzIG1lc3NhZ2Ugc3BlY2lmaWMgcGF5bG9hZDo6CisgKgorICogICAgICAr LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAg ICAgICAgTUVTU0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICArLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgbXNnWzBd ICAgfCAgIFsxXSAgIHwgICAuLi4gICB8ICBbbi0xXSAgfAorICogICAgICArLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgTUVTU0FHRSAgfCAg ICAgICBNRVNTQUdFIFBBWUxPQUQgICAgICAgfAorICogICAgICArICAgSEVBREVSICAgKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgICAgICAgICAgfCAgICAwICAg IHwgICAuLi4gICB8ICAgIG4gICAgfAorICogICAgICArPT09PT09Kz09PT09Kz09PT09PT09PSs9 PT09PT09PT0rPT09PT09PT09KworICogICAgICB8IDMxOjE2fCBjb2RlfCAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgfAorICogICAgICB8ICAxNTo1fGZsYWdzfCAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgfAorICogICAgICB8ICAgNDowfCAgbGVufCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t KworICoKKyAqICAgICAgICAgICAgICAgICAgIF4tLS0tLS0tLS0tLS0tbGVuLS0tLS0tLS0tLS0t LV4KKyAqCisgKiBUaGUgbWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6CisgKgorICogLSAqKmxl bioqLCBpbmRpY2F0ZXMgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIHBheWxvYWQgKGluIHUzMikKKyAq IC0gKipjb2RlKiosIGluZGljYXRlcyBtZXNzYWdlIGNvZGUKKyAqIC0gKipmbGFncyoqLCBob2xk cyB2YXJpb3VzIGJpdHMgdG8gY29udHJvbCBtZXNzYWdlIGhhbmRsaW5nCisgKi8KKworLyoKKyAq IERlc2NyaWJlcyBzaW5nbGUgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyLgorICogVXNlZCBieSBi b3RoIGd1Yy1tYXN0ZXIgYW5kIGNsaWVudHMuCisgKi8KK3N0cnVjdCBndWNfY3RfYnVmZmVyX2Rl c2MgeworCXUzMiBhZGRyOwkJLyogZ2Z4IGFkZHJlc3MgKi8KKwl1NjQgaG9zdF9wcml2YXRlOwkv KiBob3N0IHByaXZhdGUgZGF0YSAqLworCXUzMiBzaXplOwkJLyogc2l6ZSBpbiBieXRlcyAqLwor CXUzMiBoZWFkOwkJLyogb2Zmc2V0IHVwZGF0ZWQgYnkgR3VDKi8KKwl1MzIgdGFpbDsJCS8qIG9m ZnNldCB1cGRhdGVkIGJ5IG93bmVyICovCisJdTMyIGlzX2luX2Vycm9yOwkvKiBlcnJvciBpbmRp Y2F0b3IgKi8KKwl1MzIgZmVuY2U7CQkvKiBmZW5jZSB1cGRhdGVkIGJ5IEd1QyAqLworCXUzMiBz dGF0dXM7CQkvKiBzdGF0dXMgdXBkYXRlZCBieSBHdUMgKi8KKwl1MzIgb3duZXI7CQkvKiBpZCBv ZiB0aGUgY2hhbm5lbCBvd25lciAqLworCXUzMiBvd25lcl9zdWJfaWQ7CS8qIG93bmVyLWRlZmlu ZWQgZmllbGQgZm9yIGV4dHJhIHRyYWNraW5nICovCisJdTMyIHJlc2VydmVkWzVdOworfSBfX3Bh Y2tlZDsKKworLyogVHlwZSBvZiBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIgKi8KKyNkZWZpbmUg SU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1NFTkQJMHgwdQorI2RlZmluZSBJTlRFTF9HVUNfQ1Rf QlVGRkVSX1RZUEVfUkVDVgkweDF1CisKKy8qCisgKiBEZWZpbml0aW9uIG9mIHRoZSBjb21tYW5k IHRyYW5zcG9ydCBtZXNzYWdlIGhlYWRlciAoRFcwKQorICoKKyAqIGJpdFs0Li4wXQltZXNzYWdl IGxlbiAoaW4gZHdvcmRzKQorICogYml0WzcuLjVdCXJlc2VydmVkCisgKiBiaXRbOF0JcmVzcG9u c2UgKEcySCBvbmx5KQorICogYml0WzhdCXdyaXRlIGZlbmNlIHRvIGRlc2MgKEgyRyBvbmx5KQor ICogYml0WzldCXdyaXRlIHN0YXR1cyB0byBIMkcgYnVmZiAoSDJHIG9ubHkpCisgKiBiaXRbMTBd CXNlbmQgc3RhdHVzIGJhY2sgdmlhIEcySCAoSDJHIG9ubHkpCisgKiBiaXRbMTUuLjExXQlyZXNl cnZlZAorICogYml0WzMxLi4xNl0JYWN0aW9uIGNvZGUKKyAqLworI2RlZmluZSBHVUNfQ1RfTVNH X0xFTl9TSElGVAkJCTAKKyNkZWZpbmUgR1VDX0NUX01TR19MRU5fTUFTSwkJCTB4MUYKKyNkZWZp bmUgR1VDX0NUX01TR19JU19SRVNQT05TRQkJCSgxIDw8IDgpCisjZGVmaW5lIEdVQ19DVF9NU0df V1JJVEVfRkVOQ0VfVE9fREVTQwkJKDEgPDwgOCkKKyNkZWZpbmUgR1VDX0NUX01TR19XUklURV9T VEFUVVNfVE9fQlVGRgkJKDEgPDwgOSkKKyNkZWZpbmUgR1VDX0NUX01TR19TRU5EX1NUQVRVUwkJ CSgxIDw8IDEwKQorI2RlZmluZSBHVUNfQ1RfTVNHX0FDVElPTl9TSElGVAkJCTE2CisjZGVmaW5l IEdVQ19DVF9NU0dfQUNUSU9OX01BU0sJCQkweEZGRkYKKworI2VuZGlmIC8qIF9BQklfR1VDX0NP TU1VTklDQVRJT05fQ1RCX0FCSV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9hYmkvZ3VjX2NvbW11bmljYXRpb25fbW1pb19hYmkuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmUwNjZhNjJlOWUwCi0tLSAvZGV2L251bGwK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19jb21tdW5pY2F0aW9uX21t aW9fYWJpLmgKQEAgLTAsMCArMSw1MiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1J VCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9yYXRpb24KKyAq LworCisjaWZuZGVmIF9BQklfR1VDX0NPTU1VTklDQVRJT05fTU1JT19BQklfSAorI2RlZmluZSBf QUJJX0dVQ19DT01NVU5JQ0FUSU9OX01NSU9fQUJJX0gKKworLyoqCisgKiBET0M6IE1NSU8gYmFz ZWQgY29tbXVuaWNhdGlvbgorICoKKyAqIFRoZSBNTUlPIGJhc2VkIGNvbW11bmljYXRpb24gYmV0 d2VlbiBIb3N0IGFuZCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoCisgKiByZWdpc3RlcnMsIHdo ZXJlIGZpcnN0IHJlZ2lzdGVyIGhvbGRzIGRhdGEgdHJlYXRlZCBhcyBtZXNzYWdlIGhlYWRlciwK KyAqIGFuZCBvdGhlciByZWdpc3RlcnMgYXJlIHVzZWQgdG8gaG9sZCBtZXNzYWdlIHBheWxvYWQu CisgKgorICogRm9yIEdlbjkrLCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoIHJlZ2lzdGVycyAw eEMxODAtMHhDMUI4LAorICogYnV0IG5vIEgyRyBjb21tYW5kIHRha2VzIG1vcmUgdGhhbiA4IHBh cmFtZXRlcnMgYW5kIHRoZSBHdUMgRlcKKyAqIGl0c2VsZiB1c2VzIGFuIDgtZWxlbWVudCBhcnJh eSB0byBzdG9yZSB0aGUgSDJHIG1lc3NhZ2UuCisgKgorICogICAgICArLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgIE1NSU9bMF0gIHwgTU1JT1sx XSB8ICAgLi4uICAgfCBNTUlPW25dIHwKKyAqICAgICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8IGhlYWRlciAgICB8ICAgICAgb3B0aW9uYWwg cGF5bG9hZCAgICAgICB8CisgKiAgICAgICs9PT09PT0rPT09PSs9PT09PT09PT0rPT09PT09PT09 Kz09PT09PT09PSsKKyAqICAgICAgfCAzMToyOHx0eXBlfCAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICB8CisgKiAgICAgIHwgMjc6MTZ8ZGF0YXwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwK KyAqICAgICAgKy0tLS0tLSstLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAorICog ICAgICB8ICAxNTowfGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8CisgKiAgICAg ICstLS0tLS0rLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAqCisgKiBUaGUg bWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6CisgKgorICogLSAqKnR5cGUqKiwgaW5kaWNhdGVz IG1lc3NhZ2UgdHlwZQorICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgY29kZSwgaXMg c3BlY2lmaWMgZm9yICoqdHlwZSoqCisgKiAtICoqZGF0YSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBk YXRhLCBvcHRpb25hbCwgZGVwZW5kcyBvbiAqKmNvZGUqKgorICoKKyAqIFRoZSBmb2xsb3dpbmcg bWVzc2FnZSAqKnR5cGVzKiogYXJlIHN1cHBvcnRlZDoKKyAqCisgKiAtICoqUkVRVUVTVCoqLCBp bmRpY2F0ZXMgSG9zdC10by1HdUMgcmVxdWVzdCwgcmVxdWVzdGVkIEd1QyBhY3Rpb24gY29kZQor ICogICBtdXN0IGJlIHByaW92aWRlZCBpbiAqKmNvZGUqKiBmaWVsZC4gT3B0aW9uYWwgYWN0aW9u IHNwZWNpZmljIHBhcmFtZXRlcnMKKyAqICAgY2FuIGJlIHByb3ZpZGVkIGluIHJlbWFpbmluZyBw YXlsb2FkIHJlZ2lzdGVycyBvciAqKmRhdGEqKiBmaWVsZC4KKyAqCisgKiAtICoqUkVTUE9OU0Uq KiwgaW5kaWNhdGVzIEd1Qy10by1Ib3N0IHJlc3BvbnNlIGZyb20gZWFybGllciBHdUMgcmVxdWVz dCwKKyAqICAgYWN0aW9uIHJlc3BvbnNlIHN0YXR1cyB3aWxsIGJlIHByb3ZpZGVkIGluICoqY29k ZSoqIGZpZWxkLiBPcHRpb25hbAorICogICByZXNwb25zZSBkYXRhIGNhbiBiZSByZXR1cm5lZCBp biByZW1haW5pbmcgcGF5bG9hZCByZWdpc3RlcnMgb3IgKipkYXRhKioKKyAqICAgZmllbGQuCisg Ki8KKworI2RlZmluZSBHVUNfTUFYX01NSU9fTVNHX0xFTgkJOAorCisjZW5kaWYgLyogX0FCSV9H VUNfQ09NTVVOSUNBVElPTl9NTUlPX0FCSV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Vycm9yc19hYmkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2FiaS9ndWNfZXJyb3JzX2FiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNDg4YjYwNjFlZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJvcnNfYWJpLmgKQEAgLTAsMCArMSwxNCBAQAorLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0 LTIwMjEgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9BQklfR1VDX0VSUk9SU19B QklfSAorI2RlZmluZSBfQUJJX0dVQ19FUlJPUlNfQUJJX0gKKworZW51bSBpbnRlbF9ndWNfcmVz cG9uc2Vfc3RhdHVzIHsKKwlJTlRFTF9HVUNfUkVTUE9OU0VfU1RBVFVTX1NVQ0NFU1MgPSAweDAs CisJSU5URUxfR1VDX1JFU1BPTlNFX1NUQVRVU19HRU5FUklDX0ZBSUwgPSAweEYwMDAsCit9Owor CisjZW5kaWYgLyogX0FCSV9HVUNfRVJST1JTX0FCSV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX21lc3NhZ2VzX2FiaS5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19tZXNzYWdlc19hYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjc3NWUyMWYzMDU4YwotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfbWVzc2FnZXNfYWJpLmgKQEAgLTAsMCAr MSwyMSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHly aWdodCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9BQklf R1VDX01FU1NBR0VTX0FCSV9ICisjZGVmaW5lIF9BQklfR1VDX01FU1NBR0VTX0FCSV9ICisKKyNk ZWZpbmUgSU5URUxfR1VDX01TR19UWVBFX1NISUZUCTI4CisjZGVmaW5lIElOVEVMX0dVQ19NU0df VFlQRV9NQVNLCQkoMHhGIDw8IElOVEVMX0dVQ19NU0dfVFlQRV9TSElGVCkKKyNkZWZpbmUgSU5U RUxfR1VDX01TR19EQVRBX1NISUZUCTE2CisjZGVmaW5lIElOVEVMX0dVQ19NU0dfREFUQV9NQVNL CQkoMHhGRkYgPDwgSU5URUxfR1VDX01TR19EQVRBX1NISUZUKQorI2RlZmluZSBJTlRFTF9HVUNf TVNHX0NPREVfU0hJRlQJMAorI2RlZmluZSBJTlRFTF9HVUNfTVNHX0NPREVfTUFTSwkJKDB4RkZG RiA8PCBJTlRFTF9HVUNfTVNHX0NPREVfU0hJRlQpCisKK2VudW0gaW50ZWxfZ3VjX21zZ190eXBl IHsKKwlJTlRFTF9HVUNfTVNHX1RZUEVfUkVRVUVTVCA9IDB4MCwKKwlJTlRFTF9HVUNfTVNHX1RZ UEVfUkVTUE9OU0UgPSAweEYsCit9OworCisjZW5kaWYgLyogX0FCSV9HVUNfTUVTU0FHRVNfQUJJ X0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19m d2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oCmluZGV4 IDBmOWFmY2RlMWQwYi4uOWJmMzUyNDBlNzIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2ludGVsX2d1Y19md2lmLmgKQEAgLTEwLDYgKzEwLDEyIEBACiAjaW5jbHVkZSA8bGludXgv Y29tcGlsZXIuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCisjaW5jbHVkZSAiYWJpL2d1 Y19hY3Rpb25zX2FiaS5oIgorI2luY2x1ZGUgImFiaS9ndWNfZXJyb3JzX2FiaS5oIgorI2luY2x1 ZGUgImFiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oIgorI2luY2x1ZGUgImFiaS9ndWNf Y29tbXVuaWNhdGlvbl9jdGJfYWJpLmgiCisjaW5jbHVkZSAiYWJpL2d1Y19tZXNzYWdlc19hYmku aCIKKwogI2RlZmluZSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdICTAKICNkZWZpbmUgR1VD X0NMSUVOVF9QUklPUklUWV9ISUdICTEKICNkZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9LTURf Tk9STUFMCTIKQEAgLTIwNywxMDEgKzIxMyw2IEBAIHN0cnVjdCBndWNfc3RhZ2VfZGVzYyB7CiAJ dTY0IGRlc2NfcHJpdmF0ZTsKIH0gX19wYWNrZWQ7CiAKLS8qKgotICogRE9DOiBDVEIgYmFzZWQg Y29tbXVuaWNhdGlvbgotICoKLSAqIFRoZSBDVEIgKGNvbW1hbmQgdHJhbnNwb3J0IGJ1ZmZlcikg Y29tbXVuaWNhdGlvbiBiZXR3ZWVuIEhvc3QgYW5kIEd1QwotICogaXMgYmFzZWQgb24gdTMyIGRh dGEgc3RyZWFtIHdyaXR0ZW4gdG8gdGhlIHNoYXJlZCBidWZmZXIuIE9uZSBidWZmZXIgY2FuCi0g KiBiZSB1c2VkIHRvIHRyYW5zbWl0IGRhdGEgb25seSBpbiBvbmUgZGlyZWN0aW9uIChvbmUtZGly ZWN0aW9uYWwgY2hhbm5lbCkuCi0gKgotICogQ3VycmVudCBzdGF0dXMgb2YgdGhlIGVhY2ggYnVm ZmVyIGlzIHN0b3JlZCBpbiB0aGUgYnVmZmVyIGRlc2NyaXB0b3IuCi0gKiBCdWZmZXIgZGVzY3Jp cHRvciBob2xkcyB0YWlsIGFuZCBoZWFkIGZpZWxkcyB0aGF0IHJlcHJlc2VudHMgYWN0aXZlIGRh dGEKLSAqIHN0cmVhbS4gVGhlIHRhaWwgZmllbGQgaXMgdXBkYXRlZCBieSB0aGUgZGF0YSBwcm9k dWNlciAoc2VuZGVyKSwgYW5kIGhlYWQKLSAqIGZpZWxkIGlzIHVwZGF0ZWQgYnkgdGhlIGRhdGEg Y29uc3VtZXIgKHJlY2VpdmVyKTo6Ci0gKgotICogICAgICArLS0tLS0tLS0tLS0tKwotICogICAg ICB8IERFU0NSSVBUT1IgfCAgICAgICAgICArPT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09 Kz09PT09PT09KwotICogICAgICArPT09PT09PT09PT09KyAgICAgICAgICB8ICAgICAgICAgICAg ICAgICB8IE1FU1NBR0UocykgfCAgICAgICAgfAotICogICAgICB8IGFkZHJlc3MgICAgfC0tLS0t LS0tLT4rPT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09Kz09PT09PT09KwotICogICAgICAr LS0tLS0tLS0tLS0tKwotICogICAgICB8IGhlYWQgICAgICAgfCAgICAgICAgICBeLS0tLS1oZWFk LS0tLS0tLS1eCi0gKiAgICAgICstLS0tLS0tLS0tLS0rCi0gKiAgICAgIHwgdGFpbCAgICAgICB8 ICAgICAgICAgIF4tLS0tLS0tLS10YWlsLS0tLS0tLS0tLS0tLS0tLS1eCi0gKiAgICAgICstLS0t LS0tLS0tLS0rCi0gKiAgICAgIHwgc2l6ZSAgICAgICB8ICAgICAgICAgIF4tLS0tLS0tLS0tLS0t LS1zaXplLS0tLS0tLS0tLS0tLS0tLS0tLS1eCi0gKiAgICAgICstLS0tLS0tLS0tLS0rCi0gKgot ICogRWFjaCBtZXNzYWdlIGluIGRhdGEgc3RyZWFtIHN0YXJ0cyB3aXRoIHRoZSBzaW5nbGUgdTMy IHRyZWF0ZWQgYXMgYSBoZWFkZXIsCi0gKiBmb2xsb3dlZCBieSBvcHRpb25hbCBzZXQgb2YgdTMy IGRhdGEgdGhhdCBtYWtlcyBtZXNzYWdlIHNwZWNpZmljIHBheWxvYWQ6OgotICoKLSAqICAgICAg Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAg ICAgICAgIE1FU1NBR0UgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAgICAgKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgIG1zZ1sw XSAgIHwgICBbMV0gICB8ICAgLi4uICAgfCAgW24tMV0gIHwKLSAqICAgICAgKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgIE1FU1NBR0UgIHwg ICAgICAgTUVTU0FHRSBQQVlMT0FEICAgICAgIHwKLSAqICAgICAgKyAgIEhFQURFUiAgICstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgICAgICAgICAgIHwgICAgMCAg ICB8ICAgLi4uICAgfCAgICBuICAgIHwKLSAqICAgICAgKz09PT09PSs9PT09PSs9PT09PT09PT0r PT09PT09PT09Kz09PT09PT09PSsKLSAqICAgICAgfCAzMToxNnwgY29kZXwgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSsgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgIHwKLSAqICAgICAgfCAgMTU6NXxmbGFnc3wgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSsgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgIHwKLSAqICAgICAgfCAgIDQ6MHwgIGxlbnwgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSsKLSAqCi0gKiAgICAgICAgICAgICAgICAgICBeLS0tLS0tLS0tLS0tLWxlbi0tLS0tLS0tLS0t LS1eCi0gKgotICogVGhlIG1lc3NhZ2UgaGVhZGVyIGNvbnNpc3RzIG9mOgotICoKLSAqIC0gKips ZW4qKiwgaW5kaWNhdGVzIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBwYXlsb2FkIChpbiB1MzIpCi0g KiAtICoqY29kZSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBjb2RlCi0gKiAtICoqZmxhZ3MqKiwgaG9s ZHMgdmFyaW91cyBiaXRzIHRvIGNvbnRyb2wgbWVzc2FnZSBoYW5kbGluZwotICovCi0KLS8qCi0g KiBEZXNjcmliZXMgc2luZ2xlIGNvbW1hbmQgdHJhbnNwb3J0IGJ1ZmZlci4KLSAqIFVzZWQgYnkg Ym90aCBndWMtbWFzdGVyIGFuZCBjbGllbnRzLgotICovCi1zdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9k ZXNjIHsKLQl1MzIgYWRkcjsJCS8qIGdmeCBhZGRyZXNzICovCi0JdTY0IGhvc3RfcHJpdmF0ZTsJ LyogaG9zdCBwcml2YXRlIGRhdGEgKi8KLQl1MzIgc2l6ZTsJCS8qIHNpemUgaW4gYnl0ZXMgKi8K LQl1MzIgaGVhZDsJCS8qIG9mZnNldCB1cGRhdGVkIGJ5IEd1QyovCi0JdTMyIHRhaWw7CQkvKiBv ZmZzZXQgdXBkYXRlZCBieSBvd25lciAqLwotCXUzMiBpc19pbl9lcnJvcjsJLyogZXJyb3IgaW5k aWNhdG9yICovCi0JdTMyIGZlbmNlOwkJLyogZmVuY2UgdXBkYXRlZCBieSBHdUMgKi8KLQl1MzIg c3RhdHVzOwkJLyogc3RhdHVzIHVwZGF0ZWQgYnkgR3VDICovCi0JdTMyIG93bmVyOwkJLyogaWQg b2YgdGhlIGNoYW5uZWwgb3duZXIgKi8KLQl1MzIgb3duZXJfc3ViX2lkOwkvKiBvd25lci1kZWZp bmVkIGZpZWxkIGZvciBleHRyYSB0cmFja2luZyAqLwotCXUzMiByZXNlcnZlZFs1XTsKLX0gX19w YWNrZWQ7Ci0KLS8qIFR5cGUgb2YgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyICovCi0jZGVmaW5l IElOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9TRU5ECTB4MHUKLSNkZWZpbmUgSU5URUxfR1VDX0NU X0JVRkZFUl9UWVBFX1JFQ1YJMHgxdQotCi0vKgotICogRGVmaW5pdGlvbiBvZiB0aGUgY29tbWFu ZCB0cmFuc3BvcnQgbWVzc2FnZSBoZWFkZXIgKERXMCkKLSAqCi0gKiBiaXRbNC4uMF0JbWVzc2Fn ZSBsZW4gKGluIGR3b3JkcykKLSAqIGJpdFs3Li41XQlyZXNlcnZlZAotICogYml0WzhdCXJlc3Bv bnNlIChHMkggb25seSkKLSAqIGJpdFs4XQl3cml0ZSBmZW5jZSB0byBkZXNjIChIMkcgb25seSkK LSAqIGJpdFs5XQl3cml0ZSBzdGF0dXMgdG8gSDJHIGJ1ZmYgKEgyRyBvbmx5KQotICogYml0WzEw XQlzZW5kIHN0YXR1cyBiYWNrIHZpYSBHMkggKEgyRyBvbmx5KQotICogYml0WzE1Li4xMV0JcmVz ZXJ2ZWQKLSAqIGJpdFszMS4uMTZdCWFjdGlvbiBjb2RlCi0gKi8KLSNkZWZpbmUgR1VDX0NUX01T R19MRU5fU0hJRlQJCQkwCi0jZGVmaW5lIEdVQ19DVF9NU0dfTEVOX01BU0sJCQkweDFGCi0jZGVm aW5lIEdVQ19DVF9NU0dfSVNfUkVTUE9OU0UJCQkoMSA8PCA4KQotI2RlZmluZSBHVUNfQ1RfTVNH X1dSSVRFX0ZFTkNFX1RPX0RFU0MJCSgxIDw8IDgpCi0jZGVmaW5lIEdVQ19DVF9NU0dfV1JJVEVf U1RBVFVTX1RPX0JVRkYJCSgxIDw8IDkpCi0jZGVmaW5lIEdVQ19DVF9NU0dfU0VORF9TVEFUVVMJ CQkoMSA8PCAxMCkKLSNkZWZpbmUgR1VDX0NUX01TR19BQ1RJT05fU0hJRlQJCQkxNgotI2RlZmlu ZSBHVUNfQ1RfTVNHX0FDVElPTl9NQVNLCQkJMHhGRkZGCi0KICNkZWZpbmUgR1VDX1BPV0VSX1VO U1BFQ0lGSUVECTAKICNkZWZpbmUgR1VDX1BPV0VSX0QwCQkxCiAjZGVmaW5lIEdVQ19QT1dFUl9E MQkJMgpAQCAtNDc3LDExOSArMzg4LDE3IEBAIHN0cnVjdCBndWNfc2hhcmVkX2N0eF9kYXRhIHsK IAlzdHJ1Y3QgZ3VjX2N0eF9yZXBvcnQgcHJlZW1wdF9jdHhfcmVwb3J0W0dVQ19NQVhfRU5HSU5F U19OVU1dOwogfSBfX3BhY2tlZDsKIAotLyoqCi0gKiBET0M6IE1NSU8gYmFzZWQgY29tbXVuaWNh dGlvbgotICoKLSAqIFRoZSBNTUlPIGJhc2VkIGNvbW11bmljYXRpb24gYmV0d2VlbiBIb3N0IGFu ZCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoCi0gKiByZWdpc3RlcnMsIHdoZXJlIGZpcnN0IHJl Z2lzdGVyIGhvbGRzIGRhdGEgdHJlYXRlZCBhcyBtZXNzYWdlIGhlYWRlciwKLSAqIGFuZCBvdGhl ciByZWdpc3RlcnMgYXJlIHVzZWQgdG8gaG9sZCBtZXNzYWdlIHBheWxvYWQuCi0gKgotICogRm9y IEdlbjkrLCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoIHJlZ2lzdGVycyAweEMxODAtMHhDMUI4 LAotICogYnV0IG5vIEgyRyBjb21tYW5kIHRha2VzIG1vcmUgdGhhbiA4IHBhcmFtZXRlcnMgYW5k IHRoZSBHdUMgRlcKLSAqIGl0c2VsZiB1c2VzIGFuIDgtZWxlbWVudCBhcnJheSB0byBzdG9yZSB0 aGUgSDJHIG1lc3NhZ2UuCi0gKgotICogICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rCi0gKiAgICAgIHwgIE1NSU9bMF0gIHwgTU1JT1sxXSB8ICAgLi4uICAg fCBNTUlPW25dIHwKLSAqICAgICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKwotICogICAgICB8IGhlYWRlciAgICB8ICAgICAgb3B0aW9uYWwgcGF5bG9hZCAgICAg ICB8Ci0gKiAgICAgICs9PT09PT0rPT09PSs9PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSsK LSAqICAgICAgfCAzMToyOHx0eXBlfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICog ICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0gKiAgICAg IHwgMjc6MTZ8ZGF0YXwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0t LS0tLSstLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAgICB8ICAxNTow fGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0gKiAgICAgICstLS0tLS0rLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqCi0gKiBUaGUgbWVzc2FnZSBoZWFk ZXIgY29uc2lzdHMgb2Y6Ci0gKgotICogLSAqKnR5cGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgdHlw ZQotICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgY29kZSwgaXMgc3BlY2lmaWMgZm9y ICoqdHlwZSoqCi0gKiAtICoqZGF0YSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBkYXRhLCBvcHRpb25h bCwgZGVwZW5kcyBvbiAqKmNvZGUqKgotICoKLSAqIFRoZSBmb2xsb3dpbmcgbWVzc2FnZSAqKnR5 cGVzKiogYXJlIHN1cHBvcnRlZDoKLSAqCi0gKiAtICoqUkVRVUVTVCoqLCBpbmRpY2F0ZXMgSG9z dC10by1HdUMgcmVxdWVzdCwgcmVxdWVzdGVkIEd1QyBhY3Rpb24gY29kZQotICogICBtdXN0IGJl IHByaW92aWRlZCBpbiAqKmNvZGUqKiBmaWVsZC4gT3B0aW9uYWwgYWN0aW9uIHNwZWNpZmljIHBh cmFtZXRlcnMKLSAqICAgY2FuIGJlIHByb3ZpZGVkIGluIHJlbWFpbmluZyBwYXlsb2FkIHJlZ2lz dGVycyBvciAqKmRhdGEqKiBmaWVsZC4KLSAqCi0gKiAtICoqUkVTUE9OU0UqKiwgaW5kaWNhdGVz IEd1Qy10by1Ib3N0IHJlc3BvbnNlIGZyb20gZWFybGllciBHdUMgcmVxdWVzdCwKLSAqICAgYWN0 aW9uIHJlc3BvbnNlIHN0YXR1cyB3aWxsIGJlIHByb3ZpZGVkIGluICoqY29kZSoqIGZpZWxkLiBP cHRpb25hbAotICogICByZXNwb25zZSBkYXRhIGNhbiBiZSByZXR1cm5lZCBpbiByZW1haW5pbmcg cGF5bG9hZCByZWdpc3RlcnMgb3IgKipkYXRhKioKLSAqICAgZmllbGQuCi0gKi8KLQotI2RlZmlu ZSBHVUNfTUFYX01NSU9fTVNHX0xFTgkJOAotCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfVFlQRV9T SElGVAkyOAotI2RlZmluZSBJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSwkJKDB4RiA8PCBJTlRFTF9H VUNfTVNHX1RZUEVfU0hJRlQpCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfREFUQV9TSElGVAkxNgot I2RlZmluZSBJTlRFTF9HVUNfTVNHX0RBVEFfTUFTSwkJKDB4RkZGIDw8IElOVEVMX0dVQ19NU0df REFUQV9TSElGVCkKLSNkZWZpbmUgSU5URUxfR1VDX01TR19DT0RFX1NISUZUCTAKLSNkZWZpbmUg SU5URUxfR1VDX01TR19DT0RFX01BU0sJCSgweEZGRkYgPDwgSU5URUxfR1VDX01TR19DT0RFX1NI SUZUKQotCiAjZGVmaW5lIF9fSU5URUxfR1VDX01TR19HRVQoVCwgbSkgXAogCSgoKG0pICYgSU5U RUxfR1VDX01TR18gIyMgVCAjIyBfTUFTSykgPj4gSU5URUxfR1VDX01TR18gIyMgVCAjIyBfU0hJ RlQpCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fVFlQRShtKQlfX0lOVEVMX0dVQ19NU0dfR0VU KFRZUEUsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fREFUQShtKQlfX0lOVEVMX0dVQ19N U0dfR0VUKERBVEEsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fQ09ERShtKQlfX0lOVEVM X0dVQ19NU0dfR0VUKENPREUsIG0pCiAKLWVudW0gaW50ZWxfZ3VjX21zZ190eXBlIHsKLQlJTlRF TF9HVUNfTVNHX1RZUEVfUkVRVUVTVCA9IDB4MCwKLQlJTlRFTF9HVUNfTVNHX1RZUEVfUkVTUE9O U0UgPSAweEYsCi19OwotCiAjZGVmaW5lIF9fSU5URUxfR1VDX01TR19UWVBFX0lTKFQsIG0pIFwK IAkoSU5URUxfR1VDX01TR19UT19UWVBFKG0pID09IElOVEVMX0dVQ19NU0dfVFlQRV8gIyMgVCkK ICNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVFVRVNUKG0pCV9fSU5URUxfR1VDX01TR19UWVBF X0lTKFJFUVVFU1QsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfSVNfUkVTUE9OU0UobSkJX19J TlRFTF9HVUNfTVNHX1RZUEVfSVMoUkVTUE9OU0UsIG0pCiAKLWVudW0gaW50ZWxfZ3VjX2FjdGlv biB7Ci0JSU5URUxfR1VDX0FDVElPTl9ERUZBVUxUID0gMHgwLAotCUlOVEVMX0dVQ19BQ1RJT05f UkVRVUVTVF9QUkVFTVBUSU9OID0gMHgyLAotCUlOVEVMX0dVQ19BQ1RJT05fUkVRVUVTVF9FTkdJ TkVfUkVTRVQgPSAweDMsCi0JSU5URUxfR1VDX0FDVElPTl9BTExPQ0FURV9ET09SQkVMTCA9IDB4 MTAsCi0JSU5URUxfR1VDX0FDVElPTl9ERUFMTE9DQVRFX0RPT1JCRUxMID0gMHgyMCwKLQlJTlRF TF9HVUNfQUNUSU9OX0xPR19CVUZGRVJfRklMRV9GTFVTSF9DT01QTEVURSA9IDB4MzAsCi0JSU5U RUxfR1VDX0FDVElPTl9VS19MT0dfRU5BQkxFX0xPR0dJTkcgPSAweDQwLAotCUlOVEVMX0dVQ19B Q1RJT05fRk9SQ0VfTE9HX0JVRkZFUl9GTFVTSCA9IDB4MzAyLAotCUlOVEVMX0dVQ19BQ1RJT05f RU5URVJfU19TVEFURSA9IDB4NTAxLAotCUlOVEVMX0dVQ19BQ1RJT05fRVhJVF9TX1NUQVRFID0g MHg1MDIsCi0JSU5URUxfR1VDX0FDVElPTl9TTFBDX1JFUVVFU1QgPSAweDMwMDMsCi0JSU5URUxf R1VDX0FDVElPTl9BVVRIRU5USUNBVEVfSFVDID0gMHg0MDAwLAotCUlOVEVMX0dVQ19BQ1RJT05f UkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSID0gMHg0NTA1LAotCUlOVEVMX0dVQ19B Q1RJT05fREVSRUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1MDYsCi0JSU5U RUxfR1VDX0FDVElPTl9MSU1JVAotfTsKLQotZW51bSBpbnRlbF9ndWNfcHJlZW1wdF9vcHRpb25z IHsKLQlJTlRFTF9HVUNfUFJFRU1QVF9PUFRJT05fRFJPUF9XT1JLX1EgPSAweDQsCi0JSU5URUxf R1VDX1BSRUVNUFRfT1BUSU9OX0RST1BfU1VCTUlUX1EgPSAweDgsCi19OwotCi1lbnVtIGludGVs X2d1Y19yZXBvcnRfc3RhdHVzIHsKLQlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19VTktOT1dOID0g MHgwLAotCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX0FDS0VEID0gMHgxLAotCUlOVEVMX0dVQ19S RVBPUlRfU1RBVFVTX0VSUk9SID0gMHgyLAotCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX0NPTVBM RVRFID0gMHg0LAotfTsKLQotZW51bSBpbnRlbF9ndWNfc2xlZXBfc3RhdGVfc3RhdHVzIHsKLQlJ TlRFTF9HVUNfU0xFRVBfU1RBVEVfU1VDQ0VTUyA9IDB4MSwKLQlJTlRFTF9HVUNfU0xFRVBfU1RB VEVfUFJFRU1QVF9UT19JRExFX0ZBSUxFRCA9IDB4MiwKLQlJTlRFTF9HVUNfU0xFRVBfU1RBVEVf RU5HSU5FX1JFU0VUX0ZBSUxFRCA9IDB4MwotI2RlZmluZSBJTlRFTF9HVUNfU0xFRVBfU1RBVEVf SU5WQUxJRF9NQVNLIDB4ODAwMDAwMDAKLX07Ci0KLSNkZWZpbmUgR1VDX0xPR19DT05UUk9MX0xP R0dJTkdfRU5BQkxFRAkoMSA8PCAwKQotI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfVkVSQk9TSVRZ X1NISUZUCTQKLSNkZWZpbmUgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9NQVNLCSgweEYgPDwg R1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9TSElGVCkKLSNkZWZpbmUgR1VDX0xPR19DT05UUk9M X0RFRkFVTFRfTE9HR0lORwkoMSA8PCA4KQotCi1lbnVtIGludGVsX2d1Y19yZXNwb25zZV9zdGF0 dXMgewotCUlOVEVMX0dVQ19SRVNQT05TRV9TVEFUVVNfU1VDQ0VTUyA9IDB4MCwKLQlJTlRFTF9H VUNfUkVTUE9OU0VfU1RBVFVTX0dFTkVSSUNfRkFJTCA9IDB4RjAwMCwKLX07Ci0KICNkZWZpbmUg SU5URUxfR1VDX01TR19JU19SRVNQT05TRV9TVUNDRVNTKG0pIFwKIAkgKHR5cGVjaGVjayh1MzIs IChtKSkgJiYgXAogCSAgKChtKSAmIChJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSyB8IElOVEVMX0dV Q19NU0dfQ09ERV9NQVNLKSkgPT0gXAotLSAKMi4yOC4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK