From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B2B689DC2 for ; Mon, 22 Oct 2018 14:56:47 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id r1-v6so38242075edd.7 for ; Mon, 22 Oct 2018 07:56:47 -0700 (PDT) Date: Mon, 22 Oct 2018 16:56:43 +0200 From: Daniel Vetter Message-ID: <20181022145643.GC324@phenom.ffwll.local> References: <1540218229-10693-1-git-send-email-ramalingam.c@intel.com> <1540218229-10693-2-git-send-email-ramalingam.c@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1540218229-10693-2-git-send-email-ramalingam.c@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v4 2/2] kms_content_protection: Add Content Protection test 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: Ramalingam C Cc: igt-dev@lists.freedesktop.org List-ID: T24gTW9uLCBPY3QgMjIsIDIwMTggYXQgMDc6NTM6NDlQTSArMDUzMCwgUmFtYWxpbmdhbSBDIHdy b3RlOgo+IFByZXR0eSBzaW1wbGUgdGVzdDoKPiAtIHBpY2tzIHRoZSBoZGNwIGNhcGFibGUgb3V0 cHV0IHdpdGggc3VpdGFibGUgcGlwZSBhbmQgYXBwbHkgbW9kZXNldC4KPiAtIGNoZWNrcyB0aGUg Y29ubmVjdGVkIHNpbmsncyBoZGNwIGNhcGFiaWxpdHkgdGhyb3VnaCBkZWJ1Z2ZzCj4gLSBhcHBs eSBhIEZCIGFuZCB3YWl0IGZvciB0aGUgZmxpcCBjb21wbGV0aW9uLgo+IC0gY2xlYXJzIHRoZSBj b250ZW50IHByb3RlY3Rpb24gcHJvcGVydHkKPiAtIHZlcmlmaWVzIHRoYXQgaXQgY2xlYXJzCj4g LSBzZXRzIHRoZSBjb250ZW50IHByb3RlY3Rpb24gcHJvcGVydHkgdG8gZGVzaXJlZAo+IC0gdmVy aWZpZXMgdGhhdCBpdCB0cmFuc2l0aW9ucyB0byBlbmFibGVkCj4gLSBpbmNhc2Ugb2YgdGltZW91 dCB0aHJlZSByZWF0dGVtcHRzIGFyZSBpbXBsZW1lbnRlZAo+IC0gY2xlYXIgdGhlIGNvbnRlbnQg cHJvdGVjdGlvbiBwcm9wZXJ0eSBhbmQgbW9kZXNldCBvbiB0aGUgY3J0Ywo+IAo+IEFib3ZlIHN0 ZXBzIGFyZSByZXBlYXRlZCBvbiBhbGwgSERDUCBjYXBhYmxlIGNvbm5lY3RvcnMgZm9yIGJvdGgK PiBsZWdhY3kgYW5kIGF0b21pYyBzdWJ0ZXN0cy4KPiAKPiB2MjoKPiAgIGR5bmFtaWMgc3VidGVz dHMgYXJlIGRyb3BwZWQgW0RhbmllbF0KPiB2MzoKPiAgIGRlYnVnZnMgaXMgdXNlZCB0byBkZXRl Y3QgdGhlIHNpbmsncyBoZGNwIGNhcGFiaWxpdHkgW0RhbmllbF0KPiAgIGRhdGEgc3RydWN0dXJl IGlzIG1hZGUgYXMgZ2xvYmFsIHZhcmlhYmxlLgo+IHY0Ogo+ICAgZGVidWdmcyBmaWxlIGZyb20g Y29ubmVjdG9yJ3MgZGVidWdmcyBkaXIgaXMgdXNlZCBbRGFuaWVsXQo+IAo+IFNpZ25lZC1vZmYt Ynk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+IFNpZ25lZC1vZmYtYnk6IFJh bWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KCkkgdGhpbmsgYm90aCBwYXRjaGVz IGFyZSBnb29kIGVub3VnaCBmb3IgbWVyZ2luZy4gT24gYm90aDoKClJldmlld2VkLWJ5OiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKTmVlZCB0byB3YWl0IGZvciBDSSB0 byBhcHByb3ZlIHRoZW0gdG9vLCB0aGVuIHdlIGNhbiBwdWxsIHRoZW0gaW4uCi1EYW5pZWwKCj4g LS0tCj4gIGxpYi9pZ3Rfa21zLmMgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIGxpYi9pZ3Rf a21zLmggICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMg ICAgICAgICB8ICAgMSArCj4gIHRlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYyB8IDMwMSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICB0ZXN0cy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgfCAgIDEgKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDMwNSBpbnNlcnRp b25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0aW9u LmMKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBiL2xpYi9pZ3Rfa21zLmMKPiBpbmRl eCA2MmQ4NDY4NDE1YzYuLjQyMzE5OTZjNjVjYSAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2ttcy5j Cj4gKysrIGIvbGliL2lndF9rbXMuYwo+IEBAIC0xOTQsNiArMTk0LDcgQEAgY29uc3QgY2hhciAq IGNvbnN0IGlndF9jb25uZWN0b3JfcHJvcF9uYW1lc1tJR1RfTlVNX0NPTk5FQ1RPUl9QUk9QU10g PSB7Cj4gIAlbSUdUX0NPTk5FQ1RPUl9DUlRDX0lEXSA9ICJDUlRDX0lEIiwKPiAgCVtJR1RfQ09O TkVDVE9SX0RQTVNdID0gIkRQTVMiLAo+ICAJW0lHVF9DT05ORUNUT1JfQlJPQURDQVNUX1JHQl0g PSAiQnJvYWRjYXN0IFJHQiIsCj4gKwlbSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT05d ID0gIkNvbnRlbnQgUHJvdGVjdGlvbiIsCj4gIH07Cj4gIAo+ICAvKgo+IGRpZmYgLS1naXQgYS9s aWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAo+IGluZGV4IDNhMTJmMjc4MmVlZC4uYWEwNjhl NThlNjA3IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3Rfa21zLmgKPiArKysgYi9saWIvaWd0X2ttcy5o Cj4gQEAgLTEyMCw2ICsxMjAsNyBAQCBlbnVtIGlndF9hdG9taWNfY29ubmVjdG9yX3Byb3BlcnRp ZXMgewo+ICAgICAgICAgSUdUX0NPTk5FQ1RPUl9DUlRDX0lELAo+ICAgICAgICAgSUdUX0NPTk5F Q1RPUl9EUE1TLAo+ICAgICAgICAgSUdUX0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCLAo+ICsgICAg ICAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04sCj4gICAgICAgICBJR1RfTlVNX0NP Tk5FQ1RPUl9QUk9QUwo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291 cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCBjODQ5MzNmMWQ5NzEuLjVhZjY4 YTYxZGY1MSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4gKysrIGIvdGVz dHMvTWFrZWZpbGUuc291cmNlcwo+IEBAIC0xNzQsNiArMTc0LDcgQEAgVEVTVFNfcHJvZ3MgPSBc Cj4gIAlrbXNfY2h2X2N1cnNvcl9mYWlsIFwKPiAgCWttc19jb2xvciBcCj4gIAlrbXNfY29uY3Vy cmVudCBcCj4gKwlrbXNfY29udGVudF9wcm90ZWN0aW9uXAo+ICAJa21zX2NydGNfYmFja2dyb3Vu ZF9jb2xvciBcCj4gIAlrbXNfY3Vyc29yX2NyYyBcCj4gIAlrbXNfY3Vyc29yX2xlZ2FjeSBcCj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYyBiL3Rlc3RzL2ttc19j b250ZW50X3Byb3RlY3Rpb24uYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAw MDAwMDAwLi5lOGRlN2QzNTlkMDkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVzdHMva21zX2Nv bnRlbnRfcHJvdGVjdGlvbi5jCj4gQEAgLTAsMCArMSwzMDEgQEAKPiArLyoKPiArICogQ29weXJp Z2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4g KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBTb2Z0d2Fy ZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4g KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg QVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4K PiArICoKPiArICovCj4gKwo+ICsjaW5jbHVkZSA8cG9sbC5oPgo+ICsjaW5jbHVkZSAiaWd0Lmgi Cj4gKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKPiArCj4gK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJU ZXN0IGNvbnRlbnQgcHJvdGVjdGlvbiAoSERDUCkiKTsKPiArCj4gK3N0cnVjdCBkYXRhIHsKPiAr CWludCBkcm1fZmQ7Cj4gKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7Cj4gK30gZGF0YTsKPiArCj4g Kwo+ICtzdGF0aWMgdm9pZCBmbGlwX2hhbmRsZXIoaW50IGZkLCB1bnNpZ25lZCBpbnQgc2VxdWVu Y2UsIHVuc2lnbmVkIGludCB0dl9zZWMsCj4gKwkJCSB1bnNpZ25lZCBpbnQgdHZfdXNlYywgdm9p ZCAqX2RhdGEpCj4gK3sKPiArCWlndF9kZWJ1ZygiRmxpcCBldmVudCByZWNlaXZlZC5cbiIpOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHdhaXRfZmxpcF9ldmVudCh2b2lkKQo+ICt7Cj4gKwlpbnQg cmM7Cj4gKwlkcm1FdmVudENvbnRleHQgZXZjdHg7Cj4gKwlzdHJ1Y3QgcG9sbGZkIHBmZDsKPiAr Cj4gKwlldmN0eC52ZXJzaW9uID0gMjsKPiArCWV2Y3R4LnZibGFua19oYW5kbGVyID0gTlVMTDsK PiArCWV2Y3R4LnBhZ2VfZmxpcF9oYW5kbGVyID0gZmxpcF9oYW5kbGVyOwo+ICsKPiArCXBmZC5m ZCA9IGRhdGEuZHJtX2ZkOwo+ICsJcGZkLmV2ZW50cyA9IFBPTExJTjsKPiArCXBmZC5yZXZlbnRz ID0gMDsKPiArCj4gKwlyYyA9IHBvbGwoJnBmZCwgMSwgMTAwMCk7Cj4gKwlzd2l0Y2ggKHJjKSB7 Cj4gKwljYXNlIDA6Cj4gKwkJaWd0X2luZm8oIlBvbGwgdGltZW91dC4gMVNlYy5cbiIpOwo+ICsJ CXJjID0gLUVUSU1FRE9VVDsKPiArCQlicmVhazsKPiArCWNhc2UgMToKPiArCQlyYyA9IGRybUhh bmRsZUV2ZW50KGRhdGEuZHJtX2ZkLCAmZXZjdHgpOwo+ICsJCWlndF9hc3NlcnRfZXEocmMsIDAp Owo+ICsJCXJjID0gMDsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJaWd0X2luZm8oIlVu ZXhwZWN0ZWQgcG9sbCByYyAlZFxuIiwgcmMpOwo+ICsJCXJjID0gLTE7Cj4gKwkJYnJlYWs7Cj4g Kwl9Cj4gKwo+ICsJcmV0dXJuIHJjOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbAo+ICt3YWl0X2Zv cl9wcm9wX3ZhbHVlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCB1aW50NjRfdCBleHBlY3RlZCwKPiAr CQkgICAgdWludDMyX3QgdGltZW91dF9tU2VjKQo+ICt7Cj4gKwl1aW50NjRfdCB2YWw7Cj4gKwlp bnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgdGltZW91dF9tU2VjOyBpKyspIHsKPiArCQl2 YWwgPSBpZ3Rfb3V0cHV0X2dldF9wcm9wKG91dHB1dCwKPiArCQkJCQkgIElHVF9DT05ORUNUT1Jf Q09OVEVOVF9QUk9URUNUSU9OKTsKPiArCQlpZiAodmFsID09IGV4cGVjdGVkKQo+ICsJCQlyZXR1 cm4gdHJ1ZTsKPiArCQl1c2xlZXAoMTAwMCk7Cj4gKwl9Cj4gKwlpZ3RfaW5mbygicHJvcF92YWx1 ZSBtaXNtYXRjaCAlbGQgIT0gJWxkXG4iLCB2YWwsIGV4cGVjdGVkKTsKPiArCj4gKwlyZXR1cm4g ZmFsc2U7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkCj4gK2NvbW1pdF9kaXNwbGF5X2FuZF93YWl0 X2Zvcl9mbGlwKGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsJ dWludDMyX3QgZmxhZzsKPiArCj4gKwlpZiAocyA9PSBDT01NSVRfQVRPTUlDKSB7Cj4gKwkJZmxh ZyA9IERSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCB8IERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RF U0VUOwo+ICsJCWlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMoJmRhdGEuZGlzcGxheSwgZmxhZywg TlVMTCk7Cj4gKwo+ICsJCXJldCA9IHdhaXRfZmxpcF9ldmVudCgpOwo+ICsJCWlndF9hc3NlcnRf ZighcmV0LCAid2FpdF9mbGlwX2V2ZW50IGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4gKwl9IGVsc2Ug ewo+ICsJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEuZGlzcGxheSwgcyk7Cj4gKwo+ICsJCS8q IFdhaXQgZm9yIDUwbVNlYyAqLwo+ICsJCXVzbGVlcCg1MCAqIDEwMDApOwo+ICsJfQo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZAo+ICt0ZXN0X2NwX2VuYWJsZV9kaXNhYmxlKGNvbnN0IGVudW0gcGlw ZSBwaXBlLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKPiArCQkgICAgICAgZW51bSBpZ3RfY29tbWl0 X3N0eWxlIHMpCj4gK3sKPiArCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS5kaXNwbGF5 Owo+ICsJZHJtTW9kZU1vZGVJbmZvIG1vZGU7Cj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPiAr CXN0cnVjdCBpZ3RfZmIgcmVkLCBncmVlbjsKPiArCWJvb2wgcmV0Owo+ICsJaW50IHJldHJ5ID0g MzsKPiArCj4gKwlpZ3RfYXNzZXJ0KGttc3Rlc3RfZ2V0X2Nvbm5lY3Rvcl9kZWZhdWx0X21vZGUo Cj4gKwkJCWRpc3BsYXktPmRybV9mZCwgb3V0cHV0LT5jb25maWcuY29ubmVjdG9yLCAmbW9kZSkp Owo+ICsKPiArCWlndF9vdXRwdXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsICZtb2RlKTsKPiArCWln dF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPiArCj4gKwlpZ3RfY3JlYXRlX2NvbG9y X2ZiKGRpc3BsYXktPmRybV9mZCwgbW9kZS5oZGlzcGxheSwgbW9kZS52ZGlzcGxheSwKPiArCQkJ ICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCj4gKwkJ CSAgICAxLmYsIDAuZiwgMC5mLCAmcmVkKTsKPiArCWlndF9jcmVhdGVfY29sb3JfZmIoZGlzcGxh eS0+ZHJtX2ZkLCBtb2RlLmhkaXNwbGF5LCBtb2RlLnZkaXNwbGF5LAo+ICsJCQkgICAgRFJNX0ZP Uk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiArCQkJICAgIDAuZiwg MS5mLCAwLmYsICZncmVlbik7Cj4gKwo+ICsJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5l X3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiArCWlndF9kaXNwbGF5X2Nv bW1pdDIoZGlzcGxheSwgcyk7Cj4gKwo+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmcmVk KTsKPiArCj4gKwkvKiBXYWl0IGZvciBGbGlwIGNvbXBsZXRpb24gYmVmb3JlIHN0YXJ0aW5nIHRo ZSBIRENQIGF1dGhlbnRpY2F0aW9uICovCj4gKwljb21taXRfZGlzcGxheV9hbmRfd2FpdF9mb3Jf ZmxpcChzKTsKPiArCj4gKwlkbyB7Cj4gKwkJaWd0X291dHB1dF9zZXRfcHJvcF92YWx1ZShvdXRw dXQsCj4gKwkJCQkJICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwgMCk7Cj4gKwkJ aWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBzKTsKPiArCj4gKwkJLyogV2FpdCBmb3IgSERD UCB0byBiZSBkaXNhYmxlZCBmb3IgZnJlc2ggc3RhcnQuICovCj4gKwkJcmV0ID0gd2FpdF9mb3Jf cHJvcF92YWx1ZShvdXRwdXQsIDAsIDEwMDApOwo+ICsJCWlndF9hc3NlcnRfZihyZXQsICJDb250 ZW50IFByb3RlY3Rpb24gbm90IGNsZWFyZWRcbiIpOwo+ICsKPiArCQlpZ3Rfb3V0cHV0X3NldF9w cm9wX3ZhbHVlKG91dHB1dCwKPiArCQkJCQkgIElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNU SU9OLCAxKTsKPiArCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOwo+ICsKPiArCQkv KiBXYWl0IGZvciAxODAwMG1TZWMgKDMgYXV0aGVudGljYXRpb24gKiA2U2VjKSAqLwo+ICsJCXJl dCA9IHdhaXRfZm9yX3Byb3BfdmFsdWUob3V0cHV0LCAyLCAxODAwMCk7Cj4gKwkJaWYgKHJldCkg ewo+ICsJCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZncmVlbik7Cj4gKwkJCWlndF9kaXNw bGF5X2NvbW1pdDIoZGlzcGxheSwgcyk7Cj4gKwkJfQo+ICsKPiArCQlpZiAoIXJldCAmJiAtLXJl dHJ5KQo+ICsJCQlpZ3RfZGVidWcoIlJldHJ5ICglZC8yKSAuLi5cbiIsIDMgLSByZXRyeSk7Cj4g Kwl9IHdoaWxlIChyZXRyeSAmJiAhcmV0KTsKPiArCj4gKwlpZ3RfYXNzZXJ0X2YocmV0LCAiQ29u dGVudCBQcm90ZWN0aW9uIG5vdCBlbmFibGVkXG4iKTsKPiArCj4gKwlpZ3Rfb3V0cHV0X3NldF9w cm9wX3ZhbHVlKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04sIDApOwo+ ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmcmVkKTsKPiArCWlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgcyk7Cj4gKwo+ICsJLyogV2FpdCBmb3IgSERDUCB0byBiZSBkaXNhYmxlZCwg YmVmb3JlIGNydGMgb2ZmICovCj4gKwl3YWl0X2Zvcl9wcm9wX3ZhbHVlKG91dHB1dCwgMCwgMTAw MCk7Cj4gKwo+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKPiArCWlndF9vdXRw dXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBp Z3RfcGlwZV9pc19mcmVlKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlKQo+ ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgZGlzcGxheS0+bl9vdXRwdXRz OyBpKyspCj4gKwkJaWYgKGRpc3BsYXktPm91dHB1dHNbaV0ucGVuZGluZ19waXBlID09IHBpcGUp Cj4gKwkJCXJldHVybiBmYWxzZTsKPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQKPiArdGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KGlndF9vdXRwdXRf dCAqb3V0cHV0LAo+ICsJCQkJICBlbnVtIGlndF9jb21taXRfc3R5bGUgcykKPiArewo+ICsJaWd0 X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLmRpc3BsYXk7Cj4gKwllbnVtIHBpcGUgcGlwZTsK PiArCj4gKwlmb3JfZWFjaF9waXBlKGRpc3BsYXksIHBpcGUpIHsKPiArCQlpZiAoIWlndF9waXBl X2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJ LyoKPiArCQkgKiBJZiBwcmV2aW91cyBzdWJ0ZXN0IG9mIGNvbm5lY3RvciBmYWlsZWQsIHBpcGUK PiArCQkgKiBhdHRhY2hlZCB0byB0aGF0IGNvbm5lY3RvciBpcyBub3QgcmVsZWFzZWQuCj4gKwkJ ICogQmVjYXVzZSBvZiB0aGF0IHdlIGhhdmUgdG8gY2hvb3NlIHRoZSBub24KPiArCQkgKiBhdHRh Y2hlZCBwaXBlIGZvciB0aGlzIHN1YnRlc3QuCj4gKwkJICovCj4gKwkJaWYgKCFpZ3RfcGlwZV9p c19mcmVlKGRpc3BsYXksIHBpcGUpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJdGVzdF9jcF9l bmFibGVfZGlzYWJsZShwaXBlLCBvdXRwdXQsIHMpOwo+ICsKPiArCQkvKgo+ICsJCSAqIFRlc3Rp bmcgYSBvdXRwdXQgd2l0aCBhIHBpcGUgaXMgZW5vdWdoIGZvciBIRENQCj4gKwkJICogdGVzdGlu Zy4gTm8gUk9JIGluIHRlc3RpbmcgdGhlIGNvbm5lY3RvciB3aXRoIG90aGVyCj4gKwkJICogcGlw ZXMuIFNvIEJyZWFrIHRoZSBsb29wIG9uIHBpcGUuCj4gKwkJICovCj4gKwkJYnJlYWs7Cj4gKwl9 Cj4gKwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBfX2RlYnVnZnNfcmVhZChpbnQgZmQsIGNvbnN0 IGNoYXIgKnBhcmFtLCBjaGFyICpidWYsIGludCBsZW4pCj4gK3sKPiArCWxlbiA9IGlndF9kZWJ1 Z2ZzX3NpbXBsZV9yZWFkKGZkLCBwYXJhbSwgYnVmLCBsZW4pOwo+ICsJaWYgKGxlbiA8IDApCj4g KwkJaWd0X2Fzc2VydF9lcShsZW4sIC1FTk9ERVYpOwo+ICt9Cj4gKwo+ICsjZGVmaW5lIGRlYnVn ZnNfcmVhZChmZCwgcCwgYXJyKSBfX2RlYnVnZnNfcmVhZChmZCwgcCwgYXJyLCBzaXplb2YoYXJy KSkKPiArCj4gKyNkZWZpbmUgTUFYX1NJTktfSERDUF9DQVBfQlVGX0xFTgk1MDAKPiArc3RhdGlj IGJvb2wgc2lua19oZGNwX2NhcGFibGUoaWd0X291dHB1dF90ICpvdXRwdXQpCj4gK3sKPiArCWNo YXIgYnVmW01BWF9TSU5LX0hEQ1BfQ0FQX0JVRl9MRU5dOwo+ICsJaW50IGZkOwo+ICsKPiArCWZk ID0gaWd0X2RlYnVnZnNfY29ubmVjdG9yX2RpcihkYXRhLmRybV9mZCwgb3V0cHV0LT5uYW1lKTsK PiArCWlmIChmZCA8IDApCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCWRlYnVnZnNfcmVhZChm ZCwgImk5MTVfaGRjcF9zaW5rX2NhcGFiaWxpdHkiLCBidWYpOwo+ICsJY2xvc2UoZmQpOwo+ICsK PiArCWlndF9kZWJ1ZygiU2luayBjYXBhYmlsaXR5OiAlc1xuIiwgYnVmKTsKPiArCj4gKwlyZXR1 cm4gc3Ryc3RyKGJ1ZiwgIkhEQ1AxLjQiKTsKPiArfQo+ICsKPiArCj4gK3N0YXRpYyB2b2lkCj4g K3Rlc3RfY29udGVudF9wcm90ZWN0aW9uKGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzKQo+ICt7Cj4g KwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEuZGlzcGxheTsKPiArCWlndF9vdXRwdXRf dCAqb3V0cHV0Owo+ICsJaW50IHZhbGlkX3Rlc3RzID0gMDsKPiArCj4gKwlmb3JfZWFjaF9jb25u ZWN0ZWRfb3V0cHV0KGRpc3BsYXksIG91dHB1dCkgewo+ICsJCWlmICghb3V0cHV0LT5wcm9wc1tJ R1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTl0pCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiAr CQlpZ3RfaW5mbygiQ1AgVGVzdCBleGVjdXRpb24gb24gJXNcbiIsIG91dHB1dC0+bmFtZSk7Cj4g KwkJaWYgKCFzaW5rX2hkY3BfY2FwYWJsZShvdXRwdXQpKSB7Cj4gKwkJCWlndF9pbmZvKCJcdFNr aXAgJXMgKFNpbmsgaGFzIG5vIEhEQ1Agc3VwcG9ydClcbiIsCj4gKwkJCQkgb3V0cHV0LT5uYW1l KTsKPiArCQkJY29udGludWU7Cj4gKwkJfQo+ICsKPiArCQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlv bl9vbl9vdXRwdXQob3V0cHV0LCBzKTsKPiArCQl2YWxpZF90ZXN0cysrOwo+ICsJfQo+ICsKPiAr CWlndF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJObyBjb25uZWN0b3IgZm91bmQgd2l0aCBIRENQ IGNhcGFiaWxpdHlcbiIpOwo+ICt9Cj4gKwo+ICtpZ3RfbWFpbgo+ICt7Cj4gKwlpZ3RfZml4dHVy ZSB7Cj4gKwkJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICsKPiArCQlkYXRhLmRybV9mZCA9 IGRybV9vcGVuX2RyaXZlcihEUklWRVJfQU5ZKTsKPiArCj4gKwkJaWd0X2Rpc3BsYXlfaW5pdCgm ZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7Cj4gKwl9Cj4gKwo+ICsJaWd0X3N1YnRlc3QoImxl Z2FjeSIpCj4gKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0xFR0FDWSk7Cj4gKwo+ ICsJaWd0X3N1YnRlc3QoImF0b21pYyIpIHsKPiArCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXku aXNfYXRvbWljKTsKPiArCQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihDT01NSVRfQVRPTUlDKTsK PiArCX0KPiArCj4gKwlpZ3RfZml4dHVyZQo+ICsJCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlz cGxheSk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNv bi5idWlsZAo+IGluZGV4IDE3ZGViOTQ1ZWM5NS4uYTc0ZGU0ZmYwZWNlIDEwMDY0NAo+IC0tLSBh L3Rlc3RzL21lc29uLmJ1aWxkCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKPiBAQCAtMTQ5LDYg KzE0OSw3IEBAIHRlc3RfcHJvZ3MgPSBbCj4gIAkna21zX2Nodl9jdXJzb3JfZmFpbCcsCj4gIAkn a21zX2NvbG9yJywKPiAgCSdrbXNfY29uY3VycmVudCcsCj4gKwkna21zX2NvbnRlbnRfcHJvdGVj dGlvbicsCj4gIAkna21zX2NydGNfYmFja2dyb3VuZF9jb2xvcicsCj4gIAkna21zX2N1cnNvcl9j cmMnLAo+ICAJJ2ttc19jdXJzb3JfbGVnYWN5JywKPiAtLSAKPiAyLjcuNAo+IAoKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=