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 B13472110BD6C for ; Fri, 31 Aug 2018 09:29:34 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Aug 2018 09:29:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,312,1531810800"; d="scan'208";a="253522083" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga005.jf.intel.com with ESMTP; 31 Aug 2018 09:29:19 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 31 Aug 2018 09:29:19 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 31 Aug 2018 09:29:18 -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; Sat, 1 Sep 2018 00:29:17 +0800 From: "Ni, Ruiyu" To: "Yao, Jiewen" CC: "Zeng, Star" , "edk2-devel@lists.01.org" , "Kinney, Michael D" , Younas khan , "Gao, Liming" Thread-Topic: [edk2] [PATCH 1/6] MdePkg UefiLib: Add new EfiFindAcpiTableBySignature() API Thread-Index: AQHUQR3tEeu0kRzdoEuxFG+IMkFel6TZO1YAgABLygA= Date: Fri, 31 Aug 2018 16:29:16 +0000 Message-ID: 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> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AD36A49@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: Fri, 31 Aug 2018 16:29:34 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-ID: <323B91D858ACB04691D2BDC0B4EBF61A@intel.com> Content-Transfer-Encoding: base64 SSB0aGluayBMb2NhdGVOZXh0QWNwaVRhYmxlKCkgaXMgbW9yZSBwcm9wZXIgdG8gaGFuZGxlIHRo ZSBtdWx0aXBsZSB0YWJsZXMgd2l0aCBzYW1lIHNpZ25hdHVyZS4gSXQgd2lsbCBjYXJyeSB0aHJl ZSBwYXJhbWV0ZXJzLCBvbmUgaXMgdGhlIHRhYmxlIGhlYWRlciBzdG9yZWQgaW4gY29uZmlndXJh dGlvbiB0YWJsZSwgb25lIGlzIHRoZSBzaWduYXR1cmUsIGFub3RoZXIgaXMgdGhlIHByZXZpb3Vz IGxvY2F0ZWQgdGFibGUuIENhbiB3ZSByZXR1cm4gYSBjb21tb24gdGFibGUgaGVhZGVyIG90aGVy IHRoYW4gdm9pZCo/DQoNCklzIHRoZXJlIGJldHRlciBwbGFjZSBvdGhlciB0aGFuIFVlZmlMaWI/ DQpEbyB3ZSBuZWVkIHRvIGFkZCBhIG5ldyBsaWJyYXJ5IGNsYXNzIGxpa2UgQWNwaUxpYj8NCg0K 5Y+R6Ieq5oiR55qEIGlQaG9uZQ0KDQo+IOWcqCAyMDE45bm0OOaciDMx5pel77yM5LiL5Y2IODow MO+8jFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4g5YaZ6YGT77yaDQo+IA0KPiBH b29kIGVuaGFuY2VtZW50Lg0KPiANCj4gSSBoYXZlIDIgYWRkaXRpb25hbCB0aG91Z2h0Og0KPiAN Cj4gMSkgSG93IHRvIGhhbmRsZSBEU0RUPw0KPiBXZSBoYXZlIHNwZWNpYWwgY29kZSB0byBoYW5k bGUgRkFDUywgYnV0IG5vIERTRFQuDQo+IA0KPiAyKSBIb3cgdG8gaGFuZGxlIFNTRFQgb3Igb3Ro ZXIgbXVsdGlwbGUgQUNQSSB0YWJsZXM/DQo+IFdlIG1heSBoYXZlIG11bHRpcGxlIFNTRFQuIFVz dWFsbHksIGl0IGlzIGlkZW50aWZpZWQgYXMgT0VNSUQuDQo+IERvIHdlIHdhbnQgdG8gcHJvdmlk ZSBzaW1pbGFyIGZ1bmN0aW9uIGZvciB0aGVtPw0KPiANCj4gQW55d2F5LCBqdXN0ICphZGRpdGlv bmFsKiB0aG91Z2h0LiA6LSkNCj4gQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBpcyBnb29kIGVub3Vn aCBmb3IgY2hlY2sgaW4uDQo+IA0KPiBSZXZpZXdlZC1ieTogSmlld2VuLnlhb0BpbnRlbC5jb20N Cj4gDQo+IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+IA0KPiANCj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3Vu Y2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIFN0YXINCj4+IFplbmcNCj4+IFNlbnQ6IEZy aWRheSwgQXVndXN0IDMxLCAyMDE4IDc6MjkgUE0NCj4+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAx Lm9yZw0KPj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IFlvdW5hcyBraGFuDQo+PiA8cG1keW91bmFza2hhbjc4NkBnbWFpbC5jb20+OyBZYW8sIEpp ZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBHYW8sDQo+PiBMaW1pbmcgPGxpbWluZy5nYW9A aW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4+IFN1YmplY3Q6 IFtlZGsyXSBbUEFUQ0ggMS82XSBNZGVQa2cgVWVmaUxpYjogQWRkIG5ldw0KPj4gRWZpRmluZEFj cGlUYWJsZUJ5U2lnbmF0dXJlKCkgQVBJDQo+PiANCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9j b3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3DQo+PiBSZXF1ZXN0IHRvIGFkZCBhIGxpYnJhcnkg ZnVuY3Rpb24gZm9yIEdldEFjcGlUYWJsZSgpIGluIG9yZGVyDQo+PiB0byBnZXQgQUNQSSB0YWJs ZSB1c2luZyBzaWduYXR1cmUgYXMgaW5wdXQuDQo+PiANCj4+IEFmdGVyIGV2YWx1YXRpb24sIHdl IGZvdW5kIHRoZXJlIGFyZSBtYW55IGR1cGxpY2F0ZWQgY29kZSB0bw0KPj4gZmluZCBBQ1BJIHRh YmxlIGJ5IHNpZ25hdHVyZSBpbiBkaWZmZXJlbnQgbW9kdWxlcy4NCj4+IA0KPj4gVGhpcyBwYXRj aCBhZGRzIG5ldyBFZmlGaW5kQWNwaVRhYmxlQnlTaWduYXR1cmUoKSBBUEkgaW4gVWVmaUxpYg0K Pj4gZm9yIHRoZSByZXF1ZXN0IGFuZCBhbHNvIHRoZSBmb2xsb3dpbmcgcGF0Y2ggdG8gcmVtb3Zl IHRoZQ0KPj4gZHVwbGljYXRlZCBjb2RlLg0KPj4gDQo+PiBDYzogWW91bmFzIGtoYW4gPHBtZHlv dW5hc2toYW43ODZAZ21haWwuY29tPg0KPj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwu Y29tPg0KPj4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPj4gQ29udHJp YnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPj4gU2ln bmVkLW9mZi1ieTogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPj4gLS0tDQo+PiBN ZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VlZmlMaWIuaCAgIHwgIDE3ICsrKw0KPj4gTWRlUGtnL0xp YnJhcnkvVWVmaUxpYi9BY3BpLmMgICAgICB8IDIyNg0KPj4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKw0KPj4gTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZiB8 ICAgMyArDQo+PiAzIGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25zKCspDQo+PiBjcmVhdGUg bW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4+IA0KPj4gZGlmZiAt LWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+PiBiL01kZVBrZy9JbmNs dWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+PiBpbmRleCBmODAwNjdmMTExMDMuLjhkZDI1ZjMyNGZk MiAxMDA2NDQNCj4+IC0tLSBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oDQo+PiAr KysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VlZmlMaWIuaA0KPj4gQEAgLTE1OTUsNCArMTU5 NSwyMSBAQCBFZmlPcGVuRmlsZUJ5RGV2aWNlUGF0aCAoDQo+PiAgSU4gICAgIFVJTlQ2NCAgICAg ICAgICAgICAgICAgICAgT3Blbk1vZGUsDQo+PiAgSU4gICAgIFVJTlQ2NCAgICAgICAgICAgICAg ICAgICAgQXR0cmlidXRlcw0KPj4gICk7DQo+PiArDQo+PiArLyoqDQo+PiArICBUaGlzIGZ1bmN0 aW9uIGZpbmRzIEFDUEkgdGFibGUgYnkgc2lnbmF0dXJlLg0KPj4gKyAgSXQgd2lsbCBmaW5kIHRo ZSB0YWJsZSBpbiBnRWZpQWNwaTIwVGFibGVHdWlkIHN5c3RlbSBjb25maWd1cmF0aW9uIHRhYmxl IGZpcnN0LA0KPj4gKyAgYW5kIHRoZW4gZ0VmaUFjcGkxMFRhYmxlR3VpZCBzeXN0ZW0gY29uZmln dXJhdGlvbiB0YWJsZS4NCj4+ICsNCj4+ICsgIEBwYXJhbSBTaWduYXR1cmUgIEFDUEkgdGFibGUg c2lnbmF0dXJlLg0KPj4gKw0KPj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwgaWYgbm90 IGZvdW5kLg0KPj4gKw0KPj4gKyoqLw0KPj4gK1ZPSUQgKg0KPj4gK0VGSUFQSQ0KPj4gK0VmaUZp bmRBY3BpVGFibGVCeVNpZ25hdHVyZSAoDQo+PiArICBJTiBVSU5UMzIgICAgIFNpZ25hdHVyZQ0K Pj4gKyAgKTsNCj4+ICsNCj4+ICNlbmRpZg0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5 L1VlZmlMaWIvQWNwaS5jIGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjVjYjkzOTY2YjU5Zg0KPj4g LS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9BY3BpLmMNCj4+ IEBAIC0wLDAgKzEsMjI2IEBADQo+PiArLyoqIEBmaWxlDQo+PiArICBUaGlzIG1vZHVsZSBwcm92 aWRlcyBoZWxwIGZ1bmN0aW9uIGZvciBmaW5kaW5nIEFDUEkgdGFibGUuDQo+PiArDQo+PiArICBD b3B5cmlnaHQgKGMpIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4+ICsgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMN Cj4+ICsgIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFu ZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4+IExpY2Vuc2UNCj4+ICsgIHdoaWNoIGFjY29tcGFu aWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkg YmUNCj4+IGZvdW5kIGF0DQo+PiArICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNk LWxpY2Vuc2UucGhwLg0KPj4gKw0KPj4gKyAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5E RVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4+IEJBU0lTLA0KPj4gKyAgV0lUSE9V VCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+PiBF WFBSRVNTIE9SIElNUExJRUQuDQo+PiArDQo+PiArKiovDQo+PiArDQo+PiArI2luY2x1ZGUgIlVl ZmlMaWJJbnRlcm5hbC5oIg0KPj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL0FjcGkuaD4N Cj4+ICsjaW5jbHVkZSA8R3VpZC9BY3BpLmg+DQo+PiArDQo+PiArLyoqDQo+PiArICBUaGlzIGZ1 bmN0aW9uIHNjYW5zIEFDUEkgdGFibGUgaW4gUlNEVC4NCj4+ICsNCj4+ICsgIEBwYXJhbSBSc2R0 ICAgICAgIEFDUEkgUlNEVA0KPj4gKyAgQHBhcmFtIFNpZ25hdHVyZSAgQUNQSSB0YWJsZSBzaWdu YXR1cmUNCj4+ICsNCj4+ICsgIEByZXR1cm4gQUNQSSB0YWJsZSBvciBOVUxMIGlmIG5vdCBmb3Vu ZC4NCj4+ICsNCj4+ICsqKi8NCj4+ICtWT0lEICoNCj4+ICtTY2FuVGFibGVJblJTRFQgKA0KPj4g KyAgSU4gRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgICpSc2R0LA0KPj4gKyAgSU4gVUlO VDMyICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25hdHVyZQ0KPj4gKyAgKQ0KPj4gK3sNCj4+ ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+PiArICBVSU5U MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5Q291bnQ7DQo+PiArICBVSU5UMzIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpFbnRyeVB0cjsNCj4+ICsgIEVGSV9BQ1BJX0RF U0NSSVBUSU9OX0hFQURFUiAgICAgICAgKlRhYmxlOw0KPj4gKw0KPj4gKyAgaWYgKFJzZHQgPT0g TlVMTCkgew0KPj4gKyAgICByZXR1cm4gTlVMTDsNCj4+ICsgIH0NCj4+ICsNCj4+ICsgIEVudHJ5 Q291bnQgPSAoUnNkdC0+TGVuZ3RoIC0gc2l6ZW9mIChFRklfQUNQSV9ERVNDUklQVElPTl9IRUFE RVIpKSAvDQo+PiBzaXplb2YoVUlOVDMyKTsNCj4+ICsNCj4+ICsgIEVudHJ5UHRyID0gKFVJTlQz MiAqKShSc2R0ICsgMSk7DQo+PiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBFbnRyeUNvdW50 OyBJbmRleCArKywgRW50cnlQdHIgKyspIHsNCj4+ICsgICAgVGFibGUgPSAoRUZJX0FDUElfREVT Q1JJUFRJT05fSEVBREVSICopKChVSU5UTikoKkVudHJ5UHRyKSk7DQo+PiArICAgIGlmIChUYWJs ZS0+U2lnbmF0dXJlID09IFNpZ25hdHVyZSkgew0KPj4gKyAgICAgIHJldHVybiBUYWJsZTsNCj4+ ICsgICAgfQ0KPj4gKyAgfQ0KPj4gKw0KPj4gKyAgcmV0dXJuIE5VTEw7DQo+PiArfQ0KPj4gKw0K Pj4gKy8qKg0KPj4gKyAgVGhpcyBmdW5jdGlvbiBzY2FucyBBQ1BJIHRhYmxlIGluIFhTRFQuDQo+ PiArDQo+PiArICBAcGFyYW0gWHNkdCAgICAgICBBQ1BJIFhTRFQNCj4+ICsgIEBwYXJhbSBTaWdu YXR1cmUgIEFDUEkgdGFibGUgc2lnbmF0dXJlDQo+PiArDQo+PiArICBAcmV0dXJuIEFDUEkgdGFi bGUgb3IgTlVMTCBpZiBub3QgZm91bmQuDQo+PiArDQo+PiArKiovDQo+PiArVk9JRCAqDQo+PiAr U2NhblRhYmxlSW5YU0RUICgNCj4+ICsgIElOIEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAg ICAqWHNkdCwNCj4+ICsgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICBTaWduYXR1 cmUNCj4+ICsgICkNCj4+ICt7DQo+PiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAg SW5kZXg7DQo+PiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnlDb3VudDsN Cj4+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICBFbnRyeVB0cjsNCj4+ICsgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlUHRyOw0KPj4gKyAgRUZJX0FDUElfREVT Q1JJUFRJT05fSEVBREVSICAgICpUYWJsZTsNCj4+ICsNCj4+ICsgIGlmIChYc2R0ID09IE5VTEwp IHsNCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArICB9DQo+PiArDQo+PiArICBFbnRyeUNvdW50 ID0gKFhzZHQtPkxlbmd0aCAtIHNpemVvZiAoRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSKSkg Lw0KPj4gc2l6ZW9mKFVJTlQ2NCk7DQo+PiArDQo+PiArICBCYXNlUHRyID0gKFVJTlROKShYc2R0 ICsgMSk7DQo+PiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBFbnRyeUNvdW50OyBJbmRleCAr Kykgew0KPj4gKyAgICBDb3B5TWVtICgmRW50cnlQdHIsIChWT0lEICopKEJhc2VQdHIgKyBJbmRl eCAqIHNpemVvZihVSU5UNjQpKSwNCj4+IHNpemVvZihVSU5UNjQpKTsNCj4+ICsgICAgVGFibGUg PSAoRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICopKChVSU5UTikoRW50cnlQdHIpKTsNCj4+ ICsgICAgaWYgKFRhYmxlLT5TaWduYXR1cmUgPT0gU2lnbmF0dXJlKSB7DQo+PiArICAgICAgcmV0 dXJuIFRhYmxlOw0KPj4gKyAgICB9DQo+PiArICB9DQo+PiArDQo+PiArICByZXR1cm4gTlVMTDsN Cj4+ICt9DQo+PiArDQo+PiArLyoqDQo+PiArICBUbyBmaW5kIEZhY3MgaW4gRkFEVC4NCj4+ICsN Cj4+ICsgIEBwYXJhbSBGYWR0ICAgRkFEVCB0YWJsZSBwb2ludGVyDQo+PiArDQo+PiArICBAcmV0 dXJuIEZhY3MgdGFibGUgcG9pbnRlciBvciBOVUxMIGlmIG5vdCBmb3VuZC4NCj4+ICsNCj4+ICsq Ki8NCj4+ICtFRklfQUNQSV8yXzBfRklSTVdBUkVfQUNQSV9DT05UUk9MX1NUUlVDVFVSRSAqDQo+ PiArRmluZEFjcGlGYWNzRnJvbUZhZHQgKA0KPj4gKyAgSU4gRUZJX0FDUElfMl8wX0ZJWEVEX0FD UElfREVTQ1JJUFRJT05fVEFCTEUgICpGYWR0DQo+PiArICApDQo+PiArew0KPj4gKyAgRUZJX0FD UElfMl8wX0ZJUk1XQVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkUgICpGYWNzOw0KPj4gKyAgVUlO VDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGE2NDsNCj4+ICsN Cj4+ICsgIGlmIChGYWR0ID09IE5VTEwpIHsNCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArICB9 DQo+PiArDQo+PiArICBpZiAoRmFkdC0+SGVhZGVyLlJldmlzaW9uIDwNCj4+IEVGSV9BQ1BJXzJf MF9GSVhFRF9BQ1BJX0RFU0NSSVBUSU9OX1RBQkxFX1JFVklTSU9OKSB7DQo+PiArICAgIEZhY3Mg PSAoRUZJX0FDUElfMl8wX0ZJUk1XQVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkUNCj4+ICopKFVJ TlROKUZhZHQtPkZpcm13YXJlQ3RybDsNCj4+ICsgIH0gZWxzZSB7DQo+PiArICAgIENvcHlNZW0g KCZEYXRhNjQsICZGYWR0LT5YRmlybXdhcmVDdHJsLCBzaXplb2YoVUlOVDY0KSk7DQo+PiArICAg IGlmIChEYXRhNjQgIT0gMCkgew0KPj4gKyAgICAgIEZhY3MgPSAoRUZJX0FDUElfMl8wX0ZJUk1X QVJFX0FDUElfQ09OVFJPTF9TVFJVQ1RVUkUNCj4+ICopKFVJTlROKURhdGE2NDsNCj4+ICsgICAg fSBlbHNlIHsNCj4+ICsgICAgICBGYWNzID0gKEVGSV9BQ1BJXzJfMF9GSVJNV0FSRV9BQ1BJX0NP TlRST0xfU1RSVUNUVVJFDQo+PiAqKShVSU5UTilGYWR0LT5GaXJtd2FyZUN0cmw7DQo+PiArICAg IH0NCj4+ICsgIH0NCj4+ICsgIHJldHVybiBGYWNzOw0KPj4gK30NCj4+ICsNCj4+ICsvKioNCj4+ ICsgIFRvIGZpbmQgQUNQSSB0YWJsZSBpbiBBQ1BJIENvbmZpZ3VyYXRpb25UYWJsZS4NCj4+ICsN Cj4+ICsgIEBwYXJhbSBBY3BpVGFibGVHdWlkICBUaGUgZ3VpZCB1c2VkIHRvIGZpbmQgQUNQSSBD b25maWd1cmF0aW9uVGFibGUuDQo+PiArICBAcGFyYW0gU2lnbmF0dXJlICAgICAgQUNQSSB0YWJs ZSBzaWduYXR1cmUuDQo+PiArDQo+PiArICBAcmV0dXJuIEFDUEkgdGFibGUgb3IgTlVMTCBpZiBu b3QgZm91bmQuDQo+PiArDQo+PiArKiovDQo+PiArVk9JRCAgKg0KPj4gK0ZpbmRBY3BpVGFibGVJ bkFjcGlDb25maWd1cmF0aW9uVGFibGUgKA0KPj4gKyAgSU4gRUZJX0dVSUQgICAqQWNwaUd1aWQs DQo+PiArICBJTiBVSU5UMzIgICAgIFNpZ25hdHVyZQ0KPj4gKw0KPj4gKyAgKQ0KPj4gK3sNCj4+ ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7 DQo+PiArICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlRh YmxlOw0KPj4gKyAgRUZJX0FDUElfMl8wX1JPT1RfU1lTVEVNX0RFU0NSSVBUSU9OX1BPSU5URVIg ICpSc2RwOw0KPj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgICAgICAgICAgICAg ICAgICpSc2R0Ow0KPj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgICAgICAgICAg ICAgICAgICpYc2R0Ow0KPj4gKyAgRUZJX0FDUElfMl8wX0ZJWEVEX0FDUElfREVTQ1JJUFRJT05f VEFCTEUgICAgICpGYWR0Ow0KPj4gKw0KPj4gKyAgUnNkcCA9IE5VTEw7DQo+PiArICAvLw0KPj4g KyAgLy8gRmluZCBBQ1BJIENvbmZpZ3VyYXRpb25UYWJsZSAoUlNEX1BUUikNCj4+ICsgIC8vDQo+ PiArICBTdGF0dXMgPSBFZmlHZXRTeXN0ZW1Db25maWd1cmF0aW9uVGFibGUoQWNwaUd1aWQsIChW T0lEICoqKSZSc2RwKTsNCj4+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgKFJzZHAgPT0g TlVMTCkpIHsNCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArICB9DQo+PiArDQo+PiArICBUYWJs ZSA9IE5VTEw7DQo+PiArDQo+PiArICAvLw0KPj4gKyAgLy8gU2VhcmNoIFhTRFQNCj4+ICsgIC8v DQo+PiArICBpZiAoUnNkcC0+UmV2aXNpb24gPj0NCj4+IEVGSV9BQ1BJXzJfMF9ST09UX1NZU1RF TV9ERVNDUklQVElPTl9QT0lOVEVSX1JFVklTSU9OKSB7DQo+PiArICAgIFhzZHQgPSAoRUZJX0FD UElfREVTQ1JJUFRJT05fSEVBREVSICopKFVJTlROKSBSc2RwLT5Yc2R0QWRkcmVzczsNCj4+ICsg ICAgaWYgKFNpZ25hdHVyZSA9PQ0KPj4gRUZJX0FDUElfMl8wX0ZJUk1XQVJFX0FDUElfQ09OVFJP TF9TVFJVQ1RVUkVfU0lHTkFUVVJFKSB7DQo+PiArICAgICAgLy8NCj4+ICsgICAgICAvLyBJdCBp cyB0byBmaW5kIEZBQ1MgQUNQSSB0YWJsZSwNCj4+ICsgICAgICAvLyBuZWVkIGZpbmQgRkFEVCBm aXJzdC4NCj4+ICsgICAgICAvLw0KPj4gKyAgICAgIEZhZHQgPSBTY2FuVGFibGVJblhTRFQgKFhz ZHQsDQo+PiBFRklfQUNQSV8yXzBfRklYRURfQUNQSV9ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRV UkUpOw0KPj4gKyAgICAgIFRhYmxlID0gRmluZEFjcGlGYWNzRnJvbUZhZHQgKEZhZHQpOw0KPj4g KyAgICB9IGVsc2Ugew0KPj4gKyAgICAgIFRhYmxlID0gU2NhblRhYmxlSW5YU0RUIChYc2R0LCBT aWduYXR1cmUpOw0KPj4gKyAgICB9DQo+PiArICB9DQo+PiArDQo+PiArICBpZiAoVGFibGUgIT0g TlVMTCkgew0KPj4gKyAgICByZXR1cm4gVGFibGU7DQo+PiArICB9DQo+PiArDQo+PiArICAvLw0K Pj4gKyAgLy8gU2VhcmNoIFJTRFQNCj4+ICsgIC8vDQo+PiArICBSc2R0ID0gKEVGSV9BQ1BJX0RF U0NSSVBUSU9OX0hFQURFUiAqKShVSU5UTikgUnNkcC0+UnNkdEFkZHJlc3M7DQo+PiArICBpZiAo U2lnbmF0dXJlID09DQo+PiBFRklfQUNQSV8yXzBfRklSTVdBUkVfQUNQSV9DT05UUk9MX1NUUlVD VFVSRV9TSUdOQVRVUkUpIHsNCj4+ICsgICAgLy8NCj4+ICsgICAgLy8gSXQgaXMgdG8gZmluZCBG QUNTIEFDUEkgdGFibGUsDQo+PiArICAgIC8vIG5lZWQgZmluZCBGQURUIGZpcnN0Lg0KPj4gKyAg ICAvLw0KPj4gKyAgICBGYWR0ID0gU2NhblRhYmxlSW5SU0RUIChSc2R0LA0KPj4gRUZJX0FDUElf Ml8wX0ZJWEVEX0FDUElfREVTQ1JJUFRJT05fVEFCTEVfU0lHTkFUVVJFKTsNCj4+ICsgICAgVGFi bGUgPSBGaW5kQWNwaUZhY3NGcm9tRmFkdCAoRmFkdCk7DQo+PiArICB9IGVsc2Ugew0KPj4gKyAg ICBUYWJsZSA9IFNjYW5UYWJsZUluUlNEVCAoUnNkdCwgU2lnbmF0dXJlKTsNCj4+ICsgIH0NCj4+ ICsNCj4+ICsgIHJldHVybiBUYWJsZTsNCj4+ICt9DQo+PiArDQo+PiArLyoqDQo+PiArICBUaGlz IGZ1bmN0aW9uIGZpbmRzIEFDUEkgdGFibGUgYnkgc2lnbmF0dXJlLg0KPj4gKyAgSXQgd2lsbCBm aW5kIHRoZSB0YWJsZSBpbiBnRWZpQWNwaTIwVGFibGVHdWlkIHN5c3RlbSBjb25maWd1cmF0aW9u IHRhYmxlIGZpcnN0LA0KPj4gKyAgYW5kIHRoZW4gZ0VmaUFjcGkxMFRhYmxlR3VpZCBzeXN0ZW0g Y29uZmlndXJhdGlvbiB0YWJsZS4NCj4+ICsNCj4+ICsgIEBwYXJhbSBTaWduYXR1cmUgIEFDUEkg dGFibGUgc2lnbmF0dXJlLg0KPj4gKw0KPj4gKyAgQHJldHVybiBBQ1BJIHRhYmxlIG9yIE5VTEwg aWYgbm90IGZvdW5kLg0KPj4gKw0KPj4gKyoqLw0KPj4gK1ZPSUQgKg0KPj4gK0VGSUFQSQ0KPj4g K0VmaUZpbmRBY3BpVGFibGVCeVNpZ25hdHVyZSAoDQo+PiArICBJTiBVSU5UMzIgICAgIFNpZ25h dHVyZQ0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsgIFZPSUQgICAgICAgICAgKlRhYmxlOw0KPj4gKw0K Pj4gKyAgVGFibGUgPSBGaW5kQWNwaVRhYmxlSW5BY3BpQ29uZmlndXJhdGlvblRhYmxlICgmZ0Vm aUFjcGkyMFRhYmxlR3VpZCwNCj4+IFNpZ25hdHVyZSk7DQo+PiArICBpZiAoVGFibGUgIT0gTlVM TCkgew0KPj4gKyAgICByZXR1cm4gVGFibGU7DQo+PiArICB9DQo+PiArDQo+PiArICByZXR1cm4g RmluZEFjcGlUYWJsZUluQWNwaUNvbmZpZ3VyYXRpb25UYWJsZSAoJmdFZmlBY3BpMTBUYWJsZUd1 aWQsDQo+PiBTaWduYXR1cmUpOw0KPj4gK30NCj4+ICsNCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cv TGlicmFyeS9VZWZpTGliL1VlZmlMaWIuaW5mDQo+PiBiL01kZVBrZy9MaWJyYXJ5L1VlZmlMaWIv VWVmaUxpYi5pbmYNCj4+IGluZGV4IGE2YzczOWVmM2Q2ZC4uYWVhMjBmZTY3MTUzIDEwMDY0NA0K Pj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZg0KPj4gKysrIGIvTWRl UGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZg0KPj4gQEAgLTQxLDYgKzQxLDcgQEAgW1Nv dXJjZXNdDQo+PiAgQ29uc29sZS5jDQo+PiAgVWVmaUxpYi5jDQo+PiAgVWVmaUxpYkludGVybmFs LmgNCj4+ICsgIEFjcGkuYw0KPj4gDQo+PiANCj4+IFtQYWNrYWdlc10NCj4+IEBAIC02Miw2ICs2 Myw4IEBAIFtHdWlkc10NCj4+ICBnRWZpRXZlbnRSZWFkeVRvQm9vdEd1aWQgICAgICAgICAgICAg ICAgICAgICAgIyMNCj4+IFNPTUVUSU1FU19DT05TVU1FUyAgIyMgRXZlbnQNCj4+ICBnRWZpRXZl bnRMZWdhY3lCb290R3VpZCAgICAgICAgICAgICAgICAgICAgICAgIyMNCj4+IFNPTUVUSU1FU19D T05TVU1FUyAgIyMgRXZlbnQNCj4+ICBnRWZpR2xvYmFsVmFyaWFibGVHdWlkICAgICAgICAgICAg ICAgICAgICAgICAgIyMNCj4+IFNPTUVUSU1FU19DT05TVU1FUyAgIyMgVmFyaWFibGUNCj4+ICsg IGdFZmlBY3BpMjBUYWJsZUd1aWQgICAgICAgICAgICAgICAgICAgICAgICAgICAjIw0KPj4gU09N RVRJTUVTX0NPTlNVTUVTICAjIyBTeXN0ZW1UYWJsZQ0KPj4gKyAgZ0VmaUFjcGkxMFRhYmxlR3Vp ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICMjDQo+PiBTT01FVElNRVNfQ09OU1VNRVMgICMj IFN5c3RlbVRhYmxlDQo+PiANCj4+IFtQcm90b2NvbHNdDQo+PiAgZ0VmaURyaXZlckJpbmRpbmdQ cm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgIyMNCj4+IFNPTUVUSU1FU19QUk9EVUNFUw0K Pj4gLS0NCj4+IDIuNy4wLndpbmRvd3MuMQ0KPj4gDQo+PiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+ IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+PiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2VkazItZGV2ZWwNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsy LWRldmVsDQo=