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 24CD1C47258 for ; Thu, 25 Jan 2024 18:49:28 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 922F410E6DE; Thu, 25 Jan 2024 18:49:24 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id C021C10E6DE for ; Thu, 25 Jan 2024 18:49:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706208562; x=1737744562; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=iPli7pLH7+7zZGHCJ8QFJhhdK4wN4LwzVye9Vgy07x0=; b=MJpxlLxo6EShfI6yqLe6n7MZV3CczWuqNfqGoRT5MXktehgAbKRRpUug jcsnfpkwLsskdDnqwFkLCYNkYNMPOwNAEXt7UWIXQmINfd9oBv0t3LL6G 4u9cwu2T7BOwhWFEfwi90vTcUGtG/kMpQ3MGIqrVYemxk6wFv17KnQT63 bDEI+sj1ak+BhwKsx6CM3vHjDIat1WHUQnGMUIs9T9Hl5TECZLCDdrEJW pD3Oypo2y0GxARibLsrZrKaoykSuu/3SB8X11KKl0VpxbOyKqJz8sjIYq g5iKp6iqgaNoCoSASF0p5lOMCpvKB4M/YqPuq3x+olEpbzF+Ut5bjb+5L g==; X-IronPort-AV: E=McAfee;i="6600,9927,10964"; a="433410153" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="433410153" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2024 10:49:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10964"; a="877135002" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="877135002" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Jan 2024 10:49:22 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 25 Jan 2024 10:49:21 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 25 Jan 2024 10:49:21 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 25 Jan 2024 10:49:21 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 25 Jan 2024 10:49:20 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gBOOQWAzDjNNdgWRsr5zm/QtMm5iN2UN22KzYD77BfMDTXaCNyxRQsNOFOy02yH4V6ELyYzI2SRp9hzwKQtd9/0T7yOGfKN0ifGUNd7d2hnGArHcvBeEtRpvi+hO0JmxQ+CFKxmeo3RJniQ1jEfLJQymJnMNsIpi3td5deg/mr0mBHPMOUrZGOdiojW8kLoLpZZpj79iDukDFndXD9pwKvUUdqyPdGrCLhj+UAGfy/p0np6da5D8A0+3SQ30yfD8QoLJZcZPX3SypfMjSsKp+jtFbZc1DG44zv6e3j6ifgDqsWCXA6tX5nROkOqAuRR0ZzTOCfnVBxeV4Lcg8LQWkg== 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=iPli7pLH7+7zZGHCJ8QFJhhdK4wN4LwzVye9Vgy07x0=; b=FgSReh9RwJdRfqHpMYG97NTLsjLkoxot4tR0QCYE5GpnZFassldHZzQUHYoYiRcFwK7qJk3rEcxdR4FombtpsZ7Hkx5eLdYm6gyftp9KY5uZOyVx/bv0KaBHaC6CWpcHVaWoNXpHSnvWO9v/bBP4WQSpo3yaQvPYnc2mGWkHZT45FtSXs6LmfO7akTCCsOQjmjfxKWDihBvX1eV+LzgYQU1CwASo+/k6xGWYT4+dVELFt+iy62tkUR+JM0TbLLnRqBYgh4cJx2nAGP3OlfGXA9qE4ZqIhw6ij0lGleYsMfslzlcXEE+iX1wIWR/rAlYPZFNoFMsRWXPhhXrT0soP8A== 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 DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) by SJ2PR11MB8568.namprd11.prod.outlook.com (2603:10b6:a03:56c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22; Thu, 25 Jan 2024 18:49:18 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::98c3:e090:252e:7967]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::98c3:e090:252e:7967%4]) with mapi id 15.20.7202.034; Thu, 25 Jan 2024 18:49:18 +0000 From: "Souza, Jose" To: "intel-xe@lists.freedesktop.org" , "maarten.lankhorst@linux.intel.com" Subject: Re: [PATCH 4/4] drm/xe: Implement VM snapshot support for BO's and userptr, v2. Thread-Topic: [PATCH 4/4] drm/xe: Implement VM snapshot support for BO's and userptr, v2. Thread-Index: AQHaTubsjml267hMSkqo2okdo3HxX7Dq3baAgAAC34A= Date: Thu, 25 Jan 2024 18:49:18 +0000 Message-ID: <4a349d49a6e3c0840e91c8109596c7fdbc79b8e4.camel@intel.com> References: <20240124165245.2660-1-maarten.lankhorst@linux.intel.com> <20240124165245.2660-4-maarten.lankhorst@linux.intel.com> In-Reply-To: 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: DM4PR11MB8179:EE_|SJ2PR11MB8568:EE_ x-ms-office365-filtering-correlation-id: 2e8d1a10-de4b-40b3-c554-08dc1dd655e4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MUH+z7D/BWJmMHboN2vAkuzmg24/7GhsJ8aLVZMjeP29W+YWie1QloUCkePbsX5NwV0eXpoBFA3Wyoskt1GjZNBrrhWss4lVP061X2o0zzm9A8nbiUWqtrXx2sD9ZUkdvN5qHSTBYOPWe+k+19Mtu3PW566nwBtYv7GeiQhidMY8aDhN5PC1QHqweP9Mc6smWUSRjyIgblRDFeisD2s/CEDBaU+ci83flTds5RDao6rWSTZFDX5WCjj/oE4wBu4dWWhUJYhVuBJ3oR0Ny6sSWYKRt/yfwUr4NW6P6LOn9R8ngx3s8YOS2iH+A+Ze/c5hn8Blezwezl/N789OewjuVjH9zKP84xCWIqnX9nn2LvIfGJQSqoFkxk57wnwNEmpnLEVKdxNA/lm4yfTodVi0B3sjQz4xBXBo5z6kVAfiSpO5BBBvwAWNlzNo4CoSeam/zRfxhKY4laBTu2kViWO+eo0n4v0zYWu8lIPoDu2Sk9H3nIAsWP6KQ7UNnIM/f3iVZkdPFz6A3Y6sHOzaCh1LxIspxH1beeBiKgIMf2w8R0M4o0L/JJEpB4pTK7mmm5Y+8tSDQb2tHynp/8Pk1+BHuFhzOMmRzDFycaIuhM8wR16e8RQ5uVHHr41TudrYcIiNkrsGXpQihqWNam/tNpxSrldyVYHrY8ETEdSaFY0i7h0= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB8179.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(396003)(376002)(346002)(39860400002)(136003)(230173577357003)(230273577357003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(38070700009)(6486002)(6512007)(71200400001)(6506007)(2616005)(76116006)(91956017)(110136005)(26005)(66446008)(316002)(66556008)(66476007)(64756008)(66946007)(8676002)(83380400001)(8936002)(478600001)(5660300002)(30864003)(2906002)(122000001)(38100700002)(41300700001)(45080400002)(82960400001)(86362001)(36756003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UjV1WDlPS2pwa3RlMnNqQW1sZCsxNnhHblBwUXpoNnZSc0lXTUVNK1RwOUdz?= =?utf-8?B?ZEVoaUhsUlhsL0dwcTVjc2JJVWxieUJtUXJycmwweEpCTEtnTVJwWlBaMDl3?= =?utf-8?B?VjQyaWNTYk1kaGVlMUFlWkJLbE1lYTNhTHVBTTAzbE5hbGZjTVYwMlN4am1N?= =?utf-8?B?RGg2Zmtub1pLRkNqWC9QRS9qOUlHTHpuWE9KRlhjbTVVR295eG1MeTZDemJU?= =?utf-8?B?b1pLZUw5aDR4c013TDU1MTh6cVNNVmowNERHVFNaUDJCNXlOd2RGdjRhN0Q3?= =?utf-8?B?TUFXWms2MFdUS2pEZFA3Ny9zeGxYc2JPcmo2TVJza1RCb2xIZEVOY0NmdHlo?= =?utf-8?B?L0ZEdlBPUmlEUUVCUllWQ2Ftci93MVV2NFZIVmhNdFJ0azhjWmVNb3BRamUv?= =?utf-8?B?ZWxJamZJZWoxNnF0K3JJd3QybUNIOWplbWVILzZ2QUlIVXVLZENpNmJaZEx0?= =?utf-8?B?eGgvVkVaM2hodlRqYU1YVGo5QW1vY1pHTG9VaTR4UkVyRjVXVzRzaEZwMnRK?= =?utf-8?B?TnViTW5aeWxxbmJaM3E5U0FXWVJLRktSYTkrVjZTSkE4clpKWkI3K0o1Y0oy?= =?utf-8?B?N3pSOVhidWYxWjhxOW40RnN6djFybTRrYjZIRVFtVndsYkxJZmxsaVBGKzlo?= =?utf-8?B?ZEo0dXdzbXRZcEM1aldjdjFMN29rNTUrdlpBV1ZZTU1YanE4YkNDMFJ4ZHdi?= =?utf-8?B?ejdkZTQ4cTJvL1RGaGpudk1yTWZBTzFjRkpHSkhuNW5ZTldmaW1oU0RaQld0?= =?utf-8?B?ZkhZQTZrek5Gb2dDWkk0QXB2eFlqcStpaWF3VjN6MnBGMDlVeHM3ZUlqOEpQ?= =?utf-8?B?M1l1UTMrZjNqZnVnNWlNYXlSd3p4aDlNazdUMGJJbzFWZGFnYUlHM3FaVmhS?= =?utf-8?B?bENERHBaeEdkaitQNWM5Y3NLcG9RdVhjK2N0Uy9oZHgzcHZtd3JnaE0xZys5?= =?utf-8?B?c2l6bU9ZbExZMHRwRCtxTG8rK05oTTlXbmVyR0d3aVZFVjFiL09jb2k4T2dm?= =?utf-8?B?akVNc05CY1dMR3lha09kTS84K3ArVWRSQkpjQm5uYVBnQjVuL0lzNWhaMXd2?= =?utf-8?B?VngxNERBWlE2WEJ5ekREWDQ2eXB0SmFrWnZBK1YzMklTSnNMaDRuZlZoQm91?= =?utf-8?B?bGM3NEdIZStXQVB4Ni9JbDBTL1FQQWs2TmZMcmJsSFo5NCtyN3JIcjFIR2Ji?= =?utf-8?B?a2wyN1pqRnl2RnZ4anpqNXN4YmNuSXF3UVBJNWU0NXl4cHRwaHExL2lGZ00v?= =?utf-8?B?cVR3SWwvMWpXVWFFeVhoM2IwaDRxUVJVRzhSd1VSOUwvdTRkWFhxWHNuR0V6?= =?utf-8?B?cFpySklodDJIUkRJdmRvdWw4S1J1aUlEK1lYaCtEZVNoU09NeHVFZ2IwSGZq?= =?utf-8?B?alVKclUvVzJNT212ekJJREdmcy9zUnRjSmljNXhxTTI0Tk1FcmIvaEVZVFdB?= =?utf-8?B?YkxweTNYa1FuRE1Wc3hNZFhSNTBucW9QSHFJWjRXcE1HNSszNDE5SUxoRTg0?= =?utf-8?B?RlMwaTJGelBuT2xGTnBQaW81cXFQNHZsNGFYWE9FSk10OHYxWTRWNTBmeG9o?= =?utf-8?B?N0ZDbzVaMys4c3ZpMVU3YVdVRHRjdVRCL0lKNzRjYXVsN01TSWFLeTFOUGVn?= =?utf-8?B?Q2gxNnVBQWpYVjNkRi9NMHJkZE1TYTRKQ0JnNXo0QXNMRjEzZnkyTDI0Vk5K?= =?utf-8?B?TjFCYkFwcmJIaFBYdGVpVWJtdUpxZFYzZVI0S0QvTnRzVC9sYjJBSGU4Q2xK?= =?utf-8?B?SE02Z2NJbTIvb2tnZldlVHBwMWlrVDBBZEZkajc1cy9VajN2RWNCb1dLNjNu?= =?utf-8?B?QVZwTHJEYzlwMjQzK3NvQ1ptdWlyRmIxQndSd1MxbU0xZ1RzYUlCWlRjZUxX?= =?utf-8?B?SEZ6V2JrUDc0V1h1UG0rZVloNEJnbFhvZGtCQTMvRi9ncmpPN1l6OUdtN2Zi?= =?utf-8?B?cEJmZFV3Mmo2Ti8xK1hwTGQ5bWJyY0Z0M2RVb1hJZ29Xd0tqRVRSUUMyT0NR?= =?utf-8?B?ZVBMQnVZRWtKVHNjQ0tENjVxdW5uWTk0cFFHdVI2THJtcHhqcFNiTFk0MlQz?= =?utf-8?B?Q3Z3WElTc2RjUlVNTFY3MDZyTDVxcGFCYXVWRXJLOXpVMlJURHBaWlltVzF2?= =?utf-8?B?ZzczMWNUOFZ2OWkvdDhFV1dKWDAxQ2hsZWpUclhhbXFCeFJQaDk5bDJ5NVEy?= =?utf-8?B?aEE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <90F837ED4E400A41952D4E3AC26867DF@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB8179.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e8d1a10-de4b-40b3-c554-08dc1dd655e4 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 18:49:18.0557 (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: tnnGWfDqAzOSpLMd1StkwEUobcHTi9C7w9SrejELIvjB/CAaLLqr/sh0zBzSdio/GYihjdPAAcNC0RTQk7WEeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB8568 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gVGh1LCAyMDI0LTAxLTI1IGF0IDE4OjM5ICswMDAwLCBTb3V6YSwgSm9zZSB3cm90ZToNCj4g T24gV2VkLCAyMDI0LTAxLTI0IGF0IDE3OjUyICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToNCj4gPiBTaW5jZSB3ZSBjYW5ub3QgaW1tZWRpYXRlbHkgY2FwdHVyZSB0aGUgQk8ncyBhbmQg dXNlcnB0ciwgcGVyZm9ybSBpdCBpbg0KPiA+IDIgc3RhZ2VzLiBUaGUgaW1tZWRpYXRlIHN0YWdl IHRha2VzIGEgcmVmZXJlbmNlIHRvIGVhY2ggQk8gYW5kIHVzZXJwdHIsDQo+ID4gd2hpbGUgYSBk ZWxheWVkIHdvcmtlciBjYXB0dXJlcyB0aGUgY29udGVudHMgYW5kIHRoZW4gZnJlZXMgdGhlDQo+ ID4gcmVmZXJlbmNlLg0KPiA+IA0KPiA+IFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBpbiBzaWdu YWxpbmcgY29udGV4dCwgbm8gbG9ja3MgY2FuIGJlIHRha2VuLCBubw0KPiA+IG1lbW9yeSBjYW4g YmUgYWxsb2NhdGVkLCBhbmQgbm8gd2FpdHMgb24gdXNlcnNwYWNlIGNhbiBiZSBwZXJmb3JtZWQu DQo+ID4gDQo+ID4gV2l0aCB0aGUgZGVsYXllZCB3b3JrZXIsIGFsbCBvZiB0aGlzIGNhbiBiZSBw ZXJmb3JtZWQgdmVyeSBlYXNpbHksDQo+ID4gd2l0aG91dCBoYXZpbmcgdG8gcmVzb3J0IHRvIGhh Y2tzLg0KPiA+IA0KPiA+IENoYW5nZXMgc2luY2UgdjE6DQo+ID4gLSBGaXggY3Jhc2ggb24gTlVM TCBjYXB0dXJlZCB2bS4NCj4gPiAtIFVzZSBhc2NpaTg1X2VuY29kZSB0byBjYXB0dXJlIEJPIGNv bnRlbnRzIGFuZCBzYXZlIHNvbWUgc3BhY2UuIChKb3NlDQo+ID4gICBTb3V6YSkNCj4gPiAtIEFk ZCBsZW5ndGggdG8gY29yZWR1bXAgb3V0cHV0IGZvciBlYWNoIGNhcHR1cmVkIGFyZWEuDQoNCkp1 c3QgcmVwcm9kdWNlIHRoZSBiZWxvdyB3aGlsZSBydW5uaW5nIHBpZ2xpdCB0ZXN0cy4NCg0KPiAN Cj4gWyAgMjIyLjQ3NDg3M10geGUgMDAwMDowMDowMi4wOiBbZHJtOmludGVsX3Bwc192ZGRfb2Zm X3N5bmNfdW5sb2NrZWQgW3hlXV0gW0VOQ09ERVI6MzA3OkRESSBBL1BIWSBBXSBQUFMgMCBQUF9T VEFUVVM6IDB4ODAwMDAwMDggUFBfQ09OVFJPTDoNCj4gMHgwMDAwMDA2Nw0KPiBbICAyNjYuNDYy MzcxXSB4ZSAwMDAwOjAwOjAyLjA6IFtkcm1dIFRpbWVkb3V0IGpvYjogc2Vxbm89NDI5NDk2NzE2 OSwgZ3VjX2lkPTIsIGZsYWdzPTB4OA0KPiBbICAyNjYuNDYyOTEyXSAtLS0tLS0tLS0tLS1bIGN1 dCBoZXJlIF0tLS0tLS0tLS0tLS0NCj4gWyAgMjY2LjQ2MjkxMl0gaXJxIGV2ZW50IHN0YW1wOiAx ODg5OTQNCj4gWyAgMjY2LjQ2MjkyM10gaGFyZGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoMTg4OTkz KTogWzxmZmZmZmZmZjgxZDJlMmNhPl0gX3Jhd19yZWFkX3VubG9ja19pcnFyZXN0b3JlKzB4NGEv MHg3MA0KPiBbICAyNjYuNDYyOTQ4XSBERUJVR19MT0NLU19XQVJOX09OKGxvY2stPm1hZ2ljICE9 IGxvY2spDQo+IFsgIDI2Ni40NjI5NTldIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDE4ODk5 NCk6IFs8ZmZmZmZmZmY4MWQyZGIxYT5dIF9yYXdfc3Bpbl9sb2NrX2lycXNhdmUrMHg0YS8weDUw DQo+IFsgIDI2Ni40NjI5ODhdIFdBUk5JTkc6IENQVTogMiBQSUQ6IDkxOCBhdCBrZXJuZWwvbG9j a2luZy9tdXRleC5jOjU4NyBfX211dGV4X2xvY2srMHg1MGQvMHhiODANCj4gWyAgMjY2LjQ2MzAw MV0gc29mdGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoMTg4OTg4KTogWzxmZmZmZmZmZjgxYjdhNWI0 Pl0gdGNwX3NlbmRtc2crMHgxNC8weDQwDQo+IFsgIDI2Ni40NjMwMzFdIE1vZHVsZXMgbGlua2Vk IGluOg0KPiBbICAyNjYuNDYzMDU1XSBzb2Z0aXJxcyBsYXN0IGRpc2FibGVkIGF0ICgxODg5ODYp OiBbPGZmZmZmZmZmODFhYzQ2MDc+XSBsb2NrX3NvY2tfbmVzdGVkKzB4NDcvMHg3MA0KPiBbICAy NjYuNDYzMDgzXSAgeGUgZHJtX3R0bV9oZWxwZXIgZ3B1X3NjaGVkIGRybV9zdWJhbGxvY19oZWxw ZXIgZHJtX2dwdXZtIGRybV9leGVjIGkyY19hbGdvX2JpdCBkcm1fYnVkZHkgdmlkZW8gZHJtX2Rp c3BsYXlfaGVscGVyIHR0bQ0KPiBzbmRfaGRhX2NvZGVjX2hkbWkgc25kX2N0bF9sZWQgbGVkdHJp Z19hdWRpbyBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgc25kX2hkYV9jb2RlY19nZW5lcmljIG1laV9o ZGNwIG1laV9weHAgd21pX2Jtb2Ygc25kX2hkYV9pbnRlbCB4ODZfcGtnX3RlbXBfdGhlcm1hbA0K PiBzbmRfaW50ZWxfZHNwY2ZnIHNuZF9oZGFfY29kZWMgc25kX2h3ZGVwIGNvcmV0ZW1wIHNuZF9o ZGFfY29yZSBlMTAwMGUgY3JjdDEwZGlmX3BjbG11bCBjcmMzMl9wY2xtdWwgZ2hhc2hfY2xtdWxu aV9pbnRlbCBrdm1faW50ZWwgc25kX3BjbSBwdHAgbWVpX21lDQo+IGkyY19pODAxIHBwc19jb3Jl IGkyY19zbWJ1cyBtZWkgaW50ZWxfcG1jX2NvcmUgaW50ZWxfdnNlYyBwbXRfdGVsZW1ldHJ5IHdt aSBwbXRfY2xhc3MgZnVzZSBbbGFzdCB1bmxvYWRlZDogdHRtXQ0KPiBbICAyNjYuNDYzMjk4XSBD UFU6IDIgUElEOiA5MTggQ29tbToga3dvcmtlci91MTY6NSBOb3QgdGFpbnRlZCA2LjguMC1yYzEt emVoLXhlKyAjMTIxMg0KPiBbICAyNjYuNDYzMzE1XSBIYXJkd2FyZSBuYW1lOiBEZWxsIEluYy4g TGF0aXR1ZGUgNTQyMC8wMU0zTTQsIEJJT1MgMS4yNy4wIDAzLzE3LzIwMjMNCj4gWyAgMjY2LjQ2 MzMyOF0gV29ya3F1ZXVlOiBndC1vcmRlcmVkLXdxIGRybV9zY2hlZF9qb2JfdGltZWRvdXQgW2dw dV9zY2hlZF0NCj4gWyAgMjY2LjQ2MzM0N10gUklQOiAwMDEwOl9fbXV0ZXhfbG9jaysweDUwZC8w eGI4MA0KPiBbICAyNjYuNDYzMzYwXSBDb2RlOiBmZiA4NSBjMCAwZiA4NCA3ZCBmYiBmZiBmZiA4 YiAxNSBkMiBlYSBiYSAwMCA4NSBkMiAwZiA4NSA2ZiBmYiBmZiBmZiA0OCBjNyBjNiBiNiA0MSAz YSA4MiA0OCBjNyBjNyA1ZiBkMSAzOSA4MiBlOCBhMyAxYiA0MCBmZg0KPiA8MGY+IDBiIGU5IDU1 IGZiIGZmIGZmIDMxIGM5IDMxIGQyIDRjIDg5IGU3IGU4IGIwIDgwIDQ3IGZmIDg0IGMwIDBmDQo+ IFsgIDI2Ni40NjM0MDVdIFJTUDogMDAxODpmZmZmYzkwMDAyMmJiYzMwIEVGTEFHUzogMDAwMTAy ODINCj4gWyAgMjY2LjQ2MzQxNV0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAw MDAwMDAwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDANCj4gWyAgMjY2LjQ2MzQyOF0gUkRYOiAwMDAw MDAwMDAwMDAwMDAyIFJTSTogMDAwMDAwMDAwMDAwMDAyNyBSREk6IDAwMDAwMDAwZmZmZmZmZmYN Cj4gWyAgMjY2LjQ2MzQ0MF0gUkJQOiBmZmZmYzkwMDAyMmJiY2MwIFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDANCj4gWyAgMjY2LjQ2MzQ1Ml0gUjEwOiBmZmZmZmZm ZjgxMWJkZWRmIFIxMTogMDAwMDAwMDAwMDAwMDAwMSBSMTI6IGZmZmY4ODgxM2ZkODhjYTgNCj4g WyAgMjY2LjQ2MzQ2NF0gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZjg4ODEzZmQ4ODgz OCBSMTU6IGZmZmY4ODgxNDQzOGZhMDANCj4gWyAgMjY2LjQ2MzQ3Nl0gRlM6ICAwMDAwMDAwMDAw MDAwMDAwKDAwMDApIEdTOmZmZmY4ODgyODc5MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAw MDAwMA0KPiBbICAyNjYuNDYzNDg5XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAw MDAwMDAwMDgwMDUwMDMzDQo+IFsgIDI2Ni40NjM0OTldIENSMjogMDAwMDdmODRkYWQ5ZGJjOCBD UjM6IDAwMDAwMDAwMDU2NGEwMDUgQ1I0OiAwMDAwMDAwMDAwNzcwZWYwDQo+IFsgIDI2Ni40NjM1 MTFdIFBLUlU6IDU1NTU1NTU0DQo+IFsgIDI2Ni40NjM1MTldIENhbGwgVHJhY2U6DQo+IFsgIDI2 Ni40NjM1MjZdICA8VEFTSz4NCj4gWyAgMjY2LjQ2MzUzMl0gID8gX19tdXRleF9sb2NrKzB4NTBk LzB4YjgwDQo+IFsgIDI2Ni40NjM1NDJdICA/IF9fd2FybisweDdjLzB4MTcwDQo+IFsgIDI2Ni40 NjM1NTJdICA/IF9fbXV0ZXhfbG9jaysweDUwZC8weGI4MA0KPiBbICAyNjYuNDYzNTcyXSAgPyBy ZXBvcnRfYnVnKzB4MTg5LzB4MWMwDQo+IFsgIDI2Ni40NjM1ODhdICA/IGhhbmRsZV9idWcrMHgz Ni8weDcwDQo+IFsgIDI2Ni40NjM2MDRdICA/IGV4Y19pbnZhbGlkX29wKzB4MTMvMHg2MA0KPiBb ICAyNjYuNDYzNjIwXSAgPyBhc21fZXhjX2ludmFsaWRfb3ArMHgxNi8weDIwDQo+IFsgIDI2Ni40 NjM2MzldICA/IGNvbnNvbGVfZmx1c2hfYWxsKzB4MWVmLzB4NTQwDQo+IFsgIDI2Ni40NjM2NThd ICA/IF9fbXV0ZXhfbG9jaysweDUwZC8weGI4MA0KPiBbICAyNjYuNDYzNjc0XSAgPyBfX3NsYWJf YWxsb2MuaXNyYS4wKzB4NGQvMHg5MA0KPiBbICAyNjYuNDYzNjk2XSAgPyBfX3NsYWJfYWxsb2Mu aXNyYS4wKzB4NWEvMHg5MA0KPiBbICAyNjYuNDYzNzEzXSAgPyB4ZV92bV9zbmFwc2hvdF9jYXB0 dXJlKzB4MzUvMHgxZjAgW3hlXQ0KPiBbICAyNjYuNDYzODI3XSAgPyByY3VfaXNfd2F0Y2hpbmcr MHhkLzB4NDANCj4gWyAgMjY2LjQ2Mzg0Nl0gID8gX19rbWFsbG9jKzB4MmJkLzB4NDAwDQo+IFsg IDI2Ni40NjM4NjRdICA/IHhlX3ZtX3NuYXBzaG90X2NhcHR1cmUrMHgzNS8weDFmMCBbeGVdDQo+ IFsgIDI2Ni40NjM5NzBdICB4ZV92bV9zbmFwc2hvdF9jYXB0dXJlKzB4MzUvMHgxZjAgW3hlXQ0K PiBbICAyNjYuNDY0MDcxXSAgPyB4ZV9zY2hlZF9qb2Jfc25hcHNob3RfY2FwdHVyZSsweDY0LzB4 ODAgW3hlXQ0KPiBbICAyNjYuNDY0MTQzXSAgeGVfZGV2Y29yZWR1bXArMHgxYjkvMHgyZTAgW3hl XQ0KPiBbICAyNjYuNDY0MTk0XSAgZ3VjX2V4ZWNfcXVldWVfdGltZWRvdXRfam9iKzB4MWFiLzB4 NzMwIFt4ZV0NCj4gWyAgMjY2LjQ2NDI1MF0gID8gZmluZF9oZWxkX2xvY2srMHgyYi8weDgwDQo+ IFsgIDI2Ni40NjQyNjJdICBkcm1fc2NoZWRfam9iX3RpbWVkb3V0KzB4NzcvMHhlMCBbZ3B1X3Nj aGVkXQ0KPiBbICAyNjYuNDY0Mjc5XSAgPyBwcm9jZXNzX29uZV93b3JrKzB4MThkLzB4NGQwDQo+ IFsgIDI2Ni40NjQyOTBdICBwcm9jZXNzX29uZV93b3JrKzB4MWY0LzB4NGQwDQo+IFsgIDI2Ni40 NjQzMDFdICB3b3JrZXJfdGhyZWFkKzB4MWQ4LzB4M2MwDQo+IFsgIDI2Ni40NjQzMTFdICA/IHJl c2N1ZXJfdGhyZWFkKzB4MzkwLzB4MzkwDQo+IFsgIDI2Ni40NjQzMjFdICBrdGhyZWFkKzB4ZmIv MHgxMzANCj4gWyAgMjY2LjQ2NDMyOV0gID8ga3RocmVhZF9jb21wbGV0ZV9hbmRfZXhpdCsweDIw LzB4MjANCj4gWyAgMjY2LjQ2NDM0MV0gIHJldF9mcm9tX2ZvcmsrMHgyOC8weDQwDQo+IFsgIDI2 Ni40NjQzNTJdICA/IGt0aHJlYWRfY29tcGxldGVfYW5kX2V4aXQrMHgyMC8weDIwDQo+IFsgIDI2 Ni40NjQzNjJdICByZXRfZnJvbV9mb3JrX2FzbSsweDExLzB4MjANCj4gWyAgMjY2LjQ2NDM3NV0g IDwvVEFTSz4NCj4gWyAgMjY2LjQ2NDM4Ml0gaXJxIGV2ZW50IHN0YW1wOiAxNDEyMTkzDQo+IFsg IDI2Ni40NjQzODldIGhhcmRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDE0MTIxOTMpOiBbPGZmZmZm ZmZmODFkMmUyY2E+XSBfcmF3X3JlYWRfdW5sb2NrX2lycXJlc3RvcmUrMHg0YS8weDcwDQo+IFsg IDI2Ni40NjQ0MDhdIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDE0MTIxOTIpOiBbPGZmZmZm ZmZmODFkMmRmNTA+XSBfcmF3X3JlYWRfbG9ja19pcnFzYXZlKzB4ODAvMHg5MA0KPiBbICAyNjYu NDY0NDI4XSBzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICgxNDEyMTcwKTogWzxmZmZmZmZmZjgx MTMxYzMyPl0gaXJxX2V4aXRfcmN1KzB4ODIvMHhlMA0KPiBbICAyNjYuNDY1NDY2XSBzb2Z0aXJx cyBsYXN0IGRpc2FibGVkIGF0ICgxNDEyMDI5KTogWzxmZmZmZmZmZjgxMTMxYzMyPl0gaXJxX2V4 aXRfcmN1KzB4ODIvMHhlMA0KPiBbICAyNjYuNDY2NTg1XSAtLS1bIGVuZCB0cmFjZSAwMDAwMDAw MDAwMDAwMDAwIF0tLS0NCj4gWyAgMjY2LjQ2NzU4NV0geGUgMDAwMDowMDowMi4wOiBbZHJtXSBY ZSBkZXZpY2UgY29yZWR1bXAgaGFzIGJlZW4gY3JlYXRlZA0KPiBbICAyNjYuNDY4NTQwXSB4ZSAw MDAwOjAwOjAyLjA6IFtkcm1dIENoZWNrIHlvdXIgL3N5cy9jbGFzcy9kcm0vY2FyZDAvZGV2aWNl L2RldmNvcmVkdW1wL2RhdGENCj4gWyAgMjY2LjQ3MDU5MF0geGUgMDAwMDowMDowMi4wOiBbZHJt XSBFbmdpbmUgcmVzZXQ6IGd1Y19pZD0yDQo+IFsgIDI2Ni40NzIwNzZdIHhlIDAwMDA6MDA6MDIu MDogW2RybV0gVGltZWRvdXQgam9iOiBzZXFubz00Mjk0OTY3MTY5LCBndWNfaWQ9MywgZmxhZ3M9 MHg4DQo+IFsgIDI2Ni40NzQwNDRdIHhlIDAwMDA6MDA6MDIuMDogW2RybTpndWNfZXhlY19xdWV1 ZV90aW1lZG91dF9qb2IgW3hlXV0gTXVsdGlwbGUgaGFuZ3MNCj4gDQo+IA0KPiA+IA0KPiA+IFNp Z25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVt cC5jICAgICAgIHwgIDMyICsrKystDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3Jl ZHVtcF90eXBlcy5oIHwgICA4ICsrDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5jICAg ICAgICAgICAgICAgIHwgMTY3ICsrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgZHJpdmVycy9n cHUvZHJtL3hlL3hlX3ZtLmggICAgICAgICAgICAgICAgfCAgIDUgKw0KPiA+ICA0IGZpbGVzIGNo YW5nZWQsIDIxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXAuYyBiL2RyaXZlcnMvZ3B1 L2RybS94ZS94ZV9kZXZjb3JlZHVtcC5jDQo+ID4gaW5kZXggNjhhYmMwYjE5NWJlLi40YTNiYmNj NGY3YTAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1w LmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXAuYw0KPiA+IEBA IC0xNiw2ICsxNiw3IEBADQo+ID4gICNpbmNsdWRlICJ4ZV9ndWNfY3QuaCINCj4gPiAgI2luY2x1 ZGUgInhlX2d1Y19zdWJtaXQuaCINCj4gPiAgI2luY2x1ZGUgInhlX2h3X2VuZ2luZS5oIg0KPiA+ ICsjaW5jbHVkZSAieGVfdm0uaCINCj4gPiAgDQo+ID4gIC8qKg0KPiA+ICAgKiBET0M6IFhlIGRl dmljZSBjb3JlZHVtcA0KPiA+IEBAIC01OCwxMSArNTksMjAgQEAgc3RhdGljIHN0cnVjdCB4ZV9n dWMgKmV4ZWNfcXVldWVfdG9fZ3VjKHN0cnVjdCB4ZV9leGVjX3F1ZXVlICpxKQ0KPiA+ICAJcmV0 dXJuICZxLT5ndC0+dWMuZ3VjOw0KPiA+ICB9DQo+ID4gIA0KPiA+ICtzdGF0aWMgdm9pZCB4ZV9k ZXZjb3JlZHVtcF9kZWZlcnJlZF9zbmFwX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0K PiA+ICt7DQo+ID4gKwlzdHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3QgKnNzID0gY29udGFp bmVyX29mKHdvcmssIHR5cGVvZigqc3MpLCB3b3JrKTsNCj4gPiArDQo+ID4gKwl4ZV9mb3JjZV93 YWtlX2dldChndF90b19mdyhzcy0+Z3QpLCBYRV9GT1JDRVdBS0VfQUxMKTsNCj4gPiArCXhlX3Zt X3NuYXBzaG90X2NhcHR1cmVfZGVsYXllZChzcy0+dm0pOw0KPiA+ICsJeGVfZm9yY2Vfd2FrZV9w dXQoZ3RfdG9fZncoc3MtPmd0KSwgWEVfRk9SQ0VXQUtFX0FMTCk7DQo+ID4gK30NCj4gPiArDQo+ ID4gIHN0YXRpYyBzc2l6ZV90IHhlX2RldmNvcmVkdW1wX3JlYWQoY2hhciAqYnVmZmVyLCBsb2Zm X3Qgb2Zmc2V0LA0KPiA+ICAJCQkJICAgc2l6ZV90IGNvdW50LCB2b2lkICpkYXRhLCBzaXplX3Qg ZGF0YWxlbikNCj4gPiAgew0KPiA+ICAJc3RydWN0IHhlX2RldmNvcmVkdW1wICpjb3JlZHVtcCA9 IGRhdGE7DQo+ID4gLQlzdHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3QgKnNzOw0KPiA+ICsJ c3RydWN0IHhlX2RldmNvcmVkdW1wX3NuYXBzaG90ICpzcyA9ICZjb3JlZHVtcC0+c25hcHNob3Q7 DQo+ID4gIAlzdHJ1Y3QgZHJtX3ByaW50ZXIgcDsNCj4gPiAgCXN0cnVjdCBkcm1fcHJpbnRfaXRl cmF0b3IgaXRlcjsNCj4gPiAgCXN0cnVjdCB0aW1lc3BlYzY0IHRzOw0KPiA+IEBAIC03MiwxMiAr ODIsMTQgQEAgc3RhdGljIHNzaXplX3QgeGVfZGV2Y29yZWR1bXBfcmVhZChjaGFyICpidWZmZXIs IGxvZmZfdCBvZmZzZXQsDQo+ID4gIAlpZiAoIWRhdGEgfHwgIWNvcmVkdW1wX3RvX3hlKGNvcmVk dW1wKSkNCj4gPiAgCQlyZXR1cm4gLUVOT0RFVjsNCj4gPiAgDQo+ID4gKwkvKiBFbnN1cmUgZGVs YXllZCB3b3JrIGlzIGNhcHR1cmVkIGJlZm9yZSBjb250aW51aW5nICovDQo+ID4gKwlmbHVzaF93 b3JrKCZzcy0+d29yayk7DQo+ID4gKw0KPiA+ICAJaXRlci5kYXRhID0gYnVmZmVyOw0KPiA+ICAJ aXRlci5vZmZzZXQgPSAwOw0KPiA+ICAJaXRlci5zdGFydCA9IG9mZnNldDsNCj4gPiAgCWl0ZXIu cmVtYWluID0gY291bnQ7DQo+ID4gIA0KPiA+IC0Jc3MgPSAmY29yZWR1bXAtPnNuYXBzaG90Ow0K PiA+ICAJcCA9IGRybV9jb3JlZHVtcF9wcmludGVyKCZpdGVyKTsNCj4gPiAgDQo+ID4gIAlkcm1f cHJpbnRmKCZwLCAiKioqKiBYZSBEZXZpY2UgQ29yZWR1bXAgKioqKlxuIik7DQo+ID4gQEAgLTk4 LDYgKzExMCwxMCBAQCBzdGF0aWMgc3NpemVfdCB4ZV9kZXZjb3JlZHVtcF9yZWFkKGNoYXIgKmJ1 ZmZlciwgbG9mZl90IG9mZnNldCwNCj4gPiAgCQlpZiAoY29yZWR1bXAtPnNuYXBzaG90Lmh3ZVtp XSkNCj4gPiAgCQkJeGVfaHdfZW5naW5lX3NuYXBzaG90X3ByaW50KGNvcmVkdW1wLT5zbmFwc2hv dC5od2VbaV0sDQo+ID4gIAkJCQkJCSAgICAmcCk7DQo+ID4gKwlpZiAoY29yZWR1bXAtPnNuYXBz aG90LnZtKSB7DQo+ID4gKwkJZHJtX3ByaW50ZigmcCwgIlxuKioqKiBWTSBzdGF0ZSAqKioqXG4i KTsNCj4gPiArCQl4ZV92bV9zbmFwc2hvdF9wcmludChjb3JlZHVtcC0+c25hcHNob3Qudm0sICZw KTsNCj4gPiArCX0NCj4gPiAgDQo+ID4gIAlyZXR1cm4gY291bnQgLSBpdGVyLnJlbWFpbjsNCj4g PiAgfQ0KPiA+IEBAIC0xMTEsMTEgKzEyNywxNSBAQCBzdGF0aWMgdm9pZCB4ZV9kZXZjb3JlZHVt cF9mcmVlKHZvaWQgKmRhdGEpDQo+ID4gIAlpZiAoIWRhdGEgfHwgIWNvcmVkdW1wX3RvX3hlKGNv cmVkdW1wKSkNCj4gPiAgCQlyZXR1cm47DQo+ID4gIA0KPiA+ICsJY2FuY2VsX3dvcmtfc3luYygm Y29yZWR1bXAtPnNuYXBzaG90LndvcmspOw0KPiA+ICsNCj4gPiAgCXhlX2d1Y19jdF9zbmFwc2hv dF9mcmVlKGNvcmVkdW1wLT5zbmFwc2hvdC5jdCk7DQo+ID4gIAl4ZV9ndWNfZXhlY19xdWV1ZV9z bmFwc2hvdF9mcmVlKGNvcmVkdW1wLT5zbmFwc2hvdC5nZSk7DQo+ID4gIAlmb3IgKGkgPSAwOyBp IDwgWEVfTlVNX0hXX0VOR0lORVM7IGkrKykNCj4gPiAgCQlpZiAoY29yZWR1bXAtPnNuYXBzaG90 Lmh3ZVtpXSkNCj4gPiAgCQkJeGVfaHdfZW5naW5lX3NuYXBzaG90X2ZyZWUoY29yZWR1bXAtPnNu YXBzaG90Lmh3ZVtpXSk7DQo+ID4gKwl4ZV92bV9zbmFwc2hvdF9mcmVlKGNvcmVkdW1wLT5zbmFw c2hvdC52bSk7DQo+ID4gKwltZW1zZXQoJmNvcmVkdW1wLT5zbmFwc2hvdCwgMCwgc2l6ZW9mKGNv cmVkdW1wLT5zbmFwc2hvdCkpOw0KPiA+ICANCj4gPiAgCWNvcmVkdW1wLT5jYXB0dXJlZCA9IGZh bHNlOw0KPiA+ICAJZHJtX2luZm8oJmNvcmVkdW1wX3RvX3hlKGNvcmVkdW1wKS0+ZHJtLA0KPiA+ IEBAIC0xMzcsNiArMTU3LDkgQEAgc3RhdGljIHZvaWQgZGV2Y29yZWR1bXBfc25hcHNob3Qoc3Ry dWN0IHhlX2RldmNvcmVkdW1wICpjb3JlZHVtcCwNCj4gPiAgCXNzLT5zbmFwc2hvdF90aW1lID0g a3RpbWVfZ2V0X3JlYWwoKTsNCj4gPiAgCXNzLT5ib290X3RpbWUgPSBrdGltZV9nZXRfYm9vdHRp bWUoKTsNCj4gPiAgDQo+ID4gKwlzcy0+Z3QgPSBxLT5ndDsNCj4gPiArCUlOSVRfV09SSygmc3Mt PndvcmssIHhlX2RldmNvcmVkdW1wX2RlZmVycmVkX3NuYXBfd29yayk7DQo+ID4gKw0KPiA+ICAJ Y29va2llID0gZG1hX2ZlbmNlX2JlZ2luX3NpZ25hbGxpbmcoKTsNCj4gPiAgCWZvciAoaSA9IDA7 IHEtPndpZHRoID4gMSAmJiBpIDwgWEVfSFdfRU5HSU5FX01BWF9JTlNUQU5DRTspIHsNCj4gPiAg CQlpZiAoYWRqX2xvZ2ljYWxfbWFzayAmIEJJVChpKSkgew0KPiA+IEBAIC0xNTEsNiArMTc0LDcg QEAgc3RhdGljIHZvaWQgZGV2Y29yZWR1bXBfc25hcHNob3Qoc3RydWN0IHhlX2RldmNvcmVkdW1w ICpjb3JlZHVtcCwNCj4gPiAgDQo+ID4gIAljb3JlZHVtcC0+c25hcHNob3QuY3QgPSB4ZV9ndWNf Y3Rfc25hcHNob3RfY2FwdHVyZSgmZ3VjLT5jdCwgdHJ1ZSk7DQo+ID4gIAljb3JlZHVtcC0+c25h cHNob3QuZ2UgPSB4ZV9ndWNfZXhlY19xdWV1ZV9zbmFwc2hvdF9jYXB0dXJlKHEpOw0KPiA+ICsJ Y29yZWR1bXAtPnNuYXBzaG90LnZtID0geGVfdm1fc25hcHNob3RfY2FwdHVyZShxLT52bSk7DQo+ ID4gIA0KPiA+ICAJZm9yX2VhY2hfaHdfZW5naW5lKGh3ZSwgcS0+Z3QsIGlkKSB7DQo+ID4gIAkJ aWYgKGh3ZS0+Y2xhc3MgIT0gcS0+aHdlLT5jbGFzcyB8fA0KPiA+IEBAIC0xNjEsNiArMTg1LDkg QEAgc3RhdGljIHZvaWQgZGV2Y29yZWR1bXBfc25hcHNob3Qoc3RydWN0IHhlX2RldmNvcmVkdW1w ICpjb3JlZHVtcCwNCj4gPiAgCQljb3JlZHVtcC0+c25hcHNob3QuaHdlW2lkXSA9IHhlX2h3X2Vu Z2luZV9zbmFwc2hvdF9jYXB0dXJlKGh3ZSk7DQo+ID4gIAl9DQo+ID4gIA0KPiA+ICsJaWYgKHNz LT52bSkNCj4gPiArCQlxdWV1ZV93b3JrKHN5c3RlbV91bmJvdW5kX3dxLCAmc3MtPndvcmspOw0K PiA+ICsNCj4gPiAgCXhlX2ZvcmNlX3dha2VfcHV0KGd0X3RvX2Z3KHEtPmd0KSwgWEVfRk9SQ0VX QUtFX0FMTCk7DQo+ID4gIAlkbWFfZmVuY2VfZW5kX3NpZ25hbGxpbmcoY29va2llKTsNCj4gPiAg fQ0KPiA+IEBAIC0xOTQsMyArMjIxLDQgQEAgdm9pZCB4ZV9kZXZjb3JlZHVtcChzdHJ1Y3QgeGVf ZXhlY19xdWV1ZSAqcSkNCj4gPiAgCQkgICAgICB4ZV9kZXZjb3JlZHVtcF9yZWFkLCB4ZV9kZXZj b3JlZHVtcF9mcmVlKTsNCj4gPiAgfQ0KPiA+ICAjZW5kaWYNCj4gPiArDQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVtcF90eXBlcy5oIGIvZHJpdmVycy9n cHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wX3R5cGVzLmgNCj4gPiBpbmRleCA3ZmRhZDljM2QzZGQu LjE3YWUzZTM1OTdiMCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2 Y29yZWR1bXBfdHlwZXMuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3Jl ZHVtcF90eXBlcy5oDQo+ID4gQEAgLTEyLDYgKzEyLDcgQEANCj4gPiAgI2luY2x1ZGUgInhlX2h3 X2VuZ2luZV90eXBlcy5oIg0KPiA+ICANCj4gPiAgc3RydWN0IHhlX2RldmljZTsNCj4gPiArc3Ry dWN0IHhlX2d0Ow0KPiA+ICANCj4gPiAgLyoqDQo+ID4gICAqIHN0cnVjdCB4ZV9kZXZjb3JlZHVt cF9zbmFwc2hvdCAtIENyYXNoIHNuYXBzaG90DQo+ID4gQEAgLTI2LDYgKzI3LDExIEBAIHN0cnVj dCB4ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCB7DQo+ID4gIAkvKiogQGJvb3RfdGltZTogIFJlbGF0 aXZlIGJvb3QgdGltZSBzbyB0aGUgdXB0aW1lIGNhbiBiZSBjYWxjdWxhdGVkLiAqLw0KPiA+ICAJ a3RpbWVfdCBib290X3RpbWU7DQo+ID4gIA0KPiA+ICsJLyoqIEBndDogQWZmZWN0ZWQgR1QsIHVz ZWQgYnkgZm9yY2V3YWtlIGZvciBkZWxheWVkIGNhcHR1cmUgKi8NCj4gPiArCXN0cnVjdCB4ZV9n dCAqZ3Q7DQo+ID4gKwkvKiogQHdvcms6IFdvcmtxdWV1ZSBmb3IgZGVmZmVyZWQgY2FwdHVyZSBv dXRzaWRlIG9mIHNpZ25hbGluZyBjb250ZXh0ICovDQo+ID4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qg d29yazsNCj4gPiArDQo+ID4gIAkvKiBHdUMgc25hcHNob3RzICovDQo+ID4gIAkvKiogQGN0OiBH dUMgQ1Qgc25hcHNob3QgKi8NCj4gPiAgCXN0cnVjdCB4ZV9ndWNfY3Rfc25hcHNob3QgKmN0Ow0K PiA+IEBAIC0zMyw2ICszOSw4IEBAIHN0cnVjdCB4ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCB7DQo+ ID4gIAlzdHJ1Y3QgeGVfZ3VjX3N1Ym1pdF9leGVjX3F1ZXVlX3NuYXBzaG90ICpnZTsNCj4gPiAg CS8qKiBAaHdlOiBIVyBFbmdpbmUgc25hcHNob3QgYXJyYXkgKi8NCj4gPiAgCXN0cnVjdCB4ZV9o d19lbmdpbmVfc25hcHNob3QgKmh3ZVtYRV9OVU1fSFdfRU5HSU5FU107DQo+ID4gKwkvKiogQHZt OiBTbmFwc2hvdCBvZiBWTSBzdGF0ZSAqLw0KPiA+ICsJc3RydWN0IHhlX3ZtX3NuYXBzaG90ICp2 bTsNCj4gPiAgfTsNCj4gPiAgDQo+ID4gIC8qKg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0veGUveGVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5jDQo+ID4gaW5kZXgg ZTk2NzJkZjcxMDgxLi5lMjdjZjJkYTNmNGQgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3hlL3hlX3ZtLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYw0KPiA+ IEBAIC0xMyw2ICsxMyw3IEBADQo+ID4gICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9leGVjYnVmX3V0 aWwuaD4NCj4gPiAgI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+DQo+ID4gICNpbmNsdWRlIDxk cm0veGVfZHJtLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9hc2NpaTg1Lmg+DQo+ID4gICNpbmNs dWRlIDxsaW51eC9kZWxheS5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPg0KPiA+ ICAjaW5jbHVkZSA8bGludXgvbW0uaD4NCj4gPiBAQCAtMzIzNywzICszMjM4LDE2OSBAQCBpbnQg eGVfYW5hbHl6ZV92bShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB4ZV92bSAqdm0sIGlu dCBndF9pZCkNCj4gPiAgDQo+ID4gIAlyZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ICsNCj4gPiArc3Ry dWN0IHhlX3ZtX3NuYXBzaG90IHsNCj4gPiArCXVuc2lnbmVkIGxvbmcgbnVtX3NuYXBzOw0KPiA+ ICsJc3RydWN0IHsNCj4gPiArCQl1aW50NjRfdCBvZnMsIGJvX29mczsNCj4gPiArCQl1bnNpZ25l ZCBsb25nIGxlbjsNCj4gPiArCQlzdHJ1Y3QgeGVfYm8gKmJvOw0KPiA+ICsJCXZvaWQgKmRhdGE7 DQo+ID4gKwkJc3RydWN0IG1tX3N0cnVjdCAqbW07DQo+ID4gKwl9IHNuYXBbXTsNCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0cnVjdCB4ZV92bV9zbmFwc2hvdCAqeGVfdm1fc25hcHNob3RfY2FwdHVy ZShzdHJ1Y3QgeGVfdm0gKnZtKQ0KPiA+ICt7DQo+ID4gKwl1bnNpZ25lZCBsb25nIG51bV9zbmFw cyA9IDAsIGk7DQo+ID4gKwlzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnNuYXAgPSBOVUxMOw0KPiA+ ICsJc3RydWN0IGRybV9ncHV2YSAqZ3B1dmE7DQo+ID4gKw0KPiA+ICsJaWYgKCF2bSkNCj4gPiAr CQlyZXR1cm4gTlVMTDsNCj4gPiArDQo+ID4gKwltdXRleF9sb2NrKCZ2bS0+c25hcF9tdXRleCk7 DQo+ID4gKwlkcm1fZ3B1dm1fZm9yX2VhY2hfdmEoZ3B1dmEsICZ2bS0+Z3B1dm0pIHsNCj4gPiAr CQlpZiAoZ3B1dmEtPmZsYWdzICYgWEVfVk1BX0RVTVBBQkxFKQ0KPiA+ICsJCQludW1fc25hcHMr KzsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAobnVtX3NuYXBzKQ0KPiA+ICsJCXNuYXAgPSBr dnphbGxvYyhvZmZzZXRvZihzdHJ1Y3QgeGVfdm1fc25hcHNob3QsIHNuYXBbbnVtX3NuYXBzXSks IEdGUF9OT1dBSVQpOw0KPiA+ICsJaWYgKCFzbmFwKQ0KPiA+ICsJCWdvdG8gb3V0X3VubG9jazsN Cj4gPiArDQo+ID4gKwlzbmFwLT5udW1fc25hcHMgPSBudW1fc25hcHM7DQo+ID4gKwlpID0gMDsN Cj4gPiArCWRybV9ncHV2bV9mb3JfZWFjaF92YShncHV2YSwgJnZtLT5ncHV2bSkgew0KPiA+ICsJ CXN0cnVjdCB4ZV92bWEgKnZtYSA9IGdwdXZhX3RvX3ZtYShncHV2YSk7DQo+ID4gKwkJc3RydWN0 IHhlX2JvICpibyA9IHZtYS0+Z3B1dmEuZ2VtLm9iaiA/DQo+ID4gKwkJCWdlbV90b194ZV9ibyh2 bWEtPmdwdXZhLmdlbS5vYmopIDogTlVMTDsNCj4gPiArDQo+ID4gKwkJaWYgKCEoZ3B1dmEtPmZs YWdzICYgWEVfVk1BX0RVTVBBQkxFKSkNCj4gPiArCQkJY29udGludWU7DQo+ID4gKw0KPiA+ICsJ CXNuYXAtPnNuYXBbaV0ub2ZzID0geGVfdm1hX3N0YXJ0KHZtYSk7DQo+ID4gKwkJc25hcC0+c25h cFtpXS5sZW4gPSB4ZV92bWFfc2l6ZSh2bWEpOw0KPiA+ICsJCWlmIChibykgew0KPiA+ICsJCQlz bmFwLT5zbmFwW2ldLmJvID0geGVfYm9fZ2V0KGJvKTsNCj4gPiArCQkJc25hcC0+c25hcFtpXS5i b19vZnMgPSB4ZV92bWFfYm9fb2Zmc2V0KHZtYSk7DQo+ID4gKwkJfSBlbHNlIGlmICh4ZV92bWFf aXNfdXNlcnB0cih2bWEpKSB7DQo+ID4gKwkJCWlmIChtbWdldF9ub3RfemVybyh2bWEtPnVzZXJw dHIubm90aWZpZXIubW0pKQ0KPiA+ICsJCQkJc25hcC0+c25hcFtpXS5tbSA9IHZtYS0+dXNlcnB0 ci5ub3RpZmllci5tbTsNCj4gPiArCQkJZWxzZQ0KPiA+ICsJCQkJc25hcC0+c25hcFtpXS5kYXRh ID0gRVJSX1BUUigtRUZBVUxUKTsNCj4gPiArCQkJc25hcC0+c25hcFtpXS5ib19vZnMgPSB4ZV92 bWFfdXNlcnB0cih2bWEpOw0KPiA+ICsJCX0gZWxzZSB7DQo+ID4gKwkJCXNuYXAtPnNuYXBbaV0u ZGF0YSA9IEVSUl9QVFIoLUVOT0VOVCk7DQo+ID4gKwkJfQ0KPiA+ICsJCWkrKzsNCj4gPiArCX0N Cj4gPiArDQo+ID4gK291dF91bmxvY2s6DQo+ID4gKwltdXRleF91bmxvY2soJnZtLT5zbmFwX211 dGV4KTsNCj4gPiArCXJldHVybiBzbmFwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIHhlX3Zt X3NuYXBzaG90X2NhcHR1cmVfZGVsYXllZChzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnNuYXApDQo+ ID4gK3sNCj4gPiArCWlmICghc25hcCkNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJZm9y IChpbnQgaSA9IDA7IGkgPCBzbmFwLT5udW1fc25hcHM7IGkrKykgew0KPiA+ICsJCXN0cnVjdCB4 ZV9ibyAqYm8gPSBzbmFwLT5zbmFwW2ldLmJvOw0KPiA+ICsJCXN0cnVjdCBpb3N5c19tYXAgc3Jj Ow0KPiA+ICsJCWludCBlcnI7DQo+ID4gKw0KPiA+ICsJCWlmIChJU19FUlIoc25hcC0+c25hcFtp XS5kYXRhKSkNCj4gPiArCQkJY29udGludWU7DQo+ID4gKw0KPiA+ICsJCXNuYXAtPnNuYXBbaV0u ZGF0YSA9IGt2bWFsbG9jKHNuYXAtPnNuYXBbaV0ubGVuLCBHRlBfVVNFUik7DQo+ID4gKwkJaWYg KCFzbmFwLT5zbmFwW2ldLmRhdGEpIHsNCj4gPiArCQkJc25hcC0+c25hcFtpXS5kYXRhID0gRVJS X1BUUigtRU5PTUVNKTsNCj4gPiArCQkJZ290byBjbGVhbnVwX2JvOw0KPiA+ICsJCX0NCj4gPiAr DQo+ID4gKwkJaWYgKGJvKSB7DQo+ID4gKwkJCWRtYV9yZXN2X2xvY2soYm8tPnR0bS5iYXNlLnJl c3YsIE5VTEwpOw0KPiA+ICsJCQllcnIgPSB0dG1fYm9fdm1hcCgmYm8tPnR0bSwgJnNyYyk7DQo+ ID4gKwkJCWlmICghZXJyKSB7DQo+ID4gKwkJCQl4ZV9tYXBfbWVtY3B5X2Zyb20oeGVfYm9fZGV2 aWNlKGJvKSwNCj4gPiArCQkJCQkJICAgc25hcC0+c25hcFtpXS5kYXRhLA0KPiA+ICsJCQkJCQkg ICAmc3JjLCBzbmFwLT5zbmFwW2ldLmJvX29mcywNCj4gPiArCQkJCQkJICAgc25hcC0+c25hcFtp XS5sZW4pOw0KPiA+ICsJCQkJdHRtX2JvX3Z1bm1hcCgmYm8tPnR0bSwgJnNyYyk7DQo+ID4gKwkJ CX0NCj4gPiArCQkJZG1hX3Jlc3ZfdW5sb2NrKGJvLT50dG0uYmFzZS5yZXN2KTsNCj4gPiArCQl9 IGVsc2Ugew0KPiA+ICsJCQl2b2lkIF9fdXNlciAqdXNlcnB0ciA9ICh2b2lkIF9fdXNlciAqKShz aXplX3Qpc25hcC0+c25hcFtpXS5ib19vZnM7DQo+ID4gKwkJCWt0aHJlYWRfdXNlX21tKHNuYXAt PnNuYXBbaV0ubW0pOw0KPiA+ICsNCj4gPiArCQkJaWYgKCFjb3B5X2Zyb21fdXNlcihzbmFwLT5z bmFwW2ldLmRhdGEsIHVzZXJwdHIsIHNuYXAtPnNuYXBbaV0ubGVuKSkNCj4gPiArCQkJCWVyciA9 IDA7DQo+ID4gKwkJCWVsc2UNCj4gPiArCQkJCWVyciA9IC1FRkFVTFQ7DQo+ID4gKwkJCWt0aHJl YWRfdW51c2VfbW0oc25hcC0+c25hcFtpXS5tbSk7DQo+ID4gKwkJCW1tcHV0KHNuYXAtPnNuYXBb aV0ubW0pOw0KPiA+ICsJCQlzbmFwLT5zbmFwW2ldLm1tID0gTlVMTDsNCj4gPiArCQl9DQo+ID4g Kw0KPiA+ICsJCWlmIChlcnIpIHsNCj4gPiArCQkJa3ZmcmVlKHNuYXAtPnNuYXBbaV0uZGF0YSk7 DQo+ID4gKwkJCXNuYXAtPnNuYXBbaV0uZGF0YSA9IEVSUl9QVFIoZXJyKTsNCj4gPiArCQl9DQo+ ID4gKw0KPiA+ICtjbGVhbnVwX2JvOg0KPiA+ICsJCXhlX2JvX3B1dChibyk7DQo+ID4gKwkJc25h cC0+c25hcFtpXS5ibyA9IE5VTEw7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQg eGVfdm1fc25hcHNob3RfcHJpbnQoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwLCBzdHJ1Y3Qg ZHJtX3ByaW50ZXIgKnApDQo+ID4gK3sNCj4gPiArCXVuc2lnbmVkIGxvbmcgaSwgajsNCj4gPiAr DQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgc25hcC0+bnVtX3NuYXBzOyBpKyspIHsNCj4gPiArCQlp ZiAoSVNfRVJSKHNuYXAtPnNuYXBbaV0uZGF0YSkpDQo+ID4gKwkJCWdvdG8gdW5jYXB0dXJlZDsN Cj4gPiArDQo+ID4gKwkJZHJtX3ByaW50ZihwLCAiWyVsbHhdLmxlbmd0aDogMHglbHhcbiIsIHNu YXAtPnNuYXBbaV0ub2ZzLCBzbmFwLT5zbmFwW2ldLmxlbik7DQo+ID4gKw0KPiA+ICsJCWZvciAo aiA9IDA7IGogPCBzbmFwLT5zbmFwW2ldLmxlbjsgaiArPSA2NCkgew0KPiA+ICsJCQl1aW50MzJf dCAqdmFsID0gc25hcC0+c25hcFtpXS5kYXRhICsgajsNCj4gPiArCQkJY2hhciBkdW1wZWRbMTZd W0FTQ0lJODVfQlVGU1pdOw0KPiA+ICsJCQljb25zdCBjaGFyICp4WzE2XTsNCj4gPiArCQkJdWlu dDMyX3QgazsNCj4gPiArDQo+ID4gKwkJCWZvciAoayA9IDA7IGsgPCAxNjsgaysrKQ0KPiA+ICsJ CQkJeFtrXSA9IGFzY2lpODVfZW5jb2RlKHZhbFtrXSwgZHVtcGVkW2tdKTsNCj4gPiArDQo+ID4g KwkJCWRybV9wcmludGYocCwgIlslbGx4XS5kYXRhOiB7ICVzLCAlcywgJXMsICVzLCAlcywgJXMs ICVzLCAlcywgJXMsICVzLCAlcywgJXMsICVzLCAlcywgJXMsICVzIH1cbiIsDQo+ID4gKwkJCQkg ICBzbmFwLT5zbmFwW2ldLm9mcyArIGosIHhbMF0sIHhbMV0sIHhbMl0sIHhbM10sIHhbNF0sIHhb NV0sIHhbNl0sIHhbN10sDQo+ID4gKwkJCQkgICB4WzhdLCB4WzldLCB4WzEwXSwgeFsxMV0sIHhb MTJdLCB4WzEzXSwgeFsxNF0sIHhbMTVdKTsNCj4gPiArCQl9DQo+ID4gKwkJY29udGludWU7DQo+ ID4gKw0KPiA+ICt1bmNhcHR1cmVkOg0KPiA+ICsJCWRybV9wcmludGYocCwgIlVuYWJsZSB0byBj YXB0dXJlIHJhbmdlIFslbGx4LSVsbHhdOiAlbGlcbiIsDQo+ID4gKwkJCSAgIHNuYXAtPnNuYXBb aV0ub2ZzLCBzbmFwLT5zbmFwW2ldLm9mcyArIHNuYXAtPnNuYXBbaV0ubGVuIC0gMSwNCj4gPiAr CQkJICAgUFRSX0VSUihzbmFwLT5zbmFwW2ldLmRhdGEpKTsNCj4gPiArCX0NCj4gPiArfQ0KPiA+ ICsNCj4gPiArdm9pZCB4ZV92bV9zbmFwc2hvdF9mcmVlKHN0cnVjdCB4ZV92bV9zbmFwc2hvdCAq c25hcCkNCj4gPiArew0KPiA+ICsJdW5zaWduZWQgbG9uZyBpOw0KPiA+ICsNCj4gPiArCWlmICgh c25hcCkNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IHNuYXAt Pm51bV9zbmFwczsgaSsrKSB7DQo+ID4gKwkJaWYgKCFJU19FUlIoc25hcC0+c25hcFtpXS5kYXRh KSkNCj4gPiArCQkJa3ZmcmVlKHNuYXAtPnNuYXBbaV0uZGF0YSk7DQo+ID4gKwkJeGVfYm9fcHV0 KHNuYXAtPnNuYXBbaV0uYm8pOw0KPiA+ICsJCWlmIChzbmFwLT5zbmFwW2ldLm1tKQ0KPiA+ICsJ CQltbXB1dChzbmFwLT5zbmFwW2ldLm1tKTsNCj4gPiArCX0NCj4gPiArCWt2ZnJlZShzbmFwKTsN Cj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaCBiL2Ry aXZlcnMvZ3B1L2RybS94ZS94ZV92bS5oDQo+ID4gaW5kZXggZTljOTA3Y2JjZDg5Li44YjA2MWYx Zjc1M2EgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmgNCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaA0KPiA+IEBAIC0yNTksMyArMjU5LDggQEAg c3RhdGljIGlubGluZSB2b2lkIHZtX2RiZyhjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0K PiA+ICB7IC8qIG5vb3AgKi8gfQ0KPiA+ICAjZW5kaWYNCj4gPiAgI2VuZGlmDQo+ID4gKw0KPiA+ ICtzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnhlX3ZtX3NuYXBzaG90X2NhcHR1cmUoc3RydWN0IHhl X3ZtICp2bSk7DQo+ID4gK3ZvaWQgeGVfdm1fc25hcHNob3RfY2FwdHVyZV9kZWxheWVkKHN0cnVj dCB4ZV92bV9zbmFwc2hvdCAqc25hcCk7DQo+ID4gK3ZvaWQgeGVfdm1fc25hcHNob3RfcHJpbnQo c3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwLCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOw0KPiA+ ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2ZyZWUoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwKTsN Cj4gDQoNCg==