From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by sourceware.org (Postfix) with ESMTPS id 3E24C3858408 for ; Mon, 20 Nov 2023 08:26:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3E24C3858408 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3E24C3858408 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=192.55.52.120 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700468787; cv=fail; b=NSEk5GcS9bbtZSA9BNyCrjkijXIL/kJfcbyqMz5yfpJHgbRxJfAR09sZ232I3Q05I2BAxBzmg5sH+VK9ImLzevivsAGXIrUY6Cb3gJXZUx/Ix0yhwbWN16GF0IGMqRC3c8oJ1t1wvYbpA2JcpRv1aDcmpSIDhqAP267SC156ymw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700468787; c=relaxed/simple; bh=AnqWosMP28mt40rjgz9pXBJlXwq0u8VtxzcFGFWCTCA=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=WajjWPqdlNuXMYC72S1odLSgW/eDnLz1nVMk1a1uPze9kYQ4MRC0/hCaYcBgHBEigL2HvJcI+IlSFcTHjQyhJAuoe7/VJC7gSSp5UTRZFMObalhkZKN7Sp1NAgIpO55NJRITDI6yxPxZbbrBOAC1RxAybPkw8H5dFBUTxnlz0mA= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700468782; x=1732004782; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=AnqWosMP28mt40rjgz9pXBJlXwq0u8VtxzcFGFWCTCA=; b=d95U48qct4IP6vYusOit2RTDX0X9cPM7b7VMyPYHN6UFhsbxNOldGh+l xEQT4QEcJ0GhdV3yAyzUOcvHajJ6WjM3hJ9M6hGv6TPPNPj7WHexfbfzK FurNqC5uZwdSpmPGtl9rO36PyvDTnnH/2GrtINt+NxgSXDaARuctd9+9o Agq2c0Eamlrsp75/nG+nTfhB3b3VDQc+7fwGuW6NFuG8fp/90qEWIcV5m yrivWu1I9+aJyJROuEjBs76aegoE0NHrc5CgKE82MzaY/R9l6s6POF91w 2l5jWboAfmt4rrTxvlM5TtixcUTwsJ68ylJqwVXPVjrxVmIz4JLu+40jK Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="390436308" X-IronPort-AV: E=Sophos;i="6.04,213,1695711600"; d="scan'208";a="390436308" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2023 00:26:20 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="836669457" X-IronPort-AV: E=Sophos;i="6.04,213,1695711600"; d="scan'208";a="836669457" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 20 Nov 2023 00:26:20 -0800 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.2507.34; Mon, 20 Nov 2023 00:26:19 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.2507.34; Mon, 20 Nov 2023 00:26:19 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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.2507.34 via Frontend Transport; Mon, 20 Nov 2023 00:26:19 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) 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.2507.34; Mon, 20 Nov 2023 00:26:19 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F6oA9mBomZT8rF2234l1jKfeZd9Cd1kynEnKBJcMTiZQglap68Nm0oUwAfeYQy4mxiClKRkDtyXVcQ3yxgg25J6D6XUKacF3dEUIecOI4DmGWpNlAQokUlSX52XafYshNLNwXGoEtlGz7kjJNDXJ3e95K4Z4ZxmMZAUY3MjuNOdJb6GdusUv44Sj80Q3/fwutBrkZGDzOEzePkd/yrUSm8+75oO06F77ctxLDUn+jEPbT8/4p3mVvHtcUsBwJjY8s/QortO/LzsP15MJPr3oSNN+GjiATQHQouMhCCZ24HWtJVpd5PQZibryn48kuOPnS8XxCFLgi2Ua97uqGEg2bQ== 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=CTDFwC/nfgQI04hkFzl+YM0ziJTT6jUNPJxK53a4uOQ=; b=Ugighc9AFJ0EqELwuPYsz3KQe74h5GoApiXMkouQ6YyhHXfTC3K2fluzLc2AeE73i6N6KM2KeuCXuchjlc9ZjYo/SLyzC876L3qADneaM1pVa0Us2/E5zAs17/gbq7WJ1Ei10BvT+K55lJcoutWiAUYVzU6SDy68Lr+DK6Wp7Q/iriOYTh19RREBE34g2zlF5lTI8wei662+d319zCpDQQPJyxpW/zwx2r02LjNMDcpos80NbkNtx4pULmowPHvAB+YIY9PrfblT5SrDYoCVkVAYMhBXJkZuZQfzKQyA8cSHr5oNEH9ILyulgcPCcewrCK6yeShgr6UWwBZ884IjPg== 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 SA1PR11MB6846.namprd11.prod.outlook.com (2603:10b6:806:2b0::6) by DS7PR11MB6061.namprd11.prod.outlook.com (2603:10b6:8:74::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.26; Mon, 20 Nov 2023 08:26:17 +0000 Received: from SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::e1b8:c6f6:9c25:75d]) by SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::e1b8:c6f6:9c25:75d%3]) with mapi id 15.20.7002.026; Mon, 20 Nov 2023 08:26:16 +0000 From: "Ijaz, Abdul B" To: Guinevere Larsen , "gdb-patches@sourceware.org" CC: "lsix@lancelotsix.com" , "pedro@palves.net" Subject: RE: [PATCH v4 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Topic: [PATCH v4 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Index: AQHZ6xj9NA/yB9F240WTIYeQvXNMn7BGCecAgD0zkXA= Date: Mon, 20 Nov 2023 08:26:16 +0000 Message-ID: References: <20230919164700.19891-1-abdul.b.ijaz@intel.com> <20230919164700.19891-2-abdul.b.ijaz@intel.com> <4f25e938-4729-4b1a-50fd-ce5ae7623d3f@redhat.com> In-Reply-To: <4f25e938-4729-4b1a-50fd-ce5ae7623d3f@redhat.com> Accept-Language: en-US Content-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: SA1PR11MB6846:EE_|DS7PR11MB6061:EE_ x-ms-office365-filtering-correlation-id: e3cdb1b1-72d5-4fa6-a06b-08dbe9a25d91 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qeHcn/xQ9SIMSf2d9X6/D7o9bu9rHS8pg5u0WY3ikgbFMu9TsbMAB9FdWchRvweLxGDfGF+pj1UA7jqV7W9TL8/n3mYS1ZdDCrkrZg0Iuuc8GME564uufJpP5xObTAk65jnp5nkEAj4XCTio34SiAUHQERdi2Go3cqJN2GshwC6limSH81qxdzOF3Z7c0AS5gp0wjjA5fcmDRn/RZtrg+teDNRvwv0dHU0iywr6UmeNquwF/r3vr/fDV1Uogr8Ktq5V1dkMZAyq0C1igPhfQ3P4wpwF8aD2YT0b/qdQUrXHzowBlBUEmvb0cTs8J+YkD/jChfMIkjadmc7AZuUh96wCxW0uc91oYiwz9fSQPDGL2vaNk23A0RyMUxiWB+zGGQDVt7JkMgs4WlLOrPHRZdSOJD/HFquDYDpaKnfXRoovoCBNRrJMJt+dE6Pk6LcDrK1BQF/hAiNXylGHo0laQZdDbgMcG466ZBOFTvUtAoPVOAgqXzPNh0lQBHSqlAn0tCHliN1m/JrKhbp3Odb3vi99rdxIpKsmBgAIKYuVu0BMLs53YUdNHqiUJErr0RZj6mIL2GQA+s6JIXvpEsg+qmBiaYnZoppytAM6sC2OKzfY= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6846.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(39860400002)(376002)(136003)(396003)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(2906002)(33656002)(52536014)(8676002)(4326008)(8936002)(5660300002)(38100700002)(86362001)(38070700009)(41300700001)(66899024)(122000001)(71200400001)(53546011)(6506007)(7696005)(478600001)(26005)(55016003)(83380400001)(82960400001)(84970400001)(9686003)(316002)(66446008)(64756008)(54906003)(66476007)(66556008)(76116006)(66946007)(110136005)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UHBzWHlXMWNZK3FLYzJTODBRSGtadmZhU1pyT09IdVJ5cXQ1Yk1pRzJ4b0dl?= =?utf-8?B?T1ZyUTNVeDI2YUd6dWVZZ3ZyOHdRYWhUOWRUTzU4S1plNWtJODN1Rm1sU1N4?= =?utf-8?B?UmlmWDdDK3l2NUl1RC9HdlFUWHdGRGxMT0Q5bVhyUVRWZnl0cFBVODJZWllE?= =?utf-8?B?V3B0dGVYaTFQSFNMTmZaeEFCT29zbGxNQlVxTktQVHo3RHhWNG1UNFdPempz?= =?utf-8?B?QzMzaWM3ZVAzRWd5VkFFT3dKWG1LYlJwcHpqck9pZ05FTHQzaURaMytRdzNW?= =?utf-8?B?UE1NeHpvUlB4USs0ZUo4K2Q2WlNuL2w1ZjlJaGZyZnlPK3hGOVZPZ2t1OVF2?= =?utf-8?B?d0JHS0tGUnZqZGZpL3ZVUTVDQ0lKR1llTW5RV2VSSEU5UGRZU092d0JxTGc1?= =?utf-8?B?Zk5LM0k1R2FPckNJSEVRbExBZlpwVXZJbkhjcTlIdUVPelBZVzczYUNUVjNz?= =?utf-8?B?dmpnUitvWmpFbzh2eVhPcGxqT2xkbnpjSDNUM2tSWmdFN0hYYjhoRlRLcTYr?= =?utf-8?B?N3RheDFJSzFOU3NVWHRmVzBVenRqOTRTMTZJVEZpUXJBZjJWdmlxZmJsYWZC?= =?utf-8?B?b2NKQXM2Z05md2RGVzMyT0JlTDZUQkV4WHExM3FzZmlUbkZSeU14MFJaWmhm?= =?utf-8?B?RmNIbWVVTzhtR1hVaVdtR05IcExta2poTENIYkZkYXI3N01GMko4N1IzYWVM?= =?utf-8?B?aDBnVVJuTHRpdzNXY2NWKzN3SzNlRW82WG43R1kwM3BDWks4Q1JaNE5GVkI4?= =?utf-8?B?MnRzMFB1c0Vxa0Y5bE1IZExkendXYVZOSjRXbFNvQjhzZUw4enFZeTZsajgr?= =?utf-8?B?dTRKSXNVb2xNOWo3Ni9Ed1FqOTFqd1FnaE5PZGJPNTlIVmhRWCtQdnhvbTht?= =?utf-8?B?T1pXTHUvcEYwWStOWmhnY09ja0poMzlZSTFiczdwNjJiRldPekw3ODUvUllz?= =?utf-8?B?SmdLcStoSGJ0M1hQV1FvS1RnWFJ2MWRobTdpVDc2ZzhKR1hkSnBGRS9oK3Vq?= =?utf-8?B?N2JsTjR0ejNxb3dIenk0YTZSTXNmcnkrazcweDVoMmdDU0VreTc0Znh5UHoy?= =?utf-8?B?dTZLUWxDU1VuSm9NVE5uT0JoWGxrNlViclhEanlLdmdhMklCc2FNZkw5KzRq?= =?utf-8?B?eWxOdnNuTktrZnF0SVBkZS9SakFKYThoUlozNUF4UitBYTgyUEw3d3hvVnlB?= =?utf-8?B?NTBGbHcyYWUvakNOd2lTRDUvTkVkYWVuQ3NEck9DOVhRc2E3OEpzOTdUVDVr?= =?utf-8?B?NE4yd2VlM1BncDdnMVlUczQ4UzJNYy9pZWZ3SEU2RjRZOG9qampqMFhwdTNj?= =?utf-8?B?RWMwd0JFbWJyZzJveURWeGFZczlWOTJFOEh0aEV4Z2NmWmlGUk1UMGEyK2k4?= =?utf-8?B?VmlnMGx5ZFY5RXp5SlJYK0FrSGRXVXZmTnd1cjZ6NHFCSmx5eXVWYjdKckY4?= =?utf-8?B?c1VqanRLSFZzektYK21yWjgrMGNUL3czb240SHFiaXVyNEMyWjlQSHh0OGNw?= =?utf-8?B?aGd2MWJPdE1XckVzWTZLVzJHTmI2MHdHOE8yTHFxR0R4WlU2UnhCdWFvbGxy?= =?utf-8?B?R1RQMjRZNUdCNDRURnZXVUNFdmFpcUJUcTVHUjBYeVRJZkFkN0FZOXFZcEdM?= =?utf-8?B?b1VJUkUwOEZvZGlhVUVOZlBmWHhtMmdvWHVFL05ibWRJbDZoR3IzOGNqbm9E?= =?utf-8?B?dDF6KzR3MGx1RUx4M3MvZkgzaWRBT3dKOVNpR1lkSnZTV1BKUWxVTlo5NjAx?= =?utf-8?B?dW56MExKeWgvb09Ud0kwZ2p2b3FCSDZjMUllMFN4Z1o1NGQ0OXM3ZFB4STJU?= =?utf-8?B?RzhVY0tlbnZabXdEc3ZoS2ZnWHprVXV1Tm1UQkJBN01XMTh5OXdoSEFKdFBw?= =?utf-8?B?UnFVN0pOcVFBK0k4emk2c0w4TVZ1b29KcHN3K3QwRHNjVk1RanVVZiswSzRm?= =?utf-8?B?dWZxUHhrMU5saDFwVTFUWmRSLzJEMDM3NFM4ZmxUZTBqMDlLbUdLaklyM0tp?= =?utf-8?B?eHg2Z2FEZUlPbHJRVjl3V2tybmd3MFphU2xRdHVVWExRSWdKNXVVTTVLOEJo?= =?utf-8?B?NEpEMjNXWkp6enJEd1lTRWdqM01RcCtNdmNoZVhmZkxNamRFTzFrbkRLV1Fu?= =?utf-8?Q?RAVO8RdRxhFeLnSlESXSXD8VV?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6846.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3cdb1b1-72d5-4fa6-a06b-08dbe9a25d91 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2023 08:26:16.6379 (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: G2l6YrKq+8D6h70T/XYIubNoxy8/3dtA90SIyLCsl2sSJd8GLeo9U7GAdStu9GkIHiUHODt03xGNLMOMXcJxIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6061 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGkgTGFyc2VuLA0KDQpUaGFua3MgZm9yIHRoZSBmZWVkYmFjay4NCg0KPj4gVGhlIGxvY2F0aW9u IGFubm90YXRpb25zIGFyZSBwcmludGVkIGZvciBzaGFkb3dlZCB2YXJpYWJsZXMgaW4gY2FzZSBv ZiANCj4+IEMvQysrL0ZvcnRyYW4vQWRhIGxhbmd1YWdlcy4gIEluIFJ1c3QsIGl0IGlzIHBvc3Np YmxlIHRvIGRlY2xhcmUgYSANCj4+IHZhcmlhYmxlIHdpdGggdGhlIHNhbWUgbmFtZSBtYW55IHRp bWVzLiAgU28gaW4gdGhpcyBjYXNlLCBqdXN0IHRoZSANCj4+IGZpcnN0IGluc3RhbmNlIG9mIHRo ZSB2YXJpYWJsZSBpcyBwcmludGVkLg0KPiBUaGFua3MgZm9yIHdvcmtpbmcgb24gdGhpcyENCg0K PiBUaGlzIHBhdGNoIHNlZW1zIHRvIGhhdmUgc2xpcHBlZCB0aHJvdWdoIHRoZSBjcmFja3MgYW5k IG5lZWRzIGEgc21hbGwgcmViYXNlLCBidXQgdGhlIGNvbmZsaWN0IHdhcyBwcmV0dHkgdHJpdmlh bCB0byByZXNvbHZlIGxvY2FsbHkgKGluZmVyaW9yLmggaXMgYWxzbyBiZWluZyBhZGRlZCB0byBw cmludGNtZC5jKQ0KDQo+IEkgc2VlIGEgZmFpbHVyZSBvbiB0aGUgbmV3bHkgYWRkZWQgdGVzdCBv biBteSBmZWRvcmEzNyBtYWNoaW5lOg0KDQo+IEJyZWFrcG9pbnQgMSwgdmFyX3JldXNlOjptYWlu ICgpIGF0DQo+IC4uLy4uLy4uL2Rvd25zdHJlYW0tZ2RiL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3Qv dmFyX3JldXNlLnJzOjE5DQo+IDE5ICAgICAgICAgIGxldCBfeSA9IDg7ICAgICAgIC8vIHNldCBi cmVha3BvaW50IGhlcmUNCj4gKGdkYikgaW5mbyBsb2NhbCBfeA0KPiBfeCA9IDANCj4gKGdkYikg RkFJTDogZ2RiLnJ1c3QvdmFyX3JldXNlLmV4cDogcHJpbnQgbG9jYWwgX3ggdmFyaWFibGUNCg0K PiBJIGRvbid0IHRoaW5rIHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgY29uZmxpY3QsIGJ1dCBJIGRv bid0IHJlYWxseSBoYXZlIHRoZSB0aW1lIHRvIGRpYWdub3NlIHdoYXQgaXMgZ29pbmcgb24NCg0K IEkgaGF2ZSByZWJhc2VkIGxvY2FsbHkgd2hlcmUgYWxzbyBzYXcgdGhpcyBpbmZlcmlvci5oIG1p bm9yIGNvbmZsaWN0IGFuZCBmaXhlZCBpdC4gU28gZmFyIHJhbiBvbiB1YnVudHUyMiB3aGVyZSB0 ZXN0IHJhbiBmaW5lLiBOZWVkIHRvIHRlc3Qgb25jZSBvbiBGZWRvcmEgMzcgYW5kIHRoZW4gd2ls bCBwdXNoIHRoZSBwYXRjaCBidXQgZnJvbSB0aGUgZmFpbHVyZSBpbiB5b3VyIGxvZ3MsICBpc3N1 ZSBkb2VzIG5vdCBsb29rIHJlbGF0ZWQgdG8gdGhpcyBwYXRjaCBhcyB0aGUgdmFsdWUgb2YgdmFy aWFibGUgaW4gcnVzdCBsYW5ndWFnZSBpcyBzaG93biB3cm9uZyBpbiBGZWRvcmEgMzcgbG9ncy4g Rm9yIHJ1c3Qgd2Ugb25seSBkb27igJl0IHByaW50IHRoZSBzaGFkb3dlZCB2YXJpYWJsZXMgYnV0 IGhhZCB0byByZXRyeSBvbmNlIG9uIEZlZG9yYSAzNyB0aGVuIHdpbGwgY29uZmlybSBhbmQgcHVz aCB0aGUgdjUgc2VyaWVzIGZvciByZXZpZXcuDQpVYnVudHUyMiBsb2dzOg0Kfn5+DQpCcmVha3Bv aW50IDEsIHZhcl9yZXVzZTo6bWFpbiAoKSBhdCBzb3VyY2VzL2dkYi9nZGIvdGVzdHN1aXRlL2dk Yi5ydXN0L3Zhcl9yZXVzZS5yczoxOQ0KMTkgICAgICAgICAgbGV0IF95ID0gODsgICAgICAgLy8g c2V0IGJyZWFrcG9pbnQgaGVyZQ0KKGdkYikgaW5mbyBsb2NhbCBfeA0KX3ggPSAxMg0KKGdkYikg UEFTUzogZ2RiLnJ1c3QvdmFyX3JldXNlLmV4cDogcHJpbnQgbG9jYWwgX3ggdmFyaWFibGUNCnRl c3RjYXNlIHNvdXJjZXMvZ2RiL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLmV4cCBj b21wbGV0ZWQgaW4gNyBzZWNvbmRzDQp+fn4NCg0KVGhhbmtzICYgQmVzdCBSZWdhcmRzDQpBYmR1 bCBCYXNpdA0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogR3VpbmV2ZXJlIExh cnNlbiA8YmxhcnNlbkByZWRoYXQuY29tPiANClNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDEyLCAy MDIzIDExOjQwIEFNDQpUbzogSWpheiwgQWJkdWwgQiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT47 IGdkYi1wYXRjaGVzQHNvdXJjZXdhcmUub3JnDQpDYzogbHNpeEBsYW5jZWxvdHNpeC5jb207IHBl ZHJvQHBhbHZlcy5uZXQNClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMS8yXSBnZGI6IGFkZCBhbm5v dGF0aW9uIGluICdpbmZvIGxvY2FscycgY29tbWFuZCBmb3IgdmFyaWFibGVzIHNoYWRvd2luZyBj YXNlDQoNCk9uIDE5LzA5LzIwMjMgMTg6NDYsIEFiZHVsIEJhc2l0IElqYXogdmlhIEdkYi1wYXRj aGVzIHdyb3RlOg0KPiBGcm9tOiAiSWpheiwgQWJkdWwgQiIgPGFiZHVsLmIuaWphekBpbnRlbC5j b20+DQo+DQo+IEZvciBDL0MrKy9Gb3J0cmFuL0FkYSBsYW5ndWFnZXMgR0RCIHByaW50cyBzYW1l IG5hbWUgdmFyaWFibGUgbXVsdGlwbGUgDQo+IHRpbWVzIGluIGNhc2Ugb2YgdmFyaWFibGUgc2hh ZG93aW5nIGFuZCBpdCBpcyBjb25mdXNpbmcgZm9yIHVzZXIgdG8gDQo+IGlkZW50aWZ5IHdoaWNo IHZhcmlhYmxlIGJlbG9uZ3MgdG8gdGhlIGN1cnJlbnQgc2NvcGUuICBTbyBmb3Igc3VjaCANCj4g Y2FzZXMgYWRkIGxvY2F0aW9uIGluZm8gdG8gdGhlIGlubmVybW9zdCBsaXN0ZWQgdmFyaWFibGVz IGFuZCBmb3IgDQo+IHN1cGVyIGJsb2NrIHZhcmlhYmxlcyBhZGQgInNoYWRvd2VkIiBhbm5vdGF0 aW9uIGluIHRoZSBmb3JtIG9mICI8ZmlsZS5jOmxpbmUsIHNoYWRvd2VkPiIuDQo+DQo+IFN1cHBv c2Ugd2UgaGF2ZQ0KPg0KPiAxOmludCB4ID0gNDI7DQo+IDI6ICB7DQo+IDM6ICAgIGludCB4ID0g OTk7DQo+IDQ6ICAgIGludCB5ID0gNTI7DQo+IDU6ICAgIHggPSA5OTsgLyogYnJlYWsgaGVyZSAq Lw0KPiA2OiAgfQ0KPg0KPiBDdXJyZW50bHk6DQo+DQo+IChnZGIpIGluZm8gbG9jYWxzDQo+IHgg PSA5OQ0KPiB4ID0gNDINCj4geSA9IDUyDQo+DQo+IEFmdGVyIGFwcGx5aW5nIHRoaXMgcGF0Y2gs IHdlIG9idGFpbjoNCj4NCj4gKGdkYikgaW5mbyBsb2NhbHMNCj4geCA9IDk5ICA8ZmlsZS5jOjM+ DQo+IHkgPSA1Mg0KPiB4ID0gNDIgIDxmaWxlLmM6MSwgc2hhZG93ZWQ+DQo+DQo+IFRoZSBwYXRj aCBhZGRzIHRoZSBsb2NhdGlvbiBhbm5vdGF0aW9ucyBieSBrZWVwaW5nIHRyYWNrIG9mIGlubmVy IA0KPiBibG9jayBhbmQgYWxyZWFkeSBwcmludGVkIHZhcmlhYmxlcyB0byBpZGVudGlmeSBzaGFk b3dpbmcuICBTbywgR0RCIA0KPiBub3cgcHJpbnRzICI8ZmlsZS5jOmxpbmUsIHNoYWRvd2VkPiIg Zm9yIHNoYWRvd2VkIHN1cGVyLWJsb2NrIA0KPiB2YXJpYWJsZXMgYW5kICI8ZmlsZS5jOmxpbmU+ IiBmb3IgaW5uZXJtb3N0IGRlY2xhcmF0aW9ucyBvZiBzdWNoIHZhcmlhYmxlcyBvbmx5Lg0KPg0K PiBUaGUgbG9jYXRpb24gYW5ub3RhdGlvbnMgYXJlIHByaW50ZWQgZm9yIHNoYWRvd2VkIHZhcmlh YmxlcyBpbiBjYXNlIG9mIA0KPiBDL0MrKy9Gb3J0cmFuL0FkYSBsYW5ndWFnZXMuICBJbiBSdXN0 LCBpdCBpcyBwb3NzaWJsZSB0byBkZWNsYXJlIGEgDQo+IHZhcmlhYmxlIHdpdGggdGhlIHNhbWUg bmFtZSBtYW55IHRpbWVzLiAgU28gaW4gdGhpcyBjYXNlLCBqdXN0IHRoZSANCj4gZmlyc3QgaW5z dGFuY2Ugb2YgdGhlIHZhcmlhYmxlIGlzIHByaW50ZWQuDQpUaGFua3MgZm9yIHdvcmtpbmcgb24g dGhpcyENCg0KVGhpcyBwYXRjaCBzZWVtcyB0byBoYXZlIHNsaXBwZWQgdGhyb3VnaCB0aGUgY3Jh Y2tzIGFuZCBuZWVkcyBhIHNtYWxsIHJlYmFzZSwgYnV0IHRoZSBjb25mbGljdCB3YXMgcHJldHR5 IHRyaXZpYWwgdG8gcmVzb2x2ZSBsb2NhbGx5IChpbmZlcmlvci5oIGlzIGFsc28gYmVpbmcgYWRk ZWQgdG8gcHJpbnRjbWQuYykNCg0KSSBzZWUgYSBmYWlsdXJlIG9uIHRoZSBuZXdseSBhZGRlZCB0 ZXN0IG9uIG15IGZlZG9yYTM3IG1hY2hpbmU6DQoNCkJyZWFrcG9pbnQgMSwgdmFyX3JldXNlOjpt YWluICgpIGF0DQouLi8uLi8uLi9kb3duc3RyZWFtLWdkYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0 L3Zhcl9yZXVzZS5yczoxOQ0KMTnCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IF95ID0gODvCoMKgwqDC oMKgwqAgLy8gc2V0IGJyZWFrcG9pbnQgaGVyZQ0KKGdkYikgaW5mbyBsb2NhbCBfeA0KX3ggPSAw DQooZ2RiKSBGQUlMOiBnZGIucnVzdC92YXJfcmV1c2UuZXhwOiBwcmludCBsb2NhbCBfeCB2YXJp YWJsZQ0KDQpJIGRvbid0IHRoaW5rIHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgY29uZmxpY3QsIGJ1 dCBJIGRvbid0IHJlYWxseSBoYXZlIHRoZSB0aW1lIHRvIGRpYWdub3NlIHdoYXQgaXMgZ29pbmcg b24uDQoNCj4gLS0tDQo+ICAgZ2RiL2RvYy9nZGIudGV4aW5mbyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTMgKysrDQo+ICAgZ2RiL3ByaW50Y21kLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTEgKystDQo+ICAgZ2RiL3N0YWNrLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNjQgKysrKysrKysrKystLQ0KPiAgIGdkYi9zdGFjay5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICstDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIu YWRhL3Zhcl9zaGFkb3dpbmcuZXhwICAgICAgIHwgMzggKysrKysrKysNCj4gICAuLi4vZ2RiLmFk YS92YXJfc2hhZG93aW5nL3Zhcl9zaGFkb3dpbmcuYWRiICAgfCAzMCArKysrKysrDQo+ICAgZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmMgICAgICAgIHwgNDkgKysrKysrKysr Kw0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5leHAgICAgICB8IDkw ICsrKysrKysrKysrKysrKysrKysNCj4gICBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFk b3dpbmcyLmMgICAgICAgfCAxNiArKysrDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJf cmV1c2UuZXhwICAgICAgICAgIHwgMzIgKysrKysrKw0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLnJ1 c3QvdmFyX3JldXNlLnJzICAgICAgICAgICB8IDIwICsrKysrDQo+ICAgZ2RiL3RyYWNlcG9pbnQu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0NCj4gICBnZGIvdmFsdWUuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQ0KPiAgIDEzIGZpbGVzIGNo YW5nZWQsIDM2MiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9zaGFkb3dpbmcuZXhwDQo+ICAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmFkYS92YXJfc2hhZG93aW5nL3Zhcl9z aGFkb3dpbmcuYWRiDQo+ICAgY3JlYXRlIG1vZGUgMTAwNzU1IGdkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmFyLXNoYWRvd2luZy5jDQo+ICAgY3JlYXRlIG1vZGUgMTAwNzU1IGdkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmFyLXNoYWRvd2luZy5leHANCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nMi5jDQo+ICAgY3JlYXRlIG1vZGUgMTAwNzU1 IGdkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLmV4cA0KPiAgIGNyZWF0ZSBtb2RlIDEw MDc1NSBnZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5ycw0KPg0KPiBkaWZmIC0tZ2l0 IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8gaW5kZXggDQo+IDli N2UwNmYzMTU2Li42YTIyYmJmMjUzMSAxMDA2NDQNCj4gLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5m bw0KPiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvDQo+IEBAIC04ODMxLDYgKzg4MzEsMTkgQEAg VGhlIG9wdGlvbmFsIGZsYWcgQHNhbXB7LXF9LCB3aGljaCBzdGFuZHMgZm9yIEBzYW1we3F1aWV0 fSwgZGlzYWJsZXMNCj4gICBwcmludGluZyBoZWFkZXIgaW5mb3JtYXRpb24gYW5kIG1lc3NhZ2Vz IGV4cGxhaW5pbmcgd2h5IG5vIGxvY2FsIHZhcmlhYmxlcw0KPiAgIGhhdmUgYmVlbiBwcmludGVk Lg0KPiAgIA0KPiArQHNtYWxsZXhhbXBsZQ0KPiArMTogaW50IHggPSAzOw0KPiArMjogQHsNCj4g KzM6ICAgICAgIGludCB4ID0gNDsgLy8gYnJlYWtwdA0KPiArNDogQH0NCj4gKyhnZGIpIGluZm8g bG9jYWxzDQo+ICt4ID0gNAk8ZmlsZS5jOjM+DQo+ICt4ID0gMwk8ZmlsZS5jOjEsIHNoYWRvd2Vk Pg0KPiArQGVuZCBzbWFsbGV4YW1wbGUNCj4gKw0KPiArSWYgYSB2YXJpYWJsZSBpcyBzaGFkb3dl ZCwgdGhlbiBsb2NhdGlvbiBpbmZvcm1hdGlvbiBpcyBwcmludGVkIGFuZCANCj4gK2ZvciB0aGUg b3V0ZXJtb3N0IHNjb3BlIHZhcmlhYmxlcyAic2hhZG93ZWQiIHN0cmluZyBpcyBwcmludGVkIGFz IHdlbGwuDQo+ICsNCj4gICBAaXRlbSBpbmZvIGxvY2FscyBbLXFdIFstdCBAdmFye3R5cGVfcmVn ZXhwfV0gW0B2YXJ7cmVnZXhwfV0NCj4gICBMaWtlIEBrYmR7aW5mbyBsb2NhbHN9LCBidXQgb25s eSBwcmludCB0aGUgbG9jYWwgdmFyaWFibGVzIHNlbGVjdGVkDQo+ICAgd2l0aCB0aGUgcHJvdmlk ZWQgcmVnZXhwKHMpLg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRj bWQuYyBpbmRleCANCj4gOGQ3ZDA0MjMxZmUuLjgzMDA4ZTVjM2YzIDEwMDY0NA0KPiAtLS0gYS9n ZGIvcHJpbnRjbWQuYw0KPiArKysgYi9nZGIvcHJpbnRjbWQuYw0KPiBAQCAtNTUsNiArNTUsNyBA QA0KPiAgICNpbmNsdWRlICJnZGJzdXBwb3J0L2dkYl9vcHRpb25hbC5oIg0KPiAgICNpbmNsdWRl ICJnZGJzdXBwb3J0L2dkYi1zYWZlLWN0eXBlLmgiDQo+ICAgI2luY2x1ZGUgImdkYnN1cHBvcnQv cnNwLWxvdy5oIg0KPiArI2luY2x1ZGUgImluY2x1ZGUvbGliaWJlcnR5LmgiDQo+ICAgDQo+ICAg LyogQ2hhaW4gY29udGFpbmluZyBhbGwgZGVmaW5lZCBtZW1vcnktdGFnIHN1YmNvbW1hbmRzLiAg Ki8NCj4gICANCj4gQEAgLTI0MDEsNyArMjQwMiw4IEBAIGNsZWFyX2RhbmdsaW5nX2Rpc3BsYXlf ZXhwcmVzc2lvbnMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQ0KPiAgIHZvaWQNCj4gICBwcmlu dF92YXJpYWJsZV9hbmRfdmFsdWUgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzeW1ib2wgKnZh ciwNCj4gICAJCQkgIGZyYW1lX2luZm9fcHRyIGZyYW1lLA0KPiAtCQkJICBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgaW5kZW50KQ0KPiArCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgaW5kZW50LA0KPiArCQkJICBib29sIHNoYWRvd2VkLCBib29sIHByaW50ZWQpDQo+ICAgew0K PiAgIA0KPiAgICAgaWYgKCFuYW1lKQ0KPiBAQCAtMjQxNCw2ICsyNDE2LDcgQEAgcHJpbnRfdmFy aWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3ltYm9sICp2YXIsDQo+ ICAgICAgIHsNCj4gICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsNCj4gICAgICAgICBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOw0KPiArICAgICAgY29uc3QgY2hhciAqZmlsZV9uYW1l ID0gbGJhc2VuYW1lIA0KPiArICh2YXItPm93bmVyLnN5bXRhYi0+ZmlsZW5hbWUpOw0KPiAgIA0K PiAgICAgICAgIC8qIFJFQURfVkFSX1ZBTFVFIG5lZWRzIGEgYmxvY2sgaW4gb3JkZXIgdG8gZGVh bCB3aXRoIG5vbi1sb2NhbA0KPiAgIAkgcmVmZXJlbmNlcyAoaS5lLiB0byBoYW5kbGUgbmVzdGVk IGZ1bmN0aW9ucykuICBJbiB0aGlzIGNvbnRleHQsIHdlIA0KPiBAQCAtMjQyNCw2ICsyNDI3LDEy IEBAIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN5 bWJvbCAqdmFyLA0KPiAgICAgICAgIG9wdHMuZGVyZWZfcmVmID0gdHJ1ZTsNCj4gICAgICAgICBj b21tb25fdmFsX3ByaW50X2NoZWNrZWQgKHZhbCwgc3RyZWFtLCBpbmRlbnQsICZvcHRzLCANCj4g Y3VycmVudF9sYW5ndWFnZSk7DQo+ICAgDQo+ICsgICAgICBpZiAoc2hhZG93ZWQpDQo+ICsJLyog UHJpbnQgbG9jYXRpb24gYW5kIHNoYWRvd2VkIHZhcmlhYmxlIGluZm9ybWF0aW9uLiAgKi8NCj4g KwlmcHJpbnRmX3N0eWxlZCAoc3RyZWFtLCBtZXRhZGF0YV9zdHlsZS5zdHlsZSAoKSwNCj4gKwkJ CV8oIlx0PCVzOiVkJXM+IiksIGZpbGVfbmFtZSwNCj4gKwkJCXZhci0+bGluZSAoKSwgcHJpbnRl ZCA/ICIsIHNoYWRvd2VkIiA6ICIiKTsNCj4gKw0KPiAgICAgICAgIC8qIGNvbW1vbl92YWxfcHJp bnQgaW52YWxpZGF0ZXMgRlJBTUUgd2hlbiBhIHByZXR0eSBwcmludGVyIGNhbGxzIGluZmVyaW9y DQo+ICAgCSBmdW5jdGlvbi4gICovDQo+ICAgICAgICAgZnJhbWUgPSBOVUxMOw0KPiBkaWZmIC0t Z2l0IGEvZ2RiL3N0YWNrLmMgYi9nZGIvc3RhY2suYyBpbmRleCAwYjM1ZDYyZjgyZi4uMDE3M2U3 MzQxZTkgDQo+IDEwMDY0NA0KPiAtLS0gYS9nZGIvc3RhY2suYw0KPiArKysgYi9nZGIvc3RhY2su Yw0KPiBAQCAtNTYsNiArNTYsNyBAQA0KPiAgICNpbmNsdWRlICJjbGkvY2xpLW9wdGlvbi5oIg0K PiAgICNpbmNsdWRlICJjbGkvY2xpLXN0eWxlLmgiDQo+ICAgI2luY2x1ZGUgImdkYnN1cHBvcnQv YnVpbGRhcmd2LmgiDQo+ICsjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4NCj4gICANCj4gICAvKiBU aGUgcG9zc2libGUgY2hvaWNlcyBvZiAic2V0IHByaW50IGZyYW1lLWFyZ3VtZW50cyIsIGFuZCB0 aGUgdmFsdWUNCj4gICAgICBvZiB0aGlzIHNldHRpbmcuICAqLw0KPiBAQCAtMjIxMSwxMCArMjIx MiwxNiBAQCBiYWNrdHJhY2VfY29tbWFuZF9jb21wbGV0ZXIgKHN0cnVjdCANCj4gY21kX2xpc3Rf ZWxlbWVudCAqaWdub3JlLA0KPiAgIA0KPiAgIHN0YXRpYyB2b2lkDQo+ICAgaXRlcmF0ZV9vdmVy X2Jsb2NrX2xvY2FscyAoY29uc3Qgc3RydWN0IGJsb2NrICpiLA0KPiAtCQkJICAgaXRlcmF0ZV9v dmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiKQ0KPiArCQkJICAgaXRlcmF0ZV9vdmVyX2Js b2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiLA0KPiArCQkJICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRf c2V0PHN0ZDo6c3RyaW5nPiAqc2hhZG93ZWRfdmFycywNCj4gKwkJCSAgIHN0ZDo6dW5vcmRlcmVk X3NldDxzdGQ6OnN0cmluZz4gJnByaW50ZWRfdmFycykNCj4gICB7DQo+ICAgICBmb3IgKHN0cnVj dCBzeW1ib2wgKnN5bSA6IGJsb2NrX2l0ZXJhdG9yX3JhbmdlIChiKSkNCj4gICAgICAgew0KPiAr ICAgICAgY29uc3QgY2hhciAqbmFtZSA9IHN5bS0+cHJpbnRfbmFtZSAoKTsNCj4gKyAgICAgIGJv b2wgYWxyZWFkeV9wcmludGVkID0gIXByaW50ZWRfdmFycy5pbnNlcnQgKG5hbWUpLnNlY29uZDsN Cj4gKyAgICAgIGJvb2wgc2hhZG93ZWQgPSBzaGFkb3dlZF92YXJzLT5maW5kIChuYW1lKSAhPSAN Cj4gKyBzaGFkb3dlZF92YXJzLT5lbmQgKCk7DQo+ICsNCj4gICAgICAgICBzd2l0Y2ggKHN5bS0+ YWNsYXNzICgpKQ0KPiAgIAl7DQo+ICAgCWNhc2UgTE9DX0NPTlNUOg0KPiBAQCAtMjIyNyw3ICsy MjM0LDI1IEBAIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbHMgKGNvbnN0IHN0cnVjdCBibG9jayAq YiwNCj4gICAJICAgIGJyZWFrOw0KPiAgIAkgIGlmIChzeW0tPmRvbWFpbiAoKSA9PSBDT01NT05f QkxPQ0tfRE9NQUlOKQ0KPiAgIAkgICAgYnJlYWs7DQo+IC0JICBjYiAoc3ltLT5wcmludF9uYW1l ICgpLCBzeW0pOw0KPiArCSAgLyogT25seSBmb3IgQy9DKysvRm9ydHJhbi9BZGEgbGFuZ3VhZ2Vz LCBpbiBjYXNlIG9mIHZhcmlhYmxlcw0KPiArCSAgICAgc2hhZG93aW5nIHByaW50IDxmaWxlOmxp bmUsIHNoYWRvd2VkPiBhbm5vdGF0aW9uIGFmdGVyDQo+ICsJICAgICB0aGUgc3VwZXJibG9jayB2 YXJpYWJsZS4gIEl0ZXJhdGlvbiBvZiBibG9jayBzdGFydHMgZnJvbSBpbm5lcg0KPiArCSAgICAg YmxvY2sgd2hpY2ggaXMgcHJpbnRlZCBvbmx5IHdpdGggbG9jYXRpb24gaW5mb3JtYXRpb24uICAq Lw0KPiArCSAgaWYgKChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9j DQo+ICsJICAgICAgIHx8IGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdl X2NwbHVzDQo+ICsJICAgICAgIHx8IGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09IGxh bmd1YWdlX2ZvcnRyYW4NCj4gKwkgICAgICAgfHwgY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfYWRhKQ0KPiArCSAgICAgICYmIHNoYWRvd2VkKQ0KPiArCSAgICBjYiAo bmFtZSwgc3ltLCB0cnVlLCBhbHJlYWR5X3ByaW50ZWQpOw0KPiArCSAgLyogSW4gY2FzZSBvZiBS dXN0IGxhbmd1YWdlIGl0IGlzIHBvc3NpYmxlIHRvIGRlY2xhcmUgdmFyaWFibGUgd2l0aA0KPiAr CSAgICAgc2FtZSBuYW1lIG11bHRpcGxlIHRpbWVzIGFuZCBvbmx5IGxhdGVzdCBkZWNsYXJhdGlv biBvZiB2YXJpYWJsZQ0KPiArCSAgICAgaXMgYWNjZXNzaWJsZS4gIFNvIHByaW50IG9ubHkgdGhl IGZpcnN0IGluc3RhbmNlIGFuZCB0aGVyZSBpcyBubw0KPiArCSAgICAgbmVlZCBvZiBwcmludGlu ZyBkdXBsaWNhdGVzLiAgKi8NCj4gKwkgIGVsc2UgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xh bmd1YWdlID09IGxhbmd1YWdlX3J1c3QNCj4gKwkJICAgJiYgc2hhZG93ZWQgJiYgYWxyZWFkeV9w cmludGVkKQ0KPiArCSAgICBicmVhazsNCj4gKwkgIGVsc2UNCj4gKwkgICAgY2IgKG5hbWUsIHN5 bSwgZmFsc2UsIGZhbHNlKTsNCj4gICAJICBicmVhazsNCj4gICANCj4gICAJZGVmYXVsdDoNCj4g QEAgLTIyNDQsOSArMjI2OSwzMSBAQCB2b2lkDQo+ICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2Fs X3ZhcnMgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssDQo+ICAgCQkJICAgICAgIGl0ZXJhdGVf b3Zlcl9ibG9ja19hcmdfbG9jYWxfdmFyc19jYiBjYikNCj4gICB7DQo+ICsgIHN0ZDo6dW5vcmRl cmVkX3NldDxzdGQ6OnN0cmluZz4gY29sbGVjdGVkX3ZhcnMsIHNoYWRvd2VkX3ZhcnMsIA0KPiAr IHByaW50ZWRfdmFyczsgIGNvbnN0IHN0cnVjdCBibG9jayAqb3JpZ19ibG9jayA9IGJsb2NrOw0K PiArDQo+ICsgIC8qIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIGxvY2FsIHZhcmlhYmxlcyBpbiBhIGJs b2NrIGFuZCBzdG9yZSB0aGUgbGlzdCBvZg0KPiArICAgICBzaGFkb3dlZCB2YXJpYWJsZXMgdG8g bGF0ZXIgZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIG90aGVyIA0KPiArdmFyaWFibGVzLiAgKi8NCj4g KyAgd2hpbGUgKGJsb2NrICE9IG51bGxwdHIpDQo+ICsgICAgew0KPiArICAgICAgZm9yIChzdHJ1 Y3Qgc3ltYm9sICpzeW0gOiBibG9ja19pdGVyYXRvcl9yYW5nZSAoYmxvY2spKQ0KPiArCXsNCj4g KwkgIGlmICghc3ltLT5pc19hcmd1bWVudCAoKSkNCj4gKwkgICAgew0KPiArCSAgICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSBzeW0tPnByaW50X25hbWUgKCk7DQo+ICsJICAgICAgaWYgKCFjb2xsZWN0 ZWRfdmFycy5pbnNlcnQgKG5hbWUpLnNlY29uZCkNCj4gKwkJc2hhZG93ZWRfdmFycy5pbnNlcnQg KG5hbWUpOw0KPiArCSAgICB9DQo+ICsJfQ0KPiArICAgICAgaWYgKGJsb2NrLT5mdW5jdGlvbiAo KSkNCj4gKwlicmVhazsNCj4gKyAgICAgIGJsb2NrID0gYmxvY2stPnN1cGVyYmxvY2sgKCk7DQo+ ICsgICAgfQ0KPiArDQo+ICsgIGJsb2NrID0gb3JpZ19ibG9jazsNCj4gICAgIHdoaWxlIChibG9j aykNCj4gICAgICAgew0KPiAtICAgICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2FscyAoYmxvY2ss IGNiKTsNCj4gKyAgICAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbHMgKGJsb2NrLCBjYiwgJnNo YWRvd2VkX3ZhcnMsIA0KPiArIHByaW50ZWRfdmFycyk7DQo+ICAgICAgICAgLyogQWZ0ZXIgaGFu ZGxpbmcgdGhlIGZ1bmN0aW9uJ3MgdG9wLWxldmVsIGJsb2NrLCBzdG9wLiAgRG9uJ3QNCj4gICAJ IGNvbnRpbnVlIHRvIGl0cyBzdXBlcmJsb2NrLCB0aGUgYmxvY2sgb2YgcGVyLWZpbGUNCj4gICAJ IHN5bWJvbHMuICAqLw0KPiBAQCAtMjI2OCwxNCArMjMxNSwxNiBAQCBzdHJ1Y3QgcHJpbnRfdmFy aWFibGVfYW5kX3ZhbHVlX2RhdGENCj4gICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW07DQo+ICAg ICBpbnQgdmFsdWVzX3ByaW50ZWQ7DQo+ICAgDQo+IC0gIHZvaWQgb3BlcmF0b3IoKSAoY29uc3Qg Y2hhciAqcHJpbnRfbmFtZSwgc3RydWN0IHN5bWJvbCAqc3ltKTsNCj4gKyAgdm9pZCBvcGVyYXRv cigpIChjb25zdCBjaGFyICpwcmludF9uYW1lLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sIGJvb2wgc2hh ZG93ZWQsDQo+ICsJCSAgIGJvb2wgcHJpbnRlZCk7DQo+ICAgfTsNCj4gICANCj4gICAvKiBUaGUg Y2FsbGJhY2sgZm9yIHRoZSBsb2NhbHMgYW5kIGFyZ3MgaXRlcmF0b3JzLiAgKi8NCj4gICANCj4g ICB2b2lkDQo+ICAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlX2RhdGE6Om9wZXJhdG9yKCkgKGNv bnN0IGNoYXIgKnByaW50X25hbWUsDQo+IC0JCQkJCSAgIHN0cnVjdCBzeW1ib2wgKnN5bSkNCj4g KwkJCQkJICAgc3RydWN0IHN5bWJvbCAqc3ltLA0KPiArCQkJCQkgICBib29sIHNoYWRvd2VkLCBi b29sIHByaW50ZWQpDQo+ICAgew0KPiAgICAgZnJhbWVfaW5mb19wdHIgZnJhbWU7DQo+ICAgDQo+ IEBAIC0yMjk1LDcgKzIzNDQsOCBAQCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWVfZGF0YTo6b3Bl cmF0b3IoKSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwNCj4gICAgICAgICByZXR1cm47DQo+ICAg ICAgIH0NCj4gICANCj4gLSAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChwcmludF9uYW1lLCBz eW0sIGZyYW1lLCBzdHJlYW0sIA0KPiBudW1fdGFicyk7DQo+ICsgIHByaW50X3ZhcmlhYmxlX2Fu ZF92YWx1ZSAocHJpbnRfbmFtZSwgc3ltLCBmcmFtZSwgc3RyZWFtLCBudW1fdGFicywgc2hhZG93 ZWQsDQo+ICsJCQkgICAgcHJpbnRlZCk7DQo+ICAgDQo+ICAgICAvKiBwcmludF92YXJpYWJsZV9h bmRfdmFsdWUgaW52YWxpZGF0ZXMgRlJBTUUuICAqLw0KPiAgICAgZnJhbWUgPSBOVUxMOw0KPiBA QCAtMjQ3OCw3ICsyNTI4LDcgQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ192YXJzIChjb25zdCBz dHJ1Y3QgYmxvY2sgKmIsDQo+ICAgCSAgc3RydWN0IHN5bWJvbCAqc3ltMg0KPiAgIAkgICAgPSBs b29rdXBfc3ltYm9sX3NlYXJjaF9uYW1lIChzeW0tPnNlYXJjaF9uYW1lICgpLA0KPiAgIAkJCQkJ IGIsIFZBUl9ET01BSU4pLnN5bWJvbDsNCj4gLQkgIGNiIChzeW0tPnByaW50X25hbWUgKCksIHN5 bTIpOw0KPiArCSAgY2IgKHN5bS0+cHJpbnRfbmFtZSAoKSwgc3ltMiwgZmFsc2UsIGZhbHNlKTsN Cj4gICAJfQ0KPiAgICAgICB9DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3N0YWNrLmggYi9n ZGIvc3RhY2suaCBpbmRleCAxYjBjMmIzNDJhNC4uNzJkODQzYjY2ZmIgDQo+IDEwMDY0NA0KPiAt LS0gYS9nZGIvc3RhY2suaA0KPiArKysgYi9nZGIvc3RhY2suaA0KPiBAQCAtMjQsNyArMjQsOCBA QCBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiBmaW5kX2ZyYW1lX2Z1bm5hbWUgKGZyYW1l X2luZm9fcHRyIGZyYW1lLA0KPiAgIAkJCQkJCSAgZW51bSBsYW5ndWFnZSAqZnVubGFuZywNCj4g ICAJCQkJCQkgIHN0cnVjdCBzeW1ib2wgKipmdW5jcCk7DQo+ICAgDQo+IC10eXBlZGVmIGdkYjo6 ZnVuY3Rpb25fdmlldzx2b2lkIChjb25zdCBjaGFyICpwcmludF9uYW1lLCBzdHJ1Y3QgDQo+IHN5 bWJvbCAqc3ltKT4NCj4gK3R5cGVkZWYgZ2RiOjpmdW5jdGlvbl92aWV3PHZvaWQgKGNvbnN0IGNo YXIgKnByaW50X25hbWUsIHN0cnVjdCBzeW1ib2wgKnN5bSwNCj4gKwkJCQkgYm9vbCBzaGFkb3dl ZCwgYm9vbCBwcmludGVkKT4NCj4gICAgICAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfbG9jYWxf dmFyc19jYjsNCj4gICANCj4gICB2b2lkIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfdmFycyAoY29u c3Qgc3RydWN0IGJsb2NrICpibG9jaywgZGlmZiANCj4gLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5hZGEvdmFyX3NoYWRvd2luZy5leHAgDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9z aGFkb3dpbmcuZXhwDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAw Li5kYTI3OWRhMjU4ZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmFkYS92YXJfc2hhZG93aW5nLmV4cA0KPiBAQCAtMCwwICsxLDM4IEBADQo+ICsjIENvcHlyaWdo dCAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPiArDQo+ICsjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+ ICttb2RpZnkgIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIA0KPiArcHVibGlzaGVkIGJ5ICMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgDQo+ICtMaWNlbnNlLCBvciAjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ICsjDQo+ICsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAjIA0KPiArYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg IyANCj4gK01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgIyBHTlUgDQo+ICtHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuDQo+ICsjDQo+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICMgDQo+ICthbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gKw0KPiAr bG9hZF9saWIgImFkYS5leHAiDQo+ICsNCj4gK3JlcXVpcmUgYWxsb3dfYWRhX3Rlc3RzDQo+ICsN Cj4gK3N0YW5kYXJkX2FkYV90ZXN0ZmlsZSB2YXJfc2hhZG93aW5nDQo+ICsNCj4gK2lmIHtbZ2Ri X2NvbXBpbGVfYWRhICIke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSBbbGlzdCAN Cj4gK2RlYnVnXV0gIT0gIiIgfSB7DQo+ICsgIHJldHVybiAtMQ0KPiArfQ0KPiArDQo+ICtjbGVh bl9yZXN0YXJ0ICR7dGVzdGZpbGV9DQo+ICsNCj4gK3NldCBpX2xldmVsMSBbZ2RiX2dldF9saW5l X251bWJlciAiSS1MZXZlbDEiIA0KPiArJHt0ZXN0ZGlyfS92YXJfc2hhZG93aW5nLmFkYl0gc2V0 IGlfbGV2ZWwyIFtnZGJfZ2V0X2xpbmVfbnVtYmVyIA0KPiArIkktTGV2ZWwyIiAke3Rlc3RkaXJ9 L3Zhcl9zaGFkb3dpbmcuYWRiXSBzZXQgaV9sZXZlbDMgDQo+ICtbZ2RiX2dldF9saW5lX251bWJl ciAiSS1MZXZlbDMiICR7dGVzdGRpcn0vdmFyX3NoYWRvd2luZy5hZGJdIHNldCANCj4gK2JwX2xv Y2F0aW9uIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCUkVBSyIgJHt0ZXN0ZGlyfS92YXJfc2hhZG93 aW5nLmFkYl0gcnVudG8gInZhcl9zaGFkb3dpbmcuYWRiOiRicF9sb2NhdGlvbiINCj4gKw0KPiAr Z2RiX3Rlc3QgImluZm8gbG9jYWxzIiBbbXVsdGlfbGluZSBcDQo+ICsgICAgImkgPSAxMTFcdDwk dGVzdGZpbGUuYWRiOiRpX2xldmVsMz4iICBcDQo+ICsgICAgImkgPSAxMVx0PCR0ZXN0ZmlsZS5h ZGI6JGlfbGV2ZWwyLCBzaGFkb3dlZD4iICBcDQo+ICsgICAgImkgPSAxXHQ8JHRlc3RmaWxlLmFk YjokaV9sZXZlbDEsIHNoYWRvd2VkPiIgIFwgXSAiaW5mbyBsb2NhbHMgYXQgDQo+ICtpbm5lcm1v c3QgbGV2ZWwiDQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvdmFyX3NoYWRv d2luZy92YXJfc2hhZG93aW5nLmFkYiANCj4gYi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvdmFyX3No YWRvd2luZy92YXJfc2hhZG93aW5nLmFkYg0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwMC4uOTNjZWY1ZjBkNmMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5hZGEvdmFyX3NoYWRvd2luZy92YXJfc2hhZG93aW5nLmFkYg0KPiBAQCAt MCwwICsxLDMwIEBADQo+ICstLSAgQ29weXJpZ2h0IDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuDQo+ICstLQ0KPiArLS0gIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+ICttb2RpZnkNCj4gKy0tICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCANCj4gK2J5DQo+ICstLSAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCj4gKy0tICAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLg0KPiArLS0NCj4gKy0tICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gKy0tICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KPiArLS0g IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUNCj4gKy0tICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KPiArLS0NCj4gKy0tICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiArLS0gIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiArDQo+ICt3 aXRoIEFkYS5UZXh0X0lPOyB1c2UgQWRhLlRleHRfSU87DQo+ICsNCj4gK3Byb2NlZHVyZSBWYXJz aGFkb3cgaXMNCj4gKyAgSSA6IEludGVnZXIgOj0gMTsgIC0tIEktTGV2ZWwxDQo+ICtiZWdpbg0K PiArICBkZWNsYXJlDQo+ICsgICAgSSA6IEludGVnZXIgOj0gMTE7IC0tIEktTGV2ZWwyDQo+ICsg IGJlZ2luDQo+ICsgICAgZGVjbGFyZQ0KPiArICAgICAgSSA6IEludGVnZXIgOj0gMTExOyAtLSBJ LUxldmVsMw0KPiArICAgIGJlZ2luDQo+ICsgICAgICBQdXRfTGluZSAoImhlbGxvIik7ICAtLSAg QlJFQUsNCj4gKyAgICBlbmQ7DQo+ICsgIGVuZDsNCj4gK2VuZDsNCj4gZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5jIA0KPiBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmFyLXNoYWRvd2luZy5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNzU1DQo+IGluZGV4 IDAwMDAwMDAwMDAwLi4xODk2MzUxNGJiZg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5jDQo+IEBAIC0wLDAgKzEsNDkgQEANCj4g Ky8qIENvcHlyaWdodCAoQykgMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4g Kw0KPiArICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkNCj4gKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ICsgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0K PiArICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKw0KPiArICAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsDQo+ICsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZg0KPiArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiArICAgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gKw0KPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gKyAgIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgDQo+ICsgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiArDQo+ICt2 b2lkDQo+ICtzaGFkb3dpbmcgKHZvaWQpDQo+ICt7DQo+ICsgIGludCBhOyAgLyogYnAgZm9yIGVu dHJ5ICovDQo+ICsgIHVuc2lnbmVkIGludCB2YWwxID0gMTsJCS8qIHZhbDEtZDEgKi8NCj4gKyAg dW5zaWduZWQgaW50IHZhbDIgPSAyOwkJLyogdmFsMi1kMSAqLw0KPiArICBhID0gMTAxOyAgLyog YnAgZm9yIGxvY2FscyAxICovDQo+ICsgIHsNCj4gKyAgICB1bnNpZ25lZCBpbnQgdmFsMiA9IDM7 CQkvKiB2YWwyLWQyICovDQo+ICsgICAgdW5zaWduZWQgaW50IHZhbDMgPSA0OwkJLyogdmFsMy1k MSAqLw0KPiArICAgIGEgPSAxMDI7ICAvKiBicCBmb3IgbG9jYWxzIDIgKi8NCj4gKyAgICB7DQo+ ICsgICAgICB1bnNpZ25lZCBpbnQgdmFsMSA9IDU7CQkvKiB2YWwxLWQyICovDQo+ICsgICAgICBh ID0gMTAzOyAgLyogYnAgZm9yIGxvY2FscyAzICovDQo+ICsgICAgICB7DQo+ICsJI2luY2x1ZGUg InZhci1zaGFkb3dpbmcyLmMiDQo+ICsJdW5zaWduZWQgaW50IHZhbDEgPSA2OwkvKiB2YWwxLWQz ICovDQo+ICsJdW5zaWduZWQgaW50IHZhbDIgPSA3OwkvKiB2YWwyLWQzICovDQo+ICsJdW5zaWdu ZWQgaW50IHZhbDMgPSA4OwkvKiB2YWwzLWQyICovDQo+ICsJYSA9IDEwNDsgIC8qIGJwIGZvciBs b2NhbHMgNCAqLw0KPiArICAgICAgfQ0KPiArICAgIH0NCj4gKyAgfQ0KPiArICBhID0gMDsgLyog YnAgZm9yIGxvY2FscyA1ICovDQo+ICt9DQo+ICsNCj4gK2ludA0KPiArbWFpbiAodm9pZCkNCj4g K3sNCj4gKyAgc2hhZG93aW5nICgpOw0KPiArICByZXR1cm4gMDsNCj4gK30NCj4gZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5leHAgDQo+IGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmV4cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDc1 NQ0KPiBpbmRleCAwMDAwMDAwMDAwMC4uYzdlMWU5ZWFlMmUNCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcuZXhwDQo+IEBAIC0wLDAg KzEsOTAgQEANCj4gKyMgQ29weXJpZ2h0IDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuDQo+ICsNCj4gKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciANCj4gK21vZGlmeSAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgDQo+ICtwdWJsaXNoZWQgYnkgIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSANCj4gK0xp Y2Vuc2UsIG9yICMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKyMNCj4g KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsICMgDQo+ICtidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZiAjIA0KPiArTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAjIEdOVSANCj4gK0dlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gKyMNCj4gKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgIyANCj4g K2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+Lg0KPiArDQo+ICtzdGFuZGFyZF90ZXN0ZmlsZQ0KPiAraWYgW3ByZXBhcmVf Zm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4g KyAgICByZXR1cm4gLTENCj4gK30NCj4gKw0KPiAraWYgIVtydW50b19tYWluXSB7DQo+ICsgICAg dW50ZXN0ZWQgImZhaWxlZCB0byBydW4gdG8gbWFpbiINCj4gKyAgICByZXR1cm4gLTENCj4gK30N Cj4gKw0KPiArc2V0IGJwX2xpbmUxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicCBmb3IgbG9jYWxz IDEiICR7c3JjZmlsZX1dIHNldCANCj4gK2JwX2xpbmUyIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJi cCBmb3IgbG9jYWxzIDIiICR7c3JjZmlsZX1dIHNldCANCj4gK2JwX2xpbmUzIFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJicCBmb3IgbG9jYWxzIDMiICR7c3JjZmlsZX1dIHNldCANCj4gK2JwX2xpbmU0 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicCBmb3IgbG9jYWxzIDQiICR7c3JjZmlsZX1dIHNldCAN Cj4gK2JwX2xpbmU1IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicCBmb3IgbG9jYWxzIDUiICR7c3Jj ZmlsZX1dDQo+ICsNCj4gK3NldCB2YWwxX2QxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YWwxLWQx IiAke3NyY2ZpbGV9XSBzZXQgdmFsMV9kMiANCj4gK1tnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YWwx LWQyIiAke3NyY2ZpbGV9XSBzZXQgdmFsMV9kMyANCj4gK1tnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2 YWwxLWQzIiAke3NyY2ZpbGV9XSBzZXQgdmFsMl9kMSANCj4gK1tnZGJfZ2V0X2xpbmVfbnVtYmVy ICJ2YWwyLWQxIiAke3NyY2ZpbGV9XSBzZXQgdmFsMl9kMiANCj4gK1tnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2YWwyLWQyIiAke3NyY2ZpbGV9XSBzZXQgdmFsMl9kMyANCj4gK1tnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2YWwyLWQzIiAke3NyY2ZpbGV9XSBzZXQgdmFsM19kMSANCj4gK1tnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2YWwzLWQxIiAke3NyY2ZpbGV9XSBzZXQgdmFsM19kMiANCj4gK1tnZGJfZ2V0 X2xpbmVfbnVtYmVyICJ2YWwzLWQyIiAke3NyY2ZpbGV9XSBzZXQgYV9saW5lIA0KPiArW2dkYl9n ZXRfbGluZV9udW1iZXIgImJwIGZvciBlbnRyeSIgJHtzcmNmaWxlfV0NCj4gKw0KPiArZ2RiX2Jy ZWFrcG9pbnQgJHNyY2ZpbGU6JGJwX2xpbmUxDQo+ICtnZGJfdGVzdCAiY29udGludWUiICIuKmJw IGZvciBsb2NhbHMgMS4qIiAiY29udGludWUgdG8gb3V0ZXJtb3N0IGxldmVsIg0KPiArZ2RiX3Rl c3QgImluZm8gbG9jYWxzIiAgW211bHRpX2xpbmUgXA0KPiArICAgICJ2YWwxID0gMSIgIFwNCj4g KyAgICAidmFsMiA9IDIiICBcDQo+ICsgICAgXSAiaW5mbyBsb2NhbHMgYXQgb3V0ZXJtb3N0IGxl dmVsIg0KPiArDQo+ICtnZGJfYnJlYWtwb2ludCAkc3JjZmlsZTokYnBfbGluZTINCj4gK2dkYl90 ZXN0ICJjb250aW51ZSIgIi4qYnAgZm9yIGxvY2FscyAyLioiICJjb250aW51ZSB0byBmaXJzdCBs ZXZlbCINCj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgIFttdWx0aV9saW5lIFwNCj4gKyAgICAi dmFsMiA9IDNcdDwkc3JjZmlsZTokdmFsMl9kMj4iICBcDQo+ICsgICAgInZhbDMgPSA0IiAgXA0K PiArICAgICJhID0gMTAxIiAgIFwNCj4gKyAgICAidmFsMSA9IDEiICBcDQo+ICsgICAgInZhbDIg PSAyXHQ8JHNyY2ZpbGU6JHZhbDJfZDEsIHNoYWRvd2VkPiIgIFwNCj4gKyAgICBdICJpbmZvIGxv Y2FscyBmaXJzdCBsZXZlbCINCj4gKw0KPiArZ2RiX2JyZWFrcG9pbnQgJHNyY2ZpbGU6JGJwX2xp bmUzDQo+ICtnZGJfdGVzdCAiY29udGludWUiICIuKmJwIGZvciBsb2NhbHMgMy4qIiAiY29udGlu dWUgdG8gc2Vjb25kIGxldmVsIg0KPiArZ2RiX3Rlc3QgImluZm8gbG9jYWxzIiBbbXVsdGlfbGlu ZSBcDQo+ICsgICAgInZhbDEgPSA1XHQ8JHNyY2ZpbGU6JHZhbDFfZDI+IiAgXA0KPiArICAgICJ2 YWwyID0gM1x0PCRzcmNmaWxlOiR2YWwyX2QyPiIgIFwNCj4gKyAgICAidmFsMyA9IDQiICBcDQo+ ICsgICAgImEgPSAxMDIiICAgXA0KPiArICAgICJ2YWwxID0gMVx0PCRzcmNmaWxlOiR2YWwxX2Qx LCBzaGFkb3dlZD4iICBcDQo+ICsgICAgInZhbDIgPSAyXHQ8JHNyY2ZpbGU6JHZhbDJfZDEsIHNo YWRvd2VkPiIgIFwNCj4gKyAgICBdICJpbmZvIGxvY2FscyBzZWNvbmQgbGV2ZWwiDQo+ICsNCj4g K2dkYl9icmVha3BvaW50ICRzcmNmaWxlOiRicF9saW5lNA0KPiArZ2RiX3Rlc3QgImNvbnRpbnVl IiAiLipicCBmb3IgbG9jYWxzIDQuKiIgImNvbnRpbnVlIHRvIGlubmVybW9zdCBsZXZlbCINCj4g K2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgW211bHRpX2xpbmUgXA0KPiArICAgICJhID0gOTk5XHQ8 JHt0ZXN0ZmlsZX0yLmM6MTY+IiBcDQo+ICsgICAgInZhbDEgPSA2XHQ8JHNyY2ZpbGU6JHZhbDFf ZDM+IiAgXA0KPiArICAgICJ2YWwyID0gN1x0PCRzcmNmaWxlOiR2YWwyX2QzPiIgIFwNCj4gKyAg ICAidmFsMyA9IDhcdDwkc3JjZmlsZTokdmFsM19kMj4iICBcDQo+ICsgICAgInZhbDEgPSA1XHQ8 JHNyY2ZpbGU6JHZhbDFfZDIsIHNoYWRvd2VkPiIgXA0KPiArICAgICJ2YWwyID0gM1x0PCRzcmNm aWxlOiR2YWwyX2QyLCBzaGFkb3dlZD4iIFwNCj4gKyAgICAidmFsMyA9IDRcdDwkc3JjZmlsZTok dmFsM19kMSwgc2hhZG93ZWQ+IiBcDQo+ICsgICAgImEgPSAxMDNcdDwkc3JjZmlsZTokYV9saW5l LCBzaGFkb3dlZD4iICAgXA0KPiArICAgICJ2YWwxID0gMVx0PCRzcmNmaWxlOiR2YWwxX2QxLCBz aGFkb3dlZD4iIFwNCj4gKyAgICAidmFsMiA9IDJcdDwkc3JjZmlsZTokdmFsMl9kMSwgc2hhZG93 ZWQ+IiBcDQo+ICsgICAgXSAiaW5mbyBsb2NhbHMgYXQgaW5uZXJtb3N0IGxldmVsIg0KPiArDQo+ ICtnZGJfYnJlYWtwb2ludCAkc3JjZmlsZTokYnBfbGluZTUNCj4gK2dkYl90ZXN0ICJjb250aW51 ZSIgIi4qYnAgZm9yIGxvY2FscyA1LioiICJjb250aW51ZSB0byBvdXRlcm1vc3QgbGV2ZWwgbGFz dCINCj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgW211bHRpX2xpbmUgXA0KPiArICAgICJ2YWwx ID0gMSIgIFwNCj4gKyAgICAidmFsMiA9IDIiICBcDQo+ICsgICAgXSAiaW5mbyBsb2NhbHMgYXQg b3V0ZXJtb3N0IGxldmVsIGxhc3QiDQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3Zhci1zaGFkb3dpbmcyLmMgDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hh ZG93aW5nMi5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi45 YmM1NWY5NWE4NA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmFyLXNoYWRvd2luZzIuYw0KPiBAQCAtMCwwICsxLDE2IEBADQo+ICsvKiBDb3B5cmlnaHQg KEMpIDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ICsNCj4gKyAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5DQo+ICsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiArICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCj4gKyAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ICsNCj4gKyAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KPiArICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YNCj4gKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUNCj4gKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuDQo+ICsNCj4gKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ICsgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIA0KPiArIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovDQo+ICsNCj4gK2ludCBhID0gOTk5Ow0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucnVzdC92YXJfcmV1c2UuZXhwIA0KPiBiL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3Jl dXNlLmV4cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDc1NQ0KPiBpbmRleCAwMDAwMDAwMDAwMC4uNThi ODU1MThmNTUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0 L3Zhcl9yZXVzZS5leHANCj4gQEAgLTAsMCArMSwzMiBAQA0KPiArIyBDb3B5cmlnaHQgMjAyMyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKyMNCj4gKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciANCj4gK21vZGlm eSAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgDQo+ICtwdWJsaXNoZWQgYnkgIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSANCj4gK0xpY2Vuc2UsIG9yICMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4NCj4gKyMNCj4gKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICMgDQo+ICtidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAjIA0KPiAr TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSAjIEdOVSANCj4gK0dlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4N Cj4gKyMNCj4gKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgIyANCj4gK2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiArDQo+ICtsb2FkX2xp YiBydXN0LXN1cHBvcnQuZXhwDQo+ICtyZXF1aXJlIGFsbG93X3J1c3RfdGVzdHMNCj4gK3JlcXVp cmUge2Nhbl9jb21waWxlIHJ1c3R9DQo+ICsNCj4gK3N0YW5kYXJkX3Rlc3RmaWxlIC5ycw0KPiAr aWYge1twcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgXA0KPiArCSR0ZXN0 ZmlsZSAkc3JjZmlsZSB7ZGVidWcgcnVzdH1dfSB7DQo+ICsgICAgcmV0dXJuIC0xDQo+ICt9DQo+ ICsNCj4gK3NldCBsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJlYWtwb2ludCBoZXJl Il0gaWYgeyFbcnVudG8gDQo+ICske3NyY2ZpbGV9OiRsaW5lXX0gew0KPiArICAgIHVudGVzdGVk ICJjb3VsZCBub3QgcnVuIHRvIGJyZWFrcG9pbnQiDQo+ICsgICAgcmV0dXJuIC0xDQo+ICt9DQo+ ICsNCj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FsIF94IiAiX3ggPSAxMiIgInByaW50IGxvY2FsIF94 IHZhcmlhYmxlIg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1 c2UucnMgDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnMNCj4gbmV3IGZp bGUgbW9kZSAxMDA3NTUNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjAzYmU3OTgxZmYxDQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnMNCj4g QEAgLTAsMCArMSwyMCBAQA0KPiArLy8gQ29weXJpZ2h0IChDKSAyMDIzIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLg0KPiArDQo+ICsvLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIA0KPiArbW9kaWZ5IC8vIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgDQo+ICtwdWJs aXNoZWQgYnkgLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgDQo+ICtMaWNlbnNlLCBvciAvLyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLg0KPiArLy8NCj4gKy8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAvLyANCj4gK2J1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIC8vIA0KPiArTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAv LyBHTlUgDQo+ICtHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ICsv Lw0KPiArLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgDQo+ICsvLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gKw0KPiArZm4gbWFpbigp IHsNCj4gKyAgICBsZXQgX3ggPSA1Ow0KPiArICAgIGxldCBfeCA9IF94ICsgNzsNCj4gKyAgICBs ZXQgX3kgPSA4OyAgICAgICAvLyBzZXQgYnJlYWtwb2ludCBoZXJlDQo+ICt9DQo+IGRpZmYgLS1n aXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3RyYWNlcG9pbnQuYyBpbmRleCANCj4gMjA1Mzgw NDc2YjMuLjAyNjY5YjNkOTA5IDEwMDY0NA0KPiAtLS0gYS9nZGIvdHJhY2Vwb2ludC5jDQo+ICsr KyBiL2dkYi90cmFjZXBvaW50LmMNCj4gQEAgLTEwNDgsNyArMTA0OCw4IEBAIGNvbGxlY3Rpb25f bGlzdDo6YWRkX2xvY2FsX3N5bWJvbHMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FE RFIgcGMsDQo+ICAgICBpbnQgY291bnQgPSAwOw0KPiAgIA0KPiAgICAgYXV0byBkb19jb2xsZWN0 X3N5bWJvbCA9IFsmXSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwNCj4gLQkJCQlzdHJ1Y3Qgc3lt Ym9sICpzeW0pDQo+ICsJCQkJc3RydWN0IHN5bWJvbCAqc3ltLA0KPiArCQkJCWJvb2wgc2hhZG93 ZWQsIGJvb2wgcHJpbnRlZCkNCj4gICAgICAgew0KPiAgICAgICAgIGNvbGxlY3Rfc3ltYm9sIChz eW0sIGdkYmFyY2gsIGZyYW1lX3JlZ25vLA0KPiAgIAkJICAgICAgZnJhbWVfb2Zmc2V0LCBwYywg dHJhY2Vfc3RyaW5nKTsgZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5oIA0KPiBiL2dkYi92YWx1ZS5o IGluZGV4IDFkNWEwMDE4ZjkyLi44NzlmY2U1NDRjMyAxMDA2NDQNCj4gLS0tIGEvZ2RiL3ZhbHVl LmgNCj4gKysrIGIvZ2RiL3ZhbHVlLmgNCj4gQEAgLTE1MzcsNyArMTUzNyw5IEBAIGV4dGVybiB2 b2lkIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3QgY2hhciAqbmFtZSwNCj4gICAJCQkJ ICAgICAgc3RydWN0IHN5bWJvbCAqdmFyLA0KPiAgIAkJCQkgICAgICBmcmFtZV9pbmZvX3B0ciBm cmFtZSwNCj4gICAJCQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwNCj4gLQkJCQkgICAg ICBpbnQgaW5kZW50KTsNCj4gKwkJCQkgICAgICBpbnQgaW5kZW50LA0KPiArCQkJCSAgICAgIGJv b2wgc2hhZG93ZWQsDQo+ICsJCQkJICAgICAgYm9vbCBwcmludGVkKTsNCj4gICANCj4gICBleHRl cm4gdm9pZCB0eXBlZGVmX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAq bmV3cywNCj4gICAJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsNCg0KDQotLQ0KQ2hlZXJz LA0KR3VpbmV2ZXJlIExhcnNlbg0KU2hlL0hlci9IZXJzDQoNCkludGVsIERldXRzY2hsYW5kIEdt YkgKUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1wZW9uIDEwLCA4NTU3OSBOZXViaWJlcmcsIEdl cm1hbnkKVGVsOiArNDkgODkgOTkgODg1My0wLCB3d3cuaW50ZWwuZGUgPGh0dHA6Ly93d3cuaW50 ZWwuZGU+Ck1hbmFnaW5nIERpcmVjdG9yczogQ2hyaXN0aW4gRWlzZW5zY2htaWQsIFNoYXJvbiBI ZWNrLCBUaWZmYW55IERvb24gU2lsdmEgIApDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkg Qm9hcmQ6IE5pY29sZSBMYXUKUmVnaXN0ZXJlZCBPZmZpY2U6IE11bmljaApDb21tZXJjaWFsIFJl Z2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hlbiBIUkIgMTg2OTI4Cg==