From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.4936.1588998181044752010 for ; Fri, 08 May 2020 21:23:01 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: ray.ni@intel.com) IronPort-SDR: Ry5uQcoTFjvT90dr8q/Y2I0mEOH7SsEdUnUQk+m3re0XyBAYhqFvG8zKSoO6igB8pZwR+2tHyN k6wBwdpQxKgg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 May 2020 21:23:00 -0700 IronPort-SDR: UE/cK3v8rEhjIecLO3aVZZ3Lx8YClNmxh/WxukpI6zyPox/cuiLIAe2MlMPDKXXHfW+pTs8+/o oA4Y8orESWbg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,370,1583222400"; d="scan'208";a="285683920" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 08 May 2020 21:23:00 -0700 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 8 May 2020 21:22:59 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 8 May 2020 21:22:59 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.210]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.181]) with mapi id 14.03.0439.000; Sat, 9 May 2020 12:22:56 +0800 From: "Ni, Ray" To: "rfc@edk2.groups.io" , "Kinney, Michael D" , "devel@edk2.groups.io" Subject: Re: [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Topic: [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Index: AdYlrbT8bFM60bvPQMeeqo8QbNJ7HwABQPHg Date: Sat, 9 May 2020 04:22:55 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C530C37@SHSMSX104.ccr.corp.intel.com> References: In-Reply-To: Accept-Language: en-US, zh-CN 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: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWlrZSwNCkl0J3MgYSBodWdlIGltcHJvdmVtZW50IHRvIG1lIGFzIGFuIE91dGxvb2sgdXNlciBp ZiBwdWxsLXJlcXVlc3QtYmFzZWQgcmV2aWV3IGlzIGVuYWJsZWQhDQoNClBsZWFzZSBoZWxwIG1l IHRvIHVuZGVyc3RhbmQ6IFRoZSBwdWxsLXJlcXVlc3QtYmFzZWQgcmV2aWV3IGhhcyBiZWVuIGVu YWJsZWQgbmF0dXJhbGx5IHdoZW4gZWRrMg0Kd2FzIG1pZ3JhdGVkIHRvIEdpdGh1Yi4gUGVvcGxl IGRvbid0IHVzZSBpdCBiZWNhdXNlIGl0J3Mgbm90IGFjY2VwdGVkIGJ5IGNvbW11bml0eS4gWW91 ciBwcm9jZXNzDQp0cmllcyB0byBtZWV0IGNvbW11bml0eSdzIG5lZWRzIG9mIGFjaGlldmluZyBh bGwgcmV2aWV3IGNvbW1lbnRzIGluIG1haWxzIHNvIHB1bGwtcmVxdWVzdC1iYXNlZA0KcmV2aWV3 IGNhbiBiZSBhY2NlcHRlZCBieSBjb21tdW5pdHkuIFJpZ2h0Pw0KDQpJIGp1c3Qgc3Vic2NyaWJl ZCBhdCBodHRwczovL3d3dy5yZWRoYXQuY29tL21haWxtYW4vbGlzdGluZm8vdGlhbm9jb3JlLWNv ZGUtcmV2aWV3LXBvYyB3aXRoDQplbXB0eSBwYXNzd29yZC4NCkkgcmVjZWl2ZWQgdGhlIGNvbmZp cm1hdGlvbiBtYWlsIGFuZCBjbGlja2VkIHRoZSBsaW5rIGluIHRoZSBtYWlsIHRvIGNvbmZpcm0u DQpCdXQgSSB3YWl0ZWQgZm9yIH4xNSBtaW51dGVzIGFuZCBkaWRuJ3QgcmVjZWl2ZSB0aGUgYWRk aXRpb25hbCBtYWlsIGNvbnRhaW5pbmcgdGhlIGF1dG8tZ2VuZXJhdGVkIHBhc3N3b3JkLg0KSSB3 ZW50IHRvIGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9wcml2YXRlL3RpYW5vY29yZS1j b2RlLXJldmlldy1wb2MvMjAyMC1NYXkvdGhyZWFkLmh0bWwjMDAyODkuDQpIb3dldmVyLCB0aGUg cGFnZSByZXF1aXJlcyBtZSB0byBlbnRlciBwYXNzd29yZC4NCkNhbiB5b3UgcGxlYXNlIGNoYW5n ZSB0aGUgc2V0dGluZyBzbyB0aGF0IHZpZXdpbmcgdGhlIG1haWwgYWNoaWV2ZSBkb2Vzbid0IG5l ZWQgcGFzc3dvcmQ/DQoNClBsZWFzZSBhZHZpc2UgbWUgd2hhdCBlbHNlIEkgY2FuIHRyeS4gSSBh bSBoYXBweSB0byB0cnkgYXMgbWFueSBzdGVwcyBhcyBJIGNhbiBiZWZvcmUgYWxsIHRoZSBwcm9j ZXNzIGFyZSBlbmFibGVkLg0KDQpUaGFua3MsDQpSYXkNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IHJmY0BlZGsyLmdyb3Vwcy5pbyA8cmZjQGVkazIuZ3JvdXBzLmlv PiBPbiBCZWhhbGYgT2YgTWljaGFlbCBEIEtpbm5leQ0KPiBTZW50OiBTYXR1cmRheSwgTWF5IDks IDIwMjAgMTE6MDAgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyByZmNAZWRrMi5ncm91 cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g U3ViamVjdDogW2VkazItcmZjXSBHaXRIdWIgUHVsbCBSZXF1ZXN0IGJhc2VkIENvZGUgUmV2aWV3 IFByb2Nlc3MNCj4gDQo+IEhlbGxvLA0KPiANCj4gVGhpcyBpcyBhIHByb3Bvc2FsIHRvIGNoYW5n ZSBmcm9tIHRoZSBjdXJyZW50IGVtYWlsLWJhc2VkIGNvZGUgcmV2aWV3IHByb2Nlc3MgdG8NCj4g YSBHaXRIdWIgcHVsbCByZXF1ZXN0LWJhc2VkIGNvZGUgcmV2aWV3IHByb2Nlc3MgZm9yIGFsbCBy ZXBvc2l0b3JpZXMgbWFpbnRhaW5lZA0KPiBpbiBUaWFub0NvcmUuICBUaGUgY3VycmVudCBlbWFp bC1iYXNlZCBjb2RlIHJldmlldyBwcm9jZXNzIGFuZCBjb21taXQgbWVzc2FnZQ0KPiByZXF1aXJl bWVudHMgYXJlIGRvY3VtZW50ZWQgaW4gUmVhZG1lLm1kIG9yIFJlYWRtZS5yc3QgYXQgdGhlIHJv b3Qgb2YNCj4gcmVwb3NpdG9yaWVzIGFsb25nIHdpdGggYSBmZXcgV2lraSBwYWdlczoNCj4gDQo+ ICogaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL1JlYWRNZS5y c3QNCj4gKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL3RpYW5vY29yZS5naXRodWIuaW8v d2lraS9FREstSUktRGV2ZWxvcG1lbnQtUHJvY2Vzcw0KPiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90 aWFub2NvcmUvdGlhbm9jb3JlLmdpdGh1Yi5pby93aWtpL0xhc3psbydzLXVua2VtcHQtZ2l0LWd1 aWRlLWZvci1lZGsyLWNvbnRyaWJ1dG9ycy1hbmQtbWFpbnRhaW5lcnMNCj4gKiBodHRwczovL2dp dGh1Yi5jb20vdGlhbm9jb3JlL3RpYW5vY29yZS5naXRodWIuaW8vd2lraS9Db21taXQtTWVzc2Fn ZS1Gb3JtYXQNCj4gKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL3RpYW5vY29yZS5naXRo dWIuaW8vd2lraS9Db21taXQtU2lnbmF0dXJlLUZvcm1hdA0KPiANCj4gVGhlIGdvYWwgaXMgdG8g cG9zdCBjaGFuZ2VzIGJ5IG9wZW5pbmcgYSBHaXRIdWIgcHVsbCByZXF1ZXN0IGFuZCBwZXJmb3Jt IGFsbA0KPiBjb2RlIHJldmlldyBhY3Rpdml0eSB1c2luZyB0aGUgR2l0SHViIHdlYiBpbnRlcmZh Y2UuICBUaGlzIHByb3Bvc2FsIGRvZXMgbm90DQo+IGNoYW5nZSBhbnkgbGljZW5zZXMgb3IgY29t bWl0IG1lc3NhZ2UgcmVxdWlyZW1lbnRzLiAgSXQgZG9lcyByZXF1aXJlIGFsbA0KPiBkZXZlbG9w ZXJzLCBtYWludGFpbmVycywgYW5kIHJldmlld2VycyB0byBoYXZlIEdpdEh1YiBhY2NvdW50cy4N Cj4gDQo+IE9uZSByZXF1aXJlbWVudCB0aGF0IHdhcyBjb2xsZWN0ZWQgZnJvbSBwcmV2aW91cyBk aXNjdXNzaW9ucyBvbiB0aGlzIHRvcGljIGlzDQo+IHRoZSBuZWVkIGZvciBhbiBlbWFpbCBhcmNo aXZlIG9mIGFsbCBwYXRjaGVzIGFuZCBjb2RlIHJldmlldyBhY3Rpdml0aWVzLiAgVGhlDQo+IGV4 aXN0aW5nIEdpdEh1YiBmZWF0dXJlcyB0byBwcm9kdWNlIGFuIGVtYWlsIGFyY2hpdmUgd2VyZSBk ZWVtZWQgaW5zdWZmaWNpZW50Lg0KPiBBIHByb29mIG9mIGNvbmNlcHQgb2YgYSBHaXRIdWIgd2Vi aG9vayBoYXMgYmVlbiBpbXBsZW1lbnRlZCB0byBwcm92aWRlIHRoZSBlbWFpbA0KPiBhcmNoaXZl IHNlcnZpY2UuICBUaGlzIGVtYWlsIGFyY2hpdmUgaXMgcmVhZC1vbmx5LiAgWW91IHdpbGwgbm90 IGJlIGFibGUgdG8gc2VuZA0KPiBlbWFpbHMgdG8gdGhpcyBhcmNoaXZlIG9yIHJlcGx5IHRvIGVt YWlscyBpbiB0aGUgYXJjaGl2ZS4NCj4gDQo+IFRoZSBzZWN0aW9ucyBiZWxvdyBwcm92aWRlIG1v cmUgZGV0YWlscyBvbiB0aGUgcHJvcG9zZWQgR2l0SHViIHB1bGwgcmVxdWVzdA0KPiBiYXNlZCBj b2RlIHJldmlldyBwcm9jZXNzLCBkZXRhaWxzIG9uIHRoZSBlbWFpbCBhcmNoaXZlIHNlcnZpY2Us IGFuZCBhIHNldCBvZg0KPiByZW1haW5pbmcgdGFza3MgbWFrZSB0aGUgZW1haWwgYXJjaGl2ZSBz ZXJ2aWNlIHByb2R1Y3Rpb24gcXVhbGl0eS4gIEl0IGRvZXMgbm90DQo+IG1ha2Ugc2Vuc2UgdG8g c3VwcG9ydCBib3RoIHRoZSBleGlzdGluZyBlbWFpbC1iYXNlZCBjb2RlIHJldmlldyBhbmQgdGhl IEdpdEh1Yg0KPiBwdWxsIHJlcXVlc3QtYmFzZWQgY29kZSByZXZpZXcgYXQgdGhlIHNhbWUgdGlt ZS4gIEluc3RlYWQsIHRoaXMgcHJvcG9zYWwgaXMgdG8NCj4gc3dpdGNoIHRvIHRoZSBHaXRIdWIg cHVsbCByZXF1ZXN0LWJhc2VkIGNvZGUgcmV2aWV3IGFuZCByZXRpcmUgdGhlIGVtYWlsIGJhc2Vk DQo+IGNvZGUgcmV2aWV3IHByb2Nlc3Mgb24gdGhlIHNhbWUgZGF0ZS4NCj4gDQo+IFRoZSBlZGsy IHJlcG9zaXRvcnkgaXMgdXNpbmcgR2l0SHViIHB1bGwgcmVxdWVzdHMgdG9kYXkgdG8gcnVuIGF1 dG9tYXRlZA0KPiBDSSBjaGVja3Mgb24gdGhlIGNvZGUgY2hhbmdlcyBhbmQgYWxsb3dzIGEgbWFp bnRhaW5lciB0byBzZXQgdGhlIGBwdXNoYCBsYWJlbCB0bw0KPiByZXF1ZXN0IHRoZSBjaGFuZ2Vz IHRvIGJlIG1lcmdlZCBpZiBhbGwgQ0kgY2hlY2tzIHBhc3MuICBXaXRoIHRoaXMgcHJvcG9zYWws DQo+IG9uY2UgdGhlIGNvZGUgcmV2aWV3IGlzIGNvbXBsZXRlIGFuZCB0aGUgY29tbWl0IG1lc3Nh Z2VzIGhhdmUgYmVlbiB1cGRhdGVkLCB0aGUNCj4gc2FtZSBwdWxsIHJlcXVlc3QgY2FuIGJlIHVz ZWQgdG8gcGVyZm9ybSBhIGZpbmFsIHNldCBvZiBDSSBjaGVja3MgYW5kIG1lcmdlIHRoZQ0KPiBj aGFuZ2VzIGludG8gdGhlIG1hc3RlciBicmFuY2guDQo+IA0KPiBJIHdvdWxkIGxpa2UgdG8gY29s bGVjdCBmZWVkYmFjayBvbiB0aGlzIHByb3Bvc2FsIGFuZCB0aGUgZW1haWwgYXJjaGl2ZSBzZXJ2 aWNlDQo+IG92ZXIgdGhlIG5leHQgdHdvIHdlZWtzIHdpdGggY2xvc2Ugb2YgY29tbWVudHMgb24g RnJpZGF5IE1heSAyMiwgMjAyMC4gIElmIGFsbA0KPiBpc3N1ZXMgYW5kIGNvbmNlcm5zIGNhbiBi ZSBhZGRyZXNzZWQsIHRoZW4gSSB3b3VsZCBsaWtlIHRvIHNlZSB0aGUgY29tbXVuaXR5DQo+IGFn cmVlIHRvIG1ha2UgdGhpcyBjaGFuZ2UgYXMgc29vbiBhcyBhbGwgcmVtYWluaW5nIHRhc2tzIGFy ZSBjb21wbGV0ZWQuDQo+IA0KPiAjIFRpYW5vQ29yZSBSZXBvc2l0b3JpZXMgdG8gZW5hYmxlDQo+ IA0KPiAqIFtlZGsyXShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIpDQo+ICogW2Vk azItcGxhdGZvcm1zXShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItcGxhdGZvcm1z KQ0KPiAqIFtlZGsyLW5vbi1vc2ldKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1u b24tb3NpKQ0KPiAqIFtlZGsyLXRlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi10ZXN0KQ0KPiAqIFtlZGsyLWxpYmNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi1saWJjKQ0KPiAqIFtlZGsyLXN0YWdpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUv ZWRrMi1zdGFnaW5nKQ0KPiANCj4gIyBHaXRIdWIgUHVsbCBSZXF1ZXN0IENvZGUgUmV2aWV3IFBy b2Nlc3MNCj4gDQo+ICoqTk9URSoqOiBBbGwgc3RlcHMgYmVsb3cgdXNlIFtlZGsyXShodHRwczov L2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIpIGFzIGFuDQo+IGV4YW1wbGUuICBTZXZlcmFsIHJl cG9zaXRvcmllcyBhcmUgc3VwcG9ydGVkLg0KPiANCj4gIyMgQXV0aG9yL0RldmVsb3BlciBTdGVw cw0KPiAgICogQ3JlYXRlIGEgcGVyc29uYWwgZm9yayBvZiBbZWRrMl0oaHR0cHM6Ly9naXRodWIu Y29tL3RpYW5vY29yZS9lZGsyKQ0KPiANCj4gICAgIGh0dHBzOi8vaGVscC5naXRodWIuY29tL2Vu L2dpdGh1Yi9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1naXRodWIvZm9yay1hLXJlcG8NCj4gDQo+ICAg KiBDcmVhdGUgYSBuZXcgYnJhbmNoIGZyb20gZWRrMi9tYXN0ZXIgaW4gcGVyc29uYWwgZm9yayBv ZiBlZGsyIHJlcG9zaXRvcnkuDQo+IA0KPiAgICogQWRkIHNldCBvZiBjb21taXRzIGZvciBuZXcg ZmVhdHVyZSBvciBidWcgZml4IHRvIG5ldyBicmFuY2guICBNYWtlIHN1cmUgdG8NCj4gICAgIGZv bGxvdyB0aGUgY29tbWl0IG1lc3NhZ2UgZm9ybWF0IHJlcXVpcmVtZW50cy4gIFRoZSBvbmx5IGNo YW5nZSB3aXRoIHRoaXMNCj4gICAgIFJGQyBpcyB0aGF0IHRoZSBDYzogbGluZXMgdG8gbWFpbnRh aW5lcnMvcmV2aWV3ZXJzIHNob3VsZCAqKm5vdCoqIGJlIGFkZGVkLg0KPiAgICAgVGhlIENjOiBs aW5lcyBhcmUgc3RpbGwgc3VwcG9ydGVkLCBidXQgdGhleSBzaG91bGQgb25seSBiZSB1c2VkIHRv IGFkZA0KPiAgICAgcmV2aWV3ZXJzIHRoYXQgZG8gbm90IGhhdmUgR2l0SHViIElEcyBvciBhcmUg bm90IG1lbWJlcnMgb2YgVGlhbm9Db3JlLg0KPiANCj4gICAqIFB1c2ggYnJhbmNoIHdpdGggbmV3 IGNvbW1pdHMgdG8gcGVyc29uYWwgZm9yaw0KPiAgICogQ3JlYXRlIGEgcHVsbCByZXF1ZXN0IGFn YWluc3QgVGlhbm9Db3JlIGVkazIvbWFzdGVyDQo+IA0KPiAgICAgaHR0cHM6Ly9oZWxwLmdpdGh1 Yi5jb20vZW4vZ2l0aHViL2NvbGxhYm9yYXRpbmctd2l0aC1pc3N1ZXMtYW5kLXB1bGwtcmVxdWVz dHMvY3JlYXRpbmctYS1wdWxsLXJlcXVlc3QNCj4gDQo+ICAgKiBJZiBwdWxsIHJlcXVlc3QgaGFz IG1vcmUgdGhhbiAxIGNvbW1pdCwgdGhlbiBmaWxsIGluIHRoZSBwdWxsIHJlcXVlc3QgdGl0bGUN Cj4gICAgIGFuZCBkZWNyeXB0aW9uIGluZm9ybWF0aW9uIGZvciBQYXRjaCAjMC4gIERvIG5vdCBs ZWF2ZSBkZWZhdWx0cy4NCj4gDQo+ICAgKiBEbyBub3QgYXNzaWduIHJldmlld2Vycy4gIFRoZSB3 ZWJob29rIGFzc2lnbnMgbWFpbnRhaW5lcnMgYW5kIHJldmlld2VycyB0bw0KPiAgICAgdGhlIHB1 bGwgcmVxdWVzdCBhbmQgZWFjaCBjb21taXQgaW4gdGhlIHB1bGwgcmVxdWVzdC4NCj4gDQo+ICAg KiBJZiBtYWludGFpbmVycy9yZXZpZXdlcnMgcHJvdmlkZSBmZWVkYmFjayB0aGF0IHJlcXVpcmVz IGNoYW5nZXMsIHRoZW4gbWFrZQ0KPiAgICAgYWRkIGNvbW1pdHMgdG8gdGhlIGN1cnJlbnQgYnJh bmNoIHdpdGggdGhlIHJlcXVlc3RlZCBjaGFuZ2VzLiAgT25jZSBhbGwNCj4gICAgIGNoYW5nZXMg YXJlIGFjY2VwdGVkIG9uIHRoZSBjdXJyZW50IGJyYW5jaCwgcmVmb3JtdWxhdGUgdGhlIHBhdGNo IHNlcmllcyBhbmQNCj4gICAgIGNvbW1pdCBjb21tZW50cyBhcyBuZWVkZWQgZm9yIHBlcmZvcm0g YSBmb3JjZWQgcHVzaCB0byB0aGUgYnJhbmNoIGluIHRoZQ0KPiAgICAgcGVyc29uYWwgZm9yayBv ZiB0aGUgZWRrMiByZXBvc2l0b3J5LiAgVGhpcyBzdGVwIG1heSBiZSByZXBlYXRlZCBpZiBtdWx0 aXBsZQ0KPiAgICAgdmVyc2lvbnMgb2YgdGhlIHBhdGNoIHNlcmllcyBhcmUgcmVxdWlyZWQgdG8g YWRkcmVzcyBhbGwgY29kZSByZXZpZXcNCj4gICAgIGZlZWRiYWNrLg0KPiANCj4gICAqKk9QRU4q KjogSG93IHNob3VsZCBtaW5pbXVtIHJldmlldyBwZXJpb2QgYmUgc2V0PyAgTGFiZWxzPw0KPiAN Cj4gIyMgVGlhbm9Db3JlIEdpdEh1YiBFbWFpbCBBcmNoaXZlIFdlYmhvb2sgU2VydmljZSBTdGVw cw0KPiAgICogUmVjZWl2ZSBhbiBldmVudCB0aGF0IGEgbmV3IHB1bGwgcmVxdWVzdCB3YXMgb3Bl bmVkDQo+ICAgKiBFdmFsdWF0ZSB0aGUgZmlsZXMgbW9kaWZpZWQgYnkgdGhlIGVudGlyZSBwdWxs IHJlcXVlc3QgYW5kIGVhY2ggY29tbWl0IGluDQo+ICAgICB0aGUgcHVsbCByZXF1ZXN0IGFuZCBj cm9zcyByZWZlcmVuY2VzIGFnYWluc3QgYE1haW50YWludGVycy50eHRgIGluIHRoZSByb290DQo+ ICAgICBvZiB0aGUgcmVwb3NpdG9yeSB0byBhc3NpZ24gbWFpbnRhaW5lcnMvcmV2aWV3ZXJzIHRv IHRoZSBwdWxsIHJlcXVlc3QgYW5kDQo+ICAgICBlYWNoIGNvbW1pdCBpbiB0aGUgcHVsbCByZXF1 ZXN0LiBJbmRpdmlkdWFsIGNvbW1pdCBhc3NpZ25tZW50cyBhcmUgcGVyZm9ybWVkDQo+ICAgICBi eSBhZGRpbmcgYSBjb21taXQgY29tbWVudCBvZiB0aGUgZm9sbG93aW5nIGZvcm06DQo+IA0KPiAg ICAgW0NvZGVSZXZpZXddIFJldmlldy1yZXF1ZXN0IEBtZGtpbm5leQ0KPiANCj4gICAqIEdlbmVy YXRlIGFuZCBzZW5kcyBnaXQgcGF0Y2ggcmV2aWV3IGVtYWlscyB0byB0aGUgZW1haWwgYXJjaGl2 ZS4gIEVtYWlscw0KPiAgICAgYXJlIGFsc28gc2VudCB0byBhbnkgQ2M6IHRhZ3MgaW4gdGhlIGNv bW1pdCBtZXNzYWdlcy4NCj4gDQo+ICAgKiBJZiB0aGUgYXV0aG9yL2RldmVsb3BlciBwZXJmb3Jt cyBhIGZvcmNlZCBwdXNoIHRvIHRoZSBicmFuY2ggaW4gdGhlaXINCj4gICAgIHBlcnNvbmFsIGZv cmsgb2YgdGhlIGVkazIgcmVwb3NpdG9yeSwgdGhlbiBhIG5ldyBzZXQgb2YgcGF0Y2ggcmV2aWV3 IGVtYWlscw0KPiAgICAgd2l0aCBwYXRjaCBzZXJpZXMgVnggaXMgc2VudCB0byB0aGUgZW1haWwg YXJjaGl2ZSBhbmQgYW55IENjOiB0YWdzIGluIGNvbW1pdA0KPiAgICAgbWVzc2FnZXMuDQo+IA0K PiAgICogUmVjZWl2ZSBldmVudHMgYXNzb2NpYXRlZCB3aXRoIGFsbCBjb2RlIHJldmlldyBhY3Rp dml0aWVzIGFuZCBnZW5lcmF0ZQ0KPiAgICAgYW5kIHNlbmQgZW1haWxzIHRvIHRoZSBlbWFpbCBh cmNoaXZlIHRoYXQgc2hvd3MgYWxsIHJldmlldyBjb21tZW50cyBhbmQNCj4gICAgIGFsbCByZXNw b25zZXMgY2xvc2VseSBtYXRjaGluZyB0aGUgZW1haWwgY29udGVudHMgc2VlbiBpbiB0aGUgY3Vy cmVudCBlbWFpbA0KPiAgICAgYmFzZWQgY29kZSByZXZpZXcgcHJvY2Vzcy4NCj4gDQo+ICAgKiBH ZW5lcmF0ZSBhbmQgc2VuZCBlbWFpbCB3aGVuIHB1bGwgcmVxdWVzdCBpcyBtZXJnZWQgb3IgY2xv c2VkLg0KPiANCj4gIyMgTWFpbnRhaW5lci9SZXZpZXdlciBTdGVwcw0KPiANCj4gICAqIE1ha2Ug c3VyZSBHaXRIdWIgY29uZmlndXJhdGlvbiBpcyBzZXR1cCB0byAnV2F0Y2gnIHRoZSByZXBvc2l0 b3JpZXMgdGhhdA0KPiAgICAgeW91IGhhdmUgbWFpbnRhaW5lciBzaGlwIG9yIHJldmlldyByZXNw b25zaWJpbGl0aWVzIGFuZCB0aGF0IGVtYWlsDQo+ICAgICBub3RpZmljYXRpb25zIGZyb20gR2l0 SHViIGFyZSBlbmFibGVkLiAgVGhpcyBlbmFibGVzIGVtYWlsIG5vdGlmaWNhdGlvbnMNCj4gICAg IHdoZW4gYSBtYWludGFpbmVyL3Jldmlld2VyIGlzIGFzc2lnbmVkIHRvIGEgcHVsbCByZXF1ZXN0 IGFuZCBpbmRpdmlkdWFsDQo+ICAgICBjb21taXRzLg0KPiANCj4gICAgIGh0dHBzOi8vaGVscC5n aXRodWIuY29tL2VuL2dpdGh1Yi9tYW5hZ2luZy1zdWJzY3JpcHRpb25zLWFuZC1ub3RpZmljYXRp b25zLW9uLWdpdGh1Yi9jb25maWd1cmluZy1ub3RpZmljYXRpb25zDQo+IA0KPiAgICogU3Vic2Ny aWJlIHRvIHRoZSBlbWFpbCBhcmNoaXZlIGFzc29jaWF0ZWQgd2l0aCB0aGUgVGlhbm9Db3JlIEdp dEh1YiBFbWFpbA0KPiAgICAgQXJjaGl2ZSBXZWJob29rIFNlcnZpY2UuDQo+IA0KPiAgICAgaHR0 cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL3RpYW5vY29yZS1jb2RlLXJldmll dy1wb2MNCj4gDQo+ICAgKiBSZXZpZXcgcHVsbCByZXF1ZXN0cyBhbmQgY29tbWl0cyBhc3NpZ25l ZCBieSB0aGUgVGlhbm9Db3JlIEdpdEh1YiBFbWFpbA0KPiAgICAgQXJjaGl2ZSBXZWJob29rIFNl cnZpY2UgYW5kIHVzZSB0aGUgR2l0SHViIHdlYiBVSSB0byBwcm92aWRlIGFsbCByZXZpZXcNCj4g ICAgIGZlZWRiYWNrLg0KPiANCj4gICAgIGh0dHBzOi8vaGVscC5naXRodWIuY29tL2VuL2dpdGh1 Yi9jb2xsYWJvcmF0aW5nLXdpdGgtaXNzdWVzLWFuZC1wdWxsLXJlcXVlc3RzL3Jldmlld2luZy1j aGFuZ2VzLWluLXB1bGwtcmVxdWVzdHMNCj4gDQo+ICAgKiBXYWl0IGZvciBBdXRob3IvRGV2ZWxv cGVyIHRvIHJlc3BvbmQgdG8gYWxsIGZlZWRiYWNrIGFuZCBhZGQgY29tbWl0cyB3aXRoDQo+ICAg ICBjb2RlIGNoYW5nZXMgYXMgbmVlZGVkIHRvIHJlc29sdmUgYWxsIGZlZWRiYWNrLiAgVGhpcyBz dGVwIG1heSBiZSByZXBlYXRlZA0KPiAgICAgaWYgdGhlIGRldmVsb3Blci9hdXRob3IgbmVlZCB0 byBwcm9kdWNlIG11bHRpcGxlIHZlcnNpb25zIG9mIHRoZSBwYXRjaA0KPiAgICAgc2VyaWVzIHRv IGFkZHJlc3MgYWxsIGZlZWRiYWNrLg0KPiANCj4gICAqIE9uY2UgYWxsIGZlZWRiYWNrIGlzIGFk ZHJlc3NlZCwgYWRkIFJldmlld2VkLWJ5LCBBY2tlZC1ieSwgYW5kIFRlc3RlZC1ieQ0KPiAgICAg cmVzcG9uc2VzIG9uIGluZGl2aWR1YWwgY29tbWl0cy4gIE9yIGFkZCBTZXJpZXMtcmV2aWV3ZWQt YnksIFNlcmllcy1hY2tlZC1ieSwNCj4gICAgIG9yIFNlcmllcy1UZXN0ZWQtYnkgcmVzcG9uc2Vz IHRvIHRoZSBlbnRpcmUgcHVsbCByZXF1ZXN0Lg0KPiANCj4gICAqIFdhaXQgZm9yIERldmVsb3Bl ci9BdXRob3IgdG8gYWRkIHRhZ3MgdG8gY29tbWl0IG1lc3NhZ2VzIGluIHRoZSBwdWxsIHJlcXVl c3QuDQo+IA0KPiAgICogUGVyZm9ybSBmaW5hbCByZXZpZXcgb2YgcGF0Y2hlcyBhbmQgY29tbWl0 IG1lc3NhZ2UgdGFncy4gIElmIHRoZXJlIGFyZSBub3QNCj4gICAgIGlzc3Vlcywgc2V0IHRoZSBg cHVzaGAgbGFiZWwgdG8gcnVuIGZpbmFsIHNldCBvZiBDSSBjaGVja3MgYW5kIGF1dG8gbWVyZ2UN Cj4gICAgIHRoZSBwdWxsIHJlcXVlc3QgaW50byBtYXN0ZXIuDQo+IA0KPiAjIE1haW50YWluZXJz LnR4dCBGb3JtYXQgQ2hhbmdlcw0KPiANCj4gQWRkIEdpdEh1YiBJRHMgb2YgYWxsIG1haW50YWlu ZXJzIGFuZCByZXZpZXdlcnMgYXQgdGhlIGVuZCBvZiBNOiBhbmQgUjogbGluZXMNCj4gaW4gW10u ICBGb3IgZXhhbXBsZToNCj4gDQo+ICAgICBNOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4gW21ka2lubmV5XQ0KPiANCj4gIyBUaWFub0NvcmUgR2l0SHViIEVt YWlsIEFyY2hpdmUgV2ViaG9vayBTZXJ2aWNlDQo+IA0KPiBBc3NpZ24gcmV2aWV3ZXJzIHRvIGNv bW1pdHMgaW4gYSBHaXRIdWIgcHVsbCByZXF1ZXN0IGJhc2VkIG9uIGFzc2lnbm1lbnRzDQo+IGRv Y3VtZW50ZWQgaW4gTWFpbnRhaW5lcnMudHh0IGFuZCBnZW5lcmF0ZXMgYW4gZW1haWwgYXJjaGl2 ZSBvZiBhbGwgcHVsbCByZXF1ZXN0DQo+IGFuZCBjb2RlIHJldmlldyBhY3Rpdml0aWVzLg0KPiAN Cj4gaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazItZW1haWwtYXJjaGl2ZS13ZWJob29r DQo+IA0KPiAjIEVtYWlsIEFyY2hpdmUgU3Vic2NyaXB0aW9uIFNlcnZpY2UNCj4gDQo+IFRoZSBl bWFpbHMgYXJlIGJlaW5nIGRlbGl2ZXJlZCB0byB0aGUgZm9sbG93aW5nIFJlZEhhdCBlbWFpbCBz dWJzY3JpcHRpb24NCj4gc2VydmljZS4gIFBsZWFzZSBzdWJzY3JpYmUgdG8gcmVjZWl2ZSB0aGUg ZW1haWxzIGFuZCB0byBiZSBhYmxlIHRvIHZpZXcgdGhlDQo+IGVtYWlsIGFyY2hpdmVzLg0KPiAN Cj4gaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL3RpYW5vY29yZS1jb2Rl LXJldmlldy1wb2MNCj4gDQo+IFRoZSBlbWFpbCBhcmNoaXZlcyBhcmUgYXQgdGhpcyBsaW5rOg0K PiANCj4gaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL3ByaXZhdGUvdGlhbm9jb3JlLWNv ZGUtcmV2aWV3LXBvYy9pbmRleC5odG1sDQo+IA0KPiBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIHNo b3cgc29tZSBleGFtcGxlIHB1bGwgcmVxdWVzdHMgYW5kIGNvZGUgcmV2aWV3cyB0bw0KPiBoZWxw IHJldmlldyB0aGUgZ2VuZXJhdGVkIGVtYWlscywgdGhlaXIgY29udGVudHMsIGFuZCB0aHJlYWRp bmcuDQo+IA0KPiAjIyBFbWFpbCBBY2hpZXZlIFRocmVhZCBWaWV3DQo+IA0KPiBodHRwczovL3d3 dy5yZWRoYXQuY29tL21haWxtYW4vcHJpdmF0ZS90aWFub2NvcmUtY29kZS1yZXZpZXctcG9jLzIw MjAtTWF5L3RocmVhZC5odG1sIzAwMjg5DQo+IA0KPiAjIyBFeGFtcGxlIHBhdGNoIHNlcmllcyB3 aXRoIDEgcGF0Y2gNCj4gDQo+IGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9wcml2YXRl L3RpYW5vY29yZS1jb2RlLXJldmlldy1wb2MvMjAyMC1NYXkvdGhyZWFkLmh0bWwjMDAzNDANCj4g DQo+ICMjIEV4YW1wbGUgcGF0Y2ggc2VyaWVzIHdpdGggPCAxMCBwYXRjaGVzDQo+IA0KPiAqIGh0 dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9wcml2YXRlL3RpYW5vY29yZS1jb2RlLXJldmll dy1wb2MvMjAyMC1NYXkvbXNnMDAyODkuaHRtbA0KPiAqIGh0dHBzOi8vd3d3LnJlZGhhdC5jb20v bWFpbG1hbi9wcml2YXRlL3RpYW5vY29yZS1jb2RlLXJldmlldy1wb2MvMjAyMC1NYXkvbXNnMDAw MzAuaHRtbA0KPiAqIGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9wcml2YXRlL3RpYW5v Y29yZS1jb2RlLXJldmlldy1wb2MvMjAyMC1NYXkvbXNnMDAwMTguaHRtbA0KPiAqIGh0dHBzOi8v d3d3LnJlZGhhdC5jb20vbWFpbG1hbi9wcml2YXRlL3RpYW5vY29yZS1jb2RlLXJldmlldy1wb2Mv MjAyMC1NYXkvbXNnMDAwMDguaHRtbA0KPiANCj4gIyMgRXhhbXBsZSBwYXRjaCBzZXJpZXMgd2l0 aCA+IDgwIHBhdGNoZXMNCj4gDQo+ICogaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL3By aXZhdGUvdGlhbm9jb3JlLWNvZGUtcmV2aWV3LXBvYy8yMDIwLU1heS9tc2cwMDE5OC5odG1sDQo+ ICogaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL3ByaXZhdGUvdGlhbm9jb3JlLWNvZGUt cmV2aWV3LXBvYy8yMDIwLU1heS9tc2cwMDExNi5odG1sDQo+ICogaHR0cHM6Ly93d3cucmVkaGF0 LmNvbS9tYWlsbWFuL3ByaXZhdGUvdGlhbm9jb3JlLWNvZGUtcmV2aWV3LXBvYy8yMDIwLU1heS9t c2cwMDAzNS5odG1sDQo+IA0KPiAjIFRhc2tzIHRvIENvbXBsZXRlDQo+IA0KPiAqIENyZWF0ZSBl ZGsyLWNvZGVyZXZpZXcgcmVwb3NpdG9yeSBmb3IgZXZhbHVhdGlvbiBvZiBuZXcgY29kZSByZXZp ZXcgcHJvY2Vzcy4NCj4gKiBBZGQgR2l0SHViIElEcyB0byBNYWludGFpbmVycy50eHQgaW4gZWRr Mi1jb2RlcmV2aWV3IHJlcG9zaXRvcnkNCj4gKiBVcGRhdGUgQmFzZVRvb2xzL1NjcmlwdHMvR2V0 TWFpbnRhaW5lci5weSB0byBiZSBjb21wYXRpYmxlIHdpdGggR2l0SHViIElEcyBhdA0KPiAgIHRo ZSBlbmQgb2YgTTogYW5kIFI6IHN0YXRlbWVudHMNCj4gKiBVcGRhdGUgd2ViaG9vayB0byB1c2Ug UmFiYml0IE1RIHRvIG1hbmFnZSByZXF1ZXN0cyBhbmQgZW1haWxzDQo+ICogRGV0ZXJtaW5lIGlm IHdlYmhvb2sgcmVxdWVzdHMgbXVzdCBiZSBzZXJpYWxpemVkPyAgQ3VycmVudCBQT0MgaXMgc2Vy aWFsaXplZC4NCj4gKiBNYWtlIHN1cmUgd2ViaG9vayBoYXMgZXJyb3IgaGFuZGxpbmcgZm9yIGFs bCB1bmV4cGVjdGVkIGV2ZW50cy9zdGF0ZXMuDQo+ICogQWRkIGxvZ2dpbmcgb2YgYWxsIGV2ZW50 cyBhbmQgZW1haWxzIHRvIHdlYmhvb2sNCj4gKiBBZGQgYWRtaW4gaW50ZXJmYWNlIHRvIHdlYmhv b2sNCj4gKiBEZXBsb3kgd2ViaG9vayBvbiBhIHByb2R1Y3Rpb24gc2VydmVyIHdpdGggMjQvNyBz dXBwb3J0DQo+IA0KPiAjIElkZWFzIGZvciBGdXR1cmUgRW5oYW5jZW1lbnRzDQo+IA0KPiAqIFJ1 biBQYXRjaENoZWNrLnB5IGJlZm9yZSBhc3NpZ25pbmcgbWFpbnRhaW5lcnMvcmV2aWV3ZXJzLg0K PiAqIEFkZCBhIHNpbXBsZSBjaGVjayB0aGF0IGZhaWxzIGlmIGEgc2luZ2xlIHBhdGNoIHNwYW5z IG1vcmUgdGhhbiBvbmUgcGFja2FnZS4NCj4gKiBNb25pdG9yIGNvbW1lbnRzIGZvciBSZXZpZXdl ZC1ieSwgQWNrZWQtYnksIFRlc3RlZC1ieSwgU2VyaWVzLVJldmlld2VkLWJ5LA0KPiAgIFNlcmll cy1BY2tlZC1ieSwgU2VyaWVzLVRlc3RlZC1ieSBtYWRlIGJ5IGFzc2lnbmVkIG1haW50YWluZXJz L3Jldmlld2Vycy4NCj4gICBPbmNlIGFsbCBjb21taXRzIGhhdmUgcmVxdWlyZWQgdGFncywgYXV0 byB1cGRhdGUgY29tbWl0IG1lc3NhZ2VzIGluIHRoZQ0KPiAgIGJyYW5jaCBhbmQgd2FpdCBmb3Ig bWFpbnRhaW5lciB0byBzZXQgdGhlIGBQdXNoYCBsYWJlbCB0byBydW4gQ0kgYW5kIGF1dG8NCj4g ICBtZXJnZSBpZiBhbGwgQ0kgY2hlY2tzIHBhc3MuDQo+IA0KPiBCZXN0IHJlZ2FyZHMsDQo+IA0K PiBNaWtlDQo+IA0KPiANCj4gDQo+IA0KDQo=