From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 2/6] drm/i915: Cache last cmd descriptor when parsing Date: Fri, 20 Nov 2015 17:08:06 +0200 Message-ID: <20151120150806.GO4437@intel.com> References: <1448016961-25331-1-git-send-email-chris@chris-wilson.co.uk> <1448016961-25331-3-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 810AD6E6D1 for ; Fri, 20 Nov 2015 07:08:10 -0800 (PST) Content-Disposition: inline In-Reply-To: <1448016961-25331-3-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMjAsIDIwMTUgYXQgMTA6NTU6NTdBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFRoZSBjbWQgcGFyc2VyIGhhcyB0aGUgYmlnZ2VzdCBpbXBhY3Qgb24gdGhlIEJMVCBy aW5nLCBiZWNhdXNlIGl0IGlzCj4gcmVsYXRpdmVseSB2ZXJib3NlIGNvbXBvc2VkIHRvIHRoZSBv dGhlciBlbmdpbmVzIGFzIHRoZSB2ZXJ0ZXggZGF0YSBpcwo+IGlubGluZS4gSXQgYWxzbyB0eXBp Y2FsbHkgaGFzIHJ1bnMgb2YgcmVwZWF0aW5nIGNvbW1hbmRzIChhZ2FpbiBzaW5jZQo+IHRoZSB2 ZXJ0ZXggZGF0YSBpcyBpbmxpbmUsIGl0IHR5cGljYWxseSBoYXMgc2VxdWVuY2VzIG9mIFhZX1NF VFVQX0JMVCwKPiBYWV9TQ0FOTElORV9CTFQuLikgV2UgY2FuIGVhc2lseSByZWR1Y2UgdGhlIGlt cGFjdCBvZiBjbWRwYXJzaW5nIG9uCj4gYmVuY2htYXJrcyBieSB0aGVuIGNhY2hpbmcgdGhlIGxh c3QgZGVzY3JpcHRvciBhbmQgY29tcGFyaW5nIGl0IGFnYWluc3QKPiB0aGUgbmV4dCBjb21tYW5k IGhlYWRlci4gVG8gZ2V0IG1heGltdW0gYmVuZWZpdCwgd2UgYWxzbyB3YW50IHRvIHRha2UKPiBh ZHZhbnRhZ2Ugb2Ygc2tpcHBpbmcgYSBmZXcgdmFsaWRhdGlvbnMgYW5kIGxlbmd0aCBkZXRlcm1p bmF0aW9ucyBpZiB0aGUKPiBoZWFkZXIgaXMgdW5jaGFuZ2VkIGJldHdlZW4gY29tbWFuZHMuCj4g Cj4gaXZiIGk3LTM3MjBRTToKPiB4MTFwZXJmIC1kb3Q6IGJlZm9yZSA1Mi4zTSwgYWZ0ZXIgMTI0 TSAobWF4IDIwM00pCj4gZ2x4Z2VhcnM6IGJlZm9yZSA3MzEwIGZwcywgYWZ0ZXIgNzU1MCBmcHMg KG1heCA3ODYwIGZwcykKPiAKPiB2MjogRml4IGluaXRpYWwgY2FjaGVkIGNtZCBkZXNjcmlwdG9y IHRvIG1hdGNoIE1JX05PT1AuCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Y21kX3BhcnNlci5jIHwgMTMzICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICB8ICAxMCArLS0KPiAgMiBmaWxl cyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCA3OSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwo+IGluZGV4IGRiM2EwNGVhMDM2YS4uYzZmNmQ5 ZjJiMmNlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNl ci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKPiBAQCAt Nzk0LDYgKzc5NCw5IEBAIHZvaWQgaTkxNV9jbWRfcGFyc2VyX2ZpbmlfcmluZyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAJZmluaV9oYXNoX3RhYmxlKHJpbmcpOwo+ICB9Cj4gIAo+ ICsvKgo+ICsgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIGRlc2NyaXB0b3IgZm9yIHRoZSBjb21t YW5kIHNwZWNpZmllZCBieSBjbWRfaGVhZGVyLgo+ICsgKi8KPiAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1faTkxNV9jbWRfZGVzY3JpcHRvcioKPiAgZmluZF9jbWRfaW5fdGFibGUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCQkgIHUzMiBjbWRfaGVhZGVyKQo+IEBAIC04MTMsMzcg KzgxNiw2IEBAIGZpbmRfY21kX2luX3RhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs Cj4gIAlyZXR1cm4gTlVMTDsKPiAgfQo+ICAKPiAtLyoKPiAtICogUmV0dXJucyBhIHBvaW50ZXIg dG8gYSBkZXNjcmlwdG9yIGZvciB0aGUgY29tbWFuZCBzcGVjaWZpZWQgYnkgY21kX2hlYWRlci4K PiAtICoKPiAtICogVGhlIGNhbGxlciBtdXN0IHN1cHBseSBzcGFjZSBmb3IgYSBkZWZhdWx0IGRl c2NyaXB0b3IgdmlhIHRoZSBkZWZhdWx0X2Rlc2MKPiAtICogcGFyYW1ldGVyLiBJZiBubyBkZXNj cmlwdG9yIGZvciB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgZXhpc3RzIGluIHRoZSByaW5nJ3MKPiAt ICogY29tbWFuZCBwYXJzZXIgdGFibGVzLCB0aGlzIGZ1bmN0aW9uIGZpbGxzIGluIGRlZmF1bHRf ZGVzYyBiYXNlZCBvbiB0aGUKPiAtICogcmluZydzIGRlZmF1bHQgbGVuZ3RoIGVuY29kaW5nIGFu ZCByZXR1cm5zIGRlZmF1bHRfZGVzYy4KPiAtICovCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfY21kX2Rlc2NyaXB0b3IqCj4gLWZpbmRfY21kKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCj4gLQkgdTMyIGNtZF9oZWFkZXIsCj4gLQkgc3RydWN0IGRybV9pOTE1X2NtZF9kZXNj cmlwdG9yICpkZWZhdWx0X2Rlc2MpCj4gLXsKPiAtCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9jbWRf ZGVzY3JpcHRvciAqZGVzYzsKPiAtCXUzMiBtYXNrOwo+IC0KPiAtCWRlc2MgPSBmaW5kX2NtZF9p bl90YWJsZShyaW5nLCBjbWRfaGVhZGVyKTsKPiAtCWlmIChkZXNjKQo+IC0JCXJldHVybiBkZXNj Owo+IC0KPiAtCW1hc2sgPSByaW5nLT5nZXRfY21kX2xlbmd0aF9tYXNrKGNtZF9oZWFkZXIpOwo+ IC0JaWYgKCFtYXNrKQo+IC0JCXJldHVybiBOVUxMOwo+IC0KPiAtCUJVR19PTighZGVmYXVsdF9k ZXNjKTsKPiAtCWRlZmF1bHRfZGVzYy0+ZmxhZ3MgPSBDTURfREVTQ19TS0lQOwo+IC0JZGVmYXVs dF9kZXNjLT5sZW5ndGgubWFzayA9IG1hc2s7Cj4gLQo+IC0JcmV0dXJuIGRlZmF1bHRfZGVzYzsK PiAtfQo+IC0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9yZWdfZGVzY3JpcHRvciAq Cj4gIGZpbmRfcmVnKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9yZWdfZGVzY3JpcHRvciAqdGFibGUs Cj4gIAkgaW50IGNvdW50LCB1MzIgYWRkcikKPiBAQCAtODg2LDE3ICs4NTgsNiBAQCBzdGF0aWMg Ym9vbCBjaGVja19jbWQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCQkg ICAgICBjb25zdCBib29sIGlzX21hc3RlciwKPiAgCQkgICAgICBib29sICpvYWNvbnRyb2xfc2V0 KQo+ICB7Cj4gLQlpZiAoZGVzYy0+ZmxhZ3MgJiBDTURfREVTQ19SRUpFQ1QpIHsKPiAtCQlEUk1f REVCVUdfRFJJVkVSKCJDTUQ6IFJlamVjdGVkIGNvbW1hbmQ6IDB4JTA4WFxuIiwgKmNtZCk7Cj4g LQkJcmV0dXJuIGZhbHNlOwo+IC0JfQo+IC0KPiAtCWlmICgoZGVzYy0+ZmxhZ3MgJiBDTURfREVT Q19NQVNURVIpICYmICFpc19tYXN0ZXIpIHsKPiAtCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IFJl amVjdGVkIG1hc3Rlci1vbmx5IGNvbW1hbmQ6IDB4JTA4WFxuIiwKPiAtCQkJCSAqY21kKTsKPiAt CQlyZXR1cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+ICAJaWYgKGRlc2MtPmZsYWdzICYgQ01EX0RFU0Nf UkVHSVNURVIpIHsKPiAgCQkvKgo+ICAJCSAqIEdldCB0aGUgZGlzdGFuY2UgYmV0d2VlbiBpbmRp dmlkdWFsIHJlZ2lzdGVyIG9mZnNldAo+IEBAIC0xMDI3LDE0ICs5ODgsMTUgQEAgaW50IGk5MTVf cGFyc2VfY21kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAJCSAgICB1MzIgYmF0 Y2hfbGVuLAo+ICAJCSAgICBib29sIGlzX21hc3RlcikKPiAgewo+IC0JY29uc3Qgc3RydWN0IGRy bV9pOTE1X2NtZF9kZXNjcmlwdG9yICpkZXNjOwo+ICsJc3RydWN0IGRybV9pOTE1X2NtZF9kZXNj cmlwdG9yIGRlZmF1bHRfZGVzYyA9IHsgQ01EX0RFU0NfU0tJUCB9Owo+ICsJY29uc3Qgc3RydWN0 IGRybV9pOTE1X2NtZF9kZXNjcmlwdG9yICpkZXNjID0gJmRlZmF1bHRfZGVzYzsKPiArCXUzMiBs YXN0X2NtZF9oZWFkZXIgPSAwOwo+ICAJdW5zaWduZWQgZHN0X2l0ZXIsIHNyY19pdGVyOwo+ICAJ aW50IG5lZWRzX2NsZmx1c2ggPSAwOwo+ICAJc3RydWN0IGdldF9wYWdlIHJld2luZDsKPiAgCXZv aWQgKnNyYywgKmRzdCwgKnRtcDsKPiAtCXUzMiBwYXJ0aWFsLCBsZW5ndGg7Cj4gKwl1MzIgcGFy dGlhbCwgbGVuZ3RoID0gMTsKPiAgCXVuc2lnbmVkIGluLCBvdXQ7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfY21kX2Rlc2NyaXB0b3IgZGVmYXVsdF9kZXNjID0geyAwIH07Cj4gIAlib29sIG9hY29udHJv bF9zZXQgPSBmYWxzZTsgLyogT0FDT05UUk9MIHRyYWNraW5nLiBTZWUgY2hlY2tfY21kKCkgKi8K PiAgCWludCByZXQgPSAwOwo+ICAKPiBAQCAtMTEwMCw0MCArMTA2Miw2MyBAQCBpbnQgaTkxNV9w YXJzZV9jbWRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAkJcGFydGlhbCA9IDA7 Cj4gIAo+ICAJCWRvIHsKPiAtCQkJaWYgKCpjbWQgPT0gTUlfQkFUQ0hfQlVGRkVSX0VORCkgewo+ IC0JCQkJaWYgKG9hY29udHJvbF9zZXQpIHsKPiAtCQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6 IGJhdGNoIHNldCBPQUNPTlRST0wgYnV0IGRpZCBub3QgY2xlYXIgaXRcbiIpOwo+IC0JCQkJCWdv dG8gdW5tYXA7Cj4gKwkJCWlmICgqY21kICE9IGxhc3RfY21kX2hlYWRlcikgewo+ICsJCQkJaWYg KCpjbWQgPT0gTUlfQkFUQ0hfQlVGRkVSX0VORCkgewo+ICsJCQkJCWlmICh1bmxpa2VseShvYWNv bnRyb2xfc2V0KSkgewo+ICsJCQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IGJhdGNoIHNldCBP QUNPTlRST0wgYnV0IGRpZCBub3QgY2xlYXIgaXRcbiIpOwo+ICsJCQkJCQlnb3RvIHVubWFwOwo+ ICsJCQkJCX0KPiArCj4gKwkJCQkJY21kKys7IC8qIGNvcHkgdGhpcyBjbWQgdG8gZHN0ICovCj4g KwkJCQkJYmF0Y2hfbGVuID0gdGhpczsgLyogbm8gbW9yZSBzcmMgKi8KPiArCQkJCQlyZXQgPSAw Owo+ICsJCQkJCWJyZWFrOwo+ICAJCQkJfQo+ICAKPiAtCQkJCWNtZCsrOyAvKiBjb3B5IHRoaXMg Y21kIHRvIGRzdCAqLwo+IC0JCQkJYmF0Y2hfbGVuID0gdGhpczsgLyogbm8gbW9yZSBzcmMgKi8K PiAtCQkJCXJldCA9IDA7Cj4gLQkJCQlicmVhazsKPiAtCQkJfQo+IC0KPiAtCQkJZGVzYyA9IGZp bmRfY21kKHJpbmcsICpjbWQsICZkZWZhdWx0X2Rlc2MpOwo+IC0JCQlpZiAoIWRlc2MpIHsKPiAt CQkJCURSTV9ERUJVR19EUklWRVIoIkNNRDogVW5yZWNvZ25pemVkIGNvbW1hbmQ6IDB4JTA4WFxu IiwKPiAtCQkJCQkJICpjbWQpOwo+IC0JCQkJZ290byB1bm1hcDsKPiAtCQkJfQo+ICsJCQkJZGVz YyA9IGZpbmRfY21kX2luX3RhYmxlKHJpbmcsICpjbWQpOwo+ICsJCQkJaWYgKGRlc2MpIHsKPiAr CQkJCQlpZiAodW5saWtlbHkoZGVzYy0+ZmxhZ3MgJiBDTURfREVTQ19SRUpFQ1QpKSB7Cj4gKwkJ CQkJCURSTV9ERUJVR19EUklWRVIoIkNNRDogUmVqZWN0ZWQgY29tbWFuZDogMHglMDhYXG4iLCAq Y21kKTsKPiArCQkJCQkJZ290byB1bm1hcDsKPiArCQkJCQl9CgpZaWtlcy4gTW9yZSBpbmRlbnR0 aW9uLiBJdCdzIGdldHRpbmcgcmVhbGx5IGRlZXAgaGVyZS4gQW55IHNhbmUgd2F5IHRvCnJlZHVj ZSBpdD8KCj4gKwo+ICsJCQkJCWlmICh1bmxpa2VseSgoZGVzYy0+ZmxhZ3MgJiBDTURfREVTQ19N QVNURVIpICYmICFpc19tYXN0ZXIpKSB7Cj4gKwkJCQkJCURSTV9ERUJVR19EUklWRVIoIkNNRDog UmVqZWN0ZWQgbWFzdGVyLW9ubHkgY29tbWFuZDogMHglMDhYXG4iLCAqY21kKTsKPiArCQkJCQkJ Z290byB1bm1hcDsKPiArCQkJCQl9Cj4gKwo+ICsJCQkJCS8qCj4gKwkJCQkJICogSWYgdGhlIGJh dGNoIGJ1ZmZlciBjb250YWlucyBhCj4gKwkJCQkJICogY2hhaW5lZCBiYXRjaCwgcmV0dXJuIGFu IGVycm9yIHRoYXQKPiArCQkJCQkgKiB0ZWxscyB0aGUgY2FsbGVyIHRvIGFib3J0IGFuZAo+ICsJ CQkJCSAqIGRpc3BhdGNoIHRoZSB3b3JrbG9hZCBhcyBhCj4gKwkJCQkJICogbm9uLXNlY3VyZSBi YXRjaC4KPiArCQkJCQkgKi8KPiArCQkJCQlpZiAodW5saWtlbHkoZGVzYy0+Y21kLnZhbHVlID09 IE1JX0JBVENIX0JVRkZFUl9TVEFSVCkpIHsKPiArCQkJCQkJcmV0ID0gLUVBQ0NFUzsKPiArCQkJ CQkJZ290byB1bm1hcDsKPiArCQkJCQl9Cj4gKwo+ICsJCQkJCWlmIChkZXNjLT5mbGFncyAmIENN RF9ERVNDX0ZJWEVEKQo+ICsJCQkJCQlsZW5ndGggPSBkZXNjLT5sZW5ndGguZml4ZWQ7Cj4gKwkJ CQkJZWxzZQo+ICsJCQkJCQlsZW5ndGggPSAoKmNtZCAmIGRlc2MtPmxlbmd0aC5tYXNrKSArIExF TkdUSF9CSUFTOwo+ICsJCQkJfSBlbHNlIHsKPiArCQkJCQl1MzIgbWFzayA9IHJpbmctPmdldF9j bWRfbGVuZ3RoX21hc2soKmNtZCk7Cj4gKwkJCQkJaWYgKHVubGlrZWx5KCFtYXNrKSkgewo+ICsJ CQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IFVucmVjb2duaXplZCBjb21tYW5kOiAweCUwOFhc biIsICpjbWQpOwo+ICsJCQkJCQlnb3RvIHVubWFwOwo+ICsJCQkJCX0KPiArCj4gKwkJCQkJZGVm YXVsdF9kZXNjLmxlbmd0aC5tYXNrID0gbWFzazsKPiArCQkJCQlkZXNjID0gJmRlZmF1bHRfZGVz YzsKPiArCj4gKwkJCQkJbGVuZ3RoID0gKCpjbWQgJiBtYXNrKSArIExFTkdUSF9CSUFTOwo+ICsJ CQkJfQo+ICAKPiAtCQkJLyoKPiAtCQkJICogSWYgdGhlIGJhdGNoIGJ1ZmZlciBjb250YWlucyBh IGNoYWluZWQgYmF0Y2gsIHJldHVybiBhbgo+IC0JCQkgKiBlcnJvciB0aGF0IHRlbGxzIHRoZSBj YWxsZXIgdG8gYWJvcnQgYW5kIGRpc3BhdGNoIHRoZQo+IC0JCQkgKiB3b3JrbG9hZCBhcyBhIG5v bi1zZWN1cmUgYmF0Y2guCj4gLQkJCSAqLwo+IC0JCQlpZiAoZGVzYy0+Y21kLnZhbHVlID09IE1J X0JBVENIX0JVRkZFUl9TVEFSVCkgewo+IC0JCQkJcmV0ID0gLUVBQ0NFUzsKPiAtCQkJCWdvdG8g dW5tYXA7Cj4gKwkJCQlsYXN0X2NtZF9oZWFkZXIgPSAqY21kOwo+ICAJCQl9Cj4gIAo+IC0JCQlp ZiAoZGVzYy0+ZmxhZ3MgJiBDTURfREVTQ19GSVhFRCkKPiAtCQkJCWxlbmd0aCA9IGRlc2MtPmxl bmd0aC5maXhlZDsKPiAtCQkJZWxzZQo+IC0JCQkJbGVuZ3RoID0gKCgqY21kICYgZGVzYy0+bGVu Z3RoLm1hc2spICsgTEVOR1RIX0JJQVMpOwo+IC0KPiAgCQkJaWYgKHVubGlrZWx5KGNtZCArIGxl bmd0aCA+IHBhZ2VfZW5kKSkgewo+ICAJCQkJaWYgKHVubGlrZWx5KGNtZCArIGxlbmd0aCA+IGJh dGNoX2VuZCkpIHsKPiAgCQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDTUQ6IENvbW1hbmQgbGVuZ3Ro IGV4Y2VlZHMgYmF0Y2ggbGVuZ3RoOiAweCUwOFggbGVuZ3RoPSV1IGJhdGNobGVuPSV0ZFxuIiwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA4ZDkzOTY0OWI5MTkuLjI4ZDViZmNlYWUz YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yMzMzLDEyICsyMzMzLDEyIEBA IHN0cnVjdCBkcm1faTkxNV9jbWRfZGVzY3JpcHRvciB7Cj4gIAkgKiAgICAgICAgICAgICAgICAg IGlzIHRoZSBEUk0gbWFzdGVyCj4gIAkgKi8KPiAgCXUzMiBmbGFnczsKPiArI2RlZmluZSBDTURf REVTQ19TS0lQICAgICAoMCkKPiAgI2RlZmluZSBDTURfREVTQ19GSVhFRCAgICAoMTw8MCkKPiAt I2RlZmluZSBDTURfREVTQ19TS0lQICAgICAoMTw8MSkKPiAtI2RlZmluZSBDTURfREVTQ19SRUpF Q1QgICAoMTw8MikKPiAtI2RlZmluZSBDTURfREVTQ19SRUdJU1RFUiAoMTw8MykKPiAtI2RlZmlu ZSBDTURfREVTQ19CSVRNQVNLICAoMTw8NCkKPiAtI2RlZmluZSBDTURfREVTQ19NQVNURVIgICAo MTw8NSkKPiArI2RlZmluZSBDTURfREVTQ19SRUpFQ1QgICAoMTw8MSkKPiArI2RlZmluZSBDTURf REVTQ19SRUdJU1RFUiAoMTw8MikKPiArI2RlZmluZSBDTURfREVTQ19CSVRNQVNLICAoMTw8MykK PiArI2RlZmluZSBDTURfREVTQ19NQVNURVIgICAoMTw8NCkKPiAgCj4gIAkvKgo+ICAJICogVGhl IGNvbW1hbmQncyB1bmlxdWUgaWRlbnRpZmljYXRpb24gYml0cyBhbmQgdGhlIGJpdG1hc2sgdG8g Z2V0IHRoZW0uCj4gLS0gCj4gMi42LjIKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK