From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 01/25] drm/i915/fbc: wait for a vblank instead of 50ms when enabling Date: Tue, 26 Jan 2016 18:08:25 +0000 Message-ID: <1453831704.12148.43.camel@intel.com> References: <1453395393.22174.124.camel@intel.com> <1453406585-10233-1-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id EC2166E653 for ; Tue, 26 Jan 2016 10:08:26 -0800 (PST) In-Reply-To: Content-Language: en-US Content-ID: <00A98640FC63394CA26E7635CE2A482A@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" , "rodrigo.vivi@gmail.com" List-Id: intel-gfx@lists.freedesktop.org RW0gVGVyLCAyMDE2LTAxLTI2IMOgcyAxNzo0NCArMDAwMCwgUm9kcmlnbyBWaXZpIGVzY3JldmV1 Og0KPiANCj4gDQo+IE9uIFRodSwgSmFuIDIxLCAyMDE2IGF0IDEyOjAzIFBNIFBhdWxvIFphbm9u aSA8cGF1bG8uci56YW5vbmlAaW50ZWwuYw0KPiBvbT4gd3JvdGU6DQo+ID4gSW5zdGVhZCBvZiB3 YWl0aW5nIGZvciA1MG1zLCBqdXN0IHdhaXQgdW50aWwgdGhlIG5leHQgdmJsYW5rLCBzaW5jZQ0K PiA+IGl0J3MgdGhlIG1pbmltdW0gcmVxdWlyZW1lbnQuIFRoZSB3aG9sZSBpbmZyYXN0cnVjdHVy ZSBvZiBGQkMgaXMNCj4gPiBiYXNlZA0KPiA+IG9uIHZibGFua3MsIHNvIHdhaXRpbmcgZm9yIFgg dmJsYW5rcyBpbnN0ZWFkIG9mIFggbWlsbGlzZWNvbmRzDQo+ID4gc291bmRzDQo+ID4gbGlrZSB0 aGUgY29ycmVjdCB3YXkgdG8gZ28uIEJlc2lkZXMsIDUwbXMgbWF5IGJlIGxlc3MgdGhhbiBhIHZi bGFuaw0KPiA+IG9uDQo+ID4gc3VwZXIgc2xvdyBtb2RlcyB0aGF0IG1heSBvciBtYXkgbm90IGV4 aXN0Lg0KPiA+IA0KPiA+IFRoZXJlIGFyZSBzb21lIHNtYWxsIGltcHJvdmVtZW50cyBpbiBQQyBz dGF0ZSByZXNpZGVuY3kgKGR1ZSB0byB0aGUNCj4gPiBmYWN0IHRoYXQgd2UncmUgbm93IHVzaW5n IDE2bXMgZm9yIHRoZSBjb21tb24gbW9kZXMgaW5zdGVhZCBvZg0KPiA+IDUwbXMpLA0KPiA+IGJ1 dCB0aGUgYmlnZ2VzdCBhZHZhbnRhZ2UgaXMgc3RpbGwgdGhlIGNvcnJlY3RuZXNzIG9mIGJlaW5n DQo+ID4gdmJsYW5rLWJhc2VkIGluc3RlYWQgb2YgdGltZS1iYXNlZC4NCj4gPiANCj4gPiB2MjoN Cj4gPiDCoCAtIFJlYmFzZSBhZnRlciBjaGFuZ2luZyB0aGUgcGF0Y2ggb3JkZXIuDQo+ID4gwqAg LSBVcGRhdGUgdGhlIGNvbW1pdCBtZXNzYWdlLg0KPiA+IHYzOg0KPiA+IMKgIC0gRml4IGJvZ3Vz IHZibGFua19nZXQoKSBpbnN0ZWFkIG9mIHZibGFua19jb3VudCgpIChWaWxsZSkuDQo+ID4gwqAg LSBEb24ndCBmb3JnZXQgdG8gY2FsbCBkcm1fY3J0Y192Ymxhbmtfe2dldCxwdXR9IChDaHJpcywg VmlsbGUpDQo+ID4gwqAgLSBBZGp1c3QgdGhlIHBlcmZvcm1hbmNlIGRldGFpbHMgb24gdGhlIGNv bW1pdCBtZXNzYWdlLg0KPiA+IHY0Og0KPiA+IMKgIC0gRG9uJ3QgZ3JhYiB0aGUgRkJDIG11dGV4 IGp1c3QgdG8gZ3JhYiB0aGUgdmJsYW5rIChNYWFydGVuKQ0KPiA+IA0KPiA+IFNpZ25lZC1vZmYt Ynk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgIHzCoCAyICstDQo+ID4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyB8IDM5DQo+ID4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tDQo+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlv bnMoKyksIDExIGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oDQo+ID4gaW5kZXggMjA0NjYxZi4uZDhmMjFmMCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaA0KPiA+IEBAIC05MjEsOSArOTIxLDkgQEAgc3RydWN0IGk5MTVfZmJjIHsNCj4g PiANCj4gPiDCoCDCoCDCoCDCoCBzdHJ1Y3QgaW50ZWxfZmJjX3dvcmsgew0KPiA+IMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIGJvb2wgc2NoZWR1bGVkOw0KPiA+ICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoHUzMiBzY2hlZHVsZWRfdmJsYW5rOw0KPiA+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHN0 cnVjdCB3b3JrX3N0cnVjdCB3b3JrOw0KPiA+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiOw0KPiA+IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVuc2ln bmVkIGxvbmcgZW5hYmxlX2ppZmZpZXM7DQo+ID4gwqAgwqAgwqAgwqAgfSB3b3JrOw0KPiA+IA0K PiA+IMKgIMKgIMKgIMKgIGNvbnN0IGNoYXIgKm5vX2ZiY19yZWFzb247DQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jDQo+ID4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9mYmMuYw0KPiA+IGluZGV4IGExOTg4YTQuLjM5OTNiNDMgMTAwNjQ0DQo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiA+IEBAIC0zODEsNyArMzgxLDE3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0cnVjdA0KPiA+IHdvcmtfc3RydWN0ICpfX3dv cmspDQo+ID4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgY29udGFpbmVyX29mKF9fd29yaywgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUsDQo+ID4gZmJjLndvcmsud29yayk7DQo+ID4gwqAgwqAgwqAg wqAgc3RydWN0IGludGVsX2ZiY193b3JrICp3b3JrID0gJmRldl9wcml2LT5mYmMud29yazsNCj4g PiDCoCDCoCDCoCDCoCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0 YzsNCj4gPiAtwqAgwqAgwqAgwqBpbnQgZGVsYXlfbXMgPSA1MDsNCj4gPiArwqAgwqAgwqAgwqBz dHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2X3ByaXYtPmRldi0NCj4gPiA+dmJs YW5rW2NydGMtPnBpcGVdOw0KPiA+ICsNCj4gPiArwqAgwqAgwqAgwqBpZiAoZHJtX2NydGNfdmJs YW5rX2dldCgmY3J0Yy0+YmFzZSkpIHsNCj4gPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBEUk1f RVJST1IoInZibGFuayBub3QgYXZhaWxhYmxlIGZvciBGQkMgb24gcGlwZQ0KPiA+ICVjXG4iLA0K PiA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHBpcGVfbmFtZShjcnRj LT5waXBlKSk7DQo+ID4gKw0KPiA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoG11dGV4X2xvY2so JmRldl9wcml2LT5mYmMubG9jayk7DQo+ID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgd29yay0+ c2NoZWR1bGVkID0gZmFsc2U7DQo+IEkgY291bGRuJ3QgdW5kZXJzdGFuZCB0aGlzIGhlcmUuLi4g ZG9lc24ndCBsb29rIHJlbGF0ZWQgdG8NCj4gcy90aW1lL3ZibGFuay4uLg0KPiBjb3VsZCB5b3Ug cGxlYXNlIGV4cGxhaW4/DQoNClByZXZpb3VzbHkgd2Ugd2VyZSBqdXN0IGRlYWxpbmcgd2l0aCAi d2FpdCBhIGNlcnRhaW4gYW1vdW50IG9mDQp0aW1lL2ppZmZpZXMiLCBhbmQgZm9yIHRoYXQgd2Ug Y2FuIGp1c3QgY2FsbCB0aGUgZGVsYXkvc2xlZXAvd2FpdC9ldGMNCmNhbGxzIHdpdGhvdXQgbmVl ZGluZyBhbnkgZ2V0L3B1dCBjYWxscy4NCg0KTm93IHdlJ2xsIHdhaXQgZm9yIGEgY2VydGFpbiBu dW1iZXIgb2YgdmJsYW5rcywgYW5kIHdlIG5lZWQgdG8gaGF2ZSB0aGUNCnZibGFuayBpbnRlcnJ1 cHRzIGVuYWJsZWQgYmVmb3JlIHdlIGNhbiB3YWl0IGZvciB0aGVtLiBUaGF0J3Mgd2h5IHdlDQpo YXZlIHRoZSB2YmxhbmsgZ2V0L3B1dCBjYWxscy4gQW5kIHNpbmNlIGdldCgpIGNhbiBmYWlsLCB3 ZSBuZWVkIGFuDQplcnJvciBwYXRoLg0KDQpVbmRlciBub3JtYWwgRkJDIG9wZXJhdGlvbiwgZXZl cnkgdmJsYW5rIGdldC9wdXQgY2FsbCBzaG91bGQgc3VjY2VlZA0KYmVjYXVzZSB0aGUgcGlwZSdz IHN1cHBvc2VkIHRvIGJlIHJ1bm5pbmcuIMKgQnV0IGluIGNhc2Ugd2UgYWN0dWFsbHkNCmZhaWwg dG8gZ2V0IHZibGFua3MsIHdlIGp1c3QgZXhpdCBmcm9tIHRoZSB3b3JrIGZ1bmN0aW9uLiBUaGUg d2F5IHdlDQpzaWduYWwgInRoZSB3b3JrIGZ1bmN0aW9uIGlzIG5vdCBydW5uaW5nIiBpcyBieSBz ZXR0aW5nIHdvcmstPnNjaGVkdWxlZCANCnRvIGZhbHNlLg0KDQo+IA0KPiA+IMKgK8KgIMKgIMKg IMKgIMKgIMKgIMKgIMKgbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOw0KPiA+ICvC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoHJldHVybjsNCj4gPiArwqAgwqAgwqAgwqB9DQo+ID4gDQo+ ID4gwqByZXRyeToNCj4gPiDCoCDCoCDCoCDCoCAvKiBEZWxheSB0aGUgYWN0dWFsIGVuYWJsaW5n IHRvIGxldCBwYWdlZmxpcHBpbmcgY2Vhc2UgYW5kDQo+ID4gdGhlDQo+ID4gQEAgLTM5MCwxNCAr NDAwLDE2IEBAIHJldHJ5Og0KPiA+IMKgIMKgIMKgIMKgIMKgKiB2YmxhbmsgdG8gcGFzcyBhZnRl ciBkaXNhYmxpbmcgdGhlIEZCQyBiZWZvcmUgd2UgYXR0ZW1wdA0KPiA+IMKgIMKgIMKgIMKgIMKg KiB0byBtb2RpZnkgdGhlIGNvbnRyb2wgcmVnaXN0ZXJzLg0KPiA+IMKgIMKgIMKgIMKgIMKgKg0K PiA+IC3CoCDCoCDCoCDCoCAqIEEgbW9yZSBjb21wbGljYXRlZCBzb2x1dGlvbiB3b3VsZCBpbnZv bHZlIHRyYWNraW5nDQo+ID4gdmJsYW5rcw0KPiA+IC3CoCDCoCDCoCDCoCAqIGZvbGxvd2luZyB0 aGUgdGVybWluYXRpb24gb2YgdGhlIHBhZ2UtZmxpcHBpbmcgc2VxdWVuY2UNCj4gPiAtwqAgwqAg wqAgwqAgKiBhbmQgaW5kZWVkIHBlcmZvcm1pbmcgdGhlIGVuYWJsZSBhcyBhIGNvLXJvdXRpbmUg YW5kIG5vdA0KPiA+IC3CoCDCoCDCoCDCoCAqIHdhaXRpbmcgc3luY2hyb25vdXNseSB1cG9uIHRo ZSB2YmxhbmsuDQo+ID4gLcKgIMKgIMKgIMKgICoNCj4gPiDCoCDCoCDCoCDCoCDCoCogV2FGYmNX YWl0Rm9yVkJsYW5rQmVmb3JlRW5hYmxlOmlsayxzbmINCj4gaG0uLi4gaXMgaXQgc3RpbGwgdmFs aWQgZm9yIG5ld2VyIHBsYXRmb3JtcyBvciB3ZSBzaG91bGQgcHV0IGEgaWYgZ2VuDQo+IDw9NiBv biB0aGVzZSBjaGVja3M/DQoNCkkgdGVzdGVkIHRoaXMgb24gQkRXIHNvbWUgdGltZSBhZ28sIGFu ZCBpdCBzZWVtcyB3ZSBkb24ndCBhY3R1YWxseSBuZWVkDQp0aGUgdmJsYW5rIHdhaXQgYW55bW9y ZSAoYWx0aG91Z2ggSSBkaWRuJ3QgY2hlY2sgdGhlIGRvY3MgaWYgd2Ugc3RpbGwNCm5lZWQgdGhl IHdhaXQpLiBCdXQgSSB3YW50ZWQgdG8gY29udmVydCB0aGUgY29kZSB0byB1c2UgdmJsYW5rcyBi ZWZvcmUNCm9wdGltaXppbmcgaXQgbW9yZS4gQW5kIHRoZSByZXNpZGVuY3kgaW1wYWN0IHdvbid0 IGJlIGJpZy4NCg0KPiDCoA0KPiA+IMKgK8KgIMKgIMKgIMKgICoNCj4gPiArwqAgwqAgwqAgwqAg KiBJdCBpcyBhbHNvIHdvcnRoIG1lbnRpb25pbmcgdGhhdCBzaW5jZSB3b3JrLQ0KPiA+ID5zY2hl ZHVsZWRfdmJsYW5rIGNhbiBiZQ0KPiA+ICvCoCDCoCDCoCDCoCAqIHVwZGF0ZWQgbXVsdGlwbGUg dGltZXMgYnkgdGhlIG90aGVyIHRocmVhZHMsIGhpdHRpbmcgdGhlDQo+ID4gdGltZW91dCBpcw0K PiA+ICvCoCDCoCDCoCDCoCAqIG5vdCBhbiBlcnJvciBjb25kaXRpb24uIFdlJ2xsIGp1c3QgZW5k IHVwIGhpdHRpbmcgdGhlDQo+ID4gImdvdG8gcmV0cnkiDQo+ID4gK8KgIMKgIMKgIMKgICogY2Fz ZSBiZWxvdy4NCj4gPiDCoCDCoCDCoCDCoCDCoCovDQo+ID4gLcKgIMKgIMKgIMKgd2FpdF9yZW1h aW5pbmdfbXNfZnJvbV9qaWZmaWVzKHdvcmstPmVuYWJsZV9qaWZmaWVzLA0KPiA+IGRlbGF5X21z KTsNCj4gPiArwqAgwqAgwqAgwqB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLT5xdWV1ZSwNCj4g PiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBkcm1fY3J0Y192YmxhbmtfY291bnQoJmNydGMtPmJh c2UpICE9IHdvcmstDQo+ID4gPnNjaGVkdWxlZF92YmxhbmssDQo+ID4gK8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgbXNlY3NfdG9famlmZmllcyg1MCkpOw0KPiA+IA0KPiA+IMKgIMKgIMKgIMKgIG11 dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7DQo+ID4gDQo+ID4gQEAgLTQwNiw4ICs0MTgs NyBAQCByZXRyeToNCj4gPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBnb3RvIG91dDsNCj4gPiAN Cj4gPiDCoCDCoCDCoCDCoCAvKiBXZXJlIHdlIGRlbGF5ZWQgYWdhaW4gd2hpbGUgdGhpcyBmdW5j dGlvbiB3YXMgc2xlZXBpbmc/DQo+ID4gKi8NCj4gPiAtwqAgwqAgwqAgwqBpZiAodGltZV9hZnRl cih3b3JrLT5lbmFibGVfamlmZmllcyArDQo+ID4gbXNlY3NfdG9famlmZmllcyhkZWxheV9tcyks DQo+ID4gLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGppZmZpZXMpKSB7DQo+ID4g K8KgIMKgIMKgIMKgaWYgKGRybV9jcnRjX3ZibGFua19jb3VudCgmY3J0Yy0+YmFzZSkgPT0gd29y ay0NCj4gPiA+c2NoZWR1bGVkX3ZibGFuaykgew0KPiA+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IG11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsNCj4gPiDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCBnb3RvIHJldHJ5Ow0KPiA+IMKgIMKgIMKgIMKgIH0NCj4gPiBAQCAtNDE5LDYgKzQz MCw3IEBAIHJldHJ5Og0KPiA+IA0KPiA+IMKgb3V0Og0KPiA+IMKgIMKgIMKgIMKgIG11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsNCj4gPiArwqAgwqAgwqAgwqBkcm1fY3J0Y192Ymxh bmtfcHV0KCZjcnRjLT5iYXNlKTsNCj4gPiDCoH0NCj4gPiANCj4gPiDCoHN0YXRpYyB2b2lkIGlu dGVsX2ZiY19jYW5jZWxfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0KPiA+ICpkZXZfcHJp dikNCj4gPiBAQCAtNDM0LDEzICs0NDYsMjAgQEAgc3RhdGljIHZvaWQNCj4gPiBpbnRlbF9mYmNf c2NoZWR1bGVfYWN0aXZhdGlvbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykNCj4gPiANCj4gPiDC oCDCoCDCoCDCoCBXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5mYmMubG9jaykp Ow0KPiA+IA0KPiA+ICvCoCDCoCDCoCDCoGlmIChkcm1fY3J0Y192YmxhbmtfZ2V0KCZjcnRjLT5i YXNlKSkgew0KPiA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoERSTV9FUlJPUigidmJsYW5rIG5v dCBhdmFpbGFibGUgZm9yIEZCQyBvbiBwaXBlDQo+ID4gJWNcbiIsDQo+ID4gK8KgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsNCj4gPiAr wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm47DQo+ID4gK8KgIMKgIMKgIMKgfQ0KPiA+ICsN Cj4gPiDCoCDCoCDCoCDCoCAvKiBJdCBpcyB1c2VsZXNzIHRvIGNhbGwgaW50ZWxfZmJjX2NhbmNl bF93b3JrKCkgaW4gdGhpcw0KPiA+IGZ1bmN0aW9uIHNpbmNlDQo+ID4gwqAgwqAgwqAgwqAgwqAq IHdlJ3JlIG5vdCByZWxlYXNpbmcgZmJjLmxvY2ssIHNvIGl0IHdvbid0IGhhdmUgYW4NCj4gPiBv cHBvcnR1bml0eSB0byBncmFiDQo+ID4gwqAgwqAgwqAgwqAgwqAqIGl0IHRvIGRpc2NvdmVyIHRo YXQgaXQgd2FzIGNhbmNlbGxlZC4gU28gd2UganVzdCB1cGRhdGUNCj4gPiB0aGUgZXhwZWN0ZWQN Cj4gPiDCoCDCoCDCoCDCoCDCoCogamlmZnkgY291bnQuICovDQo+ID4gwqAgwqAgwqAgwqAgd29y ay0+ZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOw0KPiA+IMKgIMKgIMKgIMKgIHdvcmstPnNj aGVkdWxlZCA9IHRydWU7DQo+ID4gLcKgIMKgIMKgIMKgd29yay0+ZW5hYmxlX2ppZmZpZXMgPSBq aWZmaWVzOw0KPiA+ICvCoCDCoCDCoCDCoHdvcmstPnNjaGVkdWxlZF92YmxhbmsgPSBkcm1fY3J0 Y192YmxhbmtfY291bnQoJmNydGMtDQo+ID4gPmJhc2UpOw0KPiA+ICvCoCDCoCDCoCDCoGRybV9j cnRjX3ZibGFua19wdXQoJmNydGMtPmJhc2UpOw0KPiA+IA0KPiA+IMKgIMKgIMKgIMKgIHNjaGVk dWxlX3dvcmsoJndvcmstPndvcmspOw0KPiA+IMKgfQ0KPiA+IC0tDQo+ID4gMi42LjQNCj4gPiAN Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QNCj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnDQo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA0KPiA+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=