From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 093946E50E for ; Mon, 18 Nov 2019 13:15:26 +0000 (UTC) References: <20191111221655.33172-1-umesh.nerlige.ramappa@intel.com> <20191111221655.33172-2-umesh.nerlige.ramappa@intel.com> From: Lionel Landwerlin Message-ID: <15d99ece-a27c-f36a-6496-6bd1883a9876@intel.com> Date: Mon, 18 Nov 2019 15:15:22 +0200 MIME-Version: 1.0 In-Reply-To: <20191111221655.33172-2-umesh.nerlige.ramappa@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 2/3] 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 , Chris Wilson , igt-dev@lists.freedesktop.org List-ID: SGV5IFVtZXNoLAoKSnVzdCBhIGZldyBjaGFuZ2VzIGJ1dCBvdGhlcndpc2UgaXQgbG9va3MgZ29v ZC4KClRoYW5rcywKCgotTGlvbmVsCgpPbiAxMi8xMS8yMDE5IDAwOjE2LCBVbWVzaCBOZXJsaWdl IFJhbWFwcGEgd3JvdGU6Cj4gQWRkIGEgdGVzdCB0aGF0IG1lYXN1cmVzIHdvcmsgdXNpbmcgTUkt UlBDIGZvciB0aGUgc3BlY2lmaWMgY29udGV4dAo+IHdpdGhvdXQgdXNpbmcgcmVwb3J0cyBmcm9t IHRoZSBPQSBidWZmZXIuCj4KPiBUaWdlcmxha2UgaW50cm9kdWNlcyBhbiBPQSB1bml0IHRoYXQg bWVhc3VyZXMgd29yayBzcGVjaWZpYyB0byByZW5kZXIKPiB3b3JrbG9hZHMuIFRoaXMgbWVhbnMg d2UgZG8gbm90IGhhdmUgdG8gcmVseSBvbiByZXBvcnRzIGZyb20gdGhlIE9BCj4gYnVmZmVyIHRv IG5vcm1hbGl6ZSB0aGUgcmVwb3J0cyBvYnRhaW5lZCBmcm9tIE1JIFJFUE9SVCBQRVJGIENPVU5U Cj4gYW55bW9yZS4KPgo+IFNpZ25lZC1vZmYtYnk6IFVtZXNoIE5lcmxpZ2UgUmFtYXBwYSA8dW1l c2gubmVybGlnZS5yYW1hcHBhQGludGVsLmNvbT4KPiAtLS0KPiAgIHRlc3RzL3BlcmYuYyB8IDM1 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg IDEgZmlsZSBjaGFuZ2VkLCAzNTMgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L3BlcmYuYyBiL3Rlc3RzL3BlcmYuYwo+IGluZGV4IDJiNmJlMTM0Li5iNDM5ZTViZCAxMDA2NDQK PiAtLS0gYS90ZXN0cy9wZXJmLmMKPiArKysgYi90ZXN0cy9wZXJmLmMKPiBAQCAtMjEwLDYgKzIx MCwxOSBAQCBzdGF0aWMgdWludDMyX3QgKCpyZWFkX3JlcG9ydF90aWNrcykodWludDMyX3QgKnJl cG9ydCwKPiAgIHN0YXRpYyB2b2lkICgqc2FuaXR5X2NoZWNrX3JlcG9ydHMpKHVpbnQzMl90ICpv YV9yZXBvcnQwLCB1aW50MzJfdCAqb2FfcmVwb3J0MSwKPiAgIAkJCQkgICAgZW51bSBkcm1faTkx NV9vYV9mb3JtYXQgZm9ybWF0KTsKPiAgIAo+ICtzdGF0aWMgdm9pZAo+ICtkdW1wX3JlcG9ydChj b25zdCB1aW50MzJfdCAqcmVwb3J0LCB1aW50MzJfdCBzaXplLCBjb25zdCBjaGFyICptZXNzYWdl KSB7Cj4gKwl1aW50MzJfdCBpOwo+ICsJaWd0X2RlYnVnKCIlc1xuIiwgbWVzc2FnZSk7Cj4gKwlm b3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSArPSA0KSB7Cj4gKwkJaWd0X2RlYnVnKCIlMDh4ICUwOHgg JTA4eCAlMDh4XG4iLAo+ICsJCQkJcmVwb3J0W2ldLAo+ICsJCQkJcmVwb3J0W2kgKyAxXSwKPiAr CQkJCXJlcG9ydFtpICsgMl0sCj4gKwkJCQlyZXBvcnRbaSArIDNdKTsKPiArCX0KPiArfQo+ICsK CgpJIHdvdWxkIHB1dCBhbGwgdGhlIGRlYnVnIHRyYWNlcyBpbiBhIHNlcGFyYXRlIHBhdGNoIHBy ZWNlZGluZyB0aGlzIG9uZS4KCgo+ICAgc3RhdGljIHN0cnVjdCBvYV9mb3JtYXQKPiAgIGdldF9v YV9mb3JtYXQoZW51bSBkcm1faTkxNV9vYV9mb3JtYXQgZm9ybWF0KQo+ICAgewo+IEBAIC04NzQs NiArODg3LDcgQEAgaW5pdF9zeXNfaW5mbyh2b2lkKQo+ICAgCWlndF9hc3NlcnRfbmVxKGRldmlk LCAwKTsKPiAgIAo+ICAgCXRpbWVzdGFtcF9mcmVxdWVuY3kgPSBnZXRfY3NfdGltZXN0YW1wX2Zy ZXF1ZW5jeSgpOwo+ICsJaWd0X2RlYnVnKCJ0aW1lc3RhbXBfZnJlcXVlbmN5ID0gJWx1XG4iLCB0 aW1lc3RhbXBfZnJlcXVlbmN5KTsKPiAgIAlpZ3RfYXNzZXJ0X25lcSh0aW1lc3RhbXBfZnJlcXVl bmN5LCAwKTsKPiAgIAo+ICAgCWlmIChJU19IQVNXRUxMKGRldmlkKSkgewo+IEBAIC0xMjg5LDYg KzEzMDMsNyBAQCByZWFkXzJfb2FfcmVwb3J0cyhpbnQgZm9ybWF0X2lkLAo+ICAgCQkJaWd0X2Fz c2VydF9lcShoZWFkZXItPnNpemUsIHNhbXBsZV9zaXplKTsKPiAgIAo+ICAgCQkJcmVwb3J0ID0g KGNvbnN0IHZvaWQgKikoaGVhZGVyICsgMSk7Cj4gKwkJCWR1bXBfcmVwb3J0KHJlcG9ydCwgNjQs ICJvYS1mb3JtYXRzIik7Cj4gICAKPiAgIAkJCWlndF9kZWJ1ZygicmVhZCByZXBvcnQ6IHJlYXNv biA9ICV4LCB0aW1lc3RhbXAgPSAleCwgZXhwb25lbnQgbWFzaz0leFxuIiwKPiAgIAkJCQkgIHJl cG9ydFswXSwgcmVwb3J0WzFdLCBleHBvbmVudF9tYXNrKTsKPiBAQCAtMjg1Niw2ICsyODcxLDcg QEAgdGVzdF9taV9ycGModm9pZCkKPiAgIAlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7Cj4gICAKPiAg IAlyZXBvcnQzMiA9IGJvLT52aXJ0dWFsOwo+ICsJZHVtcF9yZXBvcnQocmVwb3J0MzIsIDY0LCAi bWktcnBjIik7Cj4gICAJaWd0X2Fzc2VydF9lcShyZXBvcnQzMlswXSwgMHhkZWFkYmVlZik7IC8q IHJlcG9ydCBJRCAqLwo+ICAgCWlndF9hc3NlcnRfbmVxKHJlcG9ydDMyWzFdLCAwKTsgLyogdGlt ZXN0YW1wICovCj4gICAKPiBAQCAtMzMzNSwxMSArMzM1MSwxMyBAQCBnZW44X3Rlc3Rfc2luZ2xl X2N0eF9yZW5kZXJfdGFyZ2V0X3dyaXRlc19hX2NvdW50ZXIodm9pZCkKPiAgIAkJCXByZXYgPSBy ZXBvcnQwXzMyOwo+ICAgCQkJY3R4X2lkID0gcHJldlsyXTsKPiAgIAkJCWlndF9kZWJ1ZygiTUlf UlBDKHN0YXJ0KSBDVFggSUQ6ICV1XG4iLCBjdHhfaWQpOwo+ICsJCQlkdW1wX3JlcG9ydChyZXBv cnQwXzMyLCA2NCwgInJlcG9ydDBfMzIiKTsKPiAgIAo+ICAgCQkJcmVwb3J0MV8zMiA9IHJlcG9y dDBfMzIgKyA2NDsgLyogNjQgdWludDMyX3QgPSAyNTZieXRlcyBvZmZzZXQgKi8KPiAgIAkJCWln dF9hc3NlcnRfZXEocmVwb3J0MV8zMlswXSwgMHhiZWVmYmVlZik7IC8qIHJlcG9ydCBJRCAqLwo+ ICAgCQkJaWd0X2Fzc2VydF9uZXEocmVwb3J0MV8zMlsxXSwgMCk7IC8qIHRpbWVzdGFtcCAqLwo+ ICAgCQkJY3R4MV9pZCA9IHJlcG9ydDFfMzJbMl07Cj4gKwkJCWR1bXBfcmVwb3J0KHJlcG9ydDFf MzIsIDY0LCAicmVwb3J0MV8zMiIpOwo+ICAgCj4gICAJCQltZW1zZXQoYWNjdW11bGF0b3IuZGVs dGFzLCAwLCBzaXplb2YoYWNjdW11bGF0b3IuZGVsdGFzKSk7Cj4gICAJCQlhY2N1bXVsYXRlX3Jl cG9ydHMoJmFjY3VtdWxhdG9yLCByZXBvcnQwXzMyLCByZXBvcnQxXzMyKTsKPiBAQCAtMzQzNCw2 ICszNDUyLDcgQEAgZ2VuOF90ZXN0X3NpbmdsZV9jdHhfcmVuZGVyX3RhcmdldF93cml0ZXNfYV9j b3VudGVyKHZvaWQpCj4gICAJCQkJaWd0X2Fzc2VydF9lcShoZWFkZXItPnNpemUsIHNhbXBsZV9z aXplKTsKPiAgIAo+ICAgCQkJCXJlcG9ydCA9ICh2b2lkICopKGhlYWRlciArIDEpOwo+ICsJCQkJ ZHVtcF9yZXBvcnQocmVwb3J0LCA2NCwgIk9BIHJlcG9ydCIpOwo+ICAgCj4gICAJCQkJLyogRG9u J3QgZXhwZWN0IHplcm8gZm9yIHRpbWVzdGFtcHMgKi8KPiAgIAkJCQlpZ3RfYXNzZXJ0X25lcShy ZXBvcnRbMV0sIDApOwo+IEBAIC0zNTgxLDYgKzM2MDAsMzM1IEBAIGdlbjhfdGVzdF9zaW5nbGVf Y3R4X3JlbmRlcl90YXJnZXRfd3JpdGVzX2FfY291bnRlcih2b2lkKQo+ICAgCX0gd2hpbGUgKFdF WElUU1RBVFVTKGNoaWxkX3JldCkgPT0gRUFHQUlOKTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgdm9p ZCBnZW4xMl9zaW5nbGVfY3R4X2hlbHBlcihzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vcGVuX3BhcmFt ICpwYXJhbSkKPiArewo+ICsJdWludDY0X3QgKmN0eF9pZF9wdHI7Cj4gKwlkcm1faW50ZWxfYnVm bWdyICpidWZtZ3I7Cj4gKwlkcm1faW50ZWxfY29udGV4dCAqY29udGV4dDAsICpjb250ZXh0MTsK PiArCXN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7Cj4gKwlzdHJ1Y3QgaWd0X2J1ZiBz cmNbM10sIGRzdFszXTsKPiArCWRybV9pbnRlbF9ibyAqYm87Cj4gKwl1aW50MzJfdCAqcmVwb3J0 MF8zMiwgKnJlcG9ydDFfMzIsICpyZXBvcnQyXzMyLCAqcmVwb3J0M18zMjsKPiArCXVpbnQ2NF90 IHRpbWVzdGFtcDBfNjQsIHRpbWVzdGFtcDFfNjQ7Cj4gKwl1aW50MzJfdCBkZWx0YV90czY0LCBk ZWx0YV9vYTMyOwo+ICsJdWludDY0X3QgZGVsdGFfdHM2NF9ucywgZGVsdGFfb2EzMl9uczsKPiAr CXVpbnQzMl90IGRlbHRhX2RlbHRhOwo+ICsJaW50IHdpZHRoID0gODAwOwo+ICsJaW50IGhlaWdo dCA9IDYwMDsKPiArI2RlZmluZSBJTlZBTElEX0NUWF9JRCAweGZmZmZmZmZmCj4gKwl1aW50MzJf dCBjdHgwX2lkID0gSU5WQUxJRF9DVFhfSUQ7Cj4gKwl1aW50MzJfdCBjdHgxX2lkID0gSU5WQUxJ RF9DVFhfSUQ7Cj4gKwlpbnQgcmV0Owo+ICsJc3RydWN0IGFjY3VtdWxhdG9yIGFjY3VtdWxhdG9y ID0gewo+ICsJCS5mb3JtYXQgPSB0ZXN0X29hX2Zvcm1hdAo+ICsJfTsKPiArCj4gKwlidWZtZ3Ig PSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGRybV9mZCwgNDA5Nik7Cj4gKwlkcm1faW50ZWxf YnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoYnVmbWdyKTsKPiArCj4gKwlmb3IgKGludCBpID0gMDsg aSA8IEFSUkFZX1NJWkUoc3JjKTsgaSsrKSB7Cj4gKwkJc2NyYXRjaF9idWZfaW5pdChidWZtZ3Is ICZzcmNbaV0sIHdpZHRoLCBoZWlnaHQsIDB4ZmYwMDAwZmYpOwo+ICsJCXNjcmF0Y2hfYnVmX2lu aXQoYnVmbWdyLCAmZHN0W2ldLCB3aWR0aCwgaGVpZ2h0LCAweDAwZmYwMGZmKTsKPiArCX0KPiAr Cj4gKwliYXRjaCA9IGludGVsX2JhdGNoYnVmZmVyX2FsbG9jKGJ1Zm1nciwgZGV2aWQpOwo+ICsK PiArCWNvbnRleHQwID0gZHJtX2ludGVsX2dlbV9jb250ZXh0X2NyZWF0ZShidWZtZ3IpOwo+ICsJ aWd0X2Fzc2VydChjb250ZXh0MCk7Cj4gKwo+ICsJY29udGV4dDEgPSBkcm1faW50ZWxfZ2VtX2Nv bnRleHRfY3JlYXRlKGJ1Zm1ncik7Cj4gKwlpZ3RfYXNzZXJ0KGNvbnRleHQxKTsKPiArCj4gKwlp Z3RfZGVidWcoInN1Ym1pdHRpbmcgd2FybSB1cCByZW5kZXJfY29weVxuIik7Cj4gKwo+ICsJLyog U3VibWl0IHNvbWUgZWFybHksIHVubWVhc3VyZWQsIHdvcmsgdG8gdGhlIGNvbnRleHQgd2Ugd2Fu dAo+ICsJICogdG8gbWVhc3VyZSB0byB0cnkgYW5kIGNhdGNoIGlzc3VlcyB3aXRoIGk5MTUtcGVy Zgo+ICsJICogaW5pdGlhbGl6aW5nIHRoZSBIVyBjb250ZXh0IElEIGZvciBmaWx0ZXJpbmcuCj4g KwkgKgo+ICsJICogV2UgZG8gdGhpcyBiZWNhdXNlIGk5MTUtcGVyZiBzaW5nbGUgY29udGV4dCBm aWx0ZXJpbmcgaGFkCj4gKwkgKiBwcmV2aW91c2x5IG9ubHkgcmVsaWVkIG9uIGEgaG9vayBpbnRv IGNvbnRleHQgcGlubmluZyB0bwo+ICsJICogaW5pdGlhbGl6ZSB0aGUgSFcgY29udGV4dCBJRCwg aW5zdGVhZCBvZiBhbHNvIHRyeWluZyB0bwo+ICsJICogZGV0ZXJtaW5lIHRoZSBIVyBJRCB3aGls ZSBvcGVuaW5nIHRoZSBzdHJlYW0sIGluIGNhc2UgaXQKPiArCSAqIGhhcyBhbHJlYWR5IGJlZW4g cGlubmVkLgo+ICsJICoKPiArCSAqIFRoaXMgd2Fzbid0IG5vdGljZWQgYnkgdGhlIHByZXZpb3Vz IHVuaXQgdGVzdCBiZWNhdXNlIHdlCj4gKwkgKiB3ZXJlIG9wZW5pbmcgdGhlIHN0cmVhbSB3aGls ZSB0aGUgY29udGV4dCBoYWRuJ3QgYmVlbgo+ICsJICogdG91Y2hlZCBvciBwaW5uZWQgeWV0IGFu ZCBzbyBpdCB3b3JrZWQgb3V0IGNvcnJlY3RseSB0byB3YWl0Cj4gKwkgKiBmb3IgdGhlIHBpbm5p bmcgaG9vay4KPiArCSAqCj4gKwkgKiBOb3cgYSBidWdneSB2ZXJzaW9uIG9mIGk5MTUtcGVyZiB3 aWxsIGZhaWwgdG8gbWVhc3VyZQo+ICsJICogYW55dGhpbmcgZm9yIGNvbnRleHQwIG9uY2UgdGhp cyBpbml0aWFsIHJlbmRlcl9jb3B5KCkgZW5kcwo+ICsJICogdXAgcGlubmluZyB0aGUgY29udGV4 dCBzaW5jZSB0aGVyZSB3b24ndCBldmVyIGJlIGEgcGlubmluZwo+ICsJICogaG9vayBjYWxsYmFj ay4KPiArCSAqLwo+ICsJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRleHQwLAo+ICsJCSAgICAmc3Jj WzBdLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LAo+ICsJCSAgICAmZHN0WzBdLCAwLCAwKTsKPiArCj4g KwkvKiBJbml0aWFsaXplIHRoZSBjb250ZXh0IHBhcmFtZXRlciB0byB0aGUgcGVyZiBvcGVuIGlv Y3RsIGhlcmUgKi8KPiArCXJldCA9IGRybV9pbnRlbF9nZW1fY29udGV4dF9nZXRfaWQoY29udGV4 dDAsICZjdHgwX2lkKTsKPiArCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKPiArCWlndF9hc3NlcnRf bmVxKGN0eDBfaWQsIDB4ZmZmZmZmZmYpOwo+ICsJY3R4X2lkX3B0ciA9ICh1aW50NjRfdCAqKSBm cm9tX3VzZXJfcG9pbnRlcihwYXJhbS0+cHJvcGVydGllc19wdHIpOwo+ICsJY3R4X2lkX3B0clsx XSA9IGN0eDBfaWQ7CgoKVGhpcyBpcyBhIGJpdCBjb21wbGljYXRlZCwganVzdCBtb3ZlIHRoZSBz dHJ1Y3QgZHJtX2k5MTVfcGVyZl9vcGVuX3BhcmFtIApwYXJhbSBldGMuLiBpbiB0aGlzIGZ1bmN0 aW9uLgoKCj4gKwo+ICsJaWd0X2RlYnVnKCJvcGVuaW5nIGk5MTUtcGVyZiBzdHJlYW1cbiIpOwo+ ICsJc3RyZWFtX2ZkID0gX19wZXJmX29wZW4oZHJtX2ZkLCBwYXJhbSwgZmFsc2UpOwo+ICsKPiAr CWJvID0gZHJtX2ludGVsX2JvX2FsbG9jKGJ1Zm1nciwgIm1pX3JwYyBkZXN0IGJvIiwgNDA5Niwg NjQpOwo+ICsKPiArCS8qIFNldCB3cml0ZSBkb21haW4gdG8gY3B1IGJyaWVmbHkgdG8gZmlsbCB0 aGUgYnVmZmVyIHdpdGggODBzICovCj4gKwlyZXQgPSBkcm1faW50ZWxfYm9fbWFwKGJvLCB0cnVl KTsKPiArCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKPiArCW1lbXNldChiby0+dmlydHVhbCwgMHg4 MCwgMjA0OCk7Cj4gKwltZW1zZXQoYm8tPnZpcnR1YWwgKyAyMDQ4LCAwLCAyMDQ4KTsKPiArCWRy bV9pbnRlbF9ib191bm1hcChibyk7Cj4gKwo+ICsJLyogU3VibWl0IGFuIG1pLXJwYyB0byBjb250 ZXh0MCBiZWZvcmUgbWVhc3VyYWJsZSB3b3JrICovCj4gKyNkZWZpbmUgQk9fVElNRVNUQU1QX09G RlNFVDAgMTAyNAo+ICsjZGVmaW5lIEJPX1JFUE9SVF9PRkZTRVQwIDAKPiArI2RlZmluZSBCT19S RVBPUlRfSUQwIDB4ZGVhZGJlZWYKPiArCWVtaXRfc3RhbGxfdGltZXN0YW1wX2FuZF9ycGMoYmF0 Y2gsCj4gKwkJCQkgICAgIGJvLAo+ICsJCQkJICAgICBCT19USU1FU1RBTVBfT0ZGU0VUMCwKPiAr CQkJCSAgICAgQk9fUkVQT1JUX09GRlNFVDAsCj4gKwkJCQkgICAgIEJPX1JFUE9SVF9JRDApOwo+ ICsJaW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MCk7 Cj4gKwo+ICsJLyogVGhpcyBpcyB0aGUgd29yay9jb250ZXh0IHRoYXQgaXMgbWVhc3VyZWQgZm9y IGNvdW50ZXIgaW5jcmVtZW50cyAqLwo+ICsJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRleHQwLAo+ ICsJCSAgICAmc3JjWzBdLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LAo+ICsJCSAgICAmZHN0WzBdLCAw LCAwKTsKPiArCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29u dGV4dDApOwo+ICsKPiArCS8qIFN1Ym1pdCBhbiBtaS1ycGMgdG8gY29udGV4dDEgYmVmb3JlIHdv cmsKPiArCSAqCj4gKwkgKiBPbiBnZW4xMiwgdGhpcyBtZWFzdXJlbWVudCBzaG91bGQganVzdCB5 aWVsZCBjb3VudGVycyB0aGF0IGFyZQo+ICsJICogYWxsIHplcm9lcywgc2luY2UgdGhlIGNvdW50 ZXJzIHdpbGwgb25seSBpbmNyZW1lbnQgZm9yIHRoZQo+ICsJICogY29udGV4dCBwYXNzZWQgdG8g cGVyZiBvcGVuIGlvY3RsCj4gKwkgKi8KPiArI2RlZmluZSBCT19USU1FU1RBTVBfT0ZGU0VUMiAx MDQwCj4gKyNkZWZpbmUgQk9fUkVQT1JUX09GRlNFVDIgNTEyCj4gKyNkZWZpbmUgQk9fUkVQT1JU X0lEMiAweDAwYzBmZmVlCj4gKwllbWl0X3N0YWxsX3RpbWVzdGFtcF9hbmRfcnBjKGJhdGNoLAo+ ICsJCQkJICAgICBibywKPiArCQkJCSAgICAgQk9fVElNRVNUQU1QX09GRlNFVDIsCj4gKwkJCQkg ICAgIEJPX1JFUE9SVF9PRkZTRVQyLAo+ICsJCQkJICAgICBCT19SRVBPUlRfSUQyKTsKPiArCWlu dGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dDEpOwo+ICsK PiArCS8qIFN1Ym1pdCB0d28gY29waWVzIG9uIHRoZSBvdGhlciBjb250ZXh0IHRvIGF2b2lkIGEg ZmFsc2UKPiArCSAqIHBvc2l0aXZlIGluIGNhc2UgdGhlIGRyaXZlciBzb21laG93IGVuZGVkIHVw IGZpbHRlcmluZyBmb3IKPiArCSAqIGNvbnRleHQxCj4gKwkgKi8KPiArCXJlbmRlcl9jb3B5KGJh dGNoLCBjb250ZXh0MSwKPiArCQkgICAgJnNyY1sxXSwgMCwgMCwgd2lkdGgsIGhlaWdodCwKPiAr CQkgICAgJmRzdFsxXSwgMCwgMCk7Cj4gKwlyZXQgPSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfZ2V0 X2lkKGNvbnRleHQxLCAmY3R4MV9pZCk7Cj4gKwlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7Cj4gKwlp Z3RfYXNzZXJ0X25lcShjdHgxX2lkLCAweGZmZmZmZmZmKTsKPiArCj4gKwlyZW5kZXJfY29weShi YXRjaCwgY29udGV4dDEsCj4gKwkJICAgICZzcmNbMl0sIDAsIDAsIHdpZHRoLCBoZWlnaHQsCj4g KwkJICAgICZkc3RbMl0sIDAsIDApOwo+ICsJaW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9j b250ZXh0KGJhdGNoLCBjb250ZXh0MSk7Cj4gKwo+ICsJLyogU3VibWl0IGFuIG1pLXJwYyB0byBj b250ZXh0MSBhZnRlciBhbGwgd29yayAqLwo+ICsjZGVmaW5lIEJPX1RJTUVTVEFNUF9PRkZTRVQz IDEwNDgKPiArI2RlZmluZSBCT19SRVBPUlRfT0ZGU0VUMyA3NjgKPiArI2RlZmluZSBCT19SRVBP UlRfSUQzIDB4MDFjMGZmZWUKPiArCWVtaXRfc3RhbGxfdGltZXN0YW1wX2FuZF9ycGMoYmF0Y2gs Cj4gKwkJCQkgICAgIGJvLAo+ICsJCQkJICAgICBCT19USU1FU1RBTVBfT0ZGU0VUMywKPiArCQkJ CSAgICAgQk9fUkVQT1JUX09GRlNFVDMsCj4gKwkJCQkgICAgIEJPX1JFUE9SVF9JRDMpOwo+ICsJ aW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MSk7Cj4g Kwo+ICsJLyogU3VibWl0IGFuIG1pLXJwYyB0byBjb250ZXh0MCBhZnRlciBhbGwgbWVhc3VyYWJs ZSB3b3JrICovCj4gKyNkZWZpbmUgQk9fVElNRVNUQU1QX09GRlNFVDEgMTAzMgo+ICsjZGVmaW5l IEJPX1JFUE9SVF9PRkZTRVQxIDI1Ngo+ICsjZGVmaW5lIEJPX1JFUE9SVF9JRDEgMHhiZWVmYmVl Zgo+ICsJZW1pdF9zdGFsbF90aW1lc3RhbXBfYW5kX3JwYyhiYXRjaCwKPiArCQkJCSAgICAgYm8s Cj4gKwkJCQkgICAgIEJPX1RJTUVTVEFNUF9PRkZTRVQxLAo+ICsJCQkJICAgICBCT19SRVBPUlRf T0ZGU0VUMSwKPiArCQkJCSAgICAgQk9fUkVQT1JUX0lEMSk7Cj4gKwlpbnRlbF9iYXRjaGJ1ZmZl cl9mbHVzaF93aXRoX2NvbnRleHQoYmF0Y2gsIGNvbnRleHQwKTsKPiArCj4gKwkvKiBTZXQgd3Jp dGUgZG9tYWluIHRvIG5vbmUgKi8KPiArCXJldCA9IGRybV9pbnRlbF9ib19tYXAoYm8sIGZhbHNl KTsKPiArCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKPiArCj4gKwkvKiBTYW5pdHkgY2hlY2sgcmVw b3J0cwo+ICsJICogcmVwb3J0WF8zMlswXTogcmVwb3J0IGlkIHBhc3NlZCB3aXRoIG1pLXJwYwo+ ICsJICogcmVwb3J0WF8zMlsxXTogdGltZXN0YW1wCj4gKwkgKiByZXBvcnRYXzMyWzJdOiBjb250 ZXh0IGlkCj4gKwkgKgo+ICsJICogcmVwb3J0MF8zMjogc3RhcnQgb2YgbWVhc3VyYWJsZSB3b3Jr Cj4gKwkgKiByZXBvcnQxXzMyOiBlbmQgb2YgbWVhc3VyYWJsZSB3b3JrCj4gKwkgKiByZXBvcnQy XzMyOiBzdGFydCBvZiBvdGhlciB3b3JrCj4gKwkgKiByZXBvcnQzXzMyOiBlbmQgb2Ygb3RoZXIg d29yawo+ICsJICovCj4gKwlyZXBvcnQwXzMyID0gYm8tPnZpcnR1YWw7Cj4gKwlpZ3RfYXNzZXJ0 X2VxKHJlcG9ydDBfMzJbMF0sIDB4ZGVhZGJlZWYpOwo+ICsJaWd0X2Fzc2VydF9uZXEocmVwb3J0 MF8zMlsxXSwgMCk7Cj4gKwljdHgwX2lkID0gcmVwb3J0MF8zMlsyXTsKPiArCWlndF9kZWJ1Zygi TUlfUlBDKHN0YXJ0KSBDVFggSUQ6ICV1XG4iLCBjdHgwX2lkKTsKPiArCWR1bXBfcmVwb3J0KHJl cG9ydDBfMzIsIDY0LCAicmVwb3J0MF8zMiIpOwo+ICsKPiArCXJlcG9ydDFfMzIgPSByZXBvcnQw XzMyICsgNjQ7Cj4gKwlpZ3RfYXNzZXJ0X2VxKHJlcG9ydDFfMzJbMF0sIDB4YmVlZmJlZWYpOwo+ ICsJaWd0X2Fzc2VydF9uZXEocmVwb3J0MV8zMlsxXSwgMCk7Cj4gKwljdHgxX2lkID0gcmVwb3J0 MV8zMlsyXTsKPiArCWR1bXBfcmVwb3J0KHJlcG9ydDFfMzIsIDY0LCAicmVwb3J0MV8zMiIpOwo+ ICsKPiArCS8qIFZlcmlmeSB0aGF0IGNvdW50ZXJzIGluIGNvbnRleHQxIGFyZSBhbGwgemVyb2Vz ICovCj4gKwlyZXBvcnQyXzMyID0gcmVwb3J0MF8zMiArIDEyODsKPiArCWlndF9hc3NlcnRfZXEo cmVwb3J0Ml8zMlswXSwgMHgwMGMwZmZlZSk7Cj4gKwlpZ3RfYXNzZXJ0X25lcShyZXBvcnQyXzMy WzFdLCAwKTsKPiArCWR1bXBfcmVwb3J0KHJlcG9ydDJfMzIsIDY0LCAicmVwb3J0Ml8zMiIpOwo+ ICsJaWd0X2Fzc2VydF9lcSgwLCBtZW1jbXAoJnJlcG9ydDJfMzJbNF0sCj4gKwkJCQliby0+dmly dHVhbCArIDIwNDgsCj4gKwkJCQkyNDApKTsKPiArCj4gKwlyZXBvcnQzXzMyID0gcmVwb3J0MF8z MiArIDE5MjsKPiArCWlndF9hc3NlcnRfZXEocmVwb3J0M18zMlswXSwgMHgwMWMwZmZlZSk7Cj4g KwlpZ3RfYXNzZXJ0X25lcShyZXBvcnQzXzMyWzFdLCAwKTsKPiArCWR1bXBfcmVwb3J0KHJlcG9y dDNfMzIsIDY0LCAicmVwb3J0M18zMiIpOwo+ICsJaWd0X2Fzc2VydF9lcSgwLCBtZW1jbXAoJnJl cG9ydDNfMzJbNF0sCj4gKwkJCQliby0+dmlydHVhbCArIDIwNDgsCj4gKwkJCQkyNDApKTsKPiAr Cj4gKwkvKiBBY2N1bXVsYXRlIGRlbHRhcyBmb3IgY291bnRlcnMgLSBBMCwgQTIxIGFuZCBBMjYg Ki8KPiArCW1lbXNldChhY2N1bXVsYXRvci5kZWx0YXMsIDAsIHNpemVvZihhY2N1bXVsYXRvci5k ZWx0YXMpKTsKPiArCWFjY3VtdWxhdGVfcmVwb3J0cygmYWNjdW11bGF0b3IsIHJlcG9ydDBfMzIs IHJlcG9ydDFfMzIpOwo+ICsJaWd0X2RlYnVnKCJ0b3RhbDogQTAgPSAlIlBSSXU2NCIsIEEyMSA9 ICUiUFJJdTY0IiwgQTI2ID0gJSJQUkl1NjQiXG4iLAo+ICsJCQlhY2N1bXVsYXRvci5kZWx0YXNb MiArIDBdLAo+ICsJCQlhY2N1bXVsYXRvci5kZWx0YXNbMiArIDIxXSwKPiArCQkJYWNjdW11bGF0 b3IuZGVsdGFzWzIgKyAyNl0pOwo+ICsKPiArCWlndF9kZWJ1Zygib2FfdGltZXN0YW1wMzIgMCA9 ICV1XG4iLCByZXBvcnQwXzMyWzFdKTsKPiArCWlndF9kZWJ1Zygib2FfdGltZXN0YW1wMzIgMSA9 ICV1XG4iLCByZXBvcnQxXzMyWzFdKTsKPiArCWlndF9kZWJ1ZygiY3R4X2lkIDAgPSAldVxuIiwg cmVwb3J0MF8zMlsyXSk7Cj4gKwlpZ3RfZGVidWcoImN0eF9pZCAxID0gJXVcbiIsIHJlcG9ydDFf MzJbMl0pOwo+ICsKPiArCS8qIFRoZSBkZWx0YSBhcyBjYWxjdWxhdGVkIHZpYSB0aGUgUElQRV9D T05UUk9MIHRpbWVzdGFtcCBvcgo+ICsJICogdGhlIE9BIHJlcG9ydCB0aW1lc3RhbXBzIHNob3Vs ZCBiZSBhbG1vc3QgaWRlbnRpY2FsIGJ1dAo+ICsJICogYWxsb3cgYSA1MDAgbmFub3NlY29uZHMg bWFyZ2luLgo+ICsJICovCj4gKwl0aW1lc3RhbXAwXzY0ID0gKih1aW50NjRfdCAqKSgoKHVpbnQ4 X3QgKiliby0+dmlydHVhbCkgKyBCT19USU1FU1RBTVBfT0ZGU0VUMCk7Cj4gKwl0aW1lc3RhbXAx XzY0ID0gKih1aW50NjRfdCAqKSgoKHVpbnQ4X3QgKiliby0+dmlydHVhbCkgKyBCT19USU1FU1RB TVBfT0ZGU0VUMSk7Cj4gKwo+ICsJaWd0X2RlYnVnKCJ0c190aW1lc3RhbXA2NCAwID0gJSJQUkl1 NjQiXG4iLCB0aW1lc3RhbXAwXzY0KTsKPiArCWlndF9kZWJ1ZygidHNfdGltZXN0YW1wNjQgMSA9 ICUiUFJJdTY0IlxuIiwgdGltZXN0YW1wMV82NCk7Cj4gKwo+ICsJZGVsdGFfdHM2NCA9IHRpbWVz dGFtcDFfNjQgLSB0aW1lc3RhbXAwXzY0Owo+ICsJZGVsdGFfb2EzMiA9IHJlcG9ydDFfMzJbMV0g LSByZXBvcnQwXzMyWzFdOwo+ICsKPiArCS8qIFNhbml0eSBjaGVjayB0aGF0IHdlIGNhbiBwYXNz IHRoZSBkZWx0YSB0byB0aW1lYmFzZV9zY2FsZSAqLwo+ICsJaWd0X2Fzc2VydChkZWx0YV90czY0 IDwgVUlOVDMyX01BWCk7Cj4gKwlkZWx0YV9vYTMyX25zID0gdGltZWJhc2Vfc2NhbGUoZGVsdGFf b2EzMik7Cj4gKwlkZWx0YV90czY0X25zID0gdGltZWJhc2Vfc2NhbGUoZGVsdGFfdHM2NCk7Cj4g Kwo+ICsJaWd0X2RlYnVnKCJvYTMyIGRlbHRhID0gJXUsID0gJXVuc1xuIiwKPiArCQkJZGVsdGFf b2EzMiwgKHVuc2lnbmVkKWRlbHRhX29hMzJfbnMpOwo+ICsJaWd0X2RlYnVnKCJ0czY0IGRlbHRh ID0gJXUsID0gJXVuc1xuIiwKPiArCQkJZGVsdGFfdHM2NCwgKHVuc2lnbmVkKWRlbHRhX3RzNjRf bnMpOwo+ICsKPiArCWRlbHRhX2RlbHRhID0gZGVsdGFfdHM2NF9ucyA+IGRlbHRhX29hMzJfbnMg Pwo+ICsJCSAgICAgIChkZWx0YV90czY0X25zIC0gZGVsdGFfb2EzMl9ucykgOgo+ICsJCSAgICAg IChkZWx0YV9vYTMyX25zIC0gZGVsdGFfdHM2NF9ucyk7Cj4gKwlpZiAoZGVsdGFfZGVsdGEgPiA1 MDApIHsKPiArCQlpZ3RfZGVidWcoImRlbHRhX2RlbHRhIGV4Y2VlZHMgbWFyZ2luLCBza2lwcGlu Zy4uXG4iKTsKPiArCQlleGl0KEVBR0FJTik7Cj4gKwl9Cj4gKwo+ICsJaWd0X2RlYnVnKCJuIHNh bXBsZXMgd3JpdHRlbiA9ICUiUFJJdTY0Ii8lIlBSSXU2NCIgKCVpeCVpKVxuIiwKPiArCQkgIGFj Y3VtdWxhdG9yLmRlbHRhc1syICsgMjFdLAo+ICsJCSAgYWNjdW11bGF0b3IuZGVsdGFzWzIgKyAy Nl0sCj4gKwkJICB3aWR0aCwgaGVpZ2h0KTsKPiArCWFjY3VtdWxhdG9yX3ByaW50KCZhY2N1bXVs YXRvciwgImZpbHRlcmVkIik7Cj4gKwo+ICsJLyogVmVyaWZ5IHRoYXQgdGhlIHdvcmsgYWN0dWFs bHkgaGFwcGVuZWQgYnkgY29tcGFyaW5nIHRoZSBzcmMKPiArCSAqIGFuZCBkc3QgYnVmZmVycwo+ ICsJICovCj4gKwlyZXQgPSBkcm1faW50ZWxfYm9fbWFwKHNyY1swXS5ibywgZmFsc2UpOwo+ICsJ aWd0X2Fzc2VydF9lcShyZXQsIDApOwo+ICsJcmV0ID0gZHJtX2ludGVsX2JvX21hcChkc3RbMF0u Ym8sIGZhbHNlKTsKPiArCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKPiArCj4gKwlyZXQgPSBtZW1j bXAoc3JjWzBdLmJvLT52aXJ0dWFsLCBkc3RbMF0uYm8tPnZpcnR1YWwsIDQgKiB3aWR0aCAqIGhl aWdodCk7Cj4gKwlpZiAocmV0ICE9IDApIHsKPiArCQlhY2N1bXVsYXRvcl9wcmludCgmYWNjdW11 bGF0b3IsICJ0b3RhbCIpOwo+ICsJCWV4aXQoRUFHQUlOKTsKPiArCX0KPiArCj4gKwlkcm1faW50 ZWxfYm9fdW5tYXAoc3JjWzBdLmJvKTsKPiArCWRybV9pbnRlbF9ib191bm1hcChkc3RbMF0uYm8p Owo+ICsKPiArCS8qIENoZWNrIHRoYXQgdGhpcyB0ZXN0IHBhc3NlZC4gVGhlIHRlc3QgbWVhc3Vy ZXMgdGhlIG51bWJlciBvZiAyeDIKPiArCSAqIHNhbXBsZXMgd3JpdHRlbiB0byB0aGUgcmVuZGVy IHRhcmdldCB1c2luZyB0aGUgY291bnRlciBBMjYuIEZvcgo+ICsJICogT0FSLCB0aGlzIGNvdW50 ZXIgd2lsbCBvbmx5IGhhdmUgaW5jcmVtZW50cyByZWxldmFudCB0byB0aGlzIHNwZWNpZmljCj4g KwkgKiBjb250ZXh0LiBUaGUgdmFsdWUgZXF1YWxzIHRoZSB3aWR0aCAqIGhlaWdodCBvZiB0aGUg cmVuZGVyZWQgd29yay4KPiArCSAqLwo+ICsJaWd0X2Fzc2VydF9lcShhY2N1bXVsYXRvci5kZWx0 YXNbMiArIDI2XSwgd2lkdGggKiBoZWlnaHQpOwo+ICsKPiArCS8qIENsZWFuIHVwICovCj4gKwlm b3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoc3JjKTsgaSsrKSB7Cj4gKwkJZHJtX2ludGVs X2JvX3VucmVmZXJlbmNlKHNyY1tpXS5ibyk7Cj4gKwkJZHJtX2ludGVsX2JvX3VucmVmZXJlbmNl KGRzdFtpXS5ibyk7Cj4gKwl9Cj4gKwo+ICsJZHJtX2ludGVsX2JvX3VubWFwKGJvKTsKPiArCWRy bV9pbnRlbF9ib191bnJlZmVyZW5jZShibyk7Cj4gKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mcmVlKGJh dGNoKTsKPiArCWRybV9pbnRlbF9nZW1fY29udGV4dF9kZXN0cm95KGNvbnRleHQwKTsKPiArCWRy bV9pbnRlbF9nZW1fY29udGV4dF9kZXN0cm95KGNvbnRleHQxKTsKPiArCWRybV9pbnRlbF9idWZt Z3JfZGVzdHJveShidWZtZ3IpOwo+ICsJX19wZXJmX2Nsb3NlKHN0cmVhbV9mZCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkCj4gK2dlbjEyX3Rlc3Rfc2luZ2xlX2N0eF9yZW5kZXJfdGFyZ2V0X3dy aXRlc19hX2NvdW50ZXIodm9pZCkKPiArewo+ICsJdWludDY0X3QgcHJvcGVydGllc1tdID0gewo+ ICsJCS8qIEhhdmUgYSByYW5kb20gdmFsdWUgaGVyZSBmb3IgdGhlIGNvbnRleHQgaWQsIGJ1dCBp bml0aWFsaXplCj4gKwkJICogaXQgb25jZSB5b3UgZmlndXJlIG91dCB0aGUgY29udGV4dCBJRCBm b3IgdGhlIHdvcmsgdG8gYmUKPiArCQkgKiBtZWFzdXJlZAo+ICsJCSAqLwo+ICsJCURSTV9JOTE1 X1BFUkZfUFJPUF9DVFhfSEFORExFLCBVSU5UNjRfTUFYLAo+ICsKPiArCQkvKiBPQSB1bml0IGNv bmZpZ3VyYXRpb246Cj4gKwkJICogRFJNX0k5MTVfUEVSRl9QUk9QX1NBTVBMRV9PQSBpcyBubyBs b25nZXIgcmVxdWlyZWQgZm9yIEdlbjEyCj4gKwkJICogYmVjYXVzZSB0aGUgT0FSIHVuaXQgaW5j cmVtZW50cyBjb3VudGVycyBvbmx5IGZvciB0aGUKPiArCQkgKiByZWxldmFudCBjb250ZXh0LiBO byBvdGhlciBwYXJhbWV0ZXJzIGFyZSBuZWVkZWQgc2luY2Ugd2UgZG8KPiArCQkgKiBub3QgcmVs eSBvbiB0aGUgT0EgYnVmZmVyIGFueW1vcmUgdG8gbm9ybWFsaXplIHRoZSBjb3VudGVyCj4gKwkJ ICogdmFsdWVzLgo+ICsJCSAqLwo+ICsJCURSTV9JOTE1X1BFUkZfUFJPUF9PQV9NRVRSSUNTX1NF VCwgdGVzdF9tZXRyaWNfc2V0X2lkLAo+ICsJCURSTV9JOTE1X1BFUkZfUFJPUF9PQV9GT1JNQVQs IHRlc3Rfb2FfZm9ybWF0LAo+ICsJfTsKPiArCXN0cnVjdCBkcm1faTkxNV9wZXJmX29wZW5fcGFy YW0gcGFyYW0gPSB7Cj4gKwkJLmZsYWdzID0gSTkxNV9QRVJGX0ZMQUdfRkRfQ0xPRVhFQywKPiAr CQkubnVtX3Byb3BlcnRpZXMgPSBBUlJBWV9TSVpFKHByb3BlcnRpZXMpIC8gMiwKPiArCQkucHJv cGVydGllc19wdHIgPSB0b191c2VyX3BvaW50ZXIocHJvcGVydGllcyksCj4gKwl9Owo+ICsJaW50 IGNoaWxkX3JldDsKPiArCXN0cnVjdCBpZ3RfaGVscGVyX3Byb2Nlc3MgY2hpbGQgPSB7fTsKPiAr Cj4gKwkvKiBFbnN1cmUgcGVyZl9zdHJlYW1fcGFyYW5vaWQgaXMgc2V0IHRvIDEgYnkgZGVmYXVs dCAqLwo+ICsJd3JpdGVfdTY0X2ZpbGUoIi9wcm9jL3N5cy9kZXYvaTkxNS9wZXJmX3N0cmVhbV9w YXJhbm9pZCIsIDEpOwo+ICsKPiArCWRvIHsKPiArCQlpZ3RfZm9ya19oZWxwZXIoJmNoaWxkKSB7 CgpZb3UgbmVlZCBhIGNhbGwgdG8gaWd0X2Ryb3Bfcm9vdCgpIGhlcmUgaWYgeW91J3JlIGNoZWNr aW5nIHRoZSBwYXJhbm9pZCAKbW9kZS4KCk90aGVyd2lzZSB0aGUgY2hpbGQgcHJvY2VzcyBpcyBz dGlsbCByb290LgoKCj4gKwkJCWdlbjEyX3NpbmdsZV9jdHhfaGVscGVyKCZwYXJhbSk7Cj4gKwkJ fQo+ICsJCWNoaWxkX3JldCA9IGlndF93YWl0X2hlbHBlcigmY2hpbGQpOwo+ICsJCWlndF9hc3Nl cnQoV0VYSVRTVEFUVVMoY2hpbGRfcmV0KSA9PSBFQUdBSU4gfHwKPiArCQkJICAgV0VYSVRTVEFU VVMoY2hpbGRfcmV0KSA9PSAwKTsKPiArCX0gd2hpbGUgKFdFWElUU1RBVFVTKGNoaWxkX3JldCkg PT0gRUFHQUlOKTsKPiArfQo+ICsKPiAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJjNl9yZXNpZGVu Y3lfbXModm9pZCkKPiAgIHsKPiAgIAlyZXR1cm4gc3lzZnNfcmVhZCgicG93ZXIvcmM2X3Jlc2lk ZW5jeV9tcyIpOwo+IEBAIC00MjA2LDYgKzQ1NTQsMTEgQEAgaWd0X21haW4KPiAgIAkJZ2VuOF90 ZXN0X3NpbmdsZV9jdHhfcmVuZGVyX3RhcmdldF93cml0ZXNfYV9jb3VudGVyKCk7Cj4gICAJfQo+ ICAgCj4gKwlpZ3Rfc3VidGVzdCgiZ2VuMTItdW5wcml2aWxlZ2VkLXNpbmdsZS1jdHgtY291bnRl cnMiKSB7Cj4gKwkJaWd0X3JlcXVpcmUoaW50ZWxfZ2VuKGRldmlkKSA+PSAxMik7Cj4gKwkJZ2Vu MTJfdGVzdF9zaW5nbGVfY3R4X3JlbmRlcl90YXJnZXRfd3JpdGVzX2FfY291bnRlcigpOwo+ICsJ fQo+ICsKPiAgIAlpZ3Rfc3VidGVzdCgicmM2LWRpc2FibGUiKQo+ICAgCQl0ZXN0X3JjNl9kaXNh YmxlKCk7Cj4gICAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=