From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.11960.1636034013055669275 for ; Thu, 04 Nov 2021 06:53:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=vb1bu/jo; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10157"; a="218607386" X-IronPort-AV: E=Sophos;i="5.87,208,1631602800"; d="scan'208";a="218607386" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2021 06:53:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,208,1631602800"; d="scan'208";a="585795628" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga002.fm.intel.com with ESMTP; 04 Nov 2021 06:53:30 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 4 Nov 2021 06:53:30 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) 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.12; Thu, 4 Nov 2021 06:53:29 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 4 Nov 2021 06:53:29 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) 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.12; Thu, 4 Nov 2021 06:53:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fpuv68bJF+sLkKYAPWxxlkV0psP5rmT/ebNaQZaCAEnJLMc2v5RmbgSqv+j6ZQcrsVt7JsFvRjo17nh0soD7QawcvDuS8cFPbVFXhZVI3eGZLQw8hYPMUphduNAEZV8BCUislxCJLWG0BUMqrvFb8+kTu11l3p9E9KefIBiCYdPVyCAzsXhYV1MzZvNLV/cPkiRSYcIyJyi36DCyJ9NqjkG6BhS/nyOzAzA8Fq8rB3p+HF1fibtahkcxGpCNk7TujGrD+d8Su5L6QZbraEkysoKlqEXUI+jWGgzDSYhsOhKW3QqqEnXNo8jrz29V+vDiFPfsRYSUUzq5SJT+6dpg4A== 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=DdXH+NJ9EusKfUM6Xteym2/rk4pzBrRNVt6Py/GICrM=; b=Fln/A/nUlABctavgSaC46GaVc85+FxNw3PTFXnBla+cimud5WL4YrwlNtSU2zI+P/OLr5ojYud0oSB0bxNgd74ZG53P23ZJDb+tPQmwg1yzRSlJ9/eZ0Puk89cbWi+4OjIS8XRR27YbS7qWTUO9lF01QvAwV+kVl5Lv9skgCJBoXbyV2Eg6e0+xHeJTREU/paoA5oOd9Ttb9F1pF00XZo5lvR82iYsQksy3+qBBZosZs+oWRkehSgRTtZKt735jf7hzwD58irGyF6cEb2QZrnhm/W2xXp7tyLNlHpSTsygycBEQLxPnALdju0G6u7so0w0Hr94sisB9u+JjTQijTFg== 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=DdXH+NJ9EusKfUM6Xteym2/rk4pzBrRNVt6Py/GICrM=; b=vb1bu/joUUF0ks4wfDZa+qjoT7IPTOBM7fGWFS58RpW2/AIAbJo6i7Wp06QbhOPhUqtXYCNvLcHDl9D0bgrDOKuPDlDPsM2NSHGjrKghzRbmJdarlqbPZOyfp2g95/5N0DJNVkQ4vi4Zy1YB3fNcrk2mcvnQ3a9v/GD39UP8Mk4= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH7PR11MB5913.namprd11.prod.outlook.com (2603:10b6:510:137::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Thu, 4 Nov 2021 13:53:27 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::c5cb:e37a:9f3:8f80]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::c5cb:e37a:9f3:8f80%5]) with mapi id 15.20.4649.019; Thu, 4 Nov 2021 13:53:27 +0000 From: "Yao, Jiewen" To: Brijesh Singh , "devel@edk2.groups.io" CC: James Bottomley , "Xu, Min M" , Tom Lendacky , "Justen, Jordan L" , Ard Biesheuvel , Erdem Aktas , Michael Roth , Gerd Hoffmann , "Dong, Eric" , "Ni, Ray" , "Kumar, Rahul1" Subject: Re: [PATCH v11 02/32] UefiCpuPkg/MpInitLib: move SEV specific routines in AmdSev.c Thread-Topic: [PATCH v11 02/32] UefiCpuPkg/MpInitLib: move SEV specific routines in AmdSev.c Thread-Index: AQHXyTFQ4OqGIAWjEkGqfpm9161NqKvzdCeA Date: Thu, 4 Nov 2021 13:53:27 +0000 Message-ID: References: <20211023041349.1263726-1-brijesh.singh@amd.com> <20211023041349.1263726-3-brijesh.singh@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 821fdacb-dd86-4f0c-9cb8-08d99f9a7a20 x-ms-traffictypediagnostic: PH7PR11MB5913: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SZ/A2M6pmBDun+Ez1w9kVzFopbso/2n8iLQQuekaOx06l0Rf/h+efPeozCugUxsFLAg0JF8FuNnutdaD3xL+ejJqoQMfHK9c4eMXJAOj28v5QyqaFpOFZW6HIg70fXyKnNZ3p553eIz1NxYgKDBnF9JxA5DR+PKBQySpVhG9fqkWebYiHcDvwe5JyRt1aqgNLFu9D6y4SAdKC27XVI5/8q5adaCsPWBRU+7nReBCl4F+hG9B1ZWQH4YBh55Vw9SgLw4Gjg5t8RgSRztNDL+p6eccj/fGQRpyEGX3MiPI7hQSV1XJBM2jERViDN6YB+Sk4O4iPnybt4lk7flGPWR3HeR6RrI75S6RfKxzTbHrvkGFgR1bNJEGX1A9n/NUTdRRyaCq5UUPB3jEKBxEf3jfRQHxSvP7/slBltSQsOwStxePvpjhOvbYJlZXmFHOwTiOZHOtaUpOlpFEbY4URHRuHT8dCWYSNMUw/G6CYhUQfDeifpXTGylqM62ca+wkZIFjXb0vGc9+cDX1cyN7iS1mSg87mTRdUqVrbz7QOZ4RQVQmtrObHxCMjoKEOhCrqSbxe/Dn8+B5Re74aRyfmaZEtoOYTbmYEwXQeoY9u3ZeQLml7kw6GCVqoh/zIjXo22Gip3N3O1X3e1rBPdQ19ZhKFv9e8PR+ueWka7y5tBHWpFCYgJZtN+tIu2U4OGsHevfgjgmUsmzIMPRUZwxIH4unscOsqdBUslT7YeIodqhrijPQUOkKapB8tSImlUNwjvrMl1kOzdF9lqn+tBBaHU+B5qV5691qUYCAeTEedOUfZ10= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(366004)(186003)(966005)(316002)(508600001)(38100700002)(107886003)(54906003)(30864003)(38070700005)(2906002)(33656002)(5660300002)(55016002)(83380400001)(19627235002)(66556008)(9686003)(71200400001)(66446008)(66476007)(53546011)(8936002)(64756008)(7696005)(76116006)(110136005)(4326008)(122000001)(82960400001)(6506007)(52536014)(86362001)(8676002)(66946007)(26005)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Ukp1V0ZFVm1TcDJ0YVJST3RCenhiYmxDWUVHOVMxaTdGUzNNQnlCTnliTWEv?= =?utf-8?B?YVNPblFFd0RyaWs4RThCbG85VndJV2tLSDR3TDlzRVliM3hDOTZIUzJCU3Mw?= =?utf-8?B?VjdOZlZMU1BodCtUNUI3UXp3ZXhTWUw3RlI1VlRyQ1RHL0MySFhQRVh5MHFo?= =?utf-8?B?cGxFUTlFM1FuOWhlUjU3ZnM2Nm9RY1ZQNzIvRC9lck1jVHNvb0pPK0ZxblF1?= =?utf-8?B?NkV1c1ZENzAvRlN1c2JsZTQ4eEt1TjRvRklWdjUrRVBJRzZUanc1WVdIc0Yz?= =?utf-8?B?QVlRdWdXN25vSVpkZjhocDRUZ2wyZjdiRXJLMjhwcnJ2Ym50dGh1NG1SUGI2?= =?utf-8?B?TGVIQmJaMFhRaHlLZnp0aCt0OG53c0xJYlNxYjZWMy8wVi9yVk54UUhXYU1P?= =?utf-8?B?SjYxekJUQVI1WTBpMDAvaEFZK2xOVElMUllVUWJ1K1hVY09GYklaN1FBY1ZH?= =?utf-8?B?YUJoY0ozUDg1Y25PbVFoTnplb3BGMUFxSEFJY3FLU2M4eTNnMGsvclhjQ3Aw?= =?utf-8?B?MllTZHVtT00rSVg3TUkvMUt5aHdwNDB1U2xVRWQvS0NmOUJGbHN6NVp1SVVO?= =?utf-8?B?QkRFS3RXekRUZ20weVgzMEY2RmVqMzZyVXU1MDNCUU8wRjRKN0poeGpIalEv?= =?utf-8?B?MDBYNk5rRDBlaWk1SW9MTTVkRkorY294S2szcXlRTkhMVzJLNDM4b1haV2c0?= =?utf-8?B?ckQrVTlxWTY4ZXlDWU85a2hwMmV0TzNvUDhRUzNHdWYvZXUrSTR5T09QeGZO?= =?utf-8?B?VFI5b0dkdjhzZ1JJcWpwZHB0Y2VPQjJUY0kxUzF0aEhrT29sZGVXTXVQeWlX?= =?utf-8?B?YUtCR2dkRHFKcWZMdVV2bHI1WitrNlRSWnJmeUNBT0tjSVhRbG96ZU9VRFhs?= =?utf-8?B?SVF0M1VCcHdhVmZzM0c1WkE5TUhEb1Y1UUFpZ2lZZlMyRU1YMjczazREZDl3?= =?utf-8?B?bEEyWjdBcUNyV20yTktEcVF5dlM5b2dMTUpFMFlmOWw3MXdacUxpOE5SVGM2?= =?utf-8?B?b0R5YzJlMGcyVUFpdGxXSTB6K28zRUpjcTVKODZiUXBHcHMwemFVMjVqVFU3?= =?utf-8?B?TkdGd1Z0bjlwcStDUkk3QlNoTDlaWFBkb08yMXNsclNyc0NpbGo4bEVaYUJD?= =?utf-8?B?eDE2Mm1qNVRxeml3SWpqQUxaVURObmZQSE1aRTBVbGpFQXM3RjBMZ1gyejQw?= =?utf-8?B?Uk91UmN0aWo5MHorV1JDdU0vcEZoMkZ2MlR6VHQybTlSQUN2WmY5OWQ5alBq?= =?utf-8?B?WUlEb2swS2VOeldneHNsdVZZWkU4ODdKaDJ2VmN4cEZ5MUZucDA4STllcVZp?= =?utf-8?B?MVN1WHI3cm1oNU02TFBuRmVyM2lqMDZLL0Y4WXIrTE1yTEpXc3dudWRGZm8x?= =?utf-8?B?MkUyN1ZzVm5lb29oV1NtTE5hdm4rcW5ZeW9LZXY1c2h6NGtzenlFcGJVMHJD?= =?utf-8?B?d0ZwTStLbGhvZC9yWGpqRzk1NnY1aHdzWHU3dDl2OXQveUpqNkZkTXovZ2w0?= =?utf-8?B?am41R3d5V2V5TmhRM3pHWGdEZ3FIOFdSQ2RMYTVtait6Lys0TkQ5dWJzMFBU?= =?utf-8?B?aWNEdHNwVXZxUE1yU0l3NnB6T0dNRDk1cG1na0N2Z09kQU83VVNaQjd5d280?= =?utf-8?B?TDJ4WmYyNW9aRDdiM2lpaG5YOUtPRm5IM3psdWdOUm4ydkhIcnRiOWRaU1Vw?= =?utf-8?B?Q2hXNFhrYWhrd2lnMnEwVFRYQlBpempGM3hpMGR3bzk3b2Y3MzlwMUZHYjFQ?= =?utf-8?B?cmVIK21GOVpBUVIvRVRwU0x5NXM1Mmwvak85dkdTSnZFN0FjRFBGVzdsVmlo?= =?utf-8?B?alA4b2VUODNsSW03QWp0UXFVNWZTRmxmQVRJSHBHenVWTWo4Lzhsd05LeHI3?= =?utf-8?B?VWdOMEw4WnQ0M1hTc1J1RGZubkdhUGJKamNHMTRkYVRad3U1RjBZNWd1OEps?= =?utf-8?B?ek1PNmtRL1lhNUlxd2lnZHZJM2JOZGdRaVNCWERSOFNqQWFtdlRDS0dCUWZZ?= =?utf-8?B?eEZTTjFyalhkRTN0NEFBaU9EVDhra1c2RkllY3NKdlV6Nzk5MXJ6UUVKeFBu?= =?utf-8?B?SzlQQUhVSllJb0U5Q293VnNvNFZoRTR6aUVJY0dUdjlsdG0zS2NybWQvcUc3?= =?utf-8?B?TXk4aTRHT2tPVmFBZk02ckZJbi9xbkY0RkJmWlRFRjF6RFNiWHN5bS9Oall6?= =?utf-8?Q?tgHz3rB+XF7h0C9EOGzn0Ho=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 821fdacb-dd86-4f0c-9cb8-08d99f9a7a20 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2021 13:53:27.0670 (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: ehOl0WhayfLQXxSP4VVJbLMfudEXaRNSmyjd0xSqwMczqjt6vX+r7GUm7vbarZB3WQyxHfDjXvGrSdK/mWejoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5913 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5DQpJdCBoYXMgYmVlbiBhIHdoaWxlIHNpbmNlIHRoZSBwYXRjaCBpcyBzZW50LCBhbnkgZmVl ZGJhY2sgZnJvbSBVZWZpQ3B1UGtnIG1haW50YWluZXI/DQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IEJyaWplc2ggU2luZ2ggPGJyaWplc2guc2luZ2hAYW1kLmNv bT4NCj4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDI1LCAyMDIxIDc6NDYgQU0NCj4gVG86IGRldmVs QGVkazIuZ3JvdXBzLmlvDQo+IENjOiBicmlqZXNoLnNpbmdoQGFtZC5jb207IEphbWVzIEJvdHRv bWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgWHUsIE1pbiBNDQo+IDxtaW4ubS54dUBpbnRlbC5j b20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBUb20gTGVuZGFja3kNCj4g PHRob21hcy5sZW5kYWNreUBhbWQuY29tPjsgSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVz dGVuQGludGVsLmNvbT47DQo+IEFyZCBCaWVzaGV1dmVsIDxhcmRiK3RpYW5vY29yZUBrZXJuZWwu b3JnPjsgRXJkZW0gQWt0YXMNCj4gPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47IE1pY2hhZWwgUm90 aCA8TWljaGFlbC5Sb3RoQGFtZC5jb20+OyBHZXJkDQo+IEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0 LmNvbT47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5DQo+IDxyYXku bmlAaW50ZWwuY29tPjsgS3VtYXIsIFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT4NCj4g U3ViamVjdDogUmU6IFtQQVRDSCB2MTEgMDIvMzJdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBtb3Zl IFNFViBzcGVjaWZpYw0KPiByb3V0aW5lcyBpbiBBbWRTZXYuYw0KPiANCj4gSGkgUmF5IGFuZCBS YWh1bCwNCj4gDQo+IEFueSBjb21tZW50IG9uIHRoaXMgcGF0Y2ggPyBJZiB5b3UgYXJlIG9rYXkg d2l0aCBpdCB0aGVuIGNhbiBJIGdldCBBY2sNCj4gb3IgUi1iID8NCj4gDQo+IC1CcmlqZXNoDQo+ IA0KPiBPbiAxMC8yMi8yMSAxMToxMyBQTSwgQnJpamVzaCBTaW5naCB3cm90ZToNCj4gPiBCWjog aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjc1DQo+ID4N Cj4gPiBNb3ZlIGFsbCB0aGUgU0VWIHNwZWNpZmljIGZ1bmN0aW9uIGluIEFtZFNldi5jLg0KPiA+ DQo+ID4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuDQo+ID4NCj4gPiBDYzogRXJpYyBE b25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5j b20+DQo+ID4gQ2M6IFJhaHVsIEt1bWFyIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPg0KPiA+IENj OiBNaWNoYWVsIFJvdGggPG1pY2hhZWwucm90aEBhbWQuY29tPg0KPiA+IENjOiBKYW1lcyBCb3R0 b21sZXkgPGplamJAbGludXguaWJtLmNvbT4NCj4gPiBDYzogTWluIFh1IDxtaW4ubS54dUBpbnRl bC5jb20+DQo+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+IENj OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0KPiA+IENjOiBKb3JkYW4g SnVzdGVuIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPg0KPiA+IENjOiBBcmQgQmllc2hldXZl bCA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz4NCj4gPiBDYzogRXJkZW0gQWt0YXMgPGVyZGVt YWt0YXNAZ29vZ2xlLmNvbT4NCj4gPiBDYzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5j b20+DQo+ID4gQWNrZWQtYnk6IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPiA+ IFN1Z2dlc3RlZC1ieTogSmlld2VuIFlhbyA8Smlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gU2ln bmVkLW9mZi1ieTogQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPg0KPiA+IC0t LQ0KPiA+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wSW5pdExpYi5pbmYgfCAg IDEgKw0KPiA+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL1BlaU1wSW5pdExpYi5pbmYg fCAgIDEgKw0KPiA+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmggICAgICAg ICAgfCAgMzMgKysrDQo+ID4gIFVlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvQW1kU2V2LmMg ICAgICAgICB8IDIzOSArKysrKysrKysrKysrKysrKysNCj4gPiAgVWVmaUNwdVBrZy9MaWJyYXJ5 L01wSW5pdExpYi9NcExpYi5jICAgICAgICAgIHwgMjE4ICstLS0tLS0tLS0tLS0tLS0NCj4gPiAg VWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9YNjQvQW1kU2V2Lm5hc20gIHwgMTE5ICsrKysr KysrKw0KPiA+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL1g2NC9NcEZ1bmNzLm5hc20g fCAxMDAgKystLS0tLS0NCj4gPiAgNyBmaWxlcyBjaGFuZ2VkLCA0MTMgaW5zZXJ0aW9ucygrKSwg Mjk4IGRlbGV0aW9ucygtKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgVWVmaUNwdVBrZy9MaWJy YXJ5L01wSW5pdExpYi9BbWRTZXYuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgVWVmaUNwdVBr Zy9MaWJyYXJ5L01wSW5pdExpYi9YNjQvQW1kU2V2Lm5hc20NCj4gPg0KPiA+IGRpZmYgLS1naXQg YS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wSW5pdExpYi5pbmYNCj4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wSW5pdExpYi5pbmYNCj4gPiBpbmRleCBkMzQ0 MTljMmE1MjQuLjZlNTEwYWE4OTEyMCAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvTXBJbml0TGliL0R4ZU1wSW5pdExpYi5pbmYNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJh cnkvTXBJbml0TGliL0R4ZU1wSW5pdExpYi5pbmYNCj4gPiBAQCAtMjgsNiArMjgsNyBAQCBbU291 cmNlcy5YNjRdDQo+ID4gICAgWDY0L01wRnVuY3MubmFzbQ0KPiA+DQo+ID4gIFtTb3VyY2VzLmNv bW1vbl0NCj4gPiArICBBbWRTZXYuYw0KPiA+ICAgIE1wRXF1LmluYw0KPiA+ICAgIER4ZU1wTGli LmMNCj4gPiAgICBNcExpYi5jDQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9N cEluaXRMaWIvUGVpTXBJbml0TGliLmluZg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRM aWIvUGVpTXBJbml0TGliLmluZg0KPiA+IGluZGV4IDM2ZmNiOTZiNTg1Mi4uMmNiZDliOGI4YWNj IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvUGVpTXBJbml0 TGliLmluZg0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvUGVpTXBJbml0 TGliLmluZg0KPiA+IEBAIC0yOCw2ICsyOCw3IEBAIFtTb3VyY2VzLlg2NF0NCj4gPiAgICBYNjQv TXBGdW5jcy5uYXNtDQo+ID4NCj4gPiAgW1NvdXJjZXMuY29tbW9uXQ0KPiA+ICsgIEFtZFNldi5j DQo+ID4gICAgTXBFcXUuaW5jDQo+ID4gICAgUGVpTXBMaWIuYw0KPiA+ICAgIE1wTGliLmMNCj4g PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5oDQo+IGIv VWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5oDQo+ID4gaW5kZXggZTg4YTUzNTVj OTgzLi4zZDQ0NDZkZjhjZTYgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01w SW5pdExpYi9NcExpYi5oDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9N cExpYi5oDQo+ID4gQEAgLTM0LDYgKzM0LDkgQEANCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvUGNk TGliLmg+DQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L01pY3JvY29kZUxpYi5oPg0KPiA+DQo+ID4g KyNpbmNsdWRlIDxSZWdpc3Rlci9BbWQvRmFtMTdNc3IuaD4NCj4gPiArI2luY2x1ZGUgPFJlZ2lz dGVyL0FtZC9HaGNiLmg+DQo+ID4gKw0KPiA+ICAjaW5jbHVkZSA8R3VpZC9NaWNyb2NvZGVQYXRj aEhvYi5oPg0KPiA+DQo+ID4gICNkZWZpbmUgV0FLRVVQX0FQX1NJR05BTCBTSUdOQVRVUkVfMzIg KCdTJywgJ1QnLCAnQScsICdQJykNCj4gPiBAQCAtNzQxLDUgKzc0NCwzNSBAQCBQbGF0Zm9ybVNo YWRvd01pY3JvY29kZSAoDQo+ID4gICAgSU4gT1VUIENQVV9NUF9EQVRBICAgICAgICAgICAgICpD cHVNcERhdGENCj4gPiAgICApOw0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgIEFsbG9jYXRlIHRoZSBT RVYtRVMgQVAganVtcCB0YWJsZSBidWZmZXIuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbiwgb3V0 XSAgQ3B1TXBEYXRhICBUaGUgcG9pbnRlciB0byBDUFUgTVAgRGF0YSBzdHJ1Y3R1cmUuDQo+ID4g KyoqLw0KPiA+ICtWT0lEDQo+ID4gK0FsbG9jYXRlU2V2RXNBUE1lbW9yeSAoDQo+ID4gKyAgSU4g T1VUIENQVV9NUF9EQVRBICAgICAgICAgICpDcHVNcERhdGENCj4gPiArICApOw0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyAgUHJvZ3JhbSB0aGUgU0VWLUVTIEFQIGp1bXAgdGFibGUgYnVmZmVyLg0K PiA+ICsNCj4gPiArICBAcGFyYW1baW5dICBTaXBpVmVjdG9yICBUaGUgU0lQSSB2ZWN0b3IgdXNl ZCBmb3IgdGhlIEFQIFJlc2V0DQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK1NldFNldkVzSnVt cFRhYmxlICgNCj4gPiArICBJTiBVSU5UTiAgU2lwaVZlY3Rvcg0KPiA+ICsgICk7DQo+ID4gKw0K PiA+ICsvKioNCj4gPiArICBUaGUgZnVuY3Rpb24gcHV0cyB0aGUgQVAgaW4gaGFsdCBsb29wLg0K PiA+ICsNCj4gPiArICBAcGFyYW1baW5dICBDcHVNcERhdGEgIFRoZSBwb2ludGVyIHRvIENQVSBN UCBEYXRhIHN0cnVjdHVyZS4NCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiArU2V2RXNQbGFjZUFw SGx0ICgNCj4gPiArICBDUFVfTVBfREFUQSAgICAgICAgICAgICAgICAqQ3B1TXBEYXRhDQo+ID4g KyAgKTsNCj4gPiArDQo+ID4gICNlbmRpZg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQ a2cvTGlicmFyeS9NcEluaXRMaWIvQW1kU2V2LmMNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJ bml0TGliL0FtZFNldi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAw MDAwMDAwMDAuLjdkYmYxMTdjMmI3MQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9VZWZp Q3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0FtZFNldi5jDQo+ID4gQEAgLTAsMCArMSwyMzkgQEAN Cj4gPiArLyoqIEBmaWxlDQo+ID4gKyAgQ1BVIE1QIEluaXRpYWxpemUgaGVscGVyIGZ1bmN0aW9u IGZvciBBTUQgU0VWLg0KPiA+ICsNCj4gPiArICBDb3B5cmlnaHQgKGMpIDIwMjEsIEFNRCBJbmMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsNCj4gPiArICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsNCj4gPiArKiovDQo+ID4gKw0KPiA+ ICsjaW5jbHVkZSAiTXBMaWIuaCINCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvVm1nRXhpdExpYi5o Pg0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgR2V0IFByb3RlY3RlZCBtb2RlIGNvZGUgc2VnbWVu dCB3aXRoIDE2LWJpdCBkZWZhdWx0IGFkZHJlc3NpbmcNCj4gPiArICBmcm9tIGN1cnJlbnQgR0RU IHRhYmxlLg0KPiA+ICsNCj4gPiArICBAcmV0dXJuICBQcm90ZWN0ZWQgbW9kZSAxNi1iaXQgY29k ZSBzZWdtZW50IHZhbHVlLg0KPiA+ICsqKi8NCj4gPiArU1RBVElDDQo+ID4gK1VJTlQxNg0KPiA+ ICtHZXRQcm90ZWN0ZWRNb2RlMTZDUyAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiArew0K PiA+ICsgIElBMzJfREVTQ1JJUFRPUiAgICAgICAgICBHZHRyRGVzYzsNCj4gPiArICBJQTMyX1NF R01FTlRfREVTQ1JJUFRPUiAgKkdkdEVudHJ5Ow0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAg ICAgICBHZHRFbnRyeUNvdW50Ow0KPiA+ICsgIFVJTlQxNiAgICAgICAgICAgICAgICAgICBJbmRl eDsNCj4gPiArDQo+ID4gKyAgSW5kZXggPSAoVUlOVDE2KSAtMTsNCj4gPiArICBBc21SZWFkR2R0 ciAoJkdkdHJEZXNjKTsNCj4gPiArICBHZHRFbnRyeUNvdW50ID0gKEdkdHJEZXNjLkxpbWl0ICsg MSkgLyBzaXplb2YgKElBMzJfU0VHTUVOVF9ERVNDUklQVE9SKTsNCj4gPiArICBHZHRFbnRyeSA9 IChJQTMyX1NFR01FTlRfREVTQ1JJUFRPUiAqKSBHZHRyRGVzYy5CYXNlOw0KPiA+ICsgIGZvciAo SW5kZXggPSAwOyBJbmRleCA8IEdkdEVudHJ5Q291bnQ7IEluZGV4KyspIHsNCj4gPiArICAgIGlm IChHZHRFbnRyeS0+Qml0cy5MID09IDAgJiYNCj4gPiArICAgICAgICBHZHRFbnRyeS0+Qml0cy5E QiA9PSAwICYmDQo+ID4gKyAgICAgICAgR2R0RW50cnktPkJpdHMuVHlwZSA+IDgpIHsNCj4gPiAr ICAgICAgYnJlYWs7DQo+ID4gKyAgICB9DQo+ID4gKyAgICBHZHRFbnRyeSsrOw0KPiA+ICsgIH0N Cj4gPiArICBBU1NFUlQgKEluZGV4ICE9IEdkdEVudHJ5Q291bnQpOw0KPiA+ICsgIHJldHVybiBJ bmRleCAqIDg7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIEdldCBQcm90ZWN0ZWQg bW9kZSBjb2RlIHNlZ21lbnQgd2l0aCAzMi1iaXQgZGVmYXVsdCBhZGRyZXNzaW5nDQo+ID4gKyAg ZnJvbSBjdXJyZW50IEdEVCB0YWJsZS4NCj4gPiArDQo+ID4gKyAgQHJldHVybiAgUHJvdGVjdGVk IG1vZGUgMzItYml0IGNvZGUgc2VnbWVudCB2YWx1ZS4NCj4gPiArKiovDQo+ID4gK1NUQVRJQw0K PiA+ICtVSU5UMTYNCj4gPiArR2V0UHJvdGVjdGVkTW9kZTMyQ1MgKA0KPiA+ICsgIFZPSUQNCj4g PiArICApDQo+ID4gK3sNCj4gPiArICBJQTMyX0RFU0NSSVBUT1IgICAgICAgICAgR2R0ckRlc2M7 DQo+ID4gKyAgSUEzMl9TRUdNRU5UX0RFU0NSSVBUT1IgICpHZHRFbnRyeTsNCj4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgR2R0RW50cnlDb3VudDsNCj4gPiArICBVSU5UMTYgICAgICAg ICAgICAgICAgICAgSW5kZXg7DQo+ID4gKw0KPiA+ICsgIEluZGV4ID0gKFVJTlQxNikgLTE7DQo+ ID4gKyAgQXNtUmVhZEdkdHIgKCZHZHRyRGVzYyk7DQo+ID4gKyAgR2R0RW50cnlDb3VudCA9IChH ZHRyRGVzYy5MaW1pdCArIDEpIC8gc2l6ZW9mIChJQTMyX1NFR01FTlRfREVTQ1JJUFRPUik7DQo+ ID4gKyAgR2R0RW50cnkgPSAoSUEzMl9TRUdNRU5UX0RFU0NSSVBUT1IgKikgR2R0ckRlc2MuQmFz ZTsNCj4gPiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBHZHRFbnRyeUNvdW50OyBJbmRleCsr KSB7DQo+ID4gKyAgICBpZiAoR2R0RW50cnktPkJpdHMuTCA9PSAwICYmDQo+ID4gKyAgICAgICAg R2R0RW50cnktPkJpdHMuREIgPT0gMSAmJg0KPiA+ICsgICAgICAgIEdkdEVudHJ5LT5CaXRzLlR5 cGUgPiA4KSB7DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsgICAgR2R0RW50 cnkrKzsNCj4gPiArICB9DQo+ID4gKyAgQVNTRVJUIChJbmRleCAhPSBHZHRFbnRyeUNvdW50KTsN Cj4gPiArICByZXR1cm4gSW5kZXggKiA4Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAr ICBSZXNldCBhbiBBUCB3aGVuIGluIFNFVi1FUyBtb2RlLg0KPiA+ICsNCj4gPiArICBJZiBzdWNj ZXNzZnVsLCB0aGlzIGZ1bmN0aW9uIG5ldmVyIHJldHVybnMuDQo+ID4gKw0KPiA+ICsgIEBwYXJh bVtpbl0gR2hjYiAgICAgICAgICAgICAgICAgUG9pbnRlciB0byB0aGUgR0hDQg0KPiA+ICsgIEBw YXJhbVtpbl0gQ3B1TXBEYXRhICAgICAgICAgICAgUG9pbnRlciB0byBDUFUgTVAgRGF0YQ0KPiA+ ICsNCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiArTXBJbml0TGliU2V2RXNBUFJlc2V0ICgNCj4g PiArICBJTiBHSENCICAgICAgICAgICAgICAgICAgICAgICAgICpHaGNiLA0KPiA+ICsgIElOIENQ VV9NUF9EQVRBICAgICAgICAgICAgICAgICAgKkNwdU1wRGF0YQ0KPiA+ICsgICkNCj4gPiArew0K PiA+ICsgIEVGSV9TVEFUVVMgICAgICAgU3RhdHVzOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAg UHJvY2Vzc29yTnVtYmVyOw0KPiA+ICsgIFVJTlQxNiAgICAgICAgICAgQ29kZTE2LCBDb2RlMzI7 DQo+ID4gKyAgQVBfUkVTRVQgICAgICAgICAqQVBSZXNldEZuOw0KPiA+ICsgIFVJTlROICAgICAg ICAgICAgQnVmZmVyU3RhcnQ7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICBTdGFja1N0YXJ0Ow0K PiA+ICsNCj4gPiArICBTdGF0dXMgPSBHZXRQcm9jZXNzb3JOdW1iZXIgKENwdU1wRGF0YSwgJlBy b2Nlc3Nvck51bWJlcik7DQo+ID4gKyAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiAr DQo+ID4gKyAgQ29kZTE2ID0gR2V0UHJvdGVjdGVkTW9kZTE2Q1MgKCk7DQo+ID4gKyAgQ29kZTMy ID0gR2V0UHJvdGVjdGVkTW9kZTMyQ1MgKCk7DQo+ID4gKw0KPiA+ICsgIGlmIChDcHVNcERhdGEt Pldha2V1cEJ1ZmZlckhpZ2ggIT0gMCkgew0KPiA+ICsgICAgQVBSZXNldEZuID0gKEFQX1JFU0VU ICopIChDcHVNcERhdGEtPldha2V1cEJ1ZmZlckhpZ2ggKyBDcHVNcERhdGEtDQo+ID5BZGRyZXNz TWFwLlN3aXRjaFRvUmVhbE5vTnhPZmZzZXQpOw0KPiA+ICsgIH0gZWxzZSB7DQo+ID4gKyAgICBB UFJlc2V0Rm4gPSAoQVBfUkVTRVQgKikgKENwdU1wRGF0YS0+TXBDcHVFeGNoYW5nZUluZm8tPkJ1 ZmZlclN0YXJ0DQo+ICsgQ3B1TXBEYXRhLT5BZGRyZXNzTWFwLlN3aXRjaFRvUmVhbE9mZnNldCk7 DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBCdWZmZXJTdGFydCA9IENwdU1wRGF0YS0+TXBDcHVF eGNoYW5nZUluZm8tPkJ1ZmZlclN0YXJ0Ow0KPiA+ICsgIFN0YWNrU3RhcnQgPSBDcHVNcERhdGEt PlNldkVzQVBSZXNldFN0YWNrU3RhcnQgLQ0KPiA+ICsgICAgICAgICAgICAgICAgIChBUF9SRVNF VF9TVEFDS19TSVpFICogUHJvY2Vzc29yTnVtYmVyKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiAr ICAvLyBUaGlzIGNhbGwgbmV2ZXIgcmV0dXJucy4NCj4gPiArICAvLw0KPiA+ICsgIEFQUmVzZXRG biAoQnVmZmVyU3RhcnQsIENvZGUxNiwgQ29kZTMyLCBTdGFja1N0YXJ0KTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArLyoqDQo+ID4gKyAgQWxsb2NhdGUgdGhlIFNFVi1FUyBBUCBqdW1wIHRhYmxlIGJ1 ZmZlci4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luLCBvdXRdICBDcHVNcERhdGEgIFRoZSBwb2lu dGVyIHRvIENQVSBNUCBEYXRhIHN0cnVjdHVyZS4NCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiAr QWxsb2NhdGVTZXZFc0FQTWVtb3J5ICgNCj4gPiArICBJTiBPVVQgQ1BVX01QX0RBVEEgICAgICAg ICAgKkNwdU1wRGF0YQ0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIGlmIChDcHVNcERhdGEtPlNl dkVzQVBCdWZmZXIgPT0gKFVJTlROKSAtMSkgew0KPiA+ICsgICAgQ3B1TXBEYXRhLT5TZXZFc0FQ QnVmZmVyID0NCj4gPiArICAgICAgQ3B1TXBEYXRhLT5TZXZFc0lzRW5hYmxlZCA/IEdldFNldkVz QVBNZW1vcnkgKCkgOiAwOw0KPiA+ICsgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4g KyAgUHJvZ3JhbSB0aGUgU0VWLUVTIEFQIGp1bXAgdGFibGUgYnVmZmVyLg0KPiA+ICsNCj4gPiAr ICBAcGFyYW1baW5dICBTaXBpVmVjdG9yICBUaGUgU0lQSSB2ZWN0b3IgdXNlZCBmb3IgdGhlIEFQ IFJlc2V0DQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK1NldFNldkVzSnVtcFRhYmxlICgNCj4g PiArICBJTiBVSU5UTiAgU2lwaVZlY3Rvcg0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIFNFVl9F U19BUF9KTVBfRkFSICpKbXBGYXI7DQo+ID4gKyAgVUlOVDMyICAgICAgICAgICAgT2Zmc2V0LCBJ bnNuQnl0ZTsNCj4gPiArICBVSU5UOCAgICAgICAgICAgICBMb05pYiwgSGlOaWI7DQo+ID4gKw0K PiA+ICsgIEptcEZhciA9IChTRVZfRVNfQVBfSk1QX0ZBUiAqKSAoVUlOVE4pIEZpeGVkUGNkR2V0 MzINCj4gKFBjZFNldkVzV29ya0FyZWFCYXNlKTsNCj4gPiArICBBU1NFUlQgKEptcEZhciAhPSBO VUxMKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBPYnRhaW4gdGhlIGFkZHJlc3Mgb2Yg dGhlIFNlZ21lbnQvUmlwIGxvY2F0aW9uIGluIHRoZSB3b3JrYXJlYS4NCj4gPiArICAvLyBUaGlz IHdpbGwgYmUgc2V0IHRvIGEgdmFsdWUgZGVyaXZlZCBmcm9tIHRoZSBTSVBJIHZlY3RvciBhbmQg d2lsbA0KPiA+ICsgIC8vIGJlIHRoZSBtZW1vcnkgYWRkcmVzcyB1c2VkIGZvciB0aGUgZmFyIGp1 bXAgYmVsb3cuDQo+ID4gKyAgLy8NCj4gPiArICBPZmZzZXQgPSBGaXhlZFBjZEdldDMyIChQY2RT ZXZFc1dvcmtBcmVhQmFzZSk7DQo+ID4gKyAgT2Zmc2V0ICs9IHNpemVvZiAoSm1wRmFyLT5JbnNu QnVmZmVyKTsNCj4gPiArICBMb05pYiA9IChVSU5UOCkgT2Zmc2V0Ow0KPiA+ICsgIEhpTmliID0g KFVJTlQ4KSAoT2Zmc2V0ID4+IDgpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFByb2dy YW0gdGhlIHdvcmthcmVhICh3aGljaCBpcyB0aGUgaW5pdGlhbCBBUCBib290IGFkZHJlc3MpIHdp dGgNCj4gPiArICAvLyBmYXIganVtcCB0byB0aGUgU0lQSSB2ZWN0b3IgKHdoZXJlIFhYIGFuZCBZ WSByZXByZXNlbnQgdGhlDQo+ID4gKyAgLy8gYWRkcmVzcyBvZiB3aGVyZSB0aGUgU0lQSSB2ZWN0 b3IgaXMgc3RvcmVkLg0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gICBKTVAgRkFSIFtDUzpYWFlZXSA9 PiAyRSBGRiAyRSBZWSBYWA0KPiA+ICsgIC8vDQo+ID4gKyAgSW5zbkJ5dGUgPSAwOw0KPiA+ICsg IEptcEZhci0+SW5zbkJ1ZmZlcltJbnNuQnl0ZSsrXSA9IDB4MkU7ICAvLyBDUyBvdmVycmlkZSBw cmVmaXgNCj4gPiArICBKbXBGYXItPkluc25CdWZmZXJbSW5zbkJ5dGUrK10gPSAweEZGOyAgLy8g Sk1QIChGQVIpDQo+ID4gKyAgSm1wRmFyLT5JbnNuQnVmZmVyW0luc25CeXRlKytdID0gMHgyRTsg IC8vIE1vZFJNIChKTVAgbWVtb3J5IGxvY2F0aW9uKQ0KPiA+ICsgIEptcEZhci0+SW5zbkJ1ZmZl cltJbnNuQnl0ZSsrXSA9IExvTmliOyAvLyBZWSBvZmZzZXQgLi4uDQo+ID4gKyAgSm1wRmFyLT5J bnNuQnVmZmVyW0luc25CeXRlKytdID0gSGlOaWI7IC8vIFhYIG9mZnNldCAuLi4NCj4gPiArDQo+ ID4gKyAgLy8NCj4gPiArICAvLyBQcm9ncmFtIHRoZSBTZWdtZW50L1JpcCBiYXNlZCBvbiB0aGUg U0lQSSB2ZWN0b3IgKGFsd2F5cyBhdCBsZWFzdA0KPiA+ICsgIC8vIDE2LWJ5dGUgYWxpZ25lZCwg c28gUmlwIGlzIHNldCB0byAwKS4NCj4gPiArICAvLw0KPiA+ICsgIEptcEZhci0+UmlwID0gMDsN Cj4gPiArICBKbXBGYXItPlNlZ21lbnQgPSAoVUlOVDE2KSAoU2lwaVZlY3RvciA+PiA0KTsNCj4g PiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgVGhlIGZ1bmN0aW9uIHB1dHMgdGhlIEFQIGlu IGhhbHQgbG9vcC4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAgQ3B1TXBEYXRhICBUaGUgcG9p bnRlciB0byBDUFUgTVAgRGF0YSBzdHJ1Y3R1cmUuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4g K1NldkVzUGxhY2VBcEhsdCAoDQo+ID4gKyAgQ1BVX01QX0RBVEEgICAgICAgICAgICAgICAgKkNw dU1wRGF0YQ0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIE1TUl9TRVZfRVNfR0hDQl9SRUdJU1RF UiAgTXNyOw0KPiA+ICsgIEdIQ0IgICAgICAgICAgICAgICAgICAgICAgKkdoY2I7DQo+ID4gKyAg VUlOVDY0ICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4gKyAgQk9PTEVBTiAgICAgICAg ICAgICAgICAgICBEb0RlY3JlbWVudDsNCj4gPiArICBCT09MRUFOICAgICAgICAgICAgICAgICAg IEludGVycnVwdFN0YXRlOw0KPiA+ICsNCj4gPiArICBEb0RlY3JlbWVudCA9IChCT09MRUFOKSAo Q3B1TXBEYXRhLT5Jbml0RmxhZyA9PSBBcEluaXRDb25maWcpOw0KPiA+ICsNCj4gPiArICB3aGls ZSAoVFJVRSkgew0KPiA+ICsgICAgTXNyLkdoY2JQaHlzaWNhbEFkZHJlc3MgPSBBc21SZWFkTXNy NjQgKE1TUl9TRVZfRVNfR0hDQik7DQo+ID4gKyAgICBHaGNiID0gTXNyLkdoY2I7DQo+ID4gKw0K PiA+ICsgICAgVm1nSW5pdCAoR2hjYiwgJkludGVycnVwdFN0YXRlKTsNCj4gPiArDQo+ID4gKyAg ICBpZiAoRG9EZWNyZW1lbnQpIHsNCj4gPiArICAgICAgRG9EZWNyZW1lbnQgPSBGQUxTRTsNCj4g PiArDQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIC8vIFBlcmZvcm0gdGhlIGRlbGF5ZWQgZGVj cmVtZW50IGp1c3QgYmVmb3JlIGlzc3VpbmcgdGhlIGZpcnN0DQo+ID4gKyAgICAgIC8vIFZNR0VY SVQgd2l0aCBBUF9SRVNFVF9IT0xELg0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAgICBJbnRlcmxv Y2tlZERlY3JlbWVudCAoKFVJTlQzMiAqKSAmQ3B1TXBEYXRhLT5NcENwdUV4Y2hhbmdlSW5mby0N Cj4gPk51bUFwc0V4ZWN1dGluZyk7DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgU3RhdHVz ID0gVm1nRXhpdCAoR2hjYiwgU1ZNX0VYSVRfQVBfUkVTRVRfSE9MRCwgMCwgMCk7DQo+ID4gKyAg ICBpZiAoKFN0YXR1cyA9PSAwKSAmJiAoR2hjYi0+U2F2ZUFyZWEuU3dFeGl0SW5mbzIgIT0gMCkp IHsNCj4gPiArICAgICAgVm1nRG9uZSAoR2hjYiwgSW50ZXJydXB0U3RhdGUpOw0KPiA+ICsgICAg ICBicmVhazsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBWbWdEb25lIChHaGNiLCBJbnRl cnJ1cHRTdGF0ZSk7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEF3YWtl bmVkIGluIGEgbmV3IHBoYXNlPyBVc2UgdGhlIG5ldyBDcHVNcERhdGENCj4gPiArICAvLw0KPiA+ ICsgIGlmIChDcHVNcERhdGEtPk5ld0NwdU1wRGF0YSAhPSBOVUxMKSB7DQo+ID4gKyAgICBDcHVN cERhdGEgPSBDcHVNcERhdGEtPk5ld0NwdU1wRGF0YTsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsg IE1wSW5pdExpYlNldkVzQVBSZXNldCAoR2hjYiwgQ3B1TXBEYXRhKTsNCj4gPiArfQ0KPiA+IGRp ZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMNCj4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMNCj4gPiBpbmRleCBiOWEwNjc0N2VkYmYu Ljg5MDk0NWJjNTk5NCAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0 TGliL01wTGliLmMNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGli LmMNCj4gPiBAQCAtNTk2LDExNyArNTk2LDYgQEAgSW5pdGlhbGl6ZUFwRGF0YSAoDQo+ID4gICAg U2V0QXBTdGF0ZSAoJkNwdU1wRGF0YS0+Q3B1RGF0YVtQcm9jZXNzb3JOdW1iZXJdLCBDcHVTdGF0 ZUlkbGUpOw0KPiA+ICB9DQo+ID4NCj4gPiAtLyoqDQo+ID4gLSAgR2V0IFByb3RlY3RlZCBtb2Rl IGNvZGUgc2VnbWVudCB3aXRoIDE2LWJpdCBkZWZhdWx0IGFkZHJlc3NpbmcNCj4gPiAtICBmcm9t IGN1cnJlbnQgR0RUIHRhYmxlLg0KPiA+IC0NCj4gPiAtICBAcmV0dXJuICBQcm90ZWN0ZWQgbW9k ZSAxNi1iaXQgY29kZSBzZWdtZW50IHZhbHVlLg0KPiA+IC0qKi8NCj4gPiAtU1RBVElDDQo+ID4g LVVJTlQxNg0KPiA+IC1HZXRQcm90ZWN0ZWRNb2RlMTZDUyAoDQo+ID4gLSAgVk9JRA0KPiA+IC0g ICkNCj4gPiAtew0KPiA+IC0gIElBMzJfREVTQ1JJUFRPUiAgICAgICAgICBHZHRyRGVzYzsNCj4g PiAtICBJQTMyX1NFR01FTlRfREVTQ1JJUFRPUiAgKkdkdEVudHJ5Ow0KPiA+IC0gIFVJTlROICAg ICAgICAgICAgICAgICAgICBHZHRFbnRyeUNvdW50Ow0KPiA+IC0gIFVJTlQxNiAgICAgICAgICAg ICAgICAgICBJbmRleDsNCj4gPiAtDQo+ID4gLSAgSW5kZXggPSAoVUlOVDE2KSAtMTsNCj4gPiAt ICBBc21SZWFkR2R0ciAoJkdkdHJEZXNjKTsNCj4gPiAtICBHZHRFbnRyeUNvdW50ID0gKEdkdHJE ZXNjLkxpbWl0ICsgMSkgLyBzaXplb2YgKElBMzJfU0VHTUVOVF9ERVNDUklQVE9SKTsNCj4gPiAt ICBHZHRFbnRyeSA9IChJQTMyX1NFR01FTlRfREVTQ1JJUFRPUiAqKSBHZHRyRGVzYy5CYXNlOw0K PiA+IC0gIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IEdkdEVudHJ5Q291bnQ7IEluZGV4KyspIHsN Cj4gPiAtICAgIGlmIChHZHRFbnRyeS0+Qml0cy5MID09IDAgJiYNCj4gPiAtICAgICAgICBHZHRF bnRyeS0+Qml0cy5EQiA9PSAwICYmDQo+ID4gLSAgICAgICAgR2R0RW50cnktPkJpdHMuVHlwZSA+ IDgpIHsNCj4gPiAtICAgICAgYnJlYWs7DQo+ID4gLSAgICB9DQo+ID4gLSAgICBHZHRFbnRyeSsr Ow0KPiA+IC0gIH0NCj4gPiAtICBBU1NFUlQgKEluZGV4ICE9IEdkdEVudHJ5Q291bnQpOw0KPiA+ IC0gIHJldHVybiBJbmRleCAqIDg7DQo+ID4gLX0NCj4gPiAtDQo+ID4gLS8qKg0KPiA+IC0gIEdl dCBQcm90ZWN0ZWQgbW9kZSBjb2RlIHNlZ21lbnQgd2l0aCAzMi1iaXQgZGVmYXVsdCBhZGRyZXNz aW5nDQo+ID4gLSAgZnJvbSBjdXJyZW50IEdEVCB0YWJsZS4NCj4gPiAtDQo+ID4gLSAgQHJldHVy biAgUHJvdGVjdGVkIG1vZGUgMzItYml0IGNvZGUgc2VnbWVudCB2YWx1ZS4NCj4gPiAtKiovDQo+ ID4gLVNUQVRJQw0KPiA+IC1VSU5UMTYNCj4gPiAtR2V0UHJvdGVjdGVkTW9kZTMyQ1MgKA0KPiA+ IC0gIFZPSUQNCj4gPiAtICApDQo+ID4gLXsNCj4gPiAtICBJQTMyX0RFU0NSSVBUT1IgICAgICAg ICAgR2R0ckRlc2M7DQo+ID4gLSAgSUEzMl9TRUdNRU5UX0RFU0NSSVBUT1IgICpHZHRFbnRyeTsN Cj4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgR2R0RW50cnlDb3VudDsNCj4gPiAtICBV SU5UMTYgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4gLQ0KPiA+IC0gIEluZGV4ID0gKFVJ TlQxNikgLTE7DQo+ID4gLSAgQXNtUmVhZEdkdHIgKCZHZHRyRGVzYyk7DQo+ID4gLSAgR2R0RW50 cnlDb3VudCA9IChHZHRyRGVzYy5MaW1pdCArIDEpIC8gc2l6ZW9mIChJQTMyX1NFR01FTlRfREVT Q1JJUFRPUik7DQo+ID4gLSAgR2R0RW50cnkgPSAoSUEzMl9TRUdNRU5UX0RFU0NSSVBUT1IgKikg R2R0ckRlc2MuQmFzZTsNCj4gPiAtICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBHZHRFbnRyeUNv dW50OyBJbmRleCsrKSB7DQo+ID4gLSAgICBpZiAoR2R0RW50cnktPkJpdHMuTCA9PSAwICYmDQo+ ID4gLSAgICAgICAgR2R0RW50cnktPkJpdHMuREIgPT0gMSAmJg0KPiA+IC0gICAgICAgIEdkdEVu dHJ5LT5CaXRzLlR5cGUgPiA4KSB7DQo+ID4gLSAgICAgIGJyZWFrOw0KPiA+IC0gICAgfQ0KPiA+ IC0gICAgR2R0RW50cnkrKzsNCj4gPiAtICB9DQo+ID4gLSAgQVNTRVJUIChJbmRleCAhPSBHZHRF bnRyeUNvdW50KTsNCj4gPiAtICByZXR1cm4gSW5kZXggKiA4Ow0KPiA+IC19DQo+ID4gLQ0KPiA+ IC0vKioNCj4gPiAtICBSZXNldCBhbiBBUCB3aGVuIGluIFNFVi1FUyBtb2RlLg0KPiA+IC0NCj4g PiAtICBJZiBzdWNjZXNzZnVsLCB0aGlzIGZ1bmN0aW9uIG5ldmVyIHJldHVybnMuDQo+ID4gLQ0K PiA+IC0gIEBwYXJhbVtpbl0gR2hjYiAgICAgICAgICAgICAgICAgUG9pbnRlciB0byB0aGUgR0hD Qg0KPiA+IC0gIEBwYXJhbVtpbl0gQ3B1TXBEYXRhICAgICAgICAgICAgUG9pbnRlciB0byBDUFUg TVAgRGF0YQ0KPiA+IC0NCj4gPiAtKiovDQo+ID4gLVNUQVRJQw0KPiA+IC1WT0lEDQo+ID4gLU1w SW5pdExpYlNldkVzQVBSZXNldCAoDQo+ID4gLSAgSU4gR0hDQiAgICAgICAgICAgICAgICAgICAg ICAgICAqR2hjYiwNCj4gPiAtICBJTiBDUFVfTVBfREFUQSAgICAgICAgICAgICAgICAgICpDcHVN cERhdGENCj4gPiAtICApDQo+ID4gLXsNCj4gPiAtICBFRklfU1RBVFVTICAgICAgIFN0YXR1czsN Cj4gPiAtICBVSU5UTiAgICAgICAgICAgIFByb2Nlc3Nvck51bWJlcjsNCj4gPiAtICBVSU5UMTYg ICAgICAgICAgIENvZGUxNiwgQ29kZTMyOw0KPiA+IC0gIEFQX1JFU0VUICAgICAgICAgKkFQUmVz ZXRGbjsNCj4gPiAtICBVSU5UTiAgICAgICAgICAgIEJ1ZmZlclN0YXJ0Ow0KPiA+IC0gIFVJTlRO ICAgICAgICAgICAgU3RhY2tTdGFydDsNCj4gPiAtDQo+ID4gLSAgU3RhdHVzID0gR2V0UHJvY2Vz c29yTnVtYmVyIChDcHVNcERhdGEsICZQcm9jZXNzb3JOdW1iZXIpOw0KPiA+IC0gIEFTU0VSVF9F RklfRVJST1IgKFN0YXR1cyk7DQo+ID4gLQ0KPiA+IC0gIENvZGUxNiA9IEdldFByb3RlY3RlZE1v ZGUxNkNTICgpOw0KPiA+IC0gIENvZGUzMiA9IEdldFByb3RlY3RlZE1vZGUzMkNTICgpOw0KPiA+ IC0NCj4gPiAtICBpZiAoQ3B1TXBEYXRhLT5XYWtldXBCdWZmZXJIaWdoICE9IDApIHsNCj4gPiAt ICAgIEFQUmVzZXRGbiA9IChBUF9SRVNFVCAqKSAoQ3B1TXBEYXRhLT5XYWtldXBCdWZmZXJIaWdo ICsgQ3B1TXBEYXRhLQ0KPiA+QWRkcmVzc01hcC5Td2l0Y2hUb1JlYWxOb054T2Zmc2V0KTsNCj4g PiAtICB9IGVsc2Ugew0KPiA+IC0gICAgQVBSZXNldEZuID0gKEFQX1JFU0VUICopIChDcHVNcERh dGEtPk1wQ3B1RXhjaGFuZ2VJbmZvLT5CdWZmZXJTdGFydA0KPiArIENwdU1wRGF0YS0+QWRkcmVz c01hcC5Td2l0Y2hUb1JlYWxPZmZzZXQpOw0KPiA+IC0gIH0NCj4gPiAtDQo+ID4gLSAgQnVmZmVy U3RhcnQgPSBDcHVNcERhdGEtPk1wQ3B1RXhjaGFuZ2VJbmZvLT5CdWZmZXJTdGFydDsNCj4gPiAt ICBTdGFja1N0YXJ0ID0gQ3B1TXBEYXRhLT5TZXZFc0FQUmVzZXRTdGFja1N0YXJ0IC0NCj4gPiAt ICAgICAgICAgICAgICAgICAoQVBfUkVTRVRfU1RBQ0tfU0laRSAqIFByb2Nlc3Nvck51bWJlcik7 DQo+ID4gLQ0KPiA+IC0gIC8vDQo+ID4gLSAgLy8gVGhpcyBjYWxsIG5ldmVyIHJldHVybnMuDQo+ ID4gLSAgLy8NCj4gPiAtICBBUFJlc2V0Rm4gKEJ1ZmZlclN0YXJ0LCBDb2RlMTYsIENvZGUzMiwg U3RhY2tTdGFydCk7DQo+ID4gLX0NCj4gPiAtDQo+ID4gIC8qKg0KPiA+ICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBiZSBjYWxsZWQgZnJvbSBBUCByZXNldCBjb2RlIGlmIEJTUCB1c2VzIFdha2VVcEFQ Lg0KPiA+DQo+ID4gQEAgLTg4NCw0NyArNzczLDcgQEAgQXBXYWtldXBGdW5jdGlvbiAoDQo+ID4g ICAgICAgIHdoaWxlIChUUlVFKSB7DQo+ID4gICAgICAgICAgRGlzYWJsZUludGVycnVwdHMgKCk7 DQo+ID4gICAgICAgICAgaWYgKENwdU1wRGF0YS0+U2V2RXNJc0VuYWJsZWQpIHsNCj4gPiAtICAg ICAgICAgIE1TUl9TRVZfRVNfR0hDQl9SRUdJU1RFUiAgTXNyOw0KPiA+IC0gICAgICAgICAgR0hD QiAgICAgICAgICAgICAgICAgICAgICAqR2hjYjsNCj4gPiAtICAgICAgICAgIFVJTlQ2NCAgICAg ICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+IC0gICAgICAgICAgQk9PTEVBTiAgICAgICAgICAg ICAgICAgICBEb0RlY3JlbWVudDsNCj4gPiAtICAgICAgICAgIEJPT0xFQU4gICAgICAgICAgICAg ICAgICAgSW50ZXJydXB0U3RhdGU7DQo+ID4gLQ0KPiA+IC0gICAgICAgICAgRG9EZWNyZW1lbnQg PSAoQk9PTEVBTikgKENwdU1wRGF0YS0+SW5pdEZsYWcgPT0gQXBJbml0Q29uZmlnKTsNCj4gPiAt DQo+ID4gLSAgICAgICAgICB3aGlsZSAoVFJVRSkgew0KPiA+IC0gICAgICAgICAgICBNc3IuR2hj YlBoeXNpY2FsQWRkcmVzcyA9IEFzbVJlYWRNc3I2NCAoTVNSX1NFVl9FU19HSENCKTsNCj4gPiAt ICAgICAgICAgICAgR2hjYiA9IE1zci5HaGNiOw0KPiA+IC0NCj4gPiAtICAgICAgICAgICAgVm1n SW5pdCAoR2hjYiwgJkludGVycnVwdFN0YXRlKTsNCj4gPiAtDQo+ID4gLSAgICAgICAgICAgIGlm IChEb0RlY3JlbWVudCkgew0KPiA+IC0gICAgICAgICAgICAgIERvRGVjcmVtZW50ID0gRkFMU0U7 DQo+ID4gLQ0KPiA+IC0gICAgICAgICAgICAgIC8vDQo+ID4gLSAgICAgICAgICAgICAgLy8gUGVy Zm9ybSB0aGUgZGVsYXllZCBkZWNyZW1lbnQganVzdCBiZWZvcmUgaXNzdWluZyB0aGUgZmlyc3QN Cj4gPiAtICAgICAgICAgICAgICAvLyBWTUdFWElUIHdpdGggQVBfUkVTRVRfSE9MRC4NCj4gPiAt ICAgICAgICAgICAgICAvLw0KPiA+IC0gICAgICAgICAgICAgIEludGVybG9ja2VkRGVjcmVtZW50 ICgoVUlOVDMyICopICZDcHVNcERhdGEtDQo+ID5NcENwdUV4Y2hhbmdlSW5mby0+TnVtQXBzRXhl Y3V0aW5nKTsNCj4gPiAtICAgICAgICAgICAgfQ0KPiA+IC0NCj4gPiAtICAgICAgICAgICAgU3Rh dHVzID0gVm1nRXhpdCAoR2hjYiwgU1ZNX0VYSVRfQVBfUkVTRVRfSE9MRCwgMCwgMCk7DQo+ID4g LSAgICAgICAgICAgIGlmICgoU3RhdHVzID09IDApICYmIChHaGNiLT5TYXZlQXJlYS5Td0V4aXRJ bmZvMiAhPSAwKSkgew0KPiA+IC0gICAgICAgICAgICAgIFZtZ0RvbmUgKEdoY2IsIEludGVycnVw dFN0YXRlKTsNCj4gPiAtICAgICAgICAgICAgICBicmVhazsNCj4gPiAtICAgICAgICAgICAgfQ0K PiA+IC0NCj4gPiAtICAgICAgICAgICAgVm1nRG9uZSAoR2hjYiwgSW50ZXJydXB0U3RhdGUpOw0K PiA+IC0gICAgICAgICAgfQ0KPiA+IC0NCj4gPiAtICAgICAgICAgIC8vDQo+ID4gLSAgICAgICAg ICAvLyBBd2FrZW5lZCBpbiBhIG5ldyBwaGFzZT8gVXNlIHRoZSBuZXcgQ3B1TXBEYXRhDQo+ID4g LSAgICAgICAgICAvLw0KPiA+IC0gICAgICAgICAgaWYgKENwdU1wRGF0YS0+TmV3Q3B1TXBEYXRh ICE9IE5VTEwpIHsNCj4gPiAtICAgICAgICAgICAgQ3B1TXBEYXRhID0gQ3B1TXBEYXRhLT5OZXdD cHVNcERhdGE7DQo+ID4gLSAgICAgICAgICB9DQo+ID4gLQ0KPiA+IC0gICAgICAgICAgTXBJbml0 TGliU2V2RXNBUFJlc2V0IChHaGNiLCBDcHVNcERhdGEpOw0KPiA+ICsgICAgICAgICAgU2V2RXNQ bGFjZUFwSGx0IChDcHVNcERhdGEpOw0KPiA+ICAgICAgICAgIH0gZWxzZSB7DQo+ID4gICAgICAg ICAgICBDcHVTbGVlcCAoKTsNCj4gPiAgICAgICAgICB9DQo+ID4gQEAgLTEyNTIsNzEgKzExMDEs NiBAQCBGcmVlUmVzZXRWZWN0b3IgKA0KPiA+ICAgIH0NCj4gPiAgfQ0KPiA+DQo+ID4gLS8qKg0K PiA+IC0gIEFsbG9jYXRlIHRoZSBTRVYtRVMgQVAganVtcCB0YWJsZSBidWZmZXIuDQo+ID4gLQ0K PiA+IC0gIEBwYXJhbVtpbiwgb3V0XSAgQ3B1TXBEYXRhICBUaGUgcG9pbnRlciB0byBDUFUgTVAg RGF0YSBzdHJ1Y3R1cmUuDQo+ID4gLSoqLw0KPiA+IC1WT0lEDQo+ID4gLUFsbG9jYXRlU2V2RXNB UE1lbW9yeSAoDQo+ID4gLSAgSU4gT1VUIENQVV9NUF9EQVRBICAgICAgICAgICpDcHVNcERhdGEN Cj4gPiAtICApDQo+ID4gLXsNCj4gPiAtICBpZiAoQ3B1TXBEYXRhLT5TZXZFc0FQQnVmZmVyID09 IChVSU5UTikgLTEpIHsNCj4gPiAtICAgIENwdU1wRGF0YS0+U2V2RXNBUEJ1ZmZlciA9DQo+ID4g LSAgICAgIENwdU1wRGF0YS0+U2V2RXNJc0VuYWJsZWQgPyBHZXRTZXZFc0FQTWVtb3J5ICgpIDog MDsNCj4gPiAtICB9DQo+ID4gLX0NCj4gPiAtDQo+ID4gLS8qKg0KPiA+IC0gIFByb2dyYW0gdGhl IFNFVi1FUyBBUCBqdW1wIHRhYmxlIGJ1ZmZlci4NCj4gPiAtDQo+ID4gLSAgQHBhcmFtW2luXSAg U2lwaVZlY3RvciAgVGhlIFNJUEkgdmVjdG9yIHVzZWQgZm9yIHRoZSBBUCBSZXNldA0KPiA+IC0q Ki8NCj4gPiAtVk9JRA0KPiA+IC1TZXRTZXZFc0p1bXBUYWJsZSAoDQo+ID4gLSAgSU4gVUlOVE4g IFNpcGlWZWN0b3INCj4gPiAtICApDQo+ID4gLXsNCj4gPiAtICBTRVZfRVNfQVBfSk1QX0ZBUiAq Sm1wRmFyOw0KPiA+IC0gIFVJTlQzMiAgICAgICAgICAgIE9mZnNldCwgSW5zbkJ5dGU7DQo+ID4g LSAgVUlOVDggICAgICAgICAgICAgTG9OaWIsIEhpTmliOw0KPiA+IC0NCj4gPiAtICBKbXBGYXIg PSAoU0VWX0VTX0FQX0pNUF9GQVIgKikgKFVJTlROKSBGaXhlZFBjZEdldDMyDQo+IChQY2RTZXZF c1dvcmtBcmVhQmFzZSk7DQo+ID4gLSAgQVNTRVJUIChKbXBGYXIgIT0gTlVMTCk7DQo+ID4gLQ0K PiA+IC0gIC8vDQo+ID4gLSAgLy8gT2J0YWluIHRoZSBhZGRyZXNzIG9mIHRoZSBTZWdtZW50L1Jp cCBsb2NhdGlvbiBpbiB0aGUgd29ya2FyZWEuDQo+ID4gLSAgLy8gVGhpcyB3aWxsIGJlIHNldCB0 byBhIHZhbHVlIGRlcml2ZWQgZnJvbSB0aGUgU0lQSSB2ZWN0b3IgYW5kIHdpbGwNCj4gPiAtICAv LyBiZSB0aGUgbWVtb3J5IGFkZHJlc3MgdXNlZCBmb3IgdGhlIGZhciBqdW1wIGJlbG93Lg0KPiA+ IC0gIC8vDQo+ID4gLSAgT2Zmc2V0ID0gRml4ZWRQY2RHZXQzMiAoUGNkU2V2RXNXb3JrQXJlYUJh c2UpOw0KPiA+IC0gIE9mZnNldCArPSBzaXplb2YgKEptcEZhci0+SW5zbkJ1ZmZlcik7DQo+ID4g LSAgTG9OaWIgPSAoVUlOVDgpIE9mZnNldDsNCj4gPiAtICBIaU5pYiA9IChVSU5UOCkgKE9mZnNl dCA+PiA4KTsNCj4gPiAtDQo+ID4gLSAgLy8NCj4gPiAtICAvLyBQcm9ncmFtIHRoZSB3b3JrYXJl YSAod2hpY2ggaXMgdGhlIGluaXRpYWwgQVAgYm9vdCBhZGRyZXNzKSB3aXRoDQo+ID4gLSAgLy8g ZmFyIGp1bXAgdG8gdGhlIFNJUEkgdmVjdG9yICh3aGVyZSBYWCBhbmQgWVkgcmVwcmVzZW50IHRo ZQ0KPiA+IC0gIC8vIGFkZHJlc3Mgb2Ygd2hlcmUgdGhlIFNJUEkgdmVjdG9yIGlzIHN0b3JlZC4N Cj4gPiAtICAvLw0KPiA+IC0gIC8vICAgSk1QIEZBUiBbQ1M6WFhZWV0gPT4gMkUgRkYgMkUgWVkg WFgNCj4gPiAtICAvLw0KPiA+IC0gIEluc25CeXRlID0gMDsNCj4gPiAtICBKbXBGYXItPkluc25C dWZmZXJbSW5zbkJ5dGUrK10gPSAweDJFOyAgLy8gQ1Mgb3ZlcnJpZGUgcHJlZml4DQo+ID4gLSAg Sm1wRmFyLT5JbnNuQnVmZmVyW0luc25CeXRlKytdID0gMHhGRjsgIC8vIEpNUCAoRkFSKQ0KPiA+ IC0gIEptcEZhci0+SW5zbkJ1ZmZlcltJbnNuQnl0ZSsrXSA9IDB4MkU7ICAvLyBNb2RSTSAoSk1Q IG1lbW9yeSBsb2NhdGlvbikNCj4gPiAtICBKbXBGYXItPkluc25CdWZmZXJbSW5zbkJ5dGUrK10g PSBMb05pYjsgLy8gWVkgb2Zmc2V0IC4uLg0KPiA+IC0gIEptcEZhci0+SW5zbkJ1ZmZlcltJbnNu Qnl0ZSsrXSA9IEhpTmliOyAvLyBYWCBvZmZzZXQgLi4uDQo+ID4gLQ0KPiA+IC0gIC8vDQo+ID4g LSAgLy8gUHJvZ3JhbSB0aGUgU2VnbWVudC9SaXAgYmFzZWQgb24gdGhlIFNJUEkgdmVjdG9yIChh bHdheXMgYXQgbGVhc3QNCj4gPiAtICAvLyAxNi1ieXRlIGFsaWduZWQsIHNvIFJpcCBpcyBzZXQg dG8gMCkuDQo+ID4gLSAgLy8NCj4gPiAtICBKbXBGYXItPlJpcCA9IDA7DQo+ID4gLSAgSm1wRmFy LT5TZWdtZW50ID0gKFVJTlQxNikgKFNpcGlWZWN0b3IgPj4gNCk7DQo+ID4gLX0NCj4gPiAtDQo+ ID4gIC8qKg0KPiA+ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYnkgQlNQIHRvIHdh a2V1cCBBUC4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0 TGliL1g2NC9BbWRTZXYubmFzbQ0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvWDY0 L0FtZFNldi5uYXNtDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAw MDAwMDAuLjBjY2FmZTI1ZWNhNA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvTXBJbml0TGliL1g2NC9BbWRTZXYubmFzbQ0KPiA+IEBAIC0wLDAgKzEsMTE5 IEBADQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gOw0KPiA+ICs7IENvcHlyaWdodCAoYykg MjAyMSwgQU1EIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKzsgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiArOw0KPiA+ICs7IE1vZHVs ZSBOYW1lOg0KPiA+ICs7DQo+ID4gKzsgICBBbWRTZXYubmFzbQ0KPiA+ICs7DQo+ID4gKzsgQWJz dHJhY3Q6DQo+ID4gKzsNCj4gPiArOyAgIFRoaXMgcHJvdmlkZXMgaGVscGVyIHVzZWQgYnkgdGhl IE1wRnVuYy5uYXNtLiBJZiBBTUQgU0VWLUVTIGlzIGFjdGl2ZQ0KPiA+ICs7ICAgdGhlbiBoZWxw ZXJzIHBlcmZvcm0gdGhlIGFkZGl0aW9uYWwgc2V0dXBzIChzdWNoIGFzIEdIQ0IpLg0KPiA+ICs7 DQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICslZGVmaW5lIFNJWkVf NEtCICAgIDB4MTAwMA0KPiA+ICsNCj4gPiArOw0KPiA+ICs7IFRoZSBmdW5jdGlvbiBjaGVja3Mg d2hldGhlciBTRVYtRVMgaXMgZW5hYmxlZCwgaWYgZW5hYmxlZA0KPiA+ICs7IHRoZW4gc2V0dXAg dGhlIEdIQ0IgcGFnZS4NCj4gPiArOw0KPiA+ICtTZXZFc1NldHVwR2hjYjoNCj4gPiArICAgIGxl YSAgICAgICAgZWRpLCBbZXNpICsgTVBfQ1BVX0VYQ0hBTkdFX0lORk9fRklFTEQgKFNldkVzSXNF bmFibGVkKV0NCj4gPiArICAgIGNtcCAgICAgICAgYnl0ZSBbZWRpXSwgMSAgICAgICAgOyBTZXZF c0lzRW5hYmxlZA0KPiA+ICsgICAgam5lICAgICAgICBTZXZFc1NldHVwR2hjYkV4aXQNCj4gPiAr DQo+ID4gKyAgICA7DQo+ID4gKyAgICA7IHByb2dyYW0gR0hDQg0KPiA+ICsgICAgOyAgIEVhY2gg cGFnZSBhZnRlciB0aGUgR0hDQiBpcyBhIHBlci1DUFUgcGFnZSwgc28gdGhlIGNhbGN1bGF0aW9u DQo+IHByb2dyYW1zDQo+ID4gKyAgICA7ICAgYSBHSENCIHRvIGJlIGV2ZXJ5IDhLQi4NCj4gPiAr ICAgIDsNCj4gPiArICAgIG1vdiAgICAgICAgZWF4LCBTSVpFXzRLQg0KPiA+ICsgICAgc2hsICAg ICAgICBlYXgsIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBFQVggPSBTSVpFXzRLICog Mg0KPiA+ICsgICAgbW92ICAgICAgICBlY3gsIGVieA0KPiA+ICsgICAgbXVsICAgICAgICBlY3gg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBFQVggPSBTSVpFXzRLICogMiAqIENwdU51 bWJlcg0KPiA+ICsgICAgbW92ICAgICAgICBlZGksIGVzaQ0KPiA+ICsgICAgYWRkICAgICAgICBl ZGksIE1QX0NQVV9FWENIQU5HRV9JTkZPX0ZJRUxEIChHaGNiQmFzZSkNCj4gPiArICAgIGFkZCAg ICAgICAgcmF4LCBxd29yZCBbZWRpXQ0KPiA+ICsgICAgbW92ICAgICAgICByZHgsIHJheA0KPiA+ ICsgICAgc2hyICAgICAgICByZHgsIDMyDQo+ID4gKyAgICBtb3YgICAgICAgIHJjeCwgMHhjMDAx MDEzMA0KPiA+ICsgICAgd3Jtc3INCj4gPiArDQo+ID4gK1NldkVzU2V0dXBHaGNiRXhpdDoNCj4g PiArICAgIE9uZVRpbWVDYWxsUmV0ICAgIFNldkVzU2V0dXBHaGNiDQo+ID4gKw0KPiA+ICs7DQo+ ID4gKzsgVGhlIGZ1bmN0aW9uIGNoZWNrcyB3aGV0aGVyIFNFVi1FUyBpcyBlbmFibGVkLCBpZiBl bmFibGVkLCB1c2UNCj4gPiArOyB0aGUgR0hDQg0KPiA+ICs7DQo+ID4gK1NldkVzR2V0QXBpY0lk Og0KPiA+ICsgICAgbGVhICAgICAgICBlZGksIFtlc2kgKyBNUF9DUFVfRVhDSEFOR0VfSU5GT19G SUVMRCAoU2V2RXNJc0VuYWJsZWQpXQ0KPiA+ICsgICAgY21wICAgICAgICBieXRlIFtlZGldLCAx ICAgICAgICA7IFNldkVzSXNFbmFibGVkDQo+ID4gKyAgICBqbmUgICAgICAgIFNldkVzR2V0QXBp Y0lkRXhpdA0KPiA+ICsNCj4gPiArICAgIDsNCj4gPiArICAgIDsgU2luY2Ugd2UgZG9uJ3QgaGF2 ZSBhIHN0YWNrIHlldCwgd2UgY2FuJ3QgdGFrZSBhICNWQw0KPiA+ICsgICAgOyBleGNlcHRpb24u IFVzZSB0aGUgR0hDQiBwcm90b2NvbCB0byBwZXJmb3JtIHRoZSBDUFVJRA0KPiA+ICsgICAgOyBj YWxscy4NCj4gPiArICAgIDsNCj4gPiArICAgIG1vdiAgICAgICAgcmN4LCAweGMwMDEwMTMwDQo+ ID4gKyAgICByZG1zcg0KPiA+ICsgICAgc2hsICAgICAgICByZHgsIDMyDQo+ID4gKyAgICBvciAg ICAgICAgIHJheCwgcmR4DQo+ID4gKyAgICBtb3YgICAgICAgIHJkaSwgcmF4ICAgICAgICAgICAg IDsgUkRJIG5vdyBob2xkcyB0aGUgb3JpZ2luYWwgR0hDQiBHUEENCj4gPiArDQo+ID4gKyAgICBt b3YgICAgICAgIHJkeCwgMCAgICAgICAgICAgICAgIDsgQ1BVSUQgZnVuY3Rpb24gMA0KPiA+ICsg ICAgbW92ICAgICAgICByYXgsIDAgICAgICAgICAgICAgICA7IFJBWCByZWdpc3RlciByZXF1ZXN0 ZWQNCj4gPiArICAgIG9yICAgICAgICAgcmF4LCA0DQo+ID4gKyAgICB3cm1zcg0KPiA+ICsgICAg cmVwIHZtbWNhbGwNCj4gPiArICAgIHJkbXNyDQo+ID4gKyAgICBjbXAgICAgICAgIGVkeCwgMGJo DQo+ID4gKyAgICBqYiAgICAgICAgIE5vWDJBcGljU2V2RXMgICAgICAgIDsgQ1BVSUQgbGV2ZWwg YmVsb3cNCj4gQ1BVSURfRVhURU5ERURfVE9QT0xPR1kNCj4gPiArDQo+ID4gKyAgICBtb3YgICAg ICAgIHJkeCwgMGJoICAgICAgICAgICAgIDsgQ1BVSUQgZnVuY3Rpb24gMHgwYg0KPiA+ICsgICAg bW92ICAgICAgICByYXgsIDA0MDAwMDAwMGggICAgICA7IFJCWCByZWdpc3RlciByZXF1ZXN0ZWQN Cj4gPiArICAgIG9yICAgICAgICAgcmF4LCA0DQo+ID4gKyAgICB3cm1zcg0KPiA+ICsgICAgcmVw IHZtbWNhbGwNCj4gPiArICAgIHJkbXNyDQo+ID4gKyAgICB0ZXN0ICAgICAgIGVkeCwgMGZmZmZo DQo+ID4gKyAgICBqeiAgICAgICAgIE5vWDJBcGljU2V2RXMgICAgICAgIDsgQ1BVSUQuMEJIOkVC WFsxNTowXSBpcyB6ZXJvDQo+ID4gKw0KPiA+ICsgICAgbW92ICAgICAgICByZHgsIDBiaCAgICAg ICAgICAgICA7IENQVUlEIGZ1bmN0aW9uIDB4MGINCj4gPiArICAgIG1vdiAgICAgICAgcmF4LCAw YzAwMDAwMDBoICAgICAgOyBSRFggcmVnaXN0ZXIgcmVxdWVzdGVkDQo+ID4gKyAgICBvciAgICAg ICAgIHJheCwgNA0KPiA+ICsgICAgd3Jtc3INCj4gPiArICAgIHJlcCB2bW1jYWxsDQo+ID4gKyAg ICByZG1zcg0KPiA+ICsNCj4gPiArICAgIDsgUHJvY2Vzc29yIGlzIHgyQVBJQyBjYXBhYmxlOyAz Mi1iaXQgeDJBUElDIElEIGlzIG5vdyBpbiBFRFgNCj4gPiArICAgIGptcCAgICAgICAgUmVzdG9y ZUdoY2INCj4gPiArDQo+ID4gK05vWDJBcGljU2V2RXM6DQo+ID4gKyAgICA7IFByb2Nlc3NvciBp cyBub3QgeDJBUElDIGNhcGFibGUsIHNvIGdldCA4LWJpdCBBUElDIElEDQo+ID4gKyAgICBtb3Yg ICAgICAgIHJkeCwgMSAgICAgICAgICAgICAgIDsgQ1BVSUQgZnVuY3Rpb24gMQ0KPiA+ICsgICAg bW92ICAgICAgICByYXgsIDA0MDAwMDAwMGggICAgICA7IFJCWCByZWdpc3RlciByZXF1ZXN0ZWQN Cj4gPiArICAgIG9yICAgICAgICAgcmF4LCA0DQo+ID4gKyAgICB3cm1zcg0KPiA+ICsgICAgcmVw IHZtbWNhbGwNCj4gPiArICAgIHJkbXNyDQo+ID4gKyAgICBzaHIgICAgICAgIGVkeCwgMjQNCj4g PiArDQo+ID4gK1Jlc3RvcmVHaGNiOg0KPiA+ICsgICAgbW92ICAgICAgICByYngsIHJkeCAgICAg ICAgICAgICA7IFNhdmUgeDJBUElDL0FQSUMgSUQNCj4gPiArDQo+ID4gKyAgICBtb3YgICAgICAg IHJkeCwgcmRpICAgICAgICAgICAgIDsgUkRJIGhvbGRzIHRoZSBzYXZlZCBHSENCIEdQQQ0KPiA+ ICsgICAgc2hyICAgICAgICByZHgsIDMyDQo+ID4gKyAgICBtb3YgICAgICAgIGVheCwgZWRpDQo+ ID4gKyAgICB3cm1zcg0KPiA+ICsNCj4gPiArICAgIG1vdiAgICAgICAgcmR4LCByYngNCj4gPiAr DQo+ID4gKyAgICA7IHgyQVBJQyBJRCBvciBBUElDIElEIGlzIGluIEVEWA0KPiA+ICsgICAgam1w ICAgICAgICBHZXRQcm9jZXNzb3JOdW1iZXINCj4gPiArDQo+ID4gK1NldkVzR2V0QXBpY0lkRXhp dDoNCj4gPiArICAgIE9uZVRpbWVDYWxsUmV0ICAgIFNldkVzR2V0QXBpY0lkDQo+ID4gZGlmZiAt LWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvWDY0L01wRnVuY3MubmFzbQ0KPiBi L1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvWDY0L01wRnVuY3MubmFzbQ0KPiA+IGluZGV4 IDUwZGY4MDJkMWZjYS4uZjdmMjkzN2ZhZmFkIDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cv TGlicmFyeS9NcEluaXRMaWIvWDY0L01wRnVuY3MubmFzbQ0KPiA+ICsrKyBiL1VlZmlDcHVQa2cv TGlicmFyeS9NcEluaXRMaWIvWDY0L01wRnVuY3MubmFzbQ0KPiA+IEBAIC0xNSw2ICsxNSwxNSBA QA0KPiA+ICAlaW5jbHVkZSAiTXBFcXUuaW5jIg0KPiA+ICBleHRlcm4gQVNNX1BGWChJbml0aWFs aXplRmxvYXRpbmdQb2ludFVuaXRzKQ0KPiA+DQo+ID4gKyVtYWNybyAgT25lVGltZUNhbGwgMQ0K PiA+ICsgICAgam1wICAgICAlMQ0KPiA+ICslMSAlKyBPbmVUaW1lckNhbGxSZXR1cm46DQo+ID4g KyVlbmRtYWNybw0KPiA+ICsNCj4gPiArJW1hY3JvICBPbmVUaW1lQ2FsbFJldCAxDQo+ID4gKyAg ICBqbXAgICAgICUxICUrIE9uZVRpbWVyQ2FsbFJldHVybg0KPiA+ICslZW5kbWFjcm8NCj4gPiAr DQo+ID4gIERFRkFVTFQgUkVMDQo+ID4NCj4gPiAgU0VDVElPTiAudGV4dA0KPiA+IEBAIC0xNDQs NiArMTUzLDEyIEBAIFNraXBFbmFibGU1TGV2ZWxQYWdpbmc6DQo+ID4gICAgICBqbXAgZmFyICAg IFtlZGldDQo+ID4NCj4gPiAgQklUUyA2NA0KPiA+ICsNCj4gPiArOw0KPiA+ICs7IFJlcXVpcmVk IGZvciB0aGUgQU1EIFNFViBoZWxwZXIgZnVuY3Rpb25zDQo+ID4gKzsNCj4gPiArJWluY2x1ZGUg IkFtZFNldi5uYXNtIg0KPiA+ICsNCj4gPiAgTG9uZ01vZGVTdGFydDoNCj4gPiAgICAgIG1vdiAg ICAgICAgZXNpLCBlYngNCj4gPiAgICAgIGxlYSAgICAgICAgZWRpLCBbZXNpICsgTVBfQ1BVX0VY Q0hBTkdFX0lORk9fRklFTEQgKEluaXRGbGFnKV0NCj4gPiBAQCAtMTc1LDk0ICsxOTAsMTcgQEAg TG9uZ01vZGVTdGFydDoNCj4gPiAgICAgIGFkZCAgICAgICAgcmF4LCBxd29yZCBbZWRpXQ0KPiA+ ICAgICAgbW92ICAgICAgICByc3AsIHJheA0KPiA+DQo+ID4gLSAgICBsZWEgICAgICAgIGVkaSwg W2VzaSArIE1QX0NQVV9FWENIQU5HRV9JTkZPX0ZJRUxEIChTZXZFc0lzRW5hYmxlZCldDQo+ID4g LSAgICBjbXAgICAgICAgIGJ5dGUgW2VkaV0sIDEgICAgICAgIDsgU2V2RXNJc0VuYWJsZWQNCj4g PiAtICAgIGpuZSAgICAgICAgQ1Byb2NlZHVyZUludm9rZQ0KPiA+IC0NCj4gPiAgICAgIDsNCj4g PiAtICAgIDsgcHJvZ3JhbSBHSENCDQo+ID4gLSAgICA7ICAgRWFjaCBwYWdlIGFmdGVyIHRoZSBH SENCIGlzIGEgcGVyLUNQVSBwYWdlLCBzbyB0aGUgY2FsY3VsYXRpb24gcHJvZ3JhbXMNCj4gPiAt ICAgIDsgICBhIEdIQ0IgdG8gYmUgZXZlcnkgOEtCLg0KPiA+ICsgICAgOyAgU2V0dXAgdGhlIEdI Q0Igd2hlbiBBTUQgU0VWLUVTIGFjdGl2ZS4NCj4gPiAgICAgIDsNCj4gPiAtICAgIG1vdiAgICAg ICAgZWF4LCBTSVpFXzRLQg0KPiA+IC0gICAgc2hsICAgICAgICBlYXgsIDEgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOyBFQVggPSBTSVpFXzRLICogMg0KPiA+IC0gICAgbW92ICAgICAgICBl Y3gsIGVieA0KPiA+IC0gICAgbXVsICAgICAgICBlY3ggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOyBFQVggPSBTSVpFXzRLICogMiAqIENwdU51bWJlcg0KPiA+IC0gICAgbW92ICAgICAg ICBlZGksIGVzaQ0KPiA+IC0gICAgYWRkICAgICAgICBlZGksIE1QX0NQVV9FWENIQU5HRV9JTkZP X0ZJRUxEIChHaGNiQmFzZSkNCj4gPiAtICAgIGFkZCAgICAgICAgcmF4LCBxd29yZCBbZWRpXQ0K PiA+IC0gICAgbW92ICAgICAgICByZHgsIHJheA0KPiA+IC0gICAgc2hyICAgICAgICByZHgsIDMy DQo+ID4gLSAgICBtb3YgICAgICAgIHJjeCwgMHhjMDAxMDEzMA0KPiA+IC0gICAgd3Jtc3INCj4g PiArICAgIE9uZVRpbWVDYWxsIFNldkVzU2V0dXBHaGNiDQo+ID4gICAgICBqbXAgICAgICAgIENQ cm9jZWR1cmVJbnZva2UNCj4gPg0KPiA+ICBHZXRBcGljSWQ6DQo+ID4gLSAgICBsZWEgICAgICAg IGVkaSwgW2VzaSArIE1QX0NQVV9FWENIQU5HRV9JTkZPX0ZJRUxEIChTZXZFc0lzRW5hYmxlZCld DQo+ID4gLSAgICBjbXAgICAgICAgIGJ5dGUgW2VkaV0sIDEgICAgICAgIDsgU2V2RXNJc0VuYWJs ZWQNCj4gPiAtICAgIGpuZSAgICAgICAgRG9DcHVpZA0KPiA+IC0NCj4gPiAgICAgIDsNCj4gPiAt ICAgIDsgU2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIHN0YWNrIHlldCwgd2UgY2FuJ3QgdGFrZSBhICNW Qw0KPiA+IC0gICAgOyBleGNlcHRpb24uIFVzZSB0aGUgR0hDQiBwcm90b2NvbCB0byBwZXJmb3Jt IHRoZSBDUFVJRA0KPiA+IC0gICAgOyBjYWxscy4NCj4gPiArICAgIDsgVXNlIHRoZSBHSENCIHBy b3RvY29sIHRvIGdldCB0aGUgQXBpY0lkIHdoZW4gU0VWLUVTIGlzIGFjdGl2ZS4NCj4gPiAgICAg IDsNCj4gPiAtICAgIG1vdiAgICAgICAgcmN4LCAweGMwMDEwMTMwDQo+ID4gLSAgICByZG1zcg0K PiA+IC0gICAgc2hsICAgICAgICByZHgsIDMyDQo+ID4gLSAgICBvciAgICAgICAgIHJheCwgcmR4 DQo+ID4gLSAgICBtb3YgICAgICAgIHJkaSwgcmF4ICAgICAgICAgICAgIDsgUkRJIG5vdyBob2xk cyB0aGUgb3JpZ2luYWwgR0hDQiBHUEENCj4gPiAtDQo+ID4gLSAgICBtb3YgICAgICAgIHJkeCwg MCAgICAgICAgICAgICAgIDsgQ1BVSUQgZnVuY3Rpb24gMA0KPiA+IC0gICAgbW92ICAgICAgICBy YXgsIDAgICAgICAgICAgICAgICA7IFJBWCByZWdpc3RlciByZXF1ZXN0ZWQNCj4gPiAtICAgIG9y ICAgICAgICAgcmF4LCA0DQo+ID4gLSAgICB3cm1zcg0KPiA+IC0gICAgcmVwIHZtbWNhbGwNCj4g PiAtICAgIHJkbXNyDQo+ID4gLSAgICBjbXAgICAgICAgIGVkeCwgMGJoDQo+ID4gLSAgICBqYiAg ICAgICAgIE5vWDJBcGljU2V2RXMgICAgICAgIDsgQ1BVSUQgbGV2ZWwgYmVsb3cNCj4gQ1BVSURf RVhURU5ERURfVE9QT0xPR1kNCj4gPiAtDQo+ID4gLSAgICBtb3YgICAgICAgIHJkeCwgMGJoICAg ICAgICAgICAgIDsgQ1BVSUQgZnVuY3Rpb24gMHgwYg0KPiA+IC0gICAgbW92ICAgICAgICByYXgs IDA0MDAwMDAwMGggICAgICA7IFJCWCByZWdpc3RlciByZXF1ZXN0ZWQNCj4gPiAtICAgIG9yICAg ICAgICAgcmF4LCA0DQo+ID4gLSAgICB3cm1zcg0KPiA+IC0gICAgcmVwIHZtbWNhbGwNCj4gPiAt ICAgIHJkbXNyDQo+ID4gLSAgICB0ZXN0ICAgICAgIGVkeCwgMGZmZmZoDQo+ID4gLSAgICBqeiAg ICAgICAgIE5vWDJBcGljU2V2RXMgICAgICAgIDsgQ1BVSUQuMEJIOkVCWFsxNTowXSBpcyB6ZXJv DQo+ID4gLQ0KPiA+IC0gICAgbW92ICAgICAgICByZHgsIDBiaCAgICAgICAgICAgICA7IENQVUlE IGZ1bmN0aW9uIDB4MGINCj4gPiAtICAgIG1vdiAgICAgICAgcmF4LCAwYzAwMDAwMDBoICAgICAg OyBSRFggcmVnaXN0ZXIgcmVxdWVzdGVkDQo+ID4gLSAgICBvciAgICAgICAgIHJheCwgNA0KPiA+ IC0gICAgd3Jtc3INCj4gPiAtICAgIHJlcCB2bW1jYWxsDQo+ID4gLSAgICByZG1zcg0KPiA+IC0N Cj4gPiAtICAgIDsgUHJvY2Vzc29yIGlzIHgyQVBJQyBjYXBhYmxlOyAzMi1iaXQgeDJBUElDIElE IGlzIG5vdyBpbiBFRFgNCj4gPiAtICAgIGptcCAgICAgICAgUmVzdG9yZUdoY2INCj4gPiAtDQo+ ID4gLU5vWDJBcGljU2V2RXM6DQo+ID4gLSAgICA7IFByb2Nlc3NvciBpcyBub3QgeDJBUElDIGNh cGFibGUsIHNvIGdldCA4LWJpdCBBUElDIElEDQo+ID4gLSAgICBtb3YgICAgICAgIHJkeCwgMSAg ICAgICAgICAgICAgIDsgQ1BVSUQgZnVuY3Rpb24gMQ0KPiA+IC0gICAgbW92ICAgICAgICByYXgs IDA0MDAwMDAwMGggICAgICA7IFJCWCByZWdpc3RlciByZXF1ZXN0ZWQNCj4gPiAtICAgIG9yICAg ICAgICAgcmF4LCA0DQo+ID4gLSAgICB3cm1zcg0KPiA+IC0gICAgcmVwIHZtbWNhbGwNCj4gPiAt ICAgIHJkbXNyDQo+ID4gLSAgICBzaHIgICAgICAgIGVkeCwgMjQNCj4gPiAtDQo+ID4gLVJlc3Rv cmVHaGNiOg0KPiA+IC0gICAgbW92ICAgICAgICByYngsIHJkeCAgICAgICAgICAgICA7IFNhdmUg eDJBUElDL0FQSUMgSUQNCj4gPiAtDQo+ID4gLSAgICBtb3YgICAgICAgIHJkeCwgcmRpICAgICAg ICAgICAgIDsgUkRJIGhvbGRzIHRoZSBzYXZlZCBHSENCIEdQQQ0KPiA+IC0gICAgc2hyICAgICAg ICByZHgsIDMyDQo+ID4gLSAgICBtb3YgICAgICAgIGVheCwgZWRpDQo+ID4gLSAgICB3cm1zcg0K PiA+IC0NCj4gPiAtICAgIG1vdiAgICAgICAgcmR4LCByYngNCj4gPiAtDQo+ID4gLSAgICA7IHgy QVBJQyBJRCBvciBBUElDIElEIGlzIGluIEVEWA0KPiA+IC0gICAgam1wICAgICAgICBHZXRQcm9j ZXNzb3JOdW1iZXINCj4gPiArICAgIE9uZVRpbWVDYWxsIFNldkVzR2V0QXBpY0lkDQo+ID4NCj4g PiAgRG9DcHVpZDoNCj4gPiAgICAgIG1vdiAgICAgICAgZWF4LCAwDQo=