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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2ED7AC636CC for ; Thu, 16 Feb 2023 15:46:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230397AbjBPPqn (ORCPT ); Thu, 16 Feb 2023 10:46:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229642AbjBPPqm (ORCPT ); Thu, 16 Feb 2023 10:46:42 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 959742705; Thu, 16 Feb 2023 07:46:40 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 31GFO9Wp009146; Thu, 16 Feb 2023 15:46:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=nhSSdvndK9f/l0506ycNqJqXPSVtEzmgwerAndLDEDE=; b=qq3CHc1DkNK++dXy9e0crU3OKHAEkgmWxqKCHqg4GXTiBpMFPEY3WQp/CqU4RY0QtZnP lxisD45QJphi/Cs+QBeY4PWeZ7bPfRchsqBOOO7rMUsKrItM4d9boHJjk9XHuwJlJ7dB OZlqmNmzR/J/QYlDj//5MQTU5699p7sfaoOfzybIK9uiGonOdGp/nBGwuv15/f9Fm637 alig++D8CFxUkzvPD5z34pLUpjKEugiFJ3CPIcq79wTCjNV1Qkln7mr+Lqf68p05/+HR 4mgHHV9qJ3cx7pvakfhor0WXE/ORgrBnJc7ezzIIge2ABR2Ikpp2L6jEfVTePY3P4Xfg Vw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3np2wa3hcy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Feb 2023 15:46:33 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 31GEfVrv032519; Thu, 16 Feb 2023 15:46:33 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2108.outbound.protection.outlook.com [104.47.70.108]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3np1f8t007-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Feb 2023 15:46:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=boFkbXh/uuiKGt3ddLNq0Aa9z3cCe3UVYXvjyPTRgKRqZt1wU8HNMomhvD9HpZQeZmjl99tFj1Mrrr7idnPsfkURV5Z195KAfsRAFc4rqmP2tmCrBrYN0Et8cOXoGWCo0uu1hEK4i9Ax3HNBSIJnPALVikMrZtBBb0LUuMR6bwLi9KEWYALlY2sXG8YnCvDd1qpbKebUFIFtzbwb2vK90i8rbn1e4I7Byij3KIccUwYCfrrLpWg50+Mf5rev6mVpOu3hUZP5GQLt8GTJ3fYrSO3WbdXPPirIsHZQSl/TALE8ett/hrJphuQeZL2qptoP8VQpK0im4IsEYBQz04V9Gw== 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=nhSSdvndK9f/l0506ycNqJqXPSVtEzmgwerAndLDEDE=; b=bKb0FSA9zQ/mwM4WW+Ov09HVWvvhpmcVo6rEz4Zm9xrHPC2RoOL2VRF7BrfH3Xa0r8ieuwPRkR3RZy5ejjpqbx00v2bg21bGQcIec1NP+fqCTSqerXqV5+SzDh5H70Ci8trfOBBy/b92QriHQtLK5SrCEP/qRNzC7kQ2svaeUIVgeM2tfb4WawAhrhYYtgqfca0y0to920q4lU/4Sm6fisk/7WqDmrMDiNBfgLhKyUly0XNPSVwjp3IGKClF7yZp3WFi96niRlyG3IVHMTHEoekpdzU7JIpxHYSzfSB5RgWM0IfL5OKBn2xFkDG5MQDV+79Z9/ld+2b9U0TpqS2hdg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nhSSdvndK9f/l0506ycNqJqXPSVtEzmgwerAndLDEDE=; b=S0QJAud2zY0MtfSztxEPap7PZR2YOAzeBjpbaPl4ygdnRQzUQFz6eelf3TKfzE43WARe379G7F5yJp/v05WYtBstFYOMLrurFwrk3ebqeLsWlc8/NybiMlIMxWhk/+yuWGoDU++Grbmdl47xE0Z8nLlKRh33OR7dfsyHcm059to= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by DM6PR10MB4266.namprd10.prod.outlook.com (2603:10b6:5:210::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.6; Thu, 16 Feb 2023 15:46:30 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::2a7c:497e:b785:dc06]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::2a7c:497e:b785:dc06%8]) with mapi id 15.20.6134.006; Thu, 16 Feb 2023 15:46:30 +0000 From: Allison Henderson To: "djwong@kernel.org" CC: Catherine Hoang , "david@fromorbit.com" , "willy@infradead.org" , "linux-xfs@vger.kernel.org" , Chandan Babu , "linux-fsdevel@vger.kernel.org" , "hch@infradead.org" Subject: Re: [PATCH 09/14] xfs: document online file metadata repair code Thread-Topic: [PATCH 09/14] xfs: document online file metadata repair code Thread-Index: AQHY1oyDqUs2G0E4WUyKWckaqCLQxK7SjpKA Date: Thu, 16 Feb 2023 15:46:30 +0000 Message-ID: References: <166473478338.1082796.8807888906305023929.stgit@magnolia> <166473478486.1082796.11670617428892270355.stgit@magnolia> In-Reply-To: <166473478486.1082796.11670617428892270355.stgit@magnolia> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR10MB4306:EE_|DM6PR10MB4266:EE_ x-ms-office365-filtering-correlation-id: 26b76723-e68e-4b42-7744-08db1034f8ec x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Hp+haF3PGYi2D+THCEeAY8l5N3xF7Y5YeMsBwhcqHA6ujI4Nx9TqCbqhbQZru2/aT3ozS1PxdaTjg1eqSZlwsIk5lVcWupXZbYjbBVWeBE6N57JSkw7XozXthyjqUCL3V5mpPgEKtTDBHGvp5H86BRR6saFJsj3yhM1564mb5hqkySXJ57KDZ5oY4eLi0UrqdwF+uRCkXDEo0FCEFrIZdI5ITnA6BWOlXlPwSKehANIqgRmeHfJs1+dBIOMemIaXKV4QxjjTaL6FsbrmZoDYjDaJShhTsYKepFHvg4MBwjGeHBEZXziPYXxHmb5NCaJhKm2W4OJn3UgiLmIswnIyqG7Dsk+s37gFu4Gvub8BAFrS7ZQmIIBDvipafuwl0m2XkmH3nIGSdRuwCL5d7ewktOIJp3ZUUYn1srsfAmdx9DwBIn0mmUSus3r1e/ddjrc3kILLD4nIyLFRlExEhvwGCwW+L/6QoYNsSnCDM3lhdRpA3XzD3OFalUW/DlzEdOGXuBJEODAL/2JyMSJRAK0YXFQuvd0h3oeieTxn+2pQ6ScXidvXw2HtW9/wYMFfhZ6uXC1B9RyKx+mywilbScOkPTPcOFA2Hhs+fzbKKy2kxjQFQg3Q8cI0yxpg+OMVsuaQ/JEeWOEYGVVhzt6hMTuJYRi7jdEPdS3g30k483Q9tTBTkoLJktJBYabZK/Rxl6iw x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(39860400002)(376002)(366004)(346002)(396003)(136003)(451199018)(86362001)(54906003)(316002)(966005)(38100700002)(8936002)(5660300002)(44832011)(38070700005)(2906002)(76116006)(66946007)(41300700001)(66446008)(66476007)(66556008)(4326008)(8676002)(64756008)(6916009)(2616005)(6486002)(6512007)(71200400001)(186003)(6506007)(36756003)(26005)(478600001)(122000001)(66899018)(83380400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NDI3aWxTeTQ0VmJoN1Jla09QbjJ1MThCdTM2UGFJVmlIa3RCMUNXNTVRTUtF?= =?utf-8?B?Mnl6b3N4UDZNY25STDV0LzFFNmYyMnY1djArUVNhNy9saE1PT1NGM0wwdkI2?= =?utf-8?B?SXRRSG9rYXVjellzUE1WUXJ2Tnovald3V1dHS1EySk1JNUhrdEtXbDNxckFM?= =?utf-8?B?TnErOFdqcnQ2TUkxek5nQ2F0NFRSb1AxTFZXa0lBcFFPWGxRTm5ydGJmaGQ4?= =?utf-8?B?TjNhYU1mb25XdnRGdjgrWHU5STJPMlROdmlaNWNKZWlVZ0pYVGJhUWVsOVl2?= =?utf-8?B?MHdmWFdyaWNpM1pFeWRjWTd6aVNzVmtIWUduby9GZmtiUWpnakZYcVBvN3Ba?= =?utf-8?B?TVZRZUZqdnF3Z2RnSDcvWXN1cTUvUG1qY1ZxeUJGbDJCTUhVbEUrdnpOSmZk?= =?utf-8?B?M1Y5MTNKZVRYOEJzQXI3YUVQaFhEeEZhdGhNSGovUDRpVkV5UTVlTlJuOGtM?= =?utf-8?B?bUplTlZPK3Q5a2huMEJkZG5vZFFPbEthQk00NmJzajZJUFZ3Mkk2Vmg1OWFj?= =?utf-8?B?L3BuamNRUi9qWUl3U2t0RHJVcmdLK21oeU16RUozYjk2eVhOUm9zc3NnNTU0?= =?utf-8?B?eDZ5WExzcXlqbW1oSGZRdGl6TTFPWnpjUGI5cHRoZnJpdWZrQW4ybk90alIr?= =?utf-8?B?STNzRDJUTzJpRHl3ZTZKa25SN0tMRVE0T2VSMFBsVDVpZVhPVWFIWVFsNERq?= =?utf-8?B?cG8vTHFuMUZQLzRpZkpzSzh2dEdKTzRraGs3Tlowc2U3Q0JqeG1EZHR0dDZP?= =?utf-8?B?YXQrOTNEK2JvQVFRMjV3b1BTdC82Sys3Zkw0NEErcVhOTTk2MHJMZkMwRnE0?= =?utf-8?B?ZHBOV2ppTkhyNGh0UlpTNDNud1c5enh5TEx4UjkxOC9aRzlzRVNvcjQ4NzQy?= =?utf-8?B?bW5jaFRjVHRxL0NZTVE3TW5pOFgwRmZKVUQ1SytPM2lGTnJkMUxTSW5CSXN4?= =?utf-8?B?Sml1Uk1YQzVQdERyNlRNZFJPOVQ0UFRDNGhqaHVxcUV5Z3FjaVV4OUUyblAr?= =?utf-8?B?TEtWVjFNL2gzQTVaeWgrMEVBclRTRHdmaHNCMy9MWmNTZWkvaU9NMm1ML0Jj?= =?utf-8?B?YytLVFlMeXJud2l5ZDR0MjlxSmRVWU1lOEtXQWk3NWNZeXlUMnZCb1M1VDIr?= =?utf-8?B?UldWSG1wT3N0MlFrU0NYeGFXNlVPQStUMmtoOXVBRVdzbm9zUm44Q0JFTGVk?= =?utf-8?B?VDVlai80M2UvYzdaQVR2aEt4dkFpYnQ5bWdlOVRPNG5xYlgxWVlBbW1zbWF2?= =?utf-8?B?ajI0R1pkOTBwQm8rdmRNMzNiWEdpS1ZMOVpiaTZnV2pyMlR4TTlzK01jMXVO?= =?utf-8?B?WDIxaWU3bHcvMWRwZlgrNVpuK2E2TnRLK2I5dkRUdWp2SzdVdFljNThOL1Mr?= =?utf-8?B?NFJFd3dxcE5NKzNzRDE3TWEweEtsbmZFV0p4eDFzQVgxQTFrbmREaXVtdThU?= =?utf-8?B?bFQwbHFPYWpvV2RQUW9Gc0IrTm9HL0hOeGdZeGd2N2YvNG9XdWRoMHcvZmg4?= =?utf-8?B?N1o1Ym1NZ0JIdGN0L3F1UVhzNDBWZnV2M0I0MjRsUUw2Sm5yMlFlTjhsVmdY?= =?utf-8?B?VmRGRno4QndzdjhjdkxSR1RVWU45OHBOaDZkRWtYdzVJYVl2SDYwcy85Mmpy?= =?utf-8?B?YXVWZlpRL0Z2TG1aQmdETjllZzNXa1g1WjlOa3F0L2FHS01UdzlqQkxEd2tw?= =?utf-8?B?UmhRdVhlQVkrVmYwRWwvRWdxckhJM2JNemJlQklRK3AxVXhkQzEzM2hweGhy?= =?utf-8?B?TVBnbWFBZi9yYSsrK20zdWlycnBOZUxrV3FocjgzZ1YyVDJVVHJ5OXhZaWFJ?= =?utf-8?B?UURhaHFMNkk0YVNZdmxRVDd4dkxicjNHVVBuUmpJbU1kNzhzWlQ1YnFrUzh5?= =?utf-8?B?SStiajBYSG4wR3NIYURyeHQyZ3FQeElqQ055R0JqWmQ5TndLeFZQQ1I3dkZw?= =?utf-8?B?NU5KRHRTVG0rTytLd3ZKcWpJdDhvYTJCNzNzNXdKajhxb3htZXZIWnZVZ0Fp?= =?utf-8?B?VU5HakNTSnNQZzZOSkJxQmFwcmJscXJ1SnZ3QmhQY1V3SzlzLzh2TVJwU2hi?= =?utf-8?B?eUJHUVZQcStwalhkY01hUUpCRjBkWDdCVk5va2c2cEowdlpRcVFzS2RsYTdQ?= =?utf-8?B?Ym93SUhsRkdaVTJDNGVtRVRIcmxDS1NVdjcyS2xhVm5jSlRNVFp5VktMZ3Jj?= =?utf-8?Q?9WH2nv3qai8hOQW/5PMR02s=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: S982EHlDXDD0ckVjpV1q+8arfgFPpHckRidLzbr55ZUmOJziH6szwhxO/YesGOqE6AZjlGrnnvOoDwZoOkfxwHOvGlBe+3piK9zO9CyaxICzhBExOLN1/2Ol7Q8swvrTAvYEJDz5moe+1t8ep61Um+xXIRRXjwR43pE71vEaqOkUuZji+ii/S2BF6nh8Z1aXNuZJMqnbzwpY4YKA3F7ESH9MRqdvnPyopSkXyrFtLCJU7QVkkK9YJPYp1mrOTDd93PWaD0qr/IFVOk5iDJE8o4mCtXSbrNrv7IFsyYdrtiORYgjrTWtPajoiKYeO0Bsn0q1DRejQoG45X9SUQMsRO4MhRqxeNsz+qsSIY2DDVFhLvDJuDW2RKERoDlCj90OjIqea3aq5tkWwZaN5H5IeagPJhyDHM5Rr0whzcWCYR5DBMXmIItKQmn6A9YLVUn7Eg2+xh7hHjVt4d0s5otj1s3Z3jZpBmMMIKeTTfrP5YcbGmZ6DOkdleBUeRM8sEDDgZj/FlYE5Kc8wF8DzeYmWhTW5IYlcO3MUo8dtJzmfJq8OM/hypVc8dWqzyEN+7XJHQOoptZa+PgqzPk0qmRzXnvWKrgPqTs4C2JUFfJ3yuCnKg2ZVCrGkhGWydZ/QtiNepaWXK/uTOaxxWdlbKEyAhW0hCuqJRAYyrwWKncNsGFGNQS17VTT08jcf/gFutKajrA324i2x2hLlEjfoHKTfOv1vT/s85F+Rx0+AVMsHXKwEF+AkUE4KWKqpw7wqlMlmuWNkpjzutduJP2PXusi5S8X+c9EkEAXsGvghmpQnnXV4Hfo2lXDHLB5FcmsN3Skm0wHO/0GNCx5jq8A0O3STBcG9csiycBdZi+piM3s24v0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26b76723-e68e-4b42-7744-08db1034f8ec X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2023 15:46:30.3178 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GFTR1Pk8wB3BQTYT80/elZLVN7vMt6NeW+6RPBiAxIdRbuuPjGIVn1rIj4YU9TMavQ1Y998PHGfJcxIZofUdovCMiIKW6H4UD8rYJ+2H15U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4266 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.170.22 definitions=2023-02-16_12,2023-02-16_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 mlxscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302160136 X-Proofpoint-GUID: Qaafh55wgvLp2EmtbRnDGYjX_Y3_EMg1 X-Proofpoint-ORIG-GUID: Qaafh55wgvLp2EmtbRnDGYjX_Y3_EMg1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org T24gU3VuLCAyMDIyLTEwLTAyIGF0IDExOjE5IC0wNzAwLCBEYXJyaWNrIEouIFdvbmcgd3JvdGU6 DQo+IEZyb206IERhcnJpY2sgSi4gV29uZyA8ZGp3b25nQGtlcm5lbC5vcmc+DQo+IA0KPiBBZGQg dG8gdGhlIGZpZnRoIGNoYXB0ZXIgb2YgdGhlIG9ubGluZSBmc2NrIGRlc2lnbiBkb2N1bWVudGF0 aW9uLA0KPiB3aGVyZQ0KPiB3ZSBkaXNjdXNzIHRoZSBkZXRhaWxzIG9mIHRoZSBkYXRhIHN0cnVj dHVyZXMgYW5kIGFsZ29yaXRobXMgdXNlZCBieQ0KPiB0aGUNCj4ga2VybmVsIHRvIHJlcGFpciBm aWxlIG1ldGFkYXRhLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogRGFycmljayBKLiBXb25nIDxkandv bmdAa2VybmVsLm9yZz4NCj4gLS0tDQo+IMKgLi4uL2ZpbGVzeXN0ZW1zL3hmcy1vbmxpbmUtZnNj ay1kZXNpZ24ucnN0wqDCoMKgwqDCoMKgwqDCoCB8wqAgMTUwDQo+ICsrKysrKysrKysrKysrKysr KysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDE1MCBpbnNlcnRpb25zKCspDQo+IA0KPiANCj4gZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMveGZzLW9ubGluZS1mc2NrLWRlc2ln bi5yc3QNCj4gYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3hmcy1vbmxpbmUtZnNjay1kZXNp Z24ucnN0DQo+IGluZGV4IGM0MWYwODk1NDlhMC4uMTA3MDlkYzc0ZGNiIDEwMDY0NA0KPiAtLS0g YS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3hmcy1vbmxpbmUtZnNjay1kZXNpZ24ucnN0DQo+ ICsrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMveGZzLW9ubGluZS1mc2NrLWRlc2lnbi5y c3QNCj4gQEAgLTI4NzIsMyArMjg3MiwxNTMgQEAgVGhlIGFsbG9jYXRpb24gZ3JvdXAgZnJlZSBi bG9jayBsaXN0IChBR0ZMKQ0KPiBpcyByZXBhaXJlZCBhcyBmb2xsb3dzOg0KPiDCoDQuIE9uY2Ug dGhlIEFHRkwgaXMgZnVsbCwgcmVhcCBhbnkgYmxvY2tzIGxlZnRvdmVyLg0KPiDCoA0KPiDCoDUu IFRoZSBuZXh0IG9wZXJhdGlvbiB0byBmaXggdGhlIGZyZWVsaXN0IHdpbGwgcmlnaHQtc2l6ZSB0 aGUgbGlzdC4NCj4gKw0KPiArSW5vZGUgUmVjb3JkIFJlcGFpcnMNCj4gKy0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICsNCj4gK0lub2RlIHJlY29yZHMgbXVzdCBiZSBoYW5kbGVkIGNhcmVmdWxseSwg YmVjYXVzZSB0aGV5IGhhdmUgYm90aA0KPiBvbmRpc2sgcmVjb3Jkcw0KPiArKCJkaW5vZGVzIikg YW5kIGFuIGluLW1lbW9yeSAoImNhY2hlZCIpIHJlcHJlc2VudGF0aW9uLg0KPiArVGhlcmUgaXMg YSB2ZXJ5IGhpZ2ggcG90ZW50aWFsIGZvciBjYWNoZSBjb2hlcmVuY3kgaXNzdWVzIGlmIG9ubGlu ZQ0KPiBmc2NrIGlzIG5vdA0KPiArY2FyZWZ1bCB0byBhY2Nlc3MgdGhlIG9uZGlzayBtZXRhZGF0 YSAqb25seSogd2hlbiB0aGUgb25kaXNrDQo+IG1ldGFkYXRhIGlzIHNvDQo+ICtiYWRseSBkYW1h Z2VkIHRoYXQgdGhlIGZpbGVzeXN0ZW0gY2Fubm90IGxvYWQgdGhlIGluLW1lbW9yeQ0KPiByZXBy ZXNlbnRhdGlvbi4NCj4gK1doZW4gb25saW5lIGZzY2sgd2FudHMgdG8gb3BlbiBhIGRhbWFnZWQg ZmlsZSBmb3Igc2NydWJiaW5nLCBpdCBtdXN0DQo+IHVzZQ0KPiArc3BlY2lhbGl6ZWQgcmVzb3Vy Y2UgYWNxdWlzaXRpb24gZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGVpdGhlciB0aGUNCj4gaW4tbWVt b3J5DQo+ICtyZXByZXNlbnRhdGlvbiAqb3IqIGEgbG9jayBvbiB3aGljaGV2ZXIgb2JqZWN0IGlz IG5lY2Vzc2FyeSB0bw0KPiBwcmV2ZW50IGFueQ0KPiArdXBkYXRlIHRvIHRoZSBvbmRpc2sgbG9j YXRpb24uDQo+ICsNCj4gK1RoZSBvbmx5IHJlcGFpcnMgdGhhdCBzaG91bGQgYmUgbWFkZSB0byB0 aGUgb25kaXNrIGlub2RlIGJ1ZmZlcnMgYXJlDQo+IHdoYXRldmVyDQo+ICtpcyBuZWNlc3Nhcnkg dG8gZ2V0IHRoZSBpbi1jb3JlIHN0cnVjdHVyZSBsb2FkZWQuDQo+ICtUaGlzIG1lYW5zIGZpeGlu ZyB3aGF0ZXZlciBpcyBjYXVnaHQgYnkgdGhlIGlub2RlIGNsdXN0ZXIgYnVmZmVyIGFuZA0KPiBp bm9kZSBmb3JrDQo+ICt2ZXJpZmllcnMsIGFuZCByZXRyeWluZyB0aGUgYGBpZ2V0YGAgb3BlcmF0 aW9uLg0KPiArSWYgdGhlIHNlY29uZCBgYGlnZXRgYCBmYWlscywgdGhlIHJlcGFpciBoYXMgZmFp bGVkLg0KPiArDQo+ICtPbmNlIHRoZSBpbi1tZW1vcnkgcmVwcmVzZW50YXRpb24gaXMgbG9hZGVk LCByZXBhaXIgY2FuIGxvY2sgdGhlDQo+IGlub2RlIGFuZCBjYW4NCj4gK3N1YmplY3QgaXQgdG8g Y29tcHJlaGVuc2l2ZSBjaGVja3MsIHJlcGFpcnMsIGFuZCBvcHRpbWl6YXRpb25zLg0KPiArTW9z dCBpbm9kZSBhdHRyaWJ1dGVzIGFyZSBlYXN5IHRvIGNoZWNrIGFuZCBjb25zdHJhaW4sIG9yIGFy ZSB1c2VyLQ0KPiBjb250cm9sbGVkDQo+ICthcmJpdHJhcnkgYml0IHBhdHRlcm5zOyB0aGVzZSBh cmUgYm90aCBlYXN5IHRvIGZpeC4NCj4gK0RlYWxpbmcgd2l0aCB0aGUgZGF0YSBhbmQgYXR0ciBm b3JrIGV4dGVudCBjb3VudHMgYW5kIHRoZSBmaWxlIGJsb2NrDQo+IGNvdW50cyBpcw0KPiArbW9y ZSBjb21wbGljYXRlZCwgYmVjYXVzZSBjb21wdXRpbmcgdGhlIGNvcnJlY3QgdmFsdWUgcmVxdWly ZXMNCj4gdHJhdmVyc2luZyB0aGUNCj4gK2ZvcmtzLCBvciBpZiB0aGF0IGZhaWxzLCBsZWF2aW5n IHRoZSBmaWVsZHMgaW52YWxpZCBhbmQgd2FpdGluZyBmb3INCj4gdGhlIGZvcmsNCj4gK2ZzY2sg ZnVuY3Rpb25zIHRvIHJ1bi4NCj4gKw0KPiArVGhlIHByb3Bvc2VkIHBhdGNoc2V0IGlzIHRoZQ0K PiArYGlub2RlDQo+ICs8DQo+IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9r ZXJuZWwvZ2l0L2Rqd29uZy94ZnMtbGludXguZ2l0Lw0KPiBsb2cvP2g9cmVwYWlyLWlub2Rlcz5g Xw0KPiArcmVwYWlyIHNlcmllcy4NCj4gKw0KPiArUXVvdGEgUmVjb3JkIFJlcGFpcnMNCj4gKy0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK1NpbWlsYXIgdG8gaW5vZGVzLCBxdW90YSByZWNv cmRzICgiZHF1b3RzIikgYWxzbyBoYXZlIGJvdGggb25kaXNrDQo+IHJlY29yZHMgYW5kDQo+ICth biBpbi1tZW1vcnkgcmVwcmVzZW50YXRpb24sIGFuZCBoZW5jZSBhcmUgc3ViamVjdCB0byB0aGUg c2FtZSBjYWNoZQ0KPiBjb2hlcmVuY3kNCj4gK2lzc3Vlcy4NCj4gK1NvbWV3aGF0IGNvbmZ1c2lu Z2x5LCBib3RoIGFyZSBrbm93biBhcyBkcXVvdHMgaW4gdGhlIFhGUyBjb2RlYmFzZS4NCj4gKw0K PiArVGhlIG9ubHkgcmVwYWlycyB0aGF0IHNob3VsZCBiZSBtYWRlIHRvIHRoZSBvbmRpc2sgcXVv dGEgcmVjb3JkDQo+IGJ1ZmZlcnMgYXJlDQo+ICt3aGF0ZXZlciBpcyBuZWNlc3NhcnkgdG8gZ2V0 IHRoZSBpbi1jb3JlIHN0cnVjdHVyZSBsb2FkZWQuDQo+ICtPbmNlIHRoZSBpbi1tZW1vcnkgcmVw cmVzZW50YXRpb24gaXMgbG9hZGVkLCB0aGUgb25seSBhdHRyaWJ1dGVzDQo+IG5lZWRpbmcNCj4g K2NoZWNraW5nIGFyZSBvYnZpb3VzbHkgYmFkIGxpbWl0cyBhbmQgdGltZXIgdmFsdWVzLg0KPiAr DQo+ICtRdW90YSB1c2FnZSBjb3VudGVycyBhcmUgY2hlY2tlZCwgcmVwYWlyZWQsIGFuZCBkaXNj dXNzZWQgc2VwYXJhdGVseQ0KPiBpbiB0aGUNCj4gK3NlY3Rpb24gYWJvdXQgOnJlZjpgbGl2ZSBx dW90YWNoZWNrIDxxdW90YWNoZWNrPmAuDQo+ICsNCj4gK1RoZSBwcm9wb3NlZCBwYXRjaHNldCBp cyB0aGUNCj4gK2BxdW90YQ0KPiArPA0KPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20v bGludXgva2VybmVsL2dpdC9kandvbmcveGZzLWxpbnV4LmdpdC8NCj4gbG9nLz9oPXJlcGFpci1x dW90YT5gXw0KPiArcmVwYWlyIHNlcmllcy4NCj4gKw0KPiArLi4gX2ZzY291bnRlcnM6DQo+ICsN Cj4gK0ZyZWV6aW5nIHRvIEZpeCBTdW1tYXJ5IENvdW50ZXJzDQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICtGaWxlc3lzdGVtIHN1bW1hcnkgY291bnRlcnMgdHJh Y2sgYXZhaWxhYmlsaXR5IG9mIGZpbGVzeXN0ZW0NCj4gcmVzb3VyY2VzIHN1Y2gNCj4gK2FzIGZy ZWUgYmxvY2tzLCBmcmVlIGlub2RlcywgYW5kIGFsbG9jYXRlZCBpbm9kZXMuDQo+ICtUaGlzIGlu Zm9ybWF0aW9uIGNvdWxkIGJlIGNvbXBpbGVkIGJ5IHdhbGtpbmcgdGhlIGZyZWUgc3BhY2UgYW5k DQo+IGlub2RlIGluZGV4ZXMsDQo+ICtidXQgdGhpcyBpcyBhIHNsb3cgcHJvY2Vzcywgc28gWEZT IG1haW50YWlucyBhIGNvcHkgaW4gdGhlIG9uZGlzaw0KPiBzdXBlcmJsb2NrDQo+ICt0aGF0IHNo b3VsZCByZWZsZWN0IHRoZSBvbmRpc2sgbWV0YWRhdGEsIGF0IGxlYXN0IHdoZW4gdGhlDQo+IGZp bGVzeXN0ZW0gaGFzIGJlZW4NCj4gK3VubW91bnRlZCBjbGVhbmx5Lg0KPiArRm9yIHBlcmZvcm1h bmNlIHJlYXNvbnMsIFhGUyBhbHNvIG1haW50YWlucyBpbmNvcmUgY29waWVzIG9mIHRob3NlDQo+ IGNvdW50ZXJzLA0KPiArd2hpY2ggYXJlIGtleSB0byBlbmFibGluZyByZXNvdXJjZSByZXNlcnZh dGlvbnMgZm9yIGFjdGl2ZQ0KPiB0cmFuc2FjdGlvbnMuDQo+ICtXcml0ZXIgdGhyZWFkcyByZXNl cnZlIHRoZSB3b3JzdC1jYXNlIHF1YW50aXRpZXMgb2YgcmVzb3VyY2VzIGZyb20NCj4gdGhlDQo+ ICtpbmNvcmUgY291bnRlciBhbmQgZ2l2ZSBiYWNrIHdoYXRldmVyIHRoZXkgZG9uJ3QgdXNlIGF0 IGNvbW1pdCB0aW1lLg0KPiArSXQgaXMgdGhlcmVmb3JlIG9ubHkgbmVjZXNzYXJ5IHRvIHNlcmlh bGl6ZSBvbiB0aGUgc3VwZXJibG9jayB3aGVuDQo+IHRoZQ0KPiArc3VwZXJibG9jayBpcyBiZWlu ZyBjb21taXR0ZWQgdG8gZGlzay4NCj4gKw0KPiArVGhlIGxhenkgc3VwZXJibG9jayBjb3VudGVy IGZlYXR1cmUgaW50cm9kdWNlZCBpbiBYRlMgdjUgdG9vayB0aGlzDQo+IGV2ZW4gZnVydGhlcg0K PiArYnkgdHJhaW5pbmcgbG9nIHJlY292ZXJ5IHRvIHJlY29tcHV0ZSB0aGUgc3VtbWFyeSBjb3Vu dGVycyBmcm9tIHRoZQ0KPiBBRyBoZWFkZXJzLA0KPiArd2hpY2ggZWxpbWluYXRlZCB0aGUgbmVl ZCBmb3IgbW9zdCB0cmFuc2FjdGlvbnMgZXZlbiB0byB0b3VjaCB0aGUNCj4gc3VwZXJibG9jay4N Cj4gK1RoZSBvbmx5IHRpbWUgWEZTIGNvbW1pdHMgdGhlIHN1bW1hcnkgY291bnRlcnMgaXMgYXQg ZmlsZXN5c3RlbQ0KPiB1bm1vdW50Lg0KPiArVG8gcmVkdWNlIGNvbnRlbnRpb24gZXZlbiBmdXJ0 aGVyLCB0aGUgaW5jb3JlIGNvdW50ZXIgaXMgaW1wbGVtZW50ZWQNCj4gYXMgYQ0KPiArcGVyY3B1 IGNvdW50ZXIsIHdoaWNoIG1lYW5zIHRoYXQgZWFjaCBDUFUgaXMgYWxsb2NhdGVkIGEgYmF0Y2gg b2YNCj4gYmxvY2tzIGZyb20gYQ0KPiArZ2xvYmFsIGluY29yZSBjb3VudGVyIGFuZCBjYW4gc2F0 aXNmeSBzbWFsbCBhbGxvY2F0aW9ucyBmcm9tIHRoZQ0KPiBsb2NhbCBiYXRjaC4NCj4gKw0KPiAr VGhlIGhpZ2gtcGVyZm9ybWFuY2UgbmF0dXJlIG9mIHRoZSBzdW1tYXJ5IGNvdW50ZXJzIG1ha2Vz IGl0DQo+IGRpZmZpY3VsdCBmb3INCj4gK29ubGluZSBmc2NrIHRvIGNoZWNrIHRoZW0sIHNpbmNl IHRoZXJlIGlzIG5vIHdheSB0byBxdWllc2NlIGEgcGVyY3B1DQo+IGNvdW50ZXINCj4gK3doaWxl IHRoZSBzeXN0ZW0gaXMgcnVubmluZy4NCj4gK0FsdGhvdWdoIG9ubGluZSBmc2NrIGNhbiByZWFk IHRoZSBmaWxlc3lzdGVtIG1ldGFkYXRhIHRvIGNvbXB1dGUgdGhlDQo+IGNvcnJlY3QNCj4gK3Zh bHVlcyBvZiB0aGUgc3VtbWFyeSBjb3VudGVycywgdGhlcmUncyBubyB3YXkgdG8gaG9sZCB0aGUg dmFsdWUgb2YNCj4gYSBwZXJjcHUNCj4gK2NvdW50ZXIgc3RhYmxlLCBzbyBpdCdzIHF1aXRlIHBv c3NpYmxlIHRoYXQgdGhlIGNvdW50ZXIgd2lsbCBiZSBvdXQNCj4gb2YgZGF0ZSBieQ0KPiArdGhl IHRpbWUgdGhlIHdhbGsgaXMgY29tcGxldGUuDQo+ICtFYXJsaWVyIHZlcnNpb25zIG9mIG9ubGlu ZSBzY3J1YiB3b3VsZCByZXR1cm4gdG8gdXNlcnNwYWNlIHdpdGggYW4NCj4gaW5jb21wbGV0ZQ0K PiArc2NhbiBmbGFnLCBidXQgdGhpcyBpcyBub3QgYSBzYXRpc2Z5aW5nIG91dGNvbWUgZm9yIGEg c3lzdGVtDQo+IGFkbWluaXN0cmF0b3IuDQo+ICtGb3IgcmVwYWlycywgdGhlIGluLW1lbW9yeSBj b3VudGVycyBtdXN0IGJlIHN0YWJpbGl6ZSB3aGlsZSB3YWxraW5nDQo+IHRoZQ0Kbml0OiBzdGFi bGlsaXplZA0KDQo+ICtmaWxlc3lzdGVtIG1ldGFkYXRhIHRvIGdldCBhbiBhY2N1cmF0ZSByZWFk aW5nIGFuZCBpbnN0YWxsIGl0IGluIHRoZQ0KPiBwZXJjcHUNCj4gK2NvdW50ZXIuDQo+ICsNCj4g K1RvIHNhdGlzZnkgdGhpcyByZXF1aXJlbWVudCwgb25saW5lIGZzY2sgbXVzdCBwcmV2ZW50IG90 aGVyIHByb2dyYW1zDQo+IGluIHRoZQ0KPiArc3lzdGVtIGZyb20gaW5pdGlhdGluZyBuZXcgd3Jp dGVzIHRvIHRoZSBmaWxlc3lzdGVtLCBpdCBtdXN0IGRpc2FibGUNCj4gYmFja2dyb3VuZA0KPiAr Z2FyYmFnZSBjb2xsZWN0aW9uIHRocmVhZHMsIGFuZCBpdCBtdXN0IHdhaXQgZm9yIGV4aXN0aW5n IHdyaXRlcg0KPiBwcm9ncmFtcyB0bw0KPiArZXhpdCB0aGUga2VybmVsLg0KPiArT25jZSB0aGF0 IGhhcyBiZWVuIGVzdGFibGlzaGVkLCBzY3J1YiBjYW4gd2FsayB0aGUgQUcgZnJlZSBzcGFjZQ0K PiBpbmRleGVzLCB0aGUNCj4gK2lub2RlIGJ0cmVlcywgYW5kIHRoZSByZWFsdGltZSBiaXRtYXAg dG8gY29tcHV0ZSB0aGUgY29ycmVjdCB2YWx1ZQ0KPiBvZiBhbGwNCj4gK2ZvdXIgc3VtbWFyeSBj b3VudGVycy4NCj4gK1RoaXMgaXMgdmVyeSBzaW1pbGFyIHRvIGEgZmlsZXN5c3RlbSBmcmVlemUu DQo+ICsNCj4gK1RoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uIHVzZWQgdGhlIGFjdHVhbCBWRlMg ZmlsZXN5c3RlbSBmcmVlemUNCj4gbWVjaGFuaXNtIHRvDQo+ICtxdWllc2NlIGZpbGVzeXN0ZW0g YWN0aXZpdHkuDQoNCg0KPiArV2l0aCB0aGUgZmlsZXN5c3RlbSBmcm96ZW4sIGl0IGlzIHBvc3Np YmxlIHRvIHJlc29sdmUgdGhlIGNvdW50ZXINCj4gdmFsdWVzIHdpdGgNCj4gK2V4YWN0IHByZWNp c2lvbiwgYnV0IHRoZXJlIGFyZSBtYW55IHByb2JsZW1zIHdpdGggY2FsbGluZyB0aGUgVkZTDQo+ IG1ldGhvZHMNCj4gK2RpcmVjdGx5Og0KPiArDQo+ICstIE90aGVyIHByb2dyYW1zIGNhbiB1bmZy ZWV6ZSB0aGUgZmlsZXN5c3RlbSB3aXRob3V0IG91ciBrbm93bGVkZ2UuDQo+ICvCoCBUaGlzIGxl YWRzIHRvIGluY29ycmVjdCBzY2FuIHJlc3VsdHMgYW5kIGluY29ycmVjdCByZXBhaXJzLg0KPiAr DQo+ICstIEFkZGluZyBhbiBleHRyYSBsb2NrIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gdGhhd2lu ZyB0aGUgZmlsZXN5c3RlbQ0KPiByZXF1aXJlZA0KPiArwqAgdGhlIGFkZGl0aW9uIG9mIGEgYGAt PmZyZWV6ZV9zdXBlcmBgIGZ1bmN0aW9uIHRvIHdyYXANCj4gYGBmcmVlemVfZnMoKWBgLg0KPiAr wqAgVGhpcyBpbiB0dXJuIGNhdXNlZCBvdGhlciBzdWJ0bGUgcHJvYmxlbXMgYmVjYXVzZSBpdCB0 dXJucyBvdXQNCj4gdGhhdCB0aGUgVkZTDQo+ICvCoCBgYGZyZWV6ZV9zdXBlcmBgIGFuZCBgYHRo YXdfc3VwZXJgYCBmdW5jdGlvbnMgY2FuIGRyb3AgdGhlIGxhc3QNCj4gcmVmZXJlbmNlIHRvDQo+ ICvCoCB0aGUgVkZTIHN1cGVyYmxvY2ssIGFuZCBhbnkgc3Vic2VxdWVudCBhY2Nlc3MgYmVjb21l cyBhIFVBRiBidWchDQo+ICvCoCBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGZpbGVzeXN0ZW0gaXMg dW5tb3VudGVkIHdoaWxlIHRoZQ0KPiB1bmRlcmx5aW5nIGJsb2NrDQo+ICvCoCBkZXZpY2UgaGFz IGZyb3plbiB0aGUgZmlsZXN5c3RlbS4NCj4gK8KgIFRoaXMgcHJvYmxlbSBjb3VsZCBiZSBzb2x2 ZWQgYnkgZ3JhYmJpbmcgZXh0cmEgcmVmZXJlbmNlcyB0byB0aGUNCj4gc3VwZXJibG9jaywNCj4g K8KgIGJ1dCBpdCBmZWx0IHN1Ym9wdGltYWwgZ2l2ZW4gdGhlIG90aGVyIGluYWRlcXVhY2llcyBv ZiB0aGlzDQo+IGFwcHJvYWNoOg0KPiArDQo+ICstIFRoZSBsb2cgbmVlZCBub3QgYmUgcXVpZXNj ZWQgdG8gY2hlY2sgdGhlIHN1bW1hcnkgY291bnRlcnMsIGJ1dCBhDQo+IFZGUyBmcmVlemUNCj4g K8KgIGluaXRpYXRlcyBvbmUgYW55d2F5Lg0KPiArwqAgVGhpcyBhZGRzIHVubmVjZXNzYXJ5IHJ1 bnRpbWUgdG8gbGl2ZSBmc2NvdW50ZXIgZnNjayBvcGVyYXRpb25zLg0KPiArDQo+ICstIFF1aWVz Y2luZyB0aGUgbG9nIG1lYW5zIHRoYXQgWEZTIGZsdXNoZXMgdGhlIChwb3NzaWJseSBpbmNvcnJl Y3QpDQo+IGNvdW50ZXJzIHRvDQo+ICvCoCBkaXNrIGFzIHBhcnQgb2YgY2xlYW5pbmcgdGhlIGxv Zy4NCj4gKw0KPiArLSBBIGJ1ZyBpbiB0aGUgVkZTIG1lYW50IHRoYXQgZnJlZXplIGNvdWxkIGNv bXBsZXRlIGV2ZW4gd2hlbg0KPiBzeW5jX2ZpbGVzeXN0ZW0NCj4gK8KgIGZhaWxzIHRvIGZsdXNo IHRoZSBmaWxlc3lzdGVtIGFuZCByZXR1cm5zIGFuIGVycm9yLg0KPiArwqAgVGhpcyBidWcgd2Fz IGZpeGVkIGluIExpbnV4IDUuMTcuDQo+ICsNCj4gK1RoZSBhdXRob3LCoA0KDQpJIHRoaW5rIHRo ZSBhYm92ZSBpcyBhIGNhbmRpZGF0ZSBmb3IgY3VsbGluZyBvciBtYXliZSB0aGUgc2lkZSBiYXIg aWYNCnlvdSByZWFsbHkgZmVlbCB0aGUgbmVlZCB0byBrZWVwIGl0LiAgQXNpZGUgZnJvbSB0aGUg ZmFjdCB0aGF0IGl0IHdhcw0Kc2ltcGx5IGJ1ZyBwcm9uZSwgaXQgbWFrZXMgc2Vuc2UgdG8gYXZv aWQgYW4gZW50aXJlIGZyZWV6ZSBpZiB3ZSBjYW4NCmhlbHAgaXQuICBJIHRoaW5rIGl0IHdvdWxk IGJlIGZpbmUgdG8ganVzdCBwb3AgaW50byB0aGUgY3VycmVudA0KcHJvcG9zaXRpb246DQoNCiJI b3dldmVyLCB0aGlzIGFwcHJvYWNoIHdhcyBmb3VuZCB0byBiZSBib3RoIGNvc3RseSBhbmQgdW5z dGFibGUuIA0KTGF0ZXIgb3B0aW1pemF0aW9ucyBvZiBvZnNjayBlc3RhYmxpc2hlZCAuLi4iDQo+ IGVzdGFibGlzaGVkIHRoYXQgdGhlIG9ubHkgY29tcG9uZW50IG9mIG9ubGluZSBmc2NrIHRoYXQg cmVxdWlyZXMgdGhlDQo+ICthYmlsaXR5IHRvIGZyZWV6ZSB0aGUgZmlsZXN5c3RlbSBpcyB0aGUg ZnNjb3VudGVyIHNjcnViYmVyLCBzbyB0aGUNCj4gY29kZSBmb3INCj4gK3RoaXMgY291bGQgYmUg bG9jYWxpemVkIHRvIHRoYXQgc291cmNlIGZpbGUuDQo+ICtmc2NvdW50ZXIgZnJlZXplIGJlaGF2 ZXMgdGhlIHNhbWUgYXMgdGhlIFZGUyBmcmVlemUgbWV0aG9kLCBleGNlcHQ6DQo+ICsNCj4gKy0g VGhlIGZpbmFsIGZyZWV6ZSBzdGF0ZSBpcyBzZXQgb25lIGhpZ2hlciB0aGFuDQo+IGBgU0JfRlJF RVpFX0NPTVBMRVRFYGAgdG8NCj4gK8KgIHByZXZlbnQgb3RoZXIgdGhyZWFkcyBmcm9tIHRoYXdp bmcgdGhlIGZpbGVzeXN0ZW0uDQo+ICsNCj4gKy0gSXQgZG9lcyBub3QgcXVpZXNjZSB0aGUgbG9n Lg0KPiArDQo+ICtXaXRoIHRoaXMgY29kZSBpbiBwbGFjZSwgaXQgaXMgbm93IHBvc3NpYmxlIHRv IHBhdXNlIHRoZSBmaWxlc3lzdGVtDQo+IGZvciBqdXN0DQo+ICtsb25nIGVub3VnaCB0byBjaGVj ayBhbmQgY29ycmVjdCB0aGUgc3VtbWFyeSBjb3VudGVycy4NCj4gKw0KPiArVGhlIHByb3Bvc2Vk IHBhdGNoc2V0IGlzIHRoZQ0KPiArYHN1bW1hcnkgY291bnRlciBjbGVhbnVwDQo+ICs8DQo+IGh0 dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2Rqd29uZy94ZnMt bGludXguZ2l0Lw0KPiBsb2cvP2g9cmVwYWlyLWZzY291bnRlcnM+YF8NCj4gK3Nlcmllcy4NCj4g DQoNCk90aGVyd2lzZSBsb29rcyBnb29kLiAgOi0pDQpBbGxpc29uDQoNCg==