From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v6 14/23] drm/i915: CHV: Pipe level degamma correction Date: Mon, 19 Oct 2015 20:54:56 +0200 Message-ID: <20151019185456.GK13786@phenom.ffwll.local> References: <1445005751-14918-1-git-send-email-shashank.sharma@intel.com> <1445005751-14918-15-git-send-email-shashank.sharma@intel.com> <591D9F2F8137E144B6CDD649149EA82D1B3902E5@IRSMSX103.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-f46.google.com (mail-lf0-f46.google.com [209.85.215.46]) by gabe.freedesktop.org (Postfix) with ESMTPS id 323F26EAA5 for ; Mon, 19 Oct 2015 11:55:01 -0700 (PDT) Received: by lffz202 with SMTP id z202so36778141lff.3 for ; Mon, 19 Oct 2015 11:54:59 -0700 (PDT) Content-Disposition: inline In-Reply-To: <591D9F2F8137E144B6CDD649149EA82D1B3902E5@IRSMSX103.ger.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Smith, Gary K" Cc: "Matheson, Annie J" , "intel-gfx@lists.freedesktop.org" , "emil.l.velikov@gmail.com" , "dri-devel@lists.freedesktop.org" , "kausalmalladi@gmail.com" , "Vetter, Daniel" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMTksIDIwMTUgYXQgMDY6MDg6NTJQTSArMDAwMCwgU21pdGgsIEdhcnkgSyB3 cm90ZToKPiBGWUkgLSB0aGlzIHNob3VsZG4ndCBibG9jayB0aGUgY29tbWl0cywgYnV0IHNob3Vs ZCBiZSBvcHRpbWl6ZWQgbGF0ZXIgKGZhaXJseSBzb29uKS4gCj4gCj4gSSBiZWxpZXZlIHRoZSBj dXJyZW50IGltcGxlbWVudGF0aW9uIGVuZHMgdXAgZXhlY3V0aW5nIAo+IAkJd2hpbGUgKGNvdW50 IDwgQ0hWX0RFR0FNTUFfTUFYX1ZBTFMpIHsKPiAJCQkvLyBEbyBsb3RzIG9mIGNhY2x1bGF0aW9u Cj4gCQkJSTkxNV9XUklURShjZ21fZGVnYW1tYV9yZWcsIHdvcmQpOwo+IEV2ZXJ5IGZyYW1lIGFm dGVyIHlvdSBzZXQgdGhlIHByb3BlcnR5LCB3aGV0aGVyIHlvdSBjaGFuZ2UgdGhlIGNvbnRlbnRz IG9mIHRoZSBibG9iIG9yIG5vdC4gQ2xlYXJseSB0aGlzIGlzIHJlYWxseSBpbmVmZmljaWVudCB3 aGVuIHRoZXJlIGFyZSAxMDBzIG9mIGdhbW1hIHZhbHVlcyB0byB3cml0ZS4gCj4gU2FtZSB3aXRo IHRoZSBHYW1tYSBhbmQgQ1RNLiBDVE0gaXMgbGVzcyBvZiBhbiBpc3N1ZSB3aXRoIG9ubHkgOSBl bnRyaWVzLgo+IAo+IE15IHN1Z2dlc3Rpb24gaGVyZSBpcyB0byBzZXQgYSBib29sZWFuIHdoZW4g dGhlIHByb3BlcnR5IGhhcyBiZWVuIHNldCBhcwo+IHBhcnQgb2YgYSBmbGlwIGFuZCBvbmx5IGFw cGx5IGl0IG9uIHRoZSBhdG9taWMgY29tbWl0IGFmdGVyIHRoZSB1cGRhdGUKPiB3YXMgcmVjZWl2 ZWQuCgpZZWFoIHRoZSB1c3VhbCBkZXNpZ24gaXMgdG8gYWRkIGEgZm9vX2NoYW5nZWQgYm9vbGVh biAob3IgYml0bWFzaywgZS5nLgpmb3IgY2hhbmdlZCBwbGFuZXMgdHJhY2tlZCBpbiB0aGUgY3J0 Y19zdGF0ZSkgaW4gdGhlIHN0YXRlIHdoZXJlIHdlIG5lZWQKdG8gY29tbWl0IHRoZSB1cGRhdGUu IFRoYXQgL3Nob3VsZC8gYmUgdGhlcmUgcmVhbGx5LCBkaWRuJ3QgZXZlciByZWFsaXplCml0J3Mg bm90IGRvbmUuIE5vdGUgdGhhdCB0aGF0IGZvciBsZWdhY3kgY3Vyc29ycyB3ZSB1cGRhdGUgdGhl bSB3aXRob3V0CndhaXRpbmcgZm9yIHZibGFua3MgYW5kIGxlZ2FjeSB1c2Vyc3BhY2UgZG9lcyB0 aGF0IGEgX2xvdF8gKCpjb3VnaCogWApzZXJ2ZXIgKmNvdWdoKiksIGlmIHRoZSBvdmVyaGVhZCBp cyBzZXZlcmUgdGhpcyBtaWdodCBiZSBhIHByb2JsZW0gYW5kCm5lZWRzIHRvIGJlIGZpeGVkIGJl Zm9yZSBtZXJnaW5nLgoKLURhbmllbAoKPiAKPiBUaGFua3MKPiBHYXJ5Cj4gCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBTaGFybWEsIFNoYXNoYW5rIAo+IFNlbnQ6IEZyaWRh eSwgT2N0b2JlciAxNiwgMjAxNSAzOjI5IFBNCj4gVG86IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmc7IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGVtaWwubC52ZWxpa292 QGdtYWlsLmNvbTsgUm9wZXIsIE1hdHRoZXcgRDsgQnJhZGZvcmQsIFJvYmVydDsgQmlzaCwgSmlt Cj4gQ2M6IE1hdGhlc29uLCBBbm5pZSBKOyBrYXVzYWxtYWxsYWRpQGdtYWlsLmNvbTsgS3VtYXIs IEtpcmFuIFM7IFNtaXRoLCBHYXJ5IEs7IFZldHRlciwgRGFuaWVsOyBNdWtoZXJqZWUsIEluZHJh bmlsOyBQYWxsZXRpLCBBdmluYXNoIFJlZGR5OyBTaGFybWEsIFNoYXNoYW5rCj4gU3ViamVjdDog W1BBVENIIHY2IDE0LzIzXSBkcm0vaTkxNTogQ0hWOiBQaXBlIGxldmVsIGRlZ2FtbWEgY29ycmVj dGlvbgo+IAo+IENIVi9CU1cgc3VwcG9ydHMgRGVnYW1tYSBjb2xvciBjb3JyZWN0aW9uLCB3aGlj aCBsaW5lYXJpemVzIGFsbCB0aGUgbm9uLWxpbmVhciBjb2xvciB2YWx1ZXMuIFRoaXMgd2lsbCBi ZSBhcHBsaWVkIGJlZm9yZSBDb2xvciBUcmFuc2Zvcm1hdGlvbi4KPiAKPiBUaGlzIHBhdGNoIGRv ZXMgdGhlIGZvbGxvd2luZzoKPiAxLiBBdHRhY2ggZGVHYW1tYSBwcm9wZXJ0eSB0byBDUlRDCj4g Mi4gQWRkIHRoZSBjb3JlIGZ1bmN0aW9uIHRvIHByb2dyYW0gRGVHYW1tYSBjb3JyZWN0aW9uIHZh bHVlcyBmb3IKPiAgICBDSFYvQlNXIHBsYXRmb3JtCj4gMi4gQWRkIERlR2FtbWEgY29ycmVjdGlv biBtYWNyb3MvZGVmaW5lcwo+IAo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hh c2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBLYXVzYWwgTWFsbGFkaSA8 a2F1c2FsbWFsbGFkaUBnbWFpbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgICAgICAgICB8ICA2ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yX21hbmFnZXIuYyB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5oIHwgIDUgKysKPiAgMyBmaWxl cyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBp bmRleCA0NWRkZDg0Li4xZTQ2NTYyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAg LTgxNjAsNCArODE2MCwxMCBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsgICNkZWZpbmUg X1BJUEVfR0FNTUFfQkFTRShwaXBlKSBcCj4gIAkoX1BJUEUzKHBpcGUsIFBJUEVBX0NHTV9HQU1N QSwgUElQRUJfQ0dNX0dBTU1BLCBQSVBFQ19DR01fR0FNTUEpKQo+ICAKPiArI2RlZmluZSBQSVBF QV9DR01fREVHQU1NQSAgICAgICAgICAgICAgICAgICAgICAoVkxWX0RJU1BMQVlfQkFTRSArIDB4 NjYwMDApCj4gKyNkZWZpbmUgUElQRUJfQ0dNX0RFR0FNTUEgICAgICAgICAgICAgICAgICAgICAg KFZMVl9ESVNQTEFZX0JBU0UgKyAweDY4MDAwKQo+ICsjZGVmaW5lIFBJUEVDX0NHTV9ERUdBTU1B ICAgICAgICAgICAgICAgICAgICAgIChWTFZfRElTUExBWV9CQVNFICsgMHg2QTAwMCkKPiArI2Rl ZmluZSBfUElQRV9ERUdBTU1BX0JBU0UocGlwZSkgXAo+ICsJKF9QSVBFMyhwaXBlLCBQSVBFQV9D R01fREVHQU1NQSwgUElQRUJfQ0dNX0RFR0FNTUEsIAo+ICtQSVBFQ19DR01fREVHQU1NQSkpCj4g Kwo+ICAjZW5kaWYgLyogX0k5MTVfUkVHX0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2NvbG9yX21hbmFnZXIuYwo+IGluZGV4IGFjYjk2NDcuLjFiYmFkNzkgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFuYWdlci5jCj4gQEAgLTI3LDYgKzI3LDky IEBACj4gIAo+ICAjaW5jbHVkZSAiaW50ZWxfY29sb3JfbWFuYWdlci5oIgo+ICAKPiArc3RhdGlj IGludCBjaHZfc2V0X2RlZ2FtbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCXN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqYmxvYiwgc3RydWN0IGRybV9jcnRjICpjcnRjKSB7Cj4gKwl1MTYg cmVkX2ZyYWN0LCBncmVlbl9mcmFjdCwgYmx1ZV9mcmFjdDsKPiArCXUzMiByZWQsIGdyZWVuLCBi bHVlOwo+ICsJdTMyIG51bV9zYW1wbGVzOwo+ICsJdTMyIHdvcmQgPSAwOwo+ICsJdTMyIGNvdW50 LCBjZ21fY29udHJvbF9yZWcsIGNnbV9kZWdhbW1hX3JlZzsKPiArCWVudW0gcGlwZSBwaXBlOwo+ ICsJc3RydWN0IGRybV9wYWxldHRlICpkZWdhbW1hX2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9yMzJn MzJiMzIgKmNvcnJlY3Rpb25fdmFsdWVzID0gTlVMTDsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqc3RhdGUgPSBjcnRjLT5zdGF0ZTsKPiArCj4gKwlpZiAoV0FSTl9PTighYmxvYikpCj4gKwkJ cmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJZGVnYW1tYV9kYXRhID0gKHN0cnVjdCBkcm1fcGFsZXR0 ZSAqKWJsb2ItPmRhdGE7Cj4gKwlwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKPiAr CW51bV9zYW1wbGVzID0gYmxvYi0+bGVuZ3RoIC8gc2l6ZW9mKHN0cnVjdCBkcm1fcjMyZzMyYjMy KTsKPiArCj4gKwlzd2l0Y2ggKG51bV9zYW1wbGVzKSB7Cj4gKwljYXNlIEdBTU1BX0RJU0FCTEVf VkFMUzoKPiArCQkvKiBEaXNhYmxlIERlR2FtbWEgZnVuY3Rpb25hbGl0eSBvbiBQaXBlIC0gQ0dN IEJsb2NrICovCj4gKwkJY2dtX2NvbnRyb2xfcmVnID0gSTkxNV9SRUFEKF9QSVBFX0NHTV9DT05U Uk9MKHBpcGUpKTsKPiArCQljZ21fY29udHJvbF9yZWcgJj0gfkNHTV9ERUdBTU1BX0VOOwo+ICsJ CXN0YXRlLT5wYWxldHRlX2JlZm9yZV9jdG1fYmxvYiA9IE5VTEw7Cj4gKwo+ICsJCUk5MTVfV1JJ VEUoX1BJUEVfQ0dNX0NPTlRST0wocGlwZSksIGNnbV9jb250cm9sX3JlZyk7Cj4gKwkJRFJNX0RF QlVHX0RSSVZFUigiRGVHYW1tYSBkaXNhYmxlZCBvbiBQaXBlICVjXG4iLAo+ICsJCQkJcGlwZV9u YW1lKHBpcGUpKTsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIENIVl9ERUdBTU1BX01BWF9WQUxT Ogo+ICsJCWNnbV9kZWdhbW1hX3JlZyA9IF9QSVBFX0RFR0FNTUFfQkFTRShwaXBlKTsKPiArCQlj b3VudCA9IDA7Cj4gKwkJY29ycmVjdGlvbl92YWx1ZXMgPSAoc3RydWN0IGRybV9yMzJnMzJiMzIg KikmZGVnYW1tYV9kYXRhLT5sdXQ7Cj4gKwkJd2hpbGUgKGNvdW50IDwgQ0hWX0RFR0FNTUFfTUFY X1ZBTFMpIHsKPiArCQkJYmx1ZSA9IGNvcnJlY3Rpb25fdmFsdWVzW2NvdW50XS5iMzI7Cj4gKwkJ CWdyZWVuID0gY29ycmVjdGlvbl92YWx1ZXNbY291bnRdLmczMjsKPiArCQkJcmVkID0gY29ycmVj dGlvbl92YWx1ZXNbY291bnRdLnIzMjsKPiArCj4gKwkJCWlmIChibHVlID4gQ0hWX01BWF9HQU1N QSkKPiArCQkJCWJsdWUgPSBDSFZfTUFYX0dBTU1BOwo+ICsKPiArCQkJaWYgKGdyZWVuID4gQ0hW X01BWF9HQU1NQSkKPiArCQkJCWdyZWVuID0gQ0hWX01BWF9HQU1NQTsKPiArCj4gKwkJCWlmIChy ZWQgPiBDSFZfTUFYX0dBTU1BKQo+ICsJCQkJcmVkID0gQ0hWX01BWF9HQU1NQTsKPiArCj4gKwkJ CWJsdWVfZnJhY3QgPSBHRVRfQklUUyhibHVlLCA4LCAxNCk7Cj4gKwkJCWdyZWVuX2ZyYWN0ID0g R0VUX0JJVFMoZ3JlZW4sIDgsIDE0KTsKPiArCQkJcmVkX2ZyYWN0ID0gR0VUX0JJVFMocmVkLCA4 LCAxNCk7Cj4gKwo+ICsJCQkvKiBHcmVlbiAoMjk6MTYpIGFuZCBCbHVlICgxMzowKSBpbiBEV09S RDEgKi8KPiArCQkJU0VUX0JJVFMod29yZCwgZ3JlZW5fZnJhY3QsIDE2LCAxNCk7Cj4gKwkJCVNF VF9CSVRTKHdvcmQsIGdyZWVuX2ZyYWN0LCAwLCAxNCk7Cj4gKwkJCUk5MTVfV1JJVEUoY2dtX2Rl Z2FtbWFfcmVnLCB3b3JkKTsKPiArCQkJY2dtX2RlZ2FtbWFfcmVnICs9IDQ7Cj4gKwo+ICsJCQkv KiBSZWQgKDEzOjApIHRvIGJlIHdyaXR0ZW4gdG8gRFdPUkQyICovCj4gKwkJCXdvcmQgPSByZWRf ZnJhY3Q7Cj4gKwkJCUk5MTVfV1JJVEUoY2dtX2RlZ2FtbWFfcmVnLCB3b3JkKTsKPiArCQkJY2dt X2RlZ2FtbWFfcmVnICs9IDQ7Cj4gKwkJCWNvdW50Kys7Cj4gKwkJfQo+ICsKPiArCQlEUk1fREVC VUdfRFJJVkVSKCJEZUdhbW1hIExVVCBsb2FkZWQgZm9yIFBpcGUgJWNcbiIsCj4gKwkJCQlwaXBl X25hbWUocGlwZSkpOwo+ICsKPiArCQkvKiBFbmFibGUgRGVHYW1tYSBvbiBQaXBlICovCj4gKwkJ STkxNV9XUklURShfUElQRV9DR01fQ09OVFJPTChwaXBlKSwKPiArCQkJSTkxNV9SRUFEKF9QSVBF X0NHTV9DT05UUk9MKHBpcGUpKSB8IENHTV9ERUdBTU1BX0VOKTsKPiArCj4gKwkJRFJNX0RFQlVH X0RSSVZFUigiRGVHYW1tYSBjb3JyZWN0aW9uIGVuYWJsZWQgb24gUGlwZSAlY1xuIiwKPiArCQkJ CXBpcGVfbmFtZShwaXBlKSk7Cj4gKwkJYnJlYWs7Cj4gKwo+ICsJZGVmYXVsdDoKPiArCQlEUk1f RVJST1IoIkludmFsaWQgbnVtYmVyIG9mIHNhbXBsZXMgZm9yIERlR2FtbWEgTFVUXG4iKTsKPiAr CQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMg aW50IGNodl9zZXRfZ2FtbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wcm9w ZXJ0eV9ibG9iICpibG9iLAo+ICAJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+IEBAIC0x NTUsNCArMjQxLDEwIEBAIHZvaWQgaW50ZWxfYXR0YWNoX2NvbG9yX3Byb3BlcnRpZXNfdG9fY3J0 YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCURSTV9ERUJVR19EUklWRVIoImdhbW1hIHBy b3BlcnR5IGF0dGFjaGVkIHRvIENSVENcbiIpOwo+ICAJfQo+ICAKPiArCS8qIERlZ2FtbWEgY29y cmVjdGlvbiAqLwo+ICsJaWYgKGNvbmZpZy0+Y21fcGFsZXR0ZV9iZWZvcmVfY3RtX3Byb3BlcnR5 KSB7Cj4gKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkobW9kZV9vYmosCj4gKwkJCWNvbmZp Zy0+Y21fcGFsZXR0ZV9iZWZvcmVfY3RtX3Byb3BlcnR5LCAwKTsKPiArCQlEUk1fREVCVUdfRFJJ VkVSKCJkZWdhbW1hIHByb3BlcnR5IGF0dGFjaGVkIHRvIENSVENcbiIpOwo+ICsJfQo+ICB9Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yX21hbmFnZXIuaAo+IGluZGV4IGRlNzA2 ZDkuLjc3YTIxMTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29s b3JfbWFuYWdlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3JfbWFu YWdlci5oCj4gQEAgLTYzLDUgKzYzLDEwIEBACj4gICNkZWZpbmUgQ0hWX0dBTU1BX1NISUZUX0dS RUVOICAgICAgICAgICAgICAgICAgMTYKPiAgI2RlZmluZSBDSFZfTUFYX0dBTU1BICAgICAgICAg ICAgICAgICAgICAgICAgICAoKDEgPDwgMjQpIC0gMSkKPiAgCj4gKy8qIERlZ2FtbWEgb24gQ0hW ICovCj4gKyNkZWZpbmUgQ0hWX0RFR0FNTUFfTVNCX1NISUZUICAgICAgICAgICAgICAgICAgMgo+ ICsjZGVmaW5lIENIVl9ERUdBTU1BX0dSRUVOX1NISUZUICAgICAgICAgICAgICAgIDE2Cj4gKwo+ ICAvKiBDSFYgQ0dNIEJsb2NrICovCj4gICNkZWZpbmUgQ0dNX0dBTU1BX0VOICAgICAgICAgICAg ICAgICAgICAgICAgICAgKDEgPDwgMikKPiArI2RlZmluZSBDR01fREVHQU1NQV9FTiAgICAgICAg ICAgICAgICAgICAgICAgICAoMSA8PCAwKQo+IC0tCj4gMS45LjEKPiAKPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiBJbnRlbCBDb3Jwb3JhdGlvbiAoVUspIExpbWl0ZWQKPiBSZWdpc3RlcmVkIE5vLiAxMTM0OTQ1 IChFbmdsYW5kKQo+IFJlZ2lzdGVyZWQgT2ZmaWNlOiBQaXBlcnMgV2F5LCBTd2luZG9uIFNOMyAx UkoKPiBWQVQgTm86IDg2MCAyMTczIDQ3Cj4gCj4gVGhpcyBlLW1haWwgYW5kIGFueSBhdHRhY2ht ZW50cyBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgbWF0ZXJpYWwgZm9yCj4gdGhlIHNvbGUgdXNl IG9mIHRoZSBpbnRlbmRlZCByZWNpcGllbnQocykuIEFueSByZXZpZXcgb3IgZGlzdHJpYnV0aW9u Cj4gYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBp bnRlbmRlZAo+IHJlY2lwaWVudCwgcGxlYXNlIGNvbnRhY3QgdGhlIHNlbmRlciBhbmQgZGVsZXRl IGFsbCBjb3BpZXMuCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=