From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 38F8C6EF23 for ; Fri, 13 Sep 2019 11:41:07 +0000 (UTC) From: "Ser, Simon" Date: Fri, 13 Sep 2019 11:41:04 +0000 Message-ID: References: <20190912013139.30869-1-manasi.d.navare@intel.com> <20190912232830.13493-1-manasi.d.navare@intel.com> In-Reply-To: <20190912232830.13493-1-manasi.d.navare@intel.com> Content-Language: en-US Content-ID: <5961FD73C509C24A82FB342D45AF918F@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v4] igt/tests/kms_dp_tiled_display: kms test for display port tiled displays 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: "igt-dev@lists.freedesktop.org" , "Navare, Manasi D" Cc: "madhumitha.tp@gmail.com" , "Latvala, Petri" List-ID: SGksDQoNClRoYW5rcyBmb3IgdGhpcyBuZXcgdmVyc2lvbiwgSSBsaWtlIGl0LiBUaGUgdXBkYXRl ZCBwYWdlLWZsaXAgY2hlY2tzDQpsb29rIGdvb2QgdG8gbWUuIEhlcmUgaXMgbXkgbGFzdCByb3Vu ZCBvZiBjb21tZW50cywgd2l0aCB0aGUgbm9uLW5pdA0Kb25lcyBmaXhlZCwgdGhpcyBpczoNCg0K UmV2aWV3ZWQtYnk6IFNpbW9uIFNlciA8c2ltb24uc2VyQGludGVsLmNvbT4NCg0KT24gVGh1LCAy MDE5LTA5LTEyIGF0IDE2OjI4IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0KPiBGcm9tOiBN YWRodW1pdGhhIFRvbGFrYW5haGFsbGkgUHJhZGVlcCA8bWFkaHVtaXRoYS50b2xha2FuYWhhbGxp LnByYWRlZXBAaW50ZWwuY29tPg0KPiANCj4gVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgdGlsZWQg RFAgZGlzcGxheXMgdG8gZGlzcGxheSBhIHRlc3QgcGF0dGVybg0KPiBzZWFtbGVzc2x5IGFjcm9z cyB0aGUgdHdvIHRpbGVzLiBJdCB2YWxpZGF0ZXMgdGhlIHRyYW5zY29kZXIgcG9ydA0KPiBzeW5j IGZlYXR1cmUgb24gaTkxNSB0byBnZXQgYSB0ZWFyZnJlZSB0aWxlZCBkaXNwbGF5IG91dHB1dC4N Cj4gDQo+IFJlbGF0ZWQga2VybmVsIHdvcmsgcGF0Y2hlcy0NCj4gaHR0cHM6Ly9wYXRjaHdvcmsu ZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy82NjQwMy8NCj4gDQo+IFRoaXMgdGVzdCBjYW4gZXZlbnR1 YWxseSBiZSBleHRlbmRlZCB0byBjb3ZlciB0aWxlZCBkaXNwbGF5IHN1cHBvcnQNCj4gb24gb3Ro ZXIgY29ubmVjdG9yIHR5cGVzLg0KPiANCj4gdjQ6DQo+ICogQWRkIHRoZSBsb2dpYyB0byBjaGVj ayB0aGVyZSBhcmUNCj4gcGFnZSBmbGlwcyBwZXIgY29ubmVjdG9yIChTaW1vbikNCj4gKiBDYWxs b2MgaW5zdGVhZCBvZiBtYWxsb2MgdG8gaW5pdGlhbGl6ZSAoTWFuYXNpKQ0KPiANCj4gdjM6DQo+ ICogRml4IHRoZSBwb2ludGVyIGxlYWtzIChTaW1vbikNCj4gKiBDb2RlIGluZGVudGF0aW9uIChN YW5hc2kpDQo+ICogQ29tcGFyZSB0d28gY29uc2VjdXRpdmUgZmxpcCB0aW1lc3RhbXBzIChTaW1v bikNCj4gKiBVc2Ugc2luZ2xlIGZiIGFjcm9zcyB0aWxlcyAoU2ltb24pDQo+ICogRml4IHJlc2V0 IG1vZGUgbG9naWMgKE1hbmFzaSkNCj4gDQo+IHYyOiBBZGRlZCBhIGNoZWNrIGZvciBjaGVja2lu ZyBwYWdlZmxpcCBldmVudCB0aW1lc3RhbXBzIChTaW1vbiwgTWFuYXNpKQ0KPiAgICAgTWlub3Ig c3R5bGUgY2hhbmdlcyAoU2ltb24pDQo+ICAgIENvZGUgY2xlYW4tdXAgYW5kIHJlb3JkZXJpbmcN Cj4gDQo+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPg0KPiBD YzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+DQo+IENjOiBTaW1vbiBT ZXIgPHNpbW9uLnNlckBpbnRlbC5jb20+DQo+IENjOiA8bWFkaHVtaXRoYS50cEBnbWFpbC5jb20+ DQo+IFNpZ25lZC1vZmYtYnk6IE1hZGh1bWl0aGEgVG9sYWthbmFoYWxsaSBQcmFkZWVwIDxtYWRo dW1pdGhhLnRvbGFrYW5haGFsbGkucHJhZGVlcEBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6 IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgdGVz dHMvTWFrZWZpbGUuc291cmNlcyAgICAgICB8ICAgMSArDQo+ICB0ZXN0cy9rbXNfZHBfdGlsZWRf ZGlzcGxheS5jIHwgMzk3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICB0 ZXN0cy9tZXNvbi5idWlsZCAgICAgICAgICAgIHwgICAxICsNCj4gIDMgZmlsZXMgY2hhbmdlZCwg Mzk5IGluc2VydGlvbnMoKykNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9rbXNfZHBfdGls ZWRfZGlzcGxheS5jDQo+IA0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBi L3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMNCj4gaW5kZXggYzAyZTRkOTQuLjc1NjFhYjliIDEwMDY0 NA0KPiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+ICsrKyBiL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMNCj4gQEAgLTQxLDYgKzQxLDcgQEAgVEVTVFNfcHJvZ3MgPSBcDQo+ICAJa21zX2N1 cnNvcl9lZGdlX3dhbGsgXA0KPiAgCWttc19jdXJzb3JfbGVnYWN5IFwNCj4gIAlrbXNfZHBfZHNj IFwNCj4gKwlrbXNfZHBfdGlsZWRfZGlzcGxheSBcDQo+ICAJa21zX2RyYXdfY3JjIFwNCj4gIAlr bXNfZmJjb25fZmJ0IFwNCj4gIAlrbXNfZmVuY2VfcGluX2xlYWsgXA0KPiBkaWZmIC0tZ2l0IGEv dGVzdHMva21zX2RwX3RpbGVkX2Rpc3BsYXkuYyBiL3Rlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5 LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAuLjMwNTVjNmMzDQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvdGVzdHMva21zX2RwX3RpbGVkX2Rpc3BsYXkuYw0KPiBA QCAtMCwwICsxLDM5NyBAQA0KPiArLyoNCj4gKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENv cnBvcmF0aW9uDQo+ICsgKg0KPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGENCj4gKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksDQo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uDQo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwNCj4g KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQ0KPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCj4gKyAqDQo+ICsgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5n IHRoZSBuZXh0DQo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlDQo+ICsgKiBTb2Z0d2FyZS4NCj4gKyAq DQo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUg0KPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQo+ICsgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwNCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSDQo+ICsgKiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORw0KPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUw0KPiArICogSU4gVEhFIFNPRlRXQVJFLg0K PiArICoNCj4gKyAqIEF1dGhvcnM6DQo+ICsgKiAgTWFkaHVtaXRoYSBUb2xha2FuYWhhbGxpIFBy YWRlZXANCj4gKyAqICAgICAgPG1hZGh1bWl0aGEudG9sYWthbmFoYWxsaS5wcmFkZWVwQGludGVs LmNvbT4NCj4gKyAqICBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPg0K PiArICoNCj4gKyAqIERpc3BsYXkgUG9ydCBUaWxlZCBEaXNwbGF5IFRlc3QNCj4gKyAqIFRoaXMg dGVzdCBwYXJzZXMgdGhlIHRpbGUgaW5mb3JtYXRpb24gb2YgdGhlIGNvbm5lY3RvcnMgdGhhdCBo YXZlIFRJTEUNCj4gKyAqIHByb3BlcnR5IHNldCwgc2V0cyB1cCB0aGUgZnJhbWVidWZmZXIgd2l0 aCBjb3JyZWN0IG9mZnNldHMgY29ycmVzcG9uZGluZyB0bw0KPiArICogdGhlIHRpbGUgb2Zmc2V0 cyBhbmQgZG9lcyBhbiBhdG9taWMgbW9kZXNldCB3aXRoIHR3byBDUlRDcyBmb3IgdHdvDQo+ICsg KiBjb25uZWN0b3JzLiBQYWdlIGZsaXAgZXZlbnQgdGltZXN0YW1wIGZyb20gZWFjaCBDUlRDIGlz IGNvbGxlY3RlZCBhbmQNCj4gKyAqIGNvbXBhcmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXkgb2Nj dXJyZWQgaW4gYSBzeW5jaHJvbm91cyBtYW5uZXIuDQo+ICsgKg0KPiArICogVGhpcyB0ZXN0IGN1 cnJlbnRseSBzdXBwb3J0cyBvbmx5IGhvcml6b250YWxseSB0aWxlZCBkaXNwbGF5cywgaW4gbGlu ZSB3aXRoDQo+ICsgKiB0aGUgZGlzcGxheXMgc3VwcG9ydGVkIGJ5IHRoZSBrZXJuZWwgYXQgdGhl IG1vbWVudC4NCj4gKyAqLw0KPiArDQo+ICsjaW5jbHVkZSAiaWd0LmgiDQo+ICsjaW5jbHVkZSAi cG9sbC5oIg0KPiArI2luY2x1ZGUgImRybV9tb2RlLmgiDQo+ICsjaW5jbHVkZSAiZHJtX2ZvdXJj Yy5oIg0KPiArDQo+ICtJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBmb3IgVHJhbnNjb2RlciBQ b3J0IFN5bmMgZm9yIERpc3BsYXkgUG9ydCBUaWxlZCBEaXNwbGF5cyIpOw0KPiArDQo+ICt0eXBl ZGVmIHN0cnVjdCB7DQo+ICsJaWd0X291dHB1dF90ICpvdXRwdXQ7DQo+ICsJaWd0X3RpbGVfaW5m b190IHRpbGU7DQo+ICsJZW51bSBwaXBlIHBpcGU7DQo+ICsJZHJtTW9kZUNvbm5lY3RvclB0ciBj b25uZWN0b3I7DQo+ICsJYm9vbCBnb3RfcGFnZV9mbGlwOw0KPiArfSBkYXRhX2Nvbm5lY3Rvcl90 Ow0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ICsJaW50IGRybV9mZDsNCj4gKwlpbnQgbnVt X2hfdGlsZXM7DQo+ICsJaWd0X2ZiX3QgZmJfdGVzdF9wYXR0ZXJuOw0KPiArCWlndF9kaXNwbGF5 X3QgKmRpc3BsYXk7DQo+ICsJZGF0YV9jb25uZWN0b3JfdCAqY29ubnM7DQo+ICsJZW51bSBpZ3Rf Y29tbWl0X3N0eWxlIGNvbW1pdDsNCj4gK30gZGF0YV90Ow0KPiArDQo+ICtzdGF0aWMgaW50IGRy bV9wcm9wZXJ0eV9pc190aWxlKGRybU1vZGVQcm9wZXJ0eVB0ciBwcm9wKQ0KPiArew0KPiArCXJl dHVybiAoc3RyY21wKHByb3AtPm5hbWUsICJUSUxFIikgPyAwIDogMSkgJiYNCj4gKwkJCSBkcm1f cHJvcGVydHlfdHlwZV9pcyhwcm9wLCBEUk1fTU9ERV9QUk9QX0JMT0IpOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgdm9pZCBnZXRfY29ubmVjdG9yX3RpbGVfcHJvcHMoZGF0YV90ICpkYXRhLCBkcm1N b2RlQ29ubmVjdG9yUHRyIGNvbm4sDQo+ICsJCQkJICAgICBpZ3RfdGlsZV9pbmZvX3QgKnRpbGUp DQo+ICt7DQo+ICsJaW50IGkgPSAwOw0KPiArCWRybU1vZGVQcm9wZXJ0eVB0ciBwcm9wOw0KPiAr CWRybU1vZGVQcm9wZXJ0eUJsb2JQdHIgYmxvYjsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBj b25uLT5jb3VudF9wcm9wczsgaSsrKSB7DQo+ICsJCXByb3AgPSBkcm1Nb2RlR2V0UHJvcGVydHko ZGF0YS0+ZHJtX2ZkLCBjb25uLT5wcm9wc1tpXSk7DQo+ICsNCj4gKwkJaWd0X2Fzc2VydChwcm9w KTsNCj4gKw0KPiArCQlpZiAoIWRybV9wcm9wZXJ0eV9pc190aWxlKHByb3ApKSB7DQo+ICsJCQlk cm1Nb2RlRnJlZVByb3BlcnR5KHByb3ApOw0KPiArCQkJY29udGludWU7DQo+ICsJCX0NCj4gKw0K PiArCQlibG9iID0gZHJtTW9kZUdldFByb3BlcnR5QmxvYihkYXRhLT5kcm1fZmQsDQo+ICsJCQkJ Y29ubi0+cHJvcF92YWx1ZXNbaV0pOw0KPiArDQo+ICsJCWlmICghYmxvYikNCj4gKwkJCWdvdG8g Y2xlYW51cDsNCj4gKw0KPiArCQlpZ3RfcGFyc2VfY29ubmVjdG9yX3RpbGVfYmxvYihibG9iLCB0 aWxlKTsNCj4gKwkJYnJlYWs7DQo+ICsJfQ0KPiArDQo+ICtjbGVhbnVwOg0KPiArCWRybU1vZGVG cmVlUHJvcGVydHkocHJvcCk7DQo+ICsJZHJtTW9kZUZyZWVQcm9wZXJ0eUJsb2IoYmxvYik7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIGdldF9udW1iZXJfb2ZfaF90aWxlcyhkYXRhX3QgKmRh dGEpDQo+ICt7DQo+ICsJaW50IGk7DQo+ICsJZHJtTW9kZVJlc1B0ciByZXM7DQo+ICsJZHJtTW9k ZUNvbm5lY3RvclB0ciBjb25uZWN0b3I7DQo+ICsJaWd0X3RpbGVfaW5mb190IHRpbGUgPSB7Lm51 bV9oX3RpbGUgPSAwfTsNCj4gKw0KPiArCWlndF9hc3NlcnQocmVzID0gZHJtTW9kZUdldFJlc291 cmNlcyhkYXRhLT5kcm1fZmQpKTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCByZXMtPmNvdW50 X2Nvbm5lY3RvcnM7IGkrKykgew0KPiArCQljb25uZWN0b3IgPSBkcm1Nb2RlR2V0Q29ubmVjdG9y Q3VycmVudChkYXRhLT5kcm1fZmQsDQo+ICsJCQkJcmVzLT5jb25uZWN0b3JzW2ldKTsNCj4gKw0K PiArCQlpZ3RfYXNzZXJ0KGNvbm5lY3Rvcik7DQo+ICsNCj4gKwkJaWYgKGNvbm5lY3Rvci0+Y29u bmVjdGlvbiAhPSBEUk1fTU9ERV9DT05ORUNURUQgfHwNCj4gKwkJICAgIGNvbm5lY3Rvci0+Y29u bmVjdG9yX3R5cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KSB7DQo+ICsJCQlk cm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uZWN0b3IpOw0KPiArCQkJY29udGludWU7DQo+ICsJCX0N Cj4gKw0KPiArCQlnZXRfY29ubmVjdG9yX3RpbGVfcHJvcHMoZGF0YSwgY29ubmVjdG9yLCAmdGls ZSk7DQo+ICsJCWRhdGEtPm51bV9oX3RpbGVzID0gdGlsZS5udW1faF90aWxlOw0KPiArCQlicmVh azsNCg0KSW4gY2FzZSB0aGVyZSBpcyBhIGNvbm5lY3RlZCBEaXNwbGF5UG9ydCBzY3JlZW4gd2hp Y2ggaXNuJ3QgdGlsZWQsIHRoaXMNCndpbGwgYmFpbCBvdXQgZXZlbiBpZiB0aGVyZSBpcyBhbHNv IGEgdGlsZWQgc2NyZWVuIGNvbm5lY3RlZC4NCg0KV291bGQgYmUgbmljZSB0bzoNCg0KCWlmICh0 aWxlLm51bV9oX3RpbGUgPT0gMCkgew0KCQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uZWN0b3Ip Ow0KCQljb250aW51ZTsNCgl9DQoNCj4gKwl9DQo+ICsNCj4gKwlkcm1Nb2RlRnJlZVJlc291cmNl cyhyZXMpOw0KPiArCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7DQo+ICt9DQo+ICsN Cj4gK3N0YXRpYyB2b2lkIGdldF9jb25uZWN0b3JzKGRhdGFfdCAqZGF0YSkNCj4gK3sNCj4gKwlp bnQgY291bnQgPSAwOw0KPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Ow0KPiArCWRhdGFfY29ubmVj dG9yX3QgKmNvbm5zID0gZGF0YS0+Y29ubnM7DQo+ICsNCj4gKwlmb3JfZWFjaF9jb25uZWN0ZWRf b3V0cHV0KGRhdGEtPmRpc3BsYXksIG91dHB1dCkgew0KPiArCQljb25uc1tjb3VudF0uY29ubmVj dG9yID0gZHJtTW9kZUdldENvbm5lY3RvcihkYXRhLT5kaXNwbGF5LT5kcm1fZmQsDQo+ICsJCQkJ CQkJICAgICBvdXRwdXQtPmlkKTsNCj4gKw0KPiArCQlpZ3RfYXNzZXJ0KGNvbm5zW2NvdW50XS5j b25uZWN0b3IpOw0KPiArDQo+ICsJCWlmIChjb25uc1tjb3VudF0uY29ubmVjdG9yLT5jb25uZWN0 b3JfdHlwZSAhPQ0KPiArCQkgICAgRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KSB7DQo+ ICsJCQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uc1tjb3VudF0uY29ubmVjdG9yKTsNCj4gKwkJ CWNvbnRpbnVlOw0KPiArCQl9DQo+ICsNCj4gKwkJZ2V0X2Nvbm5lY3Rvcl90aWxlX3Byb3BzKGRh dGEsIGNvbm5zW2NvdW50XS5jb25uZWN0b3IsDQo+ICsJCQkJCSAmY29ubnNbY291bnRdLnRpbGUp Ow0KDQpEaXR0bywgd291bGQgYmUgbmljZSB0byBza2lwIGlmIGNvbm5zW2NvdW50XS50aWxlLm51 bV9oX3RpbGUgPT0gMC4NCg0KPiArCQkvKiBDaGVjayBpZiB0aGUgY29ubmVjdG9ycyBiZWxvbmcg dG8gdGhlIHNhbWUgdGlsZSBncm91cCAqLw0KPiArCQlpZiAoY291bnQgPiAwKQ0KPiArCQkJaWd0 X2Fzc2VydChjb25uc1tjb3VudF0udGlsZS50aWxlX2dyb3VwX2lkID09DQo+ICsJCQkJICAgY29u bnNbY291bnQtMV0udGlsZS50aWxlX2dyb3VwX2lkKTsNCj4gKw0KPiArCQljb3VudCsrOw0KPiAr CX0NCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK3Jlc2V0X3BsYW5lKGlndF9vdXRwdXRf dCAqb3V0cHV0KQ0KPiArew0KPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Ow0KPiArDQo+ICsJcHJp bWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9Q UklNQVJZKTsNCj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgdm9pZCByZXNldF9vdXRwdXQoaWd0X291dHB1dF90ICpvdXRwdXQpDQo+ICt7 DQo+ICsJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfTk9ORSk7DQo+ICt9DQo+ICsN Cj4gK3N0YXRpYyB2b2lkIHJlc2V0X21vZGUoZGF0YV90ICpkYXRhKQ0KPiArew0KPiArCWludCBj b3VudDsNCj4gKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsNCj4gKwlkYXRhX2Nvbm5lY3Rvcl90ICpj b25ucyA9IGRhdGEtPmNvbm5zOw0KPiArDQo+ICsJZm9yIChjb3VudCA9IDA7IGNvdW50IDwgZGF0 YS0+bnVtX2hfdGlsZXM7IGNvdW50KyspIHsNCj4gKwkJb3V0cHV0ID0gaWd0X291dHB1dF9mcm9t X2Nvbm5lY3RvcihkYXRhLT5kaXNwbGF5LA0KPiArCQkJCQkJICAgY29ubnNbY291bnRdLmNvbm5l Y3Rvcik7DQo+ICsJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOw0KPiAr CX0NCj4gKwlpZ3RfZGlzcGxheV9jb21taXQyKGRhdGEtPmRpc3BsYXksIGRhdGEtPmNvbW1pdCk7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHRlc3RfY2xlYW51cChkYXRhX3QgKmRhdGEpDQo+ ICt7DQo+ICsJaW50IGNvdW50Ow0KPiArCWRhdGFfY29ubmVjdG9yX3QgKmNvbm5zID0gZGF0YS0+ Y29ubnM7DQo+ICsNCj4gKwlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBkYXRhLT5udW1faF90aWxl czsgY291bnQrKykgew0KPiArCQlpZiAoY29ubnNbY291bnRdLm91dHB1dCkgew0KPiArCQkJcmVz ZXRfcGxhbmUoY29ubnNbY291bnRdLm91dHB1dCk7DQo+ICsJCQlyZXNldF9vdXRwdXQoY29ubnNb Y291bnRdLm91dHB1dCk7DQo+ICsJCX0NCj4gKwl9DQo+ICsJaWd0X3JlbW92ZV9mYihkYXRhLT5k cm1fZmQsICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOw0KPiArCWlndF9kaXNwbGF5X2NvbW1pdDIo ZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0KTsNCj4gKwltZW1zZXQoY29ubnMsIDAsIHNpemVv ZihkYXRhX2Nvbm5lY3Rvcl90KSAqIGRhdGEtPm51bV9oX3RpbGVzKTsNCj4gK30NCj4gKw0KPiAr c3RhdGljIHZvaWQgc2V0dXBfbW9kZShkYXRhX3QgKmRhdGEpDQo+ICt7DQo+ICsJaW50IGNvdW50 ID0gMDsNCj4gKwllbnVtIHBpcGUgcGlwZTsNCj4gKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsNCj4g KwlkYXRhX2Nvbm5lY3Rvcl90ICpjb25ucyA9IGRhdGEtPmNvbm5zOw0KPiArDQo+ICsJLyoNCj4g KwkgKiBUaGUgb3V0cHV0IGlzIHNldCB0byBQSVBFX05PTkUgYW5kIHRoZW4gYXNzaWduZWQgYSBw aXBlLg0KPiArCSAqIFRoaXMgaXMgZG9uZSB0byBlbnN1cmUgYSBjb21wbGV0ZSBtb2Rlc2V0IG9j Y3VyZXMgZXZlcnkNCj4gKwkgKiB0aW1lIHRoZSB0ZXN0IGlzIHJ1bi4NCj4gKwkgKi8NCj4gKwly ZXNldF9tb2RlKGRhdGEpOw0KPiArDQo+ICsJZm9yIChjb3VudCA9IDA7IGNvdW50IDwgZGF0YS0+ bnVtX2hfdGlsZXM7IGNvdW50KyspIHsNCj4gKwkJb3V0cHV0ID0gaWd0X291dHB1dF9mcm9tX2Nv bm5lY3RvcihkYXRhLT5kaXNwbGF5LA0KPiArCQkJCQkJICAgY29ubnNbY291bnRdLmNvbm5lY3Rv cik7DQo+ICsNCj4gKwkJZm9yX2VhY2hfcGlwZShkYXRhLT5kaXNwbGF5LCBwaXBlKSB7DQo+ICsJ CQlpZiAoY291bnQgPiAwICYmIHBpcGUgPT0gY29ubnNbY291bnQtMV0ucGlwZSkNCj4gKwkJCQlj b250aW51ZTsNCg0KVGhpcyBvbmx5IGNoZWNrcyB3aGV0aGVyIHRoZSBwcmV2aW91cyBjb25uZWN0 b3IgcGlja2VkIHRoaXMgcGlwZS4gV2UNCm5lZWQgdG8gbWFrZSBzdXJlIG5vbmUgb2YgdGhlIHBy ZXZpb3VzIGNvbm5lY3RvcnMgcGlja2VkIHRoaXMgcGlwZS4NCg0KRm9yIGluc3RhbmNlLCBpZiBu dW1faF90aWxlcyA9PSAzLCBtYXliZSBjb25uc1swXSBoYXMgcGlja2VkIHBpcGUgQSwNCmFuZCB3 ZSB3YW50IHRvIHByZXZlbnQgY29ubnNbMl0gZnJvbSBhbHNvIHBpY2tpbmcgcGlwZSBBLg0KDQpT byB0aGUgZWFzaWVzdCB3YXkgdG8gZml4IGl0IGlzIHRvIGl0ZXJhdGUgb3ZlciBhbGwgcHJldmlv dXMgY29ubmVjdG9ycw0KKGNvbm5zWzBdIHRpbGwgY29ubnNbY291bnQtMV0pIGFuZCBtYWtlIHN1 cmUgbm9ib2R5IHBpY2tlZCB0aGUgcGlwZQ0KYWxyZWFkeS4gVGhpcyB3b3VsZG4ndCBiZSB2ZXJ5 IGVmZmljaWVudCwgYnV0IHdobyBjYXJlcy4NCg0KQWx0ZXJuYXRpdmVseSwgc2VlIHBpY2tfbl9v dXRwdXRzIGluIG15IGttc19hdG9taWNfbXVsdGkgcGF0Y2gsIHdoaWNoDQpkb2VzIGl0IHRoZSBv dGhlciB3YXkgYXJvdW5kOiBpdGVyYXRlIG92ZXIgYWxsIHBpcGVzIHRoZW4gaXRlcmF0ZSBvdmVy DQphbGwgY29ubmVjdG9ycy4gRG9pbmcgaXQgdGhhdCB3YXkgYWxsb3dzIG91dHB1dC0+cGVuZGlu Z19waXBlIHRvIGJlDQpjaGVja2VkLg0KDQo+ICsNCj4gKwkJCWlmIChpZ3RfcGlwZV9jb25uZWN0 b3JfdmFsaWQocGlwZSwgb3V0cHV0KSkgew0KPiArDQoNClN0eWxlIG5pdDogc3RyYXkgbmV3bGlu ZSBoZXJlIF4NCg0KPiArCQkJCWNvbm5zW2NvdW50XS5waXBlID0gcGlwZTsNCj4gKwkJCQljb25u c1tjb3VudF0ub3V0cHV0ID0gb3V0cHV0Ow0KPiArDQo+ICsJCQkJaWd0X291dHB1dF9zZXRfcGlw ZShjb25uc1tjb3VudF0ub3V0cHV0LA0KPiArCQkJCQkJICAgIGNvbm5zW2NvdW50XS5waXBlKTsN Cj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gKwkJfQ0KPiArCX0NCj4gKwlpZ3RfZGlzcGxheV9j b21taXRfYXRvbWljKGRhdGEtPmRpc3BsYXksIERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VU LA0KPiArCQkJCSAgTlVMTCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHNldHVwX2ZyYW1l YnVmZmVyKGRhdGFfdCAqZGF0YSkNCj4gK3sNCj4gKwlpbnQgY291bnQ7DQo+ICsJaWd0X3BsYW5l X3QgKnByaW1hcnk7DQo+ICsJaW50IGZiX2hfc2l6ZSA9IDAsIGZiX3Zfc2l6ZSA9IDA7DQo+ICsJ ZGF0YV9jb25uZWN0b3JfdCAqY29ubnMgPSBkYXRhLT5jb25uczsNCj4gKw0KPiArCWZvciAoY291 bnQgPSAwOyBjb3VudCA8IGRhdGEtPm51bV9oX3RpbGVzOyBjb3VudCsrKSB7DQo+ICsNCg0KU3R5 bGUgbml0OiBzdHJheSBuZXdsaW5lIGhlcmUgXg0KDQo+ICsJCWZiX2hfc2l6ZSArPSBjb25uc1tj b3VudF0udGlsZS50aWxlX2hfc2l6ZTsNCj4gKwkJLyogV2Ugc3VwcG9ydCBvbmx5IGhvcml6b250 YWwgdGlsZXMsIHNvIHZlcnRpY2FsIHNpemUgaXMgc2FtZQ0KPiArCQkgKiBmb3IgYWxsIHRpbGVz IGFuZCBuZWVkcyB0byBiZSBhc3NpZ25lZCBvbmx5IG9uY2UuDQo+ICsJCSAqLw0KPiArCQlpZiAo IWZiX3Zfc2l6ZSkNCj4gKwkJCWZiX3Zfc2l6ZSA9IGNvbm5zW2NvdW50XS50aWxlLnRpbGVfdl9z aXplOw0KDQpOaXQ6IG1heWJlIGlndF9hc3NlcnQgKG9yIGlndF9yZXF1aXJlPykgdGhhdCB0aWxl X3Zfc2l6ZSBpcyB0aGUgc2FtZQ0KZm9yIGFsbCAgdGlsZXM/DQoNCj4gKwl9DQo+ICsNCj4gKwlp Z3RfY3JlYXRlX3BhdHRlcm5fZmIoZGF0YS0+ZHJtX2ZkLA0KPiArCQkJICAgICAgZmJfaF9zaXpl LA0KPiArCQkJICAgICAgZmJfdl9zaXplLA0KPiArCQkJICAgICAgRFJNX0ZPUk1BVF9YQkdSODg4 OCwNCj4gKwkJCSAgICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsDQo+ICsJCQkgICAgICAm ZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsNCj4gKw0KPiArCWZvciAoY291bnQgPSAwOyBjb3VudCA8 IGRhdGEtPm51bV9oX3RpbGVzOyBjb3VudCsrKSB7DQo+ICsNCg0KU3R5bGUgbml0OiBzdHJheSBu ZXdsaW5lIGhlcmUgXg0KDQo+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBl KGNvbm5zW2NvdW50XS5vdXRwdXQsDQo+ICsJCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFS WSk7DQo+ICsNCj4gKwkJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJfdGVzdF9w YXR0ZXJuKTsNCj4gKw0KPiArCQlpZ3RfZmJfc2V0X3NpemUoJmRhdGEtPmZiX3Rlc3RfcGF0dGVy biwgcHJpbWFyeSwNCj4gKwkJCQljb25uc1tjb3VudF0udGlsZS50aWxlX2hfc2l6ZSwNCj4gKwkJ CQljb25uc1tjb3VudF0udGlsZS50aWxlX3Zfc2l6ZSk7DQo+ICsNCj4gKwkJaWd0X2ZiX3NldF9w b3NpdGlvbigmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuLCBwcmltYXJ5LA0KPiArCQkJCSAgICAoY29u bnNbY291bnRdLnRpbGUudGlsZV9oX3NpemUgKg0KPiArCQkJCSAgICAgY29ubnNbY291bnRdLnRp bGUudGlsZV9oX2xvYyksDQo+ICsJCQkJICAgIChjb25uc1tjb3VudF0udGlsZS50aWxlX3Zfc2l6 ZSAqDQo+ICsJCQkJICAgICBjb25uc1tjb3VudF0udGlsZS50aWxlX3ZfbG9jKSk7DQo+ICsNCj4g KwkJaWd0X3BsYW5lX3NldF9zaXplKHByaW1hcnksDQo+ICsJCQkJICAgY29ubnNbY291bnRdLnRp bGUudGlsZV9oX3NpemUsDQo+ICsJCQkJICAgY29ubnNbY291bnRdLnRpbGUudGlsZV92X3NpemUp Ow0KPiArCX0NCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcGFnZV9mbGlwX2hhbmRsZXIoaW50 IGZkLCB1bnNpZ25lZCBpbnQgc2VxLA0KPiArCQkJICAgICAgdW5zaWduZWQgaW50IHR2X3NlYywg dW5zaWduZWQgaW50IHR2X3VzZWMsDQo+ICsJCQkgICAgICB1bnNpZ25lZCBpbnQgY3J0Y19pZCwg dm9pZCAqX2RhdGEpDQo+ICt7DQo+ICsJZGF0YV90ICpkYXRhID0gX2RhdGE7DQo+ICsJZGF0YV9j b25uZWN0b3JfdCAqY29ubjsNCj4gKwlib29sIGlzX29uX3RpbWUgPSBmYWxzZTsNCj4gKwlzdGF0 aWMgdW5zaWduZWQgaW50IF90dl9zZWMsIF90dl91c2VjOw0KPiArCWludCBpOw0KPiArDQo+ICsJ aWd0X2RlYnVnKCJQYWdlIEZsaXAgRXZlbnQgcmVjZWl2ZWQgZnJvbSBDUlRDOiVkIGF0ICV1OiV1 XG4iLCBjcnRjX2lkLA0KPiArCQkgIHR2X3NlYywgdHZfdXNlYyk7DQo+ICsNCj4gKwlmb3IgKGkg PSAwOyBpIDwgZGF0YS0+bnVtX2hfdGlsZXM7IGkrKykgew0KPiArDQoNClN0eWxlIG5pdDogc3Ry YXkgbmV3bGluZSBoZXJlIF4NCg0KPiArCQljb25uID0gJmRhdGEtPmNvbm5zW2ldOw0KPiArCQlp ZiAoZGF0YS0+ZGlzcGxheS0+cGlwZXNbY29ubi0+cGlwZV0uY3J0Y19pZCA9PSBjcnRjX2lkKSB7 DQo+ICsJCQlpZ3RfYXNzZXJ0X2YoIWNvbm4tPmdvdF9wYWdlX2ZsaXAsDQo+ICsJCQkJICAgICAi R290IHR3byBwYWdlLWZsaXBzIGZvciBDUlRDICV1XG4iLA0KPiArCQkJCSAgICAgY3J0Y19pZCk7 DQo+ICsJCQljb25uLT5nb3RfcGFnZV9mbGlwID0gdHJ1ZTsNCj4gKw0KPiArCQkJLyogU2tpcCB0 aGUgZm9sbG93aW5nIGNoZWNrcyBmb3IgdGhlIGZpcnN0IHBhZ2UgZmxpcCBldmVudCAqLw0KPiAr CQkJaWYgKF90dl9zZWMgPT0gMCB8fCBfdHZfdXNlYyA9PSAwKSB7DQo+ICsJCQkJX3R2X3NlYyA9 IHR2X3NlYzsNCj4gKwkJCQlfdHZfdXNlYyA9IHR2X3VzZWM7DQo+ICsJCQkJcmV0dXJuOw0KPiAr CQkJfQ0KPiArCQkJLyoNCj4gKwkJCSAqIEZvciBzZWFtbGVzcyB0ZWFyLWZyZWUgZGlzcGxheSwg dGhlIHBhZ2UgZmxpcCBldmVudCB0aW1lc3RhbXBzDQo+ICsJCQkgKiBmcm9tIGFsbCB0aGUgdGls ZXMgc2hvdWxkIG5vdCBkaWZmZXIgYnkgbW9yZSB0aGFuIDEwdXMuDQo+ICsJCQkgKi8NCj4gKwkJ CWlzX29uX3RpbWUgPSB0dl9zZWMgPT0gX3R2X3NlYyAmJiAoYWJzKHR2X3VzZWMgLSBfdHZfdXNl YykgPCAxMCk7DQo+ICsNCj4gKwkJCWlndF9mYWlsX29uX2YoIWlzX29uX3RpbWUsICJEZWxheWVk IHBhZ2UgZmxpcCBldmVudCBmcm9tIENSVEM6JWQgYXQgJXU6JXVcbiIsDQo+ICsJCQkJICAgICAg Y3J0Y19pZCwgdHZfc2VjLCB0dl91c2VjKTsNCj4gKwkJCXJldHVybjsNCj4gKwkJfQ0KPiArCX0N Cj4gKw0KPiArCWlndF9hc3NlcnRfZihmYWxzZSwgIkdvdCBwYWdlLWZsaXAgZXZlbnQgZm9yIHVu ZXhwZWN0ZWQgQ1JUQyAldVxuIiwNCj4gKwkJICAgICBjcnRjX2lkKTsNCj4gK30NCj4gKw0KPiAr c3RhdGljIGJvb2wgZ290X2FsbF9wYWdlX2ZsaXBzKGRhdGFfdCAqZGF0YSkNCj4gK3sNCj4gKwlp bnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5udW1faF90aWxlczsgaSsrKSB7 DQo+ICsJCWlmICghZGF0YS0+Y29ubnNbaV0uZ290X3BhZ2VfZmxpcCkNCj4gKwkJCXJldHVybiBm YWxzZTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gdHJ1ZTsNCj4gK30NCj4gKw0KPiAraWd0X21h aW4NCj4gK3sNCj4gKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7DQo+ICsJZGF0YV90IGRhdGEgPSB7 MH07DQo+ICsJc3RydWN0IHBvbGxmZCBwZmQgPSB7MH07DQo+ICsJZHJtRXZlbnRDb250ZXh0IGRy bV9ldmVudCA9IHswfTsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJaWd0X2ZpeHR1cmUgew0KPiAr CQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0FOWSk7DQo+ICsN Cj4gKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOw0KPiArCQlpZ3RfZGlzcGxheV9y ZXF1aXJlKCZkaXNwbGF5LCBkYXRhLmRybV9mZCk7DQo+ICsJCWlndF9kaXNwbGF5X3Jlc2V0KCZk aXNwbGF5KTsNCj4gKw0KPiArCQlkYXRhLmRpc3BsYXkgPSAmZGlzcGxheTsNCj4gKwkJcGZkLmZk ID0gZGF0YS5kcm1fZmQ7DQo+ICsJCXBmZC5ldmVudHMgPSBQT0xMSU47DQo+ICsJCWRybV9ldmVu dC52ZXJzaW9uID0gMzsNCj4gKwkJZHJtX2V2ZW50LnBhZ2VfZmxpcF9oYW5kbGVyMiA9IHBhZ2Vf ZmxpcF9oYW5kbGVyOw0KPiArCQlkYXRhLmNvbW1pdCA9IGRhdGEuZGlzcGxheS0+aXNfYXRvbWlj ID8gQ09NTUlUX0FUT01JQyA6IENPTU1JVF9MRUdBQ1k7DQo+ICsJCWlndF9yZXF1aXJlKGRhdGEu Y29tbWl0ID09IENPTU1JVF9BVE9NSUMpOw0KPiArDQo+ICsJCWdldF9udW1iZXJfb2ZfaF90aWxl cygmZGF0YSk7DQo+ICsJCWlndF9kZWJ1ZygiTnVtYmVyIG9mIEhvcml6b250YWwgVGlsZXM6ICVk XG4iLCBkYXRhLm51bV9oX3RpbGVzKTsNCj4gKwkJaWd0X3JlcXVpcmUoZGF0YS5udW1faF90aWxl cyA+IDApOw0KPiArCQlkYXRhLmNvbm5zID0gY2FsbG9jKGRhdGEubnVtX2hfdGlsZXMsIHNpemVv ZihkYXRhX2Nvbm5lY3Rvcl90KSk7DQo+ICsJfQ0KPiArDQo+ICsJaWd0X3N1YnRlc3QoImJhc2lj LXRlc3QtcGF0dGVybiIpIHsNCj4gKwkJaWd0X2Fzc2VydChkYXRhLmNvbm5zKTsNCj4gKw0KPiAr CQlnZXRfY29ubmVjdG9ycygmZGF0YSk7DQo+ICsJCXNldHVwX21vZGUoJmRhdGEpOw0KPiArCQlz ZXR1cF9mcmFtZWJ1ZmZlcigmZGF0YSk7DQo+ICsJCWlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMo ZGF0YS5kaXNwbGF5LCBEUk1fTU9ERV9BVE9NSUNfTk9OQkxPQ0sgfA0KPiArCQkJCQkgIERSTV9N T0RFX1BBR0VfRkxJUF9FVkVOVCwgJmRhdGEpOw0KPiArCQl3aGlsZSAoIWdvdF9hbGxfcGFnZV9m bGlwcygmZGF0YSkpIHsNCj4gKwkJCXJldCA9IHBvbGwoJnBmZCwgMSwgMTAwMCk7DQo+ICsJCQlp Z3RfYXNzZXJ0KHJldCA9PSAxKTsNCj4gKwkJCWRybUhhbmRsZUV2ZW50KGRhdGEuZHJtX2ZkLCAm ZHJtX2V2ZW50KTsNCj4gKwkJfQ0KPiArDQo+ICsJCXRlc3RfY2xlYW51cCgmZGF0YSk7DQo+ICsJ fQ0KPiArDQo+ICsJaWd0X2ZpeHR1cmUgew0KPiArCQlmcmVlKGRhdGEuY29ubnMpOw0KPiArCQlj bG9zZShkYXRhLmRybV9mZCk7DQo+ICsJCWttc3Rlc3RfcmVzdG9yZV92dF9tb2RlKCk7DQo+ICsJ CWlndF9kaXNwbGF5X2ZpbmkoZGF0YS5kaXNwbGF5KTsNCj4gKwl9DQo+ICt9DQo+IGRpZmYgLS1n aXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkDQo+IGluZGV4IGE3YjJi MzIyLi41MDI5MmRmOCAxMDA2NDQNCj4gLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQNCj4gKysrIGIv dGVzdHMvbWVzb24uYnVpbGQNCj4gQEAgLTI2LDYgKzI2LDcgQEAgdGVzdF9wcm9ncyA9IFsNCj4g IAkna21zX2N1cnNvcl9lZGdlX3dhbGsnLA0KPiAgCSdrbXNfY3Vyc29yX2xlZ2FjeScsDQo+ICAJ J2ttc19kcF9kc2MnLA0KPiArCSdrbXNfZHBfdGlsZWRfZGlzcGxheScsDQo+ICAJJ2ttc19kcmF3 X2NyYycsDQo+ICAJJ2ttc19mYmNvbl9mYnQnLA0KPiAgCSdrbXNfZmVuY2VfcGluX2xlYWsnLA0K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBt YWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2