Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2208ybt; Mon, 6 Jul 2020 02:31:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLLOUyQtefegBoCHvtAIfyWwA9WuxBVsSHsdgEORcI4gMaC0HZLGDzg6ou4f+/eqeR3t4x X-Received: by 2002:a17:906:1747:: with SMTP id d7mr34384269eje.39.1594027887190; Mon, 06 Jul 2020 02:31:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594027887; cv=none; d=google.com; s=arc-20160816; b=nynPgcSE37VRMX5LK2lUNHVP/vKQT6xuWahDLl7Q7EHS3yl0CyYdciJMApIwB7D3Ld lUBHI7ZRvU/R/JiyZScrKdAmy/OSF8ZI1iajrBMHD6SmMYyD8I5WuETWaKn0GxSEBY2e pvEWBzbv2/fdP3ispS0KGVZw2CI7TVNrrlPxyRneMcr2MA23w85Tmcxy7jMCxJYL++1n xnln3Y82aNQWeIETpwjP+iBVbTQUwrgjZbQ5ybymDSw8F2OPintrleWhuiubPlyp5G23 16mFgJueuvHY+c58WZO8d9mlUIDd8R6vird0CTQ/mCWUfrcUmkSx8+G9KQ40DfxUA8lX 6SZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ZmcqHg3jaEZejfFd/DYDTX77OGPmsts/OWQAssoBXW0=; b=HCOu5Uo2V06YsCShE0utk9rINGA88VW8jZkaVGwBGdNhEv/IrkT1+sUAB1jR6rLvk4 5xaIYMTvRwTCOCaEE7p8AcOUHoxt2meuwztpr8hhrGs+dH2X5sT4d4u8yAS9hsckl/bF M2i+mgyATlT/W+KO+3bKdEGJ7mkfuMb9KE3eN8VScHpNVh6YtjyhqA718bquGOMtB4h2 jgIiK/ZxdKMeln4n/0R6OwPqc+huF/ylArrx1RWxEkSOcJqjve/JHKlPRK4j9iGIt+pr PfUzajy3KRUDvPIOsoUv9AW5yWSH4FPeYFaf++4aCBrClOweWPNvXBs0kTCB3PyIZLTy b0qg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=pyT2KFA6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c25si12752423edw.141.2020.07.06.02.31.03; Mon, 06 Jul 2020 02:31:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=pyT2KFA6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728934AbgGFJ2d (ORCPT + 99 others); Mon, 6 Jul 2020 05:28:33 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:37617 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728603AbgGFJ2c (ORCPT ); Mon, 6 Jul 2020 05:28:32 -0400 X-UUID: 23c8edd5bd0e486f9bcfa0cc6895bbde-20200706 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=ZmcqHg3jaEZejfFd/DYDTX77OGPmsts/OWQAssoBXW0=; b=pyT2KFA63ukLhnFnJgqNYeTYdABSW2ppDOA6o8xzJeVNv6N/K40Pd1j1rwjOtoyAoyfFz9SnAcR4TwlctmaW1Z/uLd0XUlr25Y3bV8i4e8PLI+ZT9FYCC0ZIr9CVjEQpnSs5ixJnxgqDqzZxxYTDjfJyhcFjspFdy98y/lNpjP4=; X-UUID: 23c8edd5bd0e486f9bcfa0cc6895bbde-20200706 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1435440183; Mon, 06 Jul 2020 17:28:22 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 6 Jul 2020 17:28:11 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 6 Jul 2020 17:28:12 +0800 From: Neal Liu To: Rob Herring , Matthias Brugger CC: Neal Liu , , , lkml Subject: [PATCH 2/2] soc: mediatek: devapc: add devapc-mt6779 driver Date: Mon, 6 Jul 2020 17:28:13 +0800 Message-ID: <1594027693-19530-3-git-send-email-neal.liu@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1594027693-19530-1-git-send-email-neal.liu@mediatek.com> References: <1594027693-19530-1-git-send-email-neal.liu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org TVQ2Nzc5IGJ1cyBmcmFicmljIHByb3ZpZGVzIFRydXN0Wm9uZSBzZWN1cml0eSBzdXBwb3J0IGFu ZCBkYXRhDQpwcm90ZWN0aW9uIHRvIHByZXZlbnQgc2xhdmVzIGZyb20gYmVpbmcgYWNjZXNzZWQg YnkgdW5leHBlY3RlZA0KbWFzdGVycy4NClRoZSBzZWN1cml0eSB2aW9sYXRpb25zIGFyZSBsb2dn ZWQgYW5kIHNlbnQgdG8gdGhlIHByb2Nlc3NvciBmb3INCmZ1cnRoZXIgYW5hbHlzaXMgb3IgY291 bnRlcm1lYXN1cmVzLg0KDQpBbnkgb2NjdXJyZW5jZSBvZiBzZWN1cml0eSB2aW9sYXRpb24gd291 bGQgcmFpc2UgYW4gaW50ZXJydXB0LCBhbmQNCml0IHdpbGwgYmUgaGFuZGxlZCBieSBkZXZhcGMt bXQ2Nzc5IGRyaXZlci4gVGhlIHZpb2xhdGlvbg0KaW5mb3JtYXRpb24gaXMgcHJpbnRlZCBpbiBv cmRlciB0byBmaW5kIHRoZSBtdXJkZXJlci4NCg0KU2lnbmVkLW9mZi1ieTogTmVhbCBMaXUgPG5l YWwubGl1QG1lZGlhdGVrLmNvbT4NCi0tLQ0KIGRyaXZlcnMvc29jL21lZGlhdGVrL0tjb25maWcg ICAgICAgICAgICAgICAgfCAgICA2ICsNCiBkcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZSAg ICAgICAgICAgICAgIHwgICAgMSArDQogZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL0tjb25m aWcgICAgICAgICB8ICAgMTcgKw0KIGRyaXZlcnMvc29jL21lZGlhdGVrL2RldmFwYy9NYWtlZmls ZSAgICAgICAgfCAgIDEwICsNCiBkcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10 Njc3OS5jIHwgMTExMSArKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL3NvYy9t ZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10Njc3OS5oIHwgICA5OSArKysNCiA2IGZpbGVzIGNoYW5n ZWQsIDEyNDQgaW5zZXJ0aW9ucygrKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3NvYy9t ZWRpYXRlay9kZXZhcGMvS2NvbmZpZw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3NvYy9t ZWRpYXRlay9kZXZhcGMvTWFrZWZpbGUNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2Mv bWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdDY3NzkuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10Njc3OS5oDQoNCmRpZmYgLS1naXQgYS9k cml2ZXJzL3NvYy9tZWRpYXRlay9LY29uZmlnIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvS2NvbmZp Zw0KaW5kZXggNTlhNTZjZC4uMmM5YWQxZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc29jL21lZGlh dGVrL0tjb25maWcNCisrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL0tjb25maWcNCkBAIC01MSw0 ICs1MSwxMCBAQCBjb25maWcgTVRLX01NU1lTDQogCSAgU2F5IHllcyBoZXJlIHRvIGFkZCBzdXBw b3J0IGZvciB0aGUgTWVkaWFUZWsgTXVsdGltZWRpYQ0KIAkgIFN1YnN5c3RlbSAoTU1TWVMpLg0K IA0KK21lbnUgIlNlY3VyaXR5Ig0KKw0KK3NvdXJjZSAiZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2 YXBjL0tjb25maWciDQorDQorZW5kbWVudSAjIFNlY3VyaXR5DQorDQogZW5kbWVudQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxlIGIvZHJpdmVycy9zb2MvbWVkaWF0 ZWsvTWFrZWZpbGUNCmluZGV4IDAxZjlmODcuLmQ2NzE3YTgxIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGUNCisrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2Vm aWxlDQpAQCAtMSw1ICsxLDYgQEANCiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w LW9ubHkNCiBvYmotJChDT05GSUdfTVRLX0NNRFEpICs9IG10ay1jbWRxLWhlbHBlci5vDQorb2Jq LSQoQ09ORklHX01US19ERVZBUEMpICs9IGRldmFwYy8NCiBvYmotJChDT05GSUdfTVRLX0lORlJB Q0ZHKSArPSBtdGstaW5mcmFjZmcubw0KIG9iai0kKENPTkZJR19NVEtfUE1JQ19XUkFQKSArPSBt dGstcG1pYy13cmFwLm8NCiBvYmotJChDT05GSUdfTVRLX1NDUFNZUykgKz0gbXRrLXNjcHN5cy5v DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL0tjb25maWcgYi9kcml2 ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvS2NvbmZpZw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAuLmIwZjdkMGUNCi0tLSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvc29jL21l ZGlhdGVrL2RldmFwYy9LY29uZmlnDQpAQCAtMCwwICsxLDE3IEBADQorY29uZmlnIE1US19ERVZB UEMNCisJdHJpc3RhdGUgIk1lZGlhdGVrIERldmljZSBBUEMgU3VwcG9ydCINCisJaGVscA0KKwkg IERldmljZSBBUEMgaXMgYSBIVyBJUCBjb250cm9sbGluZyBpbnRlcm5hbCBkZXZpY2Ugc2VjdXJp dHkuDQorCSAgTWVkaWFUZWsgYnVzIGZyYWJyaWMgcHJvdmlkZXMgVHJ1c3Rab25lIHNlY3VyaXR5 IHN1cHBvcnQgYW5kIGRhdGENCisJICBwcm90ZWN0aW9uIHRvIHByZXZlbnQgc2xhdmVzIGZyb20g YmVpbmcgYWNjZXNzZWQgYnkgdW5leHBlY3RlZA0KKwkgIGJ1cyBtYXN0ZXJzLg0KKwkgIERldmlj ZSBBUEMgcHJldmVudHMgbWFsaWNpb3VzIGFjY2VzcyB0byBpbnRlcm5hbCBkZXZpY2VzLg0KKw0K K2NvbmZpZyBERVZBUENfTVQ2Nzc5DQorCXRyaXN0YXRlICJNZWRpYXRlayBNVDY3NzkgRGV2aWNl IEFQQyBkcml2ZXIiDQorCXNlbGVjdCBNVEtfREVWQVBDDQorCWhlbHANCisJICBTYXkgeWVzIGhl cmUgdG8gZW5hYmxlIHN1cHBvcnQgTWVkaWF0ZWsgTVQ2Nzc5IERldmljZSBBUEMgZHJpdmVyLg0K KwkgIFRoaXMgZHJpdmVyIG1haW5seSB1c2VkIHRvIGhhbmRsZSB0aGUgdmlvbGF0aW9uIHdpdGgg MSBERVZBUEMgQU8vUERzLg0KKwkgIFRoZSB2aW9sYXRpb24gaW5mb3JtYXRpb24gYXJlIGxvZ2dl ZCBmb3IgZnVydGhlciBhbmFseXNpcyBvcg0KKwkgIGNvdW50ZXJtZWFzdXJlcy4NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvTWFrZWZpbGUgYi9kcml2ZXJzL3NvYy9t ZWRpYXRlay9kZXZhcGMvTWFrZWZpbGUNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwLi4wMzM2YzFkDQotLS0gL2Rldi9udWxsDQorKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9k ZXZhcGMvTWFrZWZpbGUNCkBAIC0wLDAgKzEsMTAgQEANCisjIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wDQorDQoraWZlcSAoJChDT05GSUdfTVRLX0dDT1ZfS0VSTkVMKSx5KQ0KK0dD T1ZfUFJPRklMRSA6PSB5DQorZW5kaWYNCisNCitvYmotJChDT05GSUdfTVRLX0RFVkFQQykgOj0g ZGV2YXBjLm8NCisNCisjIFBsYXRmb3JtDQorZGV2YXBjLSQoQ09ORklHX0RFVkFQQ19NVDY3Nzkp ICs9IGRldmFwYy1tdDY3Nzkubw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL2Rl dmFwYy9kZXZhcGMtbXQ2Nzc5LmMgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBj LW10Njc3OS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYTI4YjlmMw0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1t dDY3NzkuYw0KQEAgLTAsMCArMSwxMTExIEBADQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjANCisvKg0KKyAqIENvcHlyaWdodCAoQykgMjAyMCBNZWRpYVRlayBJbmMuDQorICov DQorDQorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPg0KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQu aD4NCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3Jt X2RldmljZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4NCisjaW5jbHVkZSA8bGludXgv b2ZfYWRkcmVzcy5oPg0KKw0KKyNpbmNsdWRlICJkZXZhcGMtbXQ2Nzc5LmgiDQorDQorc3RhdGlj IHN0cnVjdCBtdGtfZGV2aWNlX2luZm8gbXQ2Nzc5X2RldmljZXNfaW5mcmFbXSA9IHsNCisJLyog c3lzX2lkeCwgY3RybF9pZHgsIHZpb19pZHggKi8NCisJLyogMCAqLw0KKwl7MCwgMCwgMH0sDQor CXswLCAxLCAxfSwNCisJezAsIDIsIDJ9LA0KKwl7MCwgMywgM30sDQorCXswLCA0LCA0fSwNCisJ ezAsIDUsIDV9LA0KKwl7MCwgNiwgNn0sDQorCXswLCA3LCA3fSwNCisJezAsIDgsIDh9LA0KKwl7 MCwgOSwgOX0sDQorDQorCS8qIDEwICovDQorCXswLCAxMCwgMTB9LA0KKwl7MCwgMTEsIDExfSwN CisJezAsIDEyLCAxMn0sDQorCXswLCAxMywgMTN9LA0KKwl7MCwgMTQsIDE0fSwNCisJezAsIDE1 LCAxNX0sDQorCXswLCAxNiwgMTZ9LA0KKwl7MCwgMTcsIDE3fSwNCisJezAsIDE4LCAxOH0sDQor CXswLCAxOSwgMTl9LA0KKw0KKwkvKiAyMCAqLw0KKwl7MCwgMjAsIDIwfSwNCisJezAsIDIxLCAy MX0sDQorCXswLCAyMiwgMjJ9LA0KKwl7MCwgMjMsIDIzfSwNCisJezAsIDI0LCAyNH0sDQorCXsw LCAyNSwgMjV9LA0KKwl7MCwgMjYsIDI2fSwNCisJezAsIDI3LCAyN30sDQorCXswLCAyOCwgMjh9 LA0KKwl7MCwgMjksIDI5fSwNCisNCisJLyogMzAgKi8NCisJezAsIDMwLCAzMH0sDQorCXswLCAz MSwgMzF9LA0KKwl7MCwgMzIsIDMyfSwNCisJezAsIDMzLCA3N30sDQorCXswLCAzNCwgNzh9LA0K Kwl7MCwgMzUsIDc5fSwNCisJezAsIDM1LCA4MH0sDQorCXswLCAzNywgMzd9LA0KKwl7MCwgMzgs IDM4fSwNCisJezAsIDM5LCAzOX0sDQorDQorCS8qIDQwICovDQorCXswLCA0MCwgNDB9LA0KKwl7 MCwgNDEsIDQxfSwNCisJezAsIDQyLCA0Mn0sDQorCXswLCA0MywgNDN9LA0KKwl7MCwgNDQsIDQ0 fSwNCisJezAsIDQ1LCA0NX0sDQorCXswLCA0NiwgNDZ9LA0KKwl7MCwgNDcsIDQ3fSwNCisJezAs IDQ4LCA0OH0sDQorCXswLCA0OSwgNDl9LA0KKw0KKwkvKiA1MCAqLw0KKwl7MCwgNTAsIDUwfSwN CisJezAsIDUxLCA1MX0sDQorCXswLCA1MiwgNTJ9LA0KKwl7MCwgNTMsIDUzfSwNCisJezAsIDU0 LCA1NH0sDQorCXswLCA1NSwgNTV9LA0KKwl7MCwgNTYsIDU2fSwNCisJezAsIDU3LCA1N30sDQor CXswLCA1OCwgNTh9LA0KKwl7MCwgNTksIDU5fSwNCisNCisJLyogNjAgKi8NCisJezAsIDYwLCA2 MH0sDQorCXswLCA2MSwgNjF9LA0KKwl7MCwgNjIsIDYyfSwNCisJezAsIDYzLCA2M30sDQorCXsw LCA2NCwgNjR9LA0KKwl7MCwgNjUsIDcwfSwNCisJezAsIDY2LCA3MX0sDQorCXswLCA2NywgNzJ9 LA0KKwl7MCwgNjgsIDczfSwNCisJezAsIDcwLCA4MX0sDQorDQorCS8qIDcwICovDQorCXswLCA3 MSwgODJ9LA0KKwl7MCwgNzIsIDgzfSwNCisJezAsIDczLCA4NH0sDQorCXswLCA3NCwgODV9LA0K Kwl7MCwgNzUsIDg2fSwNCisJezAsIDc2LCA4N30sDQorCXswLCA3NywgODh9LA0KKwl7MCwgNzgs IDg5fSwNCisJezAsIDc5LCA5MH0sDQorCXswLCA4MCwgOTF9LA0KKw0KKwkvKiA4MCAqLw0KKwl7 MCwgODEsIDkyfSwNCisJezAsIDgyLCA5M30sDQorCXswLCA4MywgOTR9LA0KKwl7MCwgODQsIDk1 fSwNCisJezAsIDg1LCA5Nn0sDQorCXswLCA4NiwgOTd9LA0KKwl7MCwgODcsIDk4fSwNCisJezAs IDg4LCA5OX0sDQorCXswLCA4OSwgMTAwfSwNCisJezAsIDkwLCAxMDF9LA0KKw0KKwkvKiA5MCAq Lw0KKwl7MCwgOTEsIDEwMn0sDQorCXswLCA5MiwgMTAzfSwNCisJezAsIDkzLCAxMDR9LA0KKwl7 MCwgOTQsIDEwNX0sDQorCXswLCA5NSwgMTA2fSwNCisJezAsIDk2LCAxMDd9LA0KKwl7MCwgOTcs IDEwOH0sDQorCXswLCA5OCwgMTA5fSwNCisJezAsIDExMCwgMTEwfSwNCisJezAsIDExMSwgMTEx fSwNCisNCisJLyogMTAwICovDQorCXswLCAxMTIsIDExMn0sDQorCXswLCAxMTMsIDExM30sDQor CXswLCAxMTQsIDExNH0sDQorCXswLCAxMTUsIDExNX0sDQorCXswLCAxMTYsIDExNn0sDQorCXsw LCAxMTcsIDExN30sDQorCXswLCAxMTgsIDExOH0sDQorCXswLCAxMTksIDExOX0sDQorCXswLCAx MjAsIDEyMH0sDQorCXswLCAxMjEsIDEyMX0sDQorDQorCS8qIDExMCAqLw0KKwl7MCwgMTIyLCAx MjJ9LA0KKwl7MCwgMTIzLCAxMjN9LA0KKwl7MCwgMTI0LCAxMjR9LA0KKwl7MCwgMTI1LCAxMjV9 LA0KKwl7MCwgMTI2LCAxMjZ9LA0KKwl7MCwgMTI3LCAxMjd9LA0KKwl7MCwgMTI4LCAxMjh9LA0K Kwl7MCwgMTI5LCAxMjl9LA0KKwl7MCwgMTMwLCAxMzB9LA0KKwl7MCwgMTMxLCAxMzF9LA0KKw0K KwkvKiAxMjAgKi8NCisJezAsIDEzMiwgMTMyfSwNCisJezAsIDEzMywgMTMzfSwNCisJezAsIDEz NCwgMTM0fSwNCisJezAsIDEzNSwgMTM1fSwNCisJezAsIDEzNiwgMTM2fSwNCisJezAsIDEzNywg MTM3fSwNCisJezAsIDEzOCwgMTM4fSwNCisJezAsIDEzOSwgMTM5fSwNCisJezAsIDE0MCwgMTQw fSwNCisJezAsIDE0MSwgMTQxfSwNCisNCisJLyogMTMwICovDQorCXswLCAxNDIsIDE0Mn0sDQor CXswLCAxNDMsIDE0M30sDQorCXswLCAxNDQsIDE0NH0sDQorCXswLCAxNDUsIDE0NX0sDQorCXsw LCAxNDYsIDE0Nn0sDQorCXswLCAxNDcsIDE0N30sDQorCXswLCAxNDgsIDE0OH0sDQorCXswLCAx NDksIDE0OX0sDQorCXswLCAxNTAsIDE1MH0sDQorCXswLCAxNTEsIDE1MX0sDQorDQorCS8qIDE0 MCAqLw0KKwl7MCwgMTUyLCAxNTJ9LA0KKwl7MCwgMTUzLCAxNTN9LA0KKwl7MCwgMTU0LCAxNTR9 LA0KKwl7MCwgMTU1LCAxNTV9LA0KKwl7MCwgMTU2LCAxNTZ9LA0KKwl7MCwgMTU3LCAxNTd9LA0K Kwl7MCwgMTU4LCAxNTh9LA0KKwl7MCwgMTU5LCAxNTl9LA0KKwl7MCwgMTYwLCAxNjB9LA0KKwl7 MCwgMTYxLCAxNjF9LA0KKw0KKwkvKiAxNTAgKi8NCisJezAsIDE2MiwgMTYyfSwNCisJezAsIDE2 MywgMTYzfSwNCisJezAsIDE2NCwgMTY0fSwNCisJezAsIDE2NSwgMTY1fSwNCisJezAsIDE2Niwg MTY2fSwNCisJezAsIDE2NywgMTY3fSwNCisJezAsIDE2OCwgMTY4fSwNCisJezAsIDE2OSwgMTY5 fSwNCisJezAsIDE3MCwgMTcwfSwNCisJezAsIDE3MSwgMTcxfSwNCisNCisJLyogMTYwICovDQor CXswLCAxNzIsIDE3Mn0sDQorCXswLCAxNzMsIDE3M30sDQorCXswLCAxNzQsIDE3NH0sDQorCXsw LCAxNzUsIDE3NX0sDQorCXswLCAxNzYsIDE3Nn0sDQorCXswLCAxNzcsIDE3N30sDQorCXswLCAx NzgsIDE3OH0sDQorCXswLCAxNzksIDE3OX0sDQorCXswLCAxODAsIDE4MH0sDQorCXswLCAxODEs IDE4MX0sDQorDQorCS8qIDE3MCAqLw0KKwl7MCwgMTgyLCAxODJ9LA0KKwl7MCwgMTgzLCAxODN9 LA0KKwl7MCwgMTg0LCAxODR9LA0KKwl7MCwgMTg1LCAxODV9LA0KKwl7MCwgMTg2LCAxODZ9LA0K Kwl7MCwgMTg3LCAxODd9LA0KKwl7MCwgMTg4LCAxODh9LA0KKwl7MCwgMTg5LCAxODl9LA0KKwl7 MCwgMTkwLCAxOTB9LA0KKwl7MCwgMTkxLCAxOTF9LA0KKw0KKwkvKiAxODAgKi8NCisJezAsIDE5 MiwgMTkyfSwNCisJezAsIDE5MywgMTkzfSwNCisJezAsIDE5NCwgMTk0fSwNCisJezAsIDE5NSwg MTk1fSwNCisJezAsIDE5NiwgMTk2fSwNCisJezAsIDE5NywgMTk3fSwNCisJezAsIDE5OCwgMTk4 fSwNCisJezAsIDE5OSwgMTk5fSwNCisJezAsIDIwMCwgMjAwfSwNCisJezAsIDIwMSwgMjAxfSwN CisNCisJLyogMTkwICovDQorCXswLCAyMDIsIDIwMn0sDQorCXswLCAyMDMsIDIwM30sDQorCXsw LCAyMDQsIDIwNH0sDQorCXswLCAyMDUsIDIwNX0sDQorCXswLCAyMDYsIDIwNn0sDQorCXswLCAy MDcsIDIwN30sDQorCXswLCAyMDgsIDIwOH0sDQorCXswLCAyMDksIDIwOX0sDQorCXswLCAyMTAs IDIxMH0sDQorCXswLCAyMTEsIDIxMX0sDQorDQorCS8qIDIwMCAqLw0KKwl7MCwgMjEyLCAyMTJ9 LA0KKwl7MCwgMjEzLCAyMTN9LA0KKwl7MCwgMjE0LCAyMTR9LA0KKwl7MCwgMjE1LCAyMTV9LA0K Kwl7MCwgMjE2LCAyMTZ9LA0KKwl7MCwgMjE3LCAyMTd9LA0KKwl7MCwgMjE4LCAyMTh9LA0KKwl7 MCwgMjE5LCAyMTl9LA0KKwl7MCwgMjIwLCAyMjB9LA0KKwl7MCwgMjIxLCAyMjF9LA0KKw0KKwkv KiAyMTAgKi8NCisJezAsIDIyMiwgMjIyfSwNCisJezAsIDIyMywgMjIzfSwNCisJezAsIDIyNCwg MjI0fSwNCisJezAsIDIyNSwgMjI1fSwNCisJezAsIDIyNiwgMjI2fSwNCisJezAsIDIyNywgMjI3 fSwNCisJezAsIDIyOCwgMjI4fSwNCisJezAsIDIyOSwgMjI5fSwNCisJezAsIDIzMCwgMjMwfSwN CisJezAsIDIzMSwgMjMxfSwNCisNCisJLyogMjIwICovDQorCXsxLCAwLCAyMzJ9LA0KKwl7MSwg MSwgMjMzfSwNCisJezEsIDIsIDIzNH0sDQorCXsxLCAzLCAyMzV9LA0KKwl7MSwgNCwgMjM2fSwN CisJezEsIDUsIDIzN30sDQorCXsxLCA2LCAyMzh9LA0KKwl7MSwgNywgMjM5fSwNCisJezEsIDgs IDI0MH0sDQorCXsxLCA5LCAyNDF9LA0KKw0KKwkvKiAyMzAgKi8NCisJezEsIDEwLCAyNDJ9LA0K Kwl7MSwgMTEsIDI0M30sDQorCXsxLCAxMiwgMjQ0fSwNCisJezEsIDEzLCAyNDV9LA0KKwl7MSwg MTQsIDI0Nn0sDQorCXsxLCAxNSwgMjQ3fSwNCisJezEsIDE2LCAyNDh9LA0KKwl7MSwgMTcsIDI0 OX0sDQorCXsxLCAxOCwgMjUwfSwNCisJezEsIDE5LCAyNTF9LA0KKw0KKwkvKiAyNDAgKi8NCisJ ezEsIDIwLCAyNTJ9LA0KKwl7MSwgMjEsIDI1M30sDQorCXsxLCAyMiwgMjU0fSwNCisJezEsIDIz LCAyNTV9LA0KKwl7MSwgMjQsIDI1Nn0sDQorCXsxLCAyNSwgMjU3fSwNCisJezEsIDI2LCAyNTh9 LA0KKwl7MSwgMjcsIDI1OX0sDQorCXsxLCAyOCwgMjYwfSwNCisJezEsIDI5LCAyNjF9LA0KKw0K KwkvKiAyNTAgKi8NCisJezEsIDMwLCAyNjJ9LA0KKwl7MSwgMzEsIDI2M30sDQorCXsxLCAzMiwg MjY0fSwNCisJezEsIDMzLCAyNjV9LA0KKwl7MSwgMzQsIDI2Nn0sDQorCXsxLCAzNSwgMjY3fSwN CisJezEsIDM2LCAyNjh9LA0KKwl7MSwgMzcsIDI2OX0sDQorCXsxLCAzOCwgMjcwfSwNCisJezEs IDM5LCAyNzF9LA0KKw0KKwkvKiAyNjAgKi8NCisJezEsIDQwLCAyNzJ9LA0KKwl7MSwgNDEsIDI3 M30sDQorCXsxLCA0MiwgMjc0fSwNCisJezEsIDQzLCAyNzV9LA0KKwl7MSwgNDQsIDI3Nn0sDQor CXsxLCA0NSwgMjc3fSwNCisJezEsIDQ2LCAyNzh9LA0KKwl7MSwgNDcsIDI3OX0sDQorCXsxLCA0 OCwgMjgwfSwNCisJezEsIDQ5LCAyODF9LA0KKw0KKwkvKiAyNzAgKi8NCisJezEsIDUwLCAyODJ9 LA0KKwl7MSwgNTEsIDI4M30sDQorCXsxLCA1MiwgMjg0fSwNCisJezEsIDUzLCAyODV9LA0KKwl7 MSwgNTQsIDI4Nn0sDQorCXsxLCA1NSwgMjg3fSwNCisJezEsIDU2LCAyODh9LA0KKwl7MSwgNTcs IDI4OX0sDQorCXsxLCA1OCwgMjkwfSwNCisJezEsIDU5LCAyOTF9LA0KKw0KKwkvKiAyODAgKi8N CisJezEsIDYwLCAyOTJ9LA0KKwl7MSwgNjEsIDI5M30sDQorCXsxLCA2MiwgMjk0fSwNCisJezEs IDYzLCAyOTV9LA0KKwl7MSwgNjQsIDI5Nn0sDQorCXsxLCA2NSwgMjk3fSwNCisJezEsIDY2LCAy OTh9LA0KKwl7MSwgNjcsIDI5OX0sDQorCXsxLCA2OCwgMzAwfSwNCisJezEsIDY5LCAzMDF9LA0K Kw0KKwkvKiAyOTAgKi8NCisJezEsIDcwLCAzMDJ9LA0KKwl7MSwgNzEsIDMwM30sDQorCXsxLCA3 MiwgMzA0fSwNCisJezEsIDczLCAzMDV9LA0KKwl7MSwgNzQsIDMwNn0sDQorCXsxLCA3NSwgMzA3 fSwNCisJezEsIDc2LCAzMDh9LA0KKwl7MSwgNzcsIDMwOX0sDQorCXsxLCA3OCwgMzEwfSwNCisJ ezEsIDc5LCAzMTF9LA0KKw0KKwkvKiAzMDAgKi8NCisJezEsIDgwLCAzMTJ9LA0KKwl7MSwgODEs IDMxM30sDQorCXsxLCA4MiwgMzE0fSwNCisJezEsIDgzLCAzMTV9LA0KKwl7MSwgODQsIDMxNn0s DQorCXsxLCA4NSwgMzE3fSwNCisJezEsIDg2LCAzMTh9LA0KKwl7MSwgODcsIDMxOX0sDQorCXsx LCA4OCwgMzIwfSwNCisJezEsIDg5LCAzMjF9LA0KKw0KKwkvKiAzMTAgKi8NCisJezEsIDkwLCAz MjJ9LA0KKwl7MSwgOTEsIDMyM30sDQorCXsxLCA5MiwgMzI0fSwNCisJezEsIDkzLCAzMjV9LA0K Kwl7MSwgOTQsIDMyNn0sDQorCXsxLCA5NSwgMzI3fSwNCisJezEsIDk2LCAzMjh9LA0KKwl7MSwg OTcsIDMyOX0sDQorCXsxLCA5OCwgMzMwfSwNCisJezEsIDk5LCAzMzF9LA0KKw0KKwkvKiAzMjAg Ki8NCisJezEsIDEwMCwgMzMyfSwNCisJezEsIDEwMSwgMzMzfSwNCisJezEsIDEwMiwgMzM0fSwN CisJezEsIDEwMywgMzM1fSwNCisJezEsIDEwNCwgMzM2fSwNCisJezEsIDEwNSwgMzM3fSwNCisJ ezEsIDEwNiwgMzM4fSwNCisJezEsIDEwNywgMzM5fSwNCisJezEsIDEwOCwgMzQwfSwNCisJezEs IDEwOSwgMzQxfSwNCisNCisJLyogMzMwICovDQorCXsxLCAxMTAsIDM0Mn0sDQorCXsxLCAxMTEs IDM0M30sDQorCXsxLCAxMTIsIDM0NH0sDQorCXsxLCAxMTMsIDM0NX0sDQorCXsxLCAxMTQsIDM0 Nn0sDQorCXsxLCAxMTUsIDM0N30sDQorCXsxLCAxMTYsIDM0OH0sDQorCXsxLCAxMTcsIDM0OX0s DQorCXsxLCAxMTgsIDM1MH0sDQorCXsxLCAxMTksIDM1MX0sDQorDQorCS8qIDM0MCAqLw0KKwl7 MSwgMTIwLCAzNTJ9LA0KKwl7MSwgMTIxLCAzNTN9LA0KKwl7MSwgMTIyLCAzNTR9LA0KKwl7MSwg MTIzLCAzNTV9LA0KKwl7MSwgMTI0LCAzNTZ9LA0KKwl7MSwgMTI1LCAzNTd9LA0KKwl7MSwgMTI2 LCAzNTh9LA0KKwl7MSwgMTI3LCAzNTl9LA0KKwl7MSwgMTI4LCAzNjB9LA0KKwl7MSwgMTI5LCAz NjF9LA0KKw0KKwkvKiAzNTAgKi8NCisJezEsIDEzMCwgMzYyfSwNCisJezEsIDEzMSwgMzYzfSwN CisJezEsIDEzMiwgMzY0fSwNCisJezEsIDEzMywgMzY1fSwNCisJezEsIDEzNCwgMzY2fSwNCisJ ezEsIDEzNSwgMzY3fSwNCisJezEsIDEzNiwgMzY4fSwNCisJezEsIDEzNywgMzY5fSwNCisJezEs IDEzOCwgMzcwfSwNCisJezEsIDEzOSwgMzcxfSwNCisNCisJLyogMzYwICovDQorCXsxLCAxNDAs IDM3Mn0sDQorCXsxLCAxNDEsIDM3M30sDQorCXsxLCAxNDIsIDM3NH0sDQorCXsxLCAxNDMsIDM3 NX0sDQorCXsxLCAxNDQsIDM3Nn0sDQorCXsxLCAxNDUsIDM3N30sDQorCXsxLCAxNDYsIDM3OH0s DQorCXsxLCAxNDcsIDM3OX0sDQorCXsxLCAxNDgsIDM4MH0sDQorCXsxLCAxNDksIDM4MX0sDQor DQorCS8qIDM3MCAqLw0KKwl7MSwgMTUwLCAzODJ9LA0KKwl7MSwgMTUxLCAzODN9LA0KKwl7MSwg MTUyLCAzODR9LA0KKwl7MSwgMTUzLCAzODV9LA0KKwl7MSwgMTU0LCAzODZ9LA0KKwl7MSwgMTU1 LCAzODd9LA0KKwl7MSwgMTU2LCAzODh9LA0KKwl7MSwgMTU3LCAzODl9LA0KKwl7MSwgMTU4LCAz OTB9LA0KKwl7MSwgMTU5LCAzOTF9LA0KKw0KKwkvKiAzODAgKi8NCisJezEsIDE2MCwgMzkyfSwN CisJezEsIDE2MSwgMzkzfSwNCisJezEsIDE2MiwgMzk0fSwNCisJezEsIDE2MywgMzk1fSwNCisJ ezEsIDE2NCwgMzk2fSwNCisJezEsIDE2NSwgMzk3fSwNCisJezEsIDE2NiwgMzk4fSwNCisJezEs IDE2NywgMzk5fSwNCisJezEsIDE2OCwgNDAwfSwNCisJezEsIDE2OSwgNDAxfSwNCisNCisJLyog MzkwICovDQorCXsxLCAxNzAsIDQwMn0sDQorCXsxLCAxNzEsIDQwM30sDQorCXsxLCAxNzIsIDQw NH0sDQorCXsxLCAxNzMsIDQwNX0sDQorCXsxLCAxNzQsIDQwNn0sDQorCXsxLCAxNzUsIDQwN30s DQorCXsxLCAxNzYsIDQwOH0sDQorCXsxLCAxNzcsIDQwOX0sDQorCXsxLCAxNzgsIDQxMH0sDQor CXsxLCAxNzksIDQxMX0sDQorDQorCS8qIDQwMCAqLw0KKwl7MSwgMTgwLCA0MTJ9LA0KKwl7MSwg MTgxLCA0MTN9LA0KKwl7MSwgMTgyLCA0MTR9LA0KKwl7MSwgMTgzLCA0MTV9LA0KKwl7MSwgMTg0 LCA0MTZ9LA0KKwl7MSwgMTg1LCA0MTd9LA0KKwl7MSwgMTg2LCA0MTh9LA0KKwl7MSwgMTg3LCA0 MTl9LA0KKwl7MSwgMTg4LCA0MjB9LA0KKwl7MSwgMTg5LCA0MjF9LA0KKw0KKwkvKiA0MTAgKi8N CisJezEsIDE5MCwgNDIyfSwNCisJezEsIDE5MSwgNDIzfSwNCisJezEsIDE5MiwgNDI0fSwNCisJ ezEsIDE5MywgNDI1fSwNCisJezEsIDE5NCwgNDI2fSwNCisJezEsIDE5NSwgNDI3fSwNCisJezEs IDE5NiwgNDI4fSwNCisJezEsIDE5NywgNDI5fSwNCisJezEsIDE5OCwgNDMwfSwNCisJezEsIDE5 OSwgNDMxfSwNCisNCisJLyogNDIwICovDQorCXsxLCAyMDAsIDQzMn0sDQorCXsxLCAyMDEsIDQz M30sDQorCXsxLCAyMDIsIDQzNH0sDQorCXsxLCAyMDMsIDQzNX0sDQorCXsxLCAyMDQsIDQzNn0s DQorCXsxLCAyMDUsIDQzN30sDQorCXsxLCAyMDYsIDQzOH0sDQorCXsxLCAyMDcsIDQzOX0sDQor CXsxLCAyMDgsIDQ0MH0sDQorCXsxLCAyMDksIDQ0MX0sDQorDQorCS8qIDQzMCAqLw0KKwl7MSwg MjEwLCA0NDJ9LA0KKwl7MSwgMjExLCA0NDN9LA0KKwl7MSwgMjEyLCA0NDR9LA0KKwl7MSwgMjEz LCA0NDV9LA0KKwl7MSwgMjE0LCA0NDZ9LA0KKwl7MSwgMjE1LCA0NDd9LA0KKwl7MSwgMjE2LCA0 NDh9LA0KKwl7MSwgMjE3LCA0NDl9LA0KKwl7MSwgMjE4LCA0NTB9LA0KKwl7MSwgMjE5LCA0NTF9 LA0KKw0KKwkvKiA0NDAgKi8NCisJezEsIDIyMCwgNDUyfSwNCisJezEsIDIyMSwgNDUzfSwNCisJ ezEsIDIyMiwgNDU0fSwNCisJezEsIDIyMywgNDU1fSwNCisJezEsIDIyNCwgNDU2fSwNCisJezEs IDIyNSwgNDU3fSwNCisJezEsIDIyNiwgNDU4fSwNCisJezEsIDIyNywgNDU5fSwNCisJezEsIDIy OCwgNDYwfSwNCisJezEsIDIyOSwgNDYxfSwNCisNCisJLyogNDUwICovDQorCXsxLCAyMzAsIDQ2 Mn0sDQorCXsxLCAyMzEsIDQ2M30sDQorCXsxLCAyMzIsIDQ2NH0sDQorCXsxLCAyMzMsIDQ2NX0s DQorCXsxLCAyMzQsIDQ2Nn0sDQorCXsxLCAyMzUsIDQ2N30sDQorCXsxLCAyMzYsIDQ2OH0sDQor CXsxLCAyMzcsIDQ2OX0sDQorCXsxLCAyMzgsIDQ3MH0sDQorCXsxLCAyMzksIDQ3MX0sDQorDQor CS8qIDQ2MCAqLw0KKwl7MSwgMjQwLCA0NzJ9LA0KKwl7MSwgMjQxLCA0NzN9LA0KKwl7MSwgMjQy LCA0NzR9LA0KKwl7MSwgMjQzLCA0NzV9LA0KKwl7MSwgMjQ0LCA0NzZ9LA0KKwl7MSwgMjQ1LCA0 Nzd9LA0KKwl7MSwgMjQ2LCA0Nzh9LA0KKwl7LTEsIC0xLCA0Nzl9LA0KKwl7LTEsIC0xLCA0ODB9 LA0KKwl7LTEsIC0xLCA0ODF9LA0KKw0KKwkvKiA0NzAgKi8NCisJey0xLCAtMSwgNDgyfSwNCisJ ey0xLCAtMSwgNDgzfSwNCisJey0xLCAtMSwgNDg0fSwNCisJey0xLCAtMSwgNDg1fSwNCisJey0x LCAtMSwgNDg2fSwNCisJey0xLCAtMSwgNDg3fSwNCisJey0xLCAtMSwgNDg4fSwNCisJey0xLCAt MSwgNDg5fSwNCisJey0xLCAtMSwgNDkwfSwNCisJey0xLCAtMSwgNDkxfSwNCisNCisJLyogNDgw ICovDQorCXstMSwgLTEsIDQ5Mn0sDQorCXstMSwgLTEsIDQ5M30sDQorCXstMSwgLTEsIDQ5NH0s DQorCXstMSwgLTEsIDQ5NX0sDQorCXstMSwgLTEsIDQ5Nn0sDQorCXstMSwgLTEsIDQ5N30sDQor CXstMSwgLTEsIDQ5OH0sDQorCXstMSwgLTEsIDQ5OX0sDQorCXstMSwgLTEsIDUwMH0sDQorCXst MSwgLTEsIDUwMX0sDQorDQorCS8qIDQ5MCAqLw0KKwl7LTEsIC0xLCA1MDJ9LA0KKwl7LTEsIC0x LCA1MDN9LA0KKwl7LTEsIC0xLCA1MDR9LA0KKwl7LTEsIC0xLCA1MDV9LA0KKwl7LTEsIC0xLCA1 MDZ9LA0KKwl7LTEsIC0xLCA1MDd9LA0KKwl7LTEsIC0xLCA1MDh9LA0KKwl7LTEsIC0xLCA1MDl9 LA0KKwl7LTEsIC0xLCA1MTB9LA0KKw0KK307DQorDQorc3RhdGljIHN0cnVjdCBtdGtfZGV2aWNl X251bSBtdGs2Nzc5X2RldmljZXNfbnVtW10gPSB7DQorCXtTTEFWRV9UWVBFX0lORlJBLCBWSU9f U0xBVkVfTlVNX0lORlJBfSwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgbXRrX3Zpb19tYXNrX3N0YV9u dW1bXSA9IHsNCisJVklPX01BU0tfU1RBX05VTV9JTkZSQSwNCit9Ow0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX2luZnJhX3Zpb19kYmdfZGVzYyBtdDY3NzlfdmlvX2RiZ3MgPSB7DQorCS52 aW9fZGJnX21zdGlkID0gSU5GUkFfVklPX0RCR19NU1RJRCwNCisJLnZpb19kYmdfbXN0aWRfc3Rh cnRfYml0ID0gSU5GUkFfVklPX0RCR19NU1RJRF9TVEFSVF9CSVQsDQorCS52aW9fZGJnX2Rtbmlk ID0gSU5GUkFfVklPX0RCR19ETU5JRCwNCisJLnZpb19kYmdfZG1uaWRfc3RhcnRfYml0ID0gSU5G UkFfVklPX0RCR19ETU5JRF9TVEFSVF9CSVQsDQorCS52aW9fZGJnX3dfdmlvID0gSU5GUkFfVklP X0RCR19XX1ZJTywNCisJLnZpb19kYmdfd192aW9fc3RhcnRfYml0ID0gSU5GUkFfVklPX0RCR19X X1ZJT19TVEFSVF9CSVQsDQorCS52aW9fZGJnX3JfdmlvID0gSU5GUkFfVklPX0RCR19SX1ZJTywN CisJLnZpb19kYmdfcl92aW9fc3RhcnRfYml0ID0gSU5GUkFfVklPX0RCR19SX1ZJT19TVEFSVF9C SVQsDQorCS52aW9fYWRkcl9oaWdoID0gSU5GUkFfVklPX0FERFJfSElHSCwNCisJLnZpb19hZGRy X2hpZ2hfc3RhcnRfYml0ID0gSU5GUkFfVklPX0FERFJfSElHSF9TVEFSVF9CSVQsDQorfTsNCisN CitzdGF0aWMgY29uc3QgdTMyIG10Njc3OV9kZXZhcGNfcGRzW10gPSB7DQorCVBEX1ZJT19NQVNL X09GRlNFVCwNCisJUERfVklPX1NUQV9PRkZTRVQsDQorCVBEX1ZJT19EQkcwX09GRlNFVCwNCisJ UERfVklPX0RCRzFfT0ZGU0VULA0KKwlQRF9BUENfQ09OX09GRlNFVCwNCisJUERfU0hJRlRfU1RB X09GRlNFVCwNCisJUERfU0hJRlRfU0VMX09GRlNFVCwNCisJUERfU0hJRlRfQ09OX09GRlNFVCwN Cit9Ow0KKw0KK3N0YXRpYyB1MzIgbXQ2Nzc5X3NoaWZ0X2dyb3VwX2dldCh1MzIgdmlvX2lkeCkN Cit7DQorCWlmICh2aW9faWR4ID49IDAgJiYgdmlvX2lkeCA8PSAzMikNCisJCXJldHVybiAwOw0K KwllbHNlIGlmICh2aW9faWR4ID49IDMzICYmIHZpb19pZHggPD0gMTA5KQ0KKwkJcmV0dXJuIDE7 DQorCWVsc2UgaWYgKCh2aW9faWR4ID49IDExMCAmJiB2aW9faWR4IDw9IDEyMSkgfHwNCisJCSAo dmlvX2lkeCA+PSA0NzAgJiYgdmlvX2lkeCA8PSA0NzIpKQ0KKwkJcmV0dXJuIDI7DQorCWVsc2Ug aWYgKHZpb19pZHggPT0gMTIyIHx8IHZpb19pZHggPT0gNTAwKQ0KKwkJcmV0dXJuIDM7DQorCWVs c2UgaWYgKHZpb19pZHggPT0gMTIzKQ0KKwkJcmV0dXJuIDQ7DQorCWVsc2UgaWYgKHZpb19pZHgg PT0gMTI0KQ0KKwkJcmV0dXJuIDU7DQorCWVsc2UgaWYgKCh2aW9faWR4ID49IDEyNSAmJiB2aW9f aWR4IDw9IDE1NSkgfHwNCisJCSAodmlvX2lkeCA+PSA0ODYgJiYgdmlvX2lkeCA8PSA0ODgpKQ0K KwkJcmV0dXJuIDY7DQorCWVsc2UgaWYgKCh2aW9faWR4ID49IDE1NiAmJiB2aW9faWR4IDw9IDE1 NykgfHwNCisJCSAodmlvX2lkeCA+PSAxNTkgJiYgdmlvX2lkeCA8PSAxNjUpKQ0KKwkJcmV0dXJu IDc7DQorCWVsc2UgaWYgKCh2aW9faWR4ID49IDE2NiAmJiB2aW9faWR4IDw9IDE4MSkgfHwNCisJ CSAodmlvX2lkeCA+PSA0NzMgJiYgdmlvX2lkeCA8PSA0NzUpKQ0KKwkJcmV0dXJuIDg7DQorCWVs c2UgaWYgKCh2aW9faWR4ID49IDE4MiAmJiB2aW9faWR4IDw9IDE5NykgfHwNCisJCSAodmlvX2lk eCA+PSA0NzYgJiYgdmlvX2lkeCA8PSA0NzgpKQ0KKwkJcmV0dXJuIDk7DQorCWVsc2UgaWYgKCh2 aW9faWR4ID49IDE5OCAmJiB2aW9faWR4IDw9IDIwNSkgfHwNCisJCSAodmlvX2lkeCA+PSA0Nzkg JiYgdmlvX2lkeCA8PSA0ODEpKQ0KKwkJcmV0dXJuIDEwOw0KKwllbHNlIGlmICgodmlvX2lkeCA+ PSAyMTQgJiYgdmlvX2lkeCA8PSAyMjkpIHx8DQorCQkgKHZpb19pZHggPj0gNDgyICYmIHZpb19p ZHggPD0gNDg0KSkNCisJCXJldHVybiAxMTsNCisJZWxzZSBpZiAodmlvX2lkeCA9PSAyMzApDQor CQlyZXR1cm4gMTI7DQorCWVsc2UgaWYgKHZpb19pZHggPT0gMTU4KQ0KKwkJcmV0dXJuIDEzOw0K KwllbHNlIGlmICh2aW9faWR4ID09IDIzMSB8fCB2aW9faWR4ID09IDM4MikNCisJCXJldHVybiAx NDsNCisJZWxzZSBpZiAodmlvX2lkeCA+PSAyMzIgJiYgdmlvX2lkeCA8PSAyNDQpDQorCQlyZXR1 cm4gMTU7DQorCWVsc2UgaWYgKHZpb19pZHggPj0gMjQ1ICYmIHZpb19pZHggPD0gNDc4KQ0KKwkJ cmV0dXJuIDE2Ow0KKwllbHNlIGlmICh2aW9faWR4ID49IDUwNCAmJiB2aW9faWR4IDw9IDUwNSkN CisJCXJldHVybiAxNzsNCisJZWxzZSBpZiAodmlvX2lkeCA9PSA0OTQpDQorCQlyZXR1cm4gMTg7 DQorCWVsc2UgaWYgKHZpb19pZHggPT0gNTAzKQ0KKwkJcmV0dXJuIDE5Ow0KKwllbHNlIGlmICh2 aW9faWR4ID09IDUwMSkNCisJCXJldHVybiAyMDsNCisJZWxzZSBpZiAodmlvX2lkeCA9PSA1MDIp DQorCQlyZXR1cm4gMjE7DQorCWVsc2UgaWYgKHZpb19pZHggPT0gNTA2KQ0KKwkJcmV0dXJuIDIy Ow0KKwllbHNlIGlmICh2aW9faWR4ID09IDUwNykNCisJCXJldHVybiAyMzsNCisJZWxzZSBpZiAo dmlvX2lkeCA9PSA1MDgpDQorCQlyZXR1cm4gMjQ7DQorCWVsc2UgaWYgKCh2aW9faWR4ID49IDIw NiAmJiB2aW9faWR4IDw9IDIxMykgfHwNCisJCSAodmlvX2lkeCA+PSA0OTggJiYgdmlvX2lkeCA8 PSA1MDApKQ0KKwkJcmV0dXJuIDI1Ow0KKw0KKwlyZXR1cm4gMzE7DQorfQ0KKw0KKy8qDQorICog bXRrX2RldmFwY19wZF9nZXQgLSBnZXQgZGV2YXBjIHBkX3R5cGVzIG9mIHJlZ2lzdGVyIGFkZHJl c3MuDQorICoNCisgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiByZWcgYWRkcg0KKyAqLw0KK3N0YXRp YyB2b2lkIF9faW9tZW0gKm10a19kZXZhcGNfcGRfZ2V0KHN0cnVjdCBtdGtfZGV2YXBjX2NvbnRl eHQgKmRldmFwY19jdHgsDQorCQkJCSAgICAgICBpbnQgc2xhdmVfdHlwZSwNCisJCQkJICAgICAg IGVudW0gREVWQVBDX1BEX1JFR19UWVBFIHBkX3JlZ190eXBlLA0KKwkJCQkgICAgICAgdTMyIGlu ZGV4KQ0KK3sNCisJY29uc3QgdTMyICpkZXZhcGNfcGRzID0gbXQ2Nzc5X2RldmFwY19wZHM7DQor CXZvaWQgX19pb21lbSAqcmVnOw0KKw0KKwlyZWcgPSBkZXZhcGNfY3R4LT5kZXZhcGNfcGRfYmFz ZVtzbGF2ZV90eXBlXSArIGRldmFwY19wZHNbcGRfcmVnX3R5cGVdOw0KKw0KKwlpZiAocGRfcmVn X3R5cGUgPT0gVklPX01BU0sgfHwgcGRfcmVnX3R5cGUgPT0gVklPX1NUQSkNCisJCXJlZyArPSAw eDQgKiBpbmRleDsNCisNCisJcmV0dXJuIHJlZzsNCit9DQorDQorc3RhdGljIGludCBjaGVja192 aW9fbWFza19zdGEoc3RydWN0IG10a19kZXZhcGNfY29udGV4dCAqZGV2YXBjX2N0eCwNCisJCQkg ICAgICBpbnQgc2xhdmVfdHlwZSwgdTMyIG1vZHVsZSwgaW50IHBkX3JlZ190eXBlKQ0KK3sNCisJ dTMyIGFwY19yZWdpc3Rlcl9pbmRleCwgYXBjX3NldF9pbmRleDsNCisJdm9pZCBfX2lvbWVtICpy ZWc7DQorCXUzMiB2YWx1ZTsNCisNCisJYXBjX3JlZ2lzdGVyX2luZGV4ID0gbW9kdWxlIC8gKE1P RF9OTV9JTl8xX0RFVkFQQyAqIDIpOw0KKwlhcGNfc2V0X2luZGV4ID0gbW9kdWxlICUgKE1PRF9O TV9JTl8xX0RFVkFQQyAqIDIpOw0KKw0KKwlpZiAoYXBjX3JlZ2lzdGVyX2luZGV4IDwgbXRrX3Zp b19tYXNrX3N0YV9udW1bc2xhdmVfdHlwZV0pDQorCQlyZWcgPSBtdGtfZGV2YXBjX3BkX2dldChk ZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCBwZF9yZWdfdHlwZSwNCisJCQkJCWFwY19yZWdpc3Rlcl9p bmRleCk7DQorCWVsc2UNCisJCXJldHVybiAtRU9WRVJGTE9XOw0KKw0KKwl2YWx1ZSA9IChyZWFk bChyZWcpICYgKDB4MSA8PCBhcGNfc2V0X2luZGV4KSkgPj4gYXBjX3NldF9pbmRleDsNCisNCisJ cmV0dXJuIHZhbHVlOw0KK30NCisNCitzdGF0aWMgaW50IGNoZWNrX3Zpb19tYXNrKHN0cnVjdCBt dGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgsIGludCBzbGF2ZV90eXBlLA0KKwkJCSAgdTMy IG1vZHVsZSkNCit7DQorCXJldHVybiBjaGVja192aW9fbWFza19zdGEoZGV2YXBjX2N0eCwgc2xh dmVfdHlwZSwgbW9kdWxlLCBWSU9fTUFTSyk7DQorfQ0KKw0KK3N0YXRpYyBpbnQgY2hlY2tfdmlv X3N0YXR1cyhzdHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0ICpkZXZhcGNfY3R4LA0KKwkJCSAgICBp bnQgc2xhdmVfdHlwZSwgdTMyIG1vZHVsZSkNCit7DQorCXJldHVybiBjaGVja192aW9fbWFza19z dGEoZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgbW9kdWxlLCBWSU9fU1RBKTsNCit9DQorDQorc3Rh dGljIHZvaWQgY2xlYXJfdmlvX3N0YXR1cyhzdHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0ICpkZXZh cGNfY3R4LA0KKwkJCSAgICAgaW50IHNsYXZlX3R5cGUsIHUzMiBtb2R1bGUpDQorew0KKwl1MzIg YXBjX3JlZ2lzdGVyX2luZGV4LCBhcGNfc2V0X2luZGV4Ow0KKwl2b2lkIF9faW9tZW0gKnJlZzsN CisNCisJYXBjX3JlZ2lzdGVyX2luZGV4ID0gbW9kdWxlIC8gKE1PRF9OTV9JTl8xX0RFVkFQQyAq IDIpOw0KKwlhcGNfc2V0X2luZGV4ID0gbW9kdWxlICUgKE1PRF9OTV9JTl8xX0RFVkFQQyAqIDIp Ow0KKw0KKwlpZiAoYXBjX3JlZ2lzdGVyX2luZGV4IDwgbXRrX3Zpb19tYXNrX3N0YV9udW1bc2xh dmVfdHlwZV0pIHsNCisJCXJlZyA9IG10a19kZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgsIHNsYXZl X3R5cGUsIFZJT19TVEEsDQorCQkJCQlhcGNfcmVnaXN0ZXJfaW5kZXgpOw0KKwkJd3JpdGVsKDB4 MSA8PCBhcGNfc2V0X2luZGV4LCByZWcpOw0KKw0KKwl9IGVsc2Ugew0KKwkJcHJfZXJyKFBGWCAi JXM6IE91dCBPZiBCb3VuZGFyeSwgc2xhdmVfdHlwZToweCV4LCBtb2R1bGVfaW5kZXg6MHgleFxu IiwNCisJCSAgICAgICBfX2Z1bmNfXywgc2xhdmVfdHlwZSwgbW9kdWxlKTsNCisJCXJldHVybjsN CisJfQ0KKw0KKwlpZiAoY2hlY2tfdmlvX3N0YXR1cyhkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCBt b2R1bGUpKQ0KKwkJcHJfZXJyKFBGWCAiJXM6IENsZWFyIGZhaWxlZCwgc2xhdmVfdHlwZToweCV4 LCBtb2R1bGVfaW5kZXg6MHgleFxuIiwNCisJCSAgICAgICBfX2Z1bmNfXywgc2xhdmVfdHlwZSwg bW9kdWxlKTsNCit9DQorDQorc3RhdGljIHZvaWQgbWFza19tb2R1bGVfaXJxKHN0cnVjdCBtdGtf ZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgsDQorCQkJICAgIGludCBzbGF2ZV90eXBlLCB1MzIg bW9kdWxlLCBib29sIG1hc2spDQorew0KKwl1MzIgYXBjX3JlZ2lzdGVyX2luZGV4LCBhcGNfc2V0 X2luZGV4Ow0KKwl2b2lkIF9faW9tZW0gKnJlZzsNCisNCisJYXBjX3JlZ2lzdGVyX2luZGV4ID0g bW9kdWxlIC8gKE1PRF9OTV9JTl8xX0RFVkFQQyAqIDIpOw0KKwlhcGNfc2V0X2luZGV4ID0gbW9k dWxlICUgKE1PRF9OTV9JTl8xX0RFVkFQQyAqIDIpOw0KKw0KKwlpZiAoYXBjX3JlZ2lzdGVyX2lu ZGV4IDwgbXRrX3Zpb19tYXNrX3N0YV9udW1bc2xhdmVfdHlwZV0pIHsNCisJCXJlZyA9IG10a19k ZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgsIHNsYXZlX3R5cGUsIFZJT19NQVNLLA0KKwkJCQkJYXBj X3JlZ2lzdGVyX2luZGV4KTsNCisNCisJCWlmIChtYXNrKQ0KKwkJCXdyaXRlbChyZWFkbChyZWcp IHwgKDEgPDwgYXBjX3NldF9pbmRleCksIHJlZyk7DQorCQllbHNlDQorCQkJd3JpdGVsKHJlYWRs KHJlZykgJiAofigxIDw8IGFwY19zZXRfaW5kZXgpKSwgcmVnKTsNCisNCisJfSBlbHNlIHsNCisJ CXByX2VycihQRlggIiVzOiBPdXQgT2YgQm91bmRhcnksIHNsYXZlX3R5cGU6MHgleCwgbW9kdWxl X2luZGV4OjB4JXgsIG1hc2s6JXNcbiIsDQorCQkgICAgICAgX19mdW5jX18sIHNsYXZlX3R5cGUs IG1vZHVsZSwgbWFzayA/ICJ0cnVlIiA6ICJmYWxzZSIpOw0KKwl9DQorfQ0KKw0KKy8qDQorICog c3luY192aW9fZGJnIC0gc3RhcnQgdG8gZ2V0IHZpb2xhdGlvbiBpbmZvcm1hdGlvbiBieSBzZWxl Y3RpbmcgdmlvbGF0aW9uDQorICoJCSAgZ3JvdXAgYW5kIGVuYWJsZSB2aW9sYXRpb24gc2hpZnQu DQorICoNCisgKiBSZXR1cm5zIHN5bmMgZG9uZSBvciBub3QNCisgKi8NCitzdGF0aWMgdTMyIHN5 bmNfdmlvX2RiZyhzdHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0ICpkZXZhcGNfY3R4LCBpbnQgc2xh dmVfdHlwZSwNCisJCQl1MzIgc2hpZnRfYml0KQ0KK3sNCisJdm9pZCBfX2lvbWVtICpwZF92aW9f c2hpZnRfc3RhX3JlZzsNCisJdm9pZCBfX2lvbWVtICpwZF92aW9fc2hpZnRfc2VsX3JlZzsNCisJ dm9pZCBfX2lvbWVtICpwZF92aW9fc2hpZnRfY29uX3JlZzsNCisJdTMyIHNoaWZ0X2NvdW50Ow0K Kwl1MzIgc3luY19kb25lOw0KKw0KKwlwZF92aW9fc2hpZnRfc3RhX3JlZyA9IG10a19kZXZhcGNf cGRfZ2V0KGRldmFwY19jdHgsIHNsYXZlX3R5cGUsDQorCQkJCQkJIFZJT19TSElGVF9TVEEsIDAp Ow0KKwlwZF92aW9fc2hpZnRfc2VsX3JlZyA9IG10a19kZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgs IHNsYXZlX3R5cGUsDQorCQkJCQkJIFZJT19TSElGVF9TRUwsIDApOw0KKwlwZF92aW9fc2hpZnRf Y29uX3JlZyA9IG10a19kZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgsIHNsYXZlX3R5cGUsDQorCQkJ CQkJIFZJT19TSElGVF9DT04sIDApOw0KKw0KKwl3cml0ZWwoMHgxIDw8IHNoaWZ0X2JpdCwgcGRf dmlvX3NoaWZ0X3NlbF9yZWcpOw0KKwl3cml0ZWwoMHgxLCBwZF92aW9fc2hpZnRfY29uX3JlZyk7 DQorDQorCWZvciAoc2hpZnRfY291bnQgPSAwOyAoc2hpZnRfY291bnQgPCAxMDApICYmDQorCSAg ICAgKChyZWFkbChwZF92aW9fc2hpZnRfY29uX3JlZykgJiAweDMpICE9IDB4Myk7DQorCSAgICAg KytzaGlmdF9jb3VudCkNCisJCTsNCisNCisJaWYgKChyZWFkbChwZF92aW9fc2hpZnRfY29uX3Jl ZykgJiAweDMpID09IDB4MykNCisJCXN5bmNfZG9uZSA9IDE7DQorCWVsc2UNCisJCXN5bmNfZG9u ZSA9IDA7DQorDQorCS8qIERpc2FibGUgc2hpZnQgbWVjaGFuaXNtICovDQorCXdyaXRlbCgweDAs IHBkX3Zpb19zaGlmdF9jb25fcmVnKTsNCisJd3JpdGVsKDB4MCwgcGRfdmlvX3NoaWZ0X3NlbF9y ZWcpOw0KKwl3cml0ZWwoMHgxIDw8IHNoaWZ0X2JpdCwgcGRfdmlvX3NoaWZ0X3N0YV9yZWcpOw0K Kw0KKwlyZXR1cm4gc3luY19kb25lOw0KK30NCisNCitzdGF0aWMgdm9pZCBkZXZhcGNfdmlvX2lu Zm9fcHJpbnQoc3RydWN0IG10a19kZXZhcGNfY29udGV4dCAqZGV2YXBjX2N0eCkNCit7DQorCXN0 cnVjdCBtdGtfZGV2YXBjX3Zpb19pbmZvICp2aW9faW5mbyA9IGRldmFwY19jdHgtPnZpb19pbmZv Ow0KKw0KKwkvKiBQcmludCB2aW9sYXRpb24gaW5mb3JtYXRpb24gKi8NCisJaWYgKHZpb19pbmZv LT53cml0ZSkNCisJCXByX2luZm8oUEZYICJXcml0ZSBWaW9sYXRpb25cbiIpOw0KKwllbHNlIGlm ICh2aW9faW5mby0+cmVhZCkNCisJCXByX2luZm8oUEZYICJSZWFkIFZpb2xhdGlvblxuIik7DQor DQorCXByX2luZm8oUEZYICIlcyV4LCAlcyV4LCAlcyV4LCAlcyV4XG4iLA0KKwkJIlZpbyBBZGRy OjB4IiwgdmlvX2luZm8tPnZpb19hZGRyLA0KKwkJIkhpZ2g6MHgiLCB2aW9faW5mby0+dmlvX2Fk ZHJfaGlnaCwNCisJCSJCdXMgSUQ6MHgiLCB2aW9faW5mby0+bWFzdGVyX2lkLA0KKwkJIkRvbSBJ RDoweCIsIHZpb19pbmZvLT5kb21haW5faWQpOw0KK30NCisNCitzdGF0aWMgdm9pZCBkZXZhcGNf ZXh0cmFjdF92aW9fZGJnKHN0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgsDQor CQkJCSAgIGludCBzbGF2ZV90eXBlKQ0KK3sNCisJdm9pZCBfX2lvbWVtICp2aW9fZGJnMF9yZWcs ICp2aW9fZGJnMV9yZWc7DQorCWNvbnN0IHN0cnVjdCBtdGtfaW5mcmFfdmlvX2RiZ19kZXNjICp2 aW9fZGJnczsNCisJc3RydWN0IG10a19kZXZhcGNfdmlvX2luZm8gKnZpb19pbmZvOw0KKwl1MzIg ZGJnMDsNCisNCisJdmlvX2RiZzBfcmVnID0gbXRrX2RldmFwY19wZF9nZXQoZGV2YXBjX2N0eCwg c2xhdmVfdHlwZSwgVklPX0RCRzAsIDApOw0KKwl2aW9fZGJnMV9yZWcgPSBtdGtfZGV2YXBjX3Bk X2dldChkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCBWSU9fREJHMSwgMCk7DQorDQorCXZpb19kYmdz ID0gJm10Njc3OV92aW9fZGJnczsNCisJdmlvX2luZm8gPSBkZXZhcGNfY3R4LT52aW9faW5mbzsN CisNCisJLyogRXh0cmFjdCB2aW9sYXRpb24gaW5mb3JtYXRpb24gKi8NCisJZGJnMCA9IHJlYWRs KHZpb19kYmcwX3JlZyk7DQorCXZpb19pbmZvLT52aW9fYWRkciA9IHJlYWRsKHZpb19kYmcxX3Jl Zyk7DQorDQorCXZpb19pbmZvLT5tYXN0ZXJfaWQgPSAoZGJnMCAmIHZpb19kYmdzLT52aW9fZGJn X21zdGlkKSA+Pg0KKwkJCSAgICAgIHZpb19kYmdzLT52aW9fZGJnX21zdGlkX3N0YXJ0X2JpdDsN CisJdmlvX2luZm8tPmRvbWFpbl9pZCA9IChkYmcwICYgdmlvX2RiZ3MtPnZpb19kYmdfZG1uaWQp ID4+DQorCQkJICAgICAgdmlvX2RiZ3MtPnZpb19kYmdfZG1uaWRfc3RhcnRfYml0Ow0KKwl2aW9f aW5mby0+d3JpdGUgPSAoKGRiZzAgJiB2aW9fZGJncy0+dmlvX2RiZ193X3ZpbykgPj4NCisJCQkg ICB2aW9fZGJncy0+dmlvX2RiZ193X3Zpb19zdGFydF9iaXQpID09IDE7DQorCXZpb19pbmZvLT5y ZWFkID0gKChkYmcwICYgdmlvX2RiZ3MtPnZpb19kYmdfcl92aW8pID4+DQorCQkJICB2aW9fZGJn cy0+dmlvX2RiZ19yX3Zpb19zdGFydF9iaXQpID09IDE7DQorCXZpb19pbmZvLT52aW9fYWRkcl9o aWdoID0gKGRiZzAgJiB2aW9fZGJncy0+dmlvX2FkZHJfaGlnaCkgPj4NCisJCQkJICB2aW9fZGJn cy0+dmlvX2FkZHJfaGlnaF9zdGFydF9iaXQ7DQorDQorCWRldmFwY192aW9faW5mb19wcmludChk ZXZhcGNfY3R4KTsNCit9DQorDQorLyoNCisgKiBtdGtfZGV2YXBjX2R1bXBfdmlvX2RiZyAtIHNo aWZ0ICYgZHVtcCB0aGUgdmlvbGF0aW9uIGRlYnVnIGluZm9ybWF0aW9uLg0KKyAqLw0KK3N0YXRp YyBib29sIG10a19kZXZhcGNfZHVtcF92aW9fZGJnKHN0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQg KmRldmFwY19jdHgsDQorCQkJCSAgICBpbnQgc2xhdmVfdHlwZSwgaW50ICp2aW9faWR4LCBpbnQg KmluZGV4KQ0KK3sNCisJY29uc3Qgc3RydWN0IG10a19kZXZpY2VfaW5mbyAqKmRldmljZV9pbmZv Ow0KKwljb25zdCBzdHJ1Y3QgbXRrX2RldmljZV9udW0gKm5kZXZpY2VzOw0KKwl2b2lkIF9faW9t ZW0gKnBkX3Zpb19zaGlmdF9zdGFfcmVnOw0KKwl1MzIgc2hpZnRfYml0Ow0KKwlpbnQgaTsNCisN CisJaWYgKCF2aW9faWR4KQ0KKwkJcmV0dXJuIE5VTEw7DQorDQorCWRldmljZV9pbmZvID0gZGV2 YXBjX2N0eC0+ZGV2aWNlX2luZm87DQorCW5kZXZpY2VzID0gbXRrNjc3OV9kZXZpY2VzX251bTsN CisNCisJcGRfdmlvX3NoaWZ0X3N0YV9yZWcgPSBtdGtfZGV2YXBjX3BkX2dldChkZXZhcGNfY3R4 LCBzbGF2ZV90eXBlLA0KKwkJCQkJCSBWSU9fU0hJRlRfU1RBLCAwKTsNCisNCisJZm9yIChpID0g MDsgaSA8IG5kZXZpY2VzW3NsYXZlX3R5cGVdLnZpb19zbGF2ZV9udW07IGkrKykgew0KKwkJKnZp b19pZHggPSBkZXZpY2VfaW5mb1tzbGF2ZV90eXBlXVtpXS52aW9faW5kZXg7DQorDQorCQlpZiAo Y2hlY2tfdmlvX21hc2soZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgKnZpb19pZHgpKQ0KKwkJCWNv bnRpbnVlOw0KKw0KKwkJaWYgKGNoZWNrX3Zpb19zdGF0dXMoZGV2YXBjX2N0eCwgc2xhdmVfdHlw ZSwgKnZpb19pZHgpIDw9IDApDQorCQkJY29udGludWU7DQorDQorCQlzaGlmdF9iaXQgPSBtdDY3 Nzlfc2hpZnRfZ3JvdXBfZ2V0KCp2aW9faWR4KTsNCisNCisJCWlmICghc3luY192aW9fZGJnKGRl dmFwY19jdHgsIHNsYXZlX3R5cGUsIHNoaWZ0X2JpdCkpDQorCQkJY29udGludWU7DQorDQorCQlk ZXZhcGNfZXh0cmFjdF92aW9fZGJnKGRldmFwY19jdHgsIHNsYXZlX3R5cGUpOw0KKwkJKmluZGV4 ID0gaTsNCisNCisJCXJldHVybiB0cnVlOw0KKwl9DQorDQorCXJldHVybiBmYWxzZTsNCit9DQor DQorLyoNCisgKiBkZXZhcGNfdmlvbGF0aW9uX2lycSAtIHRoZSBkZXZhcGMgSW50ZXJydXB0IFNl cnZpY2UgUm91dGluZSAoSVNSKSB3aWxsIGR1bXANCisgKgkJCSAgdmlvbGF0aW9uIGluZm9ybWF0 aW9uIGluY2x1ZGluZyB3aGljaCBtYXN0ZXIgdmlvbGF0ZXMNCisgKgkJCSAgYWNjZXNzIHNsYXZl Lg0KKyAqLw0KK3N0YXRpYyBpcnFyZXR1cm5fdCBkZXZhcGNfdmlvbGF0aW9uX2lycShpbnQgaXJx X251bWJlciwNCisJCQkJCXN0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgpDQor ew0KKwljb25zdCBzdHJ1Y3QgbXRrX2RldmljZV9pbmZvICoqZGV2aWNlX2luZm8gPSBkZXZhcGNf Y3R4LT5kZXZpY2VfaW5mbzsNCisJaW50IHZpb19pZHggPSAtMTsNCisJaW50IGluZGV4ID0gLTE7 DQorCWludCBzbGF2ZV90eXBlOw0KKw0KKwlmb3IgKHNsYXZlX3R5cGUgPSAwOyBzbGF2ZV90eXBl IDwgU0xBVkVfVFlQRV9OVU07IHNsYXZlX3R5cGUrKykgew0KKwkJaWYgKCFtdGtfZGV2YXBjX2R1 bXBfdmlvX2RiZyhkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCAmdmlvX2lkeCwNCisJCQkJCSAgICAg JmluZGV4KSkNCisJCQljb250aW51ZTsNCisNCisJCS8qIEVuc3VyZSB0aGF0IHZpb2xhdGlvbiBp bmZvIGFyZSB3cml0dGVuIGJlZm9yZQ0KKwkJICogZnVydGhlciBvcGVyYXRpb25zDQorCQkgKi8N CisJCXNtcF9tYigpOw0KKw0KKwkJbWFza19tb2R1bGVfaXJxKGRldmFwY19jdHgsIHNsYXZlX3R5 cGUsIHZpb19pZHgsIHRydWUpOw0KKw0KKwkJY2xlYXJfdmlvX3N0YXR1cyhkZXZhcGNfY3R4LCBz bGF2ZV90eXBlLCB2aW9faWR4KTsNCisNCisJCXByX2luZm8oUEZYICJWaW9sYXRpb24gLSBzbGF2 ZV90eXBlOjB4JXgsIHN5c19pbmRleDoweCV4LCBjdHJsX2luZGV4OjB4JXgsIHZpb19pbmRleDow eCV4XG4iLA0KKwkJCXNsYXZlX3R5cGUsDQorCQkJZGV2aWNlX2luZm9bc2xhdmVfdHlwZV1baW5k ZXhdLnN5c19pbmRleCwNCisJCQlkZXZpY2VfaW5mb1tzbGF2ZV90eXBlXVtpbmRleF0uY3RybF9p bmRleCwNCisJCQlkZXZpY2VfaW5mb1tzbGF2ZV90eXBlXVtpbmRleF0udmlvX2luZGV4KTsNCisN CisJCW1hc2tfbW9kdWxlX2lycShkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCB2aW9faWR4LCBmYWxz ZSk7DQorCX0NCisNCisJcmV0dXJuIElSUV9IQU5ETEVEOw0KK30NCisNCisvKg0KKyAqIHN0YXJ0 X2RldmFwYyAtIGluaXRpYWxpemUgZGV2YXBjIHN0YXR1cyBhbmQgc3RhcnQgcmVjZWl2aW5nIGlu dGVycnVwdA0KKyAqCQkgIHdoaWxlIGRldmFwYyB2aW9sYXRpb24gaXMgdHJpZ2dlcmVkLg0KKyAq Lw0KK3N0YXRpYyB2b2lkIHN0YXJ0X2RldmFwYyhzdHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0ICpk ZXZhcGNfY3R4KQ0KK3sNCisJY29uc3Qgc3RydWN0IG10a19kZXZpY2VfaW5mbyAqKmRldmljZV9p bmZvOw0KKwljb25zdCBzdHJ1Y3QgbXRrX2RldmljZV9udW0gKm5kZXZpY2VzOw0KKwl2b2lkIF9f aW9tZW0gKnBkX3Zpb19zaGlmdF9zdGFfcmVnOw0KKwl2b2lkIF9faW9tZW0gKnBkX2FwY19jb25f cmVnOw0KKwlpbnQgc2xhdmVfdHlwZSwgdmlvX2lkeCwgaTsNCisJdTMyIHZpb19zaGlmdF9zdGE7 DQorDQorCWRldmFwY19jdHgtPmRldmljZV9pbmZvWzBdID0gbXQ2Nzc5X2RldmljZXNfaW5mcmE7 DQorCWRldmljZV9pbmZvID0gZGV2YXBjX2N0eC0+ZGV2aWNlX2luZm87DQorCW5kZXZpY2VzID0g bXRrNjc3OV9kZXZpY2VzX251bTsNCisNCisJZm9yIChzbGF2ZV90eXBlID0gMDsgc2xhdmVfdHlw ZSA8IFNMQVZFX1RZUEVfTlVNOyBzbGF2ZV90eXBlKyspIHsNCisJCXBkX2FwY19jb25fcmVnID0g bXRrX2RldmFwY19wZF9nZXQoZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwNCisJCQkJCQkgICBBUENf Q09OLCAwKTsNCisJCXBkX3Zpb19zaGlmdF9zdGFfcmVnID0gbXRrX2RldmFwY19wZF9nZXQoZGV2 YXBjX2N0eCwgc2xhdmVfdHlwZSwNCisJCQkJCQkJIFZJT19TSElGVF9TVEEsIDApOw0KKw0KKwkJ aWYgKCFwZF9hcGNfY29uX3JlZyB8fCAhcGRfdmlvX3NoaWZ0X3N0YV9yZWcpDQorCQkJcmV0dXJu Ow0KKw0KKwkJLyogQ2xlYXIgZGV2YXBjIHZpb2xhdGlvbiBzdGF0dXMgKi8NCisJCXdyaXRlbChC SVQoMzEpLCBwZF9hcGNfY29uX3JlZyk7DQorDQorCQkvKiBDbGVhciB2aW9sYXRpb24gc2hpZnQg c3RhdHVzICovDQorCQl2aW9fc2hpZnRfc3RhID0gcmVhZGwocGRfdmlvX3NoaWZ0X3N0YV9yZWcp Ow0KKwkJaWYgKHZpb19zaGlmdF9zdGEpDQorCQkJd3JpdGVsKHZpb19zaGlmdF9zdGEsIHBkX3Zp b19zaGlmdF9zdGFfcmVnKTsNCisNCisJCS8qIENsZWFyIHNsYXZlIHZpb2xhdGlvbiBzdGF0dXMg Ki8NCisJCWZvciAoaSA9IDA7IGkgPCBuZGV2aWNlc1tzbGF2ZV90eXBlXS52aW9fc2xhdmVfbnVt OyBpKyspIHsNCisJCQl2aW9faWR4ID0gZGV2aWNlX2luZm9bc2xhdmVfdHlwZV1baV0udmlvX2lu ZGV4Ow0KKw0KKwkJCWNsZWFyX3Zpb19zdGF0dXMoZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgdmlv X2lkeCk7DQorDQorCQkJbWFza19tb2R1bGVfaXJxKGRldmFwY19jdHgsIHNsYXZlX3R5cGUsIHZp b19pZHgsIGZhbHNlKTsNCisJCX0NCisJfQ0KK30NCisNCitzdGF0aWMgaW50IG10Njc3OV9kZXZh cGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCit7DQorCXN0cnVjdCBkZXZp Y2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOw0KKwlzdHJ1Y3QgbXRrX2RldmFwY19j b250ZXh0ICpkZXZhcGNfY3R4Ow0KKwlzdHJ1Y3QgY2xrICpkZXZhcGNfaW5mcmFfY2xrOw0KKwl1 MzIgZGV2YXBjX2lycTsNCisJaW50IHJldDsNCisNCisJaWYgKElTX0VSUihub2RlKSkNCisJCXJl dHVybiAtRU5PREVWOw0KKw0KKwlkZXZhcGNfY3R4ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYs IHNpemVvZihzdHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0KSwNCisJCQkJICBHRlBfS0VSTkVMKTsN CisJaWYgKCFkZXZhcGNfY3R4KQ0KKwkJcmV0dXJuIC1FTk9NRU07DQorDQorCWRldmFwY19jdHgt PnZpb19pbmZvID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsDQorCQkJCQkgICAgc2l6ZW9mKHN0 cnVjdCBtdGtfZGV2YXBjX3Zpb19pbmZvKSwNCisJCQkJCSAgICBHRlBfS0VSTkVMKTsNCisJaWYg KCFkZXZhcGNfY3R4LT52aW9faW5mbykNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwlkZXZhcGNf Y3R4LT5kZXZhcGNfcGRfYmFzZVswXSA9IG9mX2lvbWFwKG5vZGUsIDApOw0KKwlpZiAoIWRldmFw Y19jdHgtPmRldmFwY19wZF9iYXNlWzBdKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWRldmFw Y19pcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChub2RlLCAwKTsNCisJaWYgKCFkZXZhcGNfaXJx KQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWRldmFwY19pbmZyYV9jbGsgPSBkZXZtX2Nsa19n ZXQoJnBkZXYtPmRldiwgImRldmFwYy1pbmZyYS1jbG9jayIpOw0KKw0KKwlpZiAoSVNfRVJSKGRl dmFwY19pbmZyYV9jbGspKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWlmIChjbGtfcHJlcGFy ZV9lbmFibGUoZGV2YXBjX2luZnJhX2NsaykpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJc3Rh cnRfZGV2YXBjKGRldmFwY19jdHgpOw0KKw0KKwlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2 LT5kZXYsIGRldmFwY19pcnEsDQorCQkJICAgICAgIChpcnFfaGFuZGxlcl90KWRldmFwY192aW9s YXRpb25faXJxLA0KKwkJCSAgICAgICBJUlFGX1RSSUdHRVJfTk9ORSwgImRldmFwYyIsIGRldmFw Y19jdHgpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJcmV0dXJuIDA7DQorfQ0K Kw0KK3N0YXRpYyBpbnQgbXQ2Nzc5X2RldmFwY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqZGV2KQ0KK3sNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIG10Njc3OV9kZXZhcGNfZHRfbWF0Y2hbXSA9IHsNCisJeyAuY29tcGF0aWJsZSA9 ICJtZWRpYXRlayxtdDY3NzktZGV2YXBjIiB9LA0KKwl7fSwNCit9Ow0KKw0KK3N0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIG10Njc3OV9kZXZhcGNfZHJpdmVyID0gew0KKwkucHJvYmUgPSBt dDY3NzlfZGV2YXBjX3Byb2JlLA0KKwkucmVtb3ZlID0gbXQ2Nzc5X2RldmFwY19yZW1vdmUsDQor CS5kcml2ZXIgPSB7DQorCQkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLA0KKwkJLm9mX21hdGNoX3Rh YmxlID0gbXQ2Nzc5X2RldmFwY19kdF9tYXRjaCwNCisJfSwNCit9Ow0KKw0KK21vZHVsZV9wbGF0 Zm9ybV9kcml2ZXIobXQ2Nzc5X2RldmFwY19kcml2ZXIpOw0KKw0KK01PRFVMRV9ERVNDUklQVElP TigiTWVkaWF0ZWsgTVQ2Nzc5IERldmljZSBBUEMgRHJpdmVyIik7DQorTU9EVUxFX0FVVEhPUigi TmVhbCBMaXUgPG5lYWwubGl1QG1lZGlhdGVrLmNvbT4iKTsNCitNT0RVTEVfTElDRU5TRSgiR1BM Iik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdDY3 NzkuaCBiL2RyaXZlcnMvc29jL21lZGlhdGVrL2RldmFwYy9kZXZhcGMtbXQ2Nzc5LmgNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi44YzBlNGU3DQotLS0gL2Rldi9udWxsDQor KysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10Njc3OS5oDQpAQCAtMCww ICsxLDk5IEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCisvKg0K KyAqIENvcHlyaWdodCAoQykgMjAyMCBNZWRpYVRlayBJbmMuDQorICovDQorDQorI2lmbmRlZiBf X0RFVkFQQ19NVDY3NzlfSF9fDQorI2RlZmluZSBfX0RFVkFQQ19NVDY3NzlfSF9fDQorDQorI2Rl ZmluZSBQRlgJCQkiW0RFVkFQQ106ICINCisjZGVmaW5lIE1PRF9OTV9JTl8xX0RFVkFQQwkxNg0K Kw0KK2VudW0gREVWQVBDX1NMQVZFX1RZUEUgew0KKwlTTEFWRV9UWVBFX0lORlJBID0gMCwNCisJ U0xBVkVfVFlQRV9OVU0sDQorfTsNCisNCitlbnVtIERFVkFQQ19QRF9SRUdfVFlQRSB7DQorCVZJ T19NQVNLID0gMCwNCisJVklPX1NUQSwNCisJVklPX0RCRzAsDQorCVZJT19EQkcxLA0KKwlBUENf Q09OLA0KKwlWSU9fU0hJRlRfU1RBLA0KKwlWSU9fU0hJRlRfU0VMLA0KKwlWSU9fU0hJRlRfQ09O LA0KKwlQRF9SRUdfVFlQRV9OVU0sDQorfTsNCisNCitlbnVtIERFVkFQQ19WSU9fTUFTS19TVEFf TlVNIHsNCisJVklPX01BU0tfU1RBX05VTV9JTkZSQSA9IDE3LA0KK307DQorDQorZW51bSBERVZB UENfVklPX1NMQVZFX05VTSB7DQorCVZJT19TTEFWRV9OVU1fSU5GUkEgPSA0OTksDQorfTsNCisN CitlbnVtIERFVkFQQ19QRF9PRkZTRVQgew0KKwlQRF9WSU9fTUFTS19PRkZTRVQgPSAweDAsDQor CVBEX1ZJT19TVEFfT0ZGU0VUID0gMHg0MDAsDQorCVBEX1ZJT19EQkcwX09GRlNFVCA9IDB4OTAw LA0KKwlQRF9WSU9fREJHMV9PRkZTRVQgPSAweDkwNCwNCisJUERfQVBDX0NPTl9PRkZTRVQgPSAw eEYwMCwNCisJUERfU0hJRlRfU1RBX09GRlNFVCA9IDB4RjEwLA0KKwlQRF9TSElGVF9TRUxfT0ZG U0VUID0gMHhGMTQsDQorCVBEX1NISUZUX0NPTl9PRkZTRVQgPSAweEYyMCwNCit9Ow0KKw0KK3N0 cnVjdCBtdGtfZGV2aWNlX251bSB7DQorCWludCBzbGF2ZV90eXBlOw0KKwl1MzIgdmlvX3NsYXZl X251bTsNCit9Ow0KKw0KK3N0cnVjdCBtdGtfZGV2YXBjX3Zpb19pbmZvIHsNCisJYm9vbCByZWFk Ow0KKwlib29sIHdyaXRlOw0KKwl1MzIgdmlvX2FkZHI7DQorCXUzMiB2aW9fYWRkcl9oaWdoOw0K Kwl1MzIgbWFzdGVyX2lkOw0KKwl1MzIgZG9tYWluX2lkOw0KK307DQorDQorc3RydWN0IG10a19p bmZyYV92aW9fZGJnX2Rlc2Mgew0KKwl1MzIgdmlvX2RiZ19tc3RpZDsNCisJdTggdmlvX2RiZ19t c3RpZF9zdGFydF9iaXQ7DQorCXUzMiB2aW9fZGJnX2RtbmlkOw0KKwl1OCB2aW9fZGJnX2Rtbmlk X3N0YXJ0X2JpdDsNCisJdTMyIHZpb19kYmdfd192aW87DQorCXU4IHZpb19kYmdfd192aW9fc3Rh cnRfYml0Ow0KKwl1MzIgdmlvX2RiZ19yX3ZpbzsNCisJdTggdmlvX2RiZ19yX3Zpb19zdGFydF9i aXQ7DQorCXUzMiB2aW9fYWRkcl9oaWdoOw0KKwl1OCB2aW9fYWRkcl9oaWdoX3N0YXJ0X2JpdDsN Cit9Ow0KKw0KK3N0cnVjdCBtdGtfZGV2aWNlX2luZm8gew0KKwlpbnQgc3lzX2luZGV4Ow0KKwlp bnQgY3RybF9pbmRleDsNCisJaW50IHZpb19pbmRleDsNCit9Ow0KKw0KK3N0cnVjdCBtdGtfZGV2 YXBjX2NvbnRleHQgew0KKwl2b2lkIF9faW9tZW0gKmRldmFwY19wZF9iYXNlW1NMQVZFX1RZUEVf TlVNXTsNCisJY29uc3Qgc3RydWN0IG10a19kZXZpY2VfaW5mbyAqZGV2aWNlX2luZm9bU0xBVkVf VFlQRV9OVU1dOw0KKwlzdHJ1Y3QgbXRrX2RldmFwY192aW9faW5mbyAqdmlvX2luZm87DQorfTsN CisNCisvKiBGb3IgSW5mcmEgVklPX0RCRyAqLw0KKyNkZWZpbmUgSU5GUkFfVklPX0RCR19NU1RJ RAkJCTB4MDAwMEZGRkYNCisjZGVmaW5lIElORlJBX1ZJT19EQkdfTVNUSURfU1RBUlRfQklUCQkw DQorI2RlZmluZSBJTkZSQV9WSU9fREJHX0RNTklECQkJMHgwMDNGMDAwMA0KKyNkZWZpbmUgSU5G UkFfVklPX0RCR19ETU5JRF9TVEFSVF9CSVQJCTE2DQorI2RlZmluZSBJTkZSQV9WSU9fREJHX1df VklPCQkJMHgwMDQwMDAwMA0KKyNkZWZpbmUgSU5GUkFfVklPX0RCR19XX1ZJT19TVEFSVF9CSVQJ CTIyDQorI2RlZmluZSBJTkZSQV9WSU9fREJHX1JfVklPCQkJMHgwMDgwMDAwMA0KKyNkZWZpbmUg SU5GUkFfVklPX0RCR19SX1ZJT19TVEFSVF9CSVQJCTIzDQorI2RlZmluZSBJTkZSQV9WSU9fQURE Ul9ISUdICQkJMHgwRjAwMDAwMA0KKyNkZWZpbmUgSU5GUkFfVklPX0FERFJfSElHSF9TVEFSVF9C SVQJCTI0DQorDQorI2VuZGlmIC8qIF9fREVWQVBDX01UNjc3OV9IX18gKi8NCi0tIA0KMS43Ljku NQ0K