From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.5180.1602812186318912042 for ; Thu, 15 Oct 2020 18:36:26 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=EpqFesB5; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: siyuan.fu@intel.com) IronPort-SDR: /mCDqRGfHtitB9NSaVj/C5qCzIUnW1DleLbVQ5ugS95VaFs7dsXvRrIX0/KDHe9Jf7HQ5L2ynu dVkbCCyTrDJg== X-IronPort-AV: E=McAfee;i="6000,8403,9775"; a="166606924" X-IronPort-AV: E=Sophos;i="5.77,381,1596524400"; d="scan'208";a="166606924" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Oct 2020 18:36:22 -0700 IronPort-SDR: Z0mfKo5r6NVPFUlhE033NjeNfWU2nGcpNZt8ErTkCbwRnXbc9KVZAcS6eMIbZGNz6qNpZowRf2 7yxdDoUn+N/g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,381,1596524400"; d="scan'208";a="331008691" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga002.jf.intel.com with ESMTP; 15 Oct 2020 18:36:22 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 15 Oct 2020 18:36:20 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 15 Oct 2020 18:36:20 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 15 Oct 2020 18:36:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TaH+OVVYauutyfA8t1a0UIhHbHl2/TJlE1+uoRYkKTAaI568PA2aQdYtJ6r+0ZLsUuUhhk14k8ThWyK1gE+qhX+CNUwVezvjIHbByJiFIlaQQVif+6hXallP3shVGPjOSiaMulExCGdVZ2RpVOfWUJ2Nb6o5AzebbQn1def8m3C08z7sepNhI3fVNVLgs37rX5Y873HqoSAgB9BUshgAXMOckHFd32aZQcybbJT9xvjT9L98OIcMN4txWgQL5mP1dGXrg9PZYlfoYJvoFwzuvEAwvTflET+U41ToT3aEgnWfXGTlQ0QUFvleACYCmEMPPvKxE5tsUr9j8/hMihT6hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IZV2iQZizsgXr6chtkwMrO8XxaQQQ3SFLLAzKa7W0eM=; b=E5eHikXanGS0AwatDv7sAEcLMcMmUYjKOVfkILLoaKu36+73rVvil7D27vB5Bf4oNOTCjIPlmK2EHqTCCpPXfuRBsl2+Iq1Ww/530NQzORbD0MHG6R2UrCmSpglpaHjx7Xio43j4a+PDNF2yr9IqB45BFiRR3UyqyWqRpeCi1/vBJmUm0cUs/Ktay97L4vCkr1S9SskEUmhWcYZE8ohSsxzLyu17lagz+Wveh5J8NFnDQuEvCNd+s/rYbUDuRiqy0BbJYuPXtIfpK2pA61SIeIh/hL3so14+8GqEv0gJWfaJPNKmLk42R720stE05/db4kABzXtxOv2DbBoL/LaRwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IZV2iQZizsgXr6chtkwMrO8XxaQQQ3SFLLAzKa7W0eM=; b=EpqFesB59zo+GA6T/2FM+TsmzQmxvt8v3iSptMccViGUbyOYrPSqcPirg6PN14j4eldlp9VaY6D4ivVhOPUyJ77LOCSdqEsmoGHQJ1ZRtGWg8FKHcbn0dC0jFpUOZyqasYgQC6zJIuI37XF1c1TGK7y10nhgWMKHSSVnHeHZeno= Received: from SN6PR11MB2863.namprd11.prod.outlook.com (2603:10b6:805:5c::25) by SN6PR11MB2655.namprd11.prod.outlook.com (2603:10b6:805:62::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.22; Fri, 16 Oct 2020 01:36:13 +0000 Received: from SN6PR11MB2863.namprd11.prod.outlook.com ([fe80::21e0:3be:1f48:1caf]) by SN6PR11MB2863.namprd11.prod.outlook.com ([fe80::21e0:3be:1f48:1caf%6]) with mapi id 15.20.3477.021; Fri, 16 Oct 2020 01:36:13 +0000 From: "Siyuan, Fu" To: "devel@edk2.groups.io" , "sami.mujawar@arm.com" , "lersek@redhat.com" , "Yao, Jiewen" , "rfc@edk2.groups.io" CC: "Dong, Eric" , "Ni, Ray" , "Ard Biesheuvel" , Supreeth Venkatesh Subject: Re: [edk2-rfc] [edk2-devel] [RFC] Support Both MM Traditional and Standalone Drivers with One MM Core Thread-Topic: [edk2-rfc] [edk2-devel] [RFC] Support Both MM Traditional and Standalone Drivers with One MM Core Thread-Index: Adad/BvDcwINIpsnRk6CdDy+J9zhMgANwhQAAADIL6AAAbmcgAAaOD0gAHF730AAu6P/gA== Date: Fri, 16 Oct 2020 01:36:13 +0000 Message-ID: References: <91565e60-54c5-8315-142b-d7b1309fca5a@redhat.com> <35c9e93e-5bd0-c932-c27c-183a687926c7@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.195] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 430135d0-79a0-4a90-90eb-08d87173de53 x-ms-traffictypediagnostic: SN6PR11MB2655: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qHO4wS5jVEXiSuTAUNKGjgDS0efnRKnM0MqBSTdc1pvdhnS2JqhhrUxtbZp3oTJJXrEZn/PyDMgVdFerZxwoEgOsfJrfvMRqSpPVdCnixVBpYPqctES2GhJdFYxaDYIYSvUp8BQPoK9OkEOXN3Jmtg4KwWWCJpVcVvQul3KQXl9fFVRf3TDq6pDY4wYaa+769rUoIhU4vhp9Wq7NrrYXXj2ME4uKjVlOb3+RJ92KhvYB7FCmqFqMhL9Oe55+ZQC1CjlxJs6e3+lRbrSYM3LPtMBIRZcx3pUpVlSeW4TOyNPellMUULd77Adlpi4d+qUWhlaKnEEs4XYncMN1pjSnLHjNrWYpJcgob+V37cJWlK8KiZItJ7ZOZdd+Zn9W/w3LjfBg/jOJ1s89CJJ2Pu4Vlw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2863.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(136003)(346002)(39860400002)(366004)(396003)(2906002)(186003)(66946007)(76116006)(83380400001)(8936002)(66476007)(71200400001)(86362001)(8676002)(66446008)(64756008)(66556008)(26005)(316002)(4326008)(52536014)(6506007)(478600001)(110136005)(5660300002)(55016002)(966005)(9686003)(7696005)(33656002)(54906003)(53546011);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: dnYtd1uOn0C3xSMvfLVT8HDbemHAoJbNHvFKmyTVpflmr9W3Qh7daSwRsek3yPLuZgG0rTErj+bLv2V9ipna/u3q1osOJIIbWuxrQi74CeSEOI7s1uNO9p4zt4ZZkf1O5fpDgxOcMWsBFRtLX0oVfcU5v9rCZgskb7L19Mf63mfQXxPlr0UowsUXhjCzAQ4yOQo+9/8yXi+rAS0CMWySrBkA88tB65A+NMwWWam+CfqbLvSlfgf3tGKwNgng44JFyWoRFueJ1rZC9xpmBR4uippJMzAnUgwBINchmN3sanaxl1w1ihHfY5GWBccpXr6XQSMUppRW3qLzCjeB/guWfWiKv+E7kC1to6kHwLnln3SfAnmJ65VO2Vhzef5J6ndA+sdSpZB5ifypxvx6z0qBeAEwSkkVg2hagcnGzhxBR7cIcXXk+X5Sw42G/VzabvW5oTMFb8R97NfQECNi+iawDFq8Z2i+XEdQA1J35vyaZjPWXWeTPK1bZ0AR0W7bk2JhHzZ8zo89NbTLz2FgppJm2OWE+tinh1F9OeSkwGxadgpB0bKdbU/8MwOuvipS6SO9AvoXDgM31UnQbPTPKvC16h6j7rEtJ3pTP2ybDqHJ6Hp66/IIi7tXee/Zhza3syWI6yKYxgq832YRD4jo0r3ACg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2863.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 430135d0-79a0-4a90-90eb-08d87173de53 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2020 01:36:13.6532 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sIaFKSUnO1sfhG9ZXfj7LXonGP/OJc2ikOWPnlvdeNqFI3kLqi/En/A9BZzy8SPy/53wPmemzbn04+j9DYrPkQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2655 Return-Path: siyuan.fu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIFNhbWkNCg0KSSBrbm93IHRoZSB0cmFkaXRpb25hbCBNTSBpcyBwbGFubmVkIHRvIGJlIGRl cHJlY2F0ZWQgYnV0IHRoZSByZWFsaXR5IGlzIHRoYXQgdGhlcmUNCmFyZSBtYW55IGV4aXN0aW5n IHRyYWRpdGlvbmFsIE1NIHBsYXRmb3Jtcy9kcml2ZXJzIGFuZCB0aGUgbWlncmF0aW9uIGhhcyB0 byBoYXBwZW4NCnN0ZXAtYnktc3RlcC4gSXQgbWF5IHRha2UgYSBsb25nIHRpbWUgbGlrZSBzZXZl cmFsIHllYXJzLCBub3QgZGF5cyBvciBtb250aHMuIE5vdCBzdXJlDQppZiB3ZSByZWFsbHkgd2Fu dCB0byBtYWludGFpbiBkdXBsaWNhdGUgY29kZSBpbiAzIGRpZmZlcmVudCBNTSBjb3JlcyBpbiBF REsyIGZvcg0Kc3VjaCBhIGxvbmcgdGltZS4NCg0KV291bGQgeW91IHRoaW5rIGl0J3MgYWNjZXB0 YWJsZSBpZiB3ZSBwdXQgdGhlIHRyYWRpdGlvbmFsIE1NIHJlbGF0ZWQgY29kZSBjb250cm9sbGVk DQpieSBhIGZlYXR1cmUgZmxhZyBQQ0QgaW4gU3RhbmRhbG9uZU1tUGtnIGNvcmU/IFRoZSBkZWZh dWx0IHZhbHVlIG9mIHRoZSBQQ0QgY2FuDQpiZSBzZXQgYXMgZGlzYWJsZWQgc28gdGhvc2UgZXhp c3RpbmcgcGxhdGZvcm1zIGRvZXNuJ3QgbmVlZCB0byBiZSBjaGFuZ2VkLg0KDQpCZXN0IFJlZ2Fy ZHMNClNpeXVhbiANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBTYW1p DQo+IE11amF3YXINCj4gU2VudDogMjAyMOW5tDEw5pyIMTXml6UgMTg6MTINCj4gVG86IEZ1LCBT aXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gbGVy c2VrQHJlZGhhdC5jb207IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IHJmY0Bl ZGsyLmdyb3Vwcy5pbzsNCj4gTGFzemxvIEVyc2VrIChsZXJzZWtAcmVkaGF0LmNvbSkgPGxlcnNl a0ByZWRoYXQuY29tPg0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5p LCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBBcmQNCj4gQmllc2hldXZlbCA8QXJkLkJpZXNoZXV2 ZWxAYXJtLmNvbT47IFN1cHJlZXRoIFZlbmthdGVzaA0KPiA8U3VwcmVldGguVmVua2F0ZXNoQGFy bS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1yZmNdIFtlZGsyLWRldmVsXSBbUkZDXSBTdXBw b3J0IEJvdGggTU0gVHJhZGl0aW9uYWwgYW5kDQo+IFN0YW5kYWxvbmUgRHJpdmVycyB3aXRoIE9u ZSBNTSBDb3JlDQo+IA0KPiBIaSBTaXl1YW4sDQo+IA0KPiBJIGNhbiBzZWUgdGhlIGZvbGxvd2lu ZyBwb2ludHM6DQo+IC0gY3VycmVudCBjb2RlIG9yZ2FuaXNhdGlvbiBpcyBzdWNoIHRoYXQgdGhl IHRyYWRpdGlvbmFsIE1NIGFuZCBzdGFuZGFsb25lIE1NDQo+IGFyZSBjbGVhcmx5IHNlcGFyYXRl ZC4NCj4gLSB0cmFkaXRpb25hbCBNTSBpcyBwbGFubmVkIHRvIGJlIGRlcHJlY2F0ZWQuDQo+IC0g c29tZSBhcmNoaXRlY3R1cmVzIG9ubHkgc3VwcG9ydCBzdGFuZGFsb25lIE1NIChlLmcuIEFybSBw bGF0Zm9ybXMpDQo+IC0gbGlmZSBzcGFuIG9mIE1NIE1pZ3JhdGlvbiB1c2UtY2FzZSBjb2RlIGlz IHVudGlsIHRyYWlvbmFsIE1NIGlzIGRlcHJlY2F0ZWQuDQo+IA0KPiBDb25zaWRlcmluZyB0aGUg YWJvdmUsIHdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIGhhdmUgYW4gb3B0aW9uIDMgd2hlcmUgdGhl IE1NDQo+IE1pZ3JhdGlvbiB1c2UtY2FzZSBjb2RlIGlzIHBsYWNlZCBpbiBhIHNlcGFyYXRlIGxv Y2F0aW9uL3BhY2thZ2UsICBzdWNoIHRoYXQNCj4gZXhpc3RpbmcgcGxhdGZvcm1zIGRvIG5vdCBu ZWVkIGNoYW5naW5nIGFuZCBhcmUgbm90IHJlZ3Jlc3NlZD8NCj4gSSB1bmRlcnN0YW5kIHRoZSBj b25jZXJuIHdpdGggZHVwbGljYXRpbmcgdGhlIE1NIGltcGxlbWVudGF0aW9ucywgaG93ZXZlciBJ DQo+IHRoaW5rIGl0IHdvdWxkIGJlIGdvb2QgdG8gbWFpbnRhaW4gdGhlIGRlbWFyY2F0aW9uIHRo YXQgZXhpc3RzIGJldHdlZW4NCj4gdHJhZGl0aW9uYWwgTU0gYW5kIHN0YW5kYWxvbmUgTU0uIEZl YXR1cmVzIHRoYXQgYXJlIGJlbmVmaWNpYWwgdG8gc3RhbmRhbG9uZQ0KPiBNTSBjYW4gY2VydGFp bmx5IGJlIGFkZGVkIHRvIFN0YW5kYWxvbmVNbVBrZy4NCj4gDQo+IFJlZ2FyZHMsDQo+IA0KPiBT YW1pIE11amF3YXINCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEZ1 LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+DQo+IFNlbnQ6IDEwIE9jdG9iZXIgMjAyMCAw Mjo0MSBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGxlcnNla0ByZWRoYXQuY29tOyBZ YW8sIEppZXdlbg0KPiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyByZmNAZWRrMi5ncm91cHMuaW87 IExhc3psbyBFcnNlayAobGVyc2VrQHJlZGhhdC5jb20pDQo+IDxsZXJzZWtAcmVkaGF0LmNvbT4N Cj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlA aW50ZWwuY29tPjsgQXJkDQo+IEJpZXNoZXV2ZWwgPEFyZC5CaWVzaGV1dmVsQGFybS5jb20+OyBT YW1pIE11amF3YXINCj4gPFNhbWkuTXVqYXdhckBhcm0uY29tPjsgU3VwcmVldGggVmVua2F0ZXNo DQo+IDxTdXByZWV0aC5WZW5rYXRlc2hAYXJtLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLXJm Y10gW2VkazItZGV2ZWxdIFtSRkNdIFN1cHBvcnQgQm90aCBNTSBUcmFkaXRpb25hbCBhbmQNCj4g U3RhbmRhbG9uZSBEcml2ZXJzIHdpdGggT25lIE1NIENvcmUNCj4gDQo+IEhpLCBKaWV3ZW4vTGFz emxvDQo+IA0KPiBUaGFua3MgZm9yIHlvdXIgY29tbWVudHMgb24gdGhpcy4NCj4gDQo+IEhpLCBB cmQvU2FtaS9TdXByZWV0aA0KPiANCj4gU2luY2UgQVJNIGJhc2VkIHBsYXRmb3JtcyBhcmUgY3Vy cmVudGx5IHRoZSBtYWpvciB1c2VyIG9mIHRoZSBNTSBDb3JlIGluDQo+IFN0YW5kYWxvbmVNbVBr ZywgSSB3b3VsZCBsaWtlIHRvIGhlYXIgeW91IGlkZWEgYWJvdXQgdGhpcyBjaGFuZ2UuIERvIHlv dSBoYXZlDQo+IGFueSBjb25jZXJuIGFib3V0IGFkZGluZyBNTSBUcmFkaXRpb25hbCBkcml2ZXIg c3VwcG9ydCB0byB0aGUgU3RhbmRhbG9uZSBNTQ0KPiBDb3JlPw0KPiANCj4gQmVzdCBSZWdhcmRz DQo+IFNpeXVhbg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m IExhc3psbw0KPiBFcnNlaw0KPiA+IFNlbnQ6IDIwMjDlubQxMOaciDnml6UgMjE6MDgNCj4gPiBU bzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgcmZjQGVkazIuZ3JvdXBzLmlv Ow0KPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBGdSwgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwu Y29tPg0KPiA+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJheSA8 cmF5Lm5pQGludGVsLmNvbT47DQo+ID4gYXJkLmJpZXNoZXV2ZWxAYXJtLmNvbTsgc2FtaS5tdWph d2FyQGFybS5jb207DQo+ID4gc3VwcmVldGgudmVua2F0ZXNoQGFybS5jb20NCj4gPiBTdWJqZWN0 OiBSZTogW2VkazItcmZjXSBbZWRrMi1kZXZlbF0gW1JGQ10gU3VwcG9ydCBCb3RoIE1NIFRyYWRp dGlvbmFsIGFuZA0KPiA+IFN0YW5kYWxvbmUgRHJpdmVycyB3aXRoIE9uZSBNTSBDb3JlDQo+ID4N Cj4gPiBPbiAxMC8wOS8yMCAxNDoyMywgWWFvLCBKaWV3ZW4gd3JvdGU6DQo+ID4gPiBJTUhPLCBT dGFuZGFsb25lTW0gKGluIFN0YW5kYWxvbmVNbVBrZykgc2hvdWxkIGJlIHRoZSBsb25nIHRlcm0N Cj4gPiBkaXJlY3Rpb24gdG8gcmVwbGFjZSB0aGUgdHJhZGl0aW9uYWwgTU0gKGluIE1kZU1vZHVs ZVBrZykuDQo+ID4gPg0KPiA+ID4gSWYgd2Ugd2FudCB0byBkbyBzb21lIGVuaGFuY2VtZW50LCBJ IHByZWZlciAjMiB0byB1cGRhdGUgdGhlIG9uZSBpbg0KPiA+IFN0YW5kYWxvbmVNbVBrZy4NCj4g PiA+IE9uY2Ugd2UgcmV0aXJlIHRyYW5zaXRpb25hbCBNTSwgd2UgY2FuIGRlbGV0ZSB0aGUgUGlT bW1Db3JlIGluDQo+ID4gTWRlTW9kdWxlUGtnLg0KPiA+DQo+ID4gVGhpcyBpcyBhIGdvb2QgaWRl YSAtLSB3aGVuIHdlIHRoaW5rIHdlIGFyZSByZWFkeSB0byByZXRpcmUgUGlTbW1Db3JlIGluDQo+ ID4gTWRlTW9kdWxlUGtnLCBiZWNhdXNlIHdlIHRoaW5rIHRoYXQgU3RhbmRhbG9uZU1tUGtnIGNh biBmdWxseSByZXBsYWNlDQo+ID4gaXQsIHBsYXRmb3JtcyBjYW4gZXZhbHVhdGUgdGhlIGxhdHRl ciAoaG9wZWZ1bGx5IHdpdGggc29tZSBzaW1wbGUgRFNDIC8NCj4gPiBGREYgbW9kaWZpY2F0aW9u cyksIGFuZCByZXBvcnQgYmFjayB3aGV0aGVyIHRoZXkgc2VlIHJlZ3Jlc3Npb25zIG9yDQo+ID4g d2hldGhlciBTdGFuZGFsb25lTW1Qa2cgYmVoYXZlcyBhcyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQg aW5kZWVkLCBmb3INCj4gPiBQaVNtbUNvcmUgaW4gTWRlTW9kdWxlUGtnLg0KPiA+DQo+ID4gVGhh bmtzDQo+ID4gTGFzemxvDQo+ID4NCj4gPiA+DQo+ID4gPiBJZiB3ZSBjaG9vc2UgIzEsIHRoZSBF REtJSSB3aWxsIGhhdmUgdHdvIHN0YW5kYWxvbmVNbSBDb3JlcyAodGhlIG9uZSBpbg0KPiA+IFN0 YW5kYWxvbmVNbVBrZyBhbmQgdGhlIG9uZSBpbiBNZGVNb2R1bGVQa2cpLCB3aGljaCBtYXkgYnJp bmcgbG90cyBvZg0KPiA+IGNvbmZ1c2luZyBhbmQgd2UgbWF5IG5lZWQgbWVyZ2UgdGhlbSBsYXRl ci4NCj4gPiA+DQo+ID4gPiBUaGFuayB5b3UNCj4gPiA+IFlhbyBKaWV3ZW4NCj4gPiA+DQo+ID4g Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiByZmNAZWRrMi5ncm91 cHMuaW8gPHJmY0BlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExhc3psbyBFcnNlaw0KPiA+ ID4+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciA5LCAyMDIwIDc6NTYgUE0NCj4gPiA+PiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+Ow0KPiA+ ID4+IHJmY0BlZGsyLmdyb3Vwcy5pbw0KPiA+ID4+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdA aW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47DQo+ID4gPj4gYXJkLmJpZXNo ZXV2ZWxAYXJtLmNvbTsgc2FtaS5tdWphd2FyQGFybS5jb207IFlhbywgSmlld2VuDQo+ID4gPj4g PGppZXdlbi55YW9AaW50ZWwuY29tPjsgc3VwcmVldGgudmVua2F0ZXNoQGFybS5jb20NCj4gPiA+ PiBTdWJqZWN0OiBSZTogW2VkazItcmZjXSBbZWRrMi1kZXZlbF0gW1JGQ10gU3VwcG9ydCBCb3Ro IE1NIFRyYWRpdGlvbmFsIGFuZA0KPiA+ID4+IFN0YW5kYWxvbmUgRHJpdmVycyB3aXRoIE9uZSBN TSBDb3JlDQo+ID4gPj4NCj4gPiA+PiBPbiAxMC8wOS8yMCAwNzoyMiwgU2l5dWFuLCBGdSB3cm90 ZToNCj4gPiA+Pj4gSGksIEFsbA0KPiA+ID4+Pg0KPiA+ID4+PiBUaGlzIGVtYWlsIGlzIHRvIGNv bGxlY3QgZmVlZGJhY2sgYWJvdXQgbWFraW5nIG9uZSBjb21tb24gRURLMiBNTQ0KPiBDb3JlDQo+ ID4gPj4gZHJpdmVyIHRvIHN1cHBvcnQgYm90aCBNTSBUcmFkaXRpb25hbCBkcml2ZXJzIGFuZCBN TSBTdGFuZGFsb25lIGRyaXZlcnMuDQo+ID4gPj4+DQo+ID4gPj4+IFdlIGtub3cgdGhhdCBQSSBT cGVjIGRlZmluZXMgdHdvIHR5cGVzIG9mIE1NLXJlbGF0ZWQgZHJpdmVyczogTU0NCj4gPiA+PiBU cmFkaXRpb25hbCBEcml2ZXJzIGFuZCBNTSBTdGFuZGFsb25lIERyaXZlcnMuIFRoZXJlIGFyZSB0 d28gTU0gQ29yZQ0KPiA+ID4+IG1vZHVsZXMgZXhpc3QgaW4gRURLMiBidXQgZWFjaCBvZiB0aGVt IGNhbiBvbmx5IHN1cHBvcnQgb25lIHNpbmdsZSB0eXBlIG9mDQo+ID4gTU0NCj4gPiA+PiBkcml2 ZXJzOg0KPiA+ID4+PiAgICAgLSBQaVNtbUNvcmUgaW4gTWRlTW9kdWxlUGtnIHN1cHBvcnRzIE1N IFRyYWRpdGlvbmFsIGRyaXZlciBkaXNwYXRjaC4NCj4gPiBJdA0KPiA+ID4+IGRvZXNuJ3QgaGF2 ZSBGViBwYXJzaW5nIGxvZ2ljIGFuZCByZWxpZXMgb24gRUZJIEZpcm13YXJlIFZvbHVtZTIgUHJv dG9jb2wNCj4gPiBmb3INCj4gPiA+PiBkcml2ZXIgZGlzY292ZXJ5LiBJdCBkb2Vzbid0IHN1cHBv cnQgTU0gU3RhbmRhbG9uZSBkcml2ZXIuDQo+ID4gPj4+ICAgICAtIFN0YW5kYWxvbmVNbUNvcmUg aW4gU3RhbmRhbG9uZU1tUGtnIHN1cHBvcnRzIE1NIFN0YW5kYWxvbmUNCj4gPiBkcml2ZXINCj4g PiA+PiBkaXNwYXRjaC4gSXQgaGFzIEZWIHBhcnNpbmcgYW5kIGRlY29tcHJlc3MgbG9naWMgYnV0 IG9ubHkgbGltaXRlZCB0byBvbmUNCj4gc2luZ2xlDQo+ID4gPj4gZmlybXdhcmUgdm9sdW1lIChj YWxsZWQgc3RhbmRhbG9uZSBCRlYgaW4gY29kZSkuIEl0IGRvZXNuJ3Qgc3VwcG9ydCBNTQ0KPiA+ ID4+IFRyYWRpdGlvbmFsIGRyaXZlci4NCj4gPiA+Pj4NCj4gPiA+Pj4gSG93ZXZlciwgYSBwbGF0 Zm9ybSBtYXkgd2FudCB0byBoYXZlIGJvdGggb2YgdGhlIHR3byB0eXBlcyBvZiBNTQ0KPiBkcml2 ZXJzDQo+ID4gPj4gY29leGlzdCBpbiBpdHMgZmlybXdhcmUsIGZvciBleGFtcGxlLCB3aGVuIGl0 IHRyaWVzIHRvIHRyYW5zZmVyIGZyb20NCj4gVHJhZGl0aW9uYWwNCj4gPiA+PiBNTSBtb2RlIHRv IFN0YW5kYWxvbmUgTU0gbW9kZSwgaW4gYSBzdGFnZSBieSBzdGFnZSBtYW5uZXIuIEhvd2V2ZXIs DQo+ID4gaXQncw0KPiA+ID4+IG5vdCBwb3NzaWJsZSB3aXRoIGN1cnJlbnQgRURLMiBNTSBDb3Jl IGJlY2F1c2Ugb2YgYWJvdmUgbGltaXRhdGlvbnMuIFRodXMsDQo+ID4gPj4gaGVyZSB3ZSBwcm9w b3NlIHRvIGhhdmUgYSBjb21tb24gTU0gQ29yZSBtb2R1bGUgaW4gRURLMiwgd2hpY2ggY291bGQ6 DQo+ID4gPj4+ICAgICAtIFN1cHBvcnQgYm90aCBNTSBUcmFkaXRpb25hbCBkcml2ZXJzIGFuZCBN TSBTdGFuZGFsb25lIGRyaXZlcnMuDQo+ID4gPj4+ICAgICAtIFVzZSBzaGFyZWQgRGVwZXggZXZh bHVhdGlvbiB3aGVuIGRpc3BhdGNoaW5nIGFsbCB0aGUgTU0gZHJpdmVycy4NCj4gPiA+Pj4gICAg IC0gVXNlIGEgc2hhcmVkIE1NIFN5c3RlbSBUYWJsZSB3aGVuIGludm9raW5nIGFsbCB0aGUgTU0g ZHJpdmVycycNCj4gZW50cnkNCj4gPiA+PiBwb2ludCwgd2hpY2ggbWVhbiBoYW5kbGUvcHJvdG9j b2wgZGF0YWJhc2UgaXMgc2hhcmVkLg0KPiA+ID4+PiAgICAgLSBIYXZlIHNlbGYtY29udGFpbmVk IEZWIHBhcnNpbmcgYW5kIGRyaXZlciBkaXNjb3ZlcnkgY2FwYWJpbGl0eS4NCj4gPiA+Pj4NCj4g PiA+Pj4gV2UgcmVhbGl6ZWQgdGhlcmUgY291bGQgYmUgMiBwb3NzaWJsZSBvcHRpb25zIHRvIG1h a2UgdGhpcyBoYXBwZW46DQo+ID4gPj4+ICAgICAtIE9wdGlvbiAxOiBVcGRhdGUgdGhlIE1kZU1v ZHVsZVBrZyBDb3JlLiBJbiB0aGlzIGFwcHJvYWNoLCB3ZSB3aWxsDQo+ID4gbmVlZA0KPiA+ID4+ IHRvIGFkZCB0aGUgRlYgZGVjb21wcmVzcywgZHJpdmVyIGRpc2NvdmVyeSBhbmQgTU0gU3RhbmRh bG9uZSBkcml2ZXINCj4gPiA+PiBkaXNwYXRjaGVyIHRvIHRoZSBQaVNtbUNvcmUgbW9kdWxlIGlu IE1kZU1vZHVsZVBrZy4NCj4gPiA+Pj4gICAgIC0gT3B0aW9uIDI6IFVwZGF0ZSB0aGUgU3RhbmRh bG9uZU1tUGtnIENvcmUuIFdoaWNoIG1lYW5zIGFkZGluZw0KPiBNTQ0KPiA+ID4+IFRyYWRpdGlv bmFsIGRpc3BhdGNoZXIgYW5kIG11bHRpcGxlIEZWIHN1cHBvcnQgdG8gZXhpc3Rpbmcgc3RhbmRh bG9uZSBDb3JlDQo+IGluDQo+ID4gPj4gU3RhbmRhbG9uZU1tUGtnLiBXaWxsIGFsc28gbmVlZCB0 byBhZGQgUEVJL0RYRSBJUEwgbW9kdWxlIHRvIGludm9rZSB0aGUNCj4gPiA+PiBTdGFuZGFsb25l IE1NIENvcmUgYW5kIHBhc3MgVUVGSSBTeXN0ZW0gVGFibGUgdG8gaXQuDQo+ID4gPj4+DQo+ID4g Pj4+IFRoZSBvcHRpb24gMSB3aWxsIGhhdmUgbGVzcyBpbXBhY3QgdG8gdGhvc2UgcGxhdGZvcm1z IHdoaWNoIG9ubHkgdXNlIE1NDQo+ID4gPj4gU3RhbmRhbG9uZSBkcml2ZXJzIGN1cnJlbnRseSwg YmVjYXVzZSB0aG9zZSBwbGF0Zm9ybXMgY2FuIHN0YXkgd2l0aCB0aGUNCj4gPiA+PiB1bmNoYW5n ZWQgU3RhbmRhbG9uZSBNTSBDb3JlLiBXaGlsZSBvcHRpb24gMiBsb29rcyBtb3JlIGxpa2UgYSBj bGVhbg0KPiA+ID4+IHNvbHV0aW9uIGJlY2F1c2UgaXQgY291bGQgc3VwcG9ydCBhbGwgdGhlIGNh c2VzIChUcmFkaXRpb25hbCBNTSBvbmx5LA0KPiA+IFN0YW5kYWxvbmUNCj4gPiA+PiBNTSBvbmx5 LCBhbmQgbWl4LXVzZWQgcGxhdGZvcm0pLiBTbyBJJ2QgbGlrZSB0byBoZWFyIHRoZSBjb21tdW5p dHkncw0KPiA+IGZlZWRiYWNrDQo+ID4gPj4gYWJvdXQgd2hpY2ggb3B0aW9uIGlzIHByZWZlcnJl ZCwgYW5kIGxldCBtZSBrbm93IGlmIHlvdSBoYXZlIGFueSBjb25jZXJucw0KPiA+IHdpdGgNCj4g PiA+PiB0aGlzIGNoYW5nZS4gVGhhbmtzIQ0KPiA+ID4+DQo+ID4gPj4gV2hpY2ggbWV0aG9kIGlz IHRoZSBsZWFzdCByaXNreSB3aXRoIHJlZ2FyZCB0byByZWdyZXNzaW9ucywgaW4geW91ciBvcGlu aW9uPw0KPiA+ID4+DQo+ID4gPj4gSSB0ZW5kIHRvIHByZWZlciAjMi4gRWl0aGVyIG9wdGlvbiBp cyBuZXV0cmFsIGZvciBBcm1WaXJ0UGtnIGF0IHRoZQ0KPiA+ID4+IG1vbWVudCwgYW5kIG9wdGlv biMyIGlzIHNhZmVyIGZvciBPdm1mUGtnIChubyByaXNrIG9mIHJlZ3Jlc3Npb24pLiBUaHVzDQo+ ID4gPj4gZmFyLCB0aGVyZSBoYXMgbm90IGJlZW4gYW55IG5lZWQgKHRoYXQgSSBrbm93IG9mKSBm b3IgT1ZNRiB0byBzdXBwb3J0DQo+ID4gPj4gc3RhbmRhbG9uZSBNTSBkcml2ZXJzLg0KPiA+ID4+ DQo+ID4gPj4gRnVydGhlcm1vcmUsIGlmIHdlIHdhbnRlZCB0byBhZGQgTWFuYWdlbWVudCBNb2Rl IHN1cHBvcnQgdG8NCj4gQXJtVmlydFBrZw0KPiA+ID4+IGF0IHNvbWUgKGxhdGVyKSBwb2ludCwg SSBiZWxpZXZlICg/KSB3ZSdkIGp1c3QgdXNlIFN0YW5kYWxvbmVNbVBrZyByaWdodA0KPiA+ID4+ IGZyb20gdGhlIHN0YXJ0Lg0KPiA+ID4+DQo+ID4gPj4gSS5lLiwgZnJvbSBteSBwZXJzcGVjdGl2 ZSwgbWl4aW5nIE1NIG1vZHVsZSB0eXBlcywgZm9yIHNvbWUga2luZCBvZg0KPiA+ID4+IHRyYW5z aXRpb24gZm9yIGEgcGxhdGZvcm0gZnJvbSBvbmUgTU0gbW9kZSB0byBhbm90aGVyLCBpcyBub3QN Cj4gPiA+PiBpbW1lZGlhdGVseSB1c2VmdWw7IHNvIG15IGdvYWwgaXMgdG8gbWluaW1pemUgdGhl IHJpc2sgb2YgcmVncmVzc2lvbnMuDQo+ID4gPj4NCj4gPiA+PiBUaGFua3MNCj4gPiA+PiBMYXN6 bG8NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPg0KPiA+DQo+ ID4NCj4gPg0KPiA+DQo+ID4NCj4gDQo+IElNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBv ZiB0aGlzIGVtYWlsIGFuZCBhbnkgYXR0YWNobWVudHMgYXJlDQo+IGNvbmZpZGVudGlhbCBhbmQg bWF5IGFsc28gYmUgcHJpdmlsZWdlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lw aWVudCwNCj4gcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3Qg ZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFueQ0KPiBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3Ig YW55IHB1cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkgdGhlIGluZm9ybWF0aW9uIGluIGFueQ0KPiBt ZWRpdW0uIFRoYW5rIHlvdS4NCj4gDQo+IA0KPiANCj4gDQoNCg==