From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AAED241DFF; Tue, 7 Mar 2023 10:52:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3DF8B40E03; Tue, 7 Mar 2023 10:52:22 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 5B60D4067E for ; Tue, 7 Mar 2023 10:52:20 +0100 (CET) Received: from dggpeml100021.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4PW9h44LlwzrSR2; Tue, 7 Mar 2023 17:51:32 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by dggpeml100021.china.huawei.com (7.185.36.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 7 Mar 2023 17:52:16 +0800 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.021; Tue, 7 Mar 2023 10:52:15 +0100 From: Konstantin Ananyev To: Fengchengwen , Ajit Khaparde , Ferruh Yigit CC: Konstantin Ananyev , Thomas Monjalon , Andrew Rybchenko , "dev@dpdk.org" Subject: RE: [PATCH 1/5] ethdev: fix race-condition of proactive error handling mode Thread-Topic: [PATCH 1/5] ethdev: fix race-condition of proactive error handling mode Thread-Index: AQHZS+uvQnCnmh+sv0S0/W2/2wgHVa7nZ26wgAHQp4CAAwPJgIABLjQAgAAlK+D///3qAIAAAVaAgAASk4CAAVMHgIAAKIow Date: Tue, 7 Mar 2023 09:52:15 +0000 Message-ID: <4b22988ae22e4db08d1cb1f810832605@huawei.com> References: <20230301030610.49468-1-fengchengwen@huawei.com> <20230301030610.49468-2-fengchengwen@huawei.com> <0f387ca1eee34a7f92745de7b59a71a1@huawei.com> <18c5b676-ae72-e646-89af-d6cd636d923f@yandex.ru> <5b40049f-6f22-fc3f-b13e-da1793c2fd1a@amd.com> <9092fdae9c1d4c53a00a8f23eb1129ec@huawei.com> <0effdaa9-5045-0635-775c-6e1eda0d5dba@amd.com> <9dc5d714-07a4-c32e-e557-efe8e7fe2d16@huawei.com> In-Reply-To: <9dc5d714-07a4-c32e-e557-efe8e7fe2d16@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.149.130] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gPg0KPiA+Pj4+Pj4+Pj4gSW4gdGhlIHByb2FjdGl2ZSBlcnJvciBoYW5kbGluZyBtb2Rl LCB0aGUgUE1EIHdpbGwgc2V0IHRoZSBkYXRhIHBhdGgNCj4gPj4+Pj4+Pj4+IHBvaW50ZXJzIHRv IGR1bW15IGZ1bmN0aW9ucyBhbmQgdGhlbiB0cnkgcmVjb3ZlcnksIGluIHRoaXMgcGVyaW9kIHRo ZQ0KPiA+Pj4+Pj4+Pj4gYXBwbGljYXRpb24gbWF5IHN0aWxsIGludm9raW5nIGRhdGEgcGF0aCBB UEkuIFRoaXMgd2lsbCBpbnRyb2R1Y2UgYQ0KPiA+Pj4+Pj4+Pj4gcmFjZS1jb25kaXRpb24gd2l0 aCBkYXRhIHBhdGggd2hpY2ggbWF5IGxlYWQgdG8gY3Jhc2ggWzFdLg0KPiA+Pj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4+IEFsdGhvdWdoIHRoZSBQTUQgYWRkZWQgZGVsYXkgYWZ0ZXIgc2V0dGluZyBkYXRh IHBhdGggcG9pbnRlcnMgdG8gY292ZXINCj4gPj4+Pj4+Pj4+IHRoZSBhYm92ZSByYWNlLWNvbmRp dGlvbiwgaXQgcmVkdWNlcyB0aGUgcHJvYmFiaWxpdHksIGJ1dCBpdCBkb2Vzbid0DQo+ID4+Pj4+ Pj4+PiBzb2x2ZSB0aGUgcHJvYmxlbS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBUbyBzb2x2 ZSB0aGUgcmFjZS1jb25kaXRpb24gcHJvYmxlbSBmdW5kYW1lbnRhbGx5LCB0aGUgZm9sbG93aW5n DQo+ID4+Pj4+Pj4+PiByZXF1aXJlbWVudHMgYXJlIGFkZGVkOg0KPiA+Pj4+Pj4+Pj4gMS4gVGhl IFBNRCBzaG91bGQgc2V0IHRoZSBkYXRhIHBhdGggcG9pbnRlcnMgdG8gZHVtbXkgZnVuY3Rpb25z IGFmdGVyDQo+ID4+Pj4+Pj4+PiAgICAgcmVwb3J0IFJURV9FVEhfRVZFTlRfRVJSX1JFQ09WRVJJ TkcgZXZlbnQuDQo+ID4+Pj4+Pj4+PiAyLiBUaGUgYXBwbGljYXRpb24gc2hvdWxkIHN0b3AgZGF0 YSBwYXRoIEFQSSBpbnZvY2F0aW9uIHdoZW4gcHJvY2Vzcw0KPiA+Pj4+Pj4+Pj4gICAgIHRoZSBS VEVfRVRIX0VWRU5UX0VSUl9SRUNPVkVSSU5HIGV2ZW50Lg0KPiA+Pj4+Pj4+Pj4gMy4gVGhlIFBN RCBzaG91bGQgc2V0IHRoZSBkYXRhIHBhdGggcG9pbnRlcnMgdG8gdmFsaWQgZnVuY3Rpb25zIGJl Zm9yZQ0KPiA+Pj4+Pj4+Pj4gICAgIHJlcG9ydCBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NF U1MgZXZlbnQuDQo+ID4+Pj4+Pj4+PiA0LiBUaGUgYXBwbGljYXRpb24gc2hvdWxkIGVuYWJsZSBk YXRhIHBhdGggQVBJIGludm9jYXRpb24gd2hlbiBwcm9jZXNzDQo+ID4+Pj4+Pj4+PiAgICAgdGhl IFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUyBldmVudC4NCj4gPj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4NCj4gPj4+Pj4+PiBIb3cgdGhpcyBpcyBzb2x2aW5nIHRoZSByYWNlLWNvbmRpdGlvbiwg YnkgcHVzaGluZyByZXNwb25zaWJpbGl0eSB0bw0KPiA+Pj4+Pj4+IHN0b3AgZGF0YSBwYXRoIHRv IGFwcGxpY2F0aW9uPw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEV4YWN0bHksIGl0IGJlY29tZXMgYXBw bGljYXRpb24gcmVzcG9uc2liaWxpdHkgdG8gbWFrZSBzdXJlIGRhdGEtcGF0aCBpcw0KPiA+Pj4+ Pj4gc3RvcHBlZC9zdXNwZW5kZWQgYmVmb3JlIHJlY292ZXJ5IHdpbGwgY29udGludWUuDQo+ID4+ Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBGcm9tIGRvY3VtZW50YXRpb24gb2YgdGhlIGZlYXR1cmU6 DQo+ID4+Pj4+DQo+ID4+Pj4+IGBgDQo+ID4+Pj4+IEJlY2F1c2UgdGhlIFBNRCByZWNvdmVycyBh dXRvbWF0aWNhbGx5LA0KPiA+Pj4+PiB0aGUgYXBwbGljYXRpb24gY2FuIG9ubHkgc2Vuc2UgdGhh dCB0aGUgZGF0YSBmbG93IGlzIGRpc2Nvbm5lY3RlZCBmb3IgYQ0KPiA+Pj4+PiB3aGlsZSBhbmQg dGhlIGNvbnRyb2wgQVBJIHJldHVybnMgYW4gZXJyb3IgaW4gdGhpcyBwZXJpb2QuDQo+ID4+Pj4+ DQo+ID4+Pj4+IEluIG9yZGVyIHRvIHNlbnNlIHRoZSBlcnJvciBoYXBwZW5pbmcvcmVjb3Zlcmlu ZywgYXMgd2VsbCBhcyB0byByZXN0b3JlDQo+ID4+Pj4+IHNvbWUgYWRkaXRpb25hbCBjb25maWd1 cmF0aW9uLCB0aHJlZSBldmVudHMgYXJlIGF2YWlsYWJsZToNCj4gPj4+Pj4gYGANCj4gPj4+Pj4N Cj4gPj4+Pj4gSXQgbG9va3MgbGlrZSBpbml0aWFsIGRlc2lnbiBpcyB0byB1c2UgZXZlbnRzIG1h aW5seSBpbmZvcm0gYXBwbGljYXRpb24NCj4gPj4+Pj4gYWJvdXQgd2hhdCBoYXBwZW5lZCBhbmQg bWFpbmx5IGZvciByZS1jb25maWd1cmF0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBBbHRob3VnaCBJ IGFtIGRvbid0IGRpc2FncmVlIHRvIGludm9sdmUgdGhlIGFwcGxpY2F0aW9uLCBJIGFtIG5vdCBz dXJlDQo+ID4+Pj4+IHRoYXQgaXMgcGFydCBvZiBjdXJyZW50IGRlc2lnbi4NCj4gPj4+Pg0KPiA+ Pj4+IEkgdGhvdWdodCB3ZSBhbGwgYWdyZWVkIHRoYXQgaW5pdGlhbCBkZXNpZ24gY29udGFpbiBz b21lIGZhbGxhY2llcyB0aGF0DQo+ID4+Pj4gbmVlZCB0byBmaXhlZCwgbm8/DQo+ID4+Pj4gU3Rh dGVtZW50IHRoYXQgd2l0aCBjdXJyZW50IHJ0ZV9ldGhkZXYgZGVzaWduIGVycm9yIHJlY292ZXJ5 IGNhbiBiZSBkb25lDQo+ID4+Pj4gd2l0aG91dCBpbnRlcmFjdGlvbiB3aXRoIHRoZSBhcHAgKHRv IHN0b3Avc3VzcGVuZCBkYXRhL2NvbnRyb2wgcGF0aCkNCj4gPj4+PiBpcyB0aGUgbWFpbiBvbmUg SSB0aGluay4NCj4gPj4+PiBJdCBuZWVkcyBzb21lIGludGVyYWN0aW9uIHdpdGggYXBwIGxheWVy LCBvbmUgd2F5IG9yIGFub3RoZXIuDQo+ID4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFdoYXQg aWYgYXBwbGljYXRpb24gaXMgbm90IGludGVyZXN0ZWQgaW4gcmVjb3ZlcnkgbW9kZXMgYXQgYWxs IGFuZCBub3QNCj4gPj4+Pj4+PiByZWdpc3RlcmVkIGFueSBjYWxsYmFjayBmb3IgdGhlIHJlY292 ZXJ5Pw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBBcmUgeW91IHNheWluZyB0aGVyZSBp cyBubyB3YXkgZm9yIGFwcGxpY2F0aW9uIHRvIGRpc2FibGUNCj4gPj4+Pj4+IGF1dG9tYXRpYyBy ZWNvdmVyeSBpbiBQTUQgaWYgaXQgaXMgbm90IGludGVyZXN0ZWQNCj4gPj4+Pj4+IChvciBjYW4n dCBmdWxsLWZpbGwgcGVyLXJlcXVlc3RpZXMgZm9yIGl0KT8NCj4gPj4+Pj4+IElmIHNvLCB0aGVu IHllcyBpdCBpcyBhIHByb2JsZW0gYW5kIHdlIG5lZWQgdG8gZml4IGl0Lg0KPiA+Pj4+Pj4gSSBh c3N1bWVkIHRoYXQgc3VjaCBtZWNoYW5pc20gdG8gZGlzYWJsZSB1bndhbnRlZCBldmVudHMgYWxy ZWFkeSBleGlzdHMsDQo+ID4+Pj4+PiBidXQgSSBjYW4ndCBmaW5kIGFueXRoaW5nLg0KPiA+Pj4+ Pj4gV29uZGVyIHdoYXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IGhlcmUgLSBjYW4gUE1EIG1h a2UgYSBkZWNpc2lvbg0KPiA+Pj4+Pj4gYmFzZWQgb24gY2FsbGJhY2sgcmV0dXJuIHZhbHVlLCBv ciBkbyB3ZSBuZWVkIGEgbmV3IEFQSSB0bw0KPiA+Pj4+Pj4gZW5hYmxlL2Rpc2FibGUgY2FsbGJh Y2tzLCBvciAuLi4/DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gQXMgZmFy IGFzIEkgY2FuIHNlZSBhdXRvbWF0aWMgcmVjb3ZlcnkgaXMgbm90IGNvbmZpZ3VyYWJsZSBieSBh cHAuDQo+ID4+Pj4+DQo+ID4+Pj4+IEJ1dCB0aGF0IGlzIG5vdCBhbGwsIFBNRCBzZW5kcyBldmVu dHMgdG8gYXBwbGljYXRpb24gYnV0IFBNRCBjYW4ndCBrbm93DQo+ID4+Pj4+IGlmIGFwcGxpY2F0 aW9uIGlzIGhhbmRsaW5nIHRoZW0gb3Igbm90LCBzbyB3aXRoIGN1cnJlbnQgZGVzaWduIFBNRCBj YW4ndA0KPiA+Pj4+PiByZWx5IG9uIHRvIGFwcC4NCj4gPj4+Pg0KPiA+Pj4+IFdlbGwsIFBNRCBp bnZva2VzIHVzZXIgcHJvdmlkZWQgY2FsbGJhY2suDQo+ID4+Pj4gT25lIHdheSB0byBmaXggdGhh dCBwcm9ibGVtIC0gaWYgdGhlcmUgaXMgbm8gY2FsbGJhY2sgcHJvdmlkZWQsDQo+ID4+Pj4gb3Ig Y2FsbGJhY2sgcmV0dXJucyBhbiBlcnJvciBjb2RlIC0gUE1EIGNhbiBhc3N1bWUgdGhhdCByZWNv dmVyeQ0KPiA+Pj4+IHNob3VsZCBub3QgYmUgZG9uZS4NCj4gPj4+PiBUaGF0IGlzIHByb2JhYmx5 IG5vdCB0aGUgYmVzdCBkZXNpZ24gY2hvaWNlLCBidXQgYXQgbGVhc3QgaXQgd2lsbCBhbGxvdw0K PiA+Pj4+IHRvIGZpeCB0aGUgcHJvYmxlbSB3aXRob3V0IHRvbyBtYW55IGNoYW5nZXMgYW5kIGlu dHJvZHVjaW5nIG5ldyBBUEkuDQo+ID4+Pj4gVGhhdCBjb3VsZCBiZSBzb3J0IG9mIGEgJ3F1aWNr IGZpeCcuDQo+ID4+Pj4gSW4gYSBtZWFud2hpbGUgd2UgY2FuIHRoaW5rIGFib3V0IG5ldy9iZXR0 ZXIgYXBwcm9hY2ggZm9yIHRoYXQuDQo+ID4+Pj4NCj4gPj4+DQo+ID4+PiAtcmMyIGZvciAyMy4w MyBpcyBhIGZldyBkYXlzIGF3YXkuDQo+ID4+Pg0KPiA+Pj4gV2hhdCBkbyB5b3UgdGhpbmsgdG8g aGF2ZSAncXVpY2sgZml4JyBhcyBtb2RpZnlpbmcgaG93IGRyaXZlciB1cGRhdGVzDQo+ID4+PiBi dXJzdCBvcHMgdG8gcHJldmVudCB0aGUgcmFjZSBjb25kaXRpb24sIGZvciB0aGlzIHJlbGVhc2U/ DQo+IA0KPiBUaGUgJ3F1aWNrIGZpeCcsIGRvIHlvdSBtZWFuIG9ubHkgdXBkYXRlIGZ1bmN0aW9u IHBvaW50ZXIgKHdpdGhvdXQgcnhxIHNldHRpbmcpID8NCj4gQ3VycmVudGx5IHRoZSBQTURzIHdo aWNoIGFubm91bmNlZCBzdXBwb3J0ICJwcm9hY3RpdmUgZXJyb3IgaGFuZGxpbmcgbW9kZSIgYWxy ZWFkeQ0KPiBkbyB0aGlzLg0KDQpSZWFsbHkgc29ycnkgZ3V5cywgSSB3YXMgdG9vIGZhc3Qgb24g dGhlIGtleWJvYXJkLCBhbmQgZGlkbid0IHJlYWQgcHJvcGVybHkgd2hhdCBGZXJydWggc3VnZ2Vz dGVkLg0KUmVhZGluZyBpdCBvbmNlIGFnYWluIC0gbm8gSSBkb24gbm90IGFncmVlIHdpdGggdGhh dC4NCkl0IHdvdWxkbid0IGZpeCBhbnl0aGluZywgYnV0IHdpbGwganVzdCBhZGQgZXh0cmEgbWVz cyBpbnRvIHRoZSBjb2RlLg0KU29ycnkgYWdhaW4gZm9yIHRoZSB3cm9uZyByZXBseS4NCktvbnN0 YW50aW4NCg0KDQo+IA0KPiA+Pj4NCj4gPj4+IEFuZCBwbGFuIGEgZGVzaWduIHVwZGF0ZSBmb3Ig dGhlIG5leHQgcmVsZWFzZT8NCj4gPj4gKzEgb24gdGhlIG92ZXJhbGwgYXBwcm9hY2guDQo+ID4N Cj4gPiBZZXAsIGFncmVlLg0KPiANCj4gSG9wZSBmb3IgYmV0dGVyIHNvbHV0aW9uLg0KPiBBbmQg YWxzbywgSSBub3RpY2Ugb25seSB0aGUgb3BlbnZzd2l0Y2ggKGZyb20gYWxsIG9wZW4tc291cmNl IHNvZnR3YXJlIHdoaWNoIGJhc2VkLW9uIERQREspDQo+IHJlZ2lzdGVycyBSVEVfRVRIX0VWRU5U X0lOVFJfUkVTRVQgY2FsbGJhY2sgLg0KPiANCj4gVGhlcmVmb3JlLCBob3BlIHdlIGJ1aWxkIGEg cmVjb3ZlcnkgZnJhbWV3b3JrIGF0IHRoZSBEUERLIFNESyBsZXZlbCBhbmQgYmUgY29tcGF0aWJs ZQ0KPiB3aXRoIFJURV9FVEhfRVZFTlRfSU5UUl9SRVNFVCBhbmQgUlRFX0VUSF9FVkVOVF9FUlJf UkVDT1ZFUklORyBtZWNoYW5pc20uDQo+IA0KPiA+DQo+ID4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+ Pj4NCj4gPj4+Pj4+PiBJIHRoaW5rIGRyaXZlciBzaG91bGQgbm90IHJlbHkgb24gYXBwbGljYXRp b24gZm9yIHRoaXMsIHVubGVzcw0KPiA+Pj4+Pj4+IGFwcGxpY2F0aW9uIGV4cGxpY2l0bHkgc2F5 cyAodG8gZHJpdmVyKSB0aGF0IGl0IGlzIGhhbmRsaW5nIHJlY292ZXJ5LA0KPiA+Pj4+Pj4+IHJp Z2h0IG5vdyB0aGVyZSBpcyBubyB3YXkgZm9yIGRyaXZlciB0byBrbm93IHRoaXMuDQo+ID4+Pj4+ Pg0KPiA+Pj4+Pj4gSSB0aGluayBpdCBpcyB2aXNhLXZlcnNhOg0KPiA+Pj4+Pj4gYXBwbGljYXRp b24gc2hvdWxkIG5vdCBlbmFibGUgYXV0by1yZWNvdmVyeSBpZiBpdCBjYW4ndCBtZWV0DQo+ID4+ Pj4+PiBwZXItcmVxdWVzdHN0aWVzIGZvciBpdCAocHJvdmlkZSBhcHByb3ByaWF0ZSBjYWxsYmFj aykuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIGFncmVlIG9uIGFib3ZlLCB3ZSBhcmUg c2F5aW5nIHNpbWlsYXIgdGhpbmcgaW4gZGlmZmVyZW50IHBlcnNwZWN0aXZlLg0KPiA+Pj4+DQo+ ID4+Pj4gT2ssIHRoYXQncyBnb29kIHdlIGFyZSBvbiB0aGUgc2FtZSBwYWdlLg0KPiA+Pj4+DQo+ ID4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IEFsc28sIHRo aXMgcGF0Y2ggaW50cm9kdWNlIGEgZHJpdmVyIGludGVybmFsIGZ1bmN0aW9uDQo+ID4+Pj4+Pj4+ PiBydGVfZXRoX2ZwX29wc19zZXR1cCB3aGljaCB1c2VkIGFzIGFuIGhlbHAgZnVuY3Rpb24gZm9y IFBNRC4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBbMV0NCj4gPj4+Pj4+Pj4+IGh0dHA6Ly9w YXRjaHdvcmsuZHBkay5vcmcvcHJvamVjdC9kcGRrL3BhdGNoLzIwMjMwMjIwMDYwODM5LjEyNjcz NDktMi1hc2hvay5rLmthbGFkaUBpbnRlbC5jb20vDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4g Rml4ZXM6IGViMGQ0NzFhODk0MSAoImV0aGRldjogYWRkIHByb2FjdGl2ZSBlcnJvciBoYW5kbGlu ZyBtb2RlIikNCj4gPj4+Pj4+Pj4+IENjOiBzdGFibGVAZHBkay5vcmcNCj4gPj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBDaGVuZ3dlbiBGZW5nIDxmZW5nY2hlbmd3ZW5AaHVh d2VpLmNvbT4NCj4gPj4+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+Pj4gICBkb2MvZ3VpZGVzL3Byb2df Z3VpZGUvcG9sbF9tb2RlX2Rydi5yc3QgfCAyMCArKysrKysrLS0tLS0tLS0tDQo+ID4+Pj4+Pj4+ PiAgIGxpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5jICAgICAgICAgICAgICB8ICA4ICsrKysrKysN Cj4gPj4+Pj4+Pj4+ICAgbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmggICAgICAgICAgICAgIHwg MTAgKysrKysrKysNCj4gPj4+Pj4+Pj4+ICAgbGliL2V0aGRldi9ydGVfZXRoZGV2LmggICAgICAg ICAgICAgICAgIHwgMzINCj4gPj4+Pj4+Pj4+ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0NCj4g Pj4+Pj4+Pj4+ICAgbGliL2V0aGRldi92ZXJzaW9uLm1hcCAgICAgICAgICAgICAgICAgIHwgIDEg Kw0KPiA+Pj4+Pj4+Pj4gICA1IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDI1IGRl bGV0aW9ucygtKQ0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcG9sbF9tb2RlX2Rydi5yc3QNCj4gPj4+Pj4+Pj4+IGIvZG9jL2d1aWRl cy9wcm9nX2d1aWRlL3BvbGxfbW9kZV9kcnYucnN0DQo+ID4+Pj4+Pj4+PiBpbmRleCBjMTQ1YTkw NjZjLi5lMzgwZmYxMzVhIDEwMDY0NA0KPiA+Pj4+Pj4+Pj4gLS0tIGEvZG9jL2d1aWRlcy9wcm9n X2d1aWRlL3BvbGxfbW9kZV9kcnYucnN0DQo+ID4+Pj4+Pj4+PiArKysgYi9kb2MvZ3VpZGVzL3By b2dfZ3VpZGUvcG9sbF9tb2RlX2Rydi5yc3QNCj4gPj4+Pj4+Pj4+IEBAIC02MzgsMTQgKzYzOCw5 IEBAIGRpZmZlcmVudCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBpbnZva2VzIHJlY292ZXJ5DQo+ID4+ Pj4+Pj4+PiBpbiBQQVNTSVZFIG1vZGUsDQo+ID4+Pj4+Pj4+PiAgIHRoZSBQTUQgYXV0b21hdGlj YWxseSByZWNvdmVycyBmcm9tIGVycm9yIGluIFBST0FDVElWRSBtb2RlLA0KPiA+Pj4+Pj4+Pj4g ICBhbmQgb25seSBhIHNtYWxsIGFtb3VudCBvZiB3b3JrIGlzIHJlcXVpcmVkIGZvciB0aGUgYXBw bGljYXRpb24uDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gLUR1cmluZyBlcnJvciBkZXRlY3Rp b24gYW5kIGF1dG9tYXRpYyByZWNvdmVyeSwNCj4gPj4+Pj4+Pj4+IC10aGUgUE1EIHNldHMgdGhl IGRhdGEgcGF0aCBwb2ludGVycyB0byBkdW1teSBmdW5jdGlvbnMNCj4gPj4+Pj4+Pj4+IC0od2hp Y2ggd2lsbCBwcmV2ZW50IHRoZSBjcmFzaCksDQo+ID4+Pj4+Pj4+PiAtYW5kIGFsc28gbWFrZSBz dXJlIHRoZSBjb250cm9sIHBhdGggb3BlcmF0aW9ucyBmYWlsIHdpdGggYSByZXR1cm4NCj4gPj4+ Pj4+Pj4+IGNvZGUgYGAtRUJVU1lgYC4NCj4gPj4+Pj4+Pj4+IC0NCj4gPj4+Pj4+Pj4+IC1CZWNh dXNlIHRoZSBQTUQgcmVjb3ZlcnMgYXV0b21hdGljYWxseSwNCj4gPj4+Pj4+Pj4+IC10aGUgYXBw bGljYXRpb24gY2FuIG9ubHkgc2Vuc2UgdGhhdCB0aGUgZGF0YSBmbG93IGlzIGRpc2Nvbm5lY3Rl ZA0KPiA+Pj4+Pj4+Pj4gZm9yIGEgd2hpbGUNCj4gPj4+Pj4+Pj4+IC1hbmQgdGhlIGNvbnRyb2wg QVBJIHJldHVybnMgYW4gZXJyb3IgaW4gdGhpcyBwZXJpb2QuDQo+ID4+Pj4+Pj4+PiArRHVyaW5n IGVycm9yIGRldGVjdGlvbiBhbmQgYXV0b21hdGljIHJlY292ZXJ5LCB0aGUgUE1EIHNldHMgdGhl DQo+ID4+Pj4+Pj4+PiBkYXRhIHBhdGgNCj4gPj4+Pj4+Pj4+ICtwb2ludGVycyB0byBkdW1teSBm dW5jdGlvbnMgYW5kIGFsc28gbWFrZSBzdXJlIHRoZSBjb250cm9sIHBhdGgNCj4gPj4+Pj4+Pj4+ IG9wZXJhdGlvbnMNCj4gPj4+Pj4+Pj4+ICtmYWlsZWQgd2l0aCBhIHJldHVybiBjb2RlIGBgLUVC VVNZYGAuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gICBJbiBvcmRlciB0byBzZW5zZSB0aGUg ZXJyb3IgaGFwcGVuaW5nL3JlY292ZXJpbmcsDQo+ID4+Pj4+Pj4+PiAgIGFzIHdlbGwgYXMgdG8g cmVzdG9yZSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiwNCj4gPj4+Pj4+Pj4+IEBAIC02 NTMsOSArNjQ4LDkgQEAgdGhyZWUgZXZlbnRzIGFyZSBhdmFpbGFibGU6DQo+ID4+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+Pj4gICBgYFJURV9FVEhfRVZFTlRfRVJSX1JFQ09WRVJJTkdgYA0KPiA+Pj4+Pj4+ Pj4gICAgICBOb3RpZnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQN Cj4gPj4+Pj4+Pj4+IC0gICBhbmQgdGhlIHJlY292ZXJ5IGlzIGJlaW5nIHN0YXJ0ZWQuDQo+ID4+ Pj4+Pj4+PiArICAgYW5kIHRoZSByZWNvdmVyeSBpcyBhYm91dCB0byBzdGFydC4NCj4gPj4+Pj4+ Pj4+ICAgICAgVXBvbiByZWNlaXZpbmcgdGhlIGV2ZW50LCB0aGUgYXBwbGljYXRpb24gc2hvdWxk IG5vdCBpbnZva2UNCj4gPj4+Pj4+Pj4+IC0gICBhbnkgY29udHJvbCBwYXRoIGZ1bmN0aW9uIHVu dGlsIHJlY2VpdmluZw0KPiA+Pj4+Pj4+Pj4gKyAgIGFueSBjb250cm9sIGFuZCBkYXRhIHBhdGgg QVBJIHVudGlsIHJlY2VpdmluZw0KPiA+Pj4+Pj4+Pj4gICAgICBgYFJURV9FVEhfRVZFTlRfUkVD T1ZFUllfU1VDQ0VTU2BgIG9yDQo+ID4+Pj4+Pj4+PiBgYFJURV9FVEhfRVZFTlRfUkVDT1ZFUllf RkFJTEVEYGAgZXZlbnQuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gICAuLiBub3RlOjoNCj4g Pj4+Pj4+Pj4+IEBAIC02NjYsOCArNjYxLDkgQEAgdGhyZWUgZXZlbnRzIGFyZSBhdmFpbGFibGU6 DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gICBgYFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VD Q0VTU2BgDQo+ID4+Pj4+Pj4+PiAgICAgIE5vdGlmeSB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUg cmVjb3ZlcnkgZnJvbSBlcnJvciBpcyBzdWNjZXNzZnVsLA0KPiA+Pj4+Pj4+Pj4gLSAgIHRoZSBQ TUQgYWxyZWFkeSByZS1jb25maWd1cmVzIHRoZSBwb3J0LA0KPiA+Pj4+Pj4+Pj4gLSAgIGFuZCB0 aGUgZWZmZWN0IGlzIHRoZSBzYW1lIGFzIGEgcmVzdGFydCBvcGVyYXRpb24uDQo+ID4+Pj4+Pj4+ PiArICAgdGhlIFBNRCBhbHJlYWR5IHJlLWNvbmZpZ3VyZXMgdGhlIHBvcnQuDQo+ID4+Pj4+Pj4+ PiArICAgVGhlIGFwcGxpY2F0aW9uIHNob3VsZCByZXN0b3JlIHNvbWUgYWRkaXRpb25hbCBjb25m aWd1cmF0aW9uLA0KPiA+Pj4+Pj4+Pj4gYW5kIHRoZW4NCj4gPj4+Pj4+Pj4+ICsgICBlbmFibGUg ZGF0YSBwYXRoIEFQSSBpbnZvY2F0aW9uLg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ICAgYGBS VEVfRVRIX0VWRU5UX1JFQ09WRVJZX0ZBSUxFRGBgDQo+ID4+Pj4+Pj4+PiAgICAgIE5vdGlmeSB0 aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgcmVjb3ZlcnkgZnJvbSBlcnJvciBmYWlsZWQsDQo+ID4+ Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmMgYi9saWIvZXRo ZGV2L2V0aGRldl9kcml2ZXIuYw0KPiA+Pj4+Pj4+Pj4gaW5kZXggMGJlMWU4Y2EwNC4uZjk5NDY1 M2ZlOSAxMDA2NDQNCj4gPj4+Pj4+Pj4+IC0tLSBhL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5j DQo+ID4+Pj4+Pj4+PiArKysgYi9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuYw0KPiA+Pj4+Pj4+ Pj4gQEAgLTUxNSw2ICs1MTUsMTQgQEAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGNvbnN0IHN0cnVj dCBydGVfZXRoX2Rldg0KPiA+Pj4+Pj4+Pj4gKmRldiwgY29uc3QgY2hhciAqcmluZ19uYW1lLA0K PiA+Pj4+Pj4+Pj4gICAgICAgcmV0dXJuIHJjOw0KPiA+Pj4+Pj4+Pj4gICB9DQo+ID4+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+Pj4gK3ZvaWQNCj4gPj4+Pj4+Pj4+ICtydGVfZXRoX2ZwX29wc19zZXR1cChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPj4+Pj4+Pj4+ICt7DQo+ID4+Pj4+Pj4+PiArICAg IGlmIChkZXYgPT0gTlVMTCkNCj4gPj4+Pj4+Pj4+ICsgICAgICAgIHJldHVybjsNCj4gPj4+Pj4+ Pj4+ICsgICAgZXRoX2Rldl9mcF9vcHNfc2V0dXAocnRlX2V0aF9mcF9vcHMgKyBkZXYtPmRhdGEt PnBvcnRfaWQsIGRldik7DQo+ID4+Pj4+Pj4+PiArfQ0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ Pj4gICBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKg0KPiA+Pj4+Pj4+Pj4gICBydGVfZXRoX2Rt YV96b25lX3Jlc2VydmUoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIGNvbnN0IGNoYXIN Cj4gPj4+Pj4+Pj4+ICpyaW5nX25hbWUsDQo+ID4+Pj4+Pj4+PiAgICAgICAgICAgICAgICB1aW50 MTZfdCBxdWV1ZV9pZCwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbiwNCj4gPj4+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaCBiL2xpYi9ldGhkZXYv ZXRoZGV2X2RyaXZlci5oDQo+ID4+Pj4+Pj4+PiBpbmRleCAyYzlkNjE1ZmI1Li4wZDk2NGQxZjY3 IDEwMDY0NA0KPiA+Pj4+Pj4+Pj4gLS0tIGEvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgNCj4g Pj4+Pj4+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQo+ID4+Pj4+Pj4+PiBA QCAtMTYyMSw2ICsxNjIxLDE2IEBAIGludA0KPiA+Pj4+Pj4+Pj4gICBydGVfZXRoX2RtYV96b25l X2ZyZWUoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCBjb25zdA0KPiA+Pj4+Pj4+ Pj4gY2hhciAqbmFtZSwNCj4gPj4+Pj4+Pj4+ICAgICAgICAgICAgdWludDE2X3QgcXVldWVfaWQp Ow0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ICsvKioNCj4gPj4+Pj4+Pj4+ICsgKiBAaW50ZXJu YWwNCj4gPj4+Pj4+Pj4+ICsgKiBTZXR1cCBldGggZmFzdC1wYXRoIEFQSSB0byBldGhkZXYgdmFs dWVzLg0KPiA+Pj4+Pj4+Pj4gKyAqDQo+ID4+Pj4+Pj4+PiArICogQHBhcmFtIGRldg0KPiA+Pj4+ Pj4+Pj4gKyAqICBQb2ludGVyIHRvIHN0cnVjdCBydGVfZXRoX2Rldi4NCj4gPj4+Pj4+Pj4+ICsg Ki8NCj4gPj4+Pj4+Pj4+ICtfX3J0ZV9pbnRlcm5hbA0KPiA+Pj4+Pj4+Pj4gK3ZvaWQgcnRlX2V0 aF9mcF9vcHNfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPiA+Pj4+Pj4+Pj4gKw0K PiA+Pj4+Pj4+Pj4gICAvKioNCj4gPj4+Pj4+Pj4+ICAgICogQGludGVybmFsDQo+ID4+Pj4+Pj4+ PiAgICAqIEF0b21pY2FsbHkgc2V0IHRoZSBsaW5rIHN0YXR1cyBmb3IgdGhlIHNwZWNpZmljIGRl dmljZS4NCj4gPj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaCBi L2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4+Pj4+Pj4+PiBpbmRleCAwNDk2NDFkNTdjLi40 NGVlNzIyOWMxIDEwMDY0NA0KPiA+Pj4+Pj4+Pj4gLS0tIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2 LmgNCj4gPj4+Pj4+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4+Pj4+Pj4+ PiBAQCAtMzk0NCwyNSArMzk0NCwyOCBAQCBlbnVtIHJ0ZV9ldGhfZXZlbnRfdHlwZSB7DQo+ID4+ Pj4+Pj4+PiAgICAgICAgKi8NCj4gPj4+Pj4+Pj4+ICAgICAgIFJURV9FVEhfRVZFTlRfUlhfQVZB SUxfVEhSRVNILA0KPiA+Pj4+Pj4+Pj4gICAgICAgLyoqIFBvcnQgcmVjb3ZlcmluZyBmcm9tIGEg aGFyZHdhcmUgb3IgZmlybXdhcmUgZXJyb3IuDQo+ID4+Pj4+Pj4+PiAtICAgICAqIElmIFBNRCBz dXBwb3J0cyBwcm9hY3RpdmUgZXJyb3IgcmVjb3ZlcnksDQo+ID4+Pj4+Pj4+PiAtICAgICAqIGl0 IHNob3VsZCB0cmlnZ2VyIHRoaXMgZXZlbnQgdG8gbm90aWZ5IGFwcGxpY2F0aW9uDQo+ID4+Pj4+ Pj4+PiAtICAgICAqIHRoYXQgaXQgZGV0ZWN0ZWQgYW4gZXJyb3IgYW5kIHRoZSByZWNvdmVyeSBp cyBiZWluZyBzdGFydGVkLg0KPiA+Pj4+Pj4+Pj4gLSAgICAgKiBVcG9uIHJlY2VpdmluZyB0aGUg ZXZlbnQsIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgbm90IGludm9rZQ0KPiA+Pj4+Pj4+Pj4gYW55 IGNvbnRyb2wgcGF0aCBBUEkNCj4gPj4+Pj4+Pj4+IC0gICAgICogKHN1Y2ggYXMgcnRlX2V0aF9k ZXZfY29uZmlndXJlL3J0ZV9ldGhfZGV2X3N0b3AuLi4pIHVudGlsDQo+ID4+Pj4+Pj4+PiByZWNl aXZpbmcNCj4gPj4+Pj4+Pj4+IC0gICAgICogUlRFX0VUSF9FVkVOVF9SRUNPVkVSWV9TVUNDRVNT IG9yDQo+ID4+Pj4+Pj4+PiBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX0ZBSUxFRCBldmVudC4NCj4g Pj4+Pj4+Pj4+IC0gICAgICogVGhlIFBNRCB3aWxsIHNldCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJz IHRvIGR1bW15IGZ1bmN0aW9ucywNCj4gPj4+Pj4+Pj4+IC0gICAgICogYW5kIHJlLXNldCB0aGUg ZGF0YSBwYXRoIHBvaW50ZXJzIHRvIG5vbi1kdW1teSBmdW5jdGlvbnMNCj4gPj4+Pj4+Pj4+IC0g ICAgICogYmVmb3JlIHJlcG9ydGluZyBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1MgZXZl bnQuDQo+ID4+Pj4+Pj4+PiAtICAgICAqIEl0IG1lYW5zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNh bm5vdCBzZW5kIG9yIHJlY2VpdmUgYW55DQo+ID4+Pj4+Pj4+PiBwYWNrZXRzDQo+ID4+Pj4+Pj4+ PiAtICAgICAqIGR1cmluZyB0aGlzIHBlcmlvZC4NCj4gPj4+Pj4+Pj4+ICsgICAgICoNCj4gPj4+ Pj4+Pj4+ICsgICAgICogSWYgUE1EIHN1cHBvcnRzIHByb2FjdGl2ZSBlcnJvciByZWNvdmVyeSwg aXQgc2hvdWxkIHRyaWdnZXINCj4gPj4+Pj4+Pj4+IHRoaXMNCj4gPj4+Pj4+Pj4+ICsgICAgICog ZXZlbnQgdG8gbm90aWZ5IGFwcGxpY2F0aW9uIHRoYXQgaXQgZGV0ZWN0ZWQgYW4gZXJyb3IgYW5k IHRoZQ0KPiA+Pj4+Pj4+Pj4gKyAgICAgKiByZWNvdmVyeSBpcyBhYm91dCB0byBzdGFydC4NCj4g Pj4+Pj4+Pj4+ICsgICAgICoNCj4gPj4+Pj4+Pj4+ICsgICAgICogVXBvbiByZWNlaXZpbmcgdGhl IGV2ZW50LCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIG5vdCBpbnZva2UgYW55DQo+ID4+Pj4+Pj4+ PiArICAgICAqIGNvbnRyb2wgYW5kIGRhdGEgcGF0aCBBUEkgdW50aWwgcmVjZWl2aW5nDQo+ID4+ Pj4+Pj4+PiArICAgICAqIFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUyBvciBSVEVfRVRI X0VWRU5UX1JFQ09WRVJZX0ZBSUxFRA0KPiA+Pj4+Pj4+Pj4gKyAgICAgKiBldmVudC4NCj4gPj4+ Pj4+Pj4+ICsgICAgICoNCj4gPj4+Pj4+Pj4+ICsgICAgICogT25jZSB0aGlzIGV2ZW50IGlzIHJl cG9ydGVkLCB0aGUgUE1EIHdpbGwgc2V0IHRoZSBkYXRhIHBhdGgNCj4gPj4+Pj4+Pj4+IHBvaW50 ZXJzDQo+ID4+Pj4+Pj4+PiArICAgICAqIHRvIGR1bW15IGZ1bmN0aW9ucywgYW5kIHJlLXNldCB0 aGUgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIHZhbGlkDQo+ID4+Pj4+Pj4+PiArICAgICAqIGZ1bmN0 aW9ucyBiZWZvcmUgcmVwb3J0aW5nIFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUw0KPiA+ Pj4+Pj4+Pj4gZXZlbnQuDQo+ID4+Pj4+Pj4+PiArICAgICAqDQo+ID4+Pj4+Pj4+PiAgICAgICAg KiBAbm90ZSBCZWZvcmUgdGhlIFBNRCByZXBvcnRzIHRoZSByZWNvdmVyeSByZXN1bHQsDQo+ID4+ Pj4+Pj4+PiAgICAgICAgKiB0aGUgUE1EIG1heSByZXBvcnQgdGhlIFJURV9FVEhfRVZFTlRfRVJS X1JFQ09WRVJJTkcgZXZlbnQNCj4gPj4+Pj4+Pj4+IGFnYWluLA0KPiA+Pj4+Pj4+Pj4gICAgICAg ICogYmVjYXVzZSBhIGxhcmdlciBlcnJvciBtYXkgb2NjdXIgZHVyaW5nIHRoZSByZWNvdmVyeS4N Cj4gPj4+Pj4+Pj4+ICAgICAgICAqLw0KPiA+Pj4+Pj4+Pj4gICAgICAgUlRFX0VUSF9FVkVOVF9F UlJfUkVDT1ZFUklORywNCj4gPj4+Pj4+Pj4+ICAgICAgIC8qKiBQb3J0IHJlY292ZXJzIHN1Y2Nl c3NmdWxseSBmcm9tIHRoZSBlcnJvci4NCj4gPj4+Pj4+Pj4+IC0gICAgICogVGhlIFBNRCBhbHJl YWR5IHJlLWNvbmZpZ3VyZWQgdGhlIHBvcnQsDQo+ID4+Pj4+Pj4+PiAtICAgICAqIGFuZCB0aGUg ZWZmZWN0IGlzIHRoZSBzYW1lIGFzIGEgcmVzdGFydCBvcGVyYXRpb24uDQo+ID4+Pj4+Pj4+PiAr ICAgICAqDQo+ID4+Pj4+Pj4+PiArICAgICAqIFRoZSBQTUQgYWxyZWFkeSByZS1jb25maWd1cmVk IHRoZSBwb3J0Og0KPiA+Pj4+Pj4+Pj4gICAgICAgICogYSkgVGhlIGZvbGxvd2luZyBvcGVyYXRp b24gd2lsbCBiZSByZXRhaW5lZDogKGFscGhhYmV0aWNhbGx5KQ0KPiA+Pj4+Pj4+Pj4gICAgICAg ICogICAgLSBEQ0IgY29uZmlndXJhdGlvbg0KPiA+Pj4+Pj4+Pj4gICAgICAgICogICAgLSBGRUMg Y29uZmlndXJhdGlvbg0KPiA+Pj4+Pj4+Pj4gQEAgLTM5ODksNiArMzk5Miw5IEBAIGVudW0gcnRl X2V0aF9ldmVudF90eXBlIHsNCj4gPj4+Pj4+Pj4+ICAgICAgICAqICAgICAgKEBzZWUgUlRFX0VU SF9ERVZfQ0FQQV9GTE9XX1NIQVJFRF9PQkpFQ1RfS0VFUCkNCj4gPj4+Pj4+Pj4+ICAgICAgICAq IGMpIEFueSBvdGhlciBjb25maWd1cmF0aW9uIHdpbGwgbm90IGJlIHN0b3JlZA0KPiA+Pj4+Pj4+ Pj4gICAgICAgICogICAgYW5kIHdpbGwgbmVlZCB0byBiZSByZS1jb25maWd1cmVkLg0KPiA+Pj4+ Pj4+Pj4gKyAgICAgKg0KPiA+Pj4+Pj4+Pj4gKyAgICAgKiBUaGUgYXBwbGljYXRpb24gc2hvdWxk IHJlc3RvcmUgc29tZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24NCj4gPj4+Pj4+Pj4+ICsgICAg ICogKHNlZSBhYm92ZSBjYXNlIGIvYyksIGFuZCB0aGVuIGVuYWJsZSBkYXRhIHBhdGggQVBJIGlu dm9jYXRpb24uDQo+ID4+Pj4+Pj4+PiAgICAgICAgKi8NCj4gPj4+Pj4+Pj4+ICAgICAgIFJURV9F VEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUywNCj4gPj4+Pj4+Pj4+ICAgICAgIC8qKiBQb3J0IHJl Y292ZXJ5IGZhaWxlZC4NCj4gPj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3ZlcnNp b24ubWFwIGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+Pj4+Pj4+Pj4gaW5kZXggMzU3ZDFh ODhjMC4uYzI3M2UwYmRhZSAxMDA2NDQNCj4gPj4+Pj4+Pj4+IC0tLSBhL2xpYi9ldGhkZXYvdmVy c2lvbi5tYXANCj4gPj4+Pj4+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gPj4+ Pj4+Pj4+IEBAIC0zMjAsNiArMzIwLDcgQEAgSU5URVJOQUwgew0KPiA+Pj4+Pj4+Pj4gICAgICAg cnRlX2V0aF9kZXZpY2VzOw0KPiA+Pj4+Pj4+Pj4gICAgICAgcnRlX2V0aF9kbWFfem9uZV9mcmVl Ow0KPiA+Pj4+Pj4+Pj4gICAgICAgcnRlX2V0aF9kbWFfem9uZV9yZXNlcnZlOw0KPiA+Pj4+Pj4+ Pj4gKyAgICBydGVfZXRoX2ZwX29wc19zZXR1cDsNCj4gPj4+Pj4+Pj4+ICAgICAgIHJ0ZV9ldGhf aGFpcnBpbl9xdWV1ZV9wZWVyX2JpbmQ7DQo+ID4+Pj4+Pj4+PiAgICAgICBydGVfZXRoX2hhaXJw aW5fcXVldWVfcGVlcl91bmJpbmQ7DQo+ID4+Pj4+Pj4+PiAgICAgICBydGVfZXRoX2hhaXJwaW5f cXVldWVfcGVlcl91cGRhdGU7DQo+ID4+Pj4+Pj4+PiAtLQ0KPiA+Pj4+Pj4+PiAgIEFja2VkLWJ5 OiBLb25zdGFudGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tPg0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gMi4xNy4xDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+DQo+ID4+Pj4NCj4gPj4+DQo=