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 X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C9EBC433E0 for ; Mon, 4 Jan 2021 20:43:20 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id BDAAE216C4 for ; Mon, 4 Jan 2021 20:43:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BDAAE216C4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4D3FD89FDE; Mon, 4 Jan 2021 20:43:19 +0000 (UTC) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2079.outbound.protection.outlook.com [40.107.243.79]) by gabe.freedesktop.org (Postfix) with ESMTPS id C06DD89FDE for ; Mon, 4 Jan 2021 20:43:18 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J5n8Wc5opX1EAaZzh23Xh1ZggRDRh1lWSNyHxQoqcPW3b1qW4VDC7EoxO27tm3CiCRrx0LpVd2bfVZZrptj3dQBl5V+HBmj0LscX/XO0KdtjzGRHWxzXLrdUlSPH/9HbogNgiM5m9+DUOSl7tGCO9cFwVQfVhx+ZViKZMUnpQIRZoOsizfXV/+y0KZChMS08T1bxDoi8nDNfnrkwn62sAZ5ib0hRCc0kmK5yVFmczooaeRjb3ycLD5ypXXg2TKlH1bdlkXcCOwUFSqtoOExq6YqlBo6GOjUv9BMCYJjq9RS1WLCto9113cal6XzODXAwqBmHCaVK1G5l2YFAzu2l+Q== 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-SenderADCheck; bh=1c9juQQ8WyUffPjRrEC7WoLqHuBV3r0tE7v41T88mYw=; b=N5Znf/RG7V9ua9WX8S+ixUcaMlUIojPZmTQPzZyKr4dmsiHdJ3znQQ4gx/ONEzhBYuSOYcsYZFEc655ZqKKGRoTk0dxCrjaAoVpJN0cTQ2VXDvEcubnsa46VB0pY6Hlh1nTrqdP0DaiKIf3AERpey5SW8cuh2749YPiJX7EAUHpkPuShiYlj/uQWsZO62nagQj+gu9UVght78TSEMZwkTXy1BOmPHsguMHIMNd6RVqLTa2OVSsARvjfCuXzyCwJcMeqCvzqSy476scizMImAL/Zu24bKhvZMLLEF5SpPIeTGz7TuGg/t2lrvo3nWyP7K1JGSa1N6phK4O8Tv14kC+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1c9juQQ8WyUffPjRrEC7WoLqHuBV3r0tE7v41T88mYw=; b=MrCGmdYVZNE15Lzwrdu65VrsUQu7E8iXKb4LlGyOVY46RiWkEZg9v/MfZwvXuinTOQRw+YquRZjCglMwPzCefhNKFVR03DcbsMMs5H+WHxoaniQSKgiKuwWVz8DGlnGHXoAFlpgkzqAwpLy8+oMNxUu/4jJfYCLzdzxlZhs5KYw= Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Received: from BN6PR12MB1939.namprd12.prod.outlook.com (2603:10b6:404:107::12) by BN8PR12MB2881.namprd12.prod.outlook.com (2603:10b6:408:9d::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20; Mon, 4 Jan 2021 20:43:16 +0000 Received: from BN6PR12MB1939.namprd12.prod.outlook.com ([fe80::75a8:1077:3c5c:98fa]) by BN6PR12MB1939.namprd12.prod.outlook.com ([fe80::75a8:1077:3c5c:98fa%11]) with mapi id 15.20.3721.024; Mon, 4 Jan 2021 20:43:16 +0000 Message-ID: <013e1a712df6754b7849ea0f097bbbfeb2f495a2.camel@amd.com> Subject: Re: [PATCH 3/3] drm/amd/display: Skip modeset for front porch change From: Aurabindo Pillai To: "Kazlauskas, Nicholas" , amd-gfx@lists.freedesktop.org Date: Mon, 04 Jan 2021 15:43:12 -0500 In-Reply-To: References: <20201210024526.1151447-1-aurabindo.pillai@amd.com> <20201210024526.1151447-4-aurabindo.pillai@amd.com> User-Agent: Evolution 3.38.2 X-Originating-IP: [135.23.249.167] X-ClientProxiedBy: YTOPR0101CA0022.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:15::35) To BN6PR12MB1939.namprd12.prod.outlook.com (2603:10b6:404:107::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from elite-desk-aura.local (135.23.249.167) by YTOPR0101CA0022.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:15::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20 via Frontend Transport; Mon, 4 Jan 2021 20:43:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 93e55f69-290a-4f99-aa61-08d8b0f15cf9 X-MS-TrafficTypeDiagnostic: BN8PR12MB2881: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1002; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MDTeBsh42C7SoC/oNUZh/gBxgxsf9olBtCI30Jp+HOGUc69wwdrsJGzuSC/9SDwQtioUnL3yRVr1R8qJsfrHIsiPIbyuEl/U3UU6iIdfK863oPz2j3OxAPqu5CRoYjf6p/ghd8jls6UF+QCeQHAmLBd6DqYCDOBqhipvno5OLLF9/0vc5WKdsflmJrHAxJnbsG6OT6UeDqBnFvw9usIG1Dvejs0vwG3O8HYiS8LOm/pNVPS+OWiNm0aaSFmZvGdS8t1fg2KeP3lzp2s1bIdnyBavIkmT3ZfekRlWX5/SarP6FUfz0GUcBB5JYlBeCtlRUduRmfcDu4aKemq+Yf5azQNzIlZgnzpTfgafu+bQfqilCZ3T14YIB7WP9tnVA6DTvbQQq0AZwfqHePa7i9pofg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN6PR12MB1939.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(136003)(366004)(39860400002)(36756003)(6506007)(6486002)(6512007)(2616005)(30864003)(956004)(4326008)(316002)(44832011)(53546011)(186003)(86362001)(16526019)(83380400001)(26005)(6666004)(5660300002)(478600001)(8936002)(52116002)(66556008)(66476007)(66946007)(8676002)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?eTJnWnBBWnkrZUpkZ21kK214THhYaXc3ZnZ4ZkxmZGpHNjFkV3VSMWhNM0Yv?= =?utf-8?B?MldQMFZnSVZpNDQrbDdxdDErRUNjQ1UwVktLdkNPcjdkVWI2cjlHamZzUmp1?= =?utf-8?B?KzdkWnNGSk1SSHN0OHBLVklQSzhPTlh6NlN4UEhYdUN5T2lKKzdEV01kVEYy?= =?utf-8?B?UDZzc2Nmdks0YnJiZTZaRStOWVRaWGpGU3A4NjNLd3Y3em1IWXJEQ0EvMkNQ?= =?utf-8?B?ODR2Rk9IQUQxTy81aGs4cEtsYXJUVFAvcFVnSXdHZlIvbTB5ZTB4Z2xCbW5V?= =?utf-8?B?WFJkUTU5YTZMUmh5RkJuaUZqeFJYZkx2WnhWekYzUlB0VjlteU5wMjhnZFEr?= =?utf-8?B?SU9sTGsrVlF5MENnbWl1Q2ZnVjd4bEZnZHFMT0w2ZEJzWWZmQzVvRm9zVlpn?= =?utf-8?B?bW5OZ0hrUHd1TXBiS245eG9TeDN4dXVmTTErUlZhNEZNU1dDUnl5TzNOWmNo?= =?utf-8?B?a2FnMTl0ellRMlVWQnZrMyt2Ykt6UFR0T2FTRmNQRWVuL1k2UzdXYzJyMllJ?= =?utf-8?B?cUFtMEM0elE0dW4yZzl0bEFVUjBucXFobzFhd1VFaDg1ZmpWQk1XYUt4M09V?= =?utf-8?B?ZGJTVm43OGRramFSUXQzcXBGVG8zSlJOQkE5ZVlPdTI3VkZDaVFvYW1iNlVR?= =?utf-8?B?UDUrU3E3bEZoeThENzdVWitJY2lRdWZsRVFML1E2Sm4ycndobkZkTExOM0pv?= =?utf-8?B?eDQvQWtycFd1czBYZVoyV1VqcWJ1dm9adW5TN0FEcy9qcVppMlErS3pzYUJa?= =?utf-8?B?a09INHBhRXpSM0cyVG1CV08ycVdGS24zNklWSW1IZ0FESXlHaW1kOWZ0cmlX?= =?utf-8?B?Mzd5bXVhRUFacDUrRUhJZnNTQnFtN0xOaExjbXZ3M1dUZUVuMS9iRytzR0l5?= =?utf-8?B?OGRtY2RsWThhZGpJOGNwYW44c1puN2JicFpsNTMwaUlVeENSZnZNSnovREU3?= =?utf-8?B?Z1R0Q1k4K1RqdUJBV3lqOUJUUURPYmRkTm1PTTlRUzhicW5mNG5GcTJHQW8z?= =?utf-8?B?VlB6eUw3WE5JK3EvWHVUWEltNmVvNW1tQXpoUzN2US9GMDlld3NXSi9sNXdP?= =?utf-8?B?WUFmK3MwSlpKOGlnVHJZZG9sTjBlSkVOWUZvVDJnZHozQXN6a2RWMldrN3lI?= =?utf-8?B?bFl6cDJpUUgzcTJiMndnS3d6d1VaVE5MamZzNVF0c0F0VW5mRU14WFlLQ3RM?= =?utf-8?B?bTkzek0wSVhnVUVwK0MwRnEzQWEvOGxmcXNwbUpoRjd1MmpEZVF0aGc0MlMy?= =?utf-8?B?azNwbUhaaGtCQ3NxNTVuR1ZSWk9BS2hJQlcxZ1FqdjhHZjVvbGF3Uk1OdnVW?= =?utf-8?Q?W3rGnQzW5CXcYuck/2Iq+sfZ1/4FIWbsFh?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthSource: BN6PR12MB1939.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2021 20:43:16.4109 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-Network-Message-Id: 93e55f69-290a-4f99-aa61-08d8b0f15cf9 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tCjqMKxf5+oSbFt3YG0IlXtBrCV5zKAs+37/EpYGnayd8PV3G1HT3OA8tMUnX8QoK6QvA04oWaQgOv9HYw6IYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR12MB2881 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: stylon.wang@amd.com, thong.thai@amd.com, shashank.sharma@amd.com, wayne.lin@amd.com, alexander.deucher@amd.com, Harry.Wentland@amd.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" T24gTW9uLCAyMDIxLTAxLTA0IGF0IDExOjE2IC0wNTAwLCBLYXpsYXVza2FzLCBOaWNob2xhcyB3 cm90ZToKPiBPbiAyMDIwLTEyLTA5IDk6NDUgcC5tLiwgQXVyYWJpbmRvIFBpbGxhaSB3cm90ZToK PiA+IFtXaHkmSG93XQo+ID4gSW5vcmRlciB0byBlbmFibGUgZnJlZXN5bmMgdmlkZW8gbW9kZSwg ZHJpdmVyIGFkZHMgZXh0cmEKPiA+IG1vZGVzIGJhc2VkIG9uIHByZWZlcnJlZCBtb2RlcyBmb3Ig Y29tbW9uIGZyZWVzeW5jIGZyYW1lIHJhdGVzLgo+ID4gV2hlbiBjb21taXRpbmcgdGhlc2UgbW9k ZSBjaGFuZ2VzLCBhIGZ1bGwgbW9kZXNldCBpcyBub3QgbmVlZGVkLgo+ID4gSWYgdGhlIGNoYW5n ZSBpbiBvbmx5IGluIHRoZSBmcm9udCBwb3JjaCB0aW1pbmcgdmFsdWUsIHNraXAgZnVsbAo+ID4g bW9kZXNldCBhbmQgY29udGludWUgdXNpbmcgdGhlIHNhbWUgc3RyZWFtLgo+ID4gCj4gPiBTaWdu ZWQtb2ZmLWJ5OiBBdXJhYmluZG8gUGlsbGFpIDxhdXJhYmluZG8ucGlsbGFpQGFtZC5jb20+Cj4g PiAtLS0KPiA+IMKgIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0u YyB8IDE2OQo+ID4gKysrKysrKysrKysrKysrKy0tCj4gPiDCoCAuLi4vZ3B1L2RybS9hbWQvZGlz cGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmggfMKgwqAgMSArCj4gPiDCoCAyIGZpbGVzIGNoYW5n ZWQsIDE1MyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKPiA+ IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwo+ID4g aW5kZXggZjY5OWEzZDQxY2FkLi5jOGM3Mjg4NzkwNmEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4gPiBAQCAtMjE3 LDYgKzIxNyw5IEBAIHN0YXRpYyBib29sIGFtZGdwdV9kbV9wc3JfZGlzYWJsZV9hbGwoc3RydWN0 Cj4gPiBhbWRncHVfZGlzcGxheV9tYW5hZ2VyICpkbSk7Cj4gPiDCoCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9mb3JtYXRfaW5mbyAqCj4gPiDCoCBhbWRfZ2V0X2Zvcm1hdF9pbmZvKGNvbnN0IHN0 cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpjbWQpOwo+ID4gwqAgCj4gPiArc3RhdGljIGJvb2wKPiA+ ICtpc190aW1pbmdfdW5jaGFuZ2VkX2Zvcl9mcmVlc3luYyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUK PiA+ICpvbGRfY3J0Y19zdGF0ZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUKPiA+ ICpuZXdfY3J0Y19zdGF0ZSk7Cj4gPiDCoCAvKgo+ID4gwqDCoCAqIGRtX3ZibGFua19nZXRfY291 bnRlcgo+ID4gwqDCoCAqCj4gPiBAQCAtNTA5Niw4ICs1MDk5LDExIEBAIGNvcHlfY3J0Y190aW1p bmdfZm9yX2RybV9kaXNwbGF5X21vZGUoY29uc3QKPiA+IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICpzcmNfbW9kZSwKPiA+IMKgIHN0YXRpYyB2b2lkCj4gPiDCoCBkZWNpZGVfY3J0Y190aW1pbmdf Zm9yX2RybV9kaXNwbGF5X21vZGUoc3RydWN0IGRybV9kaXNwbGF5X21vZGUKPiA+ICpkcm1fbW9k ZSwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0Cj4gPiBkcm1fZGlzcGxh eV9tb2RlICpuYXRpdmVfbW9kZSwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBib29sIHNjYWxl X2VuYWJsZWQpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYm9vbCBzY2FsZV9lbmFibGVkLCBi b29sCj4gPiBmc19tb2RlKQo+ID4gwqAgewo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKGZzX21vZGUp Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+ID4gKwo+ID4gwqDC oMKgwqDCoMKgwqDCoGlmIChzY2FsZV9lbmFibGVkKSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGNvcHlfY3J0Y190aW1pbmdfZm9yX2RybV9kaXNwbGF5X21vZGUobmF0aXZl X21vZGUsCj4gPiBkcm1fbW9kZSk7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIGlmIChuYXRp dmVfbW9kZS0+Y2xvY2sgPT0gZHJtX21vZGUtPmNsb2NrICYmCj4gPiBAQCAtNTI0MSw2ICs1MjQ3 LDI0IEBAIGdldF9oaWdoZXN0X2ZyZWVzeW5jX21vZGUoc3RydWN0Cj4gPiBhbWRncHVfZG1fY29u bmVjdG9yICphY29ubmVjdG9yLAo+ID4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiBtX2hpZ2g7Cj4g PiDCoCB9Cj4gPiDCoCAKPiA+ICtzdGF0aWMgYm9vbCBpc19mcmVlc3luY192aWRlb19tb2RlKHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1 X2RtX2Nvbm5lY3Rvcgo+ID4gKmFjb25uZWN0b3IpCj4gPiArewo+ID4gK8KgwqDCoMKgwqDCoMKg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmhpZ2hfbW9kZTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKg wqDCoGhpZ2hfbW9kZSA9IGdldF9oaWdoZXN0X2ZyZWVzeW5jX21vZGUoYWNvbm5lY3RvciwgZmFs c2UpOwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKCFoaWdoX21vZGUpCj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKg aWYgKGhpZ2hfbW9kZS0+Y2xvY2sgPT0gMCB8fAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIGhp Z2hfbW9kZS0+aGRpc3BsYXkgIT0gbW9kZS0+aGRpc3BsYXkgfHwKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoCBoaWdoX21vZGUtPmNsb2NrICE9IG1vZGUtPmNsb2NrIHx8Cj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqAgIW1vZGUpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIGZhbHNlOwo+ID4gK8KgwqDCoMKgwqDCoMKgZWxzZQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiB0cnVlOwo+ID4gK30KPiA+ICsKPiAKPiBOZWVkIHRvIGNoZWNr IHRoYXQgdGhlIG90aGVyIHBhcmFtZXRlcnMgYXJlIHRoZSBzYW1lOgo+IC0gaHN5bmNfc3RhcnQK PiAtIGhzeW5jX2VuZAo+IC0gaHRvdGFsCj4gLSBoc2tldwo+IC0gdmRpc3BsYXkKPiAtIHZzY2Fu Cj4gCj4gZXRjLgoKV2lsbCBkby4KCj4gCj4gPiDCoCBzdGF0aWMgc3RydWN0IGRjX3N0cmVhbV9z dGF0ZSAqCj4gPiDCoCBjcmVhdGVfc3RyZWFtX2Zvcl9zaW5rKHN0cnVjdCBhbWRncHVfZG1fY29u bmVjdG9yICphY29ubmVjdG9yLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9tb2RlLAo+ID4g QEAgLTUyNTMsMTcgKzUyNzcsMjEgQEAgY3JlYXRlX3N0cmVhbV9mb3Jfc2luayhzdHJ1Y3QKPiA+ IGFtZGdwdV9kbV9jb25uZWN0b3IgKmFjb25uZWN0b3IsCj4gPiDCoMKgwqDCoMKgwqDCoMKgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbl9zdGF0ZSA9Cj4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRtX3N0YXRlID8gJmRtX3N0YXRlLT5iYXNlIDogTlVMTDsK PiA+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0gPSBOVUxM Owo+ID4gLcKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSA9ICpkcm1f bW9kZTsKPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHNhdmVkX21v ZGUsIG1vZGUgPSAqZHJtX21vZGU7Cj4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqZnJlZXN5bmNfbW9kZSA9IE5VTEw7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgYm9vbCBu YXRpdmVfbW9kZV9mb3VuZCA9IGZhbHNlOwo+ID4gwqDCoMKgwqDCoMKgwqDCoGJvb2wgc2NhbGUg PSBkbV9zdGF0ZSA/IChkbV9zdGF0ZS0+c2NhbGluZyAhPSBSTVhfT0ZGKSA6Cj4gPiBmYWxzZTsK PiA+IMKgwqDCoMKgwqDCoMKgwqBpbnQgbW9kZV9yZWZyZXNoOwo+ID4gwqDCoMKgwqDCoMKgwqDC oGludCBwcmVmZXJyZWRfcmVmcmVzaCA9IDA7Cj4gPiArwqDCoMKgwqDCoMKgwqBib29sIGlzX2Zz X3ZpZF9tb2RlID0gMDsKPiA+IMKgICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTikK PiA+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHNjX2RlY19kcGNkX2NhcHMgZHNjX2NhcHM7Cj4g PiDCoCAjZW5kaWYKPiA+IMKgwqDCoMKgwqDCoMKgwqB1aW50MzJfdCBsaW5rX2JhbmR3aWR0aF9r YnBzOwo+ID4gLQo+ID4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBkY19zaW5rICpzaW5rID0gTlVM TDsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoG1lbXNldCgmc2F2ZWRfbW9kZSwgMCwgc2l6ZW9m KHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlKSk7Cj4gPiArCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYg KGFjb25uZWN0b3IgPT0gTlVMTCkgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBEUk1fRVJST1IoImFjb25uZWN0b3IgaXMgTlVMTCFcbiIpOwo+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gc3RyZWFtOwo+ID4gQEAgLTUzMTYsMjAgKzUzNDQsMzMg QEAgY3JlYXRlX3N0cmVhbV9mb3Jfc2luayhzdHJ1Y3QKPiA+IGFtZGdwdV9kbV9jb25uZWN0b3Ig KmFjb25uZWN0b3IsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBEUk1fREVCVUdfRFJJVkVSKCJObyBwcmVm ZXJyZWQgbW9kZSBmb3VuZFxuIik7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpc19mc192aWRfbW9kZSA9IGlzX2ZyZWVzeW5j X3ZpZGVvX21vZGUoJm1vZGUsCj4gPiBhY29ubmVjdG9yKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZiAoaXNfZnNfdmlkX21vZGUpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZnJlZXN5bmNfbW9kZSA9Cj4gPiBnZXRfaGln aGVzdF9mcmVlc3luY19tb2RlKGFjb25uZWN0b3IsIGZhbHNlKTsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGZyZWVzeW5jX21vZGUpIHsKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHNhdmVkX21vZGUgPSBtb2RlOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbW9kZSA9ICpmcmVlc3luY19tb2Rl Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gKwo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBkZWNpZGVfY3J0Y190aW1pbmdfZm9yX2RybV9kaXNwbGF5X21v ZGUoCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgJm1vZGUsIHByZWZlcnJlZF9tb2RlLAo+ID4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZG1fc3RhdGUg PyAoZG1fc3RhdGUtPnNjYWxpbmcgIT0KPiA+IFJNWF9PRkYpIDogZmFsc2UpOwo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZG1fc3RhdGUgPyAoZG1fc3RhdGUtPnNjYWxpbmcgIT0KPiA+IFJNWF9PRkYpIDogZmFsc2UsCj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBmcmVlc3luY19tb2RlID8gdHJ1ZSA6IGZhbHNlKTsKPiAKPiBJIGRvbid0IHRoaW5r IHdlIG5lZWQgYW4gYWRkaXRpb25hbCBmbGFnIGhlcmUgLSBzY2FsaW5nL2ZyZWVzeW5jCj4gYmVo YXZlIAo+IHRoZSBzYW1lLCBtYXliZSBqdXN0IHJlbmFtZSB0aGUgdmFyaWFibGUgaW4gdGhlIGZ1 bmN0aW9uLgoKVGhpcyB3YXMgZml4ZWQgaW4gdjMuIFdpbGwgc2VuZCBvdXQgYSB2NCB3aXRoIGFi b3ZlIGNoYW5nZSBhbmQgdGhlCnN1Z2dlc3Rpb24gZnJvbSBBbGV4IHRvIGNoYW5nZSB0aGUgbW9k dWxlIHBhcmFtZXRlciBuYW1lLgoKPiAKPiBSZWdhcmRzLAo+IE5pY2hvbGFzIEthemxhdXNrYXMK PiAKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJlZmVycmVkX3JlZnJlc2gg PQo+ID4gZHJtX21vZGVfdnJlZnJlc2gocHJlZmVycmVkX21vZGUpOwo+ID4gwqDCoMKgwqDCoMKg wqDCoH0KPiA+IMKgIAo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmICghZG1fc3RhdGUpCj4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRybV9tb2RlX3NldF9jcnRjaW5mbygmbW9kZSwg MCk7Cj4gPiDCoCAKPiA+IC3CoMKgwqDCoMKgwqDCoC8qCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAo ZG1fc3RhdGUgJiYgaXNfZnNfdmlkX21vZGUgJiYgZnJlZXN5bmNfbW9kZSkKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkcm1fbW9kZV9zZXRfY3J0Y2luZm8oJnNhdmVkX21vZGUs IDApOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoCAvKgo+ID4gwqDCoMKgwqDCoMKgwqDCoCogSWYg c2NhbGluZyBpcyBlbmFibGVkIGFuZCByZWZyZXNoIHJhdGUgZGlkbid0IGNoYW5nZQo+ID4gwqDC oMKgwqDCoMKgwqDCoCogd2UgY29weSB0aGUgdmljIGFuZCBwb2xhcml0aWVzIG9mIHRoZSBvbGQg dGltaW5ncwo+ID4gwqDCoMKgwqDCoMKgwqDCoCovCj4gPiAtwqDCoMKgwqDCoMKgwqBpZiAoIXNj YWxlIHx8IG1vZGVfcmVmcmVzaCAhPSBwcmVmZXJyZWRfcmVmcmVzaCkKPiA+ICvCoMKgwqDCoMKg wqDCoGlmICghKHNjYWxlICYmIGZyZWVzeW5jX21vZGUpIHx8IG1vZGVfcmVmcmVzaCAhPQo+ID4g cHJlZmVycmVkX3JlZnJlc2gpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZp bGxfc3RyZWFtX3Byb3BlcnRpZXNfZnJvbV9kcm1fZGlzcGxheV9tb2RlKHN0cmVhbQo+ID4gLAo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgJm1vZGUs ICZhY29ubmVjdG9yLT5iYXNlLCBjb25fc3RhdGUsIE5VTEwsCj4gPiByZXF1ZXN0ZWRfYnBjKTsK PiA+IMKgwqDCoMKgwqDCoMKgwqBlbHNlCj4gPiBAQCAtNzg4MSwxMyArNzkyMiwyOSBAQCBzdGF0 aWMgdm9pZCB1cGRhdGVfc3RyZWFtX2lycV9wYXJhbWV0ZXJzKAo+ID4gwqDCoMKgwqDCoMKgwqDC oGlmIChuZXdfY3J0Y19zdGF0ZS0+dnJyX3N1cHBvcnRlZCAmJgo+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjb25maWcubWluX3JlZnJlc2hfaW5fdWh6ICYmCj4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGNvbmZpZy5tYXhfcmVmcmVzaF9pbl91aHopIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAvKgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGlm IGZyZWVzeW5jIGNvbXBhdGlibGUgbW9kZSB3YXMgc2V0LAo+ID4gY29uZmlnLnN0YXRlIHdpbGwg YmUgc2V0Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogaW4gYXRvbWljIGNo ZWNrCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICovCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGNvbmZpZy5zdGF0ZSA9PSBWUlJfU1RBVEVfQUNUSVZF X0ZJWEVEICYmCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbmZp Zy5maXhlZF9yZWZyZXNoX2luX3VoeiAmJgo+ID4gY29uZmlnLm1heF9yZWZyZXNoX2luX3VoeiAm Jgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25maWcubWluX3Jl ZnJlc2hfaW5fdWh6ICYmCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Cj4gPiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFz ZSkgfHwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuZXdfY3J0 Y19zdGF0ZS0+ZnJlZXN5bmNfdmlkZW9fbW9kZSkpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdnJyX3BhcmFtcy5tYXhfcmVmcmVzaF9pbl91aHog PQo+ID4gY29uZmlnLm1heF9yZWZyZXNoX2luX3VoejsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdnJyX3BhcmFtcy5taW5fcmVmcmVzaF9pbl91aHog PQo+ID4gY29uZmlnLm1pbl9yZWZyZXNoX2luX3VoejsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdnJyX3BhcmFtcy5maXhlZF9yZWZyZXNoX2luX3Vo eiA9Cj4gPiBjb25maWcuZml4ZWRfcmVmcmVzaF9pbl91aHo7Cj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHZycl9wYXJhbXMuc3RhdGUgPSBWUlJfU1RB VEVfQUNUSVZFX0ZJWEVEOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBnb3RvIG91dDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9 Cj4gPiArCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbmZpZy5zdGF0ZSA9 IG5ld19jcnRjX3N0YXRlLT5iYXNlLnZycl9lbmFibGVkID8KPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFZSUl9TVEFURV9BQ1RJVkVfVkFSSUFCTEUg Ogo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgVlJS X1NUQVRFX0lOQUNUSVZFOwo+ID4gLcKgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiA+ICvCoMKgwqDC oMKgwqDCoH0gZWxzZQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb25maWcu c3RhdGUgPSBWUlJfU1RBVEVfVU5TVVBQT1JURUQ7Cj4gPiAtwqDCoMKgwqDCoMKgwqB9Cj4gPiDC oCAKPiA+ICtvdXQ6Cj4gPiDCoMKgwqDCoMKgwqDCoMKgbW9kX2ZyZWVzeW5jX2J1aWxkX3Zycl9w YXJhbXMoZG0tPmZyZWVzeW5jX21vZHVsZSwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5ld19zdHJl YW0sCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmY29uZmlnLCAmdnJyX3BhcmFtcyk7Cj4gPiBAQCAt ODIwNSw3ICs4MjYyLDkgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RtX2NvbW1pdF9wbGFuZXMoc3Ry dWN0Cj4gPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICogYXMgcGFydCBvZiBjb21taXQuCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAo YW1kZ3B1X2RtX3Zycl9hY3RpdmUoZG1fb2xkX2NydGNfc3RhdGUpICE9Cj4gPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZGdwdV9kbV92cnJfYWN0aXZlKGFjcnRjX3N0 YXRlKSkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhbWRncHVf ZG1fdnJyX2FjdGl2ZShhY3J0Y19zdGF0ZSkgfHwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgYWNydGNfc3RhdGUtPmZyZWVzeW5jX2NvbmZpZy5zdGF0ZSA9PQo+ID4g VlJSX1NUQVRFX0FDVElWRV9GSVhFRCB8fAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBhY3J0Y19zdGF0ZS0+ZnJlZXN5bmNfdmlkZW9fbW9kZSkgewo+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3Bpbl9sb2NrX2lycXNh dmUoJnBjcnRjLT5kZXYtPmV2ZW50X2xvY2ssCj4gPiBmbGFncyk7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkY19zdHJlYW1fYWRqdXN0X3ZtaW5f dm1heCgKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBkbS0+ZGMsIGFjcnRjX3N0YXRlLT5zdHJlYW0sCj4gPiBAQCAtODg5 Niw2ICs4OTU1LDcgQEAgc3RhdGljIHZvaWQgZ2V0X2ZyZWVzeW5jX2NvbmZpZ19mb3JfY3J0YygK PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRvX2Ft ZGdwdV9kbV9jb25uZWN0b3IobmV3X2Nvbl9zdGF0ZS0KPiA+ID5iYXNlLmNvbm5lY3Rvcik7Cj4g PiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmbmV3X2Ny dGNfc3RhdGUtPmJhc2UubW9kZTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBpbnQgdnJlZnJlc2ggPSBk cm1fbW9kZV92cmVmcmVzaChtb2RlKTsKPiA+ICvCoMKgwqDCoMKgwqDCoGJvb2wgZnNfdmlkX21v ZGUgPSBmYWxzZTsKPiA+IMKgIAo+ID4gwqDCoMKgwqDCoMKgwqDCoG5ld19jcnRjX3N0YXRlLT52 cnJfc3VwcG9ydGVkID0gbmV3X2Nvbl9zdGF0ZS0KPiA+ID5mcmVlc3luY19jYXBhYmxlICYmCj4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHZyZWZyZXNoID49IGFjb25uZWN0b3ItCj4gPiA+bWlu X3ZmcmVxICYmCj4gPiBAQCAtODkwMywxNyArODk2MywyNiBAQCBzdGF0aWMgdm9pZCBnZXRfZnJl ZXN5bmNfY29uZmlnX2Zvcl9jcnRjKAo+ID4gwqAgCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYgKG5l d19jcnRjX3N0YXRlLT52cnJfc3VwcG9ydGVkKSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoG5ld19jcnRjX3N0YXRlLT5zdHJlYW0tPmlnbm9yZV9tc2FfdGltaW5nX3BhcmFt ID0KPiA+IHRydWU7Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uZmlnLnN0 YXRlID0gbmV3X2NydGNfc3RhdGUtPmJhc2UudnJyX2VuYWJsZWQgPwo+ID4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgVlJSX1NU QVRFX0FDVElWRV9WQVJJQUJMRSA6Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBWUlJfU1RBVEVfSU5BQ1RJVkU7Cj4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uZmlnLm1pbl9yZWZyZXNoX2luX3VoeiA9 Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBhY29ubmVjdG9yLT5taW5fdmZyZXEgKiAxMDAwMDAwOwo+ID4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbmZpZy5tYXhfcmVmcmVzaF9pbl91aHogPQo+ID4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgYWNvbm5lY3Rvci0+bWF4X3ZmcmVxICogMTAwMDAwMDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBmc192aWRfbW9kZSA9IG5ld19jcnRjX3N0YXRlLT5mcmVlc3luY19jb25m aWcuc3RhdGUKPiA+ID09IFZSUl9TVEFURV9BQ1RJVkVfRklYRUQgfHwKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmV3X2NydGNfc3RhdGUtPmZyZWVz eW5jX3ZpZGVvX21vZGU7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Y29uZmlnLm1pbl9yZWZyZXNoX2luX3VoeiA9IGFjb25uZWN0b3ItPm1pbl92ZnJlcSAqCj4gPiAx MDAwMDAwOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbmZpZy5tYXhfcmVm cmVzaF9pbl91aHogPSBhY29ubmVjdG9yLT5tYXhfdmZyZXEgKgo+ID4gMTAwMDAwMDsKPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uZmlnLnZzaWZfc3VwcG9ydGVkID0gdHJ1 ZTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uZmlnLmJ0ciA9IHRydWU7 Cj4gPiAtwqDCoMKgwqDCoMKgwqB9Cj4gPiDCoCAKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoZnNfdmlkX21vZGUpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uZmlnLnN0YXRlID0gVlJSX1NUQVRFX0FDVElWRV9GSVhF RDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29u ZmlnLmZpeGVkX3JlZnJlc2hfaW5fdWh6ID0KPiA+IG5ld19jcnRjX3N0YXRlLT5mcmVlc3luY19j b25maWcuZml4ZWRfcmVmcmVzaF9pbl91aHo7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gb3V0Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoH0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlbHNlIGlmIChu ZXdfY3J0Y19zdGF0ZS0+YmFzZS52cnJfZW5hYmxlZCAmJgo+ID4gIWZzX3ZpZF9tb2RlKQo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb25maWcuc3Rh dGUgPSBWUlJfU1RBVEVfQUNUSVZFX1ZBUklBQkxFOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGVsc2UKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgY29uZmlnLnN0YXRlID0gVlJSX1NUQVRFX0lOQUNUSVZFOwo+ID4gKwo+ID4gK8Kg wqDCoMKgwqDCoMKgfQo+ID4gK291dDoKPiA+IMKgwqDCoMKgwqDCoMKgwqBuZXdfY3J0Y19zdGF0 ZS0+ZnJlZXN5bmNfY29uZmlnID0gY29uZmlnOwo+ID4gwqAgfQo+ID4gwqAgCj4gPiBAQCAtODky Niw2ICs4OTk1LDUxIEBAIHN0YXRpYyB2b2lkIHJlc2V0X2ZyZWVzeW5jX2NvbmZpZ19mb3JfY3J0 YygKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKG5ld19jcnRjX3N0YXRl LT52cnJfaW5mb3BhY2tldCkpOwo+ID4gwqAgfQo+ID4gwqAgCj4gPiArc3RhdGljIGJvb2wKPiA+ ICtpc190aW1pbmdfdW5jaGFuZ2VkX2Zvcl9mcmVlc3luYyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUK PiA+ICpvbGRfY3J0Y19zdGF0ZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUKPiA+ ICpuZXdfY3J0Y19zdGF0ZSkKPiA+ICt7Cj4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSBvbGRfbW9kZSwgbmV3X21vZGU7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqBp ZiAoIW9sZF9jcnRjX3N0YXRlIHx8ICFuZXdfY3J0Y19zdGF0ZSkKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqBv bGRfbW9kZSA9IG9sZF9jcnRjX3N0YXRlLT5tb2RlOwo+ID4gK8KgwqDCoMKgwqDCoMKgbmV3X21v ZGUgPSBuZXdfY3J0Y19zdGF0ZS0+bW9kZTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoGlmIChv bGRfbW9kZS5jbG9ja8KgwqDCoMKgwqDCoCA9PSBuZXdfbW9kZS5jbG9jayAmJgo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgIG9sZF9tb2RlLmhkaXNwbGF5wqDCoMKgID09IG5ld19tb2RlLmhkaXNw bGF5ICYmCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgb2xkX21vZGUudmRpc3BsYXnCoMKgwqAg PT0gbmV3X21vZGUudmRpc3BsYXkgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBvbGRfbW9k ZS5odG90YWzCoMKgwqDCoMKgID09IG5ld19tb2RlLmh0b3RhbCAmJgo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgIG9sZF9tb2RlLnZ0b3RhbMKgwqDCoMKgwqAgIT0gbmV3X21vZGUudnRvdGFsICYm Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgb2xkX21vZGUuaHN5bmNfc3RhcnQgPT0gbmV3X21v ZGUuaHN5bmNfc3RhcnQgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBvbGRfbW9kZS52c3lu Y19zdGFydCAhPSBuZXdfbW9kZS52c3luY19zdGFydCAmJgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgIG9sZF9tb2RlLmhzeW5jX2VuZMKgwqAgPT0gbmV3X21vZGUuaHN5bmNfZW5kICYmCj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqAgb2xkX21vZGUudnN5bmNfZW5kwqDCoCAhPSBuZXdfbW9kZS52 c3luY19lbmQgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBvbGRfbW9kZS5oc2tld8KgwqDC oMKgwqDCoCA9PSBuZXdfbW9kZS5oc2tldyAmJgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIG9s ZF9tb2RlLnZzY2FuwqDCoMKgwqDCoMKgID09IG5ld19tb2RlLnZzY2FuICYmCj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqAgKG9sZF9tb2RlLnZzeW5jX2VuZCAtIG9sZF9tb2RlLnZzeW5jX3N0YXJ0 KSA9PQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIChuZXdfbW9kZS52c3luY19lbmQgLSBuZXdf bW9kZS52c3luY19zdGFydCkpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIHRydWU7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNldF9mcmVlc3luY19maXhlZF9jb25maWcoc3RydWN0IGRt X2NydGNfc3RhdGUKPiA+ICpkbV9uZXdfY3J0Y19zdGF0ZSkgewo+ID4gK8KgwqDCoMKgwqDCoMKg dWludDY0X3QgbnVtLCBkZW4sIHJlczsKPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPSAmZG1fbmV3X2NydGNfc3RhdGUtCj4gPiA+YmFzZTsK PiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoGRtX25ld19jcnRjX3N0YXRlLT5mcmVlc3luY19jb25m aWcuc3RhdGUgPQo+ID4gVlJSX1NUQVRFX0FDVElWRV9GSVhFRDsKPiA+ICsKPiA+ICvCoMKgwqDC oMKgwqDCoG51bSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpbmV3X2NydGNfc3RhdGUtPm1vZGUuY2xv Y2sgKiAxMDAwCj4gPiAqIDEwMDAwMDA7Cj4gPiArwqDCoMKgwqDCoMKgwqBkZW4gPSAodW5zaWdu ZWQgbG9uZyBsb25nKW5ld19jcnRjX3N0YXRlLT5tb2RlLmh0b3RhbCAqCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICh1bnNpZ25lZCBsb25nIGxvbmcpbmV3X2NydGNfc3RhdGUtPm1vZGUu dnRvdGFsOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgcmVzID0gZGl2X3U2NChudW0sIGRlbik7 Cj4gPiArwqDCoMKgwqDCoMKgwqBkbV9uZXdfY3J0Y19zdGF0ZS0+ZnJlZXN5bmNfY29uZmlnLmZp eGVkX3JlZnJlc2hfaW5fdWh6ID0KPiA+IHJlczsKPiA+ICvCoMKgwqDCoMKgwqDCoGRtX25ld19j cnRjX3N0YXRlLT5mcmVlc3luY192aWRlb19tb2RlID0gdHJ1ZTsKPiA+ICt9Cj4gPiArCj4gPiDC oCBzdGF0aWMgaW50IGRtX3VwZGF0ZV9jcnRjX3N0YXRlKHN0cnVjdCBhbWRncHVfZGlzcGxheV9t YW5hZ2VyCj4gPiAqZG0sCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl LAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+IEBAIC05MDE2LDYgKzkxMzAs MTEgQEAgc3RhdGljIGludCBkbV91cGRhdGVfY3J0Y19zdGF0ZShzdHJ1Y3QKPiA+IGFtZGdwdV9k aXNwbGF5X21hbmFnZXIgKmRtLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KiBUT0RPOiBSZWZhY3RvciB0aGlzIGZ1bmN0aW9uIHRvIGFsbG93IHRoaXMgY2hlY2sKPiA+IHRv IHdvcmsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogaW4gYWxsIGNvbmRp dGlvbnMuCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChkbV9uZXdfY3J0Y19zdGF0ZS0+c3RyZWFtICYm Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiBpc190aW1pbmdf dW5jaGFuZ2VkX2Zvcl9mcmVlc3luYyhuZXdfY3J0Y19zdGF0ZSwgb2xkX2NydGNfc3RhdGUpICYm Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZGdwdV9leHBfZnJl ZXN5bmNfdmlkX21vZGUpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGdvdG8gc2tpcF9tb2Rlc2V0Owo+ID4gKwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZiAoZG1fbmV3X2NydGNfc3RhdGUtPnN0cmVhbSAmJgo+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGNfaXNfc3RyZWFtX3VuY2hhbmdlZChu ZXdfc3RyZWFtLAo+ID4gZG1fb2xkX2NydGNfc3RhdGUtPnN0cmVhbSkgJiYKPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRjX2lzX3N0cmVhbV9zY2FsaW5nX3VuY2hh bmdlZChuZXdfc3RyZWFtLAo+ID4gZG1fb2xkX2NydGNfc3RhdGUtPnN0cmVhbSkpIHsKPiA+IEBA IC05MDQ3LDYgKzkxNjYsMjIgQEAgc3RhdGljIGludCBkbV91cGRhdGVfY3J0Y19zdGF0ZShzdHJ1 Y3QKPiA+IGFtZGdwdV9kaXNwbGF5X21hbmFnZXIgKmRtLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZiAoIWRtX29sZF9jcnRjX3N0YXRlLT5zdHJlYW0pCj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIHNraXBfbW9kZXNl dDsKPiA+IMKgIAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChkbV9uZXdf Y3J0Y19zdGF0ZS0+c3RyZWFtICYmCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgCj4gPiBpc190aW1pbmdfdW5jaGFuZ2VkX2Zvcl9mcmVlc3luYyhuZXdfY3J0Y19zdGF0 ZSwgb2xkX2NydGNfc3RhdGUpICYmCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGFtZGdwdV9leHBfZnJlZXN5bmNfdmlkX21vZGUpIHsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmV3X2NydGNfc3RhdGUtPm1vZGVfY2hh bmdlZCA9IGZhbHNlOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBEUk1fREVCVUdfRFJJVkVSKAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIk1vZGUgY2hhbmdlIG5vdCByZXF1 aXJlZCBmb3IgZnJvbnQKPiA+IHBvcmNoIGNoYW5nZSwgIgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgInNldHRpbmcgbW9k ZV9jaGFuZ2VkIHRvICVkIiwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5ld19jcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQp Owo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBzZXRfZnJlZXN5bmNfZml4ZWRfY29uZmlnKGRtX25ld19jcnRjX3N0YXRlCj4gPiApOwo+ID4g Kwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3Rv IHNraXBfbW9kZXNldDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Ug aWYgKGFjb25uZWN0b3IgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpc19mcmVlc3luY192aWRlb19tb2RlKCZuZXdfY3J0Y19zdGF0ZS0K PiA+ID5tb2RlLCBhY29ubmVjdG9yKSkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgc2V0X2ZyZWVzeW5jX2ZpeGVkX2NvbmZpZyhkbV9uZXdfY3J0Y19z dGF0ZQo+ID4gKTsKPiA+ICsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 ID0gZG1fYXRvbWljX2dldF9zdGF0ZShzdGF0ZSwgJmRtX3N0YXRlKTsKPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCkKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZmFpbDsKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5oCj4gPiBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmgKPiA+IGluZGV4IDI1 MWFmNzgzZjZiMS4uMjhmMmQ4YzliMjYwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uaAo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uaAo+ID4gQEAgLTQ1Myw2ICs0NTMs NyBAQCBzdHJ1Y3QgZG1fY3J0Y19zdGF0ZSB7Cj4gPiDCoCAKPiA+IMKgwqDCoMKgwqDCoMKgwqBi b29sIGZyZWVzeW5jX3RpbWluZ19jaGFuZ2VkOwo+ID4gwqDCoMKgwqDCoMKgwqDCoGJvb2wgZnJl ZXN5bmNfdnJyX2luZm9fY2hhbmdlZDsKPiA+ICvCoMKgwqDCoMKgwqDCoGJvb2wgZnJlZXN5bmNf dmlkZW9fbW9kZTsKPiA+IMKgIAo+ID4gwqDCoMKgwqDCoMKgwqDCoGJvb2wgZHNjX2ZvcmNlX2No YW5nZWQ7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgYm9vbCB2cnJfc3VwcG9ydGVkOwo+ID4gCj4gCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==