From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.1374.1669138269022898835 for ; Tue, 22 Nov 2022 09:31:09 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=hyxouEov; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669138269; x=1700674269; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=rhPrM1eUjet6QLiRpTFtLhfkJwpDsNRmRhOBsitZEdQ=; b=hyxouEovnAQqseW15KEP52l1ktwEf8Ul+wN6SQmIqe7MnfbpL+9cWYxK byg0GuQTiWj+xQyjzd3hL5HHxwb4wsnguFaZUjohwTP0PwuJrbmqYGclZ 50NiBj6NBO0C+VNyKO/vXMECYIMYuer8VsDXnF5dwOyKYfQcifjnZRq4g knbafUH/HnIF0WhT2yIMj4chjUyEcPTuwVbib/Ct0yzS4vY1Z9E4rAB30 QBq9Gjsz6k8949O3Yuq8HcwGH/YUlMWRnhyunW1LUCAoQaXzA1uAzAZmr 16rs9OfecSrDMQ4KXBk+Wo3v9ZnC84SSu6+vIAHVCsvzpcjbIaYx62Q1R A==; X-IronPort-AV: E=McAfee;i="6500,9779,10539"; a="340732048" X-IronPort-AV: E=Sophos;i="5.96,184,1665471600"; d="scan'208";a="340732048" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2022 08:52:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10539"; a="635601885" X-IronPort-AV: E=Sophos;i="5.96,184,1665471600"; d="scan'208";a="635601885" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga007.jf.intel.com with ESMTP; 22 Nov 2022 08:52:29 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.2507.13; Tue, 22 Nov 2022 08:52:29 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 22 Nov 2022 08:52:28 -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.2375.31 via Frontend Transport; Tue, 22 Nov 2022 08:52:28 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) 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.2375.31; Tue, 22 Nov 2022 08:52:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iE2CcX9j8QYXfM4PipF9PuiNWZiQqqQb82M47W3MJ81SKcTdDPzqqiea2rjDcC8lAQDDOxZuxKtRbKJMdEXuqud5W23RDiRnWGOdYxWJqd8Wk9dicYI8hRpRLSIrid10fvBvFEdPgmuUok06yl6hkCL1DDzZV3FF+Tg5zsnc/ZY/J6dFs48AUgVy5hYkiDBalifA+DTvXlAXoFuCcYBDgekgw9sEgKfdmPMHqoeJlCCzbDXrYdrnS1aZ2UAegQRERx3VOkE/pwhT5biDWcgLTjVq1dSQTmc1Tj5gJHR1o9qCpxLNaZsZ5/kp0lcC6Dwv7Vg8zQC/wxbDORk86Rplhw== 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=rhPrM1eUjet6QLiRpTFtLhfkJwpDsNRmRhOBsitZEdQ=; b=Vi9M2VgWEU4jEIvuo6PAKGFraeJ8YBur08BX+L60gKI/f2rcblARcYctJEKk3mzG7KjEHDCZUkwh+dCRzO+mPD+5RRmm1K2kqBt3CNDrgbb4ApzeH6HDcBc69EtmdCjIoeCfKMSlzHRqnHvZ4ydz0p/a8GNo/gifBNmj8ix0VEfyaZdRQ+zMd2pFmGnF1svAHy7WHyGOe6D5jhaX1XXyFocn7qd4tf/Z08X3UnCqToiGSAtqmnJIbzfImdg1tTqulUmS0sQUhdTrnwHWobCZZcW57MCK9av/wDRW8C9P7F/Rfx+acUPcVp2KllsToACg8sMOWCHSSGhoK9ePTS1byw== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by PH0PR11MB7587.namprd11.prod.outlook.com (2603:10b6:510:26d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.11; Tue, 22 Nov 2022 16:52:25 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b%6]) with mapi id 15.20.5834.015; Tue, 22 Nov 2022 16:52:25 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "kalaivanip@ami.com" , "Kinney, Michael D" CC: "Selvaraj, Sundaresan" , "Sambandan, Vasudevan" , Arun K Subject: Re: [edk2-devel] [PATCH] Multiple Coverity issues were found from EDK2 ShellPkg Thread-Topic: [edk2-devel] [PATCH] Multiple Coverity issues were found from EDK2 ShellPkg Thread-Index: AQHY/m61/HdgqtnrbUiHlQismoZuHq5LJt3Q Date: Tue, 22 Nov 2022 16:52:25 +0000 Message-ID: References: <20221122122806.1732-1-kalaivanip@ami.com> In-Reply-To: <20221122122806.1732-1-kalaivanip@ami.com> Accept-Language: en-US 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: CO1PR11MB4929:EE_|PH0PR11MB7587:EE_ x-ms-office365-filtering-correlation-id: 33dd8a01-cbc5-45ac-8fa3-08dacca9ef05 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eYKb2u7N1oPtM7ixNcZ7ZuE6CQ7kPJtFMwrdG/7XVSeimIzskt2iMdJgbpNh8S64E4vptLFkxUCGUr16gt/rjn/j+cuu3snx/fwlFRYf1ZnYsXdtZaOknrhd/PXfHHYRyfjy0noZ0EDcA2iRAg/XVGMTswUYnBrNt99lxLSvUyKZZiKv4u9GsI9OvWYXFrPo32zYe89aUL81YBPyXS32qouv4NvQJ30ouLaJ2+K7tXi2WT+qk4YyPaA1Fv1worOpoGaAwhhpZovWVn5pEFLmwVFLOKapAL2OvWgPXGPMEJYyk1Vn8SASltsf1G7K0ogNDmS1qIKS77cfw3RkOt5SADiwiATS/VLzkU4UMq/7v/oSl8TnTkBAIZeEP4sF7hTYJgaGqXSGdnRxUzZ9KBlx1c3RXhaLZc+ICPFR3ARG5iwXwCS4MGyFiTZYn4k4nve6uE1d2UQ07AsHbRIIJ7Cey6pAeW6iZK3S5Tms9T4BjuCMujNeTTNLAcsWoIOxgHVp9lxvzcdSns5LESCYbt3PrY6ON2taTws1DLr1NFjcdDRW4+q27EnbTbnMImTeMadBERUeua1B92lkGdkNU+UAVj5Z1kKDp/M8f2/Kvc0sD2S8dNGAnnqrwR5t0wj9WjQ8MpQnEIM0MUH/DkEaVeotvx5+qljU5NGnhphJ51k62eMfaL/jODL1XehFroSQulXFtJk5mX0Pe8bKFiFPSFJqThlk58jg1xjWCX/lNMOMo95AC70H/UINEnnECH1IwSghsn/HRVYUeNZwVO00tq1IJ8nxrvVElrr+s1iZBKgRZCo= 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:(13230022)(136003)(376002)(346002)(366004)(39860400002)(396003)(451199015)(9686003)(6506007)(186003)(40140700001)(7696005)(53546011)(966005)(122000001)(19627235002)(478600001)(2906002)(26005)(71200400001)(38100700002)(38070700005)(86362001)(82960400001)(83380400001)(55016003)(33656002)(110136005)(8936002)(30864003)(41300700001)(66556008)(64756008)(66476007)(66446008)(8676002)(76116006)(66946007)(52536014)(66899015)(4326008)(54906003)(316002)(5660300002)(403724002)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bkh0am1PZit3N2lCb28wQ0Yyd1dVWkhuR3dnemIrZ1d2N1dTR3Jlam5pMm5a?= =?utf-8?B?TExRdStlZ2E1Y1B1cGhOSUNGMER3ZDUxOCs0alhVYmRERHNseXg1TlNYcExr?= =?utf-8?B?YlpNUVpnZXBaSEtkZzFRMENSSis1cXk0ZHdRQXlVYTgwR2NNTllEWXdtcmd3?= =?utf-8?B?dFhHMERTWVljWmRlQjZ3OW00cWVqQWZnVU1INFNsV28wMVFpQzZidXZRZ1J2?= =?utf-8?B?dFVkZmUrMng4aUluNE0xTWFkdG5UbGFvMm82WDg3YVJkSXgzMkNhZWdrNGlD?= =?utf-8?B?MlZBYThUQjNEc1NzYkI2N1VLV1Y5dGdkMEtnZ2k3dHdTbHdWdjZpRkZwU1ZQ?= =?utf-8?B?cmxqenlmVmk0Y3BzYUc5b3RpVDlkNDd3NkJ5d1hVZkdvcWJzNTlwbGpOa2RK?= =?utf-8?B?UUFWSmdQSnd6d2xmMW9EN1Rvd0syVkxrVklFTmFZU3dXZU1HVldDMHJ3enFo?= =?utf-8?B?dWhOVk5HTS9kWGJoMHZzbkFpRmtTTFVIUU5PTWM4T0o4L0VGRmVHMWhCWk53?= =?utf-8?B?M3A1VnFTM0hoWFM2eFlzVGRBSkkvaytoUCtGSVRhTzgyZjNCSEE0bVJmWUpF?= =?utf-8?B?WlEyRmttMUNpQkdHVEEyWEk2eFpBUXdQMTlUY0FrM2FZRTA1eGtYQmI1anEw?= =?utf-8?B?TWtQMFBaaC9sb1VLNlVSODFKR1o5dDBTV2g2NjVzYXFISUFic1FIZVJMMnh1?= =?utf-8?B?amNCWDJsTmFWdEJGUjlIbUlRZjc4ZXF3K3gvaTJXaXhoWXV6MTNLdzYxNVVT?= =?utf-8?B?bUp0a2orclZNUFZJcTRuWnBoNy9aeTFBRjg0MDF4TFdCaWxWbXdON1crSTR0?= =?utf-8?B?WmZZczE0dzJDbzR6Y1BQT1Rvdjd6dTBJQnJudHRFN3BHK3c2WE5WSXY5QmNa?= =?utf-8?B?Z1QySlI0RVVaSFNPOUsxWFZFVnBtTnFFZmNEQy9DT2JIOHFpUjBVamo3cHkz?= =?utf-8?B?dEQydXdDSGlaUEtIRExoOUZrNDVuOUlGaWtjelJGL1IxMW9kSVNJUjV4QXp6?= =?utf-8?B?Yi9rN0Y5NjFGdUozVndRZmNjUGtwU29QZ3hxQUZVNGdGaXJBazlodzlPQ3JE?= =?utf-8?B?RDRUWXVQcHBVZzBLSFpxUzFKTVU2cTlkamNGZCtySnltZ1BIRy9BOTMwTDFX?= =?utf-8?B?c3NIOUZjdk9iMGFnUXl1SnV0aU9vWmQxQUpkSktBSDY5RUozL2tBdTVrdytC?= =?utf-8?B?VHRVQ2xZSlNTdmt0TmttK0dZeGN0SDlaVERRUTM3UjcyM2dlK2hMeEtrV0VK?= =?utf-8?B?eWMvQks3WnFNMzBKeVRycHRQaTlsSFh4c2lIbk9rTmhpdFUyOCttaldZR2pB?= =?utf-8?B?TmxDU1V5WjVKaDdlYjNDK0MvY1FUeG9hTDhtT0dLV2dqL3prS2ZoT25rNStR?= =?utf-8?B?NHNJaWZyQis0UjBtR2dqMTBVZ3FhUXZyM3ZaRElCNUcrMktYQmdBTmxIZ0RC?= =?utf-8?B?ME9QdXpUZVZ1NzFtaEJMOUtncFE1MFhJalRvOENEcmxPY3Aramd1Y2FHMWNv?= =?utf-8?B?WDFOdm9jQmlZbTFPc09BaDBIZ3VwNHVuVE5jenIrVGZOa3c1Z1JLM0NUQm5h?= =?utf-8?B?dGJjemJ2UzV6bllxUVhCai9YS09HN01CZDA3MktOb2F0R3RzL1Z1c201M2NN?= =?utf-8?B?YjdkY21iam13NGxUVDFtWHdlWWVGOHVweHRnSnlQV1pWWUxMV000elNzcVk4?= =?utf-8?B?OFBUdmk1MFFYdW1ZWVFoYk1lZi9scGE4d1U2Mks2OSttZ0s0MHdtbnRqeTNY?= =?utf-8?B?NVdVWCtWV0FRSEk5dEY0Sy93UnNmWWtCTUxlMUdGRTVYMVBrQkNJajJxRkRY?= =?utf-8?B?Z09QMm1mejdadGZzTGwzK09OSHJpblNIVVRuUU94NFJST25QQm4zUzdVMDNU?= =?utf-8?B?WkdnclNaTkpvcnorUTZJNTVtTUo4aVIyWUNQTUYzbksxbnFHcmpkdVFNeGVV?= =?utf-8?B?U3Qxb0dvS1JZQjgxUElsd3BCaDF1OFZtWVorZUdCVm8xTmRnQm93NU1QVUVD?= =?utf-8?B?V0o0OThlRGpobVVsdG5tQ1Frd08rdXkyUTBFcnI1STFjWWNXdUx1VVU2dnUz?= =?utf-8?B?YlJ3TnpVdFRSVUhieVVhTnAvaGdNYm1MR0RKZWNXTlJlR0ZLWEUzZU56R1M0?= =?utf-8?B?RFBvTWd5MzFOWHZpRlBuSjRJRWh2enZYUXRTWjVFNVBsbEVYUVpGYUliY084?= =?utf-8?B?Znc9PQ==?= 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: 33dd8a01-cbc5-45ac-8fa3-08dacca9ef05 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2022 16:52:25.7692 (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: tur25+osE19V0uIgGwUsEXiBahYwNm6QxvUzsnDTnURwP/68DtKIQdF8yMGIgzM/NNNqjitT+v7pVqE0mGG4/o62f32Y8gcK9O7vV1lIwMA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7587 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 SGkgS2FsYWl2YW5pLA0KDQpUaGUgZmlsZSBoZWFkZXIgdXBkYXRlcyBkbyBub3QgbWF0Y2ggRURL IElJIHJlcXVpcmVtZW50cy4NCg0KTm8gaXNzdWVzIHdpdGggYWRkaW5nIGEgY29weXJpZ2h0IHN0 YXRlbWVudCBpbiB0aGUgZXhpc3RpbmcNCkVESyBJSSBmaWxlIGhlYWRlci4gUmVmZXJlbmNlcyB0 byAiQU1JIGxpY2Vuc2luZyBhZ3JlZW1lbnQiDQpjYW5ub3QgYmUgYWNjZXB0ZWQuICBDb250cmli dXRpb25zIHRvIHRoZXNlIGZpbGVzIG11c3QgYmUNCnVuZGVyIHRoZSBleGlzdGluZyBsaWNlbnNl Og0KDQogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCkFs bCByZWZlcmVuY2VzIHRvICJBTUkgT3ZlcnJpZGUiIG11c3QgYmUgcmVtb3ZlZA0KDQpBbGwgcmVm ZXJlbmNlcyB0byAiQU1JIFBvcnRpbmcgQmVnaW4iIGFuZCAiQU1JIFBvcnRpbmcgRW5kIg0KbXVz dCBiZSByZW1vdmVkLg0KDQpJZiBhbGwgdGhlc2UgY2hhbmdlcyBjYW4gYmUgYWNjZXB0ZWQsIHRo ZW4gcGxlYXNlDQptYWtlIHRoZXNlIHVwZGF0ZXMgYW5kIHNlbmQgYSBWMiBwYXRjaC4NCg0KTWlr ZQ0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgS2FsYWl2YW5pIFAg dmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAyMiwgMjAyMiA0OjM0IEFN DQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2FsYWl2YW5pIFAgPGthbGFpdmFuaXBAYW1p LmNvbT4NCj4gQ2M6IFNlbHZhcmFqLCBTdW5kYXJlc2FuIDxzdW5kYXJlc2Fuc0BhbWkuY29tPjsg U2FtYmFuZGFuLCBWYXN1ZGV2YW4gPHZhc3VkZXZhbnNAYW1pLmNvbT47IEFydW4gSyA8YXJ1bmtA YW1pLmNvbT4NCj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSF0gTXVsdGlwbGUgQ292ZXJp dHkgaXNzdWVzIHdlcmUgZm91bmQgZnJvbSBFREsyIFNoZWxsUGtnDQo+IA0KPiAgQXR0YWNoZWQg aXMgdGhlIHJlcG9ydCBmb3IgQ292ZXJpdHkgaXNzdWVzIGlkZW50aWZpZWQgaW4gU2hlbGxQa2cN Cj4gIGJhc2VkIG9uIGVkazItc3RhYmxlMjAyMjA1Lg0KPiANCj4gIENjOiBWYXN1ZGV2YW4gU2Ft YmFuZGFuIDx2YXN1ZGV2YW5zQGFtaS5jb20+DQo+ICBDYzogU3VuZGFyZXNhbiBTZWx2YXJhaiA8 c3VuZGFyZXNhbnNAYW1pLmNvbT4NCj4gIENjOiBBcnVuIGsgPGFydW5rQGFtaS5jb20+DQo+ICBT aWduZWQtb2ZmLWJ5OiBrYWxhaXZhbmkgUCA8a2FsYWl2YW5pcEBhbWkuY29tPg0KPiAtLS0NCj4g IFNoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsTWFuUGFyc2VyLmMgICB8IDE0ICsrKysr KysrLQ0KPiAgU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5jICAgIHwg IDkgKysrKystDQo+ICAuLi4vTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9EYmxr LmMgfCAxMiArKysrKy0tDQo+ICAuLi4vSGV4RWRpdC9CdWZmZXJJbWFnZS5jICAgICAgICAgICAg ICAgICAgICAgfCAxOCArKysrKysrKystLQ0KPiAgLi4uL0hleEVkaXQvRmlsZUltYWdlLmMgICAg ICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKystDQo+ICAuLi4vVWVmaVNoZWxsRHJpdmVy MUNvbW1hbmRzTGliL0RydkNmZy5jICAgICAgfCAgOSArKysrKy0NCj4gIC4uLi9MaWJyYXJ5L1Vl ZmlTaGVsbExldmVsMUNvbW1hbmRzTGliL0Zvci5jICB8IDEyICsrKysrKysNCj4gIC4uLi9MaWJy YXJ5L1VlZmlTaGVsbExldmVsMUNvbW1hbmRzTGliL0lmLmMgICB8IDEyICsrKysrKysNCj4gIC4u Li9MaWJyYXJ5L1VlZmlTaGVsbExldmVsMkNvbW1hbmRzTGliL1ZvbC5jICB8IDEzICsrKysrKyst DQo+ICAuLi4vTGlicmFyeS9VZWZpU2hlbGxMZXZlbDNDb21tYW5kc0xpYi9IZWxwLmMgfCAxMyAr KysrKysrLQ0KPiAgU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxMaWIvVWVmaVNoZWxsTGliLmMg IHwgMzEgKysrKysrKysrKysrKysrKy0tLQ0KPiAgMTEgZmlsZXMgY2hhbmdlZCwgMTQxIGluc2Vy dGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0Fw cGxpY2F0aW9uL1NoZWxsL1NoZWxsTWFuUGFyc2VyLmMgYi9TaGVsbFBrZy9BcHBsaWNhdGlvbi9T aGVsbC9TaGVsbE1hblBhcnNlci5jDQo+IGluZGV4IDVjODIzY2Q3ZjUuLjczMTA2MDEyMzEgMTAw NjQ0DQo+IC0tLSBhL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsTWFuUGFyc2VyLmMN Cj4gKysrIGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxNYW5QYXJzZXIuYw0KPiBA QCAtMSwzICsxLDEwIEBADQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+IA0KPiArLy8qICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKg0KPiANCj4gKy8vKiAgIENvcHlyaWdodCAoYykgMTk4NS0yMDIyLCBBbWVyaWNhbiBNZWdh dHJlbmRzIEludGVybmF0aW9uYWwgTExDLiAgICoNCj4gDQo+ICsvLyogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQo+ IA0KPiArLy8qICAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gU3ViamVjdCB0byBBTUkgbGljZW5z aW5nIGFncmVlbWVudC4gICAgICAgKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gDQo+ICsv LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqDQo+IA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAgICBQcm92aWRlcyBpbnRl cmZhY2UgdG8gc2hlbGwgTUFOIGZpbGUgcGFyc2VyLg0KPiANCj4gDQo+IA0KPiBAQCAtNjAxLDcg KzYwOCwxMiBAQCBQcm9jZXNzTWFuRmlsZSAoDQo+ICAgIGlmIChUZW1wU3RyaW5nICE9IE5VTEwp IHsNCj4gDQo+ICAgICAgRmlsZUhhbmRsZSA9IENvbnZlcnRFZmlGaWxlUHJvdG9jb2xUb1NoZWxs SGFuZGxlIChDcmVhdGVGaWxlSW50ZXJmYWNlTWVtIChUUlVFKSwgTlVMTCk7DQo+IA0KPiAgICAg IEhlbHBTaXplICAgPSBTdHJMZW4gKFRlbXBTdHJpbmcpICogc2l6ZW9mIChDSEFSMTYpOw0KPiAN Cj4gLSAgICBTaGVsbFdyaXRlRmlsZSAoRmlsZUhhbmRsZSwgJkhlbHBTaXplLCBUZW1wU3RyaW5n KTsNCj4gDQo+ICsgICAgLy8qKiogQU1JIFBPUlRJTkcgQkVHSU4gKioqLy8NCj4gDQo+ICsgICAg U3RhdHVzID0gU2hlbGxXcml0ZUZpbGUgKEZpbGVIYW5kbGUsICZIZWxwU2l6ZSwgVGVtcFN0cmlu Zyk7DQo+IA0KPiArICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gDQo+ICsgICAgICBy ZXR1cm4gU3RhdHVzOw0KPiANCj4gKyAgICB9DQo+IA0KPiArICAgIC8vKioqIEFNSSBQT1JUSU5H IEVORCAqKiovLw0KPiANCj4gICAgICBTaGVsbFNldEZpbGVQb3NpdGlvbiAoRmlsZUhhbmRsZSwg MCk7DQo+IA0KPiAgICAgIEhlbHBTaXplICA9IDA7DQo+IA0KPiAgICAgIEJyaWVmU2l6ZSA9IDA7 DQo+IA0KPiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90 b2NvbC5jIGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5jDQo+IGlu ZGV4IDUwOWViNjBlNDAuLmMxMDZiY2Q0OWQgMTAwNjQ0DQo+IC0tLSBhL1NoZWxsUGtnL0FwcGxp Y2F0aW9uL1NoZWxsL1NoZWxsUHJvdG9jb2wuYw0KPiArKysgYi9TaGVsbFBrZy9BcHBsaWNhdGlv bi9TaGVsbC9TaGVsbFByb3RvY29sLmMNCj4gQEAgLTEsMyArMSwxMCBAQA0KPiArLy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gDQo+ICsvLyogICBDb3B5cmlnaHQg KGMpIDE5ODUtMjAyMiwgQW1lcmljYW4gTWVnYXRyZW5kcyBJbnRlcm5hdGlvbmFsIExMQy4gICAq DQo+IA0KPiArLy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKg0KPiANCj4gKy8vKiAgICAgIEFsbCByaWdodHMgcmVz ZXJ2ZWQuIFN1YmplY3QgdG8gQU1JIGxpY2Vuc2luZyBhZ3JlZW1lbnQuICAgICAgICoNCj4gDQo+ ICsvLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqDQo+IA0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiANCj4gIC8qKiBA ZmlsZQ0KPiANCj4gICAgTWVtYmVyIGZ1bmN0aW9ucyBvZiBFRklfU0hFTExfUFJPVE9DT0wgYW5k IGZ1bmN0aW9ucyBmb3IgY3JlYXRpb24sDQo+IA0KPiAgICBtYW5pcHVsYXRpb24sIGFuZCBpbml0 aWFsaXphdGlvbiBvZiBFRklfU0hFTExfUFJPVE9DT0wuDQo+IA0KPiBAQCAtMjUxOCw3ICsyNTI1 LDcgQEAgU2hlbGxTZWFyY2hIYW5kbGUgKA0KPiAgICAgICAgICAgICAgICBFZmlTaGVsbENsb3Nl IChTaGVsbEluZm9Ob2RlLT5IYW5kbGUpOw0KPiANCj4gICAgICAgICAgICAgICAgU2hlbGxJbmZv Tm9kZS0+SGFuZGxlID0gTlVMTDsNCj4gDQo+ICAgICAgICAgICAgICB9DQo+IA0KPiAtICAgICAg ICAgIH0gZWxzZSBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiANCj4gKyAgICAgICAgICB9 IGVsc2UgaWYgKCFFRklfRVJST1IgKFN0YXR1cykgJiYgKFNoZWxsSW5mb05vZGUtPkZ1bGxOYW1l ID09IE5VTEwpKSB7ICAvLyBBTUkgT1ZFUlJJREUNCj4gDQo+ICAgICAgICAgICAgICAvLw0KPiAN Cj4gICAgICAgICAgICAgIC8vIHNob3VsZCBiZSBhIGZpbGUNCj4gDQo+ICAgICAgICAgICAgICAv Lw0KPiANCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29t bWFuZHNMaWIvRGJsay5jIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5k c0xpYi9EYmxrLmMNCj4gaW5kZXggOTdhNGI1N2E5My4uZDE4MTI2MjEzZiAxMDA2NDQNCj4gLS0t IGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9EYmxrLmMNCj4g KysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9EYmxrLmMN Cj4gQEAgLTEsMyArMSwxMCBAQA0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiANCj4gKy8vKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICoNCj4gDQo+ICsvLyogICBDb3B5cmlnaHQgKGMpIDE5ODUtMjAyMiwgQW1lcmljYW4g TWVnYXRyZW5kcyBJbnRlcm5hdGlvbmFsIExMQy4gICAqDQo+IA0KPiArLy8qICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Kg0KPiANCj4gKy8vKiAgICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFN1YmplY3QgdG8gQU1JIGxp Y2Vuc2luZyBhZ3JlZW1lbnQuICAgICAgICoNCj4gDQo+ICsvLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQo+IA0K PiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKg0KPiANCj4gIC8qKiBAZmlsZQ0KPiANCj4gICAgTWFpbiBmaWxl IGZvciBEYmxrIHNoZWxsIERlYnVnMSBmdW5jdGlvbi4NCj4gDQo+IA0KPiANCj4gQEAgLTQ1LDgg KzUyLDcgQEAgRGlzcGxheVRoZUJsb2NrcyAoDQo+ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gDQo+ICAgICAgcmV0dXJuIChTSEVMTF9OT1RfRk9VTkQpOw0KPiANCj4gICAgfQ0KPiAN Cj4gLQ0KPiANCj4gLSAgQnVmZmVyU2l6ZSA9IEJsb2NrSW8tPk1lZGlhLT5CbG9ja1NpemUgKiBC bG9ja0NvdW50Ow0KPiANCj4gKyAgQnVmZmVyU2l6ZSA9IEJsb2NrSW8tPk1lZGlhLT5CbG9ja1Np emUgKiAoVUlOVE4pQmxvY2tDb3VudDsgLy8gQU1JIE9WRVJSSURFDQo+IA0KPiAgICBpZiAoQmxv Y2tJby0+TWVkaWEtPklvQWxpZ24gPT0gMCkgew0KPiANCj4gICAgICBCbG9ja0lvLT5NZWRpYS0+ SW9BbGlnbiA9IDE7DQo+IA0KPiAgICB9DQo+IA0KPiBAQCAtNTUsNyArNjEsNyBAQCBEaXNwbGF5 VGhlQmxvY2tzICgNCj4gICAgICBPcmlnaW5hbEJ1ZmZlciA9IEFsbG9jYXRlWmVyb1Bvb2wgKEJ1 ZmZlclNpemUgKyBCbG9ja0lvLT5NZWRpYS0+SW9BbGlnbik7DQo+IA0KPiAgICAgIEJ1ZmZlciAg ICAgICAgID0gQUxJR05fUE9JTlRFUiAoT3JpZ2luYWxCdWZmZXIsIEJsb2NrSW8tPk1lZGlhLT5J b0FsaWduKTsNCj4gDQo+ICAgIH0gZWxzZSB7DQo+IA0KPiAtICAgIFNoZWxsUHJpbnRFeCAoLTEs IC0xLCBMIiAgQmxvY2tTaXplOiAweCUwOHgsIEJsb2NrQ291bnQ6IDB4JTA4eFxyXG4iLCBCbG9j a0lvLT5NZWRpYS0+QmxvY2tTaXplLCBCbG9ja0NvdW50KTsNCj4gDQo+ICsgICAgU2hlbGxQcmlu dEV4ICgtMSwgLTEsIEwiICBCbG9ja1NpemU6IDB4JTA4eCwgQmxvY2tDb3VudDogMHglMDh4XHJc biIsIEJsb2NrSW8tPk1lZGlhLT5CbG9ja1NpemUsKFVJTlROKUJsb2NrQ291bnQpOyAvLw0KPiBB TUkgT1ZFUlJJREUNCj4gDQo+ICAgICAgT3JpZ2luYWxCdWZmZXIgPSBOVUxMOw0KPiANCj4gICAg ICBCdWZmZXIgICAgICAgICA9IE5VTEw7DQo+IA0KPiAgICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEv U2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9IZXhFZGl0L0J1ZmZl ckltYWdlLmMNCj4gYi9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGli L0hleEVkaXQvQnVmZmVySW1hZ2UuYw0KPiBpbmRleCBiZTc3ZTMxYTQwLi43ZTU1YmUzZGFlIDEw MDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGli L0hleEVkaXQvQnVmZmVySW1hZ2UuYw0KPiArKysgYi9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVs bERlYnVnMUNvbW1hbmRzTGliL0hleEVkaXQvQnVmZmVySW1hZ2UuYw0KPiBAQCAtMSwzICsxLDEw IEBADQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqDQo+IA0KPiArLy8qICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KPiANCj4g Ky8vKiAgIENvcHlyaWdodCAoYykgMTk4NS0yMDIyLCBBbWVyaWNhbiBNZWdhdHJlbmRzIEludGVy bmF0aW9uYWwgTExDLiAgICoNCj4gDQo+ICsvLyogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQo+IA0KPiArLy8qICAg ICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gU3ViamVjdCB0byBBTUkgbGljZW5zaW5nIGFncmVlbWVu dC4gICAgICAgKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gDQo+ICsvLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqDQo+IA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAgICBEZWZpbmVzIEhCdWZmZXJJbWFnZSAtIHRo ZSB2aWV3IG9mIHRoZSBmaWxlIHRoYXQgaXMgdmlzaWJsZSBhdCBhbnkgcG9pbnQsDQo+IA0KPiAg ICBhcyB3ZWxsIGFzIHRoZSBldmVudCBoYW5kbGVycyBmb3IgZWRpdGluZyB0aGUgZmlsZQ0KPiAN Cj4gQEAgLTIwMzYsNyArMjA0Myw4IEBAIEhCdWZmZXJJbWFnZUFkZENoYXJhY3RlclRvQnVmZmVy ICgNCj4gICAgVUlOVE4gIE9sZFBvczsNCj4gDQo+IA0KPiANCj4gICAgVUlOVE4gIE5ld1BvczsN Cj4gDQo+IC0NCj4gDQo+ICsgIEVGSV9TVEFUVVMgICBTdGF0dXM7ICAvLyBBTUkgT1ZFUlJJREUN Cj4gDQo+ICsNCj4gDQo+ICAgIFNpemUgPSBIQnVmZmVySW1hZ2VHZXRUb3RhbFNpemUgKCk7DQo+ IA0KPiANCj4gDQo+ICAgIC8vDQo+IA0KPiBAQCAtMjA4MywxMCArMjA5MSwxNCBAQCBIQnVmZmVy SW1hZ2VBZGRDaGFyYWN0ZXJUb0J1ZmZlciAoDQo+ICAgIFNpemUgKz0gQ291bnQ7DQo+IA0KPiAN Cj4gDQo+ICAgIEhCdWZmZXJJbWFnZUZyZWVMaW5lcyAoKTsNCj4gDQo+IC0NCj4gDQo+IC0gIEhC dWZmZXJJbWFnZUJ1ZmZlclRvTGlzdCAoQnVmZmVyLCBTaXplKTsNCj4gDQo+ICsgIFN0YXR1cyA9 IEhCdWZmZXJJbWFnZUJ1ZmZlclRvTGlzdCAoQnVmZmVyLCBTaXplKTsgIC8vKioqIEFNSSBQT1JU SU5HICoqKi8vDQo+IA0KPiANCj4gDQo+ICAgIEZyZWVQb29sIChCdWZmZXIpOw0KPiANCj4gKyAg Ly8qKiogQU1JIFBPUlRJTkcgQkVHSU4gKioqLy8NCj4gDQo+ICsgIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gDQo+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gDQo+ICsgIH0NCj4gDQo+ICsg IC8vKioqIEFNSSBQT1JUSU5HIEVORCAqKiovLw0KPiANCj4gDQo+IA0KPiAgICBMaW5rID0gSE1h aW5FZGl0b3IuQnVmZmVySW1hZ2UtPkxpc3RIZWFkLT5Gb3J3YXJkTGluazsNCj4gDQo+ICAgIGZv ciAoSW5kZXggPSAwOyBJbmRleCA8IChJTlROKU5ld1BvcyAvIDB4MTA7IEluZGV4KyspIHsNCj4g DQo+IGRpZmYgLS1naXQgYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRz TGliL0hleEVkaXQvRmlsZUltYWdlLmMNCj4gYi9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERl YnVnMUNvbW1hbmRzTGliL0hleEVkaXQvRmlsZUltYWdlLmMNCj4gaW5kZXggZDg4MThkZDk1OC4u YjRlNGExNDNjMCAxMDA2NDQNCj4gLS0tIGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1 ZzFDb21tYW5kc0xpYi9IZXhFZGl0L0ZpbGVJbWFnZS5jDQo+ICsrKyBiL1NoZWxsUGtnL0xpYnJh cnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvSGV4RWRpdC9GaWxlSW1hZ2UuYw0KPiBAQCAt MSwzICsxLDEwIEBADQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+IA0KPiArLy8qICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Kg0KPiANCj4gKy8vKiAgIENvcHlyaWdodCAoYykgMTk4NS0yMDIyLCBBbWVyaWNhbiBNZWdhdHJl bmRzIEludGVybmF0aW9uYWwgTExDLiAgICoNCj4gDQo+ICsvLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQo+IA0K PiArLy8qICAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gU3ViamVjdCB0byBBTUkgbGljZW5zaW5n IGFncmVlbWVudC4gICAgICAgKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gDQo+ICsvLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqDQo+IA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAgICBGdW5jdGlvbnMgdG8gZGVh bCB3aXRoIGZpbGUgYnVmZmVyLg0KPiANCj4gDQo+IA0KPiBAQCAtMjQ1LDYgKzI1Miw3IEBAIEhG aWxlSW1hZ2VSZWFkICgNCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIG9w ZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4NCj4gDQo+ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNP VVJDRVMgIEEgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0KPiANCj4gICAgQHJldHZhbCBFRklf TE9BRF9FUlJPUiAgICAgICAgQSBsb2FkIGVycm9yIG9jY3VycmVkLg0KPiANCj4gKyAgQHJldHZh bCBFRklfSU5WQUxJRF9QQVJBTUVURVIgRmlsZU5hbWUgaW5wdXQgcGFyYW1ldGVyIGlzIE5VTEwu DQo+IA0KPiAgKiovDQo+IA0KPiAgRUZJX1NUQVRVUw0KPiANCj4gIEhGaWxlSW1hZ2VTYXZlICgN Cj4gDQo+IEBAIC0yNjQsNyArMjcyLDExIEBAIEhGaWxlSW1hZ2VTYXZlICgNCj4gDQo+IA0KPiAg ICBCdWZmZXJUeXBlQmFja3VwICAgICAgICA9IEhCdWZmZXJJbWFnZS5CdWZmZXJUeXBlOw0KPiAN Cj4gICAgSEJ1ZmZlckltYWdlLkJ1ZmZlclR5cGUgPSBGaWxlVHlwZUZpbGVCdWZmZXI7DQo+IA0K PiAtDQo+IA0KPiArIC8vKioqIEFNSSBQT1JUSU5HIEJFR0lOICoqKi8vDQo+IA0KPiArICBpZiAo RmlsZU5hbWUgPT0gTlVMTCkgew0KPiANCj4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1F VEVSOw0KPiANCj4gKyAgfQ0KPiANCj4gKyAgLy8qKiogQU1JIFBPUlRJTkcgRU5EICoqKi8vDQo+ IA0KPiAgICAvLw0KPiANCj4gICAgLy8gaWYgaXMgdGhlIG9sZCBmaWxlDQo+IA0KPiAgICAvLw0K PiANCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRHJpdmVyMUNvbW1h bmRzTGliL0RydkNmZy5jIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEcml2ZXIxQ29tbWFu ZHNMaWIvRHJ2Q2ZnLmMNCj4gaW5kZXggOWJiYmIxNDQ0ZC4uNmJlYmY1NjVmNSAxMDA2NDQNCj4g LS0tIGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEcml2ZXIxQ29tbWFuZHNMaWIvRHJ2Q2Zn LmMNCj4gKysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEcml2ZXIxQ29tbWFuZHNMaWIv RHJ2Q2ZnLmMNCj4gQEAgLTEsMyArMSwxMCBAQA0KPiArLy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiANCj4g Ky8vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICoNCj4gDQo+ICsvLyogICBDb3B5cmlnaHQgKGMpIDE5ODUtMjAyMiwg QW1lcmljYW4gTWVnYXRyZW5kcyBJbnRlcm5hdGlvbmFsIExMQy4gICAqDQo+IA0KPiArLy8qICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKg0KPiANCj4gKy8vKiAgICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFN1YmplY3Qg dG8gQU1JIGxpY2Vuc2luZyBhZ3JlZW1lbnQuICAgICAgICoNCj4gDQo+ICsvLyogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqDQo+IA0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiANCj4gIC8qKiBAZmlsZQ0KPiANCj4gICAg TWFpbiBmaWxlIGZvciBEcnZDZmcgc2hlbGwgRHJpdmVyMSBmdW5jdGlvbi4NCj4gDQo+IA0KPiAN Cj4gQEAgLTM1NSw3ICszNjIsNyBAQCBDb25maWdGcm9tRmlsZSAoDQo+ICAgIH0NCj4gDQo+IA0K PiANCj4gICAgTWFpbkJ1ZmZlciA9IEFsbG9jYXRlWmVyb1Bvb2wgKChVSU5UTilNYWluQnVmZmVy U2l6ZSk7DQo+IA0KPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+IA0KPiArICAgaWYg KE1haW5CdWZmZXIgPT0gTlVMTCkgeyAvLyBBTUkgT1ZFUlJJREUNCj4gDQo+ICAgICAgU2hlbGxQ cmludEhpaUV4ICgNCj4gDQo+ICAgICAgICAtMSwNCj4gDQo+ICAgICAgICAtMSwNCj4gDQo+IGRp ZmYgLS1naXQgYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbExldmVsMUNvbW1hbmRzTGliL0Zv ci5jIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxMZXZlbDFDb21tYW5kc0xpYi9Gb3IuYw0K PiBpbmRleCA4YTZhOTQwZjI4Li5mMzRhY2RlMzUzIDEwMDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9M aWJyYXJ5L1VlZmlTaGVsbExldmVsMUNvbW1hbmRzTGliL0Zvci5jDQo+ICsrKyBiL1NoZWxsUGtn L0xpYnJhcnkvVWVmaVNoZWxsTGV2ZWwxQ29tbWFuZHNMaWIvRm9yLmMNCj4gQEAgLTEsMyArMSwx MCBAQA0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gDQo+ ICsvLyogICBDb3B5cmlnaHQgKGMpIDE5ODUtMjAyMiwgQW1lcmljYW4gTWVnYXRyZW5kcyBJbnRl cm5hdGlvbmFsIExMQy4gICAqDQo+IA0KPiArLy8qICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KPiANCj4gKy8vKiAg ICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFN1YmplY3QgdG8gQU1JIGxpY2Vuc2luZyBhZ3JlZW1l bnQuICAgICAgICoNCj4gDQo+ICsvLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQo+IA0KPiArLy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKg0KPiANCj4gIC8qKiBAZmlsZQ0KPiANCj4gICAgTWFpbiBmaWxlIGZvciBlbmRmb3IgYW5k IGZvciBzaGVsbCBsZXZlbCAxIGZ1bmN0aW9ucy4NCj4gDQo+IA0KPiANCj4gQEAgLTMzNSw2ICsz NDIsMTEgQEAgU2hlbGxDb21tYW5kUnVuRm9yICgNCj4gDQo+IA0KPiAgICBDdXJyZW50U2NyaXB0 RmlsZSA9IFNoZWxsQ29tbWFuZEdldEN1cnJlbnRTY3JpcHRGaWxlICgpOw0KPiANCj4gICAgQVNT RVJUIChDdXJyZW50U2NyaXB0RmlsZSAhPSBOVUxMKTsNCj4gDQo+ICsgIC8vKioqIEFNSSBQT1JU SU5HIEJFR0lOICoqKi8vDQo+IA0KPiArICBpZiAoQ3VycmVudFNjcmlwdEZpbGUgPT0gTlVMTCkg ew0KPiANCj4gKyAgICByZXR1cm4gKFNIRUxMX0RFVklDRV9FUlJPUik7DQo+IA0KPiArICB9DQo+ IA0KPiArICAvLyoqKiBBTUkgUE9SVElORyBFTkQgKioqLy8NCj4gDQo+IA0KPiANCj4gICAgaWYg KChDdXJyZW50U2NyaXB0RmlsZS0+Q3VycmVudENvbW1hbmQgIT0gTlVMTCkgJiYgKEN1cnJlbnRT Y3JpcHRGaWxlLT5DdXJyZW50Q29tbWFuZC0+RGF0YSA9PSBOVUxMKSkgew0KPiANCj4gICAgICBG aXJzdFBhc3MgPSBUUlVFOw0KPiANCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0xpYnJhcnkvVWVm aVNoZWxsTGV2ZWwxQ29tbWFuZHNMaWIvSWYuYyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxs TGV2ZWwxQ29tbWFuZHNMaWIvSWYuYw0KPiBpbmRleCBiNGE2OTY2ZWRiLi4yY2JhZmVmMGQxIDEw MDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbExldmVsMUNvbW1hbmRzTGli L0lmLmMNCj4gKysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxMZXZlbDFDb21tYW5kc0xp Yi9JZi5jDQo+IEBAIC0xLDMgKzEsMTAgQEANCj4gKy8vKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gDQo+ICsv LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqDQo+IA0KPiArLy8qICAgQ29weXJpZ2h0IChjKSAxOTg1LTIwMjIsIEFt ZXJpY2FuIE1lZ2F0cmVuZHMgSW50ZXJuYXRpb25hbCBMTEMuICAgKg0KPiANCj4gKy8vKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICoNCj4gDQo+ICsvLyogICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBTdWJqZWN0IHRv IEFNSSBsaWNlbnNpbmcgYWdyZWVtZW50LiAgICAgICAqDQo+IA0KPiArLy8qICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Kg0KPiANCj4gKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gDQo+ICAvKiogQGZpbGUNCj4gDQo+ICAgIE1h aW4gZmlsZSBmb3IgSWYgYW5kIGVsc2Ugc2hlbGwgbGV2ZWwgMSBmdW5jdGlvbi4NCj4gDQo+IA0K PiANCj4gQEAgLTEwMCw2ICsxMDcsMTEgQEAgSXNWYWxpZFByb2ZpbGUgKA0KPiANCj4gDQo+ICAg IFByb2ZpbGVzU3RyaW5nID0gU2hlbGxHZXRFbnZpcm9ubWVudFZhcmlhYmxlIChMInByb2ZpbGVz Iik7DQo+IA0KPiAgICBBU1NFUlQgKFByb2ZpbGVzU3RyaW5nICE9IE5VTEwpOw0KPiANCj4gKyAg Ly8qKiogQU1JIFBPUlRJTkcgQkVHSU4gKioqLy8NCj4gDQo+ICsgIGlmIChQcm9maWxlc1N0cmlu ZyA9PSBOVUxMKSB7DQo+IA0KPiArICAgIHJldHVybiBGQUxTRTsNCj4gDQo+ICsgIH0NCj4gDQo+ ICsgIC8vKioqIEFNSSBQT1JUSU5HIEVORCAqKiovLw0KPiANCj4gICAgVGVtcExvY2F0aW9uID0g U3RyU3RyIChQcm9maWxlc1N0cmluZywgU3RyaW5nKTsNCj4gDQo+ICAgIGlmICgoVGVtcExvY2F0 aW9uICE9IE5VTEwpICYmICgqKFRlbXBMb2NhdGlvbi0xKSA9PSBMJzsnKSAmJiAoKihUZW1wTG9j YXRpb24rU3RyTGVuIChTdHJpbmcpKSA9PSBMJzsnKSkgew0KPiANCj4gICAgICByZXR1cm4gKFRS VUUpOw0KPiANCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsTGV2ZWwy Q29tbWFuZHNMaWIvVm9sLmMgYi9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbExldmVsMkNvbW1h bmRzTGliL1ZvbC5jDQo+IGluZGV4IDhmNzMxMGMwNzQuLjYxNDcwMjQ5ZjcgMTAwNjQ0DQo+IC0t LSBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsTGV2ZWwyQ29tbWFuZHNMaWIvVm9sLmMNCj4g KysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxMZXZlbDJDb21tYW5kc0xpYi9Wb2wuYw0K PiBAQCAtMSwzICsxLDEwIEBADQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+IA0KPiArLy8qICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKg0KPiANCj4gKy8vKiAgIENvcHlyaWdodCAoYykgMTk4NS0yMDIyLCBBbWVyaWNhbiBN ZWdhdHJlbmRzIEludGVybmF0aW9uYWwgTExDLiAgICoNCj4gDQo+ICsvLyogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq DQo+IA0KPiArLy8qICAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gU3ViamVjdCB0byBBTUkgbGlj ZW5zaW5nIGFncmVlbWVudC4gICAgICAgKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gDQo+ ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqDQo+IA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAgICBNYWluIGZpbGUg Zm9yIHZvbCBzaGVsbCBsZXZlbCAyIGZ1bmN0aW9uLg0KPiANCj4gDQo+IA0KPiBAQCAtOTcsNyAr MTA0LDExIEBAIEhhbmRsZVZvbCAoDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gICAgQVNTRVJUIChT eXNJbmZvICE9IE5VTEwpOw0KPiANCj4gLQ0KPiANCj4gKyAgLy8qKiogQU1JIFBPUlRJTkcgQkVH SU4gKioqLy8NCj4gDQo+ICsgIGlmIChTeXNJbmZvID09IE5VTEwpIHsNCj4gDQo+ICsgICAgcmV0 dXJuIChTSEVMTF9PVVRfT0ZfUkVTT1VSQ0VTKTs7DQo+IA0KPiArICB9DQo+IA0KPiArIC8vKioq IEFNSSBQT1JUSU5HIEVORCAqKiovLw0KPiANCj4gICAgaWYgKERlbGV0ZSkgew0KPiANCj4gICAg ICAqKChDSEFSMTYgKilTeXNJbmZvLT5Wb2x1bWVMYWJlbCkgPSBDSEFSX05VTEw7DQo+IA0KPiAg ICAgIFN5c0luZm8tPlNpemUgICAgICAgICAgICAgICAgICAgICA9IFNJWkVfT0ZfRUZJX0ZJTEVf U1lTVEVNX0lORk8gKyBTdHJTaXplIChTeXNJbmZvLT5Wb2x1bWVMYWJlbCk7DQo+IA0KPiBkaWZm IC0tZ2l0IGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxMZXZlbDNDb21tYW5kc0xpYi9IZWxw LmMgYi9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbExldmVsM0NvbW1hbmRzTGliL0hlbHAuYw0K PiBpbmRleCA3ZjE0NmJiOWZiLi4yMWU2MmM5ZWU4IDEwMDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9M aWJyYXJ5L1VlZmlTaGVsbExldmVsM0NvbW1hbmRzTGliL0hlbHAuYw0KPiArKysgYi9TaGVsbFBr Zy9MaWJyYXJ5L1VlZmlTaGVsbExldmVsM0NvbW1hbmRzTGliL0hlbHAuYw0KPiBAQCAtMSwzICsx LDEwIEBADQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+IA0KPiArLy8qICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KPiAN Cj4gKy8vKiAgIENvcHlyaWdodCAoYykgMTk4NS0yMDIyLCBBbWVyaWNhbiBNZWdhdHJlbmRzIElu dGVybmF0aW9uYWwgTExDLiAgICoNCj4gDQo+ICsvLyogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQo+IA0KPiArLy8q ICAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gU3ViamVjdCB0byBBTUkgbGljZW5zaW5nIGFncmVl bWVudC4gICAgICAgKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gDQo+ICsvLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQo+IA0KPiAgLyoqIEBmaWxlDQo+IA0KPiAgICBNYWluIGZpbGUgZm9yIEhlbHAgc2hl bGwgbGV2ZWwgMyBmdW5jdGlvbi4NCj4gDQo+IA0KPiANCj4gQEAgLTExNyw3ICsxMjQsMTEgQEAg Q29weUxpc3RPZkNvbW1hbmROYW1lcyAoDQo+ICAgICkNCj4gDQo+ICB7DQo+IA0KPiAgICBDT05T VCBDT01NQU5EX0xJU1QgICpOb2RlOw0KPiANCj4gLQ0KPiANCj4gKyAgLy8qKiogQU1JIFBPUlRJ TkcgQkVHSU4gKioqLy8NCj4gDQo+ICsgIGlmIChTb3VyY2VMaXN0ID09IE5VTEwpIHsNCj4gDQo+ ICsgICAgICByZXR1cm4gU0hFTExfSU5WQUxJRF9QQVJBTUVURVI7Ow0KPiANCj4gKyAgfQ0KPiAN Cj4gKyAgLy8qKiogQU1JIFBPUlRJTkcgRU5EICoqKi8vDQo+IA0KPiAgICBmb3IgKCBOb2RlID0g KENPTU1BTkRfTElTVCAqKUdldEZpcnN0Tm9kZSAoJlNvdXJjZUxpc3QtPkxpbmspDQo+IA0KPiAg ICAgICAgICA7IFNvdXJjZUxpc3QgIT0gTlVMTCAmJiAhSXNMaXN0RW1wdHkgKCZTb3VyY2VMaXN0 LT5MaW5rKSAmJiAhSXNOdWxsICgmU291cmNlTGlzdC0+TGluaywgJk5vZGUtPkxpbmspDQo+IA0K PiAgICAgICAgICA7IE5vZGUgPSAoQ09NTUFORF9MSVNUICopR2V0TmV4dE5vZGUgKCZTb3VyY2VM aXN0LT5MaW5rLCAmTm9kZS0+TGluaykNCj4gDQo+IGRpZmYgLS1naXQgYS9TaGVsbFBrZy9MaWJy YXJ5L1VlZmlTaGVsbExpYi9VZWZpU2hlbGxMaWIuYyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNo ZWxsTGliL1VlZmlTaGVsbExpYi5jDQo+IGluZGV4IGE3Mjc2N2JkODYuLjE3NDZiYmNiMmQgMTAw NjQ0DQo+IC0tLSBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsTGliL1VlZmlTaGVsbExpYi5j DQo+ICsrKyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsTGliL1VlZmlTaGVsbExpYi5jDQo+ IEBAIC0xLDMgKzEsMTEgQEANCj4gKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gDQo+ICsvLyogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqDQo+IA0KPiArLy8qICAgQ29weXJpZ2h0IChjKSAxOTg1LTIwMjIsIEFtZXJpY2FuIE1l Z2F0cmVuZHMgSW50ZXJuYXRpb25hbCBMTEMuICAgKg0KPiANCj4gKy8vKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoN Cj4gDQo+ICsvLyogICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBTdWJqZWN0IHRvIEFNSSBsaWNl bnNpbmcgYWdyZWVtZW50LiAgICAgICAqDQo+IA0KPiArLy8qICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KPiANCj4g Ky8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioNCj4gDQo+ICsNCj4gDQo+ICAvKiogQGZpbGUNCj4gDQo+ICAgIFBy b3ZpZGVzIGludGVyZmFjZSB0byBzaGVsbCBmdW5jdGlvbmFsaXR5IGZvciBzaGVsbCBjb21tYW5k cyBhbmQgYXBwbGljYXRpb25zLg0KPiANCj4gDQo+IA0KPiBAQCAtMTc2MSw3ICsxNzY5LDExIEBA IFNoZWxsQ2xvc2VGaWxlTWV0YUFyZyAoDQo+ICAgIC8vIEFTU0VSVCB0aGF0IExpc3RIZWFkIGlz IG5vdCBOVUxMDQo+IA0KPiAgICAvLw0KPiANCj4gICAgQVNTRVJUIChMaXN0SGVhZCAhPSBOVUxM KTsNCj4gDQo+IC0NCj4gDQo+ICsgIC8vKioqIEFNSSBQT1JUSU5HIEJFR0lOICoqKi8vDQo+IA0K PiArICBpZiAoTGlzdEhlYWQgPT0gTlVMTCkgew0KPiANCj4gKyAgICByZXR1cm4gKFNIRUxMX0lO VkFMSURfUEFSQU1FVEVSKTsNCj4gDQo+ICsgIH0NCj4gDQo+ICsgIC8vKioqIEFNSSBQT1JUSU5H IEVORCAqKiovLw0KPiANCj4gICAgLy8NCj4gDQo+ICAgIC8vIENoZWNrIGZvciBVRUZJIFNoZWxs IDIuMCBwcm90b2NvbHMNCj4gDQo+ICAgIC8vDQo+IA0KPiBAQCAtMjIyMSw2ICsyMjMzLDEwIEBA IEludGVybmFsQ29tbWFuZExpbmVQYXJzZSAoDQo+ICAgICAgICBpZiAoQ3VycmVudEl0ZW1QYWNr YWdlLT5OYW1lID09IE5VTEwpIHsNCj4gDQo+ICAgICAgICAgIFNoZWxsQ29tbWFuZExpbmVGcmVl VmFyTGlzdCAoKkNoZWNrUGFja2FnZSk7DQo+IA0KPiAgICAgICAgICAqQ2hlY2tQYWNrYWdlID0g TlVMTDsNCj4gDQo+ICsgICAgICAgIC8vKioqIEFNSSBQT1JUSU5HIEJFR0lOICoqKi8vDQo+IA0K PiArICAgICAgICAvLyBGaXhpbmcgbWVtb3J5IGxlYWsgaGVyZQ0KPiANCj4gKyAgICAgICAgU0hF TExfRlJFRV9OT05fTlVMTCAoQ3VycmVudEl0ZW1QYWNrYWdlKTsNCj4gDQo+ICsgICAgICAgIC8v KioqIEFNSSBQT1JUSU5HIEVORCAqKiovLw0KPiANCj4gICAgICAgICAgcmV0dXJuIChFRklfT1VU X09GX1JFU09VUkNFUyk7DQo+IA0KPiAgICAgICAgfQ0KPiANCj4gDQo+IA0KPiBAQCAtMjMyMyw2 ICsyMzM5LDEwIEBAIEludGVybmFsQ29tbWFuZExpbmVQYXJzZSAoDQo+ICAgICAgICBpZiAoQ3Vy cmVudEl0ZW1QYWNrYWdlLT5WYWx1ZSA9PSBOVUxMKSB7DQo+IA0KPiAgICAgICAgICBTaGVsbENv bW1hbmRMaW5lRnJlZVZhckxpc3QgKCpDaGVja1BhY2thZ2UpOw0KPiANCj4gICAgICAgICAgKkNo ZWNrUGFja2FnZSA9IE5VTEw7DQo+IA0KPiArICAgICAgICAvLyoqKiBBTUkgUE9SVElORyBCRUdJ TiAqKiovLw0KPiANCj4gKyAgICAgICAgLy8gRml4aW5nIG1lbW9yeSBsZWFrIGhlcmUNCj4gDQo+ ICsgICAgICAgIFNIRUxMX0ZSRUVfTk9OX05VTEwgKEN1cnJlbnRJdGVtUGFja2FnZSk7DQo+IA0K PiArICAgICAgICAvLyoqKiBBTUkgUE9SVElORyBFTkQgKioqLy8NCj4gDQo+ICAgICAgICAgIHJl dHVybiAoRUZJX09VVF9PRl9SRVNPVVJDRVMpOw0KPiANCj4gICAgICAgIH0NCj4gDQo+IA0KPiAN Cj4gQEAgLTQzNzcsOSArNDM5NywxMiBAQCBTaGVsbEZpbGVIYW5kbGVSZWFkTGluZSAoDQo+ICAg ICAgcmV0dXJuIChFRklfSU5WQUxJRF9QQVJBTUVURVIpOw0KPiANCj4gICAgfQ0KPiANCj4gDQo+ IA0KPiAtICBpZiAoQnVmZmVyID09IE5VTEwpIHsNCj4gDQo+IC0gICAgQVNTRVJUICgqU2l6ZSA9 PSAwKTsNCj4gDQo+IC0gIH0gZWxzZSB7DQo+IA0KPiArICAvLyoqKiBBTUkgUE9SVElORyBCRUdJ TiAqKiovLw0KPiANCj4gKyAgaWYgKChCdWZmZXIgPT0gTlVMTCkgfHwgKCpTaXplID09IDApKSB7 DQo+IA0KPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+IA0KPiArICB9DQo+ IA0KPiArICAvLyoqKiBBTUkgUE9SVElORyBFTkQgKioqLy8NCj4gDQo+ICsgIGVsc2Ugew0KPiAN Cj4gICAgICAqQnVmZmVyID0gQ0hBUl9OVUxMOw0KPiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiAt LQ0KPiAyLjM2LjAud2luZG93cy4xDQo+IC1UaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRo aXMgbWVzc2FnZSBtYXkgYmUgY29uZmlkZW50aWFsIGFuZCBwcm9wcmlldGFyeSB0byBBbWVyaWNh biBNZWdhdHJlbmRzIChBTUkpLiBUaGlzDQo+IGNvbW11bmljYXRpb24gaXMgaW50ZW5kZWQgdG8g YmUgcmVhZCBvbmx5IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0IGlzIGFk ZHJlc3NlZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlDQo+IHJlYWRlciBvZiB0aGlzIG1l c3NhZ2UgaXMgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUgb24gbm90aWNlIHRo YXQgYW55IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFueSBmb3JtLCBpcw0KPiBz dHJpY3RseSBwcm9oaWJpdGVkLiBQbGVhc2UgcHJvbXB0bHkgbm90aWZ5IHRoZSBzZW5kZXIgYnkg cmVwbHkgZS1tYWlsIG9yIGJ5IHRlbGVwaG9uZSBhdCA3NzAtMjQ2LTg2MDAsIGFuZCB0aGVuIGRl bGV0ZSBvcg0KPiBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIHRyYW5zbWlzc2lvbi4NCj4gDQo+ IA0KPiANCj4gDQoNCg==