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 92CF8C6FD18 for ; Tue, 18 Apr 2023 12:23:56 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=iPoXyNO6DJ+Mf7i8jVRIV5Ci38ElDhuZxk9O5l9EHrI=; b=Vnc9DQ579/Te3KvMTochLxAbJ0 Kqso08zAcRHumaJNMU/z9LPktbHWvKxbnEa9E+v+/W1T/T7UH9NWMgiCw3+QS90NaZE5Wgfkbstci 1ORFYgnUbS+t8HTXJ8l0z64C5ldG3HpDwMdyzGvzHqpeYD+bTla35kcW2jGhkAqC51nqj4KSHjxGj 3EExiFNhhx1SiXXFMGb5Xln9J1WBrwm0Amp7WRhQ20p1nScoiEZRKY0RCX32S4f9RHlu0EozgzesO vQ7ZNUj5Q1nNcuJ08kf+1FcMI6gQo0SH0ppoFr4c5R4EwH8mzIfMpadpFDmMPhplFBqBGNnD3QLPX AFPleuXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pokMd-0026WH-2R; Tue, 18 Apr 2023 12:23:15 +0000 Received: from mail-tyzapc01on20717.outbound.protection.outlook.com ([2a01:111:f403:704b::717] helo=APC01-TYZ-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pokMZ-0026UW-0q; Tue, 18 Apr 2023 12:23:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eawIG4zPiuGQ+TH+tk6q/WZpWgzc2WNN1sIJIiLuGUb1Nn/YLJ1YtMcV2fYXkg4Xqqi1OgzA8XVuaa97FtlUhlQqVv8eRLK3CuEPzRtA/3s9FHNX7bLlnq6/23Bdx+l2de9Evl+QJidhF0x3WLLFy94u8mHoQAQamUpK2t1cE+PjFWTf1wVcCKyhDlsGxedeVofsN6VeOS2lJ2B3R7gcCOTiQ6J3f6/gMfBhUvwYREme0Bo3HWtaBWt2u2WsotIxyNwEayQu/1NQ5hW40/Gj60Owd0YSBct7ykKaaXKJnpHp3fIiKGWgVxsfJogvOMDpGIwRZS0IYHOampofDEXPnw== 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=BetRalfcuesIKb68JeXsuOKtO0v/f5cr0gUbppoWOY0=; b=eDtkC2eins6pkMi95Feb0kbqUsM7b2TAU6J/PKqAucH43dvosNmZZqjaRau16iIR4USW3NI98hfIUzV7o9wxSy3S3Lzow4IFt6E45FJUmzvyRXfTfe0CHbXvFWEQr97hCGKDAXtVPgcteiMVB15H/PmkXXOpQ3GSn3dbrKTTuJstz7MoQfJpQ++y4x13nzcPIHMhbK6jdSk8d5/nx5XBfyiZrnACcUxQcL/iYs8pysHIBBREDPXDif4xbSoNHm9SvuHPPiaP4kUy6Bd7PYcpySuzS0w5V5c9K1X1KRVkauAlsxNirmBy7yXVRDuSWYnponJ/xe/o8tan5JiclqoR/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amlogic.com; dmarc=pass action=none header.from=amlogic.com; dkim=pass header.d=amlogic.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amlogic.com; Received: from PS1PR03MB5034.apcprd03.prod.outlook.com (2603:1096:300:7b::17) by SG2PR03MB6278.apcprd03.prod.outlook.com (2603:1096:4:169::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Tue, 18 Apr 2023 12:23:04 +0000 Received: from PS1PR03MB5034.apcprd03.prod.outlook.com ([fe80::c56f:c862:ff8e:909]) by PS1PR03MB5034.apcprd03.prod.outlook.com ([fe80::c56f:c862:ff8e:909%6]) with mapi id 15.20.6298.045; Tue, 18 Apr 2023 12:23:04 +0000 Message-ID: <780c0cae-18b6-2652-1c2c-6d398ea60451@amlogic.com> Date: Tue, 18 Apr 2023 20:24:18 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH v1 4/5] mtd: rawnand: meson: clear OOB buffer before read To: Arseniy Krasnov , Miquel Raynal Cc: Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jianxin Pan , Yixun Lan , oxffffaa@gmail.com, kernel@sberdevices.ru, linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, "yonghui.yu" References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> <20230412061700.1492474-5-AVKrasnov@sberdevices.ru> <20230412094400.3c82f631@xps-13> <20230412113654.183350d0@xps-13> <4eace0a0-f6af-7d99-a52f-7913a2139330@sberdevices.ru> <20230412141824.755b2bca@xps-13> <20230412145715.58c2be4a@xps-13> <7c996832-258f-001c-56bd-87bbdf23eeaa@amlogic.com> <20230412163214.0c764bb3@xps-13> <0c61eaae-053e-5768-a533-70b2ff0cc95d@amlogic.com> <7520e512-8a19-ff04-364c-b5be0a579ef0@sberdevices.ru> <20230413102200.309fbe9c@xps-13> <20230413122252.0a8efcd8@xps-13> <569a948e-654a-b21f-8a4f-55dc4b295387@sberdevices.ru> <60fa656e-bda1-1de6-a79e-3e3041cd69a8@sberdevices.ru> From: Liang Yang In-Reply-To: <60fa656e-bda1-1de6-a79e-3e3041cd69a8@sberdevices.ru> X-ClientProxiedBy: TYCPR01CA0105.jpnprd01.prod.outlook.com (2603:1096:405:4::21) To PS1PR03MB5034.apcprd03.prod.outlook.com (2603:1096:300:7b::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PS1PR03MB5034:EE_|SG2PR03MB6278:EE_ X-MS-Office365-Filtering-Correlation-Id: 07f840b4-4749-4e16-5f96-08db4007a7fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 73DdZyT2T8zRDuY56kim5PmyhhAvp44qdNQT6BeX7L4ks5tW1Fzhm5xvCxUV7g/ne3Gt4eme7rUaBV0o3OWBs76ZopqLpaGaSdxpdiico17IvNzJnsh4UD0nhkiw4g4Y3H4adIQwja/L3LnW3PR1LiCCN2WDMnt/xM0YL/Ysl6W0FmqjoJH8QrrPai/u47Tkk2bzMZgjhoog5UPwy2MZ2QNMRrnBkGi3zWpDGkbbbmR7VmBYwmau7jDgEbuXGny60A/LkHDhoXTj5eOXoWICGbULbNdRpNVIDCiXcCByDpwlS/2HrJrolXsueR0/cgQ/n/yxLv2dVzb4DXDMDX5xreJh7CC9m1FP1SFtfV6yjfnPs2IuJb8K1WHNOwNS81f1MbqpyikiNz1zzvwp1jC4YiVtghs81HBo4EppVQKcee3svFGlsCvwrbWLVhXA/PXgsEAv378bwrWu6yvCww5ZH/+elSMjE0CpzqRgVr/QDAY+tlkdRH0UsM4OHn9HDHIgxxCxeKNalHofufFO0ehTlOhXwoGOGCeERUnshWhSGlt2OP7TriJ1LKAfkmvYDOXB4AKQbdnP1AN6Oemb7b+WlozCXwctdoMFndEdPUgFsGsXJBqeTFla7ZE02xPmFhPrKt5iiqWbTbymAxWkYneI8iksIbDUS11HpYn5ZNiJbWFrFjhUjXk3sVZA1/cUmZkEk1/g0RMNNJNROnU9hpUO6Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PS1PR03MB5034.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(376002)(366004)(346002)(39850400004)(396003)(451199021)(7416002)(44832011)(31686004)(5660300002)(4326008)(30864003)(2906002)(66946007)(41300700001)(8936002)(8676002)(316002)(478600001)(110136005)(966005)(6486002)(6666004)(52116002)(53546011)(6506007)(6512007)(26005)(107886003)(186003)(66476007)(66556008)(2616005)(66574015)(83380400001)(54906003)(38350700002)(38100700002)(36756003)(86362001)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZThVZFgybXZPOU15c051bVZ3MUVwVVRNdW8yemNHeFpPdEI0QlFmNStRcVp3?= =?utf-8?B?T0JkZXBzVHp3cHorU2RsMjRianVJNmVmbFpneklVRk1wRnhqcStMeTFoYWtz?= =?utf-8?B?RDZubHN1UWJnZ1dSdFlrSHJWaTJwT003SVNtOTMyQ1RiaGYxck0rV2d5dWEv?= =?utf-8?B?YXhlNVQyUmVSSGZGSmI1TE5IelpObXI1VmRaNW9hOStKTWM1TnVIbGNMMlhQ?= =?utf-8?B?V3pnVkxYWU1CbGlZaTV1bm5kYUIrQi9CaFpOcWRPQTdxcEVxOFZGc1kvRHN2?= =?utf-8?B?VzB1dHFVQnloQUN4ZWxlOU5DZWJNWWxtYTdYWnBhd2hPM0JlT1JtY2Q3TVRw?= =?utf-8?B?cDloVFRXOWQyd1JUdW8renFpN09BL01rR3BmV2YxNEZSbmJCeVBENkhtWW5F?= =?utf-8?B?UGFzQlUyN2paVU56ZlBmekZ3TkFZdFJaUzhWWGpMaHpGSWl6SEM1dkltdHBv?= =?utf-8?B?K2t6SlM5V240bHYyUVRGRlJocS9TQUVxV1dYM3lBZWdGdmFZNDJkeWtWaGcy?= =?utf-8?B?VUF4Q0VtTzh4UzdIOUM2ajhlQUR2cmM2RmdSa2tTZXZpRWxzSytrb3A3QTcy?= =?utf-8?B?N3ZTNG5haFFNR28xQkFnNFVKdzB3N3dnVkN0WW5nZlZFbitXY2t6RXN5ZXZa?= =?utf-8?B?WnJBa1hnTnFGOHhTb1cvQWtsLytLTUFWVWc3a1liUm5XQjJ0UC8xRnNNaWhD?= =?utf-8?B?SUNkbUJ4WjJ5RVRZcTZSdGZ0OHFkcnVzTkN1ZjZrd3VvOFVuN1AvTW9VczFo?= =?utf-8?B?YlU4dkZHczVzQURoWFBsM0pzYUdiUFFoVk4wWkZoekxhOVYzV0Y3U2FrbTBM?= =?utf-8?B?WnJQT3hCc2Q1eTNUa3ZrbmFIWDR0TytjY1hMS2pxN0s4RlpmeGpDQ3U4MzA4?= =?utf-8?B?OERTYnV6Uk9XSmRPTlJGSlBMVEVNNzhERFpoZzhsWGQ1VTBsSlphcXVPUDJn?= =?utf-8?B?eGgzK3N0c1BCanp4azg5VlZwODhHajhMNjBBdmpzTGd2ZExGL0x5NDBDZXlZ?= =?utf-8?B?bXgrOHI5YTMwOS9sRmpCSUx4Zm5oV2V3RDl4aXZMS3I0OTNzREIwblJJMHJG?= =?utf-8?B?VTZ4eFVOQmRBWFRhYTkzWmQxR2xTMGlkYmlQYVE0U2N6dDBNM3dNNGhNY1l3?= =?utf-8?B?dG1DZTBTVGVyY2YvRGxZeUd0dmEyTHR1aE9Lb0wzQTlvbXhOWDB6VUV3Nk5y?= =?utf-8?B?a3VFalhjR0hReDNOS2JSYWJ4b203MURKc3lKVUpOZWsyYTlCYngydy9HSGZT?= =?utf-8?B?VWZPVUhxL2NyQ2RBaHJnbkY0YVdFNmp3WHBLWWRhc0hhWjFKK1R1bUlpOU1F?= =?utf-8?B?aGpFcCtpb202dFRrVkJQSHIreFY0Mk0wN3duVllVWURlVUxPdHlKWjN3SkVZ?= =?utf-8?B?OU42YmFuRWNqQXAyYXVndXFmRU5Sa0IwVVdVL1JOaTA1bG9rNWpHdThYUVNz?= =?utf-8?B?bzNUVFBHMEhLZFd6bmdxcUJnSk9nOFVlMEFRVUNIWDFYaDdHOFFBSlNHMWln?= =?utf-8?B?bWVLV1pkV3dpd2d5aWUyZEY5M0M5NnU4V0MxNS9taVVSTmxRMWx3TVB1S1Y3?= =?utf-8?B?SkRCK3JsRks4YUE2ZjdwR0UxL0g4TEpxb21XSjh0R2FjU3VGaWJVTzFSUysv?= =?utf-8?B?M3hWbG1CdGRzUWR0K3E0VU9xT3NTQlM0UW04eVdWWmhhNFRkV0JQUCtpTUhJ?= =?utf-8?B?VVRXa3JoWUJqbWJaSVRBb1NrYnErNmRBdElpak5mcmJRbFl1K3c2d0ZMNmFx?= =?utf-8?B?d210MmJlbXlLbUJwUUZ0clk2SnFGTW9Ob1MxbUtsclY0TzE5Zy9mNFBiOG5R?= =?utf-8?B?aUN6Y1NsdmVZWTMrQlJDTHRORUNha3Q4dklhSlgrakExck85R3lVdzVDQ3hV?= =?utf-8?B?b014VjNQUlZHWWNyZjVaTUxWQmJPVjlHdS9BYlppTXBvakR4R3ZkeVZzS3Z4?= =?utf-8?B?Q3RyNWxNbFY0MGpqMmpPS0k5NzlsaHdiY2Nya1dyVnlmeVdXMzRBR3lnbE1F?= =?utf-8?B?ZUl1SjBzMEVMUVIyUzBaWUx5MnVUcmxuZERLSUJiS1NObCtvTS9hU1BCMG9w?= =?utf-8?B?Y3RVYnlzbXBhT3Z1R2lFRWVoN1NiTGpYOG0rZGxZdUlTT0tlQ2dsR2xqR0Ur?= =?utf-8?Q?uA4bhyZePQCoOJihWqgqy9UXZ?= X-OriginatorOrg: amlogic.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07f840b4-4749-4e16-5f96-08db4007a7fe X-MS-Exchange-CrossTenant-AuthSource: PS1PR03MB5034.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2023 12:23:03.3763 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0df2add9-25ca-4b3a-acb4-c99ddf0b1114 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sdWnkQm9P5Y432AynCEvLRT0ee6wYVpPAc61piNkcSHhFM2XsaklmOBGg6qkS5T0GfD5kHNUUvbJ2p4DppVdHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR03MB6278 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230418_052311_409772_11952AED X-CRM114-Status: GOOD ( 19.20 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgQXJzZW5peSBhbmQgTWlxdWVsLAoKT24gMjAyMy80LzE4IDEzOjEyLCBBcnNlbml5IEtyYXNu b3Ygd3JvdGU6Cj4gWyBFWFRFUk5BTCBFTUFJTCBdCj4gCj4gCj4gCj4gT24gMTMuMDQuMjAyMyAx MzozNSwgQXJzZW5peSBLcmFzbm92IHdyb3RlOgo+Pgo+Pgo+PiBPbiAxMy4wNC4yMDIzIDEzOjIy LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+Pj4gSGkgQXJzZW5peSwKPj4+Cj4+PiBhdmtyYXNub3ZA c2JlcmRldmljZXMucnUgd3JvdGUgb24gVGh1LCAxMyBBcHIgMjAyMyAxMjozNjoyNCArMDMwMDoK Pj4+Cj4+Pj4gT24gMTMuMDQuMjAyMyAxMToyMiwgTWlxdWVsIFJheW5hbCB3cm90ZToKPj4+Pj4g SGkgQXJzZW5peSwKPj4+Pj4KPj4+Pj4gYXZrcmFzbm92QHNiZXJkZXZpY2VzLnJ1IHdyb3RlIG9u IFRodSwgMTMgQXByIDIwMjMgMTA6MDA6MjQgKzAzMDA6Cj4+Pj4+ICAgIAo+Pj4+Pj4gT24gMTMu MDQuMjAyMyAwOToxMSwgTGlhbmcgWWFuZyB3cm90ZToKPj4+Pj4+Pgo+Pj4+Pj4+IE9uIDIwMjMv NC8xMyAxMzozMiwgTGlhbmcgWWFuZyB3cm90ZToKPj4+Pj4+Pj4gSGkgTWlxdWVsLAo+Pj4+Pj4+ Pgo+Pj4+Pj4+PiBPbiAyMDIzLzQvMTIgMjI6MzIsIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4+Pj4+ Pj4+PiBbIEVYVEVSTkFMIEVNQUlMIF0KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBIZWxsbywKPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+PiBsaWFuZy55YW5nQGFtbG9naWMuY29tIHdyb3RlIG9uIFdlZCwgMTIgQXBy IDIwMjMgMjI6MDQ6MjggKzA4MDA6Cj4+Pj4+Pj4+PiAgICAgCj4+Pj4+Pj4+Pj4gSGkgTWlxdWVs IGFuZCBBcnNlbml5LAo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gT24gMjAyMy80LzEyIDIwOjU3LCBN aXF1ZWwgUmF5bmFsIHdyb3RlOgo+Pj4+Pj4+Pj4+PiBbIEVYVEVSTkFMIEVNQUlMIF0KPj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4gSGkgQXJzZW5peSwKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gYXZr cmFzbm92QHNiZXJkZXZpY2VzLnJ1IHdyb3RlIG9uIFdlZCwgMTIgQXByIDIwMjMgMTU6MjI6MjYg KzAzMDA6Cj4+Pj4+Pj4+Pj4+PiBPbiAxMi4wNC4yMDIzIDE1OjE4LCBNaXF1ZWwgUmF5bmFsIHdy b3RlOgo+Pj4+Pj4+Pj4+Pj4+IEhpIEFyc2VuaXksCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ PiBhdmtyYXNub3ZAc2JlcmRldmljZXMucnUgd3JvdGUgb24gV2VkLCAxMiBBcHIgMjAyMyAxMzox NDo1MiArMDMwMDoKPj4+Pj4+Pj4+Pj4+PiAgwqDCoMKgID4+Pj4gT24gMTIuMDQuMjAyMyAxMjoz NiwgTWlxdWVsIFJheW5hbCB3cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4+IEhpIEFyc2VuaXksCj4+Pj4+ Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4gYXZrcmFzbm92QHNiZXJkZXZpY2VzLnJ1IHdyb3Rl IG9uIFdlZCwgMTIgQXByIDIwMjMgMTI6MjA6NTUgKzAzMDA6Cj4+Pj4+Pj4+Pj4+Pj4+PiAgwqDC oMKgwqDCoCA+Pj4+Pj4gT24gMTIuMDQuMjAyMyAxMDo0NCwgTWlxdWVsIFJheW5hbCB3cm90ZToK Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gSGkgQXJzZW5peSwKPj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4+Pj4+Pj4gQVZLcmFzbm92QHNiZXJkZXZpY2VzLnJ1IHdyb3RlIG9uIFdlZCwgMTIgQXByIDIw MjMgMDk6MTY6NTggKzAzMDA6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICDCoMKgwqDCoMKgwqDCoCA+Pj4+ Pj4+PiBUaGlzIE5BTkQgcmVhZHMgb25seSBmZXcgdXNlcidzIGJ5dGVzIGluIEVDQyBtb2RlIChu b3QgZnVsbCBPT0IpLCBzbwo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAiVGhp cyBOQU5EIHJlYWRzIiBkb2VzIG5vdCBsb29rIHJpZ2h0LCBkbyB5b3UgbWVhbiAiU3VicGFnZSBy ZWFkcyBkbwo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBub3QgcmV0cmlldmUgYWxsIHRoZSBPT0IgYnl0ZXMs Ij8KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgID4+Pj4+Pj4+IGZpbGwgT09CIGJ1 ZmZlciB3aXRoIHplcm9lcyB0byBub3QgcmV0dXJuIGdhcmJhZ2UgZnJvbSBwcmV2aW91cyByZWFk cwo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gdG8gdXNlci4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IE90aGVyd2lz ZSAnbmFuZGR1bXAnIHV0aWxpdHkgcHJpbnRzIHNvbWV0aGluZyBsaWtlIHRoaXMgZm9yIGp1c3Qg ZXJhc2VkCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBwYWdlOgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+IC4uLgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gMHgwMDAwMDdmMDogZmYgZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICDCoMKgwqAgT09CIERhdGE6IGZmIGZmIGZmIGZmIDAwIDAwIGZmIGZmIDgwIGNmIDIyIDk5IGNi IGFkIGQzIGJlCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgwqDCoMKgIE9PQiBEYXRhOiA2MyAyNyBhZSAw NiAxNiAwYSAyZiBlYiBiYiBkZCA0NiA3NCA0MSA4ZSA4OCA2ZQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g IMKgwqDCoCBPT0IgRGF0YTogMzggYTEgMmQgZTYgNzcgZDQgMDUgMDYgZjIgYTUgN2UgMjUgZWIg MzQgN2MgZmYKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICDCoMKgwqAgT09CIERhdGE6IDM4IGVhIGRlIDE0 IDEwIGRlIDliIDQwIDMzIDE2IDZhIGNjIDlkIGFhIDJmIDVlCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQXJzZW5peSBLcmFzbm92IDxBVktyYXNu b3ZAc2JlcmRldmljZXMucnU+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICDCoMKgIGRyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYyB8IDUgKysrKysKPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICDCoMKgIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9t dGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFu ZC5jCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBpbmRleCBmODRhMTAyMzhlNGQuLmYyZjI0NzJjYjUxMSAx MDA2NDQKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29u X25hbmQuYwo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVz b25fbmFuZC5jCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBAQCAtODU4LDkgKzg1OCwxMiBAQCBzdGF0aWMg aW50IG1lc29uX25mY19yZWFkX3BhZ2Vfc3ViKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsCj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiAgwqDCoCBzdGF0aWMgaW50IG1lc29uX25mY19yZWFkX3BhZ2VfcmF3KHN0 cnVjdCBuYW5kX2NoaXAgKm5hbmQsIHU4ICpidWYsCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBvb2JfcmVxdWlyZWQsIGlu dCBwYWdlKQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIMKgwqAgewo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK8Kg wqDCoCBzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKG5hbmQpOwo+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gIMKgwqDCoMKgwqDCoCB1OCAqb29iX2J1ZiA9IG5hbmQtPm9vYl9wb2k7Cj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiAgwqDCoMKgwqDCoMKgIGludCByZXQ7Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAg wqDCoCA+Pj4+Pj4+PiArwqDCoMKgIG1lbXNldChvb2JfYnVmLCAwLCBtdGQtPm9vYnNpemUpOwo+ Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBJJ20gc3VycHJpc2VkIHJhdyByZWFk cyBkbyBub3QgcmVhZCB0aGUgZW50aXJlIE9PQj8KPj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ Pj4+Pj4+IFllcyEgU2VlbXMgaW4gY2FzZSBvZiByYXcgYWNjZXNzICh3aGF0IGkgc2VlIGluIHRo aXMgZHJpdmVyKSBudW1iZXIgb2YgT09CIGJ5dGVzIHJlYWQKPj4+Pj4+Pj4+Pj4+Pj4+PiBzdGls bCBkZXBlbmRzIG9uIEVDQyBwYXJhbWV0ZXJzOiBmb3IgZWFjaCBwb3J0aW9uIG9mIGRhdGEgY292 ZXJlZCB3aXRoIEVDQyBjb2RlIHdlIGNhbgo+Pj4+Pj4+Pj4+Pj4+Pj4+IHJlYWQgaXQncyBFQ0Mg Y29kZSBhbmQgInVzZXIgYnl0ZXMiIGZyb20gT09CIC0gaXQgaXMgd2hhdCBpIHNlZSBieSBkdW1w aW5nIERNQSBidWZmZXIgYnkKPj4+Pj4+Pj4+Pj4+Pj4+PiBwcmludGsoKS4gRm9yIGV4YW1wbGUg SSdtIHdvcmtpbmcgd2l0aCAySyBOQU5EIHBhZ2VzLCBlYWNoIHBhZ2UgaGFzIDIgeCAxSyBFQ0Mg YmxvY2tzLgo+Pj4+Pj4+Pj4+Pj4+Pj4+IEZvciBlYWNoIEVDQyBibG9jayBJIGhhdmUgMTYgT09C IGJ5dGVzIHdoaWNoIEkgY2FuIGFjY2VzcyBieSByZWFkL3dyaXRlLiBFYWNoIDE2IGJ5dGVzCj4+ Pj4+Pj4+Pj4+Pj4+Pj4gY29udGFpbnMgMiBieXRlcyBvZiB1c2VyJ3MgZGF0YSBhbmQgMTQgYnl0 ZXMgRUNDIGNvZGVzLiBTbyB3aGVuIEkgcmVhZCBwYWdlIGluIHJhdyBtb2RlCj4+Pj4+Pj4+Pj4+ Pj4+Pj4gY29udHJvbGxlciByZXR1cm5zIDMyIGJ5dGVzICgyIHggKDIgKyAxNCkpIG9mIE9PQi4g V2hpbGUgT09CIGlzIHJlcG9ydGVkIGFzIDY0IGJ5dGVzLgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4+Pj4+IEluIGFsbCBtb2Rlcywgd2hlbiB5b3UgcmVhZCBPT0IsIHlvdSBzaG91bGQgZ2V0 IHRoZSBmdWxsIE9PQi4gVGhlIGZhY3QKPj4+Pj4+Pj4+Pj4+Pj4+IHRoYXQgRUNDIGNvcnJlY3Rp b24gaXMgZW5hYmxlZCBvciBkaXNhYmxlZCBkb2VzIG5vdCBtYXR0ZXIuIElmIHRoZSBOQU5ECj4+ Pj4+Pj4+Pj4+Pj4+PiBmZWF0dXJlcyBPT0Igc2VjdGlvbnMgb2YgNjQgYnl0ZXMsIHlvdSBzaG91 bGQgZ2V0IHRoZSA2NCBieXRlcy4KPj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+PiBXaGF0 IGhhcHBlbnMgc29tZXRpbWVzLCBpcyB0aGF0IHNvbWUgb2YgdGhlIGJ5dGVzIGFyZSBub3QgcHJv dGVjdGVkCj4+Pj4+Pj4+Pj4+Pj4+PiBhZ2FpbnN0IGJpdGZsaXBzLCBidXQgdGhlIHBvbGljeSBp cyB0byByZXR1cm4gdGhlIGZ1bGwgYnVmZmVyLgo+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+ PiBPaywgc28gdG8gY2xhcmlmeSBjYXNlIGZvciB0aGlzIE5BTkQgY29udHJvbGxlcjoKPj4+Pj4+ Pj4+Pj4+Pj4gMSkgSW4gYm90aCBFQ0MgYW5kIHJhdyBtb2RlcyBpIG5lZWQgdG8gcmV0dXJuIHRo ZSBzYW1lIHJhdyBPT0IgZGF0YSAoZS5nLiB1c2VyIGJ5dGVzCj4+Pj4+Pj4+Pj4+Pj4+ICDCoMKg wqDCoCArIEVDQyBjb2Rlcyk/Cj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiBXZWxsLCB5b3Ug bmVlZCB0byBjb3ZlciB0aGUgc2FtZSBhbW91bnQgb2YgZGF0YSwgeWVzLiBCdXQgaW4gdGhlIEVD Qwo+Pj4+Pj4+Pj4+Pj4+IGNhc2UgdGhlIGRhdGEgd29uJ3QgYmUgcmF3IChhdCBsZWFzdCBub3Qg YWxsIG9mIGl0KS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBTbyAic2FtZSBhbW91bnQgb2Yg ZGF0YSIsIGluIEVDQyBtb2RlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBvbmx5IHVz ZXIgT09CIGJ5dGVzIChlLmcuCj4+Pj4+Pj4+Pj4+PiBPT0IgZGF0YSBleGNsdWRpbmcgRUNDIGNv ZGVzKSwgaW4gcmF3IGl0IHJldHVybnMgdXNlciBieXRlcyArIEVDQyBjb2Rlcy4gSUlVQyBjb3Jy ZWN0Cj4+Pj4+Pj4+Pj4+PiBiZWhhdmlvdXIgaXMgdG8gYWx3YXlzIHJldHVybiB1c2VyIGJ5dGVz ICsgRUNDIGNvZGVzIGFzIE9PQiBkYXRhIGV2ZW4gaW4gRUNDIG1vZGUgPwo+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+PiBJZiB0aGUgcGFnZSBhcmUgMmsrNjRCIHlvdSBzaG91bGQgcmVhZCAyays2NEIg d2hlbiBPT0IgYXJlIHJlcXVlc3RlZC4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gSWYgdGhlIGNv bnRyb2xsZXIgb25seSByZXR1cm5zIDJrKzMyQiwgdGhlbiBwZXJmb3JtIGEgcmFuZG9tIHJlYWQg dG8KPj4+Pj4+Pj4+Pj4ganVzdCBtb3ZlIHRoZSByZWFkIHBvaW50ZXIgdG8gbXRkLT5zaXplICsg bXRkLT5vb2JzaXplIC0gMzIgYW5kCj4+Pj4+Pj4+Pj4+IHJldHJpZXZlIHRoZSBtaXNzaW5nIDMy IGJ5dGVzPwo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gMSkgcmF3IHJlYWQgY2FuIHJlYWQgb3V0IHRo ZSB3aG9sZSBwYWdlIGRhdGEgMmsrNjRCLCBkZWNpZGVkIGJ5IHRoZSBsZW4gaW4gdGhlIGNvbnRy b2xsZXIgcmF3IHJlYWQgY29tbWFuZDoKPj4+Pj4+Pj4+PiAgwqDCoMKgwqBjbWQgPSAobGVuICYg R0VOTUFTSyg1LCAwKSkgfCBzY3JhbWJsZXIgfCBETUFfRElSKGRpcik7Cj4+Pj4+Pj4+Pj4gYWZ0 ZXIgdGhhdCwgdGhlIG1pc3Npbmcgb29iIGJ5dGVzKG5vdCB1c2VkKSBjYW4gYmUgY29waWVkIGZy b20gbWVzb25fY2hpcC0+ZGF0YV9idWYuIHNvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXNvbl9u ZmNfcmVhZF9wYWdlX3JhdygpIGlzIGxpa2UgdGhpcyBpZiBuZWVkLgo+Pj4+Pj4+Pj4+ICDCoMKg wqDCoHsKPj4+Pj4+Pj4+PiAgwqDCoMKgwqDCoMKgwqAgLi4uLi4uCj4+Pj4+Pj4+Pj4gIMKgwqDC oMKgwqDCoMKgIG1lc29uX25mY19yZWFkX3BhZ2Vfc3ViKG5hbmQsIHBhZ2UsIDEpOwo+Pj4+Pj4+ Pj4+ICDCoMKgwqDCoMKgwqDCoCBtZXNvbl9uZmNfZ2V0X2RhdGFfb29iKG5hbmQsIGJ1Ziwgb29i X2J1Zik7Cj4+Pj4+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgIG9vYl9sZW4gPSAobmFuZC0+ZWNjLmJ5 dGVzICsgMikgKiBuYW5kLT5lY2Muc3RlcHM7Cj4+Pj4+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgIG1l bWNweShvb2JfYnVmICsgb29iX2xlbiwgbWVzb25fY2hpcC0+ZGF0YV9idWYgKyBvb2JfbGVuLCBt dGQtPm9vYnNpemUgLSBvb2JfbGVuKTsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICDCoMKgwqDCoH0K Pj4+Pj4+Pj4+PiAyKSBJbiBFQ0MgbW9kZSwgdGhlIGNvbnRyb2xsZXIgY2FuJ3QgYnJpbmcgYmFj ayB0aGUgbWlzc2luZyBPT0IgYnl0ZXMuIGl0IGNhbiByZWFkIG91dCB0aGUgdXNlciBieXRlcyBh bmQgZWNjIGJ5dGVzIHBlciBtZXNvbl9vb2JsYXlvdXRfb3BzIGRlZmluZS4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiBBbmQgdGhlbiAoaWYgb29iX3JlcXVpcmVkKSB5b3UgY2FuIGJyaW5nIHRoZSBtaXNz aW5nIGJ5dGVzIHdpdGgKPj4+Pj4+Pj4+IHNvbWV0aGluZyBhbG9uZzoKPj4+Pj4+Pj4+IG5hbmRf Y2hhbmdlX3JlYWRfY29sdW1uX29wKGNoaXAsIG10ZC0+d3JpdGVzaXplICsgb29iX2xlbiwKPj4+ Pj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9vYl9idWYgKyBvb2JfbGVuLAo+ Pj4+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXRkLT5vb2JzaXplIC0gb29i X2xlbiwKPj4+Pj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZhbHNlKTsKPj4+ Pj4+Pj4+IFNob3VsZCBub3QgYmUgYSBodWdlIHBlcmZvcm1hbmNlIGhpdC4KPj4+Pj4+Pj4KPj4+ Pj4+Pj4gQWZ0ZXIgZmluaXNoaW5nIEVDQyBtb2RlIHJlYWRpbmcsIHRoZSBjb2x1bW4gYWRkcmVz cyBpbnRlcm5hbCBpbiBOQU5EIGRldmljZSBzaG91bGQgYmUgdGhlIHJpZ2h0IHBvczsgaXQgZG9l c24ndCBuZWVkIHRvIGNoYW5nZSB0aGUgY29sdW1uIGFnYWluLiBzbyBhZGRpbmcgY29udHJvbGxl ciByYXcgcmVhZCBmb3IgdGhlIG1pc3NpbmcgYnl0ZXMgYWZ0ZXIgRUNDIHJlYWRpbmcgbWF5IHdv cmtzLgo+Pj4+Pj4+PiAgICAgCj4+Pj4+Pj4gdXNlIHJhdyByZWFkIGZvciB0aGUgbWlzc2luZyBi eXRlcywgYnV0IHRoZXkgYXJlIG5vdCBwcm90ZWN0ZWQgYnkgaG9zdCBFQ0MuIHRvIHRoZSBOQU5E IHR5cGUgb2Ygc3RvcmFnZSwgaXMgaXQgb2sgb3IgbWlzc2luZyBieXRlcyBiZXR0ZXIgdG8gYmUg ZmlsbGVkIHdpdGggMHhmZj8KPj4+Pj4+Cj4+Pj4+PiBJSVVDIE1pcXXDqGwncyByZXBseSwgdmFs aWQgYmVoYXZpb3VyIGlzIHRvIHJldHVybiBmdWxsIE9PQiBkYXRhIGluIGJvdGggbW9kZXMuIFNv IGluOgo+Pj4+Pj4gRUNDIG1vZGUgaXQgaXMgdXNlciBieXRlcyhjb3JyZWN0ZWQgYnkgRUNDLCBy ZWFkIGZyb20gaW5mbyBidWZmZXIpICsgRUNDICsgbWlzc2luZyBieXRlcy4gRUNDIGFuZCBtaXNz aW5nIGJ5dGVzIHJlYWQgaW4gUkFXIG1vZGUuCj4+Pj4+Cj4+Pj4+IEkgYmVsaWV2ZSB0aGUgRUND IGJ5dGVzIHlvdSdsbCBnZXQgd2lsbCBiZSBjb3JyZWN0ZWQuCj4+Pj4+IFlvdSBjYW4gY2hlY2sg dGhpcyBieSB1c2luZyBuYW5kZmxpcGJpdHMgaW4gbXRkLXV0aWxzLgo+Pj4+Cj4+Pj4gU29ycnks IGRpZG4ndCBnZXQgaXQsIGknbSBuZXcgaW4gTkFORCBhcmVhLiBCeXRlcyBvZiBFQ0MgY29kZXMg YXJlIGF2YWlsYWJsZSBvbmx5IGluIHJhdyBtb2RlIChhdCBsZWFzdCBpbiB0aGlzIE5BTkQKPj4+ PiBkcml2ZXIpIGFsc28gYXMgbWlzc2luZyBieXRlcyBvZiBPT0IuCj4+Pgo+Pj4gR2FzcC4gWWVh aCB0aGF0J3MgYSBjb250cm9sbGVyIGxpbWl0YXRpb24sIG9rYXkuCj4+Pgo+Pj4+IFNvIElJVUMg RUNDIGNvZGVzIGFyZSBtZXRhZGF0YSB0byBjb3JyZWN0IGRhdGEgYnl0ZXMsIGFuZCB0aHVzCj4+ Pj4gY291bGRuJ3QgYmUgY29ycmVjdGVkLgo+Pj4KPj4+IFdlIGNvbnNpZGVyIHRoZW0gbWV0YWRh dGEsIGJ1dCB0aGV5IGFyZSBmdWxseSBwYXJ0IG9mIHRoZSBFQ0Mgc2NoZW1lCj4+PiBhbmQgdGh1 cyB0aGVpciBjb3JyZWN0aW9uIGlzIHBhcnQgb2YgdGhlIHByb2Nlc3MsIGJpdGZsaXBzIGluIHRo ZSBFQ0MKPj4+IGJ5dGVzIHdpbGwgY291bnQgYXMgZGF0YSBiaXRmbGlwcyBhY3R1YWxseS4KPj4+ Cj4+PiBJIHRhbGtlZCBhIGJpdCBhYm91dCBFQ0MgZW5naW5lcyBhdCBhIHByZXZpb3VzIGNvbmZl cmVuY2UgaWYgaXQgY2FuCj4+PiBoZWxwOgo+Pj4gaHR0cHM6Ly9lbGludXgub3JnL0VMQ19FdXJv cGVfMjAyMF9QcmVzZW50YXRpb25zCj4+PiAnVW5kZXJzdGFuZCBFQ0MgU3VwcG9ydCBmb3IgTkFO RCBGbGFzaCBEZXZpY2VzIGluIExpbnV4Jwo+Pj4gQW5kIGFsc28gd3JvdGUgYSBibG9nIHBvc3Qg d2l0aCBhIGNoYXB0ZXIgYWJvdXQgRUNDIGVuZ2luZXM6Cj4+PiBodHRwczovL2Jvb3RsaW4uY29t L2Jsb2cvc3VwcG9ydGluZy1hLW1pc2JlaGF2aW5nLW5hbmQtZWNjLWVuZ2luZS8KPj4KPj4KPj4g VGhhbmtzIGZvciB0aGlzIQo+Pgo+PiBUaGFua3MsIEFyc2VuaXkKPiAKPiBIZWxsbyBhZ2FpbiBA TGlhbmcgQE1pcXVlbCEKPiAKPiBPbmUgbW9yZSBxdWVzdGlvbiBhYm91dCBPT0IgYWNjZXNzLCBh cyBJIGNhbiBzZWUgY3VycmVudCBkcml2ZXIgdXNlcyB0aGUgZm9sbG93aW5nCj4gY2FsbGJhY2tz Ogo+IAo+IAluYW5kLT5lY2Mud3JpdGVfb29iX3JhdyA9IG5hbmRfd3JpdGVfb29iX3N0ZDsKPiAJ bmFuZC0+ZWNjLndyaXRlX29vYiA9IG5hbmRfd3JpdGVfb29iX3N0ZDsKPiAKPiAKPiBGdW5jdGlv biAnbmFuZF93cml0ZV9vb2Jfc3RkKCknIHdyaXRlcyBkYXRhIHRvIHRoZSBlbmQgb2YgdGhlIHBh Z2UuIEJ1dCBhcyBJCj4gY2FuIHNlZSBieSBkdW1waW5nICdkYXRhX2J1ZicgZHVyaW5nIHJlYWQs IHBoeXNpY2FsIGxheW91dCBvZiBlYWNoIHBhZ2UgaXMgdGhlCj4gZm9sbG93aW5nICgxS0IgRUND KToKPiAKPiAweDAwMDogWyAgICAgICAgIDEgS0Igb2YgZGF0YSAgICAgICAgXQo+IDB4NDAwOiBb IDJCIHVzZXIgZGF0YV0gWyAxNEIgRUNDIGNvZGVdCj4gMHg0MTA6IFsgICAgICAgICAxIEtCIG9m IGRhdGEgICAgICAgIF0gICAgKEEpCj4gMHg4MTA6IFsgMkIgdXNlciBkYXRhXSBbIDE0QiBFQ0Mg Y29kZV0KPiAweDgyMDogWyAgICAgICAgMzJCIHVudXNlZCAgICAgICAgICAgXQo+IAo+IAo+IAo+ IFNvLCBhZnRlciAnbmFuZF93cml0ZV9vb2Jfc3RkKCknIChsZXQgZGF0YSBiZSBzZXF1ZW5jZSBm cm9tIFsweDAgLi4uIDB4M2ZdKSwKPiBwYWdlIHdpbGwgbG9vayBsaWtlIHRoaXM6Cj4gCj4gMHgw MDA6IFsgICAgICAgICAgICAgMHhGRiAgICAgICAgICAgIF0KPiAweDQwMDogWyAgICAgICAgICAg Li4uLi4uLi4gICAgICAgICAgXQo+IDB4N2YwOiBbICAgICAgICAgICAgIDB4RkYgICAgICAgICAg ICBdCj4gMHg4MDA6IFsgMDAgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gIF0KPiAweDgzMDogWyAu Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gM2YgXQo+IAo+IEhlcmUgd2UgaGF2ZSB0d28gcHJvYmxl bXM6Cj4gMSkgQXR0ZW1wdCB0byBkaXNwbGF5IHJhdyBkYXRhIGJ5ICduYW5kZHVtcCcgdXRpbGl0 eSBwcm9kdWNlcyBhIGxpdHRsZSBiaXQKPiAgICAgaW52YWxpZCBvdXRwdXQsIGFzIGRyaXZlciBy ZWxpZXMgb24gbGF5b3V0IChBKSBmcm9tIGFib3ZlLiBFLmcuIE9PQiBkYXRhCj4gICAgIGlzIGF0 IDB4NDAwIGFuZCAweDgxMC4gSGVyZSBpcyBhbiBleGFtcGxlIChhdHRlbXB0IHRvIHdyaXRlIDB4 MTEgMHgyMiAweDMzIDB4NDQpOgo+IAo+IDB4MDAwMDA3ZjA6IDExIDIyIGZmIGZmIGZmIGZmIGZm IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmICB8LiIuLi4uLi4uLi4uLi4uLnwKPiAgICBPT0Ig RGF0YTogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgIHwu Li4uLi4uLi4uLi4uLi4ufAo+ICAgIE9PQiBEYXRhOiAzMyA0NCBmZiBmZiBmZiBmZiBmZiBmZiBm ZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiAgfDNELi4uLi4uLi4uLi4uLi58Cj4gICAgT09CIERhdGE6 IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmICB8Li4uLi4u Li4uLi4uLi4uLnwKPiAgICBPT0IgRGF0YTogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYgIHwuLi4uLi4uLi4uLi4uLi4ufAo+IApIaSBBcnNlbml5LAoKSSBy ZWFsaXplZCB0aGUgd3JpdGVfb29iX3JhdygpIGFuZCB3cml0ZV9vb2IoKSBhcmUgd3JvbmcgaW4g Cm1lc29uX25hbmQuYy4gSSBzdWdnZXN0IGJvdGggb2YgdGhlbSBzaG91bGQgYmUgcmV3b3JrZWQg YW5kIGZvbGxvdyB0aGUgCmZvcm1hdCBvZiBtZXNvbiBuYW5kIGNvbnRyb2xsZXIuIGkuZS4gZmly c3RseSBmb3JtYXQgdGhlIGRhdGEgaW4gTGF5b3V0IAooQSkgYW5kIHRoZW4gd3JpdGUuIHJlYWRp bmcgaXMgZmlyc3RseSByZWFkaW5nIHRoZSBkYXRhIG9mIGxheW91dCAoQSkgCmFuZCB0aGVuIGNv bXBvc3QgdGhlIGxheW91dCAoQikuCgoKPiAKPiAyKSBBdHRlbXB0IHRvIHJlYWQgZGF0YSBpbiBF Q0MgbW9kZSB3aWxsIGZhaWwsIGJlY2F1c2UgSUlVQyBwYWdlIGlzIGluIGRpcnR5Cj4gICAgIHN0 YXRlIChJIG1lYW4gd2FzIHdyaXR0ZW4gYXQgbGVhc3Qgb25jZSkgYW5kIE5BTkQgY29udHJvbGxl ciB0cmllcyB0byB1c2UKPiAgICAgRUNDIGNvZGVzIGF0IDB4NDAwIGFuZCAweDgxMCwgd2hpY2gg YXJlIG9idmlvdXNseSBicm9rZW4gaW4gdGhpcyBjYXNlLiBUaHVzCgpBcyBpIHNhaWQgYWJvdmUs IHdyaXRlX29vYl9yYXcoKSBhbmQgd3JpdGVfb29iKCkgc2hvdWxkIGJlIHJld29ya2VkLgppIGRv bid0IGtub3cgd2hhdCBkbyB5b3UgbWVhbiBwYWdlIHdhcyB3cml0dGVuIGF0IGxlYXN0IG9uY2Uu IGFueXdheSB0aGUgCnBhZ2Ugc2hvdWxkIGJlIHdyaXR0ZW4gb25jZSwgZXZlbiBqdXN0IHdyaXRl X29vYl9yYXcoKS4KCj4gICAgIHdlIGhhdmUgc3RyYW5nZSBzaXR1YXRpb246IE9PQiBzZWVtcyB3 cml0dGVuIHdpdGhvdXQgYW55IGVycm9ycywgYnV0IHdlIGNhbid0Cj4gICAgIHJlYWQgdGhpcyBw YWdlLiBGaXJzdCBpZGVhIGlzIHRvIHdyaXRlIE9PQiBkYXRhIHRvIDB4NDAwIGFuZCAweDgxMCBp biByYXcgbW9kZSwKPiAgICAgYnV0IHRoaXMgZG9lcyBub3Qgd29yayAtIGlmIHRoZXJlIGlzIHNv bWUgZGF0YSwgTkFORCBjb250cm9sbGVyIHdpbGwgdHJ5IHRvCj4gICAgIHVzZSBFQ0MgZW5naW5l IHRvIGNoZWNrIHRoZXNlIHVzZXIgYnl0ZXMgb24gbmV4dCBhdHRlbXB0IHRvIHJlYWQgdGhpcyBw YWdlLiBCdXQKPiAgICAgYXMgdGhlc2UgNCBieXRlcyB3ZXJlIHdyaXR0ZW4gaW4gcmF3IG1vZGUs IEVDQyBjb2RlcyBhcmUgbWlzc2VkLgo+IAo+IFdlIHN1Z2dlc3QgdGhlIGZvbGxvd2luZyB0aGlu ZzogdXNlIG9ubHkgYXJlYSBhdCAweDgyMCBmb3IgT09CIChzZWUgQSkgLSBpdCBpcyBub3QgY292 ZXJlZAo+IGJ5IEVDQyBlbmdpbmUsIHNvIHdyaXRlIHRvIHRoaXMgem9uZSB3b24ndCBjb25mbGlj dCB3aXRoIEVDQyBpbiBmdXR1cmUuIEluIHRoaXMgY2FzZQo+IHdlIGNoYW5nZSAnbWVzb25fb29i bGF5b3V0X2ZyZWUoKScgZnVuY3Rpb24gd2hpY2ggaW5zdGVhZCBvZiBkZXNjcmliaW5nIDIgdXNl ciBieXRlcwo+IGZvciBlYWNoIEVDQyBibG9jaywgd2lsbCByZXR1cm4gMTYgdGFpbCBieXRlcyBm b3IgZWFjaCBFQ0MgYmxvY2suCj4gCj4gV2hhdCB0byBZb3UgdGhpbms/Cgp0aGUga2V5IHBvaW50 IGlzIHRoYXQgdGhlIGRhdGEgMHg4MjAtMHg4NDAgaXMgbm90IHByb3RlY3RlZCBieSBIb3N0IApF Q0Muc28gaSBkb24ndCB0aGluayB3ZSBoYXZlIHRvIGNoYW5nZSBpdC4KClRoYW5rcywKTGlhbmcK PiAKPiAKPj4KPj4+Cj4+PiBUaGFua3MsCj4+PiBNaXF1w6hsCj4gCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Np b24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtbXRkLwo=