From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.ex10.biz (ikhexhub01.ex10.biz [178.170.125.76]) by sourceware.org (Postfix) with ESMTPS id 1DDAC3858D32 for ; Fri, 14 Apr 2023 09:34:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1DDAC3858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=sipearl.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sipearl.com Received: from ex13mbxc01n02.ikhex.ikoula.com (178.170.74.67) by ikhexhub01.ikhex.ikoula.com (178.170.125.76) with Microsoft SMTP Server (TLS) id 14.3.487.0; Fri, 14 Apr 2023 11:35:07 +0200 Received: from ex13mbxc01n01.ikhex.ikoula.com (2002:b2aa:4a42::b2aa:4a42) by ex13mbxc01n02.ikhex.ikoula.com (2002:b2aa:4a43::b2aa:4a43) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Fri, 14 Apr 2023 11:34:47 +0200 Received: from ex13mbxc01n01.ikhex.ikoula.com ([fe80::7cfa:8f3a:5d4b:2d27]) by ex13mbxc01n01.ikhex.ikoula.com ([fe80::7cfa:8f3a:5d4b:2d27%15]) with mapi id 15.00.1497.044; Fri, 14 Apr 2023 11:34:47 +0200 From: Lou Knauer To: Andrew Pinski CC: "gcc-patches@gcc.gnu.org" , Etienne Renault Subject: RE: [PATCH] aarch64: Add -mveclibabi=sleefgnu Thread-Topic: [PATCH] aarch64: Add -mveclibabi=sleefgnu Thread-Index: AdlungKdRQS+x06IT1KxiCcVvZfH1///4gsA//+19dA= Date: Fri, 14 Apr 2023 09:34:46 +0000 Message-ID: <93172fa5c23b4e0086b46d513a84922d@ex13mbxc01n01.ikhex.ikoula.com> References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [178.170.125.114] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmRyZXcgUGluc2tpIDxwaW5z a2lhQGdtYWlsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBBcHJpbCAxNCwgMjAyMyAwOTowOA0KPiBU bzogTG91IEtuYXVlciA8bG91LmtuYXVlckBzaXBlYXJsLmNvbT4NCj4gQ2M6IGdjYy1wYXRjaGVz QGdjYy5nbnUub3JnOyBFdGllbm5lIFJlbmF1bHQgPGV0aWVubmUucmVuYXVsdEBzaXBlYXJsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSF0gYWFyY2g2NDogQWRkIC1tdmVjbGliYWJpPXNsZWVm Z251DQo+IA0KPiBPbiBGcmksIEFwciAxNCwgMjAyMyBhdCAxMjowM+KAr0FNIExvdSBLbmF1ZXIg dmlhIEdjYy1wYXRjaGVzDQo+IDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4gd3JvdGU6DQo+ID4N Cj4gPiBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIC1tdmVjbGliYWJpIG9wdGlvbiB0byB0aGUg QUFyY2g2NCBiYWNrZW5kIG9mIEdDQyBieQ0KPiA+IGltcGxlbWVudGluZyB0aGUgYnVpbHRpbl92 ZWN0b3JpemVkX2Z1bmN0aW9uIHRhcmdldCBob29rIGZvciBBQXJjaDY0Lg0KPiA+IFRoZSBTTEVF RiBWZWN0b3JpemVkIE1hdGggTGlicmFyeSdzIEdOVUFCSSBpbnRlcmZhY2UgaXMgdXNlZCwgYW5k DQo+ID4gTkVPTi9BZHZhbmNlZCBTSU1EIGFzIHdlbGwgYXMgU1ZFIGFyZSBzdXBwb3J0ZWQuDQo+ ID4NCj4gPiBUaGlzIHdhcyB0ZXN0ZWQgb24gdGhlIGdjYyB0ZXN0c3VpdGUgYW5kIHRoZSBsbHZt LXRlc3Qtc3VpdGUgb24gYSBBQXJjaDY0DQo+ID4gaG9zdCBmb3IgTkVPTiBhbmQgU1ZFIGFzIHdl bGwgYXMgb24gaGFuZC13cml0dGVuIGJlbmNobWFya3MuIFdoZXJlIHRoZQ0KPiA+IHZlY3Rvcml6 YXRpb24gb2YgYnVpbHRpbnMgd2FzIGFwcGxpZWQgc3VjY2Vzc2Z1bGx5IGluIGxvb3BzIGJvdW5k IGJ5IHRoZQ0KPiA+IGNhbGxzIHRvIHRob3NlLCBzaWduaWZpY2FudCAoPjIpIHBlcmZvcm1hbmNl IGdhaW5zIGNhbiBiZSBvYnNlcnZlZC4NCj4gDQo+IFRoaXMgaXMgc28gd3JvbmcgYW5kIGl0IGlz IGJldHRlciBpZiB5b3UgYWN0dWFsbHkganVzdCB1c2VkIGEgaGVhZGVyDQo+IGZpbGUgaW5zdGVh ZC4gIFNwZWNpZmljYWxseSB0aGUgb3Blbm1wIHZlY3QgcHJhZ21hcy4NCj4gDQo+IFRoYW5rcywN Cj4gQW5kcmV3IFBpbnNraQ0KPiANCg0KVGhhbmsgeW91IGZvciB5b3VyIHF1aWNrIHJlc3BvbnNl LiBJIGRvIG5vdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgcG9pbnQ6DQp0aGUgT3Blbk1QIERlY2xh cmUgU0lNRCBwcmFnbWFzIGFyZSBub3QgeWV0IGltcGxlbWVudGVkIGZvciBTVkUgKGhlcmUgWzBd DQpzb21lb25lIHN0YXJ0ZWQgd29ya2luZyBvbiB0aGF0LCBidXQgaXQgZG9lcyBub3Qgd29yayBp biBpdHMgY3VycmVudCBzdGF0ZSkuDQpUaGUgYC1tdmVjbGliYWJpYCBmbGFnIHNlZW1zIHRvIGJl IHRoZSBvbmx5IHNvbHV0aW9uIGZvciBTVkUgdmVjdG9yaXphdGlvbiBvZg0KbGlibSBmdW5jdGlv bnMgZnJvbSBvdXIgcG9pbnQgb2Ygdmlldy4NCg0KSW5kZWVkLCBhIGN1c3RvbSBoZWFkZXIgdGhh dCByZWRpcmVjdHMgcmVndWxhciBsaWJtIGZ1bmN0aW9uIGNhbGxzIHRvIHRoZWlyDQpTbGVlZiBl cXVpdmFsZW50IHdvdWxkIGJlIGEgc29sdXRpb24gZm9yIE5FT04gc2luY2UgT3Blbk1QIERlY2xh cmUgU0lNRA0KcHJhZ21hcyBhcmUgaW1wbGVtZW50ZWQgZm9yIE5FT04gaW4gR0NDLiBOb25ldGhl bGVzcyBhcyBmYXIgYXMgSSBjYW4gdGVsbCwNCnRoZSBsaWJtdmVjIGlzIG5vdCB5ZXQgc3VwcG9y dCBmb3IgQUFyY2g2NCwgc28gU2xlZWYgaXMgdW5hdm9pZGFibGUuIEkNCnRoZXJlZm9yZSBvcHRl ZCBmb3IgYSBzb2x1dGlvbiBzaW1pbGFyIHRvIHRoZSBvbmUgZm9yIHg4NiBhbmQgdGhlIFNWTUws IHdoZXJlDQpvbmx5IGEgYWRkaXRpb25hbCBmbGFnIGR1cmluZyBjb21waWxhdGlvbiBpcyBuZWVk ZWQgKGluc3RlYWQgb2YgaGF2aW5nIHRvDQptb2RpZnkgc291cmNlIGNvZGUgdG8gYWRkIGluY2x1 ZGVzKS4gRnJvbSBhIHZlY3Rvcml6YXRpb24gbGVnYWxpdHkgcGVyc3BlY3RpdmUsDQp0aGlzIHN0 cmF0ZWd5IGFsc28gc2VlbXMgbW9yZSByZWxpYWJsZSB0aGFuIGEgcmVkaXJlY3RpbmcgaGVhZGVy IHNpbmNlDQpTbGVlZiBmdW5jdGlvbnMgKGV2ZW4gdGhlIHNjYWxhciBvbmVzKSBuZXZlciBzZXQg dGhlIGVycm5vIGFuZCBHQ0MgYWxyZWFkeQ0KdmVyaWZpZXMgc3VjaCBkZXRhaWxzIHdoZW4gdHJh bnNmb3JtaW5nIGxpYm0gY2FsbHMgdG8gYnVpbHRpbnMuDQoNCkFsdGVybmF0aXZlbHksIGRvIHlv dSBwcmVmZXJlIGEgcGF0Y2ggdGhhdCBhZGRzIFNWRSBzdXBwb3J0IGZvcg0KI3ByYWdtYSBvbXAg ZGVjbGFyZSBzaW1kIGRlY2xhcmF0aW9ucywgdGh1cyBlbmFibGluZyB0aGUgc2FtZSBoZWFkZXIt YmFzZWQNCnN0cmF0ZWd5IGZvciBTVkUgYXMgZm9yIE5FT04/DQoNClRoYW5rIHlvdSBhbmQga2lu ZCByZWdhcmRzLA0KTG91IEtuYXVlcg0KDQpbMF06IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemls bGEvc2hvd19idWcuY2dpP2lkPTk2MzQyDQoNCj4gDQo+ID4NCj4gPiBnY2MvQ2hhbmdlTG9nOg0K PiA+DQo+ID4gICAgICAgICAqIGNvbmZpZy9hYXJjaDY0L2FhcmNoNjQub3B0OiBBZGQgLW12ZWNs aWJhYmkgb3B0aW9uLg0KPiA+ICAgICAgICAgKiBjb25maWcvYWFyY2g2NC9hYXJjaDY0LW9wdHMu aDogQWRkIGFhcmNoNjRfdmVjbGliYWJpIGVudW0uDQo+ID4gICAgICAgICAqIGNvbmZpZy9hYXJj aDY0L2FhcmNoNjQtcHJvdG9zLmg6IEFkZA0KPiA+ICAgICAgICAgYWFyY2g2NF9idWlsdGluX3Zl Y3Rvcml6ZWRfZnVuY3Rpb24gZGVjbGFyYXRpb24uDQo+ID4gICAgICAgICAqIGNvbmZpZy9hYXJj aDY0L2FhcmNoNjQuY2M6IEhhbmRsZSAtbXZlY2xpYmFiaSBvcHRpb24gYW5kIHB1cmUNCj4gPiAg ICAgICAgIHNjYWxhYmxlIHR5cGUgaW5mbyBmb3Igc2NhbGFibGUgdmVjdG9ycyB3aXRob3V0ICJT VkUgdHlwZSIgYXR0cmlidXRlcy4NCj4gPiAgICAgICAgICogY29uZmlnL2FhcmNoNjQvYWFyY2g2 NC1idWlsdGlucy5jYzogQWRkDQo+ID4gICAgICAgICBhYXJjaDY0X2J1aWx0aW5fdmVjdG9yaXpl ZF9mdW5jdGlvbiBkZWZpbml0aW9uLg0KPiA+ICAgICAgICAgKiBkb2MvaW52b2tlLnRleGk6IERv Y3VtZW50IC1tdmVjbGliYWJpIGZvciBBQXJjaDY0IHRhcmdldHMuDQo+ID4NCj4gPiBnY2MvdGVz dHN1aXRlL0NoYW5nZUxvZzoNCj4gPg0KPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L2FhcmNoNjQv dmVjdC12ZWNhYmktc2xlZWZnbnUtbmVvbi5jOiBOZXcgdGVzdGNhc2UuDQo+ID4gICAgICAgICAq IGdjYy50YXJnZXQvYWFyY2g2NC92ZWN0LXZlY2FiaS1zbGVlZmdudS1zdmUuYzogTmV3IHRlc3Rj YXNlLg0KPiA+IC0tLQ0KPiA+ICBnY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1idWlsdGlucy5j YyAgICAgICAgfCAxMTMgKysrKysrKysrKysrKysrKysrDQo+ID4gIGdjYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0LW9wdHMuaCAgICAgICAgICAgICB8ICAgNSArDQo+ID4gIGdjYy9jb25maWcvYWFy Y2g2NC9hYXJjaDY0LXByb3Rvcy5oICAgICAgICAgICB8ICAgMyArDQo+ID4gIGdjYy9jb25maWcv YWFyY2g2NC9hYXJjaDY0LmNjICAgICAgICAgICAgICAgICB8ICA2NiArKysrKysrKysrDQo+ID4g IGdjYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm9wdCAgICAgICAgICAgICAgICB8ICAxNSArKysN Cj4gPiAgZ2NjL2RvYy9pbnZva2UudGV4aSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE1 ICsrKw0KPiA+ICAuLi4vYWFyY2g2NC92ZWN0LXZlY2FiaS1zbGVlZmdudS1uZW9uLmMgICAgICAg fCAgMTYgKysrDQo+ID4gIC4uLi9hYXJjaDY0L3ZlY3QtdmVjYWJpLXNsZWVmZ251LXN2ZS5jICAg ICAgICB8ICAxNiArKysNCj4gPiAgOCBmaWxlcyBjaGFuZ2VkLCAyNDkgaW5zZXJ0aW9ucygrKQ0K PiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv dmVjdC12ZWNhYmktc2xlZWZnbnUtbmVvbi5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC92ZWN0LXZlY2FiaS1zbGVlZmdudS1zdmUuYw0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5z LmNjIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtYnVpbHRpbnMuY2MNCj4gPiBpbmRleCBj YzZiN2MwMWZkMS4uZjUzZmE5MWI4ZDAgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL2NvbmZpZy9hYXJj aDY0L2FhcmNoNjQtYnVpbHRpbnMuY2MNCj4gPiArKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC1idWlsdGlucy5jYw0KPiA+IEBAIC00Nyw2ICs0Nyw3IEBADQo+ID4gICNpbmNsdWRlICJz dHJpbmdwb29sLmgiDQo+ID4gICNpbmNsdWRlICJhdHRyaWJzLmgiDQo+ID4gICNpbmNsdWRlICJn aW1wbGUtZm9sZC5oIg0KPiA+ICsjaW5jbHVkZSAiYnVpbHRpbnMuaCINCj4gPg0KPiA+ICAjZGVm aW5lIHY4cWlfVVAgIEVfVjhRSW1vZGUNCj4gPiAgI2RlZmluZSB2OGRpX1VQICBFX1Y4REltb2Rl DQo+ID4gQEAgLTM0NTAsNiArMzQ1MSwxMTggQEAgYWFyY2g2NF9yZXNvbHZlX292ZXJsb2FkZWRf YnVpbHRpbl9nZW5lcmFsIChsb2NhdGlvbl90IGxvYywgdHJlZSBmdW5jdGlvbiwNCj4gPiAgICBy ZXR1cm4gTlVMTF9UUkVFOw0KPiA+ICB9DQo+ID4NCj4gPiArLyogVGhlIHZlY3RvciBsaWJyYXJ5 IGFiaSB0byB1c2UsIGlmIGFueS4gICovDQo+ID4gK2V4dGVybiBlbnVtIGFhcmNoNjRfdmVjbGli YWJpIGFhcmNoNjRfc2VsZWN0ZWRfdmVjbGliYWJpOw0KPiA+ICsNCj4gPiArLyogUmV0dXJucyBh IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGZvciBhIHZlY3Rvcml6ZWQgdmVyc2lvbiBvZiB0aGUgY29t YmluZWQNCj4gPiArICAgZnVuY3Rpb24gd2l0aCBjb21iaW5lZF9mbiBjb2RlIEZOIGFuZCB0aGUg cmVzdWx0IHZlY3RvciB0eXBlIFRZUEUuDQo+ID4gKyAgIE5VTExfVFJFRSBpcyByZXR1cm5lZCBp ZiB0aGVyZSBpcyBub25lIGF2YWlsYWJsZS4gICovDQo+ID4gK3RyZWUNCj4gPiArYWFyY2g2NF9i dWlsdGluX3ZlY3Rvcml6ZWRfZnVuY3Rpb24gKHVuc2lnbmVkIGludCBmbl9jb2RlLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlIHR5cGVfb3V0LCB0cmVlIHR5 cGVfaW4pDQo+ID4gK3sNCj4gPiArICBpZiAoVFJFRV9DT0RFICh0eXBlX291dCkgIT0gVkVDVE9S X1RZUEUNCj4gPiArICAgICAgfHwgVFJFRV9DT0RFICh0eXBlX2luKSAhPSBWRUNUT1JfVFlQRQ0K PiA+ICsgICAgICB8fCBhYXJjaDY0X3NlbGVjdGVkX3ZlY2xpYmFiaSAhPSBhYXJjaDY0X3ZlY2xp YmFiaV90eXBlX3NsZWVmZ251DQo+ID4gKyAgICAgIHx8ICFmbGFnX3Vuc2FmZV9tYXRoX29wdGlt aXphdGlvbnMpDQo+ID4gKyAgICByZXR1cm4gTlVMTF9UUkVFOw0KPiA+ICsNCj4gPiArICBtYWNo aW5lX21vZGUgbW9kZSA9IFRZUEVfTU9ERSAoVFJFRV9UWVBFICh0eXBlX291dCkpOw0KPiA+ICsg IHBvbHlfdWludDY0IG4gPSBUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAodHlwZV9vdXQpOw0KPiA+ICsg IGlmIChtb2RlICE9IFRZUEVfTU9ERSAoVFJFRV9UWVBFICh0eXBlX2luKSkNCj4gPiArICAgICAg fHwgIWtub3duX2VxIChuLCBUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAodHlwZV9pbikpKQ0KPiA+ICsg ICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gPiArDQo+ID4gKyAgYm9vbCBpc19zY2FsYWJsZSA9ICFu LmlzX2NvbnN0YW50ICgpOw0KPiA+ICsgIGlmIChpc19zY2FsYWJsZSkNCj4gPiArICAgIHsNCj4g PiArICAgICAgLyogU1ZFIGlzIG5lZWRlZCBmb3Igc2NhbGFibGUgdmVjdG9ycywgYSBTVkUgcmVn aXN0ZXIncyBzaXplIGlzDQo+ID4gKyAgICAgICAgYWx3YXlzIGEgbXVsdGlwbGUgb2YgMTI4LiAg Ki8NCj4gPiArICAgICAgaWYgKCFUQVJHRVRfU1ZFDQo+ID4gKyAgICAgICAgIHx8IChtb2RlID09 IERGbW9kZSAmJiAha25vd25fZXEgKG4sIHBvbHlfdWludDY0ICgyLCAyKSkpDQo+ID4gKyAgICAg ICAgIHx8IChtb2RlID09IFNGbW9kZSAmJiAha25vd25fZXEgKG4sIHBvbHlfdWludDY0ICg0LCA0 KSkpKQ0KPiA+ICsgICAgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gPiArICAgIH0NCj4gPiArICBl bHNlDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIC8qIEEgTkVPTiByZWdpc3RlciBjYW4gaG9sZCB0 d28gZG91YmxlcyBvciBvbmUgZmxvYXQuICAqLw0KPiA+ICsgICAgICBpZiAoIVRBUkdFVF9TSU1E DQo+ID4gKyAgICAgICAgIHx8IChtb2RlID09IERGbW9kZSAmJiBuLnRvX2NvbnN0YW50ICgpICE9 IDIpDQo+ID4gKyAgICAgICAgIHx8IChtb2RlID09IFNGbW9kZSAmJiBuLnRvX2NvbnN0YW50ICgp ICE9IDQpKQ0KPiA+ICsgICAgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gPiArICAgIH0NCj4gPiAr DQo+ID4gKyAgdHJlZSBmbnR5cGU7DQo+ID4gKyAgY29tYmluZWRfZm4gZm4gPSBjb21iaW5lZF9m biAoZm5fY29kZSk7DQo+ID4gKyAgY29uc3QgY2hhciAqYXJnZW5jb2Rpbmc7DQo+ID4gKyAgc3dp dGNoIChmbikNCj4gPiArICAgIHsNCj4gPiArICAgICAgQ0FTRV9DRk5fRVhQOg0KPiA+ICsgICAg ICBDQVNFX0NGTl9MT0c6DQo+ID4gKyAgICAgIENBU0VfQ0ZOX0xPRzEwOg0KPiA+ICsgICAgICBD QVNFX0NGTl9UQU5IOg0KPiA+ICsgICAgICBDQVNFX0NGTl9UQU46DQo+ID4gKyAgICAgIENBU0Vf Q0ZOX0FUQU46DQo+ID4gKyAgICAgIENBU0VfQ0ZOX0FUQU5IOg0KPiA+ICsgICAgICBDQVNFX0NG Tl9DQlJUOg0KPiA+ICsgICAgICBDQVNFX0NGTl9TSU5IOg0KPiA+ICsgICAgICBDQVNFX0NGTl9T SU46DQo+ID4gKyAgICAgIENBU0VfQ0ZOX0FTSU5IOg0KPiA+ICsgICAgICBDQVNFX0NGTl9BU0lO Og0KPiA+ICsgICAgICBDQVNFX0NGTl9DT1NIOg0KPiA+ICsgICAgICBDQVNFX0NGTl9DT1M6DQo+ ID4gKyAgICAgIENBU0VfQ0ZOX0FDT1NIOg0KPiA+ICsgICAgICBDQVNFX0NGTl9BQ09TOg0KPiA+ ICsgICAgICAgZm50eXBlID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0ICh0eXBlX291dCwgdHlw ZV9pbiwgTlVMTCk7DQo+ID4gKyAgICAgICBhcmdlbmNvZGluZyA9ICJ2IjsNCj4gPiArICAgICAg IGJyZWFrOw0KPiA+ICsNCj4gPiArICAgICAgQ0FTRV9DRk5fUE9XOg0KPiA+ICsgICAgICBDQVNF X0NGTl9BVEFOMjoNCj4gPiArICAgICAgIGZudHlwZSA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlz dCAodHlwZV9vdXQsIHR5cGVfaW4sIHR5cGVfaW4sIE5VTEwpOw0KPiA+ICsgICAgICAgYXJnZW5j b2RpbmcgPSAidnYiOw0KPiA+ICsgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICBkZWZh dWx0Og0KPiA+ICsgICAgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gPiArICAgIH0NCj4gPiArDQo+ ID4gKyAgdHJlZSBmbmRlY2wgPSBtYXRoZm5fYnVpbHRfaW4gKG1vZGUgPT0gREZtb2RlDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBkb3VibGVfdHlwZV9ub2RlIDogZmxv YXRfdHlwZV9ub2RlLCBmbik7DQo+ID4gKyAgY29uc3QgY2hhciAqc2NhbGFyX25hbWUgPSBJREVO VElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoZm5kZWNsKSk7DQo+ID4gKyAgLyogQnVpbHRpbnMg d2lsbCBhbHdheXMgYmUgcHJlZml4ZWQgd2l0aCAnX19idWlsdGluXycuICAqLw0KPiA+ICsgIGdj Y19hc3NlcnQgKHN0cm5jbXAgKHNjYWxhcl9uYW1lLCAiX19idWlsdGluXyIsIDEwKSA9PSAwKTsN Cj4gPiArICBzY2FsYXJfbmFtZSArPSAxMDsNCj4gPiArDQo+ID4gKyAgY2hhciB2ZWN0b3JpemVk X25hbWVbMzJdOw0KPiA+ICsgIGlmIChpc19zY2FsYWJsZSkNCj4gPiArICAgIHsNCj4gPiArICAg ICAgLyogU1ZFIElTQSAqLw0KPiA+ICsgICAgICBpbnQgbiA9IHNucHJpbnRmICh2ZWN0b3JpemVk X25hbWUsIHNpemVvZiAodmVjdG9yaXplZF9uYW1lKSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAiX1pHVnNOeCVzXyVzIiwgYXJnZW5jb2RpbmcsIHNjYWxhcl9uYW1lKTsNCj4gPiArICAg ICAgaWYgKG4gPCAwIHx8IG4gPiBzaXplb2YgKHZlY3Rvcml6ZWRfbmFtZSkpDQo+ID4gKyAgICAg ICByZXR1cm4gTlVMTF9UUkVFOw0KPiA+ICsgICAgfQ0KPiA+ICsgIGVsc2UNCj4gPiArICAgIHsN Cj4gPiArICAgICAgLyogTkVPTiBJU0EgKi8NCj4gPiArICAgICAgaW50IG4gPSBzbnByaW50ZiAo dmVjdG9yaXplZF9uYW1lLCBzaXplb2YgKHZlY3Rvcml6ZWRfbmFtZSksDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgIl9aR1ZuTiVkJXNfJXMiLCBtb2RlID09IFNGbW9kZSA/IDQgOiAyLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGFyZ2VuY29kaW5nLCBzY2FsYXJfbmFtZSk7DQo+ ID4gKyAgICAgIGlmIChuIDwgMCB8fCBuID4gc2l6ZW9mICh2ZWN0b3JpemVkX25hbWUpKQ0KPiA+ ICsgICAgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgdHJl ZSBuZXdfZm5kZWNsID0gYnVpbGRfZGVjbCAoQlVJTFRJTlNfTE9DQVRJT04sIEZVTkNUSU9OX0RF Q0wsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfaWRlbnRpZmllciAo dmVjdG9yaXplZF9uYW1lKSwgZm50eXBlKTsNCj4gPiArICBUUkVFX1BVQkxJQyAobmV3X2ZuZGVj bCkgPSAxOw0KPiA+ICsgIFRSRUVfUkVBRE9OTFkgKG5ld19mbmRlY2wpID0gMTsNCj4gPiArICBE RUNMX0VYVEVSTkFMIChuZXdfZm5kZWNsKSA9IDE7DQo+ID4gKyAgREVDTF9JU19OT1ZPUFMgKG5l d19mbmRlY2wpID0gMTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuIG5ld19mbmRlY2w7DQo+ID4gK30N Cj4gPiArDQo+ID4gICN1bmRlZiBBQVJDSDY0X0NIRUNLX0JVSUxUSU5fTU9ERQ0KPiA+ICAjdW5k ZWYgQUFSQ0g2NF9GSU5EX0ZSSU5UX1ZBUklBTlQNCj4gPiAgI3VuZGVmIENGMA0KPiA+IGRpZmYg LS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1vcHRzLmggYi9nY2MvY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC1vcHRzLmgNCj4gPiBpbmRleCBhOWYzZTI3MTVjYS4uZDEyODcxYjg5M2Mg MTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtb3B0cy5oDQo+ID4g KysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtb3B0cy5oDQo+ID4gQEAgLTk4LDQgKzk4 LDkgQEAgZW51bSBhYXJjaDY0X2tleV90eXBlIHsNCj4gPiAgICBBQVJDSDY0X0tFWV9CDQo+ID4g IH07DQo+ID4NCj4gPiArZW51bSBhYXJjaDY0X3ZlY2xpYmFiaSB7DQo+ID4gKyAgYWFyY2g2NF92 ZWNsaWJhYmlfdHlwZV9ub25lLA0KPiA+ICsgIGFhcmNoNjRfdmVjbGliYWJpX3R5cGVfc2xlZWZn bnUNCj4gPiArfTsNCj4gPiArDQo+ID4gICNlbmRpZg0KPiA+IGRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC1wcm90b3MuaCBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0 LXByb3Rvcy5oDQo+ID4gaW5kZXggNjMzMzlmYTQ3ZGYuLjUzYzZlNDU1ZGE4IDEwMDY0NA0KPiA+ IC0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXByb3Rvcy5oDQo+ID4gKysrIGIvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9zLmgNCj4gPiBAQCAtMTA2Niw0ICsxMDY2LDcg QEAgZXh0ZXJuIGJvb2wgYWFyY2g2NF9oYXJkZW5fc2xzX2Jscl9wICh2b2lkKTsNCj4gPg0KPiA+ ICBleHRlcm4gdm9pZCBhYXJjaDY0X291dHB1dF9wYXRjaGFibGVfYXJlYSAodW5zaWduZWQgaW50 LCBib29sKTsNCj4gPg0KPiA+ICtleHRlcm4gdHJlZSBhYXJjaDY0X2J1aWx0aW5fdmVjdG9yaXpl ZF9mdW5jdGlvbiAodW5zaWduZWQgaW50IGZuLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlIHR5cGVfb3V0LCB0cmVlIHR5cGVfaW4pOw0K PiA+ICsNCj4gPiAgI2VuZGlmIC8qIEdDQ19BQVJDSDY0X1BST1RPU19IICovDQo+ID4gZGlmZiAt LWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmNjIGIvZ2NjL2NvbmZpZy9hYXJjaDY0 L2FhcmNoNjQuY2MNCj4gPiBpbmRleCA0MjYxN2NlZDczYS4uNTBhYzM3ZmYwMWUgMTAwNjQ0DQo+ ID4gLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuY2MNCj4gPiArKysgYi9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC5jYw0KPiA+IEBAIC04NCw2ICs4NCw3IEBADQo+ID4gICNpbmNs dWRlICJhYXJjaDY0LWZlYXR1cmUtZGVwcy5oIg0KPiA+ICAjaW5jbHVkZSAiY29uZmlnL2FybS9h YXJjaC1jb21tb24uaCINCj4gPiAgI2luY2x1ZGUgImNvbmZpZy9hcm0vYWFyY2gtY29tbW9uLXBy b3Rvcy5oIg0KPiA+ICsjaW5jbHVkZSAicHJpbnQtdHJlZS5oIg0KPiA+DQo+ID4gIC8qIFRoaXMg ZmlsZSBzaG91bGQgYmUgaW5jbHVkZWQgbGFzdC4gICovDQo+ID4gICNpbmNsdWRlICJ0YXJnZXQt ZGVmLmgiDQo+ID4gQEAgLTI5NTEsNiArMjk1Miw2MiBAQCBwdXJlX3NjYWxhYmxlX3R5cGVfaW5m bzo6YW5hbHl6ZSAoY29uc3RfdHJlZSB0eXBlKQ0KPiA+ICAgICAgICByZXR1cm4gSVNfUFNUOw0K PiA+ICAgICAgfQ0KPiA+DQo+ID4gKyAgLyogT25seSBmdW5jdGlvbnMgYW5kIHR5cGVzIHRoYXQg YXJlIHBhcnQgb2YgdGhlIEFSTSBDIExhbmd1YWdlDQo+ID4gKyAgICAgRXh0ZW5zaW9ucyAoYXJt X3N2ZS5oKSBoYXZlIHRoZSBTVkUgdHlwZSBhdHRyaWJ1dGVzLg0KPiA+ICsgICAgIFRoZSBhdXRv LXZlY3Rvcml6ZXIgZG9lcyBub3QgYW5ub3RhdGUgdGhlIHZlY3RvciB0eXBlcyBpdCBjcmVhdGVz IHdpdGgNCj4gPiArICAgICB0aG9zZSBhdHRyaWJ1dGVzLiBXaXRoIHRoZSBzdXBwb3J0IG9mIHZl Y3Rvcml6ZWQgbGlibSBmdW5jdGlvbg0KPiA+ICsgICAgIGJ1aWx0aW5zICBmb3IgU1ZFLCBzY2Fs YWJsZSB2ZWN0b3JzIHdpdGhvdXQgc3BlY2lhbCBhdHRyaWJ1dGVzDQo+ID4gKyAgICAgaGF2ZSB0 byBiZSB0cmVhdGVkIGFzIHdlbGwuICAqLw0KPiA+ICsgIGlmIChUUkVFX0NPREUgKHR5cGUpID09 IFZFQ1RPUl9UWVBFDQo+ID4gKyAgICAgICYmICFUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAodHlwZSku aXNfY29uc3RhbnQgKCkpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIC8qIEJvb2xlYW4gdmVjdG9y cyBhcmUgc3BlY2lhbCBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYnkNCj4gPiArICAgICAgICB0aGUg dmVjdG9yaXplciBhcyBtYXNrcyB0aGF0IG11c3QgZ28gaW50byB0aGUNCj4gPiArICAgICAgICBw cmVkaWNhdGUgcmVnaXN0ZXJzLiAgKi8NCj4gPiArICAgICAgaWYgKFRSRUVfQ09ERSAoVFJFRV9U WVBFICh0eXBlKSkgPT0gQk9PTEVBTl9UWVBFKQ0KPiA+ICsgICAgICAgew0KPiA+ICsgICAgICAg ICBwLm51bV96ciA9IDA7DQo+ID4gKyAgICAgICAgIHAubnVtX3ByID0gMTsNCj4gPiArICAgICAg ICAgcC5tb2RlID0gcC5vcmlnX21vZGUgPSBUWVBFX01PREUgKHR5cGUpOw0KPiA+ICsgICAgICAg ICBhZGRfcGllY2UgKHApOw0KPiA+ICsgICAgICAgICByZXR1cm4gSVNfUFNUOw0KPiA+ICsgICAg ICAgfQ0KPiA+ICsNCj4gPiArICAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCB7DQo+ID4gKyAgICAg ICBtYWNoaW5lX21vZGUgbW9kZTsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBlbGVtZW50X3Np emU7DQo+ID4gKyAgICAgICBwb2x5X3VpbnQ2NCB2ZWN0b3Jfc2l6ZTsNCj4gPiArICAgICAgfSB2 YWxpZF92ZWN0b3JzW10gPSB7DQo+ID4gKyAgICAgICB7IFZOeDhCRm1vZGUsIDE2LCBwb2x5X3Vp bnQ2NCAoOCwgOCkgfSwgLyogc3ZiZmxvYXQxNl90ICovDQo+ID4gKyAgICAgICB7IFZOeDhIRm1v ZGUsIDE2LCBwb2x5X3VpbnQ2NCAoOCwgOCkgfSwgLyogc3ZmbG9hdDE2X3QgKi8NCj4gPiArICAg ICAgIHsgVk54NFNGbW9kZSwgMzIsIHBvbHlfdWludDY0ICg0LCA0KSB9LCAvKiBzdmZsb2F0MzJf dCAqLw0KPiA+ICsgICAgICAgeyBWTngyREZtb2RlLCA2NCwgcG9seV91aW50NjQgKDIsIDIpIH0s IC8qIHN2ZmxvYXQ2NF90ICovDQo+ID4gKyAgICAgICB7IFZOeDE2Qkltb2RlLCA4LCBwb2x5X3Vp bnQ2NCAoMTYsIDE2KSB9LCAvKiBzdlt1XWludDhfdCAqLw0KPiA+ICsgICAgICAgeyBWTng4SElt b2RlLCAxNiwgcG9seV91aW50NjQgKDgsIDgpIH0sIC8qIHN2W3VdaW50MTZfdCAqLw0KPiA+ICsg ICAgICAgeyBWTng0U0ltb2RlLCAzMiwgcG9seV91aW50NjQgKDQsIDQpIH0sIC8qIHN2W3VdaW50 MzJfdCAqLw0KPiA+ICsgICAgICAgeyBWTngyREltb2RlLCA2NCwgcG9seV91aW50NjQgKDIsIDIp IH0sIC8qIHN2W3VdaW50NjRfdCAqLw0KPiA+ICsgICAgICB9Ow0KPiA+ICsNCj4gPiArICAgICAg bWFjaGluZV9tb2RlIGVsbV9tb2RlID0gVFlQRV9NT0RFIChUUkVFX1RZUEUgKHR5cGUpKTsNCj4g PiArICAgICAgdW5zaWduZWQgaW50IGVsbV9zaXplID0gR0VUX01PREVfQklUU0laRSAoZWxtX21v ZGUpLnRvX2NvbnN0YW50ICgpOw0KPiA+ICsgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOw0KPiA+ ICsgICAgICAgICAgaSA8IHNpemVvZiAodmFsaWRfdmVjdG9ycykgLyBzaXplb2YgKHZhbGlkX3Zl Y3RvcnNbMF0pOyBpKyspDQo+ID4gKyAgICAgICBpZiAodmFsaWRfdmVjdG9yc1tpXS5lbGVtZW50 X3NpemUgPT0gZWxtX3NpemUNCj4gPiArICAgICAgICAgICAmJiB2YWxpZF92ZWN0b3JzW2ldLm1v ZGUgPT0gVFlQRV9NT0RFICh0eXBlKQ0KPiA+ICsgICAgICAgICAgICYmIGtub3duX2VxICh2YWxp ZF92ZWN0b3JzW2ldLnZlY3Rvcl9zaXplLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBU WVBFX1ZFQ1RPUl9TVUJQQVJUUyAodHlwZSkpKQ0KPiA+ICsgICAgICAgICB7DQo+ID4gKyAgICAg ICAgICAgcC5udW1fenIgPSAxOw0KPiA+ICsgICAgICAgICAgIHAubnVtX3ByID0gMDsNCj4gPiAr ICAgICAgICAgICBwLm1vZGUgPSBwLm9yaWdfbW9kZSA9IHZhbGlkX3ZlY3RvcnNbaV0ubW9kZTsN Cj4gPiArICAgICAgICAgICBhZGRfcGllY2UgKHApOw0KPiA+ICsgICAgICAgICAgIHJldHVybiBJ U19QU1Q7DQo+ID4gKyAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgIGZhdGFsX2Vycm9yIChp bnB1dF9sb2NhdGlvbiwgInVuc3VwcG9ydGVkIHZlY3RvciB0eXBlICVxVCINCj4gPiArICAgICAg ICAgICAgICAgICAgIiBhcyBmdW5jdGlvbiBwYXJhbWV0ZXIgd2l0aG91dCBTVkUgYXR0cmlidXRl cyIsIHR5cGUpOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiAgICAvKiBDaGVjayBmb3IgdXNlci1k ZWZpbmVkIFBTVHMuICAqLw0KPiA+ICAgIGlmIChUUkVFX0NPREUgKHR5cGUpID09IEFSUkFZX1RZ UEUpDQo+ID4gICAgICByZXR1cm4gYW5hbHl6ZV9hcnJheSAodHlwZSk7DQo+ID4gQEAgLTE3ODUx LDYgKzE3OTA4LDggQEAgYWFyY2g2NF9vdmVycmlkZV9vcHRpb25zX2FmdGVyX2NoYW5nZV8xIChz dHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMpDQo+ID4gICAgICBmbGFnX21yZWNpcF9sb3dfcHJlY2lz aW9uX3NxcnQgPSB0cnVlOw0KPiA+ICB9DQo+ID4NCj4gPiArZW51bSBhYXJjaDY0X3ZlY2xpYmFi aSBhYXJjaDY0X3NlbGVjdGVkX3ZlY2xpYmFiaSA9IGFhcmNoNjRfdmVjbGliYWJpX3R5cGVfbm9u ZTsNCj4gPiArDQo+ID4gIC8qICdVbnBhY2snIHVwIHRoZSBpbnRlcm5hbCB0dW5pbmcgc3RydWN0 cyBhbmQgdXBkYXRlIHRoZSBvcHRpb25zDQo+ID4gICAgICBpbiBPUFRTLiAgVGhlIGNhbGxlciBt dXN0IGhhdmUgc2V0IHVwIHNlbGVjdGVkX3R1bmUgYW5kIHNlbGVjdGVkX2FyY2gNCj4gPiAgICAg IGFzIGFsbCB0aGUgb3RoZXIgdGFyZ2V0LXNwZWNpZmljIGNvZGVnZW4gZGVjaXNpb25zIGFyZQ0K PiA+IEBAIC0xODAzMSw2ICsxODA5MCw5IEBAIGFhcmNoNjRfb3ZlcnJpZGVfb3B0aW9uc19pbnRl cm5hbCAoc3RydWN0IGdjY19vcHRpb25zICpvcHRzKQ0KPiA+ICAgICAgICAmJiBvcHRzLT54X29w dGltaXplID49IGFhcmNoNjRfdHVuZV9wYXJhbXMucHJlZmV0Y2gtPmRlZmF1bHRfb3B0X2xldmVs KQ0KPiA+ICAgICAgb3B0cy0+eF9mbGFnX3ByZWZldGNoX2xvb3BfYXJyYXlzID0gMTsNCj4gPg0K PiA+ICsgIGlmIChvcHRzLT54X2FhcmNoNjRfdmVjbGliYWJpX3R5cGUgPT0gYWFyY2g2NF92ZWNs aWJhYmlfdHlwZV9zbGVlZmdudSkNCj4gPiArICAgIGFhcmNoNjRfc2VsZWN0ZWRfdmVjbGliYWJp ID0gYWFyY2g2NF92ZWNsaWJhYmlfdHlwZV9zbGVlZmdudTsNCj4gPiArDQo+ID4gICAgYWFyY2g2 NF9vdmVycmlkZV9vcHRpb25zX2FmdGVyX2NoYW5nZV8xIChvcHRzKTsNCj4gPiAgfQ0KPiA+DQo+ ID4gQEAgLTI4MDg1LDYgKzI4MTQ3LDEwIEBAIGFhcmNoNjRfbGliZ2NjX2Zsb2F0aW5nX21vZGVf c3VwcG9ydGVkX3ANCj4gPiAgI3VuZGVmIFRBUkdFVF9DT05TVF9BTkNIT1INCj4gPiAgI2RlZmlu ZSBUQVJHRVRfQ09OU1RfQU5DSE9SIDB4MTAwMDAwMA0KPiA+DQo+ID4gKyN1bmRlZiBUQVJHRVRf VkVDVE9SSVpFX0JVSUxUSU5fVkVDVE9SSVpFRF9GVU5DVElPTg0KPiA+ICsjZGVmaW5lIFRBUkdF VF9WRUNUT1JJWkVfQlVJTFRJTl9WRUNUT1JJWkVEX0ZVTkNUSU9OIFwNCj4gPiArICBhYXJjaDY0 X2J1aWx0aW5fdmVjdG9yaXplZF9mdW5jdGlvbg0KPiA+ICsNCj4gPiAgc3RydWN0IGdjY190YXJn ZXQgdGFyZ2V0bSA9IFRBUkdFVF9JTklUSUFMSVpFUjsNCj4gPg0KPiA+ICAjaW5jbHVkZSAiZ3Qt YWFyY2g2NC5oIg0KPiA+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5v cHQgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5vcHQNCj4gPiBpbmRleCAxZDc5NjdkYjlj MC4uNzYwMTNkYWNkZWEgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNo NjQub3B0DQo+ID4gKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQub3B0DQo+ID4gQEAg LTMwMiwzICszMDIsMTggQEAgQ29uc3RhbnQgbWVtc2V0IHNpemUgaW4gYnl0ZXMgZnJvbSB3aGlj aCB0byBzdGFydCB1c2luZyBNT1BTIHNlcXVlbmNlLg0KPiA+ICAtcGFyYW09YWFyY2g2NC12ZWN0 LXVucm9sbC1saW1pdD0NCj4gPiAgVGFyZ2V0IEpvaW5lZCBVSW50ZWdlciBWYXIoYWFyY2g2NF92 ZWN0X3Vucm9sbF9saW1pdCkgSW5pdCg0KSBQYXJhbQ0KPiA+ICBMaW1pdCBob3cgbXVjaCB0aGUg YXV0b3ZlY3Rvcml6ZXIgbWF5IHVucm9sbCBhIGxvb3AuDQo+ID4gKw0KPiA+ICs7OyAtbXZlY2xp YmFiaT0NCj4gPiArVGFyZ2V0VmFyaWFibGUNCj4gPiArZW51bSBhYXJjaDY0X3ZlY2xpYmFiaSBh YXJjaDY0X3ZlY2xpYmFiaV90eXBlID0gYWFyY2g2NF92ZWNsaWJhYmlfdHlwZV9ub25lDQo+ID4g Kw0KPiA+ICttdmVjbGliYWJpPQ0KPiA+ICtUYXJnZXQgUmVqZWN0TmVnYXRpdmUgSm9pbmVkIFZh cihhYXJjaDY0X3ZlY2xpYmFiaV90eXBlKSBFbnVtKGFhcmNoNjRfdmVjbGliYWJpKSBJbml0KGFh cmNoNjRfdmVjbGliYWJpX3R5cGVfbm9uZSkNCj4gPiArVmVjdG9yIGxpYnJhcnkgQUJJIHRvIHVz ZS4NCj4gPiArDQo+ID4gK0VudW0NCj4gPiArTmFtZShhYXJjaDY0X3ZlY2xpYmFiaSkgVHlwZShl bnVtIGFhcmNoNjRfdmVjbGliYWJpKQ0KPiA+ICtLbm93biB2ZWN0b3JpemF0aW9uIGxpYnJhcnkg QUJJcyAoZm9yIHVzZSB3aXRoIHRoZSAtbXZlY2xpYmFiaT0gb3B0aW9uKToNCj4gPiArDQo+ID4g K0VudW1WYWx1ZQ0KPiA+ICtFbnVtKGFhcmNoNjRfdmVjbGliYWJpKSBTdHJpbmcoc2xlZWZnbnUp IFZhbHVlKGFhcmNoNjRfdmVjbGliYWJpX3R5cGVfc2xlZWZnbnUpDQo+ID4gZGlmZiAtLWdpdCBh L2djYy9kb2MvaW52b2tlLnRleGkgYi9nY2MvZG9jL2ludm9rZS50ZXhpDQo+ID4gaW5kZXggYTM4 NTQ3ZjUzZTUuLjcxZmJiZjI3NTIyIDEwMDY0NA0KPiA+IC0tLSBhL2djYy9kb2MvaW52b2tlLnRl eGkNCj4gPiArKysgYi9nY2MvZG9jL2ludm9rZS50ZXhpDQo+ID4gQEAgLTIwMzgzLDYgKzIwMzgz LDIxIEBAIGFjcm9zcyByZWxlYXNlcy4NCj4gPg0KPiA+ICBUaGlzIG9wdGlvbiBpcyBvbmx5IGlu dGVuZGVkIHRvIGJlIHVzZWZ1bCB3aGVuIGRldmVsb3BpbmcgR0NDLg0KPiA+DQo+ID4gK0BvcGlu ZGV4IG12ZWNsaWJhYmkNCj4gPiArQGl0ZW0gLW12ZWNsaWJhYmk9QHZhcnt0eXBlfQ0KPiA+ICtT cGVjaWZpZXMgdGhlIEFCSSB0eXBlIHRvIHVzZSBmb3IgdmVjdG9yaXppbmcgaW50cmluc2ljcyB1 c2luZyBhbg0KPiA+ICtleHRlcm5hbCBsaWJyYXJ5LiAgVGhlIG9ubHkgdHlwZSBzdXBwb3J0ZWQg YXQgcHJlc2VudCBpcyBAc2FtcHtzbGVlZmdudX0sDQo+ID4gK3doaWNoIHNwZWNpZmllcyB0byB1 c2UgdGhlIEdOVSBBQkkgdmFyaWFudCBvZiB0aGUgU2xlZWYgVmVjdG9yaXplZA0KPiA+ICtNYXRo IExpYnJhcnkuIFRoaXMgZmxhZyBjYW4gYmUgdXNlZCBmb3IgYm90aCwgQWR2YW5jZWQgU0lNRCAo TkVPTikgYW5kIFNWRS4NCj4gPiArDQo+ID4gK0dDQyBjdXJyZW50bHkgZW1pdHMgdmVjdG9yaXpl ZCBjYWxscyB0byBAY29kZXtleHB9LCBAY29kZXtsb2d9LCBAY29kZXtsb2cxMH0sDQo+ID4gK0Bj b2Rle3Rhbmh9LCBAY29kZXt0YW59LCBAY29kZXthdGFufSwgQGNvZGV7YXRhbmh9LCBAY29kZXtj YnJ0fSwgQGNvZGV7c2luaH0sDQo+ID4gK0Bjb2Rle3Npbn0sIEBjb2Rle2FzaW5ofSBhbmQgQGNv ZGV7YXNpbn0gd2hlbiBwb3NzaWJsZSBhbmQgcHJvZml0YWJsZQ0KPiA+ICtvbiBBQXJjaDY0Lg0K PiA+ICsNCj4gPiArQm90aCBAb3B0aW9uey1mdHJlZS12ZWN0b3JpemV9IGFuZCBAb3B0aW9uey1m dW5zYWZlLW1hdGgtb3B0aW1pemF0aW9uc30NCj4gPiArbXVzdCBhbHNvIGJlIGVuYWJsZWQuIFRo ZSBsaWJzbGVlZmdudSBtdXN0IGJlIHNwZWNpZmllZCBhdCBsaW5rIHRpbWUuDQo+ID4gKw0KPiA+ ICBAb3BpbmRleCBtdmVyYm9zZS1jb3N0LWR1bXANCj4gPiAgQGl0ZW0gLW12ZXJib3NlLWNvc3Qt ZHVtcA0KPiA+ICBFbmFibGUgdmVyYm9zZSBjb3N0IG1vZGVsIGR1bXBpbmcgaW4gdGhlIGRlYnVn IGR1bXAgZmlsZXMuICBUaGlzIG9wdGlvbiBpcw0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC92ZWN0LXZlY2FiaS1zbGVlZmdudS1uZW9uLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC92ZWN0LXZlY2FiaS0NCj4gc2xlZWZnbnUtbmVv bi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMC4uZTlm NjA3OGNkMTINCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvdmVjdC12ZWNhYmktc2xlZWZnbnUtbmVvbi5jDQo+ID4gQEAgLTAsMCAr MSwxNiBAQA0KPiA+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiA+ICsvKiB7IGRnLW9wdGlv bnMgIi1PMyAtbWFyY2g9YXJtdjgtYStzaW1kIC1mdHJlZS12ZWN0b3JpemUgLW12ZWNsaWJhYmk9 c2xlZWZnbnUgLWZmYXN0LW1hdGgiIH0gKi8NCj4gPiArDQo+ID4gK2V4dGVybiBmbG9hdCBzaW5m KGZsb2F0KTsNCj4gPiArDQo+ID4gK2Zsb2F0IHhbMjU2XTsNCj4gPiArDQo+ID4gK3ZvaWQgZm9v KHZvaWQpDQo+ID4gK3sNCj4gPiArICBpbnQgaTsNCj4gPiArDQo+ID4gKyAgZm9yIChpPTA7IGk8 MjU2OyArK2kpDQo+ID4gKyAgICB4W2ldID0gc2luZih4W2ldKTsNCj4gPiArfQ0KPiA+ICsNCj4g PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJfWkdWbk40dl9zaW5mIiB9IH0gKi8N Cj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvdmVjdC12 ZWNhYmktc2xlZWZnbnUtc3ZlLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC92 ZWN0LXZlY2FiaS0NCj4gc2xlZWZnbnUtc3ZlLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+IGluZGV4IDAwMDAwMDAwMDAwLi44MzE5YWU0MjBlMQ0KPiA+IC0tLSAvZGV2L251bGwNCj4g PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC92ZWN0LXZlY2FiaS1zbGVl ZmdudS1zdmUuYw0KPiA+IEBAIC0wLDAgKzEsMTYgQEANCj4gPiArLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCj4gPiArLyogeyBkZy1vcHRpb25zICItTzMgLW1hcmNoPWFybXY4LWErc3ZlIC1mdHJl ZS12ZWN0b3JpemUgLW12ZWNsaWJhYmk9c2xlZWZnbnUgLWZmYXN0LW1hdGgiIH0gKi8NCj4gPiAr DQo+ID4gK2V4dGVybiBmbG9hdCBzaW5mKGZsb2F0KTsNCj4gPiArDQo+ID4gK2Zsb2F0IHhbMjU2 XTsNCj4gPiArDQo+ID4gK3ZvaWQgZm9vKHZvaWQpDQo+ID4gK3sNCj4gPiArICBpbnQgaTsNCj4g PiArDQo+ID4gKyAgZm9yIChpPTA7IGk8MjU2OyArK2kpDQo+ID4gKyAgICB4W2ldID0gc2luZih4 W2ldKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy ICJfWkdWc054dl9zaW5mIiB9IH0gKi8NCj4gPiAtLQ0KPiA+IDIuMjUuMQ0KPiA+DQo=