Return-Path: From: Par-Gunnar HJALMDAHL To: Par-Gunnar HJALMDAHL , Arnd Bergmann , Pavan Savoy Cc: Vitaly Wool , Linus Walleij , Alan Cox , Samuel Ortiz , Marcel Holtmann , "linux-kernel@vger.kernel.org" , "linux-bluetooth@vger.kernel.org" , Lukasz Rymanowski , Par-Gunnar Hjalmdahl , Lee Jones Date: Thu, 24 Feb 2011 15:16:30 +0100 Subject: RE: [PATCH 00/11] mfd and bluetooth: Add CG2900 suppor Message-ID: References: <1292584829-28279-1-git-send-email-par-gunnar.p.hjalmdahl@stericsson.com> <201101061946.04790.arnd@arndb.de> <201101091955.05174.arnd@arndb.de> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 List-ID: SGksDQoNCkkgc2VudCB0aGUgbWFpbCBiZWxvdyBvbmUgbW9udGggYWdvLCBidXQgaGF2ZSBzdGls bCBub3QgcmVjZWl2ZWQgYW55IGFuc3dlcnMgb3IgZnVydGhlciBjb21tZW50cy4NCkhhcyBhbnlv bmUgb2YgeW91IHdobyBtYWRlIGNvbW1lbnRzIG9uIHRoZSBDRzI5MDAgcGF0Y2hlcyBlYXJsaWVy LCBhbnkgbW9yZSBjb21tZW50cyBvciBxdWVzdGlvbnM/DQoNCkl0IGlzIHVuY2xlYXIgdG8gbWUg d2hlcmUgd2Ugc3RhbmQgd2l0aCB0aGUgQ0cyOTAwIHBhdGNoZXMuIEkgYW0gbXlzZWxmIGhhcHB5 IHdpdGggdGhlIGN1cnJlbnQgYXJjaGl0ZWN0dXJlLCBidXQgSSB1bmRlcnN0YW5kIHRoZXJlIGFy ZSBkaWZmZXJpbmcgb3BpbmlvbnMuDQpJIHdvdWxkIGxpa2UgdG8ga25vdyB3aGF0IHdlIG5lZWQg dG8gZG8gaW4gb3JkZXIgdG8gZ2V0IHRoaXMgZHJpdmVyIGludG8gdGhlIExpbnV4IEtlcm5lbCB0 cmVlLg0KDQovUC1HDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGFy LUd1bm5hciBISkFMTURBSEwNCj4gU2VudDogZGVuIDE3IGphbnVhcmkgMjAxMSAxNjozMw0KPiBU bzogJ0FybmQgQmVyZ21hbm4nOyBQYXZhbiBTYXZveQ0KPiBDYzogVml0YWx5IFdvb2w7IExpbnVz IFdhbGxlaWo7IEFsYW4gQ294OyBTYW11ZWwgT3J0aXo7IE1hcmNlbA0KPiBIb2x0bWFubjsgbGlu dXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtDQo+IGJsdWV0b290aEB2Z2VyLmtlcm5l bC5vcmc7IEx1a2FzeiBSeW1hbm93c2tpOyBQYXItR3VubmFyIEhqYWxtZGFobA0KPiBTdWJqZWN0 OiBSRTogW1BBVENIIDAwLzExXSBtZmQgYW5kIGJsdWV0b290aDogQWRkIENHMjkwMCBzdXBwb3IN Cj4gDQo+IEhpLA0KPiANCj4gU29ycnkgZm9yIG5vdCBhbnN3ZXJpbmcgZWFybGllci4gSSd2ZSBi ZWVuIG92ZXJsb2FkZWQgd2l0aCB0aGluZ3MgdG8gZG8NCj4gbm93IGFmdGVyIE5ldyBZZWFyLiBT ZWUgYmVsb3cuDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog QXJuZCBCZXJnbWFubiBbbWFpbHRvOmFybmRAYXJuZGIuZGVdDQo+ID4gU2VudDogZGVuIDkgamFu dWFyaSAyMDExIDE5OjU1DQo+ID4gVG86IFBhdmFuIFNhdm95DQo+ID4gQ2M6IFBhci1HdW5uYXIg SEpBTE1EQUhMOyBWaXRhbHkgV29vbDsgTGludXMgV2FsbGVpajsgQWxhbiBDb3g7DQo+IFNhbXVl bA0KPiA+IE9ydGl6OyBNYXJjZWwgSG9sdG1hbm47IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5v cmc7IGxpbnV4LQ0KPiA+IGJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmc7IEx1a2FzeiBSeW1hbm93 c2tpOyBQYXItR3VubmFyIEhqYWxtZGFobA0KPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMDAvMTFd IG1mZCBhbmQgYmx1ZXRvb3RoOiBBZGQgQ0cyOTAwIHN1cHBvcg0KPiA+DQo+ID4gT24gU3VuZGF5 IDA5IEphbnVhcnkgMjAxMSwgUGF2YW4gU2F2b3kgd3JvdGU6DQo+ID4gPiBPbiBGcmksIEphbiA3 LCAyMDExIGF0IDEyOjE2IEFNLCBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPg0KPiB3cm90 ZToNCj4gPiA+ID4gT24gV2VkbmVzZGF5IDA1IEphbnVhcnkgMjAxMSwgUGFyLUd1bm5hciBISkFM TURBSEwgd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+PiBTb3JyeSBmb3Igbm90IGFuc3dlcmluZyBz b29uZXIuIEkndmUgYmVlbiBvbiBDaHJpc3RtYXMgYW5kIE5ldw0KPiA+IFllYXIgdmFjYXRpb24u DQo+ID4gPiA+DQo+ID4gPiA+IEknbSBhbHNvIHN0aWxsIGNhdGNoaW5nIHVwIHdpdGggZW1haWwg dGhhdCBoYXMgYWNjdW11bGF0ZWQgb3Zlcg0KPiBteQ0KPiA+ID4gPiB2YWNhdGlvbiwgaW5jbHVk aW5nIHlvdXIgcHJldmlvdXMgcmVzcG9uc2UuDQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgc291bmRz IHdyb25nIGZvciBib3RoIFRJIGFuZCBTVC1FOiBBRkFJQ1QgdGhleSBhcmUgYWN0dWFsbHkNCj4g PiBidWlsdA0KPiA+ID4gPiBhcm91bmQgYW4gSENJIGludGVyZmFjZS4gSXQncyB1bmZvcnR1bmF0 ZSB0aGF0IHRoZSBUSSBjb2RlDQo+IGFjdHVhbGx5DQo+ID4gZ290DQo+ID4gPiA+IG1lcmdlZCBp bnRvIHRoZSBrZXJuZWwgbGlrZSB0aGlzLg0KPiA+ID4NCj4gPiA+IEkgYW0gbm90IHN1cmUgd2hh dCBkb2VzIGJ1aWx0IGFyb3VuZCBIQ0kgSW50ZXJmYWNlIG1lYW4/IEFsc28geWVzLA0KPiBpbg0K PiA+IFRJLSBjb2RlDQo+ID4gPiB3ZSBkbyByZWZlciB0byBCbHVldG9vdGggaGVhZGVycy4NCj4g PiA+IEhvd2V2ZXIgdGhlIGZhY3QgdGhhdCBJIHdhbnRlZCB0byBwb2ludCBvdXQgdG8gUGFyLUd1 bm5hciB3YXMsIHRoYXQNCj4gPiB3ZQ0KPiA+ID4gZG9uJ3Qgd2FudCB0byB1c2UNCj4gPiA+IGhj aWF0dGFjaCBhbmQgZW5hYmxlIEhDSS1VQVJUICsgSENJLUg0IGZvciBlbmFibGluZyBvdXIgZHJp dmVyIG9yDQo+IG91cg0KPiA+ID4gZHJpdmVyIHNob3VsZCBub3QNCj4gPiA+IGRlcGVuZCBvbiB0 aG9zZSBtb2R1bGVzIGFzIHN1Y2guLi4NCj4gPg0KPiA+IEdvb2QgcG9pbnQgYWJvdXQgaGNpYXR0 YWNoLCB5b3UgY2VydGFpbmx5IHNob3VsZG4ndCBuZWVkIHRvIHVzZSB0aGF0DQo+IGlmDQo+ID4g dGhlIGtlcm5lbCBhbHJlYWR5IGtub3dzIHRoYXQgYSB0dHkgaXMgY29ubmVjdGVkIHRvIGFuIEhD SSBhbmQgd2hhdA0KPiB0aGUNCj4gPiBwYXJhbWV0ZXJzIGFyZS4gRXZlbiBtb3JlIHNvIGlmIHRo ZSBIQ0kgaXMgbm90IGFjdHVhbGx5IG9uIGEgcnMyMzINCj4gbGluZQ0KPiA+IGJ1dCBzb21ldGhp bmcgbGlrZSBpMmMgb3Igc3BpLiBBdXRvbWF0aWNhbGx5IGJpbmRpbmcgdG8gdGhlIHJpZ2h0DQo+ IGxpbmUNCj4gPiBkaXNjaXBsaW5lIHNob3VsZCBiZSBlYXNpbHkgZG9hYmxlIGluIHRoZSBkcml2 ZXJzIHRob3VnaC4NCj4gPg0KPiANCj4gV2hlbiBoYXZpbmcgVUFSVCBhcyB0cmFuc3BvcnQgeW91 IG5lZWQgc29tZXRoaW5nIHRvIG9wZW4gdGhlIFVBUlQgYW5kDQo+IHNldCB0aGUgbGluZSBkaXNj aXBsaW5lLiBJZiB0aGlzIGlzIGhjaWF0dGFjaCBvciBzb21ldGhpbmcgZWxzZSBpcyB1cA0KPiB0 byBlYWNoIGRldmVsb3BlciB0byBzdWl0IHdoYXQgdGhleSBhcmUgZG9pbmcuIEkgZG9uJ3Qgc2Vl IGEgcHJvYmxlbQ0KPiB3aXRoIHVzaW5nIGhjaWF0dGFjaCBldmVuIGlmIHlvdSBkb24ndCB1c2Ug dGhlIEJsdWV0b290aCBwYXJ0IChpZiB0aGUNCj4gZXhlIGlzIHBhcnQgb2YgdGhlIHN5c3RlbSBh bnl3YXkpLCBidXQgaWYgYSBjb21wYW55L2RldmVsb3BlciB3YW50IHRvDQo+IHVzZSBzb21ldGhp bmcgZWxzZSB0aGV5IGNhbiBkbyB0aGF0LiBJdCdzIGEgdXNhZ2Ugb2Ygc3RhbmRhcmQNCj4gaW50 ZXJmYWNlcyB1c2luZyBvcGVuKCkgYW5kIGlvY3RsKCkuDQo+IEkgc3RpbGwgZG9uJ3QgdGhpbmsg dGhhdCB5b3Ugc2hvdWxkIGhhdmUgYSBsaW5lIGRpc2NpcGxpbmUgZm9yIG90aGVyDQo+IHRyYW5z cG9ydHMgdGhhbiBVQVJULiBJZiBJIHdvdWxkIGxvb2sgYXQgaG93IEkgd291bGQgaW1wbGVtZW50 IGFuIFNQSQ0KPiBkcml2ZXIgZm9yIENHMjkwMCwgdGhlcmUgd291bGQgYWxtb3N0IGJlIG5vIGNv ZGUgdGhhdCBjb3VsZCBiZSB1c2VkIGluDQo+IGNvbW1vbiBiZXR3ZWVuIGNnMjkwMF91YXJ0IGFu ZCBjZzI5MDBfc3BpLiBTUEkgZG9lc24ndCBjaGFuZ2UgYmF1ZA0KPiByYXRlLCBTUEkgdXNlcyBj b21tYW5kcyBmb3Igc2xlZXAvd2FrZSBpbnN0ZWFkIG9mIEJyZWFrLCBTUEkgcGFja2V0cw0KPiBk b2Vzbid0IG5lZWQgZXh0cmEgcGFja2V0aXppbmcsIGV0Yy4NCj4gDQo+ID4gSSBkb24ndCB1bmRl cnN0YW5kIHRoZSBwcm9ibGVtIHdpdGggcmVseWluZyBvbiB0aGUgaGNpLXVhcnQgb3IgaGNpLWg0 DQo+ID4gbW9kdWxlcy4gSWYgdGhlIGhhcmR3YXJlIHVzZXMgdGhlIEg0IHByb3RvY29sLCB3ZSBj ZXJ0YWlubHkgc2hvdWxkDQo+IHVzZQ0KPiA+IHRoZSBrZXJuZWwgbW9kdWxlIHRoYXQga25vd3Mg aG93IHRvIGRlYWwgd2l0aCBINCwgYW5kIHdlIGRvbid0IHdhbnQNCj4gPiB0byBoYXZlIHR3byBt b2R1bGVzIGltcGxlbWVudGluZyB0aGUgc2FtZSBwcm90b2NvbC4NCj4gPg0KPiANCj4gSSBtdXN0 IHNheSBJIGRvbid0IHVuZGVyc3RhbmQgdGhpcyBwcm9ibGVtIGVpdGhlci4gVW5sZXNzIHRoZSBw cm90b2NvbA0KPiBkcml2ZXIgaXMgYWN0aXZhdGVkIHRocm91Z2ggaW9jdGwgU0VUX1BST1RPQ09M LCB0aGUgY29kZSB3aWxsIG5vdCBiZQ0KPiBleGVjdXRlZCwgYW5kIHRoZSBhbW91bnQgb2YgUk9N IG5lZWRlZCBpcyBuZWdsaWdpYmxlLg0KPiBJZiB5b3UgbG9vayBhdCBvdXIgc3VibWlzc2lvbiwg dGhlIGhjaS1oNCBjb3VsZCBwb3NzaWJseSBiZSByZXVzZWQgdG8NCj4gc29tZSBleHRlbnQuIEJh c2ljYWxseSB0aGUgcGFja2V0aXppbmcgdG8gdGhlIEJsdWV0b290aCBINCBjaGFubmVscyAxLTQN Cj4gY291bGQgYmUgcmUtdXNlZC4gSW4gb3JkZXIgdG8gYWxsb3cgZm9yIHZlbmRvciBzcGVjaWZp YyBjaGFubmVscyB0byBiZQ0KPiBoYW5kbGVkIHNvbWUgbmV3IHJlZ2lzdHJhdGlvbiBzeXN0ZW0g b24gdG9wIG9mIGhjaS1oNCBwbHVzIGEgY2FsbGJhY2sNCj4gc3lzdGVtIGZvciBkYXRhIHJlY2Vw dGlvbiB3b3VsZCBoYXZlIHRvIGJlIGFkZGVkIChpbiBvcmRlciB0bw0KPiBmYWNpbGl0YXRlIHN5 c3RlbXMgdGhhdCBkbyBub3Qgd2FudCBhbGwgZGF0YSB0byBiZSBzZW50IGRpcmVjdGx5IHRvIHRo ZQ0KPiBCbHVldG9vdGggc3RhY2sgc3VjaCBhcyB0aGUgQ0cyOTAwIGRyaXZlcikuIEknbSBhZnJh aWQgdGhhdCB3ZSB3b3VsZA0KPiBoYXZlIGEgc2lnbmlmaWNhbnRseSBtb3JlIGNvbXBsZXggc3lz dGVtIGFuZCBsYXJnZXIgYW1vdW50IG9mIGNvZGUgaWYNCj4gd2Ugd291bGQgdHJ5IHRvIGdlbmVy YWxpemUgdGhlIGhjaS1oNCBtb2R1bGUuIEkgZGVmaW5pdGVseSBwcmVmZXIgdGhlDQo+IGN1cnJl bnQgbW9kZWwgd2hlcmUgYSB2ZW5kb3Igc3BlY2lmaWMgZHJpdmVyIHJlcGxhY2VzIHRoZSBoY2kt aDQNCj4gcHJvdG9jb2wgZHJpdmVyLg0KPiANCj4gPiA+ID4+ID4gaW5zdGVhZCBvZiBjb21tb24t aGNpLW1vZHVsZSwgd2h5IG5vdCBjcmVhdGUgYSBhbGdvLWRyaXZlcg0KPiBsYXllcg0KPiA+ICdh bGENCj4gPiA+ID4+ID4gaTJjID8gd2hlcmUgaW5kaXZpZHVhbCBkcml2ZXJzIGNhbiByZWdpc3Rl ciB0aGVpciByZWNlaXZlDQo+ID4gaGFuZGxlcnMgZm9yDQo+ID4gPiA+PiA+IGRhdGEgaW50ZXJw cmV0YXRpb24gPw0KPiA+ID4gPg0KPiA+ID4gPiBUaGF0IHdvdWxkIGJlIHdoYXQgSSBzdWdnZXN0 ZWQgOy0pDQo+ID4gPg0KPiA+ID4gQnV0IGV2ZW4gaGVyZSB0b28sIHRoZSBhbGdvcyBsYXllciBp ZiB5b3UgaW1hZ2luZSB3aGljaCBjYW4gYmUgdGhlDQo+ID4gPiBzb3J0IG9mIHRoZSBmaXJzdA0K PiA+ID4gcmVjZWl2ZXIgb2YgZGF0YSBmcm9tIHRoZSB0cmFuc3BvcnQgd291bGQgcmVmZXIgdG8g QlQgaGVhZGVycyB0bw0KPiA+ID4gaW50ZXJwcmV0IHRoZSBkYXRhIChub3QganVzdCBCVCwgYnV0 IEZNL0dQUykNCj4gPiA+IGFuZCBwYXNzIGl0IG9udG8gb3RoZXIgcHJvdG9jb2wvY2xpZW50IGRy aXZlcnMsDQo+ID4NCj4gPiBSaWdodCwgdGhhdCBpcyB0aGUgZW50aXJlIGlkZWEsIGFuZCBJIGRv bid0IHNlZSBhIHByb2JsZW0gaGVyZS4NCj4gPiBJZiB5b3UgZG8gdGhpcywgeW91IHVzZSB0aGUg aGVhZGVycyBvZiB0aGUgdHdvIHN1YnN5c3RlbXMgeW91DQo+ID4gaW50ZXJmYWNlIHdpdGguIFdo YXQgeW91IHNob3VsZCAvbm90LyBpbnN0ZWFkIGlzIHVzZSBoZWFkZXINCj4gPiBmaWxlcyBvZiBh IHN1YnN5c3RlbSB5b3UgZG9uJ3QgaW50ZXJmYWNlIHdpdGggYW5kIHJlaW50ZXJwcmV0ZQ0KPiA+ IHRoZSBkZWZpbml0aW9ucyBpbiBjcmVhdGl2ZSB3YXlzLCB3aGljaCBpcyB3aGF0IEkgdW5kZXJz dG9vZA0KPiA+IHdhcyBiZWluZyBkaXNjdXNzZWQgZWFybGllci4NCj4gPg0KPiA+ID4gPj4gSW4g c29tZSB3YXkgeW91IHRoZW4gcnVuIGludG8gdGhlIHNhbWUgcHJvYmxlbSBoYXMgSSBoYWQgaW4N Cj4gPiBwcmV2aW91cyBwYXRjaA0KPiA+ID4gPj4gc2V0cy4gVGhlIGZ1bmN0aW9uYWxpdGllcyBz dXBwb3J0ZWQgaXMgcmVhbGx5IGRldGVybWluZWQgYnkgZWFjaA0KPiA+IGNoaXAuDQo+ID4gPiA+ PiBZb3UgbWlnaHQgb3IgbWlnaHQgbm90IGhhdmUgZm9yIGV4YW1wbGUgR1BTIGluIGEgY2VydGFp biBjaGlwLg0KPiBTbw0KPiA+IHlvdSBkbyBub3QNCj4gPiA+ID4+IHdhbnQgYSBjZW50cmFsIG1v ZHVsZSB0byBleHBvc2UgYWxsIHBvc3NpYmxlIGNoYW5uZWxzIHRvIHRoZQ0KPiA+IHN0YWNrcyBv biB0b3AuDQo+ID4gPiA+Pg0KPiA+ID4gPj4gWW91IG9ubHkgd2FudCB0aGUgYWN0dWFsbHkgc3Vw cG9ydGVkIGZlYXR1cmVzIHRvIGJlIGV4cG9zZWQgdG8NCj4gPiB1cHBlciBsYXllcnMuDQo+ID4g PiA+PiBUaGVuIHRoZSBNRkQgc3lzdGVtIGlzIHByZXR0eSBuaWNlLiBJdCdzIGVhc3kgYW5kIG1v ZHVsYXJpemVkIHRvDQo+ID4gZXhwb3NlIHRoZQ0KPiA+ID4gPj4gZGlmZmVyZW50IGNoYW5uZWxz IGFzIE1GRCBjZWxscy4NCj4gPiA+ID4NCj4gPiA+ID4gQnV0IGFzIHNvb24gYXMgeW91IGhhdmUg dGhlIGNvbmNlcHQgb2YgY2hhbm5lbHMgd2l0aCBhIGNsZWFybHkNCj4gPiBkZWZpbmVkDQo+ID4g PiA+IGludGVyZmFjZSwgeW91IGhhdmUgYWxtb3N0IGFic3RyYWN0ZWQgaXQgZW5vdWdoIHRvIGdv IGFsbCB0aGUNCj4gd2F5Lg0KPiA+ID4NCj4gPiA+IFNvbWV0aGluZyBsaWtlIHRoaXMgaXMgd2hh dCB0aGUgcmVjZW50IFJGQyBwb3N0ZWQgdG8NCj4gPiA+IGxrbWwvbGludXgtYmx1ZXRvb3RoDQo+ ID4gPiBodHRwOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2xpbnV4LWJsdWV0b290aC9tc2cwOTk5 MC5odG1sLA0KPiA+ID4gaXQga2luZGEgbG9va3MgY2x1bXN5DQo+ID4gPiBidXQgd2hhdCBJIGZl ZWwgaXMgd2Ugc2hvdWxkbid0IHNoeSBhd2F5IGZyb20gbm90IHJlZmVyZW5jaW5nDQo+ID4gPiBC bHVldG9vdGgsIChvciBtYXkgYmUgdG9tb3Jyb3cgR1BTDQo+ID4gPiB3aXRoIE5NRUEgaGVhZGVy cykuLi4uDQo+ID4NCj4gPiBUaGUgb25lIGltcG9ydGFudCBnb2FsIGhlcmUgc2hvdWxkIGJlIHRv IGF2b2lkIGNvZGUgZHVwbGljYXRpb24uDQo+ID4gVXNpbmcgdGhlIGhlYWRlciB0byBnZXQgdGhl IGRhdGEgc3RydWN0dXJlcyBmcm9tIHNlcGFyYXRlIGNvZGUNCj4gPiBtZWFucyB5b3UgbmVlZCB0 byBoYXZlIHNpbWlsYXIgcGFyc2luZyBmdW5jdGlvbnMgaW4gZWFjaCBvZiB0aGUNCj4gbW9kdWxl cw0KPiA+IHVzaW5nIGl0LiBOb3Qgc2hhcmluZyB0aGUgaGVhZGVyIHdvdWxkbid0IGhlbHAsIGJl Y2F1c2UgdGhlbiB5b3UgZW5kDQo+ID4gdXAgZHVwbGljYXRpbmcgZXZlbiBtb3JlLiBUaGUgcmVh bCBzb2x1dGlvbiwgc3BlYWtpbmcgdmVyeSBicm9hZGx5LA0KPiA+IG11c3QgYmUgdG8gaGF2ZSBh IGdlbmVyYWwgbW9kdWxlIHRoYXQgZGVhbHMgd2l0aCB3aGF0ZXZlciB0aGUgbW9yZQ0KPiA+IHNw ZWNpZmljIG1vZHVsZXMgaGF2ZSBpbiBjb21tb24sIGFuZCBoYXZlIGEgaGVhZGVyIGZpbGUgdGhh dCBkZWZpbmVzDQo+ID4gdGhlIGludGVyZmFjZSB0byBpdC4NCj4gPg0KPiANCj4gSW4gZ2VuZXJh bCBJIGFncmVlIHdpdGggeW91LCBidXQgdGhlcmUgYXJlIHNvbWUgcHJvYmxlbXMgaGVyZS4NCj4g VGhlIG1vc3QgdXNlZCBCVCBIQ0kgZXZlbnRzIGFyZSBDb21tYW5kIFN0YXR1cyBhbmQgQ29tbWFu ZCBDb21wbGV0ZS4NCj4gQ29tbWFuZCBTdGF0dXMgY291bGQgYmUgcGFyc2VkIGNvbXBsZXRlbHkg aW4gYSBnb29kIHdheSAocmV0cmlldmluZyBvcA0KPiBjb2RlLCBuYnIgb2YgY29tbWFuZHMgYWxs b3dlZCwgYW5kIHN0YXR1cyBvZiBjb21tYW5kIHNlbnQpLg0KPiBDb21tYW5kIENvbXBsZXRlIGlz IGhvd2V2ZXIgcXVpdGUgY29tcGxleCBzaW5jZSB0aGUgcmV0dXJuZWQgZGF0YSB3aWxsDQo+IGRp ZmZlciBkZXBlbmRpbmcgb24gY29tbWFuZCBzZW50LiBPcCBjb2RlIGFuZCBuYnIgb2YgY29tbWFu ZHMgYWxsb3dlZA0KPiBjYW4gYmUgcmV0cmlldmVkIGJ1dCBldmVyeXRoaW5nIGVsc2UgaGF2ZSB0 byBiZSBleHRyYWN0ZWQgZGlmZmVyZW50bHkNCj4gZGVwZW5kaW5nIG9uIGNvbW1hbmQuIFRoaXMg bWVhbnMgdGhhdCB0aGVyZSBpcyBub3QgbXVjaCB0aGF0IHdpbGwgYmUNCj4gc2F2ZWQgaGVyZS4g QnV0IG1heWJlIHdlIGNvdWxkIGV4dHJhY3Qgc29tZSBwYXJzaW5nIGludG8gY29tbW9uDQo+IGZ1 bmN0aW9ucywgYnV0IEkgZG9uJ3QgdGhpbmsgeW91IHdvdWxkIGdhaW4gdGhhdCBtdWNoLg0KPiBN b3Jlb3ZlciwgdGhpcyB3b3VsZCBsZWFkIHRvIGEgbWFqb3IgcmVpbXBsZW1lbnRhdGlvbiBvZiB0 aGUgaGNpX2NvcmUuYw0KPiBhbmQgcmVsYXRlZCBmaWxlcywgc2luY2UgdGhleSBkbyBub3QgdXNl IGFueSBleHBvcnRlZCBjb21tb24gZnVuY3Rpb25zDQo+IGFzIGl0IGlzIHRvZGF5LiBJIGRvIG5v dCBrbm93IGlmIHRoZXkgKEJsdWVaIGNvbW11bml0eSkgd291bGQgd2FudCB0aGlzDQo+IGFuZCBJ IGRvIG5vdCB0aGluayB0aGF0IHRoYXQgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIENHMjkwMCBkcml2 ZXIgdG8gZG8uDQo+IEl0IHNob3VsZCBpbiB0aGF0IGNhc2UgYmUgZG9uZSBzZXBhcmF0ZWx5Lg0K PiANCj4gPiA+ID4+IEFsc28gbm90ZSB0aGF0IHRoZSBjb21tb24taGNpLW1vZHVsZSBpcyBvbmx5 IHJlYWxseSB1c2VkIHVudGlsDQo+IHRoZQ0KPiA+IGNvbm5lY3RlZA0KPiA+ID4gPj4gY2hpcCBo YXMgYmVlbiBkZXRlY3RlZC4gVGhlIGNoaXAgaGFuZGxlciB3aWxsIHRoZW4gc2V0IHRoZQ0KPiA+ IGNhbGxiYWNrIGZ1bmN0aW9ucw0KPiA+ID4gPj4gc28gYWN0dWFsIGRhdGEgdHJhbnNtaXNzaW9u cyBuZXZlciBwYXNzIHRoZSBjb21tb24taGNpLW1vZHVsZS4NCj4gPiBUaGV5IGdvIGRpcmVjdGx5 DQo+ID4gPiA+PiBmcm9tIHRyYW5zcG9ydCB0byBjaGlwIGhhbmRsZXIuIFRoYXQgaXMgbm90IHJl YWxseSBzaG93biBpbiB0aGUNCj4gPiBwaWN0dXJlIGFib3ZlLg0KPiA+ID4gPj4gSnVzdCBpbWFn aW5lIHRoYXQgY29tbW9uLWhjaS1tb2R1bGUgaXMgcmVtb3ZlZCBhZnRlciBhIGNoaXAgaGFzDQo+ ID4gYmVlbiBjb25uZWN0ZWQNCj4gPiA+ID4+IGFuZCBhIGNoaXAgaGFuZGxlciBoYXMgYmVlbiBk ZXRlcm1pbmVkLg0KPiA+ID4gPj4NCj4gPiA+ID4+IEkgaG9wZSBJIGhhdmVuJ3QgbWlzdW5kZXJz dG9vZCB5b3VyIHF1ZXN0aW9uLiBJIGRvIG5vdCBrbm93IG11Y2gNCj4gPiBhYm91dCB0aGUgSTJD DQo+ID4gPiA+PiBzeXN0ZW0sIGJ1dCBJIHRyaWVkIHRvIHVuZGVyc3RhbmQgeW91ciBxdWVzdGlv biBhcyBiZXN0IGFzIEkNCj4gPiBjb3VsZC4NCj4gPiA+ID4NCj4gPiA+ID4gSSB0aGluayB0aGVy ZSBpcyBhIGRpc2Nvbm5lY3Qgd2hlbiB0YWxraW5nIGFib3V0IGhpZXJhcmNoaWVzLCBhcw0KPiBp dA0KPiA+IGNhbiBiZSBhcHBsaWVkDQo+ID4gPiA+IHRvIGRpZmZlcmVudCBhcmVhczoNCj4gPiA+ ID4NCj4gPiA+ID4gKiBtb2R1bGUgZGVwZW5kZW5jaWVzDQo+ID4gPiA+ICogZGV2aWNlIGRldGVj dGlvbg0KPiA+ID4gPiAqIHN5c2ZzIG9iamVjdCBoaWVyYXJjaHkNCj4gPiA+ID4gKiBkYXRhIGZs b3cNCj4gPiA+DQo+ID4gPiBtb2R1bGUgZGVwZW5kZWN5LXdpc2UgSSBhZ3JlZSwNCj4gPiA+IEkg d291bGQgd2FudCBGTS1WNEwyIHdpdGhvdXQgQlQgb3IgSSBtaWdodCB3YW50IEdQUyBzaW1wbGlz dGljIGNoYXINCj4gPiA+IGRyaXZlciB3aXRob3V0IEJUIG9yIEZNIFY0TDIuDQo+ID4NCj4gPiBC dXQgeW91J2Qgc3RpbGwgbmVlZCB0byBoYXZlIGFuIEhDSSBtb2R1bGUuIEkgYmVsaWV2ZSByaWdo dCBub3csIHRoZQ0KPiA+IGhjaSBtb2R1bGUgZGVwZW5kcyBvbiB0aGUgYmx1ZXRvb3RoIG1vZHVs ZSwgYW5kIHlvdSBhcmUgcmlnaHQgdGhhdA0KPiB0aGlzDQo+ID4gaXMgYW4gdW5kZXNpcmFibGUg ZGVwZW5kZW5jeSB0byBoYXZlIGZvciBhIEdQUyBtb2R1bGUuIEhvd2V2ZXIsIHRoZQ0KPiA+IHNv bHV0aW9uDQo+ID4gdG8gdGhpcyBzaG91bGQgbm90IGJlIHRvIG1ha2UgR1BTIGluZGVwZW5kZW50 IG9mIEhDSSwgYnV0IHRvIG1ha2UNCj4gcGFydHMNCj4gPiBvZiBIQ0kgaW5kZXBlbmRlbnQgb2Yg Ymx1ZXRvb3RoLg0KPiA+DQo+IA0KPiBGb3IgdGhlIENHMjkwMCB0aGF0IGlzIG5vdCBwb3NzaWJs ZS4gRXZlbiBpZiB5b3UgYXJlIHJ1bm5pbmcganVzdCBHUFMNCj4geW91IHN0aWxsIG11c3QgZG93 bmxvYWQgcGF0Y2hlcyBhbmQgc2V0dGluZ3MgYW5kIHRoYXQgaXMgZG9uZSB0aHJvdWdoDQo+IEhD SSBjb21tYW5kcyBvdmVyIHRoZSBCbHVldG9vdGggY29tbWFuZCBpbnRlcmZhY2UuIFdlIGFsc28g dXNlDQo+IEJsdWV0b290aCBjb21tYW5kcyB0byBpZGVudGlmeSB0aGUgY29udHJvbGxlci4NCj4g DQo+ID4gPiBkZXZpY2UgZGV0ZWN0aW9uIHdpc2UsIEl0IGlzIGEgcHJvYmxlbSwgdGhlcmUgaXMg bm90ICJfcHJvYmUiDQo+ID4gPiBtZWNoYW5pc20gZm9yIFVBUlQgYmFzZWQgdHJhbnNwb3J0IGFz IGl0IGlzDQo+ID4gPiB1bmRlcnN0YW5kYWJsZSwgYW5kIHByZXR0eSBtdWNoIHRoZSBkcml2ZXIg d291bGQgZW5kIHVwIGJlaW5nDQo+ID4gcGxhdGZvcm0NCj4gPiA+IGRldmljZSBkcml2ZXIgLi4u DQo+ID4NCj4gPiBUaGUgcGxhdGZvcm0gZGV2aWNlIGlzIGp1c3QgdGhlIGxvd2VzdCBsZXZlbCBp biB0aGUgZGV2aWNlIGhpZXJhcmNoeS4NCj4gPg0KPiA+IElmIGVhY2ggSENJIGNoYW5uZWwgaXMg YSBkZXZpY2UsIHlvdSBjYW4gc3RhY2sgYnQsIGdwcywgYXVkaW8sIC4uLg0KPiA+IGRldmljZXMg YWxsIG9uIHRvcCBvZiB0aGUgSENJIGRldmljZSwgd2hpY2ggaXMgZWl0aGVyIHN0YWNrZWQgb24g dG9wDQo+ID4gb2YgYSBzZXJpYWwgcG9ydCBvciBpbiBzb21lIG90aGVyIHdheSBjb25uZWN0ZWQg dG8gdGhlIHVuZGVyeWluZw0KPiA+IHRyYW5zcG9ydC4NCj4gPg0KPiA+IEluIHRoaXMgY2FzZSwg dGhlIGNoYW5uZWxzIHRoZW1zZWx2ZXMgYXJlIG5vdCBwbGF0Zm9ybSBkZXZpY2VzLCBidXQNCj4g PiB3b3VsZCBnZXQgYSBuZXcgYnVzIGZvciB0aGVtLiBUaGF0IGJ1cyBpcyBwb3B1bGF0ZWQgYnkg YSBkcml2ZXIgdGhhdA0KPiA+IG93bnMgdGhlIEhDSSBhbmQgdGhhdCBrbm93cyAoZS5nLiBmcm9t IGl0cyBwbGF0Zm9ybSBkYXRhLCBoYXJkd2FyZQ0KPiA+IHJlZ2lzdGVycywgdXNlciBjb25maWcg b3IgZGV2aWNlIHRyZWUpIHdoYXQgY2hhbm5lbHMgYXJlIHByZXNlbnQuDQo+ID4NCj4gPiA+IGRh dGEgZmxvdyBpcyB3aGVyZSBJIGd1ZXNzIHRoZSBhYnN0cmFjdGlvbiBoYXMgdG8gbGllIGluLCBm b3INCj4gPiA+IGRpZmZlcmVudCB2ZW5kb3JzLi4uDQo+ID4NCj4gPiBJIGRvbid0IGtub3cgd2hh dCB5b3UgbWVhbiB3aXRoIHRoYXQuIE15IHBvaW50IHdhcyB0aGF0IHdlIG5lZWQgdG8NCj4gPiBj b25zaWRlciBhbGwgdGhlIGhpZXJhcmNoaWVzLCBhbmQgdGhhdCB0aGV5IG1pZ2h0IGJlIGRpZmZl cmVudC4NCj4gPg0KPiA+IAlBcm5kDQo+IA0KPiAvUC1HDQoNCg==