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 5B82DC6FA92 for ; Mon, 26 Sep 2022 21:49:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230113AbiIZVtw (ORCPT ); Mon, 26 Sep 2022 17:49:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34124 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229547AbiIZVtv (ORCPT ); Mon, 26 Sep 2022 17:49:51 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E1DF7FE57 for ; Mon, 26 Sep 2022 14:49:49 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 28QKvmdB010309; Mon, 26 Sep 2022 21:49:45 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=UaIbba6Idsniy4WRBrL4bWd3yUQe/aVbAh/0SWg6sEs=; b=bTkzQdkgq8yzNAM4wp+Sm0yToIZkTTb+VHlzg8bxIGidnxCxmH8iVwupnzCfanOSluD8 uK6hlzjwFa4sTqr+ZqC4DmtEamy+z73sJ6wTowX8b6Gmn6U8yKz+g+KqIorcm6nzmmR8 ySyxrfggyCRbz7K6EbdABHel1dtPSaYA1NF3IS/PQPqDLmr3iFD/p1PhNLWYYvpf6IOj lUmof5g68Zr0ojDbEYzwBTmyYc026tdhpebh49N9u2Rr9Tso3ul0R+gXcnjkyrTCLa47 F/BuMyzyf+JA08g1MgE2mRJ/+Gs7CZe1ipWD8nUO816/K1JtxLd15nEUUhSzS2/ByrDn vQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3jst13cya2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 26 Sep 2022 21:49:45 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 28QJcl68001488; Mon, 26 Sep 2022 21:49:44 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3jtpuyw0mx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 26 Sep 2022 21:49:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eJ2dKcjOvpwEUUVbF5edQxyGjEIcwTn3AA3D3TxqJRagTW/qkkXHB8HUyV6+DWEcNWl5XLEQUmAttjmYUkxgVeSLV2XolIAAseobLru0Hv/uTjowbQ8XOSHtK7hR+ogvqCePSlflm3mrwILIZdCw0zqjV1BQVKKA/8DQETNSr4sgunU+qcyjyN0oC0VdLABlLpmZzlDYZIVr4Hl/Ls43uGsMoxTvWKzGFql/TU+aCg8TKM73XhEoqnscPlweTDhEjvqLFzXAb1T6Umnh9wemEz+Aca1VGEWdeoAtek02coYLhex3P7ynxWWAYYikossDv6JoT6Ls3ouEyllU5/rh3w== 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=UaIbba6Idsniy4WRBrL4bWd3yUQe/aVbAh/0SWg6sEs=; b=NQLWvqNNMafrJyfHhn7suAsyYcB2MIdoIzdpT3ZeGpB5Qgf8joY8PZvHEXA4s7Asq3/vHpuQ8SWCYinDUDBBTe4VM9q8jjejNlClZf8NonHYZeOR/9fmY6VJvki5idycyVvFyvEkbDtLwtQKD1xLbE9+4FgEF54luITSjQTBrt6WGHix4PuYkaDd6JKFdTR60flurcFUS0entXqVV9PZDFmoR0Zcd2ziZsyH+gyJXtqXXxIAfSZsWnmReEPQLurk4SkmBQPw9Oz/IuIvtEA1Y40OQUjZkUaR4E+/ZrwjkpgbgtKYh2iKntckWGQG/+tP0oGih9RiQmFArkNT/XZA8A== 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=UaIbba6Idsniy4WRBrL4bWd3yUQe/aVbAh/0SWg6sEs=; b=IqCwYlZKHHzcVefgHMMvYXepSBnqGxJ8NTU1xOmE6ZgoCFXXGvHWS7ceW9oUwgKesnKZqmFQV3zf+nqSFI4Cyv6ibU+w2RfDjgGaGK8Cww2CjSZDi9VoJUWT9I+hKbxb4KFGkikaTBzKsu6zCXLnn1b9EPh5ZNP+LsUD7Oy8698= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by SA2PR10MB4699.namprd10.prod.outlook.com (2603:10b6:806:118::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.26; Mon, 26 Sep 2022 21:49:42 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::1c59:e718:73e3:f1f9]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::1c59:e718:73e3:f1f9%3]) with mapi id 15.20.5654.025; Mon, 26 Sep 2022 21:49:42 +0000 From: Allison Henderson To: "djwong@kernel.org" CC: "linux-xfs@vger.kernel.org" Subject: Re: [PATCH v3 23/26] xfs: Filter XFS_ATTR_PARENT for getfattr Thread-Topic: [PATCH v3 23/26] xfs: Filter XFS_ATTR_PARENT for getfattr Thread-Index: AQHYzkaIcN085NWnhUuqrW29UEbRcK3tjwaAgAS4MIA= Date: Mon, 26 Sep 2022 21:49:42 +0000 Message-ID: <278fb4cce1eb9b7eaec97f8d382a2c12a3cd05c4.camel@oracle.com> References: <20220922054458.40826-1-allison.henderson@oracle.com> <20220922054458.40826-24-allison.henderson@oracle.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.1-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR10MB4306:EE_|SA2PR10MB4699:EE_ x-ms-office365-filtering-correlation-id: 324aff83-1733-4d38-7ad6-08daa00904e7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: K2sj1j+gTrcSkNCXdyywjvDLZB3wiY2dE9MaFKG24cM8YHGj2OgNVmui1NQwoWEtYI9vc+yKFWGc+n4c5xR0H8TklCSp3gAu/hdzO0CzO9ZkRZxxgGosY0kgXmaz3FrNmrlaA5rVBD8waVTyaUKDtup6uRL2YtATjkIJL1WsO5IVcPbqXScjj+SrnaQjyWYA6tRfiBDTYXvo5+OPlfupvuZayWPjmhYDppHfp3cuGHZp35TClNAjgk7wkEMBnTlemoE1yw20WA0M7S76ahc11V82lOTI1TYfEQ/fmx9RIxJzZeIGhZcS+Z/egR9514HKOqLPDZl38zIf5Pf1UCt2FLDYN3xaZP4CiLgWdH+aQWu/kuZBfPjvk/kqhR/G65p2YQMbEUjgXUb1lScj5h/to9nvVKEmMz0T2T8lhWu4Mss7CpYAoj40IXJTDyK6jB3FQMAXlE01fZkQEmXip3z4ebRalpgBzo8PzvD+rEnaK5/sXUHS+d8OJC4wneeK5uu0Two/WI7bUYLKtFNSI+M2JzjZQy64NqtC8b0u0clTky4K4ZfdJjfBmfReSf5gHbvOKt8zOg3KmS4Zy1aaA+os45B9017h/bEusBLUb1Zsxr+FYNacK4fVAj3lGebBsUKuG//j4zkVxBmNo6qf2/659kW0pv1c2zatgtfh1wHibQ3r7sk2Ks/ECdya4GWzRhqEaDxa6/IZfbNIDaRmhaltrV/ob690Gg69GrhOy7a4wWl5Y0fvwcma9IOhTZdogcf4USEJI5o8HdBz6HbttwuaBA== 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:(13230022)(346002)(366004)(136003)(39860400002)(376002)(396003)(451199015)(26005)(2616005)(6506007)(6512007)(2906002)(122000001)(38100700002)(86362001)(6486002)(71200400001)(44832011)(5660300002)(478600001)(36756003)(38070700005)(186003)(83380400001)(41300700001)(76116006)(8676002)(64756008)(66446008)(4326008)(66476007)(66556008)(66946007)(8936002)(6916009)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R2pYbzFoSnQ3b2ErZWdDMUZlZ3JTOVRlOHFCMWZaL3lBV1d0dE5RbmpYSU9k?= =?utf-8?B?TmJ4ZmN4UzdJalZkck9HUXBQWFZjOVhLR08zbzFudm1ISVdab2ZLa2Vac1lW?= =?utf-8?B?bElBZ3FGTTVTVXFPRWQvVWhNVXJEaXozNWxsb3QzelJwazlILy8weW9GWlZC?= =?utf-8?B?MkU1RFZBUHl3NE1XUGpUWU5uTVlmalNTVXQwQVFiYkRVYzZPU2RDaUZaamI4?= =?utf-8?B?eFRIUXJDc1lIT2JDNEpsV21zZGQya0haenh3cUcyVHN5VTUrb2IrdzZEaUh5?= =?utf-8?B?TXJBZWxJWVNLaWh5UVlXUjRwV3NpU0w1MXZib0Z5NWdGUnd5ZmFnN3JLTndP?= =?utf-8?B?aThUOGNCUTIyeC94V0pYNk80VDBNV2RUNGFXNVk5REk3Y24rMVZYL25xaEM4?= =?utf-8?B?L2ZvU3RpaUJrVjZVS09wNmNYK1lIa1cvbkliTytKazNTaDhJYmozTDExeWNv?= =?utf-8?B?cG1haStJemVmY0h1SzJCeklPL1VvMElXNUh5TWlHRmJ6Q0NEMmRCeENueWpD?= =?utf-8?B?WkNyUmNXOWVTTzNNRW5XVXNLTFBidEVicXpGN29oQU5PNjBNclpXdkpxQ1BT?= =?utf-8?B?REFJS21UWkJnYm9DbE45eDAwQWxxUUM2U0NQeFlNdVNYeDNmWUZmMkZQditE?= =?utf-8?B?NXBnZGI1MHpqMjl5elhvNTcvdG5nVm84T1dXd2xzcHIzMjQ4NWRPNlc2VmZX?= =?utf-8?B?N1J1Qk5aS0hmU3FNdFRlYlorV2Ntd2hndk0ycGZqRmFrYmNhTEVqVmZkZkJQ?= =?utf-8?B?U1Y1VmY1Z0ZpaUhieW94V05weVV3ZHh6MmhlSHJwVmVXVG15ckwxeTJCMHFi?= =?utf-8?B?RlliaDUzUXF0clFxN0tQakNDRVYrSlYyNnIraHdrVGdzc25aeW1GWDVlWFd5?= =?utf-8?B?NnRncUs0bWowKy9LZmZXVUh5bWVERS8rVjh3TlNjYkFiVHk4dDcxdVo1akpP?= =?utf-8?B?ODQvV0FBWUhqQnBjZzVoV0VUYzBRMEpCU0pvQWVLQUg5ZEV4UEcxeG54QWY1?= =?utf-8?B?ckhUWTV1M2dGUmRRbmkyTnNEMDNvWkExU3lkOStMSlFLd1RTcnBQRFhSVUlR?= =?utf-8?B?RlIwOEl0MG15anFQcXBZR09YSkp5Qm1Dc2U2eGVPeTJMa3hoalVwTUw0R3Vm?= =?utf-8?B?Tk5WSEVKQkltc3VnTmYwWkJKanAwUDZBTkpjZjYvZHZQODdneVVWRFdFYkdM?= =?utf-8?B?R0F1REttV25relEzc0YvM1RZa1VVbmVYU1UvUTA4bTcvNkMyS2h4bjF6WUFh?= =?utf-8?B?ZzZoeldsWEowMlVLREczangvU3ZyQ3B4Rjc1MlNBUnpndTlDWnJSNElyRnhL?= =?utf-8?B?K1lGcFJoREU0S0kvN0w3RWFkZUtxZEI5M3pDSWlLejczTzlVUTlvTWJIa3VT?= =?utf-8?B?VmJzWUV2UjlnV2VNY2kxd2V6VWhEdGVPOGM5NVZQZlJTNU44S3lsbUdEQ3dT?= =?utf-8?B?dVlZRWV3clJaYndlVmJPcW8xSUpPbEpSTlhiTnNqcm1aTmFQWVdqSVVjd1ph?= =?utf-8?B?bDh5cmpMb1kzVzBPd2xZTEhIRUx5L3BvbEhwVlord2EwTHZ5bXl4ejRzMXJ5?= =?utf-8?B?eGJtOWFXdDdWcDZhV2JFSnB3L0JWS2dkbDkzZlROa2dDd0Y1c1I2dTV6Uk9z?= =?utf-8?B?NjdxRFBja0tiZ1NqMkNMK29tT2pXbDVwMHp1cEcrMlJBeFV6ZlV1OEtoOTZU?= =?utf-8?B?SUtSdyttMkkrN3BIWVlaOHo3bWlFQ2lGWHNySVhPK2U0Qmpla0VpYzhlUnFi?= =?utf-8?B?WG44ekN0TElPRzdMQzJTaGFzNkx3SVVKRWpzNHdOa2VZUGRmUjd6VmdxS1Nw?= =?utf-8?B?QzFYN2dibjluTEZXTE1MRmRyYkxneFR3ZlQ1WWhhWFFLamVVeWxPU1BnYU5B?= =?utf-8?B?TG82eGZpVUd2eEQwWjRTM0FaSDRvTGtSSUovTEVFWXFDTnZubExHUU1iQ2pV?= =?utf-8?B?YXRxdTlDSklMSFN4ZTlpR3JXR09GNmppNVlYWWE3eUo3Zk5aYUxSZWxCNnl1?= =?utf-8?B?NlM1anA4Z0c2TjJVZC81ZXA2OEFYd0ZSM08xR3dJYlRFTkxxRUN6bVlhMVJY?= =?utf-8?B?bWJSSTg5VHlDbFZvSTJDZlVmL2U0bkZXOWgyY0VURWdBNVdCR2FPbTJ1OWRX?= =?utf-8?B?TGxFNTdETkRwd3o5cHlubjNhRTBoQ3JpQmlDUnBKL0t3QndiWGRhSkF2dWlW?= =?utf-8?B?b0E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <119F47DF38136B41B0F388D5CDBA1AED@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 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: 324aff83-1733-4d38-7ad6-08daa00904e7 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Sep 2022 21:49:42.3463 (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: kgDjTwrgx9lIW/XLxdioriiG3KoWrfdH0UwIQgfNt1EmMVyQMHnAv2wTZdcMqq/yzf5Et92U8/KTAs8LiJUcpM55AOVEOGYIwgKY2zRaXl8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4699 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-26_10,2022-09-22_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2209260134 X-Proofpoint-ORIG-GUID: gCU9WfLd_p2HSVc_s5vONJxrILOzBuaR X-Proofpoint-GUID: gCU9WfLd_p2HSVc_s5vONJxrILOzBuaR Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org T24gRnJpLCAyMDIyLTA5LTIzIGF0IDE0OjQ1IC0wNzAwLCBEYXJyaWNrIEouIFdvbmcgd3JvdGU6 Cj4gT24gV2VkLCBTZXAgMjEsIDIwMjIgYXQgMTA6NDQ6NTVQTSAtMDcwMCwKPiBhbGxpc29uLmhl bmRlcnNvbkBvcmFjbGUuY29twqB3cm90ZToKPiA+IEZyb206IEFsbGlzb24gSGVuZGVyc29uIDxh bGxpc29uLmhlbmRlcnNvbkBvcmFjbGUuY29tPgo+ID4gCj4gPiBQYXJlbnQgcG9pbnRlcnMgcmV0 dXJuZWQgdG8gdGhlIGdldF9mYXR0ciB0b29sIGNhdXNlIGVycm9ycyBzaW5jZQo+ID4gdGhlIHRv b2wgY2Fubm90IHBhcnNlIHBhcmVudCBwb2ludGVycy7CoCBGaXggdGhpcyBieSBmaWx0ZXJpbmcK PiA+IHBhcmVudAo+ID4gcGFyZW50IHBvaW50ZXJzIGZyb20geGZzX2F0dHJfbGlzdC4KPiAKPiBZ ZXMhIcKgIFBhcmVudCBwb2ludGVycyBzaG91bGQgL25ldmVyLyBiZSBhY2Nlc3NpYmxlIGJ5IHRo ZSBzdGFuZGFyZAo+IFZGUwo+IHhhdHRyIHN5c2NhbGxzLCBub3Igc2hvdWxkIHRoZSBYRlMgQVRU Ul9NVUxUSSBjYWxscyBoYW5kbGUgdGhlbS4KPiAKPiBDaGFuZ2VzIHRvIHBhcmVudCBwb2ludGVy cyBhcmUgcGVyZm9ybWVkIHZpYSBzZXBhcmF0ZSBzeXNjYWxscwo+IChsaW5rL3VubGluay9ta25v ZC9jcmVhdC9ldGMpLCBhbmQgSSBzZWUgeW91J3ZlIGNyZWF0ZWQgYSBzZXBhcmF0ZQo+IHBhcmVu dCBwb2ludGVyIGlvY3RsIGxhdGVyIG9uIGZvciB1c2Vyc3BhY2UgdG8gcmV0cmlldmUgdGhlbS7C oCBJCj4gdGhpbmsKPiB0aGlzIGlzIHRoZSBjb3JyZWN0IGFjY2VzcyBtb2RlbC4KPiAKPiBUbyBj aGVjayB0aGF0IGFzc2VydGlvbiAtLSBnZXR4YXR0ci9zZXR4YXR0ci9yZW1vdmV4YXR0ciAoYW5k IHRoZQo+IEFUVFJNVUxUSQo+IGVxdWl2YWxlbnRzKSBhcmUgcHJldmVudGVkIGZyb20gYWNjZXNz aW5nIHBhcmVudCBwb2ludGVycyBkaXJlY3RseQo+IGJlY2F1c2UgeW91J2QgaGF2ZSB0byBiZSBh YmxlIHRvIHNldCBYRlNfQVRUUl9QQVJFTlQgaW4KPiB4ZnNfZGFfYXJncy5hdHRyX2ZpbHRlciwg cmlnaHQ/CldlbGwsIHlvdSBzZXQgWEZTX0lPQ19BVFRSX1BBUkVOVCB3aGljaCBsYXRlciB0cmFu c2xhdGVzIHRvClhGU19BVFRSX1BBUkVOVC4gIEkgZG8gdGhhdCBsYXRlciBpbiB0aGUgc2V0LCBi dXQgSSBzZWUgeW91J3ZlIGFscmVhZHkKY29tbWVudGVkIG9uIGl0Cgo+IAo+IEFuZCBmb3IgdGhl IFZGUyB0byBnZXQvc2V0L3JlbW92ZSBhIHBhcmVudCBwb2ludGVyLCBYRlMgd291bGQgaGF2ZSB0 bwo+IHByb3ZpZGUgYSBzdHJ1Y3QgeGF0dHJfaGFuZGxlciB3aXRoIC0+ZmxhZ3MgPSBYRlNfQVRU Ul9QQVJFTlQsIHdoaWNoCj4gWEZTCj4gd2lsbCBuZXZlciBkbywgcmlnaHQ/CldlbGwsIHRoaXMg c2V0IGRvZXMgbm90IHBsYW4gdG8gbWFrZSBhbnkgdmZzIG1vZGlmaWNhdGlvbnMgYXQgbGVhc3Qg Oi0pCgo+IAo+IEFuZCBmb3IgQVRUUl9NVUxUSSB0byB0b3VjaCBhIHBhcmVudCBwb2ludGVyLCB4 ZnNfYXR0cl9maWx0ZXIgKGFuZAo+IHRoZQo+IGlvY3RsIGFwaSkgd291bGQgaGF2ZSB0byBsZWFy biBhYm91dCBYRlNfQVRUUl9QQVJFTlQsIHdoaWNoIFhGUyB3aWxsCj4gYWxzbyBuZXZlciBkbywg cmlnaHQ/CkkgdGhpbmsgd2UgZG8gaGF2ZSB0byBwdWJsaXNoIHRoYXQgWEZTX0FUVFJfUEFSRU5U IGV4aXN0cywgYnV0IEkgZG9uJ3QKdGhpbmsgd2UgaGF2ZSB0byBpbXBsZW1lbnQgdGhlIFhGU19J T0NfQVRUUl9QQVJFTlQgdHJhbnNsYXRpb24KCj4gCj4gSWYgdGhlIGFuc3dlcnMgdG8gdGhlc2Ug dGhyZWUgcXVlc3Rpb25zIGFyZSBhbGwgeWVzIHRoZW4geW91J3JlIDk1JQo+IG9mCj4gdGhlIHdh eSB0byBhbiBSVkIsIGV4Y2VwdC4uLgo+IAo+ID4gU2lnbmVkLW9mZi1ieTogQWxsaXNvbiBIZW5k ZXJzb24gPGFsbGlzb24uaGVuZGVyc29uQG9yYWNsZS5jb20+Cj4gPiAtLS0KPiA+IMKgZnMveGZz L2xpYnhmcy94ZnNfZGFfZm9ybWF0LmggfMKgIDMgKysrCj4gPiDCoGZzL3hmcy94ZnNfYXR0cl9s aXN0LmPCoMKgwqDCoMKgwqDCoCB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0K PiA+IC0tLS0KPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2ZzL3hmcy9saWJ4ZnMveGZzX2RhX2Zvcm1h dC5oCj4gPiBiL2ZzL3hmcy9saWJ4ZnMveGZzX2RhX2Zvcm1hdC5oCj4gPiBpbmRleCBiMDJiNjdm MTk5OWUuLmU5YzMyM2ZhYjZmMyAxMDA2NDQKPiA+IC0tLSBhL2ZzL3hmcy9saWJ4ZnMveGZzX2Rh X2Zvcm1hdC5oCj4gPiArKysgYi9mcy94ZnMvbGlieGZzL3hmc19kYV9mb3JtYXQuaAo+ID4gQEAg LTY5Nyw2ICs2OTcsOSBAQCBzdHJ1Y3QgeGZzX2F0dHIzX2xlYWZibG9jayB7Cj4gPiDCoCNkZWZp bmUgWEZTX0FUVFJfSU5DT01QTEVURcKgwqDCoMKgKDF1IDw8IFhGU19BVFRSX0lOQ09NUExFVEVf QklUKQo+ID4gwqAjZGVmaW5lIFhGU19BVFRSX05TUF9PTkRJU0tfTUFTSyBcCj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoWEZTX0FUVFJfUk9PVCB8 IFhGU19BVFRSX1NFQ1VSRSB8Cj4gPiBYRlNfQVRUUl9QQVJFTlQpCj4gPiArI2RlZmluZSBYRlNf QVRUUl9BTEwgXAo+ID4gK8KgwqDCoMKgwqDCoMKgKFhGU19BVFRSX0xPQ0FMX0JJVCB8IFhGU19B VFRSX1JPT1QgfCBYRlNfQVRUUl9TRUNVUkUgfCBcCj4gPiArwqDCoMKgwqDCoMKgwqAgWEZTX0FU VFJfUEFSRU5UIHwgWEZTX0FUVFJfSU5DT01QTEVURV9CSVQpCj4gPiDCoAo+ID4gwqAvKgo+ID4g wqAgKiBBbGlnbm1lbnQgZm9yIG5hbWVsaXN0IGFuZCB2YWx1ZWxpc3QgZW50cmllcyAoc2luY2Ug dGhleSBhcmUKPiA+IG1peGVkCj4gPiBkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19hdHRyX2xpc3Qu YyBiL2ZzL3hmcy94ZnNfYXR0cl9saXN0LmMKPiA+IGluZGV4IGE1MWY3ZjEzYTM1Mi4uMTNkZTU5 N2M0OTk2IDEwMDY0NAo+ID4gLS0tIGEvZnMveGZzL3hmc19hdHRyX2xpc3QuYwo+ID4gKysrIGIv ZnMveGZzL3hmc19hdHRyX2xpc3QuYwo+ID4gQEAgLTM5LDYgKzM5LDIzIEBAIHhmc19hdHRyX3No b3J0Zm9ybV9jb21wYXJlKGNvbnN0IHZvaWQgKmEsIGNvbnN0Cj4gPiB2b2lkICpiKQo+ID4gwqDC oMKgwqDCoMKgwqDCoH0KPiA+IMKgfQo+ID4gwqAKPiA+ICsvKgo+ID4gKyAqIFJldHVybnMgdHJ1 ZSBvciBmYWxzZSBpZiB0aGUgcGFyZW50IGF0dHJpYnV0ZSBzaG91bGQgYmUgbGlzdGVkCj4gPiAr ICovCj4gPiArc3RhdGljIGJvb2wKPiA+ICt4ZnNfYXR0cl9maWx0ZXJfcGFyZW50KAo+ID4gK8Kg wqDCoMKgwqDCoMKgc3RydWN0IHhmc19hdHRyX2xpc3RfY29udGV4dMKgwqDCoMKgKmNvbnRleHQs Cj4gPiArwqDCoMKgwqDCoMKgwqBpbnTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxhZ3MpCj4gPiArewo+ID4gK8KgwqDCoMKgwqDCoMKg aWYgKCEoZmxhZ3MgJiBYRlNfQVRUUl9QQVJFTlQpKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHJldHVybiB0cnVlOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKGNvbnRl eHQtPmF0dHJfZmlsdGVyICYgWEZTX0FUVFJfUEFSRU5UKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiB0cnVlOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgcmV0dXJu IGZhbHNlOwo+IAo+IC4uLndvdWxkbid0IGl0IHN1ZmZpY2UgdG8gZG86Cj4gCj4gc3RhdGljIGlu bGluZSBib29sCj4geGZzX2F0dHJfZmlsdGVyX2xpc3RlbnQoCj4gwqDCoMKgwqDCoMKgwqDCoHN0 cnVjdCB4ZnNfYXR0cl9saXN0X2NvbnRleHTCoMKgwqAgKmNvbnRleHQsCj4gwqDCoMKgwqDCoMKg wqDCoGludMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBmbGFncykKPiB7Cj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiBjb250ZXh0LT5hdHRy X2ZpbHRlciAhPSAoZmxhZ3MgJgo+IFhGU19BVFRSX05TUF9PTkRJU0tfTUFTSyk7Cj4gfQpBbG1v c3QuLi4uIFhGU19BVFRSX05TUF9PTkRJU0tfTUFTSyBpbmNsdWRlcyBYRlNfQVRUUl9QQVJFTlQs IHNvIGhlcmUKd2UnZCB3YW50IFhGU19BVFRSX05TUF9PTkRJU0tfTUFTSyAmIH5YRlNfQVRUUl9Q QVJFTlQKCkFsc28sIFhGU19BVFRSX05TUF9PTkRJU0tfTUFTSyBkb2VzbnQgaW5jbHVkZSBYRlNf QVRUUl9MT0NBTCB3aGljaCB3YXMKcHJldmlvdXNseSBhbGxvd2FibGUKCkhtbSwgaG93IGJvdXQg anVzdDoKCXJldHVybiBjb250ZXh0LT5hdHRyX2ZpbHRlciAhPSBmbGFncyAmIChYRlNfQVRUUl9S T09UIHwKWEZTX0FUVFJfU0VDVVJFIHwgWEZTX0FUVFJfTE9DQUwpCgpJIHRoaW5rIHRoYXQgcHJl c2VydmVzIHRoZSBleGlzdGluZyBiZWhhdmlvcgoKPiAKPiBsaWtlIGhvdyB4ZnNfaW9jX2F0dHJf cHV0X2xpc3RlbnQgZG9lcz/CoCBBbmQgdGhlbi4uLgo+IAo+ID4gK30KPiA+ICsKPiA+IMKgI2Rl ZmluZSBYRlNfSVNSRVNFVF9DVVJTT1IoY3Vyc29yKSBcCj4gPiDCoMKgwqDCoMKgwqDCoMKgKCEo KGN1cnNvciktPmluaXR0ZWQpICYmICEoKGN1cnNvciktPmhhc2h2YWwpICYmIFwKPiA+IMKgwqDC oMKgwqDCoMKgwqAgISgoY3Vyc29yKS0+Ymxrbm8pICYmICEoKGN1cnNvciktPm9mZnNldCkpCj4g PiBAQCAtOTAsMTEgKzEwNywxMiBAQCB4ZnNfYXR0cl9zaG9ydGZvcm1fbGlzdCgKPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc2ZlLQo+ID4gPm5hbWVsZW4sCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNmZS0KPiA+ID5mbGFncykp KQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiAtRUZTQ09SUlVQVEVEOwo+ID4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250ZXh0LT5wdXRfbGlzdGVudChjb250ZXh0 LAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNmZS0+ZmxhZ3MsCj4gPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2ZlLT5uYW1ldmFsLAo+ID4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChpbnQpc2ZlLT5uYW1lbGVuLAo+ID4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChpbnQpc2ZlLT52YWx1ZWxlbik7Cj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICh4ZnNfYXR0cl9maWx0ZXJfcGFyZW50 KGNvbnRleHQsIHNmZS0KPiA+ID5mbGFncykpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250ZXh0LT5wdXRfbGlzdGVu dChjb250ZXh0LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBzZmUtPmZsYWdzLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzZmUtPm5hbWV2YWwsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChpbnQpc2ZlLQo+ID4gPm5hbWVsZW4sCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbnQpc2ZlLQo+ID4gPnZhbHVl bGVuKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oC8qCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KiBFaXRoZXIgc2VhcmNoIGNhbGxiYWNrIGZpbmlzaGVkIGVhcmx5IG9yCj4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBkaWRuJ3QgZml0IGl0IGFs bCBpbiB0aGUgYnVmZmVyIGFmdGVyCj4gPiBhbGwuCj4gPiBAQCAtMTg1LDExICsyMDMsMTIgQEAg eGZzX2F0dHJfc2hvcnRmb3JtX2xpc3QoCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBlcnJvciA9IC1FRlNDT1JSVVBURUQ7Cj4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIG91dDsKPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGNvbnRleHQtPnB1dF9saXN0ZW50KGNvbnRleHQsCj4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBz YnAtPmZsYWdzLAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2JwLT5uYW1lLAo+ID4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2JwLT5uYW1lbGVuLAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2JwLT52YWx1ZWxlbik7Cj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHhmc19hdHRyX2ZpbHRlcl9wYXJlbnQo Y29udGV4dCwgc2JwLT5mbGFncykpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGNvbnRleHQtPnB1dF9saXN0ZW50KGNvbnRleHQsCj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2JwLT5mbGFncywKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzYnAtPm5hbWUsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2JwLT5uYW1lbGVuLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNicC0+ dmFsdWVsZW4pOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoY29udGV4 dC0+c2Vlbl9lbm91Z2gpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBicmVhazsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY3Vy c29yLT5vZmZzZXQrKzsKPiA+IEBAIC00NzQsOCArNDkzLDEwIEBAIHhmc19hdHRyM19sZWFmX2xp c3RfaW50KAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIXhmc19hdHRyX25hbWVjaGVjayhtcCwgbmFtZSwKPiA+ IG5hbWVsZW4sCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZW50cnktCj4gPiA+ZmxhZ3MpKSkKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRUZTQ09SUlVQVEVEOwo+ID4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRleHQtPnB1dF9saXN0ZW50KGNvbnRleHQsIGVu dHJ5LT5mbGFncywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoeGZzX2F0 dHJfZmlsdGVyX3BhcmVudChjb250ZXh0LCBlbnRyeS0+ZmxhZ3MpKQo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250ZXh0LT5wdXRfbGlzdGVudChj b250ZXh0LCBlbnRyeS0+ZmxhZ3MsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgbmFtZSwgbmFtZWxlbiwKPiA+IHZhbHVlbGVuKTsKPiA+ICsKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaWYgKGNvbnRleHQtPnNlZW5fZW5vdWdoKQo+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGN1cnNvci0+b2Zmc2V0Kys7Cj4gPiBAQCAtNTM5LDYg KzU2MCwxMCBAQCB4ZnNfYXR0cl9saXN0KAo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmICh4ZnNfaXNf c2h1dGRvd24oZHAtPmlfbW91bnQpKQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gLUVJTzsKPiA+IMKgCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoY29udGV4dC0+YXR0 cl9maWx0ZXIgPT0gMCkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250ZXh0 LT5hdHRyX2ZpbHRlciA9Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFhGU19BVFRSX0FMTCAmIH5YRlNfQVRUUl9QQVJFTlQ7Cj4gCj4gLi4uSSB0aGlu ayB0aGlzIGlzIHVubmVjZXNzYXJ5IHNpbmNlIG5vbmUgb2YgdGhlIGNhbGxlcnMgY2FuIGFjdHVh bGx5Cj4gc2V0IFhGU19BVFRSX1BBUkVOVCBpbiB0aGUgZmlyc3QgcGxhY2UsIHJpZ2h0Pwo+IApU aGUgY2FsbGVyIGNhbiBzdHVmZiBhbnkgYml0IGluIHRoZXJlIHRoZXkgd2FudCwgYnV0IHVudGls IG5vdyBpdApkaWRuJ3QgbWF0dGVyIGJlY2F1c2UgY29udGV4dC0+YXR0cl9maWx0ZXIgd2FzIHVu dXNlZCAoZ2V0ZmF0dHIgYXBwZWFycwp0byBqdXN0IGxlYXZlIGl0IGFzIDApLiAgU28gdGhlIGV4 aXN0aW5nIGJlaGF2aW9yIHdhcyB0aGF0IHJlcXVlc3RpbmcKbm90aGluZyByZXN1bHRlZCBpbiBl dmVyeXRoaW5nLiAgTm93IHdlJ3JlIGZsaXBwaW5nIHRoYXQgKGF0IGxlYXN0CmludGVybmFsbHkp LgoKSWYgd2UgdXNlIHRoZSBmaWx0ZXIgbG9naWMgYWJvdmUsIHRoaXMgd291bGQgbmVlZCB0byB0 dXJuIGludG8KY29udGV4dC0+YXR0cl9maWx0ZXIgPSAoWEZTX0FUVFJfUk9PVCB8IFhGU19BVFRS X1NFQ1VSRSB8ClhGU19BVFRSX0xPQ0FMKQoKPiAtLUQKPiAKPiA+ICsKPiA+IMKgwqDCoMKgwqDC oMKgwqBsb2NrX21vZGUgPSB4ZnNfaWxvY2tfYXR0cl9tYXBfc2hhcmVkKGRwKTsKPiA+IMKgwqDC oMKgwqDCoMKgwqBlcnJvciA9IHhmc19hdHRyX2xpc3RfaWxvY2tlZChjb250ZXh0KTsKPiA+IMKg wqDCoMKgwqDCoMKgwqB4ZnNfaXVubG9jayhkcCwgbG9ja19tb2RlKTsKPiA+IC0tIAo+ID4gMi4y NS4xCj4gPiAKCg==