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 4D50B41E05; Tue, 7 Mar 2023 13:40:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E267140E03; Tue, 7 Mar 2023 13:40:02 +0100 (CET) Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by mails.dpdk.org (Postfix) with ESMTP id EAFB64067E for ; Tue, 7 Mar 2023 13:40:00 +0100 (CET) Received: from dggpeml100023.china.huawei.com (unknown [172.30.72.53]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4PWFM96jR3z16Nv7; Tue, 7 Mar 2023 20:37:09 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by dggpeml100023.china.huawei.com (7.185.36.151) 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 20:39:55 +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 13:39:53 +0100 From: Konstantin Ananyev To: Fengchengwen , Ferruh Yigit , Ajit Khaparde 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///3qAIAAAVaAgAASk4CAAVMHgIAAPg8AgAAFeICAABHaoA== Date: Tue, 7 Mar 2023 12:39:53 +0000 Message-ID: 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> <5b110017-8679-4603-5c25-742ed83e4bda@amd.com> <16463f17-6f71-308b-c27b-9134346002c9@huawei.com> In-Reply-To: <16463f17-6f71-308b-c27b-9134346002c9@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 DQoNCj4gPj4+Pj4+Pj4+Pj4gSW4gdGhlIHByb2FjdGl2ZSBlcnJvciBoYW5kbGluZyBtb2RlLCB0 aGUgUE1EIHdpbGwgc2V0IHRoZSBkYXRhIHBhdGgNCj4gPj4+Pj4+Pj4+Pj4gcG9pbnRlcnMgdG8g ZHVtbXkgZnVuY3Rpb25zIGFuZCB0aGVuIHRyeSByZWNvdmVyeSwgaW4gdGhpcyBwZXJpb2QgdGhl DQo+ID4+Pj4+Pj4+Pj4+IGFwcGxpY2F0aW9uIG1heSBzdGlsbCBpbnZva2luZyBkYXRhIHBhdGgg QVBJLiBUaGlzIHdpbGwgaW50cm9kdWNlIGENCj4gPj4+Pj4+Pj4+Pj4gcmFjZS1jb25kaXRpb24g d2l0aCBkYXRhIHBhdGggd2hpY2ggbWF5IGxlYWQgdG8gY3Jhc2ggWzFdLg0KPiA+Pj4+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+Pj4+PiBBbHRob3VnaCB0aGUgUE1EIGFkZGVkIGRlbGF5IGFmdGVyIHNldHRp bmcgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIGNvdmVyDQo+ID4+Pj4+Pj4+Pj4+IHRoZSBhYm92ZSBy YWNlLWNvbmRpdGlvbiwgaXQgcmVkdWNlcyB0aGUgcHJvYmFiaWxpdHksIGJ1dCBpdCBkb2Vzbid0 DQo+ID4+Pj4+Pj4+Pj4+IHNvbHZlIHRoZSBwcm9ibGVtLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+ Pj4+Pj4+PiBUbyBzb2x2ZSB0aGUgcmFjZS1jb25kaXRpb24gcHJvYmxlbSBmdW5kYW1lbnRhbGx5 LCB0aGUgZm9sbG93aW5nDQo+ID4+Pj4+Pj4+Pj4+IHJlcXVpcmVtZW50cyBhcmUgYWRkZWQ6DQo+ ID4+Pj4+Pj4+Pj4+IDEuIFRoZSBQTUQgc2hvdWxkIHNldCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJz IHRvIGR1bW15IGZ1bmN0aW9ucyBhZnRlcg0KPiA+Pj4+Pj4+Pj4+PiAgICAgcmVwb3J0IFJURV9F VEhfRVZFTlRfRVJSX1JFQ09WRVJJTkcgZXZlbnQuDQo+ID4+Pj4+Pj4+Pj4+IDIuIFRoZSBhcHBs aWNhdGlvbiBzaG91bGQgc3RvcCBkYXRhIHBhdGggQVBJIGludm9jYXRpb24gd2hlbiBwcm9jZXNz DQo+ID4+Pj4+Pj4+Pj4+ICAgICB0aGUgUlRFX0VUSF9FVkVOVF9FUlJfUkVDT1ZFUklORyBldmVu dC4NCj4gPj4+Pj4+Pj4+Pj4gMy4gVGhlIFBNRCBzaG91bGQgc2V0IHRoZSBkYXRhIHBhdGggcG9p bnRlcnMgdG8gdmFsaWQgZnVuY3Rpb25zIGJlZm9yZQ0KPiA+Pj4+Pj4+Pj4+PiAgICAgcmVwb3J0 IFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUyBldmVudC4NCj4gPj4+Pj4+Pj4+Pj4gNC4g VGhlIGFwcGxpY2F0aW9uIHNob3VsZCBlbmFibGUgZGF0YSBwYXRoIEFQSSBpbnZvY2F0aW9uIHdo ZW4gcHJvY2Vzcw0KPiA+Pj4+Pj4+Pj4+PiAgICAgdGhlIFJURV9FVEhfRVZFTlRfUkVDT1ZFUllf U1VDQ0VTUyBldmVudC4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBI b3cgdGhpcyBpcyBzb2x2aW5nIHRoZSByYWNlLWNvbmRpdGlvbiwgYnkgcHVzaGluZyByZXNwb25z aWJpbGl0eSB0bw0KPiA+Pj4+Pj4+Pj4gc3RvcCBkYXRhIHBhdGggdG8gYXBwbGljYXRpb24/DQo+ ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEV4YWN0bHksIGl0IGJlY29tZXMgYXBwbGljYXRpb24gcmVz cG9uc2liaWxpdHkgdG8gbWFrZSBzdXJlIGRhdGEtcGF0aCBpcw0KPiA+Pj4+Pj4+PiBzdG9wcGVk L3N1c3BlbmRlZCBiZWZvcmUgcmVjb3Zlcnkgd2lsbCBjb250aW51ZS4NCj4gPj4+Pj4+Pj4NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IEZyb20gZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmVhdHVyZToNCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IGBgDQo+ID4+Pj4+Pj4gQmVjYXVzZSB0aGUgUE1EIHJlY292ZXJz IGF1dG9tYXRpY2FsbHksDQo+ID4+Pj4+Pj4gdGhlIGFwcGxpY2F0aW9uIGNhbiBvbmx5IHNlbnNl IHRoYXQgdGhlIGRhdGEgZmxvdyBpcyBkaXNjb25uZWN0ZWQgZm9yIGENCj4gPj4+Pj4+PiB3aGls ZSBhbmQgdGhlIGNvbnRyb2wgQVBJIHJldHVybnMgYW4gZXJyb3IgaW4gdGhpcyBwZXJpb2QuDQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBJbiBvcmRlciB0byBzZW5zZSB0aGUgZXJyb3IgaGFwcGVuaW5n L3JlY292ZXJpbmcsIGFzIHdlbGwgYXMgdG8gcmVzdG9yZQ0KPiA+Pj4+Pj4+IHNvbWUgYWRkaXRp b25hbCBjb25maWd1cmF0aW9uLCB0aHJlZSBldmVudHMgYXJlIGF2YWlsYWJsZToNCj4gPj4+Pj4+ PiBgYA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSXQgbG9va3MgbGlrZSBpbml0aWFsIGRlc2lnbiBp cyB0byB1c2UgZXZlbnRzIG1haW5seSBpbmZvcm0gYXBwbGljYXRpb24NCj4gPj4+Pj4+PiBhYm91 dCB3aGF0IGhhcHBlbmVkIGFuZCBtYWlubHkgZm9yIHJlLWNvbmZpZ3VyYXRpb24uDQo+ID4+Pj4+ Pj4NCj4gPj4+Pj4+PiBBbHRob3VnaCBJIGFtIGRvbid0IGRpc2FncmVlIHRvIGludm9sdmUgdGhl IGFwcGxpY2F0aW9uLCBJIGFtIG5vdCBzdXJlDQo+ID4+Pj4+Pj4gdGhhdCBpcyBwYXJ0IG9mIGN1 cnJlbnQgZGVzaWduLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgdGhvdWdodCB3ZSBhbGwgYWdyZWVk IHRoYXQgaW5pdGlhbCBkZXNpZ24gY29udGFpbiBzb21lIGZhbGxhY2llcyB0aGF0DQo+ID4+Pj4+ PiBuZWVkIHRvIGZpeGVkLCBubz8NCj4gPj4+Pj4+IFN0YXRlbWVudCB0aGF0IHdpdGggY3VycmVu dCBydGVfZXRoZGV2IGRlc2lnbiBlcnJvciByZWNvdmVyeSBjYW4gYmUgZG9uZQ0KPiA+Pj4+Pj4g d2l0aG91dCBpbnRlcmFjdGlvbiB3aXRoIHRoZSBhcHAgKHRvIHN0b3Avc3VzcGVuZCBkYXRhL2Nv bnRyb2wgcGF0aCkNCj4gPj4+Pj4+IGlzIHRoZSBtYWluIG9uZSBJIHRoaW5rLg0KPiA+Pj4+Pj4g SXQgbmVlZHMgc29tZSBpbnRlcmFjdGlvbiB3aXRoIGFwcCBsYXllciwgb25lIHdheSBvciBhbm90 aGVyLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBXaGF0IGlmIGFwcGxpY2F0 aW9uIGlzIG5vdCBpbnRlcmVzdGVkIGluIHJlY292ZXJ5IG1vZGVzIGF0IGFsbCBhbmQgbm90DQo+ ID4+Pj4+Pj4+PiByZWdpc3RlcmVkIGFueSBjYWxsYmFjayBmb3IgdGhlIHJlY292ZXJ5Pw0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBBcmUgeW91IHNheWluZyB0aGVyZSBpcyBu byB3YXkgZm9yIGFwcGxpY2F0aW9uIHRvIGRpc2FibGUNCj4gPj4+Pj4+Pj4gYXV0b21hdGljIHJl Y292ZXJ5IGluIFBNRCBpZiBpdCBpcyBub3QgaW50ZXJlc3RlZA0KPiA+Pj4+Pj4+PiAob3IgY2Fu J3QgZnVsbC1maWxsIHBlci1yZXF1ZXN0aWVzIGZvciBpdCk/DQo+ID4+Pj4+Pj4+IElmIHNvLCB0 aGVuIHllcyBpdCBpcyBhIHByb2JsZW0gYW5kIHdlIG5lZWQgdG8gZml4IGl0Lg0KPiA+Pj4+Pj4+ PiBJIGFzc3VtZWQgdGhhdCBzdWNoIG1lY2hhbmlzbSB0byBkaXNhYmxlIHVud2FudGVkIGV2ZW50 cyBhbHJlYWR5IGV4aXN0cywNCj4gPj4+Pj4+Pj4gYnV0IEkgY2FuJ3QgZmluZCBhbnl0aGluZy4N Cj4gPj4+Pj4+Pj4gV29uZGVyIHdoYXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IGhlcmUgLSBj YW4gUE1EIG1ha2UgYSBkZWNpc2lvbg0KPiA+Pj4+Pj4+PiBiYXNlZCBvbiBjYWxsYmFjayByZXR1 cm4gdmFsdWUsIG9yIGRvIHdlIG5lZWQgYSBuZXcgQVBJIHRvDQo+ID4+Pj4+Pj4+IGVuYWJsZS9k aXNhYmxlIGNhbGxiYWNrcywgb3IgLi4uPw0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gQXMgZmFyIGFzIEkgY2FuIHNlZSBhdXRvbWF0aWMgcmVjb3ZlcnkgaXMg bm90IGNvbmZpZ3VyYWJsZSBieSBhcHAuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBCdXQgdGhhdCBp cyBub3QgYWxsLCBQTUQgc2VuZHMgZXZlbnRzIHRvIGFwcGxpY2F0aW9uIGJ1dCBQTUQgY2FuJ3Qg a25vdw0KPiA+Pj4+Pj4+IGlmIGFwcGxpY2F0aW9uIGlzIGhhbmRsaW5nIHRoZW0gb3Igbm90LCBz byB3aXRoIGN1cnJlbnQgZGVzaWduIFBNRCBjYW4ndA0KPiA+Pj4+Pj4+IHJlbHkgb24gdG8gYXBw Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFdlbGwsIFBNRCBpbnZva2VzIHVzZXIgcHJvdmlkZWQgY2Fs bGJhY2suDQo+ID4+Pj4+PiBPbmUgd2F5IHRvIGZpeCB0aGF0IHByb2JsZW0gLSBpZiB0aGVyZSBp cyBubyBjYWxsYmFjayBwcm92aWRlZCwNCj4gPj4+Pj4+IG9yIGNhbGxiYWNrIHJldHVybnMgYW4g ZXJyb3IgY29kZSAtIFBNRCBjYW4gYXNzdW1lIHRoYXQgcmVjb3ZlcnkNCj4gPj4+Pj4+IHNob3Vs ZCBub3QgYmUgZG9uZS4NCj4gPj4+Pj4+IFRoYXQgaXMgcHJvYmFibHkgbm90IHRoZSBiZXN0IGRl c2lnbiBjaG9pY2UsIGJ1dCBhdCBsZWFzdCBpdCB3aWxsIGFsbG93DQo+ID4+Pj4+PiB0byBmaXgg dGhlIHByb2JsZW0gd2l0aG91dCB0b28gbWFueSBjaGFuZ2VzIGFuZCBpbnRyb2R1Y2luZyBuZXcg QVBJLg0KPiA+Pj4+Pj4gVGhhdCBjb3VsZCBiZSBzb3J0IG9mIGEgJ3F1aWNrIGZpeCcuDQo+ID4+ Pj4+PiBJbiBhIG1lYW53aGlsZSB3ZSBjYW4gdGhpbmsgYWJvdXQgbmV3L2JldHRlciBhcHByb2Fj aCBmb3IgdGhhdC4NCj4gPj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IC1yYzIgZm9yIDIzLjAzIGlz IGEgZmV3IGRheXMgYXdheS4NCj4gPj4+Pj4NCj4gPj4+Pj4gV2hhdCBkbyB5b3UgdGhpbmsgdG8g aGF2ZSAncXVpY2sgZml4JyBhcyBtb2RpZnlpbmcgaG93IGRyaXZlciB1cGRhdGVzDQo+ID4+Pj4+ IGJ1cnN0IG9wcyB0byBwcmV2ZW50IHRoZSByYWNlIGNvbmRpdGlvbiwgZm9yIHRoaXMgcmVsZWFz ZT8NCj4gPj4NCj4gPj4gVGhlICdxdWljayBmaXgnLCBkbyB5b3UgbWVhbiBvbmx5IHVwZGF0ZSBm dW5jdGlvbiBwb2ludGVyICh3aXRob3V0IHJ4cSBzZXR0aW5nKSA/DQo+ID4+IEN1cnJlbnRseSB0 aGUgUE1EcyB3aGljaCBhbm5vdW5jZWQgc3VwcG9ydCAicHJvYWN0aXZlIGVycm9yIGhhbmRsaW5n IG1vZGUiIGFscmVhZHkNCj4gPj4gZG8gdGhpcy4NCj4gPj4NCj4gPg0KPiA+IFllcy4NCj4gPiBJ IGNoZWNrZWQgaG5zMywgaXQgZG9lcyBhcyB5b3Ugc2FpZCwgaG5zM19ldGhfZGV2X2ZwX29wc19j b25maWcoKScNCj4gPiB1cGRhdGVzIGFsbCBmaWVsZHMgaW4gJ3J0ZV9ldGhfZnBfb3BzJyBidXQg b25seSBmdW5jdGlvbiBwb2ludGVyIHNlZW1zDQo+ID4gY2hhbmdlZCBpbiB0aGUgZHJpdmVyLCBy ZXN1bHRpbmcgb25seSBmdW5jdGlvbiBwb2ludGVycyB0byBiZSB1cGRhdGVkLg0KPiA+DQo+ID4g VGhlIGRpc2N1c3Npb24gYWJvdXQgcmFjZSBjb25kaXRpb24gc3RhcnRlZCB3aXRoIHBhdGNoIFsx XSwgd2hpY2gNCj4gPiBtZW50aW9ucyBhIGNyYXNoIGJlY2F1c2Ugb2YgYSByYWNlIGNvbmRpdGlv bi4gTGF0ZXIgaW4gZGlzY3Vzc2lvbnMsDQo+ID4gcmVjb3ZlcnkgZXZlbnQgZ2l2ZW4gYXMgYSBz YW1wbGUgZm9yIHdoZXJlIHRoZSByYWNlIGNhbiBvY2N1ciwgdGhhdCBpcw0KPiA+IHdoeSB3ZSBh cmUgaGVyZS4NCj4gPg0KPiA+IEJ1dCBhZnRlciBhYm92ZSBpbmZvLCBhbHRob3VnaCB0aGVyZSBp cyByYWNlIGNvbmRpdGlvbiBhbmQgYSBiaWdnZXINCj4gPiB1cGRhdGUgKHRoYXQgbmVlZHMgYXBw bGljYXRpb24gaW52b2x2ZW1lbnQpIGlzIHJlcXVpcmVkIGZvciByZWNvdmVyeQ0KPiA+IG1lY2hh bmlzbSwgdGhlcmUgaXMgbm8gY3Jhc2ggYW5kIE5PICdxdWljayBmaXgnIGlzIHJlcXVpcmVkIGZv ciByZWNvdmVyeS4NCj4gPg0KPiA+IEBLb25zdGFudGluLCBAQ2hlbmd3ZW4sIGNhbiB5b3UgcGxl YXNlIGNvbmZpcm0gYWJvdmUgdW5kZXJzdGFuZGluZyBpcw0KPiA+IGNvcnJlY3Q/DQo+IA0KPiBZ ZXMsIHRoYXQncyB3aGF0Lg0KDQpZZXMsIEkgdGhpbmsgd2l0aCBDaGVuZ3dlbiBwYXRjaCB0aGUg cmFjZSBjb25kaXRpb24gcHJvYmxlbSBzaG91bGQgYmUgZml4ZWQuDQpUaG91Z2ggZm9yIHRoYXQg dXNlciBoYXMgdG8gcHJvdmlkZSBhIHByb3Blcmx5IGltcGxlbWVudGVkIGNhbGxiYWNrLg0KV2hh dCBpcyBub3QgY3VycmVudGx5IGFkZHJlc3NlZCAtIHVzZXIgY2FuIG5vdCBkaXNhYmxlIHRoaXMg YXV0by1yZWNvdmVyeSBwcm9jZWR1cmUgb24gaGlzIHdpbGwuIA0KU28gaWYgdXNlciB3aWxsIG5v dCBwcm92aWRlIGEgcHJvcGVyIGNhbGwtYmFjayB0aGUgcmVjb3ZlcnkgY2FuIHN0aWxsIHByb2Nl ZWQgYW5kIHJhY2UgY2FuIGhhcHBlbi4gDQoNCj4gDQo+ID4NCj4gPg0KPiA+DQo+ID4gWzFdDQo+ ID4gaHR0cHM6Ly9wYXRjaGVzLmRwZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDIzMDIyMDA2 MDgzOS4xMjY3MzQ5LTItYXNob2suay5rYWxhZGlAaW50ZWwuY29tLw0KPiA+DQo+ID4+Pj4+DQo+ ID4+Pj4+IEFuZCBwbGFuIGEgZGVzaWduIHVwZGF0ZSBmb3IgdGhlIG5leHQgcmVsZWFzZT8NCj4g Pj4+PiArMSBvbiB0aGUgb3ZlcmFsbCBhcHByb2FjaC4NCj4gPj4+DQo+ID4+PiBZZXAsIGFncmVl Lg0KPiA+Pg0KPiA+PiBIb3BlIGZvciBiZXR0ZXIgc29sdXRpb24uDQo+ID4+IEFuZCBhbHNvLCBJ IG5vdGljZSBvbmx5IHRoZSBvcGVudnN3aXRjaCAoZnJvbSBhbGwgb3Blbi1zb3VyY2Ugc29mdHdh cmUgd2hpY2ggYmFzZWQtb24gRFBESykNCj4gPj4gcmVnaXN0ZXJzIFJURV9FVEhfRVZFTlRfSU5U Ul9SRVNFVCBjYWxsYmFjayAuDQo+ID4+DQo+ID4+IFRoZXJlZm9yZSwgaG9wZSB3ZSBidWlsZCBh IHJlY292ZXJ5IGZyYW1ld29yayBhdCB0aGUgRFBESyBTREsgbGV2ZWwgYW5kIGJlIGNvbXBhdGli bGUNCj4gPj4gd2l0aCBSVEVfRVRIX0VWRU5UX0lOVFJfUkVTRVQgYW5kIFJURV9FVEhfRVZFTlRf RVJSX1JFQ09WRVJJTkcgbWVjaGFuaXNtLg0KPiA+Pg0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+Pg0K PiA+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBJIHRoaW5rIGRyaXZlciBzaG91bGQgbm90 IHJlbHkgb24gYXBwbGljYXRpb24gZm9yIHRoaXMsIHVubGVzcw0KPiA+Pj4+Pj4+Pj4gYXBwbGlj YXRpb24gZXhwbGljaXRseSBzYXlzICh0byBkcml2ZXIpIHRoYXQgaXQgaXMgaGFuZGxpbmcgcmVj b3ZlcnksDQo+ID4+Pj4+Pj4+PiByaWdodCBub3cgdGhlcmUgaXMgbm8gd2F5IGZvciBkcml2ZXIg dG8ga25vdyB0aGlzLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBJIHRoaW5rIGl0IGlzIHZpc2Et dmVyc2E6DQo+ID4+Pj4+Pj4+IGFwcGxpY2F0aW9uIHNob3VsZCBub3QgZW5hYmxlIGF1dG8tcmVj b3ZlcnkgaWYgaXQgY2FuJ3QgbWVldA0KPiA+Pj4+Pj4+PiBwZXItcmVxdWVzdHN0aWVzIGZvciBp dCAocHJvdmlkZSBhcHByb3ByaWF0ZSBjYWxsYmFjaykuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiBJIGFncmVlIG9uIGFib3ZlLCB3ZSBhcmUgc2F5aW5nIHNpbWlsYXIgdGhpbmcg aW4gZGlmZmVyZW50IHBlcnNwZWN0aXZlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE9rLCB0aGF0J3Mg Z29vZCB3ZSBhcmUgb24gdGhlIHNhbWUgcGFnZS4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBBbHNvLCB0aGlzIHBh dGNoIGludHJvZHVjZSBhIGRyaXZlciBpbnRlcm5hbCBmdW5jdGlvbg0KPiA+Pj4+Pj4+Pj4+PiBy dGVfZXRoX2ZwX29wc19zZXR1cCB3aGljaCB1c2VkIGFzIGFuIGhlbHAgZnVuY3Rpb24gZm9yIFBN RC4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gWzFdDQo+ID4+Pj4+Pj4+Pj4+IGh0dHA6 Ly9wYXRjaHdvcmsuZHBkay5vcmcvcHJvamVjdC9kcGRrL3BhdGNoLzIwMjMwMjIwMDYwODM5LjEy NjczNDktMi1hc2hvay5rLmthbGFkaUBpbnRlbC5jb20vDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+IEZpeGVzOiBlYjBkNDcxYTg5NDEgKCJldGhkZXY6IGFkZCBwcm9hY3RpdmUgZXJyb3Ig aGFuZGxpbmcgbW9kZSIpDQo+ID4+Pj4+Pj4+Pj4+IENjOiBzdGFibGVAZHBkay5vcmcNCj4gPj4+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hlbmd3ZW4gRmVuZyA8ZmVu Z2NoZW5nd2VuQGh1YXdlaS5jb20+DQo+ID4+Pj4+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+Pj4+PiAg IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9wb2xsX21vZGVfZHJ2LnJzdCB8IDIwICsrKysrKystLS0t LS0tLS0NCj4gPj4+Pj4+Pj4+Pj4gICBsaWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuYyAgICAgICAg ICAgICAgfCAgOCArKysrKysrDQo+ID4+Pj4+Pj4+Pj4+ICAgbGliL2V0aGRldi9ldGhkZXZfZHJp dmVyLmggICAgICAgICAgICAgIHwgMTAgKysrKysrKysNCj4gPj4+Pj4+Pj4+Pj4gICBsaWIvZXRo ZGV2L3J0ZV9ldGhkZXYuaCAgICAgICAgICAgICAgICAgfCAzMg0KPiA+Pj4+Pj4+Pj4+PiArKysr KysrKysrKysrKystLS0tLS0tLS0tDQo+ID4+Pj4+Pj4+Pj4+ICAgbGliL2V0aGRldi92ZXJzaW9u Lm1hcCAgICAgICAgICAgICAgICAgIHwgIDEgKw0KPiA+Pj4+Pj4+Pj4+PiAgIDUgZmlsZXMgY2hh bmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pDQo+ID4+Pj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG9sbF9tb2Rl X2Rydi5yc3QNCj4gPj4+Pj4+Pj4+Pj4gYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG9sbF9tb2Rl X2Rydi5yc3QNCj4gPj4+Pj4+Pj4+Pj4gaW5kZXggYzE0NWE5MDY2Yy4uZTM4MGZmMTM1YSAxMDA2 NDQNCj4gPj4+Pj4+Pj4+Pj4gLS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3BvbGxfbW9kZV9k cnYucnN0DQo+ID4+Pj4+Pj4+Pj4+ICsrKyBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9wb2xsX21v ZGVfZHJ2LnJzdA0KPiA+Pj4+Pj4+Pj4+PiBAQCAtNjM4LDE0ICs2MzgsOSBAQCBkaWZmZXJlbnQg ZnJvbSB0aGUgYXBwbGljYXRpb24gaW52b2tlcyByZWNvdmVyeQ0KPiA+Pj4+Pj4+Pj4+PiBpbiBQ QVNTSVZFIG1vZGUsDQo+ID4+Pj4+Pj4+Pj4+ICAgdGhlIFBNRCBhdXRvbWF0aWNhbGx5IHJlY292 ZXJzIGZyb20gZXJyb3IgaW4gUFJPQUNUSVZFIG1vZGUsDQo+ID4+Pj4+Pj4+Pj4+ICAgYW5kIG9u bHkgYSBzbWFsbCBhbW91bnQgb2Ygd29yayBpcyByZXF1aXJlZCBmb3IgdGhlIGFwcGxpY2F0aW9u Lg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiAtRHVyaW5nIGVycm9yIGRldGVjdGlvbiBh bmQgYXV0b21hdGljIHJlY292ZXJ5LA0KPiA+Pj4+Pj4+Pj4+PiAtdGhlIFBNRCBzZXRzIHRoZSBk YXRhIHBhdGggcG9pbnRlcnMgdG8gZHVtbXkgZnVuY3Rpb25zDQo+ID4+Pj4+Pj4+Pj4+IC0od2hp Y2ggd2lsbCBwcmV2ZW50IHRoZSBjcmFzaCksDQo+ID4+Pj4+Pj4+Pj4+IC1hbmQgYWxzbyBtYWtl IHN1cmUgdGhlIGNvbnRyb2wgcGF0aCBvcGVyYXRpb25zIGZhaWwgd2l0aCBhIHJldHVybg0KPiA+ Pj4+Pj4+Pj4+PiBjb2RlIGBgLUVCVVNZYGAuDQo+ID4+Pj4+Pj4+Pj4+IC0NCj4gPj4+Pj4+Pj4+ Pj4gLUJlY2F1c2UgdGhlIFBNRCByZWNvdmVycyBhdXRvbWF0aWNhbGx5LA0KPiA+Pj4+Pj4+Pj4+ PiAtdGhlIGFwcGxpY2F0aW9uIGNhbiBvbmx5IHNlbnNlIHRoYXQgdGhlIGRhdGEgZmxvdyBpcyBk aXNjb25uZWN0ZWQNCj4gPj4+Pj4+Pj4+Pj4gZm9yIGEgd2hpbGUNCj4gPj4+Pj4+Pj4+Pj4gLWFu ZCB0aGUgY29udHJvbCBBUEkgcmV0dXJucyBhbiBlcnJvciBpbiB0aGlzIHBlcmlvZC4NCj4gPj4+ Pj4+Pj4+Pj4gK0R1cmluZyBlcnJvciBkZXRlY3Rpb24gYW5kIGF1dG9tYXRpYyByZWNvdmVyeSwg dGhlIFBNRCBzZXRzIHRoZQ0KPiA+Pj4+Pj4+Pj4+PiBkYXRhIHBhdGgNCj4gPj4+Pj4+Pj4+Pj4g K3BvaW50ZXJzIHRvIGR1bW15IGZ1bmN0aW9ucyBhbmQgYWxzbyBtYWtlIHN1cmUgdGhlIGNvbnRy b2wgcGF0aA0KPiA+Pj4+Pj4+Pj4+PiBvcGVyYXRpb25zDQo+ID4+Pj4+Pj4+Pj4+ICtmYWlsZWQg d2l0aCBhIHJldHVybiBjb2RlIGBgLUVCVVNZYGAuDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ Pj4+ICAgSW4gb3JkZXIgdG8gc2Vuc2UgdGhlIGVycm9yIGhhcHBlbmluZy9yZWNvdmVyaW5nLA0K PiA+Pj4+Pj4+Pj4+PiAgIGFzIHdlbGwgYXMgdG8gcmVzdG9yZSBzb21lIGFkZGl0aW9uYWwgY29u ZmlndXJhdGlvbiwNCj4gPj4+Pj4+Pj4+Pj4gQEAgLTY1Myw5ICs2NDgsOSBAQCB0aHJlZSBldmVu dHMgYXJlIGF2YWlsYWJsZToNCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gICBgYFJURV9F VEhfRVZFTlRfRVJSX1JFQ09WRVJJTkdgYA0KPiA+Pj4+Pj4+Pj4+PiAgICAgIE5vdGlmeSB0aGUg YXBwbGljYXRpb24gdGhhdCBhbiBlcnJvciBpcyBkZXRlY3RlZA0KPiA+Pj4+Pj4+Pj4+PiAtICAg YW5kIHRoZSByZWNvdmVyeSBpcyBiZWluZyBzdGFydGVkLg0KPiA+Pj4+Pj4+Pj4+PiArICAgYW5k IHRoZSByZWNvdmVyeSBpcyBhYm91dCB0byBzdGFydC4NCj4gPj4+Pj4+Pj4+Pj4gICAgICBVcG9u IHJlY2VpdmluZyB0aGUgZXZlbnQsIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgbm90IGludm9rZQ0K PiA+Pj4+Pj4+Pj4+PiAtICAgYW55IGNvbnRyb2wgcGF0aCBmdW5jdGlvbiB1bnRpbCByZWNlaXZp bmcNCj4gPj4+Pj4+Pj4+Pj4gKyAgIGFueSBjb250cm9sIGFuZCBkYXRhIHBhdGggQVBJIHVudGls IHJlY2VpdmluZw0KPiA+Pj4+Pj4+Pj4+PiAgICAgIGBgUlRFX0VUSF9FVkVOVF9SRUNPVkVSWV9T VUNDRVNTYGAgb3INCj4gPj4+Pj4+Pj4+Pj4gYGBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX0ZBSUxF RGBgIGV2ZW50Lg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiAgIC4uIG5vdGU6Og0KPiA+ Pj4+Pj4+Pj4+PiBAQCAtNjY2LDggKzY2MSw5IEBAIHRocmVlIGV2ZW50cyBhcmUgYXZhaWxhYmxl Og0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiAgIGBgUlRFX0VUSF9FVkVOVF9SRUNPVkVS WV9TVUNDRVNTYGANCj4gPj4+Pj4+Pj4+Pj4gICAgICBOb3RpZnkgdGhlIGFwcGxpY2F0aW9uIHRo YXQgdGhlIHJlY292ZXJ5IGZyb20gZXJyb3IgaXMgc3VjY2Vzc2Z1bCwNCj4gPj4+Pj4+Pj4+Pj4g LSAgIHRoZSBQTUQgYWxyZWFkeSByZS1jb25maWd1cmVzIHRoZSBwb3J0LA0KPiA+Pj4+Pj4+Pj4+ PiAtICAgYW5kIHRoZSBlZmZlY3QgaXMgdGhlIHNhbWUgYXMgYSByZXN0YXJ0IG9wZXJhdGlvbi4N Cj4gPj4+Pj4+Pj4+Pj4gKyAgIHRoZSBQTUQgYWxyZWFkeSByZS1jb25maWd1cmVzIHRoZSBwb3J0 Lg0KPiA+Pj4+Pj4+Pj4+PiArICAgVGhlIGFwcGxpY2F0aW9uIHNob3VsZCByZXN0b3JlIHNvbWUg YWRkaXRpb25hbCBjb25maWd1cmF0aW9uLA0KPiA+Pj4+Pj4+Pj4+PiBhbmQgdGhlbg0KPiA+Pj4+ Pj4+Pj4+PiArICAgZW5hYmxlIGRhdGEgcGF0aCBBUEkgaW52b2NhdGlvbi4NCj4gPj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4gICBgYFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfRkFJTEVEYGANCj4g Pj4+Pj4+Pj4+Pj4gICAgICBOb3RpZnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHJlY292ZXJ5 IGZyb20gZXJyb3IgZmFpbGVkLA0KPiA+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRl di9ldGhkZXZfZHJpdmVyLmMgYi9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuYw0KPiA+Pj4+Pj4+ Pj4+PiBpbmRleCAwYmUxZThjYTA0Li5mOTk0NjUzZmU5IDEwMDY0NA0KPiA+Pj4+Pj4+Pj4+PiAt LS0gYS9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuYw0KPiA+Pj4+Pj4+Pj4+PiArKysgYi9saWIv ZXRoZGV2L2V0aGRldl9kcml2ZXIuYw0KPiA+Pj4+Pj4+Pj4+PiBAQCAtNTE1LDYgKzUxNSwxNCBA QCBydGVfZXRoX2RtYV96b25lX2ZyZWUoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ID4+Pj4+ Pj4+Pj4+ICpkZXYsIGNvbnN0IGNoYXIgKnJpbmdfbmFtZSwNCj4gPj4+Pj4+Pj4+Pj4gICAgICAg cmV0dXJuIHJjOw0KPiA+Pj4+Pj4+Pj4+PiAgIH0NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ Pj4gK3ZvaWQNCj4gPj4+Pj4+Pj4+Pj4gK3J0ZV9ldGhfZnBfb3BzX3NldHVwKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2KQ0KPiA+Pj4+Pj4+Pj4+PiArew0KPiA+Pj4+Pj4+Pj4+PiArICAgIGlmIChk ZXYgPT0gTlVMTCkNCj4gPj4+Pj4+Pj4+Pj4gKyAgICAgICAgcmV0dXJuOw0KPiA+Pj4+Pj4+Pj4+ PiArICAgIGV0aF9kZXZfZnBfb3BzX3NldHVwKHJ0ZV9ldGhfZnBfb3BzICsgZGV2LT5kYXRhLT5w b3J0X2lkLCBkZXYpOw0KPiA+Pj4+Pj4+Pj4+PiArfQ0KPiA+Pj4+Pj4+Pj4+PiArDQo+ID4+Pj4+ Pj4+Pj4+ICAgY29uc3Qgc3RydWN0IHJ0ZV9tZW16b25lICoNCj4gPj4+Pj4+Pj4+Pj4gICBydGVf ZXRoX2RtYV96b25lX3Jlc2VydmUoY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIGNvbnN0 IGNoYXINCj4gPj4+Pj4+Pj4+Pj4gKnJpbmdfbmFtZSwNCj4gPj4+Pj4+Pj4+Pj4gICAgICAgICAg ICAgICAgdWludDE2X3QgcXVldWVfaWQsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24s DQo+ID4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaCBi L2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQo+ID4+Pj4+Pj4+Pj4+IGluZGV4IDJjOWQ2MTVm YjUuLjBkOTY0ZDFmNjcgMTAwNjQ0DQo+ID4+Pj4+Pj4+Pj4+IC0tLSBhL2xpYi9ldGhkZXYvZXRo ZGV2X2RyaXZlci5oDQo+ID4+Pj4+Pj4+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZl ci5oDQo+ID4+Pj4+Pj4+Pj4+IEBAIC0xNjIxLDYgKzE2MjEsMTYgQEAgaW50DQo+ID4+Pj4+Pj4+ Pj4+ICAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGNvbnN0IHN0cnVjdCBydGVfZXRoX2RldiAqZXRo X2RldiwgY29uc3QNCj4gPj4+Pj4+Pj4+Pj4gY2hhciAqbmFtZSwNCj4gPj4+Pj4+Pj4+Pj4gICAg ICAgICAgICB1aW50MTZfdCBxdWV1ZV9pZCk7DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+ ICsvKioNCj4gPj4+Pj4+Pj4+Pj4gKyAqIEBpbnRlcm5hbA0KPiA+Pj4+Pj4+Pj4+PiArICogU2V0 dXAgZXRoIGZhc3QtcGF0aCBBUEkgdG8gZXRoZGV2IHZhbHVlcy4NCj4gPj4+Pj4+Pj4+Pj4gKyAq DQo+ID4+Pj4+Pj4+Pj4+ICsgKiBAcGFyYW0gZGV2DQo+ID4+Pj4+Pj4+Pj4+ICsgKiAgUG9pbnRl ciB0byBzdHJ1Y3QgcnRlX2V0aF9kZXYuDQo+ID4+Pj4+Pj4+Pj4+ICsgKi8NCj4gPj4+Pj4+Pj4+ Pj4gK19fcnRlX2ludGVybmFsDQo+ID4+Pj4+Pj4+Pj4+ICt2b2lkIHJ0ZV9ldGhfZnBfb3BzX3Nl dHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCj4gPj4+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ Pj4+PiAgIC8qKg0KPiA+Pj4+Pj4+Pj4+PiAgICAqIEBpbnRlcm5hbA0KPiA+Pj4+Pj4+Pj4+PiAg ICAqIEF0b21pY2FsbHkgc2V0IHRoZSBsaW5rIHN0YXR1cyBmb3IgdGhlIHNwZWNpZmljIGRldmlj ZS4NCj4gPj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oIGIv bGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPj4+Pj4+Pj4+Pj4gaW5kZXggMDQ5NjQxZDU3Yy4u NDRlZTcyMjljMSAxMDA2NDQNCj4gPj4+Pj4+Pj4+Pj4gLS0tIGEvbGliL2V0aGRldi9ydGVfZXRo ZGV2LmgNCj4gPj4+Pj4+Pj4+Pj4gKysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPj4+ Pj4+Pj4+Pj4gQEAgLTM5NDQsMjUgKzM5NDQsMjggQEAgZW51bSBydGVfZXRoX2V2ZW50X3R5cGUg ew0KPiA+Pj4+Pj4+Pj4+PiAgICAgICAgKi8NCj4gPj4+Pj4+Pj4+Pj4gICAgICAgUlRFX0VUSF9F VkVOVF9SWF9BVkFJTF9USFJFU0gsDQo+ID4+Pj4+Pj4+Pj4+ICAgICAgIC8qKiBQb3J0IHJlY292 ZXJpbmcgZnJvbSBhIGhhcmR3YXJlIG9yIGZpcm13YXJlIGVycm9yLg0KPiA+Pj4+Pj4+Pj4+PiAt ICAgICAqIElmIFBNRCBzdXBwb3J0cyBwcm9hY3RpdmUgZXJyb3IgcmVjb3ZlcnksDQo+ID4+Pj4+ Pj4+Pj4+IC0gICAgICogaXQgc2hvdWxkIHRyaWdnZXIgdGhpcyBldmVudCB0byBub3RpZnkgYXBw bGljYXRpb24NCj4gPj4+Pj4+Pj4+Pj4gLSAgICAgKiB0aGF0IGl0IGRldGVjdGVkIGFuIGVycm9y IGFuZCB0aGUgcmVjb3ZlcnkgaXMgYmVpbmcgc3RhcnRlZC4NCj4gPj4+Pj4+Pj4+Pj4gLSAgICAg KiBVcG9uIHJlY2VpdmluZyB0aGUgZXZlbnQsIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgbm90IGlu dm9rZQ0KPiA+Pj4+Pj4+Pj4+PiBhbnkgY29udHJvbCBwYXRoIEFQSQ0KPiA+Pj4+Pj4+Pj4+PiAt ICAgICAqIChzdWNoIGFzIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZS9ydGVfZXRoX2Rldl9zdG9wLi4u KSB1bnRpbA0KPiA+Pj4+Pj4+Pj4+PiByZWNlaXZpbmcNCj4gPj4+Pj4+Pj4+Pj4gLSAgICAgKiBS VEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1Mgb3INCj4gPj4+Pj4+Pj4+Pj4gUlRFX0VUSF9F VkVOVF9SRUNPVkVSWV9GQUlMRUQgZXZlbnQuDQo+ID4+Pj4+Pj4+Pj4+IC0gICAgICogVGhlIFBN RCB3aWxsIHNldCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIGR1bW15IGZ1bmN0aW9ucywNCj4g Pj4+Pj4+Pj4+Pj4gLSAgICAgKiBhbmQgcmUtc2V0IHRoZSBkYXRhIHBhdGggcG9pbnRlcnMgdG8g bm9uLWR1bW15IGZ1bmN0aW9ucw0KPiA+Pj4+Pj4+Pj4+PiAtICAgICAqIGJlZm9yZSByZXBvcnRp bmcgUlRFX0VUSF9FVkVOVF9SRUNPVkVSWV9TVUNDRVNTIGV2ZW50Lg0KPiA+Pj4+Pj4+Pj4+PiAt ICAgICAqIEl0IG1lYW5zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNhbm5vdCBzZW5kIG9yIHJlY2Vp dmUgYW55DQo+ID4+Pj4+Pj4+Pj4+IHBhY2tldHMNCj4gPj4+Pj4+Pj4+Pj4gLSAgICAgKiBkdXJp bmcgdGhpcyBwZXJpb2QuDQo+ID4+Pj4+Pj4+Pj4+ICsgICAgICoNCj4gPj4+Pj4+Pj4+Pj4gKyAg ICAgKiBJZiBQTUQgc3VwcG9ydHMgcHJvYWN0aXZlIGVycm9yIHJlY292ZXJ5LCBpdCBzaG91bGQg dHJpZ2dlcg0KPiA+Pj4+Pj4+Pj4+PiB0aGlzDQo+ID4+Pj4+Pj4+Pj4+ICsgICAgICogZXZlbnQg dG8gbm90aWZ5IGFwcGxpY2F0aW9uIHRoYXQgaXQgZGV0ZWN0ZWQgYW4gZXJyb3IgYW5kIHRoZQ0K PiA+Pj4+Pj4+Pj4+PiArICAgICAqIHJlY292ZXJ5IGlzIGFib3V0IHRvIHN0YXJ0Lg0KPiA+Pj4+ Pj4+Pj4+PiArICAgICAqDQo+ID4+Pj4+Pj4+Pj4+ICsgICAgICogVXBvbiByZWNlaXZpbmcgdGhl IGV2ZW50LCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIG5vdCBpbnZva2UgYW55DQo+ID4+Pj4+Pj4+ Pj4+ICsgICAgICogY29udHJvbCBhbmQgZGF0YSBwYXRoIEFQSSB1bnRpbCByZWNlaXZpbmcNCj4g Pj4+Pj4+Pj4+Pj4gKyAgICAgKiBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1Mgb3IgUlRF X0VUSF9FVkVOVF9SRUNPVkVSWV9GQUlMRUQNCj4gPj4+Pj4+Pj4+Pj4gKyAgICAgKiBldmVudC4N Cj4gPj4+Pj4+Pj4+Pj4gKyAgICAgKg0KPiA+Pj4+Pj4+Pj4+PiArICAgICAqIE9uY2UgdGhpcyBl dmVudCBpcyByZXBvcnRlZCwgdGhlIFBNRCB3aWxsIHNldCB0aGUgZGF0YSBwYXRoDQo+ID4+Pj4+ Pj4+Pj4+IHBvaW50ZXJzDQo+ID4+Pj4+Pj4+Pj4+ICsgICAgICogdG8gZHVtbXkgZnVuY3Rpb25z LCBhbmQgcmUtc2V0IHRoZSBkYXRhIHBhdGggcG9pbnRlcnMgdG8gdmFsaWQNCj4gPj4+Pj4+Pj4+ Pj4gKyAgICAgKiBmdW5jdGlvbnMgYmVmb3JlIHJlcG9ydGluZyBSVEVfRVRIX0VWRU5UX1JFQ09W RVJZX1NVQ0NFU1MNCj4gPj4+Pj4+Pj4+Pj4gZXZlbnQuDQo+ID4+Pj4+Pj4+Pj4+ICsgICAgICoN Cj4gPj4+Pj4+Pj4+Pj4gICAgICAgICogQG5vdGUgQmVmb3JlIHRoZSBQTUQgcmVwb3J0cyB0aGUg cmVjb3ZlcnkgcmVzdWx0LA0KPiA+Pj4+Pj4+Pj4+PiAgICAgICAgKiB0aGUgUE1EIG1heSByZXBv cnQgdGhlIFJURV9FVEhfRVZFTlRfRVJSX1JFQ09WRVJJTkcgZXZlbnQNCj4gPj4+Pj4+Pj4+Pj4g YWdhaW4sDQo+ID4+Pj4+Pj4+Pj4+ICAgICAgICAqIGJlY2F1c2UgYSBsYXJnZXIgZXJyb3IgbWF5 IG9jY3VyIGR1cmluZyB0aGUgcmVjb3ZlcnkuDQo+ID4+Pj4+Pj4+Pj4+ICAgICAgICAqLw0KPiA+ Pj4+Pj4+Pj4+PiAgICAgICBSVEVfRVRIX0VWRU5UX0VSUl9SRUNPVkVSSU5HLA0KPiA+Pj4+Pj4+ Pj4+PiAgICAgICAvKiogUG9ydCByZWNvdmVycyBzdWNjZXNzZnVsbHkgZnJvbSB0aGUgZXJyb3Iu DQo+ID4+Pj4+Pj4+Pj4+IC0gICAgICogVGhlIFBNRCBhbHJlYWR5IHJlLWNvbmZpZ3VyZWQgdGhl IHBvcnQsDQo+ID4+Pj4+Pj4+Pj4+IC0gICAgICogYW5kIHRoZSBlZmZlY3QgaXMgdGhlIHNhbWUg YXMgYSByZXN0YXJ0IG9wZXJhdGlvbi4NCj4gPj4+Pj4+Pj4+Pj4gKyAgICAgKg0KPiA+Pj4+Pj4+ Pj4+PiArICAgICAqIFRoZSBQTUQgYWxyZWFkeSByZS1jb25maWd1cmVkIHRoZSBwb3J0Og0KPiA+ Pj4+Pj4+Pj4+PiAgICAgICAgKiBhKSBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbiB3aWxsIGJlIHJl dGFpbmVkOiAoYWxwaGFiZXRpY2FsbHkpDQo+ID4+Pj4+Pj4+Pj4+ICAgICAgICAqICAgIC0gRENC IGNvbmZpZ3VyYXRpb24NCj4gPj4+Pj4+Pj4+Pj4gICAgICAgICogICAgLSBGRUMgY29uZmlndXJh dGlvbg0KPiA+Pj4+Pj4+Pj4+PiBAQCAtMzk4OSw2ICszOTkyLDkgQEAgZW51bSBydGVfZXRoX2V2 ZW50X3R5cGUgew0KPiA+Pj4+Pj4+Pj4+PiAgICAgICAgKiAgICAgIChAc2VlIFJURV9FVEhfREVW X0NBUEFfRkxPV19TSEFSRURfT0JKRUNUX0tFRVApDQo+ID4+Pj4+Pj4+Pj4+ICAgICAgICAqIGMp IEFueSBvdGhlciBjb25maWd1cmF0aW9uIHdpbGwgbm90IGJlIHN0b3JlZA0KPiA+Pj4+Pj4+Pj4+ PiAgICAgICAgKiAgICBhbmQgd2lsbCBuZWVkIHRvIGJlIHJlLWNvbmZpZ3VyZWQuDQo+ID4+Pj4+ Pj4+Pj4+ICsgICAgICoNCj4gPj4+Pj4+Pj4+Pj4gKyAgICAgKiBUaGUgYXBwbGljYXRpb24gc2hv dWxkIHJlc3RvcmUgc29tZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24NCj4gPj4+Pj4+Pj4+Pj4g KyAgICAgKiAoc2VlIGFib3ZlIGNhc2UgYi9jKSwgYW5kIHRoZW4gZW5hYmxlIGRhdGEgcGF0aCBB UEkgaW52b2NhdGlvbi4NCj4gPj4+Pj4+Pj4+Pj4gICAgICAgICovDQo+ID4+Pj4+Pj4+Pj4+ICAg ICAgIFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUywNCj4gPj4+Pj4+Pj4+Pj4gICAgICAg LyoqIFBvcnQgcmVjb3ZlcnkgZmFpbGVkLg0KPiA+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGli L2V0aGRldi92ZXJzaW9uLm1hcCBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gPj4+Pj4+Pj4+ Pj4gaW5kZXggMzU3ZDFhODhjMC4uYzI3M2UwYmRhZSAxMDA2NDQNCj4gPj4+Pj4+Pj4+Pj4gLS0t IGEvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+Pj4+Pj4+Pj4+PiArKysgYi9saWIvZXRoZGV2 L3ZlcnNpb24ubWFwDQo+ID4+Pj4+Pj4+Pj4+IEBAIC0zMjAsNiArMzIwLDcgQEAgSU5URVJOQUwg ew0KPiA+Pj4+Pj4+Pj4+PiAgICAgICBydGVfZXRoX2RldmljZXM7DQo+ID4+Pj4+Pj4+Pj4+ICAg ICAgIHJ0ZV9ldGhfZG1hX3pvbmVfZnJlZTsNCj4gPj4+Pj4+Pj4+Pj4gICAgICAgcnRlX2V0aF9k bWFfem9uZV9yZXNlcnZlOw0KPiA+Pj4+Pj4+Pj4+PiArICAgIHJ0ZV9ldGhfZnBfb3BzX3NldHVw Ow0KPiA+Pj4+Pj4+Pj4+PiAgICAgICBydGVfZXRoX2hhaXJwaW5fcXVldWVfcGVlcl9iaW5kOw0K PiA+Pj4+Pj4+Pj4+PiAgICAgICBydGVfZXRoX2hhaXJwaW5fcXVldWVfcGVlcl91bmJpbmQ7DQo+ ID4+Pj4+Pj4+Pj4+ICAgICAgIHJ0ZV9ldGhfaGFpcnBpbl9xdWV1ZV9wZWVyX3VwZGF0ZTsNCj4g Pj4+Pj4+Pj4+Pj4gLS0NCj4gPj4+Pj4+Pj4+PiAgIEFja2VkLWJ5OiBLb25zdGFudGluIEFuYW55 ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tPg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+IDIuMTcuMQ0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4NCj4gPj4+Pj4NCj4gPg0KPiA+IC4NCj4gPg0K