From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 59B1181EBA for ; Fri, 18 Nov 2016 00:39:06 -0800 (PST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP; 18 Nov 2016 00:39:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,656,1473145200"; d="scan'208";a="1070192254" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga001.fm.intel.com with ESMTP; 18 Nov 2016 00:39:10 -0800 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Fri, 18 Nov 2016 00:39:10 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.248.2; Fri, 18 Nov 2016 00:39:09 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.239]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.96]) with mapi id 14.03.0248.002; Fri, 18 Nov 2016 16:39:07 +0800 From: "Tian, Feng" To: Ard Biesheuvel CC: "Ni, Ruiyu" , "Kinney, Michael D" , "edk2-devel@lists.01.org" , "Gao, Liming" , "afish@apple.com" , Leif Lindholm , "Tian, Feng" Thread-Topic: [edk2] [PATCH v3 1/5] MdeModulePkg: introduce non-discoverable device protocol Thread-Index: AQHSQCrhi0OUwc/voky3wz5P0wSZY6DbXOsAgACYTQCAADX9AIAAHWGAgAAvvwCAAQNngIAALueAgACMmTD//5REAIAAogyg Date: Fri, 18 Nov 2016 08:39:07 +0000 Message-ID: <7F1BAD85ADEA444D97065A60D2E97EE566E522A0@SHSMSX101.ccr.corp.intel.com> References: <1479315571-14953-1-git-send-email-ard.biesheuvel@linaro.org> <1479315571-14953-2-git-send-email-ard.biesheuvel@linaro.org> <20161116174848.GC27644@bivouac.eciton.net> <734D49CCEBEEF84792F5B80ED585239D58E7C6D4@SHSMSX104.ccr.corp.intel.com> <4E810E45-F1CC-429C-B3F4-FC6182F7D9B2@linaro.org> <734D49CCEBEEF84792F5B80ED585239D58E7D6F5@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D58E7FCF6@SHSMSX104.ccr.corp.intel.com> <7F1BAD85ADEA444D97065A60D2E97EE566E521B3@SHSMSX101.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v3 1/5] MdeModulePkg: introduce non-discoverable device protocol X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Nov 2016 08:39:06 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIHNpbXBsZXN0IHdheSBJIGNhbiB0aGluayBpcw0KDQorc3RydWN0IF9OT05fRElTQ09WRVJB QkxFX0RFVklDRSB7DQorICAvLw0KKyAgLy8gVGhlIHR5cGUgb2YgZGV2aWNlDQorICAvLw0KKyAg Tk9OX0RJU0NPVkVSQUJMRV9ERVZJQ0VfVFlQRSAgICAgICAgVHlwZTsgLT4gY2hhbmdlIGl0IHRv IFVJTlQ4IFR5cGU7IC8vVHlwZSBpcyB0aGUgc3VidHlwZSBvZiBjb3JyZXNwb25kaW5nIGRldmlj ZSwgc3VjaCBhcyBTQVRBIGlzIE1TR19TQVRBX0RQKDB4MTIpDQorICAvLw0KKyAgLy8gV2hldGhl ciB0aGlzIGRldmljZSBpcyBETUEgY29oZXJlbnQNCisgIC8vDQorICBOT05fRElTQ09WRVJBQkxF X0RFVklDRV9ETUFfVFlQRSAgICBEbWFUeXBlOw0KKyAgLy8NCisgIC8vIEluaXRpYWxpemF0aW9u IGZ1bmN0aW9uIGZvciB0aGUgZGV2aWNlDQorICAvLw0KKyAgTk9OX0RJU0NPVkVSQUJMRV9ERVZJ Q0VfSU5JVCAgICAgICAgSW5pdGlhbGl6ZTsNCisgIC8vDQorICAvLyBUaGUgTU1JTyBhbmQgSS9P IHJlZ2lvbnMgb3duZWQgYnkgdGhlIGRldmljZQ0KKyAgLy8NCisgIEVGSV9BQ1BJX0FERFJFU1Nf U1BBQ0VfREVTQ1JJUFRPUiAgICpSZXNvdXJjZXM7DQorfTsNCg0KVGhhbmtzDQpGZW5nDQoNCi0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBcmQgQmllc2hldXZlbCBbbWFpbHRvOmFy ZC5iaWVzaGV1dmVsQGxpbmFyby5vcmddIA0KU2VudDogRnJpZGF5LCBOb3ZlbWJlciAxOCwgMjAx NiAyOjU3IFBNDQpUbzogVGlhbiwgRmVuZyA8ZmVuZy50aWFuQGludGVsLmNvbT4NCkNjOiBOaSwg UnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBHYW8sIExpbWluZyA8 bGltaW5nLmdhb0BpbnRlbC5jb20+OyBhZmlzaEBhcHBsZS5jb207IExlaWYgTGluZGhvbG0gPGxl aWYubGluZGhvbG1AbGluYXJvLm9yZz4NClN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYzIDEv NV0gTWRlTW9kdWxlUGtnOiBpbnRyb2R1Y2Ugbm9uLWRpc2NvdmVyYWJsZSBkZXZpY2UgcHJvdG9j b2wNCg0KT24gMTggTm92ZW1iZXIgMjAxNiBhdCAwNToyNCwgVGlhbiwgRmVuZyA8ZmVuZy50aWFu QGludGVsLmNvbT4gd3JvdGU6DQo+IEFyZCwNCj4NCj4gSSBoYXZlIGFub3RoZXIgcXVlc3Rpb24u DQo+DQo+IElzIGl0IHRoZSBvbmx5IHdheSB0byBzcGVjaWZ5IGRldmljZSB0eXBlIGluIGJlbG93 IGVudW0/IExvb2tzIGxpa2UgaXQgd2lsbCBiZSBjaGFuZ2VkIG9mdGVuLiBJcyBpdCBwb3NzaWJs ZSB0byBtYWtlIHVzZSBvZiBEZXZpY2VQYXRoIG5vZGU/IE9mIGNvdXJzZSwgSSBoYXZlIG5vIGdv b2QgaWRlYSB0byBoYW5kbGUgQU1CQSBjb250cm9sbGVyLi4uDQo+DQoNCkhvdyB3b3VsZCB5b3Ug dXNlIGEgZGV2aWNlIHBhdGggbm9kZSB0byBkbyB0aGF0PyBJIHRoaW5rIHdlIHdpbGwgYWx3YXlz IG5lZWQgYSBtYXBwaW5nIHNvbWV3aGVyZSBpbiB0aGUgY29kZSBiZXR3ZWVuIG51bWJlcnMgYW5k IEFIQ0kvRUhDSS9ldGMgdHlwZXMsIGdpdmVuIHRoYXQgdGhlIGRldmljZSBpdHNlbGYgY2Fubm90 IGJlIGludGVycm9nYXRlZCB0byBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24uIElmIHdlIGNhbiBk byB0aGUgc2FtZSB3aXRoIGEgZGV2aWNlIHBhdGgsIEknbSBoYXBweSB0byBpbnZlc3RpZ2F0ZSwg YnV0IEkgd2lsbCBuZWVkIHNvbWUgaGVscCB1bmRlcnN0YW5kaW5nIGhvdyB0aGF0IHdvdWxkIHdv cmsNCg0KPiArLy8NCj4gKy8vIERhdGEgVHlwZXMNCj4gKy8vDQo+ICt0eXBlZGVmIGVudW0gew0K PiArICBOb25EaXNjb3ZlcmFibGVEZXZpY2VUeXBlQW1iYSwNCj4gKyAgTm9uRGlzY292ZXJhYmxl RGV2aWNlVHlwZU9oY2ksDQo+ICsgIE5vbkRpc2NvdmVyYWJsZURldmljZVR5cGVVaGNpLA0KPiAr ICBOb25EaXNjb3ZlcmFibGVEZXZpY2VUeXBlRWhjaSwNCj4gKyAgTm9uRGlzY292ZXJhYmxlRGV2 aWNlVHlwZVhoY2ksDQo+ICsgIE5vbkRpc2NvdmVyYWJsZURldmljZVR5cGVBaGNpLA0KPiArICBO b25EaXNjb3ZlcmFibGVEZXZpY2VUeXBlU2RoY2ksDQo+ICsgIE5vbkRpc2NvdmVyYWJsZURldmlj ZVR5cGVVZnMsDQo+ICsgIE5vbkRpc2NvdmVyYWJsZURldmljZVR5cGVOdm1lLA0KPiArICBOb25E aXNjb3ZlcmFibGVEZXZpY2VUeXBlTWF4LA0KPiArfSBOT05fRElTQ09WRVJBQkxFX0RFVklDRV9U WVBFOw0KPg0KPiBUaGFua3MNCj4gRmVuZw0KPg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAx Lm9yZ10gT24gQmVoYWxmIE9mIA0KPiBBcmQgQmllc2hldXZlbA0KPiBTZW50OiBGcmlkYXksIE5v dmVtYmVyIDE4LCAyMDE2IDEyOjU5IFBNDQo+IFRvOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVs LmNvbT4NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9A aW50ZWwuY29tPjsgDQo+IGFmaXNoQGFwcGxlLmNvbTsgTGVpZiBMaW5kaG9sbSA8bGVpZi5saW5k aG9sbUBsaW5hcm8ub3JnPg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCB2MyAxLzVdIE1k ZU1vZHVsZVBrZzogaW50cm9kdWNlIA0KPiBub24tZGlzY292ZXJhYmxlIGRldmljZSBwcm90b2Nv bA0KPg0KPiBPbiAxOCBOb3ZlbWJlciAyMDE2IGF0IDAyOjExLCBOaSwgUnVpeXUgPHJ1aXl1Lm5p QGludGVsLmNvbT4gd3JvdGU6DQo+Pg0KPj4NCj4+IFJlZ2FyZHMsDQo+PiBSYXkNCj4+DQo+Pj4t LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+RnJvbTogQXJkIEJpZXNoZXV2ZWwgW21haWx0 bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPj4+U2VudDogVGh1cnNkYXksIE5vdmVtYmVy IDE3LCAyMDE2IDY6NDMgUE0NCj4+PlRvOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT4N Cj4+PkNjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyAN Cj4+PmVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRl bC5jb20+OyANCj4+PmFmaXNoQGFwcGxlLmNvbTsgTGVpZiBMaW5kaG9sbSA8bGVpZi5saW5kaG9s bUBsaW5hcm8ub3JnPg0KPj4+U3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjMgMS81XSBNZGVN b2R1bGVQa2c6IGludHJvZHVjZSANCj4+Pm5vbi1kaXNjb3ZlcmFibGUgZGV2aWNlIHByb3RvY29s DQo+Pj4NCj4+Pg0KPj4+PiBPbiAxNyBOb3YgMjAxNiwgYXQgMDg6NTIsIE5pLCBSdWl5dSA8cnVp eXUubmlAaW50ZWwuY29tPiB3cm90ZToNCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gVGhhbmtzL1Jh eQ0KPj4+Pg0KPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZyb206IGVk azItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiANCj4+ Pj4+IEJlaGFsZiBPZiBBcmQgQmllc2hldXZlbA0KPj4+Pj4gU2VudDogVGh1cnNkYXksIE5vdmVt YmVyIDE3LCAyMDE2IDI6MDcgUE0NCj4+Pj4+IFRvOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVs LmNvbT4NCj4+Pj4+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+OyBlZGsyLSANCj4+Pj4+IGRldmVsQGxpc3RzLjAxLm9yZzsgR2FvLCBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPjsgDQo+Pj4+PiBhZmlzaEBhcHBsZS5jb207IExlaWYgTGluZGhv bG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4NCj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0g W1BBVENIIHYzIDEvNV0gTWRlTW9kdWxlUGtnOiBpbnRyb2R1Y2Ugbm9uLSANCj4+Pj4+IGRpc2Nv dmVyYWJsZSBkZXZpY2UgcHJvdG9jb2wNCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+PiBPbiAx NyBOb3YgMjAxNiwgYXQgMDI6NTMsIE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPiB3cm90 ZToNCj4+Pj4+Pg0KPj4+Pj4+IEFyZCwNCj4+Pj4+PiBJIGhhdmUgdHdvIGNvbW1lbnRzIGluIGJl bG93Lg0KPj4+Pj4+DQo+Pj4+Pj4gVGhhbmtzL1JheQ0KPj4+Pj4+DQo+Pj4+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+Pj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsy LWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiANCj4+Pj4+Pj4gQmVoYWxmIE9mIExlaWYg TGluZGhvbG0NCj4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDE3LCAyMDE2IDE6NDkg QU0NCj4+Pj4+Pj4gVG86IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3Jn Pg0KPj4+Pj4+PiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZzsgDQo+Pj4+Pj4+IGFmaXNoQGFwcGxlLmNvbTsgR2FvLCBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCANCj4+Pj4+Pj4gTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4NCj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0gg djMgMS81XSBNZGVNb2R1bGVQa2c6IGludHJvZHVjZSBub24tIA0KPj4+Pj4+PiBkaXNjb3ZlcmFi bGUgZGV2aWNlIHByb3RvY29sDQo+Pj4+Pj4+DQo+Pj4+Pj4+PiBPbiBXZWQsIE5vdiAxNiwgMjAx NiBhdCAwNDo1OToyN1BNICswMDAwLCBBcmQgQmllc2hldXZlbCB3cm90ZToNCj4+Pj4+Pj4+IElu dHJvZHVjZSBhIHByb3RvY29sIHRoYXQgY2FuIGJlIGV4cG9zZWQgYnkgYSBwbGF0Zm9ybSBmb3Ig DQo+Pj4+Pj4+PiBkZXZpY2VzIHRoYXQgYXJlIG5vdCBkaXNjb3ZlcmFibGUsIHVzdWFsbHkgYmVj YXVzZSB0aGV5IGFyZSANCj4+Pj4+Pj4+IHdpcmVkIHN0cmFpZ2h0IHRvIHRoZSBtZW1vcnkgYnVz IHJhdGhlciB0aGFuIHRvIGFuIGVudW1lcmFibGUgYnVzIGxpa2UgUENJIG9yIFVTQi4NCj4+Pj4+ Pj4+DQo+Pj4+Pj4+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBB Z3JlZW1lbnQgMS4wDQo+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBBcmQgQmllc2hldXZlbCA8YXJk LmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4+Pj4+Pj4+IC0tLQ0KPj4+Pj4+Pj4gTWRlTW9kdWxl UGtnL0luY2x1ZGUvUHJvdG9jb2wvTm9uRGlzY292ZXJhYmxlRGV2aWNlLmggfCA5MA0KPj4+Pj4+ PiArKysrKysrKysrKysrKysrKysrKw0KPj4+Pj4+Pj4gTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBr Zy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArDQo+Pj4+Pj4+PiAyIGZpbGVzIGNo YW5nZWQsIDkzIGluc2VydGlvbnMoKykNCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0DQo+ Pj4+Pj4+PiBhL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29sL05vbkRpc2NvdmVyYWJsZURl dmljZS5oDQo+Pj4+Pj4+PiBiL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29sL05vbkRpc2Nv dmVyYWJsZURldmljZS5oDQo+Pj4+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+Pj4+Pj4g aW5kZXggMDAwMDAwMDAwMDAwLi40N2VkODQxYjQwN2INCj4+Pj4+Pj4+IC0tLSAvZGV2L251bGwN Cj4+Pj4+Pj4+ICsrKyBiL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29sL05vbkRpc2NvdmVy YWJsZURldmljZS5oDQo+Pj4+Pj4+PiBAQCAtMCwwICsxLDkwIEBADQo+Pj4+Pj4+PiArLyoqIEBm aWxlDQo+Pj4+Pj4+PiArICBQcm90b2NvbCB0byBkZXNjcmliZSBkZXZpY2VzIHRoYXQgYXJlIG5v dCBvbiBhIGRpc2NvdmVyYWJsZSANCj4+Pj4+Pj4+ICtidXMNCj4+Pj4+Pj4+ICsNCj4+Pj4+Pj4+ ICsgIENvcHlyaWdodCAoYykgMjAxNiwgTGluYXJvLCBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPj4+Pj4+Pj4gKw0KPj4+Pj4+Pj4gKyAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21w YW55aW5nIG1hdGVyaWFscyAgYXJlIGxpY2Vuc2VkIA0KPj4+Pj4+Pj4gKyBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgDQo+Pj4+Pj4+ PiArIExpY2Vuc2Ugd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVs bCB0ZXh0IA0KPj4+Pj4+Pj4gKyBvZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQgDQo+Pj4+ Pj4+PiArIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4+ Pj4+Pj4+ICsNCj4+Pj4+Pj4+ICsgIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRI RSBCU0QgTElDRU5TRSBPTiBBTiAiQVMNCj4+Pj4+IElTIg0KPj4+Pj4+Pj4gKyBCQVNJUywgIFdJ VEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsDQo+Pj4+Pj4+ IEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuDQo+Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArKiovDQo+ Pj4+Pj4+PiArDQo+Pj4+Pj4+PiArI2lmbmRlZiBfX05PTl9ESVNDT1ZFUkFCTEVfREVWSUNFX0hf XyAjZGVmaW5lIA0KPj4+Pj4+Pj4gK19fTk9OX0RJU0NPVkVSQUJMRV9ERVZJQ0VfSF9fDQo+Pj4+ Pj4+PiArDQo+Pj4+Pj4+PiArI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvQWNwaS5oPg0KPj4+ Pj4+Pj4gKw0KPj4+Pj4+Pj4gKyNkZWZpbmUgRURLSUlfTk9OX0RJU0NPVkVSQUJMRV9ERVZJQ0Vf UFJPVE9DT0xfR1VJRCBcDQo+Pj4+Pj4+PiArICB7IDB4MGQ1MTkwNWIsIDB4Yjc3ZSwgMHg0NTJh LCB7MHhhMiwgMHhjMCwgMHhlYywgMHhhMCwgMHhjYywgDQo+Pj4+Pj4+PiArMHg4ZCwgMHg1MSwg MHg0YSB9IH0NCj4+Pj4+Pg0KPj4+Pj4+IDEuIENhbiB5b3UgYWRkICJQQ0kiIGtleXdvcmQgaW50 byB0aGUgcHJvdG9jb2wgbmFtZT8NCj4+Pj4+PiBlLmcuOiBFREtJSV9OT05fRElTQ09WRVJBQkxF X1BDSV9ERVZJQ0VfUFJPVE9DT0xfR1VJRA0KPj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4gTm8uIFRoaXMg cHJvdG9jb2wgZG9lcyBub3QgZGVzY3JpYmUgcGNpIGRldmljZXMsIGFuZCBpdCBpcyBhIA0KPj4+ Pj4gcGVjdWxpYXJpdHkgb2YgdGhlDQo+Pj4+PiBlZGsyIGRyaXZlciBzdGFjayB0aGF0IHNvbWUg bm9uLXBjaSBkZXZpY2VzIGNhbiBvbmx5IGJlIGRyaXZlbiBieSBwY2kgZHJpdmVycy4NCj4+Pj4+ DQo+Pj4+PiBpbiBvdGhlciB3b3JkcywgcGNpIGlzIHBhcnQgb2YgdGhlIC9kcml2ZXIvIHNpZGUs IGFuZCBpdCBpcyANCj4+Pj4+IHBlcmZlY3RseSBwb3NzaWJsZSBmb3IsIGUuZy4sIGEgbm9uLWRp c2NvdmVyYWJsZSBhaGNpIGRldmljZSB0byBiZSANCj4+Pj4+IGRyaXZlbiBieSBhIGRpZmZlcmVu dCBub24tcGNpIGRyaXZlciBpbiB0aGUgZnV0dXJlLg0KPj4+Pj4NCj4+Pj4NCj4+Pj4gSSBzZWUu IFNvIHNvbWUgdHlwZXMgb2YgZGV2aWNlcyBhcmUgaGFuZGxlZCBieSB0aGUgY3VycmVudCANCj4+ Pj4gTm9uRGlzY292ZWFibGVQY2lEZXZpY2UgZHJpdmVyLCBhbmQgc29tZSBvdGhlciB0eXBlcyBv ZiBkZXZpY2VzIG1heSANCj4+Pj4gYmUgaGFuZGxlZCBieSBhIGZ1dHVyZSBOb25EaXNjb3ZlcmFi bGVYWFhEZXZpY2UgZHJpdmVyLg0KPj4+PiBOb3cgc2luY2UgdGhlIEFIQ0kgdHlwZSBpcyBhbHJl YWR5IGhhbmRsZWQgYnkgdGhlIA0KPj4+PiBOb25EaXNjb3ZlcmFibGVQY2lEZXZpY2UgZHJpdmVy LCB3aGVuIHRoZXJlIGlzIGEgbmV3IA0KPj4+PiBOb25EaXNjb3ZlcmFibGVYWFhEZXZpY2UgZHJp dmVyLCBob3cgY2FuIHRoZSB0d28ga25vdyB3aGV0aGVyIGl0IHNob3VsZCBtYW5hZ2UgdGhlIEFI Q0kgdHlwZSBkZXZpY2Ugb3Igbm90Pw0KPj4+DQo+Pj5Hb29kIHF1ZXN0aW9uLiBCdXQgaG93IGRv ZXMgdGhlIFVFRkkgZHJpdmVyIG1vZGVsIGRlYWwgd2l0aCB0aGF0PyANCj4+PldoYXQgaGFwcGVu cyBpZiBpIGhhdmUgdHdvIGRyaXZlcnMgdGhhdCBib3RoIHN1cHBvcnQgdGhlIEFoY2kgUGNpIGNs YXNzIGNvZGVzPw0KPj4gUENJIENGRyBoZWFkZXIgY29udGFpbnMgVmVuZG9ySUQvRGV2aWNlSUQg ZmllbGRzIHdoaWNoIGNhbiBiZSB1c2VkIHRvIA0KPj4gZGlzdGluZ3Vpc2ggdGhlbS4NCj4+DQo+ DQo+IE5vLCB0aGF0IGlzIG5vdCB3aGF0IEkgbWVhbi4NCj4NCj4gWW91ciBxdWVzdGlvbiBpcyBo b3cgd2Ugc2hvdWxkIGRlYWwgd2l0aCBtdWx0aXBsZSBkcml2ZXJzIHRoYXQgc3VwcG9ydCwgZm9y IGluc3RhbmNlLCB0aGUgQUhDSSBub24tZGlzY292ZXJhYmxlIGRldmljZSB0eXBlLiBNeSBhbnN3 ZXIgaXMgdGhhdCB0aGlzIGlzIG5vdCBhbnkgZGlmZmVyZW50IGZyb20gYSBwbGF0Zm9ybSBjb25m aWd1cmF0aW9uIHRoYXQgaGFzIG1vcmUgdGhhbiBvbmUgUENJIEkvTyBiYXNlZCBkcml2ZXIgdGhh dCBzdXBwb3J0cyB0aGUgQUhDSSBQQ0kgY2xhc3MgY29kZXMuIFRoZSBVRUZJIGRyaXZlciBtb2Rl bCBoYXMgcHJpb3JpdHkgcnVsZXMgYW5kIHByb3RvY29scyB0byBkZWNpZGUgd2hpY2ggZHJpdmVy IGdldHMgcHJlY2VkZW5jZS4gSSBkb24ndCBzZWUgaG93IGl0IHNob3VsZCBiZSBhbnkgZGlmZmVy ZW50IGhlcmUuDQo+DQo+IFRoYW5rcywNCj4gQXJkLg0KPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2VkazItZGV2ZWwNCg==