From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-114.mimecast.com (us-smtp-delivery-114.mimecast.com [170.10.129.114]) by sourceware.org (Postfix) with ESMTPS id D3B233858C1F for ; Mon, 11 Sep 2023 14:24:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D3B233858C1F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=labware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=labware.com Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2176.outbound.protection.outlook.com [104.47.59.176]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-277-58gt5CwJPpyQSIm2Nv71_w-1; Mon, 11 Sep 2023 10:24:27 -0400 X-MC-Unique: 58gt5CwJPpyQSIm2Nv71_w-1 Received: from SA0PR17MB4314.namprd17.prod.outlook.com (2603:10b6:806:e7::16) by SA0PR17MB4329.namprd17.prod.outlook.com (2603:10b6:806:ee::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.35; Mon, 11 Sep 2023 14:24:23 +0000 Received: from SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::30eb:4c4a:cb5a:dd91]) by SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::30eb:4c4a:cb5a:dd91%4]) with mapi id 15.20.6768.029; Mon, 11 Sep 2023 14:24:23 +0000 From: =?utf-8?B?SmFuIFZyYW7DvQ==?= To: "gdb-patches@sourceware.org" , "aburgess@redhat.com" Subject: Re: [PATCH 2/2] gdb/python: implement support for sending custom MI async notifications Thread-Topic: [PATCH 2/2] gdb/python: implement support for sending custom MI async notifications Thread-Index: AQHZ4pg2zA51+UGLX0GD3mZiKN9az7AVsV8AgAAAvYA= Date: Mon, 11 Sep 2023 14:24:23 +0000 Message-ID: <2456368e0168790034d08225d20eaf3a222e970e.camel@labware.com> References: <20230908210504.89194-1-jan.vrany@labware.com> <20230908210504.89194-2-jan.vrany@labware.com> <87zg1skcy3.fsf@redhat.com> In-Reply-To: <87zg1skcy3.fsf@redhat.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA0PR17MB4314:EE_|SA0PR17MB4329:EE_ x-ms-office365-filtering-correlation-id: 6247ecd0-a7f6-4278-fc8f-08dbb2d2cbf8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0 x-microsoft-antispam-message-info: c6/NsncPe5mR2q5a5aLs4KLGoNW8E5XwoxKux2NvfTteiNtjjtUkTWBN+30I8Ol9MpJexBjeKST80ZA2UiwJTO30+tWROqqoZOsu9qQBO6NA7Su4Gw1/0pUGvtp+VRVQtmaQ9zDTcTJ+OnkIoRZfA2tDqDRZGf6GITqMO+Xs8EP/Y9IHFB0VzYwjX/S2ixdHJE/f1liU8+KGw0R3uxz2TmtvjB0j6Vs5ODVvnqnkAArP93F7/tlJ/aJ06gQHEwhc7H3Uzbxc5ODMJ7JN5U+HOxdWtpZnfvKktrlIgz7Uup5kMRZPjpS1GjnQ+4SBhHFx2/5kFtrRZMIndKBQiKi8jRSWFXaIsObqFxM+FP9HQC/uz3AozOc8aEGV53/Gy9D8N7KJ4lhSnDAlxHLvauVxlJ0mLtT5cwK3xXFLetmDBDAg5N5MXfF3wCmotBJOB+0vCm9UWf0cztuZ9dJ+pXgn6C48qhVsecdEGKcADWGbkg5U0MwrC4aeJY+4/c6SFDgI4fjZnTv+8T/SM7KOuJDXo08XTjvIrXPkpCkzMHbTPHPcJMI5hc0PX5i617NGVXSw5uj99CsS7Eqb54jxWK+uDRkQ4h394c803o9+EH7mNTV5kGJq8uMtsUbssKBwcLbo x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA0PR17MB4314.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(366004)(136003)(39850400004)(376002)(1800799009)(451199024)(186009)(2616005)(15650500001)(36756003)(85182001)(6512007)(122000001)(91956017)(38100700002)(38070700005)(2906002)(66476007)(76116006)(5660300002)(66946007)(66556008)(66446008)(64756008)(110136005)(86362001)(316002)(478600001)(8676002)(8936002)(6506007)(41300700001)(6486002)(71200400001)(26005)(83380400001)(2004002);DIR:OUT;SFP:1101 x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MllmUGRTelFUd2ZpVW5pOHFHMHphdTdST0dWZ3lEcGVXbTZBTzZRcDFEZUta?= =?utf-8?B?QlgyRFJPTFgyVU8waXVQUTRZVVZBeVpRZlhFdEdqV3hJbUZKOXZNSnpySGls?= =?utf-8?B?NFcxOTF1dFJnbWtMdytDUFZFaGI2M24zMDdXaUoxMzRNcGtEWGYyZGEvRnp1?= =?utf-8?B?dG82d2o3OGk0dHppMUhNTFYwRW15emk5QzZjUkEvZHdoS01Wa3F3N2FmbFJP?= =?utf-8?B?SGlUMGtmVzRpZnpEdU5vdDQrL3o0N3lMaVM2WDg0STIwM1EreUdPay9LNW15?= =?utf-8?B?eW9mUitLMC9JVXNxbS9Dclh3eWlIOWRoMWNlRE5uL1IxZFhZeHdNWDNSaUUv?= =?utf-8?B?bG5jNUM2SmpNdTRGaDBQUXdQTzBqOUlhN09mbmhLa0dRSFlJRDNYZHVWNndR?= =?utf-8?B?SGp2OXFKdWVCTGVNUEtTdFo3NjZMODZhbkdIYkQ1dlZEWExpQ0NnU3hhTDk3?= =?utf-8?B?Z3Zub204SWRjQXE4TU9MR01FT05pWVphbGZOTEJ2ek5tV2VueThmOEFyK29M?= =?utf-8?B?YStTcVlwL3Q2RER3MEFHbmw2cmJxWExzc1cxdzFmL0hGZzNhTUlXOFpkZ3RX?= =?utf-8?B?ZGgvVGNYUzgvNzgvM0sxMmdmS1dBZThSMzZaaUZiWDZYTmJMMW9oVG84QVNE?= =?utf-8?B?cnJqbGZuZURPT3FaUGdETFhqelphdDlTVHpSTE1SN0tSdmNkQ1BQbmNrVEcv?= =?utf-8?B?T0ZLRVhPV1d3cEw4RUw1ZFdYRlV6VFZZWVhPNDJsS0JSNDJhL0FrL0tKZ1hi?= =?utf-8?B?M2JRaHFjWTk3eVNGMFZyUTNsOTlaVnFiYXgrM043RWZpRGQvdzVRSEcvL1BI?= =?utf-8?B?cnBORGEwRjBxdzZudnVHbjFocnIxeldSU2pWem5Sa0NZcnk5UHZ1THhuWFE1?= =?utf-8?B?THRPcmdJQ3BZVzJkbzNOU0RjZms2VnVmbjI1eDd0azA2V1BTY0RqQlVFNHY0?= =?utf-8?B?K2tKNHgzd045ZmFQTjRHbkV6QTJRT1gxY1IzeitDa2hrTFlPbWJyenpLQW9F?= =?utf-8?B?UWJwZDBWMmRrd05GN1lDa3pxQ04vUXBoMGV1dnY1QTI0SVVaQ3Rpa25uKzV1?= =?utf-8?B?UGdjbDVETWg2dUhMSGlMUFBPVElFN2ZOdHAvaUh4M0E2K3U5THg5ZHRLRk1Y?= =?utf-8?B?bk1OWHVsQ24xL1dGcTNIUGV5cmZHSFdBbm5jbnBZMmJEVlNaK0ZqbGRjYmtK?= =?utf-8?B?TTlNVzZqamFBRDVrUkhtVkJ4TmJGaUQvYUx4ZGVTTFBKNGFESFZOZFNiYzVK?= =?utf-8?B?Q1pNODhSQ2RFQjVwNk05TW5BWlJTOWFWZW1pOXp3cXEwdUJPT01qZ0VvR3V0?= =?utf-8?B?QnpXRlFuTzY3VEQ4cXg4UFJxa0NUWnc2NERsV2pvekRGK3JKWFQrL0pTcXF5?= =?utf-8?B?OC93bzBwNmFFWGUydGF3U1VvUGFkTmd6YXgyYjFZa2hNRnEwRVgyNUF4VjdU?= =?utf-8?B?SlhiQnQ4RFRJTmFYVDZyVFl5ZTZ4Zjk0dy9aQllkVWFRVUEybXVUT09ydEpH?= =?utf-8?B?MFJqV1hjeW5OMEhXa0o3S2hsNndTNHdRek5BR296cXBYYXljYTBuYWw2Lzl0?= =?utf-8?B?M2lieFI3N0o0bG10U3c4WlNQR1lkQzFYZExNVDFkU2ZxNkJETmFTOU1uUlR6?= =?utf-8?B?ZFJhNTNha3l0U1E3S0Y0OE56WWtCTlRKUEliT21uWFVKWWNhUXAxcHhRVGs5?= =?utf-8?B?UUlDRVJndnpQMW5OZlhoYUE2VWhIMUQ4YTdOWDQxZlB0aEhWRC9pMHY1WXBD?= =?utf-8?B?VFlQK0xTU3V1aUNRR21GYlJ0a3I1VVJ3VnczRkhRcXNOUVpPYzlmVTVwblVR?= =?utf-8?B?Z3BqTU9NQlF2RnYxSDgrcml1bDZuRVo5eVV1S0dhT2prOEd6eUJQQnRkcFN5?= =?utf-8?B?UGZNQ2xaRmZ1a24rOWJ5bVBTVXpGU1E2MVpGQUxPL0RsdHNYMkl6dGFic3dn?= =?utf-8?B?a0xER3NNTjJORll4WnVzRnZYYkxOWkdkaDFSNFZ0SkJsUVZxN2lnL2FjVXFy?= =?utf-8?B?RlZGcnMwY3h2LzJ0cXhGWjU2QkZ6NjQxd0pGa0VwOUZNM0I5ZXNCU0ZZcXNK?= =?utf-8?B?c3ZaTWNoa3FBK3hJaHg1MG9wWjhOWEpuWEJaRWxXWkc4cWw0eXp4N0hxZGJa?= =?utf-8?B?azRmN3plTjJlZVpVT3hkV2Vva2tTR2ptazBjN3NZdW5FS1d4bkY3MlBIU0hP?= =?utf-8?B?TEE9PQ==?= MIME-Version: 1.0 X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA0PR17MB4314.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6247ecd0-a7f6-4278-fc8f-08dbb2d2cbf8 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2023 14:24:23.7462 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HVeiQLvHECsBTe0xUtDuBXQVihkl+i1hcKafiOcykbWyaFHpA4sfyjx8d1SgVQ4zipL6MzgxjDRzhS5MBr4VRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR17MB4329 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: labware.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-ID: <0E4FA4436ED3AA4ABC199D48E7C0D2EF@namprd17.prod.outlook.com> Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: T24gTW9uLCAyMDIzLTA5LTExIGF0IDE1OjIxICswMTAwLCBBbmRyZXcgQnVyZ2VzcyB3cm90ZToN Cj4gSmFuIFZyYW55IHZpYSBHZGItcGF0Y2hlcyA8Z2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmc+ IHdyaXRlczoNCj4gDQo+ID4gVGhpcyBjb21taXQgYWRkcyBhIG5ldyBQeXRob24gZnVuY3Rpb24s IGdkYi5ub3RpZnlfbWksIHRoYXQgY2FuIGJlIHVzZWQNCj4gPiB0byBlbWl0IGN1c3RvbSBhc3lu YyBub3RpZmljYXRpb24gdG8gTUkgY2hhbm5lbC4gIFRoaXMgY2FuIGJlIHVzZWQsIGFtb25nDQo+ ID4gb3RoZXIgdGhpbmdzLCB0byBpbXBsZW1lbnQgbm90aWZpY2F0aW9ucyBhYm91dCBldmVudHMg TUkgZG9lcyBub3Qgc3VwcG9ydCwNCj4gPiBzdWNoIGFzIHJlbW90ZSBjb25uZWN0aW9uIGNsb3Nl ZCBvciByZWdpc3RlciBjaGFuZ2UuDQo+ID4gLS0tDQo+ID4gIGdkYi9ORVdTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysNCj4gPiAgZ2RiL2RvYy9weXRob24udGV4aSAg ICAgICAgICAgICAgICAgICAgICAgfCAzOCArKysrKysrKysrKysrKysrKysNCj4gPiAgZ2RiL3B5 dGhvbi9weS1taS5jICAgICAgICAgICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ICBnZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oICAgICAgICAgICAgICB8 ICAzICsrDQo+ID4gIGdkYi9weXRob24vcHl0aG9uLmMgICAgICAgICAgICAgICAgICAgICAgIHwg IDQgKysNCj4gPiAgZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LW1pLW5vdGlmeS5leHAgfCA0 NyArKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2Vy dGlvbnMoKykNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1taS1ub3RpZnkuZXhwDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2Ri L05FV1MNCj4gPiBpbmRleCA5OGZmMDBkNWVmYy4uNGExZjM4M2E2NjYgMTAwNjQ0DQo+ID4gLS0t IGEvZ2RiL05FV1MNCj4gPiArKysgYi9nZGIvTkVXUw0KPiA+IEBAIC0yODYsNiArMjg2LDkgQEAg aW5mbyBtYWluDQo+ID4gICAgICAgbWlnaHQgYmUgYXJyYXktIG9yIHN0cmluZy1saWtlLCBldmVu IGlmIHRoZXkgZG8gbm90IGhhdmUgdGhlDQo+ID4gICAgICAgY29ycmVzcG9uZGluZyB0eXBlIGNv ZGUuDQo+ID4gIA0KPiA+ICsgICoqIE5ldyBmdW5jdGlvbiBnZGIubm90aWZ5X21pKE5BTUUsIERB VEEpLCB0aGF0IGVtaXRzIGN1c3RvbQ0KPiA+ICsgICAgIEdEQi9NSSBhc3luYyBub3RpZmljYXRp b24uDQo+ID4gKw0KPiA+ICAqKiogQ2hhbmdlcyBpbiBHREIgMTMNCj4gPiAgDQo+ID4gICogTUkg dmVyc2lvbiAxIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gR0RCIDE0Lg0K PiA+IGRpZmYgLS1naXQgYS9nZGIvZG9jL3B5dGhvbi50ZXhpIGIvZ2RiL2RvYy9weXRob24udGV4 aQ0KPiA+IGluZGV4IGU5OTM2OTkxYzQ5Li5jYjIwNzM5NzZiYSAxMDA2NDQNCj4gPiAtLS0gYS9n ZGIvZG9jL3B5dGhvbi50ZXhpDQo+ID4gKysrIGIvZ2RiL2RvYy9weXRob24udGV4aQ0KPiA+IEBA IC00NzA0LDYgKzQ3MDQsNDQgQEAgSGVyZSBpcyBob3cgdGhpcyB3b3JrcyB1c2luZyB0aGUgY29t bWFuZHMgZnJvbSB0aGUgZXhhbXBsZSBhYm92ZToNCj4gPiAgQHsnc3RyaW5nJzogJ2FiYywgZGVm LCBnaGknQH0NCj4gPiAgQGVuZCBzbWFsbGV4YW1wbGUNCj4gPiAgDQo+ID4gK0Bub2RlIEdEQi9N SSBOb3RpZmljYXRpb25zIEluIFB5dGhvbg0KPiA+ICtAc3Vic3Vic2VjdGlvbiBAc2N7Z2RiL21p fSBOb3RpZmljYXRpb25zIEluIFB5dGhvbg0KPiA+ICsNCj4gPiArQGNpbmRleCBNSSBub3RpZmlj YXRpb25zIGluIHB5dGhvbg0KPiA+ICtAY2luZGV4IG5vdGlmaWNhdGlvbnMgaW4gcHl0aG9uLCBH REIvTUkNCj4gPiArQGNpbmRleCBweXRob24gbm90aWZpY2F0aW9ucywgR0RCL01JDQo+ID4gKw0K PiA+ICtJdCBpcyBwb3NzaWJsZSB0byBlbWl0IEBzY3tnZGIvbWl9IG5vdGlmaWNhdGlvbnMgZnJv bQ0KPiA+ICtQeXRob24uICBUaGlzIGlzIGRvbmUgd2l0aCB0aGUgQGNvZGV7Z2RiLm5vdGlmeV9t aX0gZnVuY3Rpb24uDQo+ID4gKw0KPiA+ICtAZGVmdW4gZ2RiLm5vdGlmeV9taSAobmFtZSAsIGRh dGEpDQo+ID4gK0VtaXQgYSBAc2N7Z2RiL21pfSBhc3luY2hyb25vdXMgbm90aWZpY2F0aW9uLiAg QHZhcntuYW1lfSBpcyB0aGUgbmFtZSBvZiB0aGUNCj4gPiArbm90aWZpY2F0aW9uLCBhIHN0cmlu Zy4gIEB2YXJ7ZGF0YX0gYXJlIGFkZGl0aW9uYWwgdmFsdWVzIGVtaXR0ZWQgd2l0aCB0aGUgbm90 aWZpY2F0aW9uLCBwYXNzZWQNCj4gPiArYXMgUHl0aG9uIGRpY3Rpb25hcnkuIFRoZSBkaWN0aW9u YXJ5IGlzIGNvbnZlcnRlZCB0byBjb252ZXJ0ZWQNCj4gPiArdG8gYSBAc2N7Z2RiL21pfSBAdmFy e3Jlc3VsdC1yZWNvcmR9IChAcHhyZWZ7R0RCL01JIE91dHB1dCBTeW50YXh9KSB0aGUgc2FtZSB3 YXkNCj4gPiArYXMgcmVzdWx0IG9mIFB5dGhvbiBNSSBjb21tYW5kIChAcHhyZWZ7R0RCL01JIENv bW1hbmRzIEluIFB5dGhvbn0pLg0KPiA+ICsNCj4gPiArSWYgQHZhcntkYXRhfSBpcyBAY29kZXtO b25lfSB0aGVuIG5vIGFkZGl0aW9uYWwgdmFsdWVzIGFyZSBlbWl0dGVkLg0KPiA+ICtAZW5kIGRl ZnVuDQo+ID4gKw0KPiA+ICtIZXJlIGlzIGhvdyB0byBlbWl0IEBjb2Rlez1jb25uZWN0aW9uLXJl bW92ZWR9IHdoZW5ldmVyIGEgY29ubmVjdGlvbiB0byByZW1vdGUNCj4gPiArR0RCIHNlcnZlciBp cyBjbG9zZWQgKHNlZSBAcHhyZWZ7Q29ubmVjdGlvbnMgSW4gUHl0aG9ufSk6DQo+ID4gKw0KPiA+ ICtAc21hbGxleGFtcGxlDQo+ID4gK2RlZiBub3RpZnlfY29ubmVjdGlvbl9yZW1vdmVkIChldmVu dCk6DQo+ID4gKyAgICBkYXRhID0gQHsgJ2lkJyAgIDogZXZlbnQuY29ubmVjdGlvbi5udW0sDQo+ ID4gKyAgICAgICAgICAgICAgJ3R5cGUnIDogZXZlbnQuY29ubmVjdGlvbi50eXBlIEB9DQo+ID4g KyAgICBnZGIubm90aWZ5X21pKCJjb25uZWN0aW9uLXJlbW92ZWQiLCBkYXRhKQ0KPiA+ICsNCj4g PiArZ2RiLmV2ZW50cy5jb25uZWN0aW9uX3JlbW92ZWQuY29ubmVjdCAobm90aWZ5X2Nvbm5lY3Rp b25fcmVtb3ZlZCkNCj4gPiArQGVuZCBzbWFsbGV4YW1wbGUNCj4gPiArDQo+ID4gK1RoZW4sIGVh Y2ggdGltZSBhIGNvbm5lY3Rpb24gaXMgY2xvc2VkLCB0aGVyZSB3aWxsIGJlIGEgbm90aWZpY2F0 aW9uIG9uIE1JIGNoYW5uZWw6DQo+ID4gKw0KPiA+ICtAc21hbGxleGFtcGxlDQo+ID4gKz1jb25u ZWN0aW9uLXJlbW92ZWQsaWQ9IjEiLHR5cGU9InJlbW90ZSINCj4gPiArQGVuZCBzbWFsbGV4YW1w bGUNCj4gPiArDQo+ID4gIEBub2RlIFBhcmFtZXRlcnMgSW4gUHl0aG9uDQo+ID4gIEBzdWJzdWJz ZWN0aW9uIFBhcmFtZXRlcnMgSW4gUHl0aG9uDQo+ID4gIA0KPiA+IGRpZmYgLS1naXQgYS9nZGIv cHl0aG9uL3B5LW1pLmMgYi9nZGIvcHl0aG9uL3B5LW1pLmMNCj4gPiBpbmRleCA2NmRjNmZiOGEz Mi4uZGMyZWM1ZGRkMGYgMTAwNjQ0DQo+ID4gLS0tIGEvZ2RiL3B5dGhvbi9weS1taS5jDQo+ID4g KysrIGIvZ2RiL3B5dGhvbi9weS1taS5jDQo+ID4gQEAgLTE5LDggKzE5LDE0IEBADQo+ID4gIA0K PiA+ICAjaW5jbHVkZSAiZGVmcy5oIg0KPiA+ICAjaW5jbHVkZSAicHl0aG9uLWludGVybmFsLmgi DQo+ID4gKyNpbmNsdWRlICJ1dGlscy5oIg0KPiA+ICsjaW5jbHVkZSAidWkuaCINCj4gPiAgI2lu Y2x1ZGUgInVpLW91dC5oIg0KPiA+ICsjaW5jbHVkZSAiaW50ZXJwcy5oIg0KPiA+ICsjaW5jbHVk ZSAidGFyZ2V0LmgiDQo+ID4gICNpbmNsdWRlICJtaS9taS1wYXJzZS5oIg0KPiA+ICsjaW5jbHVk ZSAibWkvbWktY29uc29sZS5oIg0KPiA+ICsjaW5jbHVkZSAibWkvbWktaW50ZXJwLmgiDQo+ID4g IA0KPiA+ICAvKiBBIHVpX291dCBzdWJjbGFzcyB0aGF0IGNyZWF0ZXMgYSBQeXRob24gb2JqZWN0 IGJhc2VkIG9uIHRoZSBkYXRhDQo+ID4gICAgIHRoYXQgaXMgcGFzc2VkIGluLiAgKi8NCj4gPiBA QCAtMjk2LDMgKzMwMiw0NiBAQCBnZGJweV9leGVjdXRlX21pX2NvbW1hbmQgKFB5T2JqZWN0ICpz ZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQ0KPiA+ICANCj4gPiAgICByZXR1cm4g dWlvdXQucmVzdWx0ICgpOw0KPiA+ICB9DQo+ID4gKw0KPiA+ICsvKiBJbXBsZW1lbnRhdGlvbiBv ZiB0aGUgZ2RiLm5vdGlmeV9taSBmdW5jdGlvbi4gICovDQo+ID4gKw0KPiA+ICtQeU9iamVjdCAq DQo+ID4gK2dkYnB5X25vdGlmeV9taSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQ eU9iamVjdCAqa3dhcmdzKQ0KPiA+ICt7DQo+ID4gKyAgc3RhdGljIGNvbnN0IGNoYXIgKmtleXdv cmRzW10gPSB7ICJuYW1lIiwgImRhdGEiLCBudWxscHRyIH07DQo+ID4gKyAgY29uc3QgY2hhciAq bmFtZTsNCj4gPiArICBQeU9iamVjdCAqZGF0YTsNCj4gPiArDQo+ID4gKyAgaWYgKCFnZGJfUHlB cmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzIChhcmdzLCBrd2FyZ3MsICJzTyIsIGtleXdvcmRzLA0K PiA+ICsJCQkJCSZuYW1lLCAmZGF0YSkpDQo+ID4gKyAgICByZXR1cm4gbnVsbHB0cjsgLy8gRklY TUU6IGlzIHRoaXMgdGhlIGNvcnJlY3Qgd2F5IHRvIHNpZ25hbCBlcnJvcj8NCj4gDQo+IEkga25l dyB0aGVyZSB3YXMgc29tZXRoaW5nIGVsc2UgSSB3YW50ZWQgdG8gc2F5IDopDQo+IA0KPiBJIHRo aW5rIHlvdSBzaG91bGQgYWRkIHNvbWUgdmFsaWRhdGlvbiBvZiAnbmFtZScgaGVyZSB0b28uICBJ ZiB5b3UgY2hlY2sNCj4gcGF0Y2ggMS8yIGluIHRoaXMgc2VyaWVzIGFuZCBsb29rIGZvciAnaXNf dmFsaWRfa2V5X25hbWUnLCB5b3Ugc2hvdWxkIGRvDQo+IHNvbWV0aGluZyBzaW1pbGFyIGZvciAn bmFtZScsIGFuZCBkb2N1bWVudCB0aGUgcmVzdHJpY3Rpb25zLiBlLmcuIEkNCj4gZG9uJ3QgdGhp bmsgYSBuYW1lIGxpa2UgIiAgKioqIGJhZCBpZGVhICoqKiAgIiB3b3VsZCBiZSBhIGdyZWF0IGNo b2ljZQ0KPiBmb3IgYSBub3RpZmljYXRpb24gbmFtZS4NCg0KWWVzLCB0aGF0J3MgZXhhY3RseSB3 aGF0IEkgaGF2ZSBhZGRlZCB0byAobm90IHlldCBzdWJtaXR0ZWQpIFYyLiANCg0KVGhhbmtzISBK YW4NCj4gDQo+IFRoYW5rcywNCj4gQW5kcmV3DQo+IA0KPiA+ICsNCj4gPiArICBTV0lUQ0hfVEhS VV9BTExfVUlTICgpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIHN0cnVjdCBtaV9pbnRlcnAgKm1p ID0gYXNfbWlfaW50ZXJwICh0b3BfbGV2ZWxfaW50ZXJwcmV0ZXIgKCkpOw0KPiA+ICsNCj4gPiAr ICAgICAgaWYgKG1pID09IE5VTEwpDQo+ID4gKyAgICAgICAgY29udGludWU7DQo+ID4gKyAgICAg IA0KPiA+ICsgICAgICBnZGJfcHJpbnRmIChtaS0+ZXZlbnRfY2hhbm5lbCwgIiVzIiwgbmFtZSk7 DQo+ID4gKyAgICAgIGlmIChkYXRhICE9IFB5X05vbmUpICAgICAgDQo+ID4gKyAgICAgICAgew0K PiA+ICsgICAgICAgICAgLyogQXQgdGhlIHRvcC1sZXZlbCwgdGhlIGRhdGEgbXVzdCBiZSBhIGRp Y3Rpb25hcnkuICAqLw0KPiA+ICsgICAgICAgICAgaWYgKCFQeURpY3RfQ2hlY2sgKGRhdGEpKQ0K PiA+ICsgICAgICAgICAgICBnZGJweV9lcnJvciAoXygiRGF0YSBwYXNzZWQgdG8gbm90aWZ5X21p IG11c3QgYmUgZWl0aGVyIE5vbmUgb3IgYSBkaWN0aW9uYXJ5IikpOw0KPiA+ICsNCj4gPiArICAg ICAgICAgIHRhcmdldF90ZXJtaW5hbDo6c2NvcGVkX3Jlc3RvcmVfdGVybWluYWxfc3RhdGUgdGVy bV9zdGF0ZTsNCj4gPiArICAgICAgICAgIHRhcmdldF90ZXJtaW5hbDo6b3Vyc19mb3Jfb3V0cHV0 ICgpOw0KPiA+ICsNCj4gPiArICAgICAgICAgIHVpX291dCAqbWlfdWlvdXQgPSBtaS0+aW50ZXJw X3VpX291dCAoKTsNCj4gPiArICAgICAgICAgIHVpX291dF9yZWRpcmVjdF9wb3AgcmVkaXIgKG1p X3Vpb3V0LCBtaS0+ZXZlbnRfY2hhbm5lbCk7DQo+ID4gKyAgICAgICAgICBzY29wZWRfcmVzdG9y ZSByZXN0b3JlX3Vpb3V0DQo+ID4gKyAgICAgICAgICAgID0gbWFrZV9zY29wZWRfcmVzdG9yZSAo JmN1cnJlbnRfdWlvdXQsIG1pX3Vpb3V0KTsNCj4gPiArDQo+ID4gKyAgICAgICAgICBzZXJpYWxp emVfbWlfZGF0YSAoZGF0YSk7CSAgDQo+ID4gKyAgICAgICAgfQ0KPiA+ICsgICAgICBnZGJfZmx1 c2ggKG1pLT5ldmVudF9jaGFubmVsKTsNCj4gPiArICAgIH0NCj4gPiArICAgIA0KPiA+ICsgIFB5 X1JFVFVSTl9OT05FOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmggYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oDQo+ID4gaW5kZXggM2Y1 M2IwYWI2ZjAuLjJhN2U4ZDY4MTc5IDEwMDY0NA0KPiA+IC0tLSBhL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgNCj4gPiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oDQo+ID4g QEAgLTUwMSw2ICs1MDEsOSBAQCBleHRlcm4gUHlPYmplY3QgKmdkYnB5X2V4ZWN1dGVfbWlfY29t bWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLA0KPiA+ICANCj4gPiAgZXh0ZXJu IHZvaWQgc2VyaWFsaXplX21pX2RhdGEgKFB5T2JqZWN0ICpyZXN1bHQpOw0KPiA+ICANCj4gPiAr ZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9ub3RpZnlfbWkgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqYXJncywNCj4gPiArCQkJCSAgUHlPYmplY3QgKmt3KTsNCj4gPiArDQo+ID4gIC8qIENvbnZl cnQgUHl0aG9uIG9iamVjdCBPQkogdG8gYSBwcm9ncmFtX3NwYWNlIHBvaW50ZXIuICBPQkogbXVz dCBiZSBhDQo+ID4gICAgIGdkYi5Qcm9nc3BhY2UgcmVmZXJlbmNlLiAgUmV0dXJuIG51bGxwdHIg aWYgdGhlIGdkYi5Qcm9nc3BhY2UgaXMgbm90DQo+ID4gICAgIHZhbGlkIChzZWUgZ2RiLlByb2dz cGFjZS5pc192YWxpZCksIG90aGVyd2lzZSByZXR1cm4gdGhlIHByb2dyYW1fc3BhY2UNCj4gPiBk aWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMNCj4g PiBpbmRleCA2YTk3OGQ2MzJlOS4uZmFhN2UwYzIxN2QgMTAwNjQ0DQo+ID4gLS0tIGEvZ2RiL3B5 dGhvbi9weXRob24uYw0KPiA+ICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmMNCj4gPiBAQCAtMjY2 OSw2ICsyNjY5LDEwIEBAIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVk IGxhbmd1YWdlLiIgfSwNCj4gPiAgICAgICJwcmludF9vcHRpb25zICgpIC0+IGRpY3RcblwNCj4g PiAgUmV0dXJuIHRoZSBjdXJyZW50IHByaW50IG9wdGlvbnMuIiB9LA0KPiA+ICANCj4gPiArICB7 ICJub3RpZnlfbWkiLCAoUHlDRnVuY3Rpb24pIGdkYnB5X25vdGlmeV9taSwNCj4gPiArICAgIE1F VEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsDQo+ID4gKyAgICAibm90aWZ5X21pIChuYW1lLCBk YXRhKSAtPiBOb25lXG5cDQo+ID4gK091dHB1dCBhc3luYyByZWNvcmQgdG8gTUkgY2hhbm5lbHMg aWYgYW55LiIgfSwNCj4gPiAgICB7TlVMTCwgTlVMTCwgMCwgTlVMTH0NCj4gPiAgfTsNCj4gPiAg DQo+ID4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1taS1ub3RpZnku ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LW1pLW5vdGlmeS5leHANCj4gPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwLi44MjIxNzk0YzRmMw0KPiA+ IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktbWkt bm90aWZ5LmV4cA0KPiA+IEBAIC0wLDAgKzEsNDcgQEANCj4gPiArIyBDb3B5cmlnaHQgKEMpIDIw MTktMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gPiArIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQ0KPiA+ICsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ID4gKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCj4gPiArIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiA+ICsjDQo+ID4gKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+ID4gKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YNCj4gPiArIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlDQo+ID4gKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4NCj4gPiArIw0KPiA+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ID4gKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Pi4NCj4gPiArDQo+ID4gKyMgVGVzdCBjdXN0b20gTUkgbm90aWZpY2F0aW9ucyBpbXBsZW1lbnRl ZCBpbiBQeXRob24uDQo+ID4gKw0KPiA+ICtsb2FkX2xpYiBnZGItcHl0aG9uLmV4cA0KPiA+ICts b2FkX2xpYiBtaS1zdXBwb3J0LmV4cA0KPiA+ICtzZXQgTUlGTEFHUyAiLWk9bWkiDQo+ID4gKw0K PiA+ICtnZGJfZXhpdA0KPiA+ICtpZiB7W21pX2dkYl9zdGFydF19IHsNCj4gPiArICAgIHJldHVy bg0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpZiB7W2xzZWFyY2ggLWV4YWN0IFttaV9nZXRfZmVhdHVy ZXNdIHB5dGhvbl0gPCAwfSB7DQo+ID4gKyAgICB1bnN1cHBvcnRlZCAicHl0aG9uIHN1cHBvcnQg aXMgZGlzYWJsZWQiDQo+ID4gKyAgICByZXR1cm4gLTENCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh bmRhcmRfdGVzdGZpbGUNCj4gPiArDQo+ID4gK21pX2dkYl90ZXN0ICJzZXQgcHl0aG9uIHByaW50 LXN0YWNrIGZ1bGwiIFwNCj4gPiArICAgICIuKlxcXmRvbmUiIFwNCj4gPiArICAgICJzZXQgcHl0 aG9uIHByaW50LXN0YWNrIGZ1bGwiDQo+ID4gKw0KPiA+ICttaV9nZGJfdGVzdCAicHl0aG9uIGdk Yi5ub3RpZnlfbWkoJ3Rlc3Qtbm90aWZpY2F0aW9uJywgTm9uZSkiIFwNCj4gPiArICAgICIuKj10 ZXN0LW5vdGlmaWNhdGlvblxyXG5cXF5kb25lIiBcDQo+ID4gKyAgICAicHl0aG9uIG5vdGlmaWNh dGlvbiwgbm8gYWRkaXRpb25hbCBkYXRhIg0KPiA+ICsNCj4gPiArbWlfZ2RiX3Rlc3QgInB5dGhv biBnZGIubm90aWZ5X21pKCd0ZXN0LW5vdGlmaWNhdGlvbicsIFx7ICdkYXRhMScgOiAxICwgJ2Rh dGEyJyA6IDIgfSkiIFwNCj4gPiArICAgICIuKj10ZXN0LW5vdGlmaWNhdGlvbixkYXRhMT1cIjFc IixkYXRhMj1cIjJcIlxyXG5cXF5kb25lIiBcDQo+ID4gKyAgICAicHl0aG9uIG5vdGlmaWNhdGlv biwgd2l0aCBhZGRpdGlvbmFsIGRhdGEiDQo+ID4gKw0KPiA+ICttaV9nZGJfdGVzdCAicHl0aG9u IGdkYi5ub3RpZnlfbWkoJ3Rlc3Qtbm90aWZpY2F0aW9uJywgMSkiIFwNCj4gPiArICAgICIuKlxc XmVycm9yLG1zZz1cIi4qXCIiIFwNCj4gPiArICAgICJweXRob24gbm90aWZpY2F0aW9uLCBpbnZh bGlkIGFkZGl0aW9uYWwgZGF0YSINCj4gPiAtLSANCj4gPiAyLjQwLjENCg0K