From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web12.31605.1628820615706738610 for ; Thu, 12 Aug 2021 19:10:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=n3lcEohi; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10074"; a="202679778" X-IronPort-AV: E=Sophos;i="5.84,317,1620716400"; d="scan'208";a="202679778" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Aug 2021 19:10:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,317,1620716400"; d="scan'208";a="571674327" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga004.jf.intel.com with ESMTP; 12 Aug 2021 19:10:14 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 12 Aug 2021 19:10:13 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 12 Aug 2021 19:10:13 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) 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, 12 Aug 2021 19:10:13 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) 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.2242.10; Thu, 12 Aug 2021 19:10:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OwIU/5+bUuGTVT9Qp3h923ULkIEhV8LjW1m/7N0fs99ZvlB71ZlwFwsIqrFRrgjSelKbcH1jlPej0M011haw6/NhMsDOa9pZbbVWDo+8cT6N1tgc+zj3jOeOf5tblPNod4k5AlFo9bYlkax6W7k7luBGHszutzsa2y8Nuo9OSacz0ut9bQVLVvzOztiOTYGLM/i0NmzQtYafUmLvx5b+qdeJYy5yPWxzx9zWcOMOjyYZPcszYFyBH7AL6oIG0VwT9HRXeXERP0s7ySdPyx3rvNEUc48hfaKOyR+iy4oAz8qLhYbUBcvRX4ARlRxzoSHvfG3QX2I0qA3lz4XiG+/+5g== 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=tidJi1k3zKBPJio5rHc4QkFkRrkvKcQpPD80Uo3jGIM=; b=FwP7WyCv8wVUXdG3KBDySGKYZb0FkNs0AhtzXoOJ1AMw63vMwgqzyQHpCSCarMLO+bRT8O/6WR06dNZQFoiUE0nzRg/PYlqYeBWFSgf/+Sk16CrsbR64HZTvHPPQuLhk3/aGS5rGyR4BMsbIEB/FFxk8lWiF4dO5C5tYM/y7SBZWL1f69784gmHzMCU7TaCiafvpdVWlywIVTxZEwfzeSLQ9yr4Eo1pLjOcBmsPZDPbxzDdR4PKapsT6R8wLSkhG6SAF49Ycaf7vue8stbKv4yaG7kuTGION5vCz8kYIm1b1I0DKE9cZjd3+1odvR6xi8I6eeRwd2AsrqIcVNsIGvQ== 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=tidJi1k3zKBPJio5rHc4QkFkRrkvKcQpPD80Uo3jGIM=; b=n3lcEohiAHLpTs/pPUc9fzMV2j2NwrgzUdgAlUWENXGQXs/ebU2eQFGVBsT5z0O2nUMBN5vFZdaeHhOtbaneXeCrIjLDOMFcDM1uyV8hUw/zQQ0FDY5HjshI9tWNXkc+tVbN91ekuZovWusDaJQP5KoKiBNm+lLR/1SUPOKTiEs= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB0013.namprd11.prod.outlook.com (2603:10b6:301:67::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.21; Fri, 13 Aug 2021 02:10:07 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::41d4:9acf:4230:9084]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::41d4:9acf:4230:9084%8]) with mapi id 15.20.4415.016; Fri, 13 Aug 2021 02:10:07 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "rebecca@nuviainc.com" , Daryl McDaniel , "Carsey, Jaben" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-libc PATCH 1/1] Update LibC to use safe string functions Thread-Topic: [edk2-devel] [edk2-libc PATCH 1/1] Update LibC to use safe string functions Thread-Index: AQHXW7lQZwr+/XrdhUibHEJzsRqZJatxGRog Date: Fri, 13 Aug 2021 02:10:07 +0000 Message-ID: References: <20210607162145.14377-1-rebecca@nuviainc.com> In-Reply-To: <20210607162145.14377-1-rebecca@nuviainc.com> 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: 14661b1b-55b9-4fe5-b5b4-08d95dff78cd x-ms-traffictypediagnostic: MWHPR11MB0013: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2449; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pQwBvOp6NIP47NVy6PgMJVXJsiWdM57dQBvwPSzs1lMP0ufZFTqiaubY5xJ4hTifss8VTeguleYvDfZz91VGiduYuKtlYoBamx2qpiHTOKMJwweAa5eCZ9Q9rzSZwZOJ4jlEFyBANe1PxyQmRjiKMQuksXdBLbCSGJIxSN+W9Byi2y+kxTuXiFVQpW4oQREY2HQAJBuxsTiEur+Z6fnnAXeRy89GDUt7AsgVnovym5PkqGtuFX4C5GPIHMDRzttgKPd+FqQb6TIYXaeWh3d32djOqUxDnuTcLWx2mopzSEv2oIiAFnEvjlUY6eUkYnzUh7VPsu9f94wPxvqUKwlIRWAPBgwLVqxfKOxk0kAS+fbLSiHdy6YNr1SXWBFZf1p6xjD6BpfzFspTahzPl2EFkGwuf6L6KmlT0rQDsbAslpN2GoJtL8XIHEHBp5McvjkxuhRwpt7TkE3MbAqaEV5vnY9LcGdMkOWKNr+84q1qZ+UPP50vIeAsBPzddnEMFQOFheyjWwRgkkAY5Mly9GjIuy8MU2qNP2u+MiGNCQ6jXNQ2ddVRoS+c3rLyMEZ4PdGVT9s07gT/13Na9oHH/CGI1e53jshVDEGWKtonBrRNP1twXGywejv7AdVBYVBACrfIk7aKgVBLh7wyA7edUJYbIP1/OgeqUXUs/0FP9LrHEUTffI1bCPOBVXRqC4Tr+ECe8/hDwaUrZvEvItJc1hhc103any25Dl5BAArlHEEB+Jvm9km/gVhJI8TtuzCS7h6MdxkeG+WKJeN3SZPmzsk2O68pgUFiF0TmUQZrNS1Oio6UkQEtyKTpwvjRSd+P9Or8QJTwyb9tSqHzONsYPMaWUQ== 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)(376002)(396003)(39860400002)(366004)(346002)(136003)(53546011)(5660300002)(186003)(6506007)(86362001)(110136005)(26005)(478600001)(83380400001)(316002)(52536014)(966005)(66946007)(15650500001)(66556008)(2906002)(64756008)(66446008)(8676002)(38070700005)(66476007)(76116006)(55016002)(9686003)(33656002)(38100700002)(71200400001)(7696005)(8936002)(122000001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cVNqbHUrNU54Y3BBS0h0dUlZSWY0QmRISmJvQWFKS1ZHZnhPMlBKN3g4dS8r?= =?utf-8?B?SEJmWS8xbnp6dWV2NHdQdE1GV0dQUnVQTGhwQTNiZXF3WHlUaTBPdmlCRll1?= =?utf-8?B?NkdjaHNDVTcrcHFQS2Z6M1hZQW1ReklSTlhpMDF1YXd3VlNJdzQ5a1lkU0Vh?= =?utf-8?B?dHd1MjZnN1ZIQnZ5WWFmZTR4d0ROeXZXS2pSL0FaUkVMa1QyM1A1blZ2VnNI?= =?utf-8?B?ZW9OdElORWZ0WjhqTnJiTEIvbWpUSVNYREdhK0RycndxcExBeVVYYnZrQ0do?= =?utf-8?B?MVJPK3Q4WU53WHIybTNycncrWGh3TERiajRRMXF1N1FvRnRPdEQwWE5ZNXM4?= =?utf-8?B?NnZyMjI3cFFUdVAvaEJrc3M5NFJwMi9PeTJac3VCWGFTK0x4ZXVwdnB2WGU4?= =?utf-8?B?VjhiS3dDYzlJczZ3dDYvTVJyWExrL3Z6SjM3SXM2Z0dWb0kvb3hTVnQxRlNj?= =?utf-8?B?VGJlc044bUt1RnJKeWpBUmc3eTN1R3ozVVExeEJSQzV6RytINUE1THdpdXRW?= =?utf-8?B?TEZWSFZMcTlQMTVYZjlKTDF4YnlHQ1RHOVdzdHFQVkxweWkzNlZYbjdBVEZ5?= =?utf-8?B?ZnMxbE4vcWRzSDhobnc3NU9ZOFl1ZG9XbHZCWmhOcWgyVzczTFJ5ZWk3QzdZ?= =?utf-8?B?NVV6ZmorTmdleXptQU5pWmNBczFwQnIzUUluQ0VpblR4R21ZTE80QjFsU0xB?= =?utf-8?B?S0JRWFJDQldIdkx3eGZJKzhXYmNkNmJqZk5TalRWK3dOczJlTjJpLzZhc1Zt?= =?utf-8?B?bmNaTHJZQmtHbXp1SG5qUUsxYUErL0Q4cmZRTkdjT28xL2JCbFlGN3ZoSEVi?= =?utf-8?B?M1FNak9hcVk4cE1PbTRnYm8rR0p4Z1dURHl0UkQ1TllkQm5HY1lJL1N4dll4?= =?utf-8?B?WmxGSEJSRHN2SFBYK3VVVFZ6NG12ZHhjdjhxVVA5NndudXlvU0V0am04Sjgy?= =?utf-8?B?cVVxQ3JlQjAyQXlZVy9jTmtPM0M4a2pyMHFzQWVJYmsrZ1BMTytxckFjZnht?= =?utf-8?B?UEtDMUViWVdqMDgvOVVxZmhqVG9LbzQvNTZrMGdTZ21FMTdCTTFUTjVjQkFx?= =?utf-8?B?R0tqMU11UDZlRk4raEMrbzRkSGRFaVc5U2N2MFJheGdFQTBMRFhtN3ZGSkZh?= =?utf-8?B?OHBmc2JBRmFCNC9YZVZCN09QZGhEN2NXWUU0ZzlGN09jaVBVdllBOTg4dHJO?= =?utf-8?B?RGRxb3BtK0hxMjFPZFpIUjBrdWJEcjhiQ241N01EYlZQckNlM1NBT1VaTHZj?= =?utf-8?B?OEJYRTZkTnN4eDVWZmVZNTBtd1E1SlZVcFpYT0VEQkdNVEJiekZ4YmVlTkR2?= =?utf-8?B?V1Myb25Ya3JRektnbGpBeG9QenBuRkNwMkUvc2ZPNUxvRU5qcks5QmdTZE9F?= =?utf-8?B?c3lNNzVMYWN0MDBqMHh0NytlUndnR0UreDM3aXhQamdyLzFvcWhRdlg0Y0ty?= =?utf-8?B?dE5BZ1dmTUpnZ0wrUElURHdTaGNTVzRoRUNha0tWM0xiTFdLb3BUSnJ1L3R4?= =?utf-8?B?MGtTQVZQVkdGaWZtd3BOdmgxK1l0S3QxNWkrUjZBQytNQURmMGVueXBGZXlN?= =?utf-8?B?VHF2OWMycnk4S0JTM0hQNDhpaTV6aVIyQTVBWkpNSHNTWnF1ZGIrYk1EVGxi?= =?utf-8?B?VjBPTElFc293aFp3b1k4M3BpTkdyT0VYZDM1QUJuOUNjekxpcEVVWkU0QXJ6?= =?utf-8?B?R01MZkl2OVVOcFAwbHo3cmFDWDJycTJDcHorRGxjWEdkdnZwNWtzeWlqV3Ay?= =?utf-8?Q?TABrd6R1hSp9yJOSYwCI8QgcBb7j5iLfeT3KsQv?= 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: 14661b1b-55b9-4fe5-b5b4-08d95dff78cd X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2021 02:10:07.3919 (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: irtH5Wf580s3wzuq3u5NLm0H6IV6OVUds5YgAhvvAlD7PvOT+OcOctJjQE0Nhb+sOoyidsqEhuNb2tLaa1yoXgn6rgBLi/DVuGxBEauykt0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB0013 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 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgUmViZWNjYSBDcmFu DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSA3LCAyMDIxIDk6MjIgQU0NCj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBEYXJ5bCBNY0RhbmllbCA8ZWRrMi1saXN0c0BtYzJyZXNlYXJjaC5vcmc+OyBD YXJzZXksIEphYmVuIDxqYWJlbi5jYXJzZXlAaW50ZWwuY29tPg0KPiBDYzogUmViZWNjYSBDcmFu IDxyZWJlY2NhQG51dmlhaW5jLmNvbT4NCj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtlZGsyLWxp YmMgUEFUQ0ggMS8xXSBVcGRhdGUgTGliQyB0byB1c2Ugc2FmZSBzdHJpbmcgZnVuY3Rpb25zDQo+ IA0KPiBUaGUgaW5zZWN1cmUgc3RyaW5nIGZ1bmN0aW9ucyBzdWNoIGFzIFN0ckNweSB3ZXJlIHJl bW92ZWQgYSB3aGlsZSBhZ28sDQo+IGJyZWFraW5nIHRoZSBTdGRMaWIgYnVpbGQuIE1pZ3JhdGUg U3RkTGliL0xpYkMgdG8gdGhlIHNhZmUgc3RyaW5nDQo+IHZlcnNpb25zLg0KPiANCj4gU2lnbmVk LW9mZi1ieTogUmViZWNjYSBDcmFuIDxyZWJlY2NhQG51dmlhaW5jLmNvbT4NCj4gLS0tDQo+ICBT dGRMaWIvTGliQy9TdGRMaWIvRW52aXJvbnMuYyAgICAgICAgICAgfCAxMSArKysrKystLS0tLQ0K PiAgU3RkTGliL0xpYkMvU3RkTGliL3JlYWxwYXRoLmMgICAgICAgICAgIHwgIDUgKysrLS0NCj4g IFN0ZExpYi9MaWJDL1N0cmluZy9Db25jYXRlbmF0aW9uLmMgICAgICB8ICA3ICsrKysrLS0NCj4g IFN0ZExpYi9MaWJDL1N0cmluZy9Db3B5aW5nLmMgICAgICAgICAgICB8ICA3ICsrKysrLS0NCj4g IFN0ZExpYi9MaWJDL1VlZmkvRGV2aWNlcy9VdGlsaXR5L1BhdGguYyB8ICAzICsrLQ0KPiAgU3Rk TGliL0xpYkMvVWVmaS9TeXNDYWxscy5jICAgICAgICAgICAgIHwgIDUgKysrLS0NCj4gIFN0ZExp Yi9MaWJDL1djaGFyL0NvbmNhdGVuYXRpb24uYyAgICAgICB8ICA2ICsrKystLQ0KPiAgU3RkTGli L0xpYkMvV2NoYXIvQ29weWluZy5jICAgICAgICAgICAgIHwgIDQgKystLQ0KPiAgOCBmaWxlcyBj aGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n aXQgYS9TdGRMaWIvTGliQy9TdGRMaWIvRW52aXJvbnMuYyBiL1N0ZExpYi9MaWJDL1N0ZExpYi9F bnZpcm9ucy5jDQo+IGluZGV4IGEyOWNiOTk1NGNmOS4uYWQ1NjYyOTU1NGRmIDEwMDY0NA0KPiAt LS0gYS9TdGRMaWIvTGliQy9TdGRMaWIvRW52aXJvbnMuYw0KPiArKysgYi9TdGRMaWIvTGliQy9T dGRMaWIvRW52aXJvbnMuYw0KPiBAQCAtMTUxLDcgKzE1MSw3IEBAIHN5c3RlbShjb25zdCBjaGFy ICpzdHJpbmcpDQo+ICAgIGlmKCBzdHJpbmcgPT0gTlVMTCkgew0KPiAgICAgIHJldHVybiAxOw0K PiAgICB9DQo+IC0gICh2b2lkKUFzY2lpU3RyVG9Vbmljb2RlU3RyKCBzdHJpbmcsIGdNRC0+VVN0 cmluZyk7DQo+ICsgICh2b2lkKUFzY2lpU3RyVG9Vbmljb2RlU3RyUyAoc3RyaW5nLCBnTUQtPlVT dHJpbmcsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ICAgIE9wU3RhdCA9IFNoZWxsRXhlY3V0ZSgg Jk15SGFuZGxlLCBnTUQtPlVTdHJpbmcsIEZBTFNFLCBOVUxMLCAmQ21kU3RhdCk7DQo+ICAgIGlm KE9wU3RhdCA9PSBSRVRVUk5fU1VDQ0VTUykgew0KPiAgICAgIEVGSWVycm5vID0gQ21kU3RhdDsN Cj4gQEAgLTE3NywxMCArMTc3LDExIEBAIGNoYXIgICAqZ2V0ZW52KGNvbnN0IGNoYXIgKm5hbWUp DQo+ICAgIGNvbnN0IENIQVIxNiAgKkVmaUVudjsNCj4gICAgY2hhciAgICAgICAgICAqcmV0dmFs ID0gTlVMTDsNCj4gDQo+IC0gICh2b2lkKUFzY2lpU3RyVG9Vbmljb2RlU3RyKCBuYW1lLCBnTUQt PlVTdHJpbmcpOw0KPiArICAodm9pZClBc2NpaVN0clRvVW5pY29kZVN0clMgKG5hbWUsIGdNRC0+ VVN0cmluZywgVU5JQ09ERV9TVFJJTkdfTUFYKTsNCj4gICAgRWZpRW52ID0gU2hlbGxHZXRFbnZp cm9ubWVudFZhcmlhYmxlKGdNRC0+VVN0cmluZyk7DQo+ICAgIGlmKEVmaUVudiAhPSBOVUxMKSB7 DQo+IC0gICAgcmV0dmFsID0gVW5pY29kZVN0clRvQXNjaWlTdHIoIEVmaUVudiwgZ01ELT5BU2dl dGVudik7DQo+ICsgICAgKHZvaWQpVW5pY29kZVN0clRvQXNjaWlTdHJTIChFZmlFbnYsIGdNRC0+ QVNnZXRlbnYsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ICsgICAgcmV0dmFsID0gZ01ELT5BU2dl dGVudjsNCj4gICAgfQ0KPiANCj4gICAgcmV0dXJuIHJldHZhbDsNCj4gQEAgLTIzOCw4ICsyMzks OCBAQCBzZXRlbnYgKA0KPiAgICAgIC8vDQo+ICAgICAgLy8gIENvbnZlcnQgdGhlIHN0cmluZ3MN Cj4gICAgICAvLw0KPiAtICAgIEFzY2lpU3RyVG9Vbmljb2RlU3RyICggbmFtZSwgVU5hbWUgKTsN Cj4gLSAgICBBc2NpaVN0clRvVW5pY29kZVN0ciAoIHZhbHVlLCBVVmFsdWUgKTsNCj4gKyAgICBB c2NpaVN0clRvVW5pY29kZVN0clMgKG5hbWUsIFVOYW1lLCBVTklDT0RFX1NUUklOR19NQVgpOw0K PiArICAgIEFzY2lpU3RyVG9Vbmljb2RlU3RyUyAodmFsdWUsIFVWYWx1ZSwgVU5JQ09ERV9TVFJJ TkdfTUFYKTsNCj4gDQo+ICAgICAgLy8NCj4gICAgICAvLyAgRGV0ZXJtaW5lIGlmIHRoZSBzdHJp bmcgaXMgYWxyZWFkeSBwcmVzZW50DQo+IGRpZmYgLS1naXQgYS9TdGRMaWIvTGliQy9TdGRMaWIv cmVhbHBhdGguYyBiL1N0ZExpYi9MaWJDL1N0ZExpYi9yZWFscGF0aC5jDQo+IGluZGV4IDZkNzVm MTdhMzk0ZC4uYThmZjFlOWQ1YjFkIDEwMDY0NA0KPiAtLS0gYS9TdGRMaWIvTGliQy9TdGRMaWIv cmVhbHBhdGguYw0KPiArKysgYi9TdGRMaWIvTGliQy9TdGRMaWIvcmVhbHBhdGguYw0KPiBAQCAt MTQsNiArMTQsNyBAQA0KPiAgI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPiAgI2luY2x1 ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPg0KPiAgI2luY2x1ZGUgPGVycm5vLmg+ DQo+ICsjaW5jbHVkZSA8bGltaXRzLmg+DQo+IA0KPiAgLyoqIFRoZSByZWFscGF0aCgpIGZ1bmN0 aW9uIHNoYWxsIGRlcml2ZSwgZnJvbSB0aGUgcGF0aG5hbWUgcG9pbnRlZCB0byBieQ0KPiAgICAg IGZpbGVfbmFtZSwgYW4gYWJzb2x1dGUgcGF0aG5hbWUgdGhhdCBuYW1lcyB0aGUgc2FtZSBmaWxl LCB3aG9zZSByZXNvbHV0aW9uDQo+IEBAIC00Nyw4ICs0OCw4IEBAIHJlYWxwYXRoKA0KPiAgICAg IGVycm5vID0gRU5PTUVNOw0KPiAgICAgIHJldHVybiAoTlVMTCk7DQo+ICAgIH0NCj4gLSAgQXNj aWlTdHJUb1VuaWNvZGVTdHIoZmlsZV9uYW1lLCBUZW1wKTsNCj4gKyAgQXNjaWlTdHJUb1VuaWNv ZGVTdHJTIChmaWxlX25hbWUsIFRlbXAsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ICAgIFBhdGhD bGVhblVwRGlyZWN0b3JpZXMoVGVtcCk7DQo+IC0gIFVuaWNvZGVTdHJUb0FzY2lpU3RyKFRlbXAs IHJlc29sdmVkX25hbWUpOw0KPiArICBVbmljb2RlU3RyVG9Bc2NpaVN0clMgKFRlbXAsIHJlc29s dmVkX25hbWUsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ICAgIHJldHVybiAocmVzb2x2ZWRfbmFt ZSk7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9TdGRMaWIvTGliQy9TdHJpbmcvQ29uY2F0ZW5hdGlv bi5jIGIvU3RkTGliL0xpYkMvU3RyaW5nL0NvbmNhdGVuYXRpb24uYw0KPiBpbmRleCBlNzZiZWEw YmY4NTguLmY3ODgzNmZiZTBkNiAxMDA2NDQNCj4gLS0tIGEvU3RkTGliL0xpYkMvU3RyaW5nL0Nv bmNhdGVuYXRpb24uYw0KPiArKysgYi9TdGRMaWIvTGliQy9TdHJpbmcvQ29uY2F0ZW5hdGlvbi5j DQo+IEBAIC0xNSw2ICsxNSw3IEBADQo+IA0KPiAgI2luY2x1ZGUgIDxMaWJDb25maWcuaD4NCj4g DQo+ICsjaW5jbHVkZSA8bGltaXRzLmg+DQo+ICAjaW5jbHVkZSAgPHN0cmluZy5oPg0KPiANCj4g IC8qKiBUaGUgc3RyY2F0IGZ1bmN0aW9uIGFwcGVuZHMgYSBjb3B5IG9mIHRoZSBzdHJpbmcgcG9p bnRlZCB0byBieSBzMg0KPiBAQCAtMjgsNyArMjksOCBAQA0KPiAgY2hhciAqDQo+ICBzdHJjYXQo Y2hhciAqIF9fcmVzdHJpY3QgczEsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0IHMyKQ0KPiAgew0K PiAtICByZXR1cm4gQXNjaWlTdHJDYXQoIHMxLCBzMik7DQo+ICsgIEFzY2lpU3RyQ2F0UyAoczEs IFVOSUNPREVfU1RSSU5HX01BWCwgczIpOw0KPiArICByZXR1cm4gczE7DQo+ICB9DQo+IA0KPiAg LyoqIFRoZSBzdHJuY2F0IGZ1bmN0aW9uIGFwcGVuZHMgbm90IG1vcmUgdGhhbiBuIGNoYXJhY3Rl cnMgKGEgbnVsbCBjaGFyYWN0ZXINCj4gQEAgLTQzLDcgKzQ1LDggQEAgc3RyY2F0KGNoYXIgKiBf X3Jlc3RyaWN0IHMxLCBjb25zdCBjaGFyICogX19yZXN0cmljdCBzMikNCj4gIGNoYXIgKg0KPiAg c3RybmNhdChjaGFyICogX19yZXN0cmljdCBzMSwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3QgczIs IHNpemVfdCBuKQ0KPiAgew0KPiAtICByZXR1cm4gQXNjaWlTdHJuQ2F0KCBzMSwgczIsIG4pOw0K PiArICBBc2NpaVN0cm5DYXRTIChzMSwgVU5JQ09ERV9TVFJJTkdfTUFYLCBzMiwgbik7DQo+ICsg IHJldHVybiBzMTsNCj4gIH0NCj4gDQo+ICAvKiogVGhlIHN0cm5jYXRYIGZ1bmN0aW9uIGFwcGVu ZHMgbm90IG1vcmUgdGhhbiBuIGNoYXJhY3RlcnMgKGEgbnVsbCBjaGFyYWN0ZXINCj4gZGlmZiAt LWdpdCBhL1N0ZExpYi9MaWJDL1N0cmluZy9Db3B5aW5nLmMgYi9TdGRMaWIvTGliQy9TdHJpbmcv Q29weWluZy5jDQo+IGluZGV4IDMyMzRlY2NmMDgwOC4uY2MyMDc3YTViODBhIDEwMDY0NA0KPiAt LS0gYS9TdGRMaWIvTGliQy9TdHJpbmcvQ29weWluZy5jDQo+ICsrKyBiL1N0ZExpYi9MaWJDL1N0 cmluZy9Db3B5aW5nLmMNCj4gQEAgLTE2LDYgKzE2LDcgQEANCj4gDQo+ICAjaW5jbHVkZSAgPExp YkNvbmZpZy5oPg0KPiANCj4gKyNpbmNsdWRlIDxsaW1pdHMuaD4NCj4gICNpbmNsdWRlICA8c3Rk bGliLmg+DQo+ICAjaW5jbHVkZSAgPHN0cmluZy5oPg0KPiANCj4gQEAgLTczLDcgKzc0LDggQEAg c3RyY3B5KGNoYXIgKiBfX3Jlc3RyaWN0IHMxLCBjb25zdCBjaGFyICogX19yZXN0cmljdCBzMikN Cj4gDQo+ICAgIC8vd2hpbGUgKCAqczErKyA9ICpzMisrKSAgLyogRW1wdHkgQm9keSAqLzsNCj4g ICAgLy9yZXR1cm4oczFyZXQpOw0KPiAtICByZXR1cm4gQXNjaWlTdHJDcHkoIHMxLCBzMik7DQo+ ICsgIEFzY2lpU3RyQ3B5UyAoczEsIFVOSUNPREVfU1RSSU5HX01BWCwgczIpOw0KPiArICByZXR1 cm4gczE7DQo+ICB9DQo+IA0KPiAgLyoqIFRoZSBzdHJuY3B5IGZ1bmN0aW9uIGNvcGllcyBub3Qg bW9yZSB0aGFuIG4gY2hhcmFjdGVycyAoY2hhcmFjdGVycyB0aGF0DQo+IEBAIC04OSw3ICs5MSw4 IEBAIHN0cmNweShjaGFyICogX19yZXN0cmljdCBzMSwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3Qg czIpDQo+ICAqKi8NCj4gIGNoYXIgICAgICpzdHJuY3B5KGNoYXIgKiBfX3Jlc3RyaWN0IHMxLCBj b25zdCBjaGFyICogX19yZXN0cmljdCBzMiwgc2l6ZV90IG4pDQo+ICB7DQo+IC0gIHJldHVybiBB c2NpaVN0cm5DcHkoIHMxLCBzMiwgbik7DQo+ICsgIEFzY2lpU3RybkNweVMgKHMxLCBVTklDT0RF X1NUUklOR19NQVgsIHMyLCBuKTsNCj4gKyAgcmV0dXJuIHMxOw0KPiAgICAvL2NoYXIgKmRlc3Qg PSBzMTsNCj4gDQo+ICAgIC8vd2hpbGUobiAhPSAwKSB7DQo+IGRpZmYgLS1naXQgYS9TdGRMaWIv TGliQy9VZWZpL0RldmljZXMvVXRpbGl0eS9QYXRoLmMgYi9TdGRMaWIvTGliQy9VZWZpL0Rldmlj ZXMvVXRpbGl0eS9QYXRoLmMNCj4gaW5kZXggOTYzOTJlMDE4ZGFjLi5kNjcyOGQzYTY0N2UgMTAw NjQ0DQo+IC0tLSBhL1N0ZExpYi9MaWJDL1VlZmkvRGV2aWNlcy9VdGlsaXR5L1BhdGguYw0KPiAr KysgYi9TdGRMaWIvTGliQy9VZWZpL0RldmljZXMvVXRpbGl0eS9QYXRoLmMNCj4gQEAgLTExMCw3 ICsxMTAsOCBAQCBOb3JtYWxpemVQYXRoKCBjb25zdCBjaGFyICpwYXRoKQ0KPiAgICB3Y2hhcl90 ICAqTmV3UGF0aDsNCj4gICAgc2l6ZV90ICAgIExlbmd0aDsNCj4gDQo+IC0gIE9sZFBhdGggPSBB c2NpaVN0clRvVW5pY29kZVN0cihwYXRoLCBnTUQtPlVTdHJpbmcpOw0KPiArICBBc2NpaVN0clRv VW5pY29kZVN0clMgKHBhdGgsIGdNRC0+VVN0cmluZywgVU5JQ09ERV9TVFJJTkdfTUFYKTsNCj4g KyAgT2xkUGF0aCA9IGdNRC0+VVN0cmluZzsNCj4gICAgTGVuZ3RoICA9IHdjc2xlbihPbGRQYXRo KSArIDE7DQo+IA0KPiAgICBOZXdQYXRoID0gY2FsbG9jKExlbmd0aCwgc2l6ZW9mKHdjaGFyX3Qp KTsNCj4gZGlmZiAtLWdpdCBhL1N0ZExpYi9MaWJDL1VlZmkvU3lzQ2FsbHMuYyBiL1N0ZExpYi9M aWJDL1VlZmkvU3lzQ2FsbHMuYw0KPiBpbmRleCBmYWE3M2VkN2E0ZWUuLmU4M2I3MjMwOGZiZSAx MDA2NDQNCj4gLS0tIGEvU3RkTGliL0xpYkMvVWVmaS9TeXNDYWxscy5jDQo+ICsrKyBiL1N0ZExp Yi9MaWJDL1VlZmkvU3lzQ2FsbHMuYw0KPiBAQCAtMTMyMCw3ICsxMzIwLDggQEAgY2hhcg0KPiAg ICAgIGVycm5vID0gRVJBTkdFOw0KPiAgICAgIHJldHVybiAoTlVMTCk7DQo+ICAgIH0NCj4gLSAg cmV0dXJuIChVbmljb2RlU3RyVG9Bc2NpaVN0cihDd2QsIGJ1ZikpOw0KPiArICBVbmljb2RlU3Ry VG9Bc2NpaVN0clMgKEN3ZCwgYnVmLCBVTklDT0RFX1NUUklOR19NQVgpOw0KPiArICByZXR1cm4g YnVmOw0KPiAgfQ0KPiANCj4gIC8qKiBDaGFuZ2UgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rv cnkuDQo+IEBAIC0xMzU4LDcgKzEzNTksNyBAQCBjaGRpciAoY29uc3QgY2hhciAqcGF0aCkNCj4g ICAgICAgICAgZXJybm8gPSBFTk9NRU07DQo+ICAgICAgICAgIHJldHVybiAtMTsNCj4gICAgICAg IH0NCj4gLSAgICAgIEFzY2lpU3RyVG9Vbmljb2RlU3RyKHBhdGgsIFVuaWNvZGVQYXRoKTsNCj4g KyAgICAgIEFzY2lpU3RyVG9Vbmljb2RlU3RyUyAocGF0aCwgVW5pY29kZVBhdGgsIFVOSUNPREVf U1RSSU5HX01BWCk7DQo+ICAgICAgICBTdGF0dXMgPSBnRWZpU2hlbGxQcm90b2NvbC0+U2V0Q3Vy RGlyKE5VTEwsIFVuaWNvZGVQYXRoKTsNCj4gICAgICAgIEZyZWVQb29sKFVuaWNvZGVQYXRoKTsN Cj4gICAgICAgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiBkaWZmIC0tZ2l0IGEvU3RkTGli L0xpYkMvV2NoYXIvQ29uY2F0ZW5hdGlvbi5jIGIvU3RkTGliL0xpYkMvV2NoYXIvQ29uY2F0ZW5h dGlvbi5jDQo+IGluZGV4IGNmNTk1YTQ2MWYwZS4uNzI4OTI0MDk1MWFhIDEwMDY0NA0KPiAtLS0g YS9TdGRMaWIvTGliQy9XY2hhci9Db25jYXRlbmF0aW9uLmMNCj4gKysrIGIvU3RkTGliL0xpYkMv V2NoYXIvQ29uY2F0ZW5hdGlvbi5jDQo+IEBAIC0zMSw3ICszMSw4IEBADQo+ICAqKi8NCj4gIHdj aGFyX3QgKndjc2NhdCh3Y2hhcl90ICogX19yZXN0cmljdCBzMSwgY29uc3Qgd2NoYXJfdCAqIF9f cmVzdHJpY3QgczIpDQo+ICB7DQo+IC0gIHJldHVybiAod2NoYXJfdCAqKVN0ckNhdCggKENIQVIx NiAqKXMxLCAoQ09OU1QgQ0hBUjE2ICopczIpOw0KPiArICBTdHJDYXRTICgoQ0hBUjE2ICopczEs IFVOSUNPREVfU1RSSU5HX01BWCwgKENPTlNUIENIQVIxNiAqKXMyKTsNCj4gKyAgcmV0dXJuIHMx Ow0KPiAgfQ0KPiANCj4gIC8qKiBUaGUgd2NzbmNhdCBmdW5jdGlvbiBhcHBlbmRzIG5vdCBtb3Jl IHRoYW4gbiB3aWRlIGNoYXJhY3RlcnMgKGEgbnVsbCB3aWRlDQo+IEBAIC00NCw1ICs0NSw2IEBA IHdjaGFyX3QgKndjc2NhdCh3Y2hhcl90ICogX19yZXN0cmljdCBzMSwgY29uc3Qgd2NoYXJfdCAq IF9fcmVzdHJpY3QgczIpDQo+ICAqKi8NCj4gIHdjaGFyX3QgKndjc25jYXQod2NoYXJfdCAqIF9f cmVzdHJpY3QgczEsIGNvbnN0IHdjaGFyX3QgKiBfX3Jlc3RyaWN0IHMyLCBzaXplX3QgbikNCj4g IHsNCj4gLSAgcmV0dXJuICh3Y2hhcl90ICopU3RybkNhdCggKENIQVIxNiAqKXMxLCAoQ09OU1Qg Q0hBUjE2ICopczIsIChVSU5UTiluKTsNCj4gKyAgU3RybkNhdFMgKChDSEFSMTYgKilzMSwgVU5J Q09ERV9TVFJJTkdfTUFYLCAoQ09OU1QgQ0hBUjE2ICopczIsIChVSU5UTiluKTsNCj4gKyAgcmV0 dXJuIHMxOw0KPiAgfQ0KPiBkaWZmIC0tZ2l0IGEvU3RkTGliL0xpYkMvV2NoYXIvQ29weWluZy5j IGIvU3RkTGliL0xpYkMvV2NoYXIvQ29weWluZy5jDQo+IGluZGV4IDcwNzU0Mzc5NjVhZC4uODQ4 YzgzNDE5ZGRiIDEwMDY0NA0KPiAtLS0gYS9TdGRMaWIvTGliQy9XY2hhci9Db3B5aW5nLmMNCj4g KysrIGIvU3RkTGliL0xpYkMvV2NoYXIvQ29weWluZy5jDQo+IEBAIC0yOSw3ICsyOSw3IEBADQo+ ICAqKi8NCj4gIHdjaGFyX3QgKndjc2NweSh3Y2hhcl90ICogX19yZXN0cmljdCBzMSwgY29uc3Qg d2NoYXJfdCAqIF9fcmVzdHJpY3QgczIpDQo+ICB7DQo+IC0gIHJldHVybiAod2NoYXJfdCAqKVN0 ckNweSggKENIQVIxNiAqKXMxLCAoQ09OU1QgQ0hBUjE2ICopczIpOw0KPiArICByZXR1cm4gKHdj aGFyX3QgKilTdHJDcHlTICgoQ0hBUjE2ICopczEsIFVOSUNPREVfU1RSSU5HX01BWCwgKENPTlNU IENIQVIxNiAqKXMyKTsNCj4gIH0NCj4gDQo+ICAvKiogVGhlIHdjc25jcHkgZnVuY3Rpb24gY29w aWVzIG5vdCBtb3JlIHRoYW4gbiB3aWRlIGNoYXJhY3RlcnMgKHRob3NlIHRoYXQNCj4gQEAgLTQ0 LDcgKzQ0LDcgQEAgd2NoYXJfdCAqd2NzY3B5KHdjaGFyX3QgKiBfX3Jlc3RyaWN0IHMxLCBjb25z dCB3Y2hhcl90ICogX19yZXN0cmljdCBzMikNCj4gICoqLw0KPiAgd2NoYXJfdCAqd2NzbmNweSh3 Y2hhcl90ICogX19yZXN0cmljdCBzMSwgY29uc3Qgd2NoYXJfdCAqIF9fcmVzdHJpY3QgczIsIHNp emVfdCBuKQ0KPiAgew0KPiAtICByZXR1cm4gKHdjaGFyX3QgKilTdHJuQ3B5KCAoQ0hBUjE2ICop czEsIChDT05TVCBDSEFSMTYgKilzMiwgKFVJTlROKW4pOw0KPiArICByZXR1cm4gKHdjaGFyX3Qg KilTdHJuQ3B5UyAoKENIQVIxNiAqKXMxLCBVTklDT0RFX1NUUklOR19NQVgsIChDT05TVCBDSEFS MTYgKilzMiwgKFVJTlROKW4pOw0KPiAgfQ0KPiANCj4gIC8qKiBUaGUgd21lbWNweSBmdW5jdGlv biBjb3BpZXMgbiB3aWRlIGNoYXJhY3RlcnMgZnJvbSB0aGUgb2JqZWN0IHBvaW50ZWQgdG8gYnkN Cj4gLS0NCj4gMi4yNi4yDQo+IA0KPiANCj4gDQo+IA0KPiANCg0K