From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web09.4745.1654163547924908697 for ; Thu, 02 Jun 2022 02:52:29 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=WQhIjeUe; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: jiewen.yao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654163548; x=1685699548; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=q3jRQRxnvvy3MEwtIs2k5bmztarOSuQ75HAEg1AIDr0=; b=WQhIjeUePuCS3hW344kO5EGBa4wQX2YuAf7CR4lnRUTalwvHNPFXRPzO 7qbQkjA3Oz/4oUiSXg7EEZMSzqHq0DfMnksU9I7NerLa5JvxJVBkjs161 jtPV0tWbWnu0NGURAUskhv8GAoaQK24ThZVM6CBBNmCeFIcifqHIfsVlO Uh4z4UhmmimIboskelwYfr34HhrQIJD/33fQV0vDt5KhEXN4H3ut6k0UO q7h2t4ttPlGGRtfQfKA+WKuI79rXjHlNcoWXij18JrszNOYIiGtXMo9o/ IDHw+UaE926HKWdWaurT6cC+o6rByVTbdkMHYKy6RFgaktReGYosW8yN0 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10365"; a="301262230" X-IronPort-AV: E=Sophos;i="5.91,270,1647327600"; d="scan'208";a="301262230" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jun 2022 02:52:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,270,1647327600"; d="scan'208";a="530501355" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga003.jf.intel.com with ESMTP; 02 Jun 2022 02:52:25 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 2 Jun 2022 02:52:25 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 2 Jun 2022 02:52:24 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Thu, 2 Jun 2022 02:52:24 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 2 Jun 2022 02:52:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XRUUFuxrtFuBT/D8mFI9Wppu3t9My8ip7psqjflRpUnuju8bSiQIPMtKBrD2GHhy8HZUU1CTS9aUVLa5bs/fYC1TelDkKNmvDmJwEQ/bkCel3epvKzm1W4J3bEellBX080WP4oNBRutiqF9Xmbm9WLiiZ5C8AzOuuzpvcHf7y7plFpzmOLRnIeogDHMd3BkBkt9pkM1XHGgHCF+MahVpie+Tnpx+ZI4PSX+h0F0J+FpG7bj3LJNkGgvDrYuRoMFqMfKQsu9azF5ijayxtqtY1+LsD+iHCjDx46N8Izty6fOQ1razG2nBhQgPUEKtbYQVq7zux6IQGZoFUQVaePy3pQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=q3jRQRxnvvy3MEwtIs2k5bmztarOSuQ75HAEg1AIDr0=; b=T9AU62A1imJuBVKrvO4N3hfVhrgFf7Apx8HG+palkcS0XdS4ZyPIej23X3FqyIZ/PyuFg3Nm0/AO2c/1pGKPLUUevkhAMMnto99rEqS6uzt/CszyVoIJHjkE5tbCs3RHfxLUmgYLV6+Z6anpLzcUn9HCIbgMRRLgCK7ELWhQn0amOs3XJUTMFEESauHXrT0HULIYQxDjQ7uO19Ycaq1rKcVKMwBjVTBpPgjE9KjINcbZFTHQIy8fqdcGX0/gf9GY8eBjH2dTblfy1ZV/BQ1HgVGLh2/++Htl4IOrcyIlrJ//4v1NPF/Y0AOZchmDQxQH1nOjWeSd66uRCZvMlB/bTg== 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 Received: from MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by BYAPR11MB3269.namprd11.prod.outlook.com (2603:10b6:a03:75::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Thu, 2 Jun 2022 09:52:23 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::382e:55b8:41a6:6eff]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::382e:55b8:41a6:6eff%6]) with mapi id 15.20.5314.012; Thu, 2 Jun 2022 09:52:23 +0000 From: "Yao, Jiewen" To: "Boeuf, Sebastien" , "devel@edk2.groups.io" CC: "kraxel@redhat.com" , "Justen, Jordan L" Subject: Re: [PATCH 0/4] OvmfPkg: CloudHv: Reduce PIO and MMIO accesses Thread-Topic: [PATCH 0/4] OvmfPkg: CloudHv: Reduce PIO and MMIO accesses Thread-Index: AQHYZGyo74G7cQ3vBUmIaLP2JIDT96078+TwgAAC4QCAAAbEgIAABntQ Date: Thu, 2 Jun 2022 09:52:22 +0000 Message-ID: References: <97b0716f823a10b1aff2bb41f5adba02e7be2a3d.camel@intel.com> <4815b9c5d74b45c64d098ec71d135cf695e84d0f.camel@intel.com> In-Reply-To: <4815b9c5d74b45c64d098ec71d135cf695e84d0f.camel@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.500.17 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 068ac7d0-9eec-46e4-dd02-08da447d9783 x-ms-traffictypediagnostic: BYAPR11MB3269:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YFPf8Imn4EAc2xtG1cFZTkcN6k37fkjIPgd9zMJnKa8TclK3TQDgeJa+2TKyapv0g4cgjTcIGCpCWwAKfFf0lUUFOsw+HWxSC+2JhHXTtXoZ+Q6g0bAWs6IbJE5MA54o87eflFBcKn8gYE514ghQojjU2gN5XzF0J5pyPKaVOhnRTVlHoBpVbzHtX5r1nbgn+dKiDZSB/vEoMXotNzQLNvn1CIcIZ6mNwtoYDjD4PH1hjspVM/WGHhRSXpUHyHi7j/awfH72GxSWHk4sAAivOD1QZFtQzdKUY1Y9Lyg5kp6qZZdAwY5HZt2mpm/G43K3te2PrLCKgZOYfhojA1ltKtC01i4VtHsqEvQIR/61pU+YO9+wyGswtrZYURKeMOBwIp9+9AzPLyS3Zwi8f59C5zhuBPLKmm/LRTNAkCrQgdCRjcDBTGAtUhIqF8crj1ss6iSoG5bab0G3y5eKFvDBLKnW11n54YW2CWz/BLkz6llF6ouVh+Dc+vt4A705iOk3lZhpUgFWC3EwFIdR3h6TaMCLBYLRkgxVcv8flYaB+ItZbi76cAuhl6YC8+YaXaW+3+k/5NncdWUVvsn4+l3QerLRNi+816f4lCjHsdev+rroJdNwG/3y6e47Ov63Bpgm8Wgr2NEKpOiPKQmrKk5/pZ24j0aU/kDzbB7rYiqGeccrQDxRCZRphZncv8MobV9OK515/t6Hb8RIpMPHgafmPOMk3IblV85xjKQ35iZ/mUGVN/l+sE51tqBHcJALb3auutItqhA6yhVOwDrAWaZp0hGdUR5IxoWjHf45swtrrnc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(53546011)(2906002)(122000001)(38070700005)(86362001)(7696005)(33656002)(83380400001)(64756008)(508600001)(54906003)(19627235002)(76116006)(110136005)(82960400001)(66556008)(66446008)(66476007)(8676002)(316002)(71200400001)(4326008)(66946007)(966005)(55016003)(6506007)(5660300002)(107886003)(38100700002)(8936002)(9686003)(26005)(52536014)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RG11azVjSHI1SVl6dmE4ZktWQ1Zld0dscEpKbGE4SDZYQWVSZkxWWXdqUDUy?= =?utf-8?B?RDFFYVhXTUlBbEZHWW0zNTZwMHlWM1I5OHovaFY5MjQ5MTdlNFU3a0krUWEx?= =?utf-8?B?Y2Y4UmdCOUdNWEdMazZTbm9VLzZKZFFTcGFEWit6cWdUZ3hGTzNjL0NobWh1?= =?utf-8?B?eExGRlVsSmJKeGozNDZ5cVhtcmFOZU5BZEZpTVpWS2kvN1dpVGRZZXl5R2s4?= =?utf-8?B?eDA1Q2w1ejNHUy9MWW81azllc2NoVUdoOE5NL3VpQ1habXR3emNUZUNTZTRk?= =?utf-8?B?UVo0VFZNZFQ4amlKcHpFZjFCMGZSQWlIM0tyQmJEZkhkak1vZ3NGUmxyc1hK?= =?utf-8?B?ZTRPblJxSVZxckw1R3pIVjZZWFMwMlFMRk1mNGRvaDJJQzFqR0VSZlpNcEds?= =?utf-8?B?UHJxcDVPK2g5Wmg2UmVMeW11dXY4Z0JUNTdCWmVJalp3MU41clF5aEZJclJx?= =?utf-8?B?bm83eVZIWGxBRTh2NEpnM3hoUmZUekwzeHFOWG9Kc2ZXOGY1M0x1V084M2dE?= =?utf-8?B?YmozUlJXSXp0UWg3VlpqMGc0UHZKTHYrNTQ3QythOEp1cnNOSnl2K2NtQ214?= =?utf-8?B?L29jYklLalZubGR3VVBmOGJkSTYwNFQ4Szd6dEhsc1RNOG1CY0hMRFVmZ3kz?= =?utf-8?B?c3JidnpqcUw1R2JBZFY1M2s5dWFlUHJ0SmN3SkVDVk52b3dMeWlUVzBna3BR?= =?utf-8?B?UERvVDdRaTA1MlA2eU1VbkorYWQveUZLSUkzWE5TZ1FsQngwcWlKMDBkV1dx?= =?utf-8?B?TXhmRS83SmFJWWdiYXdQMnNJbzBGSE93YlE5ZVZnQmtCV1oxZ0x3ZjM0TG1X?= =?utf-8?B?ZjZ5M1BaWERvRklRd3FjczUwWGUxZ0lzeDhaTUpwZnFHZy93akxWWE80dU1N?= =?utf-8?B?bUVWWVc5VEFydUtkTUtCa3ZoRDRsQkZQWW5ERy9tWkRyQ1hYbUJpVkJLM3lj?= =?utf-8?B?YmR2VDl0MW9QRUszbXlaOGdNSGZBQTdLQXhkZzgxWUI4WmUxMGtqQ2Fya1FX?= =?utf-8?B?cGN0SmR3MDM4QW1pZ0pZTFVkYU5oNDhzRVVuT1EyUDl0dXEwQ0N5bkN4YWc0?= =?utf-8?B?clArRlVZK2k0VXo5eDR1V1RXZHlZNzVuOEp3ZHhNZGRrM29EYkdZTy9vKzd4?= =?utf-8?B?YUNuV3p3Z2RsRHJZKzJGeVJwRGMvbFdCK28ydnUyRVlNNEZGNlMzUmlhUjBK?= =?utf-8?B?WHBMK3J3OFU1eU5HSkZUd1BtbDdEdHdOUWw5V3hBZit3T1JtQ3FFNFA4UkZn?= =?utf-8?B?OTdUNkQxK1ArSENHdjRraVZHL2JJQ2lQTkVlUlE4OFlFei9ocVVyT1ZKZDg1?= =?utf-8?B?SnZ3RFpiOEdHamhPVDE1eGt6OGFLSlBQMjlKOW5ZL3ArL2txOFVXYnZvNGZy?= =?utf-8?B?L0thZ3oxek9FaDNSMGhuYlpaTUIxQnVkVkh1b0cvRkc3aWNURW1zMnpRL3Z3?= =?utf-8?B?MmZzdXE0MmV2K21lQlZXQ0RmdXkvczVhRHlXYkpxUmlPKzFXQnUyT0JvRjlu?= =?utf-8?B?eTNsTkx1Q0h4Qm1hZy85VkVwWlV3bUNBaFRPT2gycW80aEEyYTdOVXVBZkkr?= =?utf-8?B?TjM1TEhBNjZtSWI1Zk92bzFOV1BYenFKNm50R2xTdUhCMm1VZXRYUlA2SmQr?= =?utf-8?B?V3h4ZmJQdGFWeEpEQSsraDArWnpXSUVpNkZ2bXFIQjNjOEtXM2VTYlRtSFkr?= =?utf-8?B?ZjVDbnJJN3BjRENDeWxLTlYwa1VCaFdFM2MxSlBheGdXQ1ZVb0JjMjlnc0NC?= =?utf-8?B?bHVsa2xjZldhbjI3QlRWcDhxNUxCVzd5WDcrWkM0MXJXQ2NtVTlLM3hsWk1N?= =?utf-8?B?blRqdHB3T0VzSWdZd0FCUFh0OFNHOFYxRUdVWE1wK21aWDQ4QUMyUWRVV3kw?= =?utf-8?B?K3FFNERYWnlNRCs3MTJRa1hnZzROcnl6TGJxT3I3eTVXOWxMQlFuSXlIdGo1?= =?utf-8?B?TzhXOXppdjZOYU9LS21aN252NEdvQi81UHVuYjBpOURTekthZ0hycEo0Misv?= =?utf-8?B?Z2t4ZEk3b3dUV3lPeGtNSUE5clJUSnljZStWWEtoaGtoOGRMalA1dHBBYlZF?= =?utf-8?B?M2VOZk5oY0NITUcxZGkwMmFxY0tTM2NvQythRnlXZG8xUFdLN3l0a1ZTSnBZ?= =?utf-8?B?c1h4VW9PME54TnBORXcwMlpZT1BkZ2VOUVJNZGRxS2s2OTVuM0kwZTJxMWI1?= =?utf-8?B?ZVp0T2FQWHN1Y3BhUlJBeXJYL0ZzTlMyU1Y1dXRVdVFoaGNGOEQxZVY0U2p0?= =?utf-8?B?Uk8xME9FUmQ5Y1VjY014OWtla3hwckxuTGJqcUxWZlNoR0VaR2NtVGJRZVll?= =?utf-8?B?dVdDWUF4RGRab28wTnBlUVNvSE96c2ZkTDRIT0pFK2Y5a1pqYkpWQT09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 068ac7d0-9eec-46e4-dd02-08da447d9783 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jun 2022 09:52:22.9636 (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: Bk9mRT6iYn/+JUQ68ck1BymEM3DyEU90lDU4N2giOK8w1NJ0KKp61U5G5MtAG2xXzHixqrBw3aCwGu4JBVcP2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3269 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U291bmRzIGdvb2QsIHRoYW5rcyENCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBCb2V1ZiwgU2ViYXN0aWVuIDxzZWJhc3RpZW4uYm9ldWZAaW50ZWwuY29tPg0KPiBTZW50 OiBUaHVyc2RheSwgSnVuZSAyLCAyMDIyIDU6MjkgUE0NCj4gVG86IFlhbywgSmlld2VuIDxqaWV3 ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBrcmF4ZWxAcmVk aGF0LmNvbTsgSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4NCj4g U3ViamVjdDogUmU6IFtQQVRDSCAwLzRdIE92bWZQa2c6IENsb3VkSHY6IFJlZHVjZSBQSU8gYW5k IE1NSU8gYWNjZXNzZXMNCj4gDQo+IE9uIFRodSwgMjAyMi0wNi0wMiBhdCAxMTowNCArMDIwMCwg U2ViYXN0aWVuIEJvZXVmIHdyb3RlOg0KPiA+IE9uIFRodSwgMjAyMi0wNi0wMiBhdCAwODo1NyAr MDAwMCwgWWFvLCBKaWV3ZW4gd3JvdGU6DQo+ID4gPiBBY2tlZC1ieTogSmlld2VuIFlhbyA8Smll d2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPg0KPiA+ID4gSSBub3RpY2UgdGhlIFBSIGZhaWxlZCAt DQo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC8yODc1DQo+ID4g Pg0KPiA+ID4gSSBqdXN0IHdhbnQgdG8gZG91YmxlIGNvbmZpcm0sIGRvIHlvdSBoYXZlIGEgc3Vj Y2VzcyBQUiBmb3IgdGhpcw0KPiA+ID4gcGF0Y2ggc2V0Pw0KPiA+DQo+ID4gTGV0IG1lIHJlcHVz aCB0aGUgUFIgb25jZSByZWJhc2VkIG9uIGxhdGVzdCBtYXN0ZXIuIEkgdGhpbmsgdGhlDQo+ID4g ZmFpbHVyZXMgd2VyZSBvbmx5IHJlbGF0ZWQgdG8gdGhlIFdpbmRvd3MgQ0kgaXNzdWVzLg0KPiAN Cj4gT2sgdGhlIENJIGlzIHBhc3NpbmcgZmluZSBhZnRlciBJIHJlYmFzZWQgb24gbGF0ZXN0IG1h c3Rlci4gU2VlDQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzI4NzUN Cj4gDQo+IFRoYW5rcywNCj4gU2ViYXN0aWVuDQo+IA0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IFNl YmFzdGllbg0KPiA+DQo+ID4gPg0KPiA+ID4gVGhhbmsgeW91DQo+ID4gPiBZYW8gSmlld2VuDQo+ ID4gPg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBC b2V1ZiwgU2ViYXN0aWVuIDxzZWJhc3RpZW4uYm9ldWZAaW50ZWwuY29tPg0KPiA+ID4gPiBTZW50 OiBUdWVzZGF5LCBNYXkgMTAsIDIwMjIgODo1MSBQTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gPiA+ID4gQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47 IEp1c3RlbiwgSm9yZGFuIEwNCj4gPiA+ID4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBr cmF4ZWxAcmVkaGF0LmNvbTsgQm9ldWYsIFNlYmFzdGllbg0KPiA+ID4gPiA8c2ViYXN0aWVuLmJv ZXVmQGludGVsLmNvbT4NCj4gPiA+ID4gU3ViamVjdDogW1BBVENIIDAvNF0gT3ZtZlBrZzogQ2xv dWRIdjogUmVkdWNlIFBJTyBhbmQgTU1JTw0KPiA+ID4gPiBhY2Nlc3Nlcw0KPiA+ID4gPg0KPiA+ ID4gPiBGcm9tOiBTZWJhc3RpZW4gQm9ldWYgPHNlYmFzdGllbi5ib2V1ZkBpbnRlbC5jb20+DQo+ ID4gPiA+DQo+ID4gPiA+IFRoZSBnb2FsIG9mIHRoaXMgc2VyaWVzIGlzIHRvIHJlZHVjZSB0aGUg YW1vdW50IG9mIGluYXBwcm9wcmlhdGUNCj4gPiA+ID4gUElPDQo+ID4gPiA+IGFuZCBNTUlPIGFj Y2Vzc2VzIGdlbmVyYXRlZCBieSB0aGUgZmlybXdhcmUgd2hlbiBydW5uaW5nIG9uIENsb3VkDQo+ ID4gPiA+IEh5cGVydmlzb3IuDQo+ID4gPiA+DQo+ID4gPiA+IEZvciBNTUlPIGFjY2Vzc2VzLCBp dCBpcyBhYm91dCBwcm92aWRpbmcgdGhlIHJpZ2h0IGJhc2UgYWRkcmVzcw0KPiA+ID4gPiB3aGVy ZQ0KPiA+ID4gPiB0aGUgZmlybXdhcmUgd2lsbCBiZSBsb2FkZWQgYnkgdGhlIFZNTSBpbiBvcmRl ciB0byBhdm9pZA0KPiA+ID4gPiB1bmV4cGVjdGVkDQo+ID4gPiA+IGFjY2Vzc2VzIHRvIHNvbWUg YWRkcmVzcyByYW5nZXMuDQo+ID4gPiA+DQo+ID4gPiA+IEZvciBQSU8gYWNjZXNzZXMsIGl0IGlz IGFib3V0IHByZXZlbnRpbmcgc29tZSByZWFkL3dyaXRlIHRvIGJlDQo+ID4gPiA+IHBlcmZvcm1l ZA0KPiA+ID4gPiBpbiB0aGUgZmlyc3QgcGxhY2UsIGFzIHdlIGtub3cgdGhlIHVuZGVybHlpbmcg ZGV2aWNlIGlzIG5vdA0KPiA+ID4gPiBlbXVsYXRlZCBieQ0KPiA+ID4gPiBDbG91ZCBIeXBlcnZp c29yLg0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTZWJhc3RpZW4gQm9ldWYgPHNl YmFzdGllbi5ib2V1ZkBpbnRlbC5jb20+DQo+ID4gPiA+DQo+ID4gPiA+IFNlYmFzdGllbiBCb2V1 ZiAoNCk6DQo+ID4gPiA+IMKgIE92bWZQa2c6IENsb3VkSHY6IEZpeCBGV19CQVNFX0FERFJFU1MN Cj4gPiA+ID4gwqAgT3ZtZlBrZzogQ2hlY2sgZm9yIFFlbXVGd0NmZyBhdmFpbGFiaWxpdHkgYmVm b3JlIGFjY2Vzc2luZyBpdA0KPiA+ID4gPiDCoCBPdm1mUGtnOiBDbG91ZEh2OiBSZWx5IG9uIFFl bXVGd0NmZ0xpYk51bGwgaW1wbGVtZW50YXRpb24NCj4gPiA+ID4gwqAgT3ZtZlBrZzogRG9uJ3Qg YWNjZXNzIEEyMCBnYXRlIHJlZ2lzdGVyIG9uIENsb3VkIEh5cGVydmlzb3INCj4gPiA+ID4NCj4g PiA+ID4gwqBPdm1mUGtnL0Nsb3VkSHYvQ2xvdWRIdkRlZmluZXMuZmRmLmluY8KgwqDCoMKgwqDC oMKgIHwgNjUNCj4gPiA+ID4gKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiDCoE92bWZQa2cv Q2xvdWRIdi9DbG91ZEh2WDY0LmRzY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg NCArLQ0KPiA+ID4gPiDCoE92bWZQa2cvQ2xvdWRIdi9DbG91ZEh2WDY0LmZkZsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQ0KPiA+ID4gPiDCoE92bWZQa2cvTGlicmFyeS9Q bGF0Zm9ybUluaXRMaWIvUGxhdGZvcm0uY8KgwqDCoCB8IDEzICsrLS0NCj4gPiA+ID4gwqAuLi4v UWVtdUJvb3RPcmRlckxpYi9RZW11Qm9vdE9yZGVyTGliLmPCoMKgwqDCoMKgwqAgfMKgIDggKyst DQo+ID4gPiA+IMKgNSBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlv bnMoLSkNCj4gPiA+ID4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgT3ZtZlBrZy9DbG91ZEh2L0Nsb3Vk SHZEZWZpbmVzLmZkZi5pbmMNCj4gPiA+ID4NCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4zMi4wDQo+ ID4gPg0KPiA+DQoNCg==