From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.10614.1633359133106757887 for ; Mon, 04 Oct 2021 07:52:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=x/Ppns2A; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: ianx.kuo@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10126"; a="224226658" X-IronPort-AV: E=Sophos;i="5.85,346,1624345200"; d="scan'208";a="224226658" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Oct 2021 07:51:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,346,1624345200"; d="scan'208";a="523343882" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga008.fm.intel.com with ESMTP; 04 Oct 2021 07:51:35 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 4 Oct 2021 07:51:35 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 4 Oct 2021 07:51:35 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.2242.12 via Frontend Transport; Mon, 4 Oct 2021 07:51:35 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.107) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Mon, 4 Oct 2021 07:51:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MS04xRBHDUCUmIIEgsbCB23uQcF3bH0Woec8NQIOS1I0Ij0uAoOMOVbHwDR4FF5sl9HDOEW0/W4Ze8ITWzdpasApDzN3Vfaq1/MnoeS8T5mBA1M2uB3uOtdqYGl8GAAKs8Oozu0PkGDkluLmy+Mx6RGC4qzYGZF20MHYQu4or2e7D/KnTjPTArbaLrfVZck5+TOGut8u9R+fdTWjG2JDkrnGKVNIWghUiImVLSi+YCtm73v5YP77h4fX6wFttFJGqNfPC24hQS7n33YdiC4WPk+psY18+qelO6PNfdqh/xFsKbFRQfvpIhspINB2Z42Pk4vHFfd1sYW5wd7iUUywKg== 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=WgaVuAa+iCKVKVuL9c008W0yWySSLJWULERi0N9mdKo=; b=KbUfaEX+fVyWOOPRRUlWvo5W/dQ2j2btPw+FizhA0hSbgw3TvTXF2iVnzLndR+4FM8WWJ3jXEhPa/LRnsEOX5KCV+30XrVNZLYdXVBBUpRAuoHSFnH5AhBhfqigUx/YeAWtgOd+hyRPbCSLDsSG/sPdX+Drmxm6xyqihXMWTor+tY6azCM2ySh9H7dA6AdVaPAvIiVaSY979SEJozt+nklwoJJsC8VaUWuv90nAg9MDXh+z6rbusiVkriigR3kvNNzeqBgHhuYb10kxmLwSx7epbgMjjSndGiiYr/Uxvyv+/u+S7hfcYXUoiJkIdv0VbtDI+qU14LKdfpdxS4ZYPGg== 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=WgaVuAa+iCKVKVuL9c008W0yWySSLJWULERi0N9mdKo=; b=x/Ppns2AdsWiaqenVWggiOl5KCQRjGqDxkFzmpSO15gqZ7M0IDlX8OK294avNMe6ck+hXeMOn5C3dP7nlzWeBS3fhatqWezktxsF5nLlkiDp3Wo3I3D9Uxfbql3UX3bsAfXPdTpnWRT+VJLPi8mlnB5hZUVq+YYUKIDbhmsbD+E= Received: from PH0PR11MB5174.namprd11.prod.outlook.com (2603:10b6:510:3b::12) by PH0PR11MB4935.namprd11.prod.outlook.com (2603:10b6:510:35::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.15; Mon, 4 Oct 2021 14:51:33 +0000 Received: from PH0PR11MB5174.namprd11.prod.outlook.com ([fe80::15cd:4799:abde:7750]) by PH0PR11MB5174.namprd11.prod.outlook.com ([fe80::15cd:4799:abde:7750%5]) with mapi id 15.20.4566.022; Mon, 4 Oct 2021 14:51:33 +0000 From: "IanX Kuo" To: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "devel@edk2.groups.io" CC: "Chan, Amy" , "Ni, Ray" , "Kinney, Michael D" , Liming Gao , "Liu, Zhiguang" Subject: Re: [edk2-devel] [PATCH v5 1/4] MdePkg/BaseLib: Add QuickSort function on BaseLib Thread-Topic: [edk2-devel] [PATCH v5 1/4] MdePkg/BaseLib: Add QuickSort function on BaseLib Thread-Index: AQHXuN0wSACkNYab80iQAdvfCbVxXavCzMSAgAAb7UA= Date: Mon, 4 Oct 2021 14:51:33 +0000 Message-ID: References: <20211004050318.1816-1-ianx.kuo@intel.com> <20211004050318.1816-2-ianx.kuo@intel.com> <2b5a17e9-8894-fa95-15d1-a00d8732ff1e@posteo.de> In-Reply-To: <2b5a17e9-8894-fa95-15d1-a00d8732ff1e@posteo.de> Accept-Language: en-AS, zh-TW, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: posteo.de; dkim=none (message not signed) header.d=none;posteo.de; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b3b9b891-0019-4dc4-84ef-08d98746755d x-ms-traffictypediagnostic: PH0PR11MB4935: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fSBhRAdMUILaxgFYmxuXDghBYbvIOqP4mOy9RojTAqPEVpbsPuP50RgFLUztVmgkEQRtwYnCnX7fofT16TFJXD8/zXQqekxxGdfUmZXJMPoWuBO0EOS8rMbz5zzad8aDBeHxp0fJa7lCYCY4n4DZxtW4iDJFvuB76YWnMLBcl6LS+3v3bhj15rfqThJiuz4/SXM6N/2ewule0kWx5hhuHvB0i14G1ry7n2nuSQjLpKwye8SrAWbq4TIs3uFaEMKg5pg9fYzuOhHLX9lV/dvv1FXxdIKUeUBxXcu+OrvNk4EfYBbcQLR6RuQ9oTHTkY9wj67DlD6ToilL733iiLRBjFN+usJ1V1aZ96Q3n+XV6lE1DtOneULXAdGbNpzDljrr9gz+gBtY+th+2QYwwAa8w6nH957F9xh6BIz3dG/l02eVyq6+zpXGMFKMUKQ4PLNymPcrf2CRb/mkN1jQyDrChctJpaJst1UTKYZkv6o3mw6xtK57vZfvQ64UxIR0uDSe+uUrGXbwaPomvAq7MkkOlNnNjVX2l3Qi8knxcq1mCXTzlCGBfoBqPOpELbZuMae/QzbW9/v0C5dYEzUVyMjHr2vZS0M/XJ+IeM2yGe85w9TjtEqwIIAENueMjSfIyrYOV5nH0svYr/seKGKIaSKt06VrA5rKRiNl0F4GN3sgB8AjolvklTukDOGg/4YtcOll5u8xeXoY4IwJfPEHvxUBuBGzv7GpIgWNHa/gwcLjzINjsx1Zg1YXOlKcWHNYjwTtKURjzeLegkG0CItyCvc7AhkU0YVlvi26dwnpzT2PZWSVpqtKuJLGstj1VFRUwcAiceI/m48cmw9VjgOI7R6ysw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5174.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(186003)(86362001)(107886003)(26005)(7696005)(83380400001)(53546011)(8676002)(5660300002)(66574015)(6506007)(110136005)(122000001)(4326008)(71200400001)(33656002)(966005)(55016002)(38070700005)(8936002)(2906002)(52536014)(38100700002)(66556008)(54906003)(66476007)(64756008)(66446008)(76116006)(66946007)(508600001)(9686003)(316002)(14943795004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bEdJVmNwRzFSTXJMR1FqVEZkMVJiSGFHaHVwUmVmMlhPVEJUekFsakFJRmNW?= =?utf-8?B?OUdVcStuRXlQM0ladlRJTEFaSlZYNm5lT3dzeGdMR1NYWU5mRk1kbktycG1D?= =?utf-8?B?MUFMWm02eTNxaTIyMW5sWCtZOCtRbjJvZnJZM2hvVW8zV1NFQURpMlNzdmQv?= =?utf-8?B?UCtxVitpU2ZYNjAwVGhEZ0J0TmEvcG1CUmxPUGlLVCtwL3lJZ3RabzZsQVBr?= =?utf-8?B?MnV2SkZnSWF2Nk5iazgrWEtpb0tZUWNmMEpJK0h1eG1jeWdMVHZIb3ZHUElp?= =?utf-8?B?N2RwMlFBSFNjTHoxZGhJdGxBK1JxZFlkWkY2Vk5HaHpyZThvNVpNZmtzNVVa?= =?utf-8?B?STByS0E1YklsRjR0dDl3RnhBS0RqWFo2NXB3QkQzRTJHa0F1eDIvUW9rZkxP?= =?utf-8?B?a3BaYWlMNmxNc21jRVBwbVJlQkVJYXdtNS9KSWNSTXd4cDgxeEx6RitlYm55?= =?utf-8?B?ekx4dWpQcU9mNnRvc0s0UjZ1a0FITC8vaW9GRExuK3BFQlUxcmx4bUVPb3o0?= =?utf-8?B?SkgveGdZT1BlaS9idFRmMWUzVi9IT20zZCt3UkdKeXRBQnljbXJFaC93bUVF?= =?utf-8?B?V2lVTWxqZUROSU03UEJOdmRMMC9jYTdEU2NlckZBZHBLNUUzcW9wN0lJMVNq?= =?utf-8?B?UjNEMWhGL2FlU3dqWGo5elFmUmNOeEovZzdJSWYyY043enQxd01FMmhwS1BO?= =?utf-8?B?Ri9icVNhMFVKbXJ5a3puOTV5TGFFTVdmcjcyeU9QYTVwTWlOQlRxQ25rdTMx?= =?utf-8?B?T3AwR2pUUGtxN0Q5eGxONi9kUTlvaHVqTlJNbmxpM3p6SWNOMC9JMy8vS2x3?= =?utf-8?B?dGhxVjg5dGptTXBnb1FjWnhSdGNycEFBeHR0TythWFd6bmZVRGdLTjB2bncw?= =?utf-8?B?MDlJQjJrVEJ1eEk1aEhnM2NuanhzeGV3ak1iVTRlWDVXalRqUWk3NkJnb01x?= =?utf-8?B?VkdwKzlscG9MUUJDTEhXUUtLUG15YUNQdVUxWEV0QWZkUWxuZEdVb1BUQmJ6?= =?utf-8?B?Tm96OWVLMGNXWEtUUUwyWTU0OGlBZ1EwY2tPd3A0OVhDRFNhNjkxbjYzL3lK?= =?utf-8?B?T2pkN21tZVk1dDFlZ2czWjRnMFNaRGRUTmNFd1Z6MWNVL21ieHJ3VWNsdHV1?= =?utf-8?B?QzFaWnNVVEFoTUN1Q2hXaHY4U2NuU29kOElCVDBVLzVkMUxtVEgwQkNhL1VV?= =?utf-8?B?dmN5WnlqZ2FzV2ZSdGhKQ0JsS1g4RVFyN21GL0QzVkNOWCtaN0dmQkdjWWxa?= =?utf-8?B?Zm9TUlBPNFNmWUNudVp4cTV4ejFibmhiS3NEK0JLYkpZVnJIdC9obXRuL0gy?= =?utf-8?B?VG80ZnQrbXBNQmNKb3FJTmdmeDNyeWIzUCtHSHVUOVZleThzc1pCamtTaXMz?= =?utf-8?B?WXo1V1NJQk44ZXhpRWJVNkJQQ1hreStobWhPS21PMmVLWTdWYnVDUGREM1Ba?= =?utf-8?B?TDdHNnU4TkZsOXpMRmw4aTg4MUdSRnBORkwzRWlQUjFmTVo4WUkxWVhrdEZP?= =?utf-8?B?NDRodWMzNUZtYVlwZUpaRnRIRmFWekNvMTd1ZlZFTERIWnZ6YXR0QlhTQjlW?= =?utf-8?B?ZGtwSVN4ZjE5QnUwTnZIZ2RTNkdKZFc1b0lzNktrdklHSTVEa2pNSzlXRWV1?= =?utf-8?B?bUFyamM4R0F1elEwV3JGaVp0MHF4bmEzbkQ0V3hpekNZbEhQbHN6Wk02UDZE?= =?utf-8?B?ZUFpdUZCQU50VlRJcVg4SUhMblZuWkF4QWFma2trbFVYUDVRU0FLM1hnRHFZ?= =?utf-8?Q?tvXw5uKS0EZzARatKGHzz48lUz108EIkgbVyn5Z?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5174.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3b9b891-0019-4dc4-84ef-08d98746755d X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2021 14:51:33.4098 (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: gmC+8NG4lmuhsle4T27YbC0IixEXu4ebqsRWQ1kuuQ8c/3gxMDzab2xD1B+JQ4evgknfR0evZgl2SZT+upGS/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4935 Return-Path: ianx.kuo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWFydmluDQoNClJlcGx5IGluIG1haWwNCg0KVGhhbmtzLA0KSWFuIEt1bw0KDQotLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rl by5kZT4gDQpTZW50OiBNb25kYXksIE9jdG9iZXIgNCwgMjAyMSA4OjU2IFBNDQpUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IEt1bywgSWFuWCA8aWFueC5rdW9AaW50ZWwuY29tPg0KQ2M6IENoYW4s IEFteSA8YW15LmNoYW5AaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IExpbWluZyBHYW8g PGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBp bnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NSAxLzRdIE1kZVBr Zy9CYXNlTGliOiBBZGQgUXVpY2tTb3J0IGZ1bmN0aW9uIG9uIEJhc2VMaWINCg0KR29vZCBkYXkg SWFuWCwNCg0KT24gMDQvMTAvMjAyMSAwNzowMywgSWFuWCBLdW8gd3JvdGU6DQo+IEZyb206IElh blggS3VvIDxpYW54Lmt1b0BpbnRlbC5jb20+DQo+DQo+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjc1DQo+DQo+IEFkZCBRdWlja1NvcnQgZnVu Y3Rpb24gaW50byBCYXNlTGliDQo+DQo+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6 IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IFpoaWd1YW5nIExp dSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSWFuWCBLdW8gPGlh bngua3VvQGludGVsLmNvbT4NCj4gLS0tDQo+ICAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNl TGliLmggICAgICAgICAgICAgIHwgIDQ5ICsrKysrKysrDQo+ICAgTWRlUGtnL0xpYnJhcnkvQmFz ZUxpYi9CYXNlTGliLmluZiAgICAgICAgICAgIHwgICAxICsNCj4gICBNZGVQa2cvTGlicmFyeS9C YXNlTGliL1F1aWNrU29ydC5jICAgICAgICAgICAgfCAxMTcgKysrKysrKysrKysrKysrKysrDQo+ ICAgLi4uL0xpYnJhcnkvQmFzZUxpYi9Vbml0VGVzdEhvc3RCYXNlTGliLmluZiAgIHwgICAzICst DQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0K PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTGlicmFyeS9CYXNlTGliL1F1aWNrU29ydC5j DQo+DQo+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaCANCj4g Yi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiBpbmRleCAyNDUyYzFkOTJlLi4y NDIzMTY5YmU0IDEwMDY0NA0KPiAtLS0gYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIu aA0KPiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiBAQCAtMTMsNiAr MTMsNyBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAg IA0KPiAgICNpZm5kZWYgX19CQVNFX0xJQl9fDQo+ICAgI2RlZmluZSBfX0JBU0VfTElCX18NCj4g KyNpbmNsdWRlIDxVZWZpL1VlZmlCYXNlVHlwZS5oPg0KDQpBY2NpZGVudGFsIGNoYW5nZT8NCklh bjogTm8sICBXaXRob3V0IGl0LCBpdCB3b24ndCBmaW5kIHR5cGUgIkVGSV9TVEFUVVMiIGFuZCB3 aWxsIGNhdXNlIGJ1aWxkIGVycm9yLiBPcmlnaW4gcmV0dXJuIHR5cGUgaXMgIlZPSUQiIG9uIGZ1 bmN0aW9uICJWT0lEIFF1aWNrU29ydFdvcmtlciIuIA0KQW5kIG15IGNoYW5nZSAiRUZJX1NUQVRV UyBRdWlja1NvcnQiLCBzbyAiRUZJX1NUQVRVUyIgZGVwZW5kcyBvbiAiVWVmaUJhc2VUeXBlLmgi DQoNCg0KPiAgIA0KPiAgIC8vDQo+ICAgLy8gRGVmaW5pdGlvbnMgZm9yIGFyY2hpdGVjdHVyZS1z cGVjaWZpYyB0eXBlcyBAQCAtMjg1Niw2ICsyODU3LDU0IA0KPiBAQCBSZW1vdmVFbnRyeUxpc3Qg KA0KPiAgIC8vDQo+ICAgLy8gTWF0aCBTZXJ2aWNlcw0KPiAgIC8vDQo+ICsvKioNCj4gKyAgUHJv dG90eXBlIGZvciBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBhbnkgdHdvIGVsZW1lbnQgdHlwZXMu DQo+ICsNCj4gKyAgQHBhcmFtW2luXSBCdWZmZXIxICAgICAgICAgICAgICAgICAgVGhlIHBvaW50 ZXIgdG8gZmlyc3QgYnVmZmVyLg0KPiArICBAcGFyYW1baW5dIEJ1ZmZlcjIgICAgICAgICAgICAg ICAgICBUaGUgcG9pbnRlciB0byBzZWNvbmQgYnVmZmVyLg0KPiArDQo+ICsgIEByZXR2YWwgMCAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcjEgZXF1YWwgdG8gQnVmZmVyMi4NCj4gKyAg QHJldHVybiA8MCAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyMSBpcyBsZXNzIHRoYW4g QnVmZmVyMi4NCj4gKyAgQHJldHVybiA+MCAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVy MSBpcyBncmVhdGVyIHRoYW4gQnVmZmVyMi4NCj4gKyoqLw0KPiArdHlwZWRlZg0KPiArSU5UTg0K PiArKEVGSUFQSSAqQkFTRV9TT1JUX0NPTVBBUkUpKA0KPiArICBJTiBDT05TVCBWT0lEICAgICAg ICAgICAgICAgICAqQnVmZmVyMSwNCj4gKyAgSU4gQ09OU1QgVk9JRCAgICAgICAgICAgICAgICAg KkJ1ZmZlcjINCj4gKyAgKTsNCj4gKw0KPiArLyoqDQo+ICsgIFdvcmtlciBmdW5jdGlvbiBmb3Ig UXVpY2tTb3J0aW5nLg0KDQoiV29ya2VyIiBmdW5jdGlvbnMgYXJlIHVzdWFsbHkgcHJpdmF0ZS4N CklhbjogVGhhbmsgZm9yIHJlcGx5LCB3aWxsIHJlbW92ZSAiV29ya2VyIiBpbiBteSBuZXh0IHBh dGNoLg0KDQo+IFRoaXMgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIHRvIHBlcmZvcm0gUXVpY2tTb3J0 LA0KPiArICBleGNlcHQgdGhhdCBpcyB1c2VzIHRoZSBwcmUtYWxsb2NhdGVkIGJ1ZmZlciBzbyB0 aGUgaW4gcGxhY2UgDQo+ICsgc29ydGluZyBkb2VzIG5vdCBuZWVkIHRvICBhbGxvY2F0ZSBhbmQg ZnJlZSBidWZmZXJzIGNvbnN0YW50bHkuDQo+ICsNCj4gKyAgRWFjaCBlbGVtZW50IG11c3QgYmUg ZXF1YWwgc2l6ZWQuDQo+ICsNCj4gKyAgaWYgQ291bnQgaXMgPCAyIHRoZW4gcGVyZm9ybSBubyBh Y3Rpb24uDQoNClRoaXMgZm9sbG93cyBkaXJlY3RseSBmcm9tIHRoZSBkZWZpbml0aW9uIG9mIHNv cnRpbmcuDQoNCj4gKyAgaWYgU2l6ZSBpcyA8IDEgdGhlbiBwZXJmb3JtIG5vIGFjdGlvbi4NCg0K SXQgd291bGQgYmUgcGVyZmVjdGx5IHZhbGlkIHRvIEFTU0VSVCBvbiB0aGlzIGluIG15IG9waW5p b24sIHNvIEkgd291bGQgbm90IGhhcmRjb2RlIHRoZSBiZWhhdmlvdXIgaW4gdGhlIGZ1bmN0aW9u IHNwZWMuDQoNCj4gKw0KPiArICBAcGFyYW1baW4sIG91dF0gQnVmZmVyVG9Tb3J0ICAgb24gY2Fs bCBhIEJ1ZmZlciBvZiAocG9zc2libHkgc29ydGVkKSBlbGVtZW50cw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb24gcmV0dXJuIGEgYnVmZmVyIG9mIHNvcnRlZCBlbGVtZW50 cw0KPiArICBAcGFyYW1baW5dIENvdW50ICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBlbGVt ZW50cyBpbiB0aGUgYnVmZmVyIHRvIHNvcnQNCj4gKyAgQHBhcmFtW2luXSBFbGVtZW50U2l6ZSAg ICAgICAgIFNpemUgb2YgYW4gZWxlbWVudCBpbiBieXRlcw0KPiArICBAcGFyYW1baW5dIENvbXBh cmVGdW5jdGlvbiAgICAgVGhlIGZ1bmN0aW9uIHRvIGNhbGwgdG8gcGVyZm9ybSB0aGUgY29tcGFy aXNvbg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYW55IDIgZWxlbWVu dHMNCj4gKyAgQHBhcmFtIFtpbl0gQnVmZmVyT25lRWxlbWVudCAgIENhbGxlciBwcm92aWRlZCBi dWZmZXIgd2hvc2Ugc2l6ZSBlcXVhbHMgdG8gRWxlbWVudFNpemUuDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJdCdzIHVzZWQgYnkgUXVpY2tTb3J0KCkgZm9yIHN3YXBwaW5n IGluIHNvcnRpbmcuDQoNClRoaXMgaXMgb3V0LCBub3QgaW4uIE1heWJlIGFkZCBhIG5vdGUgaXRz IGNvbnRlbnQgaXMgdW5kZWZpbmVkIG9uIHJldHVybj8NCklhbjogR290IGl0LCB3aWxsIGNoYW5n ZSBwYXJhbWV0ZXIgdHlwZSBmcm9tICJbaW5dIiB0byAiW291dF0iIGluIG15IG5leHQgcGF0Y2gu DQoNCj4gKw0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIHF1aWNrIHNv cnQgaXMgZmluaXNoZWQuDQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBXaGVu IEJ1ZmZlclRvU29ydCBpcyBOVUxMLCANCj4gKyBDb21wYXJlRnVuY3Rpb24gaXMgTlVMTCBvciBC dWZmZXIgaXMgTlVMTA0KDQpUaGVzZSBjb25zdHJhaW50cyBhcmUgYWxsIGNhbGxlciBjb25zdHJh aW50cyBhbmQgbm90IGNvbnN0cmFpbnRzIG9uIGUuZy4gDQp1bnRydXN0ZWQsIGV4dGVybmFsIGRh dGEuIEhlbmNlLCBpbiBteSBvcGluaW9uIGl0IGlzIHBlcmZlY3RseSB2YWxpZCB0byBBU1NFUlQg dGhlbSByYXRoZXIgdGhhbiBydW50aW1lLWNoZWNrIGFuZCBlbWl0IHN0YXR1cyBjb2Rlcy4gVGhp cyB3b3VsZCBtZWFuIHRoZSBmdW5jdGlvbiBjb3VsZCByZXR1cm4gVk9JRCwgdGhlcmUnZCBiZSBu byBuZWVkIHRvIGNoZWNrIHN0YXR1cyBjb2RlcywgYW5kIHRoZXJlJ2QgYmUgbm8gbmVlZCB0byB3 b3JyeSBhYm91dCBpbnRlcm1lZGlhdGUgc3RhdGVzIChlLmcuIA0Kd2hhdCBpcyB0aGUgY29udGVu dCBvZiBCdWZmZXJUb1NvcnQgd2hlbiBhbiBlcnJvciBpcyByZXR1cm5lZD8pLg0KSWFuOiBHb3Qg aXQsIHdpbGwgY2hhbmdlIHJldHVybiB0eXBlIGZyb20gIkVGSV9TVEFUVVMiIHRvICJWT0lEIiBp biBteSBuZXh0IHBhdGNoLg0KDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiAr UXVpY2tTb3J0ICgNCj4gKyAgSU4gT1VUIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAq QnVmZmVyVG9Tb3J0LA0KPiArICBJTiBDT05TVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAg IENvdW50LA0KPiArICBJTiBDT05TVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1l bnRTaXplLA0KPiArICBJTiAgICAgICBCQVNFX1NPUlRfQ09NUEFSRSAgICAgICAgICAgIENvbXBh cmVGdW5jdGlvbiwNCj4gKyAgSU4gVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq QnVmZmVyT25lRWxlbWVudA0KDQpUaGlzIGlzIE9VVCwgbm90IElOLg0KSWFuOiBHb3QgaXQsIHdp bGwgY2hhbmdlIGl0IGluIG15IG5leHQgcGF0Y2guDQoNCj4gKyAgKTsNCj4gICANCj4gICAvKioN Cj4gICAgIFNoaWZ0cyBhIDY0LWJpdCBpbnRlZ2VyIGxlZnQgYmV0d2VlbiAwIGFuZCA2MyBiaXRz LiBUaGUgbG93IGJpdHMgDQo+IGFyZSBmaWxsZWQgZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5 L0Jhc2VMaWIvQmFzZUxpYi5pbmYgDQo+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGli LmluZg0KPiBpbmRleCA2ZWZhNTMxNWI2Li5jZWJkYTNiMjEwIDEwMDY0NA0KPiAtLS0gYS9NZGVQ a2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VMaWIvQmFzZUxpYi5pbmYNCj4gQEAgLTMyLDYgKzMyLDcgQEANCj4gICAgIFN3YXBCeXRlczE2 LmMNCj4gICAgIExvbmdKdW1wLmMNCj4gICAgIFNldEp1bXAuYw0KPiArICBRdWlja1NvcnQuYw0K PiAgICAgUlNoaWZ0VTY0LmMNCj4gICAgIFJSb3RVNjQuYw0KPiAgICAgUlJvdFUzMi5jDQo+IGRp ZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1F1aWNrU29ydC5jIA0KPiBiL01kZVBr Zy9MaWJyYXJ5L0Jhc2VMaWIvUXVpY2tTb3J0LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g aW5kZXggMDAwMDAwMDAwMC4uZjk1YWY5ZTIzOA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL01k ZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvUXVpY2tTb3J0LmMNCj4gQEAgLTAsMCArMSwxMTcgQEANCj4g Ky8qKiBAZmlsZQ0KPiArICBNYXRoIHdvcmtlciBmdW5jdGlvbnMuDQo+ICsNCj4gKyAgQ29weXJp Z2h0IChjKSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsN Cj4gKyoqLw0KPiArDQo+ICsjaW5jbHVkZSAiQmFzZUxpYkludGVybmFscy5oIg0KPiArI2luY2x1 ZGUgPFVlZmkvVWVmaUJhc2VUeXBlLmg+DQoNCklzIHRoZSBzZWNvbmQgaW5jbHVkZSBub3QgaW1w bGllZCBieSB0aGUgZmlyc3Q/DQpJYW46IElmIHdlIGNoYW5nZSBRdWlja1NvcnQgcmV0dXJuIHR5 cGUgZnJvbSAiRUZJX1NUQVRVUyIgdG8gIlZPSUQiLCB0aGUgaW5jbHVkZSBjYW4gYmUgcmVtb3Zl ZC4NCg0KPiArDQo+ICsvKioNCj4gKyAgV29ya2VyIGZ1bmN0aW9uIGZvciBRdWlja1NvcnRpbmcu ICBUaGlzIGZ1bmN0aW9uIGlzIGlkZW50aWNhbCB0byANCj4gK3BlcmZvcm0gUXVpY2tTb3J0LA0K PiArICBleGNlcHQgdGhhdCBpcyB1c2VzIHRoZSBwcmUtYWxsb2NhdGVkIGJ1ZmZlciBzbyB0aGUg aW4gcGxhY2UgDQo+ICtzb3J0aW5nIGRvZXMgbm90IG5lZWQgdG8NCj4gKyAgYWxsb2NhdGUgYW5k IGZyZWUgYnVmZmVycyBjb25zdGFudGx5Lg0KPiArDQo+ICsgIEVhY2ggZWxlbWVudCBtdXN0IGJl IGVxdWFsIHNpemVkLg0KPiArDQo+ICsgIGlmIENvdW50IGlzIDwgMiB0aGVuIHBlcmZvcm0gbm8g YWN0aW9uLg0KPiArICBpZiBTaXplIGlzIDwgMSB0aGVuIHBlcmZvcm0gbm8gYWN0aW9uLg0KPiAr DQo+ICsgIEBwYXJhbVtpbiwgb3V0XSBCdWZmZXJUb1NvcnQgICBvbiBjYWxsIGEgQnVmZmVyIG9m IChwb3NzaWJseSBzb3J0ZWQpIGVsZW1lbnRzDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvbiByZXR1cm4gYSBidWZmZXIgb2Ygc29ydGVkIGVsZW1lbnRzDQo+ICsgIEBwYXJh bVtpbl0gQ291bnQgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBi dWZmZXIgdG8gc29ydA0KPiArICBAcGFyYW1baW5dIEVsZW1lbnRTaXplICAgICAgICAgU2l6ZSBv ZiBhbiBlbGVtZW50IGluIGJ5dGVzDQo+ICsgIEBwYXJhbVtpbl0gQ29tcGFyZUZ1bmN0aW9uICAg ICBUaGUgZnVuY3Rpb24gdG8gY2FsbCB0byBwZXJmb3JtIHRoZSBjb21wYXJpc29uDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhbnkgMiBlbGVtZW50cw0KPiArICBAcGFy YW0gW2luXSBCdWZmZXJPbmVFbGVtZW50ICAgQ2FsbGVyIHByb3ZpZGVkIGJ1ZmZlciB3aG9zZSBz aXplIGVxdWFscyB0byBFbGVtZW50U2l6ZS4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEl0J3MgdXNlZCBieSBRdWlja1NvcnQoKSBmb3Igc3dhcHBpbmcgaW4gc29ydGluZy4N Cj4gKw0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIHF1aWNrIHNvcnQg aXMgZmluaXNoZWQuDQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBXaGVuIEJ1 ZmZlclRvU29ydCBpcyBOVUxMLCANCj4gKyBDb21wYXJlRnVuY3Rpb24gaXMgTlVMTCwgb3IgQnVm ZmVyT25lRWxlbWVudCBpcyBOVUxMDQo+ICsNCj4gKyoqLw0KPiArRUZJX1NUQVRVUw0KPiArRUZJ QVBJDQo+ICtRdWlja1NvcnQgKA0KPiArICBJTiBPVVQgVk9JRCAgICAgICAgICAgICAgICAgICAg ICAgICAgICpCdWZmZXJUb1NvcnQsDQo+ICsgIElOIENPTlNUIFVJTlROICAgICAgICAgICAgICAg ICAgICAgICAgQ291bnQsDQo+ICsgIElOIENPTlNUIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgRWxlbWVudFNpemUsDQo+ICsgIElOICAgICAgIEJBU0VfU09SVF9DT01QQVJFICAgICAgICAg ICAgQ29tcGFyZUZ1bmN0aW9uLA0KPiArICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICpCdWZmZXJPbmVFbGVtZW50DQo+ICsgICkNCj4gK3sNCj4gKyAgVk9JRCAgICAgICAg KlBpdm90Ow0KPiArICBVSU5UTiAgICAgICBMb29wQ291bnQ7DQo+ICsgIFVJTlROICAgICAgIE5l eHRTd2FwTG9jYXRpb247DQo+ICsNCj4gKyAgaWYgKChCdWZmZXJUb1NvcnQgPT0gTlVMTCkgfHwg KENvbXBhcmVGdW5jdGlvbiA9PSBOVUxMKSB8fCAoQnVmZmVyT25lRWxlbWVudCA9PSBOVUxMKSkg ew0KPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICsgIH0NCj4gKw0KPiAr ICBpZiAoQ291bnQgPCAyIHx8IEVsZW1lbnRTaXplICA8IDEpIHsNCj4gKyAgICByZXR1cm4gRUZJ X1NVQ0NFU1M7DQo+ICsgIH0NCj4gKw0KPiArICBOZXh0U3dhcExvY2F0aW9uID0gMDsNCj4gKw0K PiArICAvLw0KPiArICAvLyBwaWNrIGEgcGl2b3QgKHdlIGNob29zZSBsYXN0IGVsZW1lbnQpICAv LyAgUGl2b3QgPSAoKFVJTlQ4KikgDQo+ICsgQnVmZmVyVG9Tb3J0ICsgKChDb3VudCAtIDEpICog RWxlbWVudFNpemUpKTsNCj4gKw0KPiArICAvLw0KPiArICAvLyBOb3cgZ2V0IHRoZSBwaXZvdCBz dWNoIHRoYXQgYWxsIG9uICJsZWZ0IiBhcmUgYmVsb3cgaXQgIC8vIGFuZCANCj4gKyBldmVyeXRo aW5nICJyaWdodCIgYXJlIGFib3ZlIGl0ICAvLyAgZm9yIChMb29wQ291bnQgPSAwOyBMb29wQ291 bnQgPCANCj4gKyBDb3VudCAtMTsgTG9vcENvdW50KyspIHsNCj4gKyAgICAvLw0KPiArICAgIC8v IGlmIHRoZSBlbGVtZW50IGlzIGxlc3MgdGhhbiB0aGUgcGl2b3QNCj4gKyAgICAvLw0KPiArICAg IGlmIChDb21wYXJlRnVuY3Rpb24gKChWT0lEKikgKChVSU5UOCopIEJ1ZmZlclRvU29ydCArIA0K PiArICgoTG9vcENvdW50KSAqIEVsZW1lbnRTaXplKSksIFBpdm90KSA8PSAwKXsNCg0KQ29tbWVu dCBtaXNtYXRjaGVzIGxvZ2ljLCBsb2dpYyBzd2FwcyBvbiBlcXVhbGl0eSB0b28uDQoNCkJlc3Qg cmVnYXJkcywNCk1hcnZpbg0KDQo+ICsgICAgICAvLw0KPiArICAgICAgLy8gc3dhcA0KPiArICAg ICAgLy8NCj4gKyAgICAgIENvcHlNZW0gKEJ1ZmZlck9uZUVsZW1lbnQsIChVSU5UOCopIEJ1ZmZl clRvU29ydCArIChOZXh0U3dhcExvY2F0aW9uICogRWxlbWVudFNpemUpLCBFbGVtZW50U2l6ZSk7 DQo+ICsgICAgICBDb3B5TWVtICgoVUlOVDgqKSBCdWZmZXJUb1NvcnQgKyAoTmV4dFN3YXBMb2Nh dGlvbiAqIEVsZW1lbnRTaXplKSwgKFVJTlQ4KikgQnVmZmVyVG9Tb3J0ICsgKChMb29wQ291bnQp ICogRWxlbWVudFNpemUpLCBFbGVtZW50U2l6ZSk7DQo+ICsgICAgICBDb3B5TWVtICgoVUlOVDgq KSBCdWZmZXJUb1NvcnQgKyAoKExvb3BDb3VudCkqRWxlbWVudFNpemUpLCANCj4gKyBCdWZmZXJP bmVFbGVtZW50LCBFbGVtZW50U2l6ZSk7DQo+ICsNCj4gKyAgICAgIC8vDQo+ICsgICAgICAvLyBp bmNyZW1lbnQgTmV4dFN3YXBMb2NhdGlvbg0KPiArICAgICAgLy8NCj4gKyAgICAgIE5leHRTd2Fw TG9jYXRpb24rKzsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKyAgLy8NCj4gKyAgLy8gc3dhcCBwaXZv dCB0byBpdCdzIGZpbmFsIHBvc2l0aW9uIChOZXh0U3dhcExvY2F0aW9uKSAgLy8gIA0KPiArIENv cHlNZW0gKEJ1ZmZlck9uZUVsZW1lbnQsIFBpdm90LCBFbGVtZW50U2l6ZSk7ICBDb3B5TWVtIChQ aXZvdCwgDQo+ICsgKFVJTlQ4KikgQnVmZmVyVG9Tb3J0ICsgKE5leHRTd2FwTG9jYXRpb24gKiBF bGVtZW50U2l6ZSksIA0KPiArIEVsZW1lbnRTaXplKTsgIENvcHlNZW0gKChVSU5UOCopIEJ1ZmZl clRvU29ydCArIChOZXh0U3dhcExvY2F0aW9uICogDQo+ICsgRWxlbWVudFNpemUpLCBCdWZmZXJP bmVFbGVtZW50LCBFbGVtZW50U2l6ZSk7DQo+ICsNCj4gKyAgLy8NCj4gKyAgLy8gTm93IHJlY3Vy c2Ugb24gMiBwYXJ0aWFsIGxpc3RzLiAgbmVpdGhlciBvZiB0aGVzZSB3aWxsIGhhdmUgdGhlIA0K PiArICdwaXZvdCcgZWxlbWVudCAgLy8gSUUgbGlzdCBpcyBzb3J0ZWQgbGVmdCBoYWxmLCBwaXZv dCBlbGVtZW50LCBzb3J0ZWQgcmlnaHQgaGFsZi4uLg0KPiArICAvLw0KPiArICBpZiAoTmV4dFN3 YXBMb2NhdGlvbiA+PSAyKSB7DQo+ICsgICAgUXVpY2tTb3J0ICgNCj4gKyAgICAgIEJ1ZmZlclRv U29ydCwNCj4gKyAgICAgIE5leHRTd2FwTG9jYXRpb24sDQo+ICsgICAgICBFbGVtZW50U2l6ZSwN Cj4gKyAgICAgIENvbXBhcmVGdW5jdGlvbiwNCj4gKyAgICAgIEJ1ZmZlck9uZUVsZW1lbnQNCj4g KyAgICAgICk7DQo+ICsgIH0NCj4gKw0KPiArICBpZiAoKENvdW50IC0gTmV4dFN3YXBMb2NhdGlv biAtIDEpID49IDIpIHsNCj4gKyAgICBRdWlja1NvcnQgKA0KPiArICAgICAgKFVJTlQ4ICopQnVm ZmVyVG9Tb3J0ICsgKE5leHRTd2FwTG9jYXRpb24gKyAxKSAqIEVsZW1lbnRTaXplLA0KPiArICAg ICAgQ291bnQgLSBOZXh0U3dhcExvY2F0aW9uIC0gMSwNCj4gKyAgICAgIEVsZW1lbnRTaXplLA0K PiArICAgICAgQ29tcGFyZUZ1bmN0aW9uLA0KPiArICAgICAgQnVmZmVyT25lRWxlbWVudA0KPiAr ICAgICAgKTsNCj4gKyAgfQ0KPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ICt9DQo+IGRpZmYg LS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1VuaXRUZXN0SG9zdEJhc2VMaWIuaW5mIA0K PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvVW5pdFRlc3RIb3N0QmFzZUxpYi5pbmYNCj4gaW5k ZXggZWFlMWE3MTU4ZC4uZDA5YmQxMmJlZiAxMDA2NDQNCj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkv QmFzZUxpYi9Vbml0VGVzdEhvc3RCYXNlTGliLmluZg0KPiArKysgYi9NZGVQa2cvTGlicmFyeS9C YXNlTGliL1VuaXRUZXN0SG9zdEJhc2VMaWIuaW5mDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgICMj IEBmaWxlDQo+ICAgIyAgQmFzZSBMaWJyYXJ5IGltcGxlbWVudGF0aW9uIGZvciB1c2Ugd2l0aCBo b3N0IGJhc2VkIHVuaXQgdGVzdHMuDQo+ICAgIw0KPiAtIyAgQ29weXJpZ2h0IChjKSAyMDA3IC0g MjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+IHJlc2VydmVkLjxCUj4NCj4g KyMgIENvcHlyaWdodCAoYykgMjAwNyAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIA0KPiArcmVzZXJ2ZWQuPEJSPg0KPiAgICMgIFBvcnRpb25zIGNvcHlyaWdodCAoYykgMjAw OCAtIDIwMDksIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIyAgUG9y dGlvbnMgY29weXJpZ2h0IChjKSAyMDExIC0gMjAxMywgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICAgIyAgQ29weXJpZ2h0IChjKSAyMDIwLCBIZXdsZXR0IFBhY2thcmQgRW50 ZXJwcmlzZSBEZXZlbG9wbWVudCBMUC4gDQo+IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiBAQCAt MzMsNiArMzMsNyBAQA0KPiAgICAgU3dhcEJ5dGVzMTYuYw0KPiAgICAgTG9uZ0p1bXAuYw0KPiAg ICAgU2V0SnVtcC5jDQo+ICsgIFF1aWNrU29ydC5jDQo+ICAgICBSU2hpZnRVNjQuYw0KPiAgICAg UlJvdFU2NC5jDQo+ICAgICBSUm90VTMyLmMNCg0K