From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Kozlowski Subject: [RESEND 1/2] backlight: Remove s6e63m0 driver Date: Tue, 17 Jul 2018 19:11:07 +0200 Message-ID: <20180717171108.9371-1-krzk@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id B26006E1D8 for ; Tue, 17 Jul 2018 17:11:42 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lee Jones , Daniel Thompson , Jingoo Han , Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Cc: Krzysztof Kozlowski , Marek Szyprowski List-Id: dri-devel@lists.freedesktop.org VGhlIGRyaXZlciBmb3IgUzZFNjNNMCBBTU9MRUQgTENEIHBhbmVsIGlzIG5vdCB1c2VkLiAgSXQg ZG9lcyBub3QKc3VwcG9ydCBEZXZpY2VUcmVlIGFuZCByZXNwZWN0aXZlIHBvc3NpYmxlIHVzZXJz IChTNVB2MjEwIEFxdWlsYSBhbmQKR29uaSBib2FyZHMpIGFyZSBEZXZpY2VUcmVlLW9ubHkuCgpT dWdnZXN0ZWQtYnk6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbT4K Q2M6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbT4KQ2M6IElua2kg RGFlIDxpbmtpLmRhZUBzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogS3J6eXN6dG9mIEtvemxv d3NraSA8a3J6a0BrZXJuZWwub3JnPgpBY2tlZC1ieTogSmluZ29vIEhhbiA8amluZ29vaGFuMUBn bWFpbC5jb20+CkFja2VkLWJ5OiBEYW5pZWwgVGhvbXBzb24gPGRhbmllbC50aG9tcHNvbkBsaW5h cm8ub3JnPgoKLS0tCgpSZXNlbmRpbmcgd2l0aCBKaW5nb28ncyBhbmQgRGFuaWVsJ3MgYWNrcy4K LS0tCiBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9LY29uZmlnICAgICAgICAgfCAgIDggLQogZHJp dmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvdmlk ZW8vYmFja2xpZ2h0L3M2ZTYzbTAuYyAgICAgICB8IDg1NyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogZHJpdmVycy92aWRlby9iYWNrbGlnaHQvczZlNjNtMF9nYW1tYS5oIHwgMjY2 IC0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTEzMiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9zNmU2M20wLmMKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9zNmU2M20wX2dhbW1hLmgKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9LY29uZmlnIGIvZHJpdmVycy92aWRlby9iYWNr bGlnaHQvS2NvbmZpZwppbmRleCAyOTE5ZTIzMzQwNTIuLjIzNzNjM2NlYzBjMyAxMDA2NDQKLS0t IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2Jh Y2tsaWdodC9LY29uZmlnCkBAIC0xMTEsMTQgKzExMSw2IEBAIGNvbmZpZyBMQ0RfSFA3MDAKIAkg IElmIHlvdSBoYXZlIGFuIEhQIEpvcm5hZGEgNzAwIHNlcmllcyBoYW5kaGVsZCAoNzEwLzcyMC83 MjgpCiAJICBzYXkgWSB0byBlbmFibGUgTENEIGNvbnRyb2wgZHJpdmVyLgogCi1jb25maWcgTENE X1M2RTYzTTAKLQl0cmlzdGF0ZSAiUzZFNjNNMCBBTU9MRUQgTENEIERyaXZlciIKLQlkZXBlbmRz IG9uIFNQSSAmJiBCQUNLTElHSFRfQ0xBU1NfREVWSUNFCi0JZGVmYXVsdCBuCi0JaGVscAotCSAg SWYgeW91IGhhdmUgYW4gUzZFNjNNMCBMQ0QgUGFuZWwsIHNheSBZIHRvIGVuYWJsZSBpdHMKLQkg IExDRCBjb250cm9sIGRyaXZlci4KLQogY29uZmlnIExDRF9MRDkwNDAKIAl0cmlzdGF0ZSAiTEQ5 MDQwIEFNT0xFRCBMQ0QgRHJpdmVyIgogCWRlcGVuZHMgb24gU1BJICYmIEJBQ0tMSUdIVF9DTEFT U19ERVZJQ0UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L01ha2VmaWxlIGIv ZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUKaW5kZXggMGRjYzJjNzQ1YzAzLi5jN2E0 NjM5MmE3NmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L01ha2VmaWxlCisr KyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L01ha2VmaWxlCkBAIC0xNSw3ICsxNSw2IEBAIG9i ai0kKENPTkZJR19MQ0RfTE1TNTAxS0YwMykJCSs9IGxtczUwMWtmMDMubwogb2JqLSQoQ09ORklH X0xDRF9MVFYzNTBRVikJCSs9IGx0djM1MHF2Lm8KIG9iai0kKENPTkZJR19MQ0RfT1RNMzIyNUEp CQkrPSBvdG0zMjI1YS5vCiBvYmotJChDT05GSUdfTENEX1BMQVRGT1JNKQkJKz0gcGxhdGZvcm1f bGNkLm8KLW9iai0kKENPTkZJR19MQ0RfUzZFNjNNMCkJCSs9IHM2ZTYzbTAubwogb2JqLSQoQ09O RklHX0xDRF9URE8yNE0pCQkrPSB0ZG8yNG0ubwogb2JqLSQoQ09ORklHX0xDRF9UT1NBKQkJCSs9 IHRvc2FfbGNkLm8KIG9iai0kKENPTkZJR19MQ0RfVkdHMjQzMkE0KQkJKz0gdmdnMjQzMmE0Lm8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3M2ZTYzbTAuYyBiL2RyaXZlcnMv dmlkZW8vYmFja2xpZ2h0L3M2ZTYzbTAuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg M2M0YTIyYTMwNjNhLi4wMDAwMDAwMDAwMDAKLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQv czZlNjNtMC5jCisrKyAvZGV2L251bGwKQEAgLTEsODU3ICswLDAgQEAKLS8qCi0gKiBTNkU2M00w IEFNT0xFRCBMQ0QgcGFuZWwgZHJpdmVyLgotICoKLSAqIEF1dGhvcjogSW5LaSBEYWUgIDxpbmtp LmRhZUBzYW1zdW5nLmNvbT4KLSAqCi0gKiBEZXJpdmVkIGZyb20gZHJpdmVycy92aWRlby9vbWFw L2xjZC1hcG9sbG9uLmMKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAotICogdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCi0g KiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyCi0gKiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICovCi0KLSNp bmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2lu Y2x1ZGUgPGxpbnV4L2ZiLmg+Ci0jaW5jbHVkZSA8bGludXgvZ3Bpby5oPgotI2luY2x1ZGUgPGxp bnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2lycS5oPgotI2luY2x1ZGUgPGxpbnV4 L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2xjZC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLSNpbmNsdWRlIDxsaW51eC93YWl0Lmg+ Ci0KLSNpbmNsdWRlICJzNmU2M20wX2dhbW1hLmgiCi0KLSNkZWZpbmUgU0xFRVBNU0VDCQkweDEw MDAKLSNkZWZpbmUgRU5EREVGCQkJMHgyMDAwCi0jZGVmaW5lCURFRk1BU0sJCQkweEZGMDAKLSNk ZWZpbmUgQ09NTUFORF9PTkxZCQkweEZFCi0jZGVmaW5lIERBVEFfT05MWQkJMHhGRgotCi0jZGVm aW5lIE1JTl9CUklHSFRORVNTCQkwCi0jZGVmaW5lIE1BWF9CUklHSFRORVNTCQkxMAotCi1zdHJ1 Y3QgczZlNjNtMCB7Ci0Jc3RydWN0IGRldmljZQkJCSpkZXY7Ci0Jc3RydWN0IHNwaV9kZXZpY2UJ CSpzcGk7Ci0JdW5zaWduZWQgaW50CQkJcG93ZXI7Ci0JdW5zaWduZWQgaW50CQkJY3VycmVudF9i cmlnaHRuZXNzOwotCXVuc2lnbmVkIGludAkJCWdhbW1hX21vZGU7Ci0JdW5zaWduZWQgaW50CQkJ Z2FtbWFfdGFibGVfY291bnQ7Ci0Jc3RydWN0IGxjZF9kZXZpY2UJCSpsZDsKLQlzdHJ1Y3QgYmFj a2xpZ2h0X2RldmljZQkJKmJkOwotCXN0cnVjdCBsY2RfcGxhdGZvcm1fZGF0YQkqbGNkX3BkOwot fTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHNlcV9wYW5lbF9jb25kaXRpb25fc2V0 W10gPSB7Ci0JMHhGOCwgMHgwMSwKLQlEQVRBX09OTFksIDB4MjcsCi0JREFUQV9PTkxZLCAweDI3 LAotCURBVEFfT05MWSwgMHgwNywKLQlEQVRBX09OTFksIDB4MDcsCi0JREFUQV9PTkxZLCAweDU0 LAotCURBVEFfT05MWSwgMHg5ZiwKLQlEQVRBX09OTFksIDB4NjMsCi0JREFUQV9PTkxZLCAweDg2 LAotCURBVEFfT05MWSwgMHgxYSwKLQlEQVRBX09OTFksIDB4MzMsCi0JREFUQV9PTkxZLCAweDBk LAotCURBVEFfT05MWSwgMHgwMCwKLQlEQVRBX09OTFksIDB4MDAsCi0KLQlFTkRERUYsIDB4MDAw MAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHNlcV9kaXNwbGF5X2NvbmRpdGlv bl9zZXRbXSA9IHsKLQkweGYyLCAweDAyLAotCURBVEFfT05MWSwgMHgwMywKLQlEQVRBX09OTFks IDB4MWMsCi0JREFUQV9PTkxZLCAweDEwLAotCURBVEFfT05MWSwgMHgxMCwKLQotCTB4ZjcsIDB4 MDMsCi0JREFUQV9PTkxZLCAweDAwLAotCURBVEFfT05MWSwgMHgwMCwKLQotCUVORERFRiwgMHgw MDAwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgc2VxX2dhbW1hX3NldHRpbmdb XSA9IHsKLQkweGZhLCAweDAwLAotCURBVEFfT05MWSwgMHgxOCwKLQlEQVRBX09OTFksIDB4MDgs Ci0JREFUQV9PTkxZLCAweDI0LAotCURBVEFfT05MWSwgMHg2NCwKLQlEQVRBX09OTFksIDB4NTYs Ci0JREFUQV9PTkxZLCAweDMzLAotCURBVEFfT05MWSwgMHhiNiwKLQlEQVRBX09OTFksIDB4YmEs Ci0JREFUQV9PTkxZLCAweGE4LAotCURBVEFfT05MWSwgMHhhYywKLQlEQVRBX09OTFksIDB4YjEs Ci0JREFUQV9PTkxZLCAweDlkLAotCURBVEFfT05MWSwgMHhjMSwKLQlEQVRBX09OTFksIDB4YzEs Ci0JREFUQV9PTkxZLCAweGI3LAotCURBVEFfT05MWSwgMHgwMCwKLQlEQVRBX09OTFksIDB4OWMs Ci0JREFUQV9PTkxZLCAweDAwLAotCURBVEFfT05MWSwgMHg5ZiwKLQlEQVRBX09OTFksIDB4MDAs Ci0JREFUQV9PTkxZLCAweGQ2LAotCi0JMHhmYSwgMHgwMSwKLQotCUVORERFRiwgMHgwMDAwCi19 OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgc2VxX2V0Y19jb25kaXRpb25fc2V0W10g PSB7Ci0JMHhmNiwgMHgwMCwKLQlEQVRBX09OTFksIDB4OGMsCi0JREFUQV9PTkxZLCAweDA3LAot Ci0JMHhiMywgMHhjLAotCi0JMHhiNSwgMHgyYywKLQlEQVRBX09OTFksIDB4MTIsCi0JREFUQV9P TkxZLCAweDBjLAotCURBVEFfT05MWSwgMHgwYSwKLQlEQVRBX09OTFksIDB4MTAsCi0JREFUQV9P TkxZLCAweDBlLAotCURBVEFfT05MWSwgMHgxNywKLQlEQVRBX09OTFksIDB4MTMsCi0JREFUQV9P TkxZLCAweDFmLAotCURBVEFfT05MWSwgMHgxYSwKLQlEQVRBX09OTFksIDB4MmEsCi0JREFUQV9P TkxZLCAweDI0LAotCURBVEFfT05MWSwgMHgxZiwKLQlEQVRBX09OTFksIDB4MWIsCi0JREFUQV9P TkxZLCAweDFhLAotCURBVEFfT05MWSwgMHgxNywKLQotCURBVEFfT05MWSwgMHgyYiwKLQlEQVRB X09OTFksIDB4MjYsCi0JREFUQV9PTkxZLCAweDIyLAotCURBVEFfT05MWSwgMHgyMCwKLQlEQVRB X09OTFksIDB4M2EsCi0JREFUQV9PTkxZLCAweDM0LAotCURBVEFfT05MWSwgMHgzMCwKLQlEQVRB X09OTFksIDB4MmMsCi0JREFUQV9PTkxZLCAweDI5LAotCURBVEFfT05MWSwgMHgyNiwKLQlEQVRB X09OTFksIDB4MjUsCi0JREFUQV9PTkxZLCAweDIzLAotCURBVEFfT05MWSwgMHgyMSwKLQlEQVRB X09OTFksIDB4MjAsCi0JREFUQV9PTkxZLCAweDFlLAotCURBVEFfT05MWSwgMHgxZSwKLQotCTB4 YjYsIDB4MDAsCi0JREFUQV9PTkxZLCAweDAwLAotCURBVEFfT05MWSwgMHgxMSwKLQlEQVRBX09O TFksIDB4MjIsCi0JREFUQV9PTkxZLCAweDMzLAotCURBVEFfT05MWSwgMHg0NCwKLQlEQVRBX09O TFksIDB4NDQsCi0JREFUQV9PTkxZLCAweDQ0LAotCi0JREFUQV9PTkxZLCAweDU1LAotCURBVEFf T05MWSwgMHg1NSwKLQlEQVRBX09OTFksIDB4NjYsCi0JREFUQV9PTkxZLCAweDY2LAotCURBVEFf T05MWSwgMHg2NiwKLQlEQVRBX09OTFksIDB4NjYsCi0JREFUQV9PTkxZLCAweDY2LAotCURBVEFf T05MWSwgMHg2NiwKLQotCTB4YjcsIDB4MmMsCi0JREFUQV9PTkxZLCAweDEyLAotCURBVEFfT05M WSwgMHgwYywKLQlEQVRBX09OTFksIDB4MGEsCi0JREFUQV9PTkxZLCAweDEwLAotCURBVEFfT05M WSwgMHgwZSwKLQlEQVRBX09OTFksIDB4MTcsCi0JREFUQV9PTkxZLCAweDEzLAotCURBVEFfT05M WSwgMHgxZiwKLQlEQVRBX09OTFksIDB4MWEsCi0JREFUQV9PTkxZLCAweDJhLAotCURBVEFfT05M WSwgMHgyNCwKLQlEQVRBX09OTFksIDB4MWYsCi0JREFUQV9PTkxZLCAweDFiLAotCURBVEFfT05M WSwgMHgxYSwKLQlEQVRBX09OTFksIDB4MTcsCi0KLQlEQVRBX09OTFksIDB4MmIsCi0JREFUQV9P TkxZLCAweDI2LAotCURBVEFfT05MWSwgMHgyMiwKLQlEQVRBX09OTFksIDB4MjAsCi0JREFUQV9P TkxZLCAweDNhLAotCURBVEFfT05MWSwgMHgzNCwKLQlEQVRBX09OTFksIDB4MzAsCi0JREFUQV9P TkxZLCAweDJjLAotCURBVEFfT05MWSwgMHgyOSwKLQlEQVRBX09OTFksIDB4MjYsCi0JREFUQV9P TkxZLCAweDI1LAotCURBVEFfT05MWSwgMHgyMywKLQlEQVRBX09OTFksIDB4MjEsCi0JREFUQV9P TkxZLCAweDIwLAotCURBVEFfT05MWSwgMHgxZSwKLQlEQVRBX09OTFksIDB4MWUsCi0KLQkweGI4 LCAweDAwLAotCURBVEFfT05MWSwgMHgwMCwKLQlEQVRBX09OTFksIDB4MTEsCi0JREFUQV9PTkxZ LCAweDIyLAotCURBVEFfT05MWSwgMHgzMywKLQlEQVRBX09OTFksIDB4NDQsCi0JREFUQV9PTkxZ LCAweDQ0LAotCURBVEFfT05MWSwgMHg0NCwKLQotCURBVEFfT05MWSwgMHg1NSwKLQlEQVRBX09O TFksIDB4NTUsCi0JREFUQV9PTkxZLCAweDY2LAotCURBVEFfT05MWSwgMHg2NiwKLQlEQVRBX09O TFksIDB4NjYsCi0JREFUQV9PTkxZLCAweDY2LAotCURBVEFfT05MWSwgMHg2NiwKLQlEQVRBX09O TFksIDB4NjYsCi0KLQkweGI5LCAweDJjLAotCURBVEFfT05MWSwgMHgxMiwKLQlEQVRBX09OTFks IDB4MGMsCi0JREFUQV9PTkxZLCAweDBhLAotCURBVEFfT05MWSwgMHgxMCwKLQlEQVRBX09OTFks IDB4MGUsCi0JREFUQV9PTkxZLCAweDE3LAotCURBVEFfT05MWSwgMHgxMywKLQlEQVRBX09OTFks IDB4MWYsCi0JREFUQV9PTkxZLCAweDFhLAotCURBVEFfT05MWSwgMHgyYSwKLQlEQVRBX09OTFks IDB4MjQsCi0JREFUQV9PTkxZLCAweDFmLAotCURBVEFfT05MWSwgMHgxYiwKLQlEQVRBX09OTFks IDB4MWEsCi0JREFUQV9PTkxZLCAweDE3LAotCi0JREFUQV9PTkxZLCAweDJiLAotCURBVEFfT05M WSwgMHgyNiwKLQlEQVRBX09OTFksIDB4MjIsCi0JREFUQV9PTkxZLCAweDIwLAotCURBVEFfT05M WSwgMHgzYSwKLQlEQVRBX09OTFksIDB4MzQsCi0JREFUQV9PTkxZLCAweDMwLAotCURBVEFfT05M WSwgMHgyYywKLQlEQVRBX09OTFksIDB4MjksCi0JREFUQV9PTkxZLCAweDI2LAotCURBVEFfT05M WSwgMHgyNSwKLQlEQVRBX09OTFksIDB4MjMsCi0JREFUQV9PTkxZLCAweDIxLAotCURBVEFfT05M WSwgMHgyMCwKLQlEQVRBX09OTFksIDB4MWUsCi0JREFUQV9PTkxZLCAweDFlLAotCi0JMHhiYSwg MHgwMCwKLQlEQVRBX09OTFksIDB4MDAsCi0JREFUQV9PTkxZLCAweDExLAotCURBVEFfT05MWSwg MHgyMiwKLQlEQVRBX09OTFksIDB4MzMsCi0JREFUQV9PTkxZLCAweDQ0LAotCURBVEFfT05MWSwg MHg0NCwKLQlEQVRBX09OTFksIDB4NDQsCi0KLQlEQVRBX09OTFksIDB4NTUsCi0JREFUQV9PTkxZ LCAweDU1LAotCURBVEFfT05MWSwgMHg2NiwKLQlEQVRBX09OTFksIDB4NjYsCi0JREFUQV9PTkxZ LCAweDY2LAotCURBVEFfT05MWSwgMHg2NiwKLQlEQVRBX09OTFksIDB4NjYsCi0JREFUQV9PTkxZ LCAweDY2LAotCi0JMHhjMSwgMHg0ZCwKLQlEQVRBX09OTFksIDB4OTYsCi0JREFUQV9PTkxZLCAw eDFkLAotCURBVEFfT05MWSwgMHgwMCwKLQlEQVRBX09OTFksIDB4MDAsCi0JREFUQV9PTkxZLCAw eDAxLAotCURBVEFfT05MWSwgMHhkZiwKLQlEQVRBX09OTFksIDB4MDAsCi0JREFUQV9PTkxZLCAw eDAwLAotCURBVEFfT05MWSwgMHgwMywKLQlEQVRBX09OTFksIDB4MWYsCi0JREFUQV9PTkxZLCAw eDAwLAotCURBVEFfT05MWSwgMHgwMCwKLQlEQVRBX09OTFksIDB4MDAsCi0JREFUQV9PTkxZLCAw eDAwLAotCURBVEFfT05MWSwgMHgwMCwKLQlEQVRBX09OTFksIDB4MDAsCi0JREFUQV9PTkxZLCAw eDAwLAotCURBVEFfT05MWSwgMHgwMCwKLQlEQVRBX09OTFksIDB4MDMsCi0JREFUQV9PTkxZLCAw eDA2LAotCURBVEFfT05MWSwgMHgwOSwKLQlEQVRBX09OTFksIDB4MGQsCi0JREFUQV9PTkxZLCAw eDBmLAotCURBVEFfT05MWSwgMHgxMiwKLQlEQVRBX09OTFksIDB4MTUsCi0JREFUQV9PTkxZLCAw eDE4LAotCi0JMHhiMiwgMHgxMCwKLQlEQVRBX09OTFksIDB4MTAsCi0JREFUQV9PTkxZLCAweDBi LAotCURBVEFfT05MWSwgMHgwNSwKLQotCUVORERFRiwgMHgwMDAwCi19OwotCi1zdGF0aWMgY29u c3QgdW5zaWduZWQgc2hvcnQgc2VxX2FjbF9vbltdID0gewotCS8qIEFDTCBvbiAqLwotCTB4YzAs IDB4MDEsCi0KLQlFTkRERUYsIDB4MDAwMAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNo b3J0IHNlcV9hY2xfb2ZmW10gPSB7Ci0JLyogQUNMIG9mZiAqLwotCTB4YzAsIDB4MDAsCi0KLQlF TkRERUYsIDB4MDAwMAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHNlcV9lbHZz c19vbltdID0gewotCS8qIEVMVlNTIG9uICovCi0JMHhiMSwgMHgwYiwKLQotCUVORERFRiwgMHgw MDAwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgc2VxX2VsdnNzX29mZltdID0g ewotCS8qIEVMVlNTIG9mZiAqLwotCTB4YjEsIDB4MGEsCi0KLQlFTkRERUYsIDB4MDAwMAotfTsK LQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHNlcV9zdGFuZF9ieV9vZmZbXSA9IHsKLQkw eDExLCBDT01NQU5EX09OTFksCi0KLQlFTkRERUYsIDB4MDAwMAotfTsKLQotc3RhdGljIGNvbnN0 IHVuc2lnbmVkIHNob3J0IHNlcV9zdGFuZF9ieV9vbltdID0gewotCTB4MTAsIENPTU1BTkRfT05M WSwKLQotCUVORERFRiwgMHgwMDAwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQg c2VxX2Rpc3BsYXlfb25bXSA9IHsKLQkweDI5LCBDT01NQU5EX09OTFksCi0KLQlFTkRERUYsIDB4 MDAwMAotfTsKLQotCi1zdGF0aWMgaW50IHM2ZTYzbTBfc3BpX3dyaXRlX2J5dGUoc3RydWN0IHM2 ZTYzbTAgKmxjZCwgaW50IGFkZHIsIGludCBkYXRhKQotewotCXUxNiBidWZbMV07Ci0Jc3RydWN0 IHNwaV9tZXNzYWdlIG1zZzsKLQotCXN0cnVjdCBzcGlfdHJhbnNmZXIgeGZlciA9IHsKLQkJLmxl bgkJPSAyLAotCQkudHhfYnVmCQk9IGJ1ZiwKLQl9OwotCi0JYnVmWzBdID0gKGFkZHIgPDwgOCkg fCBkYXRhOwotCi0Jc3BpX21lc3NhZ2VfaW5pdCgmbXNnKTsKLQlzcGlfbWVzc2FnZV9hZGRfdGFp bCgmeGZlciwgJm1zZyk7Ci0KLQlyZXR1cm4gc3BpX3N5bmMobGNkLT5zcGksICZtc2cpOwotfQot Ci1zdGF0aWMgaW50IHM2ZTYzbTBfc3BpX3dyaXRlKHN0cnVjdCBzNmU2M20wICpsY2QsIHVuc2ln bmVkIGNoYXIgYWRkcmVzcywKLQl1bnNpZ25lZCBjaGFyIGNvbW1hbmQpCi17Ci0JaW50IHJldCA9 IDA7Ci0KLQlpZiAoYWRkcmVzcyAhPSBEQVRBX09OTFkpCi0JCXJldCA9IHM2ZTYzbTBfc3BpX3dy aXRlX2J5dGUobGNkLCAweDAsIGFkZHJlc3MpOwotCWlmIChjb21tYW5kICE9IENPTU1BTkRfT05M WSkKLQkJcmV0ID0gczZlNjNtMF9zcGlfd3JpdGVfYnl0ZShsY2QsIDB4MSwgY29tbWFuZCk7Ci0K LQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IHM2ZTYzbTBfcGFuZWxfc2VuZF9zZXF1ZW5j ZShzdHJ1Y3QgczZlNjNtMCAqbGNkLAotCWNvbnN0IHVuc2lnbmVkIHNob3J0ICp3YnVmKQotewot CWludCByZXQgPSAwLCBpID0gMDsKLQotCXdoaWxlICgod2J1ZltpXSAmIERFRk1BU0spICE9IEVO RERFRikgewotCQlpZiAoKHdidWZbaV0gJiBERUZNQVNLKSAhPSBTTEVFUE1TRUMpIHsKLQkJCXJl dCA9IHM2ZTYzbTBfc3BpX3dyaXRlKGxjZCwgd2J1ZltpXSwgd2J1ZltpKzFdKTsKLQkJCWlmIChy ZXQpCi0JCQkJYnJlYWs7Ci0JCX0gZWxzZSB7Ci0JCQltc2xlZXAod2J1ZltpKzFdKTsKLQkJfQot CQlpICs9IDI7Ci0JfQotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBfczZlNjNtMF9n YW1tYV9jdGwoc3RydWN0IHM2ZTYzbTAgKmxjZCwgY29uc3QgdW5zaWduZWQgaW50ICpnYW1tYSkK LXsKLQl1bnNpZ25lZCBpbnQgaSA9IDA7Ci0JaW50IHJldCA9IDA7Ci0KLQkvKiBkaXNhYmxlIGdh bW1hIHRhYmxlIHVwZGF0aW5nLiAqLwotCXJldCA9IHM2ZTYzbTBfc3BpX3dyaXRlKGxjZCwgMHhm YSwgMHgwMCk7Ci0JaWYgKHJldCkgewotCQlkZXZfZXJyKGxjZC0+ZGV2LCAiZmFpbGVkIHRvIGRp c2FibGUgZ2FtbWEgdGFibGUgdXBkYXRpbmcuXG4iKTsKLQkJZ290byBnYW1tYV9lcnI7Ci0JfQot Ci0JZm9yIChpID0gMCA7IGkgPCBHQU1NQV9UQUJMRV9DT1VOVDsgaSsrKSB7Ci0JCXJldCA9IHM2 ZTYzbTBfc3BpX3dyaXRlKGxjZCwgREFUQV9PTkxZLCBnYW1tYVtpXSk7Ci0JCWlmIChyZXQpIHsK LQkJCWRldl9lcnIobGNkLT5kZXYsICJmYWlsZWQgdG8gc2V0IGdhbW1hIHRhYmxlLlxuIik7Ci0J CQlnb3RvIGdhbW1hX2VycjsKLQkJfQotCX0KLQotCS8qIHVwZGF0ZSBnYW1tYSB0YWJsZS4gKi8K LQlyZXQgPSBzNmU2M20wX3NwaV93cml0ZShsY2QsIDB4ZmEsIDB4MDEpOwotCWlmIChyZXQpCi0J CWRldl9lcnIobGNkLT5kZXYsICJmYWlsZWQgdG8gdXBkYXRlIGdhbW1hIHRhYmxlLlxuIik7Ci0K LWdhbW1hX2VycjoKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IHM2ZTYzbTBfZ2FtbWFf Y3RsKHN0cnVjdCBzNmU2M20wICpsY2QsIGludCBnYW1tYSkKLXsKLQlpbnQgcmV0ID0gMDsKLQot CXJldCA9IF9zNmU2M20wX2dhbW1hX2N0bChsY2QsIGdhbW1hX3RhYmxlLmdhbW1hXzIyX3RhYmxl W2dhbW1hXSk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi0KLXN0YXRpYyBpbnQgczZlNjNtMF9sZGlf aW5pdChzdHJ1Y3QgczZlNjNtMCAqbGNkKQotewotCWludCByZXQsIGk7Ci0JY29uc3QgdW5zaWdu ZWQgc2hvcnQgKmluaXRfc2VxW10gPSB7Ci0JCXNlcV9wYW5lbF9jb25kaXRpb25fc2V0LAotCQlz ZXFfZGlzcGxheV9jb25kaXRpb25fc2V0LAotCQlzZXFfZ2FtbWFfc2V0dGluZywKLQkJc2VxX2V0 Y19jb25kaXRpb25fc2V0LAotCQlzZXFfYWNsX29uLAotCQlzZXFfZWx2c3Nfb24sCi0JfTsKLQot CWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGluaXRfc2VxKTsgaSsrKSB7Ci0JCXJldCA9IHM2 ZTYzbTBfcGFuZWxfc2VuZF9zZXF1ZW5jZShsY2QsIGluaXRfc2VxW2ldKTsKLQkJaWYgKHJldCkK LQkJCWJyZWFrOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgczZlNjNtMF9s ZGlfZW5hYmxlKHN0cnVjdCBzNmU2M20wICpsY2QpCi17Ci0JaW50IHJldCA9IDAsIGk7Ci0JY29u c3QgdW5zaWduZWQgc2hvcnQgKmVuYWJsZV9zZXFbXSA9IHsKLQkJc2VxX3N0YW5kX2J5X29mZiwK LQkJc2VxX2Rpc3BsYXlfb24sCi0JfTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVu YWJsZV9zZXEpOyBpKyspIHsKLQkJcmV0ID0gczZlNjNtMF9wYW5lbF9zZW5kX3NlcXVlbmNlKGxj ZCwgZW5hYmxlX3NlcVtpXSk7Ci0JCWlmIChyZXQpCi0JCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4g cmV0OwotfQotCi1zdGF0aWMgaW50IHM2ZTYzbTBfbGRpX2Rpc2FibGUoc3RydWN0IHM2ZTYzbTAg KmxjZCkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gczZlNjNtMF9wYW5lbF9zZW5kX3NlcXVlbmNl KGxjZCwgc2VxX3N0YW5kX2J5X29uKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQg czZlNjNtMF9wb3dlcl9pc19vbihpbnQgcG93ZXIpCi17Ci0JcmV0dXJuIHBvd2VyIDw9IEZCX0JM QU5LX05PUk1BTDsKLX0KLQotc3RhdGljIGludCBzNmU2M20wX3Bvd2VyX29uKHN0cnVjdCBzNmU2 M20wICpsY2QpCi17Ci0JaW50IHJldCA9IDA7Ci0Jc3RydWN0IGxjZF9wbGF0Zm9ybV9kYXRhICpw ZDsKLQlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmQ7Ci0KLQlwZCA9IGxjZC0+bGNkX3BkOwot CWJkID0gbGNkLT5iZDsKLQotCWlmICghcGQtPnBvd2VyX29uKSB7Ci0JCWRldl9lcnIobGNkLT5k ZXYsICJwb3dlcl9vbiBpcyBOVUxMLlxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXBk LT5wb3dlcl9vbihsY2QtPmxkLCAxKTsKLQltc2xlZXAocGQtPnBvd2VyX29uX2RlbGF5KTsKLQot CWlmICghcGQtPnJlc2V0KSB7Ci0JCWRldl9lcnIobGNkLT5kZXYsICJyZXNldCBpcyBOVUxMLlxu Iik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXBkLT5yZXNldChsY2QtPmxkKTsKLQltc2xl ZXAocGQtPnJlc2V0X2RlbGF5KTsKLQotCXJldCA9IHM2ZTYzbTBfbGRpX2luaXQobGNkKTsKLQlp ZiAocmV0KSB7Ci0JCWRldl9lcnIobGNkLT5kZXYsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsZGku XG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlyZXQgPSBzNmU2M20wX2xkaV9lbmFibGUobGNk KTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIobGNkLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIGxk aS5cbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCS8qIHNldCBicmlnaHRuZXNzIHRvIGN1cnJl bnQgdmFsdWUgYWZ0ZXIgcG93ZXIgb24gb3IgcmVzdW1lLiAqLwotCXJldCA9IHM2ZTYzbTBfZ2Ft bWFfY3RsKGxjZCwgYmQtPnByb3BzLmJyaWdodG5lc3MpOwotCWlmIChyZXQpIHsKLQkJZGV2X2Vy cihsY2QtPmRldiwgImxjZCBnYW1tYSBzZXR0aW5nIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gcmV0 OwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHM2ZTYzbTBfcG93ZXJfb2ZmKHN0 cnVjdCBzNmU2M20wICpsY2QpCi17Ci0JaW50IHJldDsKLQlzdHJ1Y3QgbGNkX3BsYXRmb3JtX2Rh dGEgKnBkOwotCi0JcGQgPSBsY2QtPmxjZF9wZDsKLQotCXJldCA9IHM2ZTYzbTBfbGRpX2Rpc2Fi bGUobGNkKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIobGNkLT5kZXYsICJsY2Qgc2V0dGluZyBm YWlsZWQuXG4iKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCi0JbXNsZWVwKHBkLT5wb3dlcl9vZmZf ZGVsYXkpOwotCi0JcGQtPnBvd2VyX29uKGxjZC0+bGQsIDApOwotCi0JcmV0dXJuIDA7Ci19Ci0K LXN0YXRpYyBpbnQgczZlNjNtMF9wb3dlcihzdHJ1Y3QgczZlNjNtMCAqbGNkLCBpbnQgcG93ZXIp Ci17Ci0JaW50IHJldCA9IDA7Ci0KLQlpZiAoczZlNjNtMF9wb3dlcl9pc19vbihwb3dlcikgJiYg IXM2ZTYzbTBfcG93ZXJfaXNfb24obGNkLT5wb3dlcikpCi0JCXJldCA9IHM2ZTYzbTBfcG93ZXJf b24obGNkKTsKLQllbHNlIGlmICghczZlNjNtMF9wb3dlcl9pc19vbihwb3dlcikgJiYgczZlNjNt MF9wb3dlcl9pc19vbihsY2QtPnBvd2VyKSkKLQkJcmV0ID0gczZlNjNtMF9wb3dlcl9vZmYobGNk KTsKLQotCWlmICghcmV0KQotCQlsY2QtPnBvd2VyID0gcG93ZXI7Ci0KLQlyZXR1cm4gcmV0Owot fQotCi1zdGF0aWMgaW50IHM2ZTYzbTBfc2V0X3Bvd2VyKHN0cnVjdCBsY2RfZGV2aWNlICpsZCwg aW50IHBvd2VyKQotewotCXN0cnVjdCBzNmU2M20wICpsY2QgPSBsY2RfZ2V0X2RhdGEobGQpOwot Ci0JaWYgKHBvd2VyICE9IEZCX0JMQU5LX1VOQkxBTksgJiYgcG93ZXIgIT0gRkJfQkxBTktfUE9X RVJET1dOICYmCi0JCXBvd2VyICE9IEZCX0JMQU5LX05PUk1BTCkgewotCQlkZXZfZXJyKGxjZC0+ ZGV2LCAicG93ZXIgdmFsdWUgc2hvdWxkIGJlIDAsIDEgb3IgNC5cbiIpOwotCQlyZXR1cm4gLUVJ TlZBTDsKLQl9Ci0KLQlyZXR1cm4gczZlNjNtMF9wb3dlcihsY2QsIHBvd2VyKTsKLX0KLQotc3Rh dGljIGludCBzNmU2M20wX2dldF9wb3dlcihzdHJ1Y3QgbGNkX2RldmljZSAqbGQpCi17Ci0Jc3Ry dWN0IHM2ZTYzbTAgKmxjZCA9IGxjZF9nZXRfZGF0YShsZCk7Ci0KLQlyZXR1cm4gbGNkLT5wb3dl cjsKLX0KLQotc3RhdGljIGludCBzNmU2M20wX3NldF9icmlnaHRuZXNzKHN0cnVjdCBiYWNrbGln aHRfZGV2aWNlICpiZCkKLXsKLQlpbnQgcmV0ID0gMCwgYnJpZ2h0bmVzcyA9IGJkLT5wcm9wcy5i cmlnaHRuZXNzOwotCXN0cnVjdCBzNmU2M20wICpsY2QgPSBibF9nZXRfZGF0YShiZCk7Ci0KLQlp ZiAoYnJpZ2h0bmVzcyA8IE1JTl9CUklHSFRORVNTIHx8Ci0JCWJyaWdodG5lc3MgPiBiZC0+cHJv cHMubWF4X2JyaWdodG5lc3MpIHsKLQkJZGV2X2VycigmYmQtPmRldiwgImxjZCBicmlnaHRuZXNz IHNob3VsZCBiZSAlZCB0byAlZC5cbiIsCi0JCQlNSU5fQlJJR0hUTkVTUywgTUFYX0JSSUdIVE5F U1MpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXQgPSBzNmU2M20wX2dhbW1hX2N0bChs Y2QsIGJkLT5wcm9wcy5icmlnaHRuZXNzKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJmJkLT5k ZXYsICJsY2QgYnJpZ2h0bmVzcyBzZXR0aW5nIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gLUVJTzsK LQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgc3RydWN0IGxjZF9vcHMgczZlNjNtMF9s Y2Rfb3BzID0gewotCS5zZXRfcG93ZXIgPSBzNmU2M20wX3NldF9wb3dlciwKLQkuZ2V0X3Bvd2Vy ID0gczZlNjNtMF9nZXRfcG93ZXIsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGJhY2tsaWdo dF9vcHMgczZlNjNtMF9iYWNrbGlnaHRfb3BzICA9IHsKLQkudXBkYXRlX3N0YXR1cyA9IHM2ZTYz bTBfc2V0X2JyaWdodG5lc3MsCi19OwotCi1zdGF0aWMgc3NpemVfdCBzNmU2M20wX3N5c2ZzX3No b3dfZ2FtbWFfbW9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCQkJICAgICAgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKLXsKLQlzdHJ1Y3QgczZlNjNtMCAqbGNkID0g ZGV2X2dldF9kcnZkYXRhKGRldik7Ci0JY2hhciB0ZW1wWzEwXTsKLQotCXN3aXRjaCAobGNkLT5n YW1tYV9tb2RlKSB7Ci0JY2FzZSAwOgotCQlzcHJpbnRmKHRlbXAsICIyLjIgbW9kZVxuIik7Ci0J CXN0cmNhdChidWYsIHRlbXApOwotCQlicmVhazsKLQljYXNlIDE6Ci0JCXNwcmludGYodGVtcCwg IjEuOSBtb2RlXG4iKTsKLQkJc3RyY2F0KGJ1ZiwgdGVtcCk7Ci0JCWJyZWFrOwotCWNhc2UgMjoK LQkJc3ByaW50Zih0ZW1wLCAiMS43IG1vZGVcbiIpOwotCQlzdHJjYXQoYnVmLCB0ZW1wKTsKLQkJ YnJlYWs7Ci0JZGVmYXVsdDoKLQkJZGV2X2luZm8oZGV2LCAiZ2FtbWEgbW9kZSBjb3VsZCBiZSAw OjIuMiwgMToxLjkgb3IgMjoxLjcpbiIpOwotCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gc3RybGVu KGJ1Zik7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IHM2ZTYzbTBfc3lzZnNfc3RvcmVfZ2FtbWFfbW9k ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCQkJICAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLAotCQkJCSAgICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCi17Ci0Jc3Ry dWN0IHM2ZTYzbTAgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCXN0cnVjdCBiYWNrbGln aHRfZGV2aWNlICpiZCA9IE5VTEw7Ci0JaW50IGJyaWdodG5lc3MsIHJjOwotCi0JcmMgPSBrc3Ry dG91aW50KGJ1ZiwgMCwgJmxjZC0+Z2FtbWFfbW9kZSk7Ci0JaWYgKHJjIDwgMCkKLQkJcmV0dXJu IHJjOwotCi0JYmQgPSBsY2QtPmJkOwotCi0JYnJpZ2h0bmVzcyA9IGJkLT5wcm9wcy5icmlnaHRu ZXNzOwotCi0Jc3dpdGNoIChsY2QtPmdhbW1hX21vZGUpIHsKLQljYXNlIDA6Ci0JCV9zNmU2M20w X2dhbW1hX2N0bChsY2QsIGdhbW1hX3RhYmxlLmdhbW1hXzIyX3RhYmxlW2JyaWdodG5lc3NdKTsK LQkJYnJlYWs7Ci0JY2FzZSAxOgotCQlfczZlNjNtMF9nYW1tYV9jdGwobGNkLCBnYW1tYV90YWJs ZS5nYW1tYV8xOV90YWJsZVticmlnaHRuZXNzXSk7Ci0JCWJyZWFrOwotCWNhc2UgMjoKLQkJX3M2 ZTYzbTBfZ2FtbWFfY3RsKGxjZCwgZ2FtbWFfdGFibGUuZ2FtbWFfMTdfdGFibGVbYnJpZ2h0bmVz c10pOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlkZXZfaW5mbyhkZXYsICJnYW1tYSBtb2RlIGNv dWxkIGJlIDA6Mi4yLCAxOjEuOSBvciAyOjEuN1xuIik7Ci0JCV9zNmU2M20wX2dhbW1hX2N0bChs Y2QsIGdhbW1hX3RhYmxlLmdhbW1hXzIyX3RhYmxlW2JyaWdodG5lc3NdKTsKLQkJYnJlYWs7Ci0J fQotCXJldHVybiBsZW47Ci19Ci0KLXN0YXRpYyBERVZJQ0VfQVRUUihnYW1tYV9tb2RlLCAwNjQ0 LAotCQlzNmU2M20wX3N5c2ZzX3Nob3dfZ2FtbWFfbW9kZSwgczZlNjNtMF9zeXNmc19zdG9yZV9n YW1tYV9tb2RlKTsKLQotc3RhdGljIHNzaXplX3QgczZlNjNtMF9zeXNmc19zaG93X2dhbW1hX3Rh YmxlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXN0cnVjdCBzNmU2M20wICpsY2QgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKLQljaGFyIHRlbXBbM107Ci0KLQlzcHJpbnRmKHRlbXAsICIldVxuIiwgbGNk LT5nYW1tYV90YWJsZV9jb3VudCk7Ci0Jc3RyY3B5KGJ1ZiwgdGVtcCk7Ci0KLQlyZXR1cm4gc3Ry bGVuKGJ1Zik7Ci19Ci1zdGF0aWMgREVWSUNFX0FUVFIoZ2FtbWFfdGFibGUsIDA0NDQsCi0JCXM2 ZTYzbTBfc3lzZnNfc2hvd19nYW1tYV90YWJsZSwgTlVMTCk7Ci0KLXN0YXRpYyBpbnQgczZlNjNt MF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCWludCByZXQgPSAwOwotCXN0cnVj dCBzNmU2M20wICpsY2QgPSBOVUxMOwotCXN0cnVjdCBsY2RfZGV2aWNlICpsZCA9IE5VTEw7Ci0J c3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJkID0gTlVMTDsKLQlzdHJ1Y3QgYmFja2xpZ2h0X3By b3BlcnRpZXMgcHJvcHM7Ci0KLQlsY2QgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBzaXplb2Yo c3RydWN0IHM2ZTYzbTApLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWxjZCkKLQkJcmV0dXJuIC1FTk9N RU07Ci0KLQkvKiBzNmU2M20wIGxjZCBwYW5lbCB1c2VzIDMtd2lyZSA5Yml0cyBTUEkgTW9kZS4g Ki8KLQlzcGktPmJpdHNfcGVyX3dvcmQgPSA5OwotCi0JcmV0ID0gc3BpX3NldHVwKHNwaSk7Ci0J aWYgKHJldCA8IDApIHsKLQkJZGV2X2Vycigmc3BpLT5kZXYsICJzcGkgc2V0dXAgZmFpbGVkLlxu Iik7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JbGNkLT5zcGkgPSBzcGk7Ci0JbGNkLT5kZXYgPSAm c3BpLT5kZXY7Ci0KLQlsY2QtPmxjZF9wZCA9IGRldl9nZXRfcGxhdGRhdGEoJnNwaS0+ZGV2KTsK LQlpZiAoIWxjZC0+bGNkX3BkKSB7Ci0JCWRldl9lcnIoJnNwaS0+ZGV2LCAicGxhdGZvcm0gZGF0 YSBpcyBOVUxMLlxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWxkID0gZGV2bV9sY2Rf ZGV2aWNlX3JlZ2lzdGVyKCZzcGktPmRldiwgInM2ZTYzbTAiLCAmc3BpLT5kZXYsIGxjZCwKLQkJ CQkmczZlNjNtMF9sY2Rfb3BzKTsKLQlpZiAoSVNfRVJSKGxkKSkKLQkJcmV0dXJuIFBUUl9FUlIo bGQpOwotCi0JbGNkLT5sZCA9IGxkOwotCi0JbWVtc2V0KCZwcm9wcywgMCwgc2l6ZW9mKHN0cnVj dCBiYWNrbGlnaHRfcHJvcGVydGllcykpOwotCXByb3BzLnR5cGUgPSBCQUNLTElHSFRfUkFXOwot CXByb3BzLm1heF9icmlnaHRuZXNzID0gTUFYX0JSSUdIVE5FU1M7Ci0KLQliZCA9IGRldm1fYmFj a2xpZ2h0X2RldmljZV9yZWdpc3Rlcigmc3BpLT5kZXYsICJzNmU2M20wYmwtYmwiLAotCQkJCQkm c3BpLT5kZXYsIGxjZCwgJnM2ZTYzbTBfYmFja2xpZ2h0X29wcywKLQkJCQkJJnByb3BzKTsKLQlp ZiAoSVNfRVJSKGJkKSkKLQkJcmV0dXJuIFBUUl9FUlIoYmQpOwotCi0JYmQtPnByb3BzLmJyaWdo dG5lc3MgPSBNQVhfQlJJR0hUTkVTUzsKLQlsY2QtPmJkID0gYmQ7Ci0KLQkvKgotCSAqIGl0IGdl dHMgZ2FtbWEgdGFibGUgY291bnQgYXZhaWxhYmxlIHNvIGl0IGdldHMgdXNlcgotCSAqIGtub3cg dGhhdC4KLQkgKi8KLQlsY2QtPmdhbW1hX3RhYmxlX2NvdW50ID0KLQkgICAgc2l6ZW9mKGdhbW1h X3RhYmxlKSAvIChNQVhfR0FNTUFfTEVWRUwgKiBzaXplb2YoaW50ICopKTsKLQotCXJldCA9IGRl dmljZV9jcmVhdGVfZmlsZSgmKHNwaS0+ZGV2KSwgJmRldl9hdHRyX2dhbW1hX21vZGUpOwotCWlm IChyZXQgPCAwKQotCQlkZXZfZXJyKCYoc3BpLT5kZXYpLCAiZmFpbGVkIHRvIGFkZCBzeXNmcyBl bnRyaWVzXG4iKTsKLQotCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZSgmKHNwaS0+ZGV2KSwgJmRl dl9hdHRyX2dhbW1hX3RhYmxlKTsKLQlpZiAocmV0IDwgMCkKLQkJZGV2X2VycigmKHNwaS0+ZGV2 KSwgImZhaWxlZCB0byBhZGQgc3lzZnMgZW50cmllc1xuIik7Ci0KLQkvKgotCSAqIGlmIGxjZCBw YW5lbCB3YXMgb24gZnJvbSBib290bG9hZGVyIGxpa2UgdS1ib290IHRoZW4KLQkgKiBkbyBub3Qg bGNkIG9uLgotCSAqLwotCWlmICghbGNkLT5sY2RfcGQtPmxjZF9lbmFibGVkKSB7Ci0JCS8qCi0J CSAqIGlmIGxjZCBwYW5lbCB3YXMgb2ZmIGZyb20gYm9vdGxvYWRlciB0aGVuCi0JCSAqIGN1cnJl bnQgbGNkIHN0YXR1cyBpcyBwb3dlcmRvd24gYW5kIHRoZW4KLQkJICogaXQgZW5hYmxlcyBsY2Qg cGFuZWwuCi0JCSAqLwotCQlsY2QtPnBvd2VyID0gRkJfQkxBTktfUE9XRVJET1dOOwotCi0JCXM2 ZTYzbTBfcG93ZXIobGNkLCBGQl9CTEFOS19VTkJMQU5LKTsKLQl9IGVsc2UgewotCQlsY2QtPnBv d2VyID0gRkJfQkxBTktfVU5CTEFOSzsKLQl9Ci0KLQlzcGlfc2V0X2RydmRhdGEoc3BpLCBsY2Qp OwotCi0JZGV2X2luZm8oJnNwaS0+ZGV2LCAiczZlNjNtMCBwYW5lbCBkcml2ZXIgaGFzIGJlZW4g cHJvYmVkLlxuIik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzNmU2M20wX3JlbW92 ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBzNmU2M20wICpsY2QgPSBzcGlf Z2V0X2RydmRhdGEoc3BpKTsKLQotCXM2ZTYzbTBfcG93ZXIobGNkLCBGQl9CTEFOS19QT1dFUkRP V04pOwotCWRldmljZV9yZW1vdmVfZmlsZSgmc3BpLT5kZXYsICZkZXZfYXR0cl9nYW1tYV90YWJs ZSk7Ci0JZGV2aWNlX3JlbW92ZV9maWxlKCZzcGktPmRldiwgJmRldl9hdHRyX2dhbW1hX21vZGUp OwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBDT05GSUdfUE1fU0xFRVAKLXN0YXRpYyBpbnQg czZlNjNtMF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgczZlNjNtMCAq bGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0KLQlkZXZfZGJnKGRldiwgImxjZC0+cG93ZXIg PSAlZFxuIiwgbGNkLT5wb3dlcik7Ci0KLQkvKgotCSAqIHdoZW4gbGNkIHBhbmVsIGlzIHN1c3Bl bmQsIGxjZCBwYW5lbCBiZWNvbWVzIG9mZgotCSAqIHJlZ2FyZGxlc3Mgb2Ygc3RhdHVzLgotCSAq LwotCXJldHVybiBzNmU2M20wX3Bvd2VyKGxjZCwgRkJfQkxBTktfUE9XRVJET1dOKTsKLX0KLQot c3RhdGljIGludCBzNmU2M20wX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0 IHM2ZTYzbTAgKmxjZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCi0JbGNkLT5wb3dlciA9IEZC X0JMQU5LX1BPV0VSRE9XTjsKLQotCXJldHVybiBzNmU2M20wX3Bvd2VyKGxjZCwgRkJfQkxBTktf VU5CTEFOSyk7Ci19Ci0jZW5kaWYKLQotc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKHM2ZTYzbTBf cG1fb3BzLCBzNmU2M20wX3N1c3BlbmQsIHM2ZTYzbTBfcmVzdW1lKTsKLQotLyogUG93ZXIgZG93 biBhbGwgZGlzcGxheXMgb24gcmVib290LCBwb3dlcm9mZiBvciBoYWx0LiAqLwotc3RhdGljIHZv aWQgczZlNjNtMF9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQotewotCXN0cnVjdCBz NmU2M20wICpsY2QgPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKLQotCXM2ZTYzbTBfcG93ZXIobGNk LCBGQl9CTEFOS19QT1dFUkRPV04pOwotfQotCi1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgczZl NjNtMF9kcml2ZXIgPSB7Ci0JLmRyaXZlciA9IHsKLQkJLm5hbWUJPSAiczZlNjNtMCIsCi0JCS5w bQk9ICZzNmU2M20wX3BtX29wcywKLQl9LAotCS5wcm9iZQkJPSBzNmU2M20wX3Byb2JlLAotCS5y ZW1vdmUJCT0gczZlNjNtMF9yZW1vdmUsCi0JLnNodXRkb3duCT0gczZlNjNtMF9zaHV0ZG93biwK LX07Ci0KLW1vZHVsZV9zcGlfZHJpdmVyKHM2ZTYzbTBfZHJpdmVyKTsKLQotTU9EVUxFX0FVVEhP UigiSW5LaSBEYWUgPGlua2kuZGFlQHNhbXN1bmcuY29tPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9O KCJTNkU2M00wIExDRCBEcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQpkaWZmIC0t Z2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvczZlNjNtMF9nYW1tYS5oIGIvZHJpdmVycy92 aWRlby9iYWNrbGlnaHQvczZlNjNtMF9nYW1tYS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAyYzQ0YmRiMDY5NmIuLjAwMDAwMDAwMDAwMAotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2ts aWdodC9zNmU2M20wX2dhbW1hLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNjYgKzAsMCBAQAotLyog bGludXgvZHJpdmVycy92aWRlby9zYW1zdW5nL3M2ZTYzbTBfYnJpZ2h0bmVzcy5oCi0gKgotICog R2FtbWEgbGV2ZWwgZGVmaW5pdGlvbnMuCi0gKgotICogQ29weXJpZ2h0IChjKSAyMDA5IFNhbXN1 bmcgRWxlY3Ryb25pY3MKLSAqIEluS2kgRGFlIDxpbmtpLmRhZUBzYW1zdW5nLmNvbT4KLSAqCi0g KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLgotKi8KLQotI2lmbmRlZiBfUzZFNjNNMF9CUklHSFRORVNTX0gKLSNk ZWZpbmUgX1M2RTYzTTBfQlJJR0hUTkVTU19ICi0KLSNkZWZpbmUgTUFYX0dBTU1BX0xFVkVMCQkx MQotI2RlZmluZSBHQU1NQV9UQUJMRV9DT1VOVAkyMQotCi0vKiBnYW1tYSB2YWx1ZTogMi4yICov Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBfMjJfMzAwW10gPSB7Ci0JMHgxOCwg MHgwOCwgMHgyNCwgMHg1ZiwgMHg1MCwgMHgyZCwgMHhCNiwKLQkweEI5LCAweEE3LCAweEFkLCAw eEIxLCAweDlmLCAweGJlLCAweEMwLAotCTB4QjUsIDB4MDAsIDB4YTAsIDB4MDAsIDB4YTQsIDB4 MDAsIDB4ZGIKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgczZlNjNtMF8yMl8yODBb XSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDY0LCAweDU2LCAweDMzLCAweEI2LAotCTB4QkEs IDB4QTgsIDB4QUMsIDB4QjEsIDB4OUQsIDB4QzEsIDB4QzEsCi0JMHhCNywgMHgwMCwgMHg5Qywg MHgwMCwgMHg5RiwgMHgwMCwgMHhENgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBz NmU2M20wXzIyXzI2MFtdID0gewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4NjYsIDB4NTgsIDB4MzQs IDB4QjYsCi0JMHhCQSwgMHhBNywgMHhBRiwgMHhCMywgMHhBMCwgMHhDMSwgMHhDMiwKLQkweEI3 LCAweDAwLCAweDk3LCAweDAwLCAweDlBLCAweDAwLCAweEQxCi0KLX07Ci0KLXN0YXRpYyBjb25z dCB1bnNpZ25lZCBpbnQgczZlNjNtMF8yMl8yNDBbXSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAw eDYyLCAweDU0LCAweDMwLCAweEI5LAotCTB4QkIsIDB4QTksIDB4QjAsIDB4QjMsIDB4QTEsIDB4 QzEsIDB4QzMsCi0JMHhCNywgMHgwMCwgMHg5MSwgMHgwMCwgMHg5NSwgMHgwMCwgMHhEQQotCi19 Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzNmU2M20wXzIyXzIyMFtdID0gewotCTB4MTgs IDB4MDgsIDB4MjQsIDB4NjMsIDB4NTMsIDB4MzEsIDB4QjgsCi0JMHhCQywgMHhBOSwgMHhCMCwg MHhCNSwgMHhBMiwgMHhDNCwgMHhDNCwKLQkweEI4LCAweDAwLCAweDhCLCAweDAwLCAweDhFLCAw eDAwLCAweEMyCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBfMjJfMjAw W10gPSB7Ci0JMHgxOCwgMHgwOCwgMHgyNCwgMHg2NiwgMHg1NSwgMHgzNCwgMHhCQSwKLQkweEJE LCAweEFCLCAweEIxLCAweEI1LCAweEEzLCAweEM1LCAweEM2LAotCTB4QjksIDB4MDAsIDB4ODUs IDB4MDAsIDB4ODgsIDB4MDAsIDB4QkEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg czZlNjNtMF8yMl8xNzBbXSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDY5LCAweDU0LCAweDM3 LCAweEJCLAotCTB4QkUsIDB4QUMsIDB4QjQsIDB4QjcsIDB4QTYsIDB4QzcsIDB4QzgsCi0JMHhC QywgMHgwMCwgMHg3QiwgMHgwMCwgMHg3RSwgMHgwMCwgMHhBQgotfTsKLQotc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGludCBzNmU2M20wXzIyXzE0MFtdID0gewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4 NkMsIDB4NTQsIDB4M0EsIDB4QkMsCi0JMHhCRiwgMHhBQywgMHhCNywgMHhCQiwgMHhBOSwgMHhD OSwgMHhDOSwKLQkweEJFLCAweDAwLCAweDcxLCAweDAwLCAweDczLCAweDAwLCAweDlFCi19Owot Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBfMjJfMTEwW10gPSB7Ci0JMHgxOCwg MHgwOCwgMHgyNCwgMHg3MCwgMHg1MSwgMHgzRSwgMHhCRiwKLQkweEMxLCAweEFGLCAweEI5LCAw eEJDLCAweEFCLCAweENDLCAweENDLAotCTB4QzIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NjcsIDB4 MDAsIDB4OEQKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgczZlNjNtMF8yMl85MFtd ID0gewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4NzMsIDB4NEEsIDB4M0QsIDB4QzAsCi0JMHhDMiwg MHhCMSwgMHhCQiwgMHhCRSwgMHhBQywgMHhDRSwgMHhDRiwKLQkweEM1LCAweDAwLCAweDVELCAw eDAwLCAweDVFLCAweDAwLCAweDgyCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2 ZTYzbTBfMjJfMzBbXSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDc4LCAweEVDLCAweDNELCAw eEM4LAotCTB4QzIsIDB4QjYsIDB4QzQsIDB4QzcsIDB4QjYsIDB4RDUsIDB4RDcsCi0JMHhDQywg MHgwMCwgMHgzOSwgMHgwMCwgMHgzNiwgMHgwMCwgMHg1MQotfTsKLQotLyogZ2FtbWEgdmFsdWU6 IDEuOSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzNmU2M20wXzE5XzMwMFtdID0gewot CTB4MTgsIDB4MDgsIDB4MjQsIDB4NjEsIDB4NUYsIDB4MzksIDB4QkEsCi0JMHhCRCwgMHhBRCwg MHhCMSwgMHhCNiwgMHhBNSwgMHhDNCwgMHhDNSwKLQkweEJDLCAweDAwLCAweEEwLCAweDAwLCAw eEE0LCAweDAwLCAweERCCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBf MTlfMjgwW10gPSB7Ci0JMHgxOCwgMHgwOCwgMHgyNCwgMHg2MSwgMHg2MCwgMHgzOSwgMHhCQiwK LQkweEJFLCAweEFELCAweEIyLCAweEI2LCAweEE2LCAweEM1LCAweEM3LAotCTB4QkQsIDB4MDAs IDB4OUIsIDB4MDAsIDB4OUUsIDB4MDAsIDB4RDUKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25l ZCBpbnQgczZlNjNtMF8xOV8yNjBbXSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDYzLCAweDYx LCAweDNCLCAweEJBLAotCTB4QkUsIDB4QUMsIDB4QjMsIDB4QjgsIDB4QTcsIDB4QzYsIDB4Qzgs Ci0JMHhCRCwgMHgwMCwgMHg5NiwgMHgwMCwgMHg5OCwgMHgwMCwgMHhDRgotfTsKLQotc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGludCBzNmU2M20wXzE5XzI0MFtdID0gewotCTB4MTgsIDB4MDgsIDB4 MjQsIDB4NjcsIDB4NjQsIDB4M0YsIDB4QkIsCi0JMHhCRSwgMHhBRCwgMHhCMywgMHhCOSwgMHhB NywgMHhDOCwgMHhDOSwKLQkweEJFLCAweDAwLCAweDkwLCAweDAwLCAweDkyLCAweDAwLCAweEM4 Ci19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBfMTlfMjIwW10gPSB7Ci0J MHgxOCwgMHgwOCwgMHgyNCwgMHg2OCwgMHg2NCwgMHg0MCwgMHhCQywKLQkweEJGLCAweEFGLCAw eEI0LCAweEJBLCAweEE5LCAweEM4LCAweENBLAotCTB4QkUsIDB4MDAsIDB4OEIsIDB4MDAsIDB4 OEMsIDB4MDAsIDB4QzAKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgczZlNjNtMF8x OV8yMDBbXSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDY4LCAweDY0LCAweDNGLCAweEJFLAot CTB4QzAsIDB4QjAsIDB4QjYsIDB4QkIsIDB4QUIsIDB4QzgsIDB4Q0IsCi0JMHhCRiwgMHgwMCwg MHg4NSwgMHgwMCwgMHg4NiwgMHgwMCwgMHhCOAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVk IGludCBzNmU2M20wXzE5XzE3MFtdID0gewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4NjksIDB4NjQs IDB4NDAsIDB4QkYsCi0JMHhDMSwgMHhCMCwgMHhCOSwgMHhCRSwgMHhBRCwgMHhDQiwgMHhDRCwK LQkweEMyLCAweDAwLCAweDdBLCAweDAwLCAweDdCLCAweDAwLCAweEFBCi19OwotCi1zdGF0aWMg Y29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBfMTlfMTQwW10gPSB7Ci0JMHgxOCwgMHgwOCwgMHgy NCwgMHg2RSwgMHg2NSwgMHg0NSwgMHhDMCwKLQkweEMzLCAweEIyLCAweEJBLCAweEJFLCAweEFF LCAweENELCAweEQwLAotCTB4QzQsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzAsIDB4MDAsIDB4OUMK LX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgczZlNjNtMF8xOV8xMTBbXSA9IHsKLQkw eDE4LCAweDA4LCAweDI0LCAweDZGLCAweDY1LCAweDQ2LCAweEMyLAotCTB4QzQsIDB4QjMsIDB4 QkYsIDB4QzIsIDB4QjIsIDB4Q0YsIDB4RDEsCi0JMHhDNiwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2 NCwgMHgwMCwgMHg4RAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzNmU2M20wXzE5 XzkwW10gPSB7Ci0JMHgxOCwgMHgwOCwgMHgyNCwgMHg3NCwgMHg2MCwgMHg0QSwgMHhDMywKLQkw eEM2LCAweEI1LCAweEJGLCAweEMzLCAweEIyLCAweEQyLCAweEQzLAotCTB4QzgsIDB4MDAsIDB4 NUIsIDB4MDAsIDB4NUIsIDB4MDAsIDB4ODEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBp bnQgczZlNjNtMF8xOV8zMFtdID0gewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4ODQsIDB4NDUsIDB4 NEYsIDB4Q0EsCi0JMHhDQiwgMHhCQywgMHhDOSwgMHhDQiwgMHhCQywgMHhEQSwgMHhEQSwKLQkw eEQwLCAweDAwLCAweDM1LCAweDAwLCAweDM0LCAweDAwLCAweDRFCi19OwotCi0vKiBnYW1tYSB2 YWx1ZTogMS43ICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBfMTdfMzAwW10g PSB7Ci0JMHgxOCwgMHgwOCwgMHgyNCwgMHg3MCwgMHg3MCwgMHg0RiwgMHhCRiwKLQkweEMyLCAw eEIyLCAweEI4LCAweEJDLCAweEFDLCAweENCLCAweENELAotCTB4QzMsIDB4MDAsIDB4QTAsIDB4 MDAsIDB4QTQsIDB4MDAsIDB4REIKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgczZl NjNtMF8xN18yODBbXSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDcxLCAweDcxLCAweDUwLCAw eEJGLAotCTB4QzIsIDB4QjIsIDB4QkEsIDB4QkUsIDB4QUUsIDB4Q0IsIDB4Q0QsCi0JMHhDMywg MHgwMCwgMHg5QywgMHgwMCwgMHg5RiwgMHgwMCwgMHhENgotfTsKLQotc3RhdGljIGNvbnN0IHVu c2lnbmVkIGludCBzNmU2M20wXzE3XzI2MFtdID0gewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4NzIs IDB4NzIsIDB4NTAsIDB4QzAsCi0JMHhDMywgMHhCNCwgMHhCOSwgMHhCRSwgMHhBRSwgMHhDQywg MHhDRiwKLQkweEM0LCAweDAwLCAweDk3LCAweDAwLCAweDlBLCAweDAwLCAweEQxCi19OwotCi1z dGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYzbTBfMTdfMjQwW10gPSB7Ci0JMHgxOCwgMHgw OCwgMHgyNCwgMHg3MSwgMHg3MiwgMHg0RiwgMHhDMiwKLQkweEM0LCAweEI1LCAweEJCLCAweEJG LCAweEIwLCAweENDLCAweENGLAotCTB4QzMsIDB4MDAsIDB4OTEsIDB4MDAsIDB4OTUsIDB4MDAs IDB4Q0EKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgczZlNjNtMF8xN18yMjBbXSA9 IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDcxLCAweDczLCAweDRGLCAweEMyLAotCTB4QzUsIDB4 QjUsIDB4QkQsIDB4QzAsIDB4QjIsIDB4Q0QsIDB4RDEsCi0JMHhDNSwgMHgwMCwgMHg4QiwgMHgw MCwgMHg4RSwgMHgwMCwgMHhDMgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzNmU2 M20wXzE3XzIwMFtdID0gewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4NzIsIDB4NzUsIDB4NTEsIDB4 QzIsCi0JMHhDNiwgMHhCNSwgMHhCRiwgMHhDMSwgMHhCMywgMHhDRSwgMHhEMSwKLQkweEM2LCAw eDAwLCAweDg1LCAweDAwLCAweDg4LCAweDAwLCAweEJBCi19OwotCi1zdGF0aWMgY29uc3QgdW5z aWduZWQgaW50IHM2ZTYzbTBfMTdfMTcwW10gPSB7Ci0JMHgxOCwgMHgwOCwgMHgyNCwgMHg3NSwg MHg3NywgMHg1NCwgMHhDMywKLQkweEM3LCAweEI3LCAweEMwLCAweEMzLCAweEI0LCAweEQxLCAw eEQzLAotCTB4QzksIDB4MDAsIDB4N0IsIDB4MDAsIDB4N0UsIDB4MDAsIDB4QUIKLX07Ci0KLXN0 YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgczZlNjNtMF8xN18xNDBbXSA9IHsKLQkweDE4LCAweDA4 LCAweDI0LCAweDdCLCAweDc3LCAweDU4LCAweEMzLAotCTB4QzgsIDB4QjgsIDB4QzIsIDB4QzYs IDB4QjYsIDB4RDMsIDB4RDQsCi0JMHhDQSwgMHgwMCwgMHg3MSwgMHgwMCwgMHg3MywgMHgwMCwg MHg5RQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzNmU2M20wXzE3XzExMFtdID0g ewotCTB4MTgsIDB4MDgsIDB4MjQsIDB4ODEsIDB4N0IsIDB4NUQsIDB4QzYsCi0JMHhDQSwgMHhC QiwgMHhDMywgMHhDNywgMHhCOCwgMHhENiwgMHhEOCwKLQkweENELCAweDAwLCAweDY1LCAweDAw LCAweDY3LCAweDAwLCAweDhECi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHM2ZTYz bTBfMTdfOTBbXSA9IHsKLQkweDE4LCAweDA4LCAweDI0LCAweDgyLCAweDdBLCAweDVCLCAweEM4 LAotCTB4Q0IsIDB4QkQsIDB4QzUsIDB4Q0EsIDB4QkEsIDB4RDYsIDB4RDgsCi0JMHhDRSwgMHgw MCwgMHg1RCwgMHgwMCwgMHg1RSwgMHgwMCwgMHg4MgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2ln bmVkIGludCBzNmU2M20wXzE3XzMwW10gPSB7Ci0JMHgxOCwgMHgwOCwgMHgyNCwgMHg4RiwgMHg3 MywgMHg2MywgMHhEMSwKLQkweEQwLCAweEM1LCAweENDLCAweEQxLCAweEMyLCAweERFLCAweEUw LAotCTB4RDYsIDB4MDAsIDB4MzksIDB4MDAsIDB4MzYsIDB4MDAsIDB4NTEKLX07Ci0KLXN0cnVj dCBzNmU2M20wX2dhbW1hIHsKLQl1bnNpZ25lZCBpbnQgKmdhbW1hXzIyX3RhYmxlW01BWF9HQU1N QV9MRVZFTF07Ci0JdW5zaWduZWQgaW50ICpnYW1tYV8xOV90YWJsZVtNQVhfR0FNTUFfTEVWRUxd OwotCXVuc2lnbmVkIGludCAqZ2FtbWFfMTdfdGFibGVbTUFYX0dBTU1BX0xFVkVMXTsKLX07Ci0K LXN0YXRpYyBzdHJ1Y3QgczZlNjNtMF9nYW1tYSBnYW1tYV90YWJsZSA9IHsKLQkuZ2FtbWFfMjJf dGFibGVbMF0gPSAodW5zaWduZWQgaW50ICopJnM2ZTYzbTBfMjJfMzAsCi0JLmdhbW1hXzIyX3Rh YmxlWzFdID0gKHVuc2lnbmVkIGludCAqKSZzNmU2M20wXzIyXzkwLAotCS5nYW1tYV8yMl90YWJs ZVsyXSA9ICh1bnNpZ25lZCBpbnQgKikmczZlNjNtMF8yMl8xMTAsCi0JLmdhbW1hXzIyX3RhYmxl WzNdID0gKHVuc2lnbmVkIGludCAqKSZzNmU2M20wXzIyXzE0MCwKLQkuZ2FtbWFfMjJfdGFibGVb NF0gPSAodW5zaWduZWQgaW50ICopJnM2ZTYzbTBfMjJfMTcwLAotCS5nYW1tYV8yMl90YWJsZVs1 XSA9ICh1bnNpZ25lZCBpbnQgKikmczZlNjNtMF8yMl8yMDAsCi0JLmdhbW1hXzIyX3RhYmxlWzZd ID0gKHVuc2lnbmVkIGludCAqKSZzNmU2M20wXzIyXzIyMCwKLQkuZ2FtbWFfMjJfdGFibGVbN10g PSAodW5zaWduZWQgaW50ICopJnM2ZTYzbTBfMjJfMjQwLAotCS5nYW1tYV8yMl90YWJsZVs4XSA9 ICh1bnNpZ25lZCBpbnQgKikmczZlNjNtMF8yMl8yNjAsCi0JLmdhbW1hXzIyX3RhYmxlWzldID0g KHVuc2lnbmVkIGludCAqKSZzNmU2M20wXzIyXzI4MCwKLQkuZ2FtbWFfMjJfdGFibGVbMTBdID0g KHVuc2lnbmVkIGludCAqKSZzNmU2M20wXzIyXzMwMCwKLQotCS5nYW1tYV8xOV90YWJsZVswXSA9 ICh1bnNpZ25lZCBpbnQgKikmczZlNjNtMF8xOV8zMCwKLQkuZ2FtbWFfMTlfdGFibGVbMV0gPSAo dW5zaWduZWQgaW50ICopJnM2ZTYzbTBfMTlfOTAsCi0JLmdhbW1hXzE5X3RhYmxlWzJdID0gKHVu c2lnbmVkIGludCAqKSZzNmU2M20wXzE5XzExMCwKLQkuZ2FtbWFfMTlfdGFibGVbM10gPSAodW5z aWduZWQgaW50ICopJnM2ZTYzbTBfMTlfMTQwLAotCS5nYW1tYV8xOV90YWJsZVs0XSA9ICh1bnNp Z25lZCBpbnQgKikmczZlNjNtMF8xOV8xNzAsCi0JLmdhbW1hXzE5X3RhYmxlWzVdID0gKHVuc2ln bmVkIGludCAqKSZzNmU2M20wXzE5XzIwMCwKLQkuZ2FtbWFfMTlfdGFibGVbNl0gPSAodW5zaWdu ZWQgaW50ICopJnM2ZTYzbTBfMTlfMjIwLAotCS5nYW1tYV8xOV90YWJsZVs3XSA9ICh1bnNpZ25l ZCBpbnQgKikmczZlNjNtMF8xOV8yNDAsCi0JLmdhbW1hXzE5X3RhYmxlWzhdID0gKHVuc2lnbmVk IGludCAqKSZzNmU2M20wXzE5XzI2MCwKLQkuZ2FtbWFfMTlfdGFibGVbOV0gPSAodW5zaWduZWQg aW50ICopJnM2ZTYzbTBfMTlfMjgwLAotCS5nYW1tYV8xOV90YWJsZVsxMF0gPSAodW5zaWduZWQg aW50ICopJnM2ZTYzbTBfMTlfMzAwLAotCi0JLmdhbW1hXzE3X3RhYmxlWzBdID0gKHVuc2lnbmVk IGludCAqKSZzNmU2M20wXzE3XzMwLAotCS5nYW1tYV8xN190YWJsZVsxXSA9ICh1bnNpZ25lZCBp bnQgKikmczZlNjNtMF8xN185MCwKLQkuZ2FtbWFfMTdfdGFibGVbMl0gPSAodW5zaWduZWQgaW50 ICopJnM2ZTYzbTBfMTdfMTEwLAotCS5nYW1tYV8xN190YWJsZVszXSA9ICh1bnNpZ25lZCBpbnQg KikmczZlNjNtMF8xN18xNDAsCi0JLmdhbW1hXzE3X3RhYmxlWzRdID0gKHVuc2lnbmVkIGludCAq KSZzNmU2M20wXzE3XzE3MCwKLQkuZ2FtbWFfMTdfdGFibGVbNV0gPSAodW5zaWduZWQgaW50ICop JnM2ZTYzbTBfMTdfMjAwLAotCS5nYW1tYV8xN190YWJsZVs2XSA9ICh1bnNpZ25lZCBpbnQgKikm czZlNjNtMF8xN18yMjAsCi0JLmdhbW1hXzE3X3RhYmxlWzddID0gKHVuc2lnbmVkIGludCAqKSZz NmU2M20wXzE3XzI0MCwKLQkuZ2FtbWFfMTdfdGFibGVbOF0gPSAodW5zaWduZWQgaW50ICopJnM2 ZTYzbTBfMTdfMjYwLAotCS5nYW1tYV8xN190YWJsZVs5XSA9ICh1bnNpZ25lZCBpbnQgKikmczZl NjNtMF8xN18yODAsCi0JLmdhbW1hXzE3X3RhYmxlWzEwXSA9ICh1bnNpZ25lZCBpbnQgKikmczZl NjNtMF8xN18zMDAsCi19OwotCi0jZW5kaWYKLQotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK