From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.151; helo=mga17.intel.com; envelope-from=bob.c.feng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (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 E3D44211A759E for ; Sun, 27 Jan 2019 18:33:04 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Jan 2019 18:33:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,532,1539673200"; d="scan'208";a="111550442" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga006.jf.intel.com with ESMTP; 27 Jan 2019 18:33:03 -0800 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 27 Jan 2019 18:33:03 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 27 Jan 2019 18:33:03 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.110]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.109]) with mapi id 14.03.0415.000; Mon, 28 Jan 2019 10:33:01 +0800 From: "Feng, Bob C" To: Laszlo Ersek CC: "edk2-devel@lists.01.org" , "Gao, Liming" Thread-Topic: [edk2] [Patch 00/33] BaseTools python3 migration patch set Thread-Index: AQHUtGubdXY1ZeTLHUyxsMfS01NmtqW/KM0AgACNeACAAA9kgIAENBxw Date: Mon, 28 Jan 2019 02:33:01 +0000 Message-ID: <08650203BA1BD64D8AD9B6D5D74A85D160074FDA@SHSMSX101.ccr.corp.intel.com> References: <20190125045626.14700-1-bob.c.feng@intel.com> <64c49419-fe14-1be4-bfaf-1d601aedb294@redhat.com> <08650203BA1BD64D8AD9B6D5D74A85D160071956@SHSMSX101.ccr.corp.intel.com> In-Reply-To: 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 Subject: Re: [Patch 00/33] BaseTools python3 migration patch set 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, 28 Jan 2019 02:33:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQpUaGFua3MgZm9yIHlvdXIgdGVzdGluZyBhbmQgZGV0YWlsZWQgdGVzdGlu ZyByZXN1bHQuIEknbGwgY2hlY2sgdGhlIGlzc3VlIGhhcHBlbmVkIGluIChhMikgYW5kIHByb3Zp ZGUgYSBwYXRjaCBmb3IgaXQuDQoNClRoYW5rcywNCkJvYiANCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXSAN ClNlbnQ6IFNhdHVyZGF5LCBKYW51YXJ5IDI2LCAyMDE5IDI6MTggQU0NClRvOiBGZW5nLCBCb2Ig QyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQpDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEdh bywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMl0gW1Bh dGNoIDAwLzMzXSBCYXNlVG9vbHMgcHl0aG9uMyBtaWdyYXRpb24gcGF0Y2ggc2V0DQoNCk9uIDAx LzI1LzE5IDEwOjQyLCBGZW5nLCBCb2IgQyB3cm90ZToNCj4gWy4uLl0NCj4NCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJl ZGhhdC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAyNSwgMjAxOSA0OjU3IFBNDQo+IFRv OiBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQo+IENjOiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZzsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2VkazJdIFtQYXRjaCAwMC8zM10gQmFzZVRvb2xzIHB5dGhvbjMgbWlncmF0aW9uIHBh dGNoIA0KPiBzZXQNCj4NCj4gWy4uLl0NCj4NCj4gT24gMDEvMjUvMTkgMDU6NTUsIEZlbmcsIEJv YiBDIHdyb3RlOg0KPj4gQlo6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9NTUNCj4+DQo+PiBUaGlzIHBhdGNoIHNldCBpcyB0byBlbmFibGUgcHl0aG9uMyBv biBCYXNlVG9vbHMuIEJhc2V0b29scyBjb2RlIHdpbGwgDQo+PiBiZSBjb21wYXRpYmxlIHdpdGgg Ym90aCBweXRob24zIGFuZCBweXRob24yLg0KPj4NCj4+IFdlIHdpbGwgaGF2ZSB0d28gZW52cyBQ WVRIT04zX0VOQUJMRSBhbmQgUFlUSE9OX0NPTU1BTkQuIFRoZSBiZWhhdmlvciANCj4+IGNhbiBi ZSBjb21iaW5lZCBhcyB0aGUgYmVsb3cgdG8gc3VwcG9ydCB0aGlzIHVzYWdlLg0KPj4gSWYgdXNl ciB3YW50cyB0aGUgc3BlY2lmaWMgcHl0aG9uIGludGVycHJldGVyLCBoZSBvbmx5IG5lZWRzIHRv IHNldCANCj4+IFBZVEhPTl9DT01NQU5EIGVudi4NCj4+IElmIFBZVEhPTjNfRU5BQkxFIGlzIHNl dCwgUFlUSE9OX0NPTU1BTkQgd2lsbCBiZSBzZXQgdG8gdGhlIGZvdW5kIG9uZSANCj4+IGJ5IGVk azIgc2NyaXB0cyBiYXNlZCBvbiBQWVRIT04zX0VOQUJMRSB2YWx1ZS4NCj4+IElmIFBZVEhPTjNf RU5BQkxFIGlzIG5vdCBzZXQsIGJ1dCBQWVRIT05fQ09NTUFORCBpcyBzZXQsIHRoZW4gDQo+PiBQ WVRIT05fQ09NTUFORCB3aWxsIGJlIHVzZWQgdG8gcnVuIHB5dGhvbiBzY3JpcHQuIE5vIHZlcnNp b24gY2hlY2sgDQo+PiBoZXJlLg0KPj4gSWYgUFlUSE9OM19FTkFCTEUgaXMgbm90IHNldCwgYnV0 IFBZVEhPTl9DT01NQU5EIGlzIG5vdCBzZXQsIA0KPj4gUFlUSE9OX0NPTU1BTkQgd2lsbCBiZSBz ZXQgdG8gdGhlIGhpZ2ggdmVyc2lvbiBweXRob24gaW5zdGFsbGVkIGluIA0KPj4gT1MuDQoNCkkg cmFuIHRoZSBmb2xsb3dpbmcgdGVzdHMsIGF0IGNvbW1pdCA0MWMwNjE2ZmMwODEgKCJCYXNlVG9v bHM6IEVvdCB0b29sDQpQeXRob24zIGFkYXB0aW9uIiwgMjAxOS0wMS0yNSkuIEVhY2ggdGVzdCB3 YXMgcGVyZm9ybWVkIGluIGEgY2xlYW4gdHJlZSAoYWZ0ZXIgcnVubmluZyAiZ2l0IGNsZWFuIC1m ZmR4IikgYW5kIGNsZWFuIGVudmlyb25tZW50IChJIHJlLXNvdXJjZWQgImVka3NldHVwLnNoIiBm b3IgZWFjaCB0ZXN0IGluIHNlcGFyYXRpb24pLiBJbiBhZGRpdGlvbiwgdGhlIGJhc2UgdG9vbHMg d2VyZSByZWJ1aWx0IChhZ2FpbiBmcm9tIGEgY2xlYW4gdHJlZSkgZm9yIGVhY2ggdGVzdCwgd2l0 aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgWzFdOg0KDQogIG5pY2UgbWFrZSAtQyAiJEVES19UT09M U19QQVRIIiAtaiAkKGdldGNvbmYgX05QUk9DRVNTT1JTX09OTE4pDQoNCihhKSBPbiBteSBSSEVM Ny41IFdvcmtzdGF0aW9uIGxhcHRvcCwgSSBoYXZlIGJvdGggdGhlIHN5c3RlbS1sZXZlbCBweXRo b24gcGFja2FnZXMgaW5zdGFsbGVkIChweXRob24tMi43LjUtNjkuZWw3XzUueDg2XzY0KSwgYW5k IHRoZSBleHRyYQ0KcHl0aG9uLTMuNCBzdHVmZiBmcm9tIEVQRUwtNyAocHl0aG9uMzQtMy40Ljkt MS5lbDcueDg2XzY0KS4NCg0KKGExKSBEaWRuJ3Qgc2V0IGVpdGhlciBQWVRIT04zX0VOQUJMRSBv ciBQWVRIT05fQ09NTUFORC4gVGhlIGJ1aWxkIHV0aWxpdHkgcGlja2VkDQoNCiAgUFlUSE9OX0NP TU1BTkQgICA9IC91c3IvYmluL3B5dGhvbjMuNA0KDQphbmQgSSBzdWNjZXNzZnVsbHkgYnVpbHQg T3ZtZlBrZyBmb3IgSUEzMiwgSUEzMlg2NCwgYW5kIFg2NDsgYWxzbyBBcm1WaXJ0UWVtdSBmb3Ig QUFSQ0g2NC4gVGhlIGJ1aWx0IGZpcm13YXJlIGltYWdlcyBwYXNzZWQgYSBzbW9rZSB0ZXN0IHRv by4NCg0KKGEyKSBJIHJlbW92ZWQgYWxsIHRoZSBweXRob24zNCBwYWNrYWdlcyAoYW5kIHRoZSBk ZXBlbmRlbnQgcGFja2FnZXMpIGZyb20gbXkgbGFwdG9wLiBEaWRuJ3Qgc2V0IGVpdGhlciBvZiBQ WVRIT04zX0VOQUJMRSBhbmQgUFlUSE9OX0NPTU1BTkQuDQooVGhpcyBpcyB0aGUgY29uZmlndXJh dGlvbiB3aGF0IGEgIm5vcm1hbCIgUkhFTDcgZW52aXJvbm1lbnQgd291bGQNCnByb3ZpZGUuKQ0K DQpJbiB0aGlzIGNhc2UsIHJlYnVpbGRpbmcgdGhlIGJhc2UgdG9vbHMgWzFdIGZhaWxlZCwgaW4g dGhlIHRlc3RpbmcNCnBoYXNlOg0KDQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gRkFJTDogdGVzdF9FY2Nf Q1BhcnNlcjRfQ0xleGVyIChDaGVja1B5dGhvblN5bnRheC5UZXN0cykNCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6DQo+ICAgRmlsZSAiLi4uL0Jh c2VUb29scy9UZXN0cy9DaGVja1B5dGhvblN5bnRheC5weSIsIGxpbmUgNTUsIGluIDxsYW1iZGE+ DQo+ICAgICBuZXdtZXRob2QgPSBsYW1iZGEgc2VsZjogc2VsZi5TaW5nbGVGaWxlVGVzdChmaWxl bmFtZSkNCj4gICBGaWxlICIuLi4vQmFzZVRvb2xzL1Rlc3RzL0NoZWNrUHl0aG9uU3ludGF4LnB5 IiwgbGluZSAzMywgaW4gU2luZ2xlRmlsZVRlc3QNCj4gICAgIHNlbGYuZmFpbCgnc3ludGF4IGVy cm9yOiAlcywgRXJyb3IgaXMgJXMnICUgKGZpbGVuYW1lLCBzdHIoZSkpKQ0KPiBBc3NlcnRpb25F cnJvcjogc3ludGF4IGVycm9yOiAuLi4vQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vRWNjL0NQYXJz ZXI0L0NMZXhlci5weSwgRXJyb3IgaXMgICBGaWxlICIuLi4vQmFzZVRvb2xzL1NvdXJjZS9QeXRo b24vRWNjL0NQYXJzZXI0L0NMZXhlci5weSIsIGxpbmUgNTkwDQo+ICAgICBkZWYgX19pbml0X18o c2VsZiwgaW5wdXQ9Tm9uZSwgb3V0cHV0OlRleHRJTyA9IHN5cy5zdGRvdXQpOg0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCj4gU3ludGF4RXJyb3I6IGludmFs aWQgc3ludGF4DQo+DQo+DQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gRkFJTDogdGVzdF9FY2NfQ1BhcnNl cjRfQ0xpc3RlbmVyIChDaGVja1B5dGhvblN5bnRheC5UZXN0cykNCj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6DQo+ICAgRmlsZSAiLi4uL0Jhc2VU b29scy9UZXN0cy9DaGVja1B5dGhvblN5bnRheC5weSIsIGxpbmUgNTUsIGluIDxsYW1iZGE+DQo+ ICAgICBuZXdtZXRob2QgPSBsYW1iZGEgc2VsZjogc2VsZi5TaW5nbGVGaWxlVGVzdChmaWxlbmFt ZSkNCj4gICBGaWxlICIuLi4vQmFzZVRvb2xzL1Rlc3RzL0NoZWNrUHl0aG9uU3ludGF4LnB5Iiwg bGluZSAzMywgaW4gU2luZ2xlRmlsZVRlc3QNCj4gICAgIHNlbGYuZmFpbCgnc3ludGF4IGVycm9y OiAlcywgRXJyb3IgaXMgJXMnICUgKGZpbGVuYW1lLCBzdHIoZSkpKQ0KPiBBc3NlcnRpb25FcnJv cjogc3ludGF4IGVycm9yOiAuLi4vQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vRWNjL0NQYXJzZXI0 L0NMaXN0ZW5lci5weSwgRXJyb3IgaXMgICBGaWxlICIuLi4vQmFzZVRvb2xzL1NvdXJjZS9QeXRo b24vRWNjL0NQYXJzZXI0L0NMaXN0ZW5lci5weSIsIGxpbmUgMzUNCj4gICAgIGRlZiBlbnRlclRy YW5zbGF0aW9uX3VuaXQoc2VsZiwgY3R4OkNQYXJzZXIuVHJhbnNsYXRpb25fdW5pdENvbnRleHQp Og0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQo+IFN5bnRheEVy cm9yOiBpbnZhbGlkIHN5bnRheA0KPg0KPg0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IEZBSUw6IHRlc3Rf RWNjX0NQYXJzZXI0X0NQYXJzZXIgKENoZWNrUHl0aG9uU3ludGF4LlRlc3RzKQ0KPiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToNCj4gICBGaWxlICIu Li4vQmFzZVRvb2xzL1Rlc3RzL0NoZWNrUHl0aG9uU3ludGF4LnB5IiwgbGluZSA1NSwgaW4gPGxh bWJkYT4NCj4gICAgIG5ld21ldGhvZCA9IGxhbWJkYSBzZWxmOiBzZWxmLlNpbmdsZUZpbGVUZXN0 KGZpbGVuYW1lKQ0KPiAgIEZpbGUgIi4uLi9CYXNlVG9vbHMvVGVzdHMvQ2hlY2tQeXRob25TeW50 YXgucHkiLCBsaW5lIDMzLCBpbiBTaW5nbGVGaWxlVGVzdA0KPiAgICAgc2VsZi5mYWlsKCdzeW50 YXggZXJyb3I6ICVzLCBFcnJvciBpcyAlcycgJSAoZmlsZW5hbWUsIHN0cihlKSkpDQo+IEFzc2Vy dGlvbkVycm9yOiBzeW50YXggZXJyb3I6IC4uLi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9FY2Mv Q1BhcnNlcjQvQ1BhcnNlci5weSwgRXJyb3IgaXMgICBGaWxlICIuLi4vQmFzZVRvb2xzL1NvdXJj ZS9QeXRob24vRWNjL0NQYXJzZXI0L0NQYXJzZXIucHkiLCBsaW5lIDc0NA0KPiAgICAgZGVmIF9f aW5pdF9fKHNlbGYsIGlucHV0OlRva2VuU3RyZWFtLCBvdXRwdXQ6VGV4dElPID0gc3lzLnN0ZG91 dCk6DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQo+IFN5bnRheEVycm9yOiBpbnZh bGlkIHN5bnRheA0KPg0KPg0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IEZBSUw6IHRlc3RfRW90X0NQYXJz ZXI0X0NMZXhlciAoQ2hlY2tQeXRob25TeW50YXguVGVzdHMpDQo+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOg0KPiAgIEZpbGUgIi4uLi9CYXNlVG9v bHMvVGVzdHMvQ2hlY2tQeXRob25TeW50YXgucHkiLCBsaW5lIDU1LCBpbiA8bGFtYmRhPg0KPiAg ICAgbmV3bWV0aG9kID0gbGFtYmRhIHNlbGY6IHNlbGYuU2luZ2xlRmlsZVRlc3QoZmlsZW5hbWUp DQo+ICAgRmlsZSAiLi4uL0Jhc2VUb29scy9UZXN0cy9DaGVja1B5dGhvblN5bnRheC5weSIsIGxp bmUgMzMsIGluIFNpbmdsZUZpbGVUZXN0DQo+ICAgICBzZWxmLmZhaWwoJ3N5bnRheCBlcnJvcjog JXMsIEVycm9yIGlzICVzJyAlIChmaWxlbmFtZSwgc3RyKGUpKSkNCj4gQXNzZXJ0aW9uRXJyb3I6 IHN5bnRheCBlcnJvcjogLi4uL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0VvdC9DUGFyc2VyNC9D TGV4ZXIucHksIEVycm9yIGlzICAgRmlsZSAiLi4uL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0Vv dC9DUGFyc2VyNC9DTGV4ZXIucHkiLCBsaW5lIDU5MQ0KPiAgICAgZGVmIF9faW5pdF9fKHNlbGYs IGlucHV0PU5vbmUsIG91dHB1dDpUZXh0SU8gPSBzeXMuc3Rkb3V0KToNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQo+IFN5bnRheEVycm9yOiBpbnZhbGlkIHN5 bnRheA0KPg0KPg0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IEZBSUw6IHRlc3RfRW90X0NQYXJzZXI0X0NM aXN0ZW5lciAoQ2hlY2tQeXRob25TeW50YXguVGVzdHMpDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gVHJh Y2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOg0KPiAgIEZpbGUgIi4uLi9CYXNlVG9vbHMv VGVzdHMvQ2hlY2tQeXRob25TeW50YXgucHkiLCBsaW5lIDU1LCBpbiA8bGFtYmRhPg0KPiAgICAg bmV3bWV0aG9kID0gbGFtYmRhIHNlbGY6IHNlbGYuU2luZ2xlRmlsZVRlc3QoZmlsZW5hbWUpDQo+ ICAgRmlsZSAiLi4uL0Jhc2VUb29scy9UZXN0cy9DaGVja1B5dGhvblN5bnRheC5weSIsIGxpbmUg MzMsIGluIFNpbmdsZUZpbGVUZXN0DQo+ICAgICBzZWxmLmZhaWwoJ3N5bnRheCBlcnJvcjogJXMs IEVycm9yIGlzICVzJyAlIChmaWxlbmFtZSwgc3RyKGUpKSkNCj4gQXNzZXJ0aW9uRXJyb3I6IHN5 bnRheCBlcnJvcjogLi4uL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0VvdC9DUGFyc2VyNC9DTGlz dGVuZXIucHksIEVycm9yIGlzICAgRmlsZSAiLi4uL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0Vv dC9DUGFyc2VyNC9DTGlzdGVuZXIucHkiLCBsaW5lIDM1DQo+ICAgICBkZWYgZW50ZXJUcmFuc2xh dGlvbl91bml0KHNlbGYsIGN0eDpDUGFyc2VyLlRyYW5zbGF0aW9uX3VuaXRDb250ZXh0KToNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPiBTeW50YXhFcnJvcjog aW52YWxpZCBzeW50YXgNCj4NCj4NCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiBGQUlMOiB0ZXN0X0VvdF9D UGFyc2VyNF9DUGFyc2VyIChDaGVja1B5dGhvblN5bnRheC5UZXN0cykNCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6DQo+ICAgRmlsZSAiLi4uL0Jh c2VUb29scy9UZXN0cy9DaGVja1B5dGhvblN5bnRheC5weSIsIGxpbmUgNTUsIGluIDxsYW1iZGE+ DQo+ICAgICBuZXdtZXRob2QgPSBsYW1iZGEgc2VsZjogc2VsZi5TaW5nbGVGaWxlVGVzdChmaWxl bmFtZSkNCj4gICBGaWxlICIuLi4vQmFzZVRvb2xzL1Rlc3RzL0NoZWNrUHl0aG9uU3ludGF4LnB5 IiwgbGluZSAzMywgaW4gU2luZ2xlRmlsZVRlc3QNCj4gICAgIHNlbGYuZmFpbCgnc3ludGF4IGVy cm9yOiAlcywgRXJyb3IgaXMgJXMnICUgKGZpbGVuYW1lLCBzdHIoZSkpKQ0KPiBBc3NlcnRpb25F cnJvcjogc3ludGF4IGVycm9yOiAuLi4vQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vRW90L0NQYXJz ZXI0L0NQYXJzZXIucHksIEVycm9yIGlzICAgRmlsZSAiLi4uL0Jhc2VUb29scy9Tb3VyY2UvUHl0 aG9uL0VvdC9DUGFyc2VyNC9DUGFyc2VyLnB5IiwgbGluZSA3NDQNCj4gICAgIGRlZiBfX2luaXRf XyhzZWxmLCBpbnB1dDpUb2tlblN0cmVhbSwgb3V0cHV0OlRleHRJTyA9IHN5cy5zdGRvdXQpOg0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPiBTeW50YXhFcnJvcjogaW52YWxpZCBz eW50YXgNCj4NCj4NCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBSYW4gMjcwIHRlc3RzIGluIDAuOTM4cw0K Pg0KPiBGQUlMRUQgKGZhaWx1cmVzPTYpDQoNCkkgZGlkbid0IGNvbnRpbnVlIHRlc3Rpbmcgb24g bXkgUkhFTDcgbGFwdG9wIGJleW9uZCB0aGlzIHBvaW50Lg0KDQoNCihiKSBSSEVMLTggdmlydHVh bCBtYWNoaW5lLCB3aXRoICIvdXNyL2Jpbi9weXRob24zLjYiIGZyb20gcHl0aG9uMzYtMy42LjYt MTguZWw4Lng4Nl82NCwgYW5kICIvdXNyL2xpYmV4ZWMvcGxhdGZvcm0tcHl0aG9uIiBmcm9tIHBs YXRmb3JtLXB5dGhvbi0zLjYuOC0xLmVsOC54ODZfNjQuDQoNCihiMSkgRGlkbid0IHNldCBlaXRo ZXIgUFlUSE9OM19FTkFCTEUgb3IgUFlUSE9OX0NPTU1BTkQuIFRoZSBidWlsZCB1dGlsaXR5IHBp Y2tlZA0KDQogIFBZVEhPTl9DT01NQU5EICAgPSAvdXNyL2Jpbi9weXRob24zLjYNCg0KYW5kIEkg c3VjY2Vzc2Z1bGx5IGJ1aWx0IE92bWZQa2cgZm9yIElBMzIsIElBMzJYNjQsIGFuZCBYNjQuIChJ IGRvbid0IGhhdmUgYSBjcm9zcy1jb21waWxlciBpbnN0YWxsZWQgaW4gdGhpcyBlbnZpcm9ubWVu dCB5ZXQsIG5vciBhIFJIRUw4DQphYXJjaDY0IEtWTSBndWVzdCwgc28gSSBjb3VsZG4ndCB0ZXN0 IEFybVZpcnRRZW11IGZvciBub3cpLg0KDQooYjIpIEkgc2V0IFBZVEhPTl9DT01NQU5EIHRvICIv dXNyL2xpYmV4ZWMvcGxhdGZvcm0tcHl0aG9uIi4gRGlkbid0IHNldCBQWVRIT04zX0VOQUJMRS4g VGhlIHNhbWUgYnVpbGRzIGFzIGluIChiMSkgc3VjY2VlZGVkLg0KDQoNClRodXMsIHdoYXQgc2Vl bXMgdG8gYmUgbWlzc2luZyBpcyBhIGxpdHRsZSBiaXQgb2YgcHl0aG9uMiBjb21wYXRpYmlsaXR5 LCBpbiAoYTIpLg0KDQpUaGFua3MsDQpMYXN6bG8NCg==