From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: star.zeng@intel.com) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by groups.io with SMTP; Thu, 30 May 2019 08:03:32 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 May 2019 08:03:31 -0700 X-ExtLoop1: 1 Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga006.fm.intel.com with ESMTP; 30 May 2019 08:03:30 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 30 May 2019 08:03:30 -0700 Received: from shsmsx108.ccr.corp.intel.com (10.239.4.97) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 30 May 2019 08:03:29 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.134]) by SHSMSX108.ccr.corp.intel.com ([169.254.8.188]) with mapi id 14.03.0415.000; Thu, 30 May 2019 23:03:28 +0800 From: "Zeng, Star" To: "Chiu, Chasel" , "devel@edk2.groups.io" CC: "Ma, Maurice" , "Desimone, Nathaniel L" , "Zeng, Star" Subject: Re: [PATCH v2] IntelFsp2Pkg/SplitFspBin.py: Support rebasing 1.x binary. Thread-Topic: [PATCH v2] IntelFsp2Pkg/SplitFspBin.py: Support rebasing 1.x binary. Thread-Index: AQHVFqRCRTYXx5uMTEeCiF2ElHSpVaaDw/+g Date: Thu, 30 May 2019 15:03:28 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483104030478B@shsmsx102.ccr.corp.intel.com> References: <20190530045750.5600-1-chasel.chiu@intel.com> In-Reply-To: <20190530045750.5600-1-chasel.chiu@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: star.zeng@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFN0YXIgWmVuZyA8c3Rhci56ZW5nQGludGVsLmNvbT4NCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENoaXUsIENoYXNlbCANClNlbnQ6IFRodXJzZGF5LCBN YXkgMzAsIDIwMTkgMTI6NTggUE0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KQ2M6IE1hLCBN YXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT47IERlc2ltb25lLCBOYXRoYW5pZWwgTCA8bmF0 aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVs LmNvbT4NClN1YmplY3Q6IFtQQVRDSCB2Ml0gSW50ZWxGc3AyUGtnL1NwbGl0RnNwQmluLnB5OiBT dXBwb3J0IHJlYmFzaW5nIDEueCBiaW5hcnkuDQoNClJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA4DQoNClN1cHBvcnQgcmViYXNpbmcgRlNQIDEu eCBiaW5hcnkuDQpGU1AgMS54IGhhcyBzaW5nbGUgY29tcG9uZW50IGluIGJpbmFyeSBzbyBub3Qg c3VwcG9ydGVkIGJ5IHNwbGl0IGNvbW1hbmQgYW5kIHJlYmFzZSBjYW4gYmUgZG9uZSB3aXRoIHRo ZSBzYW1lIGNvbW1hbmQgZm9yIHJlYmFzaW5nIEZTUC1UIGNvbXBvbmVudCBpbiBGU1AgMi54IGlt YWdlLg0KDQpUZXN0OiBib3RoIEZTUCAyLnggKEthYnlsYWtlKSBhbmQgRlNQIDEueCAoQnJvYWR3 ZWxsREUpIGJpbmFyeQ0KICAgICAgY2FuIGJlIHJlYmFzZWQgc3VjY2Vzc2Z1bGx5Lg0KDQpDYzog TWF1cmljZSBNYSA8bWF1cmljZS5tYUBpbnRlbC5jb20+DQpDYzogTmF0ZSBEZVNpbW9uZSA8bmF0 aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KQ2M6IFN0YXIgWmVuZyA8c3Rhci56ZW5nQGlu dGVsLmNvbT4NClNpZ25lZC1vZmYtYnk6IENoYXNlbCBDaGl1IDxjaGFzZWwuY2hpdUBpbnRlbC5j b20+DQotLS0NCiBJbnRlbEZzcDJQa2cvVG9vbHMvU3BsaXRGc3BCaW4ucHkgICAgICAgICAgICAg ICAgICAgICAgIHwgMjEgKysrKysrKysrKysrKy0tLS0tLS0tDQogSW50ZWxGc3AyUGtnL1Rvb2xz L1VzZXJNYW51YWxzL1NwbGl0RnNwQmluVXNlck1hbnVhbC5tZCB8IDQ3ICsrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogMiBmaWxlcyBjaGFuZ2VkLCAzOCBp bnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBr Zy9Ub29scy9TcGxpdEZzcEJpbi5weSBiL0ludGVsRnNwMlBrZy9Ub29scy9TcGxpdEZzcEJpbi5w eQ0KaW5kZXggMjQ1ODIzMWQwOS4uMTVjOGJlYmVlMiAxMDA2NDQNCi0tLSBhL0ludGVsRnNwMlBr Zy9Ub29scy9TcGxpdEZzcEJpbi5weQ0KKysrIGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1NwbGl0RnNw QmluLnB5DQpAQCAtMSw2ICsxLDYgQEANCiAjIyBAIEZzcFRvb2wucHkNCiAjDQotIyBDb3B5cmln aHQgKGMpIDIwMTUgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQorIyBDb3B5cmlnaHQgKGMpIDIwMTUgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyANCityZXNlcnZlZC48QlI+DQogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudCAgIyAgIyMgQEAgLTE0LDEyICsxNCwxMiBAQCBpbXBvcnQgYXJn cGFyc2UNCiBmcm9tICAgY3R5cGVzIGltcG9ydCAqDQogDQogIiIiDQotVGhpcyB1dGlsaXR5IHN1 cHBvcnRzIHNvbWUgb3BlcmF0aW9ucyBmb3IgSW50ZWwgRlNQIDIuMCBpbWFnZS4NCitUaGlzIHV0 aWxpdHkgc3VwcG9ydHMgc29tZSBvcGVyYXRpb25zIGZvciBJbnRlbCBGU1AgMS54LzIueCBpbWFn ZS4NCiBJdCBzdXBwb3J0czoNCi0gICAgLSBEaXNwbGF5IEZTUCAyLjAgaW5mb3JtYXRpb24gaGVh ZGVyDQotICAgIC0gU3BsaXQgRlNQIDIuMCBpbWFnZSBpbnRvIGluZGl2aWR1YWwgRlNQLVQvTS9T L08gY29tcG9uZW50DQotICAgIC0gUmViYXNlIEZTUCAyLjAgY29tcG9uZW50cyB0byBhIGRpZmZl cmVudCBiYXNlIGFkZHJlc3MNCi0gICAgLSBHZW5lcmF0ZSBGU1AgbWFwcGluZyBDIGhlYWRlciBm aWxlDQorICAgIC0gRGlzcGxheSBGU1AgMS54LzIueCBpbmZvcm1hdGlvbiBoZWFkZXINCisgICAg LSBTcGxpdCBGU1AgMi54IGltYWdlIGludG8gaW5kaXZpZHVhbCBGU1AtVC9NL1MvTyBjb21wb25l bnQNCisgICAgLSBSZWJhc2UgRlNQIDEueC8yLnggY29tcG9uZW50cyB0byBhIGRpZmZlcmVudCBi YXNlIGFkZHJlc3MNCisgICAgLSBHZW5lcmF0ZSBGU1AgMS54LzIueCBtYXBwaW5nIEMgaGVhZGVy IGZpbGUNCiAiIiINCiANCiBDb3B5UmlnaHRIZWFkZXJGaWxlID0gIiIiLyoNCkBAIC01MDAsOCAr NTAwLDYgQEAgY2xhc3MgRmlybXdhcmVEZXZpY2U6DQogDQogICAgICAgICBmaWggPSBOb25lDQog ICAgICAgICBmb3IgZnNwIGluIHNlbGYuRnNwTGlzdDoNCi0gICAgICAgICAgICBpZiBmc3AuRmlo LkhlYWRlclJldmlzaW9uIDwgMzoNCi0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJF UlJPUjogRlNQIDEueCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgdG9vbCAhIikNCiAgICAgICAg ICAgICBpZiBub3QgZmloOg0KICAgICAgICAgICAgICAgICBmaWggPSBmc3AuRmloDQogICAgICAg ICAgICAgZWxzZToNCkBAIC03MTMsNiArNzExLDggQEAgZGVmIFNwbGl0RnNwQmluIChmc3BmaWxl LCBvdXRkaXIsIG5hbWV0ZW1wbGF0ZSk6DQogICAgIGZkLlBhcnNlRnNwICgpDQogDQogICAgIGZv ciBmc3AgaW4gZmQuRnNwTGlzdDoNCisgICAgICAgIGlmIGZzcC5GaWguSGVhZGVyUmV2aXNpb24g PCAzOg0KKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRVJST1I6IEZTUCAxLnggaXMgbm90 IHN1cHBvcnRlZCBieSB0aGUgDQorIHNwbGl0IGNvbW1hbmQgISIpDQogICAgICAgICBmdHlwZSA9 IGZzcC5UeXBlDQogICAgICAgICBpZiBub3QgbmFtZXRlbXBsYXRlOg0KICAgICAgICAgICAgIG5h bWV0ZW1wbGF0ZSA9IGZzcGZpbGUNCkBAIC03NDIsNiArNzQyLDExIEBAIGRlZiBSZWJhc2VGc3BC aW4gKEZzcEJpbmFyeSwgRnNwQ29tcG9uZW50LCBGc3BCYXNlLCBPdXRwdXREaXIsIE91dHB1dEZp bGUpOg0KIA0KICAgICAgICAgZm91bmQgPSBGYWxzZQ0KICAgICAgICAgZm9yIGZzcCBpbiBmZC5G c3BMaXN0Og0KKyAgICAgICAgICAgICMgSXMgdGhpcyBGU1AgMS54IHNpbmdsZSBiaW5hcnk/DQor ICAgICAgICAgICAgaWYgZnNwLkZpaC5IZWFkZXJSZXZpc2lvbiA8IDM6DQorICAgICAgICAgICAg ICAgIGZvdW5kID0gVHJ1ZQ0KKyAgICAgICAgICAgICAgICBmdHlwZSA9ICdYJw0KKyAgICAgICAg ICAgICAgICBicmVhaw0KICAgICAgICAgICAgIGZ0eXBlID0gZnNwLlR5cGUubG93ZXIoKQ0KICAg ICAgICAgICAgIGlmIGZ0eXBlID09IGZzcGNvbXA6DQogICAgICAgICAgICAgICAgIGZvdW5kID0g VHJ1ZQ0KZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Ub29scy9Vc2VyTWFudWFscy9TcGxpdEZz cEJpblVzZXJNYW51YWwubWQgYi9JbnRlbEZzcDJQa2cvVG9vbHMvVXNlck1hbnVhbHMvU3BsaXRG c3BCaW5Vc2VyTWFudWFsLm1kDQppbmRleCAwNjRlMGFjODQ1Li4wNmQ4N2JiYjJlIDEwMDY0NA0K LS0tIGEvSW50ZWxGc3AyUGtnL1Rvb2xzL1VzZXJNYW51YWxzL1NwbGl0RnNwQmluVXNlck1hbnVh bC5tZA0KKysrIGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1VzZXJNYW51YWxzL1NwbGl0RnNwQmluVXNl ck1hbnVhbC5tZA0KQEAgLTEsNjggKzEsNzEgQEANCi0jIFNwbGl0RnNwQmluLnB5IGlzIGEgcHl0 aG9uIHNjcmlwdCB0byBzdXBwb3J0IHNvbWUgb3BlcmF0aW9ucyBvbiBJbnRlbCBGU1AgMi4wIGlt YWdlLg0KKyMgU3BsaXRGc3BCaW4ucHkgaXMgYSBweXRob24gc2NyaXB0IHRvIHN1cHBvcnQgc29t ZSBvcGVyYXRpb25zIG9uIEludGVsIEZTUCAxLngvMi54IGltYWdlLg0KIA0KIEl0IHN1cHBvcnRz Og0KIA0KLS0gU3BsaXQgSW50ZWwgRlNQIDIuMCBpbWFnZSBpbnRvIGluZGl2aWR1YWwgRlNQLVQv TS9TL08gY29tcG9uZW50DQorLSBTcGxpdCBJbnRlbCBGU1AgMi54IGltYWdlIGludG8gaW5kaXZp ZHVhbCBGU1AtVC9NL1MvTyBjb21wb25lbnQNCiANCi0tIFJlYmFzZSBJbnRlbCBGU1AgMi4wIGNv bXBvbmVudHMgdG8gZGlmZmVyZW50IGJhc2UgYWRkcmVzc2VzDQorLSBSZWJhc2UgSW50ZWwgRlNQ IDEueC8yLnggY29tcG9uZW50cyB0byBkaWZmZXJlbnQgYmFzZSBhZGRyZXNzZXMNCiANCi0tIEdl bmVyYXRlIEludGVsIEZTUCAyLjAgQyBoZWFkZXIgZmlsZQ0KKy0gR2VuZXJhdGUgSW50ZWwgRlNQ IDEueC8yLnggQyBoZWFkZXIgZmlsZQ0KIA0KLS0gRGlzcGxheSBJbnRlbCBGU1AgMi4wIGluZm9y bWF0aW9uIGhlYWRlciBmb3IgZWFjaCBGU1AgY29tcG9uZW50DQorLSBEaXNwbGF5IEludGVsIEZT UCAxLngvMi54IGluZm9ybWF0aW9uIGhlYWRlciBmb3IgZWFjaCBGU1AgY29tcG9uZW50DQogDQot IyMgU3BsaXQgSW50ZWwgRlNQIDIuMCBpbWFnZQ0KKyMjIFNwbGl0IEludGVsIEZTUCAyLnggaW1h Z2UNCiANCi1UbyBzcGxpdCBpbmRpdmlkdWFsIEZTUCBjb21wb25lbnQgaW4gSW50ZWwgRlNQIDIu MCBpbWFnZSwgdGhlIGZvbGxvd2luZw0KK0ZTUCAxLnggaW1hZ2UgaXMgbm90IHN1cHBvcnRlZCBi eSBzcGxpdCBjb21tYW5kLg0KK1RvIHNwbGl0IGluZGl2aWR1YWwgRlNQIGNvbXBvbmVudCBpbiBJ bnRlbCBGU1AgMi54IGltYWdlLCB0aGUgZm9sbG93aW5nDQogY29tbWFuZCBjYW4gYmUgdXNlZDoN CiANCiAgICAqKnB5dGhvbiBTcGxpdEZzcEJpbi5weSBzcGxpdCBbLWhdIC1mIEZTUEJJTkFSWSBb LW8gT1VUUFVURElSXSBbLW4gTkFNRVRFTVBMQVRFXSoqDQogDQotRm9yIGV4YW1wbGU6ICANCitG b3IgZXhhbXBsZToNCiANCiAgICBgcHl0aG9uIFNwbGl0RnNwQmluLnB5IHNwbGl0IC1mIEZTUC5i aW5gDQogDQogICAgSXQgd2lsbCBjcmVhdGUgRlNQX1QuYmluLCBGU1BfTS5iaW4gYW5kIEZTUF9T LmJpbiBpbiBjdXJyZW50IGRpcmVjdG9yeS4NCiANCi0jIyBSZWJhc2UgSW50ZWwgRlNQIDIuMCBj b21wb25lbnRzDQorIyMgUmViYXNlIEludGVsIEZTUCAxLngvMi54IGNvbXBvbmVudHMNCiANCi1U byByZWJhc2Ugb25lIG9yIG11bHRpcGxlIEZTUCBjb21wb25lbnRzIGluIEludGVsIEZTUCAyLjAg aW1hZ2UsIHRoZSBmb2xsb3dpbmcNCitUbyByZWJhc2Ugb25lIG9yIG11bHRpcGxlIEZTUCBjb21w b25lbnRzIGluIEludGVsIEZTUCAxLngvMi54IGltYWdlLCANCit0aGUgZm9sbG93aW5nDQogY29t bWFuZCBjYW4gYmUgdXNlZDoNCiANCiAgICAqKnB5dGhvbiBTcGxpdEZzcEJpbi5weSByZWJhc2Ug Wy1oXSAtZiBGU1BCSU5BUlkgLWMge3QsbSxzLG99IFt7dCxtLHMsb30gLi4uXSAtYiBGU1BCQVNF IFtGU1BCQVNFIC4uLl0gWy1vIE9VVFBVVERJUl0gWy1uIE9VVFBVVEZJTEVdKioNCiANCi1Gb3Ig ZXhhbXBsZTogIA0KK0ZvciBleGFtcGxlOg0KIA0KLSAgIGBweXRob24gU3BsaXRGc3BCaW4ucHkg cmViYXNlIC1mIEZTUC5iaW4g4oCTYyB0IOKAk2IgMHhGRkYwMDAwMCDigJNuIEZTUF9uZXcuYmlu YA0KKyAgIGBweXRob24gU3BsaXRGc3BCaW4ucHkgcmViYXNlIC1mIEZTUC5iaW4gLWMgdCAtYiAw eEZGRjAwMDAwIC1uIA0KKyBGU1BfbmV3LmJpbmANCiANCiAgICBJdCB3aWxsIHJlYmFzZSBGU1At VCBjb21wb25lbnQgaW5zaWRlIEZTUC5iaW4gdG8gbmV3IGJhc2UgMHhGRkYwMDAwMCBhbmQgc2F2 ZSB0aGUNCi0gICByZWJhc2VkIEludGVsIEZTUCAyLjAgaW1hZ2UgaW50byBmaWxlIEZTUF9uZXcu YmluLg0KKyAgIHJlYmFzZWQgSW50ZWwgRlNQIDIueCBpbWFnZSBpbnRvIGZpbGUgRlNQX25ldy5i aW4uDQorICAgRm9yIEZTUCAxLnggaW1hZ2UgdGhlcmUgaXMgb25seSBvbmUgY29tcG9uZW50IGlu IGJpbmFyeSBzbyBhYm92ZSBjb21tYW5kIGFsc28NCisgICB3b3JrcyBmb3IgRlNQIDEueCBpbWFn ZS4NCiANCi0gICBgcHl0aG9uIFNwbGl0RnNwQmluLnB5IHJlYmFzZSAtZiBGU1AuYmluIOKAk2Mg dCBtIOKAk2IgMHhGRkYwMDAwMCAweEZFRjgwMDAwIOKAk24gRlNQX25ldy5iaW5gDQorICAgYHB5 dGhvbiBTcGxpdEZzcEJpbi5weSByZWJhc2UgLWYgRlNQLmJpbiAtYyB0IG0gLWIgMHhGRkYwMDAw MCANCisgMHhGRUY4MDAwMCAtbiBGU1BfbmV3LmJpbmANCiANCiAgICBJdCB3aWxsIHJlYmFzZSBG U1AtVCBhbmQgRlNQLU0gY29tcG9uZW50cyBpbnNpZGUgRlNQLmJpbiB0byBuZXcgYmFzZSAweEZG RjAwMDAwDQotICAgYW5kIDB4RkVGODAwMDAgcmVzcGVjdGl2ZWx5LCBhbmQgc2F2ZSB0aGUgcmVi YXNlZCBJbnRlbCBGU1AgMi4wIGltYWdlIGludG8gZmlsZSANCisgICBhbmQgMHhGRUY4MDAwMCBy ZXNwZWN0aXZlbHksIGFuZCBzYXZlIHRoZSByZWJhc2VkIEludGVsIEZTUCAyLnggDQorIGltYWdl IGludG8gZmlsZQ0KICAgIEZTUF9uZXcuYmluIGZpbGUuDQogDQotIyMgR2VuZXJhdGUgSW50ZWwg RlNQIDIuMCBDIGhlYWRlciBmaWxlDQorIyMgR2VuZXJhdGUgSW50ZWwgRlNQIDEueC8yLnggQyBo ZWFkZXIgZmlsZQ0KIA0KLVRvIGdlbmVyYXRlIEludGVsIEZTUCAyLjAgQyBoZWFkZXIgZmlsZSwg dGhlIGZvbGxvd2luZyBjb21tYW5kIGNhbiBiZSB1c2VkOg0KK1RvIGdlbmVyYXRlIEludGVsIEZT UCAxLngvMi54IEMgaGVhZGVyIGZpbGUsIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBjYW4gYmUgdXNl ZDoNCiANCiAgICAqKlB5dGhvbiBTcGxpdEZzcEJpbi5weSBnZW5oZHIgWy1oXSAtZiBGU1BCSU5B UlkgWy1vIE9VVFBVVERJUl0gWy1uIEhGSUxFTkFNRV0qKg0KIA0KLUZvciBleGFtcGxlOiAgDQor Rm9yIGV4YW1wbGU6DQogDQotICAgYHB5dGhvbiBTcGxpdEZzcEJpbi5weSBnZW5oZHIgLWYgRlNQ LmJpbiDigJNuIEZTUC5oYA0KKyAgIGBweXRob24gU3BsaXRGc3BCaW4ucHkgZ2VuaGRyIC1mIEZT UC5iaW4gLW4gRlNQLmhgDQogDQogICAgSXQgd2lsbCBjcmVhdGUgdGhlIEMgaGVhZGVyIGZpbGUg RlNQLmggY29udGFpbmluZyB0aGUgaW1hZ2UgSUQsIHJldmlzaW9uLCBvZmZzZXQNCiAgICBhbmQg c2l6ZSBmb3IgZWFjaCBpbmRpdmlkdWFsIEZTUCBjb21wb25lbnQuDQogDQotIyMgRGlzcGxheSBJ bnRlbCBGU1AgMi4wIGluZm9ybWF0aW9uIGhlYWRlcg0KKyMjIERpc3BsYXkgSW50ZWwgRlNQIDEu eC8yLnggaW5mb3JtYXRpb24gaGVhZGVyDQogDQotVG8gZGlzcGxheSBJbnRlbCBGU1AgMi4wIGlu Zm9ybWF0aW9uIGhlYWRlcnMsIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBjYW4gYmUgdXNlZDoNCitU byBkaXNwbGF5IEludGVsIEZTUCAxLngvMi54IGluZm9ybWF0aW9uIGhlYWRlcnMsIHRoZSBmb2xs b3dpbmcgY29tbWFuZCBjYW4gYmUgdXNlZDoNCiANCiAgICAqKlB5dGhvbiBTcGxpdEZzcEJpbi5w eSBpbmZvIFstaF0gLWYgRlNQQklOQVJZKioNCiANCi1Gb3IgZXhhbXBsZTogIA0KK0ZvciBleGFt cGxlOg0KIA0KICAgIGBweXRob24gU3BsaXRGc3BCaW4ucHkgaW5mbyAtZiBGU1AuYmluYA0KIA0K LS0NCjIuMTMuMy53aW5kb3dzLjENCg0K