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.43; helo=mga05.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 37DC1224488AF for ; Mon, 19 Mar 2018 02:01:32 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Mar 2018 02:08:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,329,1517904000"; d="scan'208";a="212841264" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga005.fm.intel.com with ESMTP; 19 Mar 2018 02:08:00 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 19 Mar 2018 02:08:00 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 19 Mar 2018 02:07:59 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.226]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.166]) with mapi id 14.03.0319.002; Mon, 19 Mar 2018 17:07:57 +0800 From: "Gao, Liming" To: Pete Batard , "edk2-devel@lists.01.org" CC: Ard Biesheuvel Thread-Topic: [edk2] [PATCH 0/4] Add ARM64 support for VS2017 Thread-Index: AQHTrIu29dk9gfg5rESiLyKfZ75BZKPQ797A//+w0ACAAgX9YP//pwGAgADVPvD//4DFAAARF4wA//9+BYD/+0AkIA== Date: Mon, 19 Mar 2018 09:07:57 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E1E8B9F@SHSMSX104.ccr.corp.intel.com> References: <20180223095003.6012-1-pete@akeo.ie> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1E7104@SHSMSX104.ccr.corp.intel.com> <71d6b134-d875-2c24-6687-f3b01d0ff9ea@akeo.ie> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1E7EEB@SHSMSX104.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1E8137@SHSMSX104.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1E81C2@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 0/4] Add ARM64 support for VS2017 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Mar 2018 09:01:32 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGV0ZToNCiAgSSBwdXNoIHlvdXIgcGF0Y2hlcyBpbnRvIGVkazIgdHJ1bmsuIFBsZWFzZSBjaGVj ayB0aGVtLiANCg0KPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogUGV0ZSBCYXRh cmQgW21haWx0bzpwZXRlQGFrZW8uaWVdDQo+U2VudDogU2F0dXJkYXksIE1hcmNoIDE3LCAyMDE4 IDEyOjM2IEFNDQo+VG86IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnDQo+Q2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBs aW5hcm8ub3JnPg0KPlN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDAvNF0gQWRkIEFSTTY0IHN1 cHBvcnQgZm9yIFZTMjAxNw0KPg0KPlRoYW5rcyBMaW1pbmcsIG11Y2ggYXBwcmVjaWF0ZWQhDQo+ DQo+SSdsbCBzZW5kIHRoZSBjb21tZW50IGhhcm1vbml6YXRpb24gcGF0Y2ggYXMgc29vbiBhcyBJ IHNlZSB0aGUNCj5WUzIwMTcvQVJNNjQgY2hhbmdlcyBpbiBlZGsyIG1haW5saW5lLg0KPg0KPlJl Z2FyZHMsDQo+DQo+L1BldGUNCj4NCj5PbiAyMDE4LjAzLjE2IDE2OjMxLCBHYW8sIExpbWluZyB3 cm90ZToNCj4+IFllcy4gVGhpcyBpcyBhIG1pbm9yIGlzc3VlLiBTbywgSSB0aGluayB0aGUgZWZm b3J0IGlzIHNtYWxsLiBJZiBpdCBpcyBhIGJpZyB0YXNrIHRvIHlvdSwNCj55b3UgY2FuIHNlcGFy YXRlIGl0IGludG8gYW5vdGhlciBwYXRjaC4NCj4+DQo+PiBBbmQsIEkgZG9uJ3QgZXhwZWN0IHRo aXMgbWlub3IgaXNzdWUgYnJlYWsgeW91ciBwYXRjaGVzLiBJIGdpdmUgbXkgUmV2aWV3ZWQtDQo+ Ynk6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPj4NCj4+IFRoYW5rcw0KPj4g TGltaW5nDQo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBQZXRlIEJh dGFyZCBbbWFpbHRvOnBldGVAYWtlby5pZV0NCj4+PiBTZW50OiBTYXR1cmRheSwgTWFyY2ggMTcs IDIwMTggMTI6MTIgQU0NCj4+PiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEdhbywgTGlt aW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4+PiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5i aWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMC80 XSBBZGQgQVJNNjQgc3VwcG9ydCBmb3IgVlMyMDE3DQo+Pj4NCj4+PiBJIHVuZGVyc3RhbmQgd2hl cmUgeW91J3JlIGNvbWluZyBmcm9tLCBidXQgdGhhdCBtZWFucyBJIGhhdmUgdG8gcmVjcmVhdGUN Cj4+PiB0aGlzIHBhdGNoIHNldCwgYW5kIHRoZW4gY3JlYXRlIGEgbmV3IHBhdGNoIGZvciB0aGUg LlMgKGJlY2F1c2UgaXQgbWFrZXMNCj4+PiB6ZXJvIHNlbnNlIHRvIHJlcXVpcmUgdGhlIHNhbWUg Y29tbWVudCBzdHlsZSBvbiB0aGUgLmFzbSBhbmQgbm90DQo+cmVxdWVzdA0KPj4+IGEgZm9sbG93 IHRocm91Z2ggZm9yIHRoZSAuUykuDQo+Pj4NCj4+PiBNeSB0aW1lIGJlaW5nIGxpbWl0ZWQsIEkn ZCByYXRoZXIgb25seSBoYXZlIHRvIHByb2R1Y2Ugb25lIG5ldyBwYXRjaCwNCj4+PiB0aGF0IHdp bGwgaGFybW9uaXplIHRoZSBjb21tZW50cyBmb3IgYm90aCAuUyBhbmQgLmFzbSBhdCB0aGUgc2Ft ZSB0aW1lLg0KPj4+DQo+Pj4gVGhlIGVuZCByZXN1bHQgd2lsbCBiZSBleGFjdGx5IHRoZSBzYW1l LCBzbyBJJ20gZ29pbmcgdG8gaGF2ZSB0byBpbnNpc3QNCj4+PiB0aGF0IHdlIHNwbGl0IHRoZSBj b21tZW50IGhhcm1vbml6YXRpb24gKHdoaWNoIGlzIGEgdmVyeSBtaW5vciBpc3N1ZSBhbmQNCj4+ PiBzaG91bGQgaGFyZGx5IGJlIHNlZW4gYXMgYSBzaG93c3RvcHBlciBmb3IgdGhlIHBhdGNoIHNl cmllcyBpbiB0aGUgZmlyc3QNCj4+PiBwbGFjZSkgaW50byBhIHN1YnNlcXVlbnQgcGF0Y2guDQo+ Pj4NCj4+PiBUaGFuayB5b3UsDQo+Pj4NCj4+PiAvUGV0ZQ0KPj4+DQo+Pj4gT24gMjAxOC4wMy4x NiAxNTo1NiwgR2FvLCBMaW1pbmcgd3JvdGU6DQo+Pj4+IFBldGU6DQo+Pj4+ICAgICBJIHVuZGVy c3RhbmQgdGhlIGV4aXN0aW5nIC5TIGZpbGUgaGFzIHRoZSBpbmNvbnNpc3RlbnQgY29tbWVudCBz dHlsZS4gSQ0KPmFsc28ga25vdyBuZXcgYWRkZWQgQVNNIGZpbGVzIGFyZSBjb252ZXJ0ZWQgZnJv bSAuUyBmaWxlcy4NCj4+PiBCdXQsIG15IGNvbW1lbnQgaXMgZm9yIHRoaXMgcGF0Y2ggdGhhdCBh ZGRzIG5ldyBBU00gZmlsZXMuIEkgZXhwZWN0IG5ldw0KPmFkZGVkIEFTTSBmaWxlcyBoYXZlIHRo ZSBzYW1lIHN0eWxlLiBJZiB5b3UgY2hlY2sgQVJNIGFyY2gNCj4+PiBBU00gZmlsZXMsIHlvdSB3 aWxsIGZpbmQgdGhleSBhbGwgaGF2ZSB0aGUgc2FtZSBzdHlsZS4NCj4+Pj4NCj4+Pj4gVGhhbmtz DQo+Pj4+IExpbWluZw0KPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZy b206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBP biBCZWhhbGYNCj5PZiBQZXRlIEJhdGFyZA0KPj4+Pj4gU2VudDogRnJpZGF5LCBNYXJjaCAxNiwg MjAxOCA3OjA0IFBNDQo+Pj4+PiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+Pj4+IENj OiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbA0KPjxh cmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFU Q0ggMC80XSBBZGQgQVJNNjQgc3VwcG9ydCBmb3IgVlMyMDE3DQo+Pj4+Pg0KPj4+Pj4gT24gMjAx OC4wMy4xNiAwODoyNCwgR2FvLCBMaW1pbmcgd3JvdGU6DQo+Pj4+Pj4gUGV0ZToNCj4+Pj4+PiAg ICAgICAuUyBmb3IgR0NDIGFzc2VtYmx5LCAuYXNtIGZvciBNU0ZUIGFzc2VtYmx5LiBUaGV5IGNh biBoYXZlIHRoZQ0KPmRpZmZlcmVudCBjb21tZW50IHN0eWxlLg0KPj4+Pj4NCj4+Pj4+IFllcywg YnV0IGFzIEkgZXhwbGFpbmVkLCB0aGUgYWN0dWFsIG9yaWdpbmFsIGlzc3VlIGlzIHRoYXQgb3Vy IGN1cnJlbnQNCj4+Pj4+IC5TIGZpbGVzIGRvICpub3QqIGhhdmUgdGhlIHNhbWUgY29tbWVudCBz dHlsZXMgaW4gdGhlIGZpcnN0IHBsYWNlLg0KPj4+Pj4NCj4+Pj4+IElmIHlvdSBsb29rIGF0IE1k ZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NC9Td2l0Y2hTdGFjay5TLCB5b3UnbGwNCj5zZWUN Cj4+Pj4+IHRoYXQgaXMgdXNlcyAnLy8nIGZvciBjb21tZW50cywgd2hlcmVhcyBvdGhlciAuUyBm aWxlcywgc3VjaCBhcw0KPj4+Pj4gTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9BQXJjaDY0L1NldEp1 bXBMb25nSnVtcC5TLCB1c2UgJyMnLg0KPj4+Pj4NCj4+Pj4+IFNvIHRoYXQgaXMgb3VyIGFjdHVh bCBpc3N1ZSBoZXJlOiBSZWdhcmRsZXNzIG9mIFZTMjAxNywgdGhlIEdDQyBhc3NlbWJseQ0KPj4+ Pj4gZmlsZXMgZm9yIEFBUkNINjQgd2UgY3VycmVudGx5IGhhdmUgZG8gbm90IHVzZSB0aGUgc2Ft ZSBjb21tZW50IHN0eWxlLg0KPj4+Pj4NCj4+Pj4+IFRodXMsIHRoZSBvbmx5IHJlYXNvbiB3aHkg dGhlIC5hc20gZG9uJ3QgaGF2ZSB0aGUgc2FtZSBjb21tZW50IHN0eWxlDQo+aW4NCj4+Pj4+IG91 ciBwcm9wb3NhbCBpcyBiZWNhdXNlIHRoZSAuUywgd2hpY2ggd2UgZGVyaXZlZCB0aGUgLmFzbSBm cm9tLCBkb24ndC4NCj4+Pj4+IFRoaXMgbWVhbnMgdGhhdCBlaXRoZXIgd2Ugc2hvdWxkIGZpeCB0 aGUgLlMgdG9vLCBvciB3ZSBzaG91bGRuJ3QgZml4DQo+Pj4+PiBhbnl0aGluZyBhdCBhbGwuDQo+ Pj4+Pg0KPj4+Pj4+ICAgICAgSGVyZSwgbXkgY29tbWVudCBpcyB0byBtYWtlIHN1cmUgLmFzbSBm aWxlcyBoYXZlIHRoZSBzYW1lDQo+Y29tbWVudCBzdHlsZS4gSSBkb24ndCByZXF1ZXN0IHRvIGNo YW5nZSAuUyBmaWxlLg0KPj4+Pj4NCj4+Pj4+IEFuZCB3aGF0IEkgYW0gc2F5aW5nIGlzIHRoYXQg aXQgbWFrZXMgbGl0dGxlIHNlbnNlIHRvIGhhcm1vbml6ZSB0aGUNCj4+Pj4+IGNvbW1lbnQgc3R5 bGUgZm9yIHRoZSAuYXNtIGZpbGVzLCBpZiB3ZSdyZSBub3QgZ29pbmcgdG8gZG8gdGhlIHNhbWUg Zm9yDQo+Pj4+PiB0aGUgLlMgZmlsZXMgYXMgd2VsbC4gSXQganVzdCBkb2Vzbid0IHNlZW0gZmFp ciBpbiBteSBib29rIHRvIGhhdmUgdGhlDQo+Pj4+PiBWUzIwMTcgYXNzZW1ibHkgZmlsZXMgaGVs ZCB0byBhIGhpZ2hlciBzdGFuZGFyZCB0aGFuIHRoZSBHQ0Mgb25lcy4gU28NCj4+Pj4+IGVpdGhl ciB3ZSBuZWVkIHRvIGZpeCBib3RoLCBvciB3ZSBmaXggbm9uZSBhdCBhbGwuDQo+Pj4+Pg0KPj4+ Pj4gQnV0IGFzIEkgaW5kaWNhdGVkIGluIG15IGxhc3QgZS1tYWlsLCBJIGFtIHBsYW5uaW5nIHRv IHNlbmQgYW4NCj4+Pj4+IGFkZGl0aW9uYWwgcGF0Y2ggdGhhdCBkb2VzIGNvbW1lbnQgaGFybW9u aXphdGlvbiwgZm9yIGJvdGggLlMgYW5kIC5hc20sDQo+Pj4+PiAqYWZ0ZXIqIHRoaXMgVlMyMDE3 IHNlcmllcyBoYXMgYmVlbiBhcHBsaWVkIHRvIG1haW5saW5lLiBTbyB0aGUgY2hhbmdlDQo+Pj4+ PiB5b3UgcmVxdWVzdCB3aWxsIGhhcHBlbi4gSnVzdCBub3QgYXMgcGFydCBvZiB0aGlzIHBhdGNo IHNlcmllcy4NCj4+Pj4+DQo+Pj4+PiBBbmQgdGhlIHJlYXNvbiBJIGhhdmUgaW5zaXN0IG9uIHNw bGl0dGluZyB0aGVzZSBjaGFuZ2VzIGlzIGJlY2F1c2UsIGlmDQo+Pj4+PiB3ZSBoYXZlIHRvIGFs dGVyIHRoZSAuUyBmaWxlcyB0byBiZSBjb25zaXN0ZW50LCB0aGVuIHRoaXMgY29tbWVudA0KPj4+ Pj4gaGFybW9uaXphdGlvbiByZXF1ZXN0IHNob3VsZCBsb2dpY2FsbHkgYmUgaGFuZGxlZCBzZXBh cmF0ZWx5IGZyb20gdGhlDQo+Pj4+PiBWUzIwMTcgZWZmb3J0Lg0KPj4+Pj4NCj4+Pj4+IFBsZWFz ZSBsZXQgbWUga25vdyBpZiB5b3Ugc3RpbGwgdGhpbmsgaGF2aW5nIGEgZnV0dXJlIHNlcGFyYXRl IHBhdGNoLA0KPj4+Pj4gdGhhdCB3aWxsIGRvIC5TIGFuZCAuYXNtIGNvbW1lbnQgaGFybW9uaXph dGlvbiwgZG9lcyBub3QgbWFrZSBzZW5zZS4NCj4+Pj4+DQo+Pj4+PiBSZWdhcmRzLA0KPj4+Pj4N Cj4+Pj4+IC9QZXRlDQo+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+Pj4+Pj4+IEZyb206IFBldGUgQmF0YXJkIFttYWlsdG86cGV0ZUBha2VvLmllXQ0K Pj4+Pj4+PiBTZW50OiBUaHVyc2RheSwgTWFyY2ggMTUsIDIwMTggNToyOCBQTQ0KPj4+Pj4+PiBU bzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmcNCj4+Pj4+Pj4gQ2M6IGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmcNCj4+Pj4+Pj4gU3Vi amVjdDogUmU6IFtQQVRDSCAwLzRdIEFkZCBBUk02NCBzdXBwb3J0IGZvciBWUzIwMTcNCj4+Pj4+ Pj4NCj4+Pj4+Pj4gSGkgTGltaW5nLA0KPj4+Pj4+Pg0KPj4+Pj4+PiBUaGFua3MgZm9yIHJldmll d2luZyB0aGUgcGF0Y2hlcy4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gT24gMjAxOC4wMy4xNSAwNjoxNSwg R2FvLCBMaW1pbmcgd3JvdGU6DQo+Pj4+Pj4+PiBQZXRlOg0KPj4+Pj4+Pj4gICAgICAgRm9yIG5l dyBhZGRlZCBBU00gZmlsZSBpbiBCYXNlTGliLCBjb3VsZCB5b3UgdXNlIHRoZSBzYW1lDQo+Y29t bWVudCBzdHlsZQ0KPj4+Pj4+Pj4gZm9yIHRoZW0/IEFTTSB1c2UgOyBmb3IgdGhlIGNvbW1lbnQu IE1vc3Qgb2YgbmV3IGZpbGVzIHVzZXMgOyBhcw0KPnRoZQ0KPj4+Pj4+Pj4gY29tbWVudCwgYnV0 IHN3aXRjaHN0YWNrIGlzIG5vdC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhpcyBpcyBiZWNhdXNlIFN3 aXRjaFN0YWNrLmFzbSBpcyBzaW1wbHkgU3dpdGNoU3RhY2suUywgd2l0aCB0aGUgR0NDDQo+Pj4+ Pj4+IGFzc2VtYmxlciBzcGVjaWZpY3MgcmVtb3ZlZCwgYW5kIE1TVkMgYXNzZW1ibGVyIHNwZWNp ZmljcyBhZGRlZC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSSBkaWQgbm90IGNoYW5nZSB0aGUgY29tbWVu dCBzdHlsZSBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlcywgc28gdGhlIHJlYWwNCj4+Pj4+Pj4gaXNz dWUgaGVyZSBpcyB0aGF0IG91ciBHQ0MgYXNzZW1ibHkgZmlsZXMgZm9yIEFBUkNINjQgZG8gbm90 IHVzZSB0aGUNCj4+Pj4+Pj4gc2FtZSBjb21tZW50IHN0eWxlLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBJ J20gZmluZSB3aXRoIHRyeWluZyB0byBoYXJtb25pemUgdGhlIGNvbW1lbnQgc3R5bGVzLCBidXQg c2VlaW5nIGFzDQo+dGhpcw0KPj4+Pj4+PiBuZWVkcyB0byBiZSBkb25lIGZvciBib3RoIHRoZSAu UyBhbmQgLmFzbSwgSSdkIHJhdGhlciBzZW5kIGEgcGF0Y2ggdG8NCj5kbw0KPj4+Pj4+PiB0aGF0 ICphZnRlciogdGhlc2UgVlMyMDE3IGNoYW5nZXMgaGF2ZSBiZWVuIGFwcGxpZWQsIGFzIEkgZG9u J3QNCj5jb25zaWRlcg0KPj4+Pj4+PiB0aGlzIGNvcnJlY3Rpb24gdG8gaW4gc2NvcGUgb2YgdGhp cyBwYXRjaCBzZXJpZXMgKGJlY2F1c2UgbG9naWNhbGx5LCB0aGUNCj4+Pj4+Pj4gaW50cm9kdWN0 aW9uIG9mIFZTMjAxNyBzaG91bGQgbm90IGFsdGVyIGFueSBvZiB0aGUgLlMgZmlsZXMsIHVubGVz cyB3ZQ0KPj4+Pj4+PiByZXVzZSB0aGVtLCB3aGljaCB3ZSBkb24ndCkuDQo+Pj4+Pj4+DQo+Pj4+ Pj4+IElmIHlvdSBhZ3JlZSB0byBhcHBseSB0aGlzIHNlcmllcywgSSdsbCBtYWtlIHN1cmUgdG8g c2VuZCBhIG5vbg0KPj4+Pj4+PiBWUzIwMTctc3BlY2lmaWMgYWRkaXRpb25hbCBwYXRjaCwgdGhh dCBkb2VzIHdoYXQgeW91IHJlcXVlc3QgZm9yIGJvdGgNCj4+Pj4+Pj4gdGhlIC5TIGFuZCAuYXNt Lg0KPj4+Pj4+Pg0KPj4+Pj4+Pj4gQmVzaWRlcywgY29tcGFyZWQgdG8gQXJtIGFyY2ggYXNzZW1i bHkNCj4+Pj4+Pj4+IGZpbGUsIEkgZG9uJ3QgZmluZCBDcHVQYXVzZS5hc20uIElzIGl0IHJlcXVp cmVkPw0KPj4+Pj4+Pg0KPj4+Pj4+PiBUaGF0IGZpbGUgZG9lc24ndCBleGlzdCBmb3IgR0NDIChh cyB5b3Ugd2lsbCBzZWUgdGhlcmUgaXMgbm8NCj4+Pj4+Pj4gTWRlUGtnL0xpYnJhcnkvQmFzZUxp Yi9BQXJjaDY0L0NwdVBhdXNlLlMpLCBzbyB3ZSBkb24ndCBoYXZlDQo+b25lIGZvcg0KPj4+Pj4+ PiBWUzIwMTcgZWl0aGVyLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBSZWdhcmRzLA0KPj4+Pj4+Pg0KPj4+ Pj4+PiAvUGV0ZQ0KPj4+Pj4NCj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQo+Pj4+PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPj4+Pj4gZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+Pj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4v bGlzdGluZm8vZWRrMi1kZXZlbA0KPj4NCg0K