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 C33BAC004D4 for ; Sat, 21 Jan 2023 05:16:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229540AbjAUFQk (ORCPT ); Sat, 21 Jan 2023 00:16:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51744 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229464AbjAUFQj (ORCPT ); Sat, 21 Jan 2023 00:16:39 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4B1210C7 for ; Fri, 20 Jan 2023 21:16:36 -0800 (PST) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30L4EH2s030181; Sat, 21 Jan 2023 05:16:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=QefGJ1OuIakvjNyRhKsieEVPJPdBO/8pb7i0HE8Yzfs=; b=K/xIH0EL9kjUnXTUdbPcKG6ecBsjgsVoFPW4ARBh1oFUPV2cjI1fVMffETsyOhipQYUb ffmyclAn2cNo1ZciIR6EqdkiyoV4S+bv+/f05ShVC/t7hLP4CXQKlz/qZKUFYZz+48A0 Lq5cT5HbRnUZS77Zb8jbU+FrKoON+jiCA/MdingG/nd80EzQUmpj1cdVDksm1BBUGFqV v4P0k5DPAJLLH8cDRldJSG7TGLG38e1cs3QWLPZg3Ou8l/KBiMjlxyx4x12cSEC8VYYk dFlMTJOn33kTvIqebVquVgUDImbf96yir4IlwjfXo1vAamIBeciD7y4uCUToQMAQxB0D bA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n883c03da-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 21 Jan 2023 05:16:35 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30L1XWLK004594; Sat, 21 Jan 2023 05:16:34 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2170.outbound.protection.outlook.com [104.47.57.170]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n86g8bn23-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 21 Jan 2023 05:16:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XchLc5AWR60Eii3s9r+h1qhK0ig4wKVUnN5WWBRGQ5QHZ6lcfbiJJ+H7t6YCcU4I5C6uwZndFZk6SA+INjAI4MYKUOO0uBRmNbXF182VNzYBk4xMtmtu6xBgSeVVNXR9qmLrw+3f4/OxxWud5fei+Fytk2UjK1KbWztxnjwgKumF/5CF2QwfqtAaXjKoEn+1XDwZ1d79zqtlucwG6UQ+MEEJX5YOd5myqvVLiKw3pX3LYD2/1EpFQqewvL4U1PyLCPKBBNj9jCLBoF3ymxj/p6a5IwQl51MhOOrK9J9f7CoWBK7SoejUM+cHhQd5e0CFZHGRdHjGTzOPhTRHpeHXGw== 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=QefGJ1OuIakvjNyRhKsieEVPJPdBO/8pb7i0HE8Yzfs=; b=MWjFY35J3b5t7oFsbQAGBAsiHvIfV10zZ+PzRfn6a90kEssG3lBDhXqCr3H2kjDloNz7fqEOiXieIOvDfYri0sYrUD9oEPHdmOklrIflpFbwsW9edkpgUdMHmzE9m1Yp6sllaf2N96ECjK1pu1NpUSeIKg4JGGtQ9HFu2aBy5h1kPp4WahucNa999xT2yKnE7Aiw9X1VnL3rXAaY2jCSwN1xGvOktEdemTFBhC+dMC6RDP7NkhHriHvrT+arhjn3nDKUuFDTtz6uiA6l4Lq1rmkm3AmYG+wmxYYO8GZNHLpXHH0PWKaBMR3Bm1hwJ26tS3m3dbM1JStaPPWPC7EUTg== 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=QefGJ1OuIakvjNyRhKsieEVPJPdBO/8pb7i0HE8Yzfs=; b=njv00xiYOJrUeW8xk9K8BfD8NospUgn/TJbMlKqjfryNayUhBQN47cUmSzahrCbMrJAMTZE5FXL/GpbXdb/SKcvmmkiqcs54UDzPUYvQKycz/GMEOQUDdoVnqzy/U7q4AyxoC9879d8Avn05G4n7rictyCWf6G4uYlqk+yevlfk= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by PH0PR10MB5561.namprd10.prod.outlook.com (2603:10b6:510:f0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Sat, 21 Jan 2023 05:16:32 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::eaff:9f55:4641:db38]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::eaff:9f55:4641:db38%5]) with mapi id 15.20.6043.007; Sat, 21 Jan 2023 05:16:32 +0000 From: Allison Henderson To: "david@fromorbit.com" , "linux-xfs@vger.kernel.org" Subject: Re: [PATCH 07/42] xfs: active perag reference counting Thread-Topic: [PATCH 07/42] xfs: active perag reference counting Thread-Index: AQHZK46TR5lyBUtw3ESA+CE5NFt3KK6oV+2A Date: Sat, 21 Jan 2023 05:16:31 +0000 Message-ID: <10b2d15e3a581ff4e0c7c8fc39883bb5cefb370a.camel@oracle.com> References: <20230118224505.1964941-1-david@fromorbit.com> <20230118224505.1964941-8-david@fromorbit.com> In-Reply-To: <20230118224505.1964941-8-david@fromorbit.com> 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_|PH0PR10MB5561:EE_ x-ms-office365-filtering-correlation-id: 62668f9f-6eea-4ede-87e0-08dafb6ea8a2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3tTQklv3YY4k7Bkcy9lIhjueBFwvT4WcP1nsqYPQaUG0Yn79IP7y5slG1v5N8sXfSUIHIPBXGiyt2NgquVsJ42LijqHGlpm0k9qMVK8M7nV9P4+C4ovyVtgVSmrKoTCIF8+LF98SeHCFX0C4/OeGIY0m8v5C95d24/x0+/r4z5LdlttUdATLqlBQa7eAM2FWWBG0jR39ccKueU2M7vzOmaCHmqVnlNmmb6KvaG9xlsI6NxbLkWV1p+QEtlqoNStCC5nSB3Y1P20Y2hvTOi7cls4DOLA+IzPhYh6T96xSeEFt8mYUb8Q7mw1BjNya84rhh5oOX32C4F3ffbTaKwJEWirOVlHYgHatJgYziLKxs90TxfOwVi42airaeF1XTDeRu0Em25H5jiSPwEGdDOXV1mLid6D+O+qwYFD8QUyHloN67QijwIubfX0pmJRYdmZf1ZuJINARDmV5G7JdiVemzSyHNNjtL6MR9z6RHP9muBReFTF412uKNuTseEBENMYKmFkpRoTt7b91JY6oZTCTRFC35ifeQk+gPEH2ooFO2lm9VqXJuUMDJUJ9GLZ9Ai09jed+XPzFofwVYYNq3t237wzzfwUHM07Zn2ygeTLEzrm22ASuiqD7/0ayjLxFOWUR5vDvb6FDkB9dwYyJqJ7YVfFCxs/CUYtvfXv+AsEPbB0wzIU/XRrBRPxwvBGZhF+LSi4u1wxS2oquO4oAobMPXw== 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)(396003)(366004)(376002)(39860400002)(346002)(136003)(451199015)(38070700005)(122000001)(38100700002)(26005)(66446008)(86362001)(66946007)(66476007)(64756008)(76116006)(66556008)(8676002)(41300700001)(110136005)(316002)(30864003)(44832011)(2906002)(5660300002)(83380400001)(8936002)(2616005)(478600001)(71200400001)(6486002)(6512007)(186003)(6506007)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WUw3UjhYVkRaRXh4OVlNaEc4NTBSdWhmZTFUL0xXb0RScGlYSVRWdTBKcWxW?= =?utf-8?B?RzQ2emRyR3VFaGJpaVg1OXJxRlI4QjdSTGNCakxpbC9XQyt5cloxbTEwV21D?= =?utf-8?B?TVd2dVJZWWIvMUxjVU4vQ3BCOGZGR1diNlY3ZEVBWGJLUkJvNi8xWjBuVkFT?= =?utf-8?B?dHBxNmpvbWdPSHlmeGlwT1FFcWZCdHZoQjFwUFMzQU1IaVlVa2U1N29idkpU?= =?utf-8?B?bE8yUWJURndTTVNPMU9aQzRpS1lmZHgxNEVYbVZVNW43QzZhSmtqam9UTmp6?= =?utf-8?B?ejhCMDZaTys1YnFFeTJod0xyRmtkdEJwRnhsL2dFZ3NLcjRkUm5YY2lSeG9F?= =?utf-8?B?ME8xS0VHQXdqYmsvZ0V0YzR2Ulg1V2NIYmk1WlRBaElzZUlxU3hLNkhsTjMr?= =?utf-8?B?TlgzRTBEYjI0SUcrTm4ybzhHOExlUXkyS0poZy9ZRGpwN243ZmF2UGYybWxz?= =?utf-8?B?bkNoWVVMMndkSEFuQmNUVHhjeGFrNzFHeXZFdkNKZlo5WHpKOTkxejZGVVB3?= =?utf-8?B?SlZMOWZGMnRVTCtzN2ZqZC93c0JxRlZVdjZXc0IwUHJxUG92RHIxUiswcTdV?= =?utf-8?B?cllMV2pmSkFnVDFjd1RxZmFNWHVYU1pWRThzQ0xGT28yZXpGdUsycGl4WVQ0?= =?utf-8?B?VnNpMXJoRU1QVnRscFozZ253NEpKa3pHYnJzQVJ5U3FJc3hGMTV2OUhwU1BS?= =?utf-8?B?dDRaVi8weWdNUjNkRjdDTmMwMDR2aXUxV3lKa0Y5WS9wcit2MGk3U054NFlY?= =?utf-8?B?TFVGejFKYmFPNTFLMmYxdDVWV2VZSHlMU0VzTzZaSzlYajBNeFNJMmUzRXNE?= =?utf-8?B?V1A0aFNZSFh1RE9keUQ1TW1vNUlVMDc0ZWRkeW90bElWQ0R2YmU4ZVVpdTdN?= =?utf-8?B?bUE2TGh1QWJJRlIyc0NyQmJoM0FUU3lNMnJUOWZIRWVyb0tFVTJGYWlmdm1N?= =?utf-8?B?QWJGWk9id0t5UW5iR1Y1WjFqbUZWZzR2NHFSejJ6eGxmQzRrTkEzS0xHNWdk?= =?utf-8?B?empRUnQyNjFFSXdycm9BYXlPYTBXMHU0UGt4NE8zUmlWNUg2Ui9PZ2NJOXFi?= =?utf-8?B?NTF1S0hLME1Kcll3TEd6NXQxRHVEMU92anlsdWNNejVaY1h3OUdYMUtXR0Fh?= =?utf-8?B?VGhvd25UTFVJU3pKRUw3MUxIS2pmWkJPWDNJZlZFaXMvcmRyNFRhMzM2bGIy?= =?utf-8?B?L2w2OEpoazZCZUVJcW9UM0xXL2p3Q2JabmN3WWZGQ1QrakQzaDlpUWxsZW9u?= =?utf-8?B?dDFLN3NPbWtma0dTM2Z5ZEI3VVZ4WU0vOStzempxb3lXdk1GRi9LVlVUOWlM?= =?utf-8?B?R05GdXA3RkdFa1E0MnRXNDRFTm8ydUlDMnc3S3FBeHEwLzBMYllxNzgxZTBY?= =?utf-8?B?dHRHT3pVMlpCeDRvTEVmVHhMZzdKcTNCNXVmWU9NczNCTkZlOG9ESm9odzg4?= =?utf-8?B?aVRDbFkwSUsxeFBSaTJRaWN4Zks1anExTUowcEJlM0RWQnVOZzBremRlZzJ5?= =?utf-8?B?Y2dCV1JPMStidmtCaXpyRHUrcWxtK3kzR2ZUTlMxZkhDa0Y3YVRPdmZlQjVo?= =?utf-8?B?ejZmRytianR4TDYyWlhYa1pUR3ZKaDY5QlFuN2kwYkdoTmxkZ29yME9UTXVC?= =?utf-8?B?aTltY1Z4Q25sWEQ3RWZyMGR4QlBtV1VUN2thenhnOE9OY292VWlXYUUrVFFJ?= =?utf-8?B?SXVCVWxVaU1ncEgyUTU0NDlkTzJSdllyNmE0VU43SitwaVhhMFc3MTRrOXBT?= =?utf-8?B?M2FHTEdaKzFTd1FyQ3hKOURwNngwSUJTRDVxV3JYbHhyVkpZME1nZEdsUnpH?= =?utf-8?B?VEMvWHptM003RHB0bWcrdWREUTEvVlp0YTkxeUQyazZjNHRvQ3MvSFNzMW9r?= =?utf-8?B?a0VtQm1zN2RueG03TTI3dGRxU1MwRHdoVEk3MkpWZGEvUE9mSDlZYmdlbGt4?= =?utf-8?B?akxPWlE5aEd5OHhJaHR2Y052TzluZG1mS0JPTCszM2RTeU9NdG0xOU95bS9O?= =?utf-8?B?YU9FUC9OcHpBVTRSUk9nUDEwU1phSFY2WXNHaVBnN0ZXa0x6ZDBFVUNqbGdo?= =?utf-8?B?UTRQcFZWMWJ4UjhUU2NlVUNnOTVvWG5LVFNkdW1WTlljVUVlcHRKdkRoeTc3?= =?utf-8?B?TXNPWmVLaVJDZ09QekV5UVJMYWNmOEF2UWVvVFpvTDBrNmlCbjBDNC9LdVVR?= =?utf-8?Q?Hbn4+kVB5A+Zxeh/bYngnsU=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <9C9EEEBE5C141F4DB5E6B0689DAACA68@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: A4pgACToSY48K80lkx0EKBv7yYDb2C3bvKzkud3CBRyGj153uyFj3SOerNuZQ5irG2oybk3+2qulwYq1rT36pro9j0v0++PJ0ChWfHUaDB/n7uU0ATl/160CEJM2dvqxlCxjixI0g7370dKuakaNLpYIeg3ovADq1nNUzidxWoXAYLw2JB/qy4rAs3sAg6uCPg0LOlqVKSSkijk8F03dfhu2QZJlhWorGiT6kLcJMCzYaWypqn84JSuU0uroDT/OZJjv8Uu2B+FjVkbSf/2t5YzsgQwEikkvoxqtNjoRDhVdkvT7KTPB3gMKLEjVqyRov/gl6FPpqus1NoNbHGnYFWMlcRG5Yqx7e4Y5xj1EEvFezY3dxL6cn+2MyA4JKR7kMcR+NlNP4zvaJ6jahYcfINBW/ZJ2al/wORd2TBba3uUiZFjVJzRyi3LJiVM/PlKeN9sHCUqbqmlP1qXhD9SPWNUsNQi9w7FcIcj+bkLcCtfBy/vmlhKhZ3LpEVVRrGSBQmfBrqzF1+Y2nEm9nz74r/ts+80qhETpgy74N6Sx1tnFwSWhmKYNd0Uprd6bI0huh/iwTjSk1x64aAPwKr8kYte1KmaabP3iujTQh90ACFx/K/QcKAyAN9WAU50o7picW6meeaWvIfuk98gGLxwX4jGWQFuG/6mcIl14FHsusEpl9wzKByomN1uxr8zc/NFzcpBZl/Bry1q/K2t58CvwP7iOONbRcSKEFJBvJK2vCJ8i/GZDqM6NkEgx9Raqi+vbv6tZa6S3NMSTxRyrb17LGC2Y3zrLcE+uA6D+PZ41F/4= 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: 62668f9f-6eea-4ede-87e0-08dafb6ea8a2 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2023 05:16:32.0076 (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: +4tPO3QjtDthpzMyEUTgVJ5hKuAyDFbwHqiq8cnYqXsgDw2lBN3cMW+XaiPSQDqAgoOdu3iIAuLt0sv8R1IvlfESayU0SZ5QiRg2+JgBCSE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5561 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-21_01,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301210049 X-Proofpoint-ORIG-GUID: piKnEjw8z-b_TKY8lXscSihaNlgL6KWJ X-Proofpoint-GUID: piKnEjw8z-b_TKY8lXscSihaNlgL6KWJ Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org T24gVGh1LCAyMDIzLTAxLTE5IGF0IDA5OjQ0ICsxMTAwLCBEYXZlIENoaW5uZXIgd3JvdGU6Cj4g RnJvbTogRGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgo+IAo+IFdlIG5lZWQgdG8g YmUgYWJsZSB0byBkeW5hbWljYWxseSByZW1vdmUgaW5zdGFudGlhdGVkIEFHcyBmcm9tCj4gbWVt b3J5IHNhZmVseSwgZWl0aGVyIGZvciBzaHJpbmtpbmcgdGhlIGZpbGVzeXN0ZW0gb3IgcGFnaW5n IEFHCj4gc3RhdGUgaW4gYW5kIG91dCBvZiBtZW1vcnkgKGUuZy4gc3VwcG9ydGluZyBtaWxsaW9u cyBvZiBBR3MpLiBUaGlzCj4gbWVhbnMgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHNhZmVseSBleGNs dWRlIG9wZXJhdGlvbnMgZnJvbSBhY2Nlc3NpbmcKPiBwZXJhZ3Mgd2hpbGUgZHluYW1pYyByZW1v dmFsIGlzIGluIHByb2dyZXNzLgo+IAo+IFRvIGRvIHRoaXMsIGludHJvZHVjZSB0aGUgY29uY2Vw dCBvZiBhY3RpdmUgYW5kIHBhc3NpdmUgcmVmZXJlbmNlcy4KPiBBY3RpdmUgcmVmZXJlbmNlcyBh cmUgcmVxdWlyZWQgZm9yIGhpZ2ggbGV2ZWwgb3BlcmF0aW9ucyB0aGF0IG1ha2UKPiB1c2Ugb2Yg YW4gQUcgZm9yIGEgZ2l2ZW4gb3BlcmF0aW9uIChlLmcuIGFsbG9jYXRpb24pIGFuZCBwaW4gdGhl Cj4gcGVyYWcgaW4gbWVtb3J5IGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIG9wZXJhdGlvbiB0aGF0 IGlzIG9wZXJhdGluZwo+IG9uIHRoZSBwZXJhZyAoZS5nLiB0cmFuc2FjdGlvbiBzY29wZSkuIFRo aXMgbWVhbnMgd2UgY2FuIGZhaWwgdG8gZ2V0Cj4gYW4gYWN0aXZlIHJlZmVyZW5jZSB0byBhbiBB RywgaGVuY2UgY2FsbGVycyBvZiB0aGUgbmV3IGFjdGl2ZQo+IHJlZmVyZW5jZSBBUEkgbXVzdCBi ZSBhYmxlIHRvIGhhbmRsZSBsb29rdXAgZmFpbHVyZSBncmFjZWZ1bGx5Lgo+IAo+IFBhc3NpdmUg cmVmZXJlbmNlcyBhcmUgdXNlZCBpbiBsb3cgbGV2ZWwgY29kZSwgd2hlcmUgd2UgbWlnaHQgbmVl ZAo+IHRvIGFjY2VzcyB0aGUgcGVyYWcgc3RydWN0dXJlIGZvciB0aGUgcHVycG9zZXMgb2YgY29t cGxldGluZyBoaWdoCj4gbGV2ZWwgb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGUsIGJ1ZmZlcnMgbmVl ZCB0byB1c2UgcGFzc2l2ZQo+IHJlZmVyZW5jZXMgYmVjYXVzZToKPiAtIHdlIG5lZWQgdG8gYmUg YWJsZSB0byBkbyBtZXRhZGF0YSBJTyBkdXJpbmcgb3BlcmF0aW9ucyBsaWtlIGdyb3cKPiDCoCBh bmQgc2hyaW5rIHRyYW5zYWN0aW9ucyB3aGVyZSBoaWdoIGxldmVsIGFjdGl2ZSByZWZlcmVuY2Vz IHRvIHRoZQo+IMKgIEFHIGhhdmUgYWxyZWFkeSBiZWVuIGJsb2NrZWQKPiAtIGJ1ZmZlcnMgbmVl ZCB0byBwaW4gdGhlIHBlcmFnIHVudGlsIHRoZXkgYXJlIHJlY2xhaW1lZCBmcm9tCj4gwqAgbWVt b3J5LCBzb21ldGhpbmcgdGhhdCBoaWdoIGxldmVsIGNvZGUgaGFzIG5vIGRpcmVjdCBjb250cm9s IG92ZXIuCj4gLSB1bnVzZWQgY2FjaGVkIGJ1ZmZlcnMgc2hvdWxkIG5vdCBwcmV2ZW50IGEgc2hy aW5rIGZyb20gYmVpbmcKPiDCoCBzdGFydGVkLgo+IAo+IEhlbmNlIHdlIGhhdmUgYWN0aXZlIHJl ZmVyZW5jZXMgdGhhdCB3aWxsIGZvcm0gZXhjbHVzaW9uIGJhcnJpZXJzCj4gZm9yIG9wZXJhdGlv bnMgdG8gYmUgcGVyZm9ybWVkIG9uIGFuIEFHLCBhbmQgcGFzc2l2ZSByZWZlcmVuY2VzIHRoYXQK PiB3aWxsIHByZXZlbnQgcmVjbGFpbSBvZiB0aGUgcGVyYWcgdW50aWwgYWxsIG9iamVjdHMgd2l0 aCBwYXNzaXZlCj4gcmVmZXJlbmNlcyBoYXZlIGJlZW4gcmVjbGFpbWVkIHRoZW1zZWx2ZXMuCj4g Cj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2UgeGZzX3BlcmFnX2dyYWIoKS94ZnNfcGVyYWdfcmVsZSgp IGFzIHRoZSBBUEkKPiBmb3IgYWN0aXZlIEFHIHJlZmVyZW5jZSBmdW5jdGlvbmFsaXR5LiBXZSBh bHNvIG5lZWQgdG8gY29udmVydCB0aGUKPiBmb3JfZWFjaF9wZXJhZyooKSBpdGVyYXRvcnMgdG8g dXNlIGFjdGl2ZSByZWZlcmVuY2VzLCB3aGljaCB3aWxsCj4gc3RhcnQgdGhlIHByb2Nlc3Mgb2Yg Y29udmVydGluZyBoaWdoIGxldmVsIGNvZGUgb3ZlciB0byB1c2luZyBhY3RpdmUKPiByZWZlcmVu Y2VzLiBDb252ZXJzaW9uIG9mIG5vbi1pdGVyYXRvciBiYXNlZCBjb2RlIHRvIGFjdGl2ZQo+IHJl ZmVyZW5jZXMgd2lsbCBiZSBkb25lIGluIGZvbGxvd3VwIHBhdGNoZXMuCj4gCj4gTm90ZSB0aGF0 IHRoZSBpbXBsZW1lbnRhdGlvbiB1c2luZyByZWZlcmVuY2UgY291bnRpbmcgaXMgcmVhbGx5IGp1 c3QKPiBhIGRldmVsb3BtZW50IHZlaGljbGUgZm9yIHRoZSBBUEkgdG8gZW5zdXJlIHdlIGRvbid0 IGhhdmUgYW55IGxlYWtzCj4gaW4gdGhlIGNhbGxlcnMuIE9uY2Ugd2UgbmVlZCB0byByZW1vdmUg cGVyYWcgc3RydWN0dXJlcyBmcm9tIG1lbW9yeQo+IGR5YW5taWNhbGx5LCB3ZSB3aWxsIG5lZWQg YSBtdWNoIG1vcmUgcm9idXN0IHBlci1hZyBzdGF0ZSB0cmFuc2l0aW9uCj4gbWVjaGFuaXNtIGZv ciBwcmV2ZW50aW5nIG5ldyByZWZlcmVuY2VzIGZyb20gYmVpbmcgdGFrZW4gd2hpbGUgd2UKPiB3 YWl0IGZvciBleGlzdGluZyByZWZlcmVuY2VzIHRvIGRyYWluIGJlZm9yZSByZW1vdmFsIGZyb20g bWVtb3J5IGNhbgo+IG9jY3VyLi4uLgo+IAo+IFNpZ25lZC1vZmYtYnk6IERhdmUgQ2hpbm5lciA8 ZGNoaW5uZXJAcmVkaGF0LmNvbT4Kb2ssIEkgd2FzIGFibGUgdG8gZm9sbG93IGl0ClJldmlld2Vk LWJ5OiBBbGxpc29uIEhlbmRlcnNvbiA8YWxsaXNvbi5oZW5kZXJzb25Ab3JhY2xlLmNvbT4KCj4g wqBmcy94ZnMvbGlieGZzL3hmc19hZy5jwqDCoMKgIHwgNzAKPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiDCoGZzL3hmcy9saWJ4ZnMveGZzX2FnLmjCoMKgwqAgfCAz MSArKysrKysrKysrKystLS0tLQo+IMKgZnMveGZzL3NjcnViL2JtYXAuY8KgwqDCoMKgwqDCoCB8 wqAgMiArLQo+IMKgZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYyB8wqAgNCArLS0KPiDCoGZzL3hm cy94ZnNfZnNtYXAuY8KgwqDCoMKgwqDCoMKgIHzCoCA0ICstLQo+IMKgZnMveGZzL3hmc19pY2Fj aGUuY8KgwqDCoMKgwqDCoCB8wqAgMiArLQo+IMKgZnMveGZzL3hmc19pd2Fsay5jwqDCoMKgwqDC oMKgwqAgfMKgIDYgKystLQo+IMKgZnMveGZzL3hmc19yZWZsaW5rLmPCoMKgwqDCoMKgIHzCoCAy ICstCj4gwqBmcy94ZnMveGZzX3RyYWNlLmjCoMKgwqDCoMKgwqDCoCB8wqAgMyArKwo+IMKgOSBm aWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2ZzL3hmcy9saWJ4ZnMveGZzX2FnLmMgYi9mcy94ZnMvbGlieGZzL3hmc19hZy5j Cj4gaW5kZXggYmIwYzcwMGFmZTNjLi40NmUyNWM2ODJiZjQgMTAwNjQ0Cj4gLS0tIGEvZnMveGZz L2xpYnhmcy94ZnNfYWcuYwo+ICsrKyBiL2ZzL3hmcy9saWJ4ZnMveGZzX2FnLmMKPiBAQCAtOTQs NiArOTQsNjggQEAgeGZzX3BlcmFnX3B1dCgKPiDCoMKgwqDCoMKgwqDCoMKgdHJhY2VfeGZzX3Bl cmFnX3B1dChwYWctPnBhZ19tb3VudCwgcGFnLT5wYWdfYWdubywgcmVmLAo+IF9SRVRfSVBfKTsK PiDCoH0KPiDCoAo+ICsvKgo+ICsgKiBBY3RpdmUgcmVmZXJlbmNlcyBmb3IgcGVyYWcgc3RydWN0 dXJlcy4gVGhpcyBpcyBmb3Igc2hvcnQgdGVybQo+IGFjY2VzcyB0byB0aGUKPiArICogcGVyIGFn IHN0cnVjdHVyZXMgZm9yIHdhbGtpbmcgdHJlZXMgb3IgYWNjZXNzaW5nIHN0YXRlLiBJZiBhbiBB Rwo+IGlzIGJlaW5nCj4gKyAqIHNocnVuayBvciBpcyBvZmZsaW5lLCB0aGVuIHRoaXMgd2lsbCBm YWlsIHRvIGZpbmQgdGhhdCBBRyBhbmQKPiByZXR1cm4gTlVMTAo+ICsgKiBpbnN0ZWFkLgo+ICsg Ki8KPiArc3RydWN0IHhmc19wZXJhZyAqCj4gK3hmc19wZXJhZ19ncmFiKAo+ICvCoMKgwqDCoMKg wqDCoHN0cnVjdCB4ZnNfbW91bnTCoMKgwqDCoMKgwqDCoMKgKm1wLAo+ICvCoMKgwqDCoMKgwqDC oHhmc19hZ251bWJlcl90wqDCoMKgwqDCoMKgwqDCoMKgwqBhZ25vKQo+ICt7Cj4gK8KgwqDCoMKg wqDCoMKgc3RydWN0IHhmc19wZXJhZ8KgwqDCoMKgwqDCoMKgwqAqcGFnOwo+ICsKPiArwqDCoMKg wqDCoMKgwqByY3VfcmVhZF9sb2NrKCk7Cj4gK8KgwqDCoMKgwqDCoMKgcGFnID0gcmFkaXhfdHJl ZV9sb29rdXAoJm1wLT5tX3BlcmFnX3RyZWUsIGFnbm8pOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChw YWcpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHJhY2VfeGZzX3BlcmFnX2dy YWIobXAsIHBhZy0+cGFnX2Fnbm8sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXRvbWljX3JlYWQoJnBhZy0+cGFnX2FjdGl2 ZV9yZWYpLAo+IF9SRVRfSVBfKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYg KCFhdG9taWNfaW5jX25vdF96ZXJvKCZwYWctPnBhZ19hY3RpdmVfcmVmKSkKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBhZyA9IE5VTEw7Cj4gK8KgwqDC oMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoHJjdV9yZWFkX3VubG9jaygpOwo+ICvCoMKgwqDC oMKgwqDCoHJldHVybiBwYWc7Cj4gK30KPiArCj4gKy8qCj4gKyAqIHNlYXJjaCBmcm9tIEBmaXJz dCB0byBmaW5kIHRoZSBuZXh0IHBlcmFnIHdpdGggdGhlIGdpdmVuIHRhZyBzZXQuCj4gKyAqLwo+ ICtzdHJ1Y3QgeGZzX3BlcmFnICoKPiAreGZzX3BlcmFnX2dyYWJfdGFnKAo+ICvCoMKgwqDCoMKg wqDCoHN0cnVjdCB4ZnNfbW91bnTCoMKgwqDCoMKgwqDCoMKgKm1wLAo+ICvCoMKgwqDCoMKgwqDC oHhmc19hZ251bWJlcl90wqDCoMKgwqDCoMKgwqDCoMKgwqBmaXJzdCwKPiArwqDCoMKgwqDCoMKg wqBpbnTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0YWcpCj4gK3sK PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgeGZzX3BlcmFnwqDCoMKgwqDCoMKgwqDCoCpwYWc7Cj4g K8KgwqDCoMKgwqDCoMKgaW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgZm91bmQ7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJjdV9yZWFkX2xvY2soKTsKPiArwqDCoMKg wqDCoMKgwqBmb3VuZCA9IHJhZGl4X3RyZWVfZ2FuZ19sb29rdXBfdGFnKCZtcC0+bV9wZXJhZ190 cmVlLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAodm9pZCAqKikmcGFnLCBmaXJzdCwgMSwKPiB0 YWcpOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChmb3VuZCA8PSAwKSB7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHJjdV9yZWFkX3VubG9jaygpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqByZXR1cm4gTlVMTDsKPiArwqDCoMKgwqDCoMKgwqB9Cj4gK8KgwqDCoMKgwqDC oMKgdHJhY2VfeGZzX3BlcmFnX2dyYWJfdGFnKG1wLCBwYWctPnBhZ19hZ25vLAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXRvbWljX3JlYWQoJnBhZy0+ cGFnX2FjdGl2ZV9yZWYpLCBfUkVUX0lQXyk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFhdG9taWNf aW5jX25vdF96ZXJvKCZwYWctPnBhZ19hY3RpdmVfcmVmKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgcGFnID0gTlVMTDsKPiArwqDCoMKgwqDCoMKgwqByY3VfcmVhZF91bmxvY2so KTsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gcGFnOwo+ICt9Cj4gKwo+ICt2b2lkCj4gK3hmc19w ZXJhZ19yZWxlKAo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZnNfcGVyYWfCoMKgwqDCoMKgwqDC oMKgKnBhZykKPiArewo+ICvCoMKgwqDCoMKgwqDCoHRyYWNlX3hmc19wZXJhZ19yZWxlKHBhZy0+ cGFnX21vdW50LCBwYWctPnBhZ19hZ25vLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgYXRvbWljX3JlYWQoJnBhZy0+cGFnX2FjdGl2ZV9yZWYpLCBfUkVU X0lQXyk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnBhZy0+cGFn X2FjdGl2ZV9yZWYpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB3YWtlX3VwKCZw YWctPnBhZ19hY3RpdmVfd3EpOwo+ICt9Cj4gKwo+IMKgLyoKPiDCoCAqIHhmc19pbml0aWFsaXpl X3BlcmFnX2RhdGEKPiDCoCAqCj4gQEAgLTE5Niw2ICsyNTgsMTAgQEAgeGZzX2ZyZWVfcGVyYWco Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYW5jZWxfZGVsYXllZF93b3JrX3N5 bmMoJnBhZy0+cGFnX2Jsb2NrZ2Nfd29yayk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB4ZnNfYnVmX2hhc2hfZGVzdHJveShwYWcpOwo+IMKgCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoC8qIGRyb3AgdGhlIG1vdW50J3MgYWN0aXZlIHJlZmVyZW5jZSAqLwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZnNfcGVyYWdfcmVsZShwYWcpOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBYRlNfSVNfQ09SUlVQVChwYWctPnBhZ19tb3VudCwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBhdG9taWNfcmVhZCgmcGFnLT5wYWdfYWN0aXZlX3JlZikgIT0KPiAwKTsKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhbGxfcmN1KCZwYWctPnJjdV9oZWFkLCBfX3hm c19mcmVlX3BlcmFnKTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgfQo+IEBAIC0zMTQsNiArMzgw LDcgQEAgeGZzX2luaXRpYWxpemVfcGVyYWcoCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBJTklUX0RFTEFZRURfV09SSygmcGFnLT5wYWdfYmxvY2tnY193b3JrLAo+IHhmc19ibG9j a2djX3dvcmtlcik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBJTklUX1JBRElY X1RSRUUoJnBhZy0+cGFnX2ljaV9yb290LCBHRlBfQVRPTUlDKTsKPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGluaXRfd2FpdHF1ZXVlX2hlYWQoJnBhZy0+cGFnYl93YWl0KTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW5pdF93YWl0cXVldWVfaGVhZCgmcGFnLT5w YWdfYWN0aXZlX3dxKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBhZy0+cGFn Yl9jb3VudCA9IDA7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYWctPnBhZ2Jf dHJlZSA9IFJCX1JPT1Q7Cj4gwqAjZW5kaWYgLyogX19LRVJORUxfXyAqLwo+IEBAIC0zMjIsNiAr Mzg5LDkgQEAgeGZzX2luaXRpYWxpemVfcGVyYWcoCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoZXJyb3IpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZ290byBvdXRfcmVtb3ZlX3BhZzsKPiDCoAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAvKiBBY3RpdmUgcmVmIG93bmVkIGJ5IG1vdW50IGluZGljYXRlcyBBRyBp cyBvbmxpbmUuCj4gKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXRvbWljX3Nl dCgmcGFnLT5wYWdfYWN0aXZlX3JlZiwgMSk7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgLyogZmlyc3QgbmV3IHBhZyBpcyBmdWxseSBpbml0aWFsaXplZCAqLwo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGZpcnN0X2luaXRpYWxpc2VkID09IE5VTExB R05VTUJFUikKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBmaXJzdF9pbml0aWFsaXNlZCA9IGluZGV4Owo+IGRpZmYgLS1naXQgYS9mcy94ZnMvbGlieGZz L3hmc19hZy5oIGIvZnMveGZzL2xpYnhmcy94ZnNfYWcuaAo+IGluZGV4IDE5MWIyMmI5YTM1Yi4u YWViMjFjOGRmMjAxIDEwMDY0NAo+IC0tLSBhL2ZzL3hmcy9saWJ4ZnMveGZzX2FnLmgKPiArKysg Yi9mcy94ZnMvbGlieGZzL3hmc19hZy5oCj4gQEAgLTMyLDcgKzMyLDkgQEAgc3RydWN0IHhmc19h Z19yZXN2IHsKPiDCoHN0cnVjdCB4ZnNfcGVyYWcgewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg eGZzX21vdW50ICpwYWdfbW91bnQ7wqDCoMKgwqAvKiBvd25lciBmaWxlc3lzdGVtICovCj4gwqDC oMKgwqDCoMKgwqDCoHhmc19hZ251bWJlcl90wqDCoHBhZ19hZ25vO8KgwqDCoMKgwqDCoMKgLyog QUcgdGhpcyBzdHJ1Y3R1cmUgYmVsb25ncwo+IHRvICovCj4gLcKgwqDCoMKgwqDCoMKgYXRvbWlj X3TCoMKgwqDCoMKgwqDCoMKgcGFnX3JlZjvCoMKgwqDCoMKgwqDCoMKgLyogcGVyYWcgcmVmZXJl bmNlIGNvdW50ICovCj4gK8KgwqDCoMKgwqDCoMKgYXRvbWljX3TCoMKgwqDCoMKgwqDCoMKgcGFn X3JlZjvCoMKgwqDCoMKgwqDCoMKgLyogcGFzc2l2ZSByZWZlcmVuY2UgY291bnQgKi8KPiArwqDC oMKgwqDCoMKgwqBhdG9taWNfdMKgwqDCoMKgwqDCoMKgwqBwYWdfYWN0aXZlX3JlZjvCoC8qIGFj dGl2ZSByZWZlcmVuY2UgY291bnQgKi8KPiArwqDCoMKgwqDCoMKgwqB3YWl0X3F1ZXVlX2hlYWRf dCBwYWdfYWN0aXZlX3dxOy8qIHdva2VuIGFjdGl2ZV9yZWYgZmFsbHMgdG8KPiB6ZXJvICovCj4g wqDCoMKgwqDCoMKgwqDCoGNoYXLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYWdmX2luaXQ7wqDC oMKgwqDCoMKgLyogdGhpcyBhZ2YncyBlbnRyeSBpcwo+IGluaXRpYWxpemVkICovCj4gwqDCoMKg wqDCoMKgwqDCoGNoYXLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYWdpX2luaXQ7wqDCoMKgwqDC oMKgLyogdGhpcyBhZ2kncyBlbnRyeSBpcwo+IGluaXRpYWxpemVkICovCj4gwqDCoMKgwqDCoMKg wqDCoGNoYXLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYWdmX21ldGFkYXRhO8KgwqAvKiB0aGUg YWdmIGlzIHByZWZlcnJlZCB0byBiZQo+IG1ldGFkYXRhICovCj4gQEAgLTExMSwxMSArMTEzLDE4 IEBAIGludCB4ZnNfaW5pdGlhbGl6ZV9wZXJhZyhzdHJ1Y3QgeGZzX21vdW50ICptcCwKPiB4ZnNf YWdudW1iZXJfdCBhZ2NvdW50LAo+IMKgaW50IHhmc19pbml0aWFsaXplX3BlcmFnX2RhdGEoc3Ry dWN0IHhmc19tb3VudCAqbXAsIHhmc19hZ251bWJlcl90Cj4gYWdubyk7Cj4gwqB2b2lkIHhmc19m cmVlX3BlcmFnKHN0cnVjdCB4ZnNfbW91bnQgKm1wKTsKPiDCoAo+ICsvKiBQYXNzaXZlIEFHIHJl ZmVyZW5jZXMgKi8KPiDCoHN0cnVjdCB4ZnNfcGVyYWcgKnhmc19wZXJhZ19nZXQoc3RydWN0IHhm c19tb3VudCAqbXAsIHhmc19hZ251bWJlcl90Cj4gYWdubyk7Cj4gwqBzdHJ1Y3QgeGZzX3BlcmFn ICp4ZnNfcGVyYWdfZ2V0X3RhZyhzdHJ1Y3QgeGZzX21vdW50ICptcCwKPiB4ZnNfYWdudW1iZXJf dCBhZ25vLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IHRh Zyk7Cj4gwqB2b2lkIHhmc19wZXJhZ19wdXQoc3RydWN0IHhmc19wZXJhZyAqcGFnKTsKPiDCoAo+ ICsvKiBBY3RpdmUgQUcgcmVmZXJlbmNlcyAqLwo+ICtzdHJ1Y3QgeGZzX3BlcmFnICp4ZnNfcGVy YWdfZ3JhYihzdHJ1Y3QgeGZzX21vdW50ICosCj4geGZzX2FnbnVtYmVyX3QpOwo+ICtzdHJ1Y3Qg eGZzX3BlcmFnICp4ZnNfcGVyYWdfZ3JhYl90YWcoc3RydWN0IHhmc19tb3VudCAqLAo+IHhmc19h Z251bWJlcl90LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IHRhZyk7Cj4gK3ZvaWQgeGZzX3BlcmFnX3JlbGUo c3RydWN0IHhmc19wZXJhZyAqcGFnKTsKPiArCj4gwqAvKgo+IMKgICogUGVyLWFnIGdlb21ldHJ5 IGluZm9tYXRpb24gYW5kIHZhbGlkYXRpb24KPiDCoCAqLwo+IEBAIC0xOTMsMTQgKzIwMiwxOCBA QCB4ZnNfcGVyYWdfbmV4dCgKPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHhmc19tb3VudMKgwqDC oMKgwqDCoMKgwqAqbXAgPSBwYWctPnBhZ19tb3VudDsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqAq YWdubyA9IHBhZy0+cGFnX2Fnbm8gKyAxOwo+IC3CoMKgwqDCoMKgwqDCoHhmc19wZXJhZ19wdXQo cGFnKTsKPiAtwqDCoMKgwqDCoMKgwqBpZiAoKmFnbm8gPiBlbmRfYWdubykKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIE5VTEw7Cj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJu IHhmc19wZXJhZ19nZXQobXAsICphZ25vKTsKPiArwqDCoMKgwqDCoMKgwqB4ZnNfcGVyYWdfcmVs ZShwYWcpOwo+ICvCoMKgwqDCoMKgwqDCoHdoaWxlICgqYWdubyA8PSBlbmRfYWdubykgewo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYWcgPSB4ZnNfcGVyYWdfZ3JhYihtcCwgKmFn bm8pOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocGFnKQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHBhZzsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKCphZ25vKSsrOwo+ICvCoMKgwqDCoMKgwqDCoH0K PiArwqDCoMKgwqDCoMKgwqByZXR1cm4gTlVMTDsKPiDCoH0KPiDCoAo+IMKgI2RlZmluZSBmb3Jf ZWFjaF9wZXJhZ19yYW5nZShtcCwgYWdubywgZW5kX2Fnbm8sIHBhZykgXAo+IC3CoMKgwqDCoMKg wqDCoGZvciAoKHBhZykgPSB4ZnNfcGVyYWdfZ2V0KChtcCksIChhZ25vKSk7IFwKPiArwqDCoMKg wqDCoMKgwqBmb3IgKChwYWcpID0geGZzX3BlcmFnX2dyYWIoKG1wKSwgKGFnbm8pKTsgXAo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKHBhZykgIT0gTlVMTDsgXAo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKHBhZykgPSB4ZnNfcGVyYWdfbmV4dCgocGFnKSwgJihh Z25vKSwgKGVuZF9hZ25vKSkpCj4gwqAKPiBAQCAtMjEzLDExICsyMjYsMTEgQEAgeGZzX3BlcmFn X25leHQoCj4gwqDCoMKgwqDCoMKgwqDCoGZvcl9lYWNoX3BlcmFnX2Zyb20oKG1wKSwgKGFnbm8p LCAocGFnKSkKPiDCoAo+IMKgI2RlZmluZSBmb3JfZWFjaF9wZXJhZ190YWcobXAsIGFnbm8sIHBh ZywgdGFnKSBcCj4gLcKgwqDCoMKgwqDCoMKgZm9yICgoYWdubykgPSAwLCAocGFnKSA9IHhmc19w ZXJhZ19nZXRfdGFnKChtcCksIDAsICh0YWcpKTsgXAo+ICvCoMKgwqDCoMKgwqDCoGZvciAoKGFn bm8pID0gMCwgKHBhZykgPSB4ZnNfcGVyYWdfZ3JhYl90YWcoKG1wKSwgMCwgKHRhZykpOwo+IFwK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChwYWcpICE9IE5VTEw7IFwKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChhZ25vKSA9IChwYWcpLT5wYWdfYWdubyArIDEs IFwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGZzX3BlcmFnX3B1dChwYWcpLCBc Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChwYWcpID0geGZzX3BlcmFnX2dldF90 YWcoKG1wKSwgKGFnbm8pLCAodGFnKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHhmc19wZXJhZ19yZWxlKHBhZyksIFwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg KHBhZykgPSB4ZnNfcGVyYWdfZ3JhYl90YWcoKG1wKSwgKGFnbm8pLCAodGFnKSkpCj4gwqAKPiDC oHN0cnVjdCBhZ2hkcl9pbml0X2RhdGEgewo+IMKgwqDCoMKgwqDCoMKgwqAvKiBwZXIgYWcgZGF0 YSAqLwo+IGRpZmYgLS1naXQgYS9mcy94ZnMvc2NydWIvYm1hcC5jIGIvZnMveGZzL3NjcnViL2Jt YXAuYwo+IGluZGV4IGQ1MGQwZWFiMTk2YS4uZGJiYzcwMzcwNzRjIDEwMDY0NAo+IC0tLSBhL2Zz L3hmcy9zY3J1Yi9ibWFwLmMKPiArKysgYi9mcy94ZnMvc2NydWIvYm1hcC5jCj4gQEAgLTY2Miw3 ICs2NjIsNyBAQCB4Y2hrX2JtYXBfY2hlY2tfcm1hcHMoCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBlcnJvciA9IHhjaGtfYm1hcF9jaGVja19hZ19ybWFwcyhzYywgd2hpY2hmb3Jr LCBwYWcpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGVycm9yIHx8Cj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNjLT5zbS0+c21fZmxhZ3Mg JiBYRlNfU0NSVUJfT0ZMQUdfQ09SUlVQVCkpIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhmc19wZXJhZ19wdXQocGFnKTsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhmc19wZXJhZ19yZWxlKHBhZyk7Cj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGVy cm9yOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqDCoMKg wqB9Cj4gZGlmZiAtLWdpdCBhL2ZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMgYi9mcy94ZnMvc2Ny dWIvZnNjb3VudGVycy5jCj4gaW5kZXggNDc3N2U3Yjg5ZmRjLi5lZjk3NjcwOTcwYzMgMTAwNjQ0 Cj4gLS0tIGEvZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYwo+ICsrKyBiL2ZzL3hmcy9zY3J1Yi9m c2NvdW50ZXJzLmMKPiBAQCAtMTE3LDcgKzExNyw3IEBAIHhjaGtfZnNjb3VudF93YXJtdXAoCj4g wqDCoMKgwqDCoMKgwqDCoGlmIChhZ2lfYnApCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB4ZnNfYnVmX3JlbHNlKGFnaV9icCk7Cj4gwqDCoMKgwqDCoMKgwqDCoGlmIChwYWcpCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhmc19wZXJhZ19wdXQocGFnKTsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGZzX3BlcmFnX3JlbGUocGFnKTsKPiDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuIGVycm9yOwo+IMKgfQo+IMKgCj4gQEAgLTI0OSw3ICsyNDksNyBAQCB4 Y2hrX2ZzY291bnRfYWdncmVnYXRlX2FnY291bnRzKAo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoH0K PiDCoMKgwqDCoMKgwqDCoMKgaWYgKHBhZykKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgeGZzX3BlcmFnX3B1dChwYWcpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4 ZnNfcGVyYWdfcmVsZShwYWcpOwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoZXJyb3IpIHsKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhjaGtfc2V0X2luY29tcGxldGUoc2MpOwo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGVycm9yOwo+IGRpZmYgLS1naXQg YS9mcy94ZnMveGZzX2ZzbWFwLmMgYi9mcy94ZnMveGZzX2ZzbWFwLmMKPiBpbmRleCA4OGE4ODUw NmZmZmYuLjEyMGQyODRhMDNmZSAxMDA2NDQKPiAtLS0gYS9mcy94ZnMveGZzX2ZzbWFwLmMKPiAr KysgYi9mcy94ZnMveGZzX2ZzbWFwLmMKPiBAQCAtNjg4LDExICs2ODgsMTEgQEAgX194ZnNfZ2V0 ZnNtYXBfZGF0YWRldigKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGluZm8tPmFn Zl9icCA9IE5VTEw7Cj4gwqDCoMKgwqDCoMKgwqDCoH0KPiDCoMKgwqDCoMKgwqDCoMKgaWYgKGlu Zm8tPnBhZykgewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZnNfcGVyYWdfcHV0 KGluZm8tPnBhZyk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhmc19wZXJhZ19y ZWxlKGluZm8tPnBhZyk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbmZvLT5w YWcgPSBOVUxMOwo+IMKgwqDCoMKgwqDCoMKgwqB9IGVsc2UgaWYgKHBhZykgewo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogbG9vcCB0ZXJtaW5hdGlvbiBjYXNlICovCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhmc19wZXJhZ19wdXQocGFnKTsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGZzX3BlcmFnX3JlbGUocGFnKTsKPiDCoMKgwqDCoMKg wqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiBlcnJvcjsKPiBkaWZmIC0tZ2l0 IGEvZnMveGZzL3hmc19pY2FjaGUuYyBiL2ZzL3hmcy94ZnNfaWNhY2hlLmMKPiBpbmRleCBkZGVh Y2NjMDRhZWMuLjBmNGEwMTRkZGVkMyAxMDA2NDQKPiAtLS0gYS9mcy94ZnMveGZzX2ljYWNoZS5j Cj4gKysrIGIvZnMveGZzL3hmc19pY2FjaGUuYwo+IEBAIC0xNzY3LDcgKzE3NjcsNyBAQCB4ZnNf aWN3YWxrKAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGVycm9yKSB7Cj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGFzdF9lcnJv ciA9IGVycm9yOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlmIChlcnJvciA9PSAtRUZTQ09SUlVQVEVEKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGZzX3BlcmFnX3B1dChw YWcpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHhmc19wZXJhZ19yZWxlKHBhZyk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiBkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19pd2Fsay5j IGIvZnMveGZzL3hmc19pd2Fsay5jCj4gaW5kZXggNzU1ODQ4NmY0OTM3Li5jMzE4NTdkOTAzYTQg MTAwNjQ0Cj4gLS0tIGEvZnMveGZzL3hmc19pd2Fsay5jCj4gKysrIGIvZnMveGZzL3hmc19pd2Fs ay5jCj4gQEAgLTU5MSw3ICs1OTEsNyBAQCB4ZnNfaXdhbGsoCj4gwqDCoMKgwqDCoMKgwqDCoH0K PiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoaXdhZy5wYWcpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHhmc19wZXJhZ19wdXQocGFnKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgeGZzX3BlcmFnX3JlbGUocGFnKTsKPiDCoMKgwqDCoMKgwqDCoMKgeGZzX2l3YWxr X2ZyZWUoJml3YWcpOwo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZXJyb3I7Cj4gwqB9Cj4gQEAg LTY4Myw3ICs2ODMsNyBAQCB4ZnNfaXdhbGtfdGhyZWFkZWQoCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gwqDCoMKgwqDCoMKgwqDCoH0K PiDCoMKgwqDCoMKgwqDCoMKgaWYgKHBhZykKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgeGZzX3BlcmFnX3B1dChwYWcpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4 ZnNfcGVyYWdfcmVsZShwYWcpOwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAocG9sbGVkKQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGZzX3B3b3JrX3BvbGwoJnBjdGwpOwo+IMKgwqDC oMKgwqDCoMKgwqByZXR1cm4geGZzX3B3b3JrX2Rlc3Ryb3koJnBjdGwpOwo+IEBAIC03NzYsNyAr Nzc2LDcgQEAgeGZzX2lub2J0X3dhbGsoCj4gwqDCoMKgwqDCoMKgwqDCoH0KPiDCoAo+IMKgwqDC oMKgwqDCoMKgwqBpZiAoaXdhZy5wYWcpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHhmc19wZXJhZ19wdXQocGFnKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGZz X3BlcmFnX3JlbGUocGFnKTsKPiDCoMKgwqDCoMKgwqDCoMKgeGZzX2l3YWxrX2ZyZWUoJml3YWcp Owo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZXJyb3I7Cj4gwqB9Cj4gZGlmZiAtLWdpdCBhL2Zz L3hmcy94ZnNfcmVmbGluay5jIGIvZnMveGZzL3hmc19yZWZsaW5rLmMKPiBpbmRleCA1N2JmNTlm ZjQ4NTQuLmY1ZGM0NmNlOTgwMyAxMDA2NDQKPiAtLS0gYS9mcy94ZnMveGZzX3JlZmxpbmsuYwo+ ICsrKyBiL2ZzL3hmcy94ZnNfcmVmbGluay5jCj4gQEAgLTkyNyw3ICs5MjcsNyBAQCB4ZnNfcmVm bGlua19yZWNvdmVyX2NvdygKPiDCoMKgwqDCoMKgwqDCoMKgZm9yX2VhY2hfcGVyYWcobXAsIGFn bm8sIHBhZykgewo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZXJyb3IgPSB4ZnNf cmVmY291bnRfcmVjb3Zlcl9jb3dfbGVmdG92ZXJzKG1wLCBwYWcpOwo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaWYgKGVycm9yKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZnNfcGVyYWdfcHV0KHBhZyk7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZnNfcGVyYWdfcmVsZShwYWcpOwo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4g ZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfdHJhY2UuaCBiL2ZzL3hmcy94ZnNfdHJhY2UuaAo+IGlu ZGV4IDdkYzU3ZGI2YWE0Mi4uZjBiNjIwNTRlYTY4IDEwMDY0NAo+IC0tLSBhL2ZzL3hmcy94ZnNf dHJhY2UuaAo+ICsrKyBiL2ZzL3hmcy94ZnNfdHJhY2UuaAo+IEBAIC0xODksNiArMTg5LDkgQEAg REVGSU5FX0VWRU5UKHhmc19wZXJhZ19jbGFzcywgbmFtZSzCoFwKPiDCoERFRklORV9QRVJBR19S RUZfRVZFTlQoeGZzX3BlcmFnX2dldCk7Cj4gwqBERUZJTkVfUEVSQUdfUkVGX0VWRU5UKHhmc19w ZXJhZ19nZXRfdGFnKTsKPiDCoERFRklORV9QRVJBR19SRUZfRVZFTlQoeGZzX3BlcmFnX3B1dCk7 Cj4gK0RFRklORV9QRVJBR19SRUZfRVZFTlQoeGZzX3BlcmFnX2dyYWIpOwo+ICtERUZJTkVfUEVS QUdfUkVGX0VWRU5UKHhmc19wZXJhZ19ncmFiX3RhZyk7Cj4gK0RFRklORV9QRVJBR19SRUZfRVZF TlQoeGZzX3BlcmFnX3JlbGUpOwo+IMKgREVGSU5FX1BFUkFHX1JFRl9FVkVOVCh4ZnNfcGVyYWdf c2V0X2lub2RlX3RhZyk7Cj4gwqBERUZJTkVfUEVSQUdfUkVGX0VWRU5UKHhmc19wZXJhZ19jbGVh cl9pbm9kZV90YWcpOwo+IMKgCgo=