From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH v2 6/6] drm/i915: Add a cursor hack to allow converting legacy page flip to atomic, v3. Date: Wed, 14 Dec 2016 08:49:02 +0530 Message-ID: References: <1481204729-9058-1-git-send-email-maarten.lankhorst@linux.intel.com> <1481204729-9058-7-git-send-email-maarten.lankhorst@linux.intel.com> <8f0817c1-e0b1-ffe5-1eb2-a2e76ac66396@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <8f0817c1-e0b1-ffe5-1eb2-a2e76ac66396@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , Matthew Auld Cc: Intel Graphics Development , ML dri-devel List-Id: dri-devel@lists.freedesktop.org CgpPbiAxMi8xMy8yMDE2IDA3OjIyIFBNLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiBPcCAx My0xMi0xNiBvbSAxNDowMSBzY2hyZWVmIEFyY2hpdCBUYW5lamE6Cj4+IEhpLAo+Pgo+PiBPbiAx Mi8xMi8yMDE2IDQ6MDQgUE0sIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+Pj4gRG8gc29tZXRo aW5nIHNpbWlsYXIgdG8gdmM0LCBvbmx5IGFsbG93IHVwZGF0aW5nIHRoZSBjdXJzb3Igc3RhdGUK Pj4+IGluLXBsYWNlIHRocm91Z2ggYSBmYXN0cGF0aCB3aGVuIHRoZSB3YXRlcm1hcmtzIGFyZSB1 bmFmZmVjdGVkLiBUaGlzCj4+PiB3aWxsIGFsbG93IGN1cnNvciBtb3ZlbWVudCB0byBiZSBzbW9v dGgsIGJ1dCBjaGFuZ2luZyBjdXJzb3Igc2l6ZSBvcgo+Pj4gc2hvd2luZy9oaWRpbmcgY3Vyc29y IHdpbGwgc3RpbGwgZmFsbCBiYWNrIHNvIHdhdGVybWFya3MgY2FuIGJlIHVwZGF0ZWQuCj4+Pgo+ Pj4gT25seSBtb3ZpbmcgYW5kIGNoYW5naW5nIGZiIGlzIGFsbG93ZWQuCj4+Cj4+IEkgd2FzIGlt cGxlbWVudGluZyBzb21ldGhpbmcgc2ltaWxhciBmb3IgbXNtIGttcy4gSSBoYXZlIGEgY29tbWVu dC9xdWVyeQo+PiBiZWxvdy4KPj4KPj4+Cj4+PiBDaGFuZ2VzIHNpbmNlIHYxOgo+Pj4gLSBTZXQg cGFnZSBmbGlwIHRvIGFsd2F5c191bnVzZWQgZm9yIHRyeWJvdC4KPj4+IC0gQ29weSBmZW5jZSBj b3JyZWN0bHksIGlnbm9yZSBwbGFuZV9zdGF0ZS0+c3RhdGUsIHNob3VsZCBiZSBOVUxMLgo+Pj4g LSBDaGVjayBjcnRjX3N0YXRlIGZvciAhYWN0aXZlIGFuZCBtb2Rlc2V0LCBnbyB0byBzbG93cGF0 aCBpZiB0aGUgY2FzZS4KPj4+IENoYW5nZXMgc2luY2UgdjI6Cj4+PiAtIE1ha2UgZXJyb3IgaGFu ZGxpbmcgd29yayBjb3JyZWN0bHkuIChNYXR0aGV3IEF1bGQpCj4+Pgo+Pj4gU2lnbmVkLW9mZi1i eTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K Pj4+IC0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIHwg IDQ3ICsrKysrKystLS0tCj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j ICAgICAgfCAxMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4+PiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgIDIgKwo+Pj4gIDMgZmlsZXMgY2hh bmdlZCwgMTYzIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4+PiBpbmRleCBkYmU5ZmI0MWFlNTMu LjYwZDc1Y2U4YTk4OSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pY19wbGFuZS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWNfcGxhbmUuYwo+Pj4gQEAgLTEwMywzNiArMTAzLDI0IEBAIGludGVsX3BsYW5lX2Rlc3Ryb3lf c3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+PiAgICAgIGRybV9hdG9taWNfaGVscGVy X3BsYW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUsIHN0YXRlKTsKPj4+ICB9Cj4+Pgo+Pj4gLXN0YXRp YyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ Pj4gLSAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4+ PiAraW50IGludGVsX3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICppbnRlbF9zdGF0ZSkKPj4+ICB7Cj4+PiArICAgIHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lID0gaW50ZWxfc3RhdGUtPmJhc2UucGxhbmU7Cj4+PiAgICAgIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmRldik7Cj4+PiAtICAg IHN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5jcnRjOwo+Pj4gLSAgICBzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPj4+IC0gICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7Cj4+PiArICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gJmludGVs X3N0YXRlLT5iYXNlOwo+Pj4gICAgICBzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0g dG9faW50ZWxfcGxhbmUocGxhbmUpOwo+Pj4gLSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KmludGVsX3N0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoc3RhdGUpOwo+Pj4gLSAgICBzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmRybV9jcnRjX3N0YXRlOwo+Pj4gICAgICBpbnQgcmV0Owo+Pj4K Pj4+IC0gICAgY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPnN0YXRlLT5jcnRjOwo+Pj4gLSAg ICBpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPj4+IC0KPj4+ICAgICAgLyoKPj4+ ICAgICAgICogQm90aCBjcnRjIGFuZCBwbGFuZS0+Y3J0YyBjb3VsZCBiZSBOVUxMIGlmIHdlJ3Jl IHVwZGF0aW5nIGEKPj4+ICAgICAgICogcHJvcGVydHkgd2hpbGUgdGhlIHBsYW5lIGlzIGRpc2Fi bGVkLiAgV2UgZG9uJ3QgYWN0dWFsbHkgaGF2ZQo+Pj4gICAgICAgKiBhbnl0aGluZyBkcml2ZXIt c3BlY2lmaWMgd2UgbmVlZCB0byB0ZXN0IGluIHRoYXQgY2FzZSwgc28KPj4+ICAgICAgICoganVz dCByZXR1cm4gc3VjY2Vzcy4KPj4+ICAgICAgICovCj4+PiAtICAgIGlmICghY3J0YykKPj4+ICsg ICAgaWYgKCFpbnRlbF9zdGF0ZS0+YmFzZS5jcnRjICYmICFwbGFuZS0+c3RhdGUtPmNydGMpCj4+ PiAgICAgICAgICByZXR1cm4gMDsKPj4+Cj4+PiAtICAgIGRybV9jcnRjX3N0YXRlID0gZHJtX2F0 b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZS0+c3RhdGUsIGNydGMpOwo+Pj4gLSAg ICBpZiAoV0FSTl9PTighZHJtX2NydGNfc3RhdGUpKQo+Pj4gLSAgICAgICAgcmV0dXJuIC1FSU5W QUw7Cj4+PiAtCj4+PiAtICAgIGNydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGRybV9j cnRjX3N0YXRlKTsKPj4+IC0KPj4+ICAgICAgLyogQ2xpcCBhbGwgcGxhbmVzIHRvIENSVEMgc2l6 ZSwgb3IgMHgwIGlmIENSVEMgaXMgZGlzYWJsZWQgKi8KPj4+ICAgICAgaW50ZWxfc3RhdGUtPmNs aXAueDEgPSAwOwo+Pj4gICAgICBpbnRlbF9zdGF0ZS0+Y2xpcC55MSA9IDA7Cj4+PiBAQCAtMTg0 LDYgKzE3MiwzMSBAQCBzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPj4+ICAgICAgcmV0dXJuIGludGVsX3BsYW5lX2F0b21pY19jYWxj X2NoYW5nZXMoJmNydGNfc3RhdGUtPmJhc2UsIHN0YXRlKTsKPj4+ICB9Cj4+Pgo+Pj4gK3N0YXRp YyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ Pj4gKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4+ PiArewo+Pj4gKyAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+Y3J0YzsKPj4+ICsg ICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpkcm1fY3J0Y19zdGF0ZTsKPj4+ICsKPj4+ICsgICAg Y3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPnN0YXRlLT5jcnRjOwo+Pj4gKwo+Pj4gKyAgICAv Kgo+Pj4gKyAgICAgKiBCb3RoIGNydGMgYW5kIHBsYW5lLT5jcnRjIGNvdWxkIGJlIE5VTEwgaWYg d2UncmUgdXBkYXRpbmcgYQo+Pj4gKyAgICAgKiBwcm9wZXJ0eSB3aGlsZSB0aGUgcGxhbmUgaXMg ZGlzYWJsZWQuICBXZSBkb24ndCBhY3R1YWxseSBoYXZlCj4+PiArICAgICAqIGFueXRoaW5nIGRy aXZlci1zcGVjaWZpYyB3ZSBuZWVkIHRvIHRlc3QgaW4gdGhhdCBjYXNlLCBzbwo+Pj4gKyAgICAg KiBqdXN0IHJldHVybiBzdWNjZXNzLgo+Pj4gKyAgICAgKi8KPj4+ICsgICAgaWYgKCFjcnRjKQo+ Pj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+PiArCj4+PiArICAgIGRybV9jcnRjX3N0YXRlID0gZHJt X2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZS0+c3RhdGUsIGNydGMpOwo+Pj4g KyAgICBpZiAoV0FSTl9PTighZHJtX2NydGNfc3RhdGUpKQo+Pj4gKyAgICAgICAgcmV0dXJuIC1F SU5WQUw7Cj4+PiArCj4+PiArICAgIHJldHVybiBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0 aF9zdGF0ZSh0b19pbnRlbF9jcnRjX3N0YXRlKGRybV9jcnRjX3N0YXRlKSwKPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICB0b19pbnRlbF9wbGFuZV9zdGF0ZShzdGF0ZSkpOwo+Pj4gK30K Pj4+ICsKPj4+ICBzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpvbGRfc3RhdGUpCj4+PiAgewo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+Pj4gaW5kZXggOWVhZjFlNWJkYWU5Li41NTY4ZWNhYzJlZGMgMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4gQEAgLTE1MDI4LDYgKzE1MDI4LDEz NiBAQCBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1bmNzID0gewo+ Pj4gICAgICAuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBpbnRlbF9wbGFuZV9kZXN0cm95X3N0YXRl LAo+Pj4gIH07Cj4+Pgo+Pj4gK3N0YXRpYyBpbnQKPj4+ICtpbnRlbF9sZWdhY3lfY3Vyc29yX3Vw ZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4+PiArICAgICAgICAgICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCj4+PiArICAgICAgICAgICAgICAgaW50IGNydGNfeCwgaW50IGNydGNfeSwKPj4+ICsg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAo+ Pj4gKyAgICAgICAgICAgICAgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKPj4+ICsg ICAgICAgICAgICAgICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCj4+PiArewo+Pj4g KyAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRl dik7Cj4+PiArICAgIGludCByZXQ7Cj4+PiArICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9s ZF9wbGFuZV9zdGF0ZSwgKm5ld19wbGFuZV9zdGF0ZTsKPj4+ICsgICAgc3RydWN0IGludGVsX3Bs YW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPj4+ICsgICAgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiOwo+Pj4gKyAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUgPSBjcnRjLT5zdGF0ZTsKPj4+ICsKPj4+ICsgICAgLyoKPj4+ICsgICAgICog V2hlbiBjcnRjIGlzIGluYWN0aXZlIG9yIHRoZXJlIGlzIGEgbW9kZXNldCBwZW5kaW5nLAo+Pj4g KyAgICAgKiB3YWl0IGZvciBpdCB0byBjb21wbGV0ZSBpbiB0aGUgc2xvd3BhdGgKPj4+ICsgICAg ICovCj4+PiArICAgIGlmICghY3J0Y19zdGF0ZS0+YWN0aXZlIHx8IG5lZWRzX21vZGVzZXQoY3J0 Y19zdGF0ZSkgfHwKPj4+ICsgICAgICAgIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSkt PnVwZGF0ZV9waXBlKQo+Pj4gKyAgICAgICAgZ290byBzbG93Owo+Pj4gKwo+Pj4gKyAgICBvbGRf cGxhbmVfc3RhdGUgPSBwbGFuZS0+c3RhdGU7Cj4+PiArCj4+PiArICAgIC8qCj4+PiArICAgICAq IElmIGFueSBwYXJhbWV0ZXJzIGNoYW5nZSB0aGF0IG1heSBhZmZlY3Qgd2F0ZXJtYXJrcywKPj4+ ICsgICAgICogdGFrZSB0aGUgc2xvd3BhdGguIE9ubHkgY2hhbmdpbmcgZmIgb3IgcG9zaXRpb24g c2hvdWxkIGJlCj4+PiArICAgICAqIGluIHRoZSBmYXN0cGF0aC4KPj4+ICsgICAgICovCj4+PiAr ICAgIGlmIChvbGRfcGxhbmVfc3RhdGUtPmNydGMgIT0gY3J0YyB8fAo+Pj4gKyAgICAgICAgb2xk X3BsYW5lX3N0YXRlLT5zcmNfdyAhPSBzcmNfdyB8fAo+Pj4gKyAgICAgICAgb2xkX3BsYW5lX3N0 YXRlLT5zcmNfaCAhPSBzcmNfaCB8fAo+Pj4gKyAgICAgICAgb2xkX3BsYW5lX3N0YXRlLT5jcnRj X3cgIT0gY3J0Y193IHx8Cj4+PiArICAgICAgICBvbGRfcGxhbmVfc3RhdGUtPmNydGNfaCAhPSBj cnRjX2ggfHwKPj4+ICsgICAgICAgICFvbGRfcGxhbmVfc3RhdGUtPnZpc2libGUgfHwKPj4+ICsg ICAgICAgIG9sZF9wbGFuZV9zdGF0ZS0+ZmItPm1vZGlmaWVyICE9IGZiLT5tb2RpZmllcikKPj4+ ICsgICAgICAgIGdvdG8gc2xvdzsKPj4+ICsKPj4+ICsgICAgbmV3X3BsYW5lX3N0YXRlID0gaW50 ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHBsYW5lKTsKPj4+ICsgICAgaWYgKCFuZXdfcGxhbmVf c3RhdGUpCj4+PiArICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4KPj4gQWJvdXQgY3JlYXRpbmcg YSBuZXcgcGxhbmUgc3RhdGUgaGVyZSBhbmQgc3dhcHBpbmcgaXQgbGF0ZXIsIEkgZ3Vlc3MKPj4g aXQncyBtb3JlIGZvciB0aGUgc2FrZSBvZiBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9z dGF0ZSgpIHRvIGdvCj4+IHRocm91Z2ggY2xlYW5seSwgcmlnaHQ/IFJhdGhlciB0aGFuIGRpcmVj dGx5IG1vZGlmeWluZyB0aGUgb2xkIHBsYW5lCj4+IHN0YXRlPwo+IGk5MTUga2VlcHMgc29tZSBk ZXJpdmVkIHN0YXRlIGluIGludGVsX3BsYW5lX3N0YXRlLCB3ZSBjb3B5IHRoZSBmdWxsIHN0YXRl IHRvIG1ha2Ugc3VyZSB0aGUgZnVsbCBkZXJpdmVkIHN0YXRlIGlzIHVwZGF0ZWQgYXMgd2VsbC4K Pgo+PiBJIGRpZG4ndCBzZWUgYW55dGhpbmcgZXF1aXZhbGVudCBpbiB2YzQncyBpbXBsZW1lbnRh dGlvbiBvZgo+PiB1cGRhdGVfcGxhbmUsIGhlbmNlIHdhcyB3b25kZXJpbmcgd2h5IGV4YWN0bHkg aXQgaXMgbmVlZGVkLgo+Pgo+PiBBbHNvLCBhYm91dCB1cGRhdGluZyBmYiBpbiB0aGUgZmFzdCBw YXRoLCBteSBhc3N1bXB0aW9uIHdhcwo+PiB0aGF0IGl0IHdhcyBvbmx5IGNydGNfeC95IHdhcyB0 aGUgdGhpbmcgbW9zdCBsaWtlbHkgdG8gYmUKPj4gY2hhbmdlZCByZWFsbHkgZmFzdC4gSGF2ZSB5 b3Ugc2VlbiB1c2UgY2FzZXMgd2hlcmUgdGhlIGZiCj4+IGNoYW5nZXMgYXQgYSBmYXN0ZXIgdGhh biB2c3luYyByYXRlPwo+IEl0IGRpZG4ndCBjb3N0IG11Y2ggZXh0cmEgZWZmb3J0IHRvIGltcGxl bWVudCBmYiBjaGFuZ2luZyB0b28gc2luY2UgdGhhdCBpcyBoYW5kbGVkIGluCj4gaW50ZWwncyB1 cGRhdGVfcGxhbmUgY2FsbGJhY2sgdG9vLiBUaGlzIGlzIHdoeSBJIGRpZCB0aGF0IGFzIHdlbGwu IEknbSBub3Qgc3VyZSBpdCdzIG5lZWRlZCBpbiBnZW5lcmFsLgo+IEFueSBjaGFuZ2VkIGZiIHN0 aWxsIGhhcyB0byBoYXZlIHRoZSBzYW1lIHNpemUgb3Igd2UgZ28gdG8gc2xvd3BhdGguCgpPa2F5 LCB0aGF0IG1ha2Ugc2Vuc2UuCgpUaGFua3MsCkFyY2hpdAoKPgo+IH5NYWFydGVuCj4KCi0tIApR dWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiBDb2RlIEF1cm9y YSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK