Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1775405iob; Thu, 5 May 2022 08:02:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyCSU7ZTXQ81Sh81MoLOPgxz5c62FtaMMTrEt+ifdEZZaMTizt67ztPg5l0/d3q/X+Juq9w X-Received: by 2002:a17:906:6a1b:b0:6f4:a9b8:e027 with SMTP id qw27-20020a1709066a1b00b006f4a9b8e027mr11789080ejc.222.1651762942007; Thu, 05 May 2022 08:02:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1651762942; cv=pass; d=google.com; s=arc-20160816; b=l0isEWAcClBnFXHU+QgZAFazGbBq33OkLcMMOQKgNZM4syX+rSQASeJV6Wwp+DOcz8 m4fJyFnOnbay9fpbiQq1p+qC/a50zbHAGKnFC3x0xUSg0tFyiawPF70ounpBhczPG1zp D9FmOOpcZMqwrRwTZyUvPB17Pk2Do/BW6i4JW6y+VVlBlt0yYk24sG5PJecP3g+lc/r8 L7qRtGaRKCGJxWzuZyitDnNWLM85TKJBVxbJ9vQVh8CMnVTqnLM/5gPEKD/N2dlb0Vfh cC8NxjtO1SJB4M90wB0yNrhuRCQVEPVWvRoc4PxtkrfNfOXG4TMQlKtem/gvZAI0ymus H+yw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=9ARjBqNwML7/6G1lOYGTwYCqbgjJpeLDiTZwgWf/S/0=; b=JMYgZp0u372bhddCUCS8AC/s6085thRLqif+nhLsDb8gEUDCPNC1YoZxlAo5ZOxBWd d9yumJQeMokh/umkk7WE7A2ro4rPf8dq3vg2t0IZeRnMTn5N4wFVKsnKNg87EYqHRvMl SoYJdmxYobMM0t0RSX95uhWeTLvZDR/cPPUAE2gAW+jBmzDaS/mBhk0mh1Z9GEc7mfQC sf6+aJZEvSVaAPcrrE/UBOb6smZtf1hkvLf5po4W+cI0H1yCaIZD3pS3J3PCt8y4XQ9H 9bW7v+r8Q5yESNM2LVzozgNTpt/RAYB5zGoR7FwDOZrCEUpnc3/mmToqe7cyahsByxTy tjGA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=ZS2yYrZ5; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dr16-20020a170907721000b006f3c1c439f3si2901479ejc.595.2022.05.05.08.01.41; Thu, 05 May 2022 08:02:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=ZS2yYrZ5; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351417AbiEDOnl (ORCPT + 99 others); Wed, 4 May 2022 10:43:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351382AbiEDOni (ORCPT ); Wed, 4 May 2022 10:43:38 -0400 Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D84E41318; Wed, 4 May 2022 07:40:02 -0700 (PDT) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.16.1.2) with ESMTP id 244CJE0m012064; Wed, 4 May 2022 07:39:47 -0700 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2174.outbound.protection.outlook.com [104.47.58.174]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3fuscx0gna-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 04 May 2022 07:39:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kRGvRp8sAnmYAevNphtjexnug+lBg2GuUSX1XXUBziVLqucc85PK/S1lmYDRXAzk+Elz10/4jUzxShspH/t9bVONmAlLknkt7Kw2qnK5WLt+LFt8Kb0ps20J2BDP4BqOfnAkJoZ+50T3HQtAKMsAljezk1/Z414lAda69KdreEzdu+YBs5DVUWdCSBpfGCprV4I+fj5CZ85ggIPfMurPB76Gu5rRZAcPM+8X0Qc5C6ReGlhrhXpizc36+I4OQiLtljTLAZbm2Lk+UOJWU66MJUM4UfpVeAZVTmQNjKyWgTjCFxEJ/IbX9PJHwFlch/yGAkc592c1BsX53/+BeuieEg== 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=9ARjBqNwML7/6G1lOYGTwYCqbgjJpeLDiTZwgWf/S/0=; b=kOBM6QlDHo4zYbQH9qNI96HugtPEJqQFE1cYSBPfrfPzyadrInwXsoz1cRXfK/bN8VgmG6AaaHnngba2LvnGGOPznZWosaXEhNQUc7wP/NUjyakkMY5w7ucfZ/0PDX0z5JYOtGAOpvFrFeZPf6hYMBTy127g0ourvYFL0uWxJYwSWnS/uRAHZ+581KUgzi56zN6kWI6gZUw+Nx36KAxkKqfOW9s1bPC0pw7WFJmWkBb1n/H14z00u8G8AKWSR+wkLTDGTc6E5s0eZrmZzOh0Yj726XnQZOc/AtXRmwaFrDikXT7pGsxQnCmPpgWlinBmKuIWa+vrzPAjNU9P19Hvbg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9ARjBqNwML7/6G1lOYGTwYCqbgjJpeLDiTZwgWf/S/0=; b=ZS2yYrZ5w0YfzpNSU8QkBqbef6QLhARYoYWRMMKug7OhQgq4dPQQcpdbqNxTQ5RStS3PB3J3QwQBLhHEVX3Fidbe6mIXZJBHi0JIraMuSIjrqsGyIICnH0PQE+mudyMtSdcDB6Ut/DQn1H+X0yF1dCSyjZwDrZ7tfYZMlseh/mQ= Received: from BY3PR18MB4578.namprd18.prod.outlook.com (2603:10b6:a03:3c1::24) by DM5PR18MB1468.namprd18.prod.outlook.com (2603:10b6:3:b9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.25; Wed, 4 May 2022 14:39:43 +0000 Received: from BY3PR18MB4578.namprd18.prod.outlook.com ([fe80::280a:4cad:d754:83ca]) by BY3PR18MB4578.namprd18.prod.outlook.com ([fe80::280a:4cad:d754:83ca%4]) with mapi id 15.20.5206.024; Wed, 4 May 2022 14:39:42 +0000 From: Dmitrii Bezrukov To: Grant Grundler CC: Igor Russkikh , Jakub Kicinski , Paolo Abeni , netdev , "David S . Miller" , LKML , Aashay Shringarpure , Yi Chou , Shervin Oloumi Subject: RE: [EXT] Re: [PATCH 0/5] net: atlantic: more fuzzing fixes Thread-Topic: [EXT] Re: [PATCH 0/5] net: atlantic: more fuzzing fixes Thread-Index: AQHYWYbP2dKMqstMT0yz3eT2vHd98K0CcNOAgAqZYoCAAHPxAIABVXtA Date: Wed, 4 May 2022 14:39:42 +0000 Message-ID: References: <20220418231746.2464800-1-grundler@chromium.org> <23cbe4be-7ced-62da-8fdb-366b726fe10f@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 888c8ca3-9c93-4485-6b5b-08da2ddbed4d x-ms-traffictypediagnostic: DM5PR18MB1468:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F+VvFHZrI1+RIVPLC1KrCoMYaBX2nPUjUjKzrbK8bjOdPmAYexY0qU6o46B8xrYng1lwrTz/PZM3Dx+iJMPAt1dzoXtbBdd6d+vc65j5SmBIAXEU3AN+I9BD06i618cW/I/KJtWxbxoVSnpAI7P8oZ7YvqX39jv9Ghkmj/mJFecFuOHdDaUq9zC0hPLevoP4k/tsUIbLc+SSbeLh53dHYTUFNBKfDeShn/TfuAzL833DqiAU/AjDdsGLaOyr9xv8GfRpq1zMcPTmt0vF8HoQJNa8AGTSFGTn5C53qXKHCL1ZQpGpA0nQYksgaq/mAhOftWjU8WIPR1EIHlpc9beJ+RU/3Bp9laQmOLh4VW8c48vtZszSbKWgMvUgyY766eVoxVkVtsPuyZuGNZ3au1I02VvnZVbC+Uu/lDifnmALj7ZQyjdVI5FUO2oEX70MDkjSoRKS5zjCQEGmuA53YY/1Lxa7u5Z4HQsubxSDI8txJtH1E7va8Fyx464+OEyE58xUa6dngi8X8bNAwzanujRBYyjRi7veSjM9/E4azy9wjSiVtpXD3QN3TWRFrFH93T2F82XYz1sM5Q7ICECAXtGXTUgCj0wfRQ1D03x2X6pe7dv5HqrqIkpYrYeqgzUf6wF0ZZDE9ytSl0k2AJu7hmwCfqMGOzEcowYz3u+S5O6Ud6kRzXIRTAzPqDZHG7FSQfqyCVAOKUM3Hbp+/hoBYfdA9IcP9D/R6kk4EWIOLef4K0cYLBr1UxOw9GqfEjk4zZje53T9KGxVkvlL8l+l+k9b0zPlPt1z4+fKJUfYZlO2bDNcxAf/owGPjTQQbRtD6bFz31YAQHTyf10lVmj9E8HUxg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY3PR18MB4578.namprd18.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(38100700002)(19627235002)(33656002)(8936002)(71200400001)(316002)(83380400001)(6506007)(6916009)(38070700005)(55016003)(122000001)(186003)(4326008)(8676002)(30864003)(966005)(54906003)(4001150100001)(52536014)(2906002)(5660300002)(508600001)(76116006)(66556008)(7696005)(66446008)(64756008)(66946007)(66476007)(26005)(86362001)(9686003)(53546011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dmJpOVZhNmwzcGk3TGh1NE1CT3NqMXBsUkhrYi96NVFtLzNkRHREQ0xvdGk0?= =?utf-8?B?Sm00dkowSGF2RHRneldBdDBjelBUMEZTcGdPMFdSTTlJWTRkd05laW1yR1I4?= =?utf-8?B?c1JsTkU5NHlpQnlHQWMyYXZQcXNMamdQcHVtQ05oK1hIMEQwNm5vUUtFM0NO?= =?utf-8?B?ZWlieG1KYnF0R2huYlR5eVBaSldmMW15Uld1aTJUVVlIckxPQWxXQkVtcitD?= =?utf-8?B?QjVuU0tROHZGbTl3NTJmbkhadDFhbkFtb1luYXIra3V2RzBTT1FRTEZtTFpG?= =?utf-8?B?L1A1KytmL0Q5TGlIbFlLSjFvMk9LTE50QUkrLzlFbnhSbUFzc2FTai9Wemli?= =?utf-8?B?RFE1NFphM1d4QlZCaDZmV0g0L2Z6eTFJdjZod205aGdEYXFNdUEwYTQ2U1U5?= =?utf-8?B?WW50Z2JrTjM2TDVlVzl1NmtTUjROVlNiVm8xYUxCSXpydithQ0Q0S2k2MTBR?= =?utf-8?B?dERIekdyRk1qN3ZJZTBUK1RjeWlwYlVxOWJRTkJGMjBkRTl3WE9tdzBYQVU5?= =?utf-8?B?VTE1VERwZmtUL1lJVUs1ejNESk10bnVXQlRxaS93UlY4eWVwcEVpK1hkVWt6?= =?utf-8?B?aGVja2RienlLRnhDcjUzVjEyK1RSMVg2K0NFTHBhVkFUR3g4RytlNXBPdGRa?= =?utf-8?B?Q2FFS3JkblBjZjJFWGVGcEdHT3ZxWThTZGFicy95VUxqekloWGExMFJiVDBh?= =?utf-8?B?TG45V1BuNStkMmFJQjdtRnFSVmxvdUVGeXB3eTlPWldZNEpzTmxpOGJkaXhy?= =?utf-8?B?Vy9tc0VQaWZmckJBMWNUeGU1bjB3dVFlK3BjWHdMNllkU25yeXg0bkNvREpD?= =?utf-8?B?WUZJbHlUYTM4VzlDUXBkbXg0dlRlTFpiamNZUm04N0JDZXdOYU83L0hPS2w2?= =?utf-8?B?RmtMZGhkRkErdFZrWlJKVnZJRXNza2Z1TVp6ZVZBd3RpWmFmRStHMHFOY2VH?= =?utf-8?B?VDFTRkJva2ZCRHBZcEVDWWVCdUwzaXEvVjFPREZSQ2RSSHNVSXVCZGlBY2lB?= =?utf-8?B?aXdPVnNBNXJ3a0xhMzR0OFdFRlU4eTZLeldwaS9xUFpIdnVWWFl2WU9HYkVn?= =?utf-8?B?eWVpMXQ2cWVQQW50RlVJTElPdVpXZWdCR1lNVkZ6UGRoOWg4RjVzNVcxdFQr?= =?utf-8?B?enhYSVIvQnJmRnBMQUE4eTAxa24xZUVzTElKLzRvNEZ1NUdkbjhybTUxR2px?= =?utf-8?B?dGR0djIxSEdOODhHOGFoaENMbGNQd0dCdnd4VTBIUHhROGZ3eWFZZXdjSHVT?= =?utf-8?B?Tkwwb0h3K3llZDBqR0g2Rk5iSkpOTW92SHNIU01BemN0WUlQMkp3Rk5sQysw?= =?utf-8?B?OEcwcFFjRnZHZXNqZUU2L2I5UWNtS2hJNG0wUlRFdDU2Zi9LS2JvT1NCa1FL?= =?utf-8?B?THlGR2lDdjI2RjBwaVdnWDViUXJmM0hxZ0FGckx4RlU4L3ZJMHBwSXRzcFEw?= =?utf-8?B?VWZwcTlYaGpUWkZCVHdKbHBadWp2Mm00WDgrK2hpK1FPUEZSNXRWL2VWa1lp?= =?utf-8?B?RWFPb0oxaURWYVBvNW1HQkg5Z2hBSFBVRXJPQlBXTWtYcHQzeVVDZ2tBU3Zs?= =?utf-8?B?Tm41M2RHWHptdTFXc05wRkJwTzdjdmJMQnZBc3NxenliaC9rOEhDOFd6eENI?= =?utf-8?B?MTRBbEZKb0FMQjlOMXlrTkFLN3pGS1h4NzRGZDloS1lwTU5OaGJ4Y2prOFds?= =?utf-8?B?b0o5R2svZ0hid1VNSGthK1pJN1lXblJvNE5mUkNYME9CNlNaNnIvTStxWmVH?= =?utf-8?B?TFk4T29lTEJNMnRHcnVPenMrdklIZVZKdFlwMmFSUytCOFNuWG1NWG1KNmpC?= =?utf-8?B?NXZTMWx3SkNIRzdqY2owcE93M1V2VXg2Z2IwUDRCWkxXeXgrbjBsMGRUYUxi?= =?utf-8?B?enAwSEdOTGw4VW8rTTlIMm4rU080L0tpRXR1YXNiblVBaXRMaHZjYWxCdHVH?= =?utf-8?B?N0phWFQ0R25iUURjTjVMOXJoMGlRdVM4RTIveDg0TmRoYzlvYWVkcE1RVFRC?= =?utf-8?B?eFBFNjNBMkxOblpxYUJsajZWakNkaXlFRjdWdlA3b21rc3lONWkyYzRDZEJ0?= =?utf-8?B?WUlMN0IxQVc3UHVLcm1IM0t6bU1keGh5aUdXMzN2R2RFd005WEtNeHVpZTMz?= =?utf-8?B?SmhPbkxKYXhEcVdTOGUzbkl3L1lxaVlwYVNEaVhYL01lVHFqWG1OVWlMb1JF?= =?utf-8?B?b0F2SktVak5uRmZuYVBkaFBiOHplWUVoSVJudHpubG1kcHo4SnZsQVRtTVBl?= =?utf-8?B?a00wbU9CcEhmRVdKWDJlT0hzM05UVGNDTGl0YmVrZ05hcSt3bUNzazU0QjNP?= =?utf-8?B?UEJFVXJXTG5GWExqbWRtU3B0VnlFNFlKOGFRVnp0VEl1U21xOFA0QT09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR18MB4578.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 888c8ca3-9c93-4485-6b5b-08da2ddbed4d X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 14:39:42.8551 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Vr4ym11LFnYCR/PiynSncfbxD6qnKABq9E7AnAMcCW6dYSHKfQPBFI6uimYyTZznu8L9PuoonFsfcTaU39nbOQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR18MB1468 X-Proofpoint-GUID: wRr0637MW7QfvHXee3H0YQbWHs7Ruv1K X-Proofpoint-ORIG-GUID: wRr0637MW7QfvHXee3H0YQbWHs7Ruv1K X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-04_04,2022-05-04_01,2022-02-23_01 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgR3JhbnQsDQoNCj4gRGlkIEkgbWlzdW5kZXJzdGFuZCB3aGF0IHRoaXMgY29kZSAobGluZSAz NzgpIGlzIGRvaW5nIGluIGFxX3JpbmcuYz8NClllcyBpdCdzIGRvbmUgdGhlcmUuIEkgbWVhbnQg dGhhdCBpbiAnaHdfYXRsL2h3X2F0bF9iMC5jIiB0aGVyZSBpcyBub3QgYWNjZXNzIHRvIGJ1ZmZl ci4gDQpBbmQgcHJvYmFibHkgaXQncyBub3QgYSBnb29kIHBsYWNlIHRvIHB1dCB0aGlzIHlvdXIg Y2hhbmdlIHRoZXJlLiBEdWUgdG8geW91IGFyZSBnb2luZyB0byBkcm9wIHRoaXMgMS81IHBhdGNo LCBpdCBkb2VzbuKAmXQgbWFrZSBhbnkgc2Vuc2UgYW55bW9yZS4NCg0KPiAqbm9kKg0KSSdtIHNv cnJ5IGJ1dCBJIGRvbuKAmXQgdW5kZXJzdGFuZCB3aGF0IGl0IG1lYW5zLg0KDQo+IFNob3VsZCB0 aGlzIGxvb3AgYmUgY2hlY2tpbmcgYWdhaW5zdCBIV19BVExfQjBfTFJPX1JYRF9NQVggaW5zdGVh ZD8NCk5vLCB0aGF0J3MgT0sgdG8gY2hlY2sgd2l0aCBNQVhfU0tCX0ZSQUdTIGFzIHlvdSBkby4N Cg0KPlNvcnJ5LCBJJ20gbm90IHVuZGVyc3RhbmRpbmcgeW91ciBjb25jbHVzaW9uLiBJcyB0aGUg ImdvdG8gZXJyX2V4aXQiDQo+aW4gdGhpcyBjYXNlIGRvaW5nIHdoYXQgeW91IGRlc2NyaWJlZD8N Cj5Eb2VzIHRoaXMgcGF0Y2ggaGF2ZSB0aGUgcmlnaHQgaWRlYSAoZXZlbiBpZiBpdCBzaG91bGQg dGVzdCBhZ2FpbnN0IGEgZGlmZmVyZW50IGNvbnN0YW50KT8NCj4NCj5NeSBtYWluIGNvbmNlcm4g aXMgdGhlIENQVSBnZXRzIHN0dWNrIGluIHRoaXMgbG9vcCBmb3IgYSB2ZXJ5IGxvbmcNCj4oaW5m aW5pdGU/KSB0aW1lLg0KWWVzIHRoaXMgaXMgZXhhY3RseSB0aGF0IEkgbWVhbnQsIHRoYXQgaW4g dGhpcyBjYXNlLCB0aGUgY29uZGl0aW9uIHRvIHB1c2ggcGFja2V0IHRvIHN0YWNrIHdpbGwgbm90 IGJlIGV2ZXIgcmVhY2hlZC4NClNvIHRvIGNsb3NlIHNlc3Npb24gSSBndWVzcyBuZWVkIHRvIHNl dCBpc19yc2NfY29tcGxldGVkIHRvIHRydWUgd2hlbiBudW1iZXIgb2YgZnJhZ3MgaXMgZ29pbmcg dG8gZXhjZWVkIHZhbHVlIE1BWF9TS0JfRlJBR1MsIHRoZW4gcGFja2V0IHdpbGwgYmUgYnVpbHQg YW5kIHN1Ym1pdHRlZCB0byBzdGFjay4NCkJ1dCBvZiBjb3Vyc2UgbmVlZCB0byBjaGVjayB0aGF0 IHRoZXJlIHdpbGwgbm90IGJlIGFueSBvdGhlciBjb3JuZXIgY2FzZXMgd2l0aCB0aGlzIG5ldyBj aGFuZ2UuDQoNCkJlc3QgcmVnYXJkcywNCkRtaXRyaWkgQmV6cnVrb3YNCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IEdyYW50IEdydW5kbGVyIDxncnVuZGxlckBjaHJvbWl1bS5v cmc+IA0KU2VudDogVHVlc2RheSwgTWF5IDMsIDIwMjIgODowNyBQTQ0KVG86IERtaXRyaWkgQmV6 cnVrb3YgPGRiZXpydWtvdkBtYXJ2ZWxsLmNvbT4NCkNjOiBHcmFudCBHcnVuZGxlciA8Z3J1bmRs ZXJAY2hyb21pdW0ub3JnPjsgSWdvciBSdXNza2lraCA8aXJ1c3NraWtoQG1hcnZlbGwuY29tPjsg SmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz47IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVk aGF0LmNvbT47IG5ldGRldiA8bmV0ZGV2QHZnZXIua2VybmVsLm9yZz47IERhdmlkIFMgLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+OyBMS01MIDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwu b3JnPjsgQWFzaGF5IFNocmluZ2FycHVyZSA8YWFzaGF5QGdvb2dsZS5jb20+OyBZaSBDaG91IDx5 aWNoQGdvb2dsZS5jb20+OyBTaGVydmluIE9sb3VtaSA8ZW5saWdodGVuZWRAZ29vZ2xlLmNvbT4N ClN1YmplY3Q6IFJlOiBbRVhUXSBSZTogW1BBVENIIDAvNV0gbmV0OiBhdGxhbnRpYzogbW9yZSBm dXp6aW5nIGZpeGVzDQoNCkhpIERtaXRyaWkhDQoNCk9uIFR1ZSwgTWF5IDMsIDIwMjIgYXQgNDox NSBBTSBEbWl0cmlpIEJlenJ1a292IDxkYmV6cnVrb3ZAbWFydmVsbC5jb20+IHdyb3RlOg0KPg0K PiBIaSBHcmFudHMsDQo+DQo+ID5bMS81XSBuZXQ6IGF0bGFudGljOiBsaW1pdCBidWZmX3Jpbmcg aW5kZXggdmFsdWUNCj4NCj4gPmRpZmYgLS1naXQgDQo+ID5hL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2FxdWFudGlhL2F0bGFudGljL2h3X2F0bC9od19hdGxfYjAuYw0KPiA+Yi9kcml2ZXJzL25ldC9l dGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRsX2IwLmMNCj4gPmluZGV4IGQ4 NzVjZTNlYzc1OS4uZTcyYjlkODZmNmFkIDEwMDY0NA0KPiA+LS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvaHdfYXRsL2h3X2F0bF9iMC5jDQo+ID4rKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRsX2IwLmMNCj4g PkBAIC05ODEsNyArOTgxLDkgQEAgIGludCBod19hdGxfYjBfaHdfcmluZ19yeF9yZWNlaXZlKHN0 cnVjdCBhcV9od19zIA0KPiA+KnNlbGYsIHN0cnVjdCBhcV9yaW5nX3MgKnJpbmcpDQo+ID4NCj4g PiAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1ZmYtPmlzX2xybykgew0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIExSTyAqLw0KPiA+LSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1ZmYtPm5leHQgPSByeGRfd2ItPm5leHRfZGVzY19wdHI7DQo+ID4rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnVmZi0+bmV4dCA9DQo+ID4rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAocnhkX3diLT5uZXh0X2Rlc2NfcHRyIDwgcmluZy0+c2l6 ZSkgPw0KPiA+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhkX3diLT5u ZXh0X2Rlc2NfcHRyIDogMFU7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyty aW5nLT5zdGF0cy5yeC5scm9fcGFja2V0czsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBqdW1ibyAqLw0KPg0K PiBJIGRvbuKAmXQgZmluZCB0aGlzIHdheSBjb3JyZWN0LiBBdCBsZWFzdCBpbiB0aGlzIGZ1bmN0 aW9ucyB0aGVyZSBpcyBubyBhY2Nlc3MgdG8gYnVmZmVycyBieSB0aGlzIGluZGV4ICJuZXh0Ii4N Cg0KRGlkIEkgbWlzdW5kZXJzdGFuZCB3aGF0IHRoaXMgY29kZSAobGluZSAzNzgpIGlzIGRvaW5n IGluIGFxX3JpbmcuYz8NCjM0MiAjZGVmaW5lIEFRX1NLQl9BTElHTiBTS0JfREFUQV9BTElHTihz aXplb2Yoc3RydWN0IHNrYl9zaGFyZWRfaW5mbykpDQozNDMgaW50IGFxX3JpbmdfcnhfY2xlYW4o c3RydWN0IGFxX3JpbmdfcyAqc2VsZiwNCjM0NCAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg bmFwaV9zdHJ1Y3QgKm5hcGksDQozNDUgICAgICAgICAgICAgICAgICAgICAgaW50ICp3b3JrX2Rv bmUsDQozNDYgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1ZGdldCkNCjM0NyB7DQouLi4NCjM3 MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWZmXy0+bmV4dCA+PSBzZWxm LT5zaXplKSB7DQozNzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy ciA9IC1FSU87DQozNzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdv dG8gZXJyX2V4aXQ7DQozNzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQozNzUN CjM3NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdfY250Kys7DQozNzcgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0XyA9IGJ1ZmZfLT5uZXh0LA0KMzc4ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZl8gPSAmc2VsZi0+YnVmZl9yaW5nW25l eHRfXTsNCg0KTXkgY2hhbmdlIGlzIHJlZHVuZGFudCB3aXRoIExpbmVzIDM3MS0zNzQgLSB0aGV5 IGVzc2VudGlhbGx5IGRvIHRoZSBzYW1lIHRoaW5nIGFuZCB3ZXJlIGFkZGVkIG9uDQoyMDIxLTEy LTI2IGJ5IDVmNTAxNTMyODg0NTIgKFpla3VuIFNoZW4pDQoNClRoZSBvcmlnaW5hbCBmdXp6aW5n IHdvcmsgd2FzIGRvbmUgb24gY2hyb21lb3MtdjUuNCBrZXJuZWwgYW5kIGRpZG4ndCBpbmNsdWRl IHRoaXMgY2hhbmdlLiBJJ2xsIGJhY2twb3J0IDVmNTAxNTMyODg0NTJ0IHRvIGNocm9tZW9zLXY1 LjQgYW5kIGRyb3AgbXkgcHJvcG9zZWQgY2hhbmdlLg0KDQo+IEZvbGxvd2luZyB0aGlzIGZpeCwg aWYgaXQgaGFwcGVucyB0aGVuIGR1cmluZyBhc3NlbWJsaW5nIG9mIExSTyBzZXNzaW9uIGl0IGNv dWxkIGJlIHRoYXQgdGhpcyBidWZmZXIgKHlvdSBzdWdnZXN0aW5nIHRvIHVzZSBidWZmZXIgd2l0 aCBpbmRleCAwKSBiZWNvbWVzIGEgcGFydCBvZiBjdXJyZW50IExSTyBzZXNzaW9uIGFuZCB3aWxs IGJlIGFsc28gcHJvY2Vzc2VkIGFzIGEgc2luZ2xlIHBhY2tldCBvciBhcyBhIHBhcnQgb2Ygb3Ro ZXIgTFJPIGh1Z2UgcGFja2V0Lg0KPiBUbyBiZSBob25lc3QgdGhlcmUgYXJlIGxvdCBvZiBwb3Nz aWJpbGl0aWVzIGRlcGVuZHMgb24gY3VycmVudCB2YWx1ZXMgb2YgaGVhZCBhbmQgdGFpbCB3aGlj aCBtYXkgY2F1c2UgZWl0aGVyIG1lbW9yeSBsZWFrIG9yIGRvdWJsZSBmcmVlIG9yIHNvbWV0aGlu ZyBlbHNlLg0KDQoqbm9kKg0KDQo+IFRoZXJlIGlzIGEgY29kZSB3aGljaCBjYWxscyB0aGlzIGZ1 bmN0aW9uIGFxX3JpbmcuYzogYXFfcmluZ19yeF9jbGVhbi4NCg0KRXhhY3RseS4NCg0KPiBGcm9t IG15IFBPViBpdCdzIGJldHRlciB0byBjaGVjayB0aGF0IGluZGV4ZXMgZG9uJ3QgcG9pbnQgdG8g b3V0c2lkZSBvZiByaW5nIGluIGNvZGUgd2hpY2ggY29sbGVjdHMgTFJPIHNlc3Npb24uDQoNClNv dW5kcyBnb29kIHRvIG1lLiBJIGRvbid0IGhhdmUgYSBwcmVmZXJlbmNlLiBJJ20gb2sgd2l0aCBk cm9wcGluZy9pZ25vcmluZyBbMS81XSBwYXRjaC4NCg0KPiBUaGVyZSBpcyBleHBlY3RhdGlvbiB0 aGF0ICJuZXh0IiBpcyBpbiByYW5nZSAiY2xlYW5lZCIgZGVzY3JpcHRvcnMsIHdoaWNoIG1lYW5z IHRoYXQgSFcgcHV0IGRhdGEgdGhlcmUgd3JvdGUgZGVzY3JpcHRvciBhbmQgYnVmZmVycyBhcmUg cmVhZHkgdG8gYmUgcHJvY2VzcyBieSBhc3NlbWJsaW5nIGNvZGUuDQo+IFNvIGluIGNhc2UgaWYg Im5leHQiIHBvaW50cyB0byBzb21ldGhpbmcgb3V0c2lkZSBvZiByaW5nIHRoZW4gZ3Vlc3MgaXQg d291bGQgYmUgYmV0dGVyIGp1c3QgdG8gc3RvcCBjb2xsZWN0aW5nIHRoZXNlIGJ1ZmZlcnMgdG8g b25lIGh1Z2UgcGFja2V0IGFuZCB0cmVhdCB0aGlzIExSTyBzZXNzaW9uIGFzIGNvbXBsZXRlZC4N Cj4gVGhlbiByZXN0IG9mIGJ1ZmZlcnMgKHdoaWNoIHNob3VsZCBiZSBpdCB0aGF0IGNoYWluKSB3 aWxsIGJlIGNvbGxlY3RlZCBhZ2FpbiB3aXRob3V0IGJlZ2lubmluZyBhbmQganVzdCBkcm9wcGVk IGJ5IHN0YWNrIGxhdGVyLg0KDQpUaGF0IG1ha2VzIHNlbnNlIHRvIG1lLiBBbmQgYXBvbG9naWVz IGZvciBub3Qgbm90aWNpbmcgWmVrdW4gU2hlbidzDQoyMDIxLTEyLTI2IGNoYW5nZSBlYXJsaWVy LiBJJ3ZlIGJlZW4gd29ya2luZyBvbiB0aGlzIG9mZiBhbmQgb24gZm9yIHNldmVyYWwgbW9udGhz Lg0KDQo+ID4gWzQvNV0gbmV0OiBhdGxhbnRpYzogYWRkIGNoZWNrIGZvciBNQVhfU0tCX0ZSQUdT DQo+ID4NCj4gPmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxh bnRpYy9hcV9yaW5nLmMNCj4gPmIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50 aWMvYXFfcmluZy5jDQo+ID5pbmRleCBiYzE5NTIxMzE3OTkuLjgyMDFjZTdhZGI3NyAxMDA2NDQN Cj4gPi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2FxX3Jpbmcu Yw0KPiA+KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvYXFfcmlu Zy5jDQo+ID5AQCAtMzYzLDYgKzM2Myw3IEBAICBpbnQgYXFfcmluZ19yeF9jbGVhbihzdHJ1Y3Qg YXFfcmluZ19zICpzZWxmLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4g Pg0KPiA+ICAgICAgICAgICAgICAgaWYgKCFidWZmLT5pc19lb3ApIHsNCj4gPisgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGZyYWdfY250ID0gMFU7DQo+ID4gICAgICAgICAgICAg ICAgICAgICAgIGJ1ZmZfID0gYnVmZjsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgZG8gew0K PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNfcnNjX2NvbXBsZXRlZCA9 IHRydWU7IEBAIA0KPiA+LTM3MSw2ICszNzIsOCBAQCAgaW50IGFxX3JpbmdfcnhfY2xlYW4oc3Ry dWN0IGFxX3JpbmdfcyAqc2VsZiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVyciA9IC1FSU87DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnb3RvIGVycl9leGl0Ow0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N Cj4gPisNCj4gPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnX2NudCsrOw0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRfID0gYnVmZl8tPm5leHQsDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZl8gPSAmc2VsZi0+YnVmZl9yaW5nW25l eHRfXTsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19yc2NfY29tcGxldGVk ID0gQEAgLTM3OCw3ICszODEsOCBAQCAgDQo+ID5pbnQgYXFfcmluZ19yeF9jbGVhbihzdHJ1Y3Qg YXFfcmluZ19zICpzZWxmLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuZXh0XywNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID5zZWxmLT5od19oZWFkKTsN Cj4gPg0KPiA+LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1bmxpa2VseSghaXNf cnNjX2NvbXBsZXRlZCkpIHsNCj4gPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo dW5saWtlbHkoIWlzX3JzY19jb21wbGV0ZWQpIHx8DQo+ID4rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZyYWdfY250ID4gTUFYX1NLQl9GUkFHUykgew0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gMDsNCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2V4aXQ7DQo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KPg0KPiBOdW1iZXIgb2YgZnJhZ21lbnRzIGFyZSBsaW1pdGVkIGJ5 IEhXIGNvbmZpZ3VyYXRpb246IGh3X2F0bF9iMF9pbnRlcm5hbC5oOiAjZGVmaW5lIEhXX0FUTF9C MF9MUk9fUlhEX01BWCAxNlUuDQoNClNob3VsZCB0aGlzIGxvb3AgYmUgY2hlY2tpbmcgYWdhaW5z dCBIV19BVExfQjBfTFJPX1JYRF9NQVggaW5zdGVhZD8NCg0KPiBMZXQncyBpbWFnaW5lIGlmIGl0 IGhhcHBlbnM6IGRyaXZlciBzdHVja3MgYXQgdGhpcyBwb2ludCBpdCB3aWxsIHdhaXQgZm9yIHNl c3Npb24gY29tcGxldGlvbiBhbmQgc2Vzc2lvbiB3aWxsIG5vdCBiZSBjb21wbGV0ZWQgZHVlIHRv IHRvbyBtdWNoIGZyYWdtZW50cy4NCj4gR3Vlc3MgaW4gY2FzZSBpZiBudW1iZXIgb2YgYnVmZmVy cyBleGNlZWRzIHRoaXMgbGltaXQgdGhlbiBpdCBpcyByZXF1aXJlZCB0byBjbG9zZSBzZXNzaW9u IGFuZCBjb250aW51ZSAoc3VibWl0IHBhY2tldCB0byBzdGFjayBhbmQgZmluYWxpemUgY2xlYXJp bmcgaWYgcHJvY2Vzc2VkIGRlc2NyaXB0b3JzL2J1ZmZlcnMpLg0KDQpTb3JyeSwgSSdtIG5vdCB1 bmRlcnN0YW5kaW5nIHlvdXIgY29uY2x1c2lvbi4gSXMgdGhlICJnb3RvIGVycl9leGl0Ig0KaW4g dGhpcyBjYXNlIGRvaW5nIHdoYXQgeW91IGRlc2NyaWJlZD8NCkRvZXMgdGhpcyBwYXRjaCBoYXZl IHRoZSByaWdodCBpZGVhIChldmVuIGlmIGl0IHNob3VsZCB0ZXN0IGFnYWluc3QgYSBkaWZmZXJl bnQgY29uc3RhbnQpPw0KDQpNeSBtYWluIGNvbmNlcm4gaXMgdGhlIENQVSBnZXRzIHN0dWNrIGlu IHRoaXMgbG9vcCBmb3IgYSB2ZXJ5IGxvbmcNCihpbmZpbml0ZT8pIHRpbWUuDQoNCj4NCj4gPiBb NS81XSBuZXQ6IGF0bGFudGljOiB2ZXJpZnkgaHdfaGVhZF8gaXMgcmVhc29uYWJsZSBkaWZmIC0t Z2l0IA0KPiA+YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwv aHdfYXRsX2IwLmMNCj4gPmIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMv aHdfYXRsL2h3X2F0bF9iMC5jDQo+ID5pbmRleCBlNzJiOWQ4NmY2YWQuLjliNmI5M2JiM2U4NiAx MDA2NDQNCj4gPi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2h3 X2F0bC9od19hdGxfYjAuYw0KPiA+KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEv YXRsYW50aWMvaHdfYXRsL2h3X2F0bF9iMC5jDQo+ID5AQCAtODg5LDYgKzg4OSwyNyBAQCAgaW50 IGh3X2F0bF9iMF9od19yaW5nX3R4X2hlYWRfdXBkYXRlKHN0cnVjdCBhcV9od19zICpzZWxmLA0K PiA+ICAgICAgICAgICAgICAgZXJyID0gLUVOWElPOw0KPiA+ICAgICAgICAgICAgICAgZ290byBl cnJfZXhpdDsNCj4gPiAgICAgICB9DQo+ID4rDQo+ID4rICAgICAgLyogVmFsaWRhdGUgdGhhdCB0 aGUgbmV3IGh3X2hlYWRfIGlzIHJlYXNvbmFibGUuICovDQo+ID4rICAgICAgaWYgKGh3X2hlYWRf ID49IHJpbmctPnNpemUpIHsNCj4gPisgICAgICAgICAgICAgIGVyciA9IC1FTlhJTzsNCj4gPisg ICAgICAgICAgICAgIGdvdG8gZXJyX2V4aXQ7DQo+ID4rICAgICAgfQ0KPiA+Kw0KPiA+KyAgICAg IGlmIChyaW5nLT5zd19oZWFkID49IHJpbmctPnN3X3RhaWwpIHsNCj4gPisgICAgICAgICAgICAg IC8qIEhlYWQgaW5kZXggaGFzbid0IHdyYXBwZWQgYXJvdW5kIHRvIGJlbG93IHRhaWwgaW5kZXgu ICovDQo+ID4rICAgICAgICAgICAgICBpZiAoaHdfaGVhZF8gPCByaW5nLT5zd19oZWFkICYmIGh3 X2hlYWRfID49IHJpbmctPnN3X3RhaWwpIHsNCj4gPisgICAgICAgICAgICAgICAgICAgICAgZXJy ID0gLUVOWElPOw0KPiA+KyAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl9leGl0Ow0KPiA+ KyAgICAgICAgICAgICAgfQ0KPiA+KyAgICAgIH0gZWxzZSB7DQo+ID4rICAgICAgICAgICAgICAv KiBIZWFkIGluZGV4IGhhcyB3cmFwcGVkIGFyb3VuZCBhbmQgaXMgYmVsb3cgdGFpbCBpbmRleC4g Ki8NCj4gPisgICAgICAgICAgICAgIGlmIChod19oZWFkXyA8IHJpbmctPnN3X2hlYWQgfHwgaHdf aGVhZF8gPj0gcmluZy0+c3dfdGFpbCkgew0KPiA+KyAgICAgICAgICAgICAgICAgICAgICBlcnIg PSAtRU5YSU87DQo+ID4rICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2V4aXQ7DQo+ID4r ICAgICAgICAgICAgICB9DQo+ID4rICAgICAgfQ0KPiA+Kw0KPiA+ICAgICAgIHJpbmctPmh3X2hl YWQgPSBod19oZWFkXzsNCj4gPiAgICAgICBlcnIgPSBhcV9od19lcnJfZnJvbV9mbGFncyhzZWxm KTsNCj4NCj4gU2ltcGxlIGV4YW1wbGUuIE9uZSBwYWNrZXQgd2l0aCBvbmUgYnVmZmVyIHdhcyBz ZW50LiBTd190YWlsID0gMSwgc3dfaGVhZD0wLiBGcm9tIGludGVycnVwdCB0aGlzIGZ1bmN0aW9u IGlzIGNhbGxlZCBhbmQgaHdfaGVhZF8gaXMgMS4NCj4gQ29kZSB3aWxsIGZvbGxvdyAiZWxzZSIg YnJhbmNoIG9mIHNlY29uZCAiaWYiIHRoYXQgeW91IGFkZCBhbmQgY29uZGl0aW9uICJpZiAoaHdf aGVhZF8gPCByaW5nLT5zd19oZWFkIHx8IGh3X2hlYWRfID49IHJpbmctPnN3X3RhaWwpIHsiIHdp bGwgYmUgdHJ1ZSB3aGljaCBzZWVtcyB0byBiZSBub3QgZXhwZWN0ZWQuDQoNCkNvcnJlY3QgLSBJ J3ZlIGdvdCB0aGlzIHdyb25nIChoZWFkL3RhaWwgc3dhcHBlZCkuIEV2ZW4gaWYgSSBoYWQgaXQg cmlnaHQsIEFzIElnb3Igb2JzZXJ2ZWQsIGRlYmF0YWJsZSBpZiBpdCdzIG5lY2Vzc2FyeS4gUGxl YXNlIGRyb3AvaWdub3JlIHRoaXMgcGF0Y2ggYXMgd2VsbC4gQWFzaGF5IGFuZCBJIG5lZWQgdG8g ZGlzY3VzcyB0aGlzIG1vcmUuDQoNCnRoYW5rIHlvdSBhZ2FpbiENCg0KY2hlZXJzLA0KZ3JhbnQN Cg0KDQo+DQo+IEJlc3QgcmVnYXJkcywNCj4gRG1pdHJpaSBCZXpydWtvdg0KPg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHcmFudCBHcnVuZGxlciA8Z3J1bmRsZXJAY2hy b21pdW0ub3JnPg0KPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAyNiwgMjAyMiA3OjIxIFBNDQo+IFRv OiBJZ29yIFJ1c3NraWtoIDxpcnVzc2tpa2hAbWFydmVsbC5jb20+DQo+IENjOiBHcmFudCBHcnVu ZGxlciA8Z3J1bmRsZXJAY2hyb21pdW0ub3JnPjsgRG1pdHJpaSBCZXpydWtvdiANCj4gPGRiZXpy dWtvdkBtYXJ2ZWxsLmNvbT47IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+OyBQYW9s byBBYmVuaSANCj4gPHBhYmVuaUByZWRoYXQuY29tPjsgbmV0ZGV2IDxuZXRkZXZAdmdlci5rZXJu ZWwub3JnPjsgRGF2aWQgUyAuIE1pbGxlciANCj4gPGRhdmVtQGRhdmVtbG9mdC5uZXQ+OyBMS01M IDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgQWFzaGF5IA0KPiBTaHJpbmdhcnB1cmUg PGFhc2hheUBnb29nbGUuY29tPjsgWWkgQ2hvdSA8eWljaEBnb29nbGUuY29tPjsgU2hlcnZpbiAN Cj4gT2xvdW1pIDxlbmxpZ2h0ZW5lZEBnb29nbGUuY29tPg0KPiBTdWJqZWN0OiBSZTogW0VYVF0g UmU6IFtQQVRDSCAwLzVdIG5ldDogYXRsYW50aWM6IG1vcmUgZnV6emluZyBmaXhlcw0KPg0KPiBb cmVwbHktYWxsIGFnYWluIHNpbmNlIEkgZm9yZ290IHRvIHRlbGwgZ21haWwgdG8gcG9zdCB0aGlz IGFzICJwbGFpbiANCj4gdGV4dCIuLi5ncnJoLi4uIHNvIG11Y2ggZm9yIEFJIGZpZ3VyaW5nIHRo aXMgc3R1ZmYgb3V0Ll0NCj4NCj4NCj4gT24gVHVlLCBBcHIgMjYsIDIwMjIgYXQgOTowMCBBTSBJ Z29yIFJ1c3NraWtoIDxpcnVzc2tpa2hAbWFydmVsbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gSGkg R3JhbnQsDQo+ID4NCj4gPiBTb3JyeSBmb3IgdGhlIGRlbGF5LCBJIHdhcyBvbiB2YWNhdGlvbi4N Cj4gPiBUaGFua3MgZm9yIHdvcmtpbmcgb24gdGhpcy4NCj4NCj4gSGkgSWdvciENCj4gVmVyeSB3 ZWxjb21lISBBbmQgeWVzLCBJIHdhcyBzdGFydGluZyB0byB3b25kZXIuLi4gYnV0IEknbSBub3cg Z2xhZCANCj4gdGhhdCB5b3UgZGlkbid0IHJldmlldyB0aGVtIGJlZm9yZSB5b3UgZ290IGJhY2su IFRoZXNlIHBhdGNoZXMgYXJlIG5vIA0KPiByZWFzb24gdG8gcnVpbiBhIHBlcmZlY3RseSBnb29k IHZhY2F0aW9uLiA6KQ0KPg0KPiA+IEknbSBhZGRpbmcgaGVyZSBEbWl0cmlpLCB0byBoZWxwIG1l IHJldmlldyB0aGUgcGF0Y2hlcy4NCj4gPiBEbWl0cmlpLCBoZXJlIGlzIGEgZnVsbCBzZXJpZXM6 DQo+ID4NCj4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0 cHMtM0FfX3BhdGNod29yay5rZXJuZWwuDQo+ID4gb3JnX3Byb2plY3RfbmV0ZGV2YnBmX2NvdmVy XzIwMjIwNDE4MjMxNzQ2LjI0NjQ4MDAtMkQxLTJEZ3J1bmRsZXItNDANCj4gPiBjaA0KPiA+IHJv bWl1bS5vcmdfJmQ9RHdJRmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPUFsaUtMQlVUZzls RmM1c0lNVHpKDQo+ID4gdDggDQo+ID4gTWRQaUFnS2JzQzhJcExJSG1kWDl3Jm09MUxlTlNDSk1n WjdVa0dCbTU2RmN2TF9PemE4Vk9YNDVMRXRRZjMxcVBFMksNCj4gPiBMUSANCj4gPiBjcjVRMzZh TUlVUjJEekxoaTcmcz1mVkZ4TFBSTzhLMkRZRnBHVU9nZ2YzOG5iREZhSEtnOGFBVHNqQjFUdUIw JmU9DQo+ID4NCj4gPiBHcmFudCwgSSd2ZSByZXZpZXdlZCBhbmQgYWxzbyBxdWl0ZSBPSyB3aXRo IHBhdGNoZXMgMS00Lg0KPg0KPiBFeGNlbGxlbnQhIFxvLw0KPg0KPg0KPiA+IEZvciBwYXRjaCA1 IC0gd2h5IGRvIHlvdSB0aGluayB3ZSBuZWVkIHRoZXNlIGV4dHJhIGNvbXBhcmlzb25zIHdpdGgg c29mdHdhcmUgaGVhZC90YWlsPw0KPg0KPiBUaGUgQ2hyb21lT1Mgc2VjdXJpdHkgdGVhbSAoQ0Mn ZCkgYmVsaWV2ZXMgdGhlIGRyaXZlciBuZWVkcyB0byB2ZXJpZnkgImV4cGVjdGVkIGJlaGF2aW9y Ii4gSW4gb3RoZXIgd29yZHMsIHRoZSBkcml2ZXIgZXhwZWN0cyB0aGUgZGV2aWNlIHRvIHByb3Zp ZGUgbmV3IHZhbHVlcyBvZiB0YWlsIGluZGV4IHdoaWNoIGFyZSBiZXR3ZWVuIFt0YWlsLGhlYWQp ICgiYXZhaWxhYmxlIHRvIGZpbGwiKS4NCj4NCj4gWW91ciBxdWVzdGlvbiBtYWtlcyBtZSBjaHVj a2xlIGJlY2F1c2UgSSBhc2tlZCBleGFjdGx5IHRoZSBzYW1lIHF1ZXN0aW9uLiA6RCBFdmVyeW9u ZSBhZ3JlZXMgaXQgaXMgYSBtaW5pbXVtIHJlcXVpcmVtZW50IHRvIHZlcmlmeSB0aGUgaW5kZXgg d2FzICJpbiBib3VuZHMiLiBBbmQgSSBhZ3JlZSBpdCdzIHBydWRlbnQgdG8gdmVyaWZ5IHRoZSBk ZXZpY2UgaXMgIndlbGwgYmVoYXZlZCIgd2hlcmUgd2UgY2FuLiBJIGhhdmVuJ3QgbG9va2VkIGF0 IHRoZSBjb2RlIGVub3VnaCB0byBrbm93IHdoYXQgY291bGQgZ28gd3JvbmcgaWYsIGZvciBleGFt cGxlLCB0aGUgdGFpbCBpbmRleCBpcyBkZWNyZW1lbnRlZCBpbnN0ZWFkIG9mIGluY3JlbWVudGVk IG9yIGEgIm5leHQgZnJhZ21lbnQiIGluZGV4IGZhbGxzIGluIHRoZSAiYXZhaWxhYmxlIHRvIGZp bGwiIHJhbmdlLg0KPg0KPiBIb3dldmVyLCBJIGRpZG4ndCBydW4gdGhlIGZ1enplciBhbmQsIGZv ciBub3csIEknbSB0YWtpbmcgdGhlIENocm9tZU9TIHNlY3VyaXR5IHRlYW0ncyB3b3JkIHRoYXQg dGhpcyBjaGVjayBpcyBuZWVkZWQuIElmIHlvdSAob3IgRG1pdHJpaSkgZmVlbCBzdHJvbmdseSB0 aGUgZHJpdmVyIGNhbiBoYW5kbGUgbWFsaWNpb3VzIG9yIGZpcm13YXJlIGJ1Z3MgaW4gb3RoZXIg d2F5cywgSSdtIG5vdCBvZmZlbmRlZCBpZiB5b3UgZGVjbGluZSB0aGlzIHBhdGNoLiBIb3dldmVy LCBJIHdvdWxkIGJlIGN1cmlvdXMgd2hhdCB0aG9zZSBvdGhlciBtZWNoYW5pc21zIGFyZS4NCj4N Cj4gPiBGcm9tIHdoYXQgSSBzZWUgaW4gbG9naWMsIG9ubHkgdGhlIHNpemUgbGltaXRpbmcgY2hl Y2sgaXMgZW5vdWdoIHRoZXJlLi4NCj4gPg0KPiA+IE90aGVyIGV4dHJhIGNoZWNrcyBhcmUgdHJp Y2t5IGFuZCBub24gaW50dWl0aXZlLi4NCj4NCj4gWWVzLCBzb21ld2hhdCB0cmlja3kgaW4gdGhl IGNvZGUgYnV0IGNvbmNlcHR1YWxseSBzaW1wbGU6IEZvciB0aGUgUlggYnVmZmVyIHJpbmcsIElJ VUMsIFtoZWFkLHRhaWwpIGlzICJDUFUgdG8gcHJvY2VzcyIgYW5kIFt0YWlsLCBoZWFkKSBpcyAi YXZhaWxhYmxlIHRvIGZpbGwiLiBOZXcgdGFpbCB2YWx1ZXMgc2hvdWxkIGFsd2F5cyBiZSBpbiB0 aGUgbGF0dGVyIHJhbmdlLg0KPg0KPiBUaGUgdHJpY2tpbmVzcyBjb21lcyBpbiBiZWNhdXNlIHRo aXMgaXMgYSByaW5nIGJ1ZmZlciBhbmQgW3RhaWwsIGhlYWQpIGl0IGlzIGVxdWFsbHkgbGlrZWx5 IHRoYXQgaGVhZCA9PCB0YWlsICBvciBoZWFkID4gdGFpbCBudW1lcmljYWxseS4NCj4NCj4gSWYg eW91IGxpa2UsIGZlZWwgZnJlZSB0byBhZGQgY29tbWVudHMgZXhwbGFpbmluZyB0aGUgcmluZyBi ZWhhdmlvciBvciBhc2sgbWUgdG8gYWRkIHN1Y2ggYSBjb21tZW50IChhbmQgcmVwb3N0ICM1KS4g SSdtIGEgYmlnIGZhbiBvZiBkb2N1bWVudGluZyBub24taW50dWl0aXZlIHRoaW5ncyBpbiB0aGUg Y29kZS4gVGhhdCB3YXkgdGhlIG5leHQgcGVyc29uIHRvIGxvb2sgYXQgdGhlIGNvZGUgY2FuIHZl cmlmeSB0aGUgY29kZSBhbmQgdGhlIElPIGRldmljZSBkbyB3aGF0IHRoZSBjb21tZW50IGNsYWlt cy4NCj4NCj4gT24gdGhlIFJYIGJ1ZmZlciByaW5nLCBJJ20gYWxzbyB3b25kZXJpbmcgaWYgdGhl cmUgaXMgYSByYWNlIGNvbmRpdGlvbiBzdWNoIHRoYXQgdGhlIGRyaXZlciB1c2VzIHN0YWxlIHZh bHVlcyBvZiB0aGUgdGFpbCBwb2ludGVyIHdoZW4gd2Fsa2luZyB0aGUgUlggZnJhZ21lbnQgbGlz dHMgYW5kIHZhbGlkYXRpbmcgaW5kZXggdmFsdWVzLiBBYXNoYXkgYXNzdXJlcyBtZSB0aGlzIHJh Y2UgY29uZGl0aW9uIGlzIG5vdCBwb3NzaWJsZSBhbmQgSSBhbSBjb252aW5jZWQgdGhpcyBpcyB0 cnVlIGZvciB0aGUgVFggYnVmZmVyIHJpbmcgd2hlcmUgdGhlIGRyaXZlciBpcyB0aGUgInByb2R1 Y2VyIg0KPiAodGVsbHMgdGhlIGRldmljZSB3aGF0IGlzIGluIHRoZSBUWCByaW5nKS4gSSBzdGls bCBoYXZlIHRvIHJldmlldyB0aGUgUlggYnVmZmVyIGhhbmRsaW5nIGNvZGUgbW9yZSBhbmQgd2ls bCBjb250aW51ZSB0aGUgY29udmVyc2F0aW9uIHdpdGggaGltIHVudGlsIHdlIGFncmVlLg0KPg0K PiBjaGVlcnMsDQo+IGdyYW50DQo+DQo+ID4NCj4gPiBSZWdhcmRzLA0KPiA+ICAgSWdvcg0KPiA+ DQo+ID4gT24gNC8yMS8yMDIyIDk6NTMgUE0sIEdyYW50IEdydW5kbGVyIHdyb3RlOg0KPiA+ID4g RXh0ZXJuYWwgRW1haWwNCj4gPiA+DQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+IC0tDQo+ID4gPiAt LQ0KPiA+ID4gSWdvciwNCj4gPiA+IFdpbGwgeW91IGhhdmUgYSBjaGFuY2UgdG8gY29tbWVudCBv biB0aGlzIGluIHRoZSBuZWFyIGZ1dHVyZT8NCj4gPiA+IFNob3VsZCBzb21lb25lIGVsc2UgcmV2 aWV3L2ludGVncmF0ZSB0aGVzZSBwYXRjaGVzPw0KPiA+ID4NCj4gPiA+IEknbSBhc2tpbmcgc2lu Y2UgSSd2ZSBzZWVuIG5vIGNvbW1lbnRzIGluIHRoZSBwYXN0IHRocmVlIGRheXMuDQo+ID4gPg0K PiA+ID4gY2hlZXJzLA0KPiA+ID4gZ3JhbnQNCj4gPiA+DQo+ID4gPg0KPiA+ID4gT24gTW9uLCBB cHIgMTgsIDIwMjIgYXQgNDoxNyBQTSBHcmFudCBHcnVuZGxlciANCj4gPiA+IDxncnVuZGxlckBj aHJvbWl1bS5vcmc+DQo+ID4gPiB3cm90ZToNCj4gPiA+Pg0KPiA+ID4+IFRoZSBDaHJvbWUgT1Mg ZnV6emluZyB0ZWFtIHBvc3RlZCBhICJGdXp6aW5nIiByZXBvcnQgZm9yIGF0bGFudGljIA0KPiA+ ID4+IGRyaXZlciBpbiBRNCAyMDIxIHVzaW5nIENocm9tZSBPUyB2NS40IGtlcm5lbCBhbmQgIkNh YmxlIE1hdHRlcnMgDQo+ID4gPj4gVGh1bmRlcmJvbHQgMyB0byAxMCBHYiBFdGhlcm5ldCIgKGIw IHZlcnNpb24pOg0KPiA+ID4+DQo+ID4gPj4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQu Y29tL3YyL3VybD91PWh0dHBzLTNBX19kb2NzLmdvb2dsZS4NCj4gPiA+PiBjbyANCj4gPiA+PiBt X2RvY3VtZW50X2RfZV8yUEFDWC0yRDF2VDRvQ0dOaGh5LTVGQXVVcXB1Nk5HblcwTjlIRi01Rmp4 ZjJrUzdyYQ0KPiA+ID4+IE9wDQo+ID4gPj4gT2xOUnFKTmlUSEF0amlIUnRoWFlTZVhJUlRnZmVW dnNFdDBxSzlxS19wdWImZD1Ed0lCYVEmYz1uS2pXZWMyYjYNCj4gPiA+PiBSMCANCj4gPiA+PiBt T3lQYXo3eHRmUSZyPTNrVWpWUGpyUE12bGJkM3J6Z1A2M1cwZWV3dkNxNEQta3pRUnFhWEhPcVUm bT1Rb3hSOA0KPiA+ID4+IFdvIA0KPiA+ID4+IFFRLWhwV3VfdFRoUXlkUDMtNnprUldBQ3ZSbWpf N2FZMXFvMkZHNkRkUGRJODZ2QVlyZktRRk1IWCZzPTYyMGpxDQo+ID4gPj4gZVMgdlFyR2c2YW90 STM1Y1d3UXBqYUw5NHM3VEZlRmgyY1lTeXZBJmU9DQo+ID4gPj4NCj4gPiA+PiBJdCBlc3NlbnRp YWxseSBkZXNjcmliZXMgZm91ciBwcm9ibGVtczoNCj4gPiA+PiAxKSB2YWxpZGF0ZSByeGRfd2It Pm5leHRfZGVzY19wdHIgYmVmb3JlIHBvcHVsYXRpbmcgYnVmZi0+bmV4dA0KPiA+ID4+IDIpICJm cmFnWzBdIG5vdCBpbml0aWFsaXplZCIgY2FzZSBpbiBhcV9yaW5nX3J4X2NsZWFuKCkNCj4gPiA+ PiAzKSBsaW1pdCBpdGVyYXRpb25zIGhhbmRsaW5nIGZyYWdtZW50cyBpbiBhcV9yaW5nX3J4X2Ns ZWFuKCkNCj4gPiA+PiA0KSB2YWxpZGF0ZSBod19oZWFkXyBpbiBod19hdGxfYjBfaHdfcmluZ190 eF9oZWFkX3VwZGF0ZSgpDQo+ID4gPj4NCj4gPiA+PiBJJ3ZlIGFkZGVkIG9uZSAiY2xlYW4gdXAi IGNvbnRyaWJ1dGlvbjoNCj4gPiA+PiAgICAgIm5ldDogYXRsYW50aWM6IHJlZHVjZSBzY29wZSBv ZiBpc19yc2NfY29tcGxldGUiDQo+ID4gPj4NCj4gPiA+PiBJIHRlc3RlZCB0aGUgIm9yaWdpbmFs IiBwYXRjaGVzIHVzaW5nIGNocm9tZW9zLXY1LjQga2VybmVsIGJyYW5jaDoNCj4gPiA+Pg0KPiA+ ID4+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9f Y2hyb21pdW0tMkRyDQo+ID4gPj4gZXYgDQo+ID4gPj4gaWV3Lmdvb2dsZXNvdXJjZS5jb21fcV9o YXNodGFnLTNBcGNpbmV0LTJEYXRsYW50aWMtMkQyMDIycTEtMkItMjgNCj4gPiA+PiBzdCANCj4g PiA+PiBhdHVzLTNBb3Blbi0yNTIwT1ItMjUyMHN0YXR1cy0zQW1lcmdlZC0yOSZkPUR3SUJhUSZj PW5LaldlYzJiNlIwbQ0KPiA+ID4+IE95DQo+ID4gPj4gUGF6N3h0ZlEmcj0za1VqVlBqclBNdmxi ZDNyemdQNjNXMGVld3ZDcTRELWt6UVJxYVhIT3FVJm09UW94UjhXb1ENCj4gPiA+PiBRLQ0KPiA+ ID4+IGhwV3VfdFRoUXlkUDMtNnprUldBQ3ZSbWpfN2FZMXFvMkZHNkRkUGRJODZ2QVlyZktRRk1I WCZzPTFhMVl3SnFyDQo+ID4gPj4gWS0gYmUyb0RnR0FHNW9PeVpEbnFJb2tfMnA1Ry1OOGRqbzJJ JmU9DQo+ID4gPj4NCj4gPiA+PiBUaGUgZnV6emluZyB0ZWFtIHdpbGwgcmV0ZXN0IHVzaW5nIHRo ZSBjaHJvbWVvcy12NS40IHBhdGNoZXMgYW5kIA0KPiA+ID4+IHRoZSBiMCBIVy4NCj4gPiA+Pg0K PiA+ID4+IEkndmUgZm9yd2FyZCBwb3J0ZWQgdGhvc2UgcGF0Y2hlcyB0byA1LjE4LXJjMiBhbmQg Y29tcGlsZWQgdGhlbSANCj4gPiA+PiBidXQgYW0gY3VycmVudGx5IHVuYWJsZSB0byB0ZXN0IHRo ZW0gb24gNS4xOC1yYzIga2VybmVsIChsb2dpc3RpY3MgcHJvYmxlbXMpLg0KPiA+ID4+DQo+ID4g Pj4gSSdtIGNvbmZpZGVudCBpbiBhbGwgYnV0IHRoZSBsYXN0IHBhdGNoOg0KPiA+ID4+ICAgICJu ZXQ6IGF0bGFudGljOiB2ZXJpZnkgaHdfaGVhZF8gaXMgcmVhc29uYWJsZSINCj4gPiA+Pg0KPiA+ ID4+IFBsZWFzZSB2ZXJpZnkgSSdtIG5vdCBjb25mdXNpbmcgaG93IHJpbmctPnN3X2hlYWQgYW5k IA0KPiA+ID4+IHJpbmctPnN3X3RhaWwgYXJlIHVzZWQgaW4gaHdfYXRsX2IwX2h3X3JpbmdfdHhf aGVhZF91cGRhdGUoKS4NCj4gPiA+Pg0KPiA+ID4+IENyZWRpdCBsYXJnZWx5IGdvZXMgdG8gQ2hy b21lIE9TIEZ1enppbmcgdGVhbSBtZW1iZXJzOg0KPiA+ID4+ICAgICBBYXNoYXkgU2hyaW5nYXJw dXJlLCBZaSBDaG91LCBTaGVydmluIE9sb3VtaQ0KPiA+ID4+DQo+ID4gPj4gY2hlZXJzLA0KPiA+ ID4+IGdyYW50DQo=