From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.210.1626973738247336678 for ; Thu, 22 Jul 2021 10:08:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=YlJCmCmT; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10053"; a="191284810" X-IronPort-AV: E=Sophos;i="5.84,261,1620716400"; d="scan'208";a="191284810" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jul 2021 10:08:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,261,1620716400"; d="scan'208";a="433199987" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP; 22 Jul 2021 10:08:35 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) 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.2242.10; Thu, 22 Jul 2021 10:08:35 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Thu, 22 Jul 2021 10:08:35 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) 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.2242.10; Thu, 22 Jul 2021 10:08:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R8hNhCGsojOdsEs3W4rl6r1m9vUEr4+dP/+a8NNw+Se0tD2vOZmlKVmB/AVUI6mBbSyYRQLcPycVBZZj3hMPYkyhm1ZmL7gdIjeVDmwhklpUejcaqznsfADyLUZ2GRZMKvCW0tc1uuuLiyBSIF4bgHVlJbe7ZypdzNbZvMHQLv4n3VqkjHl9JcFE/GGUW1itrdx6fALuF6EWIlhychv2vlR9ifO6C3Y/oAFnAxRkkTdwNknwTfJmHzQyKWoi1xsgyPckAZzlAsiZY+vJcmdFO7VinchufHqMJAcf0PAKCxva1wEdNXssqGlk+mtNk3dIpuV5eGygKsBwMn/uufRdHQ== 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=TS+x/6PjDG3lszZWOVD0MUPG9CMCuTP/Qpv496pHSio=; b=cgzotOPnRoFJYUShg1m3YUQD5g17MTUJJ61jFshsnu1WG0bIUPTo+dYLRsbSB7Xq006/sb+H4L7A0LC5XVKfnj/WdMBQaNxRJ16P6zShn/dFiJcULFe/nTyIVwhSfb8EqWK/FXR62fQ8/K25b55w/WA9EKc49+v4paNCInya9Dm49a4MraC+1V38juyy9QbGMbFt9dTzpq98e4Y3QhgkyeT+hcbGf6cd7UxEJ7BwYR6F0AhW6sxCjdVgS+WGUqYWgfvgqPUth1pCOurP/04B03BVUZi4D9T11uyUAg89z4x+5ODAxUFXZ/lMNwWPp1ggycsEeu/lirsdSWO1ubPYMw== 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=TS+x/6PjDG3lszZWOVD0MUPG9CMCuTP/Qpv496pHSio=; b=YlJCmCmTEjg6ip6HGuf4j68Lfbs7zVYq8bjDGE40bu6DTXrr8jdVUi7IOR/cSm0f+RIL7CASzR2hXNWnZ8wxXLQ9y8MjJ2ZswSvRCH9TGqifopHCNNMbWWrU644CPiFrwAyHC+txSicKAJn2AzO3feJ+POI0FGGU7aTFFOEvc9c= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CO1PR11MB4788.namprd11.prod.outlook.com (2603:10b6:303:97::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.25; Thu, 22 Jul 2021 17:08:34 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::8182:74e4:ced9:c5b7]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::8182:74e4:ced9:c5b7%4]) with mapi id 15.20.4352.026; Thu, 22 Jul 2021 17:08:34 +0000 From: "Michael D Kinney" To: "rfc@edk2.groups.io" , "gaoliming@byosoft.com.cn" , "pedro.falcato@gmail.com" , "devel@edk2.groups.io" , "Chang, Abner" , "Kinney, Michael D" Subject: Re: [edk2-rfc] RFC: EXT4 filesystem driver Thread-Topic: [edk2-rfc] RFC: EXT4 filesystem driver Thread-Index: AQHXfpfYSL/wD1Rm1ES/mtknNQtIBatPNd+Q Date: Thu, 22 Jul 2021 17:08:34 +0000 Message-ID: References: <000001d77e97$d1089100$7319b300$@byosoft.com.cn> In-Reply-To: <000001d77e97$d1089100$7319b300$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.100.41 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-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c19e2ba4-bc3e-46dc-7da7-08d94d3356b3 x-ms-traffictypediagnostic: CO1PR11MB4788: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VoTizj2vxB8/Mv+O2yWtJdu22vb7yFKqUSNEJBatNcjf5wrcTI5KYwGSUNui2hfUmX+oCX3f9FEFVIXjZ1LnlT1wpfOKTpt6DvPQPGVF+Dt/oNLeIq1Eq04CCVdvhalkQf4woOdq3rmw+c3n8J2FoHzNB9L+xsayvUhNFeCUIeepcd4ReaaTIgyMhY7md0Ghq+hh50DI4Bho+p8VrfrMgGlUPnP6/fZrdUc1G6iMiqPCqkVJ4wh2RUULsu7nnEmNqxQzLMlo+n0+K7rI44JnWe6pFp+bvkNOFVvwx+OnDmzHkNolqIJzVlDvMrtc7fjtEZ6EJtGnyPuSYruWd8K7V4oWPbeEO9DRhEr6FFXjvrpGy07o1IqTVyfJZLjB/QjQdIGPFvfA5bAB+itdx6LKO6hKfXzCBwuzX1I4+ABuDH5Yxcuig6YnQfCNaVkQE3yDGFejGd/RM30nklNMxHuk66/rU7PcSEYXkwHMDlZcJzI4PmaXrpfPWT5AwJBKISwRS56UcbBZ+sj5VC5Uuga5PWcP0F/EEI5x+jcPXJdEVCDAFLstyEw+YgEt6ic5HQrQJUTddI7h1eusAeJorKG5JO4DPDOuc8HfQtjd/qOG4ajYhW85NRtMuA1iIwCxABKiasqAbrdzu7BWpY5iGbZB8X03f3yCiJG8oxyd+QfxqT/qsGOXYOA6qMwECuMtTXBmsoI3yOYNbq81foUJ7AA/jjVKzDH/ihYo8jj61v6Y2T8oUB3xVCHpRF2PE/pec6fx/mmU3RUbFN1N5T/8UjKV0oPvHAjpt1TrMHojLeUG1zo6FT41OYaGOQN369yKB3Jf6BuY3Afrz+0LAUa+Snmj7Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(39860400002)(366004)(136003)(376002)(396003)(6506007)(478600001)(53546011)(66946007)(66556008)(66446008)(64756008)(5660300002)(52536014)(83380400001)(7696005)(8676002)(86362001)(66476007)(8936002)(76116006)(26005)(122000001)(71200400001)(33656002)(966005)(316002)(55016002)(2906002)(38100700002)(186003)(19627235002)(110136005)(9686003)(38070700004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VWx6TkZNMTZ3T3RDQUZxSE8xaSt5djhFSlVsdndvQnJYd3lqTEJRdUVoQW1q?= =?utf-8?B?MUxjYXNXaVV3TG11YWJWby9hSE0xQTAvSHpUd1RLaG9tSUxsU3B6S21taUcv?= =?utf-8?B?K0VrcDhYKzk1Y256ak5LWUpNT1VYR253RjB6R3U5UTZUckkxSlZzdTZQWWs5?= =?utf-8?B?dWtlektzV256WHQwTk8yNGFDMEdGQzFWY1NzMWxMSXBmTDZIOEwxNjhLWVhP?= =?utf-8?B?OXFqTlk4UVc0MUllcEFvdWFWYy9aUWlJV2Zrak1CS2cxYXBLVDNpbmc0dTVv?= =?utf-8?B?QUp0Wk1TcjRpVEdxanpKcmtpODZHdTlyalF6ejZpY21GWHVsNVNaZFFmQ3FE?= =?utf-8?B?OEIxRGFrYmxnbGFMSWhwRnFqMTJJWWxvUVZoemFVdEJlSG1GUWdUNGNkRE04?= =?utf-8?B?Qm9hWjhhczNjWTNVNlEzajUwRVBrc1c3OUYwRmlQajVGbFljZEwvVEg4ZDhk?= =?utf-8?B?ZDdKSms1QzRKV1RGSWZEd1J1ZXk4NGg3N3F5V2pEeUJUUUk0QUNZUlhZN0xT?= =?utf-8?B?eWhWZ3RTNi9Nd1doQ0FQVUpuTkViMXZMblpYYjkzUkJybzNnSTNBYWFIajBq?= =?utf-8?B?V1JHRGdGSmdFcFlvb0ROZ2tmTFdzT01ia2RKMXZLa1pMT0ZsdGpadDNtbHM0?= =?utf-8?B?Um5GZEVjL2ZjK2kzZXZ5bGRlQ1NuTmtMUlp6ek5QdXlWcVJBZ09OR2Y4WUwx?= =?utf-8?B?aS9ncjZZUTRNSlJkQ2ZJZTQ1bEpiZlUwR3RLaDU3aGZXMHIyZzhGYlVUTmZF?= =?utf-8?B?RjZhVlVSclZzSE8xWW9YZkYxdjAwUHJLZnRIdUorbUI1aDlKTE9aS0p5aHNX?= =?utf-8?B?ZktYRzc5NGZiQkVoUXBadHZIZ2l3RjlwcGthelYwdktCbU1wcEtVMjY3RC9C?= =?utf-8?B?SzJrQXJ1MlE2UnNlTUdYTWxPZHNMcnFJVW9BUTNBcXVDYkVCV1VyQnlvS3pF?= =?utf-8?B?YWVhNDl4VGNsUlpYbkZ2VTlNRUd6djZJQ0cyaFovY3ZYNWprQjVGRUVSeW1l?= =?utf-8?B?ZTdXRTFCaVdubGlmdGVnb1NaS1NQczVBd2h1TFFjaS9Bemx3ejJLWlFNRHlU?= =?utf-8?B?aHpoelFIK0lrTmlQZ093WjA1Q0l3YzNuaGVlSk5vbU4yRTZtRkpDc2V4QVo5?= =?utf-8?B?emVVSVlCbTM4QWVPeHRheGpyYkk0cWNhZHFEeHdvWlgyOFVPWGhxSmtCaXVu?= =?utf-8?B?N2cwdjRVb3BCMDhVVEZxZXFyNFEvdmE3K3d1UEhTcmd1TTBERzVBcExqUlhS?= =?utf-8?B?cyt0bmRyV3c1MWVVR0NGRTNUZ041MDZLVmJCOXl5NURjYkR6UzFrbGxpRVB3?= =?utf-8?B?NTBqUm9sZm9oKyt1S08yTVJ5eWlnd3VldW9JcE4wVzN6bVRNWkxMMzhiVDV5?= =?utf-8?B?aDE1bHBOZVgzT2t6eDlrYk9idHhZcnJzdU9WVk9iU0dVNFNkYnN4MU5WZzJv?= =?utf-8?B?bS9oWFdvaW1HVnZZZDcwTVQzQ2EyaDF6SlpvR3BWVXdKcFJESWhqOW0weWU5?= =?utf-8?B?bjhmTjUvVnRSWEFYWWd4NU1aSU5tUTdYMnhPODJOZHlrUjQrVVY5TGRRSHhI?= =?utf-8?B?UlNtdFk1amlLK2xBazBxWFVkSmNOUzg5UEFlQ2tITVBjOEhkZjFaSS9qcWpp?= =?utf-8?B?THZwWWZ0V01HZThLa1QrQmJZMHhvTzh3UnNReVYyMStiNkcwbnl2UTJKeXNt?= =?utf-8?B?R3FLeDZvL0dwaHhEOVl6cnQ0cGlvcnJ0bnpVbFFuMExxS1F3WEY4Wk9xdUhI?= =?utf-8?Q?/hWbGSc1b5kO8lR2FfDhaNNDXVsMEXZjDCOAHAY?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c19e2ba4-bc3e-46dc-7da7-08d94d3356b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2021 17:08:34.1645 (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: hOEeJHSRRhYrRYLActVbm3ibG8sVTiQir8it982+y15KKm3RowW1YXCXLUMoBotb59tXi9fhLvzfPxQpknsbr5uoRDWu6dEjmFOUKAFzrr8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4788 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogcmZjQGVkazIuZ3JvdXBz LmlvIDxyZmNAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBnYW9saW1pbmcNCj4gU2VudDog V2VkbmVzZGF5LCBKdWx5IDIxLCAyMDIxIDY6MjEgUE0NCj4gVG86IHJmY0BlZGsyLmdyb3Vwcy5p bzsgcGVkcm8uZmFsY2F0b0BnbWFpbC5jb207IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IFN1Ympl Y3Q6IOWbnuWkjTogW2VkazItcmZjXSBSRkM6IEVYVDQgZmlsZXN5c3RlbSBkcml2ZXINCj4gDQo+ IA0KPiANCj4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiByZmNAZWRr Mi5ncm91cHMuaW8gPHJmY0BlZGsyLmdyb3Vwcy5pbz4g5Luj6KGoIFBlZHJvIEZhbGNhdG8NCj4g PiDlj5HpgIHml7bpl7Q6IDIwMjHlubQ35pyIMjLml6UgNzoxMg0KPiA+IOaUtuS7tuS6ujogZGV2 ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiDmioTpgIE6IHJmY0BlZGsyLmdyb3Vwcy5pbw0KPiA+IOS4 u+mimDogW2VkazItcmZjXSBSRkM6IEVYVDQgZmlsZXN5c3RlbSBkcml2ZXINCj4gPg0KPiA+IEVY VDQgKGZvdXJ0aCBleHRlbmRlZCBmaWxlc3lzdGVtKSBpcyBhIGZpbGVzeXN0ZW0gZGV2ZWxvcGVk IGZvciBMaW51eA0KPiA+IHRoYXQgaGFzIGJlZW4gaW4gd2lkZSB1c2UgKGRlc2t0b3BzLCBzZXJ2 ZXJzLCBzbWFydHBob25lcykgc2luY2UgMjAwOC4NCj4gPg0KPiA+IFRoZSBFeHQ0UGtnIGltcGxl bWVudHMgdGhlIFNpbXBsZSBGaWxlIFN5c3RlbSBQcm90b2NvbCBmb3IgYSBwYXJ0aXRpb24NCj4g PiB0aGF0IGlzIGZvcm1hdHRlZCB3aXRoIHRoZSBFWFQ0IGZpbGUgc3lzdGVtLiBUaGlzIGFsbG93 cyBVRUZJIERyaXZlcnMsDQo+ID4gVUVGSSBBcHBsaWNhdGlvbnMsIFVFRkkgT1MgTG9hZGVycywg YW5kIHRoZSBVRUZJIFNoZWxsIHRvIGFjY2VzcyBmaWxlcw0KPiA+IG9uIGFuIEVYVDQgcGFydGl0 aW9uIGFuZCBzdXBwb3J0cyBib290aW5nIGEgVUVGSSBPUyBMb2FkZXIgZnJvbSBhbg0KPiA+IEVY VDQgcGFydGl0aW9uLg0KPiA+IFRoaXMgcHJvamVjdCBpcyBvbmUgb2YgdGhlIFRpYW5vQ29yZSBH b29nbGUgU3VtbWVyIG9mIENvZGUgcHJvamVjdHMuDQo+ID4NCj4gPiBSaWdodCBub3csIEV4dDRQ a2cgb25seSBjb250YWlucyBhIHNpbmdsZSBtZW1iZXIsIEV4dDREeGUsIHdoaWNoIGlzIGENCj4g PiBVRUZJIGRyaXZlciB0aGF0IGNvbnN1bWVzIEJsb2NrIEkvTywgRGlzayBJL08gYW5kIChvcHRp b25hbGx5KSBEaXNrDQo+ID4gSS9PIDIgUHJvdG9jb2xzLCBhbmQgcHJvZHVjZXMgdGhlIFNpbXBs ZSBGaWxlIFN5c3RlbSBwcm90b2NvbC4gSXQNCj4gPiBhbGxvd3MgbW91bnRpbmcgZXh0NCBmaWxl c3lzdGVtcyBleGNsdXNpdmVseS4NCj4gPg0KPiA+IEJyaWVmIG92ZXJoZWFkIG9mIEVYVDQ6DQo+ ID4gTGF5b3V0IG9mIGFuIEVYVDIvMy80IGZpbGVzeXN0ZW06DQo+ID4gKG5vdGU6IHRoaXMgZHJp dmVyIGhhcyBiZWVuIGRldmVsb3BlZCB1c2luZw0KPiA+IGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcv ZG9jL2h0bWwvbGF0ZXN0L2ZpbGVzeXN0ZW1zL2V4dDQvaW5kZXguaHRtbCBhcw0KPiA+IGRvY3Vt ZW50YXRpb24pLg0KPiA+DQo+ID4gQW4gZXh0Mi8zLzQgZmlsZXN5c3RlbSAoaGVyZSBvbiBvdXQg cmVmZXJyZWQgdG8gYXMgc2ltcGx5IGFuIGV4dDQgZmlsZXN5c3RlbSwNCj4gPiBkdWUgdG8gdGhl IHNpbWlsYXJpdGllcykgaXMgY29tcG9zZWQgb2YgdmFyaW91cyBjb25jZXB0czoNCj4gPg0KPiA+ IDEpIFN1cGVyYmxvY2sNCj4gPiBUaGUgc3VwZXJibG9jayBpcyB0aGUgc3RydWN0dXJlIG5lYXIg KDEwMjQgYnl0ZXMgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0KQ0KPiA+IHRoZSBzdGFydCBvZiB0aGUg cGFydGl0aW9uLCBhbmQgZGVzY3JpYmVzIHRoZSBmaWxlc3lzdGVtIGluIGdlbmVyYWwuDQo+ID4g SGVyZSwgd2UgZ2V0IHRvIGtub3cgdGhlIHNpemUgb2YgdGhlIGZpbGVzeXN0ZW0ncyBibG9ja3Ms IHdoaWNoIGZlYXR1cmVzDQo+ID4gaXQgc3VwcG9ydHMgb3Igbm90LCB3aGV0aGVyIGl0J3MgYmVl biBjbGVhbmx5IHVubW91bnRlZCwgaG93IG1hbnkgYmxvY2tzDQo+ID4gd2UgaGF2ZSwgZXRjLg0K PiA+DQo+ID4gMikgQmxvY2sgZ3JvdXBzDQo+ID4gRVhUNCBmaWxlc3lzdGVtcyBhcmUgZGl2aWRl ZCBpbnRvIGJsb2NrIGdyb3VwcywgYW5kIGVhY2ggYmxvY2sgZ3JvdXAgY292ZXJzDQo+ID4gc19i bG9ja3NfcGVyX2dyb3VwKDggKiBCbG9jayBTaXplKSBibG9ja3MuIEVhY2ggYmxvY2sgZ3JvdXAg aGFzIGFuDQo+ID4gYXNzb2NpYXRlZCBibG9jayBncm91cCBkZXNjcmlwdG9yOyB0aGVzZSBhcmUg cHJlc2VudCBkaXJlY3RseSBhZnRlciB0aGUNCj4gPiBzdXBlcmJsb2NrLiBFYWNoIGJsb2NrIGdy b3VwIGRlc2NyaXB0b3IgY29udGFpbnMgdGhlIGxvY2F0aW9uIG9mIHRoZQ0KPiA+IGlub2RlIHRh YmxlLCBhbmQgdGhlIGlub2RlIGFuZCBibG9jayBiaXRtYXBzIChub3RlIHRoZXNlIGJpdG1hcHMg YXJlIG9ubHkNCj4gPiBhIGJsb2NrIGxvbmcsIHdoaWNoIGdldHMgdXMgdGhlIDggKiBCbG9jayBT aXplIGZvcm11bGEgY292ZXJlZCBwcmV2aW91c2x5KS4NCj4gPg0KPiA+IDMpIEJsb2Nrcw0KPiA+ IFRoZSBleHQ0IGZpbGVzeXN0ZW0gaXMgZGl2aWRlZCBpbnRvIGJsb2Nrcywgb2Ygc2l6ZSBzX2xv Z19ibG9ja19zaXplIF4gMTAyNC4NCj4gPiBCbG9ja3MgY2FuIGJlIGFsbG9jYXRlZCB1c2luZyBp bmRpdmlkdWFsIGJsb2NrIGdyb3VwcydzIGJpdG1hcHMuIE5vdGUNCj4gPiB0aGF0IGJsb2NrIDAg aXMgaW52YWxpZCBhbmQgaXRzIHByZXNlbmNlIG9uIGV4dGVudHMvYmxvY2sgdGFibGVzIG1lYW5z DQo+ID4gaXQncyBwYXJ0IG9mIGEgZmlsZSBob2xlLCBhbmQgdGhhdCBwYXJ0aWN1bGFyIGxvY2F0 aW9uIG11c3QgYmUgcmVhZCBhcw0KPiA+IGEgYmxvY2sgZnVsbCBvZiB6ZXJvcy4NCj4gPg0KPiA+ IDQpIElub2Rlcw0KPiA+IFRoZSBleHQ0IGZpbGVzeXN0ZW0gZGl2aWRlcyBmaWxlcy9kaXJlY3Rv cmllcyBpbnRvIGlub2RlcyAob3JpZ2luYWxseQ0KPiA+IGluZGV4IG5vZGVzKS4gRWFjaCBmaWxl L3NvY2tldC9zeW1saW5rL2RpcmVjdG9yeS9ldGMgKGhlcmUgb24gb3V0IHJlZmVycmVkDQo+ID4g dG8gYXMgYSBmaWxlLCBzaW5jZSB0aGVyZSBpcyBubyBkaXN0aW5jdGlvbiB1bmRlciB0aGUgZXh0 NCBmaWxlc3lzdGVtKSBpcw0KPiA+IHN0b3JlZCBhcyBhIC9uYW1lbGVzcy8gaW5vZGUsIHRoYXQg aXMgc3RvcmVkIGluIHNvbWUgYmxvY2sgZ3JvdXAncyBpbm9kZQ0KPiA+IHRhYmxlLiBFYWNoIGlu b2RlIGhhcyBzX2lub2RlX3NpemUgc2l6ZSAob3IgR09PRF9PTERfSU5PREVfU0laRSBpZiBpdCdz DQo+ID4gYW4gb2xkIGZpbGVzeXN0ZW0pLCBhbmQgaG9sZHMgdmFyaW91cyBtZXRhZGF0YSBhYm91 dCB0aGUgZmlsZS4gU2luY2UgdGhlDQo+ID4gbGFyZ2VzdCBpbm9kZSBzdHJ1Y3R1cmUgcmlnaHQg bm93IGlzIH4xNjAgYnl0ZXMsIHRoZSByZXN0IG9mIHRoZSBpbm9kZQ0KPiA+IGNvbnRhaW5zIGlu bGluZSBleHRlbmRlZCBhdHRyaWJ1dGVzLiBJbm9kZXMnIGRhdGEgaXMgc3RvcmVkIHVzaW5nIGVp dGhlcg0KPiA+IGRhdGEgYmxvY2tzICh1bmRlciBleHQyLzMpIG9yIGV4dGVudHMgKHVuZGVyIGV4 dDQpLg0KPiA+DQo+ID4gNSkgRXh0ZW50cw0KPiA+IEV4dDQgaW5vZGVzIHN0b3JlIGRhdGEgaW4g ZXh0ZW50cy4gVGhlc2UgbGV0IE4gY29udGlndW91cyBsb2dpY2FsIGJsb2Nrcw0KPiA+IHRoYXQg YXJlIHJlcHJlc2VudGVkIGJ5IE4gY29udGlndW91cyBwaHlzaWNhbCBibG9ja3MgYmUgcmVwcmVz ZW50ZWQgYnkgYQ0KPiA+IHNpbmdsZSBleHRlbnQgc3RydWN0dXJlLCB3aGljaCBtaW5pbWl6ZXMg ZmlsZXN5c3RlbSBtZXRhZGF0YSBibG9hdCBhbmQNCj4gPiBzcGVlZHMgdXAgYmxvY2sgbWFwcGlu ZyAocGFydGljdWxhcmx5IGR1ZSB0byB0aGUgZmFjdCB0aGF0IGhpZ2gtcXVhbGl0eQ0KPiA+IGV4 dDQgaW1wbGVtZW50YXRpb25zIGxpa2UgbGludXgncyB0cnkgL3JlYWxseS8gaGFyZCB0byBtYWtl IHRoZSBmaWxlDQo+ID4gY29udGlndW91cywgc28gaXQncyBjb21tb24gdG8gaGF2ZSBmaWxlcyB3 aXRoIGFsbW9zdCAwIGZyYWdtZW50YXRpb24pLg0KPiA+IElub2RlcyB0aGF0IHVzZSBleHRlbnRz IHN0b3JlIHRoZW0gaW4gYSB0cmVlLCBhbmQgdGhlIHRvcCBvZiB0aGUgdHJlZQ0KPiA+IGlzIHN0 b3JlZCBvbiBpX2RhdGEuIFRoZSB0cmVlJ3MgbGVhdmVzIGFsd2F5cyBzdGFydCB3aXRoIGFuDQo+ ID4gRVhUNF9FWFRFTlRfSEVBREVSIGFuZCBjb250YWluIEVYVDRfRVhURU5UX0lOREVYIG9uIGVo X2RlcHRoICE9IDANCj4gPiBhbmQNCj4gPiBFWFQ0X0VYVEVOVCBvbiBlaF9kZXB0aCA9IDA7IHRo ZXNlIGVudHJpZXMgYXJlIGFsd2F5cyBzb3J0ZWQgYnkgbG9naWNhbA0KPiA+IGJsb2NrLg0KPiA+ DQo+ID4gNikgRGlyZWN0b3JpZXMNCj4gPiBFeHQ0IGRpcmVjdG9yaWVzIGFyZSBmaWxlcyB0aGF0 IHN0b3JlIG5hbWUgLT4gaW5vZGUgbWFwcGluZ3MgZm9yIHRoZQ0KPiA+IGxvZ2ljYWwgZGlyZWN0 b3J5OyB0aGlzIGlzIHdoZXJlIGZpbGVzIGdldCB0aGVpciBuYW1lcywgd2hpY2ggbWVhbnMgZXh0 NA0KPiA+IGlub2RlcyBkbyBub3QgdGhlbXNlbHZlcyBoYXZlIG5hbWVzLCBzaW5jZSB0aGV5IGNh biBiZSBsaW5rZWQgKHByZXNlbnQpDQo+ID4gbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQg bmFtZXMuIERpcmVjdG9yaWVzIGNhbiBzdG9yZSBlbnRyaWVzIGluIHR3bw0KPiA+IGRpZmZlcmVu dCB3YXlzOg0KPiA+IDEpIENsYXNzaWNhbCBsaW5lYXIgZGlyZWN0b3JpZXM6IFRoZXkgc3RvcmUg ZW50cmllcyBhcyBhIG1vc3RseS1saW5rZWQNCj4gPiBtb3N0bHktbGlzdCBvZiBFWFQ0X0RJUl9F TlRSWS4NCj4gPiAyKSBIYXNoIHRyZWUgZGlyZWN0b3JpZXM6IFRoZXNlIGFyZSB1c2VkIGZvciBs YXJnZXIgZGlyZWN0b3JpZXMsIHdpdGgNCj4gPiBodW5kcmVkcyBvZiBlbnRyaWVzLCBhbmQgYXJl IGRlc2lnbmVkIGluIGEgYmFja3dhcmRzLWNvbXBhdGlibGUgd2F5Lg0KPiA+IFRoZXNlIGFyZSBu b3QgeWV0IGltcGxlbWVudGVkIGluIHRoZSBFeHQ0RHhlIGRyaXZlci4NCj4gPg0KPiA+IDcpIEpv dXJuYWwNCj4gPiBFeHQzLzQgZmlsZXN5c3RlbXMgaGF2ZSBhIGpvdXJuYWwgdG8gaGVscCBwcm90 ZWN0IHRoZSBmaWxlc3lzdGVtIGFnYWluc3QNCj4gPiBzeXN0ZW0gY3Jhc2hlcy4gVGhpcyBpcyBu b3QgeWV0IGltcGxlbWVudGVkIGluIEV4dDREeGUgYnV0IGlzIGRlc2NyaWJlZA0KPiA+IGluIGRl dGFpbCBpbiB0aGUgTGludXgga2VybmVsJ3MgZG9jdW1lbnRhdGlvbi4NCj4gPg0KPiA+IFRoZSBF REsyIGltcGxlbWVudGF0aW9uIG9mIGV4dDQgaXMgYmFzZWQgb25seSBvbiB0aGUgcHVibGljIGRv Y3VtZW50YXRpb24NCj4gPiBhdmFpbGFibGUgYXQNCj4gPiBodHRwczovL3d3dy5rZXJuZWwub3Jn L2RvYy9odG1sL2xhdGVzdC9maWxlc3lzdGVtcy9leHQ0L2luZGV4Lmh0bWwNCj4gPiBhbmQNCj4g PiB0aGUgRnJlZUJTRCBleHQyZnMgZHJpdmVyIChhdmFpbGFibGUgYXQNCj4gPiBodHRwczovL2dp dGh1Yi5jb20vZnJlZWJzZC9mcmVlYnNkLXNyYy90cmVlL21haW4vc3lzL2ZzL2V4dDJmcywNCj4g PiBCU0QtMi1DbGF1c2UtRnJlZUJTRCBsaWNlbnNlZCkuIEl0IGlzIGxpY2Vuc2VkIGFzDQo+ID4g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQuDQo+ID4NCj4gPiBB ZnRlciBhIGJyaWVmIGRpc2N1c3Npb24gd2l0aCB0aGUgY29tbXVuaXR5LCB0aGUgcHJvcG9zZWQg cGFja2FnZQ0KPiA+IGxvY2F0aW9uIGlzIGVkazItcGxhdGZvcm0vRmVhdHVyZXMvRXh0NFBrZw0K PiA+IChyZWxldmFudCBkaXNjdXNzaW9uOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwv dG9waWMvODMwNjAxODUpLg0KPiA+DQo+ID4gSSB3YXMgdGhlIG1haW4gY29udHJpYnV0b3IgYW5k IEkgd291bGQgbGlrZSB0byBtYWludGFpbiB0aGUgcGFja2FnZSBpbg0KPiA+IHRoZSBmdXR1cmUs IGlmIHBvc3NpYmxlLg0KPiA+DQo+ID4gQ3VycmVudCBsaW1pdGF0aW9uczoNCj4gPiAxKSBUaGUg RXh0NER4ZSBkcml2ZXIgaXMsIGF0IHRoZSBtb21lbnQsIHJlYWQtb25seS4NCj4gPiAyKSBUaGUg RXh0NER4ZSBkcml2ZXIgYXQgdGhlIG1vbWVudCBjYW5ub3QgbW91bnQgb2xkZXIgKGV4dDIvMykN Cj4gPiBmaWxlc3lzdGVtcy4gRW5zdXJpbmcgY29tcGF0aWJpbGl0eSB3aXRoDQo+ID4gdGhvc2Ug bWF5IG5vdCBiZSBhIGJhZCBpZGVhLg0KPiA+DQo+ID4gSSBpbnRlbmQgdG8gdGVzdCB0aGUgcGFj a2FnZSB1c2luZyB0aGUgVUVGSSBTQ1RzIHByZXNlbnQgaW4gZWRrMi10ZXN0LA0KPiA+IGFuZCBp bXBsZW1lbnQgYW55IG90aGVyIG5lZWRlZCB1bml0IHRlc3RzIG15c2VsZiB1c2luZyB0aGUgYWxy ZWFkeQ0KPiA+IGF2YWlsYWJsZSB1bml0IHRlc3QgZnJhbWV3b3JrLiBJIGFsc28gaW50ZW5kIHRv IChwcml2YXRlbHkpIGZ1enogdGhlDQo+ID4gVUVGSSBkcml2ZXIgd2l0aCBiYWQvdW51c3VhbCBk aXNrIGltYWdlcywgdG8gaW1wcm92ZSB0aGUgc2VjdXJpdHkgYW5kDQo+ID4gcmVsaWFiaWxpdHkg b2YgdGhlIGRyaXZlci4NCj4gPg0KPiA+IEluIHRoZSBmdXR1cmUsIGV4dDQgd3JpdGUgc3VwcG9y dCBzaG91bGQgYmUgYWRkZWQgc28gZWRrMiBoYXMgYQ0KPiA+IGZ1bGx5LWZlYXR1cmVkIFJXIGV4 dDQgZHJpdmVyLiBUaGVyZSBjb3VsZCBhbHNvIGJlIGEgZm9jdXMgb24NCj4gPiBzdXBwb3J0aW5n IHRoZSBvbGRlciBleHQ0LWxpa2UgZmlsZXN5c3RlbXMsIGFzIEkgbWVudGlvbmVkIGluIHRoZQ0K PiA+IGxpbWl0YXRpb25zLCBidXQgdGhhdCBpcyBvcGVuIGZvciBkaXNjdXNzaW9uLg0KPiA+DQo+ ID4gVGhlIGRyaXZlcidzIGhhbmRsaW5nIG9mIHVuY2xlYW4gdW5tb3VudGluZyB0aHJvdWdoIGZv cmNlZCBzaHV0ZG93biBpcw0KPiA+IHVuY2xlYXIuDQo+ID4gSXMgdGhlcmUgYSBwb3NpdGlvbiBp biBlZGsyIG9uIGhvdyB0byBoYW5kbGUgc3VjaCBjYXNlcz8gSSBkb24ndCB0aGluaw0KPiA+IEZB VDMyIGhhcyBhICJ0aGlzIGZpbGVzeXN0ZW0gaXMvd2FzIGRpcnR5IiBhbmQgZXZlbiB0aG91Z2gg aXQgc2VlbXMgdG8NCj4gPiBtZSB0aGF0IHN0b3BwaW5nIGEgc3lzdGVtIGZyb20gYm9vdGluZy9v cGVuaW5nIHRoZSBwYXJ0aXRpb24gYmVjYXVzZQ0KPiA+ICJ3ZSBtYXkgZmluZCBzb21lIHRpbnkg aXJyZWd1bGFyaXRpZXMiIGlzIG5vdCB0aGUgYmVzdCBjb3Vyc2Ugb2YNCj4gPiBhY3Rpb24sIEkg Y2FuJ3QgZmluZCBhIGNsZWFyIGFuc3dlci4NCj4gPg0KPiA+IFRoZSBkcml2ZXIgYWxzbyBoYWQg dG8gYWRkIGltcGxlbWVudGF0aW9ucyBvZiBDUkMzMkMgYW5kIENSQzE2LCBhbmQNCj4gPiBhZnRl ciB0YWxraW5nIHdpdGggbXkgbWVudG9yIHdlIHF1aWNrbHkgcmVhY2hlZCB0aGUgY29uY2x1c2lv biB0aGF0DQo+ID4gdGhlc2UgbWF5IGJlIGdvb2QgY2FuZGlkYXRlcyBmb3IgaW5jbHVzaW9uIGlu IE1kZVBrZy4gV2UgYWxzbw0KPiA+IGRpc2N1c3NlZCBtb3ZpbmcgdGhlIFVjczIgPC0+IFV0Zjgg Y29udmVyc2lvbiBsaWJyYXJ5IGluIFJlZGZpc2hQa2cNCj4gPiAoQmFzZVVjczJVdGY4TGliKSBp bnRvIE1kZVBrZyBhcyB3ZWxsLiBBbnkgY29tbWVudHM/DQo+IA0KPiBDdXJyZW50IE1kZVBrZyBC YXNlTGliIGhhcyBDYWxjdWxhdGVDcmMzMigpLiBTbywgQ1JDMzJDIGFuZCBDUkMxNiBjYW4gYmUg YWRkZWQgaW50byBCYXNlTGliLg0KDQpJIGFncmVlIEJhc2VMaWIgaXMgYXMgZ29vZCBsb2NhdGlv biBmb3IgdGhlc2UgMiBBUElzLg0KDQo+IA0KPiBJZiBtb3JlIG1vZHVsZXMgbmVlZCB0byBjb25z dW1lIFVjczIgPC0+IFV0ZjggY29udmVyc2lvbiBsaWJyYXJ5LCBCYXNlVWNzMlV0ZjhMaWIgaXMg Z2VuZXJpYyBlbm91Z2gNCj4gdG8gYmUgcGxhY2VkIGluIE1kZVBrZy4NCg0KVGhpcyB3YXMgZGlz Y3Vzc2VkIHdpdGggdGhlIFJlZGZpc2hQa2cgbWFpbnRhaW5lcnMgYW5kIHdhcyBkZWZlcnJlZCB1 bnRpbCB0aGVyZSB3YXMgYW5vdGhlciB1c2UNCmNhc2UuICBMb29rcyBsaWtlIEVYVDQgaXMgYSAy bmQgdXNlIGNhc2UsIHNvIGl0IGlzIGEgZ29vZCB0aW1lIHRvIG1vdmUgdG8gdGhpcyBsaWIgY2xh c3MgYW5kDQpsaWIgaW5zdGFuY2UgZnJvbSBSZWRmaXNoUGtnIHRvIE1kZVBrZy4NCg0KPiANCj4g VGhhbmtzDQo+IExpbWluZw0KPiA+DQo+ID4gRmVlbCBmcmVlIHRvIGFzayBhbnkgcXVlc3Rpb25z IHlvdSBtYXkgZmluZCByZWxldmFudC4NCj4gPg0KPiA+IEJlc3QgUmVnYXJkcywNCj4gPg0KPiA+ IFBlZHJvIEZhbGNhdG8NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiANCg0K