From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id E42F389CB9 for ; Mon, 19 Aug 2019 09:50:20 +0000 (UTC) From: "Ser, Simon" Date: Mon, 19 Aug 2019 09:50:18 +0000 Message-ID: <6745a9cf82a877b0660036e2f0e0b25ed4dc16d1.camel@intel.com> References: <20190712141618.7110-2-oleg.vasilev@intel.com> <20190816142132.20091-1-oleg.vasilev@intel.com> <20190816142132.20091-2-oleg.vasilev@intel.com> In-Reply-To: <20190816142132.20091-2-oleg.vasilev@intel.com> Content-Language: en-US Content-ID: <4D8A96EACFCD3E4FAD952CE397BC1B06@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH 2/2] tests/kms_prime: add vendor-agnostic kms prime tests List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Vasilev, Oleg" , "igt-dev@lists.freedesktop.org" Cc: "daniel@ffwll.ch" List-ID: T24gRnJpLCAyMDE5LTA4LTE2IGF0IDE3OjIxICswMzAwLCBPbGVnIFZhc2lsZXYgd3JvdGU6DQo+ IEN1cnJlbnRseSwgdGhlcmUgYXJlIGRpZmZlcmVudCBzZXRzIG9mIHByaW1lIHRlc3RzOg0KPiAg LSB2Z2VtICsgaTkxNQ0KPiAgLSBhbWRncHUgKyBpOTE1DQo+ICAtIG5vdXZlYXUgKyBpOTE1DQo+ IA0KPiBUaGUgaWRlYSBpcyB0byBjcmVhdGUgYSBzZXQgb2YgdGVzdHMgd2hpY2ggYXJlIGV4cGVj dGVkIHRvIHdvcmsgb24gYW55DQo+IHByaW1lLWNvbXBhdGlibGUgZHJpdmVyLiBJdCBjYW4gYmUg cnVuIHdpdGggYW55IGNvbWJpbmF0aW9uIG9mDQo+IGV4cG9ydGVyICsgaW1wb3J0ZXIsIHdoaWxl IHRob3NlIGRldmljZXMgaGF2ZSByZXNwZWN0aXZlIHByaW1lDQo+IGNhcGFiaWxpdGllcy4gSW4g b3JkZXIgdG8gYmUgdmVuZG9yLWFnbm9zdGljLCB0ZXN0cyBzaG91bGQgdXNlIGdlbmVyaWMNCj4g S01TIEFQSS4NCj4gDQo+IFNpbmNlIHZnZW0gY2FuIGJlIHVzZWQgYXMgYm90aCBleHBvcnRlciBh bmQgaW1wb3J0ZXIsIGFuZCB0aGVyZSBhcmVuJ3QNCj4gYW55IGdlbmVyaWMga21zIGZlYXR1cmVz IHdoaWNoIHZnZW0gZG9lc24ndCBzdXBwb3J0LCBpdCBpcyBzdWZmaWNpZW50DQo+IHRvIHRlc3Qg dmdlbSBhcyBleHBvcnRlciB3aXRoIGFueSBvdGhlciBLTVMgZHJpdmVyLg0KPiANCj4gVGhlIGZp cnN0IHRlc3QgaXMgc2ltcGxlOg0KPiAxLiBFeHBvcnRlciBjcmVhdGVzIGEgZHVtYiBGQiBhbmQg ZmlsbHMgaXQgd2l0aCBhIHBsYWluIGNvbG9yDQo+IDIuIEZCIGlzIHRyYW5zZmVycmVkIHRvIHRo ZSBpbXBvcnRlcg0KPiAzLiBJbXBvcnRlciBtb2Rlc2V0cyBhbmQgY29tcHV0ZXMgcGlwZSBDUkMN Cj4gNC4gSW1wb3J0ZXIgZHJhd3MgdGhlIHNhbWUgY29sb3IgdGhyb3VnaCBjYWlybyBhbmQgY29t cGFyZXMgQ1JDDQo+IA0KPiBUaGUgaW5pdGlhbCBtb3RpdmF0aW9uIGNvbWVzIGZyb20gdGhlIG5l ZWQgdG8gdGVzdCBwcmltZSBzdXBwb3J0IGluDQo+IHZrbXMuDQo+IA0KPiBWMjoNCj4gIC0gQ2hy aXM6IHJlbmFtZSB0aGUgZmlsZQ0KPiAgLSBTaW1vbjogbWVtb3J5IGh5Z2llbmUsIGNvZGVzdHls ZQ0KPiANCj4gQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ DQo+IENjOiBSb2RyaWdvIFNpcXVlaXJhIDxyb2RyaWdvc2lxdWVpcmFtZWxvQGdtYWlsLmNvbT4N Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4NCj4gQ2M6IFNpbW9uIFNlciA8 ZGFuaWVsQGZmd2xsLmNoPg0KPiBTaWduZWQtb2ZmLWJ5OiBPbGVnIFZhc2lsZXYgPG9sZWcudmFz aWxldkBpbnRlbC5jb20+DQoNClRoaXMgc2VyaWVzIGlzDQoNClJldmlld2VkLWJ5OiBTaW1vbiBT ZXIgPHNpbW9uLnNlckBpbnRlbC5jb20+DQoNCj4gLS0tDQo+ICB0ZXN0cy9rbXNfcHJpbWUuYyB8 IDI1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICB0 ZXN0cy9tZXNvbi5idWlsZCB8ICAgMSArDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNlcnRp b25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX3ByaW1lLmMNCj4gDQo+IGRp ZmYgLS1naXQgYS90ZXN0cy9rbXNfcHJpbWUuYyBiL3Rlc3RzL2ttc19wcmltZS5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwLi4xNzU5OTU3Mw0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL3Rlc3RzL2ttc19wcmltZS5jDQo+IEBAIC0wLDAgKzEsMjU0IEBADQo+ICsv Kg0KPiArICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24NCj4gKyAqDQo+ICsg KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYQ0KPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwNCj4gKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24NCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLA0KPiArICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlDQo+ICsg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOg0KPiArICoNCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQNCj4gKyAqIHBhcmFn cmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUNCj4gKyAqIFNvZnR3YXJlLg0KPiArICoNCj4gKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SDQo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwNCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTA0KPiArICog VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IgT1RIRVINCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HDQo+ICsgKiBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS IERFQUxJTkdTDQo+ICsgKiBJTiBUSEUgU09GVFdBUkUuDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1 ZGUgImlndC5oIg0KPiArI2luY2x1ZGUgImlndF92Z2VtLmgiDQo+ICsNCj4gKyNpbmNsdWRlIDxz eXMvaW9jdGwuaD4NCj4gKyNpbmNsdWRlIDxzeXMvcG9sbC5oPg0KPiArI2luY2x1ZGUgPHRpbWUu aD4NCj4gKw0KPiArc3RydWN0IGNyY19pbmZvIHsNCj4gKwlpZ3RfY3JjX3QgY3JjOw0KPiArCWNo YXIgKnN0cjsNCj4gKwljb25zdCBjaGFyICpuYW1lOw0KPiArfTsNCj4gKw0KPiArc3RhdGljIHN0 cnVjdCB7DQo+ICsJZG91YmxlIHIsIGcsIGI7DQo+ICsJdWludDMyX3QgY29sb3I7DQo+ICsJc3Ry dWN0IGNyY19pbmZvIHByaW1lX2NyYywgZGlyZWN0X2NyYzsNCj4gK30gY29sb3JzWzNdID0gew0K PiArCXsgLnIgPSAwLjAsIC5nID0gMC4wLCAuYiA9IDAuMCwgLmNvbG9yID0gMHhmZjAwMDAwMCB9 LA0KPiArCXsgLnIgPSAxLjAsIC5nID0gMS4wLCAuYiA9IDEuMCwgLmNvbG9yID0gMHhmZmZmZmZm ZiB9LA0KPiArCXsgLnIgPSAxLjAsIC5nID0gMC4wLCAuYiA9IDAuMCwgLmNvbG9yID0gMHhmZmZm MDAwMCB9LA0KPiArfTsNCj4gKw0KPiArSUdUX1RFU1RfREVTQ1JJUFRJT04oIlByaW1lIHRlc3Rz LCBmb2N1c2luZyBvbiBLTVMgc2lkZSIpOw0KPiArDQo+ICtzdGF0aWMgYm9vbCBoYXNfcHJpbWVf aW1wb3J0KGludCBmZCkNCj4gK3sNCj4gKwl1aW50NjRfdCB2YWx1ZTsNCj4gKw0KPiArCWlmIChk cm1HZXRDYXAoZmQsIERSTV9DQVBfUFJJTUUsICZ2YWx1ZSkpDQo+ICsJCXJldHVybiBmYWxzZTsN Cj4gKw0KPiArCXJldHVybiB2YWx1ZSAmIERSTV9QUklNRV9DQVBfSU1QT1JUOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgYm9vbCBoYXNfcHJpbWVfZXhwb3J0KGludCBmZCkNCj4gK3sNCj4gKwl1aW50 NjRfdCB2YWx1ZTsNCj4gKw0KPiArCWlmIChkcm1HZXRDYXAoZmQsIERSTV9DQVBfUFJJTUUsICZ2 YWx1ZSkpDQo+ICsJCXJldHVybiBmYWxzZTsNCj4gKw0KPiArCXJldHVybiB2YWx1ZSAmIERSTV9Q UklNRV9DQVBfRVhQT1JUOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaWd0X291dHB1dF90ICpzZXR1 cF9kaXNwbGF5KGludCBpbXBvcnRlcl9mZCwgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwNCj4gKwkJ CQkgICBlbnVtIHBpcGUgcGlwZSkNCj4gK3sNCj4gKwlpZ3RfZGlzcGxheV9yZXF1aXJlKGRpc3Bs YXksIGltcG9ydGVyX2ZkKTsNCj4gKwlpZ3Rfc2tpcF9vbihwaXBlID49IGRpc3BsYXktPm5fcGlw ZXMpOw0KPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0ID0gaWd0X2dldF9zaW5nbGVfb3V0cHV0X2Zv cl9waXBlKGRpc3BsYXksIHBpcGUpOw0KPiArDQo+ICsJaWd0X3JlcXVpcmVfZihvdXRwdXQsICJO byBjb25uZWN0b3IgZm91bmQgZm9yIHBpcGUgJXNcbiIsDQo+ICsJCSAgICAgIGttc3Rlc3RfcGlw ZV9uYW1lKHBpcGUpKTsNCj4gKw0KPiArCWlndF9kaXNwbGF5X3Jlc2V0KGRpc3BsYXkpOw0KPiAr CWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsNCj4gKwlyZXR1cm4gb3V0cHV0Ow0K PiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBwcmVwYXJlX3NjcmF0Y2goaW50IGV4cG9ydGVyX2Zk LCBzdHJ1Y3QgdmdlbV9ibyAqc2NyYXRjaCwNCj4gKwkJCSAgICBkcm1Nb2RlTW9kZUluZm8gKm1v ZGUsIHVpbnQzMl90IGNvbG9yKQ0KPiArew0KPiArCXVpbnQzMl90ICpwdHI7DQo+ICsNCj4gKwlz Y3JhdGNoLT53aWR0aCA9IG1vZGUtPmhkaXNwbGF5Ow0KPiArCXNjcmF0Y2gtPmhlaWdodCA9IG1v ZGUtPnZkaXNwbGF5Ow0KPiArCXNjcmF0Y2gtPmJwcCA9IDMyOw0KPiArCXZnZW1fY3JlYXRlKGV4 cG9ydGVyX2ZkLCBzY3JhdGNoKTsNCj4gKw0KPiArCXB0ciA9IHZnZW1fbW1hcChleHBvcnRlcl9m ZCwgc2NyYXRjaCwgUFJPVF9XUklURSk7DQo+ICsJZm9yIChzaXplX3QgaWR4ID0gMDsgaWR4IDwg c2NyYXRjaC0+c2l6ZSAvIHNpemVvZigqcHRyKTsgKytpZHgpDQo+ICsJCXB0cltpZHhdID0gY29s b3I7DQo+ICsNCj4gKwltdW5tYXAocHRyLCBzY3JhdGNoLT5zaXplKTsNCj4gK30NCj4gKw0KPiAr c3RhdGljIHZvaWQgcHJlcGFyZV9mYihpbnQgaW1wb3J0ZXJfZmQsIHN0cnVjdCB2Z2VtX2JvICpz Y3JhdGNoLCBzdHJ1Y3QgaWd0X2ZiICpmYikNCj4gK3sNCj4gKwllbnVtIGlndF9jb2xvcl9lbmNv ZGluZyBjb2xvcl9lbmNvZGluZyA9IElHVF9DT0xPUl9ZQ0JDUl9CVDcwOTsNCj4gKwllbnVtIGln dF9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZSA9IElHVF9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdF Ow0KPiArDQo+ICsJaWd0X2luaXRfZmIoZmIsIGltcG9ydGVyX2ZkLCBzY3JhdGNoLT53aWR0aCwg c2NyYXRjaC0+aGVpZ2h0LA0KPiArCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJN X0ZPUk1BVF9NT0RfTk9ORSwNCj4gKwkJICAgIGNvbG9yX2VuY29kaW5nLCBjb2xvcl9yYW5nZSk7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIGltcG9ydF9mYihpbnQgaW1wb3J0ZXJfZmQsIHN0 cnVjdCBpZ3RfZmIgKmZiLA0KPiArCQkgICAgICBpbnQgZG1hYnVmX2ZkLCB1aW50MzJfdCBwaXRj aCkNCj4gK3sNCj4gKwl1aW50MzJfdCBvZmZzZXRzWzRdID0ge30sIHBpdGNoZXNbNF0gPSB7fSwg aGFuZGxlc1s0XSA9IHt9Ow0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlmYi0+Z2VtX2hhbmRsZSA9 IHByaW1lX2ZkX3RvX2hhbmRsZShpbXBvcnRlcl9mZCwgZG1hYnVmX2ZkKTsNCj4gKw0KPiArCWhh bmRsZXNbMF0gPSBmYi0+Z2VtX2hhbmRsZTsNCj4gKwlwaXRjaGVzWzBdID0gcGl0Y2g7DQo+ICsJ b2Zmc2V0c1swXSA9IDA7DQo+ICsNCj4gKwlyZXQgPSBkcm1Nb2RlQWRkRkIyKGltcG9ydGVyX2Zk LCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsDQo+ICsJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwN Cj4gKwkJCSAgICBoYW5kbGVzLCBwaXRjaGVzLCBvZmZzZXRzLA0KPiArCQkJICAgICZmYi0+ZmJf aWQsIDApOw0KPiArCWlndF9hc3NlcnQocmV0ID09IDApOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg dm9pZCBzZXRfZmIoc3RydWN0IGlndF9mYiAqZmIsDQo+ICsJCSAgIGlndF9kaXNwbGF5X3QgKmRp c3BsYXksDQo+ICsJCSAgIGlndF9vdXRwdXRfdCAqb3V0cHV0KQ0KPiArew0KPiArCWlndF9wbGFu ZV90ICpwcmltYXJ5Ow0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlwcmltYXJ5ID0gaWd0X291dHB1 dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOw0KPiArCWln dF9hc3NlcnQocHJpbWFyeSk7DQo+ICsNCj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIGZi KTsNCj4gKwlyZXQgPSBpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7DQo+ICsNCj4gKwlpZ3Rf YXNzZXJ0KHJldCA9PSAwKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgY29sbGVjdF9jcmNf Zm9yX2ZiKGludCBpbXBvcnRlcl9mZCwgc3RydWN0IGlndF9mYiAqZmIsIGlndF9kaXNwbGF5X3Qg KmRpc3BsYXksDQo+ICsJCQkgICAgICAgaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9waXBlX2Ny Y190ICpwaXBlX2NyYywNCj4gKwkJCSAgICAgICB1aW50MzJfdCBjb2xvciwgc3RydWN0IGNyY19p bmZvICppbmZvKQ0KPiArew0KPiArCXNldF9mYihmYiwgZGlzcGxheSwgb3V0cHV0KTsNCj4gKwlp Z3RfcGlwZV9jcmNfY29sbGVjdF9jcmMocGlwZV9jcmMsICZpbmZvLT5jcmMpOw0KPiArCWluZm8t PnN0ciA9IGlndF9jcmNfdG9fc3RyaW5nKCZpbmZvLT5jcmMpOw0KPiArCWlndF9kZWJ1ZygiQ1JD IHRocm91Z2ggJyVzJyBtZXRob2QgZm9yICUjMDh4IGlzICVzXG4iLA0KPiArCQkgIGluZm8tPm5h bWUsIGNvbG9yLCBpbmZvLT5zdHIpOw0KPiArCWlndF9yZW1vdmVfZmIoaW1wb3J0ZXJfZmQsIGZi KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgdGVzdF9jcmMoaW50IGV4cG9ydGVyX2ZkLCBp bnQgaW1wb3J0ZXJfZmQpDQo+ICt7DQo+ICsJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Ow0KPiArCWln dF9vdXRwdXRfdCAqb3V0cHV0Ow0KPiArCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsNCj4gKwll bnVtIHBpcGUgcGlwZSA9IFBJUEVfQTsNCj4gKwlzdHJ1Y3QgaWd0X2ZiIGZiOw0KPiArCWludCBk bWFidWZfZmQ7DQo+ICsJc3RydWN0IHZnZW1fYm8gc2NyYXRjaCA9IHt9OyAvKiBkZXNwaXRlIHRo ZSBuYW1lLCBpdCBzdWl0cyBmb3IgYW55DQo+ICsJCQkJICAgICAgKiBnZW0tY29tcGF0aWJsZSBk ZXZpY2UNCj4gKwkJCQkgICAgICAqIFRPRE86IHJlbmFtZQ0KPiArCQkJCSAgICAgICovDQo+ICsJ aW50IGksIGo7DQo+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOw0KPiArDQo+ICsJYm9vbCBjcmNf ZXF1YWwgPSBmYWxzZTsNCj4gKw0KPiArCW91dHB1dCA9IHNldHVwX2Rpc3BsYXkoaW1wb3J0ZXJf ZmQsICZkaXNwbGF5LCBwaXBlKTsNCj4gKw0KPiArCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2Rl KG91dHB1dCk7DQo+ICsJcGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGltcG9ydGVyX2ZkLCBw aXBlLCBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRShjb2xvcnMpOyBpKyspIHsNCj4gKwkJcHJlcGFyZV9zY3JhdGNoKGV4cG9y dGVyX2ZkLCAmc2NyYXRjaCwgbW9kZSwgY29sb3JzW2ldLmNvbG9yKTsNCj4gKwkJZG1hYnVmX2Zk ID0gcHJpbWVfaGFuZGxlX3RvX2ZkKGV4cG9ydGVyX2ZkLCBzY3JhdGNoLmhhbmRsZSk7DQo+ICsJ CWdlbV9jbG9zZShleHBvcnRlcl9mZCwgc2NyYXRjaC5oYW5kbGUpOw0KPiArDQo+ICsJCXByZXBh cmVfZmIoaW1wb3J0ZXJfZmQsICZzY3JhdGNoLCAmZmIpOw0KPiArCQlpbXBvcnRfZmIoaW1wb3J0 ZXJfZmQsICZmYiwgZG1hYnVmX2ZkLCBzY3JhdGNoLnBpdGNoKTsNCj4gKwkJY2xvc2UoZG1hYnVm X2ZkKTsNCj4gKw0KPiArCQljb2xvcnNbaV0ucHJpbWVfY3JjLm5hbWUgPSAicHJpbWUiOw0KPiAr CQljb2xsZWN0X2NyY19mb3JfZmIoaW1wb3J0ZXJfZmQsICZmYiwgJmRpc3BsYXksIG91dHB1dCwN Cj4gKwkJCQkgICBwaXBlX2NyYywgY29sb3JzW2ldLmNvbG9yLCAmY29sb3JzW2ldLnByaW1lX2Ny Yyk7DQo+ICsNCj4gKwkJaWd0X2NyZWF0ZV9jb2xvcl9mYihpbXBvcnRlcl9mZCwNCj4gKwkJCQkg ICAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LA0KPiArCQkJCSAgICBEUk1fRk9STUFU X1hSR0I4ODg4LCBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLA0KPiArCQkJCSAgICBjb2xvcnNb aV0uciwgY29sb3JzW2ldLmcsIGNvbG9yc1tpXS5iLA0KPiArCQkJCSAgICAmZmIpOw0KPiArDQo+ ICsJCWNvbG9yc1tpXS5kaXJlY3RfY3JjLm5hbWUgPSAiZGlyZWN0IjsNCj4gKwkJY29sbGVjdF9j cmNfZm9yX2ZiKGltcG9ydGVyX2ZkLCAmZmIsICZkaXNwbGF5LCBvdXRwdXQsDQo+ICsJCQkJICAg cGlwZV9jcmMsIGNvbG9yc1tpXS5jb2xvciwgJmNvbG9yc1tpXS5kaXJlY3RfY3JjKTsNCj4gKwl9 DQo+ICsJaWd0X3BpcGVfY3JjX2ZyZWUocGlwZV9jcmMpOw0KPiArDQo+ICsJaWd0X2RlYnVnKCJD UkMgdGFibGU6XG4iKTsNCj4gKwlpZ3RfZGVidWcoIkNvbG9yXHRcdFByaW1lXHRcdERpcmVjdFxu Iik7DQo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29sb3JzKTsgaSsrKSB7DQo+ICsJ CWlndF9kZWJ1ZygiJSMwOHhcdCUuOHNcdCUuOHNcbiIsIGNvbG9yc1tpXS5jb2xvciwNCj4gKwkJ CSAgY29sb3JzW2ldLnByaW1lX2NyYy5zdHIsIGNvbG9yc1tpXS5kaXJlY3RfY3JjLnN0cik7DQo+ ICsJCWZyZWUoY29sb3JzW2ldLnByaW1lX2NyYy5zdHIpOw0KPiArCQlmcmVlKGNvbG9yc1tpXS5k aXJlY3RfY3JjLnN0cik7DQo+ICsJfQ0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJ WkUoY29sb3JzKTsgaSsrKSB7DQo+ICsJCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGNvbG9y cyk7IGorKykgew0KPiArCQkJaWYgKGkgPT0gaikgew0KPiArCQkJCWlndF9hc3NlcnRfY3JjX2Vx dWFsKCZjb2xvcnNbaV0ucHJpbWVfY3JjLmNyYywNCj4gKwkJCQkJCSAgICAgJmNvbG9yc1tqXS5k aXJlY3RfY3JjLmNyYyk7DQo+ICsJCQkJY29udGludWU7DQo+ICsJCQl9DQo+ICsJCQljcmNfZXF1 YWwgPSBpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjb2xvcnNbaV0ucHJpbWVfY3JjLmNyYywNCj4gKwkJ CQkJCQkmY29sb3JzW2pdLmRpcmVjdF9jcmMuY3JjKTsNCj4gKwkJCWlndF9hc3NlcnRfZighY3Jj X2VxdWFsLCAiQ1JDIHNob3VsZCBiZSBkaWZmZXJlbnQiKTsNCj4gKwkJfQ0KPiArCX0NCj4gKwlp Z3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnVu X3Rlc3RfY3JjKGludCBleHBvcnRfY2hpcHNldCwgaW50IGltcG9ydF9jaGlwc2V0KQ0KPiArew0K PiArCWludCBpbXBvcnRlcl9mZCA9IC0xOw0KPiArCWludCBleHBvcnRlcl9mZCA9IC0xOw0KPiAr DQo+ICsJZXhwb3J0ZXJfZmQgPSBkcm1fb3Blbl9kcml2ZXIoZXhwb3J0X2NoaXBzZXQpOw0KPiAr CWltcG9ydGVyX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihpbXBvcnRfY2hpcHNldCk7DQo+ ICsNCj4gKwlpZ3RfcmVxdWlyZShoYXNfcHJpbWVfZXhwb3J0KGV4cG9ydGVyX2ZkKSk7DQo+ICsJ aWd0X3JlcXVpcmUoaGFzX3ByaW1lX2ltcG9ydChpbXBvcnRlcl9mZCkpOw0KPiArCWlndF9yZXF1 aXJlX3BpcGVfY3JjKGltcG9ydGVyX2ZkKTsNCj4gKw0KPiArCXRlc3RfY3JjKGV4cG9ydGVyX2Zk LCBpbXBvcnRlcl9mZCk7DQo+ICsJY2xvc2UoaW1wb3J0ZXJfZmQpOw0KPiArCWNsb3NlKGV4cG9y dGVyX2ZkKTsNCj4gK30NCj4gKw0KPiAraWd0X21haW4NCj4gK3sNCj4gKwlpZ3RfZml4dHVyZSB7 DQo+ICsJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsNCj4gKwl9DQo+ICsJaWd0X2Rl c2NyaWJlKCJNYWtlIGEgZHVtYiBidWZmZXIgaW5zaWRlIHZnZW0sIGZpbGwgaXQsIGV4cG9ydCB0 byBhbm90aGVyIGRldmljZSBhbmQgY29tcGFyZSB0aGUgQ1JDIik7DQo+ICsJaWd0X3N1YnRlc3Qo ImJhc2ljLWNyYyIpDQo+ICsJCXJ1bl90ZXN0X2NyYyhEUklWRVJfVkdFTSwgRFJJVkVSX0FOWSk7 DQo+ICt9DQo+IGRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1 aWxkDQo+IGluZGV4IDM0YTc0MDI1Li4yMDFkNzJlMCAxMDA2NDQNCj4gLS0tIGEvdGVzdHMvbWVz b24uYnVpbGQNCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQNCj4gQEAgLTQ4LDYgKzQ4LDcgQEAg dGVzdF9wcm9ncyA9IFsNCj4gIAkna21zX3BsYW5lX2xvd3JlcycsDQo+ICAJJ2ttc19wbGFuZV9t dWx0aXBsZScsDQo+ICAJJ2ttc19wbGFuZV9zY2FsaW5nJywNCj4gKwkna21zX3ByaW1lJywNCj4g IAkna21zX3Byb3BfYmxvYicsDQo+ICAJJ2ttc19wcm9wZXJ0aWVzJywNCj4gIAkna21zX3Bzcics DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2 IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=