From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id B552E89135 for ; Mon, 29 Apr 2019 15:24:33 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id g57so2925778edc.12 for ; Mon, 29 Apr 2019 08:24:33 -0700 (PDT) Date: Mon, 29 Apr 2019 17:24:29 +0200 From: Daniel Vetter Message-ID: <20190429152429.GQ3271@phenom.ffwll.local> References: <20190418084842.5422-1-ramalingam.c@intel.com> <20190418084842.5422-6-ramalingam.c@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190418084842.5422-6-ramalingam.c@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v5 5/6] kms_content_protection: srm and topology_info 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, daniel.vetter@intel.com List-ID: T24gVGh1LCBBcHIgMTgsIDIwMTkgYXQgMDI6MTg6NDFQTSArMDUzMCwgUmFtYWxpbmdhbSBDIHdy b3RlOgo+IFJldHJpZXZlIHRoZSB0b3BvbG9neSBpbmZvIGFuZCB1c2UgdGhhdCB0byBzdGl0Y2gg YSBzcm0gYW5kCj4gdmVyaWZ5IHRoZSByZXZvY2F0aW9uIHByb2Nlc3MuCj4gCj4gQWRkcyBhIGNv bm5lY3RvciBwcm9wZXJ0aWVzIGNhbGxlZCAiSERDUCBUb3BvbG9neSIKPiAKPiBTUk0gc3RpdGNo ZWQgaGVyZSBpcyBwb2xsdXRlZC4gS2VybmVsIHRydXN0cyB0aGUgdXNlcnNwYWNlIHRvIHZhbGlk YXRlCj4gdGhlIFNSTSBpbnRlZ3JpdHkgdGhyb3VnaCBEQ1Agc2lnbmF0dXJlLiBBY3R1YWxseSB0 aGlzIHRlc3QgZXhwbG9pdHMKPiB0aGF0IHRydXN0IHRvIHRlc3QgU1JNIGFuZCBkb3duc3RyZWFt X2luZm8gZmVhdHVyZXMuCj4gCj4gSERDUDEuNCBCS1NWIGFuZCBIRENQMi4yIHJlY2VpdmVyIGlk IG9mIGEgSERDUCBzaW5rIGlzIGRpZmZlcmVudC4gU28gd2UKPiBuZWVkIHRvIGZvcmNlIHRoZSBL TUQgdG8gdXNlIGEgc2luZ2xlIEhEQ1AgdmVyc2lvbiBhY3Jvc3MKPiBkb3duc3RyZWFtX2luZm8g Z2F0aGVyaW5nIGFuZCBTUk0gc2V0dGluZyBhbmQgdmVyaWZ5aW5nIHRlaCByZXZvY2F0aW9uCj4g cHJvY2Vzcy4gU28gVHlwZSAxIGlzIHVzZWQuCj4gCj4gdjI6Cj4gICBiaW5hcnkgc3lzZnMgaXMg dXNlZCB0byB3cml0ZSB0aGUgc3JtIGludG8ga2VybmVsIFtEYW5pZWxdCj4gdjM6Cj4gICBzL0NQ X2Rvd25zdHJlYW1faW5mby9IRENQIFRvcG9sb2d5Cj4gdjQ6Cj4gICBzcm0gc3lzZnMgaXMgbW92 ZWQgdG8gL3N5cy9jbGFzcy9kcm0gYXMgcGVyIGtlcm5lbCBjaGFuZ2VzLgo+ICAgZXhwbGljaXQg cGFkZGluZyBpcyBhZGRlZCBmb3IgdG9wb2xvZ3kgc3RydWN0LCBpbiBzeW5jIHdpdGgga2VybmVs Lgo+IHY1Ogo+ICAgU1JNIGlzIHdyaXR0ZW4gaW50byAvbGliL2Zpcm13YXJlLyBpbnN0ZWFkIG9m IHNybSBzeXNmcyBbRGFuaWVsXQo+IAo+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFt YWxpbmdhbS5jQGludGVsLmNvbT4KPiAtLS0KPiAgbGliL2lndF9rbXMuYyAgICAgICAgICAgICAg ICAgIHwgICAxICsKPiAgbGliL2lndF9rbXMuaCAgICAgICAgICAgICAgICAgIHwgICAxICsKPiAg dGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jIHwgMjMwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRpb25zKCspLCAxOCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBiL2xpYi9pZ3Rfa21z LmMKPiBpbmRleCAxOGYwNTU2Njg3ZGUuLjdkNDA4MGNiMWI2MCAxMDA2NDQKPiAtLS0gYS9saWIv aWd0X2ttcy5jCj4gKysrIGIvbGliL2lndF9rbXMuYwo+IEBAIC0yMjMsNiArMjIzLDcgQEAgY29u c3QgY2hhciAqIGNvbnN0IGlndF9jb25uZWN0b3JfcHJvcF9uYW1lc1tJR1RfTlVNX0NPTk5FQ1RP Ul9QUk9QU10gPSB7Cj4gIAlbSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT05dID0gIkNv bnRlbnQgUHJvdGVjdGlvbiIsCj4gIAlbSUdUX0NPTk5FQ1RPUl9WUlJfQ0FQQUJMRV0gPSAidnJy X2NhcGFibGUiLAo+ICAJW0lHVF9DT05ORUNUT1JfSERDUF9DT05URU5UX1RZUEVdID0gIkhEQ1Ag Q29udGVudCBUeXBlIiwKPiArCVtJR1RfQ09OTkVDVE9SX0hEQ1BfVE9QT0xPR1lfSU5GT10gPSAi SERDUCBUb3BvbG9neSIsCj4gIH07Cj4gIAo+ICAvKgo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2tt cy5oIGIvbGliL2lndF9rbXMuaAo+IGluZGV4IGIxNDMwYTUxNzMwNS4uOTAxNTRlODViNjk5IDEw MDY0NAo+IC0tLSBhL2xpYi9pZ3Rfa21zLmgKPiArKysgYi9saWIvaWd0X2ttcy5oCj4gQEAgLTEy NCw2ICsxMjQsNyBAQCBlbnVtIGlndF9hdG9taWNfY29ubmVjdG9yX3Byb3BlcnRpZXMgewo+ICAg ICAgICAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04sCj4gICAgICAgICBJR1RfQ09O TkVDVE9SX1ZSUl9DQVBBQkxFLAo+ICAgICAgICAgSUdUX0NPTk5FQ1RPUl9IRENQX0NPTlRFTlRf VFlQRSwKPiArICAgICAgIElHVF9DT05ORUNUT1JfSERDUF9UT1BPTE9HWV9JTkZPLAo+ICAgICAg ICAgSUdUX05VTV9DT05ORUNUT1JfUFJPUFMKPiAgfTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2ttc19jb250ZW50X3Byb3RlY3Rpb24uYyBiL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24u Ywo+IGluZGV4IDQ4Zjg5NTcxZGNmZi4uYjQ4OTE1ZWIzZDczIDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwo+ICsrKyBiL3Rlc3RzL2ttc19jb250ZW50X3Byb3Rl Y3Rpb24uYwo+IEBAIC01OCw2ICs1OCwxMTggQEAgc3RydWN0IGRhdGEgewo+ICAjZGVmaW5lIEZM SVBfRVZFTlRfUE9MTElOR19USU1FT1VUX01TRUMJCTEwMDAKPiAgCj4gIAo+ICsjZGVmaW5lIERS TV9NT0RFX0hEQ1BfS1NWX0xFTgkJCTUKPiArI2RlZmluZSBEUk1fTU9ERV9IRENQX01BWF9ERVZJ Q0VfQ05UCQkxMjcKPiArCj4gKyNkZWZpbmUgRFJNX01PREVfSERDUDE0X0lOX0ZPUkNFCQkoMTw8 MCkKPiArI2RlZmluZSBEUk1fTU9ERV9IRENQMjJfSU5fRk9SQ0UJCSgxPDwxKQo+ICsKPiArc3Ry dWN0IGhkY3BfdG9wb2xvZ3lfaW5mbyB7Cj4gKwkvKiBWZXJzaW9uIG9mIEhEQ1AgYXV0aGVudGlj YXRlZCAoMS40LzIuMikgKi8KPiArCV9fdTMyIHZlcl9pbl9mb3JjZTsKPiArCj4gKwkvKiBBcHBs aWNhYmxlIG9ubHkgZm9yIEhEQ1AyLjIgKi8KPiArCV9fdTMyIGNvbnRlbnRfdHlwZTsKPiArCj4g KwkvKiBLU1Ygb2YgaW1tZWRpYXRlIEhEQ1AgU2luay4gSW4gTGl0dGxlLUVuZGlhbiBGb3JtYXQu ICovCj4gKwlfX3U4IGJrc3ZbRFJNX01PREVfSERDUF9LU1ZfTEVOXTsKPiArCj4gKwkvKiBXaGV0 aGVyIEltbWVkaWF0ZSBIRENQIHNpbmsgaXMgYSByZXBlYXRlcj8gKi8KPiArCV9fdTggaXNfcmVw ZWF0ZXI7Cj4gKwo+ICsJLyogRGVwdGggcmVjZWl2ZWQgZnJvbSBpbW1lZGlhdGUgZG93bnN0cmVh bSByZXBlYXRlciAqLwo+ICsJX191OCBkZXB0aDsKPiArCV9fdTggcGFkMTsKPiArCj4gKwkvKiBE ZXZpY2UgY291bnQgcmVjZWl2ZWQgZnJvbSBpbW1lZGlhdGUgZG93bnN0cmVhbSByZXBlYXRlciAq Lwo+ICsJX191MzIgZGV2aWNlX2NvdW50Owo+ICsKPiArCS8qCj4gKwkgKiBNYXggYnVmZmVyIHJl cXVpcmVkIHRvIGhvbGQga3N2IGxpc3QgcmVjZWl2ZWQgZnJvbSBpbW1lZGlhdGUKPiArCSAqIHJl cGVhdGVyLiBJbiB0aGlzIGFycmF5IGZpcnN0IGRldmljZV9jb3VudCAqIERSTV9NT0RFX0hEQ1Bf S1NWX0xFTgo+ICsJICogd2lsbCBob2xkIHRoZSB2YWxpZCBrc3YgYnl0ZXMuCj4gKwkgKiBJZiBh dXRoZW50aWNhdGlvbiBzcGVjaWZpY2F0aW9uIGlzCj4gKwkgKiAgICAgIEhEQ1AxLjQgLSBlYWNo IEtTVidzIEJ5dGVzIHdpbGwgYmUgaW4gTGl0dGxlLUVuZGlhbiBmb3JtYXQuCj4gKwkgKiAgICAg IEhEQ1AyLjIgLSBlYWNoIEtTVidzIEJ5dGVzIHdpbGwgYmUgaW4gQmlnLUVuZGlhbiBmb3JtYXQu Cj4gKwkgKi8KPiArCV9fdTgga3N2X2xpc3RbRFJNX01PREVfSERDUF9LU1ZfTEVOICogRFJNX01P REVfSERDUF9NQVhfREVWSUNFX0NOVF07Cj4gKwlfX3U4IHBhZDJbNV07Cj4gK30gX19wYWNrZWQ7 Cj4gKwo+ICtfX3U4IGZhY3NpbWlsZV9zcm1bXSA9IHsKPiArCTB4ODAsIDB4MCwgMHgwLCAweDA1 LCAweDAxLCAweDAsIDB4MCwgMHgzNiwgMHgwMiwgMHg1MSwgMHgxRSwgMHhGMiwKPiArCTB4MUEs IDB4Q0QsIDB4RTcsIDB4MjYsIDB4OTcsIDB4RjQsIDB4MDEsIDB4OTcsIDB4MTAsIDB4MTksIDB4 OTIsIDB4NTMsCj4gKwkweEU5LCAweEYwLCAweDU5LCAweDk1LCAweEEzLCAweDdBLCAweDNCLCAw eEZFLCAweEUwLCAweDlDLCAweDc2LCAweERELAo+ICsJMHg4MywgMHhBQSwgMHhDMiwgMHg1Qiwg MHgyNCwgMHhCMywgMHgzNiwgMHg4NCwgMHg5NCwgMHg3NSwgMHgzNCwgMHhEQiwKPiArCTB4MTAs IDB4OUUsIDB4M0IsIDB4MjMsIDB4MTMsIDB4RDgsIDB4N0EsIDB4QzIsIDB4MzAsIDB4NzksIDB4 ODR9Owo+ICsKPiArc3RhdGljIHZvaWQgcGFyc2VfdG9wb2xvZ3lfaW5mbyhzdHJ1Y3QgaGRjcF90 b3BvbG9neV9pbmZvICpkc19pbmZvKQo+ICt7Cj4gKwlfX3U4ICprc3ZzOwo+ICsJaW50IGk7Cj4g Kwo+ICsJaWYgKGRzX2luZm8tPnZlcl9pbl9mb3JjZSAmIERSTV9NT0RFX0hEQ1AxNF9JTl9GT1JD RSkKPiArCQlpZ3RfaW5mbygiSERDUDEuNCBpcyBFbmFibGVkXG4iKTsKPiArCWVsc2UgaWYgKGRz X2luZm8tPnZlcl9pbl9mb3JjZSAmIERSTV9NT0RFX0hEQ1AyMl9JTl9GT1JDRSkKPiArCQlpZ3Rf aW5mbygiSERDUDIuMiBpcyBFbmFibGVkLiBUeXBlJWRcbiIsCj4gKwkJCSBkc19pbmZvLT5jb250 ZW50X3R5cGUgJiBIRENQX0NPTlRFTlRfVFlQRV8xID8KPiArCQkJIDEgOiAwKTsKPiArCWVsc2UK PiArCQlyZXR1cm47Cj4gKwo+ICsJaWd0X2luZm8oIlx0UmVjZWl2ZXIgSUQ6ICUjMDR4ICUjMDR4 ICUjMDR4ICUjMDR4ICUjMDR4XG4iLAo+ICsJCQlkc19pbmZvLT5ia3N2WzBdICYgMHhGRiwgZHNf aW5mby0+YmtzdlsxXSAmIDB4RkYsCj4gKwkJCWRzX2luZm8tPmJrc3ZbMl0gJiAweEZGLCBkc19p bmZvLT5ia3N2WzNdICYgMHhGRiwKPiArCQkJZHNfaW5mby0+Ymtzdls0XSAmIDB4RkYpOwo+ICsK PiArCWlmIChkc19pbmZvLT5pc19yZXBlYXRlcikgewo+ICsJCWlndF9pbmZvKCJcdEhEQ1Agc2lu ayBpcyBhIFJlcGVhdGVyXG4iKTsKPiArCj4gKwkJaWd0X2luZm8oIlx0RGVwdGg6ICVkLCBEZXZp Y2UgY291bnQ6ICVkXG4iLCBkc19pbmZvLT5kZXB0aCwKPiArCQkJCQkJCWRzX2luZm8tPmRldmlj ZV9jb3VudCk7Cj4gKwkJa3N2cyA9IGRzX2luZm8tPmtzdl9saXN0Owo+ICsKPiArCQlmb3IgKGkg PSAwOyBpIDwgZHNfaW5mby0+ZGV2aWNlX2NvdW50OyBpKyspIHsKPiArCQkJaWd0X2luZm8oIlx0 a3N2LSVkOiAlIzA0eCAlIzA0eCAlIzA0eCAlIzA0eCAlIzA0eFxuIiwgaSwKPiArCQkJCQlrc3Zz WzBdICYgMHhGRiwga3N2c1sxXSAmIDB4RkYsCj4gKwkJCQkJa3N2c1syXSAmIDB4RkYsIGtzdnNb M10gJiAweEZGLAo+ICsJCQkJCWtzdnNbNF0gJiAweEZGKTsKPiArCQkJa3N2cyArPSBEUk1fTU9E RV9IRENQX0tTVl9MRU47Cj4gKwkJfQo+ICsJfSBlbHNlIHsKPiArCQlpZ3RfaW5mbygiXHRIRENQ IHNpbmsgaXMgYSBSZWNlaXZlclxuIik7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHJl dHJpZXZlX3RvcG9sb2d5X2luZm9fcHJlcGFyZV9zcm0oaWd0X291dHB1dF90ICpvdXRwdXQpCj4g K3sKPiArCWRybU1vZGVQcm9wZXJ0eUJsb2JSZXMgKmRzX2luZm9fcHJvcCA9IE5VTEw7Cj4gKwl1 aW50NjRfdCB0b3BvbG9neV9ibG9iX2lkOwo+ICsJc3RydWN0IGhkY3BfdG9wb2xvZ3lfaW5mbyAq ZHNfaW5mbzsKPiArCWludCBpOwo+ICsKPiArCWlndF9pbmZvKCJIRENQIHRvcG9sb2d5IHByb3Bl cnR5IGlzIGF0dGFjaGVkXG4iKTsKPiArCj4gKwl0b3BvbG9neV9ibG9iX2lkID0gaWd0X291dHB1 dF9nZXRfcHJvcChvdXRwdXQsCj4gKwkJCQlJR1RfQ09OTkVDVE9SX0hEQ1BfVE9QT0xPR1lfSU5G Tyk7Cj4gKwo+ICsJaWd0X2Fzc2VydF9mKHRvcG9sb2d5X2Jsb2JfaWQsCj4gKwkJCQkiSW52YWxp ZCB0b3BvbG9neSBibG9iIGlkXG4iKTsKPiArCj4gKwlkc19pbmZvX3Byb3AgPSBkcm1Nb2RlR2V0 UHJvcGVydHlCbG9iKGRhdGEuZHJtX2ZkLAo+ICsJCQkJCQl0b3BvbG9neV9ibG9iX2lkKTsKPiAr Cj4gKwlpZ3RfYXNzZXJ0KGRzX2luZm9fcHJvcCk7Cj4gKwlpZ3RfYXNzZXJ0X2VxKGRzX2luZm9f cHJvcC0+bGVuZ3RoLAo+ICsJCQkJc2l6ZW9mKHN0cnVjdCBoZGNwX3RvcG9sb2d5X2luZm8pKTsK PiArCWRzX2luZm8gPSBkc19pbmZvX3Byb3AtPmRhdGE7Cj4gKwo+ICsJcGFyc2VfdG9wb2xvZ3lf aW5mbyhkc19pbmZvKTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKQo+ICsJCWZhY3Np bWlsZV9zcm1baSArIDldID0gZHNfaW5mby0+YmtzdltpXTsKPiArfQo+ICsKPiAgc3RhdGljIHZv aWQgZmxpcF9oYW5kbGVyKGludCBmZCwgdW5zaWduZWQgaW50IHNlcXVlbmNlLCB1bnNpZ25lZCBp bnQgdHZfc2VjLAo+ICAJCQkgdW5zaWduZWQgaW50IHR2X3VzZWMsIHZvaWQgKl9kYXRhKQo+ICB7 Cj4gQEAgLTM1NSw3ICs0NjcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2NwX2Rpc2FibGUoaWd0X291 dHB1dF90ICpvdXRwdXQsIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzKQo+ICBzdGF0aWMgdm9pZCB0 ZXN0X2NwX2VuYWJsZV93aXRoX3JldHJ5KGlndF9vdXRwdXRfdCAqb3V0cHV0LAo+ICAJCQkJICAg ICAgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMsIGludCByZXRyeSwKPiAgCQkJCSAgICAgIGludCBj b250ZW50X3R5cGUsIGJvb2wgZXhwZWN0X2ZhaWx1cmUsCj4gLQkJCQkgICAgICBib29sIHRlc3Rf dHlwZV9jaGFuZ2UpCj4gKwkJCQkgICAgICBib29sIHRlc3RfdHlwZV9jaGFuZ2UsIGJvb2wgdGVz dF9zcm0pCj4gIHsKPiAgCWludCByZXRyeV9vcmlnID0gcmV0cnk7Cj4gIAlib29sIHJldDsKPiBA QCAtMzc2LDYgKzQ4OCw5IEBAIHN0YXRpYyB2b2lkIHRlc3RfY3BfZW5hYmxlX3dpdGhfcmV0cnko aWd0X291dHB1dF90ICpvdXRwdXQsCj4gIAlpZiAoZXhwZWN0X2ZhaWx1cmUpCj4gIAkJaWd0X2Fz c2VydF9mKCFyZXQsCj4gIAkJCSAgICAgIkNQIEVuYWJsZWQuIFRob3VnaCBpdCBpcyBleHBlY3Rl ZCB0byBmYWlsXG4iKTsKPiArCWVsc2UgaWYgKHRlc3Rfc3JtKQo+ICsJCWlndF9hc3NlcnRfZigh cmV0LAo+ICsJCQkgICAgICJDUCBFbmFibGVkLiBUaG91Z2ggSUQgaXMgcmV2b2tlZCB0aHJvdWdo IFNSTVxuIik7Cj4gIAllbHNlCj4gIAkJaWd0X2Fzc2VydF9mKHJldCwgIkNvbnRlbnQgUHJvdGVj dGlvbiBub3QgZW5hYmxlZFxuIik7Cj4gIH0KPiBAQCAtNDAwLDE1ICs1MTUsMzcgQEAgc3RhdGlj IHZvaWQgdGVzdF9jcF9saWMoaWd0X291dHB1dF90ICpvdXRwdXQpCj4gIAlpZ3RfYXNzZXJ0X2Yo IXJldCwgIkNvbnRlbnQgUHJvdGVjdGlvbiBMSUMgRmFpbGVkXG4iKTsKPiAgfQo+ICAKPiArc3Rh dGljIGJvb2wgd3JpdGVfc3JtX2FzX2Z3KGNvbnN0IF9fdTggKnNybSwgaW50IGxlbikKPiArewo+ ICsJaW50IGZkLCByZXQsIHRvdGFsID0gMDsKPiArCj4gKwlmZCA9IG9wZW4oIi9saWIvZmlybXdh cmUvZGlzcGxheV9oZGNwX3NybS5iaW4iLCBPX1dST05MWSB8IE9fQ1JFQVQpOwo+ICsJZG8gewo+ ICsJCXJldCA9IHdyaXRlKGZkLCBzcm0gKyB0b3RhbCwgbGVuIC0gdG90YWwpOwo+ICsJCWlmIChy ZXQgPCAwKQo+ICsJCQlyZXQgPSAtZXJybm87Cj4gKwkJaWYgKHJldCA9PSAtRUlOVFIgfHwgcmV0 ID09IC1FQUdBSU4pCj4gKwkJCWNvbnRpbnVlOwo+ICsJCWlmIChyZXQgPD0gMCkKPiArCQkJYnJl YWs7Cj4gKwkJdG90YWwgKz0gcmV0Owo+ICsJfSB3aGlsZSAodG90YWwgIT0gbGVuKTsKPiArCWNs b3NlKGZkKTsKPiArCj4gKwlyZXR1cm4gdG90YWwgPCBsZW4gPyBmYWxzZSA6IHRydWU7Cj4gK30K PiArCj4gIHN0YXRpYyB2b2lkCj4gIHRlc3RfY29udGVudF9wcm90ZWN0aW9uX29uX291dHB1dChp Z3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMsCj4gIAkJCQkgIGJv b2wgZHBtc190ZXN0LCBpbnQgY29udGVudF90eXBlLAo+IC0JCQkJICBib29sIG1laV9yZWxvYWRf dGVzdCwgYm9vbCB0ZXN0X3R5cGVfY2hhbmdlKQo+ICsJCQkJICBib29sIG1laV9yZWxvYWRfdGVz dCwgYm9vbCB0ZXN0X3R5cGVfY2hhbmdlLAo+ICsJCQkJICBib29sIHRlc3Rfc3JtKQo+ICB7Cj4g IAlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEuZGlzcGxheTsKPiAgCWlndF9wbGFuZV90 ICpwcmltYXJ5Owo+ICAJZW51bSBwaXBlIHBpcGU7Cj4gLQlib29sIHJldDsKPiArCWJvb2wgcmV0 LCBzcm1fbW9kaWZpZWQgPSBmYWxzZTsKPiArCWludCBpOwo+ICAKPiAgCWZvcl9lYWNoX3BpcGUo ZGlzcGxheSwgcGlwZSkgewo+ICAJCWlmICghaWd0X3BpcGVfY29ubmVjdG9yX3ZhbGlkKHBpcGUs IG91dHB1dCkpCj4gQEAgLTQyMywxMyArNTYwLDE1IEBAIHRlc3RfY29udGVudF9wcm90ZWN0aW9u X29uX291dHB1dChpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMs Cj4gIAkJaWYgKCFpZ3RfcGlwZV9pc19mcmVlKGRpc3BsYXksIHBpcGUpKQo+ICAJCQljb250aW51 ZTsKPiAgCj4gKwkJc3JtX21vZGlmaWVkID0gZmFsc2U7Cj4gIAkJbW9kZXNldF93aXRoX2ZiKHBp cGUsIG91dHB1dCwgcyk7Cj4gIAkJdGVzdF9jcF9lbmFibGVfd2l0aF9yZXRyeShvdXRwdXQsIHMs IDMsIGNvbnRlbnRfdHlwZSwgZmFsc2UsCj4gLQkJCQkJICBmYWxzZSk7Cj4gKwkJCQkJICBmYWxz ZSwgZmFsc2UpOwo+ICsKPiAgCQlpZiAodGVzdF90eXBlX2NoYW5nZSAmJiBjb250ZW50X3R5cGUg PT0gSERDUF9DT05URU5UX1RZUEVfMSkKPiAgCQkJdGVzdF9jcF9lbmFibGVfd2l0aF9yZXRyeShv dXRwdXQsIHMsIDMsCj4gIAkJCQkJCSAgSERDUF9DT05URU5UX1RZUEVfMCwgZmFsc2UsCj4gLQkJ CQkJCSAgdGVzdF90eXBlX2NoYW5nZSk7Cj4gKwkJCQkJCSAgdGVzdF90eXBlX2NoYW5nZSwgZmFs c2UpOwo+ICAKPiAgCQlpZiAobWVpX3JlbG9hZF90ZXN0KSB7Cj4gIAkJCWlndF9hc3NlcnRfZigh aWd0X2ttb2RfdW5sb2FkKCJtZWlfaGRjcCIsIDApLAo+IEBAIC00MzcsMTggKzU3Niw0NyBAQCB0 ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbl9vbl9vdXRwdXQoaWd0X291dHB1dF90ICpvdXRwdXQsIGVu dW0gaWd0X2NvbW1pdF9zdHlsZSBzLAo+ICAKPiAgCQkJLyogRXhwZWN0ZWQgdG8gZmFpbCAqLwo+ ICAJCQl0ZXN0X2NwX2VuYWJsZV93aXRoX3JldHJ5KG91dHB1dCwgcywgMywKPiAtCQkJCQkJICBj b250ZW50X3R5cGUsIHRydWUsIGZhbHNlKTsKPiArCQkJCQkJICBjb250ZW50X3R5cGUsIHRydWUs IGZhbHNlLAo+ICsJCQkJCQkgIGZhbHNlKTsKPiAgCj4gIAkJCWlndF9hc3NlcnRfZighaWd0X2tt b2RfbG9hZCgibWVpX2hkY3AiLCBOVUxMKSwKPiAgCQkJCSAgICAgIm1laV9oZGNwIGxvYWQgZmFp bGVkIik7Cj4gIAo+ICAJCQkvKiBFeHBlY3RlZCB0byBwYXNzICovCj4gIAkJCXRlc3RfY3BfZW5h YmxlX3dpdGhfcmV0cnkob3V0cHV0LCBzLCAzLAo+IC0JCQkJCQkgIGNvbnRlbnRfdHlwZSwgZmFs c2UsIGZhbHNlKTsKPiArCQkJCQkJICBjb250ZW50X3R5cGUsIGZhbHNlLCBmYWxzZSwKPiArCQkJ CQkJICBmYWxzZSk7Cj4gIAkJfQo+ICAKPiAgCQl0ZXN0X2NwX2xpYyhvdXRwdXQpOwo+ICAKPiAr CQlpZiAob3V0cHV0LT5wcm9wc1tJR1RfQ09OTkVDVE9SX0hEQ1BfVE9QT0xPR1lfSU5GT10gJiYK PiArCQkgICAgdGVzdF9zcm0pIHsKPiArCQkJcmV0cmlldmVfdG9wb2xvZ3lfaW5mb19wcmVwYXJl X3NybShvdXRwdXQpOwo+ICsJCQlzcm1fbW9kaWZpZWQgPQo+ICsJCQkJd3JpdGVfc3JtX2FzX2Z3 KChjb25zdCBfX3U4ICopZmFjc2ltaWxlX3NybSwKPiArCQkJCQkJc2l6ZW9mKGZhY3NpbWlsZV9z cm0pKTsKPiArCQkJaWd0X2Fzc2VydF9mKHNybV9tb2RpZmllZCwgIlNSTSB1cGRhdGUgZmFpbGVk Iik7Cj4gKwkJfQo+ICsKPiArCQlpZiAodGVzdF9zcm0gJiYgc3JtX21vZGlmaWVkKSB7Cj4gKwkJ CXRlc3RfY3BfZGlzYWJsZShvdXRwdXQsIHMpOwo+ICsJCQl0ZXN0X2NwX2VuYWJsZV93aXRoX3Jl dHJ5KG91dHB1dCwgcywgMywgY29udGVudF90eXBlLAo+ICsJCQkJCQkgIGZhbHNlLCBmYWxzZSwg dGVzdF9zcm0pOwo+ICsKPiArCQkJLyogUmVtb3ZpbmcgdGhlIHNpbmsncyBSZWNlaXZlciBJRCBm cm9tIFNSTSBCbG9iICovCj4gKwkJCWZvciAoaSA9IDA7IGkgPCA1OyBpKyspCj4gKwkJCQlmYWNz aW1pbGVfc3JtW2kgKyA5XSA9IDA7Cj4gKwo+ICsJCQlzcm1fbW9kaWZpZWQgPQo+ICsJCQkJd3Jp dGVfc3JtX2FzX2Z3KChjb25zdCBfX3U4ICopZmFjc2ltaWxlX3NybSwKPiArCQkJCQkJc2l6ZW9m KGZhY3NpbWlsZV9zcm0pKTsKPiArCQkJaWd0X2Fzc2VydF9mKHNybV9tb2RpZmllZCwgIlNSTSB1 cGRhdGUgZmFpbGVkIik7Cj4gKwo+ICsJCQl0ZXN0X2NwX2VuYWJsZV93aXRoX3JldHJ5KG91dHB1 dCwgcywgMSwgY29udGVudF90eXBlLAo+ICsJCQkJCQkgIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwo+ ICsJCX0KPiArCj4gIAkJaWYgKGRwbXNfdGVzdCkgewo+ICAJCQlpZ3RfcGlwZV9zZXRfcHJvcF92 YWx1ZShkaXNwbGF5LCBwaXBlLAo+ICAJCQkJCQlJR1RfQ1JUQ19BQ1RJVkUsIDApOwo+IEBAIC00 NjMsNyArNjMxLDcgQEAgdGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KGlndF9vdXRw dXRfdCAqb3V0cHV0LCBlbnVtIGlndF9jb21taXRfc3R5bGUgcywKPiAgCQkJaWYgKCFyZXQpCj4g IAkJCQl0ZXN0X2NwX2VuYWJsZV93aXRoX3JldHJ5KG91dHB1dCwgcywgMiwKPiAgCQkJCQkJCSAg Y29udGVudF90eXBlLCBmYWxzZSwKPiAtCQkJCQkJCSAgZmFsc2UpOwo+ICsJCQkJCQkJICBmYWxz ZSwgZmFsc2UpOwo+ICAJCX0KPiAgCj4gIAkJdGVzdF9jcF9kaXNhYmxlKG91dHB1dCwgcyk7Cj4g QEAgLTUyOSw3ICs2OTcsNyBAQCBzdGF0aWMgYm9vbCBzaW5rX2hkY3AyX2NhcGFibGUoaWd0X291 dHB1dF90ICpvdXRwdXQpCj4gIHN0YXRpYyB2b2lkCj4gIHRlc3RfY29udGVudF9wcm90ZWN0aW9u KGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzLCBib29sIGRwbXNfdGVzdCwKPiAgCQkJaW50IGNvbnRl bnRfdHlwZSwgYm9vbCBtZWlfcmVsb2FkX3Rlc3QsCj4gLQkJCWJvb2wgdGVzdF90eXBlX2NoYW5n ZSkKPiArCQkJYm9vbCB0ZXN0X3R5cGVfY2hhbmdlLCBib29sIHRlc3Rfc3JtKQo+ICB7Cj4gIAlp Z3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEuZGlzcGxheTsKPiAgCWlndF9vdXRwdXRfdCAq b3V0cHV0Owo+IEBAIC01NjAsOSArNzI4LDggQEAgdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oZW51 bSBpZ3RfY29tbWl0X3N0eWxlIHMsIGJvb2wgZHBtc190ZXN0LAo+ICAJCX0KPiAgCj4gIAkJdGVz dF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KG91dHB1dCwgcywgZHBtc190ZXN0LAo+IC0J CQkJCQkgIGNvbnRlbnRfdHlwZSwKPiAtCQkJCQkJICBtZWlfcmVsb2FkX3Rlc3QsCj4gLQkJCQkJ CSAgdGVzdF90eXBlX2NoYW5nZSk7Cj4gKwkJCQkJCSAgY29udGVudF90eXBlLCBtZWlfcmVsb2Fk X3Rlc3QsCj4gKwkJCQkJCSAgdGVzdF90eXBlX2NoYW5nZSwgdGVzdF9zcm0pOwo+ICAJCXZhbGlk X3Rlc3RzKys7Cj4gIAl9Cj4gIAo+IEBAIC01ODIsMzMgKzc0OSwzMyBAQCBpZ3RfbWFpbgo+ICAJ aWd0X3N1YnRlc3QoImxlZ2FjeSIpCj4gIAkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlU X0xFR0FDWSwgZmFsc2UsCj4gIAkJCQkJSERDUF9DT05URU5UX1RZUEVfMCwgZmFsc2UsCj4gLQkJ CQkJZmFsc2UpOwo+ICsJCQkJCWZhbHNlLCBmYWxzZSk7Cj4gIAo+ICAJaWd0X3N1YnRlc3QoImF0 b21pYyIpIHsKPiAgCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXkuaXNfYXRvbWljKTsKPiAgCQl0 ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihDT01NSVRfQVRPTUlDLCBmYWxzZSwKPiAtCQkJCQlIRENQ X0NPTlRFTlRfVFlQRV8wLCBmYWxzZSwKPiArCQkJCQlIRENQX0NPTlRFTlRfVFlQRV8wLCBmYWxz ZSwgZmFsc2UsCj4gIAkJCQkJZmFsc2UpOwo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0KCJhdG9t aWMtZHBtcyIpIHsKPiAgCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXkuaXNfYXRvbWljKTsKPiAg CQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihDT01NSVRfQVRPTUlDLCB0cnVlLAo+IC0JCQkJCUhE Q1BfQ09OVEVOVF9UWVBFXzAsIGZhbHNlLAo+ICsJCQkJCUhEQ1BfQ09OVEVOVF9UWVBFXzAsIGZh bHNlLCBmYWxzZSwKPiAgCQkJCQlmYWxzZSk7Cj4gIAl9Cj4gIAo+ICAJaWd0X3N1YnRlc3QoInR5 cGUxIikgewo+ICAJCWlndF9yZXF1aXJlKGRhdGEuZGlzcGxheS5pc19hdG9taWMpOwo+ICAJCXRl c3RfY29udGVudF9wcm90ZWN0aW9uKENPTU1JVF9BVE9NSUMsIGZhbHNlLAo+IC0JCQkJCUhEQ1Bf Q09OVEVOVF9UWVBFXzEsIGZhbHNlLAo+ICsJCQkJCUhEQ1BfQ09OVEVOVF9UWVBFXzEsIGZhbHNl LCBmYWxzZSwKPiAgCQkJCQlmYWxzZSk7Cj4gIAl9Cj4gIAo+ICAJaWd0X3N1YnRlc3QoInR5cGUx X21laV9pbnRlcmZhY2UiKSB7Cj4gIAkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21p Yyk7Cj4gIAkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01JQywgZmFsc2UsCj4g LQkJCQkJSERDUF9DT05URU5UX1RZUEVfMSwgdHJ1ZSwKPiArCQkJCQlIRENQX0NPTlRFTlRfVFlQ RV8xLCB0cnVlLCBmYWxzZSwKPiAgCQkJCQlmYWxzZSk7Cj4gIAl9Cj4gIAo+IEBAIC02MTYsOSAr NzgzLDM2IEBAIGlndF9tYWluCj4gIAkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21p Yyk7Cj4gIAkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01JQywgZmFsc2UsCj4g IAkJCQkJSERDUF9DT05URU5UX1RZUEVfMSwgZmFsc2UsCj4gLQkJCQkJdHJ1ZSk7Cj4gKwkJCQkJ dHJ1ZSwgZmFsc2UpOwo+ICAJfQo+ICAKPiArCS8qCj4gKwkgKiBTUk0gc3VidGVzdCBwZXJmb3Jt IHRoZSBIRENQIGF1dGhlbnRpY2F0aW9uLCBhbmQgdGhlbiByZXRyaXZlIHRoZQo+ICsJICogcmVj ZWl2ZXIgaWQgdGhyb3VnaCB0b3BvbG9neSBpbmZvLgo+ICsJICoKPiArCSAqIFVzaW5nIHRoZSBy ZWNlaXZlciBJRCwgZmFjc2ltaWxlIFNSTSB0YWJsZSBpcyBtb2RpZmllZCB3aXRoCj4gKwkgKiBy ZWNlaXZlciBJRCByZXRyaWV2ZWQgZnJvbSB0ZWggdG9wb2xvZ3kgaW5mby4gQWZ0ZXIgbW9kaWZp Y2F0aW9uCj4gKwkgKiBTUk0gdGFibGUgaXMgbm90IGludGFjdCBhcyBwZXIgRENQIFNpZ25hdHVy ZS4KPiArCSAqCj4gKwkgKiBCdXQgS2VybmVsIGJlbGlldmVzIHVzZXJzcGFjZSBhbmQgZG9lc24n dCB2ZXJpZnkgdGhlIERDUCBzaWduYXR1cmUuCj4gKwkgKiBTbyB3ZSBjYW4gZXhwbG9pdGUgdGhh dCB0cnVzdCB0byB0ZXN0IHRoZSBTUk0gYW5kIHRvcG9sb2d5IGluZm8KPiArCSAqIGZlYXR1cmVz Lgo+ICsJICoKPiArCSAqIFNvIHdoZW4gbW9kaWZpZWQgU1JNIGlzIGFwcGxpZWQgQXV0aGVudGlj YXRpb24gd2lsbCBmYWlsIGR1ZSB0bwo+ICsJICogcmVjZWl2ZXIgSUQgcmV2b2NhdGlvbi4KPiAr CSAqCj4gKwkgKiBBbmQgS2VybmVsIGF0dGVtcHRzIEhEQ1AyLjIgYWx3YXlzIGFuZCBvbiBmYWls dXJlIG9mIGl0IEhEQ1AxLjQKPiArCSAqIHdpbGwgYmUgYXR0ZW1wdGVkLiBCdXQgdGhlaXIgSUQg b2YgdGhlIHNpbmsgdmFyaWVzIGJldHdlZW4gMS40IGFuZAo+ICsJICogMi4yIHZlcnNpb25zLiBT byB3ZSBuZWVkIHRvIHN0aWNrIHRvIG9uZSB2ZXJzaW9uLiBIZW5jZSBIRENQMi4yIGlzCj4gKwkg KiBjaG9vc2VuIHVzaW5nIFR5cGUgMS4KCk9vcHMsIGp1c3QgcmVhbGl6ZWQgdGhhdCB0aGlzIGlz IGEgYnVnIGluIHRoZSBrZXJuZWwuIEhlcmUncyB0aGUgc2xpZ2h0bHkKbmFzdHkgYXR0YWNrOgoK LSBjcmVhdGUgYSBmYWtlIFNSTSB3aXRoIG5vIHJldm9jYXRpb25zIGJ1dCByZWFsbHkgaGlnaCBy ZXZpc2lvbiBudW1iZXIKLSBrZXJuZWwgd2lsbCByZWplY3QgdXBkYXRlcyBmcm9tIGhlcmUgb24u CgpPciBkbyB3ZSBqdXN0IHNocnVnIGFuZCBzYXkgdXNlcnNwYWNlIG5lZWRzIHRvIHZhbGlkYXRl IHRoZSBTUk0gZnVsbHkKYmVmb3JlIGl0IGRyb3BzIGl0IGludG8gL2xpYi9maXJtd2FyZT8KClBs YW4gQiBmb3IgU1JNIHRlc3Rpbmcgd291bGQgYmUgdGhhdCB3ZSBzaW1wbHkgZHJvcCBhbiBTUk0g aW50bwovbGliL2Zpcm13YXJlIChhIHZhbGlkIG9uZSkgYW5kIG1ha2Ugc3VyZSB0aGUga2VybmVs IGRvZXNuJ3QgYmxvdyB1cC4gTm90CmEgZ3JlYXQgdGVzdGNhc2UsIGJ1dCBiZXR0ZXIgdGhhbiBu b3RoaW5nLgoKSSBndWVzcyBwcm9wZXIgU1JNIHRlc3RpbmcgbmVlZHMgc29tZSBraW5kIG9mIGhk Y3AgdmFsaWRhdGlvbiAoc3BlY2lhbApkb25nbGUgdGhhdCBjYW4gb3B0aW9uYWxseSB1c2UgYSBi bGFja2xpc3RlZCBrc3YpLCBidXQgd2UgZG9uJ3QgaGF2ZSB0aGF0CnN0dWZmIGluIGlndCBvciBv dXIgQ0kuCgpUaGVyZSdzIGFsc28gdGhlIGlzc3VlIHRoYXQgSSdtIG5vdCBzdXJlIHdlIGNhbiBt ZXJnZSB0aGUgdG9wb2xnb3kgaW5mbwpwcm9wLCBzbyBmb3Igbm93IEknZCBzcGxpdCBvdXQgYSBy ZWFsbHkgc2ltcGxlIHN1YnRlc3QgdGhhdCBjaGVja3MgdGhlCmtlcm5lbCBkb2Vzbid0IGJsb3cg dXAgd2hlbiBsb2FkaW5nIHRoZSBmYWNzaW1pbGUgc3JtLgotRGFuaWVsCgo+ICsJICovCj4gKwlp Z3Rfc3VidGVzdCgic3JtIikgewo+ICsJCWlndF9yZXF1aXJlKGRhdGEuZGlzcGxheS5pc19hdG9t aWMpOwo+ICsJCXRlc3RfY29udGVudF9wcm90ZWN0aW9uKENPTU1JVF9BVE9NSUMsIGZhbHNlLAo+ ICsJCQkJCUhEQ1BfQ09OVEVOVF9UWVBFXzEsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7Cj4gKwl9Cj4g Kwo+ICsKPiAgCWlndF9maXh0dXJlCj4gIAkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5 KTsKPiAgfQo+IC0tIAo+IDIuMTkuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gaWd0LWRldiBtYWlsaW5nIGxpc3QKPiBpZ3QtZGV2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaWd0LWRldg==