From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: Re: [PATCH v2 00/10] Color Manager Implementation Date: Tue, 14 Jul 2015 11:35:30 +0200 Message-ID: <55A4D7E2.1000106@xs4all.nl> References: <1433425361-17864-1-git-send-email-Kausal.Malladi@intel.com> <20150609125047.GF1671@strange.amr.corp.intel.com> <20150615065310.GC8341@phenom.ffwll.local> <55A376EC.8060807@xs4all.nl> <20150713091813.GW3736@phenom.ffwll.local> <55A38843.9090408@xs4all.nl> <20150713095444.GH3736@phenom.ffwll.local> <55A38EBC.5060201@xs4all.nl> <20150713140741.GJ3736@phenom.ffwll.local> <55A4C585.2070901@xs4all.nl> <20150714091117.GK3736@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150714091117.GK3736@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: annie.j.matheson@intel.com, jesse.barnes@intel.com, dri-devel@lists.freedesktop.org, vijay.a.purushothaman@intel.com, dhanya.p.r@intel.com, daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMDcvMTQvMTUgMTE6MTEsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gVHVlLCBKdWwgMTQs IDIwMTUgYXQgMTA6MTc6MDlBTSArMDIwMCwgSGFucyBWZXJrdWlsIHdyb3RlOgo+PiBPbiAwNy8x My8xNSAxNjowNywgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+IE9uIE1vbiwgSnVsIDEzLCAyMDE1 IGF0IDEyOjExOjA4UE0gKzAyMDAsIEhhbnMgVmVya3VpbCB3cm90ZToKPj4+PiBPbiAwNy8xMy8y MDE1IDExOjU0IEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4+PiBPbiBNb24sIEp1bCAxMywg MjAxNSBhdCAxMTo0MzozMUFNICswMjAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4+Pj4+PiBPbiAw Ny8xMy8yMDE1IDExOjE4IEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4+Pj4+IE9uIE1vbiwg SnVsIDEzLCAyMDE1IGF0IDEwOjI5OjMyQU0gKzAyMDAsIEhhbnMgVmVya3VpbCB3cm90ZToKPj4+ Pj4+Pj4gT24gMDYvMTUvMjAxNSAwODo1MyBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+Pj4+ Pj4+IE9uIFR1ZSwgSnVuIDA5LCAyMDE1IGF0IDAxOjUwOjQ4UE0gKzAxMDAsIERhbWllbiBMZXNw aWF1IHdyb3RlOgo+Pj4+Pj4+Pj4+IE9uIFRodSwgSnVuIDA0LCAyMDE1IGF0IDA3OjEyOjMxUE0g KzA1MzAsIEthdXNhbCBNYWxsYWRpIHdyb3RlOgo+Pj4+Pj4+Pj4+PiBGcm9tOiBLYXVzYWwgTWFs bGFkaSA8S2F1c2FsLk1hbGxhZGlAaW50ZWwuY29tPgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBU aGlzIHBhdGNoIHNldCBhZGRzIGNvbG9yIG1hbmFnZXIgaW1wbGVtZW50YXRpb24gaW4gZHJtL2k5 MTUgbGF5ZXIuCj4+Pj4+Pj4+Pj4+IENvbG9yIE1hbmFnZXIgaXMgYW4gZXh0ZW5zaW9uIGluIGk5 MTUgZHJpdmVyIHRvIHN1cHBvcnQgY29sb3IgCj4+Pj4+Pj4+Pj4+IGNvcnJlY3Rpb24vZW5oYW5j ZW1lbnQuIFZhcmlvdXMgSW50ZWwgcGxhdGZvcm1zIHN1cHBvcnQgc2V2ZXJhbAo+Pj4+Pj4+Pj4+ PiBjb2xvciBjb3JyZWN0aW9uIGNhcGFiaWxpdGllcy4gQ29sb3IgTWFuYWdlciBwcm92aWRlcyBh YnN0cmFjdGlvbgo+Pj4+Pj4+Pj4+PiBvZiB0aGVzZSBwcm9wZXJ0aWVzIGFuZCBhbGxvd3MgYSB1 c2VyIHNwYWNlIFVJIGFnZW50IHRvIAo+Pj4+Pj4+Pj4+PiBjb3JyZWN0L2VuaGFuY2UgdGhlIGRp c3BsYXkuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBTbyBJIGRpZCBhIGZpcnN0IHJvdWdoIHBhc3Mg b24gdGhlIEFQSSBpdHNlbGYuIFRoZSBiaWcgcXVlc3Rpb24gdGhhdAo+Pj4+Pj4+Pj4+IGlzbid0 IHNvbHZlZCBhdCB0aGUgbW9tZW50IGlzOiBkbyB3ZSB3YW50IHRvIHRyeSB0byBkbyBnZW5lcmlj IEtNUwo+Pj4+Pj4+Pj4+IHByb3BlcnRpZXMgZm9yIHByZS1MVVQgKyBtYXRyaXggKyBwb3N0LUxV VCBvciBub3QuICJHZW5lcmljIiBoYXMgMyBsZXZlbHM6Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAg IDEvIEdlbmVyaWMgZm9yIGFsbCBLTVMgZHJpdmVycwo+Pj4+Pj4+Pj4+ICAgMi8gR2VuZXJpYyBm b3IgaTkxNSBzdXBwb3J0ZWQgcGxhdGZvbXMKPj4+Pj4+Pj4+PiAgIDMvIFNwZWNpZmljIHRvIGVh Y2ggcGxhdGZvcm0KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEF0IHRoaXMgcG9pbnQsIEknbSBxdWl0 ZSB0ZW1wdGVkIHRvIHNheSB3ZSBzaG91bGQgZ2l2ZSAxLyBhIHNob3QuIFdlCj4+Pj4+Pj4+Pj4g c2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBwcmUtTFVUICsgbWF0cml4ICsgcG9zdC1MVVQgb24gQ1JU QyBvYmplY3RzIGFuZAo+Pj4+Pj4+Pj4+IGd1YXJhbnRlZSB0aGF0LCB3aGVuIHRoZSBkcml2ZXJz IGV4cG9zZSBzdWNoIHByb3BlcnRpZXMsIHVzZXIgc3BhY2UgY2FuCj4+Pj4+Pj4+Pj4gYXQgbGVh c3QgZ2l2ZSA4IGJpdHMgTFVUICsgM3gzIG1hdHJpeCArIDggYml0cyBMVVQuCj4+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+PiBJdCBtYXkgYmUgcG9zc2libGUgdG8gdXNlIHRoZSAidHJ5IiB2ZXJzaW9uIG9m IHRoZSBhdG9taWMgaW9jdGwgdG8KPj4+Pj4+Pj4+PiBleHBsb3JlIHRoZSBzcGFjZSBvZiBwb3Nz aWJpbGl0aWVzIGZyb20gYSBnZW5lcmljIHVzZXIgc3BhY2UgdG8gdXNlCj4+Pj4+Pj4+Pj4gYmln Z2VyIExVVHMgYXMgd2VsbC4gQSBIQUwgbGF5ZXIgKHdoaWNoIGlzIGFscmVhZHkgdGhlcmUgaW4g c29tZSBidXQgbm90Cj4+Pj4+Pj4+Pj4gYWxsIE9TZXMpIHdvdWxkIHN0aWxsIGJlIGFibGUgdG8g dXNlIHRob3NlIGdlbmVyaWMgcHJvcGVydGllcyB0byBsb2FkCj4+Pj4+Pj4+Pj4gInByZWNpc2lv biBvcHRpbWl6ZWQiIExVVHMgd2l0aCBzb21lIGtub3dsZWRnZSBvZiB0aGUgaGFyZHdhcmUuCj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gWWVhaCwgaW1vIDEvIHNob3VsZCBiZSBkb2FibGUuIEZvciB0aGUg bWF0cml4IHdlIHNob3VsZCBiZSBhYmxlIHRvIGJlCj4+Pj4+Pj4+PiBmdWxseSBnZW5lcmljIHdp dGggYSAxNi4xNiBmb3JtYXQuIEZvciBnYW1tYSBvbmUgb3B0aW9uIHdvdWxkIGJlIHRvIGhhdmUK Pj4+Pj4+Pj4KPj4+Pj4+Pj4gSSBrbm93IEkgYW0gbGF0ZSByZXBseWluZywgYXBvbG9naWVzIGZv ciB0aGF0Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJJ3ZlIGJlZW4gd29ya2luZyBvbiBDU0Mgc3VwcG9y dCBmb3IgVjRMMiBhcyB3ZWxsIChzdGlsbCB3b3JrIGluIHByb2dyZXNzKQo+Pj4+Pj4+PiBhbmQg SSB3b3VsZCBsaWtlIHRvIGF0IGxlYXN0IGVuZCB1cCB3aXRoIHRoZSBzYW1lIGxvdy1sZXZlbCBm aXhlZCBwb2ludAo+Pj4+Pj4+PiBmb3JtYXQgYXMgRFJNIHNvIHdlIGNhbiBzaGFyZSBtYXRyaXgv dmVjdG9yIGNhbGN1bGF0aW9ucy4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gQmFzZWQgb24gbXkgZXhwZXJp ZW5jZXMgSSBoYXZlIGNvbmNlcm5zIGFib3V0IHRoZSAxNi4xNiBmb3JtYXQ6IHRoZSBwcmVjaXNp b24KPj4+Pj4+Pj4gaXMgcXVpdGUgbG93IHdoaWNoIGNhbiBiZSBhIHByb2JsZW0gd2hlbiBzdWNo IHZhbHVlcyBhcmUgdXNlZCBpbiBtYXRyaXgKPj4+Pj4+Pj4gbXVsdGlwbGljYXRpb25zLgo+Pj4+ Pj4+Pgo+Pj4+Pj4+PiBJbiBhZGRpdGlvbiwgd2hpbGUgdGhlIHByZWNpc2lvbiBtYXkgYmUgc3Vm ZmljaWVudCBmb3IgOCBiaXQgY29sb3IgY29tcG9uZW50Cj4+Pj4+Pj4+IHZhbHVlcywgSSdtIHBy ZXR0eSBzdXJlIGl0IHdpbGwgYmUgaW5zdWZmaWNpZW50IHdoZW4gZGVhbGluZyB3aXRoIDEyIG9y IDE2IGJpdAo+Pj4+Pj4+PiBjb2xvciBjb21wb25lbnRzLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJbiBl YXJsaWVyIHZlcnNpb25zIG9mIG15IENTQyBjb2RlIEkgdXNlZCBhIDEyLjIwIGZvcm1hdCwgYnV0 IGluIHRoZSBsYXRlc3QgSQo+Pj4+Pj4+PiBzd2l0Y2hlZCB0byAzMi4zMi4gVGhpcyBmaXRzIG5p Y2VseSBpbiBhIHU2NCBhbmQgaXQncyBlYXN5IHRvIGV4dHJhY3QgdGhlCj4+Pj4+Pj4+IGludGVn ZXIgYW5kIGZyYWN0aW9uYWwgcGFydHMuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IElmIHRoaXMgaXMgZ29p bmcgdG8gYmUgYSBnZW5lcmljIGFuZCBmdXR1cmUgcHJvb2YgQVBJLCB0aGVuIG15IHN1Z2dlc3Rp b24KPj4+Pj4+Pj4gd291bGQgYmUgdG8gaW5jcmVhc2UgdGhlIHByZWNpc2lvbiBvZiB0aGUgdW5k ZXJseWluZyBkYXRhIHR5cGUuCj4+Pj4+Pj4KPj4+Pj4+PiBXZSBkaXNjdXNzZWQgdGhpcyBhIGJp dCBtb3JlIGludGVybmFsbHkgYW5kIGZpZ3VyZWQgaXQgd291bGQgYmUgbmljZSB0byBoYXZlIHRo ZSBzYW1lCj4+Pj4+Pj4gZml4ZWQgcG9pbnQgZm9yIGJvdGggQ1NDIG1hdHJpeCBhbmQgTFVUL2dh bW1hIHRhYmxlcy4gQ3VycmVudCBjb25zZW5zdXMKPj4+Pj4+PiBzZWVtcyB0byBiZSB0byBnbyB3 aXRoIDguMjQgZm9yIGJvdGguIFNpbmNlIExVVHMgYXJlIGZhaXJseSBiaWcgSSB0aGluayBpdAo+ Pj4+Pj4+IG1ha2VzIHNlbnNlIGlmIHdlIHRyeSB0byBiZSBub3QgdG9vIHdhc3RlZnVsICh3aGls ZSBzdGlsbCBmdXR1cmUtcHJvb2YKPj4+Pj4+PiBvZmMpLgo+Pj4+Pj4KPj4+Pj4+IFRoZSAuMjQg c2hvdWxkIGhhdmUgZW5vdWdoIHByZWNpc2lvbiwgYnV0IEkgYW0gd29ycmllZCBhYm91dCB0aGUg ODogd2hpbGUKPj4+Pj4+IHRoaXMgd29ya3MgZm9yIDggYml0IGNvbXBvbmVudHMsIHlvdSBjYW4n dCB1c2UgaXQgdG8gcmVwcmVzZW50IHZhbHVlcwo+Pj4+Pj4+IDI1NSwgd2hpY2ggbWlnaHQgYmUg bmVlZGVkIChub3cgb3IgaW4gdGhlIGZ1dHVyZSkgZm9yIDEwLCAxMiBvciAxNiBiaXQKPj4+Pj4+ IGNvbG9yIGNvbXBvbmVudHMuCj4+Pj4+Pgo+Pj4+Pj4gSXQncyB3aHkgSSBlbmRlZCB1cCB3aXRo IDMyLjMyOiBpdCdzIHZlcnkgZ2VuZXJpYyBzbyB1c2FibGUgZm9yIG90aGVyCj4+Pj4+PiB0aGlu Z3MgYmVzaWRlcyBDU0MuCj4+Pj4+Pgo+Pj4+Pj4gTm90ZSB0aGF0IDguMjQgaXMgcmVhbGx5IDcu MjQgKyBvbmUgc2lnbiBiaXQuIFNvIDI1NSBjYW4ndCBiZSByZXByZXNlbnRlZAo+Pj4+Pj4gaW4g dGhpcyBmb3JtYXQuCj4+Pj4+Pgo+Pj4+Pj4gVGhhdCBzYWlkLCBhbGwgdmFsdWVzIEknbSB3b3Jr aW5nIHdpdGggaW4gbXkgY3VycmVudCBjb2RlIGFyZSBzbWFsbCBpbnRlZ2Vycwo+Pj4+Pj4gKHNh eSBiZXR3ZWVuIC00IGFuZCA0IHdvcnN0IGNhc2UpLCBzbyA4LjI0IHdvdWxkIHdvcmsuIEJ1dCBJ IGFtIG5vdCBhdCBhbGwKPj4+Pj4+IGNvbmZpZGVudCB0aGF0IHRoaXMgaXMgZnV0dXJlIHByb29m LiBNeSBndXQgZmVlbGluZyBpcyB0aGF0IHlvdSBuZWVkIHRvIGJlCj4+Pj4+PiBhYmxlIHRvIHJl cHJlc2VudCBhdCBsZWFzdCB0aGUgbWF4IGNvbXBvbmVudCB2YWx1ZSArIGEgc2lnbiBiaXQgKyA3 IGRlY2ltYWxzCj4+Pj4+PiBwcmVjaXNpb24uIFdoaWNoIG1ha2VzIDE3LjI0Lgo+Pj4+Pgo+Pj4+ PiBUaGUgaWRlYSBpcyB0byBzdGVhbCBmcm9tIEdMIGFuZCBhbHdheXMgbm9ybWFsaXplIGV2ZXJ5 dGhpbmcgdG8gWzAuMCwKPj4+Pj4gMS4wXSwgaXJyZXNwZWN0aXZlIG9mIHRoZSBzb3VyY2UgY29s b3IgZm9ybWF0LiBXZSBuZWVkIHRoYXQgaW4gZHJtIHNpbmNlCj4+Pj4+IGlmIHlvdSBibGVuZCB0 b2dldGhlciBwbGFuZXMgd2l0aCBkaWZmZXJlbnQgZm9ybWF0cyBpdCdzIGNvbXBsZXRlbHkKPj4+ Pj4gdW5kZWZpbmVkIHdoaWNoIG9uZSB5b3Ugc2hvdWxkIHBpY2suIDggYml0cyBvZiBwcmVjaXNp b24gZm9yIHZhbHVlcyBvdXQgb2YKPj4+Pj4gcmFuZ2Ugc2hvdWxkIGJlIGVub3VnaCA7LSkKPj4+ Pgo+Pj4+IFRoYXQgZG9lc24ndCByZWFsbHkgaGVscCBtdWNoLCB1c2luZyBhIFswLTFdIHJhbmdl IGp1c3QgbWVhbnMgdGhhdCB5b3UgbmVlZAo+Pj4+IG1vcmUgcHJlY2lzaW9uIGZvciB0aGUgZnJh Y3Rpb24gc2luY2UgdGhlIGludGVnZXIgcHJlY2lzaW9uIGlzIG5vdyBhZGRlZCB0bwo+Pj4+IHRo ZSBmcmFjdGlvbmFsIHByZWNpc2lvbi4KPj4+Pgo+Pj4+IFNvIGZvciAxNi1iaXQgY29sb3IgY29t cG9uZW50cyB0aGUgOC4yNCBmb3JtYXQgd2lsbCBsZWF2ZSB5b3Ugd2l0aCBvbmx5IDggYml0cwo+ Pj4+IHByZWNpc2lvbiBpZiB5b3Ugc2NhbGUgZWFjaCBjb21wb25lbnQgdG8gdGhlIFswLTFdIHJh bmdlLiBUaGF0J3Mgc2xpZ2h0bHkgbW9yZQo+Pj4+IHRoYW4gMiBkZWNpbWFscy4gSSBkb24ndCBi ZWxpZXZlIHRoYXQgaXMgZW5vdWdoLiBJZiB5b3UgZG8gYSBnYW1tYSB0YWJsZSBsb29rdXAKPj4+ PiBhbmQgdGhlbiBmZWVkIHRoZSByZXN1bHQgdG8gYSBDU0MgbWF0cml4IHlvdSBuZWVkIG1vcmUg cHJlY2lzaW9uIGlmIHlvdSB3YW50Cj4+Pj4gdG8gZ2V0IGFjY3VyYXRlIHJlc3VsdHMuCj4+Pgo+ Pj4gSG0sIHdoeSBkbyB3ZSBuZWVkIDggYml0cyBtb3JlIHByZWNpc2lvbiB0aGFuIHNvdXJjZSBk YXRhPyBBdCBsZWFzdCBpbiB0aGUKPj4+IGludGVsIGh3IEkndmUgc2VlbiB0aGUgbW9zdCBiaXRz IHdlIGNhbiBzdHVmZiBpbnRvIHRoZSBodyBpcyAwLjEyIChhZ2Fpbgo+Pj4gZm9yIHJlc2NhbGVk IHJhbmdlIHRvIDAuMC0xLjApLiAyNCBiaXRzIG1lYW5zIGFzLWlzIHdlJ2xsIHRocm93IDEyIGJp dHMKPj4+IGF3YXkuIFdoYXQgd291bGQgeW91IHdhbnQgdG8gdXNlIHRoZXNlIGJpdHMgZm9yPwo+ Pgo+PiBUaGUgaW50ZWwgaGFyZHdhcmUgdXNlcyAxMiBiaXRzIHRvZGF5LCBidXQgd2hhdCBhYm91 dCB0aGUgbmV4dC1nZW4/IElmIHlvdSBhcmUKPj4gZGVmaW5pbmcgYW4gQVBJIGFuZCBkYXRhIHR5 cGUganVzdCBmb3IgdGhlIGhhcmR3YXJlIHRoZSBrZXJuZWwgc3VwcG9ydHMgdG9kYXksCj4+IHRo ZW4gMTIgYml0cyBtaWdodCBiZSBlbm91Z2ggcHJlY2lzaW9uLiBJZiB5b3Ugd2FudCB0byBiZSBm dXR1cmUgcHJvb2YgdGhlbiB5b3UKPj4gbmVlZCB0byBiZSBwcmVwYXJlZCBmb3IgbW9yZSBjYXBh YmxlIGZ1dHVyZSBoYXJkd2FyZS4KPj4KPj4gU28gMC4xMiB3aWxsIG9idmlvdXNseSBub3QgYmUg ZW5vdWdoIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgMTYgYml0IGNvbG9yIGNvbXBvbmVudHMKPj4g aW4gdGhlIGZ1dHVyZS4KPj4KPj4gSW4gYWRkaXRpb24sIHRvIGZ1bGx5IHN1cHBvcnQgSFcgY29s b3JzcGFjZSBjb252ZXJzaW9uIChlLmcuIHNSR0IgdG8gUmVjLjcwOSkgd2hlcmUKPj4gbG9va3Vw IHRhYmxlcyBhcmUgdXNlZCBmb3IgaW1wbGVtZW50aW5nIHRoZSB0cmFuc2ZlciBmdW5jdGlvbnMg KG5vcm1hbCBhbmQgaW52ZXJzZSksCj4+IHRoZW4geW91IG5lZWQgbW9yZSBwcmVjaXNpb24gdGhl biBqdXN0IHRoZSBudW1iZXIgb2YgYml0cyBwZXIgY29tcG9uZW50IG9yIHlvdSB3aWxsCj4+IGdl dCBxdWl0ZSBsYXJnZSBlcnJvcnMgaW4gdGhlIGNhbGN1bGF0aW9uLgo+Pgo+PiBJdCBhbGwgZGVw ZW5kcyBob3cgYSBMVVQgaXMgdXNlZDogaWYgdGhlIHZhbHVlIGZyb20gdGhlIExVVCBpcyB0aGUg J2ZpbmFsJyB2YWx1ZSwKPj4gdGhlbiB5b3UgZG9uJ3QgbmVlZCBtb3JlIHByZWNpc2lvbiB0aGFu IHRoZSBudW1iZXIgb2YgYml0cyBvZiBhIGNvbG9yIGNvbXBvbmVudC4gQnV0Cj4+IGlmIGl0IGlz IHVzZWQgaW4gb3RoZXIgY2FsY3VsYXRpb25zICgzeDMgbWF0cmljZXMsIGZ1bGwvbGltaXRlZCBy YW5nZSBzY2FsaW5nLCBldGMpLAo+PiB0aGVuIHRoZSBMVVQgc2hvdWxkIHByb3ZpZGUgbW9yZSBi aXRzIHByZWNpc2lvbi4KPj4KPj4gV2hpY2ggc2VlbXMgdG8gYmUgdGhlIGNhc2Ugd2l0aCBJbnRl bCBoYXJkd2FyZTogMTIgYml0cyBpcyA0IGJpdHMgbW9yZSB0aGFuIHRoZSA4IGJpdHMKPj4gcGVy IGNvbXBvbmVudCBpdCBwcm9iYWJseSB1c2VzLgo+IAo+IEludGVsIGh3IHN1cHBvcnRzIGEgMTJi cHAgcGl4ZWwgcGlwZWxpbmUuIFRoZXkgZGlkbnQgYWRkIF9hbnlfIGFkZGl0aW9uYWwKPiBwcmVj aXNpb24gYXQgYWxsIGFmYWlrLiBXaGljaCBpcyB3aHkgSSB3b25kZXIgd2h5IHdlIG5lZWQgaXQu IEknbSBhbHNvIG5vdAo+IGF3YXJlIG9mIGFueSBwbGFucyBmb3IgcHVzaGluZyBwYXN0IDEyYnBw IG9mIGRhdGEgc2VudCB0byB0aGUgc2luaywgYnV0IEkKPiBob25lc3RseSBkb24ndCBoYXZlIG11 Y2ggY2x1ZSByZWFsbHkuCj4gCj4gSSBndWVzcyBpbnB1dCBpcyBhIGRpZmZlcmVudCBzdG9yeSwg dG9kYXlzIGNtb3MgYWxyZWFkeSBlYXNpbHkgdG8gMTRiaXQKPiB3aXRoIG1vcmUgdG8gY29tZSBJ IGd1ZXNzIHdpdGggYWxsIHRoZSBub2lzZSBhYm91dCBIRFIuIFdlIHByb2JhYmx5IG5lZWQKPiBt b3JlIGhlYWRyb29tIG9uIHY0bCBpbnB1dCBzaWRlIHRoYW4gd2UgZXZlciBuZWVkIG9uIGRybSBk aXNwbGF5IHNpZGUuCj4gU3RpbGwgMjRiaXRzIGlzIGFuIGF3ZnVsIGxvdCBvZiBoZWFkcm9vbSwg YXQgbGVhc3QgZm9yIHRoZSBuZXh0IGZldyB5ZWFycy4KPiBPciBkbyB5b3UgZXhwZWN0IHRvIGhp dCB0aGF0IGFscmVhZHkgc29vbmlzaCBvbiB2NGwgc2lkZT8KCkkgdGhpbmsgMjQgYml0cyBwcmVj aXNpb24gaXMgZW5vdWdoLCBidXQgdGhhdCBhc3N1bWVzIHRoYXQgdGhlIGludGVnZXIgcGFydAp3 aWxsIGJlIGJldHdlZW4gLTEyOCBhbmQgMTI3LiBBbmQgSSBhbSBub3Qgc28gc3VyZSB0aGF0IHRo YXQgaXMgYSB2YWxpZCBhc3N1bXB0aW9uLgoKSXQncyB0cnVlIHRvZGF5LCBidXQgd2hhdCBpZiB5 b3UgaGF2ZSBhIEhXIExVVCB0aGF0IG1hcHMgaW50ZWdlciB2YWx1ZXMgYW5kIGV4cGVjdHMKMTYu MCBvciBwZXJoYXBzIDEyLjQ/CgpCVFcsIEkgYW0gYXNzdW1pbmcgdGhhdCB0aGUgcHJvcG9zZWQg OC4yNCBmb3JtYXQgaXMgYSBzaWduZWQgZm9ybWF0OiB0aGUgQ1NDCjN4MyBtYXRyaWNlcyBjb250 YWluIG5lZ2F0aXZlIHZhbHVlcywgc28gYW55IGZpeGVkIHBvaW50IGRhdGEgdHlwZSBoYXMgdG8g YmUgc2lnbmVkLgoKSSdtIGp1c3Qgd29uZGVyaW5nOiBpcyBpdCByZWFsbHkgc3VjaCBhIGJpZyBk ZWFsIHRvIHVzZSBhIDMyLjMyIGZvcm1hdD8gWWVzLCB0aGUKYW1vdW50IG9mIGRhdGEgZG91Ymxl cywgYnV0IGl0J3MgcXVpdGUgcmFyZSB0aGF0IHlvdSBuZWVkIHRvIGNvbmZpZ3VyZSBhIExVVCwg cmlnaHQ/CgpGb3IgYSAxMiBiaXQgTFVUIGl0J3MgMTYga0IgdnMgMzIga0IuIFllcywgaXQncyBt b3JlIGRhdGEsIGJ1dCB0aGUgYWR2YW50YWdlIGlzIHRoYXQKdGhlIGRhdGEgdHlwZSBpcyBmdXR1 cmUgcHJvb2YgKHdlbGwsIHByb2JhYmx5IDotKSApIGFuZCBtdWNoIG1vcmUgbGlrZWx5IHRvIGJl IHVzYWJsZQppbiBvdGhlciBzdWJzeXN0ZW1zLgoKPj4gSSB3b3VsZCBndWVzcyB0aGF0IGEgTFVU IHN1cHBvcnRpbmcgMTYgYml0IGNvbG9yIGNvbXBvbmVudHMgd291bGQgbmVlZCBhIHByZWNpc2lv bgo+PiBvZiAwLjIwIG9yIHNvIChhc3N1bWluZyB0aGUgcmVzdWx0aW5nIHZhbHVlcyBhcmUgdXNl ZCBpbiBmdXJ0aGVyIGNhbGN1bGF0aW9ucykuCj4+Cj4+IEhpZ2ggZHluYW1pYyByYW5nZSB2aWRl byB3aWxsIGJlIGFuIGltcG9ydGFudCBkcml2aW5nIGZvcmNlIHRvd2FyZHMgaGlnaGVyIGJpdCBk ZXB0aHMKPj4gYW5kIGFjY3VyYXRlIGNvbG9yIGhhbmRsaW5nLCBzbyB5b3UgY2FuIGV4cGVjdCB0 byBzZWUgdGhpcyBiZWNvbWUgbXVjaCBtb3JlIGltcG9ydGFudAo+PiBpbiB0aGUgY29taW5nIHll YXJzLgo+Pgo+PiBBbmQgYXMgSSBtZW50aW9uZWQgYW5vdGhlciBjb25zaWRlcmF0aW9uIGlzIHRo YXQgdGhpcyBmaXhlZCBwb2ludCBkYXRhIHR5cGUgbWlnaHQKPj4gYmUgdXNlZnVsIGVsc2V3aGVy ZSBpbiB0aGUga2VybmVsIHdoZXJlIHlvdSBuZWVkIHRvIGRvIHNvbWUgcHJlY2lzaW9uIGFyaXRo bWV0aWMuCj4+IFNvIHVzaW5nIGEgc3RhbmRhcmQgdHlwZSB0aGF0IGFueW9uZSBjYW4gdXNlIHdp dGggZnVuY3Rpb25zIGluIGxpYi8gdG8gZG8gYmFzaWMKPj4gb3BlcmF0aW9ucyBjYW4gYmUgdmVy eSB1c2VmdWwgaW5kZWVkIGJleW9uZCBqdXN0IERSTSBhbmQgVjRMMi4KPiAKPiAwLjIwIHdvdWxk IHN0aWxsIGNvbWZvcnRhYmx5IGZpdCBpbnRvIDguMjQuIEFuZCB5ZWFoIHdvcnN0LWNhc2UgKGlu IDEwCj4geWVhcnMgb3Igc28pIHdlIG5lZWQgdG8gYWRkIGEgaGlnaC1icHAgdmFyaWFudCBpZiBp dCByZWFsbHkgY29tZXMgdG8gaXQuCgpJIHRoaW5rIHRoaXMgaXMgbXVjaCBjbG9zZXIgdGhhbiB5 b3UgdGhpbmsuIEkgYWdyZWUgdGhhdCB5b3UgYXJlIG5vdCBsaWtlbHkgdG8gc2VlCnRoaXMgc29v biBmb3IgY29uc3VtZXIgZ3JhcGhpY3MgY2FyZHMsIGJ1dCBmb3IgcHJvZmVzc2lvbmFsIGVxdWlw bWVudCBhbmQgaGlnaC1lbmQKY29uc3VtZXIgZWxlY3Ryb25pY3MgdGhpcyBpcyBhbm90aGVyIHN0 b3J5LgoKQW5kIGlmIGl0IGlzIGJlaW5nIGRvbmUgZm9yIGlucHV0LCB0aGVuIG91dHB1dCB3aWxs IG5lZWQgaXQgYXMgd2VsbDogYWZ0ZXIgYWxsLAp3aGF0J3MgdGhlIHBvaW50IG9mIDE2LWJpdCBj b2xvciBjb21wb25lbnRzIGlmIHlvdSBjYW4ndCBkaXNwbGF5IGl0PyBXaGV0aGVyIEludGVsCndp bGwgc3VwcG9ydCBpdCBpcyBhbm90aGVyIG1hdHRlciwgYnV0IHRoZXJlIGFyZSBvdGhlciB2ZW5k b3JzLCB5b3Uga25vdy4uLiA6LSkKClJlZ2FyZHMsCgoJSGFucwoKPiBCdXQgZm9yIHRoZSBuZXh0 IGZldyB5ZWFycyAoYW5kIHRoYXQncyB0aGUgcGFjZSBhdCB3aGljaCB3ZSBjb21wbGV0ZWx5Cj4g cmV3cml0ZSBnZnggZHJpdmVycyBhbnl3YXkpIEkgZG9uJ3Qgc2VlIGFueXRoaW5nIGdvaW5nIHBh c3QgLjI0LiAuMTYgd2FzCj4gaW5kZWVkIGEgYml0IHRvbyBsaXR0bGUgSSB0aGluaywgd2hpY2gg aXMgd2h5IHdlIGRlY2lkZWQgdG8gbW92ZSB0aGUgZml4ZWQKPiBwb2ludCBhIGJpdC4KPiAtRGFu aWVsCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==