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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6D39C433EF for ; Fri, 19 Nov 2021 11:21:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A488A61A03 for ; Fri, 19 Nov 2021 11:21:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235060AbhKSLYx (ORCPT ); Fri, 19 Nov 2021 06:24:53 -0500 Received: from esa.hc3962-90.iphmx.com ([216.71.140.77]:18348 "EHLO esa.hc3962-90.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235037AbhKSLYv (ORCPT ); Fri, 19 Nov 2021 06:24:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qccesdkim1; t=1637320910; x=1637925710; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=y7sfLmIOu1C6T51ndyTlo5JtZ3EssEr3WEmRa1tewAw=; b=0ZVXe3loD+9ljA5N+KTH4G+tDBrrDEvMX0t0z8il1nD15lO9SD3N3z2M XQk/wfwIVMuPV/C8T/Dqi1DY1FY0sSpfdMEduDL/SmKM+mwgWWn9GpPY+ NH+7lXkn2wutayhtNIJLEHmXFhesosYo4rcRMuSdnTuSv6MYJIXZzxXG1 Q=; Received: from mail-co1nam11lp2172.outbound.protection.outlook.com (HELO NAM11-CO1-obe.outbound.protection.outlook.com) ([104.47.56.172]) by ob1.hc3962-90.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2021 11:21:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RtpUwMS4JsotY2smWiliY+wHoe2eqP2AXBQgzGJo0kuat0xUff8jqPXMCsR5b1AOxvmPo7vfETZmxXJtR5Ekvi7ToNsgWb6qVyeQ5VbojGcyiohQTo0xQKyV8xsHW/tLwdWoI/ZrW5EJvFAdJDjuAO6l2Z47VU0/ScCWzCacPpWoAVnKfN/XedrunozKHBZu3aYC+OczktmJ5IaeDdsSBDa1eD2hNYqS6eqfSjHIDQ2wg9d0Ej1CIhJ08vDOtUkGSU2ZCz5Df2+Ag9Gyql7jsyIG/d0zhFGhGtMM/N/ob8p2gNXrNMr2i94GWcoM+yLVI2INqun9FbKB5z0Iwtun+g== 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=y7sfLmIOu1C6T51ndyTlo5JtZ3EssEr3WEmRa1tewAw=; b=hDghpW7bVz5mbFOZSZhhsJ4GEyiUUr4VkuLSUyZxbsd4RnWcNuddNgkbzZ6HmZYUxS9VAImjR9nzuf31avWuyCb+RHxqXSbVsZlOrHMmnRlzfYnzh+vTda+7ckyDduB0Cu3wJXoqWFrV2EMsDv/YUAfayRoOWFeUvtRRG9r9vaOr3K7zU9VCEcrQbvgIOCoFZHmgvf0D+pwCWTu/uPG9nl5tU4bHe8ORdMIxpLXM2mLorZbruXyH8rXaTICmqo2tka3GNPQP7eKEPsdvozgaYMwZhnOrjJcTHLssZ6qL7Q7UtyAXWyV8lduaUcuUoDzrKBUvv09lSchzRAeogCHabg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quicinc.com; dmarc=pass action=none header.from=quicinc.com; dkim=pass header.d=quicinc.com; arc=none Received: from DM8PR02MB8247.namprd02.prod.outlook.com (2603:10b6:8:d::19) by DM6PR02MB4379.namprd02.prod.outlook.com (2603:10b6:5:2d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Fri, 19 Nov 2021 11:21:47 +0000 Received: from DM8PR02MB8247.namprd02.prod.outlook.com ([fe80::7049:5fd3:2061:c1f3]) by DM8PR02MB8247.namprd02.prod.outlook.com ([fe80::7049:5fd3:2061:c1f3%9]) with mapi id 15.20.4713.022; Fri, 19 Nov 2021 11:21:47 +0000 From: "JianGen Jiao (QUIC)" To: Dmitry Vyukov , "JianGen Jiao (QUIC)" CC: "andreyknvl@gmail.com" , "kasan-dev@googlegroups.com" , LKML , Alexander Lochmann , "Likai Ding (QUIC)" Subject: RE: [PATCH] kcov: add KCOV_PC_RANGE to limit pc range Thread-Topic: [PATCH] kcov: add KCOV_PC_RANGE to limit pc range Thread-Index: AQHX23vD2nRqghWy5Eq5zUX4/l1PcKwJUjYAgAC3OuCAAKLFAIAAC+bw Date: Fri, 19 Nov 2021 11:21:46 +0000 Message-ID: References: <1637130234-57238-1-git-send-email-quic_jiangenj@quicinc.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=quicinc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d71adb80-6e4d-432e-3f54-08d9ab4ec63a x-ms-traffictypediagnostic: DM6PR02MB4379: x-ld-processed: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V7sPRbLsL3tdGiz111/z7F1FNWp3KDuZSDZKVYMzpWKLpQotsPGujDgQnmpqgdo/pZShH/bhAY2pXBqJAx1+aGG2ARIBtfae4aLSmstItw+w4KQxxyqjRfUADDIfXdOQkgugrBFwGwUFGJLGSiyc/7XP8qKCmXmDyQx57rEeFG3j9xnKSWI99g2j+25XCScGItL1tdjohhzGlL6yWXpKE1Htgl9QwuS0hEMeZypOH7+AVP7agoO519MWEEjP6Awu444coIGcuC4niJu6lGqRkNoAqyyepSSaiRRYLTFoWNaYOI99MFPzJeLFCu9Q3d68fpUsBa6zY2r/JlvHp7Un/iMDDDkW0BXIOVmnJg2FYoDHbSpfmPhqDJApZ8CZX5PkjoSKj4/hdr/zdTcdl076gOW1/d2In0TjCQq3l9UtYwefgUQE1PZx4d1mPwAvxxVSNAciPQ5XR0nV9AAFqb3Y2Uw+NfBHjyMwjAqxYYKSdv5MiNhSFhdEkwI1GDz3K0P/Z9SBYScCGgYBztoyteJfWV3GaB+yr+ptvKh+2bR9uTb4V2WyuT6fFydHTURHoULK9vHxQgsROJyT2SPdUiL4wLSVE4bBopkr5Xrmhw5G38Ne62xXdfO7S5vTcRTopRah5Y/6F+UvLRCgcaXwbzhb/yYM0Tj+6lzTRno+rv4ups42e4u5xgylQSGAzyiaTTePmplFabjh3sx5uzLR6D4DPV/b06eoyW2SgSJjjPjFdbCTxZ5+3WkPYh6RrWyksZcnAW+bzG81iUEq2IT7/xRXx9kITeKypIqzgRbrjLkj9XM= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR02MB8247.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52536014)(186003)(7696005)(107886003)(83380400001)(5660300002)(54906003)(4326008)(110136005)(122000001)(8676002)(8936002)(38070700005)(53546011)(9686003)(86362001)(55016002)(71200400001)(6506007)(76116006)(966005)(64756008)(33656002)(316002)(66556008)(508600001)(66946007)(66476007)(26005)(66446008)(38100700002)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VHB2d280anBlYlZ3Yzhwc1ZValNEeHFrVkF2a3lEOGZGTmM1T0dzZURPcDNS?= =?utf-8?B?S09iSGdvMlNGbEJHTnZBb3haMUdFODNmYmtaaFAvUUswY2lDRWs4ZCtoeWJF?= =?utf-8?B?VGRERVlQYll1Zm1BMDNGWTIxWWsxSnp5bGUyaFJ0djE4aytldmZtdWtUNkxL?= =?utf-8?B?NnF0aFA3R0VULzNkTE03Z2dLSklWWG9KQUpNQXcyQXlzTnczRXg1c3JURElQ?= =?utf-8?B?aTN5YmdyOWMrTkZBUm1nZGJlcWhFdFZKbFY5SWgyckRES1lLSW5wNjBKdGxV?= =?utf-8?B?TkhGL2ljajR5cXRiaEdFQXBPaWdwSjB0ZzZadnpRVGpLTklpYjg0NkxTN1FN?= =?utf-8?B?c3h5RGhkc0ZweEFaa0R4eldQYnUzZXpQVVdHVllDeHpVNzRUUk15T1JZYnVY?= =?utf-8?B?MzBCWTZ6Q2JtNWluSFc3UWFzNnI3aHk1eHBScC82ZGFROGU2RCtScGxVZlRY?= =?utf-8?B?QS9HOG5OanUrTlJGNlMyVmtnNnJuVGp5VVUvMmJZSmVWWkVFUU1RNnFTNU9H?= =?utf-8?B?SVZrS0JQdVRnZVJmMkF3UFNWdW84VUp3cTZ4V0FIbFBVc0p6czFCMzJhZmVt?= =?utf-8?B?K1N6aFlUWjJ1OEI4SDF0dVcrd2E0SkJkVDE2WWQ4d2t0SEt0S1NZam9ENTMx?= =?utf-8?B?NE1qV1hQOEdxeSt3NzBOMnBMczYwT2ZrODloTmlGZWtxMDJKVDUyUVV2anBR?= =?utf-8?B?b21EdS9oSVZzdzllNzVJMDVGb04raDZlQ2g0c2pkbkFjKzJqVCtRR1crWjJ2?= =?utf-8?B?RHd6bnJ3SXlkaEdlakJ5SE0yTTNxVlkyQ3lYRmJDdkdiL21zaGxQUHBQclJ2?= =?utf-8?B?eEV5c1BKZmE5WURSRThYOU1IN2JWM2JrZ0hKUjFzN0NzVHRQYnJKZVh5OUNl?= =?utf-8?B?MUlZUEV5cy8wTjRhMkFPYzRwR202ZFRrd3FmZWliL0VsMkgvWkoyTUgyNzkw?= =?utf-8?B?dldwN1Jja0MzVVQxOXF6Y1ZIYWNGbkZHYUtwR3V5WTFUcmtsTTF2RGQ2Vm5S?= =?utf-8?B?UzNwVGdtMS9Vay9OWUxzUjBIaXJOK3p6VXBUeTVwb2dTd2QrYUJxZXdlZWE5?= =?utf-8?B?TGFkMFFuNlpSZFk2Z0h6N3hucHIwc0dHL1Q4NHpMVzZvUXlaSlRIWXhJbmx5?= =?utf-8?B?bmJBdFFNTjBUaGJBYmlMQUduUXNrUHpSWm0xWGxNWEVPTkxNd1R5Vi9QZmVr?= =?utf-8?B?MzFHQ0xqS0FWVnZocUYyY1BzS1BwUlB6SDR2TFZidHI5Y28wQVpRSTJQL295?= =?utf-8?B?b1o0K2h4SHY1RU9JbnRNTDRNVWtnVG9FTjBWb1I4Vlc5MzJ0QlJiQktFZjky?= =?utf-8?B?K3JoYzUwQkNhYitXUndIRm5rd2FDUFJuV2plNGxtWlZzaVk0eFV2RGtGTjRP?= =?utf-8?B?WFpkM090ejJHS05UZndZb0pHN2svOEdvRUhtM2piMmpvU3dicFV6NjhNbnkr?= =?utf-8?B?ekdqd0JIMWhSWFBnbjNhZFB1WXpPdTBCMUJ1bDRZNWc5djBlUmt1ZzNmVU44?= =?utf-8?B?V0UyajRXSGF4M2dGcVZuSldBcTk5ak05OXlmcnFDZDRlWmVidEF5MWcvaHlT?= =?utf-8?B?UmZFM3ZmY29UQUlYNjJQd0hkakhLcGdGMUJUUU9yOEZpTFZ3S09yZEJOK0Nz?= =?utf-8?B?cEl0RWtDbm1WTmNtVlBhRGNqejVJQWJzNHlFbXJmWHltQnprcW5yQzJKdTdk?= =?utf-8?B?MEF5eWZSdUhpU1VqMmVNOGN4S0FjRWRBZ1FzSUJSeHRYUE4wR3pYZy9wdUNX?= =?utf-8?B?L3dLRDBMSEFBTG4yVTF1Y216UUg3eWFIeXc0ZkM0UDhYSHlMdkRJcWNZMGUy?= =?utf-8?B?dkxqaWh4K1QyQ01NU0duU3QzUThqVGd4Nk96L29QS1RpemYxZHlzeFlGZ1FP?= =?utf-8?B?cWFiWEM1bDlwSm9CdVViVEJ2Z3lHUUMxSGFFdWRVRDAwcmpMQ2V1bVVqbGNl?= =?utf-8?B?bzdPVnc2VnJSYXZSUVc5eWpSdVUvRXhwNlN0RlFsb09sQzRpeHJ1Y0lrU1E4?= =?utf-8?B?VGhSMEJjZ05MZ0FDUHVrVm5EazhrTWJFOGxCa3FVQ2dZc2kxeWpVWW54S2cv?= =?utf-8?B?bHR6NFNjS05wYUFXRUpZZTFKQUtNL1M3Z3VrUG9PN3VUK0JBdEFhZjZyYXFW?= =?utf-8?B?S2hxZU1WVlZjei9aeFAwQ2t1S3lwMHZjV2FzT0xaM0ZBTkRGaWM4TGtQN1hj?= =?utf-8?B?dWtoWE42aGxSTUtTbHZiRWdscERQYnMyeENOK3VVWWRIajc3VjByN0RmbGhB?= =?utf-8?B?NUNncTRxbmFCTWt1NkhSNm1SNDJRPT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: quicinc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR02MB8247.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d71adb80-6e4d-432e-3f54-08d9ab4ec63a X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 11:21:47.0085 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6+YN+qv/nzhzj1M+ZffP8cn9uFkgnGq0WQuajKgsAYYEwtBNgFOHSbGGDEAG1Oq54Vwa7IRb7nE/fkPsQedOeOlBXQBUG4HmQ3WYa1Apa6c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4379 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org WWVzLCBvbiB4ODZfNjQsIG1vZHVsZSBhZGRyZXNzIHNwYWNlIGlzIGFmdGVyIGtlcm5lbC4gQnV0 IGxpa2UgYmVsb3cgb24gYXJtNjQsIGl0J3MgZGlmZmVyZW50Lg0KDQojIGdyZXAgc3RleHQgL3By b2Mva2FsbHN5bXMNCmZmZmZmZmMwMTAwMTAwMDAgVCBfc3RleHQNCiMgY2F0IC9wcm9jL21vZHVs ZXMgfHNvcnQgLWsgNiB8IHRhaWwgLTINClNvbWVfbW9kdWxlXzEgNTUyOTYwIDAgLSBMaXZlIDB4 ZmZmZmZmYzAwY2EwNTAwMCAoTykNClNvbWVfbW9kdWxlXzEgMzYwNDQ4IDAgLSBMaXZlIDB4ZmZm ZmZmYzAwY2I4ZjAwMCAoTykgIyBjYXQgL3Byb2MvbW9kdWxlcyB8c29ydCAtayA2IHwgaGVhZCAt Mg0KU29tZV9tb2R1bGVfMyAxNjM4NCAxIC0gTGl2ZSAweGZmZmZmZmMwMDk0MzAwMDANCg0KLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29v Z2xlLmNvbT4gDQpTZW50OiBGcmlkYXksIE5vdmVtYmVyIDE5LCAyMDIxIDY6MzggUE0NClRvOiBK aWFuR2VuIEppYW8gKFFVSUMpIDxxdWljX2ppYW5nZW5qQHF1aWNpbmMuY29tPg0KQ2M6IGFuZHJl eWtudmxAZ21haWwuY29tOyBrYXNhbi1kZXZAZ29vZ2xlZ3JvdXBzLmNvbTsgTEtNTCA8bGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZz47IEFsZXhhbmRlciBMb2NobWFubiA8aW5mb0BhbGV4YW5k ZXItbG9jaG1hbm4uZGU+OyBMaWthaSBEaW5nIChRVUlDKSA8cXVpY19saWthaWRAcXVpY2luYy5j b20+DQpTdWJqZWN0OiBSZTogW1BBVENIXSBrY292OiBhZGQgS0NPVl9QQ19SQU5HRSB0byBsaW1p dCBwYyByYW5nZQ0KDQpXQVJOSU5HOiBUaGlzIGVtYWlsIG9yaWdpbmF0ZWQgZnJvbSBvdXRzaWRl IG9mIFF1YWxjb21tLiBQbGVhc2UgYmUgd2FyeSBvZiBhbnkgbGlua3Mgb3IgYXR0YWNobWVudHMs IGFuZCBkbyBub3QgZW5hYmxlIG1hY3Jvcy4NCg0KT24gRnJpLCAxOSBOb3YgMjAyMSBhdCAwNDox NywgSmlhbkdlbiBKaWFvIChRVUlDKSA8cXVpY19qaWFuZ2VuakBxdWljaW5jLmNvbT4gd3JvdGU6 DQo+DQo+IEhpIERtaXRyeSwNCj4gSSdtIHVzaW5nIHRoZSBzdGFydCwgZW5kIHBjIGZyb20gY292 ZXIgZmlsdGVyLCB3aGljaCBjdXJyZW50bHkgaXMgdGhlIGZhc3Qgd2F5IGNvbXBhcmVkIHRvIHRo ZSBiaWcgYml0bWFwIHBhc3NpbmcgZnJvbSBzeXprYWxsZXIgc29sdXRpb24sIGFzIEkgb25seSBz ZXQgdGhlIGNvdmVyIGZpbHRlciB0byBkaXJzL2ZpbGVzIEkgY2FyZSBhYm91dC4NCg0KSSBzZWUu DQpCdXQgaWYgd2UgYXJlIHVubHVja3kgYW5kIG91ciBmdW5jdGlvbnMgb2YgaW50ZXJlc3QgYXJl IGF0IHRoZSB2ZXJ5IGxvdyBhbmQgaGlnaCBhZGRyZXNzZXMsIHN0YXJ0L2VuZCB3aWxsIGNvdmVy IGFsbW9zdCBhbGwga2VybmVsIGNvZGUuLi4NCg0KPiBJIGNoZWNrZWQgDQo+IGh0dHBzOi8vZ3Jv dXBzLmdvb2dsZS5jb20vZy9rYXNhbi1kZXYvYy9vVnozWlNXYUsxUS9tLzlBU3p0ZHpDQUFBSiwN Cj4gVGhlIGJpdG1hcCBzZWVtcyBub3QgdGhlIHNhbWUgYXMgc3l6a2FsbGVyIG9uZSwgd2hpY2gg b25lIHdpbGwgYmUgdXNlZCBmaW5hbGx5Pw0KDQpJIGRvbid0IGtub3cgeWV0LiBXZSBuZWVkIHRv IGRlY2lkZS4NCkluIHN5emthbGxlciB3ZSBhcmUgbW9yZSBmbGV4aWJsZSBhbmQgY2FuIGNoYW5n ZSBjb2RlIGZhc3Rlciwgd2hpbGUga2VybmVsIGludGVyZmFjZXMgYXJlIHN0YWJsZSBhbmQgbmVl ZCB0byBiZSBrZXB0IGZvcmV2ZXIuIFNvIEkgdGhpbmsgd2UgbmVlZCB0byBjb25jZW50cmF0ZSBt b3JlIG9uIHRoZSBnb29kIGtlcm5lbCBpbnRlcmZhY2UgYW5kIHRoZW4gc3VwcG9ydCBpdCBpbiBz eXprYWxsZXIuDQoNCj4gYGBgIEFsZXhhbmRlcidzIG9uZQ0KPiArIHBvcyA9IChpcCAtIGNhbm9u aWNhbGl6ZV9pcCgodW5zaWduZWQgbG9uZykmX3N0ZXh0KSkgLyA0OyBpZHggPSBwb3MgDQo+ICsg JSBCSVRTX1BFUl9MT05HOyBwb3MgLz0gQklUU19QRVJfTE9ORzsgaWYgKGxpa2VseShwb3MgPCAN Cj4gKyB0LT5rY292X3NpemUpKSBXUklURV9PTkNFKGFyZWFbcG9zXSwgUkVBRF9PTkNFKGFyZWFb cG9zXSkgfCAxTCA8PCANCj4gKyBpZHgpOw0KPiBgYGANCj4gUGMgb2Zmc2V0IGlzIGRpdmlkZWQg YnkgNCBhbmQgc3RhcnQgaXMgX3N0ZXh0LiBCdXQgZm9yIHNvbWUgYXJjaCwgcGMgaXMgbGVzcyB0 aGFuIF9zdGV4dC4NCg0KWW91IG1lYW4gdGhhdCBtb2R1bGVzIGNhbiBoYXZlIFBDIDwgX3N0ZXh0 Pw0KDQo+IGBgYCBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3N5emthbGxlci9ibG9iL21hc3Rl ci9zeXotbWFuYWdlci9jb3ZmaWx0ZXIuZ28jTDEzOS1MMTU0DQo+ICAgICAgICAgZGF0YSA6PSBt YWtlKFtdYnl0ZSwgOCsoKHNpemU+PjQpLzgrMSkpDQo+ICAgICAgICAgb3JkZXIgOj0gYmluYXJ5 LkJ5dGVPcmRlcihiaW5hcnkuQmlnRW5kaWFuKQ0KPiAgICAgICAgIGlmIHRhcmdldC5MaXR0bGVF bmRpYW4gew0KPiAgICAgICAgICAgICAgICAgb3JkZXIgPSBiaW5hcnkuTGl0dGxlRW5kaWFuDQo+ ICAgICAgICAgfQ0KPiAgICAgICAgIG9yZGVyLlB1dFVpbnQzMihkYXRhLCBzdGFydCkNCj4gICAg ICAgICBvcmRlci5QdXRVaW50MzIoZGF0YVs0Ol0sIHNpemUpDQo+DQo+ICAgICAgICAgYml0bWFw IDo9IGRhdGFbODpdDQo+ICAgICAgICAgZm9yIHBjIDo9IHJhbmdlIHBjcyB7DQo+ICAgICAgICAg ICAgICAgICAvLyBUaGUgbG93ZXN0IDQtYml0IGlzIGRyb3BwZWQuDQo+ICAgICAgICAgICAgICAg ICBwYyA9IHVpbnQzMihiYWNrZW5kLk5leHRJbnN0cnVjdGlvblBDKHRhcmdldCwgdWludDY0KHBj KSkpDQo+ICAgICAgICAgICAgICAgICBwYyA9IChwYyAtIHN0YXJ0KSA+PiA0DQo+ICAgICAgICAg ICAgICAgICBiaXRtYXBbcGMvOF0gfD0gKDEgPDwgKHBjICUgOCkpDQo+ICAgICAgICAgfQ0KPiAg ICAgICAgIHJldHVybiBkYXRhDQo+IGBgYA0KPiBQYyBvZmZzZXQgaXMgZGl2aWRlZCBieSAxNiBh bmQgc3RhcnQgaXMgY292ZXIgZmlsdGVyIHN0YXJ0IHBjLg0KPg0KPiBJIHRoaW5rIGRpdmlkZWQg YnkgOCBpcyBtb3JlIHJlYXNvbmFibGU/IEJlY2F1c2UgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGlu c3RydWN0aW9uIGJlZm9yZSBlYWNoIF9fc2FuaXRpemVyX2Nvdl90cmFjZV9wYyBjYWxsLg0KPiAw MDAwMDAwMDAwMDAwMTYwIFJfQUFSQ0g2NF9DQUxMMjYgIF9fc2FuaXRpemVyX2Nvdl90cmFjZV9w Yw0KPiAwMDAwMDAwMDAwMDAwMTY4IFJfQUFSQ0g2NF9DQUxMMjYgIF9fc2FuaXRpemVyX2Nvdl90 cmFjZV9wYw0KPg0KPiBJIHRoaW5rIHdlIHN0aWxsIG5lZWQgbXkgcGF0Y2ggYmVjYXVzZSB3ZSBz dGlsbCBuZWVkIGEgd2F5IHRvIGtlZXAgdGhlIHRyYWNlX3BjIGNhbGwgYW5kIHBvc3QtZmlsdGVy IGluIHN5emthbGxlciBkb2Vzbid0IHNvbHZlIHRyYWNlX3BjIGRyb3BwaW5nLCByaWdodD8NCg0K WWVzLCB0aGUgaW4ta2VybmVsIGZpbHRlciBzb2x2ZXMgdGhlIHByb2JsZW0gb2YgdHJhY2UgY2Fw YWNpdHkvb3ZlcmZsb3dzLg0KDQoNCj4gQnV0IGZvciBzdXJlIEkgY2FuIHVzZSB0aGUgYml0bWFw IGZyb20gc3l6a2FsbGVyLg0KPg0KPiBUSFgNCj4gSm9leQ0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+DQo+IFNl bnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAxOCwgMjAyMSAxMDowMCBQTQ0KPiBUbzogSmlhbkdlbiBK aWFvIChRVUlDKSA8cXVpY19qaWFuZ2VuakBxdWljaW5jLmNvbT4NCj4gQ2M6IGFuZHJleWtudmxA Z21haWwuY29tOyBrYXNhbi1kZXZAZ29vZ2xlZ3JvdXBzLmNvbTsgTEtNTCANCj4gPGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBBbGV4YW5kZXIgTG9jaG1hbm4gDQo+IDxpbmZvQGFsZXhh bmRlci1sb2NobWFubi5kZT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSF0ga2NvdjogYWRkIEtDT1Zf UENfUkFOR0UgdG8gbGltaXQgcGMgcmFuZ2UNCj4NCj4gV0FSTklORzogVGhpcyBlbWFpbCBvcmln aW5hdGVkIGZyb20gb3V0c2lkZSBvZiBRdWFsY29tbS4gUGxlYXNlIGJlIHdhcnkgb2YgYW55IGxp bmtzIG9yIGF0dGFjaG1lbnRzLCBhbmQgZG8gbm90IGVuYWJsZSBtYWNyb3MuDQo+DQo+ICxPbiBX ZWQsIDE3IE5vdiAyMDIxIGF0IDA3OjI0LCBKb2V5IEppYW8gPHF1aWNfamlhbmdlbmpAcXVpY2lu Yy5jb20+IHdyb3RlOg0KPiA+DQo+ID4gU29tZXRpbWVzIHdlIG9ubHkgaW50ZXJlc3RlZCBpbiB0 aGUgcGNzIHdpdGhpbiBzb21lIHJhbmdlLCB3aGlsZSANCj4gPiB0aGVyZSBhcmUgY2FzZXMgdGhl c2UgcGNzIGFyZSBkcm9wcGVkIGJ5IGtlcm5lbCBkdWUgdG8gYHBvcyA+PQ0KPiA+IHQtPmtjb3Zf c2l6ZWAsIGFuZCBieSBpbmNyZWFzaW5nIHRoZSBtYXAgYXJlYSBzaXplIGRvZXNuJ3QgaGVscC4N Cj4gPg0KPiA+IFRvIGF2b2lkIGRpc2FibGluZyBLQ09WIGZvciB0aGVzZSBub3QgaW50ZXJlc2V0 ZWQgcGNzIGR1cmluZyBidWlsZCANCj4gPiB0aW1lLCBhZGRpbmcgdGhpcyBuZXcgS0NPVl9QQ19S QU5HRSBjbWQuDQo+DQo+IEhpIEpvZXksDQo+DQo+IEhvdyBkbyB5b3UgdXNlIHRoaXM/IEkgYW0g Y29uY2VybmVkIHRoYXQgYSBzaW5nbGUgcmFuZ2Ugb2YgUENzIGlzIHRvbyByZXN0cmljdGl2ZS4g SSBjYW4gb25seSBzZWUgaG93IHRoaXMgY2FuIHdvcmsgZm9yIHNpbmdsZSBtb2R1bGUgKGNvbnRp bnVvdXMgaW4gbWVtb3J5KSBvciBhIHNpbmdsZSBmdW5jdGlvbi4gQnV0IGZvciBhbnl0aGluZyBl bHNlIChzb21ldGhpbmcgaW4gdGhlIG1haW4ga2VybmVsLCBvciBzZXZlcmFsIG1vZHVsZXMpLCBp dCB3b24ndCB3b3JrIGFzIFBDcyBhcmUgbm90IGNvbnRpbnVvdXMuDQo+DQo+IE1heWJlIHdlIHNo b3VsZCB1c2UgYSBjb21wcmVzc2VkIGJpdG1hcCBvZiBpbnRlcmVzdGluZyBQQ3M/IEl0IGFsbG93 cyB0byBzdXBwb3J0IGFsbCBjYXNlcyBhbmQgd2UgYWxyZWFkeSBoYXZlIGl0IGluIHN5ei1leGVj dXRvciwgdGhlbiBzeXotZXhlY3V0b3IgY291bGQgc2ltcGx5IHBhc3MgdGhlIGJpdG1hcCB0byB0 aGUga2VybmVsIHJhdGhlciB0aGFuIHBvc3QtZmlsdGVyLg0KPiBJdCdzIGFsc28gb3ZlcmxhcHMg d2l0aCB0aGUgS0NPVl9NT0RFX1VOSVFVRSBtb2RlIHRoYXQgK0FsZXhhbmRlciBwcm9wb3NlZCBo ZXJlOg0KPiBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2cva2FzYW4tZGV2L2Mvb1Z6M1pTV2FL MVEvbS85QVN6dGR6Q0FBQUoNCj4gSXQgd291bGQgYmUgcmVhc29uYWJsZSBpZiBrZXJuZWwgdXNl cyB0aGUgc2FtZSBiaXRtYXAgZm9ybWF0IGZvciB0aGVzZQ0KPiAyIGZlYXR1cmVzLg0KPg0KPg0K Pg0KPiA+IEFuIGV4YW1wbGUgdXNhZ2UgaXMgdG8gdXNlIHRvZ2V0aGVyIHN5emthbGxlcidzIGNv diBmaWx0ZXIuDQo+ID4NCj4gPiBDaGFuZ2UtSWQ6IEk5NTRmNmVmZTFiY2E2MDRmNWNlMzFmOGYy YjZmNjg5ZTM0YTI5ODFkDQo+ID4gU2lnbmVkLW9mZi1ieTogSm9leSBKaWFvIDxxdWljX2ppYW5n ZW5qQHF1aWNpbmMuY29tPg0KPiA+IC0tLQ0KPiA+ICBEb2N1bWVudGF0aW9uL2Rldi10b29scy9r Y292LnJzdCB8IDEwICsrKysrKysrKysNCj4gPiAgaW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaCAg ICAgICAgfCAgNyArKysrKysrDQo+ID4gIGtlcm5lbC9rY292LmMgICAgICAgICAgICAgICAgICAg IHwgMTggKysrKysrKysrKysrKysrKysrDQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0 aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2LXRvb2xzL2tj b3YucnN0DQo+ID4gYi9Eb2N1bWVudGF0aW9uL2Rldi10b29scy9rY292LnJzdA0KPiA+IGluZGV4 IGQ4M2M5YWIuLmZiY2Q0MjIgMTAwNjQ0DQo+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXYtdG9v bHMva2Nvdi5yc3QNCj4gPiArKysgYi9Eb2N1bWVudGF0aW9uL2Rldi10b29scy9rY292LnJzdA0K PiA+IEBAIC01Miw5ICs1MiwxNSBAQCBwcm9ncmFtIHVzaW5nIGtjb3Y6DQo+ID4gICAgICAjaW5j bHVkZSA8ZmNudGwuaD4NCj4gPiAgICAgICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPg0KPiA+DQo+ ID4gKyAgICBzdHJ1Y3Qga2Nvdl9wY19yYW5nZSB7DQo+ID4gKyAgICAgIHVpbnQzMiBzdGFydDsN Cj4gPiArICAgICAgdWludDMyIGVuZDsNCj4gPiArICAgIH07DQo+ID4gKw0KPiA+ICAgICAgI2Rl ZmluZSBLQ09WX0lOSVRfVFJBQ0UgICAgICAgICAgICAgICAgICAgIF9JT1IoJ2MnLCAxLCB1bnNp Z25lZCBsb25nKQ0KPiA+ICAgICAgI2RlZmluZSBLQ09WX0VOQUJMRSAgICAgICAgICAgICAgICAg ICAgICAgIF9JTygnYycsIDEwMCkNCj4gPiAgICAgICNkZWZpbmUgS0NPVl9ESVNBQkxFICAgICAg ICAgICAgICAgICAgICAgICBfSU8oJ2MnLCAxMDEpDQo+ID4gKyAgICAjZGVmaW5lIEtDT1ZfVFJB Q0VfUkFOR0UgICAgICAgICAgICAgICAgICAgX0lPVygnYycsIDEwMywgc3RydWN0IGtjb3ZfcGNf cmFuZ2UpDQo+ID4gICAgICAjZGVmaW5lIENPVkVSX1NJWkUgICAgICAgICAgICAgICAgICg2NDw8 MTApDQo+ID4NCj4gPiAgICAgICNkZWZpbmUgS0NPVl9UUkFDRV9QQyAgMA0KPiA+IEBAIC02NCw2 ICs3MCw4IEBAIHByb2dyYW0gdXNpbmcga2NvdjoNCj4gPiAgICAgIHsNCj4gPiAgICAgICAgIGlu dCBmZDsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgKmNvdmVyLCBuLCBpOw0KPiA+ICsgICAg ICAgIC8qIENoYW5nZSBzdGFydCBhbmQvb3IgZW5kIHRvIHlvdXIgaW50ZXJlc3RlZCBwYyByYW5n ZS4gKi8NCj4gPiArICAgICAgICBzdHJ1Y3Qga2Nvdl9wY19yYW5nZSBwY19yYW5nZSA9IHsuc3Rh cnQgPSAwLCAuZW5kID0gDQo+ID4gKyAodWludDMyKSh+KCh1aW50MzIpMCkpfTsNCj4gPg0KPiA+ ICAgICAgICAgLyogQSBzaW5nbGUgZmQgZGVzY3JpcHRvciBhbGxvd3MgY292ZXJhZ2UgY29sbGVj dGlvbiBvbiBhIHNpbmdsZQ0KPiA+ICAgICAgICAgICogdGhyZWFkLg0KPiA+IEBAIC03OSw2ICs4 Nyw4IEBAIHByb2dyYW0gdXNpbmcga2NvdjoNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOw0K PiA+ICAgICAgICAgaWYgKCh2b2lkKiljb3ZlciA9PSBNQVBfRkFJTEVEKQ0KPiA+ICAgICAgICAg ICAgICAgICBwZXJyb3IoIm1tYXAiKSwgZXhpdCgxKTsNCj4gPiArICAgICAgICBpZiAoaW9jdGwo ZmQsIEtDT1ZfUENfUkFOR0UsIHBjX3JhbmdlKSkNCj4gPiArICAgICAgICAgICAgICAgZHByaW50 ZigyLCAiaWdub3JlIEtDT1ZfUENfUkFOR0UgZXJyb3IuXG4iKTsNCj4gPiAgICAgICAgIC8qIEVu YWJsZSBjb3ZlcmFnZSBjb2xsZWN0aW9uIG9uIHRoZSBjdXJyZW50IHRocmVhZC4gKi8NCj4gPiAg ICAgICAgIGlmIChpb2N0bChmZCwgS0NPVl9FTkFCTEUsIEtDT1ZfVFJBQ0VfUEMpKQ0KPiA+ICAg ICAgICAgICAgICAgICBwZXJyb3IoImlvY3RsIiksIGV4aXQoMSk7IGRpZmYgLS1naXQgDQo+ID4g YS9pbmNsdWRlL3VhcGkvbGludXgva2Nvdi5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaCBp bmRleCANCj4gPiAxZDAzNTBlLi4zNTNmZjBhIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvdWFw aS9saW51eC9rY292LmgNCj4gPiArKysgYi9pbmNsdWRlL3VhcGkvbGludXgva2Nvdi5oDQo+ID4g QEAgLTE2LDEyICsxNiwxOSBAQCBzdHJ1Y3Qga2Nvdl9yZW1vdGVfYXJnIHsNCj4gPiAgICAgICAg IF9fYWxpZ25lZF91NjQgICBoYW5kbGVzWzBdOw0KPiA+ICB9Ow0KPiA+DQo+ID4gKyNkZWZpbmUg UENfUkFOR0VfTUFTSyAoKF9fdTMyKSh+KCh1MzIpIDApKSkgc3RydWN0IGtjb3ZfcGNfcmFuZ2Ug ew0KPiA+ICsgICAgICAgX191MzIgICAgICAgICAgIHN0YXJ0OyAgICAgICAgICAvKiBzdGFydCBw YyAmIDB4RkZGRkZGRkYgKi8NCj4gPiArICAgICAgIF9fdTMyICAgICAgICAgICBlbmQ7ICAgICAg ICAgICAgLyogZW5kIHBjICYgMHhGRkZGRkZGRiAqLw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgI2Rl ZmluZSBLQ09WX1JFTU9URV9NQVhfSEFORExFUyAgICAgICAgICAgICAgICAweDEwMA0KPiA+DQo+ ID4gICNkZWZpbmUgS0NPVl9JTklUX1RSQUNFICAgICAgICAgICAgICAgICAgICAgICAgX0lPUign YycsIDEsIHVuc2lnbmVkIGxvbmcpDQo+ID4gICNkZWZpbmUgS0NPVl9FTkFCTEUgICAgICAgICAg ICAgICAgICAgIF9JTygnYycsIDEwMCkNCj4gPiAgI2RlZmluZSBLQ09WX0RJU0FCTEUgICAgICAg ICAgICAgICAgICAgX0lPKCdjJywgMTAxKQ0KPiA+ICAjZGVmaW5lIEtDT1ZfUkVNT1RFX0VOQUJM RSAgICAgICAgICAgICBfSU9XKCdjJywgMTAyLCBzdHJ1Y3Qga2Nvdl9yZW1vdGVfYXJnKQ0KPiA+ ICsjZGVmaW5lIEtDT1ZfUENfUkFOR0UgICAgICAgICAgICAgICAgICBfSU9XKCdjJywgMTAzLCBz dHJ1Y3Qga2Nvdl9wY19yYW5nZSkNCj4gPg0KPiA+ICBlbnVtIHsNCj4gPiAgICAgICAgIC8qDQo+ ID4gZGlmZiAtLWdpdCBhL2tlcm5lbC9rY292LmMgYi9rZXJuZWwva2Nvdi5jIGluZGV4IDM2Y2E2 NDAuLjU5NTUwNDUwDQo+ID4gMTAwNjQ0DQo+ID4gLS0tIGEva2VybmVsL2tjb3YuYw0KPiA+ICsr KyBiL2tlcm5lbC9rY292LmMNCj4gPiBAQCAtMzYsNiArMzYsNyBAQA0KPiA+ICAgKiAgLSBpbml0 aWFsIHN0YXRlIGFmdGVyIG9wZW4oKQ0KPiA+ICAgKiAgLSB0aGVuIHRoZXJlIG11c3QgYmUgYSBz aW5nbGUgaW9jdGwoS0NPVl9JTklUX1RSQUNFKSBjYWxsDQo+ID4gICAqICAtIHRoZW4sIG1tYXAo KSBjYWxsIChzZXZlcmFsIGNhbGxzIGFyZSBhbGxvd2VkIGJ1dCBub3QgdXNlZnVsKQ0KPiA+ICsg KiAgLSB0aGVuLCBvcHRpb25hbCB0byBzZXQgdHJhY2UgcGMgcmFuZ2UNCj4gPiAgICogIC0gdGhl biwgaW9jdGwoS0NPVl9FTkFCTEUsIGFyZyksIHdoZXJlIGFyZyBpcw0KPiA+ICAgKiAgICAgS0NP Vl9UUkFDRV9QQyAtIHRvIHRyYWNlIG9ubHkgdGhlIFBDcw0KPiA+ICAgKiAgICAgb3INCj4gPiBA QCAtNjksNiArNzAsOCBAQCBzdHJ1Y3Qga2NvdiB7DQo+ID4gICAgICAgICAgKiBrY292X3JlbW90 ZV9zdG9wKCksIHNlZSB0aGUgY29tbWVudCB0aGVyZS4NCj4gPiAgICAgICAgICAqLw0KPiA+ICAg ICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2U7DQo+ID4gKyAgICAgICAvKiB1 MzIgVHJhY2UgUEMgcmFuZ2UgZnJvbSBzdGFydCB0byBlbmQuICovDQo+ID4gKyAgICAgICBzdHJ1 Y3Qga2Nvdl9wY19yYW5nZSAgICBwY19yYW5nZTsNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdHJ1Y3Qg a2Nvdl9yZW1vdGVfYXJlYSB7DQo+ID4gQEAgLTE5Miw2ICsxOTUsNyBAQCBzdGF0aWMgbm90cmFj ZSB1bnNpZ25lZCBsb25nIA0KPiA+IGNhbm9uaWNhbGl6ZV9pcCh1bnNpZ25lZCBsb25nIGlwKSAg dm9pZCBub3RyYWNlDQo+ID4gX19zYW5pdGl6ZXJfY292X3RyYWNlX3BjKHZvaWQpICB7DQo+ID4g ICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQ7DQo+ID4gKyAgICAgICBzdHJ1Y3Qga2Nvdl9w Y19yYW5nZSBwY19yYW5nZTsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgKmFyZWE7DQo+ID4g ICAgICAgICB1bnNpZ25lZCBsb25nIGlwID0gY2Fub25pY2FsaXplX2lwKF9SRVRfSVBfKTsNCj4g PiAgICAgICAgIHVuc2lnbmVkIGxvbmcgcG9zOw0KPiA+IEBAIC0xOTksNiArMjAzLDExIEBAIHZv aWQgbm90cmFjZSBfX3Nhbml0aXplcl9jb3ZfdHJhY2VfcGModm9pZCkNCj4gPiAgICAgICAgIHQg PSBjdXJyZW50Ow0KPiA+ICAgICAgICAgaWYgKCFjaGVja19rY292X21vZGUoS0NPVl9NT0RFX1RS QUNFX1BDLCB0KSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgcGNf cmFuZ2UgPSB0LT5rY292LT5wY19yYW5nZTsNCj4gPiArICAgICAgIGlmIChwY19yYW5nZS5zdGFy dCA8IHBjX3JhbmdlLmVuZCAmJg0KPiA+ICsgICAgICAgICAgICAgICAoKGlwICYgUENfUkFOR0Vf TUFTSykgPCBwY19yYW5nZS5zdGFydCB8fA0KPiA+ICsgICAgICAgICAgICAgICAoaXAgJiBQQ19S QU5HRV9NQVNLKSA+IHBjX3JhbmdlLmVuZCkpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsN Cj4gPg0KPiA+ICAgICAgICAgYXJlYSA9IHQtPmtjb3ZfYXJlYTsNCj4gPiAgICAgICAgIC8qIFRo ZSBmaXJzdCA2NC1iaXQgd29yZCBpcyB0aGUgbnVtYmVyIG9mIHN1YnNlcXVlbnQgUENzLiAqLyAN Cj4gPiBAQCAtNTY4LDYgKzU3Nyw3IEBAIHN0YXRpYyBpbnQga2Nvdl9pb2N0bF9sb2NrZWQoc3Ry dWN0IGtjb3YgKmtjb3YsIHVuc2lnbmVkIGludCBjbWQsDQo+ID4gICAgICAgICBpbnQgbW9kZSwg aTsNCj4gPiAgICAgICAgIHN0cnVjdCBrY292X3JlbW90ZV9hcmcgKnJlbW90ZV9hcmc7DQo+ID4g ICAgICAgICBzdHJ1Y3Qga2Nvdl9yZW1vdGUgKnJlbW90ZTsNCj4gPiArICAgICAgIHN0cnVjdCBr Y292X3BjX3JhbmdlICpwY19yYW5nZTsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 DQo+ID4NCj4gPiAgICAgICAgIHN3aXRjaCAoY21kKSB7DQo+ID4gQEAgLTU4OSw2ICs1OTksMTQg QEAgc3RhdGljIGludCBrY292X2lvY3RsX2xvY2tlZChzdHJ1Y3Qga2NvdiAqa2NvdiwgdW5zaWdu ZWQgaW50IGNtZCwNCj4gPiAgICAgICAgICAgICAgICAga2Nvdi0+c2l6ZSA9IHNpemU7DQo+ID4g ICAgICAgICAgICAgICAgIGtjb3YtPm1vZGUgPSBLQ09WX01PREVfSU5JVDsNCj4gPiAgICAgICAg ICAgICAgICAgcmV0dXJuIDA7DQo+ID4gKyAgICAgICBjYXNlIEtDT1ZfUENfUkFOR0U6DQo+ID4g KyAgICAgICAgICAgICAgIC8qIExpbWl0IHRyYWNlIHBjIHJhbmdlLiAqLw0KPiA+ICsgICAgICAg ICAgICAgICBwY19yYW5nZSA9IChzdHJ1Y3Qga2Nvdl9wY19yYW5nZSAqKWFyZzsNCj4gPiArICAg ICAgICAgICAgICAgaWYgKGNvcHlfZnJvbV91c2VyKCZrY292LT5wY19yYW5nZSwgcGNfcmFuZ2Us IHNpemVvZihrY292LT5wY19yYW5nZSkpKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoa2Nvdi0+cGNfcmFuZ2Uuc3Rh cnQgPj0ga2Nvdi0+cGNfcmFuZ2UuZW5kKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiAgICAgICAg IGNhc2UgS0NPVl9FTkFCTEU6DQo+ID4gICAgICAgICAgICAgICAgIC8qDQo+ID4gICAgICAgICAg ICAgICAgICAqIEVuYWJsZSBjb3ZlcmFnZSBmb3IgdGhlIGN1cnJlbnQgdGFzay4NCj4gPiAtLQ0K PiA+IDIuNy40DQo+ID4NCg==