From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Permerror (SPF Permanent Error: Two or more type TXT spf records found.) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D1C852194D387 for ; Sun, 2 Sep 2018 22:12:39 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Sep 2018 22:12:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,323,1531810800"; d="scan'208";a="67107352" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga007.fm.intel.com with ESMTP; 02 Sep 2018 22:09:14 -0700 Received: from fmsmsx124.amr.corp.intel.com (10.18.125.39) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 2 Sep 2018 22:09:13 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx124.amr.corp.intel.com (10.18.125.39) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 2 Sep 2018 22:09:13 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.16]) with mapi id 14.03.0319.002; Mon, 3 Sep 2018 13:09:11 +0800 From: "Ni, Ruiyu" To: "Zeng, Star" , "Yao, Jiewen" , "Kinney, Michael D" CC: "edk2-devel@lists.01.org" , Younas khan , "Gao, Liming" Thread-Topic: [edk2] [PATCH 1/6] MdePkg UefiLib: Add new EfiFindAcpiTableBySignature() API Thread-Index: AQHUQR3tEeu0kRzdoEuxFG+IMkFel6TZO1YAgABLygCAAG5ggIADbd6AgACiaLA= Date: Mon, 3 Sep 2018 05:09:11 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BDEFCAF@SHSMSX104.ccr.corp.intel.com> References: <1535714959-73472-1-git-send-email-star.zeng@intel.com> <1535714959-73472-2-git-send-email-star.zeng@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AD36A49@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AD37F11@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BBB49F2@shsmsx102.ccr.corp.intel.com> In-Reply-To: <0C09AFA07DD0434D9E2A0C6AEB0483103BBB49F2@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 1/6] MdePkg UefiLib: Add new EfiFindAcpiTableBySignature() API X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Sep 2018 05:12:40 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhdCdzIGZpbmUgdG8gYmUgaW4gVWVmaUxpYi4gSXQncyBhbHJlYWR5IGEgY29tYm8gbGlicmFy eS4NCg0KQnV0IEkgZG8gcmVjb21tZW5kIHdlIHRoaW5rIGFib3V0IGhvdyB0byBoYW5kbGUgbXVs dGlwbGUgdGFibGVzIHdpdGggc2FtZSBzaWduYXR1cmUuDQpXaGVuIHdlIGFyZSBhZGRpbmcgbmV3 IEFQSXMsIHdlIG5vdCBvbmx5IG5lZWQgdG8gZXZhbHVhdGUgdGhlIGV4aXN0aW5nIHJlYWwgY2Fz ZSwgYnV0IGFsc28NCndlIG5lZWQgdG8gZ2VuZXJhbGl6ZSB0aGUgcmVhbCBjYXNlcyBhbmQgdHJ5 IHRvIHRoaW5rIGFib3V0IHRoZSBtb3JlIGZsZXhpYmxlIGludGVyZmFjZS4NCg0KDQpUaGFua3Mv UmF5DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWmVuZywgU3Rhcg0K PiBTZW50OiBNb25kYXksIFNlcHRlbWJlciAzLCAyMDE4IDExOjI2IEFNDQo+IFRvOiBZYW8sIEpp ZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNv bT47DQo+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g Q2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBZb3VuYXMga2hhbiA8cG1keW91bmFza2hhbjc4 NkBnbWFpbC5jb20+Ow0KPiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBaZW5n LCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRD SCAxLzZdIE1kZVBrZyBVZWZpTGliOiBBZGQgbmV3DQo+IEVmaUZpbmRBY3BpVGFibGVCeVNpZ25h dHVyZSgpIEFQSQ0KPiANCj4gR29vZCBpZGVhLg0KPiANCj4gSSBkaWQgY29uc2lkZXIgRFNEVCBh bmQgbXVsdGlwbGUgU1NEVHMgY2FzZXMuIEJ1dCBJIGRpZCBub3QgZmluZCBhbnkgcmVhbCBjYXNl DQo+IGZvciB0aGVtLg0KPiBTbyBJIG1hZGUgdGhlIGNvZGUgc2ltcGx5IGZvciBjdXJyZW50IGNh c2VzLCBhbmQgdGhlIGNvZGUgY2FuIGJlIGVhc2lseQ0KPiBlbmhhbmNlZCBsYXRlciBmb3IgRFNE VCwgYSBuZXcgQVBJIGNhbiBiZSBhZGRlZCBsYXRlciBmb3IgbXVsdGlwbGUgU1NEVHMuDQo+IA0K PiBBYm91dCBhZGRpbmcgdGhlIG5ldyBBUEkgaW4gVWVmaUxpYiBWUyBuZXcgbGlicmFyeSBjbGFz cywgSSBkaWQgYWxzbyBjb25zaWRlciBpdA0KPiBhbmQgZXZlbiBjcmVhdGVkIGNvZGUgZm9yIG5l dyBsaWJyYXJ5IGNsYXNzDQo+IChnaXRAZ2l0aHViLmNvbTpsemVuZzE0L2VkazIuZ2l0IGJyYW5j aA0KPiBGaW5kQWNwaVRhYmxlQnlTaWduYXR1cmVfVWVmaUFjcGlUYWJsZUxpYikuDQo+IEJ1dCBJ IHJlbWVtYmVyIEkgZGlkIGRpc2N1c3MgaXQgd2l0aCBNaWtlIGFuZCBKaWV3ZW4sIHdlIHJlY29t bWVuZGVkDQo+IFVlZmlMaWIgYXMgaXQgd2lsbCBkbyBub3QgcmVxdWlyZSBhbnkgcGxhdGZvcm0g Y2hhbmdlLg0KPiANCj4gDQo+IA0KPiBUaGFua3MsDQo+IFN0YXINCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gU2VudDogU2F0dXJkYXksIFNlcHRl bWJlciAxLCAyMDE4IDc6MDQgQU0NCj4gVG86IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29t Pg0KPiBDYzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnOyBLaW5uZXksDQo+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+OyBZb3VuYXMga2hhbg0KPiA8cG1keW91bmFza2hhbjc4NkBnbWFpbC5jb20+OyBHYW8sIExp bWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENI IDEvNl0gTWRlUGtnIFVlZmlMaWI6IEFkZCBuZXcNCj4gRWZpRmluZEFjcGlUYWJsZUJ5U2lnbmF0 dXJlKCkgQVBJDQo+IA0KPiBHb29kIGlkZWEgb24gTG9jYXRlTmV4dEFjcGlUYWJsZSgpLg0KPiAN Cj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBOaSwgUnVpeXUN Cj4gPiBTZW50OiBTYXR1cmRheSwgU2VwdGVtYmVyIDEsIDIwMTggMTI6MjkgQU0NCj4gPiBUbzog WWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+IENjOiBaZW5nLCBTdGFyIDxz dGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEtpbm5leSwNCj4g PiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgWW91bmFzIGtoYW4NCj4g PiA8cG1keW91bmFza2hhbjc4NkBnbWFpbC5jb20+OyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0Bp bnRlbC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMS82XSBNZGVQa2cgVWVm aUxpYjogQWRkIG5ldw0KPiA+IEVmaUZpbmRBY3BpVGFibGVCeVNpZ25hdHVyZSgpIEFQSQ0KPiA+ DQo+ID4gSSB0aGluayBMb2NhdGVOZXh0QWNwaVRhYmxlKCkgaXMgbW9yZSBwcm9wZXIgdG8gaGFu ZGxlIHRoZSBtdWx0aXBsZQ0KPiA+IHRhYmxlcyB3aXRoIHNhbWUgc2lnbmF0dXJlLiBJdCB3aWxs IGNhcnJ5IHRocmVlIHBhcmFtZXRlcnMsIG9uZSBpcyB0aGUNCj4gPiB0YWJsZSBoZWFkZXIgc3Rv cmVkIGluIGNvbmZpZ3VyYXRpb24gdGFibGUsIG9uZSBpcyB0aGUgc2lnbmF0dXJlLCBhbm90aGVy IGlzDQo+IHRoZSBwcmV2aW91cyBsb2NhdGVkIHRhYmxlLg0KPiA+IENhbiB3ZSByZXR1cm4gYSBj b21tb24gdGFibGUgaGVhZGVyIG90aGVyIHRoYW4gdm9pZCo/DQo+ID4NCj4gPiBJcyB0aGVyZSBi ZXR0ZXIgcGxhY2Ugb3RoZXIgdGhhbiBVZWZpTGliPw0KPiA+IERvIHdlIG5lZWQgdG8gYWRkIGEg bmV3IGxpYnJhcnkgY2xhc3MgbGlrZSBBY3BpTGliPw0KPiA+DQo+ID4g5Y+R6Ieq5oiR55qEIGlQ aG9uZQ0KPiA+DQo+ID4gPiDlnKggMjAxOOW5tDjmnIgzMeaXpe+8jOS4i+WNiDg6MDDvvIxZYW8s IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IOWGmQ0KPiA+IOmBk++8mg0KPiA+ID4N Cj4gPiA+IEdvb2QgZW5oYW5jZW1lbnQuDQo+ID4gPg0KPiA+ID4gSSBoYXZlIDIgYWRkaXRpb25h bCB0aG91Z2h0Og0KPiA+ID4NCj4gPiA+IDEpIEhvdyB0byBoYW5kbGUgRFNEVD8NCj4gPiA+IFdl IGhhdmUgc3BlY2lhbCBjb2RlIHRvIGhhbmRsZSBGQUNTLCBidXQgbm8gRFNEVC4NCj4gPiA+DQo+ ID4gPiAyKSBIb3cgdG8gaGFuZGxlIFNTRFQgb3Igb3RoZXIgbXVsdGlwbGUgQUNQSSB0YWJsZXM/ DQo+ID4gPiBXZSBtYXkgaGF2ZSBtdWx0aXBsZSBTU0RULiBVc3VhbGx5LCBpdCBpcyBpZGVudGlm aWVkIGFzIE9FTUlELg0KPiA+ID4gRG8gd2Ugd2FudCB0byBwcm92aWRlIHNpbWlsYXIgZnVuY3Rp b24gZm9yIHRoZW0/DQo+ID4gPg0KPiA+ID4gQW55d2F5LCBqdXN0ICphZGRpdGlvbmFsKiB0aG91 Z2h0LiA6LSkgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBpcw0KPiA+ID4gZ29vZCBlbm91Z2ggZm9y IGNoZWNrIGluLg0KPiA+ID4NCj4gPiA+IFJldmlld2VkLWJ5OiBKaWV3ZW4ueWFvQGludGVsLmNv bQ0KPiA+ID4NCj4gPiA+IFRoYW5rIHlvdQ0KPiA+ID4gWWFvIEppZXdlbg0KPiA+ID4NCj4gPiA+ DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBlZGsyLWRl dmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmDQo+ ID4gPj4gT2YNCj4gPiBTdGFyDQo+ID4gPj4gWmVuZw0KPiA+ID4+IFNlbnQ6IEZyaWRheSwgQXVn dXN0IDMxLCAyMDE4IDc6MjkgUE0NCj4gPiA+PiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4gPiA+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsgWW91bmFzIGtoYW4NCj4gPiA+PiA8cG1keW91bmFza2hhbjc4NkBnbWFpbC5jb20+OyBZYW8s IEppZXdlbg0KPiA8amlld2VuLnlhb0BpbnRlbC5jb20+Ow0KPiA+IEdhbywNCj4gPiA+PiBMaW1p bmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNv bT4NCj4gPiA+PiBTdWJqZWN0OiBbZWRrMl0gW1BBVENIIDEvNl0gTWRlUGtnIFVlZmlMaWI6IEFk ZCBuZXcNCj4gPiA+PiBFZmlGaW5kQWNwaVRhYmxlQnlTaWduYXR1cmUoKSBBUEkNCj4gPiA+Pg0K PiA+ID4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3 DQo+ID4gPj4gUmVxdWVzdCB0byBhZGQgYSBsaWJyYXJ5IGZ1bmN0aW9uIGZvciBHZXRBY3BpVGFi bGUoKSBpbiBvcmRlciB0bw0KPiA+ID4+IGdldCBBQ1BJIHRhYmxlIHVzaW5nIHNpZ25hdHVyZSBh cyBpbnB1dC4NCj4gPiA+Pg0KPiA+ID4+IEFmdGVyIGV2YWx1YXRpb24sIHdlIGZvdW5kIHRoZXJl IGFyZSBtYW55IGR1cGxpY2F0ZWQgY29kZSB0byBmaW5kDQo+ID4gPj4gQUNQSSB0YWJsZSBieSBz aWduYXR1cmUgaW4gZGlmZmVyZW50IG1vZHVsZXMuDQo+ID4gPj4NCj4gPiA+PiBUaGlzIHBhdGNo IGFkZHMgbmV3IEVmaUZpbmRBY3BpVGFibGVCeVNpZ25hdHVyZSgpIEFQSSBpbiBVZWZpTGliDQo+ ID4gPj4gZm9yIHRoZSByZXF1ZXN0IGFuZCBhbHNvIHRoZSBmb2xsb3dpbmcgcGF0Y2ggdG8gcmVt b3ZlIHRoZQ0KPiA+ID4+IGR1cGxpY2F0ZWQgY29kZS4NCj4gPiA+Pg0KPiA+ID4+IENjOiBZb3Vu YXMga2hhbiA8cG1keW91bmFza2hhbjc4NkBnbWFpbC5jb20+DQo+ID4gPj4gQ2M6IE1pY2hhZWwg RCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4+IENjOiBMaW1pbmcg R2FvIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiA+PiBDYzogSmlld2VuIFlhbyA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID4gPj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250 cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+ID4+IFNpZ25lZC1vZmYtYnk6IFN0YXIgWmVuZyA8 c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiA+PiAtLS0NCj4gPiA+PiBNZGVQa2cvSW5jbHVkZS9M aWJyYXJ5L1VlZmlMaWIuaCAgIHwgIDE3ICsrKw0KPiA+ID4+IE1kZVBrZy9MaWJyYXJ5L1VlZmlM aWIvQWNwaS5jICAgICAgfCAyMjYNCj4gPiA+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ID4gPj4gTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZiB8ICAg MyArDQo+ID4gPj4gMyBmaWxlcyBjaGFuZ2VkLCAyNDYgaW5zZXJ0aW9ucygrKQ0KPiA+ID4+IGNy ZWF0ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTGlicmFyeS9VZWZpTGliL0FjcGkuYw0KPiA+ID4+DQo+ ID4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+ID4g Pj4gYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VlZmlMaWIuaA0KPiA+ID4+IGluZGV4IGY4MDA2 N2YxMTEwMy4uOGRkMjVmMzI0ZmQyIDEwMDY0NA0KPiA+ID4+IC0tLSBhL01kZVBrZy9JbmNsdWRl L0xpYnJhcnkvVWVmaUxpYi5oDQo+ID4gPj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9V ZWZpTGliLmgNCj4gPiA+PiBAQCAtMTU5NSw0ICsxNTk1LDIxIEBAIEVmaU9wZW5GaWxlQnlEZXZp Y2VQYXRoICgNCj4gPiA+PiAgSU4gICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgT3Blbk1v ZGUsDQo+ID4gPj4gIElOICAgICBVSU5UNjQgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXMN Cj4gPiA+PiAgKTsNCj4gPiA+PiArDQo+ID4gPj4gKy8qKg0KPiA+ID4+ICsgIFRoaXMgZnVuY3Rp b24gZmluZHMgQUNQSSB0YWJsZSBieSBzaWduYXR1cmUuDQo+ID4gPj4gKyAgSXQgd2lsbCBmaW5k IHRoZSB0YWJsZSBpbiBnRWZpQWNwaTIwVGFibGVHdWlkIHN5c3RlbQ0KPiA+ID4+ICtjb25maWd1 cmF0aW9uIHRhYmxlDQo+ID4gZmlyc3QsDQo+ID4gPj4gKyAgYW5kIHRoZW4gZ0VmaUFjcGkxMFRh YmxlR3VpZCBzeXN0ZW0gY29uZmlndXJhdGlvbiB0YWJsZS4NCj4gPiA+PiArDQo+ID4gPj4gKyAg QHBhcmFtIFNpZ25hdHVyZSAgQUNQSSB0YWJsZSBzaWduYXR1cmUuDQo+ID4gPj4gKw0KPiA+ID4+ ICsgIEByZXR1cm4gQUNQSSB0YWJsZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4NCj4gPiA+PiArDQo+ ID4gPj4gKyoqLw0KPiA+ID4+ICtWT0lEICoNCj4gPiA+PiArRUZJQVBJDQo+ID4gPj4gK0VmaUZp bmRBY3BpVGFibGVCeVNpZ25hdHVyZSAoDQo+ID4gPj4gKyAgSU4gVUlOVDMyICAgICBTaWduYXR1 cmUNCj4gPiA+PiArICApOw0KPiA+ID4+ICsNCj4gPiA+PiAjZW5kaWYNCj4gPiA+PiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4gPiA+PiBiL01kZVBrZy9MaWJy YXJ5L1VlZmlMaWIvQWNwaS5jIG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4DQo+ID4gPj4gMDAw MDAwMDAwMDAwLi41Y2I5Mzk2NmI1OWYNCj4gPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4gPj4gKysr IGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4gPiA+PiBAQCAtMCwwICsxLDIyNiBA QA0KPiA+ID4+ICsvKiogQGZpbGUNCj4gPiA+PiArICBUaGlzIG1vZHVsZSBwcm92aWRlcyBoZWxw IGZ1bmN0aW9uIGZvciBmaW5kaW5nIEFDUEkgdGFibGUuDQo+ID4gPj4gKw0KPiA+ID4+ICsgIENv cHlyaWdodCAoYykgMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiA+ID4+ICsgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFs cyAgYXJlIGxpY2Vuc2VkIGFuZA0KPiA+ID4+ICsgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRl cm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPiA+IEJTRA0KPiA+ID4+IExpY2Vuc2UNCj4gPiA+ PiArICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQg b2YgdGhlDQo+ID4gPj4gKyBsaWNlbnNlIG1heSBiZQ0KPiA+ID4+IGZvdW5kIGF0DQo+ID4gPj4g KyAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4gPiA+ PiArDQo+ID4gPj4gKyAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBM SUNFTlNFIE9OIEFOICJBUw0KPiBJUyINCj4gPiA+PiBCQVNJUywNCj4gPiA+PiArICBXSVRIT1VU IFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gPiA+ PiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4gPj4gKw0KPiA+ID4+ICsqKi8NCj4gPiA+PiArDQo+ ID4gPj4gKyNpbmNsdWRlICJVZWZpTGliSW50ZXJuYWwuaCINCj4gPiA+PiArI2luY2x1ZGUgPElu ZHVzdHJ5U3RhbmRhcmQvQWNwaS5oPiAjaW5jbHVkZSA8R3VpZC9BY3BpLmg+DQo+ID4gPj4gKw0K PiA+ID4+ICsvKioNCj4gPiA+PiArICBUaGlzIGZ1bmN0aW9uIHNjYW5zIEFDUEkgdGFibGUgaW4g UlNEVC4NCj4gPiA+PiArDQo+ID4gPj4gKyAgQHBhcmFtIFJzZHQgICAgICAgQUNQSSBSU0RUDQo+ ID4gPj4gKyAgQHBhcmFtIFNpZ25hdHVyZSAgQUNQSSB0YWJsZSBzaWduYXR1cmUNCj4gPiA+PiAr DQo+ID4gPj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwgaWYgbm90IGZvdW5kLg0KPiA+ ID4+ICsNCj4gPiA+PiArKiovDQo+ID4gPj4gK1ZPSUQgKg0KPiA+ID4+ICtTY2FuVGFibGVJblJT RFQgKA0KPiA+ID4+ICsgIElOIEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAgICAqUnNkdCwN Cj4gPiA+PiArICBJTiBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbmF0dXJlDQo+ ID4gPj4gKyAgKQ0KPiA+ID4+ICt7DQo+ID4gPj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRleDsNCj4gPiA+PiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVudHJ5Q291bnQ7DQo+ID4gPj4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqRW50cnlQdHI7DQo+ID4gPj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVS ICAgICAgICAqVGFibGU7DQo+ID4gPj4gKw0KPiA+ID4+ICsgIGlmIChSc2R0ID09IE5VTEwpIHsN Cj4gPiA+PiArICAgIHJldHVybiBOVUxMOw0KPiA+ID4+ICsgIH0NCj4gPiA+PiArDQo+ID4gPj4g KyAgRW50cnlDb3VudCA9IChSc2R0LT5MZW5ndGggLSBzaXplb2YNCj4gPiA+PiArIChFRklfQUNQ SV9ERVNDUklQVElPTl9IRUFERVIpKSAvDQo+ID4gPj4gc2l6ZW9mKFVJTlQzMik7DQo+ID4gPj4g Kw0KPiA+ID4+ICsgIEVudHJ5UHRyID0gKFVJTlQzMiAqKShSc2R0ICsgMSk7ICBmb3IgKEluZGV4 ID0gMDsgSW5kZXggPA0KPiA+ID4+ICsgRW50cnlDb3VudDsgSW5kZXggKyssIEVudHJ5UHRyICsr KSB7DQo+ID4gPj4gKyAgICBUYWJsZSA9IChFRklfQUNQSV9ERVNDUklQVElPTl9IRUFERVIgKiko KFVJTlROKSgqRW50cnlQdHIpKTsNCj4gPiA+PiArICAgIGlmIChUYWJsZS0+U2lnbmF0dXJlID09 IFNpZ25hdHVyZSkgew0KPiA+ID4+ICsgICAgICByZXR1cm4gVGFibGU7DQo+ID4gPj4gKyAgICB9 DQo+ID4gPj4gKyAgfQ0KPiA+ID4+ICsNCj4gPiA+PiArICByZXR1cm4gTlVMTDsNCj4gPiA+PiAr fQ0KPiA+ID4+ICsNCj4gPiA+PiArLyoqDQo+ID4gPj4gKyAgVGhpcyBmdW5jdGlvbiBzY2FucyBB Q1BJIHRhYmxlIGluIFhTRFQuDQo+ID4gPj4gKw0KPiA+ID4+ICsgIEBwYXJhbSBYc2R0ICAgICAg IEFDUEkgWFNEVA0KPiA+ID4+ICsgIEBwYXJhbSBTaWduYXR1cmUgIEFDUEkgdGFibGUgc2lnbmF0 dXJlDQo+ID4gPj4gKw0KPiA+ID4+ICsgIEByZXR1cm4gQUNQSSB0YWJsZSBvciBOVUxMIGlmIG5v dCBmb3VuZC4NCj4gPiA+PiArDQo+ID4gPj4gKyoqLw0KPiA+ID4+ICtWT0lEICoNCj4gPiA+PiAr U2NhblRhYmxlSW5YU0RUICgNCj4gPiA+PiArICBJTiBFRklfQUNQSV9ERVNDUklQVElPTl9IRUFE RVIgICAgKlhzZHQsDQo+ID4gPj4gKyAgSU4gVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAg IFNpZ25hdHVyZQ0KPiA+ID4+ICsgICkNCj4gPiA+PiArew0KPiA+ID4+ICsgIFVJTlROICAgICAg ICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gPiA+PiArICBVSU5UMzIgICAgICAgICAgICAg ICAgICAgICAgICAgRW50cnlDb3VudDsNCj4gPiA+PiArICBVSU5UNjQgICAgICAgICAgICAgICAg ICAgICAgICAgRW50cnlQdHI7DQo+ID4gPj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg ICAgIEJhc2VQdHI7DQo+ID4gPj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgICpU YWJsZTsNCj4gPiA+PiArDQo+ID4gPj4gKyAgaWYgKFhzZHQgPT0gTlVMTCkgew0KPiA+ID4+ICsg ICAgcmV0dXJuIE5VTEw7DQo+ID4gPj4gKyAgfQ0KPiA+ID4+ICsNCj4gPiA+PiArICBFbnRyeUNv dW50ID0gKFhzZHQtPkxlbmd0aCAtIHNpemVvZg0KPiA+ID4+ICsgKEVGSV9BQ1BJX0RFU0NSSVBU SU9OX0hFQURFUikpIC8NCj4gPiA+PiBzaXplb2YoVUlOVDY0KTsNCj4gPiA+PiArDQo+ID4gPj4g KyAgQmFzZVB0ciA9IChVSU5UTikoWHNkdCArIDEpOw0KPiA+ID4+ICsgIGZvciAoSW5kZXggPSAw OyBJbmRleCA8IEVudHJ5Q291bnQ7IEluZGV4ICsrKSB7DQo+ID4gPj4gKyAgICBDb3B5TWVtICgm RW50cnlQdHIsIChWT0lEICopKEJhc2VQdHIgKyBJbmRleCAqDQo+ID4gPj4gKyBzaXplb2YoVUlO VDY0KSksDQo+ID4gPj4gc2l6ZW9mKFVJTlQ2NCkpOw0KPiA+ID4+ICsgICAgVGFibGUgPSAoRUZJ X0FDUElfREVTQ1JJUFRJT05fSEVBREVSICopKChVSU5UTikoRW50cnlQdHIpKTsNCj4gPiA+PiAr ICAgIGlmIChUYWJsZS0+U2lnbmF0dXJlID09IFNpZ25hdHVyZSkgew0KPiA+ID4+ICsgICAgICBy ZXR1cm4gVGFibGU7DQo+ID4gPj4gKyAgICB9DQo+ID4gPj4gKyAgfQ0KPiA+ID4+ICsNCj4gPiA+ PiArICByZXR1cm4gTlVMTDsNCj4gPiA+PiArfQ0KPiA+ID4+ICsNCj4gPiA+PiArLyoqDQo+ID4g Pj4gKyAgVG8gZmluZCBGYWNzIGluIEZBRFQuDQo+ID4gPj4gKw0KPiA+ID4+ICsgIEBwYXJhbSBG YWR0ICAgRkFEVCB0YWJsZSBwb2ludGVyDQo+ID4gPj4gKw0KPiA+ID4+ICsgIEByZXR1cm4gRmFj cyB0YWJsZSBwb2ludGVyIG9yIE5VTEwgaWYgbm90IGZvdW5kLg0KPiA+ID4+ICsNCj4gPiA+PiAr KiovDQo+ID4gPj4gK0VGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNUVVJF ICoNCj4gPiA+PiArRmluZEFjcGlGYWNzRnJvbUZhZHQgKA0KPiA+ID4+ICsgIElOIEVGSV9BQ1BJ XzJfMF9GSVhFRF9BQ1BJX0RFU0NSSVBUSU9OX1RBQkxFICAqRmFkdA0KPiA+ID4+ICsgICkNCj4g PiA+PiArew0KPiA+ID4+ICsgIEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RS VUNUVVJFICAqRmFjczsNCj4gPiA+PiArICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGF0YTY0Ow0KPiA+ID4+ICsNCj4gPiA+PiArICBpZiAoRmFkdCA9PSBO VUxMKSB7DQo+ID4gPj4gKyAgICByZXR1cm4gTlVMTDsNCj4gPiA+PiArICB9DQo+ID4gPj4gKw0K PiA+ID4+ICsgIGlmIChGYWR0LT5IZWFkZXIuUmV2aXNpb24gPA0KPiA+ID4+IEVGSV9BQ1BJXzJf MF9GSVhFRF9BQ1BJX0RFU0NSSVBUSU9OX1RBQkxFX1JFVklTSU9OKSB7DQo+ID4gPj4gKyAgICBG YWNzID0gKEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNUVVJFDQo+ID4g Pj4gKikoVUlOVE4pRmFkdC0+RmlybXdhcmVDdHJsOw0KPiA+ID4+ICsgIH0gZWxzZSB7DQo+ID4g Pj4gKyAgICBDb3B5TWVtICgmRGF0YTY0LCAmRmFkdC0+WEZpcm13YXJlQ3RybCwgc2l6ZW9mKFVJ TlQ2NCkpOw0KPiA+ID4+ICsgICAgaWYgKERhdGE2NCAhPSAwKSB7DQo+ID4gPj4gKyAgICAgIEZh Y3MgPSAoRUZJX0FDUElfMl8wX0ZJUk1XQVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkUNCj4gPiA+ PiAqKShVSU5UTilEYXRhNjQ7DQo+ID4gPj4gKyAgICB9IGVsc2Ugew0KPiA+ID4+ICsgICAgICBG YWNzID0gKEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNUVVJFDQo+ID4g Pj4gKikoVUlOVE4pRmFkdC0+RmlybXdhcmVDdHJsOw0KPiA+ID4+ICsgICAgfQ0KPiA+ID4+ICsg IH0NCj4gPiA+PiArICByZXR1cm4gRmFjczsNCj4gPiA+PiArfQ0KPiA+ID4+ICsNCj4gPiA+PiAr LyoqDQo+ID4gPj4gKyAgVG8gZmluZCBBQ1BJIHRhYmxlIGluIEFDUEkgQ29uZmlndXJhdGlvblRh YmxlLg0KPiA+ID4+ICsNCj4gPiA+PiArICBAcGFyYW0gQWNwaVRhYmxlR3VpZCAgVGhlIGd1aWQg dXNlZCB0byBmaW5kIEFDUEkNCj4gQ29uZmlndXJhdGlvblRhYmxlLg0KPiA+ID4+ICsgIEBwYXJh bSBTaWduYXR1cmUgICAgICBBQ1BJIHRhYmxlIHNpZ25hdHVyZS4NCj4gPiA+PiArDQo+ID4gPj4g KyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwgaWYgbm90IGZvdW5kLg0KPiA+ID4+ICsNCj4g PiA+PiArKiovDQo+ID4gPj4gK1ZPSUQgICoNCj4gPiA+PiArRmluZEFjcGlUYWJsZUluQWNwaUNv bmZpZ3VyYXRpb25UYWJsZSAoDQo+ID4gPj4gKyAgSU4gRUZJX0dVSUQgICAqQWNwaUd1aWQsDQo+ ID4gPj4gKyAgSU4gVUlOVDMyICAgICBTaWduYXR1cmUNCj4gPiA+PiArDQo+ID4gPj4gKyAgKQ0K PiA+ID4+ICt7DQo+ID4gPj4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0YXR1czsNCj4gPiA+PiArICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKlRhYmxlOw0KPiA+ID4+ICsgIEVGSV9BQ1BJXzJfMF9ST09UX1NZ U1RFTV9ERVNDUklQVElPTl9QT0lOVEVSICAqUnNkcDsNCj4gPiA+PiArICBFRklfQUNQSV9ERVND UklQVElPTl9IRUFERVIgICAgICAgICAgICAgICAgICAgKlJzZHQ7DQo+ID4gPj4gKyAgRUZJX0FD UElfREVTQ1JJUFRJT05fSEVBREVSICAgICAgICAgICAgICAgICAgICpYc2R0Ow0KPiA+ID4+ICsg IEVGSV9BQ1BJXzJfMF9GSVhFRF9BQ1BJX0RFU0NSSVBUSU9OX1RBQkxFICAgICAqRmFkdDsNCj4g PiA+PiArDQo+ID4gPj4gKyAgUnNkcCA9IE5VTEw7DQo+ID4gPj4gKyAgLy8NCj4gPiA+PiArICAv LyBGaW5kIEFDUEkgQ29uZmlndXJhdGlvblRhYmxlIChSU0RfUFRSKSAgLy8gIFN0YXR1cyA9DQo+ ID4gPj4gKyBFZmlHZXRTeXN0ZW1Db25maWd1cmF0aW9uVGFibGUoQWNwaUd1aWQsIChWT0lEICoq KSZSc2RwKTsgIGlmDQo+ID4gPj4gKyAoRUZJX0VSUk9SIChTdGF0dXMpIHx8IChSc2RwID09IE5V TEwpKSB7DQo+ID4gPj4gKyAgICByZXR1cm4gTlVMTDsNCj4gPiA+PiArICB9DQo+ID4gPj4gKw0K PiA+ID4+ICsgIFRhYmxlID0gTlVMTDsNCj4gPiA+PiArDQo+ID4gPj4gKyAgLy8NCj4gPiA+PiAr ICAvLyBTZWFyY2ggWFNEVA0KPiA+ID4+ICsgIC8vDQo+ID4gPj4gKyAgaWYgKFJzZHAtPlJldmlz aW9uID49DQo+ID4gPj4gRUZJX0FDUElfMl8wX1JPT1RfU1lTVEVNX0RFU0NSSVBUSU9OX1BPSU5U RVJfUkVWSVNJT04pIHsNCj4gPiA+PiArICAgIFhzZHQgPSAoRUZJX0FDUElfREVTQ1JJUFRJT05f SEVBREVSICopKFVJTlROKQ0KPiA+IFJzZHAtPlhzZHRBZGRyZXNzOw0KPiA+ID4+ICsgICAgaWYg KFNpZ25hdHVyZSA9PQ0KPiA+ID4+IEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xf U1RSVUNUVVJFX1NJR05BVFVSRSkgew0KPiA+ID4+ICsgICAgICAvLw0KPiA+ID4+ICsgICAgICAv LyBJdCBpcyB0byBmaW5kIEZBQ1MgQUNQSSB0YWJsZSwNCj4gPiA+PiArICAgICAgLy8gbmVlZCBm aW5kIEZBRFQgZmlyc3QuDQo+ID4gPj4gKyAgICAgIC8vDQo+ID4gPj4gKyAgICAgIEZhZHQgPSBT Y2FuVGFibGVJblhTRFQgKFhzZHQsDQo+ID4gPj4gRUZJX0FDUElfMl8wX0ZJWEVEX0FDUElfREVT Q1JJUFRJT05fVEFCTEVfU0lHTkFUVVJFKTsNCj4gPiA+PiArICAgICAgVGFibGUgPSBGaW5kQWNw aUZhY3NGcm9tRmFkdCAoRmFkdCk7DQo+ID4gPj4gKyAgICB9IGVsc2Ugew0KPiA+ID4+ICsgICAg ICBUYWJsZSA9IFNjYW5UYWJsZUluWFNEVCAoWHNkdCwgU2lnbmF0dXJlKTsNCj4gPiA+PiArICAg IH0NCj4gPiA+PiArICB9DQo+ID4gPj4gKw0KPiA+ID4+ICsgIGlmIChUYWJsZSAhPSBOVUxMKSB7 DQo+ID4gPj4gKyAgICByZXR1cm4gVGFibGU7DQo+ID4gPj4gKyAgfQ0KPiA+ID4+ICsNCj4gPiA+ PiArICAvLw0KPiA+ID4+ICsgIC8vIFNlYXJjaCBSU0RUDQo+ID4gPj4gKyAgLy8NCj4gPiA+PiAr ICBSc2R0ID0gKEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAqKShVSU5UTikgUnNkcC0NCj4g PlJzZHRBZGRyZXNzOw0KPiA+ID4+ICsgaWYgKFNpZ25hdHVyZSA9PQ0KPiA+ID4+IEVGSV9BQ1BJ XzJfMF9GSVJNV0FSRV9BQ1BJX0NPTlRST0xfU1RSVUNUVVJFX1NJR05BVFVSRSkgew0KPiA+ID4+ ICsgICAgLy8NCj4gPiA+PiArICAgIC8vIEl0IGlzIHRvIGZpbmQgRkFDUyBBQ1BJIHRhYmxlLA0K PiA+ID4+ICsgICAgLy8gbmVlZCBmaW5kIEZBRFQgZmlyc3QuDQo+ID4gPj4gKyAgICAvLw0KPiA+ ID4+ICsgICAgRmFkdCA9IFNjYW5UYWJsZUluUlNEVCAoUnNkdCwNCj4gPiA+PiBFRklfQUNQSV8y XzBfRklYRURfQUNQSV9ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUpOw0KPiA+ID4+ICsgICAg VGFibGUgPSBGaW5kQWNwaUZhY3NGcm9tRmFkdCAoRmFkdCk7ICB9IGVsc2Ugew0KPiA+ID4+ICsg ICAgVGFibGUgPSBTY2FuVGFibGVJblJTRFQgKFJzZHQsIFNpZ25hdHVyZSk7ICB9DQo+ID4gPj4g Kw0KPiA+ID4+ICsgIHJldHVybiBUYWJsZTsNCj4gPiA+PiArfQ0KPiA+ID4+ICsNCj4gPiA+PiAr LyoqDQo+ID4gPj4gKyAgVGhpcyBmdW5jdGlvbiBmaW5kcyBBQ1BJIHRhYmxlIGJ5IHNpZ25hdHVy ZS4NCj4gPiA+PiArICBJdCB3aWxsIGZpbmQgdGhlIHRhYmxlIGluIGdFZmlBY3BpMjBUYWJsZUd1 aWQgc3lzdGVtDQo+ID4gPj4gK2NvbmZpZ3VyYXRpb24gdGFibGUNCj4gPiBmaXJzdCwNCj4gPiA+ PiArICBhbmQgdGhlbiBnRWZpQWNwaTEwVGFibGVHdWlkIHN5c3RlbSBjb25maWd1cmF0aW9uIHRh YmxlLg0KPiA+ID4+ICsNCj4gPiA+PiArICBAcGFyYW0gU2lnbmF0dXJlICBBQ1BJIHRhYmxlIHNp Z25hdHVyZS4NCj4gPiA+PiArDQo+ID4gPj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwg aWYgbm90IGZvdW5kLg0KPiA+ID4+ICsNCj4gPiA+PiArKiovDQo+ID4gPj4gK1ZPSUQgKg0KPiA+ ID4+ICtFRklBUEkNCj4gPiA+PiArRWZpRmluZEFjcGlUYWJsZUJ5U2lnbmF0dXJlICgNCj4gPiA+ PiArICBJTiBVSU5UMzIgICAgIFNpZ25hdHVyZQ0KPiA+ID4+ICsgICkNCj4gPiA+PiArew0KPiA+ ID4+ICsgIFZPSUQgICAgICAgICAgKlRhYmxlOw0KPiA+ID4+ICsNCj4gPiA+PiArICBUYWJsZSA9 IEZpbmRBY3BpVGFibGVJbkFjcGlDb25maWd1cmF0aW9uVGFibGUNCj4gPiA+PiArICgmZ0VmaUFj cGkyMFRhYmxlR3VpZCwNCj4gPiA+PiBTaWduYXR1cmUpOw0KPiA+ID4+ICsgIGlmIChUYWJsZSAh PSBOVUxMKSB7DQo+ID4gPj4gKyAgICByZXR1cm4gVGFibGU7DQo+ID4gPj4gKyAgfQ0KPiA+ID4+ ICsNCj4gPiA+PiArICByZXR1cm4gRmluZEFjcGlUYWJsZUluQWNwaUNvbmZpZ3VyYXRpb25UYWJs ZQ0KPiA+ID4+ICsgKCZnRWZpQWNwaTEwVGFibGVHdWlkLA0KPiA+ID4+IFNpZ25hdHVyZSk7DQo+ ID4gPj4gK30NCj4gPiA+PiArDQo+ID4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1Vl ZmlMaWIvVWVmaUxpYi5pbmYNCj4gPiA+PiBiL01kZVBrZy9MaWJyYXJ5L1VlZmlMaWIvVWVmaUxp Yi5pbmYNCj4gPiA+PiBpbmRleCBhNmM3MzllZjNkNmQuLmFlYTIwZmU2NzE1MyAxMDA2NDQNCj4g PiA+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9VZWZpTGliL1VlZmlMaWIuaW5mDQo+ID4gPj4gKysr IGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZg0KPiA+ID4+IEBAIC00MSw2ICs0 MSw3IEBAIFtTb3VyY2VzXQ0KPiA+ID4+ICBDb25zb2xlLmMNCj4gPiA+PiAgVWVmaUxpYi5jDQo+ ID4gPj4gIFVlZmlMaWJJbnRlcm5hbC5oDQo+ID4gPj4gKyAgQWNwaS5jDQo+ID4gPj4NCj4gPiA+ Pg0KPiA+ID4+IFtQYWNrYWdlc10NCj4gPiA+PiBAQCAtNjIsNiArNjMsOCBAQCBbR3VpZHNdDQo+ ID4gPj4gIGdFZmlFdmVudFJlYWR5VG9Cb290R3VpZCAgICAgICAgICAgICAgICAgICAgICAjIw0K PiA+ID4+IFNPTUVUSU1FU19DT05TVU1FUyAgIyMgRXZlbnQNCj4gPiA+PiAgZ0VmaUV2ZW50TGVn YWN5Qm9vdEd1aWQgICAgICAgICAgICAgICAgICAgICAgICMjDQo+ID4gPj4gU09NRVRJTUVTX0NP TlNVTUVTICAjIyBFdmVudA0KPiA+ID4+ICBnRWZpR2xvYmFsVmFyaWFibGVHdWlkICAgICAgICAg ICAgICAgICAgICAgICAgIyMNCj4gPiA+PiBTT01FVElNRVNfQ09OU1VNRVMgICMjIFZhcmlhYmxl DQo+ID4gPj4gKyAgZ0VmaUFjcGkyMFRhYmxlR3VpZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICMjDQo+ID4gPj4gU09NRVRJTUVTX0NPTlNVTUVTICAjIyBTeXN0ZW1UYWJsZQ0KPiA+ID4+ICsg IGdFZmlBY3BpMTBUYWJsZUd1aWQgICAgICAgICAgICAgICAgICAgICAgICAgICAjIw0KPiA+ID4+ IFNPTUVUSU1FU19DT05TVU1FUyAgIyMgU3lzdGVtVGFibGUNCj4gPiA+Pg0KPiA+ID4+IFtQcm90 b2NvbHNdDQo+ID4gPj4gIGdFZmlEcml2ZXJCaW5kaW5nUHJvdG9jb2xHdWlkICAgICAgICAgICAg ICAgICAgICMjDQo+ID4gPj4gU09NRVRJTUVTX1BST0RVQ0VTDQo+ID4gPj4gLS0NCj4gPiA+PiAy LjcuMC53aW5kb3dzLjENCj4gPiA+Pg0KPiA+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+ID4gPj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4g PiA+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4+IGh0dHBzOi8vbGlzdHMuMDEub3Jn L21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiA+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0 DQo+ID4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gaHR0cHM6Ly9saXN0cy4wMS5v cmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=