From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6845FFF8861 for ; Mon, 27 Apr 2026 08:34:15 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 14DA210E602; Mon, 27 Apr 2026 08:34:15 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="X1ZcW3Z9"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by gabe.freedesktop.org (Postfix) with ESMTPS id F1A5710E602 for ; Mon, 27 Apr 2026 08:34:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1777278842; x=1808814842; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=SLUa3pcgp+9uDgn5tXHkhbDnQEwxATPAvaSytDYtCIY=; b=X1ZcW3Z9jWeCfA8AVpqpUp8ji/vjk9bCs6s9gSKzN1ceoiFzIJzDAxtb beWDOeEk/VruWKiThfAkeM7sXa4VBGCX/f3N42dAJ+qHE2cStIQOMmvYF MJj2ed1dVAtcIrcbIWSqgpaIgheYApg3DkRYmeIgdAuzEdb5v/G26mmug iXKdgUaAC6giy6L/HS369XcT5Fpg6BEG1WqC9fi01+/HE13yraEmRLaba uWNb3wNnxqhQjvSo7ZN5nCpr+2kdbpZwX1KiUSF7mPryjMB1LAYeO4xwq oFNO0SttSNbPbW22wPrEBT42BYT0+JNObb68zT7IAQ2sxElqEv5M2GIkR g==; X-CSE-ConnectionGUID: WeJHX3wDSSGKccBLTVxzYQ== X-CSE-MsgGUID: 1TcVUhn5QDWQbO4y7yN1WA== X-IronPort-AV: E=McAfee;i="6800,10657,11768"; a="77186679" X-IronPort-AV: E=Sophos;i="6.23,201,1770624000"; d="scan'208";a="77186679" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2026 01:34:01 -0700 X-CSE-ConnectionGUID: GyeS8AG8TwaAtwcO1yYzZA== X-CSE-MsgGUID: lb6x3vnuTt6hxBFbfqNq1Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,201,1770624000"; d="scan'208";a="233459712" Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90]) by orviesa008.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2026 01:34:01 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Mon, 27 Apr 2026 01:34:00 -0700 Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Mon, 27 Apr 2026 01:34:00 -0700 Received: from BL2PR02CU003.outbound.protection.outlook.com (52.101.52.10) by edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Mon, 27 Apr 2026 01:34:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i4/hKKt0nYkS+8Du4Hg/N7MtrRqw06sfNsBPLBqBrSLHTqpNaJt45cxIcWYeXyXWniHycaSv/vj3hWjat6ACLzX+ytbh1WkqZC6VcXoFDuCTDi7rzEcZq/TG+bs6/xcik8+wawavZet3LizbbgsMttKUT+N3qXl/wCVGvoBKMl2QAEe7KOQBRRnNfnNFMNe4krScvnA5/5xpVXxNz53ZkVrzuUaWZOT3RNuAjVjghBpNFL8Lqj9XFFT0OEcz5l0U4yEnPPEAV8uFnGxgr7xXVE3FSA+R3kmt2FhQ+tmw20sKGj72PcfBv5kNSV5IlbXK8LvYAUvgd7ps5+94Kk5Fvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=SLUa3pcgp+9uDgn5tXHkhbDnQEwxATPAvaSytDYtCIY=; b=hMXeQRgf8ONxniiBBfuxHtLQF5ZUuJolAM+KPBWFUFfgXK5No2C0U0tL33in+PMm0RV7nS2XOJzFhzXw2CQI68Z3GFVF8J4ATEwwH38LBVi2oePF8HA6ibSJftiiGom69OdYw3T5aSY3A8hq8J6EplDUgUQFtEY0BwUdpVtnk7x2buI24iGk4pjgJttJJHCKMIUryTzHlsOBNSWjAU/PwOiIMYEPGdLT0fs88lMIItKubpBDwASi8PWw2moscDKmIMSyP8btqawDsHxRiOC6VDgcpc9KpP35axb4hIRBVFF4wRx08ca8VafZ8vL5zjW/XtoptTJZFKLlLE4gxGmAow== 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 DS0PR11MB7733.namprd11.prod.outlook.com (2603:10b6:8:dc::19) by PH7PR11MB6426.namprd11.prod.outlook.com (2603:10b6:510:1f6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Mon, 27 Apr 2026 08:33:56 +0000 Received: from DS0PR11MB7733.namprd11.prod.outlook.com ([fe80::3e49:3435:98fa:130f]) by DS0PR11MB7733.namprd11.prod.outlook.com ([fe80::3e49:3435:98fa:130f%3]) with mapi id 15.20.9870.013; Mon, 27 Apr 2026 08:33:56 +0000 From: "Hellstrom, Thomas" To: "igt-dev@lists.freedesktop.org" , "Thomas, Sobin" CC: "Sharma, Nishit" Subject: Re: [PATCH i-g-t v12 2/2] tests/intel/xe_vm: Add support for overcommit tests Thread-Topic: [PATCH i-g-t v12 2/2] tests/intel/xe_vm: Add support for overcommit tests Thread-Index: AQHc0thZ2dxUno48VEWqzuV6ESbpOrXym3eA Date: Mon, 27 Apr 2026 08:33:55 +0000 Message-ID: <9130fa4985089638004febe61240e4f735e48160.camel@intel.com> References: <20260423041854.496640-1-sobin.thomas@intel.com> <20260423041854.496640-3-sobin.thomas@intel.com> In-Reply-To: <20260423041854.496640-3-sobin.thomas@intel.com> Accept-Language: en-SE, en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.58.3 (3.58.3-1.fc43) 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: DS0PR11MB7733:EE_|PH7PR11MB6426:EE_ x-ms-office365-filtering-correlation-id: 03f13bec-ef7f-4343-45b6-08dea437b88a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|10070799003|1800799024|56012099003|18002099003|22082099003|38070700021; x-microsoft-antispam-message-info: ukhvexkwgsMHy2KUyQVlxQZy1xPStvJPmXndxUM9ujsLbzf8exSsgTRvu6X4fWrlfAphddRnwXOwK9Mq6ZYHfDtAuuSZydXqlQBC22MCaJwGXhAYAX0lxW9Vy43pES4UuqS53pEbLTxpRyDn+oQerbtzOdZO951DBqweOh9vhQjhHnyJL12ldbyUsvOGtjX+MQNKWHSKcTwq65XhuQHTTFMrTGAO3Y0dRyt+gKvN70+aZqWsYt3LhOvo3Ef7KckSI1KhvpkUVgYznJAAxDuyBaeM5OSHdvBb/B7fcanYiX9S2WkpW4nWetqTDoNmF/sJIEVsjifA8WO3RoGeb02IUGDt/kgSFvjzpGP4Kwe/ZfXLt4vRkjpG4WefC1pxBO4wqmasUxscqfCHDC12KLYp33qxUeuXyfvupW99js6m1wAMEZiUG7Jp2uE++pFCFJR52no247/CduR6b6mTvxOy3RJ/fKaN2ENG3lrVbtXGpBh6kxYp8uAUlNXHcTl+9ocQf2ufY/x61ce67pzRMt2Y++Hf99OdTq9oVbbOma02UI1h+BEM69OlfCQkX990cq5OwJyZgGyt1eDoqe6QDauzB3M3ilkGuxozKdxPY+tQkVcpEf7KMZ7TKiSsUY2EhGVn1NvkPFsR3RIz4QHtep/4PkK8/ykcpVlEn0snF8QhrBIsKUZRnCYyX0NhQgX/nORz8z4wWBVqEOIcRXpMjiL44k4lVnbRU4YjhVwn7WYFBscmDcHwAwRiS1iX7YGiC4J9Cb19J1q0D2CNyPk4Y4qBQnHkBUtXt3Rd+C3rvJJSsF4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7733.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(10070799003)(1800799024)(56012099003)(18002099003)(22082099003)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WFZRc0ZPRWp1cTNaTjc2dmNLYkZ0TWxiOS8vakJzWG90SFZ3Tk5Yd2I2MDBI?= =?utf-8?B?U3d1L3JpSk9rbGZkNGVDOG5idGhSR09LcHBCa014S0tzU2hCbW9DZHZkZ1Fz?= =?utf-8?B?Y3czUEI0N3Vkc1EzcVl4NEIyZUFpWXBib1QwNnJBMWgyNUtmOUxPOGtsa2JT?= =?utf-8?B?bFpLWUsxRHBiZUxOYjVjMUQrdXhoaWV0cFFSUVVzWHZyWjNWZHZKcnJmWUFU?= =?utf-8?B?YWJIYzFidzdNWm1aMDVwVXo2QVp2TEdWRTNJdzdJL05GZ3dMcy9iQXpac1Iz?= =?utf-8?B?UHFyRzFWNnFIOVp0SHAyOTdwM3BrVjUxZG1zTTUrWGM1S3pnNmZyMGI2RDdx?= =?utf-8?B?STVLUzEva21sUHQxQkZ6VDBLdmtkdUtvL3g0cXM3UjhQVXBPS0gwS1hFaGtx?= =?utf-8?B?dVFhUjU2TWxxVjF1NTMrb1JTVHZ3OXhic0wzUTg3dEFlNkJOeURiZ1krN2hj?= =?utf-8?B?WFJjblpuc0EvbVVVT2pERVRMbGJqV3p5VUdaeGlsNngrOGR1S0VqcnFwRzhr?= =?utf-8?B?QTVqcFRsVUgrM25PZHRuMGFBSVFXWURPL0N6MGprSGpLV203TGp4Y0Y1NjdV?= =?utf-8?B?L09IVnZIakRORkd5Y2VZOS9WQU42S3VuV2I1SFR1cWc3R09yS3hBaHBBVzRK?= =?utf-8?B?Lzl6QmowcHVpYjA2K0xiOEh5b09PTzVUSG50RVRGbWxwclJEWUErTmdGOWk2?= =?utf-8?B?S3ZMdjk2VVJLeVhVWDBYbWFpN2pLQ1dQQmtqV25ja2dRSVFMTTlIeFErRTdP?= =?utf-8?B?QWU3QXBjQXhCN1BZSXdBQnlXRjBaNVh1azg2UUIwaFB6bE84akVPUE1keHZW?= =?utf-8?B?anYwd2RmNUoxUzhialBxYVZuZ3BmbzVpWVNHRjI5cDdRN3QvQ3R4eGY0WW13?= =?utf-8?B?Z2drZ1RUaHNoeDUzYTBmM1NML3A0Y2lLMi9yWC9sdmtBOGtEMm9nYnYvTGxt?= =?utf-8?B?Wkd3ZVZPUXpPaVIwR3Y1REYrTGRzdE5FaGJ3dHJvS2lJK2d5ZlkzZTE4bmFC?= =?utf-8?B?d21LNU0xVHhMcGhWaFM3ZUdZTkdxNzVCR29Ic3ozY0dnRzE5SHR1MmVOV2tF?= =?utf-8?B?Vmk3cEFNM2RseWRPZGpkVlh4SXlJaDZWZDVVakhnL2g2TDY4NjhXMVZ4bEdh?= =?utf-8?B?OWVHUDh6MlcxWTlTZkNIVWRXejBEZ3UxVEdmK25RMkcxcFU5R0NIMUVWYmxp?= =?utf-8?B?ZWgrT1hkTDFhU2F5eldHYmYzWWtMMXZxMkR4YnZoN1hWS1YzMUtrZzU2eHV3?= =?utf-8?B?b2k3Zm1FZ2lkZ3Avemk3ZmVTTUkyTUpzMzB6MkpCb1E4MUtRQm1ZNVZDaXBL?= =?utf-8?B?WDJOdjVvdWowMzJLc2UwQmluOWlwK2J3MGFGV2lISUhFd2t4d1o3NkRGRm5C?= =?utf-8?B?WEF3OUYrdkhqTXRFNUpaSDBPT1BCZGVVYkQyb2h6VG5tT3R0TUlGamVQVW5h?= =?utf-8?B?RWlRelpJWEdnSWV0M1hBZmpNcGNmM2hPV1MrbGdHalBjZzk2cTlEMElFL2or?= =?utf-8?B?VWxDWjVFMXp2NUMwWEZiMzl1QUxyQmlSUlBHWVVjcmcrOE1oU2lWd0dsZUph?= =?utf-8?B?NEtEZDJxZWcwSmJsZzltbi9PVVAwc0NYWnJTcTg2bkRaVFgvWnhYd0k2cmhP?= =?utf-8?B?ZWZuK2tkZ0kwUUR2M29YUjlnZDQyYXlyaXdwTTNZWmNiYnMrTmNleHF2cVZ0?= =?utf-8?B?VTloRkgzSDE0c2ZlemtTT1J4R1V2M1dpcEd6bG9MUUo5ejlKSVNkN0JtQTJF?= =?utf-8?B?RHRaOXFpMXdtVWs3QjZ5c0lwN1N5VkszNW5PVVJsM3BtMHRmbjl2V29MbDRz?= =?utf-8?B?eG5MTGpVV3psWVdxaU9nSGN4ZG15UzNSVUZ3SzJ0Z3hkaTFwSysvdmY1Si96?= =?utf-8?B?MWh3SFZkVjFHMldEUHVXa2c3enJVSUExVG93NjFyYVhvaGpyV3FLZitFdm0x?= =?utf-8?B?SEM1QzVPRUN1aTlId0xYUTVBdUhmZFNxSzgvelhoakVmV3krYzd6ekxBa1k4?= =?utf-8?B?UTJLZE45LzZ6KzN6QVYxYTBpUkswQzJQcFFpTHlScVdhSkhiWnZlbjRvemR4?= =?utf-8?B?MXBkYzJjdDhSekIvc0xQelRNbzJGTGRGV2RBVmNFQWliSDlLMmswV2ZUVmhE?= =?utf-8?B?bjVBb1JQTjVsK0JKUlM3NXVJT1ZUMHlUa01MVUI4cFpxYWk3bUl1TUlWdHgy?= =?utf-8?B?Nks4d2VzSk1xTW9OUUdlejlFMDdPQU5pNUZnMnBnS28vamZHb2RKZGdrbHRK?= =?utf-8?B?L09iWWIxTC9Kd3g2VFJuZ3hBQjRXNEJjZEYvRkd1cWx0ZDR6YTllRW0yRGNq?= =?utf-8?B?czdYOTJ2eGFnYTIzUjFNOW1OaDl4SURodHE2SjBRWVV0RHZrVHZNY2IrUHVp?= =?utf-8?Q?lni7GtkJOdwhaa2faFyobsLpNrdZrBONLbaKyR45a4SJz?= x-ms-exchange-antispam-messagedata-1: GJNbArHXsL+fiQ== Content-Type: text/plain; charset="utf-8" Content-ID: <5FED83D8D6BC6B4A98510E929F33B8F1@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: KlpUowzeUzpzhwRO4fwvNoZ32pze3/qSsC2MMiLSMklq9XO2tqc+TWwNe8Am4dlbvkVCesepIGSqh1FHT/RkuGFkOE4kWnRg4bloT1mQSqC6qeozmpnQIExh5USRTIQnyzGYotR44Nar+D1zlUm5LKAzzghGNaT76av/zvVoeyZ+Yr7LpoUKKeS2JHda+d8PZ/oYvVt36lF7WLKbvQW0NeSJDwgcID5Jm1Da25zCz0IxrM6bIU6bWADBS2dhvNt7/8ZEOHbEgyupflkK78dR3f0As0wEWdXLCPjnnx5/M4wcGoNP55Cl756lvzP0OArbtJunSpkbSylFQwOu3oYw2w== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7733.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03f13bec-ef7f-4343-45b6-08dea437b88a X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2026 08:33:55.8470 (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: ZduQADsXkg5PJkJufmV+1XG7ktcYlf00PNLPd9nuBaPqv2+qpd9EQVjXOFx6bwRUkA7k213pPbW1QFSheCmXaCDvqdJqcLtFeftgfh2i7w8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6426 X-OriginatorOrg: intel.com X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" T24gVGh1LCAyMDI2LTA0LTIzIGF0IDA0OjE4ICswMDAwLCBTb2JpbiBUaG9tYXMgd3JvdGU6DQo+ IEN1cnJlbnQgdGVzdHMgZm9jdXMgb24gVk0gY3JlYXRpb24gd2l0aCBiYXNpYyBtb2RlIHNlbGVj dGlvbiBhbmQgZG8NCj4gbm90DQo+IHN1cHBvcnQgb3ZlcmNvbW1pdCBzY2VuYXJpb3MuDQo+IA0K PiBUaGlzIGNoYW5nZSBhZGRzIHRlc3RzIHRvIHZlcmlmeSBvdmVyY29tbWl0IGJlaGF2aW9yIGFj cm9zcyBkaWZmZXJlbnQNCj4gVk0NCj4gbW9kZXMuDQo+IA0KPiBOb24tZmF1bHQgbW9kZSB0ZXN0 czoNCj4gwqAtIHZyYW0tbHItZGVmZXI6IERFRkVSX0JBQ0tJTkcgcmVqZWN0cyBvdmVyY29tbWl0 IGF0IGJpbmQgdGltZQ0KPiDCoC0gdnJhbS1sci1leHRlcm5hbC1ub2RlZmVyOiBMb25nLXJ1bm5p bmcgbW9kZSB3aXRoIGV4dGVybmFsIEJPIGFuZA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBubyBkZWZlciBiYWNraW5nDQo+IMKgLSB2 cmFtLW5vLWxyOiBOb24tTFIgbW9kZQ0KPiANCj4gRmF1bHQgbW9kZSB0ZXN0czoNCj4gwqAtIHZy YW0tbHItZmF1bHQ6IEZhdWx0IGhhbmRsaW5nIGFsbG93cyBncmFjZWZ1bCBvdmVyY29tbWl0IHZp YSBwYWdlDQo+IMKgwqAgZmF1bHRzDQo+IMKgLSB2cmFtLWxyLWZhdWx0LW5vLW92ZXJjb21taXQ6 IFZlcmlmaWVzIE5PX1ZNX09WRVJDT01NSVQgYmxvY2tzDQo+IHNhbWUtVk0NCj4gwqDCoCBCTyBl dmljdGlvbiBkdXJpbmcgVk1fQklORCB3aGlsZSBzdGlsbCBhbGxvd2luZyBldmljdGlvbiBkdXJp bmcNCj4gwqDCoCBwYWdlZmF1bHQgT09NDQo+IA0KPiBUaGVzZSB0ZXN0cyB2YWxpZGF0ZSB0aGF0 IFZNcyBoYW5kbGUgbWVtb3J5IHByZXNzdXJlIGFwcHJvcHJpYXRlbHkNCj4gYmFzZWQNCj4gb24g dGhlaXIgY29uZmlndXJhdGlvbuKAlHJlamVjdGluZyBhdCBiaW5kLCBmYWlsaW5nIGF0IGV4ZWMs IG9yDQo+IGhhbmRsaW5nDQo+IGl0IGdyYWNlZnVsbHkgdmlhIHBhZ2UgZmF1bHRzLg0KPiANCj4g djIgLSBBZGRlZCBBZGRpdGlvbmFsIHRlc3QgY2FzZXMgZm9yIExSIG1vZGUgYW5kIE5vIE92ZXJj b21taXQuDQo+IA0KPiB2MyAtIFJlZmFjdG9yZWQgaW50byBzaW5nbGUgYXBpIGNhbGzCoCBiYXNl ZCBvbiB0aGUgVk0gLyBCTyBGbGFncy4NCj4gDQo+IHY1IC0gQWRkcmVzc2VkIHJldmlldyBjb21t ZW50cyAocmVzZXQgc3luYyBvYmplY3RzIGFuZCBuaXRzKS4NCj4gwqDCoMKgwqAgQWRkZWQgY2hl Y2sgaW4gY2xlYW51cA0KPiB2NiAtIFJlcGxhY2VkIF9feGVfdm1fYmluZCB3aXRoIHhlX3ZtX2Jp bmRfbHJfc3luYyBhbmQgcmVmYWN0b3JlZC4NCj4gdjcgLSBBZGQgZmFpbGFibGUgeGVfdm1fYmlu ZF9scl9zeW5jIHRvIGhhbmRsZSB0aGUgZmFpbHVyZSBpbiB0aGUNCj4gwqDCoMKgwqAgdm0gYmlu ZCBpbiBjYXNlIG92ZXIgY29tbWl0IGhhcHBlbnMuDQo+IHY5IC0gUmVwbGFjZWQgeGVfdm1fYmlu ZF9scl9zeW5jX2ZhaWxhYmxlIHdpdGggX194ZV92bV9iaW5kX2xyX3N5bmMNCj4gdjEwIC0gQWRk IEVOT1NQQyBlcnJvciwgbW92ZWQgQk8gbWFwIGFmdGVyIGJpbmQgaXMgY29tcGxldGVkLg0KPiDC oMKgwqDCoMKgIFJlbW92ZWQgc3BlY2lhbCBjYXNpbmcgTFIgTW9kZS4NCj4gdjExIC0gQWRkIHN0 YWdlIGNoZWNrcyBmb3IgdGhlIG92ZXIgY29tbWl0cyBmb3IgZGlmZmVyZW50IHN0YWdlcw0KPiDC oMKgwqDCoCAoYmluZCAvIGV4ZWMpLg0KPiB2MTIgLSBSZW1vdmVkIGJpbmQgdXNlciBwdHIgZXhj bHVzaXZlIGZvciBmYXVsdCBtb2RlLg0KPiDCoMKgwqDCoMKgIFJlcGxhY2VkIGlndF9hc3NlcnQg d2l0aCBpZ3RfcmVxdWlyZSBmb3IgeGVfdmlzaWJsZV92cmFtX3NpemUNCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IFNvYmluIFRob21hcyA8c29iaW4udGhvbWFzQGludGVsLmNvbT4NCg0KUmV2aWV3ZWQt Ynk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4N Cg0KDQo+IC0tLQ0KPiDCoHRlc3RzL2ludGVsL3hlX3ZtLmMgfCAzOTENCj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gwqAxIGZpbGUgY2hhbmdlZCwgMzkw IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gDQo+IGRpZmYgLS1naXQgYS90ZXN0cy9p bnRlbC94ZV92bS5jIGIvdGVzdHMvaW50ZWwveGVfdm0uYw0KPiBpbmRleCBkNzViMDczMGQuLjQw OGJmZGI3MSAxMDA2NDQNCj4gLS0tIGEvdGVzdHMvaW50ZWwveGVfdm0uYw0KPiArKysgYi90ZXN0 cy9pbnRlbC94ZV92bS5jDQo+IEBAIC0yMCw2ICsyMCwxNCBAQA0KPiDCoCNpbmNsdWRlICJ4ZS94 ZV9xdWVyeS5oIg0KPiDCoCNpbmNsdWRlICJ4ZS94ZV9zcGluLmgiDQo+IMKgI2luY2x1ZGUgPHN0 cmluZy5oPg0KPiArI2RlZmluZSBVU0VSX0ZFTkNFX1ZBTFVFIDB4ZGVhZGJlZWZkZWFkYmVlZnVs bA0KPiArDQo+ICtlbnVtIG92ZXJjb21taXRfc3RhZ2Ugew0KPiArCUVYUEVDVF9OT05FLA0KPiAr CUVYUEVDVF9DUkVBVEUsDQo+ICsJRVhQRUNUX0JJTkQsDQo+ICsJRVhQRUNUX0VYRUMsDQo+ICt9 Ow0KPiDCoA0KPiDCoHN0YXRpYyB1aW50MzJfdA0KPiDCoGFkZHJfbG93KHVpbnQ2NF90IGFkZHIp DQo+IEBAIC0yMzc2LDYgKzIzODQsMzc2IEBAIHN0YXRpYyB2b2lkIGludmFsaWRfdm1faWQoaW50 IGZkKQ0KPiDCoAlkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9YRV9WTV9ERVNUUk9ZLCAmZGVz dHJveSwgRU5PRU5UKTsNCj4gwqB9DQo+IMKgDQo+ICtzdGF0aWMgZW51bSBvdmVyY29tbWl0X3N0 YWdlIGNyZWF0ZV9kYXRhX2JvcyhpbnQgZmQsIHVpbnQzMl90IHZtLA0KPiB1aW50MzJfdCAqYm9z LCBpbnQgbnVtX2JvcywNCj4gKwkJCQkJwqDCoMKgwqAgdWludDY0X3QgbmZfYm9fc2l6ZSwNCj4g Ym9vbCB1c2VfdnJhbSwgdWludDY0X3QgZGF0YV9hZGRyLA0KPiArCQkJCQnCoMKgwqDCoCB1aW50 MzJfdCBib19mbGFncywgaW50DQo+IGd0X2lkLCBpbnQgKm51bV9ib3VuZF9vdXQpDQo+ICt7DQo+ ICsJdWludDMyX3QgcGxhY2VtZW50ID0gdXNlX3ZyYW0gPyB2cmFtX21lbW9yeShmZCwgZ3RfaWQp IDoNCj4gc3lzdGVtX21lbW9yeShmZCk7DQo+ICsNCj4gKwkqbnVtX2JvdW5kX291dCA9IDA7DQo+ ICsNCj4gKwlmb3IgKGludCBpID0gMDsgaSA8IG51bV9ib3M7IGkrKykgew0KPiArCQlpbnQgYmlu ZF9lcnI7DQo+ICsJCWludCBjcmVhdGVfcmV0ID0gMDsNCj4gKw0KPiArCQkvKiBDcmVhdGUgQk8g dXNpbmcgdGhlIGNhc2UncyBjcmVhdGUgZnVuY3Rpb24gKi8NCj4gKwkJY3JlYXRlX3JldCA9IF9f eGVfYm9fY3JlYXRlKGZkLCB2bSwgbmZfYm9fc2l6ZSwNCj4gcGxhY2VtZW50LA0KPiArCQkJCQnC oMKgwqAgYm9fZmxhZ3MsIE5VTEwsDQo+ICZib3NbaV0pOw0KPiArDQo+ICsJCWlmIChjcmVhdGVf cmV0KSB7DQo+ICsJCQlpZiAoZXJybm8gPT0gRU5PTUVNIHx8IGVycm5vID09IEVOT1NQQykgew0K PiArCQkJCWlndF9kZWJ1ZygiQk8gY3JlYXRlIGZhaWxlZCBhdCAlZC8lZA0KPiB3aXRoIGVycm9y ICVkICglcylcbiIsDQo+ICsJCQkJCcKgIGksIG51bV9ib3MsIGVycm5vLA0KPiBzdHJlcnJvcihl cnJubykpOw0KPiArCQkJCXJldHVybiBFWFBFQ1RfQ1JFQVRFOw0KPiArCQkJfQ0KPiArCQkJaWd0 X2Fzc2VydF9mKDAsICJVbmV4cGVjdGVkIEJPIGNyZWF0ZSBlcnJvcg0KPiAlZCAoJXMpXG4iLCBl cnJubywNCj4gKwkJCQnCoMKgwqDCoCBzdHJlcnJvcihlcnJubykpOw0KPiArCQl9DQo+ICsNCj4g KwkJYmluZF9lcnIgPSBfX3hlX3ZtX2JpbmRfbHJfc3luYyhmZCwgdm0sIGJvc1tpXSwgMCwNCj4g ZGF0YV9hZGRyICsNCj4gKwkJCQkJCSgodWludDY0X3QpaSAqDQo+IG5mX2JvX3NpemUpLCBuZl9i b19zaXplLCAwKTsNCj4gKwkJaWYgKGJpbmRfZXJyKSB7DQo+ICsJCQlpZiAoZXJybm8gPT0gRU5P TUVNIHx8IGVycm5vID09IEVOT1NQQykgew0KPiArCQkJCWlndF9kZWJ1ZygiQk8gYmluZCBmYWls ZWQgYXQgJWQvJWQgLQ0KPiBlcnJvciAlZCAoJXMpLCAlZCBCT3MgYm91bmRcbiIsDQo+ICsJCQkJ CcKgIGksIG51bV9ib3MsIGVycm5vLA0KPiBzdHJlcnJvcihlcnJubyksIGkpOw0KPiArCQkJCXJl dHVybiBFWFBFQ1RfQklORDsNCj4gKwkJCX0NCj4gKwkJCWlndF9hc3NlcnRfZigwLCAiVW5leHBl Y3RlZCBCTyBiaW5kIGVycm9yICVkDQo+ICglcylcbiIsIGVycm5vLA0KPiArCQkJCcKgwqDCoMKg IHN0cmVycm9yKGVycm5vKSk7DQo+ICsJCX0NCj4gKw0KPiArCQkqbnVtX2JvdW5kX291dCA9IGkg KyAxOw0KPiArCQlpZ3RfZGVidWcoIkNyZWF0ZWQgYW5kIGJvdW5kIEJPICVkLyVkIGF0IDB4JWxs eFxuIiwNCj4gKwkJCcKgIGkgKyAxLCBudW1fYm9zLA0KPiArCQkJwqAgKHVuc2lnbmVkIGxvbmcg bG9uZykoZGF0YV9hZGRyICsNCj4gKCh1aW50NjRfdClpICogbmZfYm9fc2l6ZSkpKTsNCj4gKwl9 DQo+ICsJcmV0dXJuIEVYUEVDVF9OT05FOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCB2ZXJp ZnlfYm8oaW50IGZkLCB1aW50MzJfdCAqYm9zLCBpbnQgbnVtX2JvcywgdWludDY0X3QNCj4gbmZf Ym9fc2l6ZSwgdWludDY0X3Qgc3RyaWRlKQ0KPiArew0KPiArCWZvciAoaW50IGkgPSAwOyBpIDwg bnVtX2JvczsgaSsrKSB7DQo+ICsJCXVpbnQzMl90ICp2ZXJpZnlfZGF0YTsNCj4gKwkJaW50IGVy cm9ycyA9IDA7DQo+ICsNCj4gKwkJdmVyaWZ5X2RhdGEgPSB4ZV9ib19tYXAoZmQsIGJvc1tpXSwg bmZfYm9fc2l6ZSk7DQo+ICsJCWlndF9hc3NlcnQodmVyaWZ5X2RhdGEpOw0KPiArDQo+ICsJCWZv ciAoaW50IG9mZiA9IDA7IG9mZiA8IG5mX2JvX3NpemU7IG9mZiArPSBzdHJpZGUpIHsNCj4gKwkJ CXVpbnQzMl90IGV4cGVjdGVkID0gMHhCQjsNCj4gKwkJCXVpbnQzMl90IGFjdHVhbCA9ICoodWlu dDMyX3QgKikoKGNoYXINCj4gKil2ZXJpZnlfZGF0YSArIG9mZik7DQo+ICsNCj4gKwkJCWlmIChh Y3R1YWwgIT0gZXhwZWN0ZWQpIHsNCj4gKwkJCQlpZiAoZXJyb3JzIDwgNSkNCj4gKwkJCQkJaWd0 X2RlYnVnKCJNaXNtYXRjaCBhdCBCTyAlZA0KPiBvZmZzZXQgMHglbGx4IiwNCj4gKwkJCQkJCcKg IGksICh1bnNpZ25lZCBsb25nDQo+IGxvbmcpb2ZmKTsNCj4gKwkJCQllcnJvcnMrKzsNCj4gKwkJ CX0NCj4gKwkJfQ0KPiArDQo+ICsJCW11bm1hcCh2ZXJpZnlfZGF0YSwgbmZfYm9fc2l6ZSk7DQo+ ICsJCWlndF9hc3NlcnRfZihlcnJvcnMgPT0gMCwgIkRhdGEgdmVyaWZpY2F0aW9uIGZhaWxlZA0K PiBmb3IgQk8gJWQgd2l0aCAlZCBlcnJvcnNcbiIsDQo+ICsJCQnCoMKgwqDCoCBpLCBlcnJvcnMp Ow0KPiArCX0NCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgYmluZF91c2VycHRyX3N5bmMoaW50 IGZkLCB1aW50MzJfdCB2bSwgdWludDMyX3QNCj4gYmluZF9leGVjX3F1ZXVlLCB2b2lkICp1c2Vy cHRyLA0KPiArCQkJwqDCoMKgwqDCoCB1aW50NjRfdCBhZGRyLCB1aW50NjRfdCBzaXplLCBzdHJ1 Y3QNCj4gZHJtX3hlX3N5bmMgKnN5bmMsDQo+ICsJCQnCoMKgwqDCoMKgIHVpbnQ2NF90ICpzeW5j X21lbSkNCj4gK3sNCj4gKwkqc3luY19tZW0gPSAwOw0KPiArDQo+ICsJc3luYy0+YWRkciA9IHRv X3VzZXJfcG9pbnRlcihzeW5jX21lbSk7DQo+ICsJeGVfdm1fYmluZF91c2VycHRyX2FzeW5jKGZk LCB2bSwgYmluZF9leGVjX3F1ZXVlLA0KPiB0b191c2VyX3BvaW50ZXIodXNlcnB0ciksIGFkZHIs IHNpemUsDQo+ICsJCQkJIHN5bmMsIDEpOw0KPiArCXhlX3dhaXRfdWZlbmNlKGZkLCBzeW5jX21l bSwgVVNFUl9GRU5DRV9WQUxVRSwNCj4gYmluZF9leGVjX3F1ZXVlLCAyMCAqIE5TRUNfUEVSX1NF Qyk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogU1VCVEVTVDogb3ZlcmNvbW1pdC1mYXVsdC0l cw0KPiArICogRGVzY3JpcHRpb246IFRlc3QgVk0gb3ZlcmNvbW1pdCBiZWhhdmlvciBpbiBmYXVs dCBtb2RlIHdpdGgNCj4gJWFyZ1sxXSBjb25maWd1cmF0aW9uDQo+ICsgKiBGdW5jdGlvbmFsaXR5 OiBvdmVyY29tbWl0DQo+ICsgKiBUZXN0IGNhdGVnb3J5OiBmdW5jdGlvbmFsaXR5IHRlc3QNCj4g KyAqDQo+ICsgKiBhcmdbMV06DQo+ICsgKg0KPiArICogQHZyYW0tbHI6VlJBTSB3aXRoIExSIGFu ZCBmYXVsdCBtb2RlLCBleHBlY3RzIGV4ZWMgdG8gcGFzcw0KPiArICogQHZyYW0tbHItbm8tb3Zl cmNvbW1pdDpWUkFNIHdpdGggTFIsIGZhdWx0IGFuZCBOT19WTV9PVkVSQ09NTUlUOw0KPiBleGVj IHN1Y2NlZWRzIHZpYSBtaWdyYXRpb24NCj4gKyAqLw0KPiArDQo+ICsvKioNCj4gKyAqIFNVQlRF U1Q6IG92ZXJjb21taXQtbm9uZmF1bHQtJXMNCj4gKyAqIERlc2NyaXB0aW9uOiBUZXN0IFZNIG92 ZXJjb21taXQgYmVoYXZpb3IgaW4gbm9uZmF1bHQgbW9kZSB3aXRoDQo+ICVhcmdbMV0gY29uZmln dXJhdGlvbg0KPiArICogRnVuY3Rpb25hbGl0eTogb3ZlcmNvbW1pdA0KPiArICogVGVzdCBjYXRl Z29yeTogZnVuY3Rpb25hbGl0eSB0ZXN0DQo+ICsgKg0KPiArICogYXJnWzFdOg0KPiArICoNCj4g KyAqIEB2cmFtLWxyLWRlZmVyOlZSQU0gd2l0aCBMUiBhbmQgZGVmZXIgYmFja2luZywgZXhwZWN0 cyBiaW5kDQo+IHJlamVjdGlvbg0KPiArICogQHZyYW0tbHItZXh0ZXJuYWwtbm9kZWZlcjpWUkFN IHdpdGggTFIgYW5kIGV4dGVybmFsIEJPIHdpdGhvdXQNCj4gZGVmZXIsIGV4cGVjdHMgYmluZCBm YWlsDQo+ICsgKiBAdnJhbS1uby1scjpWUkFNIHdpdGhvdXQgTFIgbW9kZSwgZXhwZWN0cyBleGVj IHRvIGZhaWwNCj4gKyAqLw0KPiArc3RydWN0IHZtX292ZXJjb21taXRfY2FzZSB7DQo+ICsJY29u c3QgY2hhciAqbmFtZTsNCj4gKwl1aW50MzJfdCB2bV9mbGFnczsNCj4gKwl1aW50MzJfdCBib19m bGFnczsNCj4gKwlib29sIHVzZV92cmFtOw0KPiArCXVpbnQ2NF90IGRhdGFfYWRkcjsNCj4gKwlp bnQgb3ZlcmNvbW1pdF9tdWx0Ow0KPiArCWVudW0gb3ZlcmNvbW1pdF9zdGFnZSBleHBlY3RlZF9z dGFnZTsNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3ZlcmNvbW1pdF9j YXNlIG92ZXJjb21taXRfY2FzZXNbXSA9IHsNCj4gKwkvKiBERUZFUl9CQUNLSU5HICovDQo+ICsJ ew0KPiArCQkubmFtZSA9ICJ2cmFtLWxyLWRlZmVyIiwNCj4gKwkJLnZtX2ZsYWdzID0gRFJNX1hF X1ZNX0NSRUFURV9GTEFHX0xSX01PREUsDQo+ICsJCS5ib19mbGFncyA9IERSTV9YRV9HRU1fQ1JF QVRFX0ZMQUdfREVGRVJfQkFDS0lORyB8DQo+ICsJCQnCoMKgwqANCj4gRFJNX1hFX0dFTV9DUkVB VEVfRkxBR19ORUVEU19WSVNJQkxFX1ZSQU0sDQo+ICsJCS51c2VfdnJhbSA9IHRydWUsDQo+ICsJ CS5kYXRhX2FkZHIgPSAweDFhMDAwMCwNCj4gKwkJLm92ZXJjb21taXRfbXVsdCA9IDIsDQo+ICsJ CS5leHBlY3RlZF9zdGFnZSA9IEVYUEVDVF9CSU5ELA0KPiArCX0sDQo+ICsJLyogRXh0ZXJuYWwg Qk8gd2l0aG91dCBkZWZlciBiYWNraW5nICovDQo+ICsJew0KPiArCQkubmFtZSA9ICJ2cmFtLWxy LWV4dGVybmFsLW5vZGVmZXIiLA0KPiArCQkudm1fZmxhZ3MgPSBEUk1fWEVfVk1fQ1JFQVRFX0ZM QUdfTFJfTU9ERSwNCj4gKwkJLmJvX2ZsYWdzID0NCj4gRFJNX1hFX0dFTV9DUkVBVEVfRkxBR19O RUVEU19WSVNJQkxFX1ZSQU0sDQo+ICsJCS51c2VfdnJhbSA9IHRydWUsDQo+ICsJCS5kYXRhX2Fk ZHIgPSAweDFhMDAwMCwNCj4gKwkJLm92ZXJjb21taXRfbXVsdCA9IDIsDQo+ICsJCS5leHBlY3Rl ZF9zdGFnZSA9IEVYUEVDVF9CSU5ELA0KPiArCX0sDQo+ICsJLyogTFIgKyBGQVVMVCAtIHNob3Vs ZCBub3QgZmFpbCBvbiBleGVjICovDQo+ICsJew0KPiArCQkubmFtZSA9ICJ2cmFtLWxyIiwNCj4g KwkJLnZtX2ZsYWdzID0gRFJNX1hFX1ZNX0NSRUFURV9GTEFHX0xSX01PREUgfA0KPiArCQkJwqDC oMKgIERSTV9YRV9WTV9DUkVBVEVfRkxBR19GQVVMVF9NT0RFLA0KPiArCQkuYm9fZmxhZ3MgPQ0K PiBEUk1fWEVfR0VNX0NSRUFURV9GTEFHX05FRURTX1ZJU0lCTEVfVlJBTSwNCj4gKwkJLnVzZV92 cmFtID0gdHJ1ZSwNCj4gKwkJLmRhdGFfYWRkciA9IDB4MzAwMDAwMDAwLA0KPiArCQkub3ZlcmNv bW1pdF9tdWx0ID0gMiwNCj4gKwkJLmV4cGVjdGVkX3N0YWdlID0gRVhQRUNUX05PTkUsDQo+ICsJ fSwNCj4gKwkvKiAhTFIgLSBvdmVyY29tbWl0IHNob3VsZCBmYWlsIG9uIGV4ZWMgKi8NCj4gKwl7 DQo+ICsJCS5uYW1lID0gInZyYW0tbm8tbHIiLA0KPiArCQkudm1fZmxhZ3MgPSAwLA0KPiArCQku Ym9fZmxhZ3MgPQ0KPiBEUk1fWEVfR0VNX0NSRUFURV9GTEFHX05FRURTX1ZJU0lCTEVfVlJBTSwN Cj4gKwkJLnVzZV92cmFtID0gdHJ1ZSwNCj4gKwkJLmRhdGFfYWRkciA9IDB4MzAwMDAwMDAwLA0K PiArCQkub3ZlcmNvbW1pdF9tdWx0ID0gMiwNCj4gKwkJLmV4cGVjdGVkX3N0YWdlID0gRVhQRUNU X0VYRUMsDQo+ICsJfSwNCj4gKwkvKiBMUiArIEZBVUxUICsgTk9fVk1fT1ZFUkNPTU1JVCAqLw0K PiArCXsNCj4gKwkJLm5hbWUgPSAidnJhbS1sci1uby1vdmVyY29tbWl0IiwNCj4gKwkJLnZtX2Zs YWdzID0gRFJNX1hFX1ZNX0NSRUFURV9GTEFHX05PX1ZNX09WRVJDT01NSVQgfA0KPiBEUk1fWEVf Vk1fQ1JFQVRFX0ZMQUdfTFJfTU9ERSB8DQo+ICsJCQnCoMKgwqAgRFJNX1hFX1ZNX0NSRUFURV9G TEFHX0ZBVUxUX01PREUsDQo+ICsJCS5ib19mbGFncyA9IERSTV9YRV9HRU1fQ1JFQVRFX0ZMQUdf REVGRVJfQkFDS0lORyB8DQo+ICsJCQnCoMKgwqANCj4gRFJNX1hFX0dFTV9DUkVBVEVfRkxBR19O RUVEU19WSVNJQkxFX1ZSQU0sDQo+ICsJCS51c2VfdnJhbSA9IHRydWUsDQo+ICsJCS5kYXRhX2Fk ZHIgPSAweDMwMDAwMDAwMCwNCj4gKwkJLm92ZXJjb21taXRfbXVsdCA9IDIsDQo+ICsJCS8qDQo+ ICsJCSAqIEZBVUxUX01PREUgaGFuZGxlcyBWUkFNIHByZXNzdXJlIHZpYSBtaWdyYXRpb24NCj4g ZXZlbiB3aXRoDQo+ICsJCSAqIE5PX1ZNX09WRVJDT01NSVQ7IERFRkVSX0JBQ0tJTkcgZGVmZXJz IHBoeXNpY2FsDQo+IGFsbG9jYXRpb24NCj4gKwkJICogdG8gZmF1bHQgdGltZSBzbyBiaW5kLXRp bWUgcmVqZWN0aW9uIGRvZXMgbm90DQo+IG9jY3VyLg0KPiArCQkgKi8NCj4gKwkJLmV4cGVjdGVk X3N0YWdlID0gRVhQRUNUX05PTkUsDQo+ICsJfSwNCj4gKwl7IH0NCj4gK307DQo+ICsNCj4gK3N0 YXRpYyB2b2lkDQo+ICt0ZXN0X3ZtX292ZXJjb21taXQoaW50IGZkLCBzdHJ1Y3QgZHJtX3hlX2Vu Z2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiArCQnCoMKgIGNvbnN0IHN0cnVjdCB2bV9vdmVy Y29tbWl0X2Nhc2UgKmMsDQo+ICsJCcKgwqAgdWludDY0X3Qgc3lzdGVtX3NpemUsIHVpbnQ2NF90 IHZyYW1fc2l6ZSkNCj4gK3sNCj4gKwl1aW50MzJfdCB2bSA9IDAsICpib3MsIGJhdGNoX2JvID0g MCwgZXhlY19xdWV1ZSA9IDAsDQo+IGJpbmRfZXhlY19xdWV1ZSA9IDA7DQo+ICsJdWludDY0X3Qg c3luY19hZGRyID0gMHgxMDAwMDAwMDAwLCBiYXRjaF9hZGRyID0gMHgyMDAwMDAwMDA7DQo+ICsJ aW50IGksIG51bV9ib3MsIG51bV9ib3VuZCA9IDAsIGJpbmRfZXJyLCBjcmVhdGVfcmV0LA0KPiB3 YWl0X3JldDsNCj4gKwlzaXplX3Qgc3luY19zaXplLCBuZl9ib19zaXplID0gNjQgKiAxMDI0ICog MTAyNDsNCj4gKwllbnVtIG92ZXJjb21taXRfc3RhZ2UgYWN0dWFsX3N0YWdlID0gRVhQRUNUX05P TkU7DQo+ICsJdWludDY0X3Qgc3RyaWRlID0gMTAyNCAqIDEwMjQsIGJhc2Vfc2l6ZTsNCj4gKwl1 aW50NjRfdCBvdmVyY29tbWl0X3NpemUsIG9mZiwgZGF0YV9hZGRyOw0KPiArCWludDY0X3QgdGlt ZW91dCA9IDIwICogTlNFQ19QRVJfU0VDOw0KPiArCXN0cnVjdCBkcm1feGVfc3luYyBiaW5kX3N5 bmNbMV0gPSB7DQo+ICsJCXsNCj4gKwkJCS50eXBlID0gRFJNX1hFX1NZTkNfVFlQRV9VU0VSX0ZF TkNFLA0KPiArCQkJLmZsYWdzID0gRFJNX1hFX1NZTkNfRkxBR19TSUdOQUwsDQo+ICsJCQkudGlt ZWxpbmVfdmFsdWUgPSBVU0VSX0ZFTkNFX1ZBTFVFDQo+ICsJCX0sDQo+ICsJfTsNCj4gKwlzdHJ1 Y3QgZHJtX3hlX3N5bmMgZXhlY19zeW5jWzFdID0gew0KPiArCQl7DQo+ICsJCQkudHlwZSA9IERS TV9YRV9TWU5DX1RZUEVfVVNFUl9GRU5DRSwNCj4gKwkJCS5mbGFncyA9IERSTV9YRV9TWU5DX0ZM QUdfU0lHTkFMLA0KPiArCQkJLnRpbWVsaW5lX3ZhbHVlID0gVVNFUl9GRU5DRV9WQUxVRSwNCj4g KwkJfSwNCj4gKwl9Ow0KPiArCXN0cnVjdCBkcm1feGVfZXhlYyBleGVjID0gew0KPiArCQkubnVt X2JhdGNoX2J1ZmZlciA9IDEsDQo+ICsJCS5udW1fc3luY3MgPSAxLA0KPiArCQkuc3luY3MgPSB0 b191c2VyX3BvaW50ZXIoZXhlY19zeW5jKSwNCj4gKwl9Ow0KPiArCXN0cnVjdCB7DQo+ICsJCXVp bnQzMl90IGJhdGNoWzE2XTsNCj4gKwkJdWludDY0X3QgcGFkOw0KPiArCQl1aW50MzJfdCBkYXRh Ow0KPiArCQl1aW50NjRfdCB2bV9zeW5jOw0KPiArCX0gKmJhdGNoX2RhdGEgPSBOVUxMOw0KPiAr CXVpbnQ2NF90ICp1c2VyX2ZlbmNlX3N5bmMgPSBOVUxMOw0KPiArDQo+ICsJZGF0YV9hZGRyID0g Yy0+ZGF0YV9hZGRyOw0KPiArCWJhc2Vfc2l6ZSA9IGMtPnVzZV92cmFtID8gdnJhbV9zaXplIDog c3lzdGVtX3NpemU7DQo+ICsJb3ZlcmNvbW1pdF9zaXplID0gQUxJR04oKHVpbnQ2NF90KShiYXNl X3NpemUgKiBjLQ0KPiA+b3ZlcmNvbW1pdF9tdWx0KSwgNDA5Nik7DQo+ICsNCj4gKwludW1fYm9z ID0gKG92ZXJjb21taXRfc2l6ZSAvIG5mX2JvX3NpemUpICsgMTsNCj4gKwlib3MgPSBjYWxsb2Mo bnVtX2Jvcywgc2l6ZW9mKCpib3MpKTsNCj4gKwlpZ3RfYXNzZXJ0KGJvcyk7DQo+ICsNCj4gKwlp Z3RfZGVidWcoIk92ZXJjb21taXQgdGVzdDogYWxsb2NhdGluZyAlZCBCT3Mgb2YgJWxsdSBNQg0K PiBlYWNoIiwNCj4gKwkJwqAgbnVtX2JvcywgKHVuc2lnbmVkIGxvbmcgbG9uZykobmZfYm9fc2l6 ZSA+PiAyMCkpOw0KPiArCWlndF9kZWJ1ZygidG90YWw9JWxsdSBNQiwgdnJhbT0lbGx1IE1CXG4i LA0KPiArCQnCoCAodW5zaWduZWQgbG9uZyBsb25nKShudW1fYm9zICogbmZfYm9fc2l6ZSA+PiAy MCksDQo+ICsJCcKgICh1bnNpZ25lZCBsb25nIGxvbmcpKHZyYW1fc2l6ZSA+PiAyMCkpOw0KPiAr CS8qIENyZWF0ZSBWTSB3aXRoIGFwcHJvcHJpYXRlIGZsYWdzICovDQo+ICsJdm0gPSB4ZV92bV9j cmVhdGUoZmQsIGMtPnZtX2ZsYWdzLCAwKTsNCj4gKwlpZ3RfYXNzZXJ0KHZtKTsNCj4gKw0KPiAr CWJpbmRfZXhlY19xdWV1ZSA9IHhlX2JpbmRfZXhlY19xdWV1ZV9jcmVhdGUoZmQsIHZtLCAwKTsN Cj4gKwlzeW5jX3NpemUgPSB4ZV9iYl9zaXplKGZkLCBzaXplb2YodWludDY0X3QpICogbnVtX2Jv cyk7DQo+ICsJdXNlcl9mZW5jZV9zeW5jID0gbW1hcChOVUxMLCBzeW5jX3NpemUsIFBST1RfUkVB RCB8DQo+IFBST1RfV1JJVEUsDQo+ICsJCQnCoMKgwqDCoMKgwqAgTUFQX1NIQVJFRCB8IE1BUF9B Tk9OWU1PVVMsIC0xLCAwKTsNCj4gKwlpZ3RfYXNzZXJ0KHVzZXJfZmVuY2Vfc3luYyAhPSBNQVBf RkFJTEVEKTsNCj4gKwltZW1zZXQodXNlcl9mZW5jZV9zeW5jLCAwLCBzeW5jX3NpemUpOw0KPiAr CWV4ZWNfc3luYy0+YWRkciA9IHRvX3VzZXJfcG9pbnRlcigmdXNlcl9mZW5jZV9zeW5jWzBdKTsN Cj4gKw0KPiArCS8qIENyZWF0ZSBhbmQgYmluZCBkYXRhIEJPcyAqLw0KPiArCWFjdHVhbF9zdGFn ZSA9IGNyZWF0ZV9kYXRhX2JvcyhmZCwgdm0sIGJvcywgbnVtX2JvcywNCj4gbmZfYm9fc2l6ZSwg Yy0+dXNlX3ZyYW0sIGRhdGFfYWRkciwNCj4gKwkJCQnCoMKgwqDCoMKgwqAgYy0+Ym9fZmxhZ3Ms IGVjaS0+Z3RfaWQsDQo+ICZudW1fYm91bmQpOw0KPiArCS8qDQo+ICsJICogT24gRVhQRUNUX0NS RUFURSBub3RoaW5nIHdhcyBib3VuZCBzbyBiYWlsIG91dCBlbnRpcmVseS4NCj4gKwkgKiBPbiBF WFBFQ1RfQklORCB3aXRoIG5vIEJPcyBib3VuZCB0aGVyZSBpcyBub3RoaW5nIHRvDQo+IGV4ZWN1 dGUgZWl0aGVyLg0KPiArCSAqIE9uIEVYUEVDVF9CSU5EIHdpdGggc29tZSBCT3MgYm91bmQsIGNv bnRpbnVlIGV4ZWN1dGluZyBzbw0KPiB0aGF0IHRoZQ0KPiArCSAqIGFscmVhZHktYm91bmQgQk9z IGNhbiBzdGlsbCBiZSBleGVjdXRlZCwgdmVyaWZ5aW5nIHRoZXkNCj4gYXJlIHVzYWJsZQ0KPiAr CSAqIGFmdGVyIGEgcGFydGlhbCBiaW5kIGZhaWx1cmUuDQo+ICsJICovDQo+ICsJaWYgKGFjdHVh bF9zdGFnZSA9PSBFWFBFQ1RfQ1JFQVRFIHx8IChhY3R1YWxfc3RhZ2UgPT0NCj4gRVhQRUNUX0JJ TkQgJiYgbnVtX2JvdW5kID09IDApKQ0KPiArCQlnb3RvIGNoZWNrX2FuZF9jbGVhbnVwOw0KPiAr DQo+ICsJLyoNCj4gKwkgKiBDcmVhdGUgYmF0Y2ggYnVmZmVyIGZpcnN0IGluIFNSQU0gYXMgZm9j dXMgaXMgdG8NCj4gKwkgKiBjaGVjayBvdmVyY29tbWl0IGluIFZSQU0NCj4gKwkgKi8NCj4gKwlj cmVhdGVfcmV0ID0gX194ZV9ib19jcmVhdGUoZmQsIHZtLCAweDEwMDAsDQo+IHN5c3RlbV9tZW1v cnkoZmQpLCAwLCBOVUxMLCAmYmF0Y2hfYm8pOw0KPiArCWlndF9hc3NlcnRfZihjcmVhdGVfcmV0 ID09IDAsICJVbmV4cGVjdGVkIGJhdGNoIEJPIGNyZWF0ZQ0KPiBlcnJvciAlZCAoJXMpXG4iLA0K PiArCQnCoMKgwqDCoCBjcmVhdGVfcmV0LCBzdHJlcnJvcihlcnJubykpOw0KPiArDQo+ICsJaWd0 X2RlYnVnKCJNYXBwaW5nIHRoZSBjcmVhdGVkIEJPXG4iKTsNCj4gKwliYXRjaF9kYXRhID0geGVf Ym9fbWFwKGZkLCBiYXRjaF9ibywgMHgxMDAwKTsNCj4gKwlpZ3RfYXNzZXJ0KGJhdGNoX2RhdGEp Ow0KPiArCW1lbXNldChiYXRjaF9kYXRhLCAwLCAweDEwMDApOw0KPiArDQo+ICsJYmluZF91c2Vy cHRyX3N5bmMoZmQsIHZtLCBiaW5kX2V4ZWNfcXVldWUsIHVzZXJfZmVuY2Vfc3luYywNCj4gc3lu Y19hZGRyLCBzeW5jX3NpemUsIGJpbmRfc3luYywNCj4gKwkJCcKgICZiYXRjaF9kYXRhLT52bV9z eW5jKTsNCj4gKwlleGVjX3N5bmMtPmFkZHIgPSBzeW5jX2FkZHI7DQo+ICsJYmF0Y2hfZGF0YS0+ dm1fc3luYyA9IDA7DQo+ICsJYmluZF9lcnIgPSBfX3hlX3ZtX2JpbmRfbHJfc3luYyhmZCwgdm0s IGJhdGNoX2JvLCAwLA0KPiBiYXRjaF9hZGRyLCAweDEwMDAsIDApOw0KPiArCWlmIChiaW5kX2Vy cikgew0KPiArCQlpZiAoZXJybm8gPT0gRU5PTUVNIHx8IGVycm5vID09IEVOT1NQQykgew0KPiAr CQkJYWN0dWFsX3N0YWdlID0gRVhQRUNUX0JJTkQ7DQo+ICsJCQlnb3RvIGNoZWNrX2FuZF9jbGVh bnVwOw0KPiArCQl9IGVsc2UgeyAvKiBBc3NlcnQgb24gYW55IHVuZXhwZWN0ZWQgYmluZCBlcnJv ciAqLw0KPiArCQkJaWd0X2Fzc2VydF9mKDAsICJVbmV4cGVjdGVkIGJpbmQgZXJyb3IgJWQNCj4g KCVzKVxuIiwgYmluZF9lcnIsDQo+ICsJCQkJwqDCoMKgwqAgc3RyZXJyb3IoZXJybm8pKTsNCj4g KwkJfQ0KPiArCX0NCj4gKw0KPiArCWlndF9kZWJ1ZygiVk0gYmluZHMgZG9uZSAtIGJhdGNoX2Jv IGF0IDB4JWxseFxuIiwgKHVuc2lnbmVkDQo+IGxvbmcgbG9uZyliYXRjaF9hZGRyKTsNCj4gKwll eGVjX3F1ZXVlID0geGVfZXhlY19xdWV1ZV9jcmVhdGUoZmQsIHZtLCBlY2ksIDApOw0KPiArDQo+ ICsJLyogVXNlIEdQVSB0byB3cml0ZSB0byBlYWNoIHN1Y2Nlc3NmdWxseSBib3VuZCBCTyAqLw0K PiArCWZvciAoaSA9IDA7IGkgPCBudW1fYm91bmQ7IGkrKykgew0KPiArCQlpZ3RfZGVidWcoIldy aXRpbmcgdG8gQk8gJWQvJWQgdmlhIEdQVVxuIiwgaSArIDEsDQo+IG51bV9ib3MpOw0KPiArCQl0 aW1lb3V0ID0gMjAgKiBOU0VDX1BFUl9TRUM7DQo+ICsNCj4gKwkJZm9yIChvZmYgPSAwOyBvZmYg PCBuZl9ib19zaXplOyBvZmYgKz0gc3RyaWRlKSB7DQo+ICsJCQl1aW50NjRfdCB0YXJnZXRfYWRk ciA9IGRhdGFfYWRkciArDQo+ICgodWludDY0X3QpaSAqIG5mX2JvX3NpemUpICsgb2ZmOw0KPiAr CQkJaW50IGJfaWR4ID0gMDsNCj4gKw0KPiArCQkJYmF0Y2hfZGF0YS0+YmF0Y2hbYl9pZHgrK10g PQ0KPiBNSV9TVE9SRV9EV09SRF9JTU1fR0VONDsNCj4gKwkJCWJhdGNoX2RhdGEtPmJhdGNoW2Jf aWR4KytdID0gdGFyZ2V0X2FkZHIgJg0KPiAweEZGRkZGRkZGOw0KPiArCQkJYmF0Y2hfZGF0YS0+ YmF0Y2hbYl9pZHgrK10gPSAodGFyZ2V0X2FkZHIgPj4NCj4gMzIpICYgMHhGRkZGRkZGRjsNCj4g KwkJCWJhdGNoX2RhdGEtPmJhdGNoW2JfaWR4KytdID0gMHhCQjsNCj4gKwkJCWJhdGNoX2RhdGEt PmJhdGNoW2JfaWR4KytdID0NCj4gTUlfQkFUQ0hfQlVGRkVSX0VORDsNCj4gKw0KPiArCQkJLyog U3VibWl0IGJhdGNoICovDQo+ICsJCQlleGVjLmV4ZWNfcXVldWVfaWQgPSBleGVjX3F1ZXVlOw0K PiArCQkJZXhlYy5hZGRyZXNzID0gYmF0Y2hfYWRkcjsNCj4gKw0KPiArCQkJaWYgKGlndF9pb2N0 bChmZCwgRFJNX0lPQ1RMX1hFX0VYRUMsICZleGVjKSkNCj4gew0KPiArCQkJCWlmIChlcnJubyA9 PSBFTk9NRU0gfHwgZXJybm8gPT0NCj4gRU5PU1BDKSB7DQo+ICsJCQkJCWlndF9kZWJ1ZygiRXhw ZWN0ZWQNCj4gZmF1bHQvZXJyb3I6ICVkICglcylcbiIsDQo+ICsJCQkJCQnCoCBlcnJubywNCj4g c3RyZXJyb3IoZXJybm8pKTsNCj4gKwkJCQkJYWN0dWFsX3N0YWdlID0gRVhQRUNUX0VYRUM7DQo+ ICsJCQkJCWdvdG8gY2hlY2tfYW5kX2NsZWFudXA7DQo+ICsJCQkJfQ0KPiArCQkJCWlndF9hc3Nl cnRfZigwLCAiVW5leHBlY3RlZCBleGVjDQo+IGVycm9yOiAlZFxuIiwgZXJybm8pOw0KPiArCQkJ fQ0KPiArCQkJd2FpdF9yZXQgPSBfX3hlX3dhaXRfdWZlbmNlKGZkLA0KPiAmdXNlcl9mZW5jZV9z eW5jWzBdLA0KPiArCQkJCQkJwqDCoMKgDQo+IFVTRVJfRkVOQ0VfVkFMVUUsIGV4ZWNfcXVldWUs ICZ0aW1lb3V0KTsNCj4gKwkJCS8qDQo+ICsJCQkgKiBFSU8gbWVhbnMgdGhlIGV4ZWMgcXVldWUg d2FzIGJhbm5lZCBkdWUNCj4gdG8gVlJBTQ0KPiArCQkJICogZXhoYXVzdGlvbiBpbiBub24tZmF1 bHQgbW9kZSBhZnRlcg0KPiBwYXJ0aWFsIGJpbmQuDQo+ICsJCQkgKi8NCj4gKwkJCWlmICh3YWl0 X3JldCA9PSAtRUlPKSB7DQo+ICsJCQkJaWd0X2Fzc2VydF9mKGMtPmV4cGVjdGVkX3N0YWdlID09 DQo+IEVYUEVDVF9CSU5EIHx8DQo+ICsJCQkJCcKgwqDCoMKgIGMtPmV4cGVjdGVkX3N0YWdlID09 DQo+IEVYUEVDVF9FWEVDLA0KPiArCQkJCQnCoMKgwqDCoCAiVW5leHBlY3RlZCBxdWV1ZQ0KPiBy ZXNldFxuIik7DQo+ICsJCQkJYWN0dWFsX3N0YWdlID0gRVhQRUNUX0VYRUM7DQo+ICsJCQkJZ290 byBjaGVja19hbmRfY2xlYW51cDsNCj4gKwkJCX0NCj4gKwkJCWlndF9hc3NlcnRfZXEod2FpdF9y ZXQsIDApOw0KPiArCQkJdXNlcl9mZW5jZV9zeW5jWzBdID0gMDsNCj4gKwkJfQ0KPiArCQlpZ3Rf ZGVidWcoIkFjY2Vzc2VkIEJPICVkLyVkIHZpYSBHUFVcbiIsIGkgKyAxLA0KPiBudW1fYm9zKTsN Cj4gKwl9DQo+ICsJaWd0X2RlYnVnKCJBbGwgYmF0Y2hlcyBzdWJtaXR0ZWQgLSB3YWl0aW5nIGZv ciBHUFUNCj4gY29tcGxldGlvblxuIik7DQo+ICsNCj4gKwkvKiBWZXJpZnkgR1BVIHdyaXRlcyBm b3IgYm91bmQgQk9zICovDQo+ICsJaWYgKGFjdHVhbF9zdGFnZSA9PSBFWFBFQ1RfTk9ORSB8fCAo YWN0dWFsX3N0YWdlID09DQo+IEVYUEVDVF9CSU5EICYmIG51bV9ib3VuZCA+IDApKQ0KPiArCQl2 ZXJpZnlfYm8oZmQsIGJvcywgbnVtX2JvdW5kLCBuZl9ib19zaXplLCBzdHJpZGUpOw0KPiArDQo+ ICtjaGVja19hbmRfY2xlYW51cDoNCj4gKwlpZ3RfYXNzZXJ0X2YoYWN0dWFsX3N0YWdlID09IGMt PmV4cGVjdGVkX3N0YWdlLCAiRXhwZWN0ZWQNCj4gb3ZlcmNvbW1pdCBhdCBzdGFnZSAlZCwgZ290 ICVkXG4iLA0KPiArCQnCoMKgwqDCoCBjLT5leHBlY3RlZF9zdGFnZSwgYWN0dWFsX3N0YWdlKTsN Cj4gKwkvKiBDbGVhbnVwICovDQo+ICsJaWYgKGV4ZWNfcXVldWUpDQo+ICsJCXhlX2V4ZWNfcXVl dWVfZGVzdHJveShmZCwgZXhlY19xdWV1ZSk7DQo+ICsJaWYgKGJpbmRfZXhlY19xdWV1ZSkNCj4g KwkJeGVfZXhlY19xdWV1ZV9kZXN0cm95KGZkLCBiaW5kX2V4ZWNfcXVldWUpOw0KPiArCWlmIChi YXRjaF9kYXRhKQ0KPiArCQltdW5tYXAoYmF0Y2hfZGF0YSwgMHgxMDAwKTsNCj4gKwlpZiAoYmF0 Y2hfYm8pDQo+ICsJCWdlbV9jbG9zZShmZCwgYmF0Y2hfYm8pOw0KPiArDQo+ICsJaWYgKHVzZXJf ZmVuY2Vfc3luYykNCj4gKwkJbXVubWFwKHVzZXJfZmVuY2Vfc3luYywgc3luY19zaXplKTsNCj4g Kw0KPiArCWlmIChib3MpIHsNCj4gKwkJZm9yIChpID0gMDsgaSA8IG51bV9ib3M7IGkrKykgew0K PiArCQkJaWYgKGJvc1tpXSkNCj4gKwkJCQlnZW1fY2xvc2UoZmQsIGJvc1tpXSk7DQo+ICsJCX0N Cj4gKwkJZnJlZShib3MpOw0KPiArCX0NCj4gKwlpZiAodm0gPiAwKQ0KPiArCQl4ZV92bV9kZXN0 cm95KGZkLCB2bSk7DQo+ICt9DQo+ICsNCj4gwqAvKioNCj4gwqAgKiBTVUJURVNUOiBvdXQtb2Yt bWVtb3J5DQo+IMKgICogRGVzY3JpcHRpb246IFRlc3QgaWYgdm1fYmluZCBpb2N0bCByZXN1bHRz IGluIG9vbQ0KPiBAQCAtMjM4NSw3ICsyNzYzLDYgQEAgc3RhdGljIHZvaWQgaW52YWxpZF92bV9p ZChpbnQgZmQpDQo+IMKgICovDQo+IMKgc3RhdGljIHZvaWQgdGVzdF9vb20oaW50IGZkKQ0KPiDC oHsNCj4gLSNkZWZpbmUgVVNFUl9GRU5DRV9WQUxVRSAweGRlYWRiZWVmZGVhZGJlZWZ1bGwNCj4g wqAjZGVmaW5lIEJPX1NJWkUgeGVfYmJfc2l6ZShmZCwgU1pfNTEyTSkNCj4gwqAjZGVmaW5lIE1B WF9CVUZTICgoaW50KSh4ZV92aXNpYmxlX3ZyYW1fc2l6ZShmZCwgMCkgLyBCT19TSVpFKSkNCj4g wqAJdWludDY0X3QgYWRkciA9IDB4MWEwMDAwOw0KPiBAQCAtMzExNSw2ICszNDkyLDE4IEBAIGlu dCBpZ3RfbWFpbigpDQo+IMKgCQkJdGVzdF9nZXRfcHJvcGVydHkoZmQsIGYtPnRlc3QpOw0KPiDC oAl9DQo+IMKgDQo+ICsJZm9yIChpbnQgaSA9IDA7IG92ZXJjb21taXRfY2FzZXNbaV0ubmFtZTsg aSsrKSB7DQo+ICsJCWNvbnN0IHN0cnVjdCB2bV9vdmVyY29tbWl0X2Nhc2UgKmMgPQ0KPiAmb3Zl cmNvbW1pdF9jYXNlc1tpXTsNCj4gKwkJY29uc3QgY2hhciAqbW9kZSA9IChjLT52bV9mbGFncyAm DQo+IERSTV9YRV9WTV9DUkVBVEVfRkxBR19GQVVMVF9NT0RFKSA/DQo+ICsJCQkJCSJmYXVsdCIg OiAibm9uZmF1bHQiOw0KPiArCQlpZ3Rfc3VidGVzdF9mKCJvdmVyY29tbWl0LSVzLSVzIiwgbW9k ZSwgYy0+bmFtZSkgew0KPiArCQkJaWd0X3JlcXVpcmUoeGVfaGFzX3ZyYW0oZmQpKTsNCj4gKwkJ CWlndF9yZXF1aXJlKHhlX3Zpc2libGVfdnJhbV9zaXplKGZkLCAwKSk7DQo+ICsJCQl0ZXN0X3Zt X292ZXJjb21taXQoZmQsIGh3ZV9ub25fY29weSwgYywNCj4gKGlndF9nZXRfYXZhaWxfcmFtX21i KCkgPDwgMjApLA0KPiArCQkJCQnCoMKgIHhlX3Zpc2libGVfdnJhbV9zaXplKGZkLA0KPiAwKSk7 DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4gwqAJaWd0X2ZpeHR1cmUoKQ0KPiDCoAkJZHJtX2Nsb3Nl X2RyaXZlcihmZCk7DQo+IMKgfQ0K