From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 4/8] drm/crtc: Add a generic infrastructure to fake VBLANK events Date: Mon, 2 Jul 2018 10:37:22 +0200 Message-ID: <20180702083722.GJ13978@phenom.ffwll.local> References: <20180629111722.20299-1-boris.brezillon@bootlin.com> <20180629111722.20299-5-boris.brezillon@bootlin.com> <20180702080252.GF13978@phenom.ffwll.local> <20180702101451.4382e38c@bbrezillon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 27F8A6E02C for ; Mon, 2 Jul 2018 08:37:27 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id b10-v6so2609621edi.2 for ; Mon, 02 Jul 2018 01:37:27 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180702101451.4382e38c@bbrezillon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon Cc: David Airlie , Liviu Dudau , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdWwgMDIsIDIwMTggYXQgMTA6MTQ6NTFBTSArMDIwMCwgQm9yaXMgQnJlemlsbG9u IHdyb3RlOgo+IE9uIE1vbiwgMiBKdWwgMjAxOCAxMDowMjo1MiArMDIwMAo+IERhbmllbCBWZXR0 ZXIgPGRhbmllbEBmZndsbC5jaD4gd3JvdGU6Cj4gCj4gPiBPbiBGcmksIEp1biAyOSwgMjAxOCBh dCAwMToxNzoxN1BNICswMjAwLCBCb3JpcyBCcmV6aWxsb24gd3JvdGU6Cj4gPiA+IEluIHNvbWUg Y2FzZXMgQ1JUQ3MgYXJlIGFjdGl2ZSBidXQgYXJlIG5vdCBhYmxlIHRvIGdlbmVyYXRpbmcgZXZl bnRzLCBhdAo+ID4gPiBsZWFzdCBub3QgYXQgZXZlcnkgZnJhbWUgYXQgaXQncyBleHBlY3RlZCB0 by4KPiA+ID4gVGhpcyBpcyB0eXBpY2FsbHkgdGhlIGNhc2Ugd2hlbiB0aGUgQ1JUQyBpcyBmZWVk aW5nIGEgd3JpdGViYWNrIGNvbm5lY3Rvcgo+ID4gPiB0aGF0IGhhcyBubyBqb2IgcXVldWVkLiBJ biB0aGlzIHNpdHVhdGlvbiB0aGUgQ1JUQyBpcyB1c3VhbGx5IHN0b3BwZWQKPiA+ID4gdW50aWwg YSBuZXcgam9iIGlzIHF1ZXVlZCwgYW5kIHRoaXMgY2FuIGxlYWQgdG8gdGltZW91dHMgd2hlbiBw YXJ0IG9mCj4gPiA+IHRoZSBwaXBlbGluZSBpcyB1cGRhdGVkIGJ1dCBubyBuZXcgam9icyBhcmUg cXVldWVkIHRvIHRoZSBhY3RpdmUKPiA+ID4gd3JpdGViYWNrIGNvbm5lY3Rvci4KPiA+ID4gCj4g PiA+IEluIG9yZGVyIHRvIHNvbHZlIHRoYXQsIHdlIGFkZCBhIC0+bm9fdmJsYW5rIGZsYWcgdG8g ZHJtX2NydGNfc3RhdGUKPiA+ID4gYW5kIGFzayB0aGUgQ1JUQyBkcml2ZXJzIHRvIHNldCBpdCB0 byB0cnVlIHdoZW4gdGhleSBrbm93IHRoZXkncmUgbm90Cj4gPiA+IGFibGUgdG8gZ2VuZXJhdGUg VkJMQU5LIGV2ZW50cy4gVGhlIGNvcmUgZHJtX2F0b21pY19oZWxwZXJfZmFrZV92YmxhbmsoKQo+ ID4gPiBoZWxwZXIgY2FuIHRoZW4gYmUgdXNlZCB0byBmYWtlIFZCTEFOS3MgYXQgY29tbWl0IHRp bWUuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBCb3JpcyBCcmV6aWxsb24gPGJvcmlzLmJy ZXppbGxvbkBib290bGluLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYyB8IDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgIHwgIDEgKwo+ID4g PiAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgfCAxNSArKysrKysrKysrKysr Kwo+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspCj4gPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gPiBpbmRleCA2OTA2M2JjZjIzMzQuLmNh NTg2OTkzYzJhMiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK PiA+ID4gQEAgLTIwNTEsNiArMjA1MSw0NiBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3dhaXRf Zm9yX2RlcGVuZGVuY2llcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ID4g PiAgfQo+ID4gPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9kZXBl bmRlbmNpZXMpOwo+ID4gPiAgCj4gPiA+ICsvKioKPiA+ID4gKyAqIGRybV9hdG9taWNfaGVscGVy X2Zha2VfdmJsYW5rIC0gZmFrZSBWQkxBTksgZXZlbnRzIGlmIG5lZWRlZAo+ID4gPiArICogQG9s ZF9zdGF0ZTogYXRvbWljIHN0YXRlIG9iamVjdCB3aXRoIG9sZCBzdGF0ZSBzdHJ1Y3R1cmVzCj4g PiA+ICsgKgo+ID4gPiArICogVGhpcyBmdW5jdGlvbiB3YWxrcyBhbGwgQ1JUQ3MgYW5kIGZha2Ug VkJMQU5LIGV2ZW50cyBvbiB0aG9zZSB3aXRoCj4gPiA+ICsgKiAmZHJtX2NydGNfc3RhdGUubm9f dmJsYW5rIHNldCB0byB0cnVlIGFuZCAmZHJtX2NydGNfc3RhdGUuZXZlbnQgIT0gTlVMTC4KPiA+ ID4gKyAqIFRoZSBwcmltYXJ5IHVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHdyaXRlYmFjayBjb25u ZWN0b3JzIHdvcmtpbmcgaW4gb25lc2hvdAo+ID4gPiArICogbW9kZSBhbmQgZmFraW5nIFZCTEFO SyBldmVudHMuIEluIHRoaXMgY2FzZSB0aGV5IG9ubHkgZmFrZSB0aGUgVkJMQU5LIGV2ZW50Cj4g PiA+ICsgKiB3aGVuIGEgam9iIGlzIHF1ZXVlZCwgYW5kIGFueSBjaGFuZ2UgdG8gdGhlIHBpcGVs aW5lIHRoYXQgZG9lcyBub3QgdG91Y2ggdGhlCj4gPiA+ICsgKiBjb25uZWN0b3IgaXMgbGVhZGlu ZyB0byB0aW1lb3V0cyB3aGVuIGNhbGxpbmcKPiA+ID4gKyAqIGRybV9hdG9taWNfaGVscGVyX3dh aXRfZm9yX3ZibGFua3MoKSBvcgo+ID4gPiArICogZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3Jf ZmxpcF9kb25lKCkuCj4gPiA+ICsgKgo+ID4gPiArICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBhdG9t aWMgaGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNvbW1pdHMsIHNlZQo+ID4gPiArICog ZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KCkgZm9yIGFuIG92ZXJ2aWV3Lgo+ID4gPiAr ICovCj4gPiA+ICt2b2lkIGRybV9hdG9taWNfaGVscGVyX2Zha2VfdmJsYW5rKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0YXRlOwo+ID4gPiArCXN0cnVjdCBk cm1fY3J0YyAqY3J0YzsKPiA+ID4gKwlpbnQgaTsKPiA+ID4gKwo+ID4gPiArCWZvcl9lYWNoX29s ZG5ld19jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCj4gPiA+ ICsJCQkJICAgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKPiA+ID4gKwkJdW5zaWduZWQgbG9uZyBm bGFnczsKPiA+ID4gKwo+ID4gPiArCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5ub192YmxhbmsgJiYg IW9sZF9jcnRjX3N0YXRlLT5ub192YmxhbmspICAKPiA+IAo+ID4gVWgsIHRoaXMgZXNzZW50aWFs bHkgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byByZXNldCBub192YmxhbmsuCj4gCj4gSSBkb24ndCB3 YW50IC0+bm9fdmJsYW5rIHRvIGJlIHJlc2V0IGJ5IHRoZSBjb3JlLiBJdCdzIHVwIHRvIHRoZSBD UlRDCj4gZHJpdmVyIHRvIGNsZWFyL3NldCBpdCB3aGVuIHNvbWV0aGluZyBjaGFuZ2VzIGluIHRo ZSBwaXBlbGluZS4KPiAKPiA+IEZvciBjb250cm9sCj4gPiBmbG93IHN0YXRlIGJpdHMgd2Ugb25s eSBjaGVjayB0aGUgbmV3IHN0YXRlIGZvciBpdCAoc2VlIGUuZy4gdGhlIHZhcmlvdXMKPiA+ICpf Y2hhbmdlZCBvciBwbGFuZV9iaXRzIG9yIHdoYXRldmVyKS4KPiAKPiBJIHRyaWVkIHdpdGggIW5l d19jcnRjX3N0YXRlLT5ub192Ymxhbmsgb25seSwgYnV0IHRoZW4gaXQgZG9lcyBub3QKPiBoYW5k bGUgdGhlIGNhc2Ugd2hlcmUgdGhlIENSVEMgYW5kIGNvbm5lY3RvciBhcmUgYmVpbmcgZGlzYWJs ZWQsIGFuZCBJCj4gZW5kIHVwIHdpdGggYSB0aW1lb3V0LgoKV2h5IHRoYXQ/IFlvdSBzaG91bGQg aGF2ZSBhIG5ld19jcnRjX3N0YXRlIGV2ZW4gd2hlbiB5b3UgZGlzYWJsZSB0aGUgY3J0YywKYW5k IHlvdSBjYW4gc2V0IHRoZSAtPm5vX3ZibGFuayBvbiB0aGF0IG9uZSB0b28uIFdpdGggeW91ciBj dXJyZW50IGNvZGUKaXQncyBlc3NlbnRpYWxseSBpbXBvc3NpYmxlIHRvIHJlc2V0IC0+bm9fdmJs YW5rLCBzaW5jZSBpdCB3aWxsIG9ubHkgaGF2ZQplZmZlY3QgZm9yIHRoZSBfbmV4dF8gYXRvbWlj IHVwZGF0ZSwgbm90IHRoZSBvbmUgeW91J3JlIGRvaW5nIHJpZ2h0IG5vdy4KVGhhdCBkb2Vzbid0 IG1ha2Ugc2Vuc2UuCgpFLmcuIHRyeSB0byBkbyB0aGUgc2FtZSBsb2dpYyBvZiBjaGVja2luZyBi b3RoIG9sZCZuZXcgc3RhdGUgZm9yIGUuZy4KbmVlZHNfbW9kZXNldCBhbmQgd2F0Y2ggaG93IGFs bCB0aGUgbG9naWMgdG90YWxseSBmYWxscyB0byBwaWVjZXMuCi1EYW5pZWwKCj4gCj4gPiAKPiA+ ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCXNwaW5fbG9ja19pcnFzYXZlKCZvbGRf c3RhdGUtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ID4gPiArCQlpZiAobmV3X2NydGNfc3Rh dGUtPmV2ZW50KSB7Cj4gPiA+ICsJCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLAo+ ID4gPiArCQkJCQkJICAgbmV3X2NydGNfc3RhdGUtPmV2ZW50KTsKPiA+ID4gKwkJCW5ld19jcnRj X3N0YXRlLT5ldmVudCA9IE5VTEw7Cj4gPiA+ICsJCX0KPiA+ID4gKwkJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmb2xkX3N0YXRlLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiA+ID4gKwl9Cj4g PiA+ICt9Cj4gPiA+ICtFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Zha2VfdmJsYW5r KTsKPiA+ID4gKwo+ID4gPiAgLyoqCj4gPiA+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf aHdfZG9uZSAtIHNldHVwIHBvc3NpYmxlIG5vbmJsb2NraW5nIGNvbW1pdAo+ID4gPiAgICogQG9s ZF9zdGF0ZTogYXRvbWljIHN0YXRlIG9iamVjdCB3aXRoIG9sZCBzdGF0ZSBzdHJ1Y3R1cmVzCj4g PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVk ZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ID4gPiBpbmRleCAyNmFhYmE1OGQ2Y2UuLjk5ZTJh NTI5N2M2OSAxMDA2NDQKPiA+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIu aAo+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gPiA+IEBAIC0x MDAsNiArMTAwLDcgQEAgaW50IF9fbXVzdF9jaGVjayBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0 YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ID4gIGludCBkcm1fYXRvbWlj X2hlbHBlcl9zZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4g PiAgCQkJCSAgIGJvb2wgbm9uYmxvY2spOwo+ID4gPiAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl93 YWl0X2Zvcl9kZXBlbmRlbmNpZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiA+ ID4gK3ZvaWQgZHJtX2F0b21pY19oZWxwZXJfZmFrZV92Ymxhbmsoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKTsKPiA+ID4gIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2Rv bmUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiA+ID4gIHZvaWQgZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0X2NsZWFudXBfZG9uZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpOwo+ID4gPiAgCj4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIv aW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ID4gPiBpbmRleCAyM2VkZGJjY2FiMTAuLjc0MzVkYzY2 YzA4YSAxMDA2NDQKPiA+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ID4gPiArKysg Yi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gPiA+IEBAIC04Nyw2ICs4NywyMCBAQCBzdHJ1Y3Qg ZHJtX3BsYW5lX2hlbHBlcl9mdW5jczsKPiA+ID4gICAqIEB6cG9zX2NoYW5nZWQ6IHpwb3MgdmFs dWVzIG9mIHBsYW5lcyBvbiB0aGlzIGNydGMgaGF2ZSBiZWVuIHVwZGF0ZWQKPiA+ID4gICAqIEBj b2xvcl9tZ210X2NoYW5nZWQ6IGNvbG9yIG1hbmFnZW1lbnQgcHJvcGVydGllcyBoYXZlIGNoYW5n ZWQgKGRlZ2FtbWEgb3IKPiA+ID4gICAqCWdhbW1hIExVVCBvciBDU0MgbWF0cml4KQo+ID4gPiAr ICogQG5vX3ZibGFuazogcmVmbGVjdHMgdGhlIGFiaWxpdHkgb2YgYSBDUlRDIHRvIHNlbmQgVkJM QU5LIGV2ZW50cy4gVGhpcyBzdGF0ZQo+ID4gPiArICoJdXN1YWxseSBkZXBlbmRzIG9uIHRoZSBw aXBlbGluZSBjb25maWd1cmF0aW9uLCBhbmQgdGhlIG1haW4gdXN1YWdlIGlzCj4gPiA+ICsgKglD UlRDcyBmZWVkaW5nIGEgd3JpdGViYWNrIGNvbm5lY3RvciBvcGVyYXRpbmcgaW4gb25lc2hvdCBt b2RlLiBJbiB0aGlzCj4gPiA+ICsgKgljYXNlIHRoZSBWQkxBTksgZXZlbnQgaXMgb25seSBnZW5l cmF0ZWQgd2hlbiBhIGpvYiBpcyBxdWV1ZWQgdG8gdGhlCj4gPiA+ICsgKgl3cml0ZWJhY2sgY29u bmVjdG9yLCBhbmQgd2Ugd2FudCB0aGUgY29yZSB0byBmYWtlIFZCTEFOSyBldmVudHMgd2hlbgo+ ID4gPiArICoJdGhpcyBwYXJ0IG9mIHRoZSBwaXBlbGluZSBoYXNuJ3QgY2hhbmdlZCBidXQgb3Ro ZXJzIGhhZCBvciB3aGVuIHRoZQo+ID4gPiArICoJQ1JUQyBhbmQgY29ubmVjdG9ycyBhcmUgZGlz YWJsZWQuICAKPiA+IAo+ID4gcy9hcmUgZGlzYWJsZWQvYXJlIGdldHRpbmcgZGlzYWJsZWQvCj4g PiAKPiA+IFlvdSdsbCBuZXZlciBnZXQgYSByZXF1ZXN0IGZvciBhbiBldmVudCB3aGVuIGl0J3Mg YWxyZWFkeSBvZmYuCj4gCj4gVGhhdCdzIHRydWUuCj4gCj4gPiAKPiA+ID4gKyAqCV9fZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoKSB3aWxsIHRoZSB2YWx1ZSBmcm9tIHRo ZQo+ID4gPiArICoJY3VycmVudCBzdGF0ZSwgdGhlIENSVEMgZHJpdmVyIGlzIHRoZW4gcmVzcG9u c2libGUgZm9yIHVwZGF0aW5nIHRoaXMKPiA+ID4gKyAqCWZpZWxkIHdoZW4gbmVlZGVkLiAgCj4g PiAKPiA+IE5vdCBwYXJzaW5nIHRoZSBhYm92ZSAuLi4gcHJvYmFibHkgbWlzc2luZyBhICIuLi4g d2lsbCBub3QgcmVzZXQgLi4uIgo+IAo+IEV4YWN0bHkuIFdpbGwgYWRkIHRoZSBtaXNzaW5nIHdv cmRzLgo+IAo+ID4gCj4gPiA+ICsgKglOb3RlIHRoYXQsIGV2ZW4gd2hlbiBub19ibGFuayBpcyBz ZXQgdG8gdHJ1ZSwgdGhlIENSVEMgZHJpdmVyIGNhbiBzdGlsbAo+ID4gPiArICoJc3RlYWwgdGhl ICZkcm1fY3J0Y19zdGF0ZS5ldmVudCBvYmplY3QgYW5kIHNlbmQgdGhlIGV2ZW50IG9uIGl0cyBv d24uCj4gPiA+ICsgKglUaGF0J3MgdXN1YWxseSB3aGF0IGhhcHBlbnMgd2hlbiBhIGpvYiBpcyBx dWV1ZWQgdG8gdGhlIHdyaXRlYmFjawo+ID4gPiArICoJY29ubmVjdG9yLiAgCj4gPiAKPiA+IFRo ZSBsYXN0IHNlbnRlbmNlIGlzIGNvbmZ1c2luZyBpbW8uIEp1c3QgZHJvcCBpdD8KPiAKPiBZZXMs IEkga25vdywgYnV0IGl0J3MgYWxzbyBpbXBvcnRhbnQgdG8gc3RhdGUgdGhhdCB0aGUgLT5ub19i bGFuayArCj4gZXZlbnQgPT0gTlVMTCBpcyBhIHZhbGlkIGNvbWJpbmF0aW9uLCBhbmQganVzdCBt ZWFucyB0aGF0IHRoZSBkcml2ZXIKPiBkZWNpZGVkIHRvIGdlbmVyYXRlIHRoZSBldmVudCAodGhh dCBoYXBwZW5zIHdoZW4gYSBuZXcgV0Igam9iIGlzCj4gcXVldWVkKS4KPiAKPiA+IAo+ID4gUGxl YXNlIHVzZSB0aGUgaW5saW5lIGNvbW1lbnQgc3R5bGUgZm9yIHN0cnVjdCBtZW1iZXJzLCBhbmQg dGhlbiBhbHNvCj4gPiBwb2xpc2ggdGhlIGZvcm1hdHRpbmcgYSBiaXQgKGUuZy4gcGFyYWdyYXBo IGJyZWFrcywgd2hpY2ggYXJlIG9ubHkKPiA+IHBvc3NpYmxlIHdpdGggdGhlIGlubGluZSBzdHls ZSkuCj4gCj4gSSBjb25zaWRlcmVkIHRoYXQsIGJ1dCB0aGUgb3RoZXIgZmllbGRzIHdlcmUgYWxy ZWFkeSBkb2N1bWVudGVkIGluIHRoZQo+IHNpbmdsZSBibG9jayBhYm92ZSB0aGUgc3RydWN0LCBz byBJIHRob3VnaHQga2VlcGluZyB0aGluZ3MgY29uc2lzdGVudAo+IHdhcyBiZXR0ZXIuIFNob3Vs ZCBJIGp1c3QgYWRkIHRoaXMgZmllbGQgZG9jIGlubGluZSBhbmQga2VlcCB0aGUgb3RoZXIKPiBv bmVzIHdoZXJlIHRoZXkgYXJlLCBvciBzaG91bGQgSSBhZGQgYSBwYXRjaCBtb3ZpbmcgYWxsIGRv Y3MgaW5saW5lPwo+IAo+ID4gCj4gPiBXaXRoIHRoZSBuaXRzIGFkZHJlc3NlZDoKPiA+IAo+ID4g UmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPiAK PiA+ID4gICAqIEBwbGFuZV9tYXNrOiBiaXRtYXNrIG9mICgxIDw8IGRybV9wbGFuZV9pbmRleChw bGFuZSkpIG9mIGF0dGFjaGVkIHBsYW5lcwo+ID4gPiAgICogQGNvbm5lY3Rvcl9tYXNrOiBiaXRt YXNrIG9mICgxIDw8IGRybV9jb25uZWN0b3JfaW5kZXgoY29ubmVjdG9yKSkgb2YgYXR0YWNoZWQg Y29ubmVjdG9ycwo+ID4gPiAgICogQGVuY29kZXJfbWFzazogYml0bWFzayBvZiAoMSA8PCBkcm1f ZW5jb2Rlcl9pbmRleChlbmNvZGVyKSkgb2YgYXR0YWNoZWQgZW5jb2RlcnMKPiA+ID4gQEAgLTEx OCw2ICsxMzIsNyBAQCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgewo+ID4gPiAgCWJvb2wgY29ubmVj dG9yc19jaGFuZ2VkIDogMTsKPiA+ID4gIAlib29sIHpwb3NfY2hhbmdlZCA6IDE7Cj4gPiA+ICAJ Ym9vbCBjb2xvcl9tZ210X2NoYW5nZWQgOiAxOwo+ID4gPiArCWJvb2wgbm9fdmJsYW5rIDogMTsK PiA+ID4gIAo+ID4gPiAgCS8qIGF0dGFjaGVkIHBsYW5lcyBiaXRtYXNrOgo+ID4gPiAgCSAqIFdB Uk5JTkc6IHRyYW5zaXRpb25hbCBoZWxwZXJzIGRvIG5vdCBtYWludGFpbiBwbGFuZV9tYXNrIHNv Cj4gPiA+IC0tIAo+ID4gPiAyLjE0LjEKPiA+ID4gICAKPiA+IAo+IAoKLS0gCkRhbmllbCBWZXR0 ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=