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=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 23104CA9EB9 for ; Tue, 22 Oct 2019 12:40:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E83F621906 for ; Tue, 22 Oct 2019 12:40:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726142AbfJVMkm (ORCPT ); Tue, 22 Oct 2019 08:40:42 -0400 Received: from mailgate1.rohmeurope.com ([178.15.145.194]:43114 "EHLO mailgate1.rohmeurope.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731405AbfJVMkm (ORCPT ); Tue, 22 Oct 2019 08:40:42 -0400 X-AuditID: c0a8fbf4-183ff70000001fa6-34-5daef8c6d8f0 Received: from smtp.reu.rohmeu.com (will-cas001.reu.rohmeu.com [192.168.251.177]) by mailgate1.rohmeurope.com (Symantec Messaging Gateway) with SMTP id C3.66.08102.6C8FEAD5; Tue, 22 Oct 2019 14:40:38 +0200 (CEST) Received: from WILL-MAIL002.REu.RohmEu.com ([fe80::e0c3:e88c:5f22:d174]) by WILL-CAS001.REu.RohmEu.com ([fe80::d57e:33d0:7a5d:f0a6%16]) with mapi id 14.03.0439.000; Tue, 22 Oct 2019 14:40:32 +0200 From: "Vaittinen, Matti" To: "mazziesaccount@gmail.com" , "dmurphy@ti.com" , "jacek.anaszewski@gmail.com" CC: "linux-leds@vger.kernel.org" , "linux-rtc@vger.kernel.org" , "linux-gpio@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "alexandre.belloni@bootlin.com" , "mturquette@baylibre.com" , "lgirdwood@gmail.com" , "devicetree@vger.kernel.org" , "linus.walleij@linaro.org" , "a.zummo@towertech.it" , "mark.rutland@arm.com" , "robh+dt@kernel.org" , "bgolaszewski@baylibre.com" , "linux-clk@vger.kernel.org" , "lee.jones@linaro.org" , "pavel@ucw.cz" , "broonie@kernel.org" , "sboyd@kernel.org" Subject: Re: [RFC PATCH 11/13] led: bd71828: Support LED outputs on ROHM BD71828 PMIC Thread-Topic: [RFC PATCH 11/13] led: bd71828: Support LED outputs on ROHM BD71828 PMIC Thread-Index: AQHVhNDGb/Fi3H2tI0CugiKcGY+PyKdevIMAgAXjkICAALrQAIABJcIA Date: Tue, 22 Oct 2019 12:40:31 +0000 Message-ID: <201df0f7319b94eb581a040a2b1b07dbfed12e94.camel@fi.rohmeurope.com> References: <4570db9c-7bc8-f131-269a-248b87e25e38@gmail.com> In-Reply-To: <4570db9c-7bc8-f131-269a-248b87e25e38@gmail.com> Accept-Language: en-US, de-DE Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [213.255.186.46] Content-Type: text/plain; charset="utf-8" Content-ID: <7C621E54956A4D45B831E97BB520C672@de.rohmeurope.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA01TbUxTVxjOuff23kPxumMFe8SPZU1w0cSvhMQTcUt/uO2qiZLMTGLS4HVc aTdoyW3L1C2EaAhKjUPGJjZQFgUkFBl0ErWhihUQi9EQFVCBpYGAsAU0Kgwlsnu5U/hzzvO+ z3me5/3xHkgbXrAJ0GZ3SbJdzDSxeqal5m3j+vZ/6y2bzgyuIZVdjzhSMF7NkVflEYb8Gh1i SUXrPR3xdF7WkadNDQz563UbIJMPT1CkZOYiRV6cGtCRPytmAHkQLGNJ0z/1gLT7H7KkqqeL ImVVHQzpinxB+iNtLMkPtXLkXXcjY44X6nx1QJjozecEX92PwjVvPycEak+yQl93Myvc7r1C CWd905RQ45/ihJeB1Sn6/bHbDoqunK9tGfaNnx+ItQZDd7ns88/BYV/XNJUHTo2BQhADMUrC T2b/5gqBHhpQN8AToyFKKzoAvhBsVwoIWbQNFz6eexSHzgEcbLukUwsaNXO4tDIyZ7UU7cMv vROciuNQKm5vOE1r+Ev8wONlVcygRPxLZf/cex7txiUDxayWdo/CFeEbOpWIQZ/h4ooApWKA VuGTeeNzmEZGHBie0mlzI1zZfJ/WcDweHXz3f9+EQ9NRRp2aRmvxH8GNmtSMh8d6aQ1/gks8 UU6bYQm+c26IKQLLvAsSvPNq7wK1d4Hau0D9O9DVApwl2jIzRJe0eYMsuTfIDmuWcn3ryAoA bW1eXQWz4R1hQEEQBsshZYrnk6R6i2HxQUf6EavotKbJ7kzJGQYY0qY4vm/TJYuBTxePHJVk x3tqBWRMRv7T6BmLAalZ30tStiS/Z1dCaMJ80ZRiukSWMqTDh2yZrnmagjGquT4hzinZ0yVZ dLusaeqOpDmVJVGpRUrublXOO7PFLKWrSSNgCywaLT9Pw1sNPuVsLa9Szp6JUBVtYOwOu5Rg 5OVJRYZUmdVt/xA6BowQmJbyT1TTRco/+uA5psRRSpx/uV+Nc4nzVEIeOA5b1oilv8V4fviu AKzIybG4BhJ9LfmTK6tnElPHU7ZGDDtrd+Umz56d9F+LjDCSA+UF9jZGe/YkPdte9uZu90df vXYL02bzAb0En91MLijN3WEeTh7Zb2sZ7+G+OTQy2CcMbTnmib1++ufczuLwT1fuG29tjb3K piSlXs7mP24yMU6ruHkdLTvF/wBAVrZUBAQAAA== Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org SGVsbG8gSmFjZWssDQoNClRoYW5rcyBmb3IgdGhlIGNsYXJpZmljYXRpb25zLiBJIHRoaW5rIEkg bm93IHVuZGVyc3RhbmQgdGhlIExFRA0Kc3Vic3lzdGVtIGEgYml0IGJldHRlciA6KQ0KDQpPbiBN b24sIDIwMTktMTAtMjEgYXQgMjE6MDkgKzAyMDAsIEphY2VrIEFuYXN6ZXdza2kgd3JvdGU6DQo+ IEhpIE1hdHRpLA0KPiANCj4gT24gMTAvMjEvMTkgMTA6MDAgQU0sIFZhaXR0aW5lbiwgTWF0dGkg d3JvdGU6DQo+ID4gSGVsbG8gRGFuLA0KPiA+IA0KPiA+IFRoYW5rcyBmb3IgdGFraW5nIHRoZSB0 aW1lIHRvIGNoZWNrIG15IGRyaXZlciA6KSBJIHRydWx5IGFwcHJlY2lhdGUNCj4gPiBhbGwNCj4g PiB0aGUgaGVscCENCj4gPiANCj4gPiBBICJmdW5kYW1lbnRhbCBxdWVzdGlvbiIgcmVnYXJkaW5n IHRoZXNlIHJldmlldyBjb21tZW50cyBpcyB3aGV0aGVyDQo+ID4gSQ0KPiA+IHNob3VsZCBhZGQg RFQgZW50cmllcyBmb3IgdGhlc2UgTEVEcyBvciBub3QuIEkgdGhvdWdodCBJIHNob3VsZG4ndA0K PiA+IGJ1dA0KPiA+IEkgd291bGQgbGlrZSB0byBnZXQgYSBjb21tZW50IGZyb20gUm9iIHJlZ2Fy ZGluZyBpdC4NCj4gDQo+IElmIHRoZSBMRUQgY29udHJvbGxlciBpcyBhIHBhcnQgb2YgTUZEIGRl dmljZSBwcm9iZWQgZnJvbSBEVCB0aGVuDQo+IHRoZXJlIGlzIG5vIGRvdWJ0IGl0IHNob3VsZCBo YXZlIGNvcnJlc3BvbmRpbmcgRFQgc3ViLW5vZGUuDQoNClNvcnJ5IGJ1dCBJIHN0aWxsIHNlZSBu byBtdWNoIGJlbmVmaXQgZnJvbSBhZGRpbmcgdGhpcyBpbmZvcm1hdGlvbiBpbg0KRFQuIFdoeSBz aG91bGQgaXQgaGF2ZSBjb3JyZXNwb25kaW5nIERULW5vZGUgaWYgdGhlIExFRCBwcm9wZXJ0aWVz IGFyZQ0KZml4ZWQgYW5kIGlmIHdlIG9ubHkgd2lzaCB0byBhbGxvdyB1c2VyLXNwYWNlIGNvbnRy b2wgYW5kIGhhdmUgbm8NCmRlcGVuZGVuY2llcyB0byBvdGhlciBkZXZpY2VzIGluIERUPyANCg0K SW4gdGhpcyBzcGVjaWZpYyBjYXNlIHRoZSBpbmZvcm1hdGlvbiB3ZSBjYW4gcHJvdmlkZSBmcm9t IERUIGlzDQpzdXBwb3NlZCB0byBiZSBmaXhlZC4gTm8gYm9hcmQgYmFzZWQgdmFyaWF0aW9uLiBG dXJ0aGVybW9yZSwgdGhlcmUgaXMNCm5vdCBtdWNoIGdlbmVyaWMgZHJpdmVyL2xlZCBjb3JlIGZ1 bmN0aW9uYWxpdHkgd2hpY2ggd291bGQgYmUgYWJsZSB0bw0KcGFyc2UgYW5kIHV0aWxpemUgcmVs ZXZhbnQgaW5mb3JtYXRpb24gZnJvbSBEVC4gSSB0aGluayB3ZSBjYW4gb25seQ0KZ2l2ZSB0aGUg bmFtZSAoZnVuY3Rpb24pIGFuZCBjb2xvdXIuIEFuZCB0aGV5IGFyZSBzdXBwb3NlZCB0byBiZSBm aXhlZA0KYW5kIHRodXMgY291bGQgYmUganVzdCBoYXJkLWNvZGVkIGluIGRyaXZlci4gSGFyZC1j b2RpbmcgdGhlc2Ugd291bGQgYmUNCnNpbXBsZXIgYW5kIGxlc3MgZXJyb3IgcHJvbmUgZm9yIHVz ZXJzIChubyBEVCBiaW5kaW5ncyB0byB3cml0ZSkgYW5kDQpzaW1wbGVyIHRvIGNyZWF0ZSBhbmQg cHJvYmFibHkgYWxzbyB0byBtYWludGFpbiAobm8gc2VwYXJhdGUgYmluZGluZw0KZG9jdW1lbnRz IG5lZWRlZCBmb3IgTEVEcykuDQoNCkJ1dCBhc3N1bWluZyB0aGlzIGlzIE9rIHRvIERULWZvbGtz IGFuZCBpZiB5b3UgaW5zaXN0IC0gSSB3aWxsIGFkZCBMRUQNCmluZm9ybWF0aW9uIHRvIERUIGZv ciB0aGUgbmV4dCBwYXRjaGVzLiBIb3BlZnVsbHkgdGhpcyBleHRyYSBjb21wbGV4aXR5DQpoZWxw cyBpbiBzb21lIG9kZGJhbGwgdXNlLWNhc2Ugd2hpY2ggSSBjYW4ndCBmb3Jlc2VlID0pDQoNClRo ZW4gd2hhdCBjb21lcyB0byB0aGUgRFQgZm9ybWF0Lg0KDQpEbyB5b3UgdGhpbmsgTEVEIHN1YnN5 c3RlbSBzaG91bGQgdHJ5IHRvIGZvbGxvdyB0aGUgY29udmVudGlvbiB3aXRoDQpvdGhlciBzdWIt c3lzdGVtcyBhbmQgbm90IGludHJvZHVjZSBtdWx0aXBsZSBjb21wYXRpYmxlcyBmb3Igc2luZ2xl DQpkZXZpY2U/IE1GRCBjYW4gaGFuZGxlIGluc3RhbnRpYXRpbmcgdGhlIHN1Yi1kZXZpY2VzIGp1 c3QgZmluZSBldmVuDQp3aGVuIHN1Yi1kZXZpY2VzIGhhdmUgbm8gb3duIGNvbXBhdGlibGUgcHJv cGVydHkgb3Igb2ZfbWF0Y2guIE1heWJlIHdlDQpzaG91bGQgYWxzbyBhdm9pZCB1bm5lY2Vzc2Fy eSBzdWItbm9kZXMgd2hlbiB0aGV5IGFyZSBub3QgcmVhbGx5DQpyZXF1aXJlZC4NCg0KSWYgd2Ug bG9vayBhdCBjbGsgYW5kIEdQSU9zIGl0IGlzIG5vd2FkYXlzIHByZWZlcnJlZCAoYXMgcGVyIG15 DQp1bmRlcnN0YW5kaW5nIGFmdGVyIGRpc2N1c3Npb25zIHdpdGggU3RlcGhlbiwgUm9iIGFuZCBz b21lIG90aGVycyAtDQpwbGVhc2UgY29ycmVjdCBtZSBpZiBJIGFtIHdyb25nKSB0byBwbGFjZSB0 aGUgJ3Byb3ZpZGVyJyBpbmZvcm1hdGlvbiBpbg0KdGhlIE1GRCBub2RlIGFuZCBvYnRhaW4gdGhl IHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSBwYXJlbnQtPm9mX25vZGUgaW4NCnRoZSBzdWItZGV2 aWNlIGRyaXZlciAob3IgZm9yIGdlbmVyaWMgcHJvcGVydGllcywgaW4gdGhlIGNvcmUNCmZyYW1l d29yaykgLSBhdCBsZWFzdCBmb3Igc2ltcGxlIGNhc2VzLiBJIGd1ZXNzIHJhdGlvbmFsZSB3YXMg dGhhdCBpdA0KcmVmbGVjdHMgdGhlIHJlYWwgaGFyZHdhcmUgYmV0dGVyIHdoZW4gbm8gYXJ0aWZp Y2lhbCBzdWItbm9kZXMgYXJlDQpyZXF1aXJlZD8NCg0KSSBzZWUgdGhlIGV4YW1wbGUgYmluZGlu Z3MgKGxpa2UgbWF4Nzc2OTMgYmVsb3cpIHlvdSBwb2ludGVkIHRvIG1lDQpkb24ndCBmb2xsb3cg dGhhdCBjb252ZW50aW9uIGJ1dCBjcmVhdGUgb3duIHN1YiBub2RlcyB3aXRoIG93bg0KY29tcGF0 aWJsZSBwcm9wZXJ0aWVzIGluIE1GRCBmb3IgYWxsIHRoZSBsb2dpY2FsIGJsb2Nrcy4NCg0KSSBh bSBhc2tpbmcgdGhpcyBhcyBJIHdhcyAic3Ryb25nbHkgYWR2aWVjZWQiIChhLmsuYSB0b2xkIHRv IGNoYW5nZSBteQ0KYXBwcm9hY2ggaWYgSSB3aXNoIHRvIGdldCBkcml2ZXIgaW9uIHRoZWlyIHRy ZWVzIDtdKSBieSBSb2IgYW5kIFN0ZXBoZW4NCnRvIG5vdCBkbyB0aGF0IHdpdGggcHJldmlvdXMg UE1JQyBkcml2ZXJzIEkgdXBzdHJlYW1lZC4NCg0KQXMgZXhhbXBsZSAtIHRoZSByZWxldmFudCBi aW5kaW5ncyBmb3IgQkQ3MTgzNyBjbG9jayBvdXRwdXQgd2VyZQ0Kb3JpZ2luYWxseToNCg0KcG1p YzogYmQ3MTgzN0A0YiB7DQoJY29tcGF0aWJsZSA9ICJyb2htLGJkNzE4MzciOw0KDQoJcmVndWxh dG9ycyB7DQoJCS4uLg0KCX07DQoNCgkvKiBDbG9jayBub2RlICovDQoJY2xrOiBiZDcxODM3LTMy ay1vdXQgew0KCQljb21wYXRpYmxlID0gInJvaG0sYmQ3MTgzNy1jbGsiOw0KCQkjY2xvY2stY2Vs bHMgPSA8MD47DQoJCWNsb2NrLWZyZXF1ZW5jeSAgPSA8MzI3Njg+Ow0KCQljbG9jay1vdXRwdXQt bmFtZXMgPSAiYmQ3MTgzNy0zMmstb3V0IjsNCgl9Ow0KfTsNCg0KYnV0IGl0IHdhcyBwcmVmZXJy ZWQgdG8gbm90IGhhdmUgdGhlIHRoZSBjbGsgc3ViLW5vZGUgYW5kIHBsYWNlIHRoZQ0KcHJvdmlk ZXIgaW5mb3JtYXRpb24gZGlyZWN0bHkgaW4gcG1pYyBub2RlIGluc3RlYWQuIFJlc3VsdCB3YXM6 DQoNCnBtaWM6IGJkNzE4MzdANGIgew0KCWNvbXBhdGlibGUgPSAicm9obSxiZDcxODM3IjsNCg0K CSNjbG9jay1jZWxscyA9IDwwPjsNCgljbG9jay1mcmVxdWVuY3kgID0gPDMyNzY4PjsNCgljbG9j ay1vdXRwdXQtbmFtZXMgPSAiYmQ3MTgzNy0zMmstb3V0IjsNCg0KCXJlZ3VsYXRvcnMgew0KCQku Li4NCgl9Ow0KfTsNCg0KY2xrIGNvbnN1bWVycyBjYW4gdGhlbiBsaXZlIGFueXdoZXJlIGluIERU IGFuZCBqdXN0IHJlZmVyIHRvIGNsb2NrDQpwcm92aWRlciB2aWEgcmVmZXJlbmNlLg0KDQpUaGUg c3ViLWRldmljZSBkcml2ZXIgaXMgaW5zdGFudGlhdGVkIGJ5IE1GRCBhbmQgaXQgZG9lcyBub3Qg bmVlZCB0aGUNCkRUIChvciBjb21wYXRpYmxlKSBmb3IgdGhpcy4gQWZ0ZXIgdGhhdCB0aGUgc3Vi LWRyaXZlciBjYW4gZmV0Y2ggdGhlDQpwYXJlbnQgRFQgbm9kZSBhbmQgbG9va3MgZm9yIHJlbGV2 YW50IGluZm9ybWF0aW9uIC0gb3IganVzdCBwYXNzZXMgdGhhdA0Kbm9kZSB0byBjb3JlIGlmIGl0 IGV4cGVjdHMgbm8gZHJpdmVyIHNwZWNpZmljIHByb3BlcnRpZXMuDQoNClRoZSBiZDcwNTI4IGlz IGFub3RoZXIgZXhhbXBsZS4gSXQgaXMgYSBNRkQgd2l0aCBkcml2ZXJzIGZvcg0KcmVndWxhdG9y cywgY2xrLWdhdGUsIGZldyBHUElPcywgd2F0Y2hkb2csIGNoYXJnZXIgYW5kIHJ0Yy4gSXQgc3Rp bGwNCmhhcyBvbmx5IG9uZSBjb21wYXRpYmxlIGluIERULCBhbmQgb25seSBNRkQgbm9kZSB3aXRo IHJlZ3VsYXRvcnMgc3ViLQ0Kbm9kZS4gVGhlcmUgaXMgbm8gbmVlZCBmb3IgV0RHLCBSVEMgb3Ig Y2hhcmdlciB0byBiZSBwcmVzZW50IGluIERULiAoSW4NCm15IGJvb2tzIExFRHMgZm9yIEJENzE4 Mjggd291bGQgZmFsbCBpbiB0aGUgc2FtZSBjYXRlZ29yeSBidXQgSSBndWVzcyBJDQphbHJlYWR5 IG1lbnRpb25lZCB0aGF0IHhEICkuDQoNCnBtaWM6IHBtaWNANGIgew0KCWNvbXBhdGlibGUgPSAi cm9obSxiZDcwNTI4IjsNCglyZWcgPSA8MHg0Yj47DQoJaW50ZXJydXB0LXBhcmVudCA9IDwmZ3Bp bzE+Ow0KCWludGVycnVwdHMgPSA8MjkgR1BJT19BQ1RJVkVfTE9XPjsNCgljbG9ja3MgPSA8Jm9z YyAwPjsNCgkjY2xvY2stY2VsbHMgPSA8MD47DQoJY2xvY2stb3V0cHV0LW5hbWVzID0gImJkNzA1 MjgtMzJrLW91dCI7DQoJI2dwaW8tY2VsbHMgPSA8Mj47DQoJZ3Bpby1jb250cm9sbGVyOw0KCWlu dGVycnVwdC1jb250cm9sbGVyOw0KCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47DQoNCglyZWd1bGF0 b3JzIHsNCgkJLi4uDQoJfTsNCn07DQoNClNvLCB0byBtYWtlIExFRCBzdWJzeXN0ZW0gYXQgbGVh c3QgcGFydGlhbGx5IGZvbGxvdyBzYW1lIHByaW5jaXBsZSBJDQpzdWdnZXN0IEknbGwgZG8gZm9s bG93aW5nOg0KDQpXaGVyZSBtYXg3NzY5MyBkb2VzOg0KbWF4Nzc2OTNANjYgew0KCQljb21wYXRp YmxlID0gIm1heGltLG1heDc3NjkzIjsNCgkJcmVnID0gPDB4NjY+Ow0KCQlpbnRlcnJ1cHQtcGFy ZW50ID0gPCZncHgxPjsNCgkJaW50ZXJydXB0cyA9IDw1IDI+Ow0KDQoJCXJlZ3VsYXRvcnMgew0K CQkJZXNhZmVvdXRAMSB7DQoJCQkJcmVndWxhdG9yLWNvbXBhdGlibGUgPSAiRVNBRkVPVVQxIjsN CgkJCQkuLi4NCgkJCX07DQoJCX07DQoNCgkJaGFwdGljIHsNCgkJCWNvbXBhdGlibGUgPSAibWF4 aW0sbWF4Nzc2OTMtaGFwdGljIjsNCgkJCS4uLg0KCQl9Ow0KDQoJCWNoYXJnZXIgew0KCQkJY29t cGF0aWJsZSA9ICJtYXhpbSxtYXg3NzY5My1jaGFyZ2VyIjsNCgkJCS4uLg0KCQl9Ow0KDQoJCWxl ZCB7DQoJCQljb21wYXRpYmxlID0gIm1heGltLG1heDc3NjkzLWxlZCI7DQoJCQkuLi4NCg0KCQkJ Y2FtZXJhX2ZsYXNoOiBmbGFzaC1sZWQgew0KCQkJCWxhYmVsID0gIm1heDc3NjkzLWZsYXNoIjsN CgkJCQkuLi4NCgkJCX07DQoJCX07DQoJfTsNCg0KSSB3b3VsZCBnbyB3aXRoOg0KDQoJcG1pYzog cG1pY0A0YiB7DQoJCWNvbXBhdGlibGUgPSAicm9obSxiZDcxODI4IjsNCgkJcmVnID0gPDB4NGI+ Ow0KCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlvMT47DQoJCWludGVycnVwdHMgPSA8MjkgR1BJ T19BQ1RJVkVfTE9XPjsNCgkJY2xvY2tzID0gPCZvc2MgMD47DQoJCSNjbG9jay1jZWxscyA9IDww PjsNCgkJY2xvY2stb3V0cHV0LW5hbWVzID0gImJkNzE4MjgtMzJrLW91dCI7DQoJCWdwaW8tY29u dHJvbGxlcjsNCgkJI2dwaW8tY2VsbHMgPSA8Mj47DQoJCW5ncGlvcyA9IDw0PjsNCgkJZ3Bpby1y ZXNlcnZlZC1yYW5nZXMgPSA8MCAxIDIgMT47DQoJCWdwaW8tbGluZS1uYW1lcyA9ICJFUERFTiI7 DQoJCXJvaG0sZHZzLXZzZWwtZ3Bpb3MgPSA8JmdwaW8xIDEyIDA+LA0KCQkJCSAgICAgIDwmZ3Bp bzEgMTMgMD47DQoJCXJlZ3VsYXRvcnMgew0KCQkJLi4uDQoJCX07DQoJCQ0KCQljaGctbGVkIHsN CgkJCWZ1bmN0aW9uID0gTEVEX0ZVTkNUSU9OX0NIQVJHSU5HOw0KCQkJY29sb3IgPSBMRURfQ09M T1JfSURfQU1CRVI7DQoJCX07DQoNCgkJcHdyLWxlZCB7DQoJCQlmdW5jdGlvbiA9IExFRF9GVU5D VElPTl9QT1dFUjsNCgkJCWNvbG9yID0gTEVEX0NPTE9SX0lEX0dSRUVOOw0KCQl9Ow0KCX07DQoN CkhvdyBkbyB5b3Ugc2VlIHRoaXM/IE9yIGRvIHlvdSByZWFsbHkgd2lzaCB0byBoYXZlIHRoaXMg b25lIGV4dHJhIG5vZGU6DQoNCglwbWljOiBwbWljQDRiIHsNCgkJY29tcGF0aWJsZSA9ICJyb2ht LGJkNzE4MjgiOw0KCQkNCnJlZyA9IDwweDRiPjsNCgkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ3Bp bzE+Ow0KCQlpbnRlcnJ1DQpwdHMgPSA8MjkgR1BJT19BQ1RJVkVfTE9XPjsNCgkJY2xvY2tzID0g PCZvc2MgMD47DQoJCQ0KI2Nsb2NrLWNlbGxzID0gPDA+Ow0KCQljbG9jay1vdXRwdXQtbmFtZXMg PSAiYmQ3MTgyOC0zMmstb3V0IjsNCgkJZ3Bpby1jb250cm9sbGVyOw0KCQkjZ3Bpby1jZWxscyA9 IDwyPjsNCgkNCgluZ3Bpb3MgPSA8ND47DQoJCWdwaW8tcmVzZXJ2ZWQtcmFuZ2VzID0gPDAgMSAy IDE+Ow0KCQ0KCWdwaW8tbGluZS1uYW1lcyA9ICJFUERFTiI7DQoJCXJvaG0sZHZzLXZzZWwtZ3Bp b3MgPQ0KPCZncGlvMSAxMiAwPiwNCgkJCQkgICAgICA8JmdwaW8xIDEzIDA+Ow0KCQkNCnJlZ3Vs YXRvcnMgew0KCQkJLi4uDQoJCX07DQoJCQ0KCQlsZWRzLWR1bW15IHsNCgkJCWNoZy1sZWQgew0K CQkJCWZ1bmN0aW9uID0gTEVEX0ZVTkNUSU9OX0NIQVJHSU5HOw0KCQkJCWNvbG9yID0gTEVEX0NP TE9SX0lEX0FNQkVSOw0KCQkJfTsNCg0KCQkJcHdyLWxlZCB7DQoJCQkJZnVuY3Rpb24gPSBMRURf RlVOQ1RJT05fUE9XRVI7DQoJCQkJY29sb3IgPSBMRURfQ09MT1JfSURfR1JFRU47DQoJCQl9Ow0K CQl9Ow0KCX07DQoNCg0KPiBXZSd2ZSByZWNlbnRseSBhZGRlZCBzb21lIHN0YW5kYXJkaXphdGlv biBvZiBMRUQgbmFtaW5nIHNvIHBsZWFzZQ0KPiB1c2UgdGhlIG5ldyAnZnVuY3Rpb24nIGFuZCAn Y29sb3InIERUIHByb3BlcnRpZXMgaW4gdGhlIGJpbmRpbmdzLg0KPiANCj4gUGxlYXNlIHJlZmVy IHRvIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9sZWRzL2NvbW1vbi50eHQuDQo+ IA0KPiBZb3Ugc2hvdWxkIHJlZ2lzdGVyIExFRCBjbGFzcyBkZXZpY2VzIHVzaW5nDQo+IGRldm1f bGVkX2NsYXNzZGV2X3JlZ2lzdGVyX2V4dCgpIEFQSSB0byBiZW5lZml0IGZyb20gZ2VuZXJpYyBz dXBwb3J0DQo+IGZvciBMRUQgbmFtZSBjb21wb3NpdGlvbi4gVGhpcyBzdXBwb3J0IGlzIGF2YWls YWJsZSBpbiBMaW51cyB0cmVlDQo+IHN0YXJ0aW5nIGZyb20gNS40LXJjMS4NCg0KVGhhbmtzIGZv ciB0aGUgaGludC4gU28gdGhpcyBBUEkgd291bGQgbWFrZSB0aGUgbmFtZSBvdXQgb2YgZnVuY3Rp b24NCmFuZCBjb2xvdXIgZ2l2ZW4gdmlhIGR0LCByaWdodD8NCg0KPiA+IE9uIFRodSwgMjAxOS0x MC0xNyBhdCAwOTowNCAtMDUwMCwgRGFuIE11cnBoeSB3cm90ZToNCj4gPiA+IE1hdHQNCj4gPiA+ IA0KPiA+ID4gT24gMTAvMTcvMTkgNDo1MyBBTSwgTWF0dGkgVmFpdHRpbmVuIHdyb3RlOg0KPiA+ ID4gPiBST0hNIEJENzE4MjggcG93ZXIgbWFuYWdlbWVudCBJQyBoYXMgdHdvIExFRCBvdXRwdXRz IGZvciBjaGFyZ2UNCj4gPiA+ID4gc3RhdHVzDQo+ID4gPiA+IGFuZCBidXR0b24gcHJlc3Npbmcg aW5kaWNhdGlvbnMuIFRoZSBMRUQgb3V0cHV0cyBjYW4gYWxzbyBiZQ0KPiA+ID4gPiBmb3JjZWQN Cj4gPiA+ID4gYnMgU1cgc28gYWRkIGRyaXZlciBhbGxvd2luZyB0byB1c2UgdGhlc2UgTEVEcyBm b3Igb3RoZXINCj4gPiA+ID4gaW5kaWNhdGlvbnMNCj4gPiA+IHMvYnMvYnkNCj4gPiA+ID4gYXMg d2VsbC4NCj4gPiA+ID4gDQo+ID4gPiA+IExlZHMgYXJlIGNvbnRyb2xsZWQgYnkgU1cgdXNpbmcg J0ZvcmNlIE9OJyBiaXRzLiBQbGVhc2Ugbm90ZQ0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gY29uc3Ry YWlucyBtZW50aW9uZWQgaW4gZGF0YS1zaGVldDoNCj4gPiA+ID4gMS4gSWYgb25lIExFRCBpcyBm b3JjZWQgT04gLSB0aGVuIGFsc28gdGhlIG90aGVyIExFRCBpcyBmb3JjZWQuDQo+ID4gPiA+IAk9 PiBZb3UgY2FuJ3QgdXNlIFNXIGNvbnRyb2wgdG8gZm9yY2UgT04gb25lIExFRCBhbmQNCj4gPiA+ ID4gYWxsb3cgSFcNCj4gPiA+ID4gCSAgIHRvIGNvbnRyb2wgdGhlIG90aGVyLg0KPiA+ID4gPiAy LiBZb3UgY2FuJ3QgZm9yY2UgYm90aCBMRURzIE9GRi4gSWYgdGhlIEZPUkNFIGJpdCBmb3IgYm90 aA0KPiA+ID4gPiBMRUQncw0KPiA+ID4gPiBpcw0KPiA+ID4gPiAgICAgemVybywgdGhlbiBMRURz IGFyZSBjb250cm9sbGVkIGJ5IEhXIGFuZCBpbmRpY2F0ZQ0KPiA+ID4gPiBidXR0b24vY2hhcmdl cg0KPiA+ID4gPiAgICAgc3RhdGVzIGFzIGV4cGxhaW5lZCBpbiBkYXRhLXNoZWV0Lg0KPiA+ID4g PiANCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTWF0dGkgVmFpdHRpbmVuIDwNCj4gPiA+ID4gbWF0 dGkudmFpdHRpbmVuQGZpLnJvaG1ldXJvcGUuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gICBk cml2ZXJzL2xlZHMvS2NvbmZpZyAgICAgICAgfCAxMCArKysrDQo+ID4gPiA+ICAgZHJpdmVycy9s ZWRzL01ha2VmaWxlICAgICAgIHwgIDEgKw0KPiA+ID4gPiAgIGRyaXZlcnMvbGVkcy9sZWRzLWJk NzE4MjguYyB8IDk3DQo+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysNCj4gPiA+ID4gICAzIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspDQo+ID4gPiA+ ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbGVkcy9sZWRzLWJkNzE4MjguYw0KPiA+ID4g PiANCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9LY29uZmlnIGIvZHJpdmVycy9s ZWRzL0tjb25maWcNCj4gPiA+ID4gaW5kZXggYjBmZGVlZjEwYmQ5Li5lYzU5ZjI4YmNiMzkgMTAw NjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbGVkcy9LY29uZmlnDQo+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvbGVkcy9LY29uZmlnDQo+ID4gPiA+IEBAIC01MjksNiArNTI5LDE2IEBAIGNvbmZpZyBM RURTX0JEMjgwMg0KPiA+ID4gPiAgIAkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3Ig QkQyODAyR1UgUkdCIExFRA0KPiA+ID4gPiBkcml2ZXIgY2hpcHMNCj4gPiA+ID4gICAJICBhY2Nl c3NlZCB2aWEgdGhlIEkyQyBidXMuDQo+ID4gPiA+ICAgDQo+ID4gPiA+ICtjb25maWcgTEVEU19C RDcxODI4DQo+ID4gPiA+ICsJdHJpc3RhdGUgIkxFRCBkcml2ZXIgZm9yIExFRCBwaW5zIG9uIFJP SE0gQkQ3MTgyOCBQTUlDIg0KPiA+ID4gPiArCWRlcGVuZHMgb24gTEVEU19DTEFTUw0KPiA+ID4g ZG9lc24ndCB0aGlzIGhhdmUgYSBkZXBlbmRlbmN5IG9uIE1GRF9ST0hNX0JENzE4MjgNCj4gPiA+ ID4gKwlkZXBlbmRzIG9uIEkyQw0KPiA+ID4gPiArCWhlbHANCj4gPiA+ID4gKwkgIFRoaXMgb3B0 aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgTEVEIG91dHB1dHMgbG9jYXRlZA0KPiA+ID4gPiBvbiBS T0hNDQo+ID4gPiA+ICsJICAgQkQ3MTgyOCBwb3dlciBtYW5hZ2VtZW50IElDLiBST0hNIEJENzE4 MjggaGFzIHR3bw0KPiA+ID4gPiBsZWQgb3V0cHV0DQo+ID4gPiA+IHBpbnMNCj4gPiA+ID4gKwkg ICB3aGljaCBjYW4gYmUgbGVmdCB0byBpbmRpY2F0ZSBIVyBzdGF0ZXMgb3INCj4gPiA+ID4gY29u dHJvbGxlZCBieSBTVy4NCj4gPiA+ID4gU2F5DQo+ID4gPiA+ICsJICAgeWVzIGhlcmUgaWYgeW91 IHdhbnQgdG8gZW5hYmxlIFNXIGNvbnRyb2wgZm9yIHRoZXNlDQo+ID4gPiA+IExFRHMuDQo+ID4g PiA+ICsNCj4gPiA+IA0KPiA+ID4gQWRkIG1vZHVsZSBzdGF0ZW1lbnQNCj4gPiANCj4gPiBXaGF0 IGlzIHRoZSBtb2R1bGUgc3RhdGVtZW50PyBEbyB5b3UgbWVhbiB0aGUgJ2lmIHlvdSBjb21waWxl IHRoaXMNCj4gPiBhcyBhDQo+ID4gbW9kdWxlIGl0IHdpbGwgYmUgY2FsbGVkIGJsYWhibGFoJyBv ciAnY2hvb3NlIE0gdG8gYmxhaGJsYWgnPw0KPiA+IA0KPiA+IEkndmUgbmV2ZXIgdW5kZXJzdG9v ZCB3aHkgc29tZSBlbnRyaWVzIGhhdmUgdGhvc2Ugc3RhdGVtZW50cy4NCj4gPiAnQ2hvb3NlDQo+ ID4gTScgc3R1ZmYgaXMgaGVscCBmb3IgY29uZmlnIHN5c3RlbSAtIHdoeSBzaG91bGQgZWFjaCBt b2R1bGUgZXhwbGFpbg0KPiA+IGhvdw0KPiA+IHRvIHVzZSBjb25maWdzPyBUaGlzIGluZm9ybWF0 aW9uIHNob3VsZCBiZSBpbiBtb3JlIGdlbmVyaWMNCj4gPiBkb2N1bWVudGF0aW9uLiBGdXJ0aGVy bW9yZSwgdGhlICd0cmlzdGF0ZScgdGhlcmUgYWxyZWFkeSBzYXlzIHlvdQ0KPiA+IGNhbg0KPiA+ IGNvbXBpbGUgdGhpcyBhcyBhIG1vZHVsZS4gTW9kdWxlIG5hbWUgb24gdGhlIG90aGVyIGhhbmQg cmVhbGx5IGlzDQo+ID4gbW9kdWxlJ3MgcHJvcGVydHkgYnV0IGl0IG1heSB3ZWxsIGNoYW5nZSBp ZiBvbmUgY2hhbmdlcyB0aGUgbmFtZSBvZg0KPiA+IHRoZQ0KPiA+IGZpbGUuIFRoYXQgc2hvdWxk IG5vdCByZXF1aXJlIGNoYW5nZSBpbiBLQ29uZmlnLiBGdXJ0aGVybW9yZSwgd2hlcmUNCj4gPiBk bw0KPiA+IHlvdSBuZWVkIHRoZSBtb2R1bGUgbmFtZT8gQW5kIGlmIHlvdSByZWFsbHkgbmVlZCB0 aGUgbW9kdWxlIG5hbWUNCj4gPiB5b3UNCj4gPiBzaG91bGQgY2hlY2sgdGhlIGNvbmZpZyBuYW1l IGZyb20gTWFrZWZpbGUgdG8gYmUgc3VyZSAtIG1vZHVsZS9maWxlDQo+ID4gbmFtZXMgaW4gY29t bWVudHMgb3IgZG9jcyB0ZW5kIHRvIGdldCBvdXRkYXRlZC4NCj4gPiANCj4gPiBBZnRlciBhbGwg dGhpcyBiZWluZyBzYWlkIC0gSSBjYW4gYWRkIGFueSBib2lsZXJwbGF0ZSB0ZXh0IGluDQo+ID4g S0NvbmZpZw0KPiA+IGlmIG5lY2Vzc2FyeSAtIEkganVzdCBzZWUgemVybyBiZW5lZml0IGZyb20g dGhpcy4gQW5kIGlmIHlvdSBkaWRuJ3QNCj4gPiBtZWFuIHRoaXMgLSBjYW4geW91IHRoZW4gcGxl YXNlIHRlbGwgbWUgd2hhdCBpcyB0aGUgbW9kdWxlDQo+ID4gc3RhdGVtZW50Pw0KPiANCj4gWWVz LCBsaWtlIHlvdSBub3RpY2VkLCB0aGlzIGlzIGJvaWxlcnBsYXRlIHNvIHBsZWFzZSBmb2xsb3cg dGhlDQo+IGNvbnZlbnRpb24uIElmIHlvdSdkIGxpa2UgdG8gZGlzY3VzcyBpdHMgcmVsZXZhbmNl IHBsZWFzZSBzdWJtaXQNCj4gYSBtZXNzYWdlIHRvIGtlcm5lbC1qYW5pdG9yc0B2Z2VyLmtlcm5l bC5vcmcuDQoNCkkgZGlkIGZvbGxvdyB0aGUgY29udmVudGlvbi4gVGhlcmUgaXMgNjcgdHJpc3Rh dGVkIExFRCBkcml2ZXJzIHdoaWNoIGRvDQpOT1QgYWRkIHRoaXMgbW9kdWxlIGJ1aWxkaW5nIGJh YmJsaW5nIGluIGRlc2NyaXB0aW9uLiBUaGVuIHRoZXJlIGlzIDE0DQpkcml2ZXJzIHdoaWNoIGRv LiBTbyBjb21tb24gY29udmVudGlvbiBldmVuIGluIExFRCBzdWJzeXN0ZW0gaXMgdG8gTk9UDQpp bmNsdWRlIG1lYW5pbmdsZXNzIG11bWJvanVtYm8gdGhlcmUuDQoNClNvIGV2ZW4gcmVnYXJkaW5n IGNvbnZlbnRpb24gaXQgaXMgYmV0dGVyIHRvIGhhdmUgc2hvcnQgZGVzY3JpcHRpb24gdG8NCnRo ZSBwb2ludC4gVGhhdCBhY3R1YWxseSBtYWtlcyB0aGUgcmVxdWlyaW5nIGJvaWxlcnBsYXRlIGV2 ZW4gbW9yZQ0KdXNlbGVzcy4gQnV0IGFzIEkgc2FpZCwgSSBjYW4gcHV0IGFueSBtZWFuaW5nbGVz cyBsZXR0ZXJzIHRoZXJlLg0KKGFnYWluLCBpZiBJIGNhbid0IGNvbnZpbmNlIHlvdSB0byByZWNv bnNpZGVyIGhvdyB5b3UgbGlrZSB0aGUgTEVEDQpzdWJzeXN0ZW0gdG8gYXBwZWFyIGxpa2UpLiBL bm93aW5nIGhvdyBoYXJkIGl0IGlzIHRvIGhlbHAgcGVvcGxlDQpyZWR1Y2luZyB3YXN0ZSAtIGl0 J3MgbWF5IGJlIGVhc2llciBmb3IgbWUgdGhhbiBkaXNjdXNzaW5nIHRoaXMgZnVydGhlcg0KOigN Cg0KPiANCj4gPiA+ID4gICBjb25maWcgTEVEU19JTlRFTF9TUzQyMDANCj4gPiA+ID4gICAJdHJp c3RhdGUgIkxFRCBkcml2ZXIgZm9yIEludGVsIE5BUyBTUzQyMDAgc2VyaWVzIg0KPiA+ID4gPiAg IAlkZXBlbmRzIG9uIExFRFNfQ0xBU1MNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVk cy9NYWtlZmlsZSBiL2RyaXZlcnMvbGVkcy9NYWtlZmlsZQ0KPiA+ID4gPiBpbmRleCA0MWZiMDcz YTM5YzEuLjJhOGY2YThlNGM3YyAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9sZWRzL01h a2VmaWxlDQo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvbGVkcy9NYWtlZmlsZQ0KPiA+ID4gPiBAQCAt MTUsNiArMTUsNyBAQCBvYmotJChDT05GSUdfTEVEU19BTjMwMjU5QSkJCSs9DQo+ID4gPiA+IGxl ZHMtYW4zMDI1OWEubw0KPiA+ID4gPiAgIG9iai0kKENPTkZJR19MRURTX0JDTTYzMjgpCQkrPSBs ZWRzLWJjbTYzMjgubw0KPiA+ID4gPiAgIG9iai0kKENPTkZJR19MRURTX0JDTTYzNTgpCQkrPSBs ZWRzLWJjbTYzNTgubw0KPiA+ID4gPiAgIG9iai0kKENPTkZJR19MRURTX0JEMjgwMikJCSs9IGxl ZHMtYmQyODAyLm8NCj4gPiA+ID4gK29iai0kKENPTkZJR19MRURTX0JENzE4MjgpCQkrPSBsZWRz LWJkNzE4Mjgubw0KPiA+ID4gPiAgIG9iai0kKENPTkZJR19MRURTX0NQQ0FQKQkJKz0gbGVkcy1j cGNhcC5vDQo+ID4gPiA+ICAgb2JqLSQoQ09ORklHX0xFRFNfTE9DT01PKQkJKz0gbGVkcy1sb2Nv bW8ubw0KPiA+ID4gPiAgIG9iai0kKENPTkZJR19MRURTX0xNMzUzMCkJCSs9IGxlZHMtbG0zNTMw Lm8NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWRzLWJkNzE4MjguYyBiL2Ry aXZlcnMvbGVkcy9sZWRzLQ0KPiA+ID4gPiBiZDcxODI4LmMNCj4gPiA+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4yNDI3NjE5NDQ0ZjUNCj4gPiA+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiArKysgYi9kcml2ZXJzL2xlZHMvbGVkcy1iZDcxODI4 LmMNCj4gPiA+ID4gQEAgLTAsMCArMSw5NyBAQA0KPiA+ID4gPiArLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjANCj4gPiA+ID4gKy8vIENvcHlyaWdodCAoQykgMjAxOSBST0hNIFNl bWljb25kdWN0b3JzDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9kZXZpY2Uu aD4NCj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4NCj4gPiA+ID4gKyNpbmNsdWRlIDxs aW51eC9rZXJuZWwuaD4NCj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9sZWRzLmg+DQo+ID4gPiA+ ICsjaW5jbHVkZSA8bGludXgvbWZkL3JvaG0tYmQ3MTgyOC5oPg0KPiA+ID4gPiArI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPg0KPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rldmlj ZS5oPg0KPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPg0KPiA+ID4gPiArI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4NCj4gPiA+ID4gKw0KPiA+ID4gPiArI2RlZmluZSBCRDcxODI4X0xF RF9UT19EQVRBKGwpICgobCktPmlkID09IElEX0dSRUVOX0xFRCA/IFwNCj4gPiA+ID4gKwljb250 YWluZXJfb2YoKGwpLCBzdHJ1Y3QgYmQ3MTgyOF9sZWRzLCBncmVlbikgOiBcDQo+ID4gPiA+ICsJ Y29udGFpbmVyX29mKChsKSwgc3RydWN0IGJkNzE4MjhfbGVkcywgYW1iZXIpKQ0KPiA+ID4gDQo+ ID4gPiBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCBiZSBkZWZpbmluZyB0aGUgY29sb3IgYXMgdGhl IHZhcmlhYmxlLg0KPiA+ID4gVGhlIA0KPiA+ID4gb3V0cHV0cyBjYW4gZHJpdmUgYW55IGNvbG9y IExFRC4NCj4gPiANCj4gPiBJIHVzZWQgdGhlIGNvbG9ycyBtZW50aW9uZWQgaW4gQkQ3MTgyOCBk YXRhLXNoZWV0LiBJdCBpcyB0cnVlDQo+ID4gc29tZW9uZQ0KPiA+IG1pZ2h0IHVzZSBkaWZmZXJl bnQgTEVEcyBvbiB0aGVpciBib2FyZCBidXQgYXQgbGVhc3QgdGhpcyBuYW1pbmcNCj4gPiBhbGxv d3MNCj4gPiBvbmUgdG8gbWF0Y2ggdGhlIG91dHB1dCB0byBvbmUgaW4gZGF0YS1zaGVldC4gSSBj YW4gYWRkIGNvbW1lbnQNCj4gPiBleHBsYWluaW5nIHRoaXMgaWYgeW91IHRoaW4gaXQncyB3b3J0 aCBtZW50aW9uaW5nLg0KPiANCj4gSSBzZWUgeW91J3ZlIGNvbWUgdXAgd2l0aCBiZWxvdyBkZWZp bml0aW9ucyBpbiByb2htLWJkNzE4MjguaDoNCj4gDQo+ICNkZWZpbmUgQkQ3MTgyOF9NQVNLX0xF RF9BTUJFUgkJMHg4MA0KPiAjZGVmaW5lIEJENzE4MjhfTUFTS19MRURfR1JFRU4JCTB4NDANCj4g DQo+IElzIHRoaXMgaG93IHRob3NlIGJpdCBmaWVsZHMgYXJlIG5hbWVkIGluIHRoZSBkYXRhIHNo ZWV0Pw0KDQpUaGUgbGVkcyBhcmUgdGhyb3VnaCB0aGUgZG9jdW1lbnQgcmVmZXJyZWQgYXMgIkdS TkxFRCIgYW5kICJBTUJMRUQiLg0KVGhlc2Ugc3BlY2lmaWMgYml0cyBhcmUgbmFtZWQgIkFNQkxF RF9GT1JDRV9PTiIgYW5kICJHUk5MRURfRk9SQ0VfT04iLg0KDQo+IA0KPiA+ID4gPiArDQo+ID4g PiA+ICtlbnVtIHsNCj4gPiA+ID4gKwlJRF9HUkVFTl9MRUQsDQo+ID4gPiA+ICsJSURfQU1CRVJf TEVELA0KPiA+ID4gPiArCUlEX05NQlJfT0YsDQo+ID4gPiA+ICt9Ow0KPiA+ID4gPiArDQo+ID4g PiANCj4gPiA+IFBsZWFzZSB1c2UgdGhlIGNvbG9yX2lkIGluIGxpbnV4L2luY2x1ZGUvZHQtDQo+ ID4gPiBiaW5kaW5ncy9sZWRzL2NvbW1vbi5oDQo+ID4gDQo+ID4gTWF5YmUgSSBzaG91bGQgbm90 IGluY2x1ZGUgYW55dGhpbmcgZnJvbSBkdC1iaW5kaW5ncyBpZiBJIGRvbid0IHVzZQ0KPiA+IERU DQo+ID4gZm9yIHRoaXMgc3ViLWRldmljZT8gKFBsZWFzZSBzZWUgdGhlIGNvbW1lbnRzIGJlbG93 KS4NCj4gDQo+IEJ1dCB5b3Ugc2hvdWxkLg0KDQpJcyB0aGlzIHlvdXIgZmluYWwgc2F5PyBZb3Ug dGhpbmsgSSBjYW4ndCBjb252aW5jZSB5b3UgdG8gcmVjb25zaWRlcj8NCg0KQW55d2F5cywgdGhp cyBpcyBMRUQgSUQsIG5vdCBjb2xvciBwcm9wZXJ0eS4gRWcsIHRoaXMgaXMgbm90IGRlZmluaW5n DQp0aGUgY29sb3IsIHRoaXMgaXMgaWRlbnRpZnlpbmcgdGhlIExFRC4gUGxlYXNlIHNlZSB0aGUg bWFjcm86DQoNCiNkZWZpbmUgQkQ3MTgyOF9MRURfVE9fREFUQShsKSAoKGwpLT5pZCA9PSBJRF9H UkVFTl9MRUQgPyBcDQogICAgICAgIGNvbnRhaW5lcl9vZigobCksIHN0cnVjdCBiZDcxODI4X2xl ZHMsIGdyZWVuKSA6IFwNCiAgICAgICAgY29udGFpbmVyX29mKChsKSwgc3RydWN0IGJkNzE4Mjhf bGVkcywgYW1iZXIpKQ0KDQp3aGljaCBpcyB1c2VkIHRvIG9idGFpbiB0aGUgcG9pbnRlciB0byBk cml2ZXIgZGF0YSBiYXNlZCBvbiBwb2ludGVyIHRvDQpsZWQgc3RydWN0dXJlLiBFZywgd2UgZ2V0 IHRoZSBjb3JyZWN0IG9mZnNldCBieSBkZXRlcm1pbmluZyB3aGljaCBMRUQNCndhcyBjb250b2xs ZWQgKGJhc2VkIG9uIHRoZSBMRUQgSUQpLg0KDQo+IA0KPiA+ID4gPiArc3RydWN0IGJkNzE4Mjhf bGVkIHsNCj4gPiA+ID4gKwlpbnQgaWQ7DQo+ID4gPiA+ICsJc3RydWN0IGxlZF9jbGFzc2RldiBs Ow0KPiA+ID4gPiArCXU4IGZvcmNlX21hc2s7DQo+ID4gPiA+ICt9Ow0KPiA+ID4gPiArDQo+ID4g PiA+ICtzdHJ1Y3QgYmQ3MTgyOF9sZWRzIHsNCj4gPiA+ID4gKwlzdHJ1Y3Qgcm9obV9yZWdtYXBf ZGV2ICpiZDcxODI4Ow0KPiA+ID4gPiArCXN0cnVjdCBiZDcxODI4X2xlZCBncmVlbjsNCj4gPiA+ ID4gKwlzdHJ1Y3QgYmQ3MTgyOF9sZWQgYW1iZXI7DQo+ID4gPiA+ICt9Ow0KPiA+ID4gPiArDQo+ ID4gPiA+ICtzdGF0aWMgaW50IGJkNzE4MjhfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRf Y2xhc3NkZXYNCj4gPiA+ID4gKmxlZF9jZGV2LA0KPiA+ID4gPiArCQkJCSAgICAgIGVudW0gbGVk X2JyaWdodG5lc3MNCj4gPiA+ID4gdmFsdWUpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsJc3RydWN0 IGJkNzE4MjhfbGVkICpsID0gY29udGFpbmVyX29mKGxlZF9jZGV2LCBzdHJ1Y3QNCj4gPiA+ID4g YmQ3MTgyOF9sZWQsIGwpOw0KPiA+ID4gPiArCXN0cnVjdCBiZDcxODI4X2xlZHMgKmRhdGE7DQo+ ID4gPiA+ICsJdW5zaWduZWQgaW50IHZhbCA9IEJENzE4MjhfTEVEX09GRjsNCj4gPiA+ID4gKw0K PiA+ID4gPiArCWRhdGEgPSBCRDcxODI4X0xFRF9UT19EQVRBKGwpOw0KPiA+ID4gPiArCWlmICh2 YWx1ZSAhPSBMRURfT0ZGKQ0KPiA+ID4gPiArCQl2YWwgPSBCRDcxODI4X0xFRF9PTjsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArCXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+YmQ3MTgyOC0+ cmVnbWFwLA0KPiA+ID4gPiBCRDcxODI4X1JFR19MRURfQ1RSTCwNCj4gPiA+ID4gKwkJCSAgICBs LT5mb3JjZV9tYXNrLCB2YWwpOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0 aWMgaW50IGJkNzE4MjhfbGVkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ ID4gPiA+ICt7DQo+ID4gPiA+ICsJc3RydWN0IHJvaG1fcmVnbWFwX2RldiAqYmQ3MTgyODsNCj4g PiA+ID4gKwlzdHJ1Y3QgYmQ3MTgyOF9sZWRzICpsOw0KPiA+ID4gPiArCXN0cnVjdCBiZDcxODI4 X2xlZCAqZywgKmE7DQo+ID4gPiA+ICsJc3RhdGljIGNvbnN0IGNoYXIgKkdOQU1FID0gImJkNzE4 MjgtZ3JlZW4tbGVkIjsNCj4gPiA+ID4gKwlzdGF0aWMgY29uc3QgY2hhciAqQU5BTUUgPSAiYmQ3 MTgyOC1hbWJlci1sZWQiOw0KPiA+ID4gVGhlIExFRCBjbGFzcyBjcmVhdGVzIHRoZSBuYW1lIGl0 IGNhbiBnZXQgaXQgZnJvbSB0aGUgRFQuDQo+ID4gDQo+ID4gSSBkaWQgbm90IGFkZCBEVCBub2Rl IGZvciBMRURzIGFzIEkgdGhvdWdodCB0aGlzIGlzIHByZWZlcnJlZCB3YXkNCj4gPiB3aGVuDQo+ ID4gdGhlcmUgaXMgbm90IG11Y2ggSFcgaW5mb3JtYXRpb24gdG8gYnJpbmcgZnJvbSBEVC4gSSBh bSBub3Qgc3VyZSBhcw0KPiA+IHByZXZpb3VzIFBNSUNzIEkgZGlkIGRyaXZlcnMgZm9yIGRpZG4n dCBoYXZlIExFRHMgdGhvdWdoLiBDdXJyZW50bHkNCj4gPiB0aGlzIGlzIGEgTUZEIHN1Yi1kZXZp Y2UgYW5kIGdldHMgbm8gZGF0YSBmcm9tIERULiBBY3R1YWxseSB0aGUNCj4gPiBkcml2ZXINCj4g PiBjcmFzaGVkIHdoZW4gSSBmaXJzdCBkaWRuJ3QgZXhwbGljaXRseSBnaXZlIHRoZXNlIG5hbWVz Lg0KPiANCj4gUGxlYXNlIGNvbXBhcmUgYmVsb3cgYmluZGluZ3Mgb2YgTUZEIGRldmljZXMgd2l0 aCBMRUQgc3VwcG9ydDoNCj4gDQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9t ZmQvbWF4Nzc2OTMudHh0DQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQv dGktbG11LnR4dA0KPiANCj4gUGxlYXNlIGZvbGxvdyB0aGVtIGJ1dCB1c2UgbmV3ICdmdW5jdGlv bicgYW5kICdjb2xvcicgcHJvcGVydGllcw0KPiBpbnN0ZWFkIG9mICdsYWJlbCcuDQo+IA0KPiA+ ID4gPiArCWludCByZXQ7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlwcl9pbmZvKCJiZDcxODI4IExF RCBkcml2ZXIgcHJvYmVkXG4iKTsNCj4gPiBhcyBhIGNvbW1lbnQgZnJvbSBteXNlbGYgLSB0aGlz IHByaW50IHNob3VsZCBiZSBlbGltaW5hdGVkIG9yIGJ5DQo+ID4gbWluaW11bSBjb252ZXJ0ZWQg dG8gZGV2X2RiZy4NCj4gPiANCj4gPiA+ID4gKw0KPiA+ID4gPiArCWJkNzE4MjggPSBkZXZfZ2V0 X2RydmRhdGEocGRldi0+ZGV2LnBhcmVudCk7DQo+ID4gPiA+ICsJbCA9IGRldm1fa3phbGxvYygm cGRldi0+ZGV2LCBzaXplb2YoKmwpLCBHRlBfS0VSTkVMKTsNCj4gPiA+ID4gKwlpZiAoIWwpDQo+ ID4gPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ID4gPiArCWwtPmJkNzE4MjggPSBiZDcxODI4 Ow0KPiA+ID4gPiArCWEgPSAmbC0+YW1iZXI7DQo+ID4gPiA+ICsJZyA9ICZsLT5ncmVlbjsNCj4g PiA+ID4gKwlhLT5pZCA9IElEX0FNQkVSX0xFRDsNCj4gPiA+ID4gKwlnLT5pZCA9IElEX0dSRUVO X0xFRDsNCj4gPiA+ID4gKwlhLT5mb3JjZV9tYXNrID0gQkQ3MTgyOF9NQVNLX0xFRF9BTUJFUjsN Cj4gPiA+ID4gKwlnLT5mb3JjZV9tYXNrID0gQkQ3MTgyOF9NQVNLX0xFRF9HUkVFTjsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArCWEtPmwubmFtZSA9IEFOQU1FOw0KPiA+ID4gPiArCWctPmwubmFtZSA9 IEdOQU1FOw0KPiA+ID4gPiArCWEtPmwuYnJpZ2h0bmVzc19zZXRfYmxvY2tpbmcgPQ0KPiA+ID4g PiBiZDcxODI4X2xlZF9icmlnaHRuZXNzX3NldDsNCj4gPiA+ID4gKwlnLT5sLmJyaWdodG5lc3Nf c2V0X2Jsb2NraW5nID0NCj4gPiA+ID4gYmQ3MTgyOF9sZWRfYnJpZ2h0bmVzc19zZXQ7DQo+ID4g PiA+ICsNCj4gPiA+ID4gKwlyZXQgPSBkZXZtX2xlZF9jbGFzc2Rldl9yZWdpc3RlcigmcGRldi0+ ZGV2LCAmZy0+bCk7DQo+ID4gPiA+ICsJaWYgKHJldCkNCj4gPiA+ID4gKwkJcmV0dXJuIHJldDsN Cj4gPiA+ID4gKw0KPiA+ID4gPiArCXJldHVybiBkZXZtX2xlZF9jbGFzc2Rldl9yZWdpc3Rlcigm cGRldi0+ZGV2LCAmYS0+bCk7DQo+IA0KPiBUaGlzIHdheSB5b3UgZm9yY2UgdXNlcnMgdG8gYWx3 YXlzIHJlZ2lzdGVyIHR3byBMRUQgY2xhc3MgZGV2aWNlcw0KPiB3aGVyZWFzIHRoZXkgbWlnaHQg bmVlZCBvbmx5IG9uZS4gUGxlYXNlIGNvbXBhcmUgaG93IG90aGVyIExFRCBjbGFzcw0KPiBkcml2 ZXJzIGhhbmRsZSBEVCBwYXJzaW5nIGFuZCBMRUQgY2xhc3MgZGV2aWNlIHJlZ2lzdHJhdGlvbi4N Cg0KSSBhbSBub3Qgc3VyZSBpZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5IHdoYXQgeW91IG1lYW4g YnkgdXNpbmcgb25seSBvbmUNCmNsYXNzIGRldmljZS4gQXMgSSAoaG9wZWZ1bGx5KSBzb21ld2hl cmUgc2FpZCAtIHVzZXJzIGNhbid0IGNvbnRyb2wNCm9ubHkgb25lIG9mIHRoZXNlIExFRHMuIElm IHRoZXkgZGVjaWRlIHRvIGVuYWJsZSBvbmUgbGVkIGJ5IFNXLCB0aGVuDQp0aGV5IGluZXZpdGFi bHkgY29udHJvbCBhbHNvIHRoZSBvdGhlci4gVGh1cyBpdCBpcyBiZXR0ZXIgdGhhdCB1c2VyDQpn ZXRzIGNvbnRyb2wgdG8gYm90aCBvZiB0aGUgTEVEcyBpZiB0aGV5IHRha2UgdGhlIGNvbnRyb2wg Zm9yIG9uZS4NCg0KT3IgZG8geW91IG1lYW4gSSBjb3VsZCBhY2hpZXZlIHRoZSBjb250cm9sIGZv ciBib3RoIG9mIHRoZXNlIExFRHMgdmlhDQpvbmx5IG9uZSBjbGFzcyBkZXZpY2U/DQoNCj4gDQo+ ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+IA0KPiA+ID4gVGhpcyBsb29rcyBkaWZmZXJlbnQu ICBOb3Qgc3VyZSB3aHkgeW91IHJlZ2lzdGVyIGJvdGggTEVEcyBpbg0KPiA+ID4gdGhpcw0KPiA+ ID4gcHJvYmUuDQo+ID4gPiANCj4gPiA+IFlvdSBjYW4gdXNlIHRoZSBEVCB0byBkZWZpbmUgYm90 aCBMRURzIGFuZCB0aGVuIGVhY2ggd2lsbCBiZQ0KPiA+ID4gcHJvYmVkDQo+ID4gPiBhbmQgDQo+ ID4gPiByZWdpc3RlcmVkIHNlcGFyYXRlbHkuDQo+ID4gDQo+ID4gQXMgSSBtZW50aW9uZWQgYWJv dmUsIHRoaXMgZHJpdmVyIGlzIGN1cnJlbnRseSBub3QgdXNpbmcgRFQgYXQgYWxsLg0KPiA+IFJl YXNvbiB3aHkgaXQgZG9lcyBub3QgaXMgdGhhdCBJIGRpZG4ndCBrbm93IGFsbCB0aGUgTEVEcyBh cmUNCj4gPiB1c3VhbGx5DQo+ID4gaGF2aW5nIG93biBEVCBlbnRyaWVzL2RyaXZlcnMuDQo+ID4g DQo+ID4gQnV0IHRoZXJlIGlzIGFjdHVhbGx5IHJlYXNvbiBmb3IgYnVuZGxpbmcgdGhlIExFRHMg dG8gc2FtZSBkcml2ZXIuDQo+ID4gV2hhdA0KPiA+IGlzIG5vdCBzaG93biBpbiBkcml2ZXIgaXMg dGhhdCBMRURzIGNhbiBiZSBjb250cm9sbGVkIGJ5IFBNSUMgc3RhdGUNCj4gPiBtYWNoaW5lIHNv IHRoYXQgdGhleSBhcmUgaW5kaWNhdGluZyBjaGFyZ2VyIHN0YXRlcy4gT3RoZXIgb3B0aW9uIGlz DQo+IA0KPiBUaGlzIGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBMRUQgdHJpZ2dlciB0aGF0IHlvdXIg ZHJpdmVyIHNob3VsZA0KPiBleHBvc2UuDQo+IE9uIGFjdGl2YXRpb24gdGhlIHRyaWdnZXIgd291 bGQgc2V0dXAgdGhlIGhhcmR3YXJlIHRvIGNvbnRyb2wgdGhlDQo+IExFRHMuIEJ1dCB0aGF0IGNh biBiZSBjb3ZlcmVkIGxhdGVyLg0KDQpZZXQgYW5vdGhlciB0aGluZyBmb3IgbWUgdG8gbGVhcm4g PSkgSSBsb29rZWQgYXQgdGhlIHRyaWdnZXIgcHJvcGVydGllcw0KaW4gRFQuIFRoYXQgbG9va2Vk IGxpa2UgYSB3YXkgdG8gbWFrZSB0aGUgTEVEIGZyYW1ld29yayB0byAiYmluZCIgdGhlDQpMRUQg c3RhdGUgdG8gc29tZSB0cmlnZ2VyLiAoRm9yIGV4YW1wbGUgbWFrZSB0aGUgTEVEIGZyYW1ld29y ayB0bw0KdG9nZ2xlIHNwZWNpZmljIExFRCBzdGF0ZSB3aGVuIFVTQiBkZXZpY2UgaXMgcGx1Z2dl ZD8pDQoNCklmIHRoaXMgaXMgdGhlIGNhc2UgdGhlbiBpdCBtaWdodCBub3QgYmUgcmVsZXZhbnQg Zm9yIEJENzE4MjguIEhlcmUgdGhlDQpMRUQgaXMgYnktZGVmYXVsdCBjb250cm9sbGVkIGJ5IEhX LiBFZywgd2hlbiBjaGFyZ2VyIHN0YXJ0cyBjaGFyZ2luZw0KdGhlIGJhdHRlcnksIHRoZSBQTUlD IHdpbGwgbGl0IHRoZSBMRUQuIEl0IHdpbGwgZG8gc28gYWxzbyB3aGVuIHBvd2VyDQpidXR0b24g aXMgcHJlc3NlZCBvciBjZXJ0YWluIHByb2JsZW1zIGFyZSBkZXRlY3RlZC4gVGhpcyByZXFpcmVz IG5vIFNXDQppbnRlcmFjdGlvbi4NCg0KV2hhdCB0aGlzIGRyaXZlciBpbnRlbmRzIHRvIGRvIGlz IHRvIGFsbG93IFNXIHRvIHRha2Ugb3ZlciB0aGlzLiBFZywgaWYNCnN5c3RlbSBpcyBkZXNpZ25l ZCBzbyB0aGF0IGl0IGlzIHByZWZlcmFibHkgdG8gdXNlIHRoZXNlIExFRHMgZm9yIHNvbWUNCm90 aGVyIHB1cnBvc2UgaXQgY2FuIGJlIGRvbmUgYnkgbG9hZGluZyB0aGlzIExFRCBkcml2ZXIgYW5k IGFsbG93aW5nDQp1c2VyLXNwYWNlIHRvIGNvbnRyb2wgdGhlc2UgTEVEcyB2aWEgc3lzZnMuDQoN Cj4gPiBkcml2aW5nIExFRHMgdXNpbmcgdGhpcyBkcml2ZXIgLSBidXQgZm9yY2luZyBvbmUgb2Yg dGhlIExFRHMgd2lsbA0KPiA+IGNhdXNlDQo+ID4gYWxzbyB0aGUgb3RoZXIgTEVEIHRvIGJlIHVu ZGVyIFNXIGNvbnRyb2wuIEVnLCBvbmUgY2FuJ3QgY29udHJvbA0KPiA+IGp1c3QNCj4gPiBzaW5n bGUgTEVEIHVzaW5nIFNXLCBpdHMgYm90aCBvZiB0aGVtIG9yIG5vbmUuDQo+IA0KPiBTbyB0aGlz IGxpbWl0YXRpb24gd2lsbCBoYXZlIHRvIGJ5IGRvY3VtZW50ZWQgaW4gdGhlIHRyaWdnZXIgQUJJ Lg0KPiANCj4gPiA+IFRoaXMgaXMgaG93IGl0IGlzIGNvbW1vbmx5IGRvbmUuDQo+ID4gPiANCj4g PiA+IFlvdSBjYW4gcmVmZXJlbmNlIHRoZSBMTTM2Mjc0IGxlZCBkcml2ZXIgYXMgdGhpcyBpcyBh IE1GRCBkZXZpY2UNCj4gPiA+IHRvDQo+ID4gPiB0aGUgDQo+ID4gPiB0aS1sbXUuYyBpbiB0aGUg TUZEIGRpcmVjdG9yeS4NCj4gPiANCj4gPiBUaGFua3MgZm9yIHBvaW50aW5nIHRoaXMgb3V0LiBJ IHdpbGwgZ2xhZGx5IHNlZSBob3cgb3RoZXJzIGhhdmUgaXQNCj4gPiBpbXBsZW1lbnRlZCEgSSBq dXN0IHdvdWxkIGxpa2UgdG8ga25vdyBpZiB0aGUgRFQgYmluZGluZyBpcyByZWFsbHkNCj4gPiBh DQo+ID4gbXVzdD8gSW4gdGhpcyBjYXNlIEkgYW0gdW5zdXJlIHdoYXQgTEVEIHJlbGF0ZWQgZXh0 cmEgaW5mb3JtYXRpb24NCj4gPiB3ZQ0KPiA+IGNvdWxkIHJlYWxseSBnaXZlIGZyb20gRFQgKGZv ciB0aGlzIHNwZWNpZmljIGRldmljZSkuDQo+ID4gDQo+ID4gSSBqdXN0IGNoZWNrZWQgdGhlIGxt MzYyNzQgeW91IG1lbnRpb25lZC4gSSBzZWUgdGhhdCBhbHNvIGxtMzYyNzQNCj4gPiBkbw0KPiA+ IHBhcnNlIHRoZSBkdCBhbmQgc2V0IHRoZSBuYW1lIGl0c2VsZiAoc28gbWF5YmUgdGhlIGxlZF9j bGFzcyBpcyBub3QNCj4gPiBkb2luZyB0aGlzIGFmdGVyIGFsbD8pIC0gYWx0aG91Z2ggdGhlIG5h bWUgc2V0dGluZyBjb2RlIGluIGxtMzYyNzQNCj4gPiBpcyBhDQo+ID4gYml0IHBlY3VsaWFyIGFz IGl0IGxvb3BzIHRocm91Z2ggYWxsIGNoaWxkIG5vZGVzIGFuZCBvdmVyd3JpdGVzIHRoZQ0KPiA+ IG9sZA0KPiA+IG5hbWUgaWYgaXQgZmluZHMgbW9yZSB0aGFuIG9uZSAibGFiZWwiIHByb3BlcnRp ZXMgZnJvbSBub2RlcyAoaWYgSQ0KPiA+IHJlYWQNCj4gPiB0aGUgY29kZSBjb3JyZWN0bHkpLg0K PiA+IA0KPiA+IEluIGFueSBjYXNlIEkgYW0gdW5zdXJlIHdoYXQgaXMgdGhlIGJlbmVmaXQgZnJv bSB1c2luZyBEVCBhbmQNCj4gPiBhZGRpbmcNCj4gPiB0aGUgRFQgcGFyc2luZyBjb2RlIGZvciB0 aGlzIFBNSUMncyBMRURzLiBJIGNvdWxkIHVuZGVyc3RhbmQgRFQNCj4gPiB1c2FnZQ0KPiA+IGlm IExFRCBjbGFzcyBoYW5kbGVkIGR0IHBhcnNpbmcgYW5kIGlmIHRoZXJlIHdhcyBzb21ldGhpbmcg dG8NCj4gPiBjb25maWd1cmUNCj4gPiBpbiBCRDcxODI4IExFRHMgLSBidXQgSSBzZWUgbm8gc3Vj aCBiZW5lZml0cyBpbiB0aGlzIGNhc2UuDQo+IA0KPiBJIGhvcGUgSSB3YXMgYWJsZSB0byBjbGFy aWZ5IG1vc3Qgb2YgeW91ciBkb3VidHMuDQoNClRoYW5rcyBhZ2FpbiBmb3IgdGFraW5nIHRoZSB0 aW1lIHRvIGNoZWNrIHRoaXMgb3V0LiBJIGFwcHJlY2lhdGUgdGhlDQplZmZvcnQgeW91IGd1eXMg cHV0IGludG8gdGhpcyEgQW5kIHdoYXQgY29tZXMgdG8gbXkgZG91YnRzIC0geWVzLCBJDQpzdGls bCBoYXZlIGEgZmV3IDspIEJ1dCBJIGFtIHN1cmUgd2UgY2FuIHdvcmsgdGhpcyBvdXQuIFRoYW5r cyBhIGJ1bmNoDQpmb3IgdGhpcyBkaXNjdXNzaW9uIEphY2VrIQ0KDQpCciwNCglNYXR0aSBWYWl0 dGluZW4NCg0KDQoNCg==