From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8061CEB64DD for ; Thu, 3 Aug 2023 17:44:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=f03tSyzhtc5UKhfuxa750f3gyEaUqN+PVOrbtC7kwDE=; b=xyfuxi1m9ad26g 93DUHm2f7mImAq9qC8daejbk+ooOfTq8CKHEtaEK+fVIoy5ZsQ48iHH43Kh5OLQSY7O+zDd/dviqh HFghhfnByvzxZ8MiBzoYZwzu7psbfvkybc9uDG6oueMH9MGhFGDWidBNRyDkHXxaSaM4yOWjGdYAO Sm/gcA/aLcP7e7mIQQNrMqV5idTiAmYk7YIOriyO6/zc0XsaChQY/llxZBIRpVN8z1iY1Yt6rw2a9 tK7HEkPj8Py7YeaKaP3nlOukl6NbaTlNlyc8phhSaGcdx5EIVxCGi6oPh7acl9lx79+wvgf4T5qvu hjmIlqkzBrzpjUIcP0vQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qRcMt-00ASrD-21; Thu, 03 Aug 2023 17:44:11 +0000 Received: from mail-mw2nam12on20624.outbound.protection.outlook.com ([2a01:111:f400:fe5a::624] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qRcMq-00ASqm-08 for linux-arm-kernel@lists.infradead.org; Thu, 03 Aug 2023 17:44:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c2iqujxSTyU1JJRe2ha7dCChoId5FocBfvUNfM4uVOylBZOC2bm2j+FSOQDwVmhoIU47wkBzk7UD6Ea09LX4gjL5AWxnSTNjM51zuR/fhGmn0U0d1Jy8CUPJEcfdigkKug3cdo7CDWsX3TnZKuVQFdVAx/QQqIjPK6FVyHgsb/ylXXsg+7kyrUONYKK+oAnJmxam3jMSz+WXulopxCkCyp2X2AvfmDT86ZfqF9mPnyQ+O417iVprRyjs/UHIhshFOhWIK0r0zvGiPktAA2SjfFzREYNUxQSNEqR+BzVt+hbOmRGevUXncBiftMKJbGF376UGpfE8RkNOMBMrUK4J+A== 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=PsvTkuAMJAwwCT/cxSbcM1S1gxh+7hn4AfpxRU6wSZA=; b=RMQRzDeLpRHw1SAWA6RVVo79KN0uDoLaL/Koeezc6nFEiu2oByRL12SpawveWeNSM8MgtTUU70knf+/zwVcYHp9zYZ5OxlfGmlXSqaJi4u/4TXJRXfNKGhcvR8+2nqD/+raQmcqLcCTEhG44lyghO2zBowBiJsCsfJMLvdT04/uDmRKnM/NpntT2r6QknWkXSd4b2mnHJ43LtOU6rx6NSpA/+cZa7Ja+dsR68N8rig3/QLx30iDQbF2+8UOuT7JbXIJeYxDoZf6v/AadW+SDK7nGM4YSHN3HG/Rx//5ZfBGY5Zrb73zZF8vFXMCw9cy8Rvtdk8fnJ+IDxomM/bLDIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PsvTkuAMJAwwCT/cxSbcM1S1gxh+7hn4AfpxRU6wSZA=; b=A5VcYWfYCP/iLvcz3AyLkBT5TLOTGiARE1A4QSzWNxZ7G3Kt5auxLg0Aiuumj/FcRN9rUZkOpczG+LIEgEWPgpBWjCHMErPHVAcukfQHC8pBcrLZ9wfxuhCF1AG4wfpghXhJbdFlc084gv6p3mT/ylfGdImbNi2l+JarxgDB/8nSN2UVZNyh4ABrcCtEZ2P5kYLxhVRdU14ONgNv5OzznI5j9xVnDsm5DHPUgm9niKn73sjq2+rSFNiY7cxnj4sfYGktnlPJhLtI0gFgOqe5DPG/XHWFgAeF2nOplZa8RoopiF5NwE8YiVKz9sBDo3c3Ly6L3R/FtL9VR6Ylnicbyg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by SJ2PR12MB9088.namprd12.prod.outlook.com (2603:10b6:a03:565::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.47; Thu, 3 Aug 2023 17:44:01 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::5111:16e8:5afe:1da1]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::5111:16e8:5afe:1da1%6]) with mapi id 15.20.6631.046; Thu, 3 Aug 2023 17:44:01 +0000 Date: Thu, 3 Aug 2023 14:44:00 -0300 From: Jason Gunthorpe To: Michael Shavit Cc: iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, baolu.lu@linux.intel.com, will@kernel.org, jean-philippe@linaro.org, robin.murphy@arm.com, nicolinc@nvidia.com Subject: Re: [PATCH v5 2/6] iommu/arm-smmu-v3: Keep track of attached ssids Message-ID: References: <20230803101351.1561031-1-mshavit@google.com> <20230803181225.v5.2.I8db07b9eaef3bd5ef9bfc5c8c6d44768a4d95293@changeid> Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BL0PR0102CA0015.prod.exchangelabs.com (2603:10b6:207:18::28) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|SJ2PR12MB9088:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f5d5c22-5d68-4e65-aa35-08db944938c4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LNUo1FXqoVlgEqtSw+PMdyRtMNh+AziVpW+qP7SACoHT4fSvr6KcyOilnX2b67ecp7CguUmN3pMZlm1hTK+950j/c5X2NNMZuYmHHD5ymqz//PJBrC/6EJZntYBTOnufa6IIL/5Qk/gSt+quBcH7orI6nfBRe6Fr+D7Kh4qdUjquORKFPhiJvDA6+TEm7vQyNBMkMuDAcvpBRqrSvLvPVF2LI8ExK8rpHWAoGoB9HMQCRXgxAIILG4UvKOwVTLrfmsE4gDccmUU3xatIMSTVynTjSEtSbreg91zU47rUIDdc5G576ZzzIN+4uuI5TKSrzp3HSAPCK1Ck3H7OHHnCM+Uk79BQ6tCfKwEchxqsZFO3CdXDcr/1x1EoavbmCgPn2xBoreMa9tGSppwglvDA3dJG2oJhW7zIdy4ZnzgMhnLl/s9q1KiPG2Bsfg/YXsM32LlkoM0cv97bDM93gCB2rBwtaKPDlAC/lBCffxGVEGcKNumMO3ZIOyLuEgGCGEG4De6qOat41av3eS9SSNaldftsPMud0R8srHfmF5Ll9ccQpBnZ2EbEBsmZi1FMXWTh X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(376002)(396003)(366004)(136003)(39860400002)(346002)(451199021)(2616005)(107886003)(53546011)(6506007)(186003)(83380400001)(26005)(8676002)(66476007)(316002)(66556008)(2906002)(4326008)(66946007)(5660300002)(6916009)(8936002)(41300700001)(6486002)(6512007)(478600001)(38100700002)(36756003)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WlJ3MHN6OUZOdUNOVWx1UmRxd05sTjkvUDRSeCtHdVlnWFUrdmRzM3VZNzBz?= =?utf-8?B?Vk5WWVdETWwvc05LUE1vam01RUhzdGJ2d0FVRlQrVE5YMWdsS2tteDBRZG9V?= =?utf-8?B?SEp1b3cxelIvRnV0YnFDUUlPT1A5aEd4NmJNTWhCRlMvV3E3dXNrWE9kbXhY?= =?utf-8?B?azdGNkpGUk00bW90MjFxcUNGSnh6V2VXRk15UFFSNGREeFdvWUtpOWNSK1Jx?= =?utf-8?B?UnRzS2d0VE9qaXNDNGovdmNvK3l6NmtKNys1aGx6UWx5UTcxRUx5Y1EzRzdn?= =?utf-8?B?NHZYV2toQnMyNGswUG5uODFXTjVyM1g0Szg1SWxVZ01kNEdpL2ZhS2l3Tmh2?= =?utf-8?B?ZmNwc3pVcDdlU2QyVjdoMFhsYkI3ZS92ZVgyM1BjKzF4R29vZEI2ZVV6cGVW?= =?utf-8?B?WEpMeUR1Z1puRmIxZnFvWkhPbk1kSmZjYWFwZ2xQWGduaU5uNnRTS1M1VCtU?= =?utf-8?B?RjdoMEFBdEVmak5pUGtFdkY4UndYL2ljc2twU29qUWtmK05sNzBRWm5EYjUy?= =?utf-8?B?WmI4emlUcTF5dUJrVlhaSGZxL2ZudE0vUlpRNDZ6WFozMS9lVVdCMUNlb1l2?= =?utf-8?B?MUEyenhWblVIcGo3cHMxc2lBVjNuRFRpekxFSktNRngwUDhnS2MwSzJ2RFVj?= =?utf-8?B?aDZSOUd5elRwNFlzVVc2MHVZd3NmQzlQdzQwc1d0TFcwSHBEQjN6WHhRd0Z2?= =?utf-8?B?eUV2RE9xSnZmRGhhRW43MGU0di9wOUliQm9HMURrR3RXNXFVM1lBREx4WFIy?= =?utf-8?B?djcyOXNSYzNRRUZZQ1RrejkrSGhoUFp6dDlabU9Kc3NGajh3L3JsMXg5U1N4?= =?utf-8?B?di9PQXVOM1dJWW9Nd2NnNkZGajdFY3R2Rkc3QkxVaTljYyttUnlDNlZKVnNu?= =?utf-8?B?WkdiM01ENERlMFlORXgwaG9jZzUzWXhzZEx4ejFPMXZBYk5pOTJGNHpwUVdx?= =?utf-8?B?Y1BudHBwMHRGZy90cytGTGY1amJ3c3ozRU1ZS1JhWEU1RlZlb2EvUlRqQmF2?= =?utf-8?B?ZEVld0pVSEo5WWhDZ0VpYjIxMFpmSmVxUlhkMEtVajlaRVNxbHowK0Vzd1JP?= =?utf-8?B?endWODJ1dWtGMFpOWFdBYWVIbTg5dFpyM003QW1IU1ZRQUlCSERKd3paZmhQ?= =?utf-8?B?STRvek8zZjVWTTI4cUZGQVNlZWg5RlNjdkltaEV0Q1dld2dIUEpaYkZFVEN3?= =?utf-8?B?WXlIRE1FR1RSdjA5Qk5qSmFTaloyRDhET3A5UmNQMVJ5ZGJFSGpoTitabDlE?= =?utf-8?B?SWJoMTl2RXBSNDNOdDVkOTUvaVVFRWxqbWFmZ09oSHVIRUFENU1ab25BU0RS?= =?utf-8?B?TG9EWWRQL2h1NmhzKzdFaDFvSHdIYlhCbkxQc1JGQ1cvN2NoNGg3bi95cFk4?= =?utf-8?B?M05lZTlEamd2L0VHb2ZIcVpubkVGT3Z6SzJmUzFrbW1EaHBPeWJrZ1VGMVFk?= =?utf-8?B?RlJLeDBJaktkM1pEMUNEbWhYc1RtdFFqU3BORWY1L1Z5V0tuN2I3bGIyMXV2?= =?utf-8?B?UlJTdEFJditxekJWQkNQK21kSjBkZW9EQStKUUdpRVRCdzd0dE0xT2hDOHVB?= =?utf-8?B?Z0xDWGFtL2g2M25YSjk2RTRuaFJjMHQwS2tDSkpaK01ybiswcnlvY2dQMGNF?= =?utf-8?B?UkM2MHVZQ1Y5Mmk0c0UyTlU2bVBPeVpQUnFHNlNIZENBSGkwRU1YN2xTeFJJ?= =?utf-8?B?aUwyUCtvczV1cm1TR0d6KzVITFlnNXhWVTlqNUFiNSt0bzRLK040cmhhV3Q1?= =?utf-8?B?WjZtdFRtaEJyd3NiZlVVaTZ4MDFnSzByT3JFS3JIV2pMdW9sUnQrcWtQV0pO?= =?utf-8?B?R2Z1VEpKd2QrQUtHNGg2bnRwL014ZjV6UFpOMWYwQ3pNaW5IaERKaEx3WENk?= =?utf-8?B?VWlFZFRNdk5jUFQ0eWFtYVRPNXIvNU9LakUvM0M1WnY4eVZwWmNscHQ1VUVM?= =?utf-8?B?YXdPSjU0ZEtUdjFNRGc4SThjdWJuU0YzZHRHVkNzSUlWRllTU25wUmZHc0lN?= =?utf-8?B?R3h3YmpVaUdNMVI1L2cyZG9kanFOd0Nub0FEc3dqeWdUcVpDVThTOEt4L2FQ?= =?utf-8?B?cENIWVdEdUM2WkRVUWQ0QUlwUGJ2cUtzNWJMNUMreXdWYXZZZm9xN2daMHdj?= =?utf-8?Q?10rY8EupDJV4EmOo2ImU7DrYF?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f5d5c22-5d68-4e65-aa35-08db944938c4 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2023 17:44:01.1285 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: txArfI1C3Zi1dQGsPmRdH7aRpFCsGxYxL3KpgDyyyGVXwinvKw7WZCZffeqb1+b6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9088 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230803_104408_086331_A7803BEE X-CRM114-Status: GOOD ( 38.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBdWcgMDQsIDIwMjMgYXQgMTI6MzI6MDhBTSArMDgwMCwgTWljaGFlbCBTaGF2aXQg d3JvdGU6Cj4gT24gVGh1LCBBdWcgMywgMjAyMyBhdCAxMTo0MuKAr1BNIEphc29uIEd1bnRob3Jw ZSA8amdnQG52aWRpYS5jb20+IHdyb3RlOgo+ID4KPiA+IE9uIFRodSwgQXVnIDAzLCAyMDIzIGF0 IDA2OjEyOjIyUE0gKzA4MDAsIE1pY2hhZWwgU2hhdml0IHdyb3RlOgo+ID4gPiBUaGUgYXJtLXNt bXUtdjMgZHJpdmVyIGtlZXBzIHRyYWNrIG9mIGFsbCBtYXN0ZXJzIHRoYXQgYSBkb21haW4gaXMK PiA+ID4gYXR0YWNoZWQgdG8gc28gdGhhdCBpdCBjYW4gcmUtd3JpdGUgdGhlaXIgU1RFcyB3aGVu IHRoZSBkb21haW4ncyBBU0lEIGlzCj4gPiA+IHVwYXRlZCBieSBTVkEuCj4gPgo+ID4gV2FoPwo+ ID4KPiA+IEEgZG9tYWluJ3MgQVNJRCBzaG91bGRuJ3QgY2hhbmdlLCB3aHkgZG9lcyBpdCBjaGFu Z2UgZm9yIFNWQT8gRG9lc24ndAo+ID4gU1ZBIHVzZSBDRFRFJ3Mgb25seT8gV2h5IHdvdWxkIGl0 IGV2ZXIgY2hhbmdlIGEgU1RFPyBJJ20gY29uZnVzZWQgd2hhdAo+ID4geW91IGFyZSB0cnlpbmcg dG8gZXhwbGFpbiBoZXJlLgo+IAo+IFVyaCByaWdodCwgSSBtaXhlZCB1cCBDRCBlbnRyeSBhbmQg U1RFIGhlcmUuIEJlZm9yZSB0aGlzIHBhdGNoLCBTVkEKPiBrZWVwcyB0cmFja3Mgb2YgYWxsIHRo ZSBtYXN0ZXJzIGF0dGFjaGVkIHRvIGEgQ0QgZG9tYWluLCBhbmQgdXBkYXRlcwo+IHRoZSBDRCBl bnRyeSAwIGluIHRoZWlyIENEIHRhYmxlLiAKCkJlY2F1c2UgaXQgYXNzdW1lcyB0aGF0IGlmIGEg ZG9tYWluIGlzIHJldHVybmVkIGZyb20gdGhlIEFTSUQgbG9va3VwCml0IGlzIGEgUklEIGRvbWFp bi4KCj4gTm93IHRoYXQgYSBDRCBkb21haW4gY2FuIGJlIGF0dGFjaGVkIG9uIG5vbi16ZXJvIFNT SURzLCBTVkEgY2FuJ3QKPiBzaW1wbHkgdXBkYXRlIHNsb3QgMCBpbiB0aGUgdGFibGU7IGl0IG11 c3Qga25vdyB3aGljaCBzbG90KHMpIHRoaXMKPiBkb21haW4gaXMgYXR0YWNoZWQgdG8uCgpZZXMs IHNvIHdoeSBhcmUgeW91IHBhc3NpbmcgaW4gMCBhcyB0aGUgc3NpZCBhcmd1bWVudCB0bwphcm1f c21tdV93cml0ZV9jdHhfZGVzY19kZXZpY2VzKCkgZm9yIHRoZSBBU0lEIGNoYW5nZT8KCkkgdGhp bmsgeW91ciBjb21taXQgbWVzc2FnZSBpcyB0cnlpbmcgdG8gc2F5OgoKVGhlIFNNTVV2MyBkcml2 ZXIga2VlcHMgdHJhY2sgb2YgYWxsIHRoZSBpb21tdV9kb21haW5zIHRoYXQgYXJlCmFzc2lnbmVk IHRvIGFuIEFTSUQgaW4gYW4geGFycmF5LiBUaGUgU1ZBIGNvZGUgbmVlZHMgdG8gcmUtdXNlIHRo ZQpzYW1lIEFTSUQgYXMgdGhlIENQVSdzIEFTSUQgKHByZXN1bWFibHkgb25seSBmb3IgQlRNIG1v ZGU/KSBzbyBpdCBoYXMKYSBtZWNoYW5pc20gdG8gcmVjbGFpbSBhbiBhbHJlYWR5IHVzZWQgQVNJ RCBmcm9tIGFuIGV4aXN0aW5nIGRvbWFpbi4KClRoaXMgaXMgY3VycmVudGx5IGhhcmR3aXJlZCB3 aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgYSBkb21haW4gdXNpbmcgYW4KQVNJRCBpcyBvbmx5IG9u IFNTSUQgMC4KCkFkZCBhIGxpc3QgdG8gdGhlIHN0cnVjdCBhcm1fc21tdV9kb21haW4gcmVjb3Jk aW5nIGVhY2ggbWFzdGVyIGFuZApTU0lEIHRoYXQgdGhlIGRvbWFpbiBpcyBhdHRhY2hlZCB0byBh bmQgdXBkYXRlIGl0IHdoZW4gYW55IGRvbWFpbiBpcwphdHRhY2hlZC9kZXRhY2hlZC4KCk1ha2Ug YXJtX3NtbXVfd3JpdGVfY3R4X2Rlc2NfZGV2aWNlcygpIGZvbGxvdyB0aGlzIGxpc3Qgd2hlbiBz dG9yaW5nCnRoZSBDRCB0YWJsZSBlbnRyaWVzIGZvciB0aGUgZG9tYWluLgoKUmVtb3ZlICdzc2lk JyBhcyBhbiBhcmd1bWVudCB0byBhcm1fc21tdV93cml0ZV9jdHhfZGVzY19kZXZpY2VzKCkKc2lu Y2UgaXQgaXMgYWx3YXlzIGZvdW5kIGluIHRoZSBhdHRhY2hlZF9zc2lkcy4KCj4gPiBXaGF0IGlz IGEgInByaW1hcnkgZG9tYWluIj8gV2h5IGNhbid0IHdlIGZpeCBTVkEgZmlyc3Qgc28gaXQgZG9l c24ndAo+ID4gaGF2ZSB0aGlzIHdlaXJkICJwaWdneWJhY2tzIiBvcjoKPiA+Cj4gLi4uCj4gPgo+ ID4gVGhpcyBwYXRjaCBpcyBub3QgbWFraW5nIHNlbnNlIHRvIG1lLCB0aGUgZ29hbCBpbiB0aGUg Y29tbWl0IG1lc3NhZ2UKPiA+IHNlZW1zIGxvZ2ljYWwsIGJ1dCB3aHkgaXMgdHJhY2tpbmcgQ0Qg ZW50cmllcyBpbnRyb2R1Y2luZyB0aGlzIGNvbmNlcHQKPiA+IG9mIGEgcHJpbWFyeSBkb21haW4g YW5kIGRvaW5nIHNwZWNpYWwgc3R1ZmYgZm9yIFNTSUQ9MD8KPiAKPiBJJ2QgYXJndWUgdGhpcyBw YXRjaCBpc24ndCBpbnRyb2R1Y2luZyBhbnl0aGluZyB0aGUgZHJpdmVyIGlzbid0Cj4gYWxyZWFk eSBkb2luZy4KClNvIHRoaXMgSSBkb24ndCB1bmRlcnN0YW5kOgoKKyAgICAgICAgICAgICAgIGlm IChzc2lkICYmIGF0dGFjaGVkX2RvbWFpbi0+c3NpZCA9PSAwKSB7CisgICAgICAgICAgICAgICAg ICAgICAgIHJldCA9IGFybV9zbW11X3dyaXRlX2N0eF9kZXNjKG1hc3Rlciwgc3NpZCwgY2QpOwor ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gYXJt X3NtbXVfd3JpdGVfY3R4X2Rlc2MoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFz dGVyLCBhdHRhY2hlZF9kb21haW4tPnNzaWQsIGNkKTsKKyAgICAgICAgICAgICAgIH0KCkZpeCB0 aGlzIHBhdGNoIHNvIGF0dGFjaGVkX2RvbWFpbi0+c3NpZCBpcyBuZXZlciB3cm9uZz8KClJlbW92 ZSBzc2lkIGFzIGFuIGlucHV0IHRvIHRoZSBmdW5jdGlvbi4KCihJJ2QgdWx0aW1hdGVseSBleHBl Y3QgdG8gcmVtb3ZlIENEIHRvbykKCj4gaXQuIEkgZG8gaGF2ZSBhIHBhdGNoIHNlcmllcyBpbiB0 aGUgd29ya3MgdG8gcHJvcGVybHkgZml4IFNWQSwgYnV0Cj4gaXQncyBncm93aW5nIHF1aXRlIGxh cmdlIGFuZCBJIHdhcyB0cnlpbmcgdG8gZ2V0IHRoaXMgZmVhdHVyZQo+IG91dCBmaXJzdC4gQXQg YSBoaWdoIGxldmVsLCB0aGUgc3Vic2VxdWVudCBzZXJpZXM6Cj4gMS4gTmVzdHMgdGhlIGxpc3Qg b2YgYXR0YWNoZWQgbWFzdGVycyBpbiBhIGxpc3Qgb2YgU01NVXMgdGhlIGRvbWFpbiBpcwo+IGlu c3RhbGxlZCBpbi4gVXBkYXRlcyBTTU1VLWxldmVsIG9wZXJhdGlvbnMgKHN1Y2ggYXMgaW52YWxp ZGF0aW9ucykgdG8KPiBpdGVyYXRlIG92ZXIgc2FpZCBsaXN0Lgo+IDIuIENoZWNrcyB0aGUgY29t cGF0aWJpbGl0eSBvZiBhIGRvbWFpbiB3aGVuIGF0dGFjaGluZyB0byBhIG5ldyBTTU1VCj4gaW5z dGVhZCBvZiBvdXRyaWdodCByZWplY3RpbmcsIHRvIGFsbG93IGF0dGFjaGluZyBhIGRvbWFpbiB0 byBtdWx0aXBsZQo+IFNNTVVzLgo+IDMuIFRodXMgYWxsb3dpbmcgU1ZBIHRvIGFsbG9jIGEgc2lu Z2xlIGRvbWFpbiBmb3IgdGhlIE1NIHN0cnVjdCAod2hpY2gKPiB0aGUgc2VyaWVzIG1hcHMgZnJv bSBtdWx0aXBsZSBTVkEgZG9tYWlucyBpbnRlcm5hbGx5LCBwZW5kaW5nIHN1cHBvcnQKPiBhdCB0 aGUgaW9tbXUgY29yZSBsYXllcikKClRoaXMgc2hvdWxkIG5vdCBiZSBoYXJkIGZvciB0aGUgY29y ZSBjb2RlCgo+IDQuIEFuZCBhbGxvd2luZyBTVkEgdG8gdXNlIHRoZSBzYW1lIHNldF9kZXZfcGFz aWQgaW1wbGVtZW50YXRpb24gdXNlZAo+IGhlcmUgb24gdGhhdCBkb21haW4uCgpUaGlzIGxpc3Qg YWxsIG1ha2VzIGFsb3Qgb2Ygc2Vuc2UgdG8gbWUKCj4gTm93IGhhdmluZyBzYWlkIHRoYXQsIGl0 IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIGdldCByaWQgb2YgcGlnZ3liYWNraW5nCj4gc29vbmVyIGlm IHdlIGNyZWF0ZSBhbiBNTSBwZXIgbWFzdGVyIGluc3RlYWQgb2YgcGVyICJwcmltYXJ5LWRvbWFp biIsCj4gYnV0IEknbSBub3QgdG9vIHN1cmUgYWJvdXQgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25z LiBBRkFJQ1QsIHRoZSBvbmx5Cj4gZG93bnNpZGUgbWlnaHQgYmUgZm9yIGludmFsaWRhdGVfcmFu Z2UgY29tbWFuZHMgdGhhdCBjb3VsZCBubyBsb25nZXIKPiBiZSBzZW50IGFzIGEgYmF0Y2hlZCBj b21tYW5kIHRvIHRoZSBTTU1VIChzaW5jZSBlYWNoIG1tdSBub3RpZmllcgo+IHdvdWxkIGJlIGNh bGxlZCBpbmRlcGVuZGVudGx5KS4KCkknbSBub3Qgc3VyZSB0aGlzIHNlcmllcyBsZWF2ZXMgdGhp bmdzIGluIGEgYmV0dGVyIHN0YXRlIHRoYW4gYmVmb3JlLApub3cgd2UgaGF2ZSB0d28gcGFyYWxs ZWwgZG9tYWluIGF0dGFjaG1lbnQgcGF0aHMgZm9yIFBBU0lEIDooCgpKYXNvbgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=