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.35541.1670290283746719116 for ; Mon, 05 Dec 2022 17:31:24 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=J1nN/eV9; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: zhiguang.liu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1670290283; x=1701826283; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=4TJ/394GKoy+971ClVFXOjEFtuDThd1+E9TKq0howd0=; b=J1nN/eV9qgg/Gx5kqQ0+ZmT0cTNhCPtZPt+RcpCqJhx8i2yZuL4FmJfJ 95O5Ts56aR5tKSlloRwlJpJOkA+Ze1HRqjEl3yKIOUjtEiDhs1a7UJebU wYhRfsjrTeva5vJjndmp5D4GCrbQdPo7xsRm4TRR0Wnto3i1ENlo86v+X aOwt8Y+lwj9Nh8pLi4/GO/jX7Qx8ShXH2Bzp/7FejjwjLzTGRE4r0Jmap 4QNilMuhba6HReaJkOtaHrjTh5uJ3qHGShieJhd1EB5lanRNdYaJzk+X6 vwTqCnb0YaKsu4n0BdOCjc9rw1jIR5DfAj6+M9u8pZo81KKuwGFclyv86 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10552"; a="317653256" X-IronPort-AV: E=Sophos;i="5.96,220,1665471600"; d="scan'208";a="317653256" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Dec 2022 17:31:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10552"; a="770554681" X-IronPort-AV: E=Sophos;i="5.96,220,1665471600"; d="scan'208";a="770554681" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga004.jf.intel.com with ESMTP; 05 Dec 2022 17:31:22 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Mon, 5 Dec 2022 17:31:22 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Mon, 5 Dec 2022 17:31:22 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Mon, 5 Dec 2022 17:31:22 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aMUbcs6E1g55XXMhxeKZysIWAAzQUN0hrvVFYh0gbwYdDDtU6kCVZBKC7PuSZ7542iAYVtYFe+Xt6c6rigPoKQnBO8TsLojbL00F9I5e7un3lkXUoMNvHbPOe9USRpHGdO6+lW43QDdOI4mGxzMLmF/wn8sxbxKhUBDL2hYJOuZ5VbHk+eMJf8s3LNsyobzWSMXbr04Tx9/6sivvlR4kabl64t3hOohR6w/C1j2VHf5as9lb5tcYmk5cXjdM76Bu0Mr2RMvCN1E+gSbi/hzUauDwX/8OCnrN8vrkMZi+0zBYEEMaw6a4xffCNAJfUJb+CuoQsfUlY/mS7oFyPOIWCQ== 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=4TJ/394GKoy+971ClVFXOjEFtuDThd1+E9TKq0howd0=; b=GSvCzyRUaKwcyUF9Giu6blmMCWiXxnpCL7mkt51hlnJoewODf9kynC2naFx17owrR24BnHT2X6bNvsBsyACUkIYkSAaAt9Y7pIEg5mftaiTYGd0pVgsRwoUc+P1hZ1/GSStClNoV6mp74q0MpdNWaQP91x+pJYORHrRlWvhm/GtMgea2eirCmKBoH8d/8md4rjf+eAhFXc9tuyFKqbIH3jYPBqtTgx+pjRDYvbHL6nKGg5Qy2i/YzGHGQCPF3N9i4wADsf5o8/ew269g5pTXWeD67bcgXQOyDq/AZARGqVB7G8NeFl/DNQLiq11jrJ5+cIlT3oC795qq0X6bp82wCA== 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 PH0PR11MB5048.namprd11.prod.outlook.com (2603:10b6:510:3d::14) by SA1PR11MB7087.namprd11.prod.outlook.com (2603:10b6:806:2b5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.13; Tue, 6 Dec 2022 01:31:20 +0000 Received: from PH0PR11MB5048.namprd11.prod.outlook.com ([fe80::bf9a:7d68:2ee8:dfd9]) by PH0PR11MB5048.namprd11.prod.outlook.com ([fe80::bf9a:7d68:2ee8:dfd9%6]) with mapi id 15.20.5880.014; Tue, 6 Dec 2022 01:31:20 +0000 From: "Zhiguang Liu" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: Michael Kubacki , Sean Brogan , "Ni, Ray" Subject: Re: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public Thread-Topic: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public Thread-Index: AQHZBQGTEw9mOxm1uUud7M736AxFI65e601ggAAHDwCAAK+SAIAAd/Uw Date: Tue, 6 Dec 2022 01:31:19 +0000 Message-ID: References: <20221130211956.584-1-michael.d.kinney@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5048:EE_|SA1PR11MB7087:EE_ x-ms-office365-filtering-correlation-id: 283e351a-5ab9-4cd8-e870-08dad72993cb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U3asZm4qmmPNNiEHeXGdg7X2wAAOJAmvk8lcQRosRCDrwDFlTfQI7ZbWUjtTi4xY/p1zbsfiDlbG7JQ7VwbKUTiZHeUzT/DOU06lSX9HaMg2rzkjC4EpmuTgSJlYlnOdCXp12oFTJg60YzD2uQm6O9pFjajB+Zn6DwSPo/FMeWeNnKWRvshka8yeeKF3NHTuNZvEhAVmm/Hx3qczF9d7eMErjYYgQAbAOX990AEbQVQ64GhyMk2W83TiDODP5uR8N4NL0nGI3EzmT+GRvQ5dMSbAheovfejk51q6cmYrvnncsvNTOa/tvLpgnhQGKDeGkaVBYR6cYVvLZl+DnSD03/jnuCvBmnCgqqJLKWCCsw9e7/GQ0qG5Ea1hGt/D1BAFQ3bnwN7atFj78oOjYFNvj5jPmWBJfvRTZQDKHlXEKYONc6qJc87URH4CCWIrHj84zvl9tvkV/gbpd0nkj0bs10epXDbxIMWzkfenmlwZ8d59AJHUkaSlwlHWfe2R6mL69FmkcrR8EDk/oKNYr0y+FIJfF/uIbxPF9JrrBspeXHGhHGUSNUkWVyK0wPzK74kOYaRtOis01hyxi79LIW3Vp7tO7rdLImH+tj4t/WlMXTZUsWbwqKH9RMVjZM07PvokhNXHAH2Rierdiarl+Uhy5GekzNJsCrvqjTK3GBXtdJCs2JFAFTfBkjHgLeqW7ia5Jju5KWZzFZavg+suQramzEuLe8WZDInK+SB+fAmpci0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5048.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(346002)(39860400002)(136003)(366004)(376002)(451199015)(38070700005)(55016003)(33656002)(7696005)(86362001)(53546011)(6506007)(71200400001)(478600001)(966005)(52536014)(4326008)(8676002)(9686003)(26005)(107886003)(66476007)(41300700001)(5660300002)(110136005)(316002)(2906002)(54906003)(66946007)(64756008)(76116006)(66556008)(8936002)(66446008)(83380400001)(82960400001)(122000001)(38100700002)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NHdydlNWWUhwVFA5bkVkRjdtazNMd3loektIV0xoV1FrZXEyVjJVbnlSb293?= =?utf-8?B?ZEk1K0ZMV0VQc0dMOE9Sbzl1MEtHYXNpc1pZTEkwQklCcFFETjI5L2RjaTM2?= =?utf-8?B?dG1IQzJBblhKS1BPWC8wNS9WOW1Mc2xjWTIxY1k5OWgyQ0NCc3Fsbnp3TFF1?= =?utf-8?B?V2YzV2ZrU1lJNHloTGJIVk5CNzdJV1p0Z3BjRXh2UWV5cldCVWhUSHpDcXIv?= =?utf-8?B?alJxNlRaNTNMVi83K0RlenRLcVBpc0NhKyt6NHYvTEdTTkFmOU0vaGVmbllX?= =?utf-8?B?MXlrZm04bkhpc3RYUVVWSFJqRThRcnhJbVlzSlJIUnIzNFlyODRDRjVkQUZn?= =?utf-8?B?TDhZd0d6VWJWazVhbWlPeWJrMWVaYnhBTm1pTmNYeEtRM1VkYmVxY0JNMzBE?= =?utf-8?B?NnFzWWVPWHBHdHZONS8wWVNkbG5mK1JDLy80RU9RZE9tOXRiRjJGQWZTWkZm?= =?utf-8?B?Z0dvdDdpbUpjbEE4azR0ZXpuOTJXQ0dvZ2dqSGNKQ1luY3JFQU9HaUxKdFR1?= =?utf-8?B?SVZFWTc3b1luU2hTbmd5OTM3SkFSemJLTnB0Wkw2TGN0dW4xUXpyanRNbmtG?= =?utf-8?B?V0pXaThVd29EWVNSRkRwNGROTTNvd28vUVl4VVViNjVSMlNNVFU4OUlNaW81?= =?utf-8?B?cDhvTVM0aW05YURiMW1YOWt2K01KYkZYS203Tkx0SjJJWHpKajE0S1A3a3Uw?= =?utf-8?B?elVDQzQ2KzBXRFdNK2xSOG4zcWFZVUp6OHpwZ0t0MHJSN3pTOElmOW1meEFw?= =?utf-8?B?QmVYRlJFWVlOd0thSlZidDZ5cnQrUUFtbmFzUWxPY0RuOXFlcTZRZkVhZmVV?= =?utf-8?B?UEF3MXFaZmY1RUJESHhiMHJrN1pxcUxXd0ViazA1S2ZZRW9EVVpEK3JsUFVq?= =?utf-8?B?WFJmOERmWTF6V2V3WVVzZWVtWGVrMHdUUlE5THRsNVFJU2QvSm01YUFseTJB?= =?utf-8?B?TjZuRk1CSGVkMllDd2hYdmlpd2Z4enJoc011a0JwS0pJckNudW00bkw5ZlRi?= =?utf-8?B?TitWdGMrU2IvVzJRR1pnN1RudHR0RGRvL0tRTTB2SVNzRnZMdHBPU1dXNmZy?= =?utf-8?B?eGE0L0NldFVrUGFnaVk3SklqNjFvS1FLUDVDUTRpQVFRdEdzRCtKTFlYQ05t?= =?utf-8?B?eEpGclFJWjVsZVNqK1g5MmNxek11V2xqYllRMERXTzRJR0lIK2lQcm5GaUJ2?= =?utf-8?B?TU9VdkRLd2VWL1l6azBacnZXcXpLa24vSVBsYjlLU29scS9taXgvRWxWRnZU?= =?utf-8?B?UVkzanAyZXpuY2k4WUlsZmV3eWtPOU5KbnBHeXBjN3c2MDZFaGVvOHBLeFlT?= =?utf-8?B?ZjMxNlRTWmdlVmEzUllQMGNnL0ZVNWFEcTRGUndXUERpdXhlSkJzZTR1ZXZO?= =?utf-8?B?WWhJeG1Sa0pyY2Q5YjR3SnpYeTgyWFRyZ3pGVFFLWDF2WWhxKzBmVkN3alYv?= =?utf-8?B?MGNKYWNhMjNzeFdIYWRpKzd4dVI3d0J4TkIyRGVYU0xad3V5TkMvRmI5VzVi?= =?utf-8?B?WGRKVlpKc2pLakN0U2RHWEZlakgwWExoWlVqZjlLN3JsSXFRbDljTEQwNTcx?= =?utf-8?B?S01GQVJDdkVjbEc4aUtqWEhBeWhhUG9yZ0FMdkk2THVYbGFHKzU2Sm1qc0NQ?= =?utf-8?B?b3Q2SFA3QUNQL1F1RXl0dk5aZU5Iblk1L015RjN0aDJTRTRrVWFhc29tbk1M?= =?utf-8?B?SFNKc0JOamlpVEQ3K3YycGtIUld1Y3ZFNFBtc2F3M0lYSlB0NHQ0T01iNkNh?= =?utf-8?B?L0NRRjJ1MGlSakVUcy9WUktSRlcxSW5UdTJORG83ckNLOFExYzZTcDMvVjRp?= =?utf-8?B?cEgyeVh2aC9sK1Y5YjJacGZrV2tVNExFRDl6dlpZMUd5S2dDNHFVNHNGQnVo?= =?utf-8?B?RGVELzBkNmxXODd0ZCtYcGhqcTAvTlJhbjIwZG1Pbkx6djgrNHI1TFZ6cll4?= =?utf-8?B?cjBrTEhDQ01OOEh1MTVvVkd4OGVGZlUvMm5ZZDZ5QnVpb1NXdWFmMGhFUEpM?= =?utf-8?B?KytWbkhqUkpWQW1kR2J3VEZJM2IxS1lzYWxBYXhJVmNyWHllZk9JbUxQNktw?= =?utf-8?B?d0lVbWUvb0czc3BVV3B5TDBYNnl5QnVwNXMvTlNGREkzNGc2THBIR1oxMGl4?= =?utf-8?Q?bRDOYw2i3CUcHz1d7GVG8y+2V?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5048.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 283e351a-5ab9-4cd8-e870-08dad72993cb X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2022 01:31:19.9279 (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: 0CUCmkO/ql+leKQYORn+DndQVqgNRuioiGN31vsKrwkJkYnqqxgeGMVJcdjrSDjygODT9a3ImE575NDUOJHTLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7087 Return-Path: zhiguang.liu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWlrZSwNClllcywgSSB3aWxsIGZpbGUgYSBCWiBhbmQgd29yayBvdXQgYSBwYXRjaCBzZXJp YWwsIGluY2x1ZGluZyBjdXJyZW50IHBhdGNoLg0KDQpUaGFua3MNClpoaWd1YW5nDQoNCg0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDYsIDIw MjIgMjoxOCBBTQ0KPiBUbzogTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksDQo+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQo+IENjOiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1p Y3Jvc29mdC5jb20+OyBTZWFuIEJyb2dhbg0KPiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT47 IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUGF0Y2ggMS8xXSBV bml0VGVzdEZyYW1ld29ya1BrZzogTGlicmFyeSBjbGFzc2VzIHByaXZhdGUgdG8NCj4gcHVibGlj DQo+IA0KPiBaaGlndWFuZywNCj4gDQo+IFRoaXMgd291bGQgYmUgYSBub24tYmFja3dhcmRzIGNv bXBhdGlibGUgY2hhbmdlIHRvIHRoaXMgQVBJLg0KPiANCj4gQnV0IHNpbmNlIHRoaXMgaGFzIGJl ZW4gYSBwcml2YXRlIEFQSSwgSSB0aGluayB3ZSBjYW4gZWFzaWx5IGFjY29tbW9kYXRlIGENCj4g Y2hhbmdlIGxpa2UgdGhpcyBpZiB3ZSBkbyBpdCByaWdodCBub3cgYW5kIG1ha2Ugc3VyZSB0aGUN Cj4gVW5pdFRlc3RGcmFtZXdvcmtQa2cgaW1wbGVtZW50YXRpb25zIGFyZSB1cGRhdGVkIGluIHNh bWUgcGF0Y2ggc2VyaWVzLg0KPiANCj4gQ2FuIHlvdSBwbGVhc2UgcHV0IHRvZ2V0aGVyIGEgcGF0 Y2ggc2VyaWVzIHdpdGggdGhpcyBwcm9wb3NlZCBBUEkgY2hhbmdlIGZvcg0KPiByZXZpZXcgYW5k IGVudGVyIGEgQlogd2l0aCB0aGUgcmVxdWVzdCBhcyB3ZWxsLg0KPiANCj4gVGhhbmtzLA0KPiAN Cj4gTWlrZQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IExp dSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+ID4gU2VudDogU3VuZGF5LCBE ZWNlbWJlciA0LCAyMDIyIDExOjU1IFBNDQo+ID4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBD YzogTWljaGFlbCBLdWJhY2tpIDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPjsgU2VhbiBC cm9nYW4NCj4gPiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT47IE5pLCBSYXkgPHJheS5uaUBp bnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtQYXRjaCAxLzFdIFVuaXRUZXN0RnJhbWV3b3Jr UGtnOiBMaWJyYXJ5IGNsYXNzZXMgcHJpdmF0ZQ0KPiA+IHRvIHB1YmxpYw0KPiA+DQo+ID4gQW5v dGhlciBzdWdnZXN0aW9uIGZyb20gUmF5IGlzIHRvIGNoYW5nZSB0aGUgQVBJIGFkZGluZyBhIG5l dw0KPiA+IHBhcmFtZXRlcihzaXplKSwgc28gd2UgY2FuIGF2b2lkIHVzaW5nIHRoZSBVTklUX1RF U1RfU0FWRV9IRUFERVINCj4gc3RydWN0Lg0KPiA+DQo+ID4gRUZJX1NUQVRVUw0KPiA+IEVGSUFQ SQ0KPiA+IFNhdmVVbml0VGVzdENhY2hlICgNCj4gPiAgIElOIFVOSVRfVEVTVF9GUkFNRVdPUktf SEFORExFICBGcmFtZXdvcmtIYW5kbGUsDQo+ID4gICBJTiBWT0lEICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpTYXZlRGF0YSwNCj4gPiAgIElO IFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTaXplDQo+ID4gICApOw0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gWmhpZ3VhbmcNCj4gPg0KPiA+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IExpdSwgWmhpZ3VhbmcN Cj4gPiA+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgNSwgMjAyMiAzOjQ0IFBNDQo+ID4gPiBUbzog S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiA+IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogTWljaGFlbCBLdWJhY2tpIDxtaWt1YmFja0Bs aW51eC5taWNyb3NvZnQuY29tPjsgU2VhbiBCcm9nYW4NCj4gPiA+IDxzZWFuLmJyb2dhbkBtaWNy b3NvZnQuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJF OiBbUGF0Y2ggMS8xXSBVbml0VGVzdEZyYW1ld29ya1BrZzogTGlicmFyeSBjbGFzc2VzDQo+ID4g PiBwcml2YXRlIHRvIHB1YmxpYw0KPiA+ID4NCj4gPiA+IEhpIE1pa2UsDQo+ID4gPiBUaGFua3Mg Zm9yIHRoZSBwYXRjaC4NCj4gPiA+IE9uZSBjb21tZW50IGlzIHRoYXQgVW5pdFRlc3RQZXJzaXN0 ZW5jZUxpYiBkZXBlbmRzIG9uIGEgc3RydWN0DQo+ID4gPiBkZWZpbml0aW9uIFVOSVRfVEVTVF9T QVZFX0hFQURFUiwgd2hpY2ggaXMgZGVmaW5lZCBpbiBwcml2YXRlIGhlYWRlcnMuDQo+ID4gPiBE byB5b3UgdGhpbmsgaXQgaXMgb2sgdG8gYWxzbyBtb3ZlIGl0IGludG8gVW5pdFRlc3RQZXJzaXN0 ZW5jZUxpYi5oPw0KPiA+ID4gT3Igd2hhdCB3ZSByZWFsbHkgbmVlZCBmcm9tIHRoZSBzdHJ1Y3Qg aW4gVW5pdFRlc3RQZXJzaXN0ZW5jZUxpYiBpcw0KPiA+ID4gdGhlIFNhdmVTdGF0ZVNpemUsIHdl IGNhbiBkZWZpbmUgYSBuZXcgcHVibGljIHN0cnVjdA0KPiA+ID4gVU5JVF9URVNUX1NBVkVfSEVB REVSX1BVQkxJQyB0byBvbmx5IGNvbnRhaW5zIHRoZSBuZWVkZWQgZmllbGRzLA0KPiA+ID4gbGlr ZQ0KPiA+ID4NCj4gPiA+IHR5cGVkZWYgc3RydWN0IHsNCj4gPiA+ICAgVUlOVDggICAgICAgVmVy c2lvbjsNCj4gPiA+ICAgVUlOVDMyICAgICAgU2F2ZVN0YXRlU2l6ZTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTaXplIG9mIHRoZSBlbnRpcmUgc2VyaWFsaXplZA0KPiBidWZmZXIuDQo+ ID4gPiAgIFVJTlQ4ICAgICAgIFJhd0RhdGFbXTsNCj4gPiA+IH0gVU5JVF9URVNUX1NBVkVfSEVB REVSOw0KPiA+ID4NCj4gPiA+IFRoYW5rcw0KPiA+ID4gWmhpZ3VhbmcNCj4gPiA+DQo+ID4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IEtpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gU2VudDogVGh1cnNkYXks IERlY2VtYmVyIDEsIDIwMjIgNToyMCBBTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPiA+ID4gQ2M6IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0 LmNvbT47IFNlYW4gQnJvZ2FuDQo+ID4gPiA+IDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsg TmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IExpdSwNCj4gPiA+ID4gWmhpZ3VhbmcgPHpoaWd1 YW5nLmxpdUBpbnRlbC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFtQYXRjaCAxLzFdIFVuaXRUZXN0 RnJhbWV3b3JrUGtnOiBMaWJyYXJ5IGNsYXNzZXMgcHJpdmF0ZQ0KPiA+ID4gPiB0byBwdWJsaWMN Cj4gPiA+ID4NCj4gPiA+ID4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hv d19idWcuY2dpP2lkPTQxNzgNCj4gPiA+ID4NCj4gPiA+ID4gKiBDaGFuZ2UgR29vZ2xlVGVzdExp YiBjbGFzcyBmcm9tIHByaXZhdGUgdG8gcHVibGljLg0KPiA+ID4gPiAqIENoYW5nZSBVbml0VGVz dFBlcnNpc3RlbmNlTGliIGNsYXNzIGZyb20gcHJpdmF0ZSB0byBwdWJsaWMuDQo+ID4gPiA+DQo+ ID4gPiA+IENjOiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+ DQo+ID4gPiA+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4g PiA+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IFpoaWd1YW5n IExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0K PiA+ID4gPiAgLi4uL0xpYnJhcnkvVW5pdFRlc3RQZXJzaXN0ZW5jZUxpYi5oICAgICAgICAgICAg ICAgIHwgIDANCj4gPiA+ID4gIFVuaXRUZXN0RnJhbWV3b3JrUGtnL1VuaXRUZXN0RnJhbWV3b3Jr UGtnLmRlYyAgICAgICB8IDEzICsrKysrKystLQ0KPiAtLS0tDQo+ID4gPiA+ICAyIGZpbGVzIGNo YW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkgIHJlbmFtZQ0KPiA+ID4gPiBV bml0VGVzdEZyYW1ld29ya1BrZy97UHJpdmF0ZUluY2x1ZGUgPT4NCj4gPiA+ID4gSW5jbHVkZX0v TGlicmFyeS9Vbml0VGVzdFBlcnNpc3RlbmNlTGliLmggKDEwMCUpDQo+ID4gPiA+DQo+ID4gPiA+ IGRpZmYgLS1naXQNCj4gPiA+ID4gYS9Vbml0VGVzdEZyYW1ld29ya1BrZy9Qcml2YXRlSW5jbHVk ZS9MaWJyYXJ5L1VuaXRUZXN0UGVyc2lzdGVuY2VMDQo+ID4gPiA+IGliLmgNCj4gPiA+ID4gYi9V bml0VGVzdEZyYW1ld29ya1BrZy9JbmNsdWRlL0xpYnJhcnkvVW5pdFRlc3RQZXJzaXN0ZW5jZUxp Yi5oDQo+ID4gPiA+IHNpbWlsYXJpdHkgaW5kZXggMTAwJQ0KPiA+ID4gPiByZW5hbWUgZnJvbQ0K PiA+ID4gPiBVbml0VGVzdEZyYW1ld29ya1BrZy9Qcml2YXRlSW5jbHVkZS9MaWJyYXJ5L1VuaXRU ZXN0UGVyc2lzdGVuY2VMaWINCj4gPiA+ID4gLmgNCj4gPiA+ID4gcmVuYW1lIHRvDQo+ID4gPiA+ IFVuaXRUZXN0RnJhbWV3b3JrUGtnL0luY2x1ZGUvTGlicmFyeS9Vbml0VGVzdFBlcnNpc3RlbmNl TGliLmgNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL1VuaXRUZXN0RnJhbWV3b3JrUGtnL1VuaXRUZXN0 RnJhbWV3b3JrUGtnLmRlYw0KPiA+ID4gPiBiL1VuaXRUZXN0RnJhbWV3b3JrUGtnL1VuaXRUZXN0 RnJhbWV3b3JrUGtnLmRlYw0KPiA+ID4gPiBpbmRleCBlZDEyZjMyMDA5ZDguLjE0ZTM4N2Q2M2Ew ZiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvVW5pdFRlc3RGcmFtZXdvcmtQa2cvVW5pdFRlc3RGcmFt ZXdvcmtQa2cuZGVjDQo+ID4gPiA+ICsrKyBiL1VuaXRUZXN0RnJhbWV3b3JrUGtnL1VuaXRUZXN0 RnJhbWV3b3JrUGtnLmRlYw0KPiA+ID4gPiBAQCAtMjYsMTEgKzI2LDE2IEBAIFtJbmNsdWRlcy5D b21tb24uUHJpdmF0ZV0NCj4gPiA+ID4gICAgTGlicmFyeS9DbW9ja2FMaWIvY21vY2thL2luY2x1 ZGUvY21vY2tlcnkNCj4gPiA+ID4gICAgTGlicmFyeS9Hb29nbGVUZXN0TGliL2dvb2dsZXRlc3Qv Z29vZ2xldGVzdA0KPiA+ID4gPg0KPiA+ID4gPiAtW0xpYnJhcnlDbGFzc2VzLkNvbW1vbi5Qcml2 YXRlXQ0KPiA+ID4gPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiA+ID4gPiAgICAjIyBAbGlicmFyeWNs YXNzIEFsbG93cyBzYXZlIGFuZCByZXN0b3JlIHVuaXQgdGVzdCBpbnRlcm5hbCBzdGF0ZQ0KPiA+ ID4gPiAgICAjDQo+ID4gPiA+IC0NCj4gPiA+ID4gVW5pdFRlc3RQZXJzaXN0ZW5jZUxpYnxQcml2 YXRlSW5jbHVkZS9MaWJyYXJ5L1VuaXRUZXN0UGVyc2lzdGVuY2VMDQo+ID4gPiA+IFVuaXRUZXN0 UGVyc2lzdGVuY2VMaWJ8aWIuaA0KPiA+ID4gPiArICBVbml0VGVzdFBlcnNpc3RlbmNlTGlifElu Y2x1ZGUvTGlicmFyeS9Vbml0VGVzdFBlcnNpc3RlbmNlTGliLmgNCj4gPiA+ID4NCj4gPiA+ID4g KyAgIyMgQGxpYnJhcnljbGFzcyBHb29nbGVUZXN0IGluZnJhc3RydWN0dXJlICAjDQo+ID4gPiA+ ICsgR29vZ2xlVGVzdExpYnxJbmNsdWRlL0xpYnJhcnkvR29vZ2xlVGVzdExpYi5oDQo+ID4gPiA+ ICsNCj4gPiA+ID4gK1tMaWJyYXJ5Q2xhc3Nlcy5Db21tb24uUHJpdmF0ZV0NCj4gPiA+ID4gICAg IyMgQGxpYnJhcnljbGFzcyBQcm92aWRlcyBhIHVuaXQgdGVzdCByZXN1bHQgcmVwb3J0DQo+ID4g PiA+ICAgICMNCj4gPiA+ID4NCj4gPiA+ID4gVW5pdFRlc3RSZXN1bHRSZXBvcnRMaWJ8UHJpdmF0 ZUluY2x1ZGUvTGlicmFyeS9Vbml0VGVzdFJlc3VsdFJlcG9yDQo+ID4gPiA+IFVuaXRUZXN0UmVz dWx0UmVwb3J0TGlifHRMaWINCj4gPiA+ID4gLmggQEAgLTM5LDEwICs0NCw2IEBAIFtMaWJyYXJ5 Q2xhc3Nlcy5Db21tb24uUHJpdmF0ZV0NCj4gPiA+ID4gICAgIw0KPiA+ID4gPiAgICBVbml0VGVz dEJvb3RMaWJ8UHJpdmF0ZUluY2x1ZGUvTGlicmFyeS9Vbml0VGVzdEJvb3RMaWIuaA0KPiA+ID4g Pg0KPiA+ID4gPiAtICAjIyBAbGlicmFyeWNsYXNzIEdvb2dsZVRlc3QgaW5mcmFzdHJ1Y3R1cmUN Cj4gPiA+ID4gLSAgIw0KPiA+ID4gPiAtICBHb29nbGVUZXN0TGlifEluY2x1ZGUvTGlicmFyeS9H b29nbGVUZXN0TGliLmgNCj4gPiA+ID4gLQ0KPiA+ID4gPiAgW0d1aWRzXQ0KPiA+ID4gPiAgICBn VW5pdFRlc3RGcmFtZXdvcmtQa2dUb2tlblNwYWNlR3VpZCA9IHsgMHg4MzNkM2FiYSwgMHgzOWI0 LA0KPiA+ID4gPiAweDQzYTIsIHsgMHhiOSwgMHgzMCwgMHg3YSwgMHgzNCwgMHg1MywgMHgzOSwg MHgzMSwgMHhiMyB9IH0NCj4gPiA+ID4NCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4zNy4xLndpbmRv d3MuMQ0KDQo=