From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web12.4743.1585277469491977334 for ; Thu, 26 Mar 2020 19:51:09 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: jian.j.wang@intel.com) IronPort-SDR: PJH8txcRAQN3WvFpE4Q/1e3uMhVpNsxFWKAMdKlf4b5lr5zVHM7qC1CFICa6BfxHR5+3P3T9Zh 6o3nBC65fhFA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Mar 2020 19:51:07 -0700 IronPort-SDR: R+H2qOVCdz/fErguuQGu60BjTbnLcMCLWgtKnICWoax5R1kp7p4P+2WYc8WQ9zybh3d5YmM7HI Tlys/FdO5Ysg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,310,1580803200"; d="scan'208";a="240847860" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga008.fm.intel.com with ESMTP; 26 Mar 2020 19:51:09 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 26 Mar 2020 19:51:09 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 26 Mar 2020 19:51:08 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 26 Mar 2020 19:51:08 -0700 Received: from shsmsx107.ccr.corp.intel.com ([169.254.9.232]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.201]) with mapi id 14.03.0439.000; Fri, 27 Mar 2020 10:51:06 +0800 From: "Wang, Jian J" To: "Gao, Zhichao" , "Kinney, Michael D" , "devel@edk2.groups.io" CC: "Lu, XiaoyuX" Subject: Re: [edk2-devel] [PATCH 8/8] CryptoPkg/BaseCryptLib: Use Pcd to control the SHA1 enablement Thread-Topic: [edk2-devel] [PATCH 8/8] CryptoPkg/BaseCryptLib: Use Pcd to control the SHA1 enablement Thread-Index: AQHWA9sGqbwJNani9EqrI1DVrFjDnqhbKimAgAALMoCAAIeIcA== Date: Fri, 27 Mar 2020 02:51:05 +0000 Message-ID: References: <20200327015629.2588-1-zhichao.gao@intel.com> <20200327015629.2588-9-zhichao.gao@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: jian.j.wang@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WmhpY2hhbywNCg0KWW91IGNhbiBqdXN0IHVzZSB0aGUgUENEIGluIEMgY29kZSAiaWYgKFBjZEdl dC4uLil7fSIgaW5zdGVhZCBvZiBtYWNybyAjaWYuDQoNClJlZ2FyZHMsDQpKaWFuDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2FvLCBaaGljaGFvIDx6aGljaGFvLmdh b0BpbnRlbC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjcsIDIwMjAgMTA6NDQgQU0NCj4g VG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGRldmVs QGVkazIuZ3JvdXBzLmlvDQo+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNv bT47IEx1LCBYaWFveXVYIDx4aWFveXV4Lmx1QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtl ZGsyLWRldmVsXSBbUEFUQ0ggOC84XSBDcnlwdG9Qa2cvQmFzZUNyeXB0TGliOiBVc2UgUGNkIHRv DQo+IGNvbnRyb2wgdGhlIFNIQTEgZW5hYmxlbWVudA0KPiANCj4gSGkgTWlrZSwNCj4gDQo+IEl0 IGlzIGJldHRlciB0byBub3QgY29tcGlsZSB0aGUgZGVwcmVjYXRlZCBmdW5jdGlvbiwgaS5lLiBk aXNhYmxlIHRoZSBmdW5jdGlvbiBhdA0KPiBidWlsZCB0aW1lLiBJcyB0aGVyZSBhbm90aGVyIHdh eSB0byBkaXNhYmxlIHRoZSBmdW5jdGlvbiBhdCBidWlsZCB0aW1lIGV4Y2VwdCB0aGUNCj4gI2lm IHN0YXRlbWVudD8NCj4gDQo+IFRoYW5rcywNCj4gWmhpY2hhbw0KPiANCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gU2VudDog RnJpZGF5LCBNYXJjaCAyNywgMjAyMCAxMDowNCBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksDQo+ID4g TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogV2FuZywgSmlh biBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WCA8eGlhb3l1eC5sdUBpbnRl bC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggOC84XSBDcnlwdG9Q a2cvQmFzZUNyeXB0TGliOiBVc2UgUGNkIHRvDQo+ID4gY29udHJvbCB0aGUgU0hBMSBlbmFibGVt ZW50DQo+ID4NCj4gPiBXZSBzaG91bGQgbm90IHVzZSAjaWYgc3RhdGVtZW50cyBpbiBDIGNvZGUu DQo+ID4NCj4gPiBBbHNvLCB3ZSBzaG91bGQgbm90IGJlIGNoYW5naW5nIHRoZSBsYXlvdXQgb2Yg dGhlIHN0cnVjdHVyZSBiYXNlZCBvbiBhIFBDRA0KPiA+IGZlYXR1cmUgZmxhZy4NCj4gPg0KPiA+ IEkgYWdyZWUgd2UgbmVlZCB0byBhYmlsaXR5IHRvIGRpc2FibGUgdGhlIHVzZSBvZiBzb21lIENy eXB0byBzZXJ2aWNlcywgYnV0IHdlDQo+ID4gbmVlZCB0byBkZWNpZGUgd2hhdCBiZWhhdmlvciB3 ZSB3YW50IGF0IGJ1aWxkIHRpbWUgYW5kIGJvb3QgdGltZSBpZiB0aGVyZSBpcw0KPiA+IGNvZGUg dGhhdCB1c2VzIGEgZGlzYWJsZWQgc2VydmljZS4NCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+DQo+ ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgR2FvLA0KPiA+ID4g WmhpY2hhbw0KPiA+ID4gU2VudDogVGh1cnNkYXksIE1hcmNoIDI2LCAyMDIwIDY6NTYgUE0NCj4g PiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlh bi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVgNCj4gPiA+IDx4aWFveXV4Lmx1QGludGVs LmNvbT4NCj4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggOC84XSBDcnlwdG9Qa2cv QmFzZUNyeXB0TGliOg0KPiA+ID4gVXNlIFBjZCB0byBjb250cm9sIHRoZSBTSEExIGVuYWJsZW1l bnQNCj4gPiA+DQo+ID4gPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MTY4Mg0KPiA+ID4NCj4gPiA+IE1kNSBhbmQgU0hBMSBpcyBub3Qgc2VjdXJl IGFueSBsb25nZXIgYnV0IHVlZmkgc3BlYyBuZWVkIHRvIGtlZXAgdGhlbQ0KPiA+ID4gZm9yIGJh Y2t3YXJkcyBjb21wYXRpYmlsaXR5Lg0KPiA+ID4gVXNlIHBjZCBQY2RTSEExRW5hYmxlIHRvIGNv bnRyb2wgdGhlIFNIQTEgZnVuY3Rpb24gZW5hYmxlbWVudC4NCj4gPiA+IFdoZW4gZGlzYWJsZSB0 aGUgU0hBMSBmdW5jdGlvbnMgd291bGQgbm90IGJlIGNvbXBsaWVkLg0KPiA+ID4NCj4gPiA+IENj OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IFhpYW95dSBM dSA8eGlhb3l1eC5sdUBpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBaaGljaGFvIEdh byA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgQ3J5cHRvUGtnL0Ry aXZlci9DcnlwdG8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gPiA4ICsrKysr KysrDQo+ID4gPiAgQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL0Jhc2VDcnlwdExpYi5p bmYgICAgICB8DQo+ID4gPiAxICsNCj4gPiA+ICBDcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRM aWIvSG1hYy9DcnlwdEhtYWNTaGExLmMgIHwNCj4gPiA+IDMgKysrDQo+ID4gPiAgLi4uL0xpYnJh cnkvQmFzZUNyeXB0TGliL0htYWMvQ3J5cHRIbWFjU2hhMU51bGwuYyAgICB8DQo+ID4gPiAzICsr Kw0KPiA+ID4gIENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9QZWlDcnlwdExpYi5pbmYg ICAgICAgfA0KPiA+ID4gMSArDQo+ID4gPiAgQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGli L1BrL0NyeXB0UGtjczVQYmtkZjIuYyB8DQo+ID4gPiAzICsrKw0KPiA+ID4gIENyeXB0b1BrZy9M aWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFJzYUJhc2ljLmMgICAgfA0KPiA+ID4gMiArKw0K PiA+ID4gIENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFJzYUV4dC5jICAg ICAgfA0KPiA+ID4gMiArKw0KPiA+ID4gIENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9S dW50aW1lQ3J5cHRMaWIuaW5mICAgfA0KPiA+ID4gMSArDQo+ID4gPiAgQ3J5cHRvUGtnL0xpYnJh cnkvQmFzZUNyeXB0TGliL1NtbUNyeXB0TGliLmluZiAgICAgICB8DQo+ID4gPiAxICsNCj4gPiA+ ICAuLi4vQmFzZUNyeXB0TGliTnVsbC9IbWFjL0NyeXB0SG1hY1NoYTFOdWxsLmMgICAgICAgIHwN Cj4gPiA+IDQgKysrLQ0KPiA+ID4gIC4uLi9MaWJyYXJ5L0Jhc2VDcnlwdExpYk9uUHJvdG9jb2xQ cGkvQ3J5cHRMaWIuYyAgICAgfA0KPiA+ID4gNCArKysrDQo+ID4gPiAgQ3J5cHRvUGtnL0xpYnJh cnkvQmFzZUhhc2hBcGlMaWIvQmFzZUhhc2hBcGlMaWIuYyAgICB8DQo+ID4gPiAxMiArKysrKysr KysrKysNCj4gPiA+ICBDcnlwdG9Qa2cvTGlicmFyeS9CYXNlSGFzaEFwaUxpYi9CYXNlSGFzaEFw aUxpYi5pbmYgIHwNCj4gPiA+IDEgKw0KPiA+ID4gIENyeXB0b1BrZy9Qcml2YXRlL1Byb3RvY29s L0NyeXB0by5oICAgICAgICAgICAgICAgICAgfA0KPiA+ID4gOSArKysrKysrKy0NCj4gPiA+ICAx NSBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+ID4N Cj4gPiA+IGRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvRHJpdmVyL0NyeXB0by5jIGIvQ3J5cHRvUGtn L0RyaXZlci9DcnlwdG8uYw0KPiA+ID4gaW5kZXggYjUzZGE4NWJhZC4uZjc5MDIyMDViMyAxMDA2 NDQNCj4gPiA+IC0tLSBhL0NyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMNCj4gPiA+ICsrKyBiL0Ny eXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMNCj4gPiA+IEBAIC0yNjYsNiArMjY2LDcgQEAgQ3J5cHRv U2VydmljZU1kNUhhc2hBbGwgKCAgfSAgI2VuZGlmDQo+ID4gPg0KPiA+ID4gKyNpZiAoRml4ZWRQ Y2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiA+ICAvKioNCj4gPiA+ICAgIFJldHJpZXZl cyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBjb250ZXh0IGJ1ZmZlciByZXF1aXJlZCBmb3IN Cj4gPiA+IFNIQS0xIGhhc2ggb3BlcmF0aW9ucy4NCj4gPiA+DQo+ID4gPiBAQCAtNDIzLDYgKzQy NCw3IEBAIENyeXB0b1NlcnZpY2VTaGExSGFzaEFsbCAoICB7DQo+ID4gPiAgICByZXR1cm4gQ0FM TF9CQVNFQ1JZUFRMSUIgKFNoYTEuU2VydmljZXMuSGFzaEFsbCwgU2hhMUhhc2hBbGwsDQo+ID4g PiAoRGF0YSwgRGF0YVNpemUsIEhhc2hWYWx1ZSksIEZBTFNFKTsgIH0NCj4gPiA+ICsjZW5kaWYN Cj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiAgICBSZXRyaWV2ZXMgdGhlIHNpemUsIGluIGJ5dGVz LCBvZiB0aGUgY29udGV4dCBidWZmZXINCj4gPiA+IHJlcXVpcmVkIGZvciBTSEEtMjU2IGhhc2gg b3BlcmF0aW9ucy4NCj4gPiA+IEBAIC0xMTc3LDYgKzExNzksNyBAQCBDcnlwdG9TZXJ2aWNlSG1h Y01kNUZpbmFsICgNCj4gPiA+ICB9DQo+ID4gPiAgI2VuZGlmDQo+ID4gPg0KPiA+ID4gKyNpZiAo Rml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiA+ICAvKioNCj4gPiA+ICAgIEFs bG9jYXRlcyBhbmQgaW5pdGlhbGl6ZXMgb25lIEhNQUNfQ1RYIGNvbnRleHQgZm9yDQo+ID4gPiBz dWJzZXF1ZW50IEhNQUMtU0hBMSB1c2UuDQo+ID4gPg0KPiA+ID4gQEAgLTEzMjcsNiArMTMzMCw3 IEBAIENyeXB0b1NlcnZpY2VIbWFjU2hhMUZpbmFsICgNCj4gPiA+ICB7DQo+ID4gPiAgICByZXR1 cm4gQ0FMTF9CQVNFQ1JZUFRMSUIgKEhtYWNTaGExLlNlcnZpY2VzLkZpbmFsLA0KPiA+ID4gSG1h Y1NoYTFGaW5hbCwgKEhtYWNTaGExQ29udGV4dCwgSG1hY1ZhbHVlKSwgRkFMU0UpOw0KPiA+ID4g IH0NCj4gPiA+ICsjZW5kaWYNCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiAgICBBbGxvY2F0ZXMg YW5kIGluaXRpYWxpemVzIG9uZSBITUFDX0NUWCBjb250ZXh0IGZvcg0KPiA+ID4gc3Vic2VxdWVu dCBITUFDLVNIQTI1NiB1c2UuDQo+ID4gPiBAQCAtMzgyMCw2ICszODI0LDcgQEAgY29uc3QgRURL SUlfQ1JZUFRPX1BST1RPQ09MDQo+ID4gPiBtRWRraWlDcnlwdG8gPSB7DQo+ID4gPiAgICBDcnlw dG9TZXJ2aWNlSG1hY01kNVVwZGF0ZSwNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VIbWFjTWQ1Rmlu YWwsDQo+ID4gPiAgI2VuZGlmDQo+ID4gPiArI2lmIChGaXhlZFBjZEdldEJvb2wgKFBjZFNIQTFF bmFibGUpKQ0KPiA+ID4gICAgLy8vIEhNQUMgU0hBMQ0KPiA+ID4gICAgQ3J5cHRvU2VydmljZUht YWNTaGExTmV3LA0KPiA+ID4gICAgQ3J5cHRvU2VydmljZUhtYWNTaGExRnJlZSwNCj4gPiA+IEBA IC0zODI3LDYgKzM4MzIsNyBAQCBjb25zdCBFREtJSV9DUllQVE9fUFJPVE9DT0wNCj4gPiA+IG1F ZGtpaUNyeXB0byA9IHsNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VIbWFjU2hhMUR1cGxpY2F0ZSwN Cj4gPiA+ICAgIENyeXB0b1NlcnZpY2VIbWFjU2hhMVVwZGF0ZSwNCj4gPiA+ICAgIENyeXB0b1Nl cnZpY2VIbWFjU2hhMUZpbmFsLA0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gICAgLy8vIEhNQUMgU0hB MjU2DQo+ID4gPiAgICBDcnlwdG9TZXJ2aWNlSG1hY1NoYTI1Nk5ldywNCj4gPiA+ICAgIENyeXB0 b1NlcnZpY2VIbWFjU2hhMjU2RnJlZSwNCj4gPiA+IEBAIC0zODc3LDYgKzM4ODMsNyBAQCBjb25z dCBFREtJSV9DUllQVE9fUFJPVE9DT0wNCj4gPiA+IG1FZGtpaUNyeXB0byA9IHsNCj4gPiA+ICAg IENyeXB0b1NlcnZpY2VSc2FQa2NzMVZlcmlmeSwNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VSc2FH ZXRQcml2YXRlS2V5RnJvbVBlbSwNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VSc2FHZXRQdWJsaWNL ZXlGcm9tWDUwOSwNCj4gPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkp DQo+ID4gPiAgICAvLy8gU2hhMQ0KPiA+ID4gICAgQ3J5cHRvU2VydmljZVNoYTFHZXRDb250ZXh0 U2l6ZSwNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VTaGExSW5pdCwNCj4gPiA+IEBAIC0zODg0LDYg KzM4OTEsNyBAQCBjb25zdCBFREtJSV9DUllQVE9fUFJPVE9DT0wNCj4gPiA+IG1FZGtpaUNyeXB0 byA9IHsNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VTaGExVXBkYXRlLA0KPiA+ID4gICAgQ3J5cHRv U2VydmljZVNoYTFGaW5hbCwNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VTaGExSGFzaEFsbCwNCj4g PiA+ICsjZW5kaWYNCj4gPiA+ICAgIC8vLyBTaGEyNTYNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VT aGEyNTZHZXRDb250ZXh0U2l6ZSwNCj4gPiA+ICAgIENyeXB0b1NlcnZpY2VTaGEyNTZJbml0LA0K PiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIv QmFzZUNyeXB0TGliLmluZg0KPiA+ID4gYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIv QmFzZUNyeXB0TGliLmluZg0KPiA+ID4gaW5kZXggNWM2NWVmNTg5Mi4uOWZmZDk4MDk2YyAxMDA2 NDQNCj4gPiA+IC0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9CYXNlQ3J5cHRM aWIuaW5mDQo+ID4gPiArKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvQmFzZUNy eXB0TGliLmluZg0KPiA+ID4gQEAgLTg1LDYgKzg1LDcgQEANCj4gPiA+DQo+ID4gPiAgW1BjZF0N Cj4gPiA+ICAgIGdFZmlDcnlwdG9Qa2dUb2tlblNwYWNlR3VpZC5QY2RNRDVFbmFibGUNCj4gPiA+ ICsgIGdFZmlDcnlwdG9Qa2dUb2tlblNwYWNlR3VpZC5QY2RTSEExRW5hYmxlDQo+ID4gPg0KPiA+ ID4gICMNCj4gPiA+ICAjIFJlbW92ZSB0aGVzZSBbQnVpbGRPcHRpb25zXSBhZnRlciB0aGlzIGxp YnJhcnkgaXMNCj4gPiA+IGNsZWFuZWQgdXANCj4gPiA+IGRpZmYgLS1naXQNCj4gPiA+IGEvQ3J5 cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL0htYWMvQ3J5cHRIbWFjU2hhMS5jDQo+ID4gPiBi L0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY1NoYTEuYw0KPiA+ ID4gaW5kZXggNzU5M2NhNTViMS4uYmFiYTZiMjY3YyAxMDA2NDQNCj4gPiA+IC0tLSBhL0NyeXB0 b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY1NoYTEuYw0KPiA+ID4gKysr IGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL0htYWMvQ3J5cHRIbWFjU2hhMS5jDQo+ ID4gPiBAQCAtNiw2ICs2LDggQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS0NCj4gPiA+IFBhdGVudA0KPiA+ID4NCj4gPiA+ICAqKi8NCj4gPiA+DQo+ID4gPiArI2luY2x1 ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ID4gPiArI2lmIChGaXhlZFBjZEdldEJvb2wgKFBjZFNI QTFFbmFibGUpKQ0KPiA+ID4gICNpbmNsdWRlICJJbnRlcm5hbENyeXB0TGliLmgiDQo+ID4gPiAg I2luY2x1ZGUgPG9wZW5zc2wvaG1hYy5oPg0KPiA+ID4NCj4gPiA+IEBAIC0yMTQsMyArMjE2LDQg QEAgSG1hY1NoYTFGaW5hbCAoDQo+ID4gPg0KPiA+ID4gICAgcmV0dXJuIFRSVUU7DQo+ID4gPiAg fQ0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gYS9DcnlwdG9Qa2cvTGli cmFyeS9CYXNlQ3J5cHRMaWIvSG1hYy9DcnlwdEhtYWNTaGExTnVsbC5jDQo+ID4gPiBiL0NyeXB0 b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY1NoYTFOdWxsLmMNCj4gPiA+ IGluZGV4IGU4YzBmMzQxYjcuLjEzMTRmYTFhNzcgMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiA+IGEv Q3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL0htYWMvQ3J5cHRIbWFjU2hhMU51bGwuYw0K PiA+ID4gKysrDQo+ID4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0Ny eXB0SG1hY1NoYTFOdWxsLmMNCj4gPiA+IEBAIC02LDYgKzYsOCBAQCBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLQ0KPiA+ID4gUGF0ZW50DQo+ID4gPg0KPiA+ID4gICoqLw0K PiA+ID4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPiA+ICsjaWYgKEZp eGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gPiAgI2luY2x1ZGUgIkludGVybmFs Q3J5cHRMaWIuaCINCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiBAQCAtMTM3LDMgKzEzOSw0IEBA IEhtYWNTaGExRmluYWwgKA0KPiA+ID4gICAgQVNTRVJUIChGQUxTRSk7DQo+ID4gPiAgICByZXR1 cm4gRkFMU0U7DQo+ID4gPiAgfQ0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGVpQ3J5cHRMaWIuaW5mDQo+ID4g PiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9QZWlDcnlwdExpYi5pbmYNCj4gPiA+ IGluZGV4IGNlYmM3NGNjZjIuLmI0MGU3NmYyNDMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9DcnlwdG9Q a2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGVpQ3J5cHRMaWIuaW5mDQo+ID4gPiArKysgYi9Dcnlw dG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGVpQ3J5cHRMaWIuaW5mDQo+ID4gPiBAQCAtNzgs NiArNzgsNyBAQA0KPiA+ID4NCj4gPiA+ICBbUGNkXQ0KPiA+ID4gICAgZ0VmaUNyeXB0b1BrZ1Rv a2VuU3BhY2VHdWlkLlBjZE1ENUVuYWJsZQ0KPiA+ID4gKyAgZ0VmaUNyeXB0b1BrZ1Rva2VuU3Bh Y2VHdWlkLlBjZFNIQTFFbmFibGUNCj4gPiA+DQo+ID4gPiAgIw0KPiA+ID4gICMgUmVtb3ZlIHRo ZXNlIFtCdWlsZE9wdGlvbnNdIGFmdGVyIHRoaXMgbGlicmFyeSBpcw0KPiA+ID4gY2xlYW5lZCB1 cA0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRM aWIvUGsvQ3J5cHRQa2NzNVBia2RmMi5jDQo+ID4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VD cnlwdExpYi9Qay9DcnlwdFBrY3M1UGJrZGYyLmMNCj4gPiA+IGluZGV4IGE4OWMxNTI1YzEuLjE1 ZTZiYzJjYjQgMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiA+IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFz ZUNyeXB0TGliL1BrL0NyeXB0UGtjczVQYmtkZjIuYw0KPiA+ID4gKysrDQo+ID4gPiBiL0NyeXB0 b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFBrY3M1UGJrZGYyLmMNCj4gPiA+IEBA IC03LDYgKzcsNyBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLQ0KPiA+ ID4gUGF0ZW50DQo+ID4gPiAgKiovDQo+ID4gPg0KPiA+ID4gICNpbmNsdWRlICJJbnRlcm5hbENy eXB0TGliLmgiDQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ID4gPiAgI2lu Y2x1ZGUgPG9wZW5zc2wvZXZwLmg+DQo+ID4gPiAgI2luY2x1ZGUgPG9wZW5zc2wvaG1hYy5oPg0K PiA+ID4NCj4gPiA+IEBAIC02OCw5ICs2OSwxMSBAQCBQa2NzNUhhc2hQYXNzd29yZCAoDQo+ID4g PiAgICAvLyBNYWtlIHN1cmUgdGhlIGRpZ2VzdCBhbGdvcml0aG0gaXMgc3VwcG9ydGVkLg0KPiA+ ID4gICAgLy8NCj4gPiA+ICAgIHN3aXRjaCAoRGlnZXN0U2l6ZSkgew0KPiA+ID4gKyNpZiAoRml4 ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiA+ICAgIGNhc2UgU0hBMV9ESUdFU1Rf U0laRToNCj4gPiA+ICAgICAgSGFzaEFsZyA9IEVWUF9zaGExKCk7DQo+ID4gPiAgICAgIGJyZWFr Ow0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gICAgY2FzZSBTSEEyNTZfRElHRVNUX1NJWkU6DQo+ID4g PiAgICAgIEhhc2hBbGcgPSBFVlBfc2hhMjU2KCk7DQo+ID4gPiAgICAgIGJyZWFrOw0KPiA+ID4g ZGlmZiAtLWdpdA0KPiA+ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5 cHRSc2FCYXNpYy5jDQo+ID4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9D cnlwdFJzYUJhc2ljLmMNCj4gPiA+IGluZGV4IDMxYjc4NDY0ZDIuLjU0OWVlMWI5MzMgMTAwNjQ0 DQo+ID4gPiAtLS0gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRSc2FC YXNpYy5jDQo+ID4gPiArKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5 cHRSc2FCYXNpYy5jDQo+ID4gPiBAQCAtMjk4LDkgKzI5OCwxMSBAQCBSc2FQa2NzMVZlcmlmeSAo DQo+ID4gPiAgICAgIGJyZWFrOw0KPiA+ID4gICNlbmRpZg0KPiA+ID4NCj4gPiA+ICsjaWYgKEZp eGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gPiAgICBjYXNlIFNIQTFfRElHRVNU X1NJWkU6DQo+ID4gPiAgICAgIERpZ2VzdFR5cGUgPSBOSURfc2hhMTsNCj4gPiA+ICAgICAgYnJl YWs7DQo+ID4gPiArI2VuZGlmDQo+ID4gPg0KPiA+ID4gICAgY2FzZSBTSEEyNTZfRElHRVNUX1NJ WkU6DQo+ID4gPiAgICAgIERpZ2VzdFR5cGUgPSBOSURfc2hhMjU2Ow0KPiA+ID4gZGlmZiAtLWdp dA0KPiA+ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRSc2FFeHQu Yw0KPiA+ID4gYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRSc2FFeHQu Yw0KPiA+ID4gaW5kZXggMWE1MGJlMWQ3OC4uNjA2MDVlMzQ4NiAxMDA2NDQNCj4gPiA+IC0tLSBh L0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFJzYUV4dC5jDQo+ID4gPiAr KysgYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRSc2FFeHQuYw0KPiA+ ID4gQEAgLTMzNiw5ICszMzYsMTEgQEAgUnNhUGtjczFTaWduICgNCj4gPiA+ICAgICAgYnJlYWs7 DQo+ID4gPiAgI2VuZGlmDQo+ID4gPg0KPiA+ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RT SEExRW5hYmxlKSkNCj4gPiA+ICAgIGNhc2UgU0hBMV9ESUdFU1RfU0laRToNCj4gPiA+ICAgICAg RGlnZXN0VHlwZSA9IE5JRF9zaGExOw0KPiA+ID4gICAgICBicmVhazsNCj4gPiA+ICsjZW5kaWYN Cj4gPiA+DQo+ID4gPiAgICBjYXNlIFNIQTI1Nl9ESUdFU1RfU0laRToNCj4gPiA+ICAgICAgRGln ZXN0VHlwZSA9IE5JRF9zaGEyNTY7DQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL0NyeXB0b1Br Zy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9SdW50aW1lQ3J5cHRMaWIuaW5mDQo+ID4gPiBiL0NyeXB0 b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9SdW50aW1lQ3J5cHRMaWIuaW5mDQo+ID4gPiBpbmRl eCA3MmQ0Y2QwM2FiLi5iNmMwYmU3MGYyIDEwMDY0NA0KPiA+ID4gLS0tIGEvQ3J5cHRvUGtnL0xp YnJhcnkvQmFzZUNyeXB0TGliL1J1bnRpbWVDcnlwdExpYi5pbmYNCj4gPiA+ICsrKyBiL0NyeXB0 b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9SdW50aW1lQ3J5cHRMaWIuaW5mDQo+ID4gPiBAQCAt OTAsNiArOTAsNyBAQA0KPiA+ID4NCj4gPiA+ICBbUGNkXQ0KPiA+ID4gICAgZ0VmaUNyeXB0b1Br Z1Rva2VuU3BhY2VHdWlkLlBjZE1ENUVuYWJsZQ0KPiA+ID4gKyAgZ0VmaUNyeXB0b1BrZ1Rva2Vu U3BhY2VHdWlkLlBjZFNIQTFFbmFibGUNCj4gPiA+DQo+ID4gPiAgIw0KPiA+ID4gICMgUmVtb3Zl IHRoZXNlIFtCdWlsZE9wdGlvbnNdIGFmdGVyIHRoaXMgbGlicmFyeSBpcw0KPiA+ID4gY2xlYW5l ZCB1cA0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5 cHRMaWIvU21tQ3J5cHRMaWIuaW5mDQo+ID4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlw dExpYi9TbW1DcnlwdExpYi5pbmYNCj4gPiA+IGluZGV4IDIxZjEwNGM5MTYuLjdmNjc4ZWVlOTMg MTAwNjQ0DQo+ID4gPiAtLS0gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvU21tQ3J5 cHRMaWIuaW5mDQo+ID4gPiArKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvU21t Q3J5cHRMaWIuaW5mDQo+ID4gPiBAQCAtODksNiArODksNyBAQA0KPiA+ID4NCj4gPiA+ICBbUGNk XQ0KPiA+ID4gICAgZ0VmaUNyeXB0b1BrZ1Rva2VuU3BhY2VHdWlkLlBjZE1ENUVuYWJsZQ0KPiA+ ID4gKyAgZ0VmaUNyeXB0b1BrZ1Rva2VuU3BhY2VHdWlkLlBjZFNIQTFFbmFibGUNCj4gPiA+DQo+ ID4gPiAgIw0KPiA+ID4gICMgUmVtb3ZlIHRoZXNlIFtCdWlsZE9wdGlvbnNdIGFmdGVyIHRoaXMg bGlicmFyeSBpcw0KPiA+ID4gY2xlYW5lZCB1cA0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gYS9D cnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJOdWxsL0htYWMvQ3J5cHRIbWFjU2hhMU51DQo+ ID4gPiBsbC5jDQo+ID4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk51bGwvSG1h Yy9DcnlwdEhtYWNTaGExTnUNCj4gPiA+IGxsLmMNCj4gPiA+IGluZGV4IGU4YzBmMzQxYjcuLjNh YWM3OTgxODggMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiA+IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFz ZUNyeXB0TGliTnVsbC9IbWFjL0NyeXB0SG1hY1NoYTFOdQ0KPiA+ID4gbGwuYw0KPiA+ID4gKysr DQo+ID4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk51bGwvSG1hYy9DcnlwdEht YWNTaGExTnUNCj4gPiA+IGxsLmMNCj4gPiA+IEBAIC01LDcgKzUsOCBAQCBDb3B5cmlnaHQgKGMp IDIwMTIgLSAyMDIwLCBJbnRlbA0KPiA+ID4gQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiA+ID4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4gPg0KPiA+ID4gICoqLw0KPiA+ID4gLQ0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5 L1BjZExpYi5oPg0KPiA+ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkN Cj4gPiA+ICAjaW5jbHVkZSAiSW50ZXJuYWxDcnlwdExpYi5oIg0KPiA+ID4NCj4gPiA+ICAvKioN Cj4gPiA+IEBAIC0xMzcsMyArMTM4LDQgQEAgSG1hY1NoYTFGaW5hbCAoDQo+ID4gPiAgICBBU1NF UlQgKEZBTFNFKTsNCj4gPiA+ICAgIHJldHVybiBGQUxTRTsNCj4gPiA+ICB9DQo+ID4gPiArI2Vu ZGlmDQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlw dExpYk9uUHJvdG9jb2xQcGkvQ3J5cHRMaWIuYw0KPiA+ID4gYi9DcnlwdG9Qa2cvTGlicmFyeS9C YXNlQ3J5cHRMaWJPblByb3RvY29sUHBpL0NyeXB0TGliLmMNCj4gPiA+IGluZGV4IGNiYTFlNGM4 YmYuLjg0MjlmZWZjMGIgMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiA+IGEvQ3J5cHRvUGtnL0xpYnJh cnkvQmFzZUNyeXB0TGliT25Qcm90b2NvbFBwaS9DcnlwdExpYi5jDQo+ID4gPiArKysNCj4gPiA+ IGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliT25Qcm90b2NvbFBwaS9DcnlwdExpYi5j DQo+ID4gPiBAQCAtMjYwLDYgKzI2MCw3IEBAIE1kNUhhc2hBbGwgKA0KPiA+ID4gIH0NCj4gPiA+ ICAjZW5kaWYNCj4gPiA+DQo+ID4gPiArI2lmIChGaXhlZFBjZEdldEJvb2wgKFBjZFNIQTFFbmFi bGUpKQ0KPiA+ID4gIC8qKg0KPiA+ID4gICAgUmV0cmlldmVzIHRoZSBzaXplLCBpbiBieXRlcywg b2YgdGhlIGNvbnRleHQgYnVmZmVyDQo+ID4gPiByZXF1aXJlZCBmb3IgU0hBLTEgaGFzaCBvcGVy YXRpb25zLg0KPiA+ID4NCj4gPiA+IEBAIC00MTcsNiArNDE4LDcgQEAgU2hhMUhhc2hBbGwgKA0K PiA+ID4gIHsNCj4gPiA+ICAgIENBTExfQ1JZUFRPX1NFUlZJQ0UgKFNoYTFIYXNoQWxsLCAoRGF0 YSwgRGF0YVNpemUsDQo+ID4gPiBIYXNoVmFsdWUpLCBGQUxTRSk7DQo+ID4gPiAgfQ0KPiA+ID4g KyNlbmRpZg0KPiA+ID4NCj4gPiA+ICAvKioNCj4gPiA+ICAgIFJldHJpZXZlcyB0aGUgc2l6ZSwg aW4gYnl0ZXMsIG9mIHRoZSBjb250ZXh0IGJ1ZmZlcg0KPiA+ID4gcmVxdWlyZWQgZm9yIFNIQS0y NTYgaGFzaCBvcGVyYXRpb25zLg0KPiA+ID4gQEAgLTExNzEsNiArMTE3Myw3IEBAIEhtYWNNZDVG aW5hbCAoDQo+ID4gPiAgfQ0KPiA+ID4gICNlbmRpZg0KPiA+ID4NCj4gPiA+ICsjaWYgKEZpeGVk UGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gPiAgLyoqDQo+ID4gPiAgICBBbGxvY2F0 ZXMgYW5kIGluaXRpYWxpemVzIG9uZSBITUFDX0NUWCBjb250ZXh0IGZvcg0KPiA+ID4gc3Vic2Vx dWVudCBITUFDLVNIQTEgdXNlLg0KPiA+ID4NCj4gPiA+IEBAIC0xMzIxLDYgKzEzMjQsNyBAQCBI bWFjU2hhMUZpbmFsICgNCj4gPiA+ICB7DQo+ID4gPiAgICBDQUxMX0NSWVBUT19TRVJWSUNFIChI bWFjU2hhMUZpbmFsLCAoSG1hY1NoYTFDb250ZXh0LA0KPiA+ID4gSG1hY1ZhbHVlKSwgRkFMU0Up Ow0KPiA+ID4gIH0NCj4gPiA+ICsjZW5kaWYNCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiAgICBB bGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIG9uZSBITUFDX0NUWCBjb250ZXh0IGZvcg0KPiA+ID4g c3Vic2VxdWVudCBITUFDLVNIQTI1NiB1c2UuDQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL0Ny eXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNoQXBpTGliLmMNCj4gPiA+IGIv Q3J5cHRvUGtnL0xpYnJhcnkvQmFzZUhhc2hBcGlMaWIvQmFzZUhhc2hBcGlMaWIuYw0KPiA+ID4g aW5kZXggZjk3OTZiMjE1OC4uNzU0ZDc1YWViMiAxMDA2NDQNCj4gPiA+IC0tLSBhL0NyeXB0b1Br Zy9MaWJyYXJ5L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNoQXBpTGliLmMNCj4gPiA+ICsrKyBiL0Ny eXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNoQXBpTGliLmMNCj4gPiA+IEBA IC0zMyw5ICszMywxMSBAQCBIYXNoQXBpR2V0Q29udGV4dFNpemUgKA0KPiA+ID4gICAgKQ0KPiA+ ID4gIHsNCj4gPiA+ICAgIHN3aXRjaCAoUGNkR2V0MzIgKFBjZEhhc2hBcGlMaWJQb2xpY3kpKSB7 DQo+ID4gPiArI2lmIChGaXhlZFBjZEdldEJvb2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ID4gICAg ICBjYXNlIEhBU0hfQUxHX1NIQTE6DQo+ID4gPiAgICAgICAgcmV0dXJuIFNoYTFHZXRDb250ZXh0 U2l6ZSAoKTsNCj4gPiA+ICAgICAgICBicmVhazsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+DQo+ID4g PiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMjU2Og0KPiA+ID4gICAgICAgIHJldHVybiBTaGEyNTZH ZXRDb250ZXh0U2l6ZSAoKTsNCj4gPiA+IEBAIC03NSw5ICs3NywxMSBAQCBIYXNoQXBpSW5pdCAo DQo+ID4gPiAgICApDQo+ID4gPiAgew0KPiA+ID4gICAgc3dpdGNoIChQY2RHZXQzMiAoUGNkSGFz aEFwaUxpYlBvbGljeSkpIHsNCj4gPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVu YWJsZSkpDQo+ID4gPiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMToNCj4gPiA+ICAgICAgICByZXR1 cm4gU2hhMUluaXQgKEhhc2hDb250ZXh0KTsNCj4gPiA+ICAgICAgICBicmVhazsNCj4gPiA+ICsj ZW5kaWYNCj4gPiA+DQo+ID4gPiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMjU2Og0KPiA+ID4gICAg ICAgIHJldHVybiBTaGEyNTZJbml0IChIYXNoQ29udGV4dCk7DQo+ID4gPiBAQCAtMTE5LDkgKzEy MywxMSBAQCBIYXNoQXBpRHVwbGljYXRlICgNCj4gPiA+ICAgICkNCj4gPiA+ICB7DQo+ID4gPiAg ICBzd2l0Y2ggKFBjZEdldDMyIChQY2RIYXNoQXBpTGliUG9saWN5KSkgew0KPiA+ID4gKyNpZiAo Rml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiA+ICAgICAgY2FzZSBIQVNIX0FM R19TSEExOg0KPiA+ID4gICAgICAgIHJldHVybiBTaGExRHVwbGljYXRlIChIYXNoQ29udGV4dCwN Cj4gPiA+IE5ld0hhc2hDb250ZXh0KTsNCj4gPiA+ICAgICAgICBicmVhazsNCj4gPiA+ICsjZW5k aWYNCj4gPiA+DQo+ID4gPiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMjU2Og0KPiA+ID4gICAgICAg IHJldHVybiBTaGEyNTZEdXBsaWNhdGUgKEhhc2hDb250ZXh0LA0KPiA+ID4gTmV3SGFzaENvbnRl eHQpOw0KPiA+ID4gQEAgLTE2NSw5ICsxNzEsMTEgQEAgSGFzaEFwaVVwZGF0ZSAoDQo+ID4gPiAg ICApDQo+ID4gPiAgew0KPiA+ID4gICAgc3dpdGNoIChQY2RHZXQzMiAoUGNkSGFzaEFwaUxpYlBv bGljeSkpIHsNCj4gPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ ID4gPiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMToNCj4gPiA+ICAgICAgICByZXR1cm4gU2hhMVVw ZGF0ZSAoSGFzaENvbnRleHQsIERhdGFUb0hhc2gsDQo+ID4gPiBEYXRhVG9IYXNoTGVuKTsNCj4g PiA+ICAgICAgICBicmVhazsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+DQo+ID4gPiAgICAgIGNhc2Ug SEFTSF9BTEdfU0hBMjU2Og0KPiA+ID4gICAgICAgIHJldHVybiBTaGEyNTZVcGRhdGUgKEhhc2hD b250ZXh0LCBEYXRhVG9IYXNoLA0KPiA+ID4gRGF0YVRvSGFzaExlbik7DQo+ID4gPiBAQCAtMjA5 LDkgKzIxNywxMSBAQCBIYXNoQXBpRmluYWwgKA0KPiA+ID4gICAgKQ0KPiA+ID4gIHsNCj4gPiA+ ICAgIHN3aXRjaCAoUGNkR2V0MzIgKFBjZEhhc2hBcGlMaWJQb2xpY3kpKSB7DQo+ID4gPiArI2lm IChGaXhlZFBjZEdldEJvb2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ID4gICAgICBjYXNlIEhBU0hf QUxHX1NIQTE6DQo+ID4gPiAgICAgICAgcmV0dXJuIFNoYTFGaW5hbCAoSGFzaENvbnRleHQsIERp Z2VzdCk7DQo+ID4gPiAgICAgICAgYnJlYWs7DQo+ID4gPiArI2VuZGlmDQo+ID4gPg0KPiA+ID4g ICAgICBjYXNlIEhBU0hfQUxHX1NIQTI1NjoNCj4gPiA+ICAgICAgICByZXR1cm4gU2hhMjU2Rmlu YWwgKEhhc2hDb250ZXh0LCBEaWdlc3QpOw0KPiA+ID4gQEAgLTI1NSw5ICsyNjUsMTEgQEAgSGFz aEFwaUhhc2hBbGwgKA0KPiA+ID4gICAgKQ0KPiA+ID4gIHsNCj4gPiA+ICAgIHN3aXRjaCAoUGNk R2V0MzIgKFBjZEhhc2hBcGlMaWJQb2xpY3kpKSB7DQo+ID4gPiArI2lmIChGaXhlZFBjZEdldEJv b2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ID4gICAgICBjYXNlIEhBU0hfQUxHX1NIQTE6DQo+ID4g PiAgICAgICAgcmV0dXJuIFNoYTFIYXNoQWxsIChEYXRhVG9IYXNoLCBEYXRhVG9IYXNoTGVuLA0K PiA+ID4gRGlnZXN0KTsNCj4gPiA+ICAgICAgICBicmVhazsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+ DQo+ID4gPiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMjU2Og0KPiA+ID4gICAgICAgIHJldHVybiBT aGEyNTZIYXNoQWxsIChEYXRhVG9IYXNoLCBEYXRhVG9IYXNoTGVuLA0KPiA+ID4gRGlnZXN0KTsN Cj4gPiA+IGRpZmYgLS1naXQNCj4gPiA+IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUhhc2hBcGlM aWIvQmFzZUhhc2hBcGlMaWIuaW5mDQo+ID4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNo QXBpTGliL0Jhc2VIYXNoQXBpTGliLmluZg0KPiA+ID4gaW5kZXggYjRkODY3NWRkZC4uMjlmN2Q3 YWJmZCAxMDA2NDQNCj4gPiA+IC0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNoQXBpTGli L0Jhc2VIYXNoQXBpTGliLmluZg0KPiA+ID4gKysrIGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUhh c2hBcGlMaWIvQmFzZUhhc2hBcGlMaWIuaW5mDQo+ID4gPiBAQCAtNDIsMyArNDIsNCBAQA0KPiA+ ID4NCj4gPiA+ICBbUGNkXQ0KPiA+ID4gICAgZ0VmaUNyeXB0b1BrZ1Rva2VuU3BhY2VHdWlkLlBj ZEhhc2hBcGlMaWJQb2xpY3kgICAgIyMNCj4gPiA+IENPTlNVTUVTDQo+ID4gPiArICBnRWZpQ3J5 cHRvUGtnVG9rZW5TcGFjZUd1aWQuUGNkU0hBMUVuYWJsZSAgICAgICAgICAjIw0KPiA+ID4gQ09O U1VNRVMNCj4gPiA+IGRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvUHJpdmF0ZS9Qcm90b2NvbC9Dcnlw dG8uaA0KPiA+ID4gYi9DcnlwdG9Qa2cvUHJpdmF0ZS9Qcm90b2NvbC9DcnlwdG8uaA0KPiA+ID4g aW5kZXggNTI3MzE4ZGMyMy4uM2Y4YzU3NTFhNyAxMDA2NDQNCj4gPiA+IC0tLSBhL0NyeXB0b1Br Zy9Qcml2YXRlL1Byb3RvY29sL0NyeXB0by5oDQo+ID4gPiArKysgYi9DcnlwdG9Qa2cvUHJpdmF0 ZS9Qcm90b2NvbC9DcnlwdG8uaA0KPiA+ID4gQEAgLTE3OSw2ICsxNzksNyBAQCBCT09MRUFODQo+ ID4gPiAgICApOw0KPiA+ID4gICNlbmRpZg0KPiA+ID4NCj4gPiA+ICsjaWYgKEZpeGVkUGNkR2V0 Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gPiAgLyoqDQo+ID4gPiAgICBBbGxvY2F0ZXMgYW5k IGluaXRpYWxpemVzIG9uZSBITUFDX0NUWCBjb250ZXh0IGZvcg0KPiA+ID4gc3Vic2VxdWVudCBI TUFDLVNIQTEgdXNlLg0KPiA+ID4NCj4gPiA+IEBAIC0zMTUsNyArMzE2LDcgQEAgQk9PTEVBTg0K PiA+ID4gICAgSU4gT1VUICBWT0lEICAgKkhtYWNTaGExQ29udGV4dCwNCj4gPiA+ICAgIE9VVCAg ICAgVUlOVDggICpIbWFjVmFsdWUNCj4gPiA+ICAgICk7DQo+ID4gPiAtDQo+ID4gPiArI2VuZGlm DQo+ID4gPg0KPiA+ID4gIC8qKg0KPiA+ID4gICAgQWxsb2NhdGVzIGFuZCBpbml0aWFsaXplcyBv bmUgSE1BQ19DVFggY29udGV4dCBmb3INCj4gPiA+IHN1YnNlcXVlbnQgSE1BQy1TSEEyNTYgdXNl Lg0KPiA+ID4gQEAgLTE1MzcsNiArMTUzOCw3IEBAIEJPT0xFQU4NCj4gPiA+ICAvLyBTSEENCj4g PiA+ICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+DQo+ ID4gPiArI2lmIChGaXhlZFBjZEdldEJvb2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ID4gIC8qKg0K PiA+ID4gICAgUmV0cmlldmVzIHRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGNvbnRleHQgYnVm ZmVyDQo+ID4gPiByZXF1aXJlZCBmb3IgU0hBLTEgaGFzaCBvcGVyYXRpb25zLg0KPiA+ID4NCj4g PiA+IEBAIC0xNjc2LDYgKzE2NzgsNyBAQCBCT09MRUFODQo+ID4gPiAgICBJTiAgIFVJTlROICAg ICAgIERhdGFTaXplLA0KPiA+ID4gICAgT1VUICBVSU5UOCAgICAgICAqSGFzaFZhbHVlDQo+ID4g PiAgICApOw0KPiA+ID4gKyNlbmRpZg0KPiA+ID4NCj4gPiA+ICAvKioNCj4gPiA+ICAgIFJldHJp ZXZlcyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBjb250ZXh0IGJ1ZmZlcg0KPiA+ID4gcmVx dWlyZWQgZm9yIFNIQS0yNTYgaGFzaCBvcGVyYXRpb25zLg0KPiA+ID4gQEAgLTM0NTMsNiArMzQ1 Niw3IEBAIHN0cnVjdCBfRURLSUlfQ1JZUFRPX1BST1RPQ09MIHsNCj4gPiA+ICAgIEVES0lJX0NS WVBUT19ITUFDX01ENV9VUERBVEUNCj4gPiA+IEhtYWNNZDVVcGRhdGU7DQo+ID4gPiAgICBFREtJ SV9DUllQVE9fSE1BQ19NRDVfRklOQUwNCj4gPiA+IEhtYWNNZDVGaW5hbDsNCj4gPiA+ICAjZW5k aWYNCj4gPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gPiAg ICAvLy8gSE1BQyBTSEExDQo+ID4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19TSEExX05FVw0KPiA+ ID4gSG1hY1NoYTFOZXc7DQo+ID4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19TSEExX0ZSRUUNCj4g PiA+IEhtYWNTaGExRnJlZTsNCj4gPiA+IEBAIC0zNDYwLDYgKzM0NjQsNyBAQCBzdHJ1Y3QgX0VE S0lJX0NSWVBUT19QUk9UT0NPTCB7DQo+ID4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19TSEExX0RV UExJQ0FURQ0KPiA+ID4gSG1hY1NoYTFEdXBsaWNhdGU7DQo+ID4gPiAgICBFREtJSV9DUllQVE9f SE1BQ19TSEExX1VQREFURQ0KPiA+ID4gSG1hY1NoYTFVcGRhdGU7DQo+ID4gPiAgICBFREtJSV9D UllQVE9fSE1BQ19TSEExX0ZJTkFMDQo+ID4gPiBIbWFjU2hhMUZpbmFsOw0KPiA+ID4gKyNlbmRp Zg0KPiA+ID4gICAgLy8vIEhNQUMgU0hBMjU2DQo+ID4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19T SEEyNTZfTkVXDQo+ID4gPiBIbWFjU2hhMjU2TmV3Ow0KPiA+ID4gICAgRURLSUlfQ1JZUFRPX0hN QUNfU0hBMjU2X0ZSRUUNCj4gPiA+IEhtYWNTaGEyNTZGcmVlOw0KPiA+ID4gQEAgLTM1MTAsNiAr MzUxNSw3IEBAIHN0cnVjdCBfRURLSUlfQ1JZUFRPX1BST1RPQ09MIHsNCj4gPiA+ICAgIEVES0lJ X0NSWVBUT19SU0FfUEtDUzFfVkVSSUZZDQo+ID4gPiBSc2FQa2NzMVZlcmlmeTsNCj4gPiA+ICAg IEVES0lJX0NSWVBUT19SU0FfR0VUX1BSSVZBVEVfS0VZX0ZST01fUEVNDQo+ID4gPiBSc2FHZXRQ cml2YXRlS2V5RnJvbVBlbTsNCj4gPiA+ICAgIEVES0lJX0NSWVBUT19SU0FfR0VUX1BVQkxJQ19L RVlfRlJPTV9YNTA5DQo+ID4gPiBSc2FHZXRQdWJsaWNLZXlGcm9tWDUwOTsNCj4gPiA+ICsjaWYg KEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gPiAgICAvLy8gU2hhMQ0KPiA+ ID4gICAgRURLSUlfQ1JZUFRPX1NIQTFfR0VUX0NPTlRFWFRfU0laRQ0KPiA+ID4gU2hhMUdldENv bnRleHRTaXplOw0KPiA+ID4gICAgRURLSUlfQ1JZUFRPX1NIQTFfSU5JVA0KPiA+ID4gU2hhMUlu aXQ7DQo+ID4gPiBAQCAtMzUxNyw2ICszNTIzLDcgQEAgc3RydWN0IF9FREtJSV9DUllQVE9fUFJP VE9DT0wgew0KPiA+ID4gICAgRURLSUlfQ1JZUFRPX1NIQTFfVVBEQVRFDQo+ID4gPiBTaGExVXBk YXRlOw0KPiA+ID4gICAgRURLSUlfQ1JZUFRPX1NIQTFfRklOQUwNCj4gPiA+IFNoYTFGaW5hbDsN Cj4gPiA+ICAgIEVES0lJX0NSWVBUT19TSEExX0hBU0hfQUxMDQo+ID4gPiBTaGExSGFzaEFsbDsN Cj4gPiA+ICsjZW5kaWYNCj4gPiA+ICAgIC8vLyBTaGEyNTYNCj4gPiA+ICAgIEVES0lJX0NSWVBU T19TSEEyNTZfR0VUX0NPTlRFWFRfU0laRQ0KPiA+ID4gU2hhMjU2R2V0Q29udGV4dFNpemU7DQo+ ID4gPiAgICBFREtJSV9DUllQVE9fU0hBMjU2X0lOSVQNCj4gPiA+IFNoYTI1NkluaXQ7DQo+ID4g PiAtLQ0KPiA+ID4gMi4yMS4wLndpbmRvd3MuMQ0KPiA+ID4NCj4gPiA+DQo+ID4gPiANCg0K