Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp722874rwd; Thu, 15 Jun 2023 00:48:03 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6uHPrcqfKrydbNJp1hJJu4apldQzwpxuMDnwQVmKdie836QSxYK0bvTh1Nq95dnh/LWGhH X-Received: by 2002:a17:902:6b81:b0:1b1:86ad:3347 with SMTP id p1-20020a1709026b8100b001b186ad3347mr11803803plk.3.1686815283294; Thu, 15 Jun 2023 00:48:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686815283; cv=pass; d=google.com; s=arc-20160816; b=gxjGLHSxMlxXGzeTYYQyLYN/C+hZSsweHMlGAFgz/dL7/MqA5TVBk5uIqDLlcOTsy8 /JKdgxndDMVs3yBkCZrwPRFzzR6rkOHvGF/BBy5mGSvn0ORul/5wthQcZxoMl3/xDwNJ IOh1CZB7V0uleRmzRL9/PDMwt/yaWKQurubZ0h4nrRD8a6F1Mi5hTs5jRyFbCo1egIRb REcrUBIUJtgbRtDRGpxqEei4+nD5f2h6czxj0ahNYuSQ9EJkL0wi4tih4hsbhH7U+mbN 0kTlVozR5ifCNrPvqSkbeLEaSrjVWmztjycetSSGUCWmaILyDXNN9gCFW5EaCi3VYmpZ zxTA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=Ngziv/DU6NCnyPMUMgv9f6nk/NZPwu7RnLF9fml+nRM=; b=rDfVZlXAhEkfFSJ0pwfzPHRF4e0tQ49UE8an7a3/mPAihPQDMZr0j3i+ZGINfIISjm XqeDXQVaeq9z4MiEPBq6Gqk0IDfBF/XE+XXBAdRQR9u9hH7KFPUuAKM5co2j6nG2h5lc vfnmMzEw1WnKxKbEfuPz8fKtXWdDkCXAH+Vc058Y+4spvXYmgGPIToruwUSGXNDqoEcS rZ6jejw2pH+pGaMGjOH8OOjWtdVppHXazwZGcO6fhs7jQIELq2aXRp7pjkQ94w5OqoQn coL9a3HxigFTb2NfNmiAOWFrtzq1scAQ/Wmw4ejEX976v1k+8gTXEOU9zfqdyjb4iWau Be3w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=cZkafNzw; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b="JUg/Nr1f"; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z16-20020a170903019000b001ab089f7319si990014plg.52.2023.06.15.00.47.50; Thu, 15 Jun 2023 00:48:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=cZkafNzw; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b="JUg/Nr1f"; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243571AbjFOHbs (ORCPT + 99 others); Thu, 15 Jun 2023 03:31:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230455AbjFOHbr (ORCPT ); Thu, 15 Jun 2023 03:31:47 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 19582135; Thu, 15 Jun 2023 00:31:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1686814304; x=1718350304; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Ngziv/DU6NCnyPMUMgv9f6nk/NZPwu7RnLF9fml+nRM=; b=cZkafNzwJqajrAT6EX1NR5JMwWhbewg2Axz+N340IrvJOta+widyn7ha G3dFDSdY4bpuAF32sLzOrduaImRjKUa84TNB2dHsAkEiYPPRLqdZArjaV U/6PGgiNu9g8kyUnab6snGAZOM4VxizkXqwVd4zTctQ79pbWzjS4feGrI HOSsvQHJzLLNzd/M0cyhYvkSlAm7YzXCJy7GOI9ZOIS52iPSFUqeGtDC/ 6U937hBzuevHrKFM3C/GVWn7jdiig5WCminCfKHe0DbouOZIrHT5RfbHk sp4SSCShDyqqP+OYIr8LEgIw67lrMecqOSqwT3BHwzeU/EcswELtHFPSN g==; X-IronPort-AV: E=Sophos;i="6.00,244,1681196400"; d="scan'208";a="217971713" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 15 Jun 2023 00:31:44 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 15 Jun 2023 00:31:44 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 15 Jun 2023 00:31:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SIxhRgeDsL9fPDduknXg9o6OwMgwuuoYrWOrEtzIdt7an8gTP9oqBiWCcJLTRqzfNPIVTXvRbu4wq6n62wSN1cv6LFiE9xG8GyEdXKTgTxHfLTwiaTISrsrZnQ05VuMJdnHp3sSOvII+bMkNnvmbwHrKryWqzE/Hio35xYFfgcrCX6Q5ZIacZi+ZQ+UGWggh35sHdwKXa/151yZfyZ9Et/nriATowYDYy/c0rcQK8wFPU/i/IbElv9E4PO/UhZXwjaz0gTicjQ7uSoMYXHdoqngF7OIrlTw1cH8E4k19bpgo9yj+RfECorNaoMcxHB+YhTtZ4s78jekQfsDPGKZwIA== 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=Ngziv/DU6NCnyPMUMgv9f6nk/NZPwu7RnLF9fml+nRM=; b=QsyhYTKCFukWLWZI8CDcCboHGFwFripZ76uEDY7sEjI00itKKdcWLrfsEsXh7QKWspEcxVJoaDOsjL6zMglT2WeJiWGwu5iUr4ceKy/Qm8qm5PSXvMS2TIIkgqy+ofPSS4SNj9lvlYOI9xVB4aWyLyFokA9e59X/h7YEvzN5gWND/wM4VOi8Ox2WAjZMnW9yToKojzqL9UpJIy2leDH0nwaU8GGHiLDHnQW79w0QQV6F0rs3XEPtAjMXxW6RoCfbhqGrOiBppFkJGCAXIurdQjX7S4Kq8fW39q6bz/o9ndy17/15QPnMHlyeiwYY9Y30aDE9u78w/JcTVNDnKFS6zw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ngziv/DU6NCnyPMUMgv9f6nk/NZPwu7RnLF9fml+nRM=; b=JUg/Nr1faOtmTxf1NS8W0vpkqpXJIxEk9P7FPkS2+SgWsi9Y629oGtEza+MexrZ7qtGIIUnbuTQx3EFm/1k/DGFiLTYcT9FrGQ8NGb+Kg4CraKwxBK3I+aOxt6YB1WDIHI9xGDJxg/qlimzTOkWSOan7fC8ntk1eyJySpH2GJDg= Received: from IA1PR11MB6193.namprd11.prod.outlook.com (2603:10b6:208:3eb::19) by CYYPR11MB8387.namprd11.prod.outlook.com (2603:10b6:930:c8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.42; Thu, 15 Jun 2023 07:31:41 +0000 Received: from IA1PR11MB6193.namprd11.prod.outlook.com ([fe80::fae1:9490:ead6:1009]) by IA1PR11MB6193.namprd11.prod.outlook.com ([fe80::fae1:9490:ead6:1009%4]) with mapi id 15.20.6477.028; Thu, 15 Jun 2023 07:31:41 +0000 From: To: , , , , , , , , , , , , , , CC: , , , , , , Subject: Re: [PATCH 6/9] drm: atmel_hlcdc: Add support for XLCDC in atmel LCD driver Thread-Topic: [PATCH 6/9] drm: atmel_hlcdc: Add support for XLCDC in atmel LCD driver Thread-Index: AQHZncWNOljbIHu8BkqtK5cyDirfCa+J4wCAgAGYTgA= Date: Thu, 15 Jun 2023 07:31:41 +0000 Message-ID: <9abc28a7-ccb7-d3fc-4bbc-c368bd755d23@microchip.com> References: <20230613070426.467389-1-manikandan.m@microchip.com> <20230613070426.467389-7-manikandan.m@microchip.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR11MB6193:EE_|CYYPR11MB8387:EE_ x-ms-office365-filtering-correlation-id: 1f1ed0f0-21e3-433e-7590-08db6d728ff7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nNtBACPu32P2KSEGFauiJ9xjD28FDeswdS8bkhye/MlrLO0ot8yrHb6LKMrIIX5D3HvetugwwZ2Ob0QIBbH8tCAZmAK9ZIob+thJZQ1ZXa1YSjs0XZM36dDxoidBeNguW6QLBfVJblYwgkEUdk4SYHXbDGf3iR/1Qf54bLvNdKb/0b/SUy5V1FXWz8kCt1vRUwQP4sQR0MJu5tv8ywkXAOVOM06OOta961vRTt8eL5Nlqh+7ogvDsz60TexxPzRI9SxnTRlw+l52rBy+832OBh0zFzOjtyJps/P/20MF6oDkjWw+tc6t63k1ew4GwdIrEVIDvvxA1kOb7AH6IRK6toG9Bva3p/1imMF75DqPdaaF4HmbwyjwzE1vQZxKJPcnfxEH1ns2/lriCOOXEh9XO/7/MPjGcn3K+p7Cpg/by9WGjX84G1+ObOMkIzUl7ktl5RP07O6gF+6Y+T6QHgW1qNIOHJK2B80kTw+ZIaZaJtd3pwnxOao2CxpV/GAyMp9x9xqHJoTe0JxQ4whgC0WV+PDhTONniIcBMkGDZimhLskeYG6wstR+BSsRX6cMbhflaWXvWjfxmy+zfmI5LQnH2JlhrTS/0se4QTOIRRHYLGPjrrF0Lf9W10faUVvO5EFLgX5fLwQaGuV3j6w5/OCZU1zU7y++yk6PoA8dMfyTNcVvZOGpKEVCXMEFqf4vflIu x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR11MB6193.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(39860400002)(136003)(376002)(396003)(346002)(451199021)(2616005)(83380400001)(921005)(38100700002)(31696002)(36756003)(122000001)(86362001)(38070700005)(478600001)(4326008)(71200400001)(31686004)(76116006)(110136005)(54906003)(6486002)(2906002)(8936002)(8676002)(30864003)(5660300002)(7416002)(66946007)(66446008)(91956017)(64756008)(66476007)(66556008)(316002)(53546011)(186003)(107886003)(6512007)(6506007)(26005)(41300700001)(21314003)(45980500001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MEdNQUVGSyszeXo0K21uakNWcUU2VHg3MktEek1iMTRISDlqaGhMZVBVOEoz?= =?utf-8?B?ZWcxSU9rNU1sVGNvR1FIK2dwMlY2cnpXOGdZRThCOHlXSFY1WkFORXFxT2Vq?= =?utf-8?B?LzJrMWw2YktHZ29zMFNLMU91ZFB5U2R3TGJXbDBZTGxnY2pvaUdNVlNySDRs?= =?utf-8?B?cDQ2WW5BSFJHeEt6RlFxQkFzaG5mcUx4aGdsQmVYamVZK212eFRvMGV6by9T?= =?utf-8?B?NVZMRGJYYm91Ni8rdXl4QURaZ3ZsMlFzSHdRRXVOR1dHWkQ1RmZTTXFkYVNq?= =?utf-8?B?b0FIQTFTbmZ2TnVTU2F3RTFHc24yM1M2NG5CUHd3aDdiaE9ieWVQSm1obklH?= =?utf-8?B?LzBRMk5WdEJaSEd5RXNyeVEvY0VaS3VGRStRdHFzRDJDZmxDOFFFaHQ0K0la?= =?utf-8?B?N2VQODdKSm4zV3cwUTR0aUxPN3Y5VDMxVXBZUk9SdWcvYVFBMmFGSmJqdUcw?= =?utf-8?B?M2M0MzcwcEExOGlTY3NTV3JSSTdXRGZ1OEFmdFk2OVI4TWhrQnk1ejVnZ3JF?= =?utf-8?B?VU1HQ3pKRTY1bGVheDlZclZuNjVEZ0pLZUM5VHozLzF0cjVDUjJ4R2lycllw?= =?utf-8?B?R0ZtVFRETnBkSjh6d3hwZmhIdkl5ak0zaHMweWV2UzgzdzB6bDBkbnlvODlI?= =?utf-8?B?ZFdiSnIrZElvL1BUSUo3T0RnU3pEWHlCSXNQV2V4MEQ0eGR0YXF3ajNVdXV6?= =?utf-8?B?a2RiZXB4ZHZiV3NLOVAweEQ2bG9GYXM3dHlLVFlxV1lQOFR0TEhTcW5SbFZt?= =?utf-8?B?SS9NSFFkZTRQSVRNTFZWMURuSGFlc2lrOFEvQnJJcnlNYVdwcUZ3VnlvaHZD?= =?utf-8?B?M3EyTnpiWk1YS2tEeUpObmJPb3BFOFY1SVdGcWxGZU5DN1pqTVIwTlNycFVT?= =?utf-8?B?Vk9GZEQyVDVGbUlaaGN6R3UzUFp4MDg5SkRrYlo0aHBtUWRnZ2xraTd1aCtH?= =?utf-8?B?d1NYdDEvMy9pLzBrYmdkcHdiWnYxQ0lpRURBMmNVak1OQW1pOGxFVnJpU1ov?= =?utf-8?B?L1ltVkoxdGtIdUEwSnlQQ3lYNmRUb1ZHVWdMR0xwUkhrTkNYV0pFd2N6UC9J?= =?utf-8?B?cTJKUkx3bGFqbVpRTzRnbWNwVURqVEk1dFE5VTZnbHVGN3ZleVJna3BRMTdX?= =?utf-8?B?ZExFdXNvakgweTJPT1pQU0U1enl2T0JZbnhDUkp3Ulo1RGVoMC9scE5UTzJ4?= =?utf-8?B?T0QzUG5WT1Jyd0krN3hBZ05Wa3cwR3ZMbGgzOHY2ZytmUENYRTBWclNWZkpm?= =?utf-8?B?Qlh1TW5DZ09VVDVMODViMlRWdzY2NktxTXc5N0I2Qy8yaHdJVG1VV2JpU3hn?= =?utf-8?B?M1puODg2S0RqbmY5dFdpSC9USlhUVUUvM0thZHN6T2pmMXpia0xTNVRTTjh2?= =?utf-8?B?bDBVb1FrbUFkMXBSMXYxQTBNY2hnWVRpbXE2WXV4azdaYWpTUXVxLzNKSUMr?= =?utf-8?B?d2Y0emRVMUhZbEgyc05EclBVOEJWcWhSZlNtRFppQXQ4NmFjN3RuZE1xNTB0?= =?utf-8?B?S2xWWTJRL2hDcmdBM0JYeHVFTUxGdFhaKzZZR09ub1FpeFNmdnN4Q3dTQzJ3?= =?utf-8?B?cHRJeThkZi8zQzMzY0Z6cDV1M1RNNHk4Z0R0TmQyTFZIMndNMSswdFMvVW9G?= =?utf-8?B?SldtR2w0S3R3YWZFUnM0S1g3U2VlTjZGTE5yekFydFg0aFNpUFVXS0dyN3Ir?= =?utf-8?B?VDkrcUp0MzlrWVMrcENRQytGTDN5SS9HV3IwWndkbnNsTks5anF0T0pjUGhS?= =?utf-8?B?NVJyaDc5Y1BHU2drZGJXN0RvakxZT0YvdXJJME9GME5laERWOGpDQjl1b09V?= =?utf-8?B?QUdqS0g1M3pFRCtycU9zYlRjRUtNMnhyRnNhZUx3QnFxT1BzLzU4Y1pBbEtq?= =?utf-8?B?VU9oM3Ewbjg5N1FvODhqalZOQmZYRmdteXhJajhMTldnU2VtaUZwQnI1WGxx?= =?utf-8?B?cHlISWpCYnhNT0xWbWVjN1ptTmdxTGtyUDd5L3U3V3RINmJ6VEZJWXB0NkRB?= =?utf-8?B?U1ZUelJmTEFLTmdDdFBqd0hJYVZBVEMrZE1NQkVGamNqc2ZYeU1qQWcvOXZF?= =?utf-8?B?Y2x2SEFkWVBqeWljQzI4eEphOTlVV3RvMGVjdENIRVE2K2FkcXNFYTNZeUZz?= =?utf-8?Q?nXQqMnQIU/CY9cKBT0DXS2Zlo?= Content-Type: text/plain; charset="utf-8" Content-ID: <6DE7CFABBF31C946A426C60DE52B884C@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB6193.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f1ed0f0-21e3-433e-7590-08db6d728ff7 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2023 07:31:41.1988 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ereAo9rNwrXnngX9TkmaaHxIso/E9/HGrkb0HcLKumAC9HP5C+8MwcA3pKBvxo+aa1Kl9iGlhKgFBdzab2cAw67syzjDgAB0AS1ztSFP7lQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR11MB8387 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,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 lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTQvMDYvMjMgMTI6NDAsIENsYXVkaXUgQmV6bmVhIC0gTTE4MDYzIHdyb3RlOg0KPiBPbiAx My4wNi4yMDIzIDEwOjA0LCBNYW5pa2FuZGFuIE11cmFsaWRoYXJhbiB3cm90ZToNCj4+IC0gWExD REMgaW4gU0FNOVg3IGhhcyBkaWZmZXJlbnQgc2V0cyBvZiByZWdpc3RlcnMgYW5kIGFkZGl0aW9u YWwNCj4+IGNvbmZpZ3VyYXRpb24gYml0cyB3aGVuIGNvbXBhcmVkIHRvIHByZXZpb3VzIEhMQ0RD IElQLiBSZWFkL3dyaXRlDQo+PiBvcGVyYXRpb24gb24gdGhlIGNvbnRyb2xsZXIgcmVnaXN0ZXJz IGlzIG5vdyBzZXBhcmF0ZWQgdXNpbmcgdGhlDQo+PiBYTENEQyBzdGF0dXMgZmxhZy4NCj4+IAkt IEhFTyBzY2FsaW5nLCB3aW5kb3cgcmVzYW1wbGluZywgQWxwaGEgYmxlbmRpbmcsIFlVVi10by1S R0INCj4+IGNvbnZlcnNpb24gaW4gWExDREMgaXMgZGVyaXZlZCBhbmQgaGFuZGxlZCB1c2luZyBh ZGRpdGlvbmFsDQo+PiBjb25maWd1cmF0aW9uIGJpdHMgYW5kIHJlZ2lzdGVycy4NCj4+IAktIFdy aXRpbmcgb25lIHRvIHRoZSBFbmFibGUgZmllbGRzIG9mIGVhY2ggbGF5ZXIgaW4gTENEX0FUVFJF DQo+PiBpcyByZXF1aXJlZCB0byByZWZsZWN0IHRoZSB2YWx1ZXMgc2V0IGluIENvbmZpZ3VyYXRp b24sIEZCQSwgRW5hYmxlDQo+PiByZWdpc3RlcnMgb2YgZWFjaCBsYXllcg0KPj4NCj4+IFNpZ25l ZC1vZmYtYnk6IE1hbmlrYW5kYW4gTXVyYWxpZGhhcmFuIDxtYW5pa2FuZGFuLm1AbWljcm9jaGlw LmNvbT4NCj4+IFtIYXJpLlByYXNhdGhHRUBtaWNyb2NoaXAuY29tOiB1cGRhdGUgdGhlIGF0dHJp YnV0ZSBmaWVsZCBmb3IgZWFjaCBsYXllcl0NCj4+IFNpZ25lZC1vZmYtYnk6IEhhcmkgUHJhc2F0 aCBHdWp1bGFuIEVsYW5nbyA8SGFyaS5QcmFzYXRoR0VAbWljcm9jaGlwLmNvbT4NCj4+IFtkdXJh aS5tYW5pY2thbWtyQG1pY3JvY2hpcC5jb206IGltcGxlbWVudCBzdGF0dXMgZmxhZyB0byBzZXBy YXRlIHJlZ2lzdGVyIHVwZGF0ZV0NCj4+IFNpZ25lZC1vZmYtYnk6IER1cmFpIE1hbmlja2FtIEtS IDxkdXJhaS5tYW5pY2thbWtyQG1pY3JvY2hpcC5jb20+DQo+PiAtLS0NCj4+ICAgLi4uL2dwdS9k cm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5jICAgIHwgIDI4ICstDQo+PiAgIC4uLi9n cHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMgICB8IDI5NyArKysrKysrKysr KysrKy0tLS0NCj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCAyNTYgaW5zZXJ0aW9ucygrKSwgNjkgZGVs ZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNk Yy9hdG1lbF9obGNkY19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxf aGxjZGNfY3J0Yy5jDQo+PiBpbmRleCA1ODE4NGNkNmFiMGIuLjdjOWNmN2MwYzc1ZCAxMDA2NDQN Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMN Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMN Cj4+IEBAIC0xMzksMTAgKzEzOSwxMCBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19jcnRjX21v ZGVfc2V0X25vZmIoc3RydWN0IGRybV9jcnRjICpjKQ0KPj4gICAJc3RhdGUgPSBkcm1fY3J0Y19z dGF0ZV90b19hdG1lbF9obGNkY19jcnRjX3N0YXRlKGMtPnN0YXRlKTsNCj4+ICAgCWNmZyA9IHN0 YXRlLT5vdXRwdXRfbW9kZSA8PCA4Ow0KPj4gICANCj4+IC0JaWYgKGFkai0+ZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX05WU1lOQykNCj4+ICsJaWYgKCFjcnRjLT5kYy0+aXNfeGxjZGMgJiYgKGFkai0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX05WU1lOQykpDQo+PiAgIAkJY2ZnIHw9IEFUTUVMX0hMQ0RD X1ZTUE9MOw0KPj4gICANCj4+IC0JaWYgKGFkai0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX05IU1lO QykNCj4+ICsJaWYgKCFjcnRjLT5kYy0+aXNfeGxjZGMgJiYgKGFkai0+ZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX05IU1lOQykpDQo+PiAgIAkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0hTUE9MOw0KPj4gICAN Cj4+ICAgCXJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIEFUTUVMX0hMQ0RDX0NGRyg1KSwNCj4+ IEBAIC0xNzcsNiArMTc3LDE4IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX2NydGNfYXRvbWlj X2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjLA0KPj4gICANCj4+ICAgCXBtX3J1bnRpbWVfZ2V0 X3N5bmMoZGV2LT5kZXYpOw0KPj4gICANCj4+ICsJaWYgKGNydGMtPmRjLT5pc194bGNkYykgew0K Pj4gKwkJcmVnbWFwX3dyaXRlKHJlZ21hcCwgQVRNRUxfSExDRENfRElTLCBBVE1FTF9YTENEQ19D TSk7DQo+PiArCQl3aGlsZSAoIXJlZ21hcF9yZWFkKHJlZ21hcCwgQVRNRUxfSExDRENfU1IsICZz dGF0dXMpICYmDQo+PiArCQkgICAgICAgKHN0YXR1cyAmIEFUTUVMX1hMQ0RDX0NNKSkNCj4+ICsJ CQljcHVfcmVsYXgoKTsNCj4gDQo+IEEgdGltZW91dCB3b3VsZCBiZSBnb2QgaGVyZSB0byBhdm9p ZCBwb3RlbnRpYWwgaW5maW5pdGUgbG9vcCAoZm9yIGRpZmZlcmVudA0KPiByZWFzb25zKS4gWW91 IGNhbiBjaGVjayByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQoKS4gU2FtZSBmb3IgdGhlIHJlc3Qg b2YNCj4gd2hpbGUgbG9vcHMgYWJvdmUuDQpJIHdpbGwgYWRkcmVzcyBhbGwgdGhlIGNvbW1lbnRz IGdpdmVuLCBUaGFuayB5b3UuDQo+IA0KPj4gKw0KPj4gKwkJcmVnbWFwX3dyaXRlKHJlZ21hcCwg QVRNRUxfSExDRENfRElTLCBBVE1FTF9YTENEQ19TRCk7DQo+PiArCQl3aGlsZSAoIXJlZ21hcF9y ZWFkKHJlZ21hcCwgQVRNRUxfSExDRENfU1IsICZzdGF0dXMpICYmDQo+PiArCQkgICAgICAgIShz dGF0dXMgJiBBVE1FTF9YTENEQ19TRCkpDQo+PiArCQkJY3B1X3JlbGF4KCk7DQo+PiArCX0NCj4+ ICsNCj4+ICAgCXJlZ21hcF93cml0ZShyZWdtYXAsIEFUTUVMX0hMQ0RDX0RJUywgQVRNRUxfSExD RENfRElTUCk7DQo+PiAgIAl3aGlsZSAoIXJlZ21hcF9yZWFkKHJlZ21hcCwgQVRNRUxfSExDRENf U1IsICZzdGF0dXMpICYmDQo+PiAgIAkgICAgICAgKHN0YXR1cyAmIEFUTUVMX0hMQ0RDX0RJU1Ap KQ0KPj4gQEAgLTIzMSw2ICsyNDMsMTggQEAgc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfY3J0Y19h dG9taWNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqYywNCj4+ICAgCSAgICAgICAhKHN0YXR1cyAm IEFUTUVMX0hMQ0RDX0RJU1ApKQ0KPj4gICAJCWNwdV9yZWxheCgpOw0KPj4gICANCj4+ICsJaWYg KGNydGMtPmRjLT5pc194bGNkYykgew0KPj4gKwkJcmVnbWFwX3dyaXRlKHJlZ21hcCwgQVRNRUxf SExDRENfRU4sIEFUTUVMX1hMQ0RDX0NNKTsNCj4+ICsJCXdoaWxlICghcmVnbWFwX3JlYWQocmVn bWFwLCBBVE1FTF9ITENEQ19TUiwgJnN0YXR1cykgJiYNCj4+ICsJCSAgICAgICAhKHN0YXR1cyAm IEFUTUVMX1hMQ0RDX0NNKSkNCj4+ICsJCQljcHVfcmVsYXgoKTsNCj4+ICsNCj4+ICsJCXJlZ21h cF93cml0ZShyZWdtYXAsIEFUTUVMX0hMQ0RDX0VOLCBBVE1FTF9YTENEQ19TRCk7DQo+PiArCQl3 aGlsZSAoIXJlZ21hcF9yZWFkKHJlZ21hcCwgQVRNRUxfSExDRENfU1IsICZzdGF0dXMpICYmDQo+ PiArCQkgICAgICAgKHN0YXR1cyAmIEFUTUVMX1hMQ0RDX1NEKSkNCj4+ICsJCQljcHVfcmVsYXgo KTsNCj4+ICsJfQ0KPj4gKw0KPj4gICAJcG1fcnVudGltZV9wdXRfc3luYyhkZXYtPmRldik7DQo+ PiAgIA0KPj4gICB9DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2Rj L2F0bWVsX2hsY2RjX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxf aGxjZGNfcGxhbmUuYw0KPj4gaW5kZXggZGFhNTA4NTA0ZjQ3Li5mZTMzNDc2ODE4YzQgMTAwNjQ0 DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfcGxhbmUu Yw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5l LmMNCj4+IEBAIC0zMzAsMTEgKzMzMCw1OSBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19wbGFu ZV9zZXR1cF9zY2FsZXIoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwNCj4+ICAgCQkJ CQkJCQkgICAgIHlmYWN0b3IpKTsNCj4+ICAgfQ0KPj4gICANCj4+ICtzdGF0aWMgdm9pZCBhdG1l bF94bGNkY19wbGFuZV9zZXR1cF9zY2FsZXIoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFu ZSwNCj4+ICsJCQkJCSAgIHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZV9zdGF0ZSAqc3RhdGUpDQo+ PiArew0KPj4gKwljb25zdCBzdHJ1Y3QgYXRtZWxfaGxjZGNfbGF5ZXJfZGVzYyAqZGVzYyA9IHBs YW5lLT5sYXllci5kZXNjOw0KPj4gKwl1MzIgeGZhY3RvciwgeWZhY3RvcjsNCj4+ICsNCj4+ICsJ aWYgKCFkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZpZykNCj4+ICsJCXJldHVybjsNCj4+ICsNCj4+ ICsJaWYgKHN0YXRlLT5jcnRjX3cgPT0gc3RhdGUtPnNyY193ICYmIHN0YXRlLT5jcnRjX2ggPT0g c3RhdGUtPnNyY19oKSB7DQo+PiArCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5l LT5sYXllciwNCj4+ICsJCQkJCSAgICBkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZpZywgMCk7DQo+ PiArCQlyZXR1cm47DQo+PiArCX0NCj4+ICsNCj4+ICsJLyogeGZhY3RvciA9IHJvdW5kWygyXjIw ICogWE1FTVNJWkUpL1hTSVpFKV0gKi8NCj4+ICsJeGZhY3RvciA9ICgxMDQ4NTc2ICogc3RhdGUt PnNyY193KSAvIHN0YXRlLT5jcnRjX3c7DQo+PiArDQo+PiArCS8qIHlmYWN0b3IgPSByb3VuZFso Ml4yMCAqIFlNRU1TSVpFKS9ZU0laRSldICovDQo+PiArCXlmYWN0b3IgPSAoMTA0ODU3NiAqIHN0 YXRlLT5zcmNfaCkgLyBzdGF0ZS0+Y3J0Y19oOw0KPj4gKw0KPj4gKwlhdG1lbF9obGNkY19sYXll cl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwgZGVzYy0+bGF5b3V0LnNjYWxlcl9jb25maWcsDQo+ PiArCQkJCSAgICBBVE1FTF9YTENEQ19MQVlFUl9WU0NBTEVSX0xVTUFfRU5BQkxFIHwNCj4+ICsJ CQkJICAgIEFUTUVMX1hMQ0RDX0xBWUVSX1ZTQ0FMRVJfQ0hST01BX0VOQUJMRSB8DQo+PiArCQkJ CSAgICBBVE1FTF9YTENEQ19MQVlFUl9IU0NBTEVSX0xVTUFfRU5BQkxFIHwNCj4+ICsJCQkJICAg IEFUTUVMX1hMQ0RDX0xBWUVSX0hTQ0FMRVJfQ0hST01BX0VOQUJMRSk7DQo+PiArDQo+PiArCWF0 bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLCBkZXNjLT5sYXlvdXQuc2Nh bGVyX2NvbmZpZyArIDEsDQo+PiArCQkJCSAgICB5ZmFjdG9yKTsNCj4+ICsJYXRtZWxfaGxjZGNf bGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5zY2FsZXJfY29uZmln ICsgMywNCj4+ICsJCQkJICAgIHhmYWN0b3IpOw0KPj4gKw0KPj4gKwkvKiBBcyBwZXIgWUNiQ3Ig d2luZG93IHJlc2FtcGxpbmcgY29uZmlndXJhdGlvbiAqLw0KPj4gKwlpZiAoc3RhdGUtPmJhc2Uu ZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfWVVWNDIwKSB7DQo+PiArCQlhdG1lbF9o bGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwgZGVzYy0+bGF5b3V0LnNjYWxlcl9j b25maWcgKyAyLA0KPj4gKwkJCQkJICAgIHlmYWN0b3IgLyAyKTsNCj4+ICsJCWF0bWVsX2hsY2Rj X2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLCBkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZp ZyArIDQsDQo+PiArCQkJCQkgICAgeGZhY3RvciAvIDIpOw0KPj4gKwl9IGVsc2Ugew0KPj4gKwkJ LyogQXMgcGVyIEFSR0Igd2luZG93IHJlc2FtcGxpbmcgY29uZmlndXJhdGlvbiAqLw0KPj4gKwkJ YXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5z Y2FsZXJfY29uZmlnICsgMiwNCj4+ICsJCQkJCSAgICB5ZmFjdG9yKTsNCj4+ICsJCWF0bWVsX2hs Y2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLCBkZXNjLT5sYXlvdXQuc2NhbGVyX2Nv bmZpZyArIDQsDQo+PiArCQkJCQkgICAgeGZhY3Rvcik7DQo+PiArCX0NCj4+ICt9DQo+PiArDQo+ PiAgIHN0YXRpYyB2b2lkDQo+PiAgIGF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0ZV9wb3NfYW5kX3Np emUoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwNCj4+ICAgCQkJCSAgICAgIHN0cnVj dCBhdG1lbF9obGNkY19wbGFuZV9zdGF0ZSAqc3RhdGUpDQo+PiAgIHsNCj4+ICAgCWNvbnN0IHN0 cnVjdCBhdG1lbF9obGNkY19sYXllcl9kZXNjICpkZXNjID0gcGxhbmUtPmxheWVyLmRlc2M7DQo+ PiArCXN0cnVjdCBhdG1lbF9obGNkY19kYyAqZGMgPSBwbGFuZS0+YmFzZS5kZXYtPmRldl9wcml2 YXRlOw0KPj4gICANCj4+ICAgCWlmIChkZXNjLT5sYXlvdXQuc2l6ZSkNCj4+ICAgCQlhdG1lbF9o bGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwgZGVzYy0+bGF5b3V0LnNpemUsDQo+ PiBAQCAtMzUyLDcgKzQwMCwxMCBAQCBhdG1lbF9obGNkY19wbGFuZV91cGRhdGVfcG9zX2FuZF9z aXplKHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsDQo+PiAgIAkJCQkJQVRNRUxfSExD RENfTEFZRVJfUE9TKHN0YXRlLT5jcnRjX3gsDQo+PiAgIAkJCQkJCQkgICAgICBzdGF0ZS0+Y3J0 Y195KSk7DQo+PiAgIA0KPj4gLQlhdG1lbF9obGNkY19wbGFuZV9zZXR1cF9zY2FsZXIocGxhbmUs IHN0YXRlKTsNCj4+ICsJaWYgKCEoZGMtPmlzX3hsY2RjKSkNCj4gDQo+IFlvdSBjYW4gcmV2ZXJz ZSB0aGUgbG9naWMgaGVyZSB0byBhdm9pZCAhZGMtPmlzX3hsY2RjLiBBbHNvLCBubyBuZWVkIGZv ciAoKQ0KPiBhcm91bmQgZGMtPmlzX3hsY2RjDQo+IA0KPj4gKwkJYXRtZWxfaGxjZGNfcGxhbmVf c2V0dXBfc2NhbGVyKHBsYW5lLCBzdGF0ZSk7DQo+PiArCWVsc2UNCj4+ICsJCWF0bWVsX3hsY2Rj X3BsYW5lX3NldHVwX3NjYWxlcihwbGFuZSwgc3RhdGUpOw0KPj4gICB9DQo+PiAgIA0KPj4gICBz dGF0aWMgdm9pZA0KPj4gQEAgLTM2MiwzMyArNDEzLDU4IEBAIGF0bWVsX2hsY2RjX3BsYW5lX3Vw ZGF0ZV9nZW5lcmFsX3NldHRpbmdzKHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsDQo+ PiAgIAl1bnNpZ25lZCBpbnQgY2ZnID0gQVRNRUxfSExDRENfTEFZRVJfRE1BX0JMRU5fSU5DUjE2 IHwgc3RhdGUtPmFoYl9pZDsNCj4+ICAgCWNvbnN0IHN0cnVjdCBhdG1lbF9obGNkY19sYXllcl9k ZXNjICpkZXNjID0gcGxhbmUtPmxheWVyLmRlc2M7DQo+PiAgIAljb25zdCBzdHJ1Y3QgZHJtX2Zv cm1hdF9pbmZvICpmb3JtYXQgPSBzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0Ow0KPj4gLQ0KPiANCj4g ZXh0cmEgbGluZQ0KPiANCj4+ICsJc3RydWN0IGF0bWVsX2hsY2RjX2RjICpkYyA9IHBsYW5lLT5i YXNlLmRldi0+ZGV2X3ByaXZhdGU7DQo+PiAgIAkvKg0KPj4gICAJICogUm90YXRpb24gb3B0aW1p emF0aW9uIGlzIG5vdCB3b3JraW5nIG9uIFJHQjg4OCAocm90YXRpb24gaXMgc3RpbGwNCj4+ICAg CSAqIHdvcmtpbmcgYnV0IHdpdGhvdXQgYW55IG9wdGltaXphdGlvbikuDQo+PiAgIAkgKi8NCj4+ IC0JaWYgKGZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfUkdCODg4KQ0KPj4gKwlpZiAoKCEo ZGMtPmlzX3hsY2RjKSkgJiYgZm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9SR0I4ODgpDQo+ IA0KPiBObyBuZWVkIGZvciBleHRyYSAoKS4NCj4gDQo+PiAgIAkJY2ZnIHw9IEFUTUVMX0hMQ0RD X0xBWUVSX0RNQV9ST1RESVM7DQo+PiAgIA0KPj4gLQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9j ZmcoJnBsYW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfRE1BX0NGRywNCj4+IC0JCQkJICAg IGNmZyk7DQo+PiArCWlmICghKGRjLT5pc194bGNkYykpIHsNCj4gDQo+IG5vIG5lZWQgZm9yIGV4 dHJhICgpDQo+IA0KPj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5 ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0RNQV9DRkcsDQo+PiArCQkJCQkgICAgY2ZnKTsNCj4+ICAg DQo+PiAtCWNmZyA9IEFUTUVMX0hMQ0RDX0xBWUVSX0RNQSB8IEFUTUVMX0hMQ0RDX0xBWUVSX1JF UDsNCj4+ICsJCWNmZyA9IEFUTUVMX0hMQ0RDX0xBWUVSX0RNQSB8IEFUTUVMX0hMQ0RDX0xBWUVS X1JFUDsNCj4+ICsJfSBlbHNlIHsNCj4+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygm cGxhbmUtPmxheWVyLCBBVE1FTF9YTENEQ19MQVlFUl9ETUFfQ0ZHLA0KPj4gKwkJCQkJICAgIGNm Zyk7DQo+PiArDQo+PiArCQljZmcgPSBBVE1FTF9YTENEQ19MQVlFUl9ETUEgfCBBVE1FTF9YTENE Q19MQVlFUl9SRVA7DQo+PiArCX0NCj4+ICAgDQo+PiAgIAlpZiAocGxhbmUtPmJhc2UudHlwZSAh PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKSB7DQo+PiAtCQljZmcgfD0gQVRNRUxfSExDRENfTEFZ RVJfT1ZSIHwgQVRNRUxfSExDRENfTEFZRVJfSVRFUjJCTCB8DQo+PiAtCQkgICAgICAgQVRNRUxf SExDRENfTEFZRVJfSVRFUjsNCj4+ICsJCWlmICghKGRjLT5pc194bGNkYykpIHsNCj4gDQo+IG5v IG5lZWQgZm9yIGV4dHJhICgpLiBTYW1lIGZvciB0aGUgcmVzdCBvZiBvY2N1cmVuY2llcyBhYm92 ZS4gQWxzbywgeW91IGNhbg0KPiByZXZlcnNlIHRoZSBsb2dpYyB0byBhdm9pZCAhIGluIGZyb250 IG9mIChkYy0+aXNfeGxjZGMpDQo+IA0KPj4gKwkJCWNmZyB8PSBBVE1FTF9ITENEQ19MQVlFUl9P VlIgfCBBVE1FTF9ITENEQ19MQVlFUl9JVEVSMkJMIHwNCj4+ICsJCQkgICAgICAgQVRNRUxfSExD RENfTEFZRVJfSVRFUjsNCj4+ICsNCj4+ICsJCQlpZiAoZm9ybWF0LT5oYXNfYWxwaGEpDQo+PiAr CQkJCWNmZyB8PSBBVE1FTF9ITENEQ19MQVlFUl9MQUVOOw0KPj4gKwkJCWVsc2UNCj4+ICsJCQkJ Y2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX0dBRU4gfA0KPj4gKwkJCQkgICAgICAgQVRNRUxfSExD RENfTEFZRVJfR0Eoc3RhdGUtPmJhc2UuYWxwaGEpOw0KPj4gKwkJfSBlbHNlIHsNCj4+ICsJCQkv Kg0KPj4gKwkJCSAqIEFscGhhIEJsZW5kaW5nIGJpdHMgc3BlY2lmaWMgdG8gU0FNOVg3IFNvQw0K Pj4gKwkJCSAqLw0KPj4gKwkJCWNmZyB8PSBBVE1FTF9YTENEQ19MQVlFUl9TRkFDVENfQTBfTVVM VF9BUyB8DQo+PiArCQkJICAgICAgIEFUTUVMX1hMQ0RDX0xBWUVSX1NGQUNUQV9PTkUgfA0KPj4g KwkJCSAgICAgICBBVE1FTF9YTENEQ19MQVlFUl9ERkFDVENfTV9BMF9NVUxUX0FTIHwNCj4+ICsJ CQkgICAgICAgQVRNRUxfWExDRENfTEFZRVJfREZBQ1RBX09ORTsNCj4+ICsJCQlpZiAoZm9ybWF0 LT5oYXNfYWxwaGEpDQo+PiArCQkJCWNmZyB8PSBBVE1FTF9YTENEQ19MQVlFUl9BMCgweGZmKTsN Cj4+ICsJCQllbHNlDQo+PiArCQkJCWNmZyB8PSBBVE1FTF9YTENEQ19MQVlFUl9BMChzdGF0ZS0+ YmFzZS5hbHBoYSk7DQo+PiArCQl9DQo+PiArCX0NCj4+ICAgDQo+PiAtCQlpZiAoZm9ybWF0LT5o YXNfYWxwaGEpDQo+PiAtCQkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX0xBRU47DQo+PiArCWlm IChzdGF0ZS0+ZGlzY19oICYmIHN0YXRlLT5kaXNjX3cpIHsNCj4+ICsJCWlmICghKGRjLT5pc194 bGNkYykpDQo+PiArCQkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX0RJU0NFTjsNCj4+ICAgCQll bHNlDQo+PiAtCQkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX0dBRU4gfA0KPj4gLQkJCSAgICAg ICBBVE1FTF9ITENEQ19MQVlFUl9HQShzdGF0ZS0+YmFzZS5hbHBoYSk7DQo+PiArCQkJY2ZnIHw9 IEFUTUVMX1hMQ0RDX0xBWUVSX0RJU0NFTjsNCj4+ICAgCX0NCj4+ICAgDQo+PiAtCWlmIChzdGF0 ZS0+ZGlzY19oICYmIHN0YXRlLT5kaXNjX3cpDQo+PiAtCQljZmcgfD0gQVRNRUxfSExDRENfTEFZ RVJfRElTQ0VOOw0KPj4gLQ0KPj4gICAJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFu ZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5nZW5lcmFsX2NvbmZpZywNCj4+ICAgCQkJCSAgICBjZmcp Ow0KPj4gICB9DQo+PiBAQCAtNDQxLDMzICs1MTcsNDIgQEAgc3RhdGljIHZvaWQgYXRtZWxfaGxj ZGNfcGxhbmVfdXBkYXRlX2J1ZmZlcnMoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwN Cj4+ICAgCQkJCQlzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmVfc3RhdGUgKnN0YXRlKQ0KPj4gICB7 DQo+PiAgIAljb25zdCBzdHJ1Y3QgYXRtZWxfaGxjZGNfbGF5ZXJfZGVzYyAqZGVzYyA9IHBsYW5l LT5sYXllci5kZXNjOw0KPj4gKwlzdHJ1Y3QgYXRtZWxfaGxjZGNfZGMgKmRjID0gcGxhbmUtPmJh c2UuZGV2LT5kZXZfcHJpdmF0ZTsNCj4+ICAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g c3RhdGUtPmJhc2UuZmI7DQo+PiAgIAl1MzIgc3I7DQo+PiAgIAlpbnQgaTsNCj4+ICAgDQo+PiAt CXNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfSExD RENfTEFZRVJfQ0hTUik7DQo+PiArCWlmICghKGRjLT5pc194bGNkYykpDQo+IA0KPiBZb3UgY2Fu IHJldmVyc2UgdGhlIGxvZ2ljDQo+IA0KPj4gKwkJc3IgPSBhdG1lbF9obGNkY19sYXllcl9yZWFk X3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9DSFNSKTsNCj4+ICsJZWxzZQ0K Pj4gKwkJc3IgPSBhdG1lbF9obGNkY19sYXllcl9yZWFkX3JlZygmcGxhbmUtPmxheWVyLCBBVE1F TF9YTENEQ19MQVlFUl9FTlIpOw0KPj4gICANCj4+ICAgCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+ bnBsYW5lczsgaSsrKSB7DQo+PiAgIAkJc3RydWN0IGRybV9nZW1fZG1hX29iamVjdCAqZ2VtID0g ZHJtX2ZiX2RtYV9nZXRfZ2VtX29iaihmYiwgaSk7DQo+PiAgIA0KPj4gICAJCXN0YXRlLT5kc2Ny c1tpXS0+YWRkciA9IGdlbS0+ZG1hX2FkZHIgKyBzdGF0ZS0+b2Zmc2V0c1tpXTsNCj4+ICAgDQo+ PiAtCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWcoJnBsYW5lLT5sYXllciwNCj4+IC0JCQkJ CSAgICBBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9IRUFEKGkpLA0KPj4gLQkJCQkJICAgIHN0YXRl LT5kc2Nyc1tpXS0+c2VsZik7DQo+PiAtDQo+PiAtCQlpZiAoIShzciAmIEFUTUVMX0hMQ0RDX0xB WUVSX0VOKSkgew0KPj4gLQkJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxh eWVyLA0KPj4gLQkJCQkJQVRNRUxfSExDRENfTEFZRVJfUExBTkVfQUREUihpKSwNCj4+IC0JCQkJ CXN0YXRlLT5kc2Nyc1tpXS0+YWRkcik7DQo+PiArCQlpZiAoIShkYy0+aXNfeGxjZGMpKSB7DQo+ IA0KPiB5b3UgY2FuIHJldmVyc2UgdGhlIGxvZ2ljDQo+IA0KPj4gICAJCQlhdG1lbF9obGNkY19s YXllcl93cml0ZV9yZWcoJnBsYW5lLT5sYXllciwNCj4+IC0JCQkJCUFUTUVMX0hMQ0RDX0xBWUVS X1BMQU5FX0NUUkwoaSksDQo+PiAtCQkJCQlzdGF0ZS0+ZHNjcnNbaV0tPmN0cmwpOw0KPj4gKwkJ CQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9IRUFEKGkpLA0KPj4gKwkJCQkJCSAgICBz dGF0ZS0+ZHNjcnNbaV0tPnNlbGYpOw0KPj4gKw0KPj4gKwkJCWlmICghKHNyICYgQVRNRUxfSExD RENfTEFZRVJfRU4pKSB7DQo+PiArCQkJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxh bmUtPmxheWVyLA0KPj4gKwkJCQkJCQkgICAgQVRNRUxfSExDRENfTEFZRVJfUExBTkVfQUREUihp KSwNCj4+ICsJCQkJCQkJICAgIHN0YXRlLT5kc2Nyc1tpXS0+YWRkcik7DQo+PiArCQkJCWF0bWVs X2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVyLA0KPj4gKwkJCQkJCQkgICAgQVRN RUxfSExDRENfTEFZRVJfUExBTkVfQ1RSTChpKSwNCj4+ICsJCQkJCQkJICAgIHN0YXRlLT5kc2Ny c1tpXS0+Y3RybCk7DQo+PiArCQkJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUt PmxheWVyLA0KPj4gKwkJCQkJCQkgICAgQVRNRUxfSExDRENfTEFZRVJfUExBTkVfTkVYVChpKSwN Cj4+ICsJCQkJCQkJICAgIHN0YXRlLT5kc2Nyc1tpXS0+c2VsZik7DQo+PiArCQkJfQ0KPj4gKwkJ fSBlbHNlIHsNCj4+ICAgCQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5 ZXIsDQo+PiAtCQkJCQlBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9ORVhUKGkpLA0KPj4gLQkJCQkJ c3RhdGUtPmRzY3JzW2ldLT5zZWxmKTsNCj4+ICsJCQkJCQkgICAgQVRNRUxfWExDRENfTEFZRVJf UExBTkVfQUREUihpKSwNCj4+ICsJCQkJCQkgICAgc3RhdGUtPmRzY3JzW2ldLT5hZGRyKTsNCj4+ ICAgCQl9DQo+PiAtDQo+PiAgIAkJaWYgKGRlc2MtPmxheW91dC54c3RyaWRlW2ldKQ0KPj4gICAJ CQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4+ICAgCQkJCQkJ ICAgIGRlc2MtPmxheW91dC54c3RyaWRlW2ldLA0KPj4gQEAgLTcxNiwxOSArODAxLDMxIEBAIHN0 YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxh bmUgKnAsDQo+PiAgIAkJCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpDQo+ PiAgIHsNCj4+ICAgCXN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUgPSBkcm1fcGxhbmVf dG9fYXRtZWxfaGxjZGNfcGxhbmUocCk7DQo+PiAtDQo+IA0KPiBZb3UgY2FuIGtlZXAgdGhpcyBs aW5lIGFmdGUgdGhlIGFib3ZlIHZhcmlhYmxlLg0KPiANCj4+ICsJc3RydWN0IGF0bWVsX2hsY2Rj X2RjICpkYyA9IHBsYW5lLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7DQo+PiAgIAkvKiBEaXNhYmxl IGludGVycnVwdHMgKi8NCj4+IC0JYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+ bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0lEUiwNCj4+IC0JCQkJICAgIDB4ZmZmZmZmZmYpOw0K Pj4gKwlpZiAoIShkYy0+aXNfeGxjZGMpKQ0KPiANCj4geW91IGNhbiByZXZlcnNlIHRoZSBsb2dp Yw0KPiANCj4+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVyLCBB VE1FTF9ITENEQ19MQVlFUl9JRFIsDQo+PiArCQkJCQkgICAgMHhmZmZmZmZmZik7DQo+PiArCWVs c2UNCj4+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVyLCBBVE1F TF9YTENEQ19MQVlFUl9JRFIsDQo+PiArCQkJCQkgICAgMHhmZmZmZmZmZik7DQo+PiAgIA0KPj4g ICAJLyogRGlzYWJsZSB0aGUgbGF5ZXIgKi8NCj4+IC0JYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVf cmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0NIRFIsDQo+PiAtCQkJCSAgICBB VE1FTF9ITENEQ19MQVlFUl9SU1QgfA0KPj4gLQkJCQkgICAgQVRNRUxfSExDRENfTEFZRVJfQTJR IHwNCj4+IC0JCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX1VQREFURSk7DQo+PiArCWlmICghKGRj LT5pc194bGNkYykpDQo+IA0KPiBzYW1lIGhlcmUuDQo+IA0KPj4gKwkJYXRtZWxfaGxjZGNfbGF5 ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+PiArCQkJCQkgICAgQVRNRUxfSExDRENfTEFZ RVJfQ0hEUiwNCj4+ICsJCQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9SU1QgfA0KPj4gKwkJCQkJ ICAgIEFUTUVMX0hMQ0RDX0xBWUVSX0EyUSB8DQo+PiArCQkJCQkgICAgQVRNRUxfSExDRENfTEFZ RVJfVVBEQVRFKTsNCj4+ICsJZWxzZQ0KPj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVn KCZwbGFuZS0+bGF5ZXIsDQo+PiArCQkJCQkgICAgQVRNRUxfWExDRENfTEFZRVJfRU5SLCAwKTsN Cj4+ICAgDQo+PiAgIAkvKiBDbGVhciBhbGwgcGVuZGluZyBpbnRlcnJ1cHRzICovDQo+PiAtCWF0 bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVS X0lTUik7DQo+PiArCWlmICghKGRjLT5pc194bGNkYykpDQo+PiArCQlhdG1lbF9obGNkY19sYXll cl9yZWFkX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9JU1IpOw0KPj4gKwll bHNlDQo+PiArCQlhdG1lbF9obGNkY19sYXllcl9yZWFkX3JlZygmcGxhbmUtPmxheWVyLCBBVE1F TF9YTENEQ19MQVlFUl9JU1IpOw0KPj4gICB9DQo+PiAgIA0KPj4gICBzdGF0aWMgdm9pZCBhdG1l bF9obGNkY19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnAsDQo+PiBAQCAt NzM5LDYgKzgzNiw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX2F0b21pY191cGRh dGUoc3RydWN0IGRybV9wbGFuZSAqcCwNCj4+ICAgCXN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAq cGxhbmUgPSBkcm1fcGxhbmVfdG9fYXRtZWxfaGxjZGNfcGxhbmUocCk7DQo+PiAgIAlzdHJ1Y3Qg YXRtZWxfaGxjZGNfcGxhbmVfc3RhdGUgKmhzdGF0ZSA9DQo+PiAgIAkJCWRybV9wbGFuZV9zdGF0 ZV90b19hdG1lbF9obGNkY19wbGFuZV9zdGF0ZShuZXdfcyk7DQo+PiArCXN0cnVjdCBhdG1lbF9o bGNkY19kYyAqZGMgPSBwLT5kZXYtPmRldl9wcml2YXRlOw0KPj4gICAJdTMyIHNyOw0KPj4gICAN Cj4+ICAgCWlmICghbmV3X3MtPmNydGMgfHwgIW5ld19zLT5mYikNCj4+IEBAIC03NTYsMjMgKzg1 NCw0NiBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVj dCBkcm1fcGxhbmUgKnAsDQo+PiAgIAlhdG1lbF9obGNkY19wbGFuZV91cGRhdGVfYnVmZmVycyhw bGFuZSwgaHN0YXRlKTsNCj4+ICAgCWF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0ZV9kaXNjX2FyZWEo cGxhbmUsIGhzdGF0ZSk7DQo+PiAgIA0KPj4gLQkvKiBFbmFibGUgdGhlIG92ZXJydW4gaW50ZXJy dXB0cy4gKi8NCj4+IC0JYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIs IEFUTUVMX0hMQ0RDX0xBWUVSX0lFUiwNCj4+IC0JCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX09W Ul9JUlEoMCkgfA0KPj4gLQkJCQkgICAgQVRNRUxfSExDRENfTEFZRVJfT1ZSX0lSUSgxKSB8DQo+ PiAtCQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDIpKTsNCj4+IC0NCj4+IC0JLyog QXBwbHkgdGhlIG5ldyBjb25maWcgYXQgdGhlIG5leHQgU09GIGV2ZW50LiAqLw0KPj4gLQlzciA9 IGF0bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xB WUVSX0NIU1IpOw0KPj4gLQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWcoJnBsYW5lLT5sYXll ciwgQVRNRUxfSExDRENfTEFZRVJfQ0hFUiwNCj4+IC0JCQlBVE1FTF9ITENEQ19MQVlFUl9VUERB VEUgfA0KPj4gLQkJCShzciAmIEFUTUVMX0hMQ0RDX0xBWUVSX0VOID8NCj4+IC0JCQkgQVRNRUxf SExDRENfTEFZRVJfQTJRIDogQVRNRUxfSExDRENfTEFZRVJfRU4pKTsNCj4+ICsJaWYgKCEoZGMt PmlzX3hsY2RjKSkgew0KPiANCj4gc2FtZSBoZXJlDQo+IA0KPj4gKwkJLyogRW5hYmxlIHRoZSBv dmVycnVuIGludGVycnVwdHMuICovDQo+PiArCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWco JnBsYW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfSUVSLA0KPj4gKwkJCQkJICAgIEFUTUVM X0hMQ0RDX0xBWUVSX09WUl9JUlEoMCkgfA0KPj4gKwkJCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVS X09WUl9JUlEoMSkgfA0KPj4gKwkJCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX09WUl9JUlEoMikp Ow0KPj4gKw0KPj4gKwkJLyogQXBwbHkgdGhlIG5ldyBjb25maWcgYXQgdGhlIG5leHQgU09GIGV2 ZW50LiAqLw0KPj4gKwkJc3IgPSBhdG1lbF9obGNkY19sYXllcl9yZWFkX3JlZygmcGxhbmUtPmxh eWVyLCBBVE1FTF9ITENEQ19MQVlFUl9DSFNSKTsNCj4+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dy aXRlX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9DSEVSLA0KPj4gKwkJCQkJ ICAgIEFUTUVMX0hMQ0RDX0xBWUVSX1VQREFURSB8DQo+PiArCQkJCQkgICAgKHNyICYgQVRNRUxf SExDRENfTEFZRVJfRU4gPw0KPj4gKwkJCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX0EyUSA6IEFU TUVMX0hMQ0RDX0xBWUVSX0VOKSk7DQo+PiArCX0gZWxzZSB7DQo+PiArCQkvKiBFbmFibGUgdGhl IG92ZXJydW4gaW50ZXJydXB0cy4gKi8NCj4+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3Jl ZygmcGxhbmUtPmxheWVyLCBBVE1FTF9YTENEQ19MQVlFUl9JRVIsDQo+PiArCQkJCQkgICAgQVRN RUxfWExDRENfTEFZRVJfT1ZSX0lSUSgwKSB8DQo+PiArCQkJCQkgICAgQVRNRUxfWExDRENfTEFZ RVJfT1ZSX0lSUSgxKSB8DQo+PiArCQkJCQkgICAgQVRNRUxfWExDRENfTEFZRVJfT1ZSX0lSUSgy KSk7DQo+PiArDQo+PiArCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWcoJnBsYW5lLT5sYXll ciwgQVRNRUxfWExDRENfTEFZRVJfRU5SLA0KPj4gKwkJCQkJICAgIEFUTUVMX1hMQ0RDX0xBWUVS X0VOKTsNCj4+ICsJfQ0KPj4gKw0KPj4gKwkvKg0KPj4gKwkgKiBVcGRhdGluZyBYTENEQ194eHhD Rkd4LCBYTENEQ194eHhGQkEgYW5kIFhMQ0RDX3h4eEVOLA0KPj4gKwkgKiAod2hlcmUgeHh4IGlu ZGljYXRlcyBlYWNoIGxheWVyKSByZXF1aXJlcyB3cml0aW5nIG9uZSB0byB0aGUNCj4+ICsJICog VXBkYXRlIEF0dHJpYnV0ZSBmaWVsZCBmb3IgZWFjaCBsYXllciBpbiBMQ0RDX0FUVFJFIHJlZ2lz dGVyIGZvciBTQU05WDcuDQo+PiArCSAqLw0KPj4gKwlpZiAoZGMtPmlzX3hsY2RjKSB7DQo+PiAr CQlyZWdtYXBfd3JpdGUoZGMtPmhsY2RjLT5yZWdtYXAsIEFUTUVMX1hMQ0RDX0FUVFJFLCBBVE1F TF9YTENEQ19CQVNFX1VQREFURSB8DQo+PiArCQkJICAgICBBVE1FTF9YTENEQ19PVlIxX1VQREFU RSB8IEFUTUVMX1hMQ0RDX09WUjNfVVBEQVRFIHwNCj4+ICsJCQkgICAgIEFUTUVMX1hMQ0RDX0hF T19VUERBVEUpOw0KPj4gKwl9DQo+PiAgIH0NCj4+ICAgDQo+PiAgIHN0YXRpYyBpbnQgYXRtZWxf aGxjZGNfcGxhbmVfaW5pdF9wcm9wZXJ0aWVzKHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxh bmUpDQo+PiAgIHsNCj4+ICAgCWNvbnN0IHN0cnVjdCBhdG1lbF9obGNkY19sYXllcl9kZXNjICpk ZXNjID0gcGxhbmUtPmxheWVyLmRlc2M7DQo+PiArCXN0cnVjdCBhdG1lbF9obGNkY19kYyAqZGMg PSBwbGFuZS0+YmFzZS5kZXYtPmRldl9wcml2YXRlOw0KPj4gICANCj4+ICAgCWlmIChkZXNjLT50 eXBlID09IEFUTUVMX0hMQ0RDX09WRVJMQVlfTEFZRVIgfHwNCj4+ICAgCSAgICBkZXNjLT50eXBl ID09IEFUTUVMX0hMQ0RDX0NVUlNPUl9MQVlFUikgew0KPj4gQEAgLTc5NiwyMCArOTE3LDUwIEBA IHN0YXRpYyBpbnQgYXRtZWxfaGxjZGNfcGxhbmVfaW5pdF9wcm9wZXJ0aWVzKHN0cnVjdCBhdG1l bF9obGNkY19wbGFuZSAqcGxhbmUpDQo+PiAgIAkJCXJldHVybiByZXQ7DQo+PiAgIAl9DQo+PiAg IA0KPj4gLQlpZiAoZGVzYy0+bGF5b3V0LmNzYykgew0KPj4gKwlpZiAoIShkYy0+aXNfeGxjZGMp KSB7DQo+IA0KPiB5b3UgY2FuIHJldmVyc2UgdGhlIGxvZ2ljDQo+IA0KPj4gKwkJaWYgKGRlc2Mt PmxheW91dC5jc2MpIHsNCj4+ICsJCQkvKg0KPj4gKwkJCSAqIFRPRE86IGRlY2FyZSBhICJ5dXYt dG8tcmdiLWNvbnYtZmFjdG9ycyIgcHJvcGVydHkgdG8gbGV0DQo+PiArCQkJICogdXNlcnNwYWNl IG1vZGlmeSB0aGVzZSBmYWN0b3JzICh1c2luZyBhIEJMT0IgcHJvcGVydHkgPykuDQo+PiArCQkJ ICovDQo+PiArCQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+ PiArCQkJCQkJICAgIGRlc2MtPmxheW91dC5jc2MsDQo+PiArCQkJCQkJICAgIDB4NGM5MDAwOTEp Ow0KPj4gKwkJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPj4g KwkJCQkJCSAgICBkZXNjLT5sYXlvdXQuY3NjICsgMSwNCj4+ICsJCQkJCQkgICAgMHg3YTVmNTA5 MCk7DQo+PiArCQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+ PiArCQkJCQkJICAgIGRlc2MtPmxheW91dC5jc2MgKyAyLA0KPj4gKwkJCQkJCSAgICAweDQwMDQw ODkwKTsNCj4+ICsJCX0NCj4+ICsJfSBlbHNlIHsNCj4+ICAgCQkvKg0KPj4gLQkJICogVE9ETzog ZGVjYXJlIGEgInl1di10by1yZ2ItY29udi1mYWN0b3JzIiBwcm9wZXJ0eSB0byBsZXQNCj4+IC0J CSAqIHVzZXJzcGFjZSBtb2RpZnkgdGhlc2UgZmFjdG9ycyAodXNpbmcgYSBCTE9CIHByb3BlcnR5 ID8pLg0KPj4gKwkJICogeXV2LXRvLXJnYi1jb252LWZhY3RvcnMgYXJlIG5vdyBkZWZpbmVkIGZy b20gTENEQ19IRU9DRkcxNiB0bw0KPj4gKwkJICogTENEQ19IRU9DRkcyMSByZWdpc3RlcnMgaW4g U0FNOVg3Lg0KPj4gICAJCSAqLw0KPj4gLQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZw bGFuZS0+bGF5ZXIsDQo+PiAtCQkJCQkgICAgZGVzYy0+bGF5b3V0LmNzYywNCj4+IC0JCQkJCSAg ICAweDRjOTAwMDkxKTsNCj4+IC0JCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUt PmxheWVyLA0KPj4gLQkJCQkJICAgIGRlc2MtPmxheW91dC5jc2MgKyAxLA0KPj4gLQkJCQkJICAg IDB4N2E1ZjUwOTApOw0KPj4gLQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+ bGF5ZXIsDQo+PiAtCQkJCQkgICAgZGVzYy0+bGF5b3V0LmNzYyArIDIsDQo+PiAtCQkJCQkgICAg MHg0MDA0MDg5MCk7DQo+PiArCQlpZiAoZGVzYy0+bGF5b3V0LmNzYykgew0KPj4gKwkJCWF0bWVs X2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPj4gKwkJCQkJCSAgICBkZXNj LT5sYXlvdXQuY3NjLA0KPj4gKwkJCQkJCSAgICAweDAwMDAwNDg4KTsNCj4+ICsJCQlhdG1lbF9o bGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4+ICsJCQkJCQkgICAgZGVzYy0+ bGF5b3V0LmNzYyArIDEsDQo+PiArCQkJCQkJICAgIDB4MDAwMDA2NDgpOw0KPj4gKwkJCWF0bWVs X2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPj4gKwkJCQkJCSAgICBkZXNj LT5sYXlvdXQuY3NjICsgMiwNCj4+ICsJCQkJCQkgICAgMHgxRUEwMDQ4MCk7DQo+PiArCQkJYXRt ZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+PiArCQkJCQkJICAgIGRl c2MtPmxheW91dC5jc2MgKyAzLA0KPj4gKwkJCQkJCSAgICAweDAwMDAxRDI4KTsNCj4+ICsJCQlh dG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4+ICsJCQkJCQkgICAg ZGVzYy0+bGF5b3V0LmNzYyArIDQsDQo+PiArCQkJCQkJICAgIDB4MDgxMDA0ODApOw0KPj4gKwkJ CWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPj4gKwkJCQkJCSAg ICBkZXNjLT5sYXlvdXQuY3NjICsgNSwNCj4+ICsJCQkJCQkgICAgMHgwMDAwMDAwMCk7DQo+PiAr CQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+PiArCQkJCQkJ ICAgIGRlc2MtPmxheW91dC5jc2MgKyA2LA0KPj4gKwkJCQkJCSAgICAweDAwMDAwMDA3KTsNCj4+ ICsJCX0NCj4+ICAgCX0NCj4+ICAgDQo+PiAgIAlyZXR1cm4gMDsNCj4+IEBAIC04MTksMTkgKzk3 MCwzMSBAQCB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX2lycShzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxh bmUgKnBsYW5lKQ0KPj4gICB7DQo+PiAgIAljb25zdCBzdHJ1Y3QgYXRtZWxfaGxjZGNfbGF5ZXJf ZGVzYyAqZGVzYyA9IHBsYW5lLT5sYXllci5kZXNjOw0KPj4gICAJdTMyIGlzcjsNCj4+ICsJc3Ry dWN0IGF0bWVsX2hsY2RjX2RjICpkYyA9IHBsYW5lLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7DQo+ PiAgIA0KPj4gLQlpc3IgPSBhdG1lbF9obGNkY19sYXllcl9yZWFkX3JlZygmcGxhbmUtPmxheWVy LCBBVE1FTF9ITENEQ19MQVlFUl9JU1IpOw0KPj4gKwlpZiAoIShkYy0+aXNfeGxjZGMpKQ0KPiAN Cj4gc2FtZSBoZXJlLg0KPiANCj4+ICsJCWlzciA9IGF0bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVn KCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0lTUik7DQo+PiArCWVsc2UNCj4+ICsJ CWlzciA9IGF0bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX1hM Q0RDX0xBWUVSX0lTUik7DQo+PiAgIA0KPj4gICAJLyoNCj4+ICAgCSAqIFRoZXJlJ3Mgbm90IG11 Y2ggd2UgY2FuIGRvIGluIGNhc2Ugb2Ygb3ZlcnJ1biBleGNlcHQgaW5mb3JtaW5nDQo+PiAgIAkg KiB0aGUgdXNlci4gSG93ZXZlciwgd2UgYXJlIGluIGludGVycnVwdCBjb250ZXh0IGhlcmUsIGhl bmNlIHRoZQ0KPj4gICAJICogdXNlIG9mIGRldl9kYmcoKS4NCj4+ICAgCSAqLw0KPj4gLQlpZiAo aXNyICYNCj4+IC0JICAgIChBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDApIHwgQVRNRUxfSExD RENfTEFZRVJfT1ZSX0lSUSgxKSB8DQo+PiAtCSAgICAgQVRNRUxfSExDRENfTEFZRVJfT1ZSX0lS USgyKSkpDQo+PiAtCQlkZXZfZGJnKHBsYW5lLT5iYXNlLmRldi0+ZGV2LCAib3ZlcnJ1biBvbiBw bGFuZSAlc1xuIiwNCj4+IC0JCQlkZXNjLT5uYW1lKTsNCj4+ICsJaWYgKCEoZGMtPmlzX3hsY2Rj KSkgew0KPj4gKwkJaWYgKGlzciAmDQo+PiArCQkgICAgKEFUTUVMX0hMQ0RDX0xBWUVSX09WUl9J UlEoMCkgfCBBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDEpIHwNCj4+ICsJCSAgICAgQVRNRUxf SExDRENfTEFZRVJfT1ZSX0lSUSgyKSkpDQo+PiArCQkJZGV2X2RiZyhwbGFuZS0+YmFzZS5kZXYt PmRldiwgIm92ZXJydW4gb24gcGxhbmUgJXNcbiIsDQo+PiArCQkJCWRlc2MtPm5hbWUpOw0KPj4g Kwl9IGVsc2Ugew0KPj4gKwkJaWYgKGlzciAmDQo+PiArCQkgICAgKEFUTUVMX1hMQ0RDX0xBWUVS X09WUl9JUlEoMCkgfCBBVE1FTF9YTENEQ19MQVlFUl9PVlJfSVJRKDEpIHwNCj4+ICsJCSAgICAg QVRNRUxfWExDRENfTEFZRVJfT1ZSX0lSUSgyKSkpDQo+PiArCQkJZGV2X2RiZyhwbGFuZS0+YmFz ZS5kZXYtPmRldiwgIm92ZXJydW4gb24gcGxhbmUgJXNcbiIsDQo+PiArCQkJCWRlc2MtPm5hbWUp Ow0KPj4gKwl9DQo+PiAgIH0NCj4+ICAgDQo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX2hlbHBlcl9mdW5jcyBhdG1lbF9obGNkY19sYXllcl9wbGFuZV9oZWxwZXJfZnVuY3MgPSB7 DQo+IA0KDQotLSANClRoYW5rcyBhbmQgUmVnYXJkcywNCk1hbmlrYW5kYW4gTS4NCg0K