From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miguel Angel Vico Subject: Re: Allocator Nouveau driver, Mesa EXT_external_objects, and DRM metadata import interfaces Date: Thu, 28 Dec 2017 10:24:38 -0800 Message-ID: <20171228102438.115a4e64@nvidia.com> References: <20171220085151.6327051e@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: mesa-dev-bounces@lists.freedesktop.org Sender: "mesa-dev" To: Rob Clark Cc: Rob Clark , Nicolai =?UTF-8?B?SMOkaG5sZQ==?= , dri-devel , Jason Ekstrand , "Kristian H. Kristensen" , Ben Skeggs , Chad Versace , "mesa-dev@lists.freedesktop.org" , Lyude Paul , Brian Starkey List-Id: dri-devel@lists.freedesktop.org KEFkZGluZyBkcmktZGV2ZWwgYmFjaywgYW5kIHRyeWluZyB0byByZXNwb25kIHRvIHNvbWUgY29t bWVudHMgZnJvbQp0aGUgZGlmZmVyZW50IGZvcmtzKQoKSmFtZXMgSm9uZXMgd3JvdGU6Cgo+IFlv dXIgd29yc3QgY2FzZSBhbmFseXNpcyBhYm92ZSBpc24ndCBmYXIgb2ZmIGZyb20gb3VyIEhXLCBn aXZlIG9yIHRha2UKPiBzb21lIGJpdHMgYW5kIGF4ZXMgaGVyZSBhbmQgdGhlcmUuICBXZSd2ZSBz dGFydGVkIGFuIGludGVybmFsIGRpc2N1c3Npb24KPiBhYm91dCBob3cgdG8gbGF5IG91dCBhbGwg dGhlIGJpdHMgd2UgbmVlZC4gIEl0J3MgaGFyZCB0byBldmVuIGVudW1lcmF0ZQo+IHRoZW0gYWxs IHdpdGhvdXQgaGF2aW5nIGEgY29tcGxldGUgdW5kZXJzdGFuZGluZyBvZiB3aGF0IGNhcGFiaWxp dHkgc2V0cwo+IGFyZSBnb2luZyB0byBpbmNsdWRlLCBhIGZ1bGx5LW9wdGltaXplZCBpbXBsZW1l bnRhdGlvbiBvZiB0aGUgbWVjaGFuaXNtCj4gb24gb3VyIEhXLCBhbmQgbG90J3Mgb2YgdGVzdCBz Y2VuYXJpb3MgdGhvdWdoLiAgCgoodGhhbmtzIEphbWVzIGZvciBtb3N0IG9mIHRoZSBpbmZvIGJl bG93KQoKVG8gZWxhYm9yYXRlIGEgYml0LCBpZiB3ZSB3YW50IHRvIHNoYXJlIGFuIGFsbG9jYXRp b24gYWNyb3NzIEdQVXMgZm9yIDNECnJlbmRlcmluZywgaXQgc2VlbXMgd2Ugd291bGQgbmVlZCAx MiBiaXRzIHRvIGV4cHJlc3Mgb3VyCnN3aXp6bGluZy90aWxpbmcgbWVtb3J5IGxheW91dHMgZm9y IGZlcm1pKy4gSW4gYWRkaXRpb24gdG8gdGhhdCwKbWF4d2VsbCB1c2VzIDMgbW9yZSBiaXRzIGZv ciB0aGlzLCBhbmQgd2UgbmVlZCBhbiBleHRyYSBiaXQgdG8gaWRlbnRpZnkKcHJlLWZlcm1pIHJl cHJlc2VudGF0aW9ucy4KCldlIGFsc28gbmVlZCBvbmUgYml0IHRvIGRpZmZlcmVudGlhdGUgYmV0 d2VlbiBUZWdyYSBhbmQgZGVza3RvcCwgYW5kCmFub3RoZXIgb25lIHRvIGluZGljYXRlIHdoZXRo ZXIgdGhlIGxheW91dCBpcyBvdGhlcndpc2UgbGluZWFyLgoKVGhlbiB0aGluZ3MgbGlrZSB3aGV0 aGVyIGNvbXByZXNzaW9uIGlzIHVzZWQgKG9uZSBtb3JlIGJpdCksIGFuZCB3ZSBjYW4KcHJvYmFi bHkgZ2V0IGJ5IHdpdGggMyBiaXRzIGZvciB0aGUgdHlwZSBvZiBjb21wcmVzc2lvbiBpZiB3ZSBh cmUKY3JlYXRpdmUuIEhvd2V2ZXIsIGl0J2QgYmUgd2F5IGVhc2llciB0byBqdXN0IHRyYWNrIGFy Y2ggKyBwYWdlIGtpbmQsCndoaWNoIHdvdWxkIGJlIGxpa2UgMzIgYml0cyBvbiBpdHMgb3duLgoK V2hldGhlciBaLWN1bGxpbmcgYW5kL29yIHplcm8tYmFuZHdpZHRoLWNsZWFycyBhcmUgdXNlZCBt YXkgYmUgYW5vdGhlciAzCmJpdHMuCgpJZiBkZXZpY2UtbG9jYWwgcHJvcGVydGllcyBhcmUgaW5j bHVkZWQsIHdlIG1pZ2h0IG5lZWQgYSBjb3VwbGUgbW9yZQpiaXRzIGZvciBjYWNoaW5nLgoKV2Ug bWF5IGFsc28gbmVlZCB0byBleHByZXNzIGxvY2FsaXR5IGluZm9ybWF0aW9uLCB3aGljaCBtYXkg dGFrZSBhdApsZWFzdCBhbm90aGVyIDIgb3IgMyBiaXRzLgoKSWYgd2Ugd2FudCB0byBzaGFyZSBh cnJheSB0ZXh0dXJlcyB0b28sIHlvdSBhbHNvIG5lZWQgdG8gcGFzcyB0aGUgYXJyYXkKcGl0Y2gu IElzIGl0IHN1cHBvc2VkIHRvIGJlIGVuY29kZWQgaW4gYSBtb2RpZmllciB0b28/IFRoYXQncyA2 NCBiaXRzIG9uCml0cyBvd24uCgpTbyB5ZXMsIGFzIEphbWVzIG1lbnRpb25lZCwgd2l0aCBzb21l IGVmZm9ydCwgd2UgY291bGQgdGVjaG5pY2FsbHkgZml0Cm91ciBjdXJyZW50IGFsbG9jYXRpb24g cGFyYW1ldGVycyBpbiBhIG1vZGlmaWVyLCBidXQgSSdtIHN0aWxsIG5vdApjb252aW5jZWQgdGhp cyBpcyBhcyBmdXR1cmUgcHJvb2YgYXMgaXQgY291bGQgYmUgYXMgb3VyIGhhcmR3YXJlIGdyb3dz CmluIGNhcGFiaWxpdGllcy4KCgpEYW5pZWwgU3RvbmUgd3JvdGU6Cgo+IFNvIEkgcmVmbGV4aXZl bHkKPiBnZXQgYSBiaXQgaXRjaHkgd2hlbiBJIHNlZSB0aGUga2VybmVsIGJlaW5nIHVzZWQgdG8g dHJhbnNpdCBtYWdpYwo+IGJsb2JzIG9mIGRhdGEgd2hpY2ggYXJlIHN1cHBsaWVkIGJ5IHVzZXJz cGFjZSwgYW5kIG9ubHkgaW50ZXJwcmV0ZWQgYnkKPiBkaWZmZXJlbnQgdXNlcnNwYWNlLiBIYXZp bmcgdGlsaW5nIGZvcm1hdHMgaGlkZGVuIGF3YXkgbWVhbnMgdGhhdAo+IHdlJ3ZlIGhhZCByZWFs LXdvcmxkIGJ1Z3MgaW4gQU1EIGhhcmR3YXJlLCB3aGVyZSB3ZSBlbmQgdXAgZGlzcGxheWluZwo+ IGdhcmJhZ2UgYmVjYXVzZSB3ZSBjYW5ub3QgZ2VuZXJpY2FsbHkgcmVhc29uIGFib3V0IHRoZSBi dWZmZXIKPiBhdHRyaWJ1dGVzLiAgCgpJJ20gYSBiaXQgY29uZnVzZWQuIENhbid0IG1vZGlmaWVy cyBiZSBzcGVjaWZpZWQgYnkgdmVuZG9ycyBhbmQgb25seQppbnRlcnByZXRlZCBieSBkcml2ZXJz PyBNeSB1bmRlcnN0YW5kaW5nIHdhcyB0aGF0IG1vZGlmaWVycyBjb3VsZAphY3R1YWxseSBiZSB0 cmVhdGVkIGFzIG9wYXF1ZSA2NC1iaXQgZGF0YSwgaW4gd2hpY2ggY2FzZSB0aGV5IHdvdWxkCnF1 YWxpZnkgYXMgIm1hZ2ljIGJsb2JzIG9mIGRhdGEiLiBPdGhlcndpc2UsIGl0IHNlZW1zIHRoaXMg d291bGRuJ3QgYmUKc2NhbGFibGUuIFdoYXQgYW0gSSBtaXNzaW5nPwoKCkRhbmllbCBWZXR0ZXIg d3JvdGU6Cgo+IEkgdGhpbmsgaW4gdGhlIGludGVyaW0gZmlndXJpbmcgb3V0IGhvdyB0byBleHBv c2Uga21zIGNhcGFiaWxpdGllcwo+IGJldHRlciAoYW5kIG5lY2Vzc2FyaWx5IHN0YW5kYXJkaXpp bmcgYXQgbGVhc3Qgc29tZSBvZiB0aGVtIHdoaWNoCj4gbWF0dGVyIGF0IHRoZSBjb21wb3NpdG9y IGxldmVsLCBsaWtlIHNpemUgbGltaXRzIG9mIGZyYW1lYnVmZmVycykKPiBmZWVscyBsaWtlIHRo ZSBwbGFjZSB0byBwdXNoIHRoZSBlY29zeXN0ZW0gZm9yd2FyZC4gSW4gc29tZSB3YXkKPiBNaWd1 ZWwncyBwcm9wb3NhbCBsb29rcyBhIGJpdCBiYWNrd2FyZHMsIHNpbmNlIGl0IGFkZHMgdGhlIHBp dGNoCj4gY2FwYWJpbGl0aWVzIHRvIGFkZGZiLCBidXQgYXQgYWRkZmIgdGltZSB5b3UndmUgYWxs b2NhdGVkIGV2ZXJ5dGhpbmcKPiBhbHJlYWR5LCBzbyB3YXkgdG9vIGxhdGUgdG8gZml4IHRoaW5n cyB1cC4gV2l0aCBtb2RpZmllcnMgd2UndmUgYWRkZWQKPiBhIHZlcnkgc2ltcGxlIHBlci1wbGFu ZSBwcm9wZXJ0eSB0byBsaXN0IHdoaWNoIG1vZGlmaWVycyBjYW4gYmUKPiBjb21iaW5lZCB3aXRo IHdoaWNoIHBpeGVsIGZvcm1hdHMuIFRpbnkgc3RhcnQsIGJ1dCBvYnZpb3VzbHkgdmVyeSBmYXIK PiBmcm9tIGFsbCB0aGF0IHdlJ2xsIG5lZWQuICAKCk5vdCBzdXJlIHdoZXRoZXIgSSBtaWdodCBi ZSBtaXN1bmRlcnN0YW5kaW5nIHlvdXIgc3RhdGVtZW50LCBidXQgb25lIG9mCnRoZSBhbGxvY2F0 b3IgbWFpbiBmZWF0dXJlcyBpcyBuZWdvdGlhdGlvbiBvZiBuZWFybHkgb3B0aW1hbCBhbGxvY2F0 aW9uCnBhcmFtZXRlcnMgZ2l2ZW4gYSBzZXQgb2YgdXNlcyBvbiBkaWZmZXJlbnQgZGV2aWNlcy9l bmdpbmVzIGJ5IHRoZQpjYXBhYmlsaXR5IG1lcmdlIG9wZXJhdGlvbi4gQSBjbGllbnQgc2hvdWxk IGhhdmUgcXVlcmllZCB3aGF0IGV2ZXJ5CmRldmljZS9lbmdpbmUgaXMgY2FwYWJsZSBvZiBmb3Ig dGhlIGdpdmVuIHVzZXMsIGZpbmQgdGhlIG9wdGltYWwgc2V0IG9mCmNhcGFiaWxpdGllcywgYW5k IHVzZSBpdCBmb3IgYWxsb2NhdGluZyBhIGJ1ZmZlci4gQXQgdGhlIG1vbWVudCB0aGVzZQpwYXJh bWV0ZXJzIGFyZSBnaXZlbiB0byBLTVMsIHRoZXkgYXJlIGV4cGVjdGVkIHRvIGJlIGdvb2QuIElm IHRoZXkKYXJlbid0LCB0aGUgY2xpZW50IGRpZG4ndCBkbyB0aGluZ3MgcmlnaHQuCgoKUm9iIENs YXJrIHdyb3RlOgoKPiBJdCBkb2VzIHNlZW0gbGlrZSwgaWYgcG9zc2libGUsIHN0YXJ0aW5nIG91 dCB3aXRoIG1vZGlmaWVycyBmb3Igbm93IGF0Cj4gdGhlIGtlcm5lbCBpbnRlcmZhY2Ugd291bGQg bWFrZSBsaWZlIGVhc2llciwgdnMgdHJ5aW5nIHRvIHJlaW52ZW50Cj4gYm90aCBrZXJuZWwgYW5k IHVzZXJzcGFjZSBBUElzIGF0IHRoZSBzYW1lIHRpbWUuICBVc2Vyc3BhY2UgQVBJcyBhcmUKPiBl YXNpZXIgdG8gY2hhbmdlIG9yIHRocm93IGF3YXkuICBQcmVzdW1hYmx5IGJ5IHRoZSB0aW1lIHdl IGdldCB0byB0aGUKPiBwb2ludCBvZiBjaGFuZ2luZyBrZXJuZWwgdWFiaSwgd2UgYXJlIGFscmVh ZHkgdXNpbmcsIGFuZCBwcmV0dHkgaGFwcHkKPiB3aXRoLCBzZXJpYWxpemVkIGxpYmFsbG9jIGRh dGEgb3ZlciB0aGUgd2lyZSBpbiB1c2Vyc3BhY2Ugc28gaXQgaXMKPiBvbmx5IGEgbWF0dGVyIG9m IGNoYW5naW5nIHRoZSBrZXJuZWwgaW50ZXJmYWNlLiAgCgpJIGd1ZXNzIHdlIGNhbiBpbmRlZWQg c3RhcnQgd2l0aCBtb2RpZmllcnMgZm9yIG5vdywgaWYgdGhhdCdzIHdoYXQgaXQKdGFrZXMgdG8g Z2V0IHRoZSBhbGxvY2F0b3IgbWVjaGFuaXNtcyByb2xsaW5nLiBIb3dldmVyLCBpdCBzZWVtcyB0 byBtZQp0aGF0IHdlIHdvbid0IGJlIGFibGUgdG8gZW5jb2RlIHRoZSBzYW1lIHR5cGUgb2YgaW5m b3JtYXRpb24gaW5jbHVkZWQKaW4gY2FwYWJpbGl0eSBzZXRzIHdpdGggbW9kaWZpZXJzIGluIGFs bCBjYXNlcy4gRm9yIGluc3RhbmNlLCBpZiB3ZSBlbmQKdXAgZW5jb2RpbmcgdXNhZ2UgdHJhbnNp dGlvbiBpbmZvcm1hdGlvbiBpbiBjYXBhYmlsaXR5IHNldHMsIGhvdyB0aGF0CndvdWxkIHRyYW5z bGF0ZSB0byBtb2RpZmllcnM/CgpJIGFzc3VtZSBkaXNwbGF5IGRvZXNuJ3QgcmVhbGx5IGNhcmUg YWJvdXQgYSBsb3Qgb2YgdGhlIGRhdGEgY2FwYWJpbGl0eQpzZXRzIG1heSBlbmNvZGUsIGJ1dCBp cyBpdCBjb3JyZWN0IHRvIHRoaW5rIG9mIG1vZGlmaWVycyBhcyB0aGluZ3Mgb25seQpkaXNwbGF5 IG5lZWRzPyBJZiB3ZSBhcmUgdG8gdHJlYXQgbW9kaWZpZXJzIGFzIGEgZmlyc3QtY2xhc3MgY2l0 aXplbiwgSQp3b3VsZCBleHBlY3QgdG8gdXNlIHRoZW0gYmV5b25kIHRoYXQuCgoKS3Jpc3RpYW4g S3Jpc3RlbnNlbiB3cm90ZToKCj4gSSBhZ3JlZSBhbmQgbGV0IG1lIGVsYWJvcmF0ZSBhIGJpdC4g VGhlIHByb2JsZW0gd2UncmUgc2VlaW5nIGlzbid0IHRoYXQgd2UKPiBuZWVkIG1vcmUgdGhhdCAy XjU2IG1vZGlmaWVycyBmb3IgYSBmdXR1cmUgR1BVLiBUaGUgcHJvYmxlbSBpcyB0aGF0IGZsYWdz Cj4gbGlrZSBVU0VfU0NBTk9VVCAod2hpY2ggeW91ciBhbGxvY2F0b3IgcHJvcG9zYWwgZXNzZW50 aWFsbHkga2VlcHMpIGlzCj4gaW5hZGVxdWF0ZS4gVGhlIGF2YWlsYWJsZSB0aWxpbmcgYW5kIGNv bXByZXNzaW9uIGZvcm1hdHMgdmFyeSB3aXRoIHdoaWNoCj4gKGluIEtNUyB0ZXJtcykgQ1JUQyB5 b3Ugd2FudCB0byB1c2UsIHdoaWNoIHBsYW5lIHlvdSdyZSBvbiB3aGV0aGVyIHlvdSB3YW50Cj4g cm90YXRpb24gb3Igbm8gYW5kIGhvdyBtdWNoIHlvdSB3YW50IHRvIHNjYWxlIGV0Yy4gSXQncyBu b3QgcmVhbGlzdGljIHRvCj4gdGhpbmsgdGhhdCB3ZSBjb3VsZCBtb2RlbCB0aGlzIGluIGEgY2Vu dHJhbGl6ZWQgYWxsb2NhdG9yIGxpYnJhcnkgdGhhdCdzCj4gZGV0YWNoZWQgZnJvbSB0aGUgZGlz cGxheSBkcml2ZXIuIFRvIGJlIGZhaXIsIHRoaXMgaXMgbm90IGEgcG9pbnQgYWJvdXQKPiBibG9i cyB2cyBtb2RpZmllcnMsIGl0J3Mgc2F5aW5nIHRoYXQgdGhlIHVzZSBmbGFncyBkb24ndCBiZWxv bmcgaW4gdGhlCj4gYWxsb2NhdG9yLCB0aGV5IGJlbG9uZyBpbiB0aGUgQVBJcyB0aGF0IHdpbGwg YmUgdXNpbmcgdGhlIGJ1ZmZlciAtIGFuZCBub3QKPiBhcyBsaXRlcmFsIHVzZSBmbGFncywgYnV0 IGFzIGEgd2F5IHRvIGRpc2NvdmVyIHN1cHBvcnRlZCBtb2RpZmllcnMgZm9yIGEKPiBnaXZlbiB1 c2UgY2FzZS4gIAoKV2h5IGRldGFjaGVkIGZyb20gdGhlIGRpc3BsYXkgZHJpdmVyPyBJIGRvbid0 IHNlZSB3aHkgdGhlcmUgY291bGRuJ3QgYmUKYW4gYWxsb2NhdG9yIGRyaXZlciB3aXRoIGFjY2Vz cyB0byBkaXNwbGF5IGNhcGFiaWxpdGllcyB0aGF0IGNhbiBiZQp1c2VkIGluIHRoZSBuZWdvdGlh dGlvbiBzdGVwIHRvIGZpbmQgdGhlIG9wdGltYWwgc2V0IG9mIGFsbG9jYXRpb24KcGFyYW1ldGVy cy4KCgpLcmlzdGlhbiBLcmlzdGVuc2VuIHdyb3RlOgoKPiBJIHVuZGVyc3RhbmQgdGhhdCB5b3Ug bWF5IGhhdmUgbiBrbm9icyB3aXRoIGEgdG90YWwgb2YgbW9yZSB0aGFuIGEgdG90YWwgb2YKPiA1 NiBiaXRzIHRoYXQgY29uZmlndXJlIHlvdXIgdGlsaW5nL3N3aXp6bGluZyBmb3IgY29sb3IgYnVm ZmVycy4gV2hhdCBJIGRvbid0Cj4gYnV5IGlzIHRoYXQgeW91IG5lZWQgYWxsIHRob3NlIGNvbWJp bmF0aW9ucyB3aGVuIHBhc3NpbmcgYnVmZmVycyBhcm91bmQKPiBiZXR3ZWVuIGNvZGVjcywgY2Ft ZXJhcyBhbmQgZGlzcGxheSBjb250cm9sbGVycy4gRXZlbiBpZiB5b3UncmUgc2hhcmluZwo+IGJl dHdlZW4gdGhlIHNhbWUgM0QgZHJpdmVycyBpbiBkaWZmZXJlbnQgcHJvY2Vzc2VzLCBJIGV4cGVj dCBqdXN0IGxvY2tpbmcKPiBkb3duLCBzYXksIDY0IGRpZmZlcmVudCBjb21iaW5hdGlvbnMgKHlv dSBjYW4gYWRkIG1vcmUgb3ZlciB0aW1lKSBhbmQKPiBhc3NpZ25pbmcgZWFjaCBhIG1vZGlmaWVy IHdvdWxkIGJlIHN1ZmZpY2llbnQuIEkgZG91YnQgeW91J2QgZXh0cmFjdAo+IG1lYW5pbmdmdWwg cGVyZm9ybWFuY2UgZ2FpbnMgZnJvbSBnb2luZyBhbGwgdGhlIHdheSB0byBhIGJsb2IuICAKCklm IHNvbWVvbmUgaGFzIE4ga25vYnMgYXZhaWxhYmxlLCBJIGRvbid0IHVuZGVyc3RhbmQgd2h5IHRo ZXJlCnNob3VsZG4ndCBiZSBhIG1lY2hhbmlzbSB0aGF0IGFsbG93cyBtYWtpbmcgdXNlIG9mIHRo ZW0gYWxsLCByZWdhcmRsZXNzCm9mIHBlcmZvcm1hbmNlIG51bWJlcnMuCgoKRGFuaWVsIFZldHRl ciB3cm90ZToKCj4gWWVhaCwgdGhhdCBwYXJ0IHdhcyBhbGwgY2xlYXIuIEknZCB3YW50IG1vcmUg ZGV0YWlscyBvZiB3aGF0IGV4YWN0Cj4ga2luZCBvZiBtZXRhZGF0YS4gZmFzdC1jbGVhciBjb2xv cnM/IHRpbGluZyBsYXlvdXRzPyBhdXggZGF0YSBmb3IgdGhlCj4gY29tcHJlc3Nvcj8gaGl6IChv ciB3aGF0ZXZlciB5b3UgZm9sa3MgY2FsbCBpdCkgdHJlZT8KPgo+IEFzIHlvdSBzYXksIHdlJ3Zl IGRpc2N1c3NlZCBtYXNzaXZlIGFtb3VudHMgb2YgZGlmZmVyZW50IHZhcmlhbnRzIG9uCj4gdGhp cywgYW5kIHRoZXJlJ3MgZGlmZmVyZW50IGFuc3dlcnMgZm9yIGRpZmZlcmVudCBxdWVzdGlvbnMu IENvbnNlbnN1cwo+IHNlZW1zIHRvIGJlIHRoYXQgYmlnZ2VyIHN0dWZmIChjb21wcmVzc2lvbiBk YXRhLCBoaXosIGNsZWFyIGNvbG9ycywKPiAuLi4pIHNob3VsZCBiZSBzdG9yZWQgaW4gYXV4IHBs YW5lcywgd2hpbGUgdGhlIGV4YWN0IGxheW91dCBhbmQgd2hhdAo+IGtpbmQgb2YgYXV4IHBsYW5l cyB5b3UgaGF2ZSBhcmUgZW5jb2RlZCBpbiB0aGUgbW9kaWZpZXIuICAKCk15IHVuZGVyc3RhbmRp bmcgaXMgdGhhdCBjYXBhYmlsaXR5IHNldHMgbWF5IGluY2x1ZGUgYWxsIG1ldGFkYXRhIHlvdQpt ZW50aW9uZWQuIEJlc2lkZXMgdGlsaW5nL3N3aXp6bGluZyBsYXlvdXQgYW5kIGNvbXByZXNzaW9u IHBhcmFtZXRlcnMsCnRoaW5ncyBsaWtlIHplcm8tYmFuZHdpZHRoLWNsZWFycyAoSSBndWVzcyB0 aGUgc2FtZSBvciBzaW1pbGFyIHRvCmZhc3QtY2xlYXIgY29sb3JzPyksIGhpei1saWtlIGRhdGEs IGRldmljZS1sb2NhbCBwcm9wZXJ0aWVzIHN1Y2ggYXMKY2FjaGVzLCBvciBsb2NhbGl0eSBpbmZv cm1hdGlvbiBjb3VsZC93aWxsIGJlIGFsc28gaW5jbHVkZWQgaW4gYQpjYXBhYmlsaXR5IHNldC4g V2UgYXJlIGV2ZW4gY29uc2lkZXJpbmcgZW5jb2Rpbmcgc29tZSBzb3J0IG9mIHVzYWdlCnRyYW5z aXRpb24gaW5mb3JtYXRpb24gaW4gdGhlIGNhcGFiaWxpdHkgc2V0IGl0c2VsZi4KCgpUaGFua3Ms Ck1pZ3VlbC4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bWVzYS1kZXYgbWFpbGluZyBsaXN0Cm1lc2EtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL21lc2EtZGV2Cg==