From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web09.10194.1614589625338124118 for ; Mon, 01 Mar 2021 01:07:05 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Lo0FfMPD; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: ray.ni@intel.com) IronPort-SDR: ZGZffwGN1ozV/aV/FOtY2tCq7OyzwKp/vyvZXgU2dZusGwlhUfT3nsumlxzNwiRbN58L+TgO8n CbrrE/Vam+yA== X-IronPort-AV: E=McAfee;i="6000,8403,9909"; a="185727260" X-IronPort-AV: E=Sophos;i="5.81,215,1610438400"; d="scan'208";a="185727260" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2021 01:07:04 -0800 IronPort-SDR: bF1f8uOkxYr4Z0nqfZCz6n9HE/pzNYdgU2B+zifI+5cA3rCwjGSBMOM5NtH3CkV4IqAY6on/i3 Z1Ebn9hVaS0w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,215,1610438400"; d="scan'208";a="368539492" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga006.jf.intel.com with ESMTP; 01 Mar 2021 01:07:04 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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.2106.2; Mon, 1 Mar 2021 01:07:03 -0800 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 1 Mar 2021 01:07:03 -0800 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.2106.2 via Frontend Transport; Mon, 1 Mar 2021 01:07:03 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177) 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.2106.2; Mon, 1 Mar 2021 01:07:03 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SSwTYBmkqTv5eJWYBiZj1NP6FQjwT82a561Xylu5gTEEJOHWRs3/5gqxHEb5IssrkUPZrqGdFmBE8kUjUzWuEbWSoOcpPlAaBlm5OPocS5OrGnaPlFPLcuGDDVeU1kF6zRNagluNPIIlyESzwiLyGxY59jGI/MYPVnbeG08GYssNrMxIdCRjAuqrMjnAiaR7hmqI/CmpYbSGHpPsTHGSvM6DKzF0DcEXeefGpe+O56hUOCF2RKJOIvmQHqQG/bg92Jr1LYuWAG5ISR0xkNATqvIuXAkQ8ckdmgf8xJSK+r4fFK4moqMZfpNpAVRUSzka/reZJTC3QdmJ/MaFN1HItw== 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=W/0ZGwf/FtIhuaQlEyJOU4XnrsXYCbmZe3GG3f9bNLU=; b=drq3o+mrErteAVWjxNMfYg27Ok5M5gszqhzjs1CmHdRDf3LQhZZNsJUoxxbMP7A+PmvF7uGlFMutXQZe9ktnu3e8Ig1wRKoZoh5fG1edhCUEZXXm83MsaQFcZ30ZRiCFADQEQxwd8QnWlNPMjDSezTLEam8XDvLv0RPsRW8vRcTdXIrCSJ5b/Khu/NSi3v1w+rercg16+73edRhuSWndDxWpIuWP9QuptV4i5nBkdFUx31LRHbv8ftnUdLKDbDx2zM/J1IAsPQOpVZCupwNTTRI0osMPoJMFpEhBdlf1lj9yxvSLGKmuJyksjCNWrVqI/HdTT70gbwFSdXLTR5ZLJA== 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=W/0ZGwf/FtIhuaQlEyJOU4XnrsXYCbmZe3GG3f9bNLU=; b=Lo0FfMPDqEAXTFw2o6YexNsblLtB5CQqA4e2DCtfLTYsLwpLriuCIySyu1OFNYyh9+fyst+UFFapSoTmKVm95DuL2QP1YWTtKIy11VJbab6oqBJn1uBP0Bi1iBHLNewD73118G4K0uhZlj0+GUMoRy6B5bfPjITJeFibMkiaB4s= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MW3PR11MB4588.namprd11.prod.outlook.com (2603:10b6:303:54::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19; Mon, 1 Mar 2021 09:07:02 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95%7]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021 09:07:02 +0000 From: "Ni, Ray" To: "mikuback@linux.microsoft.com" CC: "devel@edk2.groups.io" , "Ni, Ray" , "Chaganty, Rangasai V" , "Chiu, Chasel" , "Desimone, Nathaniel L" , "Luo, Heng" , "Agyeman, Prince" , "gaoliming@byosoft.com.cn" , "Dong, Eric" , "Chaganty, Rangasai V" Subject: Re: [edk2-platforms][RFC] SpiFlashCommonLib Refactor Thread-Topic: [edk2-platforms][RFC] SpiFlashCommonLib Refactor Thread-Index: AQHXDndNOYWYxx12jEeC2Ob81yhUn6pu1iOw Date: Mon, 1 Mar 2021 09:07:02 +0000 Message-ID: References: <2a2a1cc0-3de9-fbd5-1bfb-eb5dbc9d1bc6@linux.microsoft.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: linux.microsoft.com; dkim=none (message not signed) header.d=none;linux.microsoft.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [124.77.195.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 62965d49-eefb-48e4-5d7b-08d8dc9160c8 x-ms-traffictypediagnostic: MW3PR11MB4588: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FRnPqrIPEZjDWIiHg0aTYfEMhzK28gk0hRvklT2YXFaxE9b7XdF0XTftRAv3GRQdJ16KTFFNtsjCwdnEeq0LRc/ql1Aj6NseLxFVk9b8vVOwdxN1P8KvcHP2RtnN/8UH0Gwr9gBHJbspsW2nC6Z7gXmucyOFUp6/jUUrXp9FhzwYeNWWP0DQUj4kLwAIgrtv+B3utuTX0jq4+06kmfodRWVUqH4YitNkEzCaOAUT88gUxN0MbPpVhMTyBk9CkdyWcaw4C+DDu1hiQDRXtEbpYAnnyyvapJ8r1HU6LqtXu73mGnMjXeA5UXwBlj1AIpmLePlkxril9/ZhUIf+cA9fXp3VuQnAuB1T8voecwAZ0cDLWgbiugS4kEkzXcq9wkDuoFlKkpzNr9vID8B47cs7o37+CoKhgKrLgfzzm3x5rdpAXu8LzH+aALHTPyLrIOQ4YUzR00qQSgUjurYA79nSFs7mO9Qepl6T15C9fljD3eG9nptADLXXAduvcQYiym5Y2I8z/BhocQWnB/nBpzL6bA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(39860400002)(366004)(136003)(396003)(376002)(346002)(2906002)(316002)(8676002)(186003)(26005)(8936002)(33656002)(6506007)(478600001)(53546011)(9686003)(54906003)(55016002)(71200400001)(6916009)(64756008)(66556008)(7696005)(66476007)(4326008)(76116006)(5660300002)(107886003)(52536014)(86362001)(66946007)(66446008)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?YXlqVWVkc1lVU1NzUDZHUXZaRVFwVmVSY2pCRi9XV29wRFJGL2drZDN5Wmcx?= =?utf-8?B?eGFWYVd3Nm1ubmJTY1Y5NWlReTVQYmtvNTAvWEJzYTJzK0VkbEorUjk4NnFx?= =?utf-8?B?YUVpV21GNTAyS1Nmb3RDZzcvQjJMSW4xcGtwRjROYUJJMSt0MEgvL09NMmJ0?= =?utf-8?B?dGZpSHFveXRlc3Q0UmNjTXlGUjJFVVZFeFFEb3ZqQmxZSnM1L3dmQlhrZWFh?= =?utf-8?B?Q1dqK1VpaEFPa25kVXlyNzlLTWVQelQzMllKcG5xM3FYbXIwbUcyTFRUY3po?= =?utf-8?B?Sy9VZHJkRXNIbVdVaStoZ05SQVhhNWwrSWh1Mkowb3U0WHV4djFJNnpXQUxP?= =?utf-8?B?eHdxR2NRMGVGR3dYRzB0QVR2VWpDYkpBeUt0MUtTeWQ4MlFpRXBBUmZGby9i?= =?utf-8?B?clVZdW45YjJpNmExNUE1MHVKSEtmODlSTDVCR3VYMkQvVGFnTmFUVytCaWNa?= =?utf-8?B?ZGRVQTBNOTZJdjZHL1k3YmJCWDRwUEtzSGhCSk16Zjd1RlhVb0tmZXJvRTIy?= =?utf-8?B?dHRLaE5BQ3E0Y2c1Zllia1RlM3NISStnS0N4bktkQW83Snoyc3dqWFhUUWRL?= =?utf-8?B?bzJ3OHVQY3dldTkyOG9TWGJOeXIxOUd6djhOcW1aUE9Yc1JQc0hJS2hyUm9u?= =?utf-8?B?MnAvVCtxNG9POXhpRjVDVkV5NEl5b3IxYkU3elFab1pod1VHV1I2ZTlWT0pB?= =?utf-8?B?NmZKS2dNbkhzNk1YTnVQb3VrSlZvMnlZaUt6MDF5cHVGMEYvUUd3eHQ4ejls?= =?utf-8?B?OWxaTzRrZU9KQzBnaktuM3orNWxMSzdYQjNrTXEvMVNIMzFweGpnMHF1UlNF?= =?utf-8?B?eUhDR2VEOE1rWWdINStPK0xCK09YcmY4czNRTlNTckxrbTQ4RFlVSUVVVDVI?= =?utf-8?B?bG95bCtZN1JmbjBoZ29NandGVFlNbHJid2J4WFYrMlBXaEdpSjhMRkdxME9Y?= =?utf-8?B?RFN1aWhrK3A1ekJLUG1QaEMrdElyekZZVlM4dWkzM29xdnFiUmxwQmlTeCs5?= =?utf-8?B?cXBqTlRYN2xPK1pqQVI4aUJodnZkUmxUTHdibmxjZjJ0bHBpL1czTDEydVgx?= =?utf-8?B?STNDdTF3aEJBdnZrcW8zOUZJdk5Fb1VtVDZMMVV2QUZNYU0zalBMZS9UREYx?= =?utf-8?B?Q2J2T0hnbWI1OU1FbTBJNW1yTXZoVElDL0lJREZPc2RxYmpRUFdJU2l5TFR4?= =?utf-8?B?WGNseDIrVlphVFV3Zkh2M29mYTNGKytxNi9ST3RzSC9xUmxmNkd1c2duYk5Y?= =?utf-8?B?VlpORDl0UlZOMTRRdWNZYVFidm1oRmxhbURBTjNDZVBxbnRaL0FqeXJxdm91?= =?utf-8?B?ZUxLQUsyUTJGdnd0ZGZtSGQ0TkZ4R3hUc3VXMjN6NEx5T1pTTFVQRlUra0NX?= =?utf-8?B?clZtOVJiTGkwcng3SVl3ZFFoWXJRMVBabDVOVmVOMEVSN1Y5cUNVR0VKWE1v?= =?utf-8?B?M1c4dFVBc2FVNFBIcUlNSHRUVFc5MzZJQ0lQN1dNZVVqRmZKQVJEY0FQRysx?= =?utf-8?B?bG9KM2lIaFg4azdJSkw1dkdQTDRBcVVUQkRFWGlCVndlKzRpaEQ3MkErN3U1?= =?utf-8?B?OXZoWVRZZHJmcjRFTWh5TjU5VWd5alR4bUdVeVROQUtMNW41dnlHZlhYL3lI?= =?utf-8?B?bnZJcENTcVc3VzdkZ3VMUEZ6VUZRd3Y3VmRXYUlyVHkwOCtSclQ2MFppN0lz?= =?utf-8?B?N0JNTnM5MWV1Sk1aRlRndVhXYUNMbWRFYnVIeXQ5RFlZeHRlWDdtbmpIVVlT?= =?utf-8?Q?J5SrJpuZkK+3kIZcb4KW7TZZaKB/Ziz/vZSwlb4?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62965d49-eefb-48e4-5d7b-08d8dc9160c8 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2021 09:07:02.3285 (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: dTtLfUn/XsBn/21ZZq8araCnaw2mLB9ywh1qraLpwM7pWvR0pO4WwnN3rOAVBgsYVrXf77FthsD5S6DnIbnHQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4588 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWljaGFlbCwNCkkgYWdyZWUgd2l0aCB5b3VyIHRob3VnaHRzIHRvIGNvbnNvbGlkYXRlIHRoZSBs aWIgaGVhZGVyIGFuZCBpbXBsZW1lbnRhdGlvbiB0byBJbnRlbFNpbGljb25Qa2cuDQpJIGRpZG4n dCByZWFkIHRoZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zLiBCdXQgdGhlIGltcGxlbWVudGF0 aW9uIGNvbnNvbGlkYXRpb24gbWVhbnMgeW91IHNlZSBhbGwgdGhlIGV4aXN0aW5nIGltcGxlbWVu dGF0aW9ucyBhcmUgdGhlIHNhbWUuIFJpZ2h0Pw0KDQpCdXQgd2h5IGRvbid0IHlvdSBwdXQgdGhl IGRyaXZlciBpbiBJbnRlbFNpbGljb25Qa2cgYXMgd2VsbD8gQ3JlYXRpbmcgYW4gYWR2YW5jZWQg ZmVhdHVyZSBmb3IgdGhpcyBmdW5kYW1lbnRhbCBzZXJ2aWNlIHNlZW1zIG92ZXIta2lsbC4NCg0K VGhhbmtzLA0KUmF5DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQ2hh Z2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KPiBTZW50 OiBNb25kYXksIE1hcmNoIDEsIDIwMjEgNDo0NiBQTQ0KPiBUbzogTmksIFJheSA8cmF5Lm5pQGlu dGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLXBsYXRmb3Jtc11bUkZDXSBTcGlGbGFzaENv bW1vbkxpYiBSZWZhY3Rvcg0KPiANCj4gRGlkIHlvdSBnZXQgYSBjaGFuY2UgdG8gbG9vayBpbnRv IHRoaXMgPw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWljaGFl bCBLdWJhY2tpIDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPg0KPiBTZW50OiBUdWVzZGF5 LCBGZWJydWFyeSAxNiwgMjAyMSA0OjU4IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg TmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5nYXNh aS52LmNoYWdhbnR5QGludGVsLmNvbT47IENoaXUsIENoYXNlbA0KPiA8Y2hhc2VsLmNoaXVAaW50 ZWwuY29tPjsgRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRl bC5jb20+OyBMdW8sIEhlbmcgPGhlbmcubHVvQGludGVsLmNvbT47DQo+IEFneWVtYW4sIFByaW5j ZSA8cHJpbmNlLmFneWVtYW5AaW50ZWwuY29tPjsgZ2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuOyBE b25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZWRrMi1wbGF0Zm9y bXNdW1JGQ10gU3BpRmxhc2hDb21tb25MaWIgUmVmYWN0b3INCj4gDQo+IEhlbGxvLA0KPiANCj4g SSdtIHBsYW5uaW5nIHRvIHN1Ym1pdCBzdXBwb3J0IGZvciBTdGFuZGFsb25lIE1NIGluIFNwaUZs YXNoQ29tbW9uTGliIHNvb24uIEN1cnJlbnRseSwgdGhlcmUncyBxdWl0ZSBhIGJpdCBvZiBkdXBs aWNhdGlvbiB3aXRoDQo+IFNwaUZsYXNoQ29tbW9uTGliLg0KPiANCj4gSSB3b3VsZCBsaWtlIHRv IGhhdmUgdGhpcyBTdGFuZGFsb25lIE1NIHN1cHBvcnQgYmUgYXZhaWxhYmxlIGluIGFzIGNvbnNp c3RlbnQgb2YgYSBsb2NhdGlvbiBhcyBwb3NzaWJsZSBzbyBJJ2QgbGlrZSB0byBzZWUgaWYgdGhl cmUgaXMNCj4gYW55dGhpbmcgSSBjYW4gZG8gdG8gaGVscCBjbGVhbiB0aGlzIHVwIGluIHRoZSBl YXJseSBwYXJ0IG9mIHRoZSBwYXRjaCBzZXJpZXMuDQo+IA0KPiANCj4gVGhlIGxpYnJhcnkgaW50 ZXJmYWNlIGlzIGN1cnJlbnRseSBkZWZpbmVkIGluIHRoZSBmb2xsb3dpbmcgaGVhZGVyIGZpbGVz Og0KPiANCj4gMS4gUGxhdGZvcm1cSW50ZWxcTWluUGxhdGZvcm1Qa2dcSW5jbHVkZVxMaWJyYXJ5 XFNwaUZsYXNoQ29tbW9uTGliLmgNCj4gDQo+IDIuIFNpbGljb25cSW50ZWxcU2ltaWNzSWNoMTBQ a2dcSW5jbHVkZVxMaWJyYXJ5XFNwaUZsYXNoQ29tbW9uTGliLmgNCj4gDQo+IDMuIFNpbGljb25c SW50ZWxcS2FieWxha2VTaWxpY29uUGtnXFBjaFxJbmNsdWRlXExpYnJhcnlcU3BpRmxhc2hDb21t b25MaWIuaA0KPiANCj4gNC4NCj4gU2lsaWNvblxJbnRlbFxDb2ZmZWVsYWtlU2lsaWNvblBrZ1xQ Y2hcSW5jbHVkZVxMaWJyYXJ5XFNwaUZsYXNoQ29tbW9uTGliLmgNCj4gDQo+IA0KPiBJbnN0YW5j ZXMgb2YgU21tU3BpRmxhc2hDb21tb25MaWIgaW1wbGVtZW50YXRpb24gZXhpc3QgaW4gYSBtaXgg b2YgcGxhdGZvcm0gYW5kIHNpbGljb24gcGFja2FnZXM6DQo+IA0KPiAxLg0KPiBTaWxpY29uXElu dGVsXFNpbWljc0ljaDEwUGtnXExpYnJhcnlcU21tU3BpRmxhc2hDb21tb25MaWJcU21tU3BpRmxh c2hDb21tb25MaWIuaW5mDQo+IA0KPiAyLg0KPiBQbGF0Zm9ybVxJbnRlbFxUaWdlcmxha2VPcGVu Qm9hcmRQa2dcTGlicmFyeVxTbW1TcGlGbGFzaENvbW1vbkxpYlxTbW1TcGlGbGFzaENvbW1vbkxp Yi5pbmYNCj4gDQo+IDMuDQo+IFNpbGljb25cSW50ZWxcS2FieWxha2VTaWxpY29uUGtnXFBjaFxM aWJyYXJ5XFNtbVNwaUZsYXNoQ29tbW9uTGliXFNtbVNwaUZsYXNoQ29tbW9uTGliLmluZg0KPiAN Cj4gNC4NCj4gU2lsaWNvblxJbnRlbFxDb2ZmZWVsYWtlU2lsaWNvblBrZ1xQY2hcTGlicmFyeVxT bW1TcGlGbGFzaENvbW1vbkxpYlxTbW1TcGlGbGFzaENvbW1vbkxpYi5pbmYNCj4gDQo+IDUuDQo+ IFBsYXRmb3JtXEludGVsXE1pblBsYXRmb3JtUGtnXEZsYXNoXExpYnJhcnlcU3BpRmxhc2hDb21t b25MaWJOdWxsXFNwaUZsYXNoQ29tbW9uTGliTnVsbC5pbmYNCj4gDQo+IA0KPiBUaGUgbGlicmFy eSBjbGFzcyBpcyBjdXJyZW50bHkgY29uc3VtZWQgaW4gdGhlIGZvbGxvd2luZyBJTkZzOg0KPiAN Cj4gMS4gUGxhdGZvcm1cSW50ZWxcTWluUGxhdGZvcm1Qa2dcRmxhc2hcU3BpRnZiU2VydmljZVxT cGlGdmJTZXJ2aWNlU21tLmluZg0KPiANCj4gMi4NCj4gUGxhdGZvcm1cSW50ZWxcTWluUGxhdGZv cm1Qa2dcRmxhc2hcU3BpRnZiU2VydmljZVxTcGlGdmJTZXJ2aWNlU3RhbmRhbG9uZU1tLmluZg0K PiANCj4gDQo+IE15IHVuZGVyc3RhbmRpbmcgaXM6DQo+IA0KPiAxLiBUaGUgaGVhZGVyIGZpbGUg aXMgZGVmaW5lZCBpbiBlYWNoIHNpbGljb24gcGFja2FnZSBiZWNhdXNlIHNpbGljb24gY2Fubm90 IGRlcGVuZCB1cG9uIHBsYXRmb3JtIChpLmUuIHRoZSBNaW5QbGF0Zm9ybVBrZw0KPiBoZWFkZXIp Lg0KPiANCj4gMi4gVGhlIGhlYWRlciBpcyBwcmVzZW50IGluIGVhY2ggc2lsaWNvbiBwYWNrYWdl IGJlY2F1c2UgdGhlIGltcGxlbWVudGF0aW9uIGlzIHNpbGljb24tc3BlY2lmaWMgYW5kIHRoZXNl IHBhY2thZ2VzIGNhbm5vdA0KPiBkZXBlbmQgb24gb25lIGFub3RoZXIuDQo+IA0KPiAzLiBUaGUg aGVhZGVyIGlzIGRlZmluZWQgaW4gTWluUGxhdGZvcm1Qa2cgYmVjYXVzZSBNaW5QbGF0Zm9ybVBr ZyBzaG91bGQgYmUgc2lsaWNvbiB2ZW5kb3IgYWdub3N0aWMgKGNhbm5vdCBkZXBlbmQgb24gdGhl DQo+IHNpbGljb24gcGFja2FnZXMpLg0KPiANCj4gNC4gVGhlIGhlYWRlciBpcyBuZWVkZWQgaW4g TWluUGxhdGZvcm1Qa2cgYmVjYXVzZSB0aGUgU3BpRnZiU2VydmljZSB0aGVyZSBkZXBlbmRzIG9u IFNQSSBmbGFzaCBvcGVyYXRpb25zIGltcGxlbWVudGVkIGluDQo+IFNwaUZsYXNoQ29tbW9uTGli Lg0KPiANCj4gDQo+IEhlcmUncyBhbiBpbml0aWFsIHByb3Bvc2FsOg0KPiANCj4gMS4gQ29uc29s aWRhdGUgdGhlIGxpYnJhcnkgaW50ZXJmYWNlIGludG8gYSBzaW5nbGUgaGVhZGVyLiBJbg0KPiBJ bnRlbFNpbGljb25Qa2c/DQo+IA0KPiAyLiBDb25zb2xpZGF0ZSBsaWJyYXJ5IGltcGxlbWVudGF0 aW9uIGludG8gYSBzaW5nbGUgaW5zdGFuY2UuIEluDQo+IEludGVsU2lsaWNvblBrZz8NCj4gDQo+ IDMuIE1vdmUgU3BpRnZiU2VydmljZVh5eiBvdXQgb2YgTWluUGxhdGZvcm1Qa2cuDQo+ICAgICAz LmEuIE1ha2UgYSAiU1BJIGZsYXNoIiBmZWF0dXJlPw0KPiAgICAgMy5iLiBBbGxvdyB0aGUgSW50 ZWwgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmZWF0dXJlIHRvIGRlcGVuZCBvbg0KPiBTcGlGbGFz aENvbW1vbkxpYiBkZWZpbmVkIGluIEludGVsU2lsaWNvblBrZy4NCj4gDQo+IEludGVsIGJvYXJk IHBhY2thZ2VzIGNvdWxkIHRoZW4gdXNlIHRoZSBTcGlGbGFzaENvbW1vbkxpYiBmcm9tDQo+IElu dGVsU2lsaWNvblBrZyAoYSBnZW5lcmF0aW9uIHNwZWNpZmljIGluc3RhbmNlIGNvdWxkIGJlIGNy ZWF0ZWQgaWYNCj4gbmVlZGVkKSBhbmQgdXNlIHRoZSBTcGlGdmJTZXJ2aWNlWHl6IGRyaXZlciBm cm9tIHRoZSAiU3BpRmxhc2giIGZlYXR1cmUuDQo+IA0KPiBMb29rIGZvcndhcmQgdG8geW91ciB0 aG91Z2h0cyBhbmQgZmVlZGJhY2suDQo+IA0KPiBUaGFua3MsDQo+IE1pY2hhZWwNCg==