From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E2196E10D for ; Thu, 11 Jul 2019 15:20:56 +0000 (UTC) From: "Ser, Simon" Date: Thu, 11 Jul 2019 15:20:52 +0000 Message-ID: References: <20190704095604.16589-1-oleg.vasilev@intel.com> <20190704095604.16589-2-oleg.vasilev@intel.com> <20190710163542.GX15868@phenom.ffwll.local> In-Reply-To: Content-Language: en-US Content-ID: <1EB3F6A60AC4DD4ABDD66F65F54E3F0F@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH 2/2] tests/prime_generic: add vendor-agnostic 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: "daniel@ffwll.ch" , "Vasilev, Oleg" Cc: "igt-dev@lists.freedesktop.org" List-ID: T24gVGh1LCAyMDE5LTA3LTExIGF0IDE0OjM2ICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0K PiBPbiBUaHUsIEp1bCAxMSwgMjAxOSBhdCAxMTowOSBBTSBWYXNpbGV2LCBPbGVnIDxvbGVnLnZh c2lsZXZAaW50ZWwuY29tPiB3cm90ZToNCj4gPiBPbiBXZWQsIDIwMTktMDctMTAgYXQgMTg6MzUg KzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6DQo+ID4gPiBPbiBUaHUsIEp1bCAwNCwgMjAxOSBh dCAxMjo1NjowNFBNICswMzAwLCBPbGVnIFZhc2lsZXYgd3JvdGU6DQo+ID4gPiA+IEN1cnJlbnRs eSwgd2UgaGF2ZSBkaWZmZXJlbnQgc2V0cyBvZiBwcmltZSB0ZXN0czoNCj4gPiA+ID4gIC0gdmdl bStpOTE1DQo+ID4gPiA+ICAtIGFtZGdwdStpOTE1DQo+ID4gPiA+ICAtIG52K2k5MTUNCj4gPiA+ ID4gDQo+ID4gPiA+IFRob3NlIHRlc3RzIHVzZSB2ZW5kb3Itc3BlY2lmaWMgaW9jdGxzLCB0aGVy ZWZvcmUsIG5vdA0KPiA+ID4gPiBpbnRlcmNoYW5nZWFibGUuDQo+ID4gPiA+IFRoZSBpZGVhIGlz IHRvIGNyZWF0ZSBhIHNldCBvZiB0ZXN0cyB3aGljaCBhcmUgZXhwZWN0ZWQgdG8gd29yayBvbg0K PiA+ID4gPiBhbnkNCj4gPiA+ID4gcHJpbWUtY29tcGF0aWJsZSBkcml2ZXIuIEl0IGNhbiBiZSBy dW4gd2l0aCBhbnkgY29tYmluYXRpb24gb2YNCj4gPiA+ID4gZXhwb3J0ZXIraW1wb3J0ZXIsIHdo ZXJlDQo+ID4gPiA+IA0KPiA+ID4gPiBUaGUgZmlyc3QgdGVzdCBpcyBzaW1wbGU6DQo+ID4gPiA+ IDEuIEV4cG9ydGVyIGNyZWF0ZXMgYSBmcmFtZWJ1ZmZlciBhbmQgZmlsbHMgaXQgd2l0aCBhIHBs YWluIGNvbG9yDQo+ID4gPiA+IDIuIEZiIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBpbXBvcnRlcg0K PiA+ID4gPiAzLiBJbXBvcnRlciBtb2Rlc2V0cyBhbmQgY29tcHV0ZXMgcGlwZSBDUkMNCj4gPiA+ ID4gNC4gSW1wb3J0ZXIgZHJhd3MgdGhlIHNhbWUgY29sb3IgdGhyb3VnaCBjYWlybyBhbmQgY29t cGFyZXMgQ1JDDQo+ID4gPiA+IA0KPiA+ID4gPiBUaGUgaW5pdGlhbCBtb3RpdmF0aW9uIGNvbWVz IGZyb20gdGhlIG5lZWQgdG8gdGVzdCBwcmltZSBzdXBwb3J0IGluDQo+ID4gPiA+IHZrbXMuDQo+ ID4gPiA+IA0KPiA+ID4gPiBDYzogUm9kcmlnbyBTaXF1ZWlyYSA8cm9kcmlnb3NpcXVlaXJhbWVs b0BnbWFpbC5jb20+DQo+ID4gPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+ DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE9sZWcgVmFzaWxldiA8b2xlZy52YXNpbGV2QGludGVs LmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICB0ZXN0cy9tZXNvbi5idWlsZCAgICAgfCAgIDEg Kw0KPiA+ID4gPiAgdGVzdHMvcHJpbWVfZ2VuZXJpYy5jIHwgMjM4DQo+ID4gPiA+ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiAgMiBmaWxlcyBjaGFu Z2VkLCAyMzkgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Rz L3ByaW1lX2dlbmVyaWMuYw0KPiA+ID4gPiANCj4gPiA+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL21l c29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQNCj4gPiA+ID4gaW5kZXggMzRhNzQwMjUuLjFj OTM4ZTk1IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS90ZXN0cy9tZXNvbi5idWlsZA0KPiA+ID4gPiAr KysgYi90ZXN0cy9tZXNvbi5idWlsZA0KPiA+ID4gPiBAQCAtNzYsNiArNzYsNyBAQCB0ZXN0X3By b2dzID0gWw0KPiA+ID4gPiAgICAgJ3ByaW1lX3NlbGZfaW1wb3J0JywNCj4gPiA+ID4gICAgICdw cmltZV91ZGwnLA0KPiA+ID4gPiAgICAgJ3ByaW1lX3ZnZW0nLA0KPiA+ID4gPiArICAgJ3ByaW1l X2dlbmVyaWMnLA0KPiA+ID4gPiAgICAgJ3N5bmNvYmpfYmFzaWMnLA0KPiA+ID4gPiAgICAgJ3N5 bmNvYmpfd2FpdCcsDQo+ID4gPiA+ICAgICAndGVtcGxhdGUnLA0KPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvdGVzdHMvcHJpbWVfZ2VuZXJpYy5jIGIvdGVzdHMvcHJpbWVfZ2VuZXJpYy5jDQo+ID4gPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+IGluZGV4IDAwMDAwMDAwLi42NWU0ODc2Mw0K PiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ICsrKyBiL3Rlc3RzL3ByaW1lX2dlbmVyaWMu Yw0KPiA+ID4gPiBAQCAtMCwwICsxLDIzOCBAQA0KPiA+ID4gPiArLyoNCj4gPiA+ID4gKyAqIENv cHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uDQo+ID4gPiA+ICsgKg0KPiA+ID4gPiAr ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24NCj4gPiA+ID4gb2J0YWluaW5nIGENCj4gPiA+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUNCj4gPiA+ID4gIlNv ZnR3YXJlIiksDQo+ID4gPiA+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dA0KPiA+ID4gPiBsaW1pdGF0aW9uDQo+ID4gPiA+ ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwNCj4gPiA+ID4gc3VibGljZW5zZSwNCj4gPiA+ID4gKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0bw0KPiA+ID4gPiB3 aG9tIHRoZQ0KPiA+ID4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcNCj4gPiA+ID4gY29uZGl0aW9uczoNCj4gPiA+ID4gKyAqDQo+ ID4gPiA+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZQ0KPiA+ID4gPiAoaW5jbHVkaW5nIHRoZSBuZXh0DQo+ID4gPiA+ICsgKiBwYXJhZ3Jh cGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwNCj4gPiA+ ID4gcG9ydGlvbnMgb2YgdGhlDQo+ID4gPiA+ICsgKiBTb2Z0d2FyZS4NCj4gPiA+ID4gKyAqDQo+ ID4gPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwNCj4gPiA+ID4gRVhQUkVTUyBPUg0KPiA+ID4gPiArICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRg0KPiA+ID4g PiBNRVJDSEFOVEFCSUxJVFksDQo+ID4gPiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8NCj4gPiA+ID4gRVZFTlQgU0hBTEwN Cj4gPiA+ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLA0KPiA+ID4gPiBEQU1BR0VTIE9SIE9USEVSDQo+ID4gPiA+ICsgKiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwNCj4gPiA+ID4gQVJJU0lORw0KPiA+ID4gPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUg0KPiA+ID4gPiBPVEhFUiBERUFM SU5HUw0KPiA+ID4gPiArICogSU4gVEhFIFNPRlRXQVJFLg0KPiA+ID4gPiArICovDQo+ID4gPiA+ ICsNCj4gPiA+ID4gKyNpbmNsdWRlICJpZ3QuaCINCj4gPiA+ID4gKyNpbmNsdWRlICJpZ3Rfdmdl bS5oIg0KPiA+ID4gPiArDQo+ID4gPiA+ICsjaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQo+ID4gPiA+ ICsjaW5jbHVkZSA8c3lzL3BvbGwuaD4NCj4gPiA+ID4gKyNpbmNsdWRlIDx0aW1lLmg+DQo+ID4g PiA+ICsNCj4gPiA+ID4gK3N0YXRpYyBzdHJ1Y3Qgew0KPiA+ID4gPiArICAgZG91YmxlIHIsIGcs IGI7DQo+ID4gPiA+ICsgICB1aW50MzJfdCBjb2xvcjsNCj4gPiA+ID4gKyAgIGlndF9jcmNfdCBw cmltZV9jcmM7DQo+ID4gPiA+ICsgICBpZ3RfY3JjX3QgZGlyZWN0X2NyYzsNCj4gPiA+ID4gKyAg IGNoYXIgKnByaW1lX3N0cjsNCj4gPiA+ID4gKyAgIGNoYXIgKmRpcmVjdF9zdHI7DQo+ID4gPiA+ ICt9IGNvbG9yc1szXSA9IHsNCj4gPiA+ID4gKyAgIHsgLnIgPSAwLjAsIC5nID0gMC4wLCAuYiA9 IDAuMCwgLmNvbG9yID0gMHhmZjAwMDAwMH0sDQo+ID4gPiA+ICsgICB7IC5yID0gMS4wLCAuZyA9 IDEuMCwgLmIgPSAxLjAsIC5jb2xvciA9IDB4ZmZmZmZmZmZ9LA0KPiA+ID4gPiArICAgeyAuciA9 IDEuMCwgLmcgPSAwLjAsIC5iID0gMC4wLCAuY29sb3IgPSAweGZmZmYwMDAwfSwNCj4gPiA+ID4g K307DQo+ID4gPiA+ICsNCj4gPiA+ID4gK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJHZW5lcmljIHRl c3RzLCB3b3JraW5nIHdpdGggYW55IHByaW1lDQo+ID4gPiA+IGRldmljZSIpOw0KPiA+ID4gPiAr DQo+ID4gPiA+ICtzdGF0aWMgYm9vbCBoYXNfcHJpbWVfaW1wb3J0KGludCBmZCkNCj4gPiA+ID4g K3sNCj4gPiA+ID4gKyAgIHVpbnQ2NF90IHZhbHVlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICBp ZiAoZHJtR2V0Q2FwKGZkLCBEUk1fQ0FQX1BSSU1FLCAmdmFsdWUpKQ0KPiA+ID4gPiArICAgICAg ICAgICByZXR1cm4gZmFsc2U7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgIHJldHVybiB2YWx1ZSAm IERSTV9QUklNRV9DQVBfSU1QT1JUOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtz dGF0aWMgYm9vbCBoYXNfcHJpbWVfZXhwb3J0KGludCBmZCkNCj4gPiA+ID4gK3sNCj4gPiA+ID4g KyAgIHVpbnQ2NF90IHZhbHVlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICBpZiAoZHJtR2V0Q2Fw KGZkLCBEUk1fQ0FQX1BSSU1FLCAmdmFsdWUpKQ0KPiA+ID4gPiArICAgICAgICAgICByZXR1cm4g ZmFsc2U7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgIHJldHVybiB2YWx1ZSAmIERSTV9QUklNRV9D QVBfRVhQT1JUOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0aWMgdm9pZCBw cmVwYXJlX3NjcmF0Y2goaW50IGV4cG9ydGVyLCBzdHJ1Y3QgdmdlbV9ibyAqc2NyYXRjaCwNCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZHJtTW9kZU1vZGVJbmZvICptb2RlLCB1aW50 MzJfdCBjb2xvcikNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKyAgIGludCBpOw0KPiA+ID4gPiArICAg dWludDMyX3QgKnB0cjsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgc2NyYXRjaC0+d2lkdGggPSBt b2RlLT5oZGlzcGxheTsNCj4gPiA+ID4gKyAgIHNjcmF0Y2gtPmhlaWdodCA9IG1vZGUtPnZkaXNw bGF5Ow0KPiA+ID4gPiArICAgc2NyYXRjaC0+YnBwID0gMzI7DQo+ID4gPiA+ICsgICB2Z2VtX2Ny ZWF0ZShleHBvcnRlciwgc2NyYXRjaCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgIHB0ciA9IHZn ZW1fbW1hcChleHBvcnRlciwgc2NyYXRjaCwgUFJPVF9XUklURSk7DQo+ID4gPiA+ICsgICBmb3Ig KGkgPSAwOyBpIDwgc2NyYXRjaC0+c2l6ZSAvIHNpemVvZigqcHRyKTsgKytpKQ0KPiA+ID4gPiAr ICAgICAgICAgICBwdHJbaV0gPSBjb2xvcjsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgbXVubWFw KHB0ciwgc2NyYXRjaC0+c2l6ZSk7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0 YXRpYyB2b2lkIHByZXBhcmVfZmIoaW50IGltcG9ydGVyLCBzdHJ1Y3QgdmdlbV9ibyAqc2NyYXRj aCwNCj4gPiA+ID4gc3RydWN0IGlndF9mYiAqZmIpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsgICBl bnVtIGlndF9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGluZyA9IElHVF9DT0xPUl9ZQ0JDUl9C VDcwOTsNCj4gPiA+ID4gKyAgIGVudW0gaWd0X2NvbG9yX3JhbmdlIGNvbG9yX3JhbmdlID0NCj4g PiA+ID4gSUdUX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0U7DQo+ID4gPiA+ICsNCj4gPiA+ID4g KyAgIGlndF9pbml0X2ZiKGZiLCBpbXBvcnRlciwgc2NyYXRjaC0+d2lkdGgsIHNjcmF0Y2gtPmhl aWdodCwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIExPQ0FM X0RSTV9GT1JNQVRfTU9EX05PTkUsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICBjb2xvcl9lbmNv ZGluZywgY29sb3JfcmFuZ2UpOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0 aWMgdm9pZCBpbXBvcnRfZmIoaW50IGltcG9ydGVyLCBzdHJ1Y3QgaWd0X2ZiICpmYiwNCj4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgaW50IGRtYWJ1Zl9mZCwgdWludDMyX3QgcGl0Y2gpDQo+ID4g PiA+ICt7DQo+ID4gPiA+ICsgICB1aW50MzJfdCBvZmZzZXRzWzRdLCBwaXRjaGVzWzRdLCBoYW5k bGVzWzRdOw0KPiA+ID4gPiArICAgaW50IHJldDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgZmIt PmdlbV9oYW5kbGUgPSBwcmltZV9mZF90b19oYW5kbGUoaW1wb3J0ZXIsIGRtYWJ1Zl9mZCk7DQo+ ID4gPiA+ICsNCj4gPiA+ID4gKyAgIGhhbmRsZXNbMF0gPSBmYi0+Z2VtX2hhbmRsZTsNCj4gPiA+ ID4gKyAgIHBpdGNoZXNbMF0gPSBwaXRjaDsNCj4gPiA+ID4gKyAgIG9mZnNldHNbMF0gPSAwOw0K PiA+ID4gPiArDQo+ID4gPiA+ICsgICByZXQgPSBkcm1Nb2RlQWRkRkIyKGltcG9ydGVyLCBmYi0+ d2lkdGgsIGZiLT5oZWlnaHQsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIERSTV9G T1JNQVRfWFJHQjg4ODgsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXMs IHBpdGNoZXMsIG9mZnNldHMsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICZmYi0+ ZmJfaWQsIDApOw0KPiA+ID4gPiArICAgaWd0X2Fzc2VydChyZXQgPT0gMCk7DQo+ID4gPiA+ICt9 DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyB2b2lkIHNldF9mYihzdHJ1Y3QgaWd0X2ZiICpm YiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwNCj4gPiA+ ID4gKyAgICAgICAgICAgICAgaWd0X291dHB1dF90ICpvdXRwdXQpDQo+ID4gPiA+ICt7DQo+ID4g PiA+ICsgICBpZ3RfcGxhbmVfdCAqcHJpbWFyeTsNCj4gPiA+ID4gKyAgIGludCByZXQ7DQo+ID4g PiA+ICsNCj4gPiA+ID4gKyAgIHByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQs IDApOw0KPiA+ID4gPiArICAgaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBmYik7DQo+ID4gPiA+ ICsgICByZXQgPSBpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKyAgIGlndF9hc3NlcnQocmV0ID09IDApOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4g PiA+ICtzdGF0aWMgdm9pZCB0ZXN0X2NyYyhpbnQgZXhwb3J0ZXIsIGludCBpbXBvcnRlcikNCj4g PiA+ID4gK3sNCj4gPiA+ID4gKyAgIGVudW0gcGlwZSBwaXBlID0gUElQRV9BOw0KPiA+ID4gPiAr ICAgaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Ow0KPiA+ID4gPiArICAgaWd0X291dHB1dF90ICpvdXRw dXQ7DQo+ID4gPiA+ICsgICBpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmM7DQo+ID4gPiA+ICsgICBz dHJ1Y3QgaWd0X2ZiIGZiOw0KPiA+ID4gPiArICAgaW50IGRtYWJ1Zl9mZDsNCj4gPiA+ID4gKyAg IHN0cnVjdCB2Z2VtX2JvIHNjcmF0Y2g7IC8qIGRlc3BpdGUgdGhlIG5hbWUsIGl0IHN1aXRzIGZv ciBhbnkNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbS1jb21wYXRp YmxlIGRldmljZSAqLw0KPiA+ID4gPiArICAgaW50IGksIGo7DQo+ID4gPiA+ICsgICBkcm1Nb2Rl TW9kZUluZm8gKm1vZGU7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgIGJvb2wgY3JjX2VxdWFsOw0K PiA+ID4gPiArDQo+ID4gPiA+ICsgICBpZ3RfZGlzcGxheV9yZXF1aXJlKCZkaXNwbGF5LCBpbXBv cnRlcik7DQo+ID4gPiA+ICsgICBpZ3Rfc2tpcF9vbihwaXBlID49IGRpc3BsYXkubl9waXBlcyk7 DQo+ID4gPiA+ICsgICBvdXRwdXQgPSBpZ3RfZ2V0X3NpbmdsZV9vdXRwdXRfZm9yX3BpcGUoJmRp c3BsYXksIHBpcGUpOw0KPiA+ID4gPiArICAgaWd0X3JlcXVpcmVfZihvdXRwdXQsICJObyBjb25u ZWN0b3IgZm91bmQgZm9yIHBpcGUgJXNcbiIsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgIGtt c3Rlc3RfcGlwZV9uYW1lKHBpcGUpKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgaWd0X2Rpc3Bs YXlfcmVzZXQoJmRpc3BsYXkpOw0KPiA+ID4gPiArICAgaWd0X291dHB1dF9zZXRfcGlwZShvdXRw dXQsIHBpcGUpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICBtb2RlID0gaWd0X291dHB1dF9nZXRf bW9kZShvdXRwdXQpOw0KPiA+ID4gPiArICAgcGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGlt cG9ydGVyLCBwaXBlLA0KPiA+ID4gPiBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7DQo+ID4g PiA+ICsNCj4gPiA+ID4gKyAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvbG9ycyk7IGkr Kykgew0KPiA+ID4gPiArICAgICAgICAgICBwcmVwYXJlX3NjcmF0Y2goZXhwb3J0ZXIsICZzY3Jh dGNoLCBtb2RlLA0KPiA+ID4gPiBjb2xvcnNbaV0uY29sb3IpOw0KPiA+ID4gPiArICAgICAgICAg ICBkbWFidWZfZmQgPSBwcmltZV9oYW5kbGVfdG9fZmQoZXhwb3J0ZXIsDQo+ID4gPiA+IHNjcmF0 Y2guaGFuZGxlKTsNCj4gPiA+ID4gKyAgICAgICAgICAgZ2VtX2Nsb3NlKGV4cG9ydGVyLCBzY3Jh dGNoLmhhbmRsZSk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgICAgcHJlcGFyZV9mYihp bXBvcnRlciwgJnNjcmF0Y2gsICZmYik7DQo+ID4gPiA+ICsgICAgICAgICAgIGltcG9ydF9mYihp bXBvcnRlciwgJmZiLCBkbWFidWZfZmQsIHNjcmF0Y2gucGl0Y2gpOw0KPiA+ID4gPiArICAgICAg ICAgICBjbG9zZShkbWFidWZfZmQpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgICAgIHNl dF9mYigmZmIsICZkaXNwbGF5LCBvdXRwdXQpOw0KPiA+ID4gPiArICAgICAgICAgICBpZ3RfcGlw ZV9jcmNfY29sbGVjdF9jcmMocGlwZV9jcmMsDQo+ID4gPiA+ICZjb2xvcnNbaV0ucHJpbWVfY3Jj KTsNCj4gPiA+ID4gKyAgICAgICAgICAgY29sb3JzW2ldLnByaW1lX3N0ciA9DQo+ID4gPiA+IGln dF9jcmNfdG9fc3RyaW5nKCZjb2xvcnNbaV0ucHJpbWVfY3JjKTsNCj4gPiA+ID4gKyAgICAgICAg ICAgaWd0X2RlYnVnKCJQcmltZSBDUkMgZm9yICUjMDh4IGlzICVzXG4iLA0KPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgY29sb3JzW2ldLmNvbG9yLCBjb2xvcnNbaV0ucHJpbWVfc3RyKTsN Cj4gPiA+ID4gKyAgICAgICAgICAgaWd0X3JlbW92ZV9mYihpbXBvcnRlciwgJmZiKTsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArICAgICAgICAgICBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGltcG9ydGVyLA0K PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUtPmhkaXNwbGF5LCBt b2RlLT52ZGlzcGxheSwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE Uk1fRk9STUFUX1hSR0I4ODg4LA0KPiA+ID4gPiBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLA0K PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yc1tpXS5yLCBjb2xv cnNbaV0uZywNCj4gPiA+ID4gY29sb3JzW2ldLmIsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmZiKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICAgICBzZXRf ZmIoJmZiLCAmZGlzcGxheSwgb3V0cHV0KTsNCj4gPiA+ID4gKyAgICAgICAgICAgaWd0X3BpcGVf Y3JjX2NvbGxlY3RfY3JjKHBpcGVfY3JjLA0KPiA+ID4gPiAmY29sb3JzW2ldLmRpcmVjdF9jcmMp Ow0KPiA+ID4gPiArICAgICAgICAgICBjb2xvcnNbaV0uZGlyZWN0X3N0ciA9DQo+ID4gPiA+IGln dF9jcmNfdG9fc3RyaW5nKCZjb2xvcnNbaV0uZGlyZWN0X2NyYyk7DQo+ID4gPiA+ICsgICAgICAg ICAgIGlndF9kZWJ1ZygiRGlyZWN0IENSQyBmb3IgJSMwOHggaXMgJXNcbiIsDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICBjb2xvcnNbaV0uY29sb3IsIGNvbG9yc1tpXS5kaXJlY3Rfc3Ry KTsNCj4gPiA+ID4gKyAgICAgICAgICAgaWd0X3JlbW92ZV9mYihpbXBvcnRlciwgJmZiKTsNCj4g PiA+ID4gKyAgIH0NCj4gPiA+ID4gKyAgIGlndF9waXBlX2NyY19mcmVlKHBpcGVfY3JjKTsNCj4g PiA+ID4gKw0KPiA+ID4gPiArICAgaWd0X2RlYnVnKCJDUkMgdGFibGU6XG4iKTsNCj4gPiA+ID4g KyAgIGlndF9kZWJ1ZygiQ29sb3JcdFx0UHJpbWVcdFx0RGlyZWN0XG4iKTsNCj4gPiA+ID4gKyAg IGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvbG9ycyk7IGkrKykgew0KPiA+ID4gPiArICAg ICAgICAgICBpZ3RfZGVidWcoIiUjMDh4XHQlLjhzXHQlLjhzXG4iLCBjb2xvcnNbaV0uY29sb3Is DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBjb2xvcnNbaV0ucHJpbWVfc3RyLCBjb2xv cnNbaV0uZGlyZWN0X3N0cik7DQo+ID4gPiA+ICsgICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAg IGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvbG9ycyk7IGkrKykgew0KPiA+ID4gPiArICAg ICAgICAgICBmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShjb2xvcnMpOyBqKyspIHsNCj4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSBqKSB7DQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmY29sb3JzW2ldLnByaW1lX2MN Cj4gPiA+ID4gcmMsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmY29sb3JzW2pdLmRpcmVjdF8NCj4gPiA+ID4gY3JjKTsNCj4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3JjX2VxdWFsID0NCj4gPiA+ID4gaWd0X2NoZWNrX2NyY19lcXVhbCgmY29sb3Jz W2ldLnByaW1lX2NyYywNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbG9ycw0KPiA+ID4gPiBbal0uZGlyZWN0X2Ny Yyk7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ3RfYXNzZXJ0X2YoIWNy Y19lcXVhbCwgIkNSQyBzaG91bGQgYmUNCj4gPiA+ID4gZGlmZmVyZW50Iik7DQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgfQ0KPiA+ID4gPiArICAgICAgICAgICB9DQo+ID4gPiA+ICsgICB9 DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyB2b2lkIHJ1bl90ZXN0X2Ny YyhpbnQgZXhwb3J0X2NoaXBzZXQsIGludCBpbXBvcnRfY2hpcHNldCkNCj4gPiA+ID4gK3sNCj4g PiA+ID4gKyAgIGludCBpbXBvcnRlciA9IC0xOw0KPiA+ID4gPiArICAgaW50IGV4cG9ydGVyID0g LTE7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgIGV4cG9ydGVyID0gZHJtX29wZW5fZHJpdmVyKGV4 cG9ydF9jaGlwc2V0KTsNCj4gPiA+ID4gKyAgIGltcG9ydGVyID0gZHJtX29wZW5fZHJpdmVyX21h c3RlcihpbXBvcnRfY2hpcHNldCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgIGlndF9yZXF1aXJl KGhhc19wcmltZV9leHBvcnQoZXhwb3J0ZXIpKTsNCj4gPiA+ID4gKyAgIGlndF9yZXF1aXJlKGhh c19wcmltZV9pbXBvcnQoaW1wb3J0ZXIpKTsNCj4gPiA+ID4gKyAgIGlndF9yZXF1aXJlX3BpcGVf Y3JjKGltcG9ydGVyKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgdGVzdF9jcmMoZXhwb3J0ZXIs IGltcG9ydGVyKTsNCj4gPiA+ID4gKyAgIGNsb3NlKGltcG9ydGVyKTsNCj4gPiA+ID4gKyAgIGNs b3NlKGV4cG9ydGVyKTsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiAraWd0X21haW4N Cj4gPiA+ID4gK3sNCj4gPiA+ID4gKyAgIGlndF9maXh0dXJlIHsNCj4gPiA+ID4gKyAgICAgICAg ICAga21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOw0KPiA+ID4gPiArICAgfQ0KPiA+ID4g PiArICAgaWd0X3N1YnRlc3QoImNyYy12Z2VtLXZrbXMiKQ0KPiA+ID4gPiArICAgICAgICAgICBy dW5fdGVzdF9jcmMoRFJJVkVSX1ZHRU0sIERSSVZFUl9WS01TKTsNCj4gPiA+ID4gKyAgIGlndF9z dWJ0ZXN0KCJjcmMtaTkxNS12a21zIikNCj4gPiA+ID4gKyAgICAgICAgICAgcnVuX3Rlc3RfY3Jj KERSSVZFUl9JTlRFTCwgRFJJVkVSX1ZLTVMpOw0KPiA+ID4gPiArICAgaWd0X3N1YnRlc3QoImNy Yy12Z2VtLWk5MTUiKQ0KPiA+ID4gPiArICAgICAgICAgICBydW5fdGVzdF9jcmMoRFJJVkVSX1ZH RU0sIERSSVZFUl9JTlRFTCk7DQo+ID4gPiA+ICsgICBpZ3Rfc3VidGVzdCgiY3JjLWFtZC1pOTE1 IikNCj4gPiA+ID4gKyAgICAgICAgICAgcnVuX3Rlc3RfY3JjKERSSVZFUl9BTURHUFUsIERSSVZF Ul9JTlRFTCk7DQo+ID4gPiA+ICsgICBpZ3Rfc3VidGVzdCgiY3JjLWk5MTUtYW1kIikNCj4gPiA+ ID4gKyAgICAgICAgICAgcnVuX3Rlc3RfY3JjKERSSVZFUl9JTlRFTCwgRFJJVkVSX0FNREdQVSk7 DQo+ID4gPiANCj4gPiA+IFRoaXMgaXNuJ3QgYW55IG1vcmUgZ2VuZXJpYyB0aGFuIHdoYXQgd2Ug aGF2ZSBlLmcuIGluIHByaW1lX3ZnZW0NCj4gPiA+IGFscmVhZHkuDQo+ID4gDQo+ID4gSGVyZSBu b24tZ2VuZXJpYyBwYXJ0IGlzIG9ubHkgdGhvc2UgMTAgbGluZXMgb2Ygc3VidGVzdHMgZGVmaW5p dGlvbnMuDQo+ID4gVGhlIHJlc3QgaXMgY29tbW9uIGNvZGUuDQo+ID4gDQo+ID4gSSBndWVzcywg dGhpcyBzZXBhcmF0ZSBzdWJ0ZXN0IGRlZmluaXRpb25zIGNhbiBkb2N1bWVudCB0aGUgZGV2aWNl DQo+ID4gcGFpcnMgdGhlIHRlc3QgaXMgZXhwZWN0ZWQgdG8gd29yayArIHdlIGNhbiBibGFja2xp c3QgdGVzdHMgd2hpY2ggd2UNCj4gPiBkb24ndCBoYXZlIHRoZSBoYXJkd2FyZSBmb3IuDQo+IA0K PiBCdXQgd2UgYWxyZWFkeSBoYXZlIHRlc3RzIGZvciBzcGVjaWZpYyBwYWlycywgd2hpY2ggY2Fu IGFsc28gdGVzdA0KPiBzcGVjaWZpYyBzdHVmZi4gSW4gZ2VuZXJhbCB3ZSBkb24ndCBkbyB0ZXN0 cyB3aXRoIC1nZW45LCBnZW4xMSwgLWdlbjgNCj4gcHJlZml4ZXMgZWl0aGVyLiBUaGlzIGhlcmUg d291bGQgYmUgYSBmaXJzdCBJJ2Qgc2F5Lg0KPiANCj4gPiA+IFRoZSB3YXkgdG8gZG8gYSBnZW5l cmljIGttcyB0ZXN0Y2FzZSBpcyB0byB1c2UgRFJJVkVSX0FOWSAoeWVzIHNvbWUNCj4gPiA+IG9m IHRoZQ0KPiA+ID4gZWFybGllciBjb252ZXJzaW9uIHVuZm9ydHVuYXRlbHkgdXNlZCBzdHVmZiBs aWtlIERSSVZFUl9JTlRFTCB8DQo+ID4gPiBEUklWRVJfQU1ER1BVKS4gV2l0aCB0aGF0IHlvdSBh bHNvIGRvbid0IG5lZWQgeW91ciBsaWJyYXJ5IHByZXANCj4gPiA+IHBhdGNoLA0KPiA+ID4gYmVj YXVzZSBubyBuZWVkIGZvciBhIERSSVZFUl9WS01TLg0KPiA+IA0KPiA+IEJ1dCBob3cgY2FuIHdl IG9wZW4gdHdvIGRpZmZlcmVudCBkZXZpY2VzIHdpdGggRFJJVkVSX0FOWT8gSWYgSSBwdXQNCj4g PiANCj4gPiBmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfQU5ZKQ0KPiA+IGZkMiA9IGRybV9v cGVuX2RyaXZlcihEUklWRVJfQU5ZKQ0KPiA+IA0KPiA+IEkgZ2V0IHRoZSBzYW1lIGRldmljZSBv cGVuZWQgdHdvIHRpbWVzLCBkbyBJPw0KPiANCj4gT25lIG9mIHRoZW0gd291bGQgYmUgRFJJVkVS X1ZHRU0uIEFuZCBJIHRoaW5rIHdlIGFscmVhZHkgbWFrZSBzdXJlDQo+IHRoYXQgeW91IGRvbid0 IGFjY2lkZW50YWxseSBnZXQgdmdlbSBmb3IgRFJJVkVSX0FOWS4gT3RoZXJ3aXNlIEkgZ3Vlc3MN Cj4gd2UnZCBuZWVkIGEgRFJJVkVSX0FOWV9CVVRfVkdFTS4gV2VsbCByZWFsbHkgd2hhdCB3ZSB3 YW50IGlzDQo+IERSSVZFUl9BTllfS01TIGhlcmUsIHdoaWNoIHdvdWxkIGFsc28gZXhjbHVkZSB2 Z2VtLiBTbyBpZiBpdCBkb2Vzbid0DQo+IHdvcmsgYWxyZWFkeSwgc21hbGwgcGF0Y2ggbmVlZGVk IGluIGxpYi8sIGJ1dCBEUklWRVJfVktNUyBhbHNvIG5lZWRzDQo+IHRoYXQuIEFuZCBJIHJlYWxs eSBkb24ndCB3YW50IG1vcmUgRFJJVkVSX0ZPTyBkZWZpbmVzIGZvciBhIHBsYWluIG9sZA0KPiBr bXMtb25seSBkcml2ZXIuIGttcyBpcyBzdXBwb3NlZCB0byBiZSBhIHNoYXJlZCBjcm9zcy1kcml2 ZXIgc3RhbmRhcmQsDQo+IGlmIHdlIGNhbid0IGV2ZW4gd3JpdGUgc2hhcmVkIHRlc3RjYXNlcyBp dCdzIGp1c3QgZXBpYyBmYWlsIDotKQ0KPiANCj4gPiA+IEltbyBiZXN0IHRvIHN0YXJ0IG91dCBi eSBjb252ZXJ0aW5nIHByaW1lX3ZnZW0uYyBmb3IgdGhpcywgYW5kIGFkZGluZw0KPiA+ID4gZm9y DQo+ID4gPiB0aGUgaTkxNSBzcGVjaWZpYyB0ZXN0cyAoYnV0IF9vbmx5XyBmb3IgdGhvc2UpIGEg c3BlY2lmaWMgImlzIHRoaXMNCj4gPiA+IGk5MTUiDQo+ID4gPiBjaGVjaywgc28gd2Ugc2tpcCB0 aG9zZSB0ZXN0cy4gQW5kIHJlcGxhY2UgRFJJVkVSX0lOVEVMIGJ5DQo+ID4gPiBEUklWRVJfQU5Z Lg0KPiA+ID4gV2VsbCwgYW55dGhpbmcgZXhjZXB0IHZnZW0gOi0pDQo+ID4gDQo+ID4gSWYgSSBh bSBub3QgbWlzdGFrZW4sIGFsbCB0ZXN0cyBpbiBwcmltZV92Z2VtIGFyZSBpbnRlbC1zcGVjaWZp YyA6RA0KPiA+IA0KPiA+IFNvbWUgaWRlYXMgY2FuIGJlIHRha2VuIGZyb20gaXQsIGJ1dCBhbnl3 YXksIGl0IHByb2JhYmx5IG5lZWRzIGEgZGVlcA0KPiA+IHJld3JpdGUuDQo+ID4gDQo+ID4gQW5k IHByaW1lX3ZnZW0gdXNlIG9ubHkgdmdlbSBhcyBhbiBleHBvcnRlciBkZXZpY2UuIEhlcmUgd2Ug Y2FuIHVzZSBhbnkNCj4gPiBkZXZpY2UuIFN1cmUsIHNvbWUgdGVzdHMgd291bGQgZXZlbnR1YWxs eSB1c2UgdmdlbS1zcGVjaWZpYyBmZWF0dXJlcywNCj4gPiBidXQgc29tZSBjb3VsZCByZW1haW4g bW9yZSBnZW5lcmljLg0KPiANCj4gTWF5YmUgSSB3YXNuJ3QgYWxsIHRoYXQgY2xlYXIgdGhlbiwg SSB0aGluayB3aGF0IHdlIHdhbnQgdG8gdGVzdCBpbiBhDQo+IGdlbmVyaWMgcHJpbWUgdGVzdCBp cyB2Z2VtK0RSSVZFUl9BTllfS01TLiBUaGVuIGRyaXZlcnMgY2FuIHRlc3QgdGhlDQo+IHJlbmRl ciBzaWRlIHVzaW5nIERSSVZFUl9GT08rdmdlbS4gVGhpcyB3YXkgeW91IG9ubHkgbmVlZCB0byBo YXZlIDENCj4gZ2VuZXJpYyBrbXMgdGVzdCwgcGx1cyBOIHRlc3RzIGZvciBhbGwgdGhlIHJlbmRl cmluZyBkcml2ZXJzLiBJbnN0ZWFkDQo+IG9mIE0geCBOIHRlc3RjYXNlcyBsaWtlIHlvdSdyZSBw cm9wb3NpbmcgaGVyZS4gdmdlbSBpcyBqdXN0IHRoZQ0KPiBhYnN0cmFjdGlvbiBsYXllci9tb2Nr aW5nIGxheWVyIHdlIHVzZSB0byBzZXBhcmF0ZSB0aGVzZSB0d28gd29ybGRzLg0KPiBBbmQgb2Yg Y291cnNlIGZvciBzcGVjaWZpYyBzaGFyaW5nIHlvdSBjYW4gc3RpbGwgZG8gdGhhdCwgZS5nLiB0 byB0ZXN0DQo+IGRtYSBlbmdpbmUgY29tcGF0aWJpbGl0eSBiZXR3ZWVuIGFtZGdwdSBhbmQgaTkx NSwgb3Igbm91dmVhdSBhbmQgaTkxNS4NCj4gQnV0IHRob3NlIHRlc3RzIGRvbid0IG5lZWQgdG8g aW52b2x2ZSBrbXMuDQo+IA0KPiBBbmQgeWVhaCBwcmltZV92Z2VtIG1pZ2h0IG5lZWQgdG8gYmUg c3BsaXQgaW50byBwcmltZV9pOTE1X3ZnZW0gYW5kDQo+IHByaW1lX2ttc192Z2VtLiBCdXQgYWxs IHRoZSBkaXNwbGF5IHJlbGF0ZWQgdGVzdGNhc2VzIHNob3VsZCBiZQ0KPiBwb3NzaWJsZSB0byBl eHRyYWN0IGludG8gc3VjaCBhIHByaW1lX2ttc192Z2VtIGZyYW1ld29yay4NCg0KT25lIGNvdWxk IGFsc28gd2FudCB0byB0ZXN0IGRybVByaW1lSGFuZGxlVG9GRCBhbmQgZHJtUHJpbWVGRFRvSGFu ZGxlDQpiZXR3ZWVuIGUuZy4gYW1kZ3B1IGFuZCBpOTE1LiBJIGd1ZXNzIGl0J3MgdXNpbmcgYSBk aWZmZXJlbnQgY29kZSBwYXRoDQp0aGFuIGdlbS4NCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaWd0LWRldg==