From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id iN3FH2KuiWO2Oh8AWB0awg (envelope-from ) for ; Fri, 02 Dec 2022 02:50:58 -0500 Received: by simark.ca (Postfix, from userid 112) id 7DDD71E124; Fri, 2 Dec 2022 02:50:58 -0500 (EST) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=tLmnRHFl; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 6D4F51E0D3 for ; Fri, 2 Dec 2022 02:50:56 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 17606385B50F for ; Fri, 2 Dec 2022 07:50:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 17606385B50F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669967455; bh=J3Ed92xYXSeKEHSaeGEc+y2Ou/N2Nq2ypemxwhLUBhg=; h=To:CC:Subject:Date:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=tLmnRHFl/7sXqe8HSbw4NGgeTPbKWeFr99tcKTUBQv3kdbvCyod9tWgiUUYO2OZVd 286EB1bMJ9s9djuHd1DbFw6pZL6mFM8vrjpiNWdrQ/X+kR7+rlP7DNepI584fZILZ3 NhU0PMncAlzkcgg4+wsFy8OiuChn6uVEnKR31bwo= Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 1779C3858434 for ; Fri, 2 Dec 2022 07:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1779C3858434 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2B27Veq7020015; Fri, 2 Dec 2022 07:50:28 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3m7d260drt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 02 Dec 2022 07:50:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n/ZGCgkJqGYPsvPKjnADWoMin/0SGy1mZ3JMb76qt9++guqOc9//hije9YvOh7OYQScjznQlc7tsvV+/sLPtbkqcxmp0cowb9S1UhOXCbM9cwjFOrz2jGA1TCyPwslAEAzmXPfidAy3vPhp0I25yl2k8vusDfAg5xlL2jFBNTvfZatBiQbuiVOamsg9AITwt7Avp+II0h0dYX1/AxtcKq68bRgy9AmPPBxrVch7dCJxdOXYg/DNWtax3LZSoZdT0fhY6Sgtu2/f1YNYyFSQ9qGXMies4NYA82GYeEVXNt4liqP0VU3+uM+TIcNI/8tJLKCJ2RUjWwg81ZJrritorpA== 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=jCAi+yU9KyP2mLQHt08nW14NohpToaWpCGicgRxmU0Y=; b=ggKesWlOtArAh6QzYnCL6yCoHwS55N1nUICYcxQTAoFiBxJAWEywfHPAn6c2YtvgBMi+ART0P+6/uYZDmQJKtnwFIdOw6xRIb7FN9FsVVAWhlqXMbW2wHe86qPNsbqLyTnjB9oVkmxXx4hu1fs6UhP7Q98BY8MEnDbBm+gL/SEEZXJhGPXGkGJquzrV5kyp042daSJAC2KLmlRe+ij6oA529PrCTObUmsih3ub+M34hpfEENBKu2COnxVhHAf5uzZUZzW6JJNyAHXnlj2m/pd2qV6bF54bmhzPdVkyT5ESH6/ruMkLLmZOOJrij6toKrdrh6SmIMR8v60VHx0CopBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from CH2PR15MB3544.namprd15.prod.outlook.com (2603:10b6:610:5::26) by CY4PR15MB1366.namprd15.prod.outlook.com (2603:10b6:903:f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.20; Fri, 2 Dec 2022 07:50:22 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::e4e:1586:a24a:764a]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::e4e:1586:a24a:764a%7]) with mapi id 15.20.5880.010; Fri, 2 Dec 2022 07:50:21 +0000 To: Ulrich Weigand , "simark@simark.ca" , "gdb-patches@sourceware.org" CC: Sangamesh Mallayya Subject: Re: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Thread-Topic: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Thread-Index: AQHY6DximDPpCqTL9kGyFvcEZokFBq4jlIiAgBFljYeAAA2HgIAIORaygAMrdQCACMPAdYADi8KAgAAbf+aAABUYgIAADhDtgAjHItiAAgYnAIACq/WK Date: Fri, 2 Dec 2022 07:50:21 +0000 Message-ID: References: <0866c91331b08f2870fad6e6a13fbcd1a9823b48.camel@de.ibm.com> <5df6ab523034d1997ffda5bb06c3bd87777dcccb.camel@de.ibm.com> <0dba07cfad3da44c0281c53702d73f807bca7d06.camel@de.ibm.com> <5956432ab1e0eedc8f65e01d3793a80ccf3a3a1f.camel@de.ibm.com> <139ff3da5e35905c963869569bebf280733740c2.camel@de.ibm.com> In-Reply-To: <139ff3da5e35905c963869569bebf280733740c2.camel@de.ibm.com> Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR15MB3544:EE_|CY4PR15MB1366:EE_ x-ms-office365-filtering-correlation-id: f39658a3-f29b-40ad-b670-08dad439dd66 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CT0JaxEOrkeysqvStVwg8Mr+l+VmA9kuVDKd1AzwS9LposVq+I8VYL9W7iB5ONHh2YI7DlVeWfv6XcTxMQBd4VHC2PfeM+zMYAOsvKn13Zv3gj5Al2SIsCmb7Ia4dYGBXUmFsKYdByX1hIz8iRSFBVLzh35TC7/V0o0/Q4zijmMOiu4JacbkV01XFzsnkF+d+k19+esNqjoAexrE3lJZ4uxYzsQYbDrsNXvwyzfjMjc6D0piHPe2vOwvPUcbmPHfOYd3GEAi9IU25flAh6J5qSBQUVU/VQchAkph1eJHyvvPy//tuDwy5dm8IQkP4LGkCmQiXwDSbobjupP8GCenXg6eGpdoQhqHSjykV82cjYxAAi9qpT8IurSCXWzl3/+N+AxcahaSx9gsInbgTLtHZm6/aolpf4gbR4Qme45/WIAORZeQpzisLi+7YYL8419k4YScdXNsmDQQmGK2bGMwwGgUl3LS4oHo2/gopp2N/8kwujLJHtmDE8OKXT1d78LDQYDdGZ9oQu7M/OKALo6UawTl2ePISSaP90Ox8qpZDOwi6B5C72N19ldmKuSES5dO59S1eYjlDYL8aoqMUf4DjWoRPpoqblR3Cqfy0DrHX5uV9jIU2ydYk/z+Nq2avNXijZRrCRZrhDXaNgQBwIUTErHxvJdqVfUleciS76oZcLc4fKAyKwZKQXaZfAZAqlg8+o2Gv3ghyM0kzyqtp5v6SN8z4ToOaTqLK0TYz01MU9Q= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR15MB3544.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(396003)(39860400002)(366004)(346002)(376002)(136003)(84040400005)(451199015)(38070700005)(33656002)(66556008)(55016003)(166002)(6506007)(186003)(64756008)(91956017)(66476007)(76116006)(7696005)(53546011)(8676002)(71200400001)(4326008)(66946007)(30864003)(316002)(38100700002)(110136005)(99936003)(8936002)(52536014)(66446008)(86362001)(5660300002)(19627405001)(83380400001)(41300700001)(9686003)(2906002)(122000001)(478600001)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N3M0NnNHcW0zVTJZQVk4NW9PVWVjNWk5N09hLzdONFYxZmNJMWZyYVg2NHAy?= =?utf-8?B?Vi9hMnNsdlFqYzNKVitvQldQcDQvRzloeUVqcnE1bzFMMmdMVnZRTmlLelJZ?= =?utf-8?B?dWw2am9MeUdyY05EL3IyeDJHdGN5NEhueVRNSnE0Nks3UDJDbjcza29uM3pU?= =?utf-8?B?SWljWnR3bUZvZ25Ba3h1VytRTDRlalRjTkI0SXpnbWRlUzVOUFI2ZDk1NnpW?= =?utf-8?B?WXNKSG5LMjJRZVBGMkxBSXVTVmhNWUZRSG5BYktTdGUvYVppVzJrRW9rWWhJ?= =?utf-8?B?b1pqWlU4UGRFVWpuNEJucS9uWnQrdExOR3VyYUJIclZNWVFxNVVaaXdaWmtK?= =?utf-8?B?TjRGdnBHSTFNZ1hxWEhSeGtmeS9xa3Jka2FKMmlVVnB2TUdpQ2FvUVlJSk5q?= =?utf-8?B?Q0RFWnhrNDBGVE9VWGMreGVXY3N4ZVVwcGVkOVVWR1VrMXhYckRVTUhDOGVO?= =?utf-8?B?NnFmbGdleEEvd0ZBbXQwbXcrb3BkSGRNZG5OWWpmbWZOdXdnVmNvVWNaM1A0?= =?utf-8?B?UFBkdkdTTUtiUTNiTmF4UUYreXdKZG9vRE54QjFZNUFFalN3S04yckR2a1gv?= =?utf-8?B?eFM1QzVIaEFaZU1GWWFWSUVLaU0xSVdXeGFzeUhNa2YyNE9ib0ZsVW15TFJP?= =?utf-8?B?ZmNIUTI1SlNRV0pycXYxdG1tdDUydVJhbDd2c0h3bmJQVDdSaDVXUGNGb3FS?= =?utf-8?B?M1ZIaUJkTXFsTFZxdVlBQldaeVBiOEN6K2tyUUIvenorV0U5Uk9sd2xMdXM1?= =?utf-8?B?bkZPdzFJcFJERnNEV0JjeEE3R3RDMmtDamhtQmxXS2F2Z0JUZmZLWUVmY1pH?= =?utf-8?B?YjRqZCtFOFIxSHBZQ2Qzc1N6R0FPNzV3ZnRTOUZ6SnU1WDVoSTZ4QzRaZUg3?= =?utf-8?B?eldXQVNnZ1JEclJCZk1UYzVkVWl3MlFqSVZFV0pVaGY4K0E1ekc2S1hHRE5I?= =?utf-8?B?dGVWRFNYckhaZXovNTFrbmZKYjN1dXFsUVlJY3RUNXJpdTBmUjZuSlRyY0hT?= =?utf-8?B?OXM2b0VNaHhkU2l0MENWdEcyRDBDNHhkV3hCalI4M3RxRk9MRVFXZWJacG5h?= =?utf-8?B?ZW9DbmpGaG5MejVwemRDY3o2d3BneWlzbDhpMDhWMDBrK0dhZjFWS1FtSmFQ?= =?utf-8?B?N0ZoVisrdlErZmdkeWwzNVBCV2psVDRyTEFtNm5ZanBrU3dpTkNVa2h5TVk4?= =?utf-8?B?NXo2ODdHUEluR2toYTZLN0IzbTdTK2h0TElTOXZBWVdDUFBraEJGcTk3ZXNS?= =?utf-8?B?NVl6QU05VFJoV3dSbEo3UitJTE1UcTJtWVVSMjkvek03UlIxVlVibm5RTFFF?= =?utf-8?B?NWxQWlVGeGVGZFkzblI5UXlkWW5hOW5PaUlFS1RWa3FHTDM2aWNnQXNqdjVa?= =?utf-8?B?eGpQZ1NLUUNUZGxMaE1FS2R4bDZzK2wyRzVtNG9MU2pyV0pPR055WGZib0tT?= =?utf-8?B?cEVhTXRST0Vzc2pseEc1bjdFVlpXRG9oVVFOdkxrdHVUL0pWaWM4aUJqR2Rw?= =?utf-8?B?L3dtSmJJbEE1SytJanBXdGFtT3Q0eEV6TlJQMHJiSlVjTlRwSUVQeXE3Rm4v?= =?utf-8?B?NzgzTm9aQ3lldTJ1blVKaTljeXF4Y3I4Zkt5d0tjaEV3a3JpVTBLZWE5ckNs?= =?utf-8?B?TTkwSW05TmltWmk1N3E4Z1p2aFVHd1NGdVN6Z3AwU0N2SUhzY1RQaUlJc1dR?= =?utf-8?B?RzB1MWFaTEY5Qm9WdHA4ZDRrYzdUd2J4SzFLT2srS1kzNElCQ1ZYNmJydzI1?= =?utf-8?B?Ukx4b21WRE1UaE5OaGRQbk9ENkZLTG0wME13VS9RQVFmaXBGM25oVDZ4bFZv?= =?utf-8?B?T0czYVl0T1VyaDVIdlNFendKTEk5MkRBWXp1MTc2Sm9QY0g1RmNaR09EbE11?= =?utf-8?B?c3lSVVR0SlhibTE5WUcxUnQzTG1xbnZzYkRmb1NSMGVjRnpzT2NXYS9zL3VZ?= =?utf-8?B?eWI5RUo4WjdhaWs0UytkV2hWRThLRi9wRHZ4WGd6bzhJN20yTkFUVzhpVTZH?= =?utf-8?B?MzBiZkorSnFxQy9WSURNWGlkRjdNWnFBMVZCMEpMcTA3YXNGYnpTT3VUb25L?= =?utf-8?B?QUlTYnliR2R4ckNDNXYrZEZzblJLT21jTC94SzM4TFVLOHRwNFdtRW1UbVZz?= =?utf-8?B?Sy9QS2J0cmZQNEZhZFNFcjFxUmcxTkZRV0ZYQ3BJYVBhSmEvYzFNamJtT0o1?= =?utf-8?Q?QPPx6cRk7HSXYz14S+wM0qwMrcls/bZGmqoqwn4cFnmg?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_" X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR15MB3544.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f39658a3-f29b-40ad-b670-08dad439dd66 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2022 07:50:21.8910 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gW70TOCpf/EdvafW5nhQKGmeuY7DCl2TGEcZO1BA2yv5vw6Q8VzwgEm/1HAkuBNHR6+N3nmEcomc2TI0qsUTFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1366 X-Proofpoint-ORIG-GUID: CAyZyK7vDOiy3AGLJWKwRZMm791ku5xd X-Proofpoint-GUID: CAyZyK7vDOiy3AGLJWKwRZMm791ku5xd X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-02_04,2022-12-01_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 adultscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 impostorscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212020057 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Aditya Kamath1 via Gdb-patches Reply-To: Aditya Kamath1 Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" --_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgVWxyaWNoIGFuZCBjb21tdW5pdHksDQoNClBsZWFzZSBmaW5kIGF0dGFjaGVkIHRoZSBuZXcg cGF0Y2ggW1NlZTotIDAwMDEtRml4LW11bHRpLXRocmVhZC1kZWJ1Zy1idWctaW4tQUlYLnBhdGNo IF0NCg0KU28gbm93IHRoZSBwcm9wb3NlZCBwYXRjaCBhdHRhY2hlZCBpbiB0aGlzIGVtYWlsIHdv cmtzIGZpbmUgZm9yIHNpbmdsZSBwcm9jZXNzIGFuZCBtdWx0aSBwcm9jZXNzIGNvZGUgd2l0aCBk ZXRhY2ggZm9yayBvbiBhbmQgb2ZmIG9wdGlvbnMuIEtpbmRseSBzZWUgb3V0cHV0IDEgYW5kIHBy b2dyYW0gMSBmb3Igc2luZ2xlIHByb2Nlc3MgY2FzZSBhbmQgcHJvZ3JhbSAyIGFuZCBvdXRwdXRz IDIsIDMgYW5kIDQgZm9yIG11bHRpIHByb2Nlc3MgY2FzZSBbSXQgcG9pbnRzIG91dCB0aGF0IGlm IGEgcHJvY2VzcyBpcyBhIHRocmVhZCwgaXQgaXMgYSB0aHJlYWQuIEl0IGlzIGhpZ2hsaWdodGVk IGluIGJvbGRdLiBUaGUgdW5pdCB0ZXN0IGNhc2VzIHJ1biB3ZWxsLiBPdXRwdXQgNCBpcyBmb2xs b3dpbmcgY2hpbGQuIEl0IGlzIGF0dGFjaGVkIHRvIGJlIHN1cmUgdGhpbmdzIHdvcmsgaW4gYWxs IGNhc2VzLiAgVGhlIHByb3Bvc2VkIHBhdGNoIGhhcyBhIHBpZF90b19zdHIgKCkgZnVuY3Rpb24g dGhhdCBoZWxwcyB1cy4gU28sIHdoZW4gaW4gYSBtdWx0aSBwcm9jZXNzIGNhc2UgYSBzd2l0Y2gg aGFwcGVucyBiZXR3ZWVuIHByb2Nlc3MgZHVlIHRvIGFueSBldmVudCB0aGUgY29udHJvbCBjaGVj a3MgaW4gb3VyIHJzNjAwMC1haXgtbmF0LmMgZm9yIHRocmVhZCBvciBwcm9jZXNzIGluZm9ybWF0 aW9uIGZyb20gdGhyZWFkX3RhcmdldF9pZF9zdHIgKCkgZnJvbSB0aHJlYWQuYyBmaWxlLg0KVGhp cyBwYXJ0IGlzIG5vdyBzb2x2ZWQuDQoNClRoZXJlIGFyZSBzb21lIG9wdGltaXNhdGlvbnMgZm9y IHdoaWNoIEkgbmVlZCB5b3VyIGFkdmljZSBzaW5jZSB5b3UgYXJlIHRoZSBleHBlcnQuDQoNClNv IGhlcmUgYXJlIG15IHJlYXNvbnMuLg0KDQo+Pm91cnN0YXR1cy0+c2V0X2ZvcmtlZCAocHRpZF90 IChwaWQpKTsNCj4+LeKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgiAgcmV0dXJuIHB0 aWRfdCAocGFyZW50X3BpZCk7DQo+PivigILigILigILigILigILigILigILigILigILigILigIIg IHJldHVybiBmaW5kX3RoZV9yZXR1cm5fcHRpZCAocGFyZW50X3BpZCk7DQo+Pg0KPj5LaW5kbHkg bm90ZSB0aGF0IHRoZSBjb250cm9sIHdpbGwgYWx3YXlzIG5vdCBjb21lIGZyb20gYWl4LXRocmVh ZC5jDQo+PmZvciBzdWNoIGV2ZW50cy4gSGVuY2UsIHdlIGNhbm5vdCB0YWtlIGNhcmUgb2YgdGhl IHNhbWUgdGhlcmUsDQo+PnRob3VnaCBpdCB3aWxsIGJlIGEgcmVsaWVmIGlmIHdlIGNhbiBkbyB0 aGF0Lg0KDQo+SSdtIG5vdCBzdXJlIHdoeSBpdCBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIHRoaXMg aW4gdGhlIHByb2Nlc3MgbGF5ZXINCj4ocnM2MDAwLWFpeC1uYXQuYykgaW5zdGVhZCBvZiB0aGUg dGhyZWFkIGxheWVyIChhaXgtdGhyZWFkLmMpLg0KPldoYXQgc3BlY2lmaWNhbGx5IGJyZWFrcyBp ZiB5b3UgZG8gbm90IGhhdmUgdGhlc2UgcnM2MDAwLWFpeC1uYXQuYw0KPmNoYW5nZXM/DQoNClNv LCBpZiB5b3Ugb2JzZXJ2ZSBvdXRwdXQgMyBvciA0LCB0aGUgcHJvZ3JhbSBmaXJzdCBtdWx0aSB0 aHJlYWRzLCBJIG1lYW4gdGhyZWFkIGV2ZW50cyBhcmUgaGFuZGxlZCBmaXJzdCBhbmQgdGhlbiB0 aGUgdGhyZWFkcyBmb3JrLiBTbywgd2hlbiB0aGlzIGhhcHBlbnMsIEkgY2Fubm90IHJldHVybiBw dGlkX3QgKHBhcmVudF9waWQpLiBJZiBJIGRvIHNvLCB0aGUgR0RCIGNvcmUgd2lsbCB0cmVhdCBp dCBhcyBhIG5ldyBwcm9jZXNzIGFuZCBhZGQgaXQgaW4gbXkgdGhyZWFkbGlzdCBhcyBzYXkgcHJv Y2VzcyAxMDAgZGVzcGl0ZSBleGlzdGVuY2Ugb2YgJ3RocmVhZCAxJyByZXByZXNlbnRpbmcgdGhl IHNhbWUuIFNvLCBJIG5lZWQgdG8gY29ycmVjdGx5IHNlbmQgd2hpY2ggdGhyZWFkIGRpZCB0aGUg Zm9yayAoKSBldmVudCBvciB3aGljaCB0aHJlYWQgb2YgdGhlIHByb2Nlc3MgaXMgdGhlIG9uZSB3 aG8gZ2F2ZSBiaXJ0aCB0byBhIG5ldyBpbmZlcmlvciBwcm9jZXNzIFtzYXkgMiBvciAzIGluIG91 dHB1dCAzIGJlbG93XSwgSSBtZWFuIHdoaWNoIHRocmVhZCBjYXVzZWQgdGhlIG11bHQgcHJvY2Vz cyBldmVudCB3aGVuIHRoZSBwcm9jZXNzIGlzIG11dGxpIHRocmVhZGVkLiBUaGlzIGhhcyB0byBo YW5kbGVkIGhlcmUgYXMgY29udHJvbCBmcm9tIHRhcmdldC5jIGNvbWVzIGRpcmVjdGx5IHRvIHJz NjAwMC1haXgtbmF0Ojp3YWl0IGFuZCBub3QgdGhyb3VnaCBhaXgtdGhyZWFkLmM6OndhaXQgc2lu Y2UgZm9yayAoKSBpcyBhIHByb2Nlc3MgZXZlbnQuLg0KDQo+SWYgeW91ICpkbyogbmVlZCB0byBo YW5kbGUgTFdQcyAoa2VybmVsIHRocmVhZCBJRHMpIGluIHRoZSBwcm9jZXNzDQo+bGF5ZXIgKHRo aXMgY2FuIGJlIGEgcmVhc29uYWJsZSBjaG9pY2UsIGFuZCBpdCBkb25lIGJ5IHNldmVyYWwgb3Ro ZXINCj5uYXRpdmUgdGFyZ2V0cyksIHRoZW4gaXQgc2hvdWxkIGJlICpjb25zaXN0ZW50KiwgYW5k ICphbGwqIExXUCBoYW5kbGluZw0KPnNob3VsZCBiZSBpbiB0aGUgcHJvY2VzcyBsYXllci4gSW4g cGFydGljdWxhciwgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcw0KPmRvZXMgaXQgbWFrZSBzZW5zZSB0 byBkdXBsaWNhdGUgdGhlICJmaW5kIGN1cnJlbnQvc2lnbmFsbGVkIHRocmVhZCINCj5jb2RlIGlu ICpib3RoKiB0aGUgcHJvY2VzcyBhbnkgdGhyZWFkIGxheWVycy4NCg0KVGhpcyBub3Qgc3RyYWln aHRmb3J3YXJkIHRvIGRvLiBUaGUgcmVhc29uIGJlaW5nIHNheSBvdXIgYXBwbGljYXRpb24gaXMg cHRocmVhZGVkIFdlIG5lZWQgb3VyIHN5bmNfdGhyZWFkbGlzdHMoKSBjb2RlIHRvIGRldGVjdCBt dWx0aXBsZSB0aHJlYWRzIGFuZCBzeW5jLi4gV2UgY2Fubm90IGhhbmRsZSB0aGlzIGluIHJzNjAw MC1haXgtbmF0LmMgd2l0aCB0aGUgY3VycmVudCBkZXNpZ24gb2YgdGhlIGNvZGUuLiBMZXQncyBz YXkgY2hpbGQgcHJvY2VzcyBpcyBtdWx0aS10aHJlYWRlZCB0aGluZ3MgY2FuIGdldCBjb21wbGV4 Li4gSXQgd2lsbCByZXF1aXJlIHVzIHRvIG1vdmUgdGhhdCB3aG9sZSBHREIgbGlzdCBhbmQgUHRo cmVhZCBsaXN0IHN5bmMgY29kZSB0byByczYwMDAtYWl4LW5hdC5jIGNvZGUuIFRoZSBlc3NlbmNl IG9yIG1vc3Qgc2VsbGluZyBwcm9kdWN0IG9yIHRoZSBVU1AgW1VuaXF1ZSBTZWxsaW5nIFByb3Bv c2l0aW9uXSBvZiBhaXgtdGhyZWFkLmMgY29kZSB3aWxsIGJlIGxvc3QuDQoNCkxldCBtZSBrbm93 IHdoYXQgeW91IHRoaW5rIG9mIHRoaXMsIGFuZCBJIHdpbGwgbW9kaWZ5IHRoaXMgcGF0Y2ggYXMg cGVyIGhvdyB5b3UgZ3VpZGUgb3Igc3VnZ2VzdC4uIFRoaXMgaXMgd2hlcmUgSSB3YW50ZWQgdG8g cmVhY2ggb3V0IHRvIGFsbCBvZiB5b3UgaW4gdGhlIGNvbW11bml0eSBhcyBJIHRoaW5rIHRoaXMg bWlnaHQgYmUgYSBjb2RlIGRlc2lnbiBjaGFuZ2UgbmVlZGVkLg0KDQoNCj4+W1N3aXRjaGluZyB0 byBwcm9jZXNzIDE2Nzc3NjIwXQ0KDQo+VGhpcyBvdXRwdXRzIGluZmVyaW9yX3B0aWQgLi4uDQoN ClllcywgeW91IHdlcmUgcmlnaHQNCg0KPj4qIDEuMSAgcHJvY2VzcyAxNjc3NzYyMCAgMHhkMDU5 NWZiMCBpbiBfcF9uc2xlZXAgKCkNCj4+ICAgZnJvbSAvdXNyL2xpYi9saWJwdGhyZWFkLmEoc2hy X3hwZzUubykNCj4+ICAxLjIgIHByb2Nlc3MgMTY3Nzc2MjAgIDB4ZDA1OTVmYjAgaW4gX3BfbnNs ZWVwICgpDQo+PiAgIGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQo+PiAg MS4zICBwcm9jZXNzIDE2Nzc3NjIwICAweGQwNTk1ZmIwIGluIF9wX25zbGVlcCAoKQ0KPj4gICBm cm9tIC91c3IvbGliL2xpYnB0aHJlYWQuYShzaHJfeHBnNS5vKQ0KPj4gIDIuMSAgcHJvY2VzcyA4 MzIzNTcwICAgMHhkMDU5NGZjOCBpbiA/PyAoKQ0KPj4gIDMuMSAgcHJvY2VzcyAxNzk1NzE3MiAg MHhkMDU5NGZjOCBpbiA/PyAoKQ0KDQo+Li4uIGFuZCB0aGlzIG91dHB1dHMgdGhlIHB0aWQgdmFs dWVzIGZvciB0aG9zZSB0aHJlYWRzLg0KDQo+SWYgaXQgc2F5cyAicHJvY2VzcyAuLi4iLCB0aGVu IHRob3NlIHB0aWQgdmFsdWVzIGhhdmUgbm90DQo+cHJvcGVybHkgYmVlbiBzd2l0Y2hlZCBvdmVy IHRvIHRoZSAocGlkLCBsd3AsIHRpZCkgZm9ybWF0Lg0KDQo+WW91IHNob3VsZCB2ZXJpZnkgdGhh dCB0aGUgc3luY190aHJlYWRsaXN0cyBjb2RlIGhhbmRsZXMNCj5hbGwgbXVsdGktcHJvY2VzcyBj YXNlcyBjb3JyZWN0bHkuICBJIGhhdmVuJ3QgbG9va2VkIGF0DQo+dGhpcyBpbiBkZXRhaWwsIGJ1 dCBhcmUgeW91IHN1cmUgdGhhdCBoZXJlOg0KDQo+PkBAIC04NDEsOCArODI5LDIyIEBAIHN5bmNf dGhyZWFkbGlzdHMgKGludCBwaWQpDQogPj4gICAgICAgICAgICB9DQogPj4gICAgICAgICAgZWxz ZSBpZiAoY21wX3Jlc3VsdCA+IDApDQogPj4gICAgICAgICAgICB7DQo+Pi0gICAgICAgICAgICAg ZGVsZXRlX3RocmVhZCAoZ2J1ZltnaV0pOw0KDQoNCj55b3UgbmV2ZXIgYWNjaWRlbnRhbGx5IHN3 aXRjaCB0aGUgKnBpZCogcGFydCAoaWYgImdwdGlkIg0KPmJlbG93cyB0byBhIGRpZmZlcmVudCBw aWQgdGhhbiAicHB0aWQiKT8NCg0KU28sIHRoaXMgaXMgbm90IHRoZSByZWFzb24uIEkgaGF2ZSBh ZGRlZCBhbiBhc3NlcnRpb24gaGVyZSBqdXN0IHRvIGJlIHN1cmUuIEkgZ2V0IHdoYXQgeW91IGFy ZSB0aGlua2luZy4gV2hpbGUgZGVidWdnZWQgaW4gZGVwdGggbGFzdCB0d28gZGF5cyBJIHJlYWxp c2VkIG91ciBwaWRfdG9fc3RyIGlzIG5lZWRlZCBpbiByczYwMDAtYWl4LW5hdC5jIGFzIGNvbnRy b2wgY29tZXMgaGVyZSBpbiBzZWFyY2ggb2YgaXQuIElmIGl0IGRvZXNuJ3QgR0RCIHRyZWF0cyBh bGwgdGhyZWFkcyBhcyBwcm9jZXNzLiBJdCBpcyB0aGUgcGF0Y2guIEtpbmRseSBzZWUgaXQgYW5k IHRoZSBvdXRwdXRzIFszIGFuZCA0IGJlbG93IHRoaXMgZW1haWxdIGFzIHdlbGwuDQoNCj5IbW0u ICBTbyB3aGVuICJ3YWl0IiByZXR1cm5zLCBpdCBuZWVkcyB0byBkZXRlcm1pbmUgd2hpY2ggdGhy ZWFkDQo+dHJpZ2dlcmVkIHRoZSBldmVudCB0aGF0IGNhdXNlZCBwdHJhY2UgdG8gc3RvcC4gIE9u IExpbnV4LCAid2FpdCINCj53aWxsIGFjdHVhbGx5IHJldHVybiB0aGUgTFdQIG9mIHRoYXQgdGhy ZWFkLCBzbyBpdCBjYW4gYmUgZGlyZWN0bHkNCj51c2VkLiAgSXQgc2VlbXMgb24gQUlYLCAid2Fp dCIgb25seSByZXR1cm5zIGEgUElELCBhbmQgeW91IGRvIG5vdA0KPmltbWVkaWF0ZWx5IGtub3cg d2hpY2ggdGhyZWFkIGNhdXNlZCB0aGUgZXZlbnQ/DQoNCj5JbiB0aGF0IGNhc2UsIEkgY2FuIHNl ZSB3aHkgeW91J2QgaGF2ZSB0byBjb25zaWRlciBTSUdJTlQgYXMgd2VsbA0KPmFzIFNJR1RSQVAu IEhvd2V2ZXIsIGl0IHNlZW1zIHRvIG1lIHRoYXQgZXZlbiB0aG9zZSB0d28gYXJlIG5vdCB0aGUN Cj4qb25seSogY2FzZXMgdGhhdCBjYW4gY2F1c2UgIndhaXQiIHRvIHJldHVybiAtIGRvZXNuJ3Qg KmFueSogc2lnbmFsDQo+KHBvdGVudGlhbGx5KSB0cmlnZ2VyIGEgcHRyYWNlIGludGVyY2VwdCAo Y2F1c2luZyB3YWl0IHRvIHJldHVybik/DQoNCj5CdXQgdGhhdCdzIHByb2JhYmx5IGEgbW9yZSBn ZW5lcmFsIHByb2JsZW0sIGFuZCB3b3VsZG4ndCBvY2N1ciBpbg0KPnRoaXMgc2ltcGxlIHRlc3Qg Y2FzZS4NCg0KRXhhY3RseS4gU28gSSB0cmllZCBkZWJ1Z2dpbmcgZmV3IGV4YW1wbGVzIGNhdXNp bmcgYSBmZXcgb3RoZXIgc2lnbmFscyBhcyBtZW50aW9uZWQgaW4gdGhpcyBkb2N1bWVudCBbaHR0 cHM6Ly93d3cuaWJtLmNvbS9kb2NzL2VuL3Nkay1qYXZhLXRlY2hub2xvZ3kvOD90b3BpYz1yZWZl cmVuY2Utc2lnbmFsLWhhbmRsaW5nXS4gSW4gQUlYIHdlIGhhdmUgbW9zdCBvZiB0aGVtIG1lbnRp b25lZCBpbiB0aGUgbGluay4gSXQgZG9lcyBub3QgYmxvY2sgdXMgZnJvbSBkb2luZyB0aGluZ3Mg b3IgY3Jhc2hlcyBpbmNhc2Ugb2YgYSBzZWdtZW50IGZhdWx0IHNpZ25hbCBbZnJvbSBvdXIgZGVi dWdnZXIgY29kZV0uIEFib3J0IGFsc28gd29ya3MgZmluZS4gTGV0IG1lIGtub3cgd2hhdCB5b3Ug dGhpbmsuDQoNCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpQcm9ncmFtMTotIFtDcmVkaXRzIGdkYi50aHJlYWRzL2Nv bnRpbnVvdXMtcGVuZGluZy5jXQ0KDQoNCiNpbmNsdWRlIDxzdGRpby5oPg0KDQojaW5jbHVkZSA8 dW5pc3RkLmg+DQoNCiNpbmNsdWRlIDxzdGRsaWIuaD4NCg0KI2luY2x1ZGUgPHB0aHJlYWQuaD4N Cg0KI2luY2x1ZGUgPGFzc2VydC5oPg0KDQoNCnB0aHJlYWRfYmFycmllcl90IGJhcnJpZXI7DQoN Cg0KI2RlZmluZSBOVU1fVEhSRUFEUyAzDQoNCg0Kdm9pZCAqDQoNCnRocmVhZF9mdW5jdGlvbiAo dm9pZCAqYXJnKQ0KDQp7DQoNCiAgLyogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGJyZWFrcG9pbnQg aXMgb25seSBoaXQgYWZ0ZXIgYm90aCB0aHJlYWRzDQoNCiAgICAgYXJlIGNyZWF0ZWQsIHNvIHRo ZSB0ZXN0IGNhbiBhbHdheXMgc3dpdGNoIHRvIHRoZSBub24tZXZlbnQNCg0KICAgICB0aHJlYWQg d2hlbiB0aGUgYnJlYWtwb2ludCB0cmlnZ2Vycy4gICovDQoNCiAgcHRocmVhZF9iYXJyaWVyX3dh aXQgKCZiYXJyaWVyKTsNCg0KDQogIHdoaWxlICgxKTsgLyogYnJlYWsgaGVyZSAqLw0KDQp9DQoN Cg0KaW50DQoNCm1haW4gKHZvaWQpDQoNCnsNCg0KICBpbnQgaTsNCg0KDQogIGFsYXJtICgzMDAp Ow0KDQoNCiAgcHRocmVhZF9iYXJyaWVyX2luaXQgKCZiYXJyaWVyLCBOVUxMLCBOVU1fVEhSRUFE Uyk7DQoNCg0KICBmb3IgKGkgPSAwOyBpIDwgTlVNX1RIUkVBRFM7IGkrKykNCg0KICAgIHsNCg0K ICAgICAgcHRocmVhZF90IHRocmVhZDsNCg0KICAgICAgaW50IHJlczsNCg0KDQogICAgICByZXMg PSBwdGhyZWFkX2NyZWF0ZSAoJnRocmVhZCwgTlVMTCwNCg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRocmVhZF9mdW5jdGlvbiwgTlVMTCk7DQoNCiAgICAgIGFzc2VydCAocmVzID09IDAp Ow0KDQogICAgfQ0KDQoNCiAgd2hpbGUgKDEpDQoNCiAgICBzbGVlcCAoMSk7DQoNCg0KICByZXR1 cm4gMDsNCg0KfQ0KDQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KT3V0cHV0MTotIFNpbmdsZSBwcm9jZXNzDQoNCg0K UmVhZGluZyBzeW1ib2xzIGZyb20gL2hvbWUvYWRpdHlhL2dkYl90ZXN0cy9jb250aW51ZS1wZW5k aW5nLXN0YXR1cy4uLg0KDQooZ2RiKSByDQoNClN0YXJ0aW5nIHByb2dyYW06IC9ob21lL2FkaXR5 YS9nZGJfdGVzdHMvY29udGludWUtcGVuZGluZy1zdGF0dXMNCg0KXkNbTmV3IFRocmVhZCAyNThd DQoNCltOZXcgVGhyZWFkIDUxNV0NCg0KW05ldyBUaHJlYWQgNzcyXQ0KDQoNClRocmVhZCAzIHJl Y2VpdmVkIHNpZ25hbCBTSUdJTlQsIEludGVycnVwdC4NCg0KW1N3aXRjaGluZyB0byBUaHJlYWQg NTE1XQ0KDQp0aHJlYWRfZnVuY3Rpb24gKGFyZz0weDApDQoNCiAgICBhdCAvaG9tZS9hZGl0eWEv Z2RiX3Rlc3RzL2NvbnRpbnVlLXBlbmRpbmctc3RhdHVzLmM6MzYNCg0KMzYgICAgICAgIHdoaWxl ICgxKTsgLyogYnJlYWsgaGVyZSAqLw0KDQooZ2RiKSBpbmZvIHRocmVhZHMNCg0KICBJZCAgIFRh cmdldCBJZCAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUNCg0KICAxICAgIFRocmVhZCAx ICh0aWQgMjQ4Mzg1ODUsIHJ1bm5pbmcpICAgd2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAw eDAgaW4gcmVhZCBpbiBwc3ltdGFiLCBidXQgbm90IGluIHN5bXRhYi4pDQoNCg0KICAyICAgIFRo cmVhZCAyNTggKHRpZCAyMzEzNDYzNSwgcnVubmluZykgdGhyZWFkX2Z1bmN0aW9uIChhcmc9d2Fy bmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDAgaW4gcmVhZCBpbiBwc3ltdGFiLCBidXQgbm90 IGluIHN5bXRhYi4pDQoNCg0KMHgwKQ0KDQogICAgYXQgL2hvbWUvYWRpdHlhL2dkYl90ZXN0cy9j b250aW51ZS1wZW5kaW5nLXN0YXR1cy5jOjM2DQoNCiogMyAgICBUaHJlYWQgNTE1ICh0aWQgMzAx NDY4NjcsIHJ1bm5pbmcpIHRocmVhZF9mdW5jdGlvbiAoYXJnPXdhcm5pbmc6IChJbnRlcm5hbCBl cnJvcjogcGMgMHgwIGluIHJlYWQgaW4gcHN5bXRhYiwgYnV0IG5vdCBpbiBzeW10YWIuKQ0KDQoN CjB4MCkNCg0KICAgIGF0IC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvY29udGludWUtcGVuZGluZy1z dGF0dXMuYzozNg0KDQogIDQgICAgVGhyZWFkIDc3MiAodGlkIDI3ODUzMTY1LCBydW5uaW5nKSB0 aHJlYWRfZnVuY3Rpb24gKGFyZz13YXJuaW5nOiAoSW50ZXJuYWwgZXJyb3I6IHBjIDB4MCBpbiBy ZWFkIGluIHBzeW10YWIsIGJ1dCBub3QgaW4gc3ltdGFiLikNCg0KDQoweDApDQoNCiAgICBhdCAv aG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL2NvbnRpbnVlLXBlbmRpbmctc3RhdHVzLmM6MzYNCg0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNClByb2dyYW0gMjotIE11bHRpIHByb2Nlc3MgQ29kZQ0K DQoNCiNpbmNsdWRlIDxzdGRpby5oPg0KDQojaW5jbHVkZSA8dW5pc3RkLmg+DQoNCiNpbmNsdWRl IDxzdGRsaWIuaD4NCg0KI2luY2x1ZGUgPHB0aHJlYWQuaD4NCg0KI2luY2x1ZGUgPGFzc2VydC5o Pg0KDQoNCnB0aHJlYWRfYmFycmllcl90IGJhcnJpZXI7DQoNCg0KI2RlZmluZSBOVU1fVEhSRUFE UyAyDQoNCg0Kdm9pZCAqDQoNCnRocmVhZF9mdW5jdGlvbiAodm9pZCAqYXJnKQ0KDQp7DQoNCiAg LyogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGJyZWFrcG9pbnQgaXMgb25seSBoaXQgYWZ0ZXIgYm90 aCB0aHJlYWRzDQoNCiAgICAgYXJlIGNyZWF0ZWQsIHNvIHRoZSB0ZXN0IGNhbiBhbHdheXMgc3dp dGNoIHRvIHRoZSBub24tZXZlbnQNCg0KICAgICB0aHJlYWQgd2hlbiB0aGUgYnJlYWtwb2ludCB0 cmlnZ2Vycy4gICovDQoNCg0KICBwdGhyZWFkX2JhcnJpZXJfd2FpdCAoJmJhcnJpZXIpOw0KDQog IHBpZF90IGNoaWxkOw0KDQoNCiAgY2hpbGQgPSBmb3JrICgpOw0KDQogIGlmIChjaGlsZCA+IDAp DQoNCiAgICBwcmludGYgKCJJIGFtIHBhcmVudCBcbiIpOw0KDQogIGVsc2V7DQoNCiAgICBwcmlu dGYgKCIgSWFtIGNoaWxkIFxuIik7DQoNCiAgICBjaGlsZCA9IGZvcmsgKCk7DQoNCiAgICBpZiAo Y2hpbGQgPiAwKQ0KDQogICAgICBwcmludGYgKCJGcm9tIGNoaWxkIEkgYmVjYW1lIGEgcGFyZW50 IFxuIik7DQoNCiAgICBlbHNlDQoNCiAgICAgIHByaW50ZiAoIkkgYW0gZ3JhbmRjaGlsZCBcbiIp Ow0KDQogIH0NCg0KICB3aGlsZSAoMSk7IC8qIGJyZWFrIGhlcmUgKi8NCg0KfQ0KDQoNCmludA0K DQptYWluICh2b2lkKQ0KDQp7DQoNCiAgaW50IGk7DQoNCg0KICBhbGFybSAoMzAwKTsNCg0KDQog IHB0aHJlYWRfYmFycmllcl9pbml0ICgmYmFycmllciwgTlVMTCwgTlVNX1RIUkVBRFMpOw0KDQoN CiAgZm9yIChpID0gMDsgaSA8IE5VTV9USFJFQURTOyBpKyspDQoNCiAgICB7DQoNCiAgICAgIHB0 aHJlYWRfdCB0aHJlYWQ7DQoNCiAgICAgIGludCByZXM7DQoNCg0KICAgICAgcmVzID0gcHRocmVh ZF9jcmVhdGUgKCZ0aHJlYWQsIE5VTEwsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 aHJlYWRfZnVuY3Rpb24sIE5VTEwpOw0KDQogICAgICBhc3NlcnQgKHJlcyA9PSAwKTsNCg0KICAg IH0NCg0KDQogIHdoaWxlICgxKQ0KDQogIHsNCg0KICAgIHNsZWVwICgxNSk7DQoNCiAgICBicmVh azsNCg0KICB9DQoNCg0KICByZXR1cm4gMDsNCg0KfQ0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0K T3V0cHV0IDI6LSBXaXRoIGRldGFjaC1vbi1mb3JrIG9uDQoNCg0KUmVhZGluZyBzeW1ib2xzIGZy b20gL2hvbWUvYWRpdHlhL2dkYl90ZXN0cy91bHRpbWF0ZS1tdWx0aS10aHJlYWQtZm9yay4uLg0K DQooZ2RiKSByDQoNClN0YXJ0aW5nIHByb2dyYW06IC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0 aW1hdGUtbXVsdGktdGhyZWFkLWZvcmsNCg0KW05ldyBUaHJlYWQgMjU4XQ0KDQpbTmV3IFRocmVh ZCA1MTVdDQoNCltEZXRhY2hpbmcgYWZ0ZXIgZm9yayBmcm9tIGNoaWxkIHByb2Nlc3MgODMyMzU3 Ml0NCg0KIElhbSBjaGlsZA0KDQpJIGFtIGdyYW5kY2hpbGQNCg0KRnJvbSBjaGlsZCBJIGJlY2Ft ZSBhIHBhcmVudA0KDQpJIGFtIHBhcmVudA0KDQpbRGV0YWNoaW5nIGFmdGVyIGZvcmsgZnJvbSBj aGlsZCBwcm9jZXNzIDExNjY1ODg0XQ0KDQogSWFtIGNoaWxkDQoNCkkgYW0gZ3JhbmRjaGlsZA0K DQpGcm9tIGNoaWxkIEkgYmVjYW1lIGEgcGFyZW50DQoNCkkgYW0gcGFyZW50DQoNCl5DDQoNClRo cmVhZCAyIHJlY2VpdmVkIHNpZ25hbCBTSUdJTlQsIEludGVycnVwdC4NCg0KW1N3aXRjaGluZyB0 byBUaHJlYWQgMjU4XQ0KDQp0aHJlYWRfZnVuY3Rpb24gKGFyZz0weDApDQoNCiAgICBhdCAvaG9t ZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGltYXRlLW11bHRpLXRocmVhZC1mb3JrLmM6MzINCg0KMzIg ICAgICAgIHdoaWxlICgxKTsgLyogYnJlYWsgaGVyZSAqLw0KDQooZ2RiKSBpbmZvIHRocmVhZHMN Cg0KICBJZCAgIFRhcmdldCBJZCAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUNCg0KICAx ICAgIFRocmVhZCAxICh0aWQgMjcyNjMyNjksIHJ1bm5pbmcpICAgd2FybmluZzogKEludGVybmFs IGVycm9yOiBwYyAweDAgaW4gcmVhZCBpbiBwc3ltdGFiLCBidXQgbm90IGluIHN5bXRhYi4pDQoN Cg0KKiAyICAgIFRocmVhZCAyNTggKHRpZCAyODcwNTA3NSwgcnVubmluZykgdGhyZWFkX2Z1bmN0 aW9uIChhcmc9d2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDAgaW4gcmVhZCBpbiBwc3lt dGFiLCBidXQgbm90IGluIHN5bXRhYi4pDQoNCg0KMHgwKQ0KDQogICAgYXQgL2hvbWUvYWRpdHlh L2dkYl90ZXN0cy91bHRpbWF0ZS1tdWx0aS10aHJlYWQtZm9yay5jOjMyDQoNCiAgMyAgICBUaHJl YWQgNTE1ICh0aWQgMjc4NTMxNjksIHJ1bm5pbmcpIHRocmVhZF9mdW5jdGlvbiAoYXJnPXdhcm5p bmc6IChJbnRlcm5hbCBlcnJvcjogcGMgMHgwIGluIHJlYWQgaW4gcHN5bXRhYiwgYnV0IG5vdCBp biBzeW10YWIuKQ0KDQoNCjB4MCkNCg0KICAgIGF0IC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0 aW1hdGUtbXVsdGktdGhyZWFkLWZvcmsuYzozMg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KT3V0 cHV0IDM6LSBXaXRoIGRldGFjaC1vbi1mb3JrIG9mZg0KDQoNClJlYWRpbmcgc3ltYm9scyBmcm9t IC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0aW1hdGUtbXVsdGktdGhyZWFkLWZvcmsuLi4NCg0K KGdkYikgc2V0IGRldGFjaC1vbi1mb3JrIG9mZg0KDQooZ2RiKSByDQoNClN0YXJ0aW5nIHByb2dy YW06IC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0aW1hdGUtbXVsdGktdGhyZWFkLWZvcmsNCg0K W05ldyBUaHJlYWQgMjU4XQ0KDQpbTmV3IFRocmVhZCA1MTVdDQoNCltOZXcgaW5mZXJpb3IgMiAo UHJvY2VzcyAxNTQ2NjkyOCldDQoNCltOZXcgaW5mZXJpb3IgMyAoUHJvY2VzcyAxMzg5NDA0OCld DQoNCkkgYW0gcGFyZW50DQoNCkkgYW0gcGFyZW50DQoNCl5DDQoNClRocmVhZCAxLjEgcmVjZWl2 ZWQgc2lnbmFsIFNJR0lOVCwgSW50ZXJydXB0Lg0KDQpbU3dpdGNoaW5nIHRvIFRocmVhZCAxXQ0K DQoweGQwNTk1ZmIwIGluIF9wX25zbGVlcCAoKSBmcm9tIC91c3IvbGliL2xpYnB0aHJlYWQuYShz aHJfeHBnNS5vKQ0KDQooZ2RiKSBpbmZvIHRocmVhZHMNCg0KICBJZCAgIFRhcmdldCBJZCAgICAg ICAgIEZyYW1lDQoNCiogMS4xICBUaHJlYWQgMSAgICAgICAgICAweGQwNTk1ZmIwIGluIF9wX25z bGVlcCAoKQ0KDQogICBmcm9tIC91c3IvbGliL2xpYnB0aHJlYWQuYShzaHJfeHBnNS5vKQ0KDQog IDEuMiAgVGhyZWFkIDI1OCAgICAgICAgMHhkMDU5NWZiMCBpbiBfcF9uc2xlZXAgKCkNCg0KICAg ZnJvbSAvdXNyL2xpYi9saWJwdGhyZWFkLmEoc2hyX3hwZzUubykNCg0KICAxLjMgIFRocmVhZCA1 MTUgICAgICAgIDB4ZDA1OTVmYjAgaW4gX3BfbnNsZWVwICgpDQoNCiAgIGZyb20gL3Vzci9saWIv bGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQoNCiAgMi4xICBQcm9jZXNzIDE1NDY2OTI4ICAweGQw NTk0ZmM4IGluID8/ICgpDQoNCiAgMy4xICBQcm9jZXNzIDEzODk0MDQ4ICAweGQwNTk0ZmM4IGlu ID8/ICgpDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoNCk91dHB1dCA0Oi0gZGV0YWNoIGZvcmsgb2ZmIGFuZCBmb2xsb3dpbmcgY2hpbGQNCg0K DQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGltYXRlLW11 bHRpLXRocmVhZC1mb3JrLi4uDQoNCihnZGIpIHNldCBkZXRhY2gtb24tZm9yayBvZmYNCg0KKGdk Yikgc2V0IGZvbGxvdy1mb3JrLW1vZGUgY2hpbGQNCg0KKGdkYikgcg0KDQpTdGFydGluZyBwcm9n cmFtOiAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGltYXRlLW11bHRpLXRocmVhZC1mb3JrDQoN CltOZXcgVGhyZWFkIDI1OF0NCg0KW05ldyBUaHJlYWQgNTE1XQ0KDQpbQXR0YWNoaW5nIGFmdGVy IFRocmVhZCA1MTUgZm9yayB0byBjaGlsZCBQcm9jZXNzIDEzODk0MDUwXQ0KDQpbTmV3IGluZmVy aW9yIDIgKFByb2Nlc3MgMTM4OTQwNTApXQ0KDQogSWFtIGNoaWxkDQoNCltBdHRhY2hpbmcgYWZ0 ZXIgUHJvY2VzcyAxMzg5NDA1MCBmb3JrIHRvIGNoaWxkIFByb2Nlc3MgMTEwMTA0NzRdDQoNCltO ZXcgaW5mZXJpb3IgMyAoUHJvY2VzcyAxMTAxMDQ3NCldDQoNCkkgYW0gZ3JhbmRjaGlsZA0KDQpe Q1JlYWRpbmcgc3ltYm9scyBmcm9tIC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0aW1hdGUtbXVs dGktdGhyZWFkLWZvcmsuLi4NCg0KDQpUaHJlYWQgMy4xIHJlY2VpdmVkIHNpZ25hbCBTSUdJTlQs IEludGVycnVwdC4NCg0KW1N3aXRjaGluZyB0byBQcm9jZXNzIDExMDEwNDc0XQ0KDQp0aHJlYWRf ZnVuY3Rpb24gKGFyZz0weDApDQoNCiAgICBhdCAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGlt YXRlLW11bHRpLXRocmVhZC1mb3JrLmM6MzINCg0KMzIgICAgICAgIHdoaWxlICgxKTsgLyogYnJl YWsgaGVyZSAqLw0KDQooZ2RiKSBpbmZvIHRocmVhZHMNCg0KICBJZCAgIFRhcmdldCBJZCAgICAg ICAgIEZyYW1lDQoNCiAgMS4xICBUaHJlYWQgMSAgICAgICAgICAweGQwNTk0ZmM4IGluIF9zaWdz ZXRtYXNrICgpDQoNCiAgIGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQoN CiAgMS4yICBUaHJlYWQgMjU4ICAgICAgICAweGQwNTk0ZmM4IGluIF9zaWdzZXRtYXNrICgpDQoN CiAgIGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQoNCiAgMS4zICBUaHJl YWQgNTE1ICAgICAgICAweGQwNTk0ZmM4IGluIF9zaWdzZXRtYXNrICgpDQoNCiAgIGZyb20gL3Vz ci9saWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQoNCiAgMi4xICBQcm9jZXNzIDEzODk0MDUw ICAweGQwNTk0ZmM4IGluID8/ICgpDQoNCiogMy4xICBQcm9jZXNzIDExMDEwNDc0ICB0aHJlYWRf ZnVuY3Rpb24gKGFyZz13YXJuaW5nOiAoSW50ZXJuYWwgZXJyb3I6IHBjIDB4MCBpbiByZWFkIGlu IHBzeW10YWIsIGJ1dCBub3QgaW4gc3ltdGFiLikNCg0KDQoweDApDQoNCiAgICBhdCAvaG9tZS9h ZGl0eWEvZ2RiX3Rlc3RzL3VsdGltYXRlLW11bHRpLXRocmVhZC1mb3JrLmM6MzINCg0KDQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRnJvbTogVWxyaWNoIFdlaWdhbmQgPFVscmlj aC5XZWlnYW5kQGRlLmlibS5jb20+DQpTZW50OiAzMCBOb3ZlbWJlciAyMDIyIDIwOjI3DQpUbzog c2ltYXJrQHNpbWFyay5jYSA8c2ltYXJrQHNpbWFyay5jYT47IEFkaXR5YSBLYW1hdGgxIDxBZGl0 eWEuS2FtYXRoMUBpYm0uY29tPjsgZ2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmcgPGdkYi1wYXRj aGVzQHNvdXJjZXdhcmUub3JnPg0KQ2M6IFNhbmdhbWVzaCBNYWxsYXl5YSA8c2FuZ2FtZXNoLnN3 YW15QGluLmlibS5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIXSAwMDAxLUZpeC1tdWx0aS10aHJl YWQtZGVidWctYnVnLWluLUFJWC5wYXRjaA0KDQpBZGl0eWEgS2FtYXRoMSA8QWRpdHlhLkthbWF0 aDFAaWJtLmNvbT4gd3JvdGU6DQoNCj5CZWZvcmUgd2UgaGFkIGFuIGV4dHJhIHRocmVhZCAncHJv Y2VzcyAxMDAnIGFwYXJ0IGZyb20gJ3RocmVhZCAxJy4NCj5TbywgaW4gY2FzZSBzb21lb25lIGlu dGVycnVwdGVkIGEgdGhyZWFkIHdpdGggY3RybCtjLi4gSW4gdGhlDQo+cGRfdXBkYXRlICgpIGV2 ZW4gaWYgd2UgZG9uJ3QgaGF2ZSB0aHJlYWQgd2hvIHNpZ25hbGxlZCB0aGlzIGludGVycnVwdA0K PndoZW4gd2UgcmV0dXJuIHB0aWRfdCAocGlkKSBpdCB3YXMgZmluZS4gQnV0IG5vdyB3aXRoIG5v ICdwcm9jZXNzIDEwMCcNCj5hbmQgb25seSAndGhyZWFkIDEnLCB3ZSBuZWVkIHRvIHRha2UgY2Fy ZSBvZiBpbnRlcnJ1cHQgYXMgd2VsbCwNCj5vdGhlcndpc2UgR0RCIGNvcmUgd2lsbCB0YWtlIHB0 aWRfdCgxMDApIGFzIGEgbmV3IHByb2Nlc3MuDQo+U28gdGhlIGNoYW5nZQ0KPisgICAgICBpZiAo dGhyaW5mLnRpX2N1cnNpZyA9PSBTSUdUUkFQIHx8IHRocmluZi50aV9jdXJzaWcgPT0gU0lHSU5U KQ0KDQpIbW0uICBTbyB3aGVuICJ3YWl0IiByZXR1cm5zLCBpdCBuZWVkcyB0byBkZXRlcm1pbmUg d2hpY2ggdGhyZWFkDQp0cmlnZ2VyZWQgdGhlIGV2ZW50IHRoYXQgY2F1c2VkIHB0cmFjZSB0byBz dG9wLiAgT24gTGludXgsICJ3YWl0Ig0Kd2lsbCBhY3R1YWxseSByZXR1cm4gdGhlIExXUCBvZiB0 aGF0IHRocmVhZCwgc28gaXQgY2FuIGJlIGRpcmVjdGx5DQp1c2VkLiAgSXQgc2VlbXMgb24gQUlY LCAid2FpdCIgb25seSByZXR1cm5zIGEgUElELCBhbmQgeW91IGRvIG5vdA0KaW1tZWRpYXRlbHkg a25vdyB3aGljaCB0aHJlYWQgY2F1c2VkIHRoZSBldmVudD8NCg0KSW4gdGhhdCBjYXNlLCBJIGNh biBzZWUgd2h5IHlvdSdkIGhhdmUgdG8gY29uc2lkZXIgU0lHSU5UIGFzIHdlbGwNCmFzIFNJR1RS QVAuIEhvd2V2ZXIsIGl0IHNlZW1zIHRvIG1lIHRoYXQgZXZlbiB0aG9zZSB0d28gYXJlIG5vdCB0 aGUNCipvbmx5KiBjYXNlcyB0aGF0IGNhbiBjYXVzZSAid2FpdCIgdG8gcmV0dXJuIC0gZG9lc24n dCAqYW55KiBzaWduYWwNCihwb3RlbnRpYWxseSkgdHJpZ2dlciBhIHB0cmFjZSBpbnRlcmNlcHQg KGNhdXNpbmcgd2FpdCB0byByZXR1cm4pPw0KDQpCdXQgdGhhdCdzIHByb2JhYmx5IGEgbW9yZSBn ZW5lcmFsIHByb2JsZW0sIGFuZCB3b3VsZG4ndCBvY2N1ciBpbg0KdGhpcyBzaW1wbGUgdGVzdCBj YXNlLg0KDQo+SW4gdGhpcyBjYXNlIGlmIHdlIHJldHVybiBhIHB0aWRfdCAocGlkKSB0aGVuIGdk YiBjb3JlIHRyZWF0cyBpdA0KPmFzIGEgbmV3IHByb2Nlc3Mgc2luY2Ugb3VyIHBhcmVudCB0aHJl YWQgaXMgcHRocmVhZGVkIEdEQiBjb3JlDQo+b25seSBrbm93cyB0aHJlYWRzIGxpa2UgcHRpZF90 IChwaWQsIHRpZCwgcHRoaWQpIGFuZCBub3QNCj5wdGlkX3QgKHBpZCkuIEluIG9yZGVyIHRvIGF2 b2lkIHRoaXMsIHRoZSBwcm9wb3NlZCBwYXRjaCB1c2VzIGENCj5mdW5jdGlvbiBjYWxsIGZpbmRf dGhlX3JldHVybl9wdGlkICgpIHRvIGZpZ3VyZSBvdXQgdGhlIHNhbWUuDQo+VGhlIGNoYW5nZXMg bGlrZSBiZWxvdyBhcmUgZm9yIHRoaXMgcmVhc29uLg0KPg0KPm91cnN0YXR1cy0+c2V0X2Zvcmtl ZCAocHRpZF90IChwaWQpKTsNCj4t4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCICBy ZXR1cm4gcHRpZF90IChwYXJlbnRfcGlkKTsNCj4r4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC 4oCC4oCCICByZXR1cm4gZmluZF90aGVfcmV0dXJuX3B0aWQgKHBhcmVudF9waWQpOw0KPg0KPktp bmRseSBub3RlIHRoYXQgdGhlIGNvbnRyb2wgd2lsbCBhbHdheXMgbm90IGNvbWUgZnJvbSBhaXgt dGhyZWFkLmMNCj5mb3Igc3VjaCBldmVudHMuIEhlbmNlLCB3ZSBjYW5ub3QgdGFrZSBjYXJlIG9m IHRoZSBzYW1lIHRoZXJlLA0KPnRob3VnaCBpdCB3aWxsIGJlIGEgcmVsaWVmIGlmIHdlIGNhbiBk byB0aGF0Lg0KDQpJJ20gbm90IHN1cmUgd2h5IGl0IGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgdGhp cyBpbiB0aGUgcHJvY2VzcyBsYXllcg0KKHJzNjAwMC1haXgtbmF0LmMpIGluc3RlYWQgb2YgdGhl IHRocmVhZCBsYXllciAoYWl4LXRocmVhZC5jKS4NCldoYXQgc3BlY2lmaWNhbGx5IGJyZWFrcyBp ZiB5b3UgZG8gbm90IGhhdmUgdGhlc2UgcnM2MDAwLWFpeC1uYXQuYw0KY2hhbmdlcz8NCg0KSWYg eW91ICpkbyogbmVlZCB0byBoYW5kbGUgTFdQcyAoa2VybmVsIHRocmVhZCBJRHMpIGluIHRoZSBw cm9jZXNzDQpsYXllciAodGhpcyBjYW4gYmUgYSByZWFzb25hYmxlIGNob2ljZSwgYW5kIGl0IGRv bmUgYnkgc2V2ZXJhbCBvdGhlcg0KbmF0aXZlIHRhcmdldHMpLCB0aGVuIGl0IHNob3VsZCBiZSAq Y29uc2lzdGVudCosIGFuZCAqYWxsKiBMV1AgaGFuZGxpbmcNCnNob3VsZCBiZSBpbiB0aGUgcHJv Y2VzcyBsYXllci4gSW4gcGFydGljdWxhciwgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcw0KZG9lcyBp dCBtYWtlIHNlbnNlIHRvIGR1cGxpY2F0ZSB0aGUgImZpbmQgY3VycmVudC9zaWduYWxsZWQgdGhy ZWFkIg0KY29kZSBpbiAqYm90aCogdGhlIHByb2Nlc3MgYW55IHRocmVhZCBsYXllcnMuDQoNCj5b U3dpdGNoaW5nIHRvIHByb2Nlc3MgMTY3Nzc2MjBdDQoNClRoaXMgb3V0cHV0cyBpbmZlcmlvcl9w dGlkIC4uLg0KDQo+MHhkMDU5NWZiMCBpbiBfcF9uc2xlZXAgKCkgZnJvbSAvdXNyL2xpYi9saWJw dGhyZWFkLmEoc2hyX3hwZzUubykNCj4oZ2RiKSBpbmZvIHRocmVhZHMNCj4gIElkICAgVGFyZ2V0 IElkICAgICAgICAgRnJhbWUNCj4qIDEuMSAgcHJvY2VzcyAxNjc3NzYyMCAgMHhkMDU5NWZiMCBp biBfcF9uc2xlZXAgKCkNCj4gICBmcm9tIC91c3IvbGliL2xpYnB0aHJlYWQuYShzaHJfeHBnNS5v KQ0KPiAgMS4yICBwcm9jZXNzIDE2Nzc3NjIwICAweGQwNTk1ZmIwIGluIF9wX25zbGVlcCAoKQ0K PiAgIGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQo+ICAxLjMgIHByb2Nl c3MgMTY3Nzc2MjAgIDB4ZDA1OTVmYjAgaW4gX3BfbnNsZWVwICgpDQo+ICAgZnJvbSAvdXNyL2xp Yi9saWJwdGhyZWFkLmEoc2hyX3hwZzUubykNCj4gIDIuMSAgcHJvY2VzcyA4MzIzNTcwICAgMHhk MDU5NGZjOCBpbiA/PyAoKQ0KPiAgMy4xICBwcm9jZXNzIDE3OTU3MTcyICAweGQwNTk0ZmM4IGlu ID8/ICgpDQoNCi4uLiBhbmQgdGhpcyBvdXRwdXRzIHRoZSBwdGlkIHZhbHVlcyBmb3IgdGhvc2Ug dGhyZWFkcy4NCg0KSWYgaXQgc2F5cyAicHJvY2VzcyAuLi4iLCB0aGVuIHRob3NlIHB0aWQgdmFs dWVzIGhhdmUgbm90DQpwcm9wZXJseSBiZWVuIHN3aXRjaGVkIG92ZXIgdG8gdGhlIChwaWQsIGx3 cCwgdGlkKSBmb3JtYXQuDQoNCllvdSBzaG91bGQgdmVyaWZ5IHRoYXQgdGhlIHN5bmNfdGhyZWFk bGlzdHMgY29kZSBoYW5kbGVzDQphbGwgbXVsdGktcHJvY2VzcyBjYXNlcyBjb3JyZWN0bHkuICBJ IGhhdmVuJ3QgbG9va2VkIGF0DQp0aGlzIGluIGRldGFpbCwgYnV0IGFyZSB5b3Ugc3VyZSB0aGF0 IGhlcmU6DQoNCkBAIC04NDEsOCArODI5LDIyIEBAIHN5bmNfdGhyZWFkbGlzdHMgKGludCBwaWQp DQogICAgICAgICAgICAgfQ0KICAgICAgICAgICBlbHNlIGlmIChjbXBfcmVzdWx0ID4gMCkNCiAg ICAgICAgICAgICB7DQotICAgICAgICAgICAgIGRlbGV0ZV90aHJlYWQgKGdidWZbZ2ldKTsNCi0g ICAgICAgICAgICAgZ2krKzsNCisgICAgICAgICAgICAgaWYgKGdwdGlkLmlzX3BpZCAoKSkNCisg ICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICB0aHJlYWRfY2hhbmdlX3B0aWQgKHBy b2NfdGFyZ2V0LCBncHRpZCwgcHB0aWQpOw0KDQp5b3UgbmV2ZXIgYWNjaWRlbnRhbGx5IHN3aXRj aCB0aGUgKnBpZCogcGFydCAoaWYgImdwdGlkIg0KYmVsb3dzIHRvIGEgZGlmZmVyZW50IHBpZCB0 aGFuICJwcHRpZCIpPw0KDQpCeWUsDQpVbHJpY2gNCg0K --_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Fix-multi-thread-debug-bug-in-AIX.patch" Content-Description: 0001-Fix-multi-thread-debug-bug-in-AIX.patch Content-Disposition: attachment; filename="0001-Fix-multi-thread-debug-bug-in-AIX.patch"; size=8565; creation-date="Fri, 02 Dec 2022 07:45:28 GMT"; modification-date="Fri, 02 Dec 2022 07:45:44 GMT" Content-Transfer-Encoding: base64 RnJvbSBmMmFlMTZmMmYzOTI5MTk4MTE0MDBhYzFmMWM4M2ExZTc2ZWMwMmRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFkaGFyIEthbWF0aCA8QWRpdHlhLkthbWF0 aDFAaWJtLmNvbT4KRGF0ZTogRnJpLCAyIERlYyAyMDIyIDAwOjU5OjU1IC0wNjAwClN1YmplY3Q6 IFtQQVRDSF0gRml4IG11bHRpLXRocmVhZCBkZWJ1ZyBidWcgaW4gQUlYCgotLS0KIGdkYi9haXgt dGhyZWFkLmMgICAgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogZ2RiL3JzNjAwMC1haXgtbmF0LmMgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCAz NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nZGIvYWl4LXRocmVhZC5jIGIvZ2RiL2FpeC10 aHJlYWQuYwppbmRleCBlNTU2YzE1MzU3Ni4uNDVlMGQ5YzdhZTggMTAwNjQ0Ci0tLSBhL2dkYi9h aXgtdGhyZWFkLmMKKysrIGIvZ2RiL2FpeC10aHJlYWQuYwpAQCAtNTA4LDE0ICs1MDgsMTMgQEAg cGRjX3JlYWRfZGF0YSAocHRoZGJfdXNlcl90IHVzZXJfY3VycmVudF9waWQsIHZvaWQgKmJ1ZiwK ICAgLyogVGhpcyBpcyBuZWVkZWQgdG8gZWxpbWluYXRlIHRoZSBkZXBlbmRlbmN5IG9mIGN1cnJl bnQgdGhyZWFkCiAgICAgIHdoaWNoIGlzIG51bGwgc28gdGhhdCB0aHJlYWQgcmVhZHMgdGhlIGNv cnJlY3QgdGFyZ2V0IG1lbW9yeS4gICovCiAgIHsKLSAgICBzY29wZWRfcmVzdG9yZV9jdXJyZW50 X3RocmVhZCByZXN0b3JlX2N1cnJlbnRfdGhyZWFkOworICAgIHNjb3BlZF9yZXN0b3JlIHNhdmVf aW5mZXJpb3JfcHRpZCA9IG1ha2Vfc2NvcGVkX3Jlc3RvcmUgKCZpbmZlcmlvcl9wdGlkKTsKICAg ICAvKiBCZWZvcmUgdGhlIGZpcnN0IGluZmVyaW9yIGlzIGFkZGVkLCB3ZSBwYXNzIGluZmVyaW9y X3B0aWQucGlkICgpCiAgICAgICAgZnJvbSBwZF9lbmFibGUgKCkgd2hpY2ggaXMgMC4gIFRoZXJl IGlzIG5vIG5lZWQgdG8gc3dpdGNoIHRocmVhZHMKICAgICAgICBkdXJpbmcgZmlyc3QgaW5pdGlh bGlzYXRpb24uICBJbiB0aGUgcmVzdCBvZiB0aGUgY2FsbGJhY2tzIHRoZQogICAgICAgIGN1cnJl bnQgdGhyZWFkIG5lZWRzIHRvIGJlIGNvcnJlY3QuICAqLwogICAgIGlmICh1c2VyX2N1cnJlbnRf cGlkICE9IDApCi0gICAgICBzd2l0Y2hfdG9fdGhyZWFkIChjdXJyZW50X2luZmVyaW9yICgpLT5w cm9jZXNzX3RhcmdldCAoKSwKLQkJCXB0aWRfdCAodXNlcl9jdXJyZW50X3BpZCkpOworICAgICAg aW5mZXJpb3JfcHRpZCA9IHB0aWRfdCAodXNlcl9jdXJyZW50X3BpZCk7CiAgICAgc3RhdHVzID0g dGFyZ2V0X3JlYWRfbWVtb3J5IChhZGRyLCAoZ2RiX2J5dGUgKikgYnVmLCBsZW4pOwogICB9CiAg IHJldCA9IHN0YXR1cyA9PSAwID8gUERDX1NVQ0NFU1MgOiBQRENfRkFJTFVSRTsKQEAgLTYzOSwz NiArNjM4LDI0IEBAIHBjbXAgKGNvbnN0IHZvaWQgKnAxdiwgY29uc3Qgdm9pZCAqcDJ2KQogICBy ZXR1cm4gcDEtPnB0aGlkIDwgcDItPnB0aGlkID8gLTEgOiBwMS0+cHRoaWQgPiBwMi0+cHRoaWQ7 CiB9CiAKLS8qIGl0ZXJhdGVfb3Zlcl90aHJlYWRzKCkgY2FsbGJhY2sgZm9yIGNvdW50aW5nIEdE QiB0aHJlYWRzLgorLyogaXRlcmF0ZV9vdmVyX3RocmVhZHMoKSBjYWxsYmFjayBmb3IgY291bnRp bmcgR0RCIHRocmVhZHMuICAqLwogCi0gICBEbyBub3QgY291bnQgdGhlIG1haW4gdGhyZWFkICh3 aG9zZSB0aWQgaXMgemVybykuICBUaGlzIG1hdGNoZXMKLSAgIHRoZSBsaXN0IG9mIHRocmVhZHMg cHJvdmlkZWQgYnkgdGhlIHB0aHJlYWRkZWJ1ZyBsaWJyYXJ5LCB3aGljaAotICAgZG9lcyBub3Qg aW5jbHVkZSB0aGF0IG1haW4gdGhyZWFkIGVpdGhlciwgYW5kIHRodXMgYWxsb3dzIHVzCi0gICB0 byBjb21wYXJlIHRoZSB0d28gbGlzdHMuICAqLwogCiBzdGF0aWMgaW50CiBnaXRlcl9jb3VudCAo c3RydWN0IHRocmVhZF9pbmZvICp0aHJlYWQsIHZvaWQgKmNvdW50cCkKIHsKLSAgaWYgKFBEX1RJ RCAodGhyZWFkLT5wdGlkKSkKLSAgICAoKihpbnQgKikgY291bnRwKSsrOworICAoKihpbnQgKikg Y291bnRwKSsrOwogICByZXR1cm4gMDsKIH0KIAotLyogaXRlcmF0ZV9vdmVyX3RocmVhZHMoKSBj YWxsYmFjayBmb3IgYWNjdW11bGF0aW5nIEdEQiB0aHJlYWQgcGlkcy4KLQotICAgRG8gbm90IGlu Y2x1ZGUgdGhlIG1haW4gdGhyZWFkICh3aG9zZSB0aWQgaXMgemVybykuICBUaGlzIG1hdGNoZXMK LSAgIHRoZSBsaXN0IG9mIHRocmVhZHMgcHJvdmlkZWQgYnkgdGhlIHB0aHJlYWRkZWJ1ZyBsaWJy YXJ5LCB3aGljaAotICAgZG9lcyBub3QgaW5jbHVkZSB0aGF0IG1haW4gdGhyZWFkIGVpdGhlciwg YW5kIHRodXMgYWxsb3dzIHVzCi0gICB0byBjb21wYXJlIHRoZSB0d28gbGlzdHMuICAqLworLyog aXRlcmF0ZV9vdmVyX3RocmVhZHMoKSBjYWxsYmFjayBmb3IgYWNjdW11bGF0aW5nIEdEQiB0aHJl YWQgcGlkcy4gICovCiAKIHN0YXRpYyBpbnQKIGdpdGVyX2FjY3VtIChzdHJ1Y3QgdGhyZWFkX2lu Zm8gKnRocmVhZCwgdm9pZCAqYnVmcCkKIHsKLSAgaWYgKFBEX1RJRCAodGhyZWFkLT5wdGlkKSkK LSAgICB7Ci0gICAgICAqKihzdHJ1Y3QgdGhyZWFkX2luZm8gKioqKSBidWZwID0gdGhyZWFkOwot ICAgICAgKCooc3RydWN0IHRocmVhZF9pbmZvICoqKikgYnVmcCkrKzsKLSAgICB9CisgICoqKHN0 cnVjdCB0aHJlYWRfaW5mbyAqKiopIGJ1ZnAgPSB0aHJlYWQ7CisgICgqKHN0cnVjdCB0aHJlYWRf aW5mbyAqKiopIGJ1ZnApKys7CisgICAgCiAgIHJldHVybiAwOwogfQogCkBAIC03MDQsNyArNjkx LDcgQEAgZ2NtcCAoY29uc3Qgdm9pZCAqdDF2LCBjb25zdCB2b2lkICp0MnYpCiB9CiAKIC8qIFNl YXJjaCB0aHJvdWdoIHRoZSBsaXN0IG9mIGFsbCBrZXJuZWwgdGhyZWFkcyBmb3IgdGhlIHRocmVh ZAotICAgdGhhdCBoYXMgc3RvcHBlZCBvbiBhIFNJR1RSQVAgc2lnbmFsLCBhbmQgcmV0dXJuIGl0 cyBUSUQuCisgICB0aGF0IGhhcyBzdG9wcGVkIG9uIGEgU0lHVFJBUCBvciBTSUdJTlQgc2lnbmFs LCBhbmQgcmV0dXJuIGl0cyBUSUQuCiAgICBSZXR1cm4gMCBpZiBub25lIGZvdW5kLiAgKi8KIAog c3RhdGljIHB0aGRiX3RpZF90CkBAIC03MTksNyArNzA2LDcgQEAgZ2V0X3NpZ25hbGVkX3RocmVh ZCAoaW50IHBpZCkKIAkJICAgIHNpemVvZiAodGhyaW5mKSwgJmt0aWQsIDEpICE9IDEpCiAJYnJl YWs7CiAKLSAgICAgIGlmICh0aHJpbmYudGlfY3Vyc2lnID09IFNJR1RSQVApCisgICAgICBpZiAo dGhyaW5mLnRpX2N1cnNpZyA9PSBTSUdUUkFQIHx8IHRocmluZi50aV9jdXJzaWcgPT0gU0lHSU5U KQogCXJldHVybiB0aHJpbmYudGlfdGlkOwogICAgIH0KIApAQCAtNzUwLDYgKzczNyw5IEBAIHN5 bmNfdGhyZWFkbGlzdHMgKGludCBwaWQpCiAgIHB0aGRiX3B0aHJlYWRfdCBwZHRpZDsKICAgcHRo cmVhZF90IHB0aGlkOwogICBwdGhkYl90aWRfdCB0aWQ7CisgIHByb2Nlc3Nfc3RyYXR1bV90YXJn ZXQgKnByb2NfdGFyZ2V0CisJPSBjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3RhcmdldCAo KTsKKyAgdGhyZWFkX2luZm8gKnRwOwogCiAgIC8qIEFjY3VtdWxhdGUgYW4gYXJyYXkgb2YgbGli cHRoZGVidWcgdGhyZWFkcyBzb3J0ZWQgYnkgcHRocmVhZCBpZC4gICovCiAKQEAgLTgxMCwxMCAr ODAwLDggQEAgc3luY190aHJlYWRsaXN0cyAoaW50IHBpZCkKIAkgIHByaXYtPnBkdGlkID0gcGJ1 ZltwaV0ucGR0aWQ7CiAJICBwcml2LT50aWQgPSBwYnVmW3BpXS50aWQ7CiAKLQkgIHByb2Nlc3Nf c3RyYXR1bV90YXJnZXQgKnByb2NfdGFyZ2V0Ci0JICAgID0gY3VycmVudF9pbmZlcmlvciAoKS0+ cHJvY2Vzc190YXJnZXQgKCk7CiAJICB0aHJlYWQgPSBhZGRfdGhyZWFkX3dpdGhfaW5mbyAocHJv Y190YXJnZXQsCi0JCQkJCSBwdGlkX3QgKHBpZCwgMCwgcGJ1ZltwaV0ucHRoaWQpLAorCQkJCQkg cHRpZF90IChwaWQsIHBidWZbcGldLnRpZCwgcGJ1ZltwaV0ucHRoaWQpLAogCQkJCQkgcHJpdik7 CiAKIAkgIHBpKys7CkBAIC04MjMsNyArODExLDcgQEAgc3luY190aHJlYWRsaXN0cyAoaW50IHBp ZCkKIAkgIHB0aWRfdCBwcHRpZCwgZ3B0aWQ7CiAJICBpbnQgY21wX3Jlc3VsdDsKIAotCSAgcHB0 aWQgPSBwdGlkX3QgKHBpZCwgMCwgcGJ1ZltwaV0ucHRoaWQpOworCSAgcHB0aWQgPSBwdGlkX3Qg KHBpZCwgcGJ1ZltwaV0udGlkLCBwYnVmW3BpXS5wdGhpZCk7CiAJICBncHRpZCA9IGdidWZbZ2ld LT5wdGlkOwogCSAgcGR0aWQgPSBwYnVmW3BpXS5wZHRpZDsKIAkgIHRpZCA9IHBidWZbcGldLnRp ZDsKQEAgLTg0MSw4ICs4MjksMjMgQEAgc3luY190aHJlYWRsaXN0cyAoaW50IHBpZCkKIAkgICAg fQogCSAgZWxzZSBpZiAoY21wX3Jlc3VsdCA+IDApCiAJICAgIHsKLQkgICAgICBkZWxldGVfdGhy ZWFkIChnYnVmW2dpXSk7Ci0JICAgICAgZ2krKzsKKwkgICAgICBpZiAoZ3B0aWQuaXNfcGlkICgp KQorCQl7CisJCSAgZ2RiX2Fzc2VydCAoZ3B0aWQucGlkICgpID09IHBwdGlkLnBpZCAoKSk7CisJ CSAgdGhyZWFkX2NoYW5nZV9wdGlkIChwcm9jX3RhcmdldCwgZ3B0aWQsIHBwdGlkKTsKKwkJICBh aXhfdGhyZWFkX2luZm8gKnByaXYgPSBuZXcgYWl4X3RocmVhZF9pbmZvOworCQkgIHByaXYtPnBk dGlkID0gcGJ1ZltwaV0ucGR0aWQ7CisJCSAgcHJpdi0+dGlkID0gcGJ1ZltwaV0udGlkOworCQkg IHRwID0gZmluZF90aHJlYWRfcHRpZCAocHJvY190YXJnZXQsIHBwdGlkKTsKKwkJICB0cC0+cHJp di5yZXNldCAocHJpdik7CisJCSAgcGkrKzsKKwkJICBnaSsrOworCQl9CisJICAgICAgZWxzZQor CQl7CisJCSAgZGVsZXRlX3RocmVhZCAoZ2J1ZltnaV0pOworCQkgIGdpKys7CisJCX0KIAkgICAg fQogCSAgZWxzZQogCSAgICB7CkBAIC0xMDkxLDEwICsxMDk0LDYgQEAgYWl4X3RocmVhZF90YXJn ZXQ6OndhaXQgKHB0aWRfdCBwdGlkLCBzdHJ1Y3QgdGFyZ2V0X3dhaXRzdGF0dXMgKnN0YXR1cywK ICAgaWYgKHB0aWQucGlkICgpID09IC0xKQogICAgIHJldHVybiBwdGlkX3QgKC0xKTsKIAotICAv KiBUaGUgdGFyZ2V0IGJlbmVhdGggZG9lcyBub3QgZGVhbCB3aXRoIHRocmVhZHMsIHNvIGl0IHNo b3VsZCBvbmx5IHJldHVybgotICAgICBwaWQtb25seSBwdGlkcy4gICovCi0gIGdkYl9hc3NlcnQg KHB0aWQuaXNfcGlkICgpKTsKLQogICAvKiBDaGVjayB3aGV0aGVyIGxpYnB0aGRlYnVnIG1pZ2h0 IGJlIHJlYWR5IHRvIGJlIGluaXRpYWxpemVkLiAgKi8KICAgaWYgKCFwZF9hY3RpdmUgJiYgc3Rh dHVzLT5raW5kICgpID09IFRBUkdFVF9XQUlUS0lORF9TVE9QUEVECiAgICAgICAmJiBzdGF0dXMt PnNpZyAoKSA9PSBHREJfU0lHTkFMX1RSQVApCmRpZmYgLS1naXQgYS9nZGIvcnM2MDAwLWFpeC1u YXQuYyBiL2dkYi9yczYwMDAtYWl4LW5hdC5jCmluZGV4IDJhYzFmNmU3MGI2Li5lNDg1ODBmMWI5 NiAxMDA2NDQKLS0tIGEvZ2RiL3JzNjAwMC1haXgtbmF0LmMKKysrIGIvZ2RiL3JzNjAwMC1haXgt bmF0LmMKQEAgLTk5LDYgKzk5LDggQEAgY2xhc3MgcnM2MDAwX25hdF90YXJnZXQgZmluYWwgOiBw dWJsaWMgaW5mX3B0cmFjZV90YXJnZXQKICAgICAgc3VwcG9ydC4gICovCiAgIHZvaWQgZm9sbG93 X2ZvcmsgKGluZmVyaW9yICosIHB0aWRfdCwgdGFyZ2V0X3dhaXRraW5kLCBib29sLCBib29sKSBv dmVycmlkZTsKIAorICBzdGQ6OnN0cmluZyBwaWRfdG9fc3RyIChwdGlkX3QpIG92ZXJyaWRlOwor CiBwcm90ZWN0ZWQ6CiAKICAgdm9pZCBwb3N0X3N0YXJ0dXBfaW5mZXJpb3IgKHB0aWRfdCBwdGlk KSBvdmVycmlkZTsKQEAgLTYxOSw2ICs2MjEsNjQgQEAgcnM2MDAwX25hdF90YXJnZXQ6OnhmZXJf cGFydGlhbCAoZW51bSB0YXJnZXRfb2JqZWN0IG9iamVjdCwKICAgICB9CiB9CiAKKy8qIFNlYXJj aCB0aHJvdWdoIHRoZSBsaXN0IG9mIGFsbCBrZXJuZWwgdGhyZWFkcyBmb3IgdGhlIHRocmVhZAor ICAgdGhhdCBoYXMgc3RvcHBlZCBvbiBhIFNJR1RSQVAgb3IgU0lHSU5UIHNpZ25hbCwgYW5kIHJl dHVybgorICAgaXRzIFRJRC4gIFJldHVybiAwIGlmIG5vbmUgZm91bmQuICAqLworCitzdGF0aWMg dGlkX3QKK2dldF9zaWduYWxlZF90aHJlYWRfcnM2MDAwIChpbnQgcGlkKQoreworICBzdHJ1Y3Qg dGhyZHNpbmZvNjQgdGhyaW5mOworICB0aWRfdCBrdGlkID0gMDsKKworICB3aGlsZSAoMSkKKyAg ICB7CisgICAgICBpZiAoZ2V0dGhyZHMgKHBpZCwgJnRocmluZiwKKyAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mICh0aHJpbmYpLCAma3RpZCwgMSkgIT0gMSkKKyAgICAgICAgYnJlYWs7CisKKyAg ICAgIGlmICh0aHJpbmYudGlfY3Vyc2lnID09IFNJR1RSQVAgfHwgdGhyaW5mLnRpX2N1cnNpZyA9 PSBTSUdJTlQpCisgICAgICAgIHJldHVybiB0aHJpbmYudGlfdGlkOworICAgIH0KKworICAvKiBE aWRuJ3QgZmluZCBhbnkgdGhyZWFkIHN0b3BwZWQgb24gYSBTSUdUUkFQIHNpZ25hbC4gICovCisg IHJldHVybiAwOworfQorCisvKiBJZiBteSBwcm9jZXNzIGlzIHB0aHJlYWRlZCBJIG5lZWQgdG8g cmV0dXJuIHRoYXQgcHRpZCBlbHNlIHB0aWRfdAorICAgKHBpZCkuICAqLworCitzdGF0aWMgcHRp ZF90CitmaW5kX3RoZV9yZXR1cm5fcHRpZCAocGlkX3QgcGlkKQoreworICBwdGlkX3QgcHRpZCA9 IHB0aWRfdCAocGlkKTsKKyAgcHJvY2Vzc19zdHJhdHVtX3RhcmdldCAqcHJvY190YXJnZXQKKyAg ICAgICAgPSBjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3RhcmdldCAoKTsKKyAgaW5mZXJp b3IgKmluZiA9IGZpbmRfaW5mZXJpb3JfcGlkIChwcm9jX3RhcmdldCwgcGlkKTsKKyAgdGhyZWFk X2luZm8gKnRwID0gZmluZF90aHJlYWRfcHRpZCAoaW5mLCBwdGlkX3QgKHBpZCkpOworICBpZiAo dHAgPT0gbnVsbHB0cikKKyAgICBmb3IgKHRocmVhZF9pbmZvICp0cDEgOiBpbmYtPnRocmVhZHMg KCkpCisgICAgICAgaWYgKHRwMS0+cHRpZC5sd3AgKCkgPT0gZ2V0X3NpZ25hbGVkX3RocmVhZF9y czYwMDAgKHBpZCkpCisgICAgICAgICByZXR1cm4gdHAxLT5wdGlkOworICByZXR1cm4gcHRpZDsK K30KKworLyogUmV0dXJuaW5nICJ0aHJlYWQiIG9yICJwcm9jZXNzIiBpbmZvIGFzIGNvbnRyb2wg Y29tZXMgaGVyZSAKKyAgIGR1cmluZyBhIHByb2Nlc3Mgc3dpdGNoIGluIG11bHRpIHByb2Nlc3Mg ZGVidWdnaW5nLiAgVGhpcyAKKyAgIGlzIG5lZWRlZCBmb3IgImluZm8gdGhyZWFkcyIgY29tbWFu ZCBhcyBhIHByb2Nlc3MgY2FuIGJlCisgICB0aHJlYWRlZCBvciBub24gdGhyZWFkZWQgaW4gbXVs dGkgcHJvY2VzcyBjYXNlLiAgKi8KKworc3RkOjpzdHJpbmcKK3JzNjAwMF9uYXRfdGFyZ2V0Ojpw aWRfdG9fc3RyIChwdGlkX3QgcHRpZCkKK3sKKyAgaWYgKHB0aWQudGlkICgpICE9IDApCisgICAg cmV0dXJuIHN0cmluZ19wcmludGYgKF8oIlRocmVhZCAlcyIpLCBwdWxvbmdlc3QgKHB0aWQudGlk ICgpKSk7CisKKyAgZWxzZQorICAgIHJldHVybiBzdHJpbmdfcHJpbnRmIChfKCJQcm9jZXNzICVz IiksIHB1bG9uZ2VzdCAocHRpZC5waWQgKCkpKTsKK30KKworCiAvKiBXYWl0IGZvciB0aGUgY2hp bGQgc3BlY2lmaWVkIGJ5IFBUSUQgdG8gZG8gc29tZXRoaW5nLiAgUmV0dXJuIHRoZQogICAgcHJv Y2VzcyBJRCBvZiB0aGUgY2hpbGQsIG9yIE1JTlVTX09ORV9QVElEIGluIGNhc2Ugb2YgZXJyb3I7 IHN0b3JlCiAgICB0aGUgc3RhdHVzIGluICpPVVJTVEFUVVMuICAqLwpAQCAtNjcyLDcgKzczMiw3 IEBAIHJzNjAwMF9uYXRfdGFyZ2V0Ojp3YWl0IChwdGlkX3QgcHRpZCwgc3RydWN0IHRhcmdldF93 YWl0c3RhdHVzICpvdXJzdGF0dXMsCiAJICAgICAgaWYgKHBhcmVudF9waWQgPiAwKQogCQl7CiAJ CSAgb3Vyc3RhdHVzLT5zZXRfZm9ya2VkIChwdGlkX3QgKHBpZCkpOwotCQkgIHJldHVybiBwdGlk X3QgKHBhcmVudF9waWQpOworCQkgIHJldHVybiBmaW5kX3RoZV9yZXR1cm5fcHRpZCAocGFyZW50 X3BpZCk7CiAJCX0KIAkgICAgICBhaXhfcmVtZW1iZXJfY2hpbGQgKHBpZCk7CiAJICAgIH0KQEAg LTY4Nyw3ICs3NDcsNyBAQCByczYwMDBfbmF0X3RhcmdldDo6d2FpdCAocHRpZF90IHB0aWQsIHN0 cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqb3Vyc3RhdHVzLAogCSAgICAgIGlmIChjaGlsZF9waWQg PiAwKQogCQl7CiAJCSAgb3Vyc3RhdHVzLT5zZXRfZm9ya2VkIChwdGlkX3QgKGNoaWxkX3BpZCkp OwotCQkgIHJldHVybiBwdGlkX3QgKHBpZCk7CisJCSAgcmV0dXJuIGZpbmRfdGhlX3JldHVybl9w dGlkIChwaWQpOwogCQl9CiAJICAgICAgYWl4X3JlbWVtYmVyX3BhcmVudCAocGlkKTsKIAkgICAg fQpAQCAtNzEyLDcgKzc3Miw3IEBAIHJzNjAwMF9uYXRfdGFyZ2V0Ojp3YWl0IChwdGlkX3QgcHRp ZCwgc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICpvdXJzdGF0dXMsCiAgIGVsc2UKICAgICAqb3Vy c3RhdHVzID0gaG9zdF9zdGF0dXNfdG9fd2FpdHN0YXR1cyAoc3RhdHVzKTsKIAotICByZXR1cm4g cHRpZF90IChwaWQpOworICByZXR1cm4gZmluZF90aGVfcmV0dXJuX3B0aWQgKHBpZCk7CiB9CiAM CiAKLS0gCjIuMzEuMQoK --_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_--