From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF76A6EE6D for ; Thu, 21 Nov 2019 13:26:56 +0000 (UTC) References: <20191120000800.16281-1-umesh.nerlige.ramappa@intel.com> <20191120000800.16281-3-umesh.nerlige.ramappa@intel.com> From: Lionel Landwerlin Message-ID: <609f3846-d778-6858-fba1-c446b6db353e@intel.com> Date: Thu, 21 Nov 2019 15:26:58 +0200 MIME-Version: 1.0 In-Reply-To: <20191120000800.16281-3-umesh.nerlige.ramappa@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t v4 3/4] test/perf: Add test for TGL OAR unit List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Umesh Nerlige Ramappa , igt-dev@lists.freedesktop.org Cc: Chris Wilson List-ID: T24gMjAvMTEvMjAxOSAwMjowNywgVW1lc2ggTmVybGlnZSBSYW1hcHBhIHdyb3RlOgo+IEFkZCBh IHRlc3QgdGhhdCBtZWFzdXJlcyB3b3JrIHVzaW5nIE1JLVJQQyBmb3IgdGhlIHNwZWNpZmljIGNv bnRleHQKPiB3aXRob3V0IHVzaW5nIHJlcG9ydHMgZnJvbSB0aGUgT0EgYnVmZmVyLgo+Cj4gVGln ZXJsYWtlIGludHJvZHVjZXMgYW4gT0EgdW5pdCB0aGF0IG1lYXN1cmVzIHdvcmsgc3BlY2lmaWMg dG8gcmVuZGVyCj4gd29ya2xvYWRzLiBUaGlzIG1lYW5zIHdlIGRvIG5vdCBoYXZlIHRvIHJlbHkg b24gcmVwb3J0cyBmcm9tIHRoZSBPQQo+IGJ1ZmZlciB0byBub3JtYWxpemUgdGhlIHJlcG9ydHMg b2J0YWluZWQgZnJvbSBNSSBSRVBPUlQgUEVSRiBDT1VOVAo+IGFueW1vcmUuCj4KPiB2MjoKPiAt IEFkZCBpZ3RfZHJvcF9yb290IHRvIG1ha2UgdGhlIHRlc3QgcnVuIGluIG5vbi1wcml2aWxlZ2Vk IG1vZGUgKExpb25lbCkKPiAtIE1vdmUgcGFyYW1ldGVyIHRvIF9fcGVyZl9vcGVuIGluc2lkZSB0 aGUgc2FtZSBmdW5jdGlvbiAoTGlvbmVsKQo+Cj4gdjMsIHY0Ogo+IC0gQWRkIGlndCB0ZXN0IGRl c2NyaXB0aW9uCj4KPiBTaWduZWQtb2ZmLWJ5OiBVbWVzaCBOZXJsaWdlIFJhbWFwcGEgPHVtZXNo Lm5lcmxpZ2UucmFtYXBwYUBpbnRlbC5jb20+Cj4gLS0tCj4gICB0ZXN0cy9wZXJmLmMgfCAzMzQg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICAx IGZpbGUgY2hhbmdlZCwgMzM0IGluc2VydGlvbnMoKykKPgo+IGRpZmYgLS1naXQgYS90ZXN0cy9w ZXJmLmMgYi90ZXN0cy9wZXJmLmMKPiBpbmRleCA1MDZiNjRlYy4uYjgwYTk1YzcgMTAwNjQ0Cj4g LS0tIGEvdGVzdHMvcGVyZi5jCj4gKysrIGIvdGVzdHMvcGVyZi5jCj4gQEAgLTM2MDAsNiArMzYw MCwzMzQgQEAgZ2VuOF90ZXN0X3NpbmdsZV9jdHhfcmVuZGVyX3RhcmdldF93cml0ZXNfYV9jb3Vu dGVyKHZvaWQpCj4gICAJfSB3aGlsZSAoV0VYSVRTVEFUVVMoY2hpbGRfcmV0KSA9PSBFQUdBSU4p Owo+ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lkIGdlbjEyX3NpbmdsZV9jdHhfaGVscGVyKHZvaWQp Cj4gK3sKPiArCXVpbnQ2NF90IHByb3BlcnRpZXNbXSA9IHsKPiArCQkvKiBIYXZlIGEgcmFuZG9t IHZhbHVlIGhlcmUgZm9yIHRoZSBjb250ZXh0IGlkLCBidXQgaW5pdGlhbGl6ZQo+ICsJCSAqIGl0 IG9uY2UgeW91IGZpZ3VyZSBvdXQgdGhlIGNvbnRleHQgSUQgZm9yIHRoZSB3b3JrIHRvIGJlCj4g KwkJICogbWVhc3VyZWQKPiArCQkgKi8KPiArCQlEUk1fSTkxNV9QRVJGX1BST1BfQ1RYX0hBTkRM RSwgVUlOVDY0X01BWCwKPiArCj4gKwkJLyogT0EgdW5pdCBjb25maWd1cmF0aW9uOgo+ICsJCSAq IERSTV9JOTE1X1BFUkZfUFJPUF9TQU1QTEVfT0EgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGZvciBH ZW4xMgo+ICsJCSAqIGJlY2F1c2UgdGhlIE9BUiB1bml0IGluY3JlbWVudHMgY291bnRlcnMgb25s eSBmb3IgdGhlCj4gKwkJICogcmVsZXZhbnQgY29udGV4dC4gTm8gb3RoZXIgcGFyYW1ldGVycyBh cmUgbmVlZGVkIHNpbmNlIHdlIGRvCj4gKwkJICogbm90IHJlbHkgb24gdGhlIE9BIGJ1ZmZlciBh bnltb3JlIHRvIG5vcm1hbGl6ZSB0aGUgY291bnRlcgo+ICsJCSAqIHZhbHVlcy4KPiArCQkgKi8K PiArCQlEUk1fSTkxNV9QRVJGX1BST1BfT0FfTUVUUklDU19TRVQsIHRlc3RfbWV0cmljX3NldF9p ZCwKPiArCQlEUk1fSTkxNV9QRVJGX1BST1BfT0FfRk9STUFULCB0ZXN0X29hX2Zvcm1hdCwKPiAr CX07Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vcGVuX3BhcmFtIHBhcmFtID0gewo+ICsJCS5m bGFncyA9IEk5MTVfUEVSRl9GTEFHX0ZEX0NMT0VYRUMsCj4gKwkJLm51bV9wcm9wZXJ0aWVzID0g QVJSQVlfU0laRShwcm9wZXJ0aWVzKSAvIDIsCj4gKwkJLnByb3BlcnRpZXNfcHRyID0gdG9fdXNl cl9wb2ludGVyKHByb3BlcnRpZXMpLAo+ICsJfTsKPiArCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1n cjsKPiArCWRybV9pbnRlbF9jb250ZXh0ICpjb250ZXh0MCwgKmNvbnRleHQxOwo+ICsJc3RydWN0 IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaDsKPiArCXN0cnVjdCBpZ3RfYnVmIHNyY1szXSwgZHN0 WzNdOwo+ICsJZHJtX2ludGVsX2JvICpibzsKPiArCXVpbnQzMl90ICpyZXBvcnQwXzMyLCAqcmVw b3J0MV8zMiwgKnJlcG9ydDJfMzIsICpyZXBvcnQzXzMyOwo+ICsJdWludDY0X3QgdGltZXN0YW1w MF82NCwgdGltZXN0YW1wMV82NDsKPiArCXVpbnQzMl90IGRlbHRhX3RzNjQsIGRlbHRhX29hMzI7 Cj4gKwl1aW50NjRfdCBkZWx0YV90czY0X25zLCBkZWx0YV9vYTMyX25zOwo+ICsJdWludDMyX3Qg ZGVsdGFfZGVsdGE7Cj4gKwlpbnQgd2lkdGggPSA4MDA7Cj4gKwlpbnQgaGVpZ2h0ID0gNjAwOwo+ ICsjZGVmaW5lIElOVkFMSURfQ1RYX0lEIDB4ZmZmZmZmZmYKPiArCXVpbnQzMl90IGN0eDBfaWQg PSBJTlZBTElEX0NUWF9JRDsKPiArCXVpbnQzMl90IGN0eDFfaWQgPSBJTlZBTElEX0NUWF9JRDsK PiArCWludCByZXQ7Cj4gKwlzdHJ1Y3QgYWNjdW11bGF0b3IgYWNjdW11bGF0b3IgPSB7Cj4gKwkJ LmZvcm1hdCA9IHRlc3Rfb2FfZm9ybWF0Cj4gKwl9Owo+ICsKPiArCWJ1Zm1nciA9IGRybV9pbnRl bF9idWZtZ3JfZ2VtX2luaXQoZHJtX2ZkLCA0MDk2KTsKPiArCWRybV9pbnRlbF9idWZtZ3JfZ2Vt X2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+ICsKPiArCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlf U0laRShzcmMpOyBpKyspIHsKPiArCQlzY3JhdGNoX2J1Zl9pbml0KGJ1Zm1nciwgJnNyY1tpXSwg d2lkdGgsIGhlaWdodCwgMHhmZjAwMDBmZik7Cj4gKwkJc2NyYXRjaF9idWZfaW5pdChidWZtZ3Is ICZkc3RbaV0sIHdpZHRoLCBoZWlnaHQsIDB4MDBmZjAwZmYpOwo+ICsJfQo+ICsKPiArCWJhdGNo ID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoYnVmbWdyLCBkZXZpZCk7Cj4gKwo+ICsJY29udGV4 dDAgPSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfY3JlYXRlKGJ1Zm1ncik7Cj4gKwlpZ3RfYXNzZXJ0 KGNvbnRleHQwKTsKPiArCj4gKwljb250ZXh0MSA9IGRybV9pbnRlbF9nZW1fY29udGV4dF9jcmVh dGUoYnVmbWdyKTsKPiArCWlndF9hc3NlcnQoY29udGV4dDEpOwo+ICsKPiArCWlndF9kZWJ1Zygi c3VibWl0dGluZyB3YXJtIHVwIHJlbmRlcl9jb3B5XG4iKTsKPiArCj4gKwkvKiBTdWJtaXQgc29t ZSBlYXJseSwgdW5tZWFzdXJlZCwgd29yayB0byB0aGUgY29udGV4dCB3ZSB3YW50Cj4gKwkgKiB0 byBtZWFzdXJlIHRvIHRyeSBhbmQgY2F0Y2ggaXNzdWVzIHdpdGggaTkxNS1wZXJmCj4gKwkgKiBp bml0aWFsaXppbmcgdGhlIEhXIGNvbnRleHQgSUQgZm9yIGZpbHRlcmluZy4KPiArCSAqCj4gKwkg KiBXZSBkbyB0aGlzIGJlY2F1c2UgaTkxNS1wZXJmIHNpbmdsZSBjb250ZXh0IGZpbHRlcmluZyBo YWQKPiArCSAqIHByZXZpb3VzbHkgb25seSByZWxpZWQgb24gYSBob29rIGludG8gY29udGV4dCBw aW5uaW5nIHRvCj4gKwkgKiBpbml0aWFsaXplIHRoZSBIVyBjb250ZXh0IElELCBpbnN0ZWFkIG9m IGFsc28gdHJ5aW5nIHRvCj4gKwkgKiBkZXRlcm1pbmUgdGhlIEhXIElEIHdoaWxlIG9wZW5pbmcg dGhlIHN0cmVhbSwgaW4gY2FzZSBpdAo+ICsJICogaGFzIGFscmVhZHkgYmVlbiBwaW5uZWQuCj4g KwkgKgo+ICsJICogVGhpcyB3YXNuJ3Qgbm90aWNlZCBieSB0aGUgcHJldmlvdXMgdW5pdCB0ZXN0 IGJlY2F1c2Ugd2UKPiArCSAqIHdlcmUgb3BlbmluZyB0aGUgc3RyZWFtIHdoaWxlIHRoZSBjb250 ZXh0IGhhZG4ndCBiZWVuCj4gKwkgKiB0b3VjaGVkIG9yIHBpbm5lZCB5ZXQgYW5kIHNvIGl0IHdv cmtlZCBvdXQgY29ycmVjdGx5IHRvIHdhaXQKPiArCSAqIGZvciB0aGUgcGlubmluZyBob29rLgo+ ICsJICoKPiArCSAqIE5vdyBhIGJ1Z2d5IHZlcnNpb24gb2YgaTkxNS1wZXJmIHdpbGwgZmFpbCB0 byBtZWFzdXJlCj4gKwkgKiBhbnl0aGluZyBmb3IgY29udGV4dDAgb25jZSB0aGlzIGluaXRpYWwg cmVuZGVyX2NvcHkoKSBlbmRzCj4gKwkgKiB1cCBwaW5uaW5nIHRoZSBjb250ZXh0IHNpbmNlIHRo ZXJlIHdvbid0IGV2ZXIgYmUgYSBwaW5uaW5nCj4gKwkgKiBob29rIGNhbGxiYWNrLgo+ICsJICov Cj4gKwlyZW5kZXJfY29weShiYXRjaCwgY29udGV4dDAsCj4gKwkJICAgICZzcmNbMF0sIDAsIDAs IHdpZHRoLCBoZWlnaHQsCj4gKwkJICAgICZkc3RbMF0sIDAsIDApOwo+ICsKPiArCS8qIEluaXRp YWxpemUgdGhlIGNvbnRleHQgcGFyYW1ldGVyIHRvIHRoZSBwZXJmIG9wZW4gaW9jdGwgaGVyZSAq Lwo+ICsJcmV0ID0gZHJtX2ludGVsX2dlbV9jb250ZXh0X2dldF9pZChjb250ZXh0MCwgJmN0eDBf aWQpOwo+ICsJaWd0X2Fzc2VydF9lcShyZXQsIDApOwo+ICsJaWd0X2Fzc2VydF9uZXEoY3R4MF9p ZCwgMHhmZmZmZmZmZik7Cj4gKwlwcm9wZXJ0aWVzWzFdID0gY3R4MF9pZDsKPiArCj4gKwlpZ3Rf ZGVidWcoIm9wZW5pbmcgaTkxNS1wZXJmIHN0cmVhbVxuIik7Cj4gKwlzdHJlYW1fZmQgPSBfX3Bl cmZfb3Blbihkcm1fZmQsICZwYXJhbSwgZmFsc2UpOwo+ICsKPiArCWJvID0gZHJtX2ludGVsX2Jv X2FsbG9jKGJ1Zm1nciwgIm1pX3JwYyBkZXN0IGJvIiwgNDA5NiwgNjQpOwo+ICsKPiArCS8qIFNl dCB3cml0ZSBkb21haW4gdG8gY3B1IGJyaWVmbHkgdG8gZmlsbCB0aGUgYnVmZmVyIHdpdGggODBz ICovCj4gKwlyZXQgPSBkcm1faW50ZWxfYm9fbWFwKGJvLCB0cnVlKTsKPiArCWlndF9hc3NlcnRf ZXEocmV0LCAwKTsKPiArCW1lbXNldChiby0+dmlydHVhbCwgMHg4MCwgMjA0OCk7Cj4gKwltZW1z ZXQoYm8tPnZpcnR1YWwgKyAyMDQ4LCAwLCAyMDQ4KTsKPiArCWRybV9pbnRlbF9ib191bm1hcChi byk7Cj4gKwo+ICsJLyogU3VibWl0IGFuIG1pLXJwYyB0byBjb250ZXh0MCBiZWZvcmUgbWVhc3Vy YWJsZSB3b3JrICovCj4gKyNkZWZpbmUgQk9fVElNRVNUQU1QX09GRlNFVDAgMTAyNAo+ICsjZGVm aW5lIEJPX1JFUE9SVF9PRkZTRVQwIDAKPiArI2RlZmluZSBCT19SRVBPUlRfSUQwIDB4ZGVhZGJl ZWYKPiArCWVtaXRfc3RhbGxfdGltZXN0YW1wX2FuZF9ycGMoYmF0Y2gsCj4gKwkJCQkgICAgIGJv LAo+ICsJCQkJICAgICBCT19USU1FU1RBTVBfT0ZGU0VUMCwKPiArCQkJCSAgICAgQk9fUkVQT1JU X09GRlNFVDAsCj4gKwkJCQkgICAgIEJPX1JFUE9SVF9JRDApOwo+ICsJaW50ZWxfYmF0Y2hidWZm ZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MCk7Cj4gKwo+ICsJLyogVGhpcyBp cyB0aGUgd29yay9jb250ZXh0IHRoYXQgaXMgbWVhc3VyZWQgZm9yIGNvdW50ZXIgaW5jcmVtZW50 cyAqLwo+ICsJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRleHQwLAo+ICsJCSAgICAmc3JjWzBdLCAw LCAwLCB3aWR0aCwgaGVpZ2h0LAo+ICsJCSAgICAmZHN0WzBdLCAwLCAwKTsKPiArCWludGVsX2Jh dGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dDApOwo+ICsKPiArCS8q IFN1Ym1pdCBhbiBtaS1ycGMgdG8gY29udGV4dDEgYmVmb3JlIHdvcmsKPiArCSAqCj4gKwkgKiBP biBnZW4xMiwgdGhpcyBtZWFzdXJlbWVudCBzaG91bGQganVzdCB5aWVsZCBjb3VudGVycyB0aGF0 IGFyZQo+ICsJICogYWxsIHplcm9lcywgc2luY2UgdGhlIGNvdW50ZXJzIHdpbGwgb25seSBpbmNy ZW1lbnQgZm9yIHRoZQo+ICsJICogY29udGV4dCBwYXNzZWQgdG8gcGVyZiBvcGVuIGlvY3RsCj4g KwkgKi8KPiArI2RlZmluZSBCT19USU1FU1RBTVBfT0ZGU0VUMiAxMDQwCj4gKyNkZWZpbmUgQk9f UkVQT1JUX09GRlNFVDIgNTEyCj4gKyNkZWZpbmUgQk9fUkVQT1JUX0lEMiAweDAwYzBmZmVlCj4g KwllbWl0X3N0YWxsX3RpbWVzdGFtcF9hbmRfcnBjKGJhdGNoLAo+ICsJCQkJICAgICBibywKPiAr CQkJCSAgICAgQk9fVElNRVNUQU1QX09GRlNFVDIsCj4gKwkJCQkgICAgIEJPX1JFUE9SVF9PRkZT RVQyLAo+ICsJCQkJICAgICBCT19SRVBPUlRfSUQyKTsKPiArCWludGVsX2JhdGNoYnVmZmVyX2Zs dXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dDEpOwo+ICsKPiArCS8qIFN1Ym1pdCB0d28g Y29waWVzIG9uIHRoZSBvdGhlciBjb250ZXh0IHRvIGF2b2lkIGEgZmFsc2UKPiArCSAqIHBvc2l0 aXZlIGluIGNhc2UgdGhlIGRyaXZlciBzb21laG93IGVuZGVkIHVwIGZpbHRlcmluZyBmb3IKPiAr CSAqIGNvbnRleHQxCj4gKwkgKi8KPiArCXJlbmRlcl9jb3B5KGJhdGNoLCBjb250ZXh0MSwKPiAr CQkgICAgJnNyY1sxXSwgMCwgMCwgd2lkdGgsIGhlaWdodCwKPiArCQkgICAgJmRzdFsxXSwgMCwg MCk7Cj4gKwlyZXQgPSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfZ2V0X2lkKGNvbnRleHQxLCAmY3R4 MV9pZCk7Cj4gKwlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7Cj4gKwlpZ3RfYXNzZXJ0X25lcShjdHgx X2lkLCAweGZmZmZmZmZmKTsKPiArCj4gKwlyZW5kZXJfY29weShiYXRjaCwgY29udGV4dDEsCj4g KwkJICAgICZzcmNbMl0sIDAsIDAsIHdpZHRoLCBoZWlnaHQsCj4gKwkJICAgICZkc3RbMl0sIDAs IDApOwo+ICsJaW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250 ZXh0MSk7Cj4gKwo+ICsJLyogU3VibWl0IGFuIG1pLXJwYyB0byBjb250ZXh0MSBhZnRlciBhbGwg d29yayAqLwo+ICsjZGVmaW5lIEJPX1RJTUVTVEFNUF9PRkZTRVQzIDEwNDgKPiArI2RlZmluZSBC T19SRVBPUlRfT0ZGU0VUMyA3NjgKPiArI2RlZmluZSBCT19SRVBPUlRfSUQzIDB4MDFjMGZmZWUK PiArCWVtaXRfc3RhbGxfdGltZXN0YW1wX2FuZF9ycGMoYmF0Y2gsCj4gKwkJCQkgICAgIGJvLAo+ ICsJCQkJICAgICBCT19USU1FU1RBTVBfT0ZGU0VUMywKPiArCQkJCSAgICAgQk9fUkVQT1JUX09G RlNFVDMsCj4gKwkJCQkgICAgIEJPX1JFUE9SVF9JRDMpOwo+ICsJaW50ZWxfYmF0Y2hidWZmZXJf Zmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MSk7Cj4gKwo+ICsJLyogU3VibWl0IGFu IG1pLXJwYyB0byBjb250ZXh0MCBhZnRlciBhbGwgbWVhc3VyYWJsZSB3b3JrICovCj4gKyNkZWZp bmUgQk9fVElNRVNUQU1QX09GRlNFVDEgMTAzMgo+ICsjZGVmaW5lIEJPX1JFUE9SVF9PRkZTRVQx IDI1Ngo+ICsjZGVmaW5lIEJPX1JFUE9SVF9JRDEgMHhiZWVmYmVlZgo+ICsJZW1pdF9zdGFsbF90 aW1lc3RhbXBfYW5kX3JwYyhiYXRjaCwKPiArCQkJCSAgICAgYm8sCj4gKwkJCQkgICAgIEJPX1RJ TUVTVEFNUF9PRkZTRVQxLAo+ICsJCQkJICAgICBCT19SRVBPUlRfT0ZGU0VUMSwKPiArCQkJCSAg ICAgQk9fUkVQT1JUX0lEMSk7Cj4gKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaF93aXRoX2NvbnRl eHQoYmF0Y2gsIGNvbnRleHQwKTsKPiArCj4gKwkvKiBTZXQgd3JpdGUgZG9tYWluIHRvIG5vbmUg Ki8KPiArCXJldCA9IGRybV9pbnRlbF9ib19tYXAoYm8sIGZhbHNlKTsKPiArCWlndF9hc3NlcnRf ZXEocmV0LCAwKTsKPiArCj4gKwkvKiBTYW5pdHkgY2hlY2sgcmVwb3J0cwo+ICsJICogcmVwb3J0 WF8zMlswXTogcmVwb3J0IGlkIHBhc3NlZCB3aXRoIG1pLXJwYwo+ICsJICogcmVwb3J0WF8zMlsx XTogdGltZXN0YW1wCj4gKwkgKiByZXBvcnRYXzMyWzJdOiBjb250ZXh0IGlkCj4gKwkgKgo+ICsJ ICogcmVwb3J0MF8zMjogc3RhcnQgb2YgbWVhc3VyYWJsZSB3b3JrCj4gKwkgKiByZXBvcnQxXzMy OiBlbmQgb2YgbWVhc3VyYWJsZSB3b3JrCj4gKwkgKiByZXBvcnQyXzMyOiBzdGFydCBvZiBvdGhl ciB3b3JrCj4gKwkgKiByZXBvcnQzXzMyOiBlbmQgb2Ygb3RoZXIgd29yawo+ICsJICovCj4gKwly ZXBvcnQwXzMyID0gYm8tPnZpcnR1YWw7Cj4gKwlpZ3RfYXNzZXJ0X2VxKHJlcG9ydDBfMzJbMF0s IDB4ZGVhZGJlZWYpOwo+ICsJaWd0X2Fzc2VydF9uZXEocmVwb3J0MF8zMlsxXSwgMCk7Cj4gKwlj dHgwX2lkID0gcmVwb3J0MF8zMlsyXTsKPiArCWlndF9kZWJ1ZygiTUlfUlBDKHN0YXJ0KSBDVFgg SUQ6ICV1XG4iLCBjdHgwX2lkKTsKPiArCWR1bXBfcmVwb3J0KHJlcG9ydDBfMzIsIDY0LCAicmVw b3J0MF8zMiIpOwo+ICsKPiArCXJlcG9ydDFfMzIgPSByZXBvcnQwXzMyICsgNjQ7Cj4gKwlpZ3Rf YXNzZXJ0X2VxKHJlcG9ydDFfMzJbMF0sIDB4YmVlZmJlZWYpOwo+ICsJaWd0X2Fzc2VydF9uZXEo cmVwb3J0MV8zMlsxXSwgMCk7Cj4gKwljdHgxX2lkID0gcmVwb3J0MV8zMlsyXTsKPiArCWR1bXBf cmVwb3J0KHJlcG9ydDFfMzIsIDY0LCAicmVwb3J0MV8zMiIpOwo+ICsKPiArCS8qIFZlcmlmeSB0 aGF0IGNvdW50ZXJzIGluIGNvbnRleHQxIGFyZSBhbGwgemVyb2VzICovCj4gKwlyZXBvcnQyXzMy ID0gcmVwb3J0MF8zMiArIDEyODsKPiArCWlndF9hc3NlcnRfZXEocmVwb3J0Ml8zMlswXSwgMHgw MGMwZmZlZSk7Cj4gKwlpZ3RfYXNzZXJ0X25lcShyZXBvcnQyXzMyWzFdLCAwKTsKPiArCWR1bXBf cmVwb3J0KHJlcG9ydDJfMzIsIDY0LCAicmVwb3J0Ml8zMiIpOwo+ICsJaWd0X2Fzc2VydF9lcSgw LCBtZW1jbXAoJnJlcG9ydDJfMzJbNF0sCj4gKwkJCQliby0+dmlydHVhbCArIDIwNDgsCj4gKwkJ CQkyNDApKTsKPiArCj4gKwlyZXBvcnQzXzMyID0gcmVwb3J0MF8zMiArIDE5MjsKPiArCWlndF9h c3NlcnRfZXEocmVwb3J0M18zMlswXSwgMHgwMWMwZmZlZSk7Cj4gKwlpZ3RfYXNzZXJ0X25lcShy ZXBvcnQzXzMyWzFdLCAwKTsKPiArCWR1bXBfcmVwb3J0KHJlcG9ydDNfMzIsIDY0LCAicmVwb3J0 M18zMiIpOwo+ICsJaWd0X2Fzc2VydF9lcSgwLCBtZW1jbXAoJnJlcG9ydDNfMzJbNF0sCj4gKwkJ CQliby0+dmlydHVhbCArIDIwNDgsCj4gKwkJCQkyNDApKTsKPiArCj4gKwkvKiBBY2N1bXVsYXRl IGRlbHRhcyBmb3IgY291bnRlcnMgLSBBMCwgQTIxIGFuZCBBMjYgKi8KPiArCW1lbXNldChhY2N1 bXVsYXRvci5kZWx0YXMsIDAsIHNpemVvZihhY2N1bXVsYXRvci5kZWx0YXMpKTsKPiArCWFjY3Vt dWxhdGVfcmVwb3J0cygmYWNjdW11bGF0b3IsIHJlcG9ydDBfMzIsIHJlcG9ydDFfMzIpOwo+ICsJ aWd0X2RlYnVnKCJ0b3RhbDogQTAgPSAlIlBSSXU2NCIsIEEyMSA9ICUiUFJJdTY0IiwgQTI2ID0g JSJQUkl1NjQiXG4iLAo+ICsJCQlhY2N1bXVsYXRvci5kZWx0YXNbMiArIDBdLAo+ICsJCQlhY2N1 bXVsYXRvci5kZWx0YXNbMiArIDIxXSwKPiArCQkJYWNjdW11bGF0b3IuZGVsdGFzWzIgKyAyNl0p OwoKCldoYXQgZGVsdGEgZG8geW91IHNlZSBmb3IgdGhlIGNvbnRleHQgdGhhdCBpcyBub3QgZ2l2 ZW4gdG8gaTkxNS1wZXJmPwoKQXNraW5nIGJlY2F1c2UgSSB3YW50IHRvIHZlcmlmeSB0aGF0IHdl IGNhbiBhY3R1YWxseSBhbGxvdyBub24gCnByaXZpbGVnZWQgY29udGV4dCB0byBvcGVuIHdpdGhv dXQgb3RoZXIgY29udGV4dCBzZWVpbmcgZ2xvYmFsIHZhbHVlcyAKKGkuZS4gbm9uIHNhdmVkL3Jl c3RvcmVkKSBpbiBPQVIuCgoKLUxpb25lbAoKPiArCj4gKwlpZ3RfZGVidWcoIm9hX3RpbWVzdGFt cDMyIDAgPSAldVxuIiwgcmVwb3J0MF8zMlsxXSk7Cj4gKwlpZ3RfZGVidWcoIm9hX3RpbWVzdGFt cDMyIDEgPSAldVxuIiwgcmVwb3J0MV8zMlsxXSk7Cj4gKwlpZ3RfZGVidWcoImN0eF9pZCAwID0g JXVcbiIsIHJlcG9ydDBfMzJbMl0pOwo+ICsJaWd0X2RlYnVnKCJjdHhfaWQgMSA9ICV1XG4iLCBy ZXBvcnQxXzMyWzJdKTsKPiArCj4gKwkvKiBUaGUgZGVsdGEgYXMgY2FsY3VsYXRlZCB2aWEgdGhl IFBJUEVfQ09OVFJPTCB0aW1lc3RhbXAgb3IKPiArCSAqIHRoZSBPQSByZXBvcnQgdGltZXN0YW1w cyBzaG91bGQgYmUgYWxtb3N0IGlkZW50aWNhbCBidXQKPiArCSAqIGFsbG93IGEgNTAwIG5hbm9z ZWNvbmRzIG1hcmdpbi4KPiArCSAqLwo+ICsJdGltZXN0YW1wMF82NCA9ICoodWludDY0X3QgKiko KCh1aW50OF90ICopYm8tPnZpcnR1YWwpICsgQk9fVElNRVNUQU1QX09GRlNFVDApOwo+ICsJdGlt ZXN0YW1wMV82NCA9ICoodWludDY0X3QgKikoKCh1aW50OF90ICopYm8tPnZpcnR1YWwpICsgQk9f VElNRVNUQU1QX09GRlNFVDEpOwo+ICsKPiArCWlndF9kZWJ1ZygidHNfdGltZXN0YW1wNjQgMCA9 ICUiUFJJdTY0IlxuIiwgdGltZXN0YW1wMF82NCk7Cj4gKwlpZ3RfZGVidWcoInRzX3RpbWVzdGFt cDY0IDEgPSAlIlBSSXU2NCJcbiIsIHRpbWVzdGFtcDFfNjQpOwo+ICsKPiArCWRlbHRhX3RzNjQg PSB0aW1lc3RhbXAxXzY0IC0gdGltZXN0YW1wMF82NDsKPiArCWRlbHRhX29hMzIgPSByZXBvcnQx XzMyWzFdIC0gcmVwb3J0MF8zMlsxXTsKPiArCj4gKwkvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBj YW4gcGFzcyB0aGUgZGVsdGEgdG8gdGltZWJhc2Vfc2NhbGUgKi8KPiArCWlndF9hc3NlcnQoZGVs dGFfdHM2NCA8IFVJTlQzMl9NQVgpOwo+ICsJZGVsdGFfb2EzMl9ucyA9IHRpbWViYXNlX3NjYWxl KGRlbHRhX29hMzIpOwo+ICsJZGVsdGFfdHM2NF9ucyA9IHRpbWViYXNlX3NjYWxlKGRlbHRhX3Rz NjQpOwo+ICsKPiArCWlndF9kZWJ1Zygib2EzMiBkZWx0YSA9ICV1LCA9ICV1bnNcbiIsCj4gKwkJ CWRlbHRhX29hMzIsICh1bnNpZ25lZClkZWx0YV9vYTMyX25zKTsKPiArCWlndF9kZWJ1ZygidHM2 NCBkZWx0YSA9ICV1LCA9ICV1bnNcbiIsCj4gKwkJCWRlbHRhX3RzNjQsICh1bnNpZ25lZClkZWx0 YV90czY0X25zKTsKPiArCj4gKwlkZWx0YV9kZWx0YSA9IGRlbHRhX3RzNjRfbnMgPiBkZWx0YV9v YTMyX25zID8KPiArCQkgICAgICAoZGVsdGFfdHM2NF9ucyAtIGRlbHRhX29hMzJfbnMpIDoKPiAr CQkgICAgICAoZGVsdGFfb2EzMl9ucyAtIGRlbHRhX3RzNjRfbnMpOwo+ICsJaWYgKGRlbHRhX2Rl bHRhID4gNTAwKSB7Cj4gKwkJaWd0X2RlYnVnKCJkZWx0YV9kZWx0YSBleGNlZWRzIG1hcmdpbiwg c2tpcHBpbmcuLlxuIik7Cj4gKwkJZXhpdChFQUdBSU4pOwo+ICsJfQo+ICsKPiArCWlndF9kZWJ1 ZygibiBzYW1wbGVzIHdyaXR0ZW4gPSAlIlBSSXU2NCIvJSJQUkl1NjQiICglaXglaSlcbiIsCj4g KwkJICBhY2N1bXVsYXRvci5kZWx0YXNbMiArIDIxXSwKPiArCQkgIGFjY3VtdWxhdG9yLmRlbHRh c1syICsgMjZdLAo+ICsJCSAgd2lkdGgsIGhlaWdodCk7Cj4gKwlhY2N1bXVsYXRvcl9wcmludCgm YWNjdW11bGF0b3IsICJmaWx0ZXJlZCIpOwo+ICsKPiArCS8qIFZlcmlmeSB0aGF0IHRoZSB3b3Jr IGFjdHVhbGx5IGhhcHBlbmVkIGJ5IGNvbXBhcmluZyB0aGUgc3JjCj4gKwkgKiBhbmQgZHN0IGJ1 ZmZlcnMKPiArCSAqLwo+ICsJcmV0ID0gZHJtX2ludGVsX2JvX21hcChzcmNbMF0uYm8sIGZhbHNl KTsKPiArCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKPiArCXJldCA9IGRybV9pbnRlbF9ib19tYXAo ZHN0WzBdLmJvLCBmYWxzZSk7Cj4gKwlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7Cj4gKwo+ICsJcmV0 ID0gbWVtY21wKHNyY1swXS5iby0+dmlydHVhbCwgZHN0WzBdLmJvLT52aXJ0dWFsLCA0ICogd2lk dGggKiBoZWlnaHQpOwo+ICsJaWYgKHJldCAhPSAwKSB7Cj4gKwkJYWNjdW11bGF0b3JfcHJpbnQo JmFjY3VtdWxhdG9yLCAidG90YWwiKTsKPiArCQlleGl0KEVBR0FJTik7Cj4gKwl9Cj4gKwo+ICsJ ZHJtX2ludGVsX2JvX3VubWFwKHNyY1swXS5ibyk7Cj4gKwlkcm1faW50ZWxfYm9fdW5tYXAoZHN0 WzBdLmJvKTsKPiArCj4gKwkvKiBDaGVjayB0aGF0IHRoaXMgdGVzdCBwYXNzZWQuIFRoZSB0ZXN0 IG1lYXN1cmVzIHRoZSBudW1iZXIgb2YgMngyCj4gKwkgKiBzYW1wbGVzIHdyaXR0ZW4gdG8gdGhl IHJlbmRlciB0YXJnZXQgdXNpbmcgdGhlIGNvdW50ZXIgQTI2LiBGb3IKPiArCSAqIE9BUiwgdGhp cyBjb3VudGVyIHdpbGwgb25seSBoYXZlIGluY3JlbWVudHMgcmVsZXZhbnQgdG8gdGhpcyBzcGVj aWZpYwo+ICsJICogY29udGV4dC4gVGhlIHZhbHVlIGVxdWFscyB0aGUgd2lkdGggKiBoZWlnaHQg b2YgdGhlIHJlbmRlcmVkIHdvcmsuCj4gKwkgKi8KPiArCWlndF9hc3NlcnRfZXEoYWNjdW11bGF0 b3IuZGVsdGFzWzIgKyAyNl0sIHdpZHRoICogaGVpZ2h0KTsKPiArCj4gKwkvKiBDbGVhbiB1cCAq Lwo+ICsJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNyYyk7IGkrKykgewo+ICsJCWRy bV9pbnRlbF9ib191bnJlZmVyZW5jZShzcmNbaV0uYm8pOwo+ICsJCWRybV9pbnRlbF9ib191bnJl ZmVyZW5jZShkc3RbaV0uYm8pOwo+ICsJfQo+ICsKPiArCWRybV9pbnRlbF9ib191bm1hcChibyk7 Cj4gKwlkcm1faW50ZWxfYm9fdW5yZWZlcmVuY2UoYm8pOwo+ICsJaW50ZWxfYmF0Y2hidWZmZXJf ZnJlZShiYXRjaCk7Cj4gKwlkcm1faW50ZWxfZ2VtX2NvbnRleHRfZGVzdHJveShjb250ZXh0MCk7 Cj4gKwlkcm1faW50ZWxfZ2VtX2NvbnRleHRfZGVzdHJveShjb250ZXh0MSk7Cj4gKwlkcm1faW50 ZWxfYnVmbWdyX2Rlc3Ryb3koYnVmbWdyKTsKPiArCV9fcGVyZl9jbG9zZShzdHJlYW1fZmQpOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtnZW4xMl90ZXN0X3NpbmdsZV9jdHhfcmVuZGVyX3Rh cmdldF93cml0ZXNfYV9jb3VudGVyKHZvaWQpCj4gK3sKPiArCWludCBjaGlsZF9yZXQ7Cj4gKwlz dHJ1Y3QgaWd0X2hlbHBlcl9wcm9jZXNzIGNoaWxkID0ge307Cj4gKwo+ICsJLyogRW5zdXJlIHBl cmZfc3RyZWFtX3BhcmFub2lkIGlzIHNldCB0byAxIGJ5IGRlZmF1bHQgKi8KPiArCXdyaXRlX3U2 NF9maWxlKCIvcHJvYy9zeXMvZGV2L2k5MTUvcGVyZl9zdHJlYW1fcGFyYW5vaWQiLCAxKTsKPiAr Cj4gKwlkbyB7Cj4gKwkJaWd0X2ZvcmtfaGVscGVyKCZjaGlsZCkgewo+ICsJCQlpZ3RfZHJvcF9y b290KCk7Cj4gKwkJCWdlbjEyX3NpbmdsZV9jdHhfaGVscGVyKCk7Cj4gKwkJfQo+ICsJCWNoaWxk X3JldCA9IGlndF93YWl0X2hlbHBlcigmY2hpbGQpOwo+ICsJCWlndF9hc3NlcnQoV0VYSVRTVEFU VVMoY2hpbGRfcmV0KSA9PSBFQUdBSU4gfHwKPiArCQkJICAgV0VYSVRTVEFUVVMoY2hpbGRfcmV0 KSA9PSAwKTsKPiArCX0gd2hpbGUgKFdFWElUU1RBVFVTKGNoaWxkX3JldCkgPT0gRUFHQUlOKTsK PiArfQo+ICsKPiAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJjNl9yZXNpZGVuY3lfbXModm9pZCkK PiAgIHsKPiAgIAlyZXR1cm4gc3lzZnNfcmVhZCgicG93ZXIvcmM2X3Jlc2lkZW5jeV9tcyIpOwo+ IEBAIC00MjI1LDYgKzQ1NTMsMTIgQEAgaWd0X21haW4KPiAgIAkJZ2VuOF90ZXN0X3NpbmdsZV9j dHhfcmVuZGVyX3RhcmdldF93cml0ZXNfYV9jb3VudGVyKCk7Cj4gICAJfQo+ICAgCj4gKwlpZ3Rf ZGVzY3JpYmUoIk1lYXN1cmUgcGVyZm9ybWFuY2UgZm9yIGEgc3BlY2lmaWMgY29udGV4dCB1c2lu ZyBPQVIgaW4gR2VuIDEyIik7Cj4gKwlpZ3Rfc3VidGVzdCgiZ2VuMTItdW5wcml2aWxlZ2VkLXNp bmdsZS1jdHgtY291bnRlcnMiKSB7Cj4gKwkJaWd0X3JlcXVpcmUoaW50ZWxfZ2VuKGRldmlkKSA+ PSAxMik7Cj4gKwkJZ2VuMTJfdGVzdF9zaW5nbGVfY3R4X3JlbmRlcl90YXJnZXRfd3JpdGVzX2Ff Y291bnRlcigpOwo+ICsJfQo+ICsKPiAgIAlpZ3Rfc3VidGVzdCgicmM2LWRpc2FibGUiKQo+ICAg CQl0ZXN0X3JjNl9kaXNhYmxlKCk7Cj4gICAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXY=