Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp1033994ybd; Wed, 26 Jun 2019 10:01:46 -0700 (PDT) X-Google-Smtp-Source: APXvYqwff7oiGIGHXWdBqNl91mDflS4RBzDAGBrn2a+DCwN3S4Hgt+HgEw6wet7jckdS9waZoSN1 X-Received: by 2002:a17:902:b94a:: with SMTP id h10mr6718505pls.125.1561568506485; Wed, 26 Jun 2019 10:01:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561568506; cv=none; d=google.com; s=arc-20160816; b=q4A+Q1aSEeTlmwRrBZGKHoQl6QOXy6fqPddmMaNU9gPfPEuO6dX84gLLASHyHBCurH +YAXZilGha2ZVNyCZjrZODN3W/qIkWI0JcbHtSdlg0a5rSPbbnHI3uE3CSGJ/SNuuOde W0D7/AvSClC231GOqdjGE2rElJLE4TBE6O0DVtWSeYTA2T2uhnvn0U6fspoiOPMCeqHe ZAbC1ocLfoLBgD8bQ9IShfvQ2LTEnhE+MfPk5LC7kYZLAaTy0xkqCl7KGcq3zayQDIEk BpfMsyigXAJwkZaUySx/PT0I0KDXfGb4vq7PtpeKP710/QY9Dth+t4uDQqSrpYvqNRZQ gYIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from; bh=wrFQe2yOs0Wiv5FZMUv6E5visUuqtmOnplPWeauYPco=; b=tivjai3udcL8d/imW8I0/2wzx0D35n7zMgl70YFH+OwvKl0CMJP/KzNzSrrM7r4Bty BSdpC2PWZDg0E+iwmL3grItpCT7A23RnAYWJSsfB3GOtZyiVYLJIil1Iy0jnj4ncQC2e uoyt6p1pfvLUksFsOjt5vc3pXL4UepFOMh0ltI/XP7/Ov47g4LzEEqqhdBsKOJIi9RBy 4TC9UunJQD5ELpgORKm49wNNGS91adiZywd5401xQ1SIJtU5RW5smxEHJVfWXWLZcqbm pQytpuCufYQBN3/m5VWRzIWLMU56SOSGRs5om5IOgVW4K9GoKd5YDpIuydk79jnaCCfu LnHg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 18si15761993pgy.84.2019.06.26.10.01.13; Wed, 26 Jun 2019 10:01:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726223AbfFZRBM (ORCPT + 99 others); Wed, 26 Jun 2019 13:01:12 -0400 Received: from mga11.intel.com ([192.55.52.93]:54430 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726042AbfFZRBM (ORCPT ); Wed, 26 Jun 2019 13:01:12 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jun 2019 10:01:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,420,1557212400"; d="scan'208";a="337272909" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by orsmga005.jf.intel.com with ESMTP; 26 Jun 2019 10:01:09 -0700 Received: from orsmsx103.amr.corp.intel.com ([169.254.5.135]) by ORSMSX105.amr.corp.intel.com ([169.254.2.207]) with mapi id 14.03.0439.000; Wed, 26 Jun 2019 10:01:09 -0700 From: "Gix, Brian" To: "jakub.witowski@silvair.com" , "linux-bluetooth@vger.kernel.org" CC: "michal.lowas-rzechonek@silvair.com" , "Stotland, Inga" Subject: Re: [PATCH v2] mesh: Added ImportLocalNode call with its API Thread-Topic: [PATCH v2] mesh: Added ImportLocalNode call with its API Thread-Index: AQHVK2PPaAHgdlWxzEiOtHM0GEunGKauoBAA Date: Wed, 26 Jun 2019 17:01:10 +0000 Message-ID: <1561568468.22940.16.camel@intel.com> References: <20190625143855.29889-1-jakub.witowski@silvair.com> In-Reply-To: <20190625143855.29889-1-jakub.witowski@silvair.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.45.164] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org SGkgSmFrdWIsDQoNCg0KT24gVHVlLCAyMDE5LTA2LTI1IGF0IDE2OjM4ICswMjAwLCBKYWt1YiBX aXRvd3NraSB3cm90ZToNCj4gVGhpcyBpbXBsZW1lbnRzIEltcG9ydExvY2FsTm9kZSgpIG1ldGhv ZCBvbiBvcmcuYmx1ZXoubWVzaC5OZXR3b3JrMQ0KPiBpbnRlcmZhY2UuIEludm9raW5nIHRoaXMg bWV0aG9kIGNyZWF0ZXMgYSBzZWxmLXByb3Zpc2lvbmVkIG5vZGUgYmFzZWQgb24NCj4gcGFzc2Vk IEpTT04gZGVmaW5pdGlvbi4gQWxzbyBmdWxsIGZ1bmN0aW9uYWxpdHkgb2YgaW1wb3J0IGxvY2Fs IG5vZGUgaGFzDQo+IGJlZW4gaW1wbGVtZW50ZWQNCj4gLS0tDQo+ICBkb2MvbWVzaC1hcGkudHh0 IHwgIDIyICsrKystDQo+ICBtZXNoL21lc2guYyAgICAgIHwgIDYzICsrKysrKysrKysrKy0tDQo+ ICBtZXNoL25vZGUuYyAgICAgIHwgMjEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tDQo+ICBtZXNoL25vZGUuaCAgICAgIHwgICAyICsNCj4gIDQgZmlsZXMg Y2hhbmdlZCwgMjc2IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt LWdpdCBhL2RvYy9tZXNoLWFwaS50eHQgYi9kb2MvbWVzaC1hcGkudHh0DQo+IGluZGV4IDRlMGE4 YmZmMS4uNTM5ZmMzZTRmIDEwMDY0NA0KPiAtLS0gYS9kb2MvbWVzaC1hcGkudHh0DQo+ICsrKyBi L2RvYy9tZXNoLWFwaS50eHQNCj4gQEAgLTE1MSwxMSArMTUxLDIxIEBAIE1ldGhvZHM6DQo+ICAJ CQlvcmcuYmx1ZXoubWVzaC5FcnJvci5JbnZhbGlkQXJndW1lbnRzDQo+ICAJCQlvcmcuYmx1ZXou bWVzaC5FcnJvci5BbHJlYWR5RXhpc3RzLA0KPiAgDQo+IC0JIHVpbnQ2NCB0b2tlbiBJbXBvcnRM b2NhbE5vZGUoc3RyaW5nIGpzb25fZGF0YSkNCj4gKwkgdWludDY0IHRva2VuIEltcG9ydExvY2Fs Tm9kZShvYmplY3QgYXBwX3Jvb3QsIHN0cmluZyBqc29uX2RhdGEsIGFycmF5e2J5dGV9WzE2XSB1 dWlkKQ0KPiAgDQo+ICAJCVRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBsb2NhbCBtZXNoIG5vZGUgYmFz ZWQgb24gbm9kZQ0KPiAgCQljb25maWd1cmF0aW9uIHRoYXQgaGFzIGJlZW4gZ2VuZXJhdGVkIG91 dHNpZGUgYmx1ZXRvb3RoLW1lc2hkLg0KPiAgDQo+ICsJCVRoZSBhcHBfcm9vdCBwYXJhbWV0ZXIg aXMgYSBELUJ1cyBvYmplY3Qgcm9vdCBwYXRoIG9mIHRoZQ0KPiArCQlhcHBsaWNhdGlvbiB0aGF0 IGltcGxlbWVudHMgb3JnLmJsdWV6Lm1lc2guQXBwbGljYXRpb24xDQo+ICsJCWludGVyZmFjZSwg YW5kIGEgb3JnLmJsdWV6Lm1lc2guUHJvdmlzaW9uZXIxIGludGVyZmFjZS4gVGhlDQo+ICsJCWFw cGxpY2F0aW9uIHJlcHJlc2VudHMgYSBub2RlIHdoZXJlIGNoaWxkIG1lc2ggZWxlbWVudHMgaGF2 ZQ0KPiArCQl0aGVpciBvd24gb2JqZWN0cyB0aGF0IGltcGxlbWVudCBvcmcuYmx1ZXoubWVzaC5F bGVtZW50MQ0KPiArCQlpbnRlcmZhY2UuIFRoZSBhcHBsaWNhdGlvbiBoaWVyYXJjaHkgYWxzbyBj b250YWlucyBhIHByb3Zpc2lvbg0KPiArCQlhZ2VudCBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIG9y Zy5ibHVlei5tZXNoLlByb3Zpc2lvbkFnZW50MQ0KPiArCQlpbnRlcmZhY2UuIFRoZSBzdGFuZGFy ZCBEQnVzLk9iamVjdE1hbmFnZXIgaW50ZXJmYWNlIG11c3QgYmUNCj4gKwkJYXZhaWxhYmxlIG9u IHRoZSBhcHBfcm9vdCBwYXRoLg0KPiArDQo+ICAJCVRoZSBqc29uX2RhdGEgcGFyYW1ldGVyIGlz IGEgZnVsbCBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgbm9kZQ0KPiAgCQljb25maWd1cmF0aW9u IGZpbGUuIFRoZSBmb3JtYXQgbXVzdCBjb25mb3JtIHRvIHRoZSBzY2hlbWENCj4gIAkJZGVmaW5l ZCBpbiAiTWVzaCBOb2RlIENvbmZpZ3VyYXRpb24gU2NoZW1hIiBzZWN0aW9uLiBBbnkNCj4gQEAg LTEwNTksNCArMTA2OSwxMiBAQCBQcm9wZXJ0aWVzOg0KPiAgDQo+ICBNZXNoIE5vZGUgQ29uZmln dXJhdGlvbiBTY2hlbWENCj4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtPFRC RD4NCj4gK0V4YW1wbGUgb2YgSnNvbiBmb3JtYXQgZm9yIEltcG9ydExvY2FsTm9kZSgpOg0KPiAr ew0KPiArICAiSVZpbmRleCI6MCwNCj4gKyAgIklWdXBkYXRlIjowLA0KPiArICAidW5pY2FzdEFk ZHJlc3MiOiIwMDEyIiwNCj4gKyAgImRldmljZUtleSI6IjdkYWE0NWNkMWU5ZTExYTRiODZlZWVm N2QwMWVmYTExIiwNCj4gKyAgIm5ldEtleSI6IjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJj ZGVmIiwNCj4gKyAgImtleVJlZnJlc2giOjANCj4gK30NCj4gZGlmZiAtLWdpdCBhL21lc2gvbWVz aC5jIGIvbWVzaC9tZXNoLmMNCj4gaW5kZXggMjZhY2ZkNGRjLi5lMGYwZTRiZjkgMTAwNjQ0DQo+ IC0tLSBhL21lc2gvbWVzaC5jDQo+ICsrKyBiL21lc2gvbWVzaC5jDQo+IEBAIC0yMiw2ICsyMiw3 IEBADQo+ICAjZW5kaWYNCj4gIA0KPiAgI2RlZmluZSBfR05VX1NPVVJDRQ0KPiArI2luY2x1ZGUg PGpzb24tYy9qc29uLmg+DQoNCldlIGFyZSB0cnlpbmcgdG8gZmlndXJlIG91dCBhIHdheSB0byAq aXNvbGF0ZSogSlNPTiBkZXBlbmRhbmNpZXMgaW4gdGhlIE1lc2ggZGFlbW9uLCBzdWNoIHRoYXQN CmlmIGl0IG5lZWRzIHRvIGJlIHBvcnRlZCB0byBhIHBsYXRmb3JtIHRoYXQgZG9lcyBub3Qgc3Vw cG9ydCB0aGUgSlNPTiBsaWJyYXJ5LCBpdCBjYW4gYmUgZWFzaWx5DQpwYXJlZCBvdXQgd2hpbGUg bWluaW1pemluZyBpbXBhY3QgdG8gdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbS4NCg0KSW5nYSBhbmQg SSBoYXZlIGJlZW4gaGF2aW5nIGNvbnZlcnNhdGlvbnMgYWJvdXQgdGhpcy4NCg0KKiBJdCBzaG91 bGQgYmUgcG9zc2libGUgdG8gY3JlYXRlIGEgSlNPTi1mcmVlIGRhZW1vbiwgaWYgdGhlIGludGVy bmFsIEpTT04gc3RvcmFnZSBzeXN0ZW0gaXMgcmVwbGFjZWQgd2l0aCBhDQpjdXN0b20sIG1vcmUg c3BhY2UtZWZmaWNpZW50IG5vZGUgc3RvcmFnZSwgb3IgZm9yIGFueSBvdGhlciByZWFzb24uDQoN CiogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvICpyZW1vdmUqIHRoZSBJbXBvcnRMb2NhbE5vZGUo KSBlbnRpcmVseSBpZiB0aGF0IGZ1bmN0aW9uYWxpdHkgaXMgbm90IG5lZWRlZCwgYW5kDQp3aXRo IGl0IHRoZSBKU09OIGRlcGVuZGFuY3kuDQoNCiogV2UgbWF5IHdhbnQgdG8gYmUgYWJsZSB0byBz dXBwb3J0ICpvdGhlciogZm9ybWF0cyBmb3IgdGhpcyBEQlVTIGZhY2luZyBpbnRlcmZhY2UgKHBl cmhhcHMgWE1MLCBwZXJoYXBzDQpzb21ldGhpbmcgdmVuZG9yIGRlZmluZWQpLg0KDQoNCkkgZG9u J3QgdGhpbmsgdGhlcmUgaXMgYW55IHF1ZXN0aW9uIHRoYXQgdGhlICpsb2NhdGlvbiogZm9yIHRo aXMgbWV0aG9kIGJlbG9uZ3MgZXhhY3RseSB3aGVyZSB5b3UgaGF2ZSBpdCwNCmhvd2V2ZXIgSSB0 aGluayB3ZSB3b3VsZCBsaWtlIHRvIHNlZSB0aGUgSlNPTiBwYXJzaW5nIG1vdmVkIHRvIGEgZmls ZSB0aGF0IGFscmVhZHkgaGFzIHRoZSBKU09OIGRlcGVuZGFuY3kuICBXZQ0KbWF5IHdhbnQgdG8g bGV0IHRoZSBkYWVtb24gYXV0by1kZXRlY3QgdGhlIGZvcm1hdCAocmV0dXJuaW5nIGFuIGVycm9y IGlmIHRoZSBmb3JtYXQgaXMgbm90IHVuZGVyc3Rvb2QpLiANCkhvd2V2ZXIsIHRoZW4gcGVyaGFw cyBoYXZpbmcgYSAiVGFibGUgb2YgUGFyc2VycyIgdGhhdCBkbyBub3QgbGl2ZSB3aXRoaW4gdGhl IG1lc2guYyBmaWxlLi4uICBidXQgcGVyaGFwcyBpbiBhDQpmb3JtYXQtcGFyc2VyLmggZmlsZSB3 aGljaCBjYW4gYmUgZWFzaWx5IGN1c3RvbWl6ZWQgdG8gc3VwcG9ydCBvdGhlciBwYXJzZXJzLg0K DQoNCj4gICNpbmNsdWRlIDxlbGwvZWxsLmg+DQo+ICANCj4gICNpbmNsdWRlICJtZXNoL21lc2gt aW8uaCINCj4gQEAgLTYwLDcgKzYxLDcgQEAgc3RydWN0IGJ0X21lc2ggew0KPiAgCXVpbnQ4X3Qg bWF4X2ZpbHRlcnM7DQo+ICB9Ow0KPiAgDQo+IC1zdHJ1Y3Qgam9pbl9kYXRhew0KPiArc3RydWN0 IGpvaW5fZGF0YSB7DQo+ICAJc3RydWN0IGxfZGJ1c19tZXNzYWdlICptc2c7DQo+ICAJc3RydWN0 IG1lc2hfYWdlbnQgKmFnZW50Ow0KPiAgCWNvbnN0IGNoYXIgKnNlbmRlcjsNCj4gQEAgLTM2NSw4 ICszNjYsOCBAQCBzdGF0aWMgdm9pZCBub2RlX2luaXRfY2Ioc3RydWN0IG1lc2hfbm9kZSAqbm9k ZSwgc3RydWN0IG1lc2hfYWdlbnQgKmFnZW50KQ0KPiAgDQo+ICAJaWYgKCFhY2NlcHRvcl9zdGFy dChudW1fZWxlLCBqb2luX3BlbmRpbmctPnV1aWQsIG1lc2guYWxnb3JpdGhtcywNCj4gIAkJCQlt ZXNoLnByb3ZfdGltZW91dCwgYWdlbnQsIHByb3ZfY29tcGxldGVfY2IsDQo+IC0JCQkJJm1lc2gp KQ0KPiAtCXsNCj4gKwkJCQkmbWVzaCkpIHsNCj4gKw0KPiAgCQlyZXBseSA9IGRidXNfZXJyb3Io am9pbl9wZW5kaW5nLT5tc2csIE1FU0hfRVJST1JfRkFJTEVELA0KPiAgCQkJCSJGYWlsZWQgdG8g c3RhcnQgcHJvdmlzaW9uaW5nIGFjY2VwdG9yIik7DQo+ICAJCWdvdG8gZmFpbDsNCj4gQEAgLTUz Niw3ICs1MzcsNyBAQCBzdGF0aWMgc3RydWN0IGxfZGJ1c19tZXNzYWdlICpsZWF2ZV9jYWxsKHN0 cnVjdCBsX2RidXMgKmRidXMsDQo+ICAJcmV0dXJuIGxfZGJ1c19tZXNzYWdlX25ld19tZXRob2Rf cmV0dXJuKG1zZyk7DQo+ICB9DQo+ICANCj4gLXN0YXRpYyB2b2lkIGNyZWF0ZV9uZXR3b3JrX3Jl YWR5X2NiKHZvaWQgKnVzZXJfZGF0YSwgaW50IHN0YXR1cywNCj4gK3N0YXRpYyB2b2lkIGNyZWF0 ZV9ub2RlX3JlYWR5X2NiKHZvaWQgKnVzZXJfZGF0YSwgaW50IHN0YXR1cywNCj4gIAkJCQkJCQlz dHJ1Y3QgbWVzaF9ub2RlICpub2RlKQ0KPiAgew0KPiAgCXN0cnVjdCBsX2RidXNfbWVzc2FnZSAq cmVwbHk7DQo+IEBAIC01OTMsMTIgKzU5NCw1OCBAQCBzdGF0aWMgc3RydWN0IGxfZGJ1c19tZXNz YWdlICpjcmVhdGVfbmV0d29ya19jYWxsKHN0cnVjdCBsX2RidXMgKmRidXMsDQo+ICANCj4gIAls X3F1ZXVlX3B1c2hfdGFpbChwZW5kaW5nX3F1ZXVlLCBwZW5kaW5nX21zZyk7DQo+ICANCj4gLQlu b2RlX2NyZWF0ZShhcHBfcGF0aCwgc2VuZGVyLCB1dWlkLCBjcmVhdGVfbmV0d29ya19yZWFkeV9j YiwNCj4gKwlub2RlX2NyZWF0ZShhcHBfcGF0aCwgc2VuZGVyLCB1dWlkLCBjcmVhdGVfbm9kZV9y ZWFkeV9jYiwNCj4gIAkJCQkJCQkJcGVuZGluZ19tc2cpOw0KPiAgDQo+ICAJcmV0dXJuIE5VTEw7 DQo+ICB9DQo+ICANCj4gK3N0YXRpYyBzdHJ1Y3QgbF9kYnVzX21lc3NhZ2UgKmltcG9ydF9sb2Nh bF9ub2RlX2NhbGwoc3RydWN0IGxfZGJ1cyAqZGJ1cywNCj4gKwkJCQkJCXN0cnVjdCBsX2RidXNf bWVzc2FnZSAqbXNnLA0KPiArCQkJCQkJdm9pZCAqdXNlcl9kYXRhKQ0KPiArew0KPiArCWNvbnN0 IGNoYXIgKmFwcF9wYXRoLCAqc2VuZGVyOw0KPiArCXN0cnVjdCBsX2RidXNfbWVzc2FnZSAqcGVu ZGluZ19tc2c7DQo+ICsJc3RydWN0IGxfZGJ1c19tZXNzYWdlX2l0ZXIgaXRlcl91dWlkOw0KPiAr CWNvbnN0IGNoYXIgKmpzb25fZGF0YTsNCj4gKwl1aW50OF90ICp1dWlkOw0KPiArCXVpbnQzMl90 IG47DQo+ICsJc3RydWN0IGpzb25fb2JqZWN0ICpqbm9kZTsNCj4gKw0KPiArCWxfZGVidWcoIklt cG9ydCBsb2NhbCBub2RlIHJlcXVlc3QiKTsNCj4gKw0KPiArCWlmICghbF9kYnVzX21lc3NhZ2Vf Z2V0X2FyZ3VtZW50cyhtc2csICJvc2F5IiwgJmFwcF9wYXRoLA0KPiArCQkJCQkJCSZqc29uX2Rh dGEsICZpdGVyX3V1aWQpKQ0KPiArCQlyZXR1cm4gZGJ1c19lcnJvcihtc2csIE1FU0hfRVJST1Jf SU5WQUxJRF9BUkdTLCBOVUxMKTsNCj4gKw0KPiArCWlmICghbF9kYnVzX21lc3NhZ2VfaXRlcl9n ZXRfZml4ZWRfYXJyYXkoJml0ZXJfdXVpZCwgJnV1aWQsICZuKSB8fA0KPiArCQkJCQkJCQkJbiAh PSAxNikNCj4gKwkJcmV0dXJuIGRidXNfZXJyb3IobXNnLCBNRVNIX0VSUk9SX0lOVkFMSURfQVJH UywgIkJhZCBkZXYgVVVJRCIpOw0KPiArDQo+ICsJaWYgKG5vZGVfZmluZF9ieV91dWlkKHV1aWQp KQ0KPiArCQlyZXR1cm4gZGJ1c19lcnJvcihtc2csIE1FU0hfRVJST1JfQUxSRUFEWV9FWElTVFMs DQo+ICsJCQkJCQkJIk5vZGUgYWxyZWFkeSBleGlzdHMiKTsNCj4gKw0KPiArCWpub2RlID0ganNv bl90b2tlbmVyX3BhcnNlKGpzb25fZGF0YSk7DQo+ICsNCj4gKwlzZW5kZXIgPSBsX2RidXNfbWVz c2FnZV9nZXRfc2VuZGVyKG1zZyk7DQo+ICsJcGVuZGluZ19tc2cgPSBsX2RidXNfbWVzc2FnZV9y ZWYobXNnKTsNCj4gKw0KPiArCWlmICghcGVuZGluZ19xdWV1ZSkNCj4gKwkJcGVuZGluZ19xdWV1 ZSA9IGxfcXVldWVfbmV3KCk7DQo+ICsNCj4gKwlsX3F1ZXVlX3B1c2hfdGFpbChwZW5kaW5nX3F1 ZXVlLCBwZW5kaW5nX21zZyk7DQo+ICsNCj4gKwlpZiAoIW5vZGVfaW1wb3J0KGFwcF9wYXRoLCBz ZW5kZXIsIGpub2RlLCB1dWlkLCBjcmVhdGVfbm9kZV9yZWFkeV9jYiwNCj4gKwkJCQkJCQkJcGVu ZGluZ19tc2cpKSB7DQo+ICsJCWxfZGJ1c19tZXNzYWdlX3VucmVmKG1zZyk7DQo+ICsJCXJldHVy biBkYnVzX2Vycm9yKG1zZywgTUVTSF9FUlJPUl9JTlZBTElEX0FSR1MsDQo+ICsJCQkJCQkJIk5v ZGUgaW1wb3J0IGZhaWxlZCIpOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiBOVUxMOw0KPiArfQ0K PiArDQo+ICBzdGF0aWMgdm9pZCBzZXR1cF9uZXR3b3JrX2ludGVyZmFjZShzdHJ1Y3QgbF9kYnVz X2ludGVyZmFjZSAqaWZhY2UpDQo+ICB7DQo+ICAJbF9kYnVzX2ludGVyZmFjZV9tZXRob2QoaWZh Y2UsICJKb2luIiwgMCwgam9pbl9uZXR3b3JrX2NhbGwsICIiLA0KPiBAQCAtNjEyLDggKzY1OSwx NCBAQCBzdGF0aWMgdm9pZCBzZXR1cF9uZXR3b3JrX2ludGVyZmFjZShzdHJ1Y3QgbF9kYnVzX2lu dGVyZmFjZSAqaWZhY2UpDQo+ICANCj4gIAlsX2RidXNfaW50ZXJmYWNlX21ldGhvZChpZmFjZSwg IkxlYXZlIiwgMCwgbGVhdmVfY2FsbCwgIiIsICJ0IiwNCj4gIAkJCQkJCQkJInRva2VuIik7DQo+ ICsNCj4gIAlsX2RidXNfaW50ZXJmYWNlX21ldGhvZChpZmFjZSwgIkNyZWF0ZU5ldHdvcmsiLCAw LCBjcmVhdGVfbmV0d29ya19jYWxsLA0KPiAgCQkJCQkidCIsICJvYXkiLCAidG9rZW4iLCAiYXBw IiwgInV1aWQiKTsNCj4gKw0KPiArCWxfZGJ1c19pbnRlcmZhY2VfbWV0aG9kKGlmYWNlLCAiSW1w b3J0TG9jYWxOb2RlIiwgMCwNCj4gKwkJCQkJaW1wb3J0X2xvY2FsX25vZGVfY2FsbCwNCj4gKwkJ CQkJInQiLCAib3NheSIsICJ0b2tlbiIsDQo+ICsJCQkJCSJhcHAiLCAianNvbl9kYXRhIiwgInV1 aWQiKTsNCj4gIH0NCj4gIA0KPiAgYm9vbCBtZXNoX2RidXNfaW5pdChzdHJ1Y3QgbF9kYnVzICpk YnVzKQ0KPiBkaWZmIC0tZ2l0IGEvbWVzaC9ub2RlLmMgYi9tZXNoL25vZGUuYw0KPiBpbmRleCBl OTk4NTg2MjMuLjk5MTgwMmE2ZiAxMDA2NDQNCj4gLS0tIGEvbWVzaC9ub2RlLmMNCj4gKysrIGIv bWVzaC9ub2RlLmMNCj4gQEAgLTI3LDYgKzI3LDcgQEANCj4gIA0KPiAgI2luY2x1ZGUgPGVsbC9l bGwuaD4NCj4gICNpbmNsdWRlIDxqc29uLWMvanNvbi5oPg0KPiArI2luY2x1ZGUgPHN0ZGlvLmg+ DQo+ICANCj4gICNpbmNsdWRlICJtZXNoL21lc2gtZGVmcy5oIg0KPiAgI2luY2x1ZGUgIm1lc2gv bWVzaC5oIg0KPiBAQCAtNTgsOSArNTksMTIgQEANCj4gICNkZWZpbmUgREVGQVVMVF9DUlBMIDEw DQo+ICAjZGVmaW5lIERFRkFVTFRfU0VRVUVOQ0VfTlVNQkVSIDANCj4gIA0KPiAtI2RlZmluZSBS RVFVRVNUX1RZUEVfSk9JTiAwDQo+IC0jZGVmaW5lIFJFUVVFU1RfVFlQRV9BVFRBQ0ggMQ0KPiAt I2RlZmluZSBSRVFVRVNUX1RZUEVfQ1JFQVRFIDINCj4gK2VudW0gcmVxdWVzdF90eXBlIHsNCj4g KwlSRVFVRVNUX1RZUEVfSk9JTiA9IDAsDQo+ICsJUkVRVUVTVF9UWVBFX0FUVEFDSCwNCj4gKwlS RVFVRVNUX1RZUEVfQ1JFQVRFLA0KPiArCVJFUVVFU1RfVFlQRV9JTVBPUlQsDQo+ICt9Ow0KPiAg DQo+ICBzdHJ1Y3Qgbm9kZV9lbGVtZW50IHsNCj4gIAljaGFyICpwYXRoOw0KPiBAQCAtMTExLDcg KzExNSwxOCBAQCBzdHJ1Y3QgbWFuYWdlZF9vYmpfcmVxdWVzdCB7DQo+ICAJdm9pZCAqZGF0YTsN Cj4gIAl2b2lkICpjYjsNCj4gIAl2b2lkICp1c2VyX2RhdGE7DQo+IC0JdWludDhfdCB0eXBlOw0K PiArCWVudW0gcmVxdWVzdF90eXBlIHR5cGU7DQo+ICt9Ow0KPiArDQo+ICtzdHJ1Y3Qgbm9kZV9p bXBvcnRfcmVxdWVzdCB7DQo+ICsJdWludDhfdCB1dWlkWzE2XTsNCj4gKwl1aW50OF90IGRldl9r ZXlbMTZdOw0KPiArCXVpbnQ4X3QgbmV0X2tleVsxNl07DQo+ICsJYm9vbCBrcjsNCj4gKwl1aW50 MTZfdCB1bmljYXN0Ow0KPiArCXVpbnQzMl90IGl2X2lkeDsNCj4gKwlib29sIGl2X3VwZGF0ZTsN Cj4gKwl2b2lkICp1c2VyX2RhdGE7DQo+ICB9Ow0KPiAgDQo+ICBzdGF0aWMgc3RydWN0IGxfcXVl dWUgKm5vZGVzOw0KPiBAQCAtODUxLDcgKzg2Niw3IEBAIGVsZW1lbnRfZG9uZToNCj4gICNkZWZp bmUgTUlOX0NPTVBPU0lUSU9OX0xFTiAxNg0KPiAgDQo+ICBib29sIG5vZGVfcGFyc2VfY29tcG9z aXRpb24oc3RydWN0IG1lc2hfbm9kZSAqbm9kZSwgdWludDhfdCAqZGF0YSwNCj4gLQkJCQkJCQkJ dWludDE2X3QgbGVuKQ0KPiArCQkJICAgIHVpbnQxNl90IGxlbikNCj4gIHsNCj4gIAlzdHJ1Y3Qg bm9kZV9jb21wb3NpdGlvbiAqY29tcDsNCj4gIAl1aW50MTZfdCBmZWF0dXJlczsNCj4gQEAgLTk0 Niw3ICs5NjEsNyBAQCBib29sIG5vZGVfcGFyc2VfY29tcG9zaXRpb24oc3RydWN0IG1lc2hfbm9k ZSAqbm9kZSwgdWludDhfdCAqZGF0YSwNCj4gIAkJCXZlbmRvcl9pZCA9IGxfZ2V0X2xlMTYoZGF0 YSk7DQo+ICAJCQltb2RfaWQgfD0gKHZlbmRvcl9pZCA8PCAxNik7DQo+ICAJCQltb2QgPSBtZXNo X21vZGVsX3ZlbmRvcl9uZXcoZWxlLT5pZHgsIHZlbmRvcl9pZCwNCj4gLQkJCQkJCQkJCW1vZF9p ZCk7DQo+ICsJCQkJCQkgICAgbW9kX2lkKTsNCj4gIAkJCWlmICghbW9kKSB7DQo+ICAJCQkJZWxl bWVudF9mcmVlKGVsZSk7DQo+ICAJCQkJZ290byBmYWlsOw0KPiBAQCAtOTc3LDcgKzk5Miw2IEBA IGZhaWw6DQo+ICANCj4gIAlyZXR1cm4gZmFsc2U7DQo+ICB9DQo+IC0NCj4gIHN0YXRpYyB2b2lk IGF0dGFjaF9pbyh2b2lkICphLCB2b2lkICpiKQ0KPiAgew0KPiAgCXN0cnVjdCBtZXNoX25vZGUg Km5vZGUgPSBhOw0KPiBAQCAtMTA3OCw2ICsxMDkyLDcgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVf bW9kZWxfcHJvcGVydHkoc3RydWN0IG5vZGVfZWxlbWVudCAqZWxlLA0KPiAgCQl3aGlsZSAobF9k YnVzX21lc3NhZ2VfaXRlcl9uZXh0X2VudHJ5KCZpZHMsICZ2ZW5kb3JfaWQsDQo+ICAJCQkJCQkJ CSZtb2RfaWQpKSB7DQo+ICAJCQlzdHJ1Y3QgbWVzaF9tb2RlbCAqbW9kOw0KPiArDQo+ICAJCQlt b2QgPSBsX3F1ZXVlX2ZpbmQoZWxlLT5tb2RlbHMsIG1hdGNoX21vZGVsX2lkLA0KPiAgCQkJCUxf VUlOVF9UT19QVFIoKHZlbmRvcl9pZCA8PCAxNikgfCBtb2RfaWQpKTsNCj4gIAkJCWlmICghbW9k KQ0KPiBAQCAtMTM2NiwxNyArMTM4MSw5MiBAQCBzdGF0aWMgYm9vbCBnZXRfYXBwX3Byb3BlcnRp ZXMoc3RydWN0IG1lc2hfbm9kZSAqbm9kZSwgY29uc3QgY2hhciAqcGF0aCwNCj4gIAlyZXR1cm4g dHJ1ZTsNCj4gIH0NCj4gIA0KPiAtc3RhdGljIGJvb2wgYWRkX2xvY2FsX25vZGUoc3RydWN0IG1l c2hfbm9kZSAqbm9kZSwgdWludDE2X3QgdW5pY2FzdCwgYm9vbCBrciwNCj4gLQkJCQlib29sIGl2 dSwgdWludDMyX3QgaXZfaWR4LCB1aW50OF90IGRldl9rZXlbMTZdLA0KPiAtCQkJCXVpbnQxNl90 IG5ldF9rZXlfaWR4LCB1aW50OF90IG5ldF9rZXlbMTZdKQ0KPiArc3RhdGljIGJvb2wgcGFyc2Vf aW1wb3J0ZWRfaXZfaW5kZXgoanNvbl9vYmplY3QgKmpvYmosIHVpbnQzMl90ICppZHgsDQo+ICsJ CQkJCQkJCWJvb2wgKnVwZGF0ZSkNCj4gIHsNCj4gLQlub2RlLT5uZXQgPSBtZXNoX25ldF9uZXco bm9kZSk7DQo+ICsJaW50IHRtcDsNCj4gKwlqc29uX29iamVjdCAqanZhbHVlOw0KPiAgDQo+IC0J aWYgKCFub2RlcykNCj4gLQkJbm9kZXMgPSBsX3F1ZXVlX25ldygpOw0KPiArCWlmICghanNvbl9v YmplY3Rfb2JqZWN0X2dldF9leChqb2JqLCAiSVZpbmRleCIsICZqdmFsdWUpKQ0KPiArCQlyZXR1 cm4gZmFsc2U7DQo+ICANCj4gLQlsX3F1ZXVlX3B1c2hfdGFpbChub2Rlcywgbm9kZSk7DQo+ICsJ dG1wID0ganNvbl9vYmplY3RfZ2V0X2ludChqdmFsdWUpOw0KPiArCSppZHggPSAodWludDMyX3Qp IHRtcDsNCj4gKw0KPiArCWlmICghanNvbl9vYmplY3Rfb2JqZWN0X2dldF9leChqb2JqLCAiSVZ1 cGRhdGUiLCAmanZhbHVlKSkNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsJdG1wID0ganNv bl9vYmplY3RfZ2V0X2ludChqdmFsdWUpOw0KPiArCSp1cGRhdGUgPSAoYm9vbCl0bXA7DQo+ICsN Cj4gKwlyZXR1cm4gdHJ1ZTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGJvb2wgcGFyc2VfaW1wb3J0 ZWRfdW5pY2FzdF9hZGRyKGpzb25fb2JqZWN0ICpqb2JqLCB1aW50MTZfdCAqdW5pY2FzdCkNCj4g K3sNCj4gKwlqc29uX29iamVjdCAqanZhbHVlOw0KPiArCWNoYXIgKnN0cjsNCj4gKw0KPiArCWlm ICghanNvbl9vYmplY3Rfb2JqZWN0X2dldF9leChqb2JqLCAidW5pY2FzdEFkZHJlc3MiLCAmanZh bHVlKSkNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsJc3RyID0gKGNoYXIgKilqc29uX29i amVjdF9nZXRfc3RyaW5nKGp2YWx1ZSk7DQo+ICsNCj4gKwlpZiAoc3NjYW5mKHN0ciwgIiUwNGh4 IiwgdW5pY2FzdCkgIT0gMSkNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsJcmV0dXJuIHRy dWU7DQo+ICt9DQo+ICANCj4gK3N0YXRpYyBib29sIHBhcnNlX2ltcG9ydGVkX2RldmljZV9rZXko anNvbl9vYmplY3QgKmpvYmosIHVpbnQ4X3Qga2V5X2J1ZlsxNl0pDQo+ICt7DQo+ICsJanNvbl9v YmplY3QgKmp2YWx1ZTsNCj4gKwljaGFyICpzdHI7DQo+ICsNCj4gKwlpZiAoIWtleV9idWYpDQo+ ICsJCXJldHVybiBmYWxzZTsNCj4gKw0KPiArCWlmICghanNvbl9vYmplY3Rfb2JqZWN0X2dldF9l eChqb2JqLCAiZGV2aWNlS2V5IiwgJmp2YWx1ZSkpDQo+ICsJCXJldHVybiBmYWxzZTsNCj4gKw0K PiArCXN0ciA9IChjaGFyICopanNvbl9vYmplY3RfZ2V0X3N0cmluZyhqdmFsdWUpOw0KPiArDQo+ ICsJaWYgKCFzdHIyaGV4KHN0ciwgc3RybGVuKHN0ciksIGtleV9idWYsIDE2KSkNCj4gKwkJcmV0 dXJuIGZhbHNlOw0KPiArDQo+ICsJcmV0dXJuIHRydWU7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBi b29sIHBhcnNlX2ltcG9ydGVkX25ldF9rZXkoanNvbl9vYmplY3QgKmpvYmosIHVpbnQ4X3Qga2V5 X2J1ZlsxNl0sDQo+ICsJCQkJCQkJCWJvb2wgKmtyKQ0KPiArew0KPiArCWpzb25fb2JqZWN0ICpq dmFsdWU7DQo+ICsJY2hhciAqc3RyOw0KPiArDQo+ICsJaWYgKCFrZXlfYnVmKQ0KPiArCQlyZXR1 cm4gZmFsc2U7DQo+ICsNCj4gKwlpZiAoIWpzb25fb2JqZWN0X29iamVjdF9nZXRfZXgoam9iaiwg Im5ldEtleSIsICZqdmFsdWUpKQ0KPiArCQlyZXR1cm4gZmFsc2U7DQo+ICsNCj4gKwlzdHIgPSAo Y2hhciAqKWpzb25fb2JqZWN0X2dldF9zdHJpbmcoanZhbHVlKTsNCj4gKw0KPiArCWlmICghc3Ry MmhleChzdHIsIHN0cmxlbihzdHIpLCBrZXlfYnVmLCAxNikpDQo+ICsJCXJldHVybiBmYWxzZTsN Cj4gKw0KPiArCS8qIEdldCBrZXkgcmVmcmVzaCAqLw0KPiArCWlmICghanNvbl9vYmplY3Rfb2Jq ZWN0X2dldF9leChqb2JqLCAia2V5UmVmcmVzaCIsICZqdmFsdWUpKQ0KPiArCQlyZXR1cm4gZmFs c2U7DQo+ICsNCj4gKwkqa3IgPSAoYm9vbClqc29uX29iamVjdF9nZXRfYm9vbGVhbihqdmFsdWUp Ow0KPiArCXJldHVybiB0cnVlOw0KPiArfQ0KPiArDQo+ICsNCj4gK3N0YXRpYyBib29sIGFkZF9s b2NhbF9ub2RlKHN0cnVjdCBtZXNoX25vZGUgKm5vZGUsIHVpbnQxNl90IHVuaWNhc3QsIGJvb2wg a3IsDQo+ICsJCQkJYm9vbCBpdnUsIHVpbnQzMl90IGl2X2lkeCwgdWludDhfdCBkZXZfa2V5WzE2 XSwNCj4gKwkJCQl1aW50MTZfdCBuZXRfa2V5X2lkeCwgdWludDhfdCBuZXRfa2V5WzE2XSkNCj4g K3sNCj4gIAlpZiAoIXN0b3JhZ2Vfc2V0X2l2X2luZGV4KG5vZGUtPm5ldCwgaXZfaWR4LCBpdnUp KQ0KPiAgCQlyZXR1cm4gZmFsc2U7DQo+ICANCj4gQEAgLTE0NDQsMTQgKzE1MzQsMTMgQEAgc3Rh dGljIHZvaWQgZ2V0X21hbmFnZWRfb2JqZWN0c19jYihzdHJ1Y3QgbF9kYnVzX21lc3NhZ2UgKm1z Zywgdm9pZCAqdXNlcl9kYXRhKQ0KPiAgCX0NCj4gIA0KPiAgCWlmIChpc19uZXcpIHsNCj4gLQkJ bm9kZSA9IGxfbmV3KHN0cnVjdCBtZXNoX25vZGUsIDEpOw0KPiArCQlub2RlID0gbm9kZV9uZXco cmVxLT5kYXRhKTsNCj4gIAkJbm9kZS0+ZWxlbWVudHMgPSBsX3F1ZXVlX25ldygpOw0KPiAgCX0g ZWxzZSB7DQo+ICAJCW5vZGUgPSByZXEtPmRhdGE7DQo+ICAJfQ0KPiAgDQo+ICAJbnVtX2VsZSA9 IDA7DQo+IC0NCj4gIAl3aGlsZSAobF9kYnVzX21lc3NhZ2VfaXRlcl9uZXh0X2VudHJ5KCZvYmpl Y3RzLCAmcGF0aCwgJmludGVyZmFjZXMpKSB7DQo+ICAJCXN0cnVjdCBsX2RidXNfbWVzc2FnZV9p dGVyIHByb3BlcnRpZXM7DQo+ICAJCWNvbnN0IGNoYXIgKmludGVyZmFjZTsNCj4gQEAgLTE1NDcs NiArMTYzNiw0NCBAQCBzdGF0aWMgdm9pZCBnZXRfbWFuYWdlZF9vYmplY3RzX2NiKHN0cnVjdCBs X2RidXNfbWVzc2FnZSAqbXNnLCB2b2lkICp1c2VyX2RhdGEpDQo+ICANCj4gIAkJY2Iobm9kZSwg YWdlbnQpOw0KPiAgDQo+ICsJfSBlbHNlIGlmIChyZXEtPnR5cGUgPT0gUkVRVUVTVF9UWVBFX0lN UE9SVCkgew0KPiArDQo+ICsJCW5vZGVfcmVhZHlfZnVuY190IGNiID0gcmVxLT5jYjsNCj4gKwkJ c3RydWN0IG5vZGVfaW1wb3J0X3JlcXVlc3QgKmltcG9ydF9kYXRhID0gcmVxLT51c2VyX2RhdGE7 DQo+ICsJCXN0cnVjdCBrZXlyaW5nX25ldF9rZXkgbmV0X2tleTsNCj4gKw0KPiArCQlpZiAoIWFn ZW50KSB7DQo+ICsJCQlsX2Vycm9yKCJJbnRlcmZhY2UgJXMgbm90IGZvdW5kIiwNCj4gKwkJCQkJ CU1FU0hfUFJPVklTSU9OX0FHRU5UX0lOVEVSRkFDRSk7DQo+ICsJCQlnb3RvIGZhaWw7DQo+ICsJ CX0NCj4gKw0KPiArCQlub2RlLT5udW1fZWxlID0gbnVtX2VsZTsNCj4gKwkJc2V0X2RlZmF1bHRz KG5vZGUpOw0KPiArCQltZW1jcHkobm9kZS0+dXVpZCwgaW1wb3J0X2RhdGEtPnV1aWQsIDE2KTsN Cj4gKw0KPiArCQlpZiAoIWNyZWF0ZV9ub2RlX2NvbmZpZyhub2RlKSkNCj4gKwkJCWdvdG8gZmFp bDsNCj4gKw0KPiArCQlpZiAoIWFkZF9sb2NhbF9ub2RlKG5vZGUsIGltcG9ydF9kYXRhLT51bmlj YXN0LCBpbXBvcnRfZGF0YS0+a3IsDQo+ICsJCQkJaW1wb3J0X2RhdGEtPml2X3VwZGF0ZSwgaW1w b3J0X2RhdGEtPml2X2lkeCwNCj4gKwkJCQlpbXBvcnRfZGF0YS0+ZGV2X2tleSwgUFJJTUFSWV9O RVRfSURYLA0KPiArCQkJCQkJCWltcG9ydF9kYXRhLT5uZXRfa2V5KSkNCj4gKwkJCWdvdG8gZmFp bDsNCj4gKw0KPiArCQltZW1jcHkobmV0X2tleS5vbGRfa2V5LCBpbXBvcnRfZGF0YS0+bmV0X2tl eSwgMTYpOw0KPiArCQluZXRfa2V5Lm5ldF9pZHggPSBQUklNQVJZX05FVF9JRFg7DQo+ICsJCW5l dF9rZXkucGhhc2UgPSBLRVlfUkVGUkVTSF9QSEFTRV9OT05FOw0KPiArDQo+ICsJCWlmICgha2V5 cmluZ19wdXRfcmVtb3RlX2Rldl9rZXkobm9kZSwgaW1wb3J0X2RhdGEtPnVuaWNhc3QsDQo+ICsJ CQkJCQludW1fZWxlLCBpbXBvcnRfZGF0YS0+ZGV2X2tleSkpDQo+ICsJCQlnb3RvIGZhaWw7DQo+ ICsNCj4gKwkJaWYgKCFrZXlyaW5nX3B1dF9uZXRfa2V5KG5vZGUsIFBSSU1BUllfTkVUX0lEWCwg Jm5ldF9rZXkpKQ0KPiArCQkJZ290byBmYWlsOw0KPiArDQo+ICsJCWNiKGltcG9ydF9kYXRhLT51 c2VyX2RhdGEsIE1FU0hfRVJST1JfTk9ORSwgbm9kZSk7DQo+ICsNCj4gIAl9IGVsc2Ugew0KPiAg CQkvKiBDYWxsYmFjayBmb3IgY3JlYXRlIG5vZGUgcmVxdWVzdCAqLw0KPiAgCQlub2RlX3JlYWR5 X2Z1bmNfdCBjYiA9IHJlcS0+Y2I7DQo+IEBAIC0xNjcyLDYgKzE3OTksNTkgQEAgdm9pZCBub2Rl X2pvaW4oY29uc3QgY2hhciAqYXBwX3BhdGgsIGNvbnN0IGNoYXIgKnNlbmRlciwgY29uc3QgdWlu dDhfdCAqdXVpZCwNCj4gIAkJCQkJcmVxLCBsX2ZyZWUpOw0KPiAgfQ0KPiAgDQo+ICsNCj4gK2Jv b2wgbm9kZV9pbXBvcnQoY29uc3QgY2hhciAqYXBwX3BhdGgsIGNvbnN0IGNoYXIgKnNlbmRlciwg dm9pZCAqanNvbl9kYXRhLA0KPiArCQljb25zdCB1aW50OF90ICp1dWlkLCBub2RlX3JlYWR5X2Z1 bmNfdCBjYiwgdm9pZCAqdXNlcl9kYXRhKQ0KPiArew0KPiArCXN0cnVjdCBtYW5hZ2VkX29ial9y ZXF1ZXN0ICpyZXE7DQo+ICsJc3RydWN0IG5vZGVfaW1wb3J0X3JlcXVlc3QgKm5vZGU7DQo+ICsN Cj4gKwlsX2RlYnVnKCIiKTsNCj4gKwlub2RlID0gbF9uZXcoc3RydWN0IG5vZGVfaW1wb3J0X3Jl cXVlc3QsIDEpOw0KPiArCXJlcSA9IGxfbmV3KHN0cnVjdCBtYW5hZ2VkX29ial9yZXF1ZXN0LCAx KTsNCj4gKw0KPiArCWlmICghcGFyc2VfaW1wb3J0ZWRfZGV2aWNlX2tleShqc29uX2RhdGEsIG5v ZGUtPmRldl9rZXkpKSB7DQo+ICsJCWxfZXJyb3IoIkZhaWxlZCB0byBwYXJzZSBpbXBvcnRlZCBk ZXZpY2Uga2V5Iik7DQo+ICsJCWdvdG8gZmFpbDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoIXBhcnNl X2ltcG9ydGVkX3VuaWNhc3RfYWRkcihqc29uX2RhdGEsICZub2RlLT51bmljYXN0KSkgew0KPiAr CQlsX2Vycm9yKCJGYWlsZWQgdG8gcGFyc2UgaW1wb3J0ZWQgdW5pY2FzdCBhZGRyZXNzIik7DQo+ ICsJCWdvdG8gZmFpbDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoIXBhcnNlX2ltcG9ydGVkX2l2X2lu ZGV4KGpzb25fZGF0YSwgJm5vZGUtPml2X2lkeCwNCj4gKwkJCQkJCQkmbm9kZS0+aXZfdXBkYXRl KSkgew0KPiArCQlsX2Vycm9yKCJGYWlsZWQgdG8gcGFyc2UgaW1wb3J0ZWQgaXYgaWR4Iik7DQo+ ICsJCWdvdG8gZmFpbDsNCj4gKwl9DQo+ICsNCj4gKw0KPiArCWlmICghcGFyc2VfaW1wb3J0ZWRf bmV0X2tleShqc29uX2RhdGEsIG5vZGUtPm5ldF9rZXksICZub2RlLT5rcikpIHsNCj4gKwkJbF9l cnJvcigiRmFpbGVkIHRvIHBhcnNlIGltcG9ydGVkIG5ldHdvcmsga2V5Iik7DQo+ICsJCWdvdG8g ZmFpbDsNCj4gKwl9DQo+ICsNCj4gKwlub2RlLT51c2VyX2RhdGEgPSB1c2VyX2RhdGE7DQo+ICsN Cj4gKwltZW1jcHkobm9kZS0+dXVpZCwgdXVpZCwgMTYpOw0KPiArCXJlcS0+ZGF0YSA9ICh2b2lk ICopIHV1aWQ7DQo+ICsJcmVxLT51c2VyX2RhdGEgPSBub2RlOw0KPiArCXJlcS0+Y2IgPSBjYjsN Cj4gKwlyZXEtPnR5cGUgPSBSRVFVRVNUX1RZUEVfSU1QT1JUOw0KPiArDQo+ICsJbF9kYnVzX21l dGhvZF9jYWxsKGRidXNfZ2V0X2J1cygpLCBzZW5kZXIsIGFwcF9wYXRoLA0KPiArCQkJCQlMX0RC VVNfSU5URVJGQUNFX09CSkVDVF9NQU5BR0VSLA0KPiArCQkJCQkiR2V0TWFuYWdlZE9iamVjdHMi LCBOVUxMLA0KPiArCQkJCQlnZXRfbWFuYWdlZF9vYmplY3RzX2NiLA0KPiArCQkJCQlyZXEsIGxf ZnJlZSk7DQo+ICsJcmV0dXJuIHRydWU7DQo+ICtmYWlsOg0KPiArCWpzb25fb2JqZWN0X3B1dChq c29uX2RhdGEpOw0KPiArCWxfZnJlZShub2RlKTsNCj4gKwlyZXR1cm4gZmFsc2U7DQo+ICt9DQo+ ICsNCj4gIHZvaWQgbm9kZV9jcmVhdGUoY29uc3QgY2hhciAqYXBwX3BhdGgsIGNvbnN0IGNoYXIg KnNlbmRlciwgY29uc3QgdWludDhfdCAqdXVpZCwNCj4gIAkJCQkJbm9kZV9yZWFkeV9mdW5jX3Qg Y2IsIHZvaWQgKnVzZXJfZGF0YSkNCj4gIHsNCj4gZGlmZiAtLWdpdCBhL21lc2gvbm9kZS5oIGIv bWVzaC9ub2RlLmgNCj4gaW5kZXggMTQyNTI3YjMwLi45NTU5ZjkxNzggMTAwNjQ0DQo+IC0tLSBh L21lc2gvbm9kZS5oDQo+ICsrKyBiL21lc2gvbm9kZS5oDQo+IEBAIC05MSw2ICs5MSw4IEBAIHZv aWQgbm9kZV9idWlsZF9hdHRhY2hfcmVwbHkoc3RydWN0IG1lc2hfbm9kZSAqbm9kZSwNCj4gIAkJ CQkJCXN0cnVjdCBsX2RidXNfbWVzc2FnZSAqcmVwbHkpOw0KPiAgdm9pZCBub2RlX2NyZWF0ZShj b25zdCBjaGFyICphcHBfcGF0aCwgY29uc3QgY2hhciAqc2VuZGVyLCBjb25zdCB1aW50OF90ICp1 dWlkLA0KPiAgCQkJCQlub2RlX3JlYWR5X2Z1bmNfdCBjYiwgdm9pZCAqdXNlcl9kYXRhKTsNCj4g K2Jvb2wgbm9kZV9pbXBvcnQoY29uc3QgY2hhciAqYXBwX3BhdGgsIGNvbnN0IGNoYXIgKnNlbmRl ciwgdm9pZCAqam5vZGUsDQo+ICsJCWNvbnN0IHVpbnQ4X3QgKnV1aWQsIG5vZGVfcmVhZHlfZnVu Y190IGNiLCB2b2lkICp1c2VyX2RhdGEpOw0KPiAgdm9pZCBub2RlX2lkX3NldChzdHJ1Y3QgbWVz aF9ub2RlICpub2RlLCB1aW50MTZfdCBub2RlX2lkKTsNCj4gIHVpbnQxNl90IG5vZGVfaWRfZ2V0 KHN0cnVjdCBtZXNoX25vZGUgKm5vZGUpOw0KPiAgYm9vbCBub2RlX2RidXNfaW5pdChzdHJ1Y3Qg bF9kYnVzICpidXMpOw==