From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2080.outbound.protection.outlook.com [40.107.8.80]) by sourceware.org (Postfix) with ESMTPS id 4A7B43858D37 for ; Fri, 28 Apr 2023 10:43:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4A7B43858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Rsf4XX/sU9CueM517ww/TdTC8dhOz8KJWz1eZlef3mM=; b=Yr+U76hmKYPvp6uzJO761xJhFsbzukEGJGf+thzFKI65jFxQ1Z494/cBUJsL+ps4Y70giwsgwCDQPvDIGzU07cPbFkSJIChcZorDDX5GYRENOEXpzs9s3+aUKqs52J7d6egv830/QAQ1cxOlRetDlORdXo6SIYcyJiUo5L/zuOQ= Received: from AS9PR06CA0614.eurprd06.prod.outlook.com (2603:10a6:20b:46e::11) by AM8PR08MB6465.eurprd08.prod.outlook.com (2603:10a6:20b:365::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.24; Fri, 28 Apr 2023 10:43:47 +0000 Received: from AM7EUR03FT048.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:46e:cafe::74) by AS9PR06CA0614.outlook.office365.com (2603:10a6:20b:46e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.24 via Frontend Transport; Fri, 28 Apr 2023 10:43:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT048.mail.protection.outlook.com (100.127.140.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.23 via Frontend Transport; Fri, 28 Apr 2023 10:43:47 +0000 Received: ("Tessian outbound 99a3040377ca:v136"); Fri, 28 Apr 2023 10:43:47 +0000 X-CR-MTA-TID: 64aa7808 Received: from 841f8ba39c0c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D5C2814A-4F13-4C78-B536-44601B4A2EFD.1; Fri, 28 Apr 2023 10:43:41 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 841f8ba39c0c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 28 Apr 2023 10:43:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hpa4V/NzEJiWP6pB9HkuDCKYCPEPrtyZE2z+Qj7xFsnu2c7bCT6yjaAWc+KZtS5jzZPyrXlAn0bschNsdfspkZlSGM4G/R748TplvSVR5laRu462aJlLDs61odb5CMrToNbTOTbAwA9zvOq+RZOAn5KyyKDqvK7ePkVUWvmh0p/mH0CgBjGHbRBsc398a/1ETPK2VPP1d5QeWSRtMyrYHYpEuvCxiUWk9zdzIKu0ZOjKYup08EWPRb1Aeo7yGVqVYtUcWMxwo3rDfckns+Z4/ZbfEcu+Ux3hp//RX/t7mI7sCB0eKSuNC+uWTxFAT6HLhNxQHiShTBzmLgPP+Nz7FQ== 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=Rsf4XX/sU9CueM517ww/TdTC8dhOz8KJWz1eZlef3mM=; b=SzNvkhtp1XboRktC36sCKb67J116n8cAfpJ+StN0fe/Xh5dtypC2sj9i3JmReYBLyr4SbAg2omPGEv+fsfbOEAZ4hCz/LdJYIi9qMhng2LgJvKyh7FbAee/TsUl3UTGl8CRG1fggubeBIQixokuQxyzGfUnMhJBbSv3znY7L3QOAe7fMKoh7xJmsfgGRutmtE/syo0J+POLp7NdOnV7LVNyOJF1F0q8w2pnAwi6U7j86ZbaI6oIUkRX1FBaus5SWz+9dylB/30sXtv1WWEi8FgE4J4y1nzDiZiTLLyTNBv9eqSVMasgsaiNfbcG1Vo+Ny3b3h7Vum6dSOxpd5iZCBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Rsf4XX/sU9CueM517ww/TdTC8dhOz8KJWz1eZlef3mM=; b=Yr+U76hmKYPvp6uzJO761xJhFsbzukEGJGf+thzFKI65jFxQ1Z494/cBUJsL+ps4Y70giwsgwCDQPvDIGzU07cPbFkSJIChcZorDDX5GYRENOEXpzs9s3+aUKqs52J7d6egv830/QAQ1cxOlRetDlORdXo6SIYcyJiUo5L/zuOQ= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AM8PR08MB6372.eurprd08.prod.outlook.com (2603:10a6:20b:369::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.23; Fri, 28 Apr 2023 10:43:38 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::82f2:dba0:1f9b:c8f]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::82f2:dba0:1f9b:c8f%7]) with mapi id 15.20.6340.023; Fri, 28 Apr 2023 10:43:38 +0000 From: Tamar Christina To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , nd , "rguenther@suse.de" , "jlaw@ventanamicro.com" Subject: RE: [PATCH 3/3]middle-end RFC - match.pd: automatically partition *-match.cc files. Thread-Topic: [PATCH 3/3]middle-end RFC - match.pd: automatically partition *-match.cc files. Thread-Index: AQHZcd9qlZMMDA3boEqMsYqXN4b8yK8yfXkAgA4ah/A= Date: Fri, 28 Apr 2023 10:43:38 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: C70449080CC75344943D6C8809A3C32B.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|AM8PR08MB6372:EE_|AM7EUR03FT048:EE_|AM8PR08MB6465:EE_ X-MS-Office365-Filtering-Correlation-Id: 951ab6a6-db16-4238-5847-08db47d57259 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: bewmeh2k9KmLIUr2iPeKbB74PbyQgCTxmYrqS8DH45xncnUwviVUp1IBIf7d5L8IetmXb2vUxSBzfyM8arjNJbUns7n31irxWOowP3Ud5sGBLhsTm/NzaCQRRc/qqd9FD5Xtm0Iihc3xIpjNp20wVXCUQAXWZCv3K9CutodgZhJ/yFMLpEFBF/51R3LgshjfrAVFdSrQqvs0Ozykw3US6GgyCHUwlKOCWVV7VY+WBc8Er6fZppdCE8BOLztOVchV2EG3mPLP+RXPhivugPOZoG4Iy4Ka+iBeOWcGRgTHce6pnsnkZQJuAZSeM+l/iXg+tnVYOWI+84a+T4g+vv3+iB2suU0KPk3ya7+e8xqWq4btgEPFGsLW5+6ecNsEDinnu9LHGxZlCp98ToZxQisHLr0Yp+JoCMWLHTlvWqIO7dCwKeid1cQVr0Bhwyu8BBIJh+BckbQM1oTne9lSMADVLJ4DvWjhl+lznMbGpOLBw6qMWnydwELelQ0j+qBrLTjSHsnHN9GLhl2n2oHLGWb+6sh1oe3YDKMZlfhNEtoTUFh8eNc4jxjE4RxtoG7ufv+SOBshlDE2cbrpeFOT7jRk0KS3RbJYM9dNkpCCt0j6yMo= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(136003)(396003)(39860400002)(366004)(376002)(346002)(451199021)(66446008)(6916009)(64756008)(316002)(4326008)(86362001)(66946007)(8676002)(8936002)(52536014)(38070700005)(5660300002)(478600001)(2906002)(30864003)(54906003)(33656002)(66476007)(83380400001)(71200400001)(76116006)(41300700001)(966005)(84970400001)(7696005)(99936003)(66556008)(122000001)(26005)(55016003)(66899021)(6506007)(9686003)(186003)(38100700002);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB532503E2B79078EC5607D4F0FF6B9VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6372 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 25985595-54b9-4bbf-b700-08db47d56d0f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: o8zUHu3SKn2JivYcVtIcg4W8Gkm6qPgnIVrNFpZVCwosLIdpV9I8pC+zfvddKJlSrHxxylsMa5hPLr1ibBxHSNKoByFMEHE5lWiiIdG7Kk76m6OViSilPYyNj9uxSMVEOba19m8tY3KsRrbEn5Ovu82E/fM5ezCBoznIEHLfLb1I4t5Y4d59W8ohsLz2PhHfBI6tsjc4yFotjScbobcUNyHOEkFKICwuKYaxUK1qMfgk3dmpPpmKiBYCSOeJ5v0dndmUlWZQSg8EYh25KHSOZvmVgT5tQTt4H5/ZD7FOop3uX9M6HSxWYf8IFA/pNsLIDXfpLJ0KtLyq44VJWEfnhKEqtqrY19xc/15xPnkJG+w7zu0ULtby6jbkK2sbMzE7iv2FL23OtQuNY31LemeYdh7Vy41LgS8sZqrQV43NlmK1eKaRe5kvem5olXpIT27nqjb+gPvk6sUMu8HidrUMRXySa7+2XvJeLrcwUTzih2ZTVCX8mnW1rUEen+JX1JU88g4FRuKVnQ4cLcUEdc8t6hnPVQpdlqODd8w18J9zan+U25lQo9zu0n4FKR6+/a/aBP5l3zh++lhK7WZa68i1OQ+GNUfhzllmlUg8AtfX6WhR5czx5/7YW02JMueoo4u+ChmDZD3SlAsy3RpW9F7eTnqy5vUrIuGq02UN/gQdYmasun5KxC6aOzrUuBKLqUYlpFeKfkY1pU0GVmgNaJtaxuUCd3QxCpS7/rMOgf274qw= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230028)(4636009)(376002)(396003)(346002)(39860400002)(136003)(451199021)(46966006)(40470700004)(36840700001)(66899021)(34020700004)(40460700003)(54906003)(478600001)(52536014)(235185007)(5660300002)(8676002)(8936002)(6862004)(2906002)(30864003)(86362001)(33656002)(82310400005)(70586007)(70206006)(55016003)(40480700001)(4326008)(99936003)(82740400003)(316002)(81166007)(356005)(41300700001)(26005)(6506007)(9686003)(107886003)(966005)(83380400001)(36860700001)(84970400001)(186003)(336012)(47076005)(33964004)(7696005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2023 10:43:47.4340 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 951ab6a6-db16-4238-5847-08db47d57259 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6465 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_002_VI1PR08MB532503E2B79078EC5607D4F0FF6B9VI1PR08MB5325eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiA+IFsxXSBodHRwczovL2djYy5nbnUub3JnL2xlZ2FjeS1tbC9nY2MtcGF0Y2hlcy8yMDE4LTA0 L21zZzAxMTI1Lmh0bWwNCj4gPg0KPiA+IEJvb3RzdHJhcHBlZCBSZWd0ZXN0ZWQgb24gYWFyY2g2 NC1ub25lLWxpbnV4LWdudSBhbmQgbm8gaXNzdWVzLg0KPiA+DQo+ID4gT2sgZm9yIG1hc3Rlcj8N Cj4gDQo+IFNvbWUgY29tbWVudHMgLSBJIGhhdmUgdG8gbGVhdmUgdGhlIE1ha2VmaWxlIGJpdHMg dG8gc29tZWJvZHkgZWxzZSB0byBzZWUNCj4gd2hldGhlciB0aGV5IGFyZSBwb3J0YWJsZSBhcy1p cy4NCj4gDQo+IFRoZSBwcml2YXRlIGZ1bmN0aW9ucyBub3cgaW4gZ2ltcGxlLW1hdGNoLWV4cG9y dHMuY2MgYXJlIG5vdCBzdXBwb3NlZCB0byBiZQ0KPiBwdWJsaWMgQVBJLCBzbyB0aGUgYWRkaXRp b25zIHRvIGdpbXBsZS1tYXRjaC5oIHNob3VsZCBiZSBhdm9pZGVkIC0gY2FuDQo+IHlvdSBhZGQg dGhlIGRlY2xhcmF0aW9ucyB0byBnaW1wbGUtbWF0Y2gtaGVhZC5jYyBpbnN0ZWFkPyAgQXQgbGVh c3QgSSBkb24ndA0KPiBzZWUgaG93IHRoZSByZWZhY3RvcmluZyBuZWVkcyB0byBhZGQgYW55dGhp bmcgdG8gZ2ltcGxlLW1hdGNoLmg/DQo+IA0KPiAtZGVjaXNpb25fdHJlZTo6Z2VuIChGSUxFICpm LCBib29sIGdpbXBsZSkNCj4gK2RlY2lzaW9uX3RyZWU6OmdlbiAoRklMRSAqKmZpbGVzLCBpbnQg bl9wYXJ0cywgYm9vbCBnaW1wbGUpDQo+IA0KPiBjYW4geW91IHVzZSBhIHZlYzw+IHBsZWFzZSB0 byBhdm9pZCBwYXNzaW5nIG5fcGFydHMgc2VwYXJhdGVseT8NCj4gDQo+ICsgIC8qIFNldCBhIGRl ZmF1bHQgdmFsdWUgZm9yIHRoZSB0b29sIHRvIDUsIGJ1dCBHQ0MgaXRzZWxmIHVzZXMNCj4gKyAg ICAgd2hhdGV2ZXIgZGVmYXVsdCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBjb25maWd1cmUgdmFyaWFi bGUNCj4gKyAgICAgREVGQVVMVF9NQVRDSFBEX1BBUlRJVElPTlMuICAqLw0KPiArICBpbnQgbl9w YXJ0cyA9IDU7DQo+ICsgIGNoYXIgKmlucHV0ID0gYXJndlthcmdjLTJdOw0KPiAuLi4NCj4gICAg ICAgICAgIGZwcmludGYgKHN0ZGVyciwgIlVzYWdlOiBnZW5tYXRjaCAiDQo+IC0gICAgICAgICAg ICAgICAgICAiWy0tZ2ltcGxlXSBbLS1nZW5lcmljXSBbLXZbdl1dIGlucHV0XG4iKTsNCj4gKyAg ICAgICAgICAgICAgICAgICJbLS1naW1wbGVdIFstLWdlbmVyaWNdIFstLXNwbGl0cz08bj5dIFst dlt2XV0NCj4gaW5wdXQgb3V0ZGlyXG4iKTsNCj4gDQo+IEkgZG9uJ3QgbGlrZSB0aGlzIC0gSSdt IHVzaW5nIC4vYnVpbGQvZ2VubWF0Y2ggLS1naW1wbGUgdGVzdC5wZCB8IGxlc3MgdG8gZGVidWcN Cj4gZ2VubWF0Y2ggY2hhbmdlcyB3aXRoIGEgc21hbGwgdGVzdCBpbnB1dCBhbmQgbGlrZSB0byBw cmVzZXJ2ZSB0aGF0LiAgQ2FuDQo+IHlvdSBpbnN0ZWFkIGNoYW5nZSB0aGUgdXNhZ2UgdG8NCj4g DQo+ICAgZ2VubWF0Y2ggLS1naW1wbGUgbWF0Y2gucGQgZ2ltcGxlLW1hdGNoLTEuYyBnaW1wbGUt bWF0Y2gtMi5jDQo+IGdpbXBsZS1tYXRjaC0zLmMgLi4uDQo+IA0KPiB0aHVzDQo+IA0KPiAtICAg ICAgICAgICAgICAgICAgIlstLWdpbXBsZV0gWy0tZ2VuZXJpY10gWy12W3ZdXSBpbnB1dFxuIik7 DQo+ICsgICAgICAgICAgICAgICAgICAiWy0tZ2ltcGxlXSBbLS1nZW5lcmljXSBbLXZbdl1dIGlu cHV0IFtvdXRwdXQuLi5dXG4iKTsNCj4gDQo+IGFuZCB3aGVuIG5vIG91dHB1dCBpcyBzcGVjaWZp ZWQgY29udGludWUgdG8gdXNlIHN0ZG91dD8gIFBvc3NpYmx5IHdoZW4NCj4gbW9yZSB0aGFuIG9u ZSBvdXRwdXQgaXMgZ2l2ZW4gcmVxdWlyZSBhIC0taGVhZGVyIG91dGZpbGUgYXJndW1lbnQgdG8N Cj4gc3BlY2lmeSB0aGUgaGVhZGVyIGZpbGUgdG8gdXNlIChhbmQgZm9yIG9uZSBvdXRwdXQgbWFr ZSBlbWl0X2Z1bmMNCj4gbm90IElDRSBidXQgaW5zdGVhZCBub3QgZW1pdCB0byB0aGUgaGVhZGVy LCBha2EgaGVhZGVyX2ZpbGUgPT0gTlVMTD8pLg0KPiBJZGVhbGx5IHdpdGhvdXQgbWFrZWZpbGUg Y2hhbmdlcyB0aGF0IHdvdWxkIHByb2R1Y2UgdGhlIHNhbWUNCj4gZ2ltcGxlLW1hdGNoLmNjIGFz IGJlZm9yZSAobWludXMgdGhlIC1oZWFkLmNjIGNoYW5nZXMgb2YgY291cnNlKS4NCj4gDQo+IFRo ZSBnaW1wbGUtbWF0Y2gtaGVhZC5jYy9leHBvcnRzIGNoYW5nZXMgY291bGQgYmUgc3BsaXQgb3V0 IGFzDQo+IGZhciBhcyBJIGNhbiBzZWU/ICBMaWtld2lzZSB0aGUgTWFrZWZpbGUgY2hhbmdlcyBp ZiB0aGUgYXJndW1lbnQNCj4gY29udHJvbCBpcyBjaGFuZ2VkIGFzIEkgc3VnZ2dlc3Q/DQo+DQoN CkFsbCBjaGFuZ2VzIGRvbmUuDQoNCkJvb3RzdHJhcHBlZCBSZWd0ZXN0ZWQgb24gYWFyY2g2NC1u b25lLWxpbnV4LWdudSBhbmQgbm8gaXNzdWVzLg0KDQpPayBmb3IgbWFzdGVyPw0KDQpUaGFua3Ms DQpUYW1hcg0KDQpnY2MvQ2hhbmdlTG9nOg0KDQoJUFIgYm9vdHN0cmFwLzg0NDAyDQoJKiBnZW5t YXRjaC5jYyAoZW1pdF9mdW5jLCBTSVpFRF9CQVNFRF9DSFVOS1MsIGdldF9vdXRfZmlsZSk6IE5l dy4NCgkoZGVjaXNpb25fdHJlZTo6Z2VuKTogQWNjZXB0IGxpc3Qgb2YgZmlsZXMgaW5zdGVhZCBv ZiBzaW5nbGUgYW5kIHVwZGF0ZQ0KCXRvIHdyaXRlIGZ1bmN0aW9uIGRlZmluaXRpb24gdG8gaGVh ZGVyIGFuZCBtYWluIGZpbGUuDQoJKHdyaXRlX3ByZWRpY2F0ZSk6IExpa2V3aXNlLg0KCSh3cml0 ZV9oZWFkZXIpOiBFbWl0IHByYWdtYXMgYW5kIG5ldyBpbmNsdWRlcy4NCgkobWFpbik6IENyZWF0 ZSBmaWxlIGJ1ZmZlcnMgYW5kIGNsZWFudXAuDQoJKHNob3dVc2FnZSk6IE5ldy4NCg0KLS0tIGlu bGluZSBjb3B5IG9mIHBhdGNoIC0tLQ0KDQpkaWZmIC0tZ2l0IGEvZ2NjL2dlbm1hdGNoLmNjIGIv Z2NjL2dlbm1hdGNoLmNjDQppbmRleCA3MTZmYjk3YWFjNGMzYzJiYWFlODJlMDY4ZGYzY2UxNThi OWFmZWU5Li5mNTZiNGJjOTkyZDg3Y2I3ZDcwN2U1OWJlMmQ2MWM0NGE0NWI2OGU2IDEwMDY0NA0K LS0tIGEvZ2NjL2dlbm1hdGNoLmNjDQorKysgYi9nY2MvZ2VubWF0Y2guY2MNCkBAIC0xODMsNiAr MTgzLDMzIEBAIGZwcmludGZfaW5kZW50IChGSUxFICpmLCB1bnNpZ25lZCBpbnQgaW5kZW50LCBj b25zdCBjaGFyICpmb3JtYXQsIC4uLikNCiAgIHZhX2VuZCAoYXApOw0KIH0NCiANCisvKiBMaWtl IGZwcmludGYsIGJ1dCBwcmludCB0byB0d28gZmlsZXMsIG9uZSBoZWFkZXIgb25lIEMgaW1wbGVt ZW50YXRpb24uICAqLw0KK0ZJTEUgKmhlYWRlcl9maWxlID0gTlVMTDsNCisNCitzdGF0aWMgdm9p ZA0KKyNpZiBHQ0NfVkVSU0lPTiA+PSA0MDAxDQorX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmlu dGYsIDQsIDUpKSkNCisjZW5kaWYNCitlbWl0X2Z1bmMgKEZJTEUgKmYsIGJvb2wgb3BlbiwgYm9v bCBjbG9zZSwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pDQorew0KKyAgdmFfbGlzdCBhcDEsIGFw MjsNCisgIGlmIChoZWFkZXJfZmlsZSAhPSBzdGRvdXQpDQorICAgIHsNCisgICAgICBpZiAob3Bl bikNCisJZnByaW50ZiAoaGVhZGVyX2ZpbGUsICJleHRlcm4gIik7DQorICAgICAgdmFfc3RhcnQg KGFwMiwgZm9ybWF0KTsNCisgICAgICB2ZnByaW50ZiAoaGVhZGVyX2ZpbGUsIGZvcm1hdCwgYXAy KTsNCisgICAgICB2YV9lbmQgKGFwMik7DQorICAgICAgaWYgKGNsb3NlKQ0KKwlmcHJpbnRmICho ZWFkZXJfZmlsZSwgIjtcbiIpOw0KKyAgICB9DQorDQorICB2YV9zdGFydCAoYXAxLCBmb3JtYXQp Ow0KKyAgdmZwcmludGYgKGYsIGZvcm1hdCwgYXAxKTsNCisgIHZhX2VuZCAoYXAxKTsNCisgIGZw dXRjICgnXG4nLCBmKTsNCit9DQorDQogc3RhdGljIHZvaWQNCiBvdXRwdXRfbGluZV9kaXJlY3Rp dmUgKEZJTEUgKmYsIGxvY2F0aW9uX3QgbG9jYXRpb24sDQogCQkgICAgICAgYm9vbCBkdW1wZmls ZSA9IGZhbHNlLCBib29sIGZuYXJncyA9IGZhbHNlKQ0KQEAgLTIxNyw2ICsyNDQsMzQgQEAgb3V0 cHV0X2xpbmVfZGlyZWN0aXZlIChGSUxFICpmLCBsb2NhdGlvbl90IGxvY2F0aW9uLA0KICAgICBm cHJpbnRmIChmLCAiLyogI2xpbmUgJWQgXCIlc1wiICovXG4iLCBsb2MubGluZSwgbG9jLmZpbGUp Ow0KIH0NCiANCisvKiBGaW5kIHRoZSBmaWxlIHRvIHdyaXRlIGludG8gbmV4dC4gIFdlIHRyeSB0 byBldmVubHkgZGlzdHJpYnV0ZSB0aGUgY29udGVudHMNCisgICBvdmVyIHRoZSBkaWZmZXJlbnQg ZmlsZXMuICAqLw0KKw0KKyNkZWZpbmUgU0laRURfQkFTRURfQ0hVTktTIDENCisNCitpbnQgY3Vy cmVudF9maWxlID0gMDsNCitGSUxFICpnZXRfb3V0X2ZpbGUgKHZlYyA8RklMRSAqPiAmcGFydHMp DQorew0KKyNpZmRlZiBTSVpFRF9CQVNFRF9DSFVOS1MNCisgICBGSUxFICpmID0gTlVMTDsNCisg ICBsb25nIG1pbiA9IDA7DQorICAgLyogV2UndmUgc3RhcnRlZCB3cml0aW5nIGFsbCB0aGUgZmls ZXMgYXQgcG9zIDAsIHNvIGZ0ZWxsIGlzIGVxdWl2YWxlbnQNCisgICAgICB0byB0aGUgc2l6ZSBh bmQgc2hvdWxkIGJlIG11Y2ggZmFzdGVyLiAgKi8NCisgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgcGFydHMubGVuZ3RoICgpOyBpKyspDQorICAgICB7DQorCWxvbmcgcmVzID0gZnRlbGwgKHBh cnRzW2ldKTsNCisJaWYgKCFmIHx8IHJlcyA8IG1pbikNCisJICB7DQorCSAgICBtaW4gPSByZXM7 DQorCSAgICBmID0gcGFydHNbaV07DQorCSAgfQ0KKyAgICAgfQ0KKyAgcmV0dXJuIGY7DQorI2Vs c2UNCisgIHJldHVybiBwYXJ0c1tjdXJyZW50X2ZpbGUrKyAlIHBhcnRzLmxlbmd0aCAoKV07DQor I2VuZGlmDQorfQ0KKw0KIA0KIC8qIFB1bGwgaW4gdHJlZSBjb2RlcyBhbmQgYnVpbHRpbiBmdW5j dGlvbiBjb2RlcyBmcm9tIHRoZWlyDQogICAgZGVmaW5pdGlvbiBmaWxlcy4gICovDQpAQCAtMTcz Miw3ICsxNzg3LDcgQEAgcHVibGljOg0KICAgZHRfbm9kZSAqcm9vdDsNCiANCiAgIHZvaWQgaW5z ZXJ0IChjbGFzcyBzaW1wbGlmeSAqLCB1bnNpZ25lZCk7DQotICB2b2lkIGdlbiAoRklMRSAqZiwg Ym9vbCBnaW1wbGUpOw0KKyAgdm9pZCBnZW4gKHZlYyA8RklMRSAqPiAmZiwgYm9vbCBnaW1wbGUp Ow0KICAgdm9pZCBwcmludCAoRklMRSAqZiA9IHN0ZGVycik7DQogDQogICBkZWNpc2lvbl90cmVl ICgpIHsgcm9vdCA9IG5ldyBkdF9ub2RlIChkdF9ub2RlOjpEVF9OT0RFLCBOVUxMKTsgfQ0KQEAg LTM4MzAsNyArMzg4NSw3IEBAIHNpbmZvX2hhc2htYXBfdHJhaXRzOjplcXVhbF9rZXlzIChjb25z dCBrZXlfdHlwZSAmdiwNCiAgICB0cmVlLiAgKi8NCiANCiB2b2lkDQotZGVjaXNpb25fdHJlZTo6 Z2VuIChGSUxFICpmLCBib29sIGdpbXBsZSkNCitkZWNpc2lvbl90cmVlOjpnZW4gKHZlYyA8RklM RSAqPiAmZmlsZXMsIGJvb2wgZ2ltcGxlKQ0KIHsNCiAgIHNpbmZvX21hcF90IHNpOw0KIA0KQEAg LTM4NTksMTEgKzM5MTQsMTQgQEAgZGVjaXNpb25fdHJlZTo6Z2VuIChGSUxFICpmLCBib29sIGdp bXBsZSkNCiAJICBvdXRwdXRfbGluZV9kaXJlY3RpdmUgKHN0ZGVyciwgcy0+cy0+cy0+cmVzdWx0 LT5sb2NhdGlvbik7DQogCX0NCiANCisgICAgICAvKiBDeWNsZSB0aGUgZmlsZSBidWZmZXJzLiAg Ki8NCisgICAgICBGSUxFICpmID0gZ2V0X291dF9maWxlIChmaWxlcyk7DQorDQogICAgICAgLyog R2VuZXJhdGUgYSBzcGxpdCBvdXQgZnVuY3Rpb24gd2l0aCB0aGUgbGVhZiB0cmFuc2Zvcm0gY29k ZS4gICovDQogICAgICAgcy0+Zm5hbWUgPSB4YXNwcmludGYgKCIlc19zaW1wbGlmeV8ldSIsIGdp bXBsZSA/ICJnaW1wbGUiIDogImdlbmVyaWMiLA0KIAkJCSAgICBmY250KyspOw0KICAgICAgIGlm IChnaW1wbGUpDQotCWZwcmludGYgKGYsICJcbnN0YXRpYyBib29sXG4iDQorCWVtaXRfZnVuYyAo ZiwgdHJ1ZSwgZmFsc2UsICJcbmJvb2xcbiINCiAJCSAiJXMgKGdpbXBsZV9tYXRjaF9vcCAqcmVz X29wLCBnaW1wbGVfc2VxICpzZXEsXG4iDQogCQkgIiAgICAgICAgICAgICAgICAgdHJlZSAoKnZh bHVlaXplKSh0cmVlKSBBVFRSSUJVVEVfVU5VU0VELFxuIg0KIAkJICIgICAgICAgICAgICAgICAg IGNvbnN0IHRyZWUgQVJHX1VOVVNFRCAodHlwZSksIHRyZWUgKkFSR19VTlVTRUQgIg0KQEAgLTM4 NzEsMjcgKzM5MjksMjggQEAgZGVjaXNpb25fdHJlZTo6Z2VuIChGSUxFICpmLCBib29sIGdpbXBs ZSkNCiAJCSBzLT5mbmFtZSk7DQogICAgICAgZWxzZQ0KIAl7DQotCSAgZnByaW50ZiAoZiwgIlxu c3RhdGljIHRyZWVcbiINCisJICBlbWl0X2Z1bmMgKGYsIHRydWUsIGZhbHNlLCAiXG50cmVlXG4i DQogCQkgICAiJXMgKGxvY2F0aW9uX3QgQVJHX1VOVVNFRCAobG9jKSwgY29uc3QgdHJlZSBBUkdf VU5VU0VEICh0eXBlKSxcbiIsDQogCQkgICAoKml0ZXIpLnNlY29uZC0+Zm5hbWUpOw0KIAkgIGZv ciAodW5zaWduZWQgaSA9IDA7DQogCSAgICAgICBpIDwgYXNfYSA8ZXhwciAqPihzLT5zLT5zLT5t YXRjaCktPm9wcy5sZW5ndGggKCk7ICsraSkNCi0JICAgIGZwcmludGYgKGYsICIgdHJlZSBBUkdf VU5VU0VEIChfcCVkKSwiLCBpKTsNCi0JICBmcHJpbnRmIChmLCAiIHRyZWUgKmNhcHR1cmVzXG4i KTsNCisJICAgIGVtaXRfZnVuYyAoZiwgZmFsc2UsIGZhbHNlLCAiIHRyZWUgQVJHX1VOVVNFRCAo X3AlZCksIiwgaSk7DQorCSAgZW1pdF9mdW5jIChmLCBmYWxzZSwgZmFsc2UsICIgdHJlZSAqY2Fw dHVyZXNcbiIpOw0KIAl9DQogICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHMtPnMtPnMt PmZvcl9zdWJzdF92ZWMubGVuZ3RoICgpOyArK2kpDQogCXsNCiAJICBpZiAoISBzLT5zLT5zLT5m b3Jfc3Vic3RfdmVjW2ldLmZpcnN0LT51c2VkKQ0KIAkgICAgY29udGludWU7DQogCSAgaWYgKGlz X2EgPG9wZXJhdG9yX2lkICo+IChzLT5zLT5zLT5mb3Jfc3Vic3RfdmVjW2ldLnNlY29uZCkpDQot CSAgICBmcHJpbnRmIChmLCAiLCBjb25zdCBlbnVtIHRyZWVfY29kZSBBUkdfVU5VU0VEICglcyki LA0KKwkgICAgZW1pdF9mdW5jIChmLCBmYWxzZSwgZmFsc2UsICIsIGNvbnN0IGVudW0gdHJlZV9j b2RlIEFSR19VTlVTRUQgKCVzKSIsDQogCQkgICAgIHMtPnMtPnMtPmZvcl9zdWJzdF92ZWNbaV0u Zmlyc3QtPmlkKTsNCiAJICBlbHNlIGlmIChpc19hIDxmbl9pZCAqPiAocy0+cy0+cy0+Zm9yX3N1 YnN0X3ZlY1tpXS5zZWNvbmQpKQ0KLQkgICAgZnByaW50ZiAoZiwgIiwgY29uc3QgY29tYmluZWRf Zm4gQVJHX1VOVVNFRCAoJXMpIiwNCisJICAgIGVtaXRfZnVuYyAoZiwgZmFsc2UsIGZhbHNlLCAi LCBjb25zdCBjb21iaW5lZF9mbiBBUkdfVU5VU0VEICglcykiLA0KIAkJICAgICBzLT5zLT5zLT5m b3Jfc3Vic3RfdmVjW2ldLmZpcnN0LT5pZCk7DQogCX0NCiANCi0gICAgICBmcHJpbnRmIChmLCAi KVxue1xuIik7DQorICAgICAgZW1pdF9mdW5jIChmLCBmYWxzZSwgdHJ1ZSwgIikiKTsNCisgICAg ICBmcHJpbnRmIChmLCAie1xuIik7DQogICAgICAgZnByaW50Zl9pbmRlbnQgKGYsIDIsICJjb25z dCBib29sIGRlYnVnX2R1bXAgPSAiDQogCQkJICAgICJkdW1wX2ZpbGUgJiYgKGR1bXBfZmxhZ3Mg JiBUREZfRk9MRElORyk7XG4iKTsNCiAgICAgICBzLT5zLT5nZW5fMSAoZiwgMiwgZ2ltcGxlLCBz LT5zLT5zLT5yZXN1bHQpOw0KQEAgLTM5MjEsOCArMzk4MCwxMiBAQCBkZWNpc2lvbl90cmVlOjpn ZW4gKEZJTEUgKmYsIGJvb2wgZ2ltcGxlKQ0KIAkJICAmJiBlLT5vcGVyYXRpb24tPmtpbmQgIT0g aWRfYmFzZTo6Q09ERSkpDQogCSAgICBjb250aW51ZTsNCiANCisNCisJICAvKiBDeWNsZSB0aGUg ZmlsZSBidWZmZXJzLiAgKi8NCisJICBGSUxFICpmID0gZ2V0X291dF9maWxlIChmaWxlcyk7DQor DQogCSAgaWYgKGdpbXBsZSkNCi0JICAgIGZwcmludGYgKGYsICJcbnN0YXRpYyBib29sXG4iDQor CSAgICBlbWl0X2Z1bmMgKGYsIHRydWUsIGZhbHNlLCJcbmJvb2xcbiINCiAJCSAgICAgImdpbXBs ZV9zaW1wbGlmeV8lcyAoZ2ltcGxlX21hdGNoX29wICpyZXNfb3AsIg0KIAkJICAgICAiIGdpbXBs ZV9zZXEgKnNlcSxcbiINCiAJCSAgICAgIiAgICAgICAgICAgICAgICAgdHJlZSAoKnZhbHVlaXpl KSh0cmVlKSAiDQpAQCAtMzkzMSwxMyArMzk5NCwxMyBAQCBkZWNpc2lvbl90cmVlOjpnZW4gKEZJ TEUgKmYsIGJvb2wgZ2ltcGxlKQ0KIAkJICAgICAiQVJHX1VOVVNFRCAodHlwZSlcbiIsDQogCQkg ICAgIGUtPm9wZXJhdGlvbi0+aWQpOw0KIAkgIGVsc2UNCi0JICAgIGZwcmludGYgKGYsICJcbnN0 YXRpYyB0cmVlXG4iDQorCSAgICBlbWl0X2Z1bmMgKGYsIHRydWUsIGZhbHNlLCAiXG50cmVlXG4i DQogCQkgICAgICJnZW5lcmljX3NpbXBsaWZ5XyVzIChsb2NhdGlvbl90IEFSR19VTlVTRUQgKGxv YyksIGVudW0gIg0KIAkJICAgICAidHJlZV9jb2RlIEFSR19VTlVTRUQgKGNvZGUpLCBjb25zdCB0 cmVlIEFSR19VTlVTRUQgKHR5cGUpIiwNCiAJCSAgICAgZS0+b3BlcmF0aW9uLT5pZCk7DQogCSAg Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47ICsraSkNCi0JICAgIGZwcmludGYgKGYsICIsIHRy ZWUgX3AlZCIsIGkpOw0KLQkgIGZwcmludGYgKGYsICIpXG4iKTsNCisJICAgIGVtaXRfZnVuYyAo ZiwgZmFsc2UsIGZhbHNlLCIsIHRyZWUgX3AlZCIsIGkpOw0KKwkgIGVtaXRfZnVuYyAoZiwgZmFs c2UsIHRydWUsICIpIik7DQogCSAgZnByaW50ZiAoZiwgIntcbiIpOw0KIAkgIGZwcmludGZfaW5k ZW50IChmLCAyLCAiY29uc3QgYm9vbCBkZWJ1Z19kdW1wID0gIg0KIAkJCQkiZHVtcF9maWxlICYm IChkdW1wX2ZsYWdzICYgVERGX0ZPTERJTkcpO1xuIik7DQpAQCAtMzk1NCwxOCArNDAxNywyMiBA QCBkZWNpc2lvbl90cmVlOjpnZW4gKEZJTEUgKmYsIGJvb2wgZ2ltcGxlKQ0KIAkgd2l0aCBjb21w aWxlciB3YXJuaW5ncywgYnkgZ2VuZXJhdGluZyBhIHNpbXBsZSBzdHViLiAgKi8NCiAgICAgICBp ZiAoISBoYXNfa2lkc19wKQ0KIAl7DQorDQorCSAgLyogQ3ljbGUgdGhlIGZpbGUgYnVmZmVycy4g ICovDQorCSAgRklMRSAqZiA9IGdldF9vdXRfZmlsZSAoZmlsZXMpOw0KKw0KIAkgIGlmIChnaW1w bGUpDQotCSAgICBmcHJpbnRmIChmLCAiXG5ib29sXG4iDQorCSAgICBlbWl0X2Z1bmMgKGYsIHRy dWUsIGZhbHNlLCAiXG5ib29sXG4iDQogCQkJImdpbXBsZV9zaW1wbGlmeSAoZ2ltcGxlX21hdGNo X29wKiwgZ2ltcGxlX3NlcSosXG4iDQogCQkJIiAgICAgICAgICAgICAgICAgdHJlZSAoKikodHJl ZSksIGNvZGVfaGVscGVyLFxuIg0KIAkJCSIgICAgICAgICAgICAgICAgIGNvbnN0IHRyZWUiKTsN CiAJICBlbHNlDQotCSAgICBmcHJpbnRmIChmLCAiXG50cmVlXG4iDQorCSAgICBlbWl0X2Z1bmMg KGYsIHRydWUsIGZhbHNlLCJcbnRyZWVcbiINCiAJCQkiZ2VuZXJpY19zaW1wbGlmeSAobG9jYXRp b25fdCwgZW51bSB0cmVlX2NvZGUsXG4iDQogCQkJIiAgICAgICAgICAgICAgICAgIGNvbnN0IHRy ZWUiKTsNCiAJICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbjsgKytpKQ0KLQkgICAgZnByaW50 ZiAoZiwgIiwgdHJlZSIpOw0KLQkgIGZwcmludGYgKGYsICIpXG4iKTsNCisJICAgIGVtaXRfZnVu YyAoZiwgZmFsc2UsIGZhbHNlLCAiLCB0cmVlIik7DQorCSAgZW1pdF9mdW5jIChmLCBmYWxzZSwg dHJ1ZSwgIikiKTsNCiAJICBmcHJpbnRmIChmLCAie1xuIik7DQogCSAgaWYgKGdpbXBsZSkNCiAJ ICAgIGZwcmludGYgKGYsICIgIHJldHVybiBmYWxzZTtcbiIpOw0KQEAgLTM5NzUsMjAgKzQwNDIs MjQgQEAgZGVjaXNpb25fdHJlZTo6Z2VuIChGSUxFICpmLCBib29sIGdpbXBsZSkNCiAJICBjb250 aW51ZTsNCiAJfQ0KIA0KKw0KKyAgICAgIC8qIEN5Y2xlIHRoZSBmaWxlIGJ1ZmZlcnMuICAqLw0K KyAgICAgIEZJTEUgKmYgPSBnZXRfb3V0X2ZpbGUgKGZpbGVzKTsNCisNCiAgICAgICAvKiBUaGVu IGdlbmVyYXRlIHRoZSBtYWluIGVudHJ5IHdpdGggdGhlIG91dGVybW9zdCBzd2l0Y2ggYW5kDQog ICAgICAgICAgdGFpbC1jYWxscyB0byB0aGUgc3BsaXQtb3V0IGZ1bmN0aW9ucy4gICovDQogICAg ICAgaWYgKGdpbXBsZSkNCi0JZnByaW50ZiAoZiwgIlxuYm9vbFxuIg0KKwllbWl0X2Z1bmMgKGYs IHRydWUsIGZhbHNlLCAiXG5ib29sXG4iDQogCQkgImdpbXBsZV9zaW1wbGlmeSAoZ2ltcGxlX21h dGNoX29wICpyZXNfb3AsIGdpbXBsZV9zZXEgKnNlcSxcbiINCiAJCSAiICAgICAgICAgICAgICAg ICB0cmVlICgqdmFsdWVpemUpKHRyZWUpIEFUVFJJQlVURV9VTlVTRUQsXG4iDQogCQkgIiAgICAg ICAgICAgICAgICAgY29kZV9oZWxwZXIgY29kZSwgY29uc3QgdHJlZSB0eXBlIik7DQogICAgICAg ZWxzZQ0KLQlmcHJpbnRmIChmLCAiXG50cmVlXG4iDQorCWVtaXRfZnVuYyAoZiwgdHJ1ZSwgZmFs c2UsICJcbnRyZWVcbiINCiAJCSAiZ2VuZXJpY19zaW1wbGlmeSAobG9jYXRpb25fdCBsb2MsIGVu dW0gdHJlZV9jb2RlIGNvZGUsICINCiAJCSAiY29uc3QgdHJlZSB0eXBlIEFUVFJJQlVURV9VTlVT RUQiKTsNCiAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbjsgKytpKQ0KLQlmcHJpbnRm IChmLCAiLCB0cmVlIF9wJWQiLCBpKTsNCi0gICAgICBmcHJpbnRmIChmLCAiKVxuIik7DQorCWVt aXRfZnVuYyAoZiwgZmFsc2UsIGZhbHNlLCAiLCB0cmVlIF9wJWQiLCBpKTsNCisgICAgICBlbWl0 X2Z1bmMgKGYsIGZhbHNlLCB0cnVlLCAiKSIpOw0KICAgICAgIGZwcmludGYgKGYsICJ7XG4iKTsN CiANCiAgICAgICBpZiAoZ2ltcGxlKQ0KQEAgLTQwNDMsMTEgKzQxMTQsMTEgQEAgZGVjaXNpb25f dHJlZTo6Z2VuIChGSUxFICpmLCBib29sIGdpbXBsZSkNCiB2b2lkDQogd3JpdGVfcHJlZGljYXRl IChGSUxFICpmLCBwcmVkaWNhdGVfaWQgKnAsIGRlY2lzaW9uX3RyZWUgJmR0LCBib29sIGdpbXBs ZSkNCiB7DQotICBmcHJpbnRmIChmLCAiXG5ib29sXG4iDQotCSAgICIlcyVzICh0cmVlIHQlcyVz KVxuIg0KLQkgICAie1xuIiwgZ2ltcGxlID8gImdpbXBsZV8iIDogInRyZWVfIiwgcC0+aWQsDQot CSAgIHAtPm5hcmdzID4gMCA/ICIsIHRyZWUgKnJlc19vcHMiIDogIiIsDQotCSAgIGdpbXBsZSA/ ICIsIHRyZWUgKCp2YWx1ZWl6ZSkodHJlZSkgQVRUUklCVVRFX1VOVVNFRCIgOiAiIik7DQorICBl bWl0X2Z1bmMgKGYsIHRydWUsIHRydWUsICJcbmJvb2xcbiVzJXMgKHRyZWUgdCVzJXMpIiwNCisJ CWdpbXBsZSA/ICJnaW1wbGVfIiA6ICJ0cmVlXyIsIHAtPmlkLA0KKwkJcC0+bmFyZ3MgPiAwID8g IiwgdHJlZSAqcmVzX29wcyIgOiAiIiwNCisJCWdpbXBsZSA/ICIsIHRyZWUgKCp2YWx1ZWl6ZSko dHJlZSkgQVRUUklCVVRFX1VOVVNFRCIgOiAiIik7DQorICBmcHJpbnRmIChmLCAie1xuIik7DQog ICAvKiBDb252ZW5pZW50bHkgbWFrZSAndHlwZScgYXZhaWxhYmxlLiAgKi8NCiAgIGZwcmludGZf aW5kZW50IChmLCAyLCAiY29uc3QgdHJlZSB0eXBlID0gVFJFRV9UWVBFICh0KTtcbiIpOw0KICAg ZnByaW50Zl9pbmRlbnQgKGYsIDIsICJjb25zdCBib29sIGRlYnVnX2R1bXAgPSAiDQpAQCAtNDA2 OCw5ICs0MTM5LDEzIEBAIHdyaXRlX2hlYWRlciAoRklMRSAqZiwgY29uc3QgY2hhciAqaGVhZCkN CiB7DQogICBmcHJpbnRmIChmLCAiLyogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHBy b2dyYW0gYGdlbm1hdGNoJyBmcm9tXG4iKTsNCiAgIGZwcmludGYgKGYsICIgICBhIElMIHBhdHRl cm4gbWF0Y2hpbmcgYW5kIHNpbXBsaWZpY2F0aW9uIGRlc2NyaXB0aW9uLiAgKi9cbiIpOw0KKyAg ZnByaW50ZiAoZiwgIiNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaFxuIik7DQorICBmcHJpbnRm IChmLCAiI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkIFwiLVd1bnVzZWQtdmFyaWFibGVc IlxuIik7DQorICBmcHJpbnRmIChmLCAiI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkIFwi LVd1bnVzZWQtZnVuY3Rpb25cIlxuIik7DQogDQogICAvKiBJbmNsdWRlIHRoZSBoZWFkZXIgaW5z dGVhZCBvZiB3cml0aW5nIGl0IGF3a3dhcmRseSBxdW90ZWQgaGVyZS4gICovDQotICBmcHJpbnRm IChmLCAiXG4jaW5jbHVkZSBcIiVzXCJcbiIsIGhlYWQpOw0KKyAgaWYgKGhlYWQpDQorICAgIGZw cmludGYgKGYsICJcbiNpbmNsdWRlIFwiJXNcIlxuIiwgaGVhZCk7DQogfQ0KIA0KIA0KQEAgLTUy MTMsNiArNTI4OCwxNiBAQCByb3VuZF9hbGxvY19zaXplIChzaXplX3QgcykNCiB9DQogDQogDQor c3RhdGljIHZvaWQNCitzaG93VXNhZ2UgKCkNCit7DQorICBmcHJpbnRmIChzdGRlcnIsICJVc2Fn ZTogZ2VubWF0Y2ggWy0tZ2ltcGxlXSBbLS1nZW5lcmljXSAiDQorCQkgICAiWy0taGVhZGVyPTxm aWxlbmFtZT5dIFstLWluY2x1ZGU9PGZpbGVuYW1lPl0gWy12W3ZdXSBpbnB1dCAiDQorCQkgICAi WzxvdXRwdXRmaWxlPi4uLl1cbiIpOw0KKyAgZnByaW50ZiAoc3RkZXJyLCAiXG5XaGVuIG1vcmUg dGhlbiBvbmUgb3V0cHV0ZmlsZSBpcyBzcGVjaWZpZWQgLS1oZWFkZXIgIg0KKwkJICAgImlzIHJl cXVpcmVkLlxuIik7DQorfQ0KKw0KIC8qIFRoZSBnZW5tYXRjaCBnZW5lcmF0b3IgcHJvZ3JhbS4g IEl0IHJlYWRzIGZyb20gYSBwYXR0ZXJuIGRlc2NyaXB0aW9uDQogICAgYW5kIG91dHB1dHMgR0lN UExFIG9yIEdFTkVSSUMgSUwgbWF0Y2hpbmcgYW5kIHNpbXBsaWZpY2F0aW9uIHJvdXRpbmVzLiAg Ki8NCiANCkBAIC01MjI4LDI1ICs1MzEzLDQ0IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikNCiANCiAgIGJvb2wgZ2ltcGxlID0gdHJ1ZTsNCiAgIHZlcmJvc2UgPSAwOw0KLSAgY2hhciAq aW5wdXQgPSBhcmd2W2FyZ2MtMV07DQotICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2MgLSAxOyAr K2kpDQorICBjaGFyICpzX2hlYWRlcl9maWxlID0gTlVMTDsNCisgIGNoYXIgKnNfaW5jbHVkZV9m aWxlID0gTlVMTDsNCisgIGF1dG9fdmVjIDxjaGFyICo+IGZpbGVzOw0KKyAgY2hhciAqaW5wdXQg PSBOVUxMOw0KKyAgaW50IGxhc3RfZmlsZSA9IGFyZ2MgLSAxOw0KKyAgZm9yIChpbnQgaSA9IGFy Z2MgLSAxOyBpID49IDE7IC0taSkNCiAgICAgew0KICAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0s ICItLWdpbXBsZSIpID09IDApDQogCWdpbXBsZSA9IHRydWU7DQogICAgICAgZWxzZSBpZiAoc3Ry Y21wIChhcmd2W2ldLCAiLS1nZW5lcmljIikgPT0gMCkNCiAJZ2ltcGxlID0gZmFsc2U7DQorICAg ICAgZWxzZSBpZiAoc3RybmNtcCAoYXJndltpXSwgIi0taGVhZGVyPSIsIDkpID09IDApDQorCXNf aGVhZGVyX2ZpbGUgPSAmYXJndltpXVs5XTsNCisgICAgICBlbHNlIGlmIChzdHJuY21wIChhcmd2 W2ldLCAiLS1pbmNsdWRlPSIsIDEwKSA9PSAwKQ0KKwlzX2luY2x1ZGVfZmlsZSA9ICZhcmd2W2ld WzEwXTsNCiAgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItdiIpID09IDApDQogCXZl cmJvc2UgPSAxOw0KICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwgIi12diIpID09IDAp DQogCXZlcmJvc2UgPSAyOw0KKyAgICAgIGVsc2UgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sICItLSIs IDIpICE9IDAgJiYgbGFzdF9maWxlLS0gPT0gaSkNCisJZmlsZXMuc2FmZV9wdXNoIChhcmd2W2ld KTsNCiAgICAgICBlbHNlDQogCXsNCi0JICBmcHJpbnRmIChzdGRlcnIsICJVc2FnZTogZ2VubWF0 Y2ggIg0KLQkJICAgIlstLWdpbXBsZV0gWy0tZ2VuZXJpY10gWy12W3ZdXSBpbnB1dFxuIik7DQor CSAgc2hvd1VzYWdlICgpOw0KIAkgIHJldHVybiAxOw0KIAl9DQogICAgIH0NCiANCisgIC8qIFZh bGlkYXRlIGlmIHRoZSBjb21iaW5hdGlvbnMgYXJlIHZhbGlkLiAgKi8NCisgIGlmICgoZmlsZXMu bGVuZ3RoICgpID4gMSAmJiAhc19oZWFkZXJfZmlsZSkgfHwgZmlsZXMuaXNfZW1wdHkgKCkpDQor ICAgIHNob3dVc2FnZSAoKTsNCisNCisgIGlmICghc19pbmNsdWRlX2ZpbGUpDQorICAgIHNfaW5j bHVkZV9maWxlID0gc19oZWFkZXJfZmlsZTsNCisNCisgIC8qIElucHV0IGZpbGUgaXMgdGhlIGxh c3QgaW4gdGhlIHJldmVyc2UgbGlzdC4gICovDQorICBpbnB1dCA9IGZpbGVzLnBvcCAoKTsNCisN CiAgIGxpbmVfdGFibGUgPSBYQ05FVyAoY2xhc3MgbGluZV9tYXBzKTsNCiAgIGxpbmVtYXBfaW5p dCAobGluZV90YWJsZSwgMCk7DQogICBsaW5lX3RhYmxlLT5yZWFsbG9jYXRvciA9IHhyZWFsbG9j Ow0KQEAgLTUyOTMsMTAgKzUzOTcsMzIgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0K ICAgLyogUGFyc2UgYWhlYWQhICAqLw0KICAgcGFyc2VyIHAgKHIsIGdpbXBsZSk7DQogDQorICAv KiBDcmVhdGUgZmlsZSBidWZmZXJzLiAgKi8NCisgIGludCBuX3BhcnRzID0gZmlsZXMuaXNfZW1w dHkgKCkgPyAxIDogZmlsZXMubGVuZ3RoICgpOw0KKyAgYXV0b192ZWMgPEZJTEUgKj4gcGFydHMg KG5fcGFydHMpOw0KKyAgaWYgKGZpbGVzLmlzX2VtcHR5ICgpKQ0KKyAgICB7DQorICAgICAgcGFy dHMucXVpY2tfcHVzaCAoc3Rkb3V0KTsNCisgICAgICBoZWFkZXJfZmlsZSA9IHN0ZG91dDsNCisg ICAgICB3cml0ZV9oZWFkZXIgKHN0ZG91dCwgc19pbmNsdWRlX2ZpbGUpOw0KKyAgICB9DQorICBl bHNlDQorICAgIHsNCisgICAgICBmb3IgKGNoYXIgKnNfZmlsZSA6IGZpbGVzKQ0KKwl7DQorCSAg cGFydHMucXVpY2tfcHVzaCAoZm9wZW4gKHNfZmlsZSwgInciKSk7DQorCSAgd3JpdGVfaGVhZGVy IChwYXJ0cy5sYXN0ICgpLCBzX2luY2x1ZGVfZmlsZSk7DQorCX0NCisNCisgICAgICBoZWFkZXJf ZmlsZSA9IGZvcGVuIChzX2hlYWRlcl9maWxlLCAidyIpOw0KKyAgICAgIGZwcmludGYgKGhlYWRl cl9maWxlLCAiI2lmbmRlZiBHQ0NfR0lNUExFX01BVENIX0FVVE9fSFxuIg0KKwkJCSAgICAiI2Rl ZmluZSBHQ0NfR0lNUExFX01BVENIX0FVVE9fSFxuIik7DQorICAgIH0NCisNCiAgIGlmIChnaW1w bGUpDQotICAgIHdyaXRlX2hlYWRlciAoc3Rkb3V0LCAiZ2ltcGxlLW1hdGNoLWhlYWQuY2MiKTsN CisgICAgZnByaW50ZiAoaGVhZGVyX2ZpbGUsICIjaW5jbHVkZSBcImdpbXBsZS1tYXRjaC1oZWFk LmNjXCJcbiIpOw0KICAgZWxzZQ0KLSAgICB3cml0ZV9oZWFkZXIgKHN0ZG91dCwgImdlbmVyaWMt bWF0Y2gtaGVhZC5jYyIpOw0KKyAgICBmcHJpbnRmIChoZWFkZXJfZmlsZSwgIiNpbmNsdWRlIFwi Z2VuZXJpYy1tYXRjaC1oZWFkLmNjXCJcbiIpOw0KIA0KICAgLyogR28gb3ZlciBhbGwgcHJlZGlj YXRlcyBkZWZpbmVkIHdpdGggcGF0dGVybnMgYW5kIHBlcmZvcm0NCiAgICAgIGxvd2VyaW5nIGFu ZCBjb2RlIGdlbmVyYXRpb24uICAqLw0KQEAgLTUzMTYsNyArNTQ0MiwxMCBAQCBtYWluIChpbnQg YXJnYywgY2hhciAqKmFyZ3YpDQogICAgICAgaWYgKHZlcmJvc2UgPT0gMikNCiAJZHQucHJpbnQg KHN0ZGVycik7DQogDQotICAgICAgd3JpdGVfcHJlZGljYXRlIChzdGRvdXQsIHByZWQsIGR0LCBn aW1wbGUpOw0KKyAgICAgIC8qIEN5Y2xlIHRoZSBmaWxlIGJ1ZmZlcnMuICAqLw0KKyAgICAgIEZJ TEUgKmYgPSBnZXRfb3V0X2ZpbGUgKHBhcnRzKTsNCisNCisgICAgICB3cml0ZV9wcmVkaWNhdGUg KGYsIHByZWQsIGR0LCBnaW1wbGUpOw0KICAgICB9DQogDQogICAvKiBMb3dlciB0aGUgbWFpbiBz aW1wbGlmaWVycyBhbmQgZ2VuZXJhdGUgY29kZSBmb3IgdGhlbS4gICovDQpAQCAtNTMzMyw3ICs1 NDYyLDE5IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikNCiAgIGlmICh2ZXJib3NlID09 IDIpDQogICAgIGR0LnByaW50IChzdGRlcnIpOw0KIA0KLSAgZHQuZ2VuIChzdGRvdXQsIGdpbXBs ZSk7DQorICBkdC5nZW4gKHBhcnRzLCBnaW1wbGUpOw0KKw0KKyAgZm9yIChGSUxFICpmIDogcGFy dHMpDQorICAgIHsNCisgICAgICBmcHJpbnRmIChmLCAiI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw b3BcbiIpOw0KKyAgICAgIGZjbG9zZSAoZik7DQorICAgIH0NCisNCisgIGlmICghZmlsZXMuaXNf ZW1wdHkgKCkpDQorICAgIHsNCisgICAgICBmcHJpbnRmIChoZWFkZXJfZmlsZSwgIiNlbmRpZiAv KiBHQ0NfR0lNUExFX01BVENIX0FVVE9fSC4gICovXG4iKTsNCisgICAgICBmY2xvc2UgKGhlYWRl cl9maWxlKTsNCisgICAgfQ0KIA0KICAgLyogRmluYWxpemUuICAqLw0KICAgY3BwX2ZpbmlzaCAo ciwgTlVMTCk7DQo= --_002_VI1PR08MB532503E2B79078EC5607D4F0FF6B9VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb17159.patch" Content-Description: rb17159.patch Content-Disposition: attachment; filename="rb17159.patch"; size=12757; creation-date="Fri, 28 Apr 2023 10:43:22 GMT"; modification-date="Fri, 28 Apr 2023 10:43:38 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9nZW5tYXRjaC5jYyBiL2djYy9nZW5tYXRjaC5jYwppbmRleCA3MTZm Yjk3YWFjNGMzYzJiYWFlODJlMDY4ZGYzY2UxNThiOWFmZWU5Li5mNTZiNGJjOTkyZDg3Y2I3ZDcw N2U1OWJlMmQ2MWM0NGE0NWI2OGU2IDEwMDY0NAotLS0gYS9nY2MvZ2VubWF0Y2guY2MKKysrIGIv Z2NjL2dlbm1hdGNoLmNjCkBAIC0xODMsNiArMTgzLDMzIEBAIGZwcmludGZfaW5kZW50IChGSUxF ICpmLCB1bnNpZ25lZCBpbnQgaW5kZW50LCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKICAgdmFf ZW5kIChhcCk7CiB9CiAKKy8qIExpa2UgZnByaW50ZiwgYnV0IHByaW50IHRvIHR3byBmaWxlcywg b25lIGhlYWRlciBvbmUgQyBpbXBsZW1lbnRhdGlvbi4gICovCitGSUxFICpoZWFkZXJfZmlsZSA9 IE5VTEw7CisKK3N0YXRpYyB2b2lkCisjaWYgR0NDX1ZFUlNJT04gPj0gNDAwMQorX19hdHRyaWJ1 dGVfXygoZm9ybWF0IChwcmludGYsIDQsIDUpKSkKKyNlbmRpZgorZW1pdF9mdW5jIChGSUxFICpm LCBib29sIG9wZW4sIGJvb2wgY2xvc2UsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQoreworICB2 YV9saXN0IGFwMSwgYXAyOworICBpZiAoaGVhZGVyX2ZpbGUgIT0gc3Rkb3V0KQorICAgIHsKKyAg ICAgIGlmIChvcGVuKQorCWZwcmludGYgKGhlYWRlcl9maWxlLCAiZXh0ZXJuICIpOworICAgICAg dmFfc3RhcnQgKGFwMiwgZm9ybWF0KTsKKyAgICAgIHZmcHJpbnRmIChoZWFkZXJfZmlsZSwgZm9y bWF0LCBhcDIpOworICAgICAgdmFfZW5kIChhcDIpOworICAgICAgaWYgKGNsb3NlKQorCWZwcmlu dGYgKGhlYWRlcl9maWxlLCAiO1xuIik7CisgICAgfQorCisgIHZhX3N0YXJ0IChhcDEsIGZvcm1h dCk7CisgIHZmcHJpbnRmIChmLCBmb3JtYXQsIGFwMSk7CisgIHZhX2VuZCAoYXAxKTsKKyAgZnB1 dGMgKCdcbicsIGYpOworfQorCiBzdGF0aWMgdm9pZAogb3V0cHV0X2xpbmVfZGlyZWN0aXZlIChG SUxFICpmLCBsb2NhdGlvbl90IGxvY2F0aW9uLAogCQkgICAgICAgYm9vbCBkdW1wZmlsZSA9IGZh bHNlLCBib29sIGZuYXJncyA9IGZhbHNlKQpAQCAtMjE3LDYgKzI0NCwzNCBAQCBvdXRwdXRfbGlu ZV9kaXJlY3RpdmUgKEZJTEUgKmYsIGxvY2F0aW9uX3QgbG9jYXRpb24sCiAgICAgZnByaW50ZiAo ZiwgIi8qICNsaW5lICVkIFwiJXNcIiAqL1xuIiwgbG9jLmxpbmUsIGxvYy5maWxlKTsKIH0KIAor LyogRmluZCB0aGUgZmlsZSB0byB3cml0ZSBpbnRvIG5leHQuICBXZSB0cnkgdG8gZXZlbmx5IGRp c3RyaWJ1dGUgdGhlIGNvbnRlbnRzCisgICBvdmVyIHRoZSBkaWZmZXJlbnQgZmlsZXMuICAqLwor CisjZGVmaW5lIFNJWkVEX0JBU0VEX0NIVU5LUyAxCisKK2ludCBjdXJyZW50X2ZpbGUgPSAwOwor RklMRSAqZ2V0X291dF9maWxlICh2ZWMgPEZJTEUgKj4gJnBhcnRzKQoreworI2lmZGVmIFNJWkVE X0JBU0VEX0NIVU5LUworICAgRklMRSAqZiA9IE5VTEw7CisgICBsb25nIG1pbiA9IDA7CisgICAv KiBXZSd2ZSBzdGFydGVkIHdyaXRpbmcgYWxsIHRoZSBmaWxlcyBhdCBwb3MgMCwgc28gZnRlbGwg aXMgZXF1aXZhbGVudAorICAgICAgdG8gdGhlIHNpemUgYW5kIHNob3VsZCBiZSBtdWNoIGZhc3Rl ci4gICovCisgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoICgpOyBpKysp CisgICAgIHsKKwlsb25nIHJlcyA9IGZ0ZWxsIChwYXJ0c1tpXSk7CisJaWYgKCFmIHx8IHJlcyA8 IG1pbikKKwkgIHsKKwkgICAgbWluID0gcmVzOworCSAgICBmID0gcGFydHNbaV07CisJICB9Cisg ICAgIH0KKyAgcmV0dXJuIGY7CisjZWxzZQorICByZXR1cm4gcGFydHNbY3VycmVudF9maWxlKysg JSBwYXJ0cy5sZW5ndGggKCldOworI2VuZGlmCit9CisKIAogLyogUHVsbCBpbiB0cmVlIGNvZGVz IGFuZCBidWlsdGluIGZ1bmN0aW9uIGNvZGVzIGZyb20gdGhlaXIKICAgIGRlZmluaXRpb24gZmls ZXMuICAqLwpAQCAtMTczMiw3ICsxNzg3LDcgQEAgcHVibGljOgogICBkdF9ub2RlICpyb290Owog CiAgIHZvaWQgaW5zZXJ0IChjbGFzcyBzaW1wbGlmeSAqLCB1bnNpZ25lZCk7Ci0gIHZvaWQgZ2Vu IChGSUxFICpmLCBib29sIGdpbXBsZSk7CisgIHZvaWQgZ2VuICh2ZWMgPEZJTEUgKj4gJmYsIGJv b2wgZ2ltcGxlKTsKICAgdm9pZCBwcmludCAoRklMRSAqZiA9IHN0ZGVycik7CiAKICAgZGVjaXNp b25fdHJlZSAoKSB7IHJvb3QgPSBuZXcgZHRfbm9kZSAoZHRfbm9kZTo6RFRfTk9ERSwgTlVMTCk7 IH0KQEAgLTM4MzAsNyArMzg4NSw3IEBAIHNpbmZvX2hhc2htYXBfdHJhaXRzOjplcXVhbF9rZXlz IChjb25zdCBrZXlfdHlwZSAmdiwKICAgIHRyZWUuICAqLwogCiB2b2lkCi1kZWNpc2lvbl90cmVl OjpnZW4gKEZJTEUgKmYsIGJvb2wgZ2ltcGxlKQorZGVjaXNpb25fdHJlZTo6Z2VuICh2ZWMgPEZJ TEUgKj4gJmZpbGVzLCBib29sIGdpbXBsZSkKIHsKICAgc2luZm9fbWFwX3Qgc2k7CiAKQEAgLTM4 NTksMTEgKzM5MTQsMTQgQEAgZGVjaXNpb25fdHJlZTo6Z2VuIChGSUxFICpmLCBib29sIGdpbXBs ZSkKIAkgIG91dHB1dF9saW5lX2RpcmVjdGl2ZSAoc3RkZXJyLCBzLT5zLT5zLT5yZXN1bHQtPmxv Y2F0aW9uKTsKIAl9CiAKKyAgICAgIC8qIEN5Y2xlIHRoZSBmaWxlIGJ1ZmZlcnMuICAqLworICAg ICAgRklMRSAqZiA9IGdldF9vdXRfZmlsZSAoZmlsZXMpOworCiAgICAgICAvKiBHZW5lcmF0ZSBh IHNwbGl0IG91dCBmdW5jdGlvbiB3aXRoIHRoZSBsZWFmIHRyYW5zZm9ybSBjb2RlLiAgKi8KICAg ICAgIHMtPmZuYW1lID0geGFzcHJpbnRmICgiJXNfc2ltcGxpZnlfJXUiLCBnaW1wbGUgPyAiZ2lt cGxlIiA6ICJnZW5lcmljIiwKIAkJCSAgICBmY250KyspOwogICAgICAgaWYgKGdpbXBsZSkKLQlm cHJpbnRmIChmLCAiXG5zdGF0aWMgYm9vbFxuIgorCWVtaXRfZnVuYyAoZiwgdHJ1ZSwgZmFsc2Us ICJcbmJvb2xcbiIKIAkJICIlcyAoZ2ltcGxlX21hdGNoX29wICpyZXNfb3AsIGdpbXBsZV9zZXEg KnNlcSxcbiIKIAkJICIgICAgICAgICAgICAgICAgIHRyZWUgKCp2YWx1ZWl6ZSkodHJlZSkgQVRU UklCVVRFX1VOVVNFRCxcbiIKIAkJICIgICAgICAgICAgICAgICAgIGNvbnN0IHRyZWUgQVJHX1VO VVNFRCAodHlwZSksIHRyZWUgKkFSR19VTlVTRUQgIgpAQCAtMzg3MSwyNyArMzkyOSwyOCBAQCBk ZWNpc2lvbl90cmVlOjpnZW4gKEZJTEUgKmYsIGJvb2wgZ2ltcGxlKQogCQkgcy0+Zm5hbWUpOwog ICAgICAgZWxzZQogCXsKLQkgIGZwcmludGYgKGYsICJcbnN0YXRpYyB0cmVlXG4iCisJICBlbWl0 X2Z1bmMgKGYsIHRydWUsIGZhbHNlLCAiXG50cmVlXG4iCiAJCSAgICIlcyAobG9jYXRpb25fdCBB UkdfVU5VU0VEIChsb2MpLCBjb25zdCB0cmVlIEFSR19VTlVTRUQgKHR5cGUpLFxuIiwKIAkJICAg KCppdGVyKS5zZWNvbmQtPmZuYW1lKTsKIAkgIGZvciAodW5zaWduZWQgaSA9IDA7CiAJICAgICAg IGkgPCBhc19hIDxleHByICo+KHMtPnMtPnMtPm1hdGNoKS0+b3BzLmxlbmd0aCAoKTsgKytpKQot CSAgICBmcHJpbnRmIChmLCAiIHRyZWUgQVJHX1VOVVNFRCAoX3AlZCksIiwgaSk7Ci0JICBmcHJp bnRmIChmLCAiIHRyZWUgKmNhcHR1cmVzXG4iKTsKKwkgICAgZW1pdF9mdW5jIChmLCBmYWxzZSwg ZmFsc2UsICIgdHJlZSBBUkdfVU5VU0VEIChfcCVkKSwiLCBpKTsKKwkgIGVtaXRfZnVuYyAoZiwg ZmFsc2UsIGZhbHNlLCAiIHRyZWUgKmNhcHR1cmVzXG4iKTsKIAl9CiAgICAgICBmb3IgKHVuc2ln bmVkIGkgPSAwOyBpIDwgcy0+cy0+cy0+Zm9yX3N1YnN0X3ZlYy5sZW5ndGggKCk7ICsraSkKIAl7 CiAJICBpZiAoISBzLT5zLT5zLT5mb3Jfc3Vic3RfdmVjW2ldLmZpcnN0LT51c2VkKQogCSAgICBj b250aW51ZTsKIAkgIGlmIChpc19hIDxvcGVyYXRvcl9pZCAqPiAocy0+cy0+cy0+Zm9yX3N1YnN0 X3ZlY1tpXS5zZWNvbmQpKQotCSAgICBmcHJpbnRmIChmLCAiLCBjb25zdCBlbnVtIHRyZWVfY29k ZSBBUkdfVU5VU0VEICglcykiLAorCSAgICBlbWl0X2Z1bmMgKGYsIGZhbHNlLCBmYWxzZSwgIiwg Y29uc3QgZW51bSB0cmVlX2NvZGUgQVJHX1VOVVNFRCAoJXMpIiwKIAkJICAgICBzLT5zLT5zLT5m b3Jfc3Vic3RfdmVjW2ldLmZpcnN0LT5pZCk7CiAJICBlbHNlIGlmIChpc19hIDxmbl9pZCAqPiAo cy0+cy0+cy0+Zm9yX3N1YnN0X3ZlY1tpXS5zZWNvbmQpKQotCSAgICBmcHJpbnRmIChmLCAiLCBj b25zdCBjb21iaW5lZF9mbiBBUkdfVU5VU0VEICglcykiLAorCSAgICBlbWl0X2Z1bmMgKGYsIGZh bHNlLCBmYWxzZSwgIiwgY29uc3QgY29tYmluZWRfZm4gQVJHX1VOVVNFRCAoJXMpIiwKIAkJICAg ICBzLT5zLT5zLT5mb3Jfc3Vic3RfdmVjW2ldLmZpcnN0LT5pZCk7CiAJfQogCi0gICAgICBmcHJp bnRmIChmLCAiKVxue1xuIik7CisgICAgICBlbWl0X2Z1bmMgKGYsIGZhbHNlLCB0cnVlLCAiKSIp OworICAgICAgZnByaW50ZiAoZiwgIntcbiIpOwogICAgICAgZnByaW50Zl9pbmRlbnQgKGYsIDIs ICJjb25zdCBib29sIGRlYnVnX2R1bXAgPSAiCiAJCQkgICAgImR1bXBfZmlsZSAmJiAoZHVtcF9m bGFncyAmIFRERl9GT0xESU5HKTtcbiIpOwogICAgICAgcy0+cy0+Z2VuXzEgKGYsIDIsIGdpbXBs ZSwgcy0+cy0+cy0+cmVzdWx0KTsKQEAgLTM5MjEsOCArMzk4MCwxMiBAQCBkZWNpc2lvbl90cmVl OjpnZW4gKEZJTEUgKmYsIGJvb2wgZ2ltcGxlKQogCQkgICYmIGUtPm9wZXJhdGlvbi0+a2luZCAh PSBpZF9iYXNlOjpDT0RFKSkKIAkgICAgY29udGludWU7CiAKKworCSAgLyogQ3ljbGUgdGhlIGZp bGUgYnVmZmVycy4gICovCisJICBGSUxFICpmID0gZ2V0X291dF9maWxlIChmaWxlcyk7CisKIAkg IGlmIChnaW1wbGUpCi0JICAgIGZwcmludGYgKGYsICJcbnN0YXRpYyBib29sXG4iCisJICAgIGVt aXRfZnVuYyAoZiwgdHJ1ZSwgZmFsc2UsIlxuYm9vbFxuIgogCQkgICAgICJnaW1wbGVfc2ltcGxp ZnlfJXMgKGdpbXBsZV9tYXRjaF9vcCAqcmVzX29wLCIKIAkJICAgICAiIGdpbXBsZV9zZXEgKnNl cSxcbiIKIAkJICAgICAiICAgICAgICAgICAgICAgICB0cmVlICgqdmFsdWVpemUpKHRyZWUpICIK QEAgLTM5MzEsMTMgKzM5OTQsMTMgQEAgZGVjaXNpb25fdHJlZTo6Z2VuIChGSUxFICpmLCBib29s IGdpbXBsZSkKIAkJICAgICAiQVJHX1VOVVNFRCAodHlwZSlcbiIsCiAJCSAgICAgZS0+b3BlcmF0 aW9uLT5pZCk7CiAJICBlbHNlCi0JICAgIGZwcmludGYgKGYsICJcbnN0YXRpYyB0cmVlXG4iCisJ ICAgIGVtaXRfZnVuYyAoZiwgdHJ1ZSwgZmFsc2UsICJcbnRyZWVcbiIKIAkJICAgICAiZ2VuZXJp Y19zaW1wbGlmeV8lcyAobG9jYXRpb25fdCBBUkdfVU5VU0VEIChsb2MpLCBlbnVtICIKIAkJICAg ICAidHJlZV9jb2RlIEFSR19VTlVTRUQgKGNvZGUpLCBjb25zdCB0cmVlIEFSR19VTlVTRUQgKHR5 cGUpIiwKIAkJICAgICBlLT5vcGVyYXRpb24tPmlkKTsKIAkgIGZvciAodW5zaWduZWQgaSA9IDA7 IGkgPCBuOyArK2kpCi0JICAgIGZwcmludGYgKGYsICIsIHRyZWUgX3AlZCIsIGkpOwotCSAgZnBy aW50ZiAoZiwgIilcbiIpOworCSAgICBlbWl0X2Z1bmMgKGYsIGZhbHNlLCBmYWxzZSwiLCB0cmVl IF9wJWQiLCBpKTsKKwkgIGVtaXRfZnVuYyAoZiwgZmFsc2UsIHRydWUsICIpIik7CiAJICBmcHJp bnRmIChmLCAie1xuIik7CiAJICBmcHJpbnRmX2luZGVudCAoZiwgMiwgImNvbnN0IGJvb2wgZGVi dWdfZHVtcCA9ICIKIAkJCQkiZHVtcF9maWxlICYmIChkdW1wX2ZsYWdzICYgVERGX0ZPTERJTkcp O1xuIik7CkBAIC0zOTU0LDE4ICs0MDE3LDIyIEBAIGRlY2lzaW9uX3RyZWU6OmdlbiAoRklMRSAq ZiwgYm9vbCBnaW1wbGUpCiAJIHdpdGggY29tcGlsZXIgd2FybmluZ3MsIGJ5IGdlbmVyYXRpbmcg YSBzaW1wbGUgc3R1Yi4gICovCiAgICAgICBpZiAoISBoYXNfa2lkc19wKQogCXsKKworCSAgLyog Q3ljbGUgdGhlIGZpbGUgYnVmZmVycy4gICovCisJICBGSUxFICpmID0gZ2V0X291dF9maWxlIChm aWxlcyk7CisKIAkgIGlmIChnaW1wbGUpCi0JICAgIGZwcmludGYgKGYsICJcbmJvb2xcbiIKKwkg ICAgZW1pdF9mdW5jIChmLCB0cnVlLCBmYWxzZSwgIlxuYm9vbFxuIgogCQkJImdpbXBsZV9zaW1w bGlmeSAoZ2ltcGxlX21hdGNoX29wKiwgZ2ltcGxlX3NlcSosXG4iCiAJCQkiICAgICAgICAgICAg ICAgICB0cmVlICgqKSh0cmVlKSwgY29kZV9oZWxwZXIsXG4iCiAJCQkiICAgICAgICAgICAgICAg ICBjb25zdCB0cmVlIik7CiAJICBlbHNlCi0JICAgIGZwcmludGYgKGYsICJcbnRyZWVcbiIKKwkg ICAgZW1pdF9mdW5jIChmLCB0cnVlLCBmYWxzZSwiXG50cmVlXG4iCiAJCQkiZ2VuZXJpY19zaW1w bGlmeSAobG9jYXRpb25fdCwgZW51bSB0cmVlX2NvZGUsXG4iCiAJCQkiICAgICAgICAgICAgICAg ICAgY29uc3QgdHJlZSIpOwogCSAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47ICsraSkKLQkg ICAgZnByaW50ZiAoZiwgIiwgdHJlZSIpOwotCSAgZnByaW50ZiAoZiwgIilcbiIpOworCSAgICBl bWl0X2Z1bmMgKGYsIGZhbHNlLCBmYWxzZSwgIiwgdHJlZSIpOworCSAgZW1pdF9mdW5jIChmLCBm YWxzZSwgdHJ1ZSwgIikiKTsKIAkgIGZwcmludGYgKGYsICJ7XG4iKTsKIAkgIGlmIChnaW1wbGUp CiAJICAgIGZwcmludGYgKGYsICIgIHJldHVybiBmYWxzZTtcbiIpOwpAQCAtMzk3NSwyMCArNDA0 MiwyNCBAQCBkZWNpc2lvbl90cmVlOjpnZW4gKEZJTEUgKmYsIGJvb2wgZ2ltcGxlKQogCSAgY29u dGludWU7CiAJfQogCisKKyAgICAgIC8qIEN5Y2xlIHRoZSBmaWxlIGJ1ZmZlcnMuICAqLworICAg ICAgRklMRSAqZiA9IGdldF9vdXRfZmlsZSAoZmlsZXMpOworCiAgICAgICAvKiBUaGVuIGdlbmVy YXRlIHRoZSBtYWluIGVudHJ5IHdpdGggdGhlIG91dGVybW9zdCBzd2l0Y2ggYW5kCiAgICAgICAg ICB0YWlsLWNhbGxzIHRvIHRoZSBzcGxpdC1vdXQgZnVuY3Rpb25zLiAgKi8KICAgICAgIGlmIChn aW1wbGUpCi0JZnByaW50ZiAoZiwgIlxuYm9vbFxuIgorCWVtaXRfZnVuYyAoZiwgdHJ1ZSwgZmFs c2UsICJcbmJvb2xcbiIKIAkJICJnaW1wbGVfc2ltcGxpZnkgKGdpbXBsZV9tYXRjaF9vcCAqcmVz X29wLCBnaW1wbGVfc2VxICpzZXEsXG4iCiAJCSAiICAgICAgICAgICAgICAgICB0cmVlICgqdmFs dWVpemUpKHRyZWUpIEFUVFJJQlVURV9VTlVTRUQsXG4iCiAJCSAiICAgICAgICAgICAgICAgICBj b2RlX2hlbHBlciBjb2RlLCBjb25zdCB0cmVlIHR5cGUiKTsKICAgICAgIGVsc2UKLQlmcHJpbnRm IChmLCAiXG50cmVlXG4iCisJZW1pdF9mdW5jIChmLCB0cnVlLCBmYWxzZSwgIlxudHJlZVxuIgog CQkgImdlbmVyaWNfc2ltcGxpZnkgKGxvY2F0aW9uX3QgbG9jLCBlbnVtIHRyZWVfY29kZSBjb2Rl LCAiCiAJCSAiY29uc3QgdHJlZSB0eXBlIEFUVFJJQlVURV9VTlVTRUQiKTsKICAgICAgIGZvciAo dW5zaWduZWQgaSA9IDA7IGkgPCBuOyArK2kpCi0JZnByaW50ZiAoZiwgIiwgdHJlZSBfcCVkIiwg aSk7Ci0gICAgICBmcHJpbnRmIChmLCAiKVxuIik7CisJZW1pdF9mdW5jIChmLCBmYWxzZSwgZmFs c2UsICIsIHRyZWUgX3AlZCIsIGkpOworICAgICAgZW1pdF9mdW5jIChmLCBmYWxzZSwgdHJ1ZSwg IikiKTsKICAgICAgIGZwcmludGYgKGYsICJ7XG4iKTsKIAogICAgICAgaWYgKGdpbXBsZSkKQEAg LTQwNDMsMTEgKzQxMTQsMTEgQEAgZGVjaXNpb25fdHJlZTo6Z2VuIChGSUxFICpmLCBib29sIGdp bXBsZSkKIHZvaWQKIHdyaXRlX3ByZWRpY2F0ZSAoRklMRSAqZiwgcHJlZGljYXRlX2lkICpwLCBk ZWNpc2lvbl90cmVlICZkdCwgYm9vbCBnaW1wbGUpCiB7Ci0gIGZwcmludGYgKGYsICJcbmJvb2xc biIKLQkgICAiJXMlcyAodHJlZSB0JXMlcylcbiIKLQkgICAie1xuIiwgZ2ltcGxlID8gImdpbXBs ZV8iIDogInRyZWVfIiwgcC0+aWQsCi0JICAgcC0+bmFyZ3MgPiAwID8gIiwgdHJlZSAqcmVzX29w cyIgOiAiIiwKLQkgICBnaW1wbGUgPyAiLCB0cmVlICgqdmFsdWVpemUpKHRyZWUpIEFUVFJJQlVU RV9VTlVTRUQiIDogIiIpOworICBlbWl0X2Z1bmMgKGYsIHRydWUsIHRydWUsICJcbmJvb2xcbiVz JXMgKHRyZWUgdCVzJXMpIiwKKwkJZ2ltcGxlID8gImdpbXBsZV8iIDogInRyZWVfIiwgcC0+aWQs CisJCXAtPm5hcmdzID4gMCA/ICIsIHRyZWUgKnJlc19vcHMiIDogIiIsCisJCWdpbXBsZSA/ICIs IHRyZWUgKCp2YWx1ZWl6ZSkodHJlZSkgQVRUUklCVVRFX1VOVVNFRCIgOiAiIik7CisgIGZwcmlu dGYgKGYsICJ7XG4iKTsKICAgLyogQ29udmVuaWVudGx5IG1ha2UgJ3R5cGUnIGF2YWlsYWJsZS4g ICovCiAgIGZwcmludGZfaW5kZW50IChmLCAyLCAiY29uc3QgdHJlZSB0eXBlID0gVFJFRV9UWVBF ICh0KTtcbiIpOwogICBmcHJpbnRmX2luZGVudCAoZiwgMiwgImNvbnN0IGJvb2wgZGVidWdfZHVt cCA9ICIKQEAgLTQwNjgsOSArNDEzOSwxMyBAQCB3cml0ZV9oZWFkZXIgKEZJTEUgKmYsIGNvbnN0 IGNoYXIgKmhlYWQpCiB7CiAgIGZwcmludGYgKGYsICIvKiBHZW5lcmF0ZWQgYXV0b21hdGljYWxs eSBieSB0aGUgcHJvZ3JhbSBgZ2VubWF0Y2gnIGZyb21cbiIpOwogICBmcHJpbnRmIChmLCAiICAg YSBJTCBwYXR0ZXJuIG1hdGNoaW5nIGFuZCBzaW1wbGlmaWNhdGlvbiBkZXNjcmlwdGlvbi4gICov XG4iKTsKKyAgZnByaW50ZiAoZiwgIiNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaFxuIik7Cisg IGZwcmludGYgKGYsICIjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV3VudXNlZC12 YXJpYWJsZVwiXG4iKTsKKyAgZnByaW50ZiAoZiwgIiNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdu b3JlZCBcIi1XdW51c2VkLWZ1bmN0aW9uXCJcbiIpOwogCiAgIC8qIEluY2x1ZGUgdGhlIGhlYWRl ciBpbnN0ZWFkIG9mIHdyaXRpbmcgaXQgYXdrd2FyZGx5IHF1b3RlZCBoZXJlLiAgKi8KLSAgZnBy aW50ZiAoZiwgIlxuI2luY2x1ZGUgXCIlc1wiXG4iLCBoZWFkKTsKKyAgaWYgKGhlYWQpCisgICAg ZnByaW50ZiAoZiwgIlxuI2luY2x1ZGUgXCIlc1wiXG4iLCBoZWFkKTsKIH0KIAogCkBAIC01MjEz LDYgKzUyODgsMTYgQEAgcm91bmRfYWxsb2Nfc2l6ZSAoc2l6ZV90IHMpCiB9CiAKIAorc3RhdGlj IHZvaWQKK3Nob3dVc2FnZSAoKQoreworICBmcHJpbnRmIChzdGRlcnIsICJVc2FnZTogZ2VubWF0 Y2ggWy0tZ2ltcGxlXSBbLS1nZW5lcmljXSAiCisJCSAgICJbLS1oZWFkZXI9PGZpbGVuYW1lPl0g Wy0taW5jbHVkZT08ZmlsZW5hbWU+XSBbLXZbdl1dIGlucHV0ICIKKwkJICAgIls8b3V0cHV0Zmls ZT4uLi5dXG4iKTsKKyAgZnByaW50ZiAoc3RkZXJyLCAiXG5XaGVuIG1vcmUgdGhlbiBvbmUgb3V0 cHV0ZmlsZSBpcyBzcGVjaWZpZWQgLS1oZWFkZXIgIgorCQkgICAiaXMgcmVxdWlyZWQuXG4iKTsK K30KKwogLyogVGhlIGdlbm1hdGNoIGdlbmVyYXRvciBwcm9ncmFtLiAgSXQgcmVhZHMgZnJvbSBh IHBhdHRlcm4gZGVzY3JpcHRpb24KICAgIGFuZCBvdXRwdXRzIEdJTVBMRSBvciBHRU5FUklDIElM IG1hdGNoaW5nIGFuZCBzaW1wbGlmaWNhdGlvbiByb3V0aW5lcy4gICovCiAKQEAgLTUyMjgsMjUg KzUzMTMsNDQgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgIGJvb2wgZ2ltcGxl ID0gdHJ1ZTsKICAgdmVyYm9zZSA9IDA7Ci0gIGNoYXIgKmlucHV0ID0gYXJndlthcmdjLTFdOwot ICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2MgLSAxOyArK2kpCisgIGNoYXIgKnNfaGVhZGVyX2Zp bGUgPSBOVUxMOworICBjaGFyICpzX2luY2x1ZGVfZmlsZSA9IE5VTEw7CisgIGF1dG9fdmVjIDxj aGFyICo+IGZpbGVzOworICBjaGFyICppbnB1dCA9IE5VTEw7CisgIGludCBsYXN0X2ZpbGUgPSBh cmdjIC0gMTsKKyAgZm9yIChpbnQgaSA9IGFyZ2MgLSAxOyBpID49IDE7IC0taSkKICAgICB7CiAg ICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCAiLS1naW1wbGUiKSA9PSAwKQogCWdpbXBsZSA9IHRy dWU7CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItLWdlbmVyaWMiKSA9PSAwKQog CWdpbXBsZSA9IGZhbHNlOworICAgICAgZWxzZSBpZiAoc3RybmNtcCAoYXJndltpXSwgIi0taGVh ZGVyPSIsIDkpID09IDApCisJc19oZWFkZXJfZmlsZSA9ICZhcmd2W2ldWzldOworICAgICAgZWxz ZSBpZiAoc3RybmNtcCAoYXJndltpXSwgIi0taW5jbHVkZT0iLCAxMCkgPT0gMCkKKwlzX2luY2x1 ZGVfZmlsZSA9ICZhcmd2W2ldWzEwXTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwg Ii12IikgPT0gMCkKIAl2ZXJib3NlID0gMTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoYXJndltp XSwgIi12diIpID09IDApCiAJdmVyYm9zZSA9IDI7CisgICAgICBlbHNlIGlmIChzdHJuY21wIChh cmd2W2ldLCAiLS0iLCAyKSAhPSAwICYmIGxhc3RfZmlsZS0tID09IGkpCisJZmlsZXMuc2FmZV9w dXNoIChhcmd2W2ldKTsKICAgICAgIGVsc2UKIAl7Ci0JICBmcHJpbnRmIChzdGRlcnIsICJVc2Fn ZTogZ2VubWF0Y2ggIgotCQkgICAiWy0tZ2ltcGxlXSBbLS1nZW5lcmljXSBbLXZbdl1dIGlucHV0 XG4iKTsKKwkgIHNob3dVc2FnZSAoKTsKIAkgIHJldHVybiAxOwogCX0KICAgICB9CiAKKyAgLyog VmFsaWRhdGUgaWYgdGhlIGNvbWJpbmF0aW9ucyBhcmUgdmFsaWQuICAqLworICBpZiAoKGZpbGVz Lmxlbmd0aCAoKSA+IDEgJiYgIXNfaGVhZGVyX2ZpbGUpIHx8IGZpbGVzLmlzX2VtcHR5ICgpKQor ICAgIHNob3dVc2FnZSAoKTsKKworICBpZiAoIXNfaW5jbHVkZV9maWxlKQorICAgIHNfaW5jbHVk ZV9maWxlID0gc19oZWFkZXJfZmlsZTsKKworICAvKiBJbnB1dCBmaWxlIGlzIHRoZSBsYXN0IGlu IHRoZSByZXZlcnNlIGxpc3QuICAqLworICBpbnB1dCA9IGZpbGVzLnBvcCAoKTsKKwogICBsaW5l X3RhYmxlID0gWENORVcgKGNsYXNzIGxpbmVfbWFwcyk7CiAgIGxpbmVtYXBfaW5pdCAobGluZV90 YWJsZSwgMCk7CiAgIGxpbmVfdGFibGUtPnJlYWxsb2NhdG9yID0geHJlYWxsb2M7CkBAIC01Mjkz LDEwICs1Mzk3LDMyIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgLyogUGFyc2Ug YWhlYWQhICAqLwogICBwYXJzZXIgcCAociwgZ2ltcGxlKTsKIAorICAvKiBDcmVhdGUgZmlsZSBi dWZmZXJzLiAgKi8KKyAgaW50IG5fcGFydHMgPSBmaWxlcy5pc19lbXB0eSAoKSA/IDEgOiBmaWxl cy5sZW5ndGggKCk7CisgIGF1dG9fdmVjIDxGSUxFICo+IHBhcnRzIChuX3BhcnRzKTsKKyAgaWYg KGZpbGVzLmlzX2VtcHR5ICgpKQorICAgIHsKKyAgICAgIHBhcnRzLnF1aWNrX3B1c2ggKHN0ZG91 dCk7CisgICAgICBoZWFkZXJfZmlsZSA9IHN0ZG91dDsKKyAgICAgIHdyaXRlX2hlYWRlciAoc3Rk b3V0LCBzX2luY2x1ZGVfZmlsZSk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgZm9yIChj aGFyICpzX2ZpbGUgOiBmaWxlcykKKwl7CisJICBwYXJ0cy5xdWlja19wdXNoIChmb3BlbiAoc19m aWxlLCAidyIpKTsKKwkgIHdyaXRlX2hlYWRlciAocGFydHMubGFzdCAoKSwgc19pbmNsdWRlX2Zp bGUpOworCX0KKworICAgICAgaGVhZGVyX2ZpbGUgPSBmb3BlbiAoc19oZWFkZXJfZmlsZSwgInci KTsKKyAgICAgIGZwcmludGYgKGhlYWRlcl9maWxlLCAiI2lmbmRlZiBHQ0NfR0lNUExFX01BVENI X0FVVE9fSFxuIgorCQkJICAgICIjZGVmaW5lIEdDQ19HSU1QTEVfTUFUQ0hfQVVUT19IXG4iKTsK KyAgICB9CisKICAgaWYgKGdpbXBsZSkKLSAgICB3cml0ZV9oZWFkZXIgKHN0ZG91dCwgImdpbXBs ZS1tYXRjaC1oZWFkLmNjIik7CisgICAgZnByaW50ZiAoaGVhZGVyX2ZpbGUsICIjaW5jbHVkZSBc ImdpbXBsZS1tYXRjaC1oZWFkLmNjXCJcbiIpOwogICBlbHNlCi0gICAgd3JpdGVfaGVhZGVyIChz dGRvdXQsICJnZW5lcmljLW1hdGNoLWhlYWQuY2MiKTsKKyAgICBmcHJpbnRmIChoZWFkZXJfZmls ZSwgIiNpbmNsdWRlIFwiZ2VuZXJpYy1tYXRjaC1oZWFkLmNjXCJcbiIpOwogCiAgIC8qIEdvIG92 ZXIgYWxsIHByZWRpY2F0ZXMgZGVmaW5lZCB3aXRoIHBhdHRlcm5zIGFuZCBwZXJmb3JtCiAgICAg IGxvd2VyaW5nIGFuZCBjb2RlIGdlbmVyYXRpb24uICAqLwpAQCAtNTMxNiw3ICs1NDQyLDEwIEBA IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgIGlmICh2ZXJib3NlID09IDIpCiAJ ZHQucHJpbnQgKHN0ZGVycik7CiAKLSAgICAgIHdyaXRlX3ByZWRpY2F0ZSAoc3Rkb3V0LCBwcmVk LCBkdCwgZ2ltcGxlKTsKKyAgICAgIC8qIEN5Y2xlIHRoZSBmaWxlIGJ1ZmZlcnMuICAqLworICAg ICAgRklMRSAqZiA9IGdldF9vdXRfZmlsZSAocGFydHMpOworCisgICAgICB3cml0ZV9wcmVkaWNh dGUgKGYsIHByZWQsIGR0LCBnaW1wbGUpOwogICAgIH0KIAogICAvKiBMb3dlciB0aGUgbWFpbiBz aW1wbGlmaWVycyBhbmQgZ2VuZXJhdGUgY29kZSBmb3IgdGhlbS4gICovCkBAIC01MzMzLDcgKzU0 NjIsMTkgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBpZiAodmVyYm9zZSA9PSAy KQogICAgIGR0LnByaW50IChzdGRlcnIpOwogCi0gIGR0LmdlbiAoc3Rkb3V0LCBnaW1wbGUpOwor ICBkdC5nZW4gKHBhcnRzLCBnaW1wbGUpOworCisgIGZvciAoRklMRSAqZiA6IHBhcnRzKQorICAg IHsKKyAgICAgIGZwcmludGYgKGYsICIjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcFxuIik7Cisg ICAgICBmY2xvc2UgKGYpOworICAgIH0KKworICBpZiAoIWZpbGVzLmlzX2VtcHR5ICgpKQorICAg IHsKKyAgICAgIGZwcmludGYgKGhlYWRlcl9maWxlLCAiI2VuZGlmIC8qIEdDQ19HSU1QTEVfTUFU Q0hfQVVUT19ILiAgKi9cbiIpOworICAgICAgZmNsb3NlIChoZWFkZXJfZmlsZSk7CisgICAgfQog CiAgIC8qIEZpbmFsaXplLiAgKi8KICAgY3BwX2ZpbmlzaCAociwgTlVMTCk7Cg== --_002_VI1PR08MB532503E2B79078EC5607D4F0FF6B9VI1PR08MB5325eurp_--