From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 51/55] drm/i915: Move the request/file and request/pid association to creation time Date: Wed, 03 Jun 2015 12:15:39 +0100 Message-ID: <556EE1DB.2010000@intel.com> References: <1432917856-12261-1-git-send-email-John.C.Harrison@Intel.com> <1432917856-12261-52-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 4E0556E3EE for ; Wed, 3 Jun 2015 04:15:42 -0700 (PDT) In-Reply-To: <1432917856-12261-52-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMjkvMDUvMjAxNSAxNzo0NCwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gSW4gX2k5 MTVfYWRkX3JlcXVlc3QoKSwgdGhlIHJlcXVlc3QgaXMgYXNzb2NpYXRlZCB3aXRoIGEgdXNlcmxh bmQgY2xpZW50Lgo+IFNwZWNpZmljYWxseSBpdCBpcyBsaW5rZWQgdG8gdGhlICdmaWxlJyBzdHJ1 Y3R1cmUgYW5kIHRoZSBjdXJyZW50IHVzZXIgcHJvY2Vzcwo+IGlzIHJlY29yZGVkLiBPbmUgcHJv YmxlbSBoZXJlIGlzIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBwcm9jZXNzIGlzIG5vdAo+IG5lY2Vz c2FyaWx5IHRoZSBzYW1lIGFzIHdoZW4gdGhlIHJlcXVlc3Qgd2FzIHN1Ym1pdHRlZCB0byB0aGUg ZHJpdmVyLiBUaGlzIGlzCj4gZXNwZWNpYWxseSB0cnVlIHdoZW4gdGhlIEdQVSBzY2hlZHVsZXIg YXJyaXZlcyBhbmQgZGVjb3VwbGVzIGRyaXZlciBzdWJtaXNzaW9uCj4gZnJvbSBoYXJkd2FyZSBz dWJtaXNzaW9uLiBOb3RlIGFsc28gdGhhdCBpdCBpcyBvbmx5IGluIHRoZSBjYXNlIHdoZXJlIHRo ZSBhZGQKPiByZXF1ZXN0IGNvbWVzIGZyb20gYW4gZXhlY2J1ZmYgY2FsbCB0aGF0IHRoZXJlIGlz IGEgY2xpZW50IHRvIGFzc29jaWF0ZS4gQW55Cj4gb3RoZXIgYWRkIHJlcXVlc3QgY2FsbCBpcyBr ZXJuZWwgb25seSBzbyBkb2VzIG5vdCBuZWVkIHRvIGRvIGl0Lgo+Cj4gVGhpcyBwYXRjaCBtb3Zl cyB0aGUgY2xpZW50IGFzc29jaWF0aW9uIGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbi4gVGhpcyBp cyB0aGVuCj4gY2FsbGVkIGZyb20gdGhlIGV4ZWNidWZmZXIgY29kZSBwYXRoIGl0c2VsZiBhdCBh IHNlbnNpYmxlIHRpbWUuIEl0IGFsc28gcmVtb3Zlcwo+IHRoZSBub3cgcmVkdW5kYW50ICdmaWxl JyBwb2ludGVyIGZyb20gdGhlIGFkZCByZXF1ZXN0IHBhcmFtZXRlciBsaXN0Lgo+Cj4gQW4gZXh0 cmEgY2xlYW51cCBvZiB0aGUgY2xpZW50IGFzc29jaWF0aW9uIGlzIGFsc28gYWRkZWQgdG8gdGhl IHJlcXVlc3QgY2xlYW4gdXAKPiBjb2RlIGZvciB0aGUgZXZlbnR1YWxpdHkgd2hlcmUgdGhlIHJl cXVlc3QgaXMga2lsbGVkIGFmdGVyIGFzc29jaWF0aW9uIGJ1dAo+IGJlZm9yZSBiZWluZyBzdWJt aXR0ZWQgKGUuZy4gZHVlIHRvIG91dCBvZiBtZW1vcnkgZXJyb3Igc29tZXdoZXJlKS4gT25jZSB0 aGUKPiBzdWJtaXNzaW9uIGhhcyBoYXBwZW5lZCwgdGhlIHJlcXVlc3QgaXMgb24gdGhlIHJlcXVl c3QgbGlzdCBhbmQgdGhlIHJlZ3VsYXIKPiByZXF1ZXN0IGxpc3QgcmVtb3ZhbCB3aWxsIGNsZWFy IHRoZSBhc3NvY2lhdGlvbi4gTm90ZSB0aGF0IHRoaXMgc3RpbGwgbmVlZHMgdG8KPiBoYXBwZW4g YXQgdGhpcyBwb2ludCBpbiB0aW1lIGJlY2F1c2UgdGhlIHJlcXVlc3QgbWlnaHQgYmUga2VwdCBm bG9hdGluZyBhcm91bmQKPiBtdWNoIGxvbmdlciAoZHVlIHRvIHNvbWVvbmUgaG9sZGluZyBhIHJl ZmVyZW5jZSBjb3VudCkgYW5kIHRoZSBjbGllbnQgc2hvdWxkIG5vdAo+IGJlIHdvcnJ5aW5nIGFi b3V0IHRoaXMgcmVxdWVzdCBhZnRlciBpdCBoYXMgYmVlbiByZXRpcmVkLgo+Cj4gRm9yOiBWSVot NTExNQo+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRl bC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAg ICAgfCAgICA3ICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg ICAgICB8ICAgNTYgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgICAgNiArKy0KPiAgIDMgZmlsZXMgY2hh bmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiBpbmRleCBmOWI2NTE3Li4xOGJmYzg0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gQEAgLTIxOTksNiArMjE5OSw4IEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9j KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKipyZXFfb3V0KTsKPiAgIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+ICAgdm9pZCBpOTE1X2dlbV9yZXF1 ZXN0X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpOwo+ICtpbnQgaTkxNV9nZW1fcmVxdWVzdF9h ZGRfdG9fY2xpZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICsJCQkJICAg c3RydWN0IGRybV9maWxlICpmaWxlKTsKPgo+ICAgc3RhdGljIGlubGluZSB1aW50MzJfdAo+ICAg aTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCj4gQEAgLTI4NjQsMTMgKzI4NjYsMTIgQEAgdm9pZCBpOTE1X2dlbV9jbGVhbnVwX3Jpbmdi dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gICBpbnQgX19tdXN0X2NoZWNrIGk5MTVf Z3B1X2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gICBpbnQgX19tdXN0X2NoZWNrIGk5 MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gICB2b2lkIF9faTkxNV9h ZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAtCQkJc3RydWN0 IGRybV9maWxlICpmaWxlLAo+ICAgCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJhdGNo X29iaiwKPiAgIAkJCWJvb2wgZmx1c2hfY2FjaGVzKTsKPiAgICNkZWZpbmUgaTkxNV9hZGRfcmVx dWVzdChyZXEpIFwKPiAtCV9faTkxNV9hZGRfcmVxdWVzdChyZXEsIE5VTEwsIE5VTEwsIHRydWUp Cj4gKwlfX2k5MTVfYWRkX3JlcXVlc3QocmVxLCBOVUxMLCB0cnVlKQo+ICAgI2RlZmluZSBpOTE1 X2FkZF9yZXF1ZXN0X25vX2ZsdXNoKHJlcSkgXAo+IC0JX19pOTE1X2FkZF9yZXF1ZXN0KHJlcSwg TlVMTCwgTlVMTCwgZmFsc2UpCj4gKwlfX2k5MTVfYWRkX3JlcXVlc3QocmVxLCBOVUxMLCBmYWxz ZSkKPiAgIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLAo+ICAgCQkJdW5zaWduZWQgcmVzZXRfY291bnRlciwKPiAgIAkJCWJvb2wgaW50ZXJy dXB0aWJsZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA1YWEwYWQwLi5iOGZlOTMx IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTEzMzEsNiArMTMzMSwzMyBAQCBv dXQ6Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPgo+ICtpbnQgaTkxNV9nZW1fcmVxdWVzdF9hZGRf dG9fY2xpZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICsJCQkJICAgc3Ry dWN0IGRybV9maWxlICpmaWxlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7Cj4g Kwo+ICsJV0FSTl9PTighcmVxIHx8ICFmaWxlIHx8IHJlcS0+ZmlsZV9wcml2KTsKPiArCj4gKwlp ZiAoIXJlcSB8fCAhZmlsZSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlpZiAocmVxLT5m aWxlX3ByaXYpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJZGV2X3ByaXZhdGUgPSByZXEt PnJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlmaWxlX3ByaXYgPSBmaWxlLT5kcml2ZXJfcHJp djsKPiArCj4gKwlzcGluX2xvY2soJmZpbGVfcHJpdi0+bW0ubG9jayk7Cj4gKwlyZXEtPmZpbGVf cHJpdiA9IGZpbGVfcHJpdjsKPiArCWxpc3RfYWRkX3RhaWwoJnJlcS0+Y2xpZW50X2xpc3QsICZm aWxlX3ByaXYtPm1tLnJlcXVlc3RfbGlzdCk7Cj4gKwlzcGluX3VubG9jaygmZmlsZV9wcml2LT5t bS5sb2NrKTsKPiArCj4gKwlyZXEtPnBpZCA9IGdldF9waWQodGFza19waWQoY3VycmVudCkpOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGlubGluZSB2b2lkCj4gICBpOTE1 X2dlbV9yZXF1ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcXVlc3QpCj4gICB7Cj4gQEAgLTEzNDMsNiArMTM3MCw5IEBAIGk5MTVfZ2VtX3JlcXVl c3RfcmVtb3ZlX2Zyb21fY2xpZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dCkKPiAgIAlsaXN0X2RlbCgmcmVxdWVzdC0+Y2xpZW50X2xpc3QpOwo+ICAgCXJlcXVlc3QtPmZp bGVfcHJpdiA9IE5VTEw7Cj4gICAJc3Bpbl91bmxvY2soJmZpbGVfcHJpdi0+bW0ubG9jayk7Cj4g Kwo+ICsJcHV0X3BpZChyZXF1ZXN0LT5waWQpOwo+ICsJcmVxdWVzdC0+cGlkID0gTlVMTDsKPiAg IH0KPgo+ICAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+IEBAIC0xMzYyLDggKzEzOTIsNiBAQCBzdGF0aWMg dm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QpCj4gICAJbGlzdF9kZWxfaW5pdCgmcmVxdWVzdC0+bGlzdCk7Cj4gICAJaTkxNV9n ZW1fcmVxdWVzdF9yZW1vdmVfZnJvbV9jbGllbnQocmVxdWVzdCk7Cj4KPiAtCXB1dF9waWQocmVx dWVzdC0+cGlkKTsKPiAtCj4gICAJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXF1ZXN0 KTsKPiAgIH0KPgo+IEBAIC0yNDY4LDcgKzI0OTYsNiBAQCBpOTE1X2dlbV9nZXRfc2Vxbm8oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdTMyICpzZXFubykKPiAgICAqIGdvaW5nIHRvIGhhcHBlbiBv biB0aGUgaGFyZHdhcmUuIFRoaXMgd291bGQgYmUgYSBCYWQgVGhpbmcodG0pLgo+ICAgICovCj4g ICB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QsCj4gLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiAgIAkJCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCQlib29sIGZsdXNoX2NhY2hlcykKPiAgIHsKPiBAQCAt MjUzOCwxOSArMjU2NSw2IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKPgo+ICAgCXJlcXVlc3QtPmVtaXR0ZWRfamlmZmllcyA9 IGppZmZpZXM7Cj4gICAJbGlzdF9hZGRfdGFpbCgmcmVxdWVzdC0+bGlzdCwgJnJpbmctPnJlcXVl c3RfbGlzdCk7Cj4gLQlyZXF1ZXN0LT5maWxlX3ByaXYgPSBOVUxMOwo+IC0KPiAtCWlmIChmaWxl KSB7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ ZHJpdmVyX3ByaXY7Cj4gLQo+IC0JCXNwaW5fbG9jaygmZmlsZV9wcml2LT5tbS5sb2NrKTsKPiAt CQlyZXF1ZXN0LT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7Cj4gLQkJbGlzdF9hZGRfdGFpbCgmcmVx dWVzdC0+Y2xpZW50X2xpc3QsCj4gLQkJCSAgICAgICZmaWxlX3ByaXYtPm1tLnJlcXVlc3RfbGlz dCk7Cj4gLQkJc3Bpbl91bmxvY2soJmZpbGVfcHJpdi0+bW0ubG9jayk7Cj4gLQo+IC0JCXJlcXVl c3QtPnBpZCA9IGdldF9waWQodGFza19waWQoY3VycmVudCkpOwo+IC0JfQo+Cj4gICAJdHJhY2Vf aTkxNV9nZW1fcmVxdWVzdF9hZGQocmVxdWVzdCk7Cj4KPiBAQCAtMjYxNiw2ICsyNjMwLDkgQEAg dm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpCj4gICAJCQkJ CQkgdHlwZW9mKCpyZXEpLCByZWYpOwo+ICAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSBy ZXEtPmN0eDsKPgo+ICsJaWYgKHJlcS0+ZmlsZV9wcml2KQo+ICsJCWk5MTVfZ2VtX3JlcXVlc3Rf cmVtb3ZlX2Zyb21fY2xpZW50KHJlcSk7Cj4gKwo+ICAgCWlmIChjdHgpIHsKPiAgIAkJaWYgKGk5 MTUuZW5hYmxlX2V4ZWNsaXN0cykgewo+ICAgCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZyA9IHJlcS0+cmluZzsKPiBAQCAtNDMyMCw2ICs0MzM3LDEzIEBAIGk5MTVfZ2VtX3JpbmdfdGhy b3R0bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ICAg CQlpZiAodGltZV9hZnRlcl9lcShyZXF1ZXN0LT5lbWl0dGVkX2ppZmZpZXMsIHJlY2VudF9lbm91 Z2gpKQo+ICAgCQkJYnJlYWs7Cj4KPiArCQkvKgo+ICsJCSAqIE5vdGUgdGhhdCB0aGUgcmVxdWVz dCBtaWdodCBub3QgaGF2ZSBiZWVuIHN1Ym1pdHRlZCB5ZXQuCj4gKwkJICogSW4gd2hpY2ggY2Fz ZSBlbWl0dGVkX2ppZmZpZXMgd2lsbCBiZSB6ZXJvLgo+ICsJCSAqLwo+ICsJCWlmICghcmVxdWVz dC0+ZW1pdHRlZF9qaWZmaWVzKQo+ICsJCQljb250aW51ZTsKPiArCj4gICAJCXRhcmdldCA9IHJl cXVlc3Q7Cj4gICAJfQo+ICAgCXJlc2V0X2NvdW50ZXIgPSBhdG9taWNfcmVhZCgmZGV2X3ByaXYt PmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggZTg2OGFjMS4uNTIxMzljNiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtMTA1OCw3ICsxMDU4LDcg QEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMoc3RydWN0IGk5MTVfZXhlY2J1 ZmZlcl9wYXJhbXMgKnBhcmFtcykKPiAgIAlwYXJhbXMtPnJpbmctPmdwdV9jYWNoZXNfZGlydHkg PSB0cnVlOwo+Cj4gICAJLyogQWRkIGEgYnJlYWRjcnVtYiBmb3IgdGhlIGNvbXBsZXRpb24gb2Yg dGhlIGJhdGNoIGJ1ZmZlciAqLwo+IC0JX19pOTE1X2FkZF9yZXF1ZXN0KHBhcmFtcy0+cmVxdWVz dCwgcGFyYW1zLT5maWxlLCBwYXJhbXMtPmJhdGNoX29iaiwgdHJ1ZSk7Cj4gKwlfX2k5MTVfYWRk X3JlcXVlc3QocGFyYW1zLT5yZXF1ZXN0LCBwYXJhbXMtPmJhdGNoX29iaiwgdHJ1ZSk7Cj4gICB9 Cj4KPiAgIHN0YXRpYyBpbnQKPiBAQCAtMTYxMiw2ICsxNjEyLDEwIEBAIGk5MTVfZ2VtX2RvX2V4 ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAlpZiAocmV0 KQo+ICAgCQlnb3RvIGVycl9iYXRjaF91bnBpbjsKPgo+ICsJcmV0ID0gaTkxNV9nZW1fcmVxdWVz dF9hZGRfdG9fY2xpZW50KHBhcmFtcy0+cmVxdWVzdCwgZmlsZSk7Cj4gKwlpZiAocmV0KQo+ICsJ CWdvdG8gZXJyX2JhdGNoX3VucGluOwo+ICsKPiAgIAkvKgo+ICAgCSAqIFNhdmUgYXNzb3J0ZWQg c3R1ZmYgYXdheSB0byBwYXNzIHRocm91Z2ggdG8gKl9zdWJtaXNzaW9uKCkuCj4gICAJICogTkI6 IFRoaXMgZGF0YSBzaG91bGQgYmUgJ3BlcnNpc3RlbnQnIGFuZCBub3QgbG9jYWwgYXMgaXQgd2ls bAo+CgoKUmV2aWV3ZWQtYnk6IFRvbWFzIEVsZiA8dG9tYXMuZWxmQGludGVsLmNvbT4KClRoYW5r cywKVG9tYXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==