From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2063.outbound.protection.outlook.com [40.107.21.63]) by sourceware.org (Postfix) with ESMTPS id 6A2223858D35 for ; Wed, 26 Jul 2023 19:32:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6A2223858D35 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=77RSofW0XXSLBvlpIdemRwG+mLDhWvA+ZAh60V/8W5Q=; b=vQKyVTJSgCPpPLCorfx3DuWGFp/1Ky0KDK4S7p4uCy2ZfqYbCHV4fSpvhNsYboEZYod7UpS8aQhuLkI3PiHO3A7FkoGFm7kBbp1Lkkm1FcgrdR0DZszZ3Uogctb0ViO3T6i+0DaBvW/20oLzHli7PguLXZHHsqMS0JJOUHO+J+Q= Received: from DUZPR01CA0081.eurprd01.prod.exchangelabs.com (2603:10a6:10:46a::6) by AM8PR08MB5585.eurprd08.prod.outlook.com (2603:10a6:20b:1c5::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.29; Wed, 26 Jul 2023 19:32:29 +0000 Received: from DBAEUR03FT015.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:46a:cafe::10) by DUZPR01CA0081.outlook.office365.com (2603:10a6:10:46a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.29 via Frontend Transport; Wed, 26 Jul 2023 19:32:29 +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 DBAEUR03FT015.mail.protection.outlook.com (100.127.142.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.29 via Frontend Transport; Wed, 26 Jul 2023 19:32:29 +0000 Received: ("Tessian outbound 95df046a2e2c:v145"); Wed, 26 Jul 2023 19:32:29 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b73f7e229b21f903 X-CR-MTA-TID: 64aa7808 Received: from 2b95620c1387.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B046272D-D277-422F-8475-2304D1586611.1; Wed, 26 Jul 2023 19:32:23 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2b95620c1387.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 26 Jul 2023 19:32:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S4B+pZ6QkES4ditzslnyP1KaXzrt8ZvDCKYzXtOHgH1YvhkA0sDp6VLRuYgxxsMcvs7KFJpwphXFr/Amzlm9W3QLUBuv8JEMk8GoOuhE693plLLHh24/jp/jUP7Qd47TnhvHVR3ny+24lxo2KdIBMTeeoV2xcKV9v2FUziWPq4oNlajFpF9nlU7/6oDIT/30VpnVU+vSzFUewsKZg+NxCCL5sU/fvyYK+0KuaDRycJ+hS5lIRAILSTQPcE1+ChzZzUvXQMiUDk567kt/E8bS+fXJkNdkc6JkS1WQg0pntQwzTDDcgbObQJhamzJ/uU5HFRojB+GfAuKC+sbkpV0Hyw== 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=77RSofW0XXSLBvlpIdemRwG+mLDhWvA+ZAh60V/8W5Q=; b=hn1mNCXaDHcFMjkCR3lFdmTL3HrViooZFDe+B4zzP2+1rcfDiJ3PoFWSDLEnpseAzH+wXSUnYNgYWPrG5JH0PRgnOM4wLT0d7bCPZE1/PEa2AqeqXzfy1YB3H1IiWUUKOhihSDMsDlRG8IQ4CfSlJARoECyADta+6crNy6iS9OIot0UDsffxq71YXMs6YnT4fMFDJzYY9PWYSKmbKP3XxAav2bfrGQqVn98u720McSzjbOMv3q+58zmSSKUj/ZvpdSOUczn2tQaerlV/M1GcaoeqpqzsEeXEhka7sv8705fTwJVzECfkP4s5u/wxpGjhg9kL4sNfREbhKpn9cuppHg== 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=77RSofW0XXSLBvlpIdemRwG+mLDhWvA+ZAh60V/8W5Q=; b=vQKyVTJSgCPpPLCorfx3DuWGFp/1Ky0KDK4S7p4uCy2ZfqYbCHV4fSpvhNsYboEZYod7UpS8aQhuLkI3PiHO3A7FkoGFm7kBbp1Lkkm1FcgrdR0DZszZ3Uogctb0ViO3T6i+0DaBvW/20oLzHli7PguLXZHHsqMS0JJOUHO+J+Q= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by DB8PR08MB5531.eurprd08.prod.outlook.com (2603:10a6:10:11e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.29; Wed, 26 Jul 2023 19:32:19 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::a85:6d3:5dd7:7d3]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::a85:6d3:5dd7:7d3%7]) with mapi id 15.20.6609.032; Wed, 26 Jul 2023 19:32:19 +0000 From: Tamar Christina To: Jason Merrill , "gcc-patches@gcc.gnu.org" CC: nd , "nathan@acm.org" Subject: RE: [PATCH 1/2][frontend] Add novector C++ pragma Thread-Topic: [PATCH 1/2][frontend] Add novector C++ pragma Thread-Index: AQHZulPpyyU07EsmHEKa7vQKDr3MUq/K/2aAgAF65cA= Date: Wed, 26 Jul 2023 19:32:18 +0000 Message-ID: References: <1437ed35-e278-4eea-eb50-fa918af927bd@redhat.com> In-Reply-To: <1437ed35-e278-4eea-eb50-fa918af927bd@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|DB8PR08MB5531:EE_|DBAEUR03FT015:EE_|AM8PR08MB5585:EE_ X-MS-Office365-Filtering-Correlation-Id: 82682fb9-7540-446c-5ba1-08db8e0f0d08 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: vyo3WoUa7eha/xAwC7y26yp2Zu3NFNn/UaK0ZHBWecaR4SssJL65NAdmxaBVTikXH1dNiKsMGG0jMuvnrrOKwZMd7tmQbdG8Yro+L2qKTxoEDt/oQX1rGnrO5Rjpt8L6uWyp3ezW76zm9wM46jovhXcgri7bDS76gqUFDJZC5P9v81yJkti3auiyAVkoui+qHJF5wci0kV/E5hjiH9ehokn9Nsuz35B7zwCXAy4eiWTrxuzj6crKITylq8fq3QWZC3MTs3R5kuqAqw3NOXQ7R1KlmYw8VPOF/jbL1zahS5sVJFMKuvPHwYtRgFpreSK/UFuo+1TMmxrgPOCst01pEL25dw8XdzUXaA0aW5CvpaOKevOrvHnWzG7F5pBwFrPwRbNAySB9rZeBXNhDJVYbCLEDWVXUYIDIuCc6MTXY5Q2kd8G/kLpLXKL7SNPYXBQ527PIlKNB27wjT1SNeWwdPOrGJMlN44SPgtuh+fhU976dg3J/f1pxmY+qdsQt+pHbKL7NFl2aPgZT1avqGFw1Gqi3Skdwp6/9D8XwK65kgmnZ6EgpZG3sQ6WLOQBdy8oUkWrnNN2xJoN/oXv8TNq2Jz6qB346GRyirrGdaIFz7DRgKDS3wBXivW/ySOO9fDmB 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)(346002)(366004)(396003)(39860400002)(376002)(136003)(451199021)(110136005)(54906003)(7696005)(9686003)(478600001)(83380400001)(55016003)(86362001)(38070700005)(33656002)(64756008)(66446008)(66556008)(30864003)(2906002)(66476007)(186003)(6506007)(26005)(71200400001)(122000001)(38100700002)(99936003)(76116006)(52536014)(4326008)(316002)(41300700001)(66946007)(5660300002)(8936002)(8676002)(559001)(579004);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB53256E75FC1DE820BA64FC0DFF00AVI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5531 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: DBAEUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 9430d804-28ea-484c-b4dc-08db8e0f069b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qAe5MbBValtcA1Tk2NvAEEOAeVXbnH6JG4S1hlEkE4R1558EC4CGpSu6XHtjKDwbhr99MHFMih0HOKmxRsriPNAryXfRXomNKPbLhqezF8PaH/OAZO8AR4rli6dg1fJIa+W2yK772hV2pPwPKr+V/mCPXkRNaix0r6QVMg9E8pkD4xckbz/wE44hT1IfW/vN55kfXfDoWIdO1UI1aNUMd1RRrnstsmODV+eIezjtT5dVn0gHfSbgAk3ZMgUvrgRSh1L61YH/ck1TJL3qDAOXSH2cTP/y40QDxabFxrHlqtpLbLXEZY/AbQ4Obcpf1nDuQBbEp4WtrtXcjMxR5YAvZOD21yPzK4ncN0JOd8feuJxgdteRV40i2iINRWX0n+S73HlQvU2tD4yHssndH5gFiMVhC0hhOYyyf8S99q65RFEloj49qV2cvs+i4bX1iznz25i8e6aJPfFHF6ZoGfI0k6xeN7l707Bp3uL9GL2pA8KvzsIndzLhSUrkwrcc2qovMIf0gKgiyw077nmmsR7iTOnqzbjI18loDwYGpdrZOaiEJBtDUc6TJy9d052o92SiLHDcPA8JYW4Vk8nlIROdsN3WdLXgfvMBhwlSwPhVZlm6o3KEveWVyfT3pQcqBIgPlToIFzguygaQYBpKVF2VO00yoFJG0/Htdb0a1UXDCkwHrbICjH05FPr/6XX8sdOd2fqEEkZWDHzz/yk/Z/2bW4i4R6wXqFIW9G3YvTO/u3EJq4LBvCIH0JIQfl6RSbj9 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)(396003)(376002)(346002)(136003)(39860400002)(82310400008)(451199021)(40470700004)(36840700001)(46966006)(110136005)(54906003)(40480700001)(55016003)(82740400003)(7696005)(33964004)(81166007)(99936003)(40460700003)(356005)(478600001)(8936002)(8676002)(235185007)(5660300002)(2906002)(30864003)(33656002)(86362001)(52536014)(4326008)(70206006)(70586007)(41300700001)(316002)(83380400001)(6506007)(26005)(336012)(36860700001)(9686003)(186003)(47076005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2023 19:32:29.7362 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 82682fb9-7540-446c-5ba1-08db8e0f0d08 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: DBAEUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5585 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,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_VI1PR08MB53256E75FC1DE820BA64FC0DFF00AVI1PR08MB5325eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiA+ICsNCj4gPiArCWNwX3Rva2VuICp0b2sgPSBwcmFnbWFfdG9rOw0KPiA+ICsNCj4gPiArCWRv DQo+ID4gICAJICB7DQo+ID4gLQkgICAgdG9rID0gY3BfbGV4ZXJfY29uc3VtZV90b2tlbiAocGFy c2VyLT5sZXhlcik7DQo+ID4gLQkgICAgaXZkZXAgPSBjcF9wYXJzZXJfcHJhZ21hX2l2ZGVwIChw YXJzZXIsIHRvayk7DQo+ID4gLQkgICAgdG9rID0gY3BfbGV4ZXJfcGVla190b2tlbiAodGhlX3Bh cnNlci0+bGV4ZXIpOw0KPiA+ICsJICAgIHN3aXRjaCAoY3BfcGFyc2VyX3ByYWdtYV9raW5kICh0 b2spKQ0KPiA+ICsJICAgICAgew0KPiA+ICsJCWNhc2UgUFJBR01BX0lWREVQOg0KPiA+ICsJCSAg ew0KPiA+ICsJCSAgICBpZiAodG9rICE9IHByYWdtYV90b2spDQo+ID4gKwkJICAgICAgdG9rID0g Y3BfbGV4ZXJfY29uc3VtZV90b2tlbiAocGFyc2VyLT5sZXhlcik7DQo+ID4gKwkJICAgIGl2ZGVw ID0gY3BfcGFyc2VyX3ByYWdtYV9pdmRlcCAocGFyc2VyLCB0b2spOw0KPiA+ICsJCSAgICB0b2sg PSBjcF9sZXhlcl9wZWVrX3Rva2VuICh0aGVfcGFyc2VyLT5sZXhlcik7DQo+ID4gKwkJICAgIGJy ZWFrOw0KPiA+ICsJCSAgfQ0KPiA+ICsJCWNhc2UgUFJBR01BX1VOUk9MTDoNCj4gPiArCQkgIHsN Cj4gPiArCQkgICAgaWYgKHRvayAhPSBwcmFnbWFfdG9rKQ0KPiA+ICsJCSAgICAgIHRvayA9IGNw X2xleGVyX2NvbnN1bWVfdG9rZW4gKHBhcnNlci0+bGV4ZXIpOw0KPiA+ICsJCSAgICB1bnJvbGwg PSBjcF9wYXJzZXJfcHJhZ21hX3Vucm9sbCAocGFyc2VyLCB0b2spOw0KPiA+ICsJCSAgICB0b2sg PSBjcF9sZXhlcl9wZWVrX3Rva2VuICh0aGVfcGFyc2VyLT5sZXhlcik7DQo+ID4gKwkJICAgIGJy ZWFrOw0KPiA+ICsJCSAgfQ0KPiA+ICsJCWNhc2UgUFJBR01BX05PVkVDVE9SOg0KPiA+ICsJCSAg ew0KPiA+ICsJCSAgICBpZiAodG9rICE9IHByYWdtYV90b2spDQo+ID4gKwkJICAgICAgdG9rID0g Y3BfbGV4ZXJfY29uc3VtZV90b2tlbiAocGFyc2VyLT5sZXhlcik7DQo+ID4gKwkJICAgIG5vdmVj dG9yID0gY3BfcGFyc2VyX3ByYWdtYV9ub3ZlY3RvciAocGFyc2VyLCB0b2spOw0KPiA+ICsJCSAg ICB0b2sgPSBjcF9sZXhlcl9wZWVrX3Rva2VuICh0aGVfcGFyc2VyLT5sZXhlcik7DQo+ID4gKwkJ ICAgIGJyZWFrOw0KPiA+ICsJCSAgfQ0KPiA+ICsJCWRlZmF1bHQ6DQo+ID4gKwkJICBnY2NfdW5y ZWFjaGFibGUgKCk7DQo+IA0KPiBUaGlzIHVucmVhY2hhYmxlIHNlZW1zIHRvIGFzc2VydCB0aGF0 IGlmIGEgcHJhZ21hIGZvbGxvd3Mgb25lIG9mIHRoZXNlDQo+IHByYWdtYXMsIGl0IG11c3QgYmUg YW5vdGhlciBvbmUgb2YgdGhlc2UgcHJhZ21hcz8gIFRoYXQgc2VlbXMgd3Jvbmc7DQo+IGluc3Rl YWQgb2YgaGl0dGluZyBnY2NfdW5yZWFjaGFibGUoKSBpbiB0aGF0IGNhc2Ugd2Ugc2hvdWxkIGZh bGwgdGhyb3VnaCB0byB0aGUNCj4gZGlhZ25vc3RpYyBiZWxvdy4NCj4gDQoNCkFoLCBnb29kIHNo b3VsZC4gU2luY2UgaXQgaGFzIHRvIGV4aXQgdHdvIGxldmVscyBJIGhhZCB0byBpbnRyb2R1Y2Ug YSBib29sDQpmb3IgY29udHJvbGxpbmcgdGhlIGxvb3AgaXRlcmF0aW9ucy4gIE5ldyBwYXRjaCBi ZWxvdy4NCg0KQm9vdHN0cmFwcGVkIFJlZ3Rlc3RlZCBvbiBhYXJjaDY0LW5vbmUtbGludXgtZ251 IGFuZCBubyBpc3N1ZXMuDQoNCk9rIGZvciBtYXN0ZXI/DQoNClRoYW5rcywNClRhbWFyDQoNCmdj Yy9jcC9DaGFuZ2VMb2c6DQoNCgkqIGNwLXRyZWUuaCAoUkFOR0VfRk9SX05PVkVDVE9SKTogTmV3 Lg0KCShjcF9jb252ZXJ0X3JhbmdlX2ZvciwgZmluaXNoX3doaWxlX3N0bXRfY29uZCwgZmluaXNo X2RvX3N0bXQsDQoJZmluaXNoX2Zvcl9jb25kKTogQWRkIG5vdmVjdG9yIHBhcmFtLg0KCSogaW5p dC5jYyAoYnVpbGRfdmVjX2luaXQpOiBEZWZhdWx0IG5vdmVjdG9yIHRvIGZhbHNlLg0KCSogbWV0 aG9kLmNjIChidWlsZF9jb21wYXJpc29uX29wKTogTGlrZXdpc2UuDQoJKiBwYXJzZXIuY2MgKGNw X3BhcnNlcl9zdGF0ZW1lbnQpOiBMaWtld2lzZS4NCgkoY3BfcGFyc2VyX2ZvciwgY3BfcGFyc2Vy X2NfZm9yLCBjcF9wYXJzZXJfcmFuZ2VfZm9yLA0KCWNwX2NvbnZlcnRfcmFuZ2VfZm9yLCBjcF9w YXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudCwNCgljcF9wYXJzZXJfb21wX2Zvcl9sb29wLCBjcF9w YXJzZXJfcHJhZ21hKTogU3VwcG9ydCBub3ZlY3Rvci4NCgkoY3BfcGFyc2VyX3ByYWdtYV9ub3Zl Y3Rvcik6IE5ldy4NCgkqIHB0LmNjICh0c3Vic3RfZXhwcik6IExpa2V3aXNlLg0KCSogc2VtYW50 aWNzLmNjIChmaW5pc2hfd2hpbGVfc3RtdF9jb25kLCBmaW5pc2hfZG9fc3RtdCwNCglmaW5pc2hf Zm9yX2NvbmQpOiBMaWtld2lzZS4NCg0KZ2NjL0NoYW5nZUxvZzoNCg0KCSogZG9jL2V4dGVuZC50 ZXhpOiBEb2N1bWVudCBpdC4NCg0KZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQoNCgkqIGcrKy5k Zy92ZWN0L3ZlY3QuZXhwIChzdXBwb3J0IHZlY3QtIHByZWZpeCkuDQoJKiBnKysuZGcvdmVjdC92 ZWN0LW5vdmVjdG9yLXByYWdtYS5jYzogTmV3IHRlc3QuDQoNCi0tLSBpbmxpbmUgY29weSBvZiBw YXRjaCAtLS0NCg0KZGlmZiAtLWdpdCBhL2djYy9jcC9jcC10cmVlLmggYi9nY2MvY3AvY3AtdHJl ZS5oDQppbmRleCA4Mzk4MjIzMzExMTk0ODM3NDQxMTA3Y2IzMzVkNDk3ZmY1ZjVlYzFjLi5iZWNl N2JmZjFmMDFhMjNjZmM5NDM4NmZkMzI5NWEwYmU4YzQ2MmZlIDEwMDY0NA0KLS0tIGEvZ2NjL2Nw L2NwLXRyZWUuaA0KKysrIGIvZ2NjL2NwL2NwLXRyZWUuaA0KQEAgLTUzNzcsNiArNTM3Nyw3IEBA IGdldF92ZWNfaW5pdF9leHByICh0cmVlIHQpDQogI2RlZmluZSBSQU5HRV9GT1JfVU5ST0xMKE5P REUpCVRSRUVfT1BFUkFORCAoUkFOR0VfRk9SX1NUTVRfQ0hFQ0sgKE5PREUpLCA0KQ0KICNkZWZp bmUgUkFOR0VfRk9SX0lOSVRfU1RNVChOT0RFKSBUUkVFX09QRVJBTkQgKFJBTkdFX0ZPUl9TVE1U X0NIRUNLIChOT0RFKSwgNSkNCiAjZGVmaW5lIFJBTkdFX0ZPUl9JVkRFUChOT0RFKQlUUkVFX0xB TkdfRkxBR182IChSQU5HRV9GT1JfU1RNVF9DSEVDSyAoTk9ERSkpDQorI2RlZmluZSBSQU5HRV9G T1JfTk9WRUNUT1IoTk9ERSkgVFJFRV9MQU5HX0ZMQUdfNSAoUkFOR0VfRk9SX1NUTVRfQ0hFQ0sg KE5PREUpKQ0KIA0KIC8qIFNUTVRfRVhQUiBhY2Nlc3Nvci4gICovDQogI2RlZmluZSBTVE1UX0VY UFJfU1RNVChOT0RFKQlUUkVFX09QRVJBTkQgKFNUTVRfRVhQUl9DSEVDSyAoTk9ERSksIDApDQpA QCAtNzI4Niw3ICs3Mjg3LDcgQEAgZXh0ZXJuIGJvb2wgbWF5YmVfY2xvbmVfYm9keQkJCSh0cmVl KTsNCiANCiAvKiBJbiBwYXJzZXIuY2MgKi8NCiBleHRlcm4gdHJlZSBjcF9jb252ZXJ0X3Jhbmdl X2ZvciAodHJlZSwgdHJlZSwgdHJlZSwgdHJlZSwgdW5zaWduZWQgaW50LCBib29sLA0KLQkJCQkg IHVuc2lnbmVkIHNob3J0KTsNCisJCQkJICB1bnNpZ25lZCBzaG9ydCwgYm9vbCk7DQogZXh0ZXJu IHZvaWQgY3BfY29udmVydF9vbXBfcmFuZ2VfZm9yICh0cmVlICYsIHZlYzx0cmVlLCB2YV9nYz4g KiwgdHJlZSAmLA0KIAkJCQkgICAgICB0cmVlICYsIHRyZWUgJiwgdHJlZSAmLCB0cmVlICYsIHRy ZWUgJik7DQogZXh0ZXJuIHZvaWQgY3BfZmluaXNoX29tcF9yYW5nZV9mb3IgKHRyZWUsIHRyZWUp Ow0KQEAgLTc2MDksMTYgKzc2MTAsMTkgQEAgZXh0ZXJuIHZvaWQgYmVnaW5fZWxzZV9jbGF1c2UJ CQkodHJlZSk7DQogZXh0ZXJuIHZvaWQgZmluaXNoX2Vsc2VfY2xhdXNlCQkJKHRyZWUpOw0KIGV4 dGVybiB2b2lkIGZpbmlzaF9pZl9zdG10CQkJKHRyZWUpOw0KIGV4dGVybiB0cmVlIGJlZ2luX3do aWxlX3N0bXQJCQkodm9pZCk7DQotZXh0ZXJuIHZvaWQgZmluaXNoX3doaWxlX3N0bXRfY29uZAko dHJlZSwgdHJlZSwgYm9vbCwgdW5zaWduZWQgc2hvcnQpOw0KK2V4dGVybiB2b2lkIGZpbmlzaF93 aGlsZV9zdG10X2NvbmQJKHRyZWUsIHRyZWUsIGJvb2wsIHVuc2lnbmVkIHNob3J0LA0KKwkJCQkJ IGJvb2wpOw0KIGV4dGVybiB2b2lkIGZpbmlzaF93aGlsZV9zdG10CQkJKHRyZWUpOw0KIGV4dGVy biB0cmVlIGJlZ2luX2RvX3N0bXQJCQkodm9pZCk7DQogZXh0ZXJuIHZvaWQgZmluaXNoX2RvX2Jv ZHkJCQkodHJlZSk7DQotZXh0ZXJuIHZvaWQgZmluaXNoX2RvX3N0bXQJCSh0cmVlLCB0cmVlLCBi b29sLCB1bnNpZ25lZCBzaG9ydCk7DQorZXh0ZXJuIHZvaWQgZmluaXNoX2RvX3N0bXQJCSh0cmVl LCB0cmVlLCBib29sLCB1bnNpZ25lZCBzaG9ydCwNCisJCQkJCSBib29sKTsNCiBleHRlcm4gdHJl ZSBmaW5pc2hfcmV0dXJuX3N0bXQJCQkodHJlZSk7DQogZXh0ZXJuIHRyZWUgYmVnaW5fZm9yX3Nj b3BlCQkJKHRyZWUgKik7DQogZXh0ZXJuIHRyZWUgYmVnaW5fZm9yX3N0bXQJCQkodHJlZSwgdHJl ZSk7DQogZXh0ZXJuIHZvaWQgZmluaXNoX2luaXRfc3RtdAkJCSh0cmVlKTsNCi1leHRlcm4gdm9p ZCBmaW5pc2hfZm9yX2NvbmQJCSh0cmVlLCB0cmVlLCBib29sLCB1bnNpZ25lZCBzaG9ydCk7DQor ZXh0ZXJuIHZvaWQgZmluaXNoX2Zvcl9jb25kCQkodHJlZSwgdHJlZSwgYm9vbCwgdW5zaWduZWQg c2hvcnQsDQorCQkJCQkgYm9vbCk7DQogZXh0ZXJuIHZvaWQgZmluaXNoX2Zvcl9leHByCQkJKHRy ZWUsIHRyZWUpOw0KIGV4dGVybiB2b2lkIGZpbmlzaF9mb3Jfc3RtdAkJCSh0cmVlKTsNCiBleHRl cm4gdHJlZSBiZWdpbl9yYW5nZV9mb3Jfc3RtdAkJKHRyZWUsIHRyZWUpOw0KZGlmZiAtLWdpdCBh L2djYy9jcC9pbml0LmNjIGIvZ2NjL2NwL2luaXQuY2MNCmluZGV4IGFmNmUzMGY1MTFlMTQyYzdh NTk0ZTc0MmQxMjhiMmJmMGFhOGZiOGQuLjViNzM1YjI3ZTZmNWJjNmI0MzlhZTY0NjY1OTAyZjRm MWNhNzZmOTUgMTAwNjQ0DQotLS0gYS9nY2MvY3AvaW5pdC5jYw0KKysrIGIvZ2NjL2NwL2luaXQu Y2MNCkBAIC00ODQ2LDcgKzQ4NDYsNyBAQCBidWlsZF92ZWNfaW5pdCAodHJlZSBiYXNlLCB0cmVl IG1heGluZGV4LCB0cmVlIGluaXQsDQogICAgICAgZmluaXNoX2luaXRfc3RtdCAoZm9yX3N0bXQp Ow0KICAgICAgIGZpbmlzaF9mb3JfY29uZCAoYnVpbGQyIChHVF9FWFBSLCBib29sZWFuX3R5cGVf bm9kZSwgaXRlcmF0b3IsDQogCQkJICAgICAgIGJ1aWxkX2ludF9jc3QgKFRSRUVfVFlQRSAoaXRl cmF0b3IpLCAtMSkpLA0KLQkJICAgICAgIGZvcl9zdG10LCBmYWxzZSwgMCk7DQorCQkgICAgICAg Zm9yX3N0bXQsIGZhbHNlLCAwLCBmYWxzZSk7DQogICAgICAgLyogV2UgdXNlZCB0byBwYXNzIHRo aXMgZGVjcmVtZW50IHRvIGZpbmlzaF9mb3JfZXhwcjsgbm93IHdlIGFkZCBpdCB0bw0KIAkgZWx0 X2luaXQgYmVsb3cgc28gaXQncyBwYXJ0IG9mIHRoZSBzYW1lIGZ1bGwtZXhwcmVzc2lvbiBhcyB0 aGUNCiAJIGluaXRpYWxpemF0aW9uLCBhbmQgdGh1cyBoYXBwZW5zIGJlZm9yZSBhbnkgcG90ZW50 aWFsbHkgdGhyb3dpbmcNCmRpZmYgLS1naXQgYS9nY2MvY3AvbWV0aG9kLmNjIGIvZ2NjL2NwL21l dGhvZC5jYw0KaW5kZXggOTFjZjk0M2YxMTA4OWMwZTZiY2JlODM3N2RhYTRlMDE2Zjk1NmQ1Ni4u ZmNlNDljNzk2MTk5YzJjNjVjZDcwNjg0ZTI5NDJmZWExYjZiMmViZCAxMDA2NDQNCi0tLSBhL2dj Yy9jcC9tZXRob2QuY2MNCisrKyBiL2djYy9jcC9tZXRob2QuY2MNCkBAIC0xNjQ1LDcgKzE2NDUs OCBAQCBidWlsZF9jb21wYXJpc29uX29wICh0cmVlIGZuZGVjbCwgYm9vbCBkZWZpbmluZywgdHN1 YnN0X2ZsYWdzX3QgY29tcGxhaW4pDQogCQkgICAgICBhZGRfc3RtdCAoaWR4KTsNCiAJCSAgICAg IGZpbmlzaF9pbml0X3N0bXQgKGZvcl9zdG10KTsNCiAJCSAgICAgIGZpbmlzaF9mb3JfY29uZCAo YnVpbGQyIChMRV9FWFBSLCBib29sZWFuX3R5cGVfbm9kZSwgaWR4LA0KLQkJCQkJICAgICAgIG1h eHZhbCksIGZvcl9zdG10LCBmYWxzZSwgMCk7DQorCQkJCQkgICAgICAgbWF4dmFsKSwgZm9yX3N0 bXQsIGZhbHNlLCAwLA0KKwkJCQkJICAgICAgIGZhbHNlKTsNCiAJCSAgICAgIGZpbmlzaF9mb3Jf ZXhwciAoY3BfYnVpbGRfdW5hcnlfb3AgKFBSRUlOQ1JFTUVOVF9FWFBSLA0KIAkJCQkJCQkgIFRB UkdFVF9FWFBSX1NMT1QgKGlkeCksDQogCQkJCQkJCSAgZmFsc2UsIGNvbXBsYWluKSwNCmRpZmYg LS1naXQgYS9nY2MvY3AvcGFyc2VyLmNjIGIvZ2NjL2NwL3BhcnNlci5jYw0KaW5kZXggZGQzNjY1 YzhjY2Y0OGE4YTBiMWJhMmMwNjQwMGZlNTA5OTllYTI0MC4uMDkyZjk5MWQ3YTFiNmFhYjg0ODJk NTA4NDhmYjlmYjk2YzM3NzUwOSAxMDA2NDQNCi0tLSBhL2djYy9jcC9wYXJzZXIuY2MNCisrKyBi L2djYy9jcC9wYXJzZXIuY2MNCkBAIC0yMzI0LDE1ICsyMzI0LDE1IEBAIHN0YXRpYyB0cmVlIGNw X3BhcnNlcl9zZWxlY3Rpb25fc3RhdGVtZW50DQogc3RhdGljIHRyZWUgY3BfcGFyc2VyX2NvbmRp dGlvbg0KICAgKGNwX3BhcnNlciAqKTsNCiBzdGF0aWMgdHJlZSBjcF9wYXJzZXJfaXRlcmF0aW9u X3N0YXRlbWVudA0KLSAgKGNwX3BhcnNlciAqLCBib29sICosIGJvb2wsIHVuc2lnbmVkIHNob3J0 KTsNCisgIChjcF9wYXJzZXIgKiwgYm9vbCAqLCBib29sLCB1bnNpZ25lZCBzaG9ydCwgYm9vbCk7 DQogc3RhdGljIGJvb2wgY3BfcGFyc2VyX2luaXRfc3RhdGVtZW50DQogICAoY3BfcGFyc2VyICos IHRyZWUgKmRlY2wpOw0KIHN0YXRpYyB0cmVlIGNwX3BhcnNlcl9mb3INCi0gIChjcF9wYXJzZXIg KiwgYm9vbCwgdW5zaWduZWQgc2hvcnQpOw0KKyAgKGNwX3BhcnNlciAqLCBib29sLCB1bnNpZ25l ZCBzaG9ydCwgYm9vbCk7DQogc3RhdGljIHRyZWUgY3BfcGFyc2VyX2NfZm9yDQotICAoY3BfcGFy c2VyICosIHRyZWUsIHRyZWUsIGJvb2wsIHVuc2lnbmVkIHNob3J0KTsNCisgIChjcF9wYXJzZXIg KiwgdHJlZSwgdHJlZSwgYm9vbCwgdW5zaWduZWQgc2hvcnQsIGJvb2wpOw0KIHN0YXRpYyB0cmVl IGNwX3BhcnNlcl9yYW5nZV9mb3INCi0gIChjcF9wYXJzZXIgKiwgdHJlZSwgdHJlZSwgdHJlZSwg Ym9vbCwgdW5zaWduZWQgc2hvcnQsIGJvb2wpOw0KKyAgKGNwX3BhcnNlciAqLCB0cmVlLCB0cmVl LCB0cmVlLCBib29sLCB1bnNpZ25lZCBzaG9ydCwgYm9vbCwgYm9vbCk7DQogc3RhdGljIHZvaWQg ZG9fcmFuZ2VfZm9yX2F1dG9fZGVkdWN0aW9uDQogICAodHJlZSwgdHJlZSwgdHJlZSwgdW5zaWdu ZWQgaW50KTsNCiBzdGF0aWMgdHJlZSBjcF9wYXJzZXJfcGVyZm9ybV9yYW5nZV9mb3JfbG9va3Vw DQpAQCAtMTI0MTQsNyArMTI0MTQsOCBAQCBjcF9wYXJzZXJfc3RhdGVtZW50IChjcF9wYXJzZXIq IHBhcnNlciwgdHJlZSBpbl9zdGF0ZW1lbnRfZXhwciwNCiAJY2FzZSBSSURfRE86DQogCWNhc2Ug UklEX0ZPUjoNCiAJICBzdGRfYXR0cnMgPSBwcm9jZXNzX3N0bXRfaG90bmVzc19hdHRyaWJ1dGUg KHN0ZF9hdHRycywgYXR0cnNfbG9jKTsNCi0JICBzdGF0ZW1lbnQgPSBjcF9wYXJzZXJfaXRlcmF0 aW9uX3N0YXRlbWVudCAocGFyc2VyLCBpZl9wLCBmYWxzZSwgMCk7DQorCSAgc3RhdGVtZW50ID0g Y3BfcGFyc2VyX2l0ZXJhdGlvbl9zdGF0ZW1lbnQgKHBhcnNlciwgaWZfcCwgZmFsc2UsIDAsDQor CQkJCQkJICAgICBmYWxzZSk7DQogCSAgYnJlYWs7DQogDQogCWNhc2UgUklEX0JSRUFLOg0KQEAg LTEzNTk0LDcgKzEzNTk1LDggQEAgY3BfcGFyc2VyX2NvbmRpdGlvbiAoY3BfcGFyc2VyKiBwYXJz ZXIpDQogICAgbm90IGluY2x1ZGVkLiAqLw0KIA0KIHN0YXRpYyB0cmVlDQotY3BfcGFyc2VyX2Zv ciAoY3BfcGFyc2VyICpwYXJzZXIsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9sbCkN CitjcF9wYXJzZXJfZm9yIChjcF9wYXJzZXIgKnBhcnNlciwgYm9vbCBpdmRlcCwgdW5zaWduZWQg c2hvcnQgdW5yb2xsLA0KKwkgICAgICAgYm9vbCBub3ZlY3RvcikNCiB7DQogICB0cmVlIGluaXQs IHNjb3BlLCBkZWNsOw0KICAgYm9vbCBpc19yYW5nZV9mb3I7DQpAQCAtMTM2MjQsMTQgKzEzNjI2 LDE0IEBAIGNwX3BhcnNlcl9mb3IgKGNwX3BhcnNlciAqcGFyc2VyLCBib29sIGl2ZGVwLCB1bnNp Z25lZCBzaG9ydCB1bnJvbGwpDQogDQogICBpZiAoaXNfcmFuZ2VfZm9yKQ0KICAgICByZXR1cm4g Y3BfcGFyc2VyX3JhbmdlX2ZvciAocGFyc2VyLCBzY29wZSwgaW5pdCwgZGVjbCwgaXZkZXAsIHVu cm9sbCwNCi0JCQkJZmFsc2UpOw0KKwkJCQlub3ZlY3RvciwgZmFsc2UpOw0KICAgZWxzZQ0KLSAg ICByZXR1cm4gY3BfcGFyc2VyX2NfZm9yIChwYXJzZXIsIHNjb3BlLCBpbml0LCBpdmRlcCwgdW5y b2xsKTsNCisgICAgcmV0dXJuIGNwX3BhcnNlcl9jX2ZvciAocGFyc2VyLCBzY29wZSwgaW5pdCwg aXZkZXAsIHVucm9sbCwgbm92ZWN0b3IpOw0KIH0NCiANCiBzdGF0aWMgdHJlZQ0KIGNwX3BhcnNl cl9jX2ZvciAoY3BfcGFyc2VyICpwYXJzZXIsIHRyZWUgc2NvcGUsIHRyZWUgaW5pdCwgYm9vbCBp dmRlcCwNCi0JCSB1bnNpZ25lZCBzaG9ydCB1bnJvbGwpDQorCQkgdW5zaWduZWQgc2hvcnQgdW5y b2xsLCBib29sIG5vdmVjdG9yKQ0KIHsNCiAgIC8qIE5vcm1hbCBmb3IgbG9vcCAqLw0KICAgdHJl ZSBjb25kaXRpb24gPSBOVUxMX1RSRUU7DQpAQCAtMTM2NTgsNyArMTM2NjAsNyBAQCBjcF9wYXJz ZXJfY19mb3IgKGNwX3BhcnNlciAqcGFyc2VyLCB0cmVlIHNjb3BlLCB0cmVlIGluaXQsIGJvb2wg aXZkZXAsDQogCQkgICAgICAgIiU8R0NDIHVucm9sbCU+IHByYWdtYSIpOw0KICAgICAgIGNvbmRp dGlvbiA9IGVycm9yX21hcmtfbm9kZTsNCiAgICAgfQ0KLSAgZmluaXNoX2Zvcl9jb25kIChjb25k aXRpb24sIHN0bXQsIGl2ZGVwLCB1bnJvbGwpOw0KKyAgZmluaXNoX2Zvcl9jb25kIChjb25kaXRp b24sIHN0bXQsIGl2ZGVwLCB1bnJvbGwsIG5vdmVjdG9yKTsNCiAgIC8qIExvb2sgZm9yIHRoZSBg OycuICAqLw0KICAgY3BfcGFyc2VyX3JlcXVpcmUgKHBhcnNlciwgQ1BQX1NFTUlDT0xPTiwgUlRf U0VNSUNPTE9OKTsNCiANCkBAIC0xMzY4Miw3ICsxMzY4NCw4IEBAIGNwX3BhcnNlcl9jX2ZvciAo Y3BfcGFyc2VyICpwYXJzZXIsIHRyZWUgc2NvcGUsIHRyZWUgaW5pdCwgYm9vbCBpdmRlcCwNCiAN CiBzdGF0aWMgdHJlZQ0KIGNwX3BhcnNlcl9yYW5nZV9mb3IgKGNwX3BhcnNlciAqcGFyc2VyLCB0 cmVlIHNjb3BlLCB0cmVlIGluaXQsIHRyZWUgcmFuZ2VfZGVjbCwNCi0JCSAgICAgYm9vbCBpdmRl cCwgdW5zaWduZWQgc2hvcnQgdW5yb2xsLCBib29sIGlzX29tcCkNCisJCSAgICAgYm9vbCBpdmRl cCwgdW5zaWduZWQgc2hvcnQgdW5yb2xsLCBib29sIG5vdmVjdG9yLA0KKwkJICAgICBib29sIGlz X29tcCkNCiB7DQogICB0cmVlIHN0bXQsIHJhbmdlX2V4cHI7DQogICBhdXRvX3ZlYyA8Y3h4X2Jp bmRpbmcgKiwgMTY+IGJpbmRpbmdzOw0KQEAgLTEzNzU4LDYgKzEzNzYxLDggQEAgY3BfcGFyc2Vy X3JhbmdlX2ZvciAoY3BfcGFyc2VyICpwYXJzZXIsIHRyZWUgc2NvcGUsIHRyZWUgaW5pdCwgdHJl ZSByYW5nZV9kZWNsLA0KIAlSQU5HRV9GT1JfSVZERVAgKHN0bXQpID0gMTsNCiAgICAgICBpZiAo dW5yb2xsKQ0KIAlSQU5HRV9GT1JfVU5ST0xMIChzdG10KSA9IGJ1aWxkX2ludF9jc3QgKGludGVn ZXJfdHlwZV9ub2RlLCB1bnJvbGwpOw0KKyAgICAgIGlmIChub3ZlY3RvcikNCisJUkFOR0VfRk9S X05PVkVDVE9SIChzdG10KSA9IDE7DQogICAgICAgZmluaXNoX3JhbmdlX2Zvcl9kZWNsIChzdG10 LCByYW5nZV9kZWNsLCByYW5nZV9leHByKTsNCiAgICAgICBpZiAoIXR5cGVfZGVwZW5kZW50X2V4 cHJlc3Npb25fcCAocmFuZ2VfZXhwcikNCiAJICAvKiBkb19hdXRvX2RlZHVjdGlvbiBkb2Vzbid0 IG1lc3Mgd2l0aCB0ZW1wbGF0ZSBpbml0LWxpc3RzLiAgKi8NCkBAIC0xMzc3MCw3ICsxMzc3NSw3 IEBAIGNwX3BhcnNlcl9yYW5nZV9mb3IgKGNwX3BhcnNlciAqcGFyc2VyLCB0cmVlIHNjb3BlLCB0 cmVlIGluaXQsIHRyZWUgcmFuZ2VfZGVjbCwNCiAgICAgICBzdG10ID0gYmVnaW5fZm9yX3N0bXQg KHNjb3BlLCBpbml0KTsNCiAgICAgICBzdG10ID0gY3BfY29udmVydF9yYW5nZV9mb3IgKHN0bXQs IHJhbmdlX2RlY2wsIHJhbmdlX2V4cHIsDQogCQkJCSAgIGRlY29tcF9maXJzdF9uYW1lLCBkZWNv bXBfY250LCBpdmRlcCwNCi0JCQkJICAgdW5yb2xsKTsNCisJCQkJICAgdW5yb2xsLCBub3ZlY3Rv cik7DQogICAgIH0NCiAgIHJldHVybiBzdG10Ow0KIH0NCkBAIC0xMzk0OCw3ICsxMzk1Myw3IEBA IHdhcm5fZm9yX3JhbmdlX2NvcHkgKHRyZWUgZGVjbCwgdHJlZSBleHByKQ0KIHRyZWUNCiBjcF9j b252ZXJ0X3JhbmdlX2ZvciAodHJlZSBzdGF0ZW1lbnQsIHRyZWUgcmFuZ2VfZGVjbCwgdHJlZSBy YW5nZV9leHByLA0KIAkJICAgICAgdHJlZSBkZWNvbXBfZmlyc3RfbmFtZSwgdW5zaWduZWQgaW50 IGRlY29tcF9jbnQsDQotCQkgICAgICBib29sIGl2ZGVwLCB1bnNpZ25lZCBzaG9ydCB1bnJvbGwp DQorCQkgICAgICBib29sIGl2ZGVwLCB1bnNpZ25lZCBzaG9ydCB1bnJvbGwsIGJvb2wgbm92ZWN0 b3IpDQogew0KICAgdHJlZSBiZWdpbiwgZW5kOw0KICAgdHJlZSBpdGVyX3R5cGUsIGJlZ2luX2V4 cHIsIGVuZF9leHByOw0KQEAgLTE0MDA4LDcgKzE0MDEzLDcgQEAgY3BfY29udmVydF9yYW5nZV9m b3IgKHRyZWUgc3RhdGVtZW50LCB0cmVlIHJhbmdlX2RlY2wsIHRyZWUgcmFuZ2VfZXhwciwNCiAJ CQkJIGJlZ2luLCBFUlJPUl9NQVJLLA0KIAkJCQkgZW5kLCBFUlJPUl9NQVJLLA0KIAkJCQkgTlVM TF9UUkVFLCBOVUxMLCB0Zl93YXJuaW5nX29yX2Vycm9yKTsNCi0gIGZpbmlzaF9mb3JfY29uZCAo Y29uZGl0aW9uLCBzdGF0ZW1lbnQsIGl2ZGVwLCB1bnJvbGwpOw0KKyAgZmluaXNoX2Zvcl9jb25k IChjb25kaXRpb24sIHN0YXRlbWVudCwgaXZkZXAsIHVucm9sbCwgbm92ZWN0b3IpOw0KIA0KICAg LyogVGhlIG5ldyBpbmNyZW1lbnQgZXhwcmVzc2lvbi4gICovDQogICBleHByZXNzaW9uID0gZmlu aXNoX3VuYXJ5X29wX2V4cHIgKGlucHV0X2xvY2F0aW9uLA0KQEAgLTE0MTc1LDcgKzE0MTgwLDcg QEAgY3BfcGFyc2VyX3JhbmdlX2Zvcl9tZW1iZXJfZnVuY3Rpb24gKHRyZWUgcmFuZ2UsIHRyZWUg aWRlbnRpZmllcikNCiANCiBzdGF0aWMgdHJlZQ0KIGNwX3BhcnNlcl9pdGVyYXRpb25fc3RhdGVt ZW50IChjcF9wYXJzZXIqIHBhcnNlciwgYm9vbCAqaWZfcCwgYm9vbCBpdmRlcCwNCi0JCQkgICAg ICAgdW5zaWduZWQgc2hvcnQgdW5yb2xsKQ0KKwkJCSAgICAgICB1bnNpZ25lZCBzaG9ydCB1bnJv bGwsIGJvb2wgbm92ZWN0b3IpDQogew0KICAgY3BfdG9rZW4gKnRva2VuOw0KICAgZW51bSByaWQg a2V5d29yZDsNCkBAIC0xNDIwOSw3ICsxNDIxNCw3IEBAIGNwX3BhcnNlcl9pdGVyYXRpb25fc3Rh dGVtZW50IChjcF9wYXJzZXIqIHBhcnNlciwgYm9vbCAqaWZfcCwgYm9vbCBpdmRlcCwNCiAJcGFy ZW5zLnJlcXVpcmVfb3BlbiAocGFyc2VyKTsNCiAJLyogUGFyc2UgdGhlIGNvbmRpdGlvbi4gICov DQogCWNvbmRpdGlvbiA9IGNwX3BhcnNlcl9jb25kaXRpb24gKHBhcnNlcik7DQotCWZpbmlzaF93 aGlsZV9zdG10X2NvbmQgKGNvbmRpdGlvbiwgc3RhdGVtZW50LCBpdmRlcCwgdW5yb2xsKTsNCisJ ZmluaXNoX3doaWxlX3N0bXRfY29uZCAoY29uZGl0aW9uLCBzdGF0ZW1lbnQsIGl2ZGVwLCB1bnJv bGwsIG5vdmVjdG9yKTsNCiAJLyogTG9vayBmb3IgdGhlIGApJy4gICovDQogCXBhcmVucy5yZXF1 aXJlX2Nsb3NlIChwYXJzZXIpOw0KIAkvKiBQYXJzZSB0aGUgZGVwZW5kZW50IHN0YXRlbWVudC4g ICovDQpAQCAtMTQyNDQsNyArMTQyNDksNyBAQCBjcF9wYXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVu dCAoY3BfcGFyc2VyKiBwYXJzZXIsIGJvb2wgKmlmX3AsIGJvb2wgaXZkZXAsDQogCS8qIFBhcnNl IHRoZSBleHByZXNzaW9uLiAgKi8NCiAJZXhwcmVzc2lvbiA9IGNwX3BhcnNlcl9leHByZXNzaW9u IChwYXJzZXIpOw0KIAkvKiBXZSdyZSBkb25lIHdpdGggdGhlIGRvLXN0YXRlbWVudC4gICovDQot CWZpbmlzaF9kb19zdG10IChleHByZXNzaW9uLCBzdGF0ZW1lbnQsIGl2ZGVwLCB1bnJvbGwpOw0K KwlmaW5pc2hfZG9fc3RtdCAoZXhwcmVzc2lvbiwgc3RhdGVtZW50LCBpdmRlcCwgdW5yb2xsLCBu b3ZlY3Rvcik7DQogCS8qIExvb2sgZm9yIHRoZSBgKScuICAqLw0KIAlwYXJlbnMucmVxdWlyZV9j bG9zZSAocGFyc2VyKTsNCiAJLyogTG9vayBmb3IgdGhlIGA7Jy4gICovDQpAQCAtMTQyNTgsNyAr MTQyNjMsNyBAQCBjcF9wYXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudCAoY3BfcGFyc2VyKiBwYXJz ZXIsIGJvb2wgKmlmX3AsIGJvb2wgaXZkZXAsDQogCW1hdGNoaW5nX3BhcmVucyBwYXJlbnM7DQog CXBhcmVucy5yZXF1aXJlX29wZW4gKHBhcnNlcik7DQogDQotCXN0YXRlbWVudCA9IGNwX3BhcnNl cl9mb3IgKHBhcnNlciwgaXZkZXAsIHVucm9sbCk7DQorCXN0YXRlbWVudCA9IGNwX3BhcnNlcl9m b3IgKHBhcnNlciwgaXZkZXAsIHVucm9sbCwgbm92ZWN0b3IpOw0KIA0KIAkvKiBMb29rIGZvciB0 aGUgYCknLiAgKi8NCiAJcGFyZW5zLnJlcXVpcmVfY2xvc2UgKHBhcnNlcik7DQpAQCAtNDM4MTUs NyArNDM4MjAsNyBAQCBjcF9wYXJzZXJfb21wX2Zvcl9sb29wIChjcF9wYXJzZXIgKnBhcnNlciwg ZW51bSB0cmVlX2NvZGUgY29kZSwgdHJlZSBjbGF1c2VzLA0KIAkgICAgICBjcF9wYXJzZXJfcmVx dWlyZSAocGFyc2VyLCBDUFBfQ09MT04sIFJUX0NPTE9OKTsNCiANCiAJICAgICAgaW5pdCA9IGNw X3BhcnNlcl9yYW5nZV9mb3IgKHBhcnNlciwgTlVMTF9UUkVFLCBOVUxMX1RSRUUsIGRlY2wsDQot CQkJCQkgIGZhbHNlLCAwLCB0cnVlKTsNCisJCQkJCSAgZmFsc2UsIDAsIGZhbHNlLCB0cnVlKTsN CiANCiAJICAgICAgY3BfY29udmVydF9vbXBfcmFuZ2VfZm9yICh0aGlzX3ByZV9ib2R5LCBmb3Jf YmxvY2ssIGRlY2wsDQogCQkJCQlvcmlnX2RlY2wsIGluaXQsIG9yaWdfaW5pdCwNCkBAIC00OTMw MCw2ICs0OTMwNSwxNSBAQCBjcF9wYXJzZXJfcHJhZ21hX3Vucm9sbCAoY3BfcGFyc2VyICpwYXJz ZXIsIGNwX3Rva2VuICpwcmFnbWFfdG9rKQ0KICAgcmV0dXJuIHVucm9sbDsNCiB9DQogDQorLyog UGFyc2UgYSBwcmFnbWEgR0NDIG5vdmVjdG9yLiAgKi8NCisNCitzdGF0aWMgYm9vbA0KK2NwX3Bh cnNlcl9wcmFnbWFfbm92ZWN0b3IgKGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21h X3RvaykNCit7DQorICBjcF9wYXJzZXJfc2tpcF90b19wcmFnbWFfZW9sIChwYXJzZXIsIHByYWdt YV90b2spOw0KKyAgcmV0dXJuIHRydWU7DQorfQ0KKw0KIC8qIE5vcm1hbCBwYXJzaW5nIG9mIGEg cHJhZ21hIHRva2VuLiAgSGVyZSB3ZSBjYW4gKGFuZCBtdXN0KSB1c2UgdGhlDQogICAgcmVndWxh ciBsZXhlci4gICovDQogDQpAQCAtNDk2MDUsNTggKzQ5NjE5LDczIEBAIGNwX3BhcnNlcl9wcmFn bWEgKGNwX3BhcnNlciAqcGFyc2VyLCBlbnVtIHByYWdtYV9jb250ZXh0IGNvbnRleHQsIGJvb2wg KmlmX3ApDQogICAgICAgYnJlYWs7DQogDQogICAgIGNhc2UgUFJBR01BX0lWREVQOg0KKyAgICBj YXNlIFBSQUdNQV9VTlJPTEw6DQorICAgIGNhc2UgUFJBR01BX05PVkVDVE9SOg0KICAgICAgIHsN Ci0JaWYgKGNvbnRleHQgPT0gcHJhZ21hX2V4dGVybmFsKQ0KKwlib29sIGl2ZGVwOw0KKwl1bnNp Z25lZCBzaG9ydCB1bnJvbGwgPSAwOw0KKwlib29sIG5vdmVjdG9yID0gZmFsc2U7DQorCWNvbnN0 IGNoYXIgKnByYWdtYV9zdHI7DQorDQorCXN3aXRjaCAoaWQpDQogCSAgew0KLQkgICAgZXJyb3Jf YXQgKHByYWdtYV90b2stPmxvY2F0aW9uLA0KLQkJICAgICAgIiU8I3ByYWdtYSBHQ0MgaXZkZXAl PiBtdXN0IGJlIGluc2lkZSBhIGZ1bmN0aW9uIik7DQorCSAgY2FzZSBQUkFHTUFfSVZERVA6DQor CSAgICBwcmFnbWFfc3RyID0gIml2ZGVwIjsNCiAJICAgIGJyZWFrOw0KLQkgIH0NCi0JY29uc3Qg Ym9vbCBpdmRlcCA9IGNwX3BhcnNlcl9wcmFnbWFfaXZkZXAgKHBhcnNlciwgcHJhZ21hX3Rvayk7 DQotCXVuc2lnbmVkIHNob3J0IHVucm9sbDsNCi0JY3BfdG9rZW4gKnRvayA9IGNwX2xleGVyX3Bl ZWtfdG9rZW4gKHRoZV9wYXJzZXItPmxleGVyKTsNCi0JaWYgKHRvay0+dHlwZSA9PSBDUFBfUFJB R01BDQotCSAgICAmJiBjcF9wYXJzZXJfcHJhZ21hX2tpbmQgKHRvaykgPT0gUFJBR01BX1VOUk9M TCkNCi0JICB7DQotCSAgICB0b2sgPSBjcF9sZXhlcl9jb25zdW1lX3Rva2VuIChwYXJzZXItPmxl eGVyKTsNCi0JICAgIHVucm9sbCA9IGNwX3BhcnNlcl9wcmFnbWFfdW5yb2xsIChwYXJzZXIsIHRv ayk7DQotCSAgICB0b2sgPSBjcF9sZXhlcl9wZWVrX3Rva2VuICh0aGVfcGFyc2VyLT5sZXhlcik7 DQotCSAgfQ0KLQllbHNlDQotCSAgdW5yb2xsID0gMDsNCi0JaWYgKHRvay0+dHlwZSAhPSBDUFBf S0VZV09SRA0KLQkgICAgfHwgKHRvay0+a2V5d29yZCAhPSBSSURfRk9SDQotCQkmJiB0b2stPmtl eXdvcmQgIT0gUklEX1dISUxFDQotCQkmJiB0b2stPmtleXdvcmQgIT0gUklEX0RPKSkNCi0JICB7 DQotCSAgICBjcF9wYXJzZXJfZXJyb3IgKHBhcnNlciwgImZvciwgd2hpbGUgb3IgZG8gc3RhdGVt ZW50IGV4cGVjdGVkIik7DQotCSAgICByZXR1cm4gZmFsc2U7DQotCSAgfQ0KLQljcF9wYXJzZXJf aXRlcmF0aW9uX3N0YXRlbWVudCAocGFyc2VyLCBpZl9wLCBpdmRlcCwgdW5yb2xsKTsNCi0JcmV0 dXJuIHRydWU7DQotICAgICAgfQ0KKwkgIGNhc2UgUFJBR01BX1VOUk9MTDoNCisJICAgIHByYWdt YV9zdHIgPSAidW5yb2xsIjsNCisJICAgIGJyZWFrOw0KKwkgIGNhc2UgUFJBR01BX05PVkVDVE9S Og0KKwkgICAgcHJhZ21hX3N0ciA9ICJub3ZlY3RvciI7DQorCSAgICBicmVhazsNCisJICBkZWZh dWx0Og0KKwkgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KKwl9DQogDQotICAgIGNhc2UgUFJBR01B X1VOUk9MTDoNCi0gICAgICB7DQogCWlmIChjb250ZXh0ID09IHByYWdtYV9leHRlcm5hbCkNCiAJ ICB7DQogCSAgICBlcnJvcl9hdCAocHJhZ21hX3Rvay0+bG9jYXRpb24sDQotCQkgICAgICAiJTwj cHJhZ21hIEdDQyB1bnJvbGwlPiBtdXN0IGJlIGluc2lkZSBhIGZ1bmN0aW9uIik7DQorCQkgICAg ICAiJTwjcHJhZ21hIEdDQyAlcyU+IG11c3QgYmUgaW5zaWRlIGEgZnVuY3Rpb24iLA0KKwkJICAg ICAgcHJhZ21hX3N0cik7DQogCSAgICBicmVhazsNCiAJICB9DQotCWNvbnN0IHVuc2lnbmVkIHNo b3J0IHVucm9sbA0KLQkgID0gY3BfcGFyc2VyX3ByYWdtYV91bnJvbGwgKHBhcnNlciwgcHJhZ21h X3Rvayk7DQotCWJvb2wgaXZkZXA7DQotCWNwX3Rva2VuICp0b2sgPSBjcF9sZXhlcl9wZWVrX3Rv a2VuICh0aGVfcGFyc2VyLT5sZXhlcik7DQotCWlmICh0b2stPnR5cGUgPT0gQ1BQX1BSQUdNQQ0K LQkgICAgJiYgY3BfcGFyc2VyX3ByYWdtYV9raW5kICh0b2spID09IFBSQUdNQV9JVkRFUCkNCisN CisJY3BfdG9rZW4gKnRvayA9IHByYWdtYV90b2s7DQorCWJvb2wgaGFzX21vcmUgPSB0cnVlOw0K Kwlkbw0KIAkgIHsNCi0JICAgIHRvayA9IGNwX2xleGVyX2NvbnN1bWVfdG9rZW4gKHBhcnNlci0+ bGV4ZXIpOw0KLQkgICAgaXZkZXAgPSBjcF9wYXJzZXJfcHJhZ21hX2l2ZGVwIChwYXJzZXIsIHRv ayk7DQorCSAgICBzd2l0Y2ggKGNwX3BhcnNlcl9wcmFnbWFfa2luZCAodG9rKSkNCisJICAgICAg ew0KKwkJY2FzZSBQUkFHTUFfSVZERVA6DQorCQkgIHsNCisJCSAgICBpZiAodG9rICE9IHByYWdt YV90b2spDQorCQkgICAgICB0b2sgPSBjcF9sZXhlcl9jb25zdW1lX3Rva2VuIChwYXJzZXItPmxl eGVyKTsNCisJCSAgICBpdmRlcCA9IGNwX3BhcnNlcl9wcmFnbWFfaXZkZXAgKHBhcnNlciwgdG9r KTsNCisJCSAgICBicmVhazsNCisJCSAgfQ0KKwkJY2FzZSBQUkFHTUFfVU5ST0xMOg0KKwkJICB7 DQorCQkgICAgaWYgKHRvayAhPSBwcmFnbWFfdG9rKQ0KKwkJICAgICAgdG9rID0gY3BfbGV4ZXJf Y29uc3VtZV90b2tlbiAocGFyc2VyLT5sZXhlcik7DQorCQkgICAgdW5yb2xsID0gY3BfcGFyc2Vy X3ByYWdtYV91bnJvbGwgKHBhcnNlciwgdG9rKTsNCisJCSAgICBicmVhazsNCisJCSAgfQ0KKwkJ Y2FzZSBQUkFHTUFfTk9WRUNUT1I6DQorCQkgIHsNCisJCSAgICBpZiAodG9rICE9IHByYWdtYV90 b2spDQorCQkgICAgICB0b2sgPSBjcF9sZXhlcl9jb25zdW1lX3Rva2VuIChwYXJzZXItPmxleGVy KTsNCisJCSAgICBub3ZlY3RvciA9IGNwX3BhcnNlcl9wcmFnbWFfbm92ZWN0b3IgKHBhcnNlciwg dG9rKTsNCisJCSAgICBicmVhazsNCisJCSAgfQ0KKwkJZGVmYXVsdDoNCisJCSAgaGFzX21vcmUg PSBmYWxzZTsNCisJCSAgYnJlYWs7DQorCSAgICAgIH0NCiAJICAgIHRvayA9IGNwX2xleGVyX3Bl ZWtfdG9rZW4gKHRoZV9wYXJzZXItPmxleGVyKTsNCisJICAgIGhhc19tb3JlID0gaGFzX21vcmUg JiYgdG9rLT50eXBlID09IENQUF9QUkFHTUE7DQogCSAgfQ0KLQllbHNlDQotCSAgaXZkZXAgPSBm YWxzZTsNCisJd2hpbGUgKGhhc19tb3JlKTsNCisNCiAJaWYgKHRvay0+dHlwZSAhPSBDUFBfS0VZ V09SRA0KIAkgICAgfHwgKHRvay0+a2V5d29yZCAhPSBSSURfRk9SDQogCQkmJiB0b2stPmtleXdv cmQgIT0gUklEX1dISUxFDQpAQCAtNDk2NjUsNyArNDk2OTQsNyBAQCBjcF9wYXJzZXJfcHJhZ21h IChjcF9wYXJzZXIgKnBhcnNlciwgZW51bSBwcmFnbWFfY29udGV4dCBjb250ZXh0LCBib29sICpp Zl9wKQ0KIAkgICAgY3BfcGFyc2VyX2Vycm9yIChwYXJzZXIsICJmb3IsIHdoaWxlIG9yIGRvIHN0 YXRlbWVudCBleHBlY3RlZCIpOw0KIAkgICAgcmV0dXJuIGZhbHNlOw0KIAkgIH0NCi0JY3BfcGFy c2VyX2l0ZXJhdGlvbl9zdGF0ZW1lbnQgKHBhcnNlciwgaWZfcCwgaXZkZXAsIHVucm9sbCk7DQor CWNwX3BhcnNlcl9pdGVyYXRpb25fc3RhdGVtZW50IChwYXJzZXIsIGlmX3AsIGl2ZGVwLCB1bnJv bGwsIG5vdmVjdG9yKTsNCiAJcmV0dXJuIHRydWU7DQogICAgICAgfQ0KIA0KZGlmZiAtLWdpdCBh L2djYy9jcC9wdC5jYyBiL2djYy9jcC9wdC5jYw0KaW5kZXggMjM0NWExOGJlY2MxMTYwYjlkMTJm M2Q4OGNjY2I2NmM4OTE3MzczYy4uN2IwZDAxYTkwZTNjNDAxMmVjNjAzZWJlMDRjYmJiMzFhN2Rk MTU3MCAxMDA2NDQNCi0tLSBhL2djYy9jcC9wdC5jYw0KKysrIGIvZ2NjL2NwL3B0LmNjDQpAQCAt MTkwMzYsNyArMTkwMzYsNyBAQCB0c3Vic3RfZXhwciAodHJlZSB0LCB0cmVlIGFyZ3MsIHRzdWJz dF9mbGFnc190IGNvbXBsYWluLCB0cmVlIGluX2RlY2wpDQogICAgICAgUkVDVVIgKEZPUl9JTklU X1NUTVQgKHQpKTsNCiAgICAgICBmaW5pc2hfaW5pdF9zdG10IChzdG10KTsNCiAgICAgICB0bXAg PSBSRUNVUiAoRk9SX0NPTkQgKHQpKTsNCi0gICAgICBmaW5pc2hfZm9yX2NvbmQgKHRtcCwgc3Rt dCwgZmFsc2UsIDApOw0KKyAgICAgIGZpbmlzaF9mb3JfY29uZCAodG1wLCBzdG10LCBmYWxzZSwg MCwgZmFsc2UpOw0KICAgICAgIHRtcCA9IFJFQ1VSIChGT1JfRVhQUiAodCkpOw0KICAgICAgIGZp bmlzaF9mb3JfZXhwciAodG1wLCBzdG10KTsNCiAgICAgICB7DQpAQCAtMTkwNzMsNiArMTkwNzMs NyBAQCB0c3Vic3RfZXhwciAodHJlZSB0LCB0cmVlIGFyZ3MsIHRzdWJzdF9mbGFnc190IGNvbXBs YWluLCB0cmVlIGluX2RlY2wpDQogCSAgew0KIAkgICAgUkFOR0VfRk9SX0lWREVQIChzdG10KSA9 IFJBTkdFX0ZPUl9JVkRFUCAodCk7DQogCSAgICBSQU5HRV9GT1JfVU5ST0xMIChzdG10KSA9IFJB TkdFX0ZPUl9VTlJPTEwgKHQpOw0KKwkgICAgUkFOR0VfRk9SX05PVkVDVE9SIChzdG10KSA9IFJB TkdFX0ZPUl9OT1ZFQ1RPUiAodCk7DQogCSAgICBmaW5pc2hfcmFuZ2VfZm9yX2RlY2wgKHN0bXQs IGRlY2wsIGV4cHIpOw0KIAkgICAgaWYgKGRlY29tcF9maXJzdCAmJiBkZWNsICE9IGVycm9yX21h cmtfbm9kZSkNCiAJICAgICAgY3BfZmluaXNoX2RlY29tcCAoZGVjbCwgZGVjb21wX2ZpcnN0LCBk ZWNvbXBfY250KTsNCkBAIC0xOTA4Myw3ICsxOTA4NCw4IEBAIHRzdWJzdF9leHByICh0cmVlIHQs IHRyZWUgYXJncywgdHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4sIHRyZWUgaW5fZGVjbCkNCiAJCQkJ ICAgICA/IHRyZWVfdG9fdWh3aSAoUkFOR0VfRk9SX1VOUk9MTCAodCkpIDogMCk7DQogCSAgICBz dG10ID0gY3BfY29udmVydF9yYW5nZV9mb3IgKHN0bXQsIGRlY2wsIGV4cHIsDQogCQkJCQkgZGVj b21wX2ZpcnN0LCBkZWNvbXBfY250LA0KLQkJCQkJIFJBTkdFX0ZPUl9JVkRFUCAodCksIHVucm9s bCk7DQorCQkJCQkgUkFOR0VfRk9SX0lWREVQICh0KSwgdW5yb2xsLA0KKwkJCQkJIFJBTkdFX0ZP Ul9OT1ZFQ1RPUiAodCkpOw0KIAkgIH0NCiANCiAJYm9vbCBwcmV2ID0gbm90ZV9pdGVyYXRpb25f c3RtdF9ib2R5X3N0YXJ0ICgpOw0KQEAgLTE5MDk2LDcgKzE5MDk4LDcgQEAgdHN1YnN0X2V4cHIg KHRyZWUgdCwgdHJlZSBhcmdzLCB0c3Vic3RfZmxhZ3NfdCBjb21wbGFpbiwgdHJlZSBpbl9kZWNs KQ0KICAgICBjYXNlIFdISUxFX1NUTVQ6DQogICAgICAgc3RtdCA9IGJlZ2luX3doaWxlX3N0bXQg KCk7DQogICAgICAgdG1wID0gUkVDVVIgKFdISUxFX0NPTkQgKHQpKTsNCi0gICAgICBmaW5pc2hf d2hpbGVfc3RtdF9jb25kICh0bXAsIHN0bXQsIGZhbHNlLCAwKTsNCisgICAgICBmaW5pc2hfd2hp bGVfc3RtdF9jb25kICh0bXAsIHN0bXQsIGZhbHNlLCAwLCBmYWxzZSk7DQogICAgICAgew0KIAli b29sIHByZXYgPSBub3RlX2l0ZXJhdGlvbl9zdG10X2JvZHlfc3RhcnQgKCk7DQogCVJFQ1VSIChX SElMRV9CT0RZICh0KSk7DQpAQCAtMTkxMTQsNyArMTkxMTYsNyBAQCB0c3Vic3RfZXhwciAodHJl ZSB0LCB0cmVlIGFyZ3MsIHRzdWJzdF9mbGFnc190IGNvbXBsYWluLCB0cmVlIGluX2RlY2wpDQog ICAgICAgfQ0KICAgICAgIGZpbmlzaF9kb19ib2R5IChzdG10KTsNCiAgICAgICB0bXAgPSBSRUNV UiAoRE9fQ09ORCAodCkpOw0KLSAgICAgIGZpbmlzaF9kb19zdG10ICh0bXAsIHN0bXQsIGZhbHNl LCAwKTsNCisgICAgICBmaW5pc2hfZG9fc3RtdCAodG1wLCBzdG10LCBmYWxzZSwgMCwgZmFsc2Up Ow0KICAgICAgIGJyZWFrOw0KIA0KICAgICBjYXNlIElGX1NUTVQ6DQpkaWZmIC0tZ2l0IGEvZ2Nj L2NwL3NlbWFudGljcy5jYyBiL2djYy9jcC9zZW1hbnRpY3MuY2MNCmluZGV4IDhmYjQ3ZmQxNzll YjJhZjJlODJiZjMxZDE4ODAyM2U5YjlkNDFkZTkuLmI3OTk3NTEwOWMyMmViY2ZjYjA2MGI0ZjIw ZjMyZjY5ZjNjM2M0NDQgMTAwNjQ0DQotLS0gYS9nY2MvY3Avc2VtYW50aWNzLmNjDQorKysgYi9n Y2MvY3Avc2VtYW50aWNzLmNjDQpAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgYmVnaW5fd2hpbGVfc3Rt dCAodm9pZCkNCiANCiB2b2lkDQogZmluaXNoX3doaWxlX3N0bXRfY29uZCAodHJlZSBjb25kLCB0 cmVlIHdoaWxlX3N0bXQsIGJvb2wgaXZkZXAsDQotCQkJdW5zaWduZWQgc2hvcnQgdW5yb2xsKQ0K KwkJCXVuc2lnbmVkIHNob3J0IHVucm9sbCwgYm9vbCBub3ZlY3RvcikNCiB7DQogICBjb25kID0g bWF5YmVfY29udmVydF9jb25kIChjb25kKTsNCiAgIGZpbmlzaF9jb25kICgmV0hJTEVfQ09ORCAo d2hpbGVfc3RtdCksIGNvbmQpOw0KQEAgLTExNjgsNiArMTE2OCwxMyBAQCBmaW5pc2hfd2hpbGVf c3RtdF9jb25kICh0cmVlIGNvbmQsIHRyZWUgd2hpbGVfc3RtdCwgYm9vbCBpdmRlcCwNCiAJCQkJ CQkgICAgIGFubm90X2V4cHJfdW5yb2xsX2tpbmQpLA0KIAkJCQkgICAgICBidWlsZF9pbnRfY3N0 IChpbnRlZ2VyX3R5cGVfbm9kZSwNCiAJCQkJCQkgICAgIHVucm9sbCkpOw0KKyAgaWYgKG5vdmVj dG9yICYmIGNvbmQgIT0gZXJyb3JfbWFya19ub2RlKQ0KKyAgICBXSElMRV9DT05EICh3aGlsZV9z dG10KSA9IGJ1aWxkMyAoQU5OT1RBVEVfRVhQUiwNCisJCQkJICAgICAgVFJFRV9UWVBFIChXSElM RV9DT05EICh3aGlsZV9zdG10KSksDQorCQkJCSAgICAgIFdISUxFX0NPTkQgKHdoaWxlX3N0bXQp LA0KKwkJCQkgICAgICBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwNCisJCQkJCQkg ICAgIGFubm90X2V4cHJfbm9fdmVjdG9yX2tpbmQpLA0KKwkJCQkgICAgICBpbnRlZ2VyX3plcm9f bm9kZSk7DQogICBzaW1wbGlmeV9sb29wX2RlY2xfY29uZCAoJldISUxFX0NPTkQgKHdoaWxlX3N0 bXQpLCBXSElMRV9CT0RZICh3aGlsZV9zdG10KSk7DQogfQ0KIA0KQEAgLTEyMTIsNyArMTIxOSw4 IEBAIGZpbmlzaF9kb19ib2R5ICh0cmVlIGRvX3N0bXQpDQogICAgQ09ORCBpcyBhcyBpbmRpY2F0 ZWQuICAqLw0KIA0KIHZvaWQNCi1maW5pc2hfZG9fc3RtdCAodHJlZSBjb25kLCB0cmVlIGRvX3N0 bXQsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9sbCkNCitmaW5pc2hfZG9fc3RtdCAo dHJlZSBjb25kLCB0cmVlIGRvX3N0bXQsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9s bCwNCisJCWJvb2wgbm92ZWN0b3IpDQogew0KICAgY29uZCA9IG1heWJlX2NvbnZlcnRfY29uZCAo Y29uZCk7DQogICBlbmRfbWF5YmVfaW5maW5pdGVfbG9vcCAoY29uZCk7DQpAQCAtMTIyOSw2ICsx MjM3LDEwIEBAIGZpbmlzaF9kb19zdG10ICh0cmVlIGNvbmQsIHRyZWUgZG9fc3RtdCwgYm9vbCBp dmRlcCwgdW5zaWduZWQgc2hvcnQgdW5yb2xsKQ0KICAgICBjb25kID0gYnVpbGQzIChBTk5PVEFU RV9FWFBSLCBUUkVFX1RZUEUgKGNvbmQpLCBjb25kLA0KIAkJICAgYnVpbGRfaW50X2NzdCAoaW50 ZWdlcl90eXBlX25vZGUsIGFubm90X2V4cHJfdW5yb2xsX2tpbmQpLA0KIAkJICAgYnVpbGRfaW50 X2NzdCAoaW50ZWdlcl90eXBlX25vZGUsIHVucm9sbCkpOw0KKyAgaWYgKG5vdmVjdG9yICYmIGNv bmQgIT0gZXJyb3JfbWFya19ub2RlKQ0KKyAgICBjb25kID0gYnVpbGQzIChBTk5PVEFURV9FWFBS LCBUUkVFX1RZUEUgKGNvbmQpLCBjb25kLA0KKwkJICAgYnVpbGRfaW50X2NzdCAoaW50ZWdlcl90 eXBlX25vZGUsIGFubm90X2V4cHJfbm9fdmVjdG9yX2tpbmQpLA0KKwkJICAgaW50ZWdlcl96ZXJv X25vZGUpOw0KICAgRE9fQ09ORCAoZG9fc3RtdCkgPSBjb25kOw0KIH0NCiANCkBAIC0xMzI1LDcg KzEzMzcsNyBAQCBmaW5pc2hfaW5pdF9zdG10ICh0cmVlIGZvcl9zdG10KQ0KICAgIEZPUl9TVE1U LiAgKi8NCiANCiB2b2lkDQotZmluaXNoX2Zvcl9jb25kICh0cmVlIGNvbmQsIHRyZWUgZm9yX3N0 bXQsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9sbCkNCitmaW5pc2hfZm9yX2NvbmQg KHRyZWUgY29uZCwgdHJlZSBmb3Jfc3RtdCwgYm9vbCBpdmRlcCwgdW5zaWduZWQgc2hvcnQgdW5y b2xsLCBib29sIG5vdmVjdG9yKQ0KIHsNCiAgIGNvbmQgPSBtYXliZV9jb252ZXJ0X2NvbmQgKGNv bmQpOw0KICAgZmluaXNoX2NvbmQgKCZGT1JfQ09ORCAoZm9yX3N0bXQpLCBjb25kKTsNCkBAIC0x MzQ1LDYgKzEzNTcsMTMgQEAgZmluaXNoX2Zvcl9jb25kICh0cmVlIGNvbmQsIHRyZWUgZm9yX3N0 bXQsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9sbCkNCiAJCQkJCQkgYW5ub3RfZXhw cl91bnJvbGxfa2luZCksDQogCQkJCSAgYnVpbGRfaW50X2NzdCAoaW50ZWdlcl90eXBlX25vZGUs DQogCQkJCQkJIHVucm9sbCkpOw0KKyAgaWYgKG5vdmVjdG9yICYmIGNvbmQgIT0gZXJyb3JfbWFy a19ub2RlKQ0KKyAgICBGT1JfQ09ORCAoZm9yX3N0bXQpID0gYnVpbGQzIChBTk5PVEFURV9FWFBS LA0KKwkJCQkgIFRSRUVfVFlQRSAoRk9SX0NPTkQgKGZvcl9zdG10KSksDQorCQkJCSAgRk9SX0NP TkQgKGZvcl9zdG10KSwNCisJCQkJICBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwN CisJCQkJCQkgYW5ub3RfZXhwcl9ub192ZWN0b3Jfa2luZCksDQorCQkJCSAgaW50ZWdlcl96ZXJv X25vZGUpOw0KICAgc2ltcGxpZnlfbG9vcF9kZWNsX2NvbmQgKCZGT1JfQ09ORCAoZm9yX3N0bXQp LCBGT1JfQk9EWSAoZm9yX3N0bXQpKTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9leHRl bmQudGV4aSBiL2djYy9kb2MvZXh0ZW5kLnRleGkNCmluZGV4IDMwNDBhOWJkZWE2NWQyN2Y4ZDIw NTcyYjRlZDM3Mzc1ZjVmZTk0OWIuLmJhYWM2NjQzZDFhYmJmMzNkNTkyZTY4YWNhNDlhYzgzZTNj MjkxODggMTAwNjQ0DQotLS0gYS9nY2MvZG9jL2V4dGVuZC50ZXhpDQorKysgYi9nY2MvZG9jL2V4 dGVuZC50ZXhpDQpAQCAtMjQzNDksNiArMjQzNDksMjUgQEAgdm9pZCBpZ25vcmVfdmVjX2RlcCAo aW50ICphLCBpbnQgaywgaW50IGMsIGludCBtKQ0KIEB9DQogQGVuZCBzbWFsbGV4YW1wbGUNCiAN CitAY2luZGV4IHByYWdtYSBHQ0Mgbm92ZWN0b3INCitAaXRlbSAjcHJhZ21hIEdDQyBub3ZlY3Rv cg0KKw0KK1dpdGggdGhpcyBwcmFnbWEsIHRoZSBwcm9ncmFtbWVyIGFzc2VydHMgdGhhdCB0aGUg Zm9sbG93aW5nIGxvb3Agc2hvdWxkIGJlDQorcHJldmVudGVkIGZyb20gZXhlY3V0aW5nIGNvbmN1 cnJlbnRseSB3aXRoIFNJTUQgKHNpbmdsZSBpbnN0cnVjdGlvbiBtdWx0aXBsZQ0KK2RhdGEpIGlu c3RydWN0aW9ucy4NCisNCitGb3IgZXhhbXBsZSwgdGhlIGNvbXBpbGVyIGNhbm5vdCB2ZWN0b3Jp emUgdGhlIGZvbGxvd2luZyBsb29wIHdpdGggdGhlIHByYWdtYToNCisNCitAc21hbGxleGFtcGxl DQordm9pZCBmb28gKGludCBuLCBpbnQgKmEsIGludCAqYiwgaW50ICpjKQ0KK0B7DQorICBpbnQg aSwgajsNCisjcHJhZ21hIEdDQyBub3ZlY3Rvcg0KKyAgZm9yIChpID0gMDsgaSA8IG47ICsraSkN CisgICAgYVtpXSA9IGJbaV0gKyBjW2ldOw0KK0B9DQorQGVuZCBzbWFsbGV4YW1wbGUNCisNCiBA Y2luZGV4IHByYWdtYSBHQ0MgdW5yb2xsIEB2YXJ7bn0NCiBAaXRlbSAjcHJhZ21hIEdDQyB1bnJv bGwgQHZhcntufQ0KIA0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLmRnL3ZlY3QvdmVj dC1ub3ZlY3Rvci1wcmFnbWEuY2MgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy92ZWN0L3ZlY3Qtbm92 ZWN0b3ItcHJhZ21hLmNjDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM2ZmYyMmZjYWFiYWE5NzUxNmJlNzJiNzdh Y2JkNDRkZjg2YjFkMg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcv dmVjdC92ZWN0LW5vdmVjdG9yLXByYWdtYS5jYw0KQEAgLTAsMCArMSw2OSBAQA0KKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdmVjdF9p bnQgfSAqLw0KKw0KKyNpbmNsdWRlIDx2ZWN0b3I+DQorDQordm9pZCBmNCAoc3RkOjp2ZWN0b3I8 aW50PiBhLCBzdGQ6OnZlY3RvcjxpbnQ+IGIsIGludCBuKQ0KK3sNCisgICAgaW50IGkgPSAwOw0K KyNwcmFnbWEgR0NDIG5vdmVjdG9yDQorICAgIHdoaWxlIChpIDwgKG4gJiAtOCkpDQorICAgICAg ew0KKyAgICAgICAgYVtpXSArPSBiW2ldOw0KKyAgICAgICAgaSsrOw0KKyAgICAgIH0NCit9DQor DQordm9pZCBmNSAoc3RkOjp2ZWN0b3I8aW50PiBhLCBzdGQ6OnZlY3RvcjxpbnQ+IGIsIGludCBu KQ0KK3sNCisgICAgaW50IGkgPSAwOw0KKyNwcmFnbWEgR0NDIG5vdmVjdG9yDQorI3ByYWdtYSBH Q0MgaXZkZXANCisjcHJhZ21hIEdDQyB1bnJvbGwgMg0KKyAgICB3aGlsZSAoaSA8IChuICYgLTgp KQ0KKyAgICAgIHsNCisgICAgICAgIGFbaV0gKz0gYltpXTsNCisgICAgICAgIGkrKzsNCisgICAg ICB9DQorfQ0KKw0KK3ZvaWQgZjYgKHN0ZDo6dmVjdG9yPGludD4gYSwgc3RkOjp2ZWN0b3I8aW50 PiBiLCBpbnQgbikNCit7DQorICAgIGludCBpID0gMDsNCisjcHJhZ21hIEdDQyBpdmRlcA0KKyNw cmFnbWEgR0NDIG5vdmVjdG9yDQorI3ByYWdtYSBHQ0MgdW5yb2xsIDINCisgICAgd2hpbGUgKGkg PCAobiAmIC04KSkNCisgICAgICB7DQorICAgICAgICBhW2ldICs9IGJbaV07DQorICAgICAgICBp Kys7DQorICAgICAgfQ0KK30NCisNCit2b2lkIGY3IChzdGQ6OnZlY3RvcjxpbnQ+IGEsIHN0ZDo6 dmVjdG9yPGludD4gYiwgaW50IG4pDQorew0KKyAgICBpbnQgaSA9IDA7DQorI3ByYWdtYSBHQ0Mg aXZkZXANCisjcHJhZ21hIEdDQyB1bnJvbGwgMg0KKyNwcmFnbWEgR0NDIG5vdmVjdG9yDQorICAg IHdoaWxlIChpIDwgKG4gJiAtOCkpDQorICAgICAgew0KKyAgICAgICAgYVtpXSArPSBiW2ldOw0K KyAgICAgICAgaSsrOw0KKyAgICAgIH0NCit9DQorDQorI2lmIF9fY3BwX3JhbmdlX2Jhc2VkX2Zv cg0KK3ZvaWQgZjggKHN0ZDo6dmVjdG9yPGludD4gYSwgc3RkOjp2ZWN0b3I8aW50PiBiLCBpbnQg bikNCit7DQorICAgIGludCBpID0gMDsNCisjcHJhZ21hIEdDQyBub3ZlY3Rvcg0KKyAgICBmb3Ig KGludCB4IDogYikNCisgICAgICB7DQorICAgICAgICBhW2ldICs9IHg7DQorICAgICAgICBpKys7 DQorICAgICAgfQ0KK30NCisjZW5kaWYNCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtbm90ICJMT09QIFZFQ1RPUklaRUQiICJ2ZWN0IiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2crKy5kZy92ZWN0L3ZlY3QuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvdmVj dC92ZWN0LmV4cA0KaW5kZXggZGYyNzMyMzNmNDdhNzg4MDI0YmJlNjExMjhlYWE5NmI2MzljYjNi OC4uZmM3NzEyMGE4MzE3M2M2NWFkMTQ3ZThiYjdjMjlhYzgyZjA2YmI2ZCAxMDA2NDQNCi0tLSBh L2djYy90ZXN0c3VpdGUvZysrLmRnL3ZlY3QvdmVjdC5leHANCisrKyBiL2djYy90ZXN0c3VpdGUv ZysrLmRnL3ZlY3QvdmVjdC5leHANCkBAIC02NCw3ICs2NCw3IEBAIGRnLWluaXQNCiANCiAjIE1h aW4gbG9vcC4NCiBldC1kZy1ydW50ZXN0IGcrKy1kZy1ydW50ZXN0IFtsc29ydCBbZ2xvYiAtbm9j b21wbGFpbiBcDQotCSRzcmNkaXIvJHN1YmRpci97cHIsc2ltZH0qLntjLGNjLFN9IF1dICIiICRE RUZBVUxUX1ZFQ1RDRkxBR1MNCisJJHNyY2Rpci8kc3ViZGlyL3twcixzaW1kLHZlY3QtfSoue2Ms Y2MsU30gXV0gIiIgJERFRkFVTFRfVkVDVENGTEFHUw0KIGV0LWRnLXJ1bnRlc3QgZysrLWRnLXJ1 bnRlc3QgW2xzb3J0IFtnbG9iIC1ub2NvbXBsYWluIFwNCiAJJHNyY2Rpci8kc3ViZGlyL3NscC1w cioue2MsY2MsU30gXV0gIiIgJFZFQ1RfU0xQX0NGTEFHUw0KDQo= --_002_VI1PR08MB53256E75FC1DE820BA64FC0DFF00AVI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb17578.patch" Content-Description: rb17578.patch Content-Disposition: attachment; filename="rb17578.patch"; size=21761; creation-date="Wed, 26 Jul 2023 19:31:25 GMT"; modification-date="Wed, 26 Jul 2023 19:32:18 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jcC9jcC10cmVlLmggYi9nY2MvY3AvY3AtdHJlZS5oCmluZGV4IDgz OTgyMjMzMTExOTQ4Mzc0NDExMDdjYjMzNWQ0OTdmZjVmNWVjMWMuLmJlY2U3YmZmMWYwMWEyM2Nm Yzk0Mzg2ZmQzMjk1YTBiZThjNDYyZmUgMTAwNjQ0Ci0tLSBhL2djYy9jcC9jcC10cmVlLmgKKysr IGIvZ2NjL2NwL2NwLXRyZWUuaApAQCAtNTM3Nyw2ICs1Mzc3LDcgQEAgZ2V0X3ZlY19pbml0X2V4 cHIgKHRyZWUgdCkKICNkZWZpbmUgUkFOR0VfRk9SX1VOUk9MTChOT0RFKQlUUkVFX09QRVJBTkQg KFJBTkdFX0ZPUl9TVE1UX0NIRUNLIChOT0RFKSwgNCkKICNkZWZpbmUgUkFOR0VfRk9SX0lOSVRf U1RNVChOT0RFKSBUUkVFX09QRVJBTkQgKFJBTkdFX0ZPUl9TVE1UX0NIRUNLIChOT0RFKSwgNSkK ICNkZWZpbmUgUkFOR0VfRk9SX0lWREVQKE5PREUpCVRSRUVfTEFOR19GTEFHXzYgKFJBTkdFX0ZP Ul9TVE1UX0NIRUNLIChOT0RFKSkKKyNkZWZpbmUgUkFOR0VfRk9SX05PVkVDVE9SKE5PREUpIFRS RUVfTEFOR19GTEFHXzUgKFJBTkdFX0ZPUl9TVE1UX0NIRUNLIChOT0RFKSkKIAogLyogU1RNVF9F WFBSIGFjY2Vzc29yLiAgKi8KICNkZWZpbmUgU1RNVF9FWFBSX1NUTVQoTk9ERSkJVFJFRV9PUEVS QU5EIChTVE1UX0VYUFJfQ0hFQ0sgKE5PREUpLCAwKQpAQCAtNzI4Niw3ICs3Mjg3LDcgQEAgZXh0 ZXJuIGJvb2wgbWF5YmVfY2xvbmVfYm9keQkJCSh0cmVlKTsKIAogLyogSW4gcGFyc2VyLmNjICov CiBleHRlcm4gdHJlZSBjcF9jb252ZXJ0X3JhbmdlX2ZvciAodHJlZSwgdHJlZSwgdHJlZSwgdHJl ZSwgdW5zaWduZWQgaW50LCBib29sLAotCQkJCSAgdW5zaWduZWQgc2hvcnQpOworCQkJCSAgdW5z aWduZWQgc2hvcnQsIGJvb2wpOwogZXh0ZXJuIHZvaWQgY3BfY29udmVydF9vbXBfcmFuZ2VfZm9y ICh0cmVlICYsIHZlYzx0cmVlLCB2YV9nYz4gKiwgdHJlZSAmLAogCQkJCSAgICAgIHRyZWUgJiwg dHJlZSAmLCB0cmVlICYsIHRyZWUgJiwgdHJlZSAmKTsKIGV4dGVybiB2b2lkIGNwX2ZpbmlzaF9v bXBfcmFuZ2VfZm9yICh0cmVlLCB0cmVlKTsKQEAgLTc2MDksMTYgKzc2MTAsMTkgQEAgZXh0ZXJu IHZvaWQgYmVnaW5fZWxzZV9jbGF1c2UJCQkodHJlZSk7CiBleHRlcm4gdm9pZCBmaW5pc2hfZWxz ZV9jbGF1c2UJCQkodHJlZSk7CiBleHRlcm4gdm9pZCBmaW5pc2hfaWZfc3RtdAkJCSh0cmVlKTsK IGV4dGVybiB0cmVlIGJlZ2luX3doaWxlX3N0bXQJCQkodm9pZCk7Ci1leHRlcm4gdm9pZCBmaW5p c2hfd2hpbGVfc3RtdF9jb25kCSh0cmVlLCB0cmVlLCBib29sLCB1bnNpZ25lZCBzaG9ydCk7Citl eHRlcm4gdm9pZCBmaW5pc2hfd2hpbGVfc3RtdF9jb25kCSh0cmVlLCB0cmVlLCBib29sLCB1bnNp Z25lZCBzaG9ydCwKKwkJCQkJIGJvb2wpOwogZXh0ZXJuIHZvaWQgZmluaXNoX3doaWxlX3N0bXQJ CQkodHJlZSk7CiBleHRlcm4gdHJlZSBiZWdpbl9kb19zdG10CQkJKHZvaWQpOwogZXh0ZXJuIHZv aWQgZmluaXNoX2RvX2JvZHkJCQkodHJlZSk7Ci1leHRlcm4gdm9pZCBmaW5pc2hfZG9fc3RtdAkJ KHRyZWUsIHRyZWUsIGJvb2wsIHVuc2lnbmVkIHNob3J0KTsKK2V4dGVybiB2b2lkIGZpbmlzaF9k b19zdG10CQkodHJlZSwgdHJlZSwgYm9vbCwgdW5zaWduZWQgc2hvcnQsCisJCQkJCSBib29sKTsK IGV4dGVybiB0cmVlIGZpbmlzaF9yZXR1cm5fc3RtdAkJCSh0cmVlKTsKIGV4dGVybiB0cmVlIGJl Z2luX2Zvcl9zY29wZQkJCSh0cmVlICopOwogZXh0ZXJuIHRyZWUgYmVnaW5fZm9yX3N0bXQJCQko dHJlZSwgdHJlZSk7CiBleHRlcm4gdm9pZCBmaW5pc2hfaW5pdF9zdG10CQkJKHRyZWUpOwotZXh0 ZXJuIHZvaWQgZmluaXNoX2Zvcl9jb25kCQkodHJlZSwgdHJlZSwgYm9vbCwgdW5zaWduZWQgc2hv cnQpOworZXh0ZXJuIHZvaWQgZmluaXNoX2Zvcl9jb25kCQkodHJlZSwgdHJlZSwgYm9vbCwgdW5z aWduZWQgc2hvcnQsCisJCQkJCSBib29sKTsKIGV4dGVybiB2b2lkIGZpbmlzaF9mb3JfZXhwcgkJ CSh0cmVlLCB0cmVlKTsKIGV4dGVybiB2b2lkIGZpbmlzaF9mb3Jfc3RtdAkJCSh0cmVlKTsKIGV4 dGVybiB0cmVlIGJlZ2luX3JhbmdlX2Zvcl9zdG10CQkodHJlZSwgdHJlZSk7CmRpZmYgLS1naXQg YS9nY2MvY3AvaW5pdC5jYyBiL2djYy9jcC9pbml0LmNjCmluZGV4IGFmNmUzMGY1MTFlMTQyYzdh NTk0ZTc0MmQxMjhiMmJmMGFhOGZiOGQuLjViNzM1YjI3ZTZmNWJjNmI0MzlhZTY0NjY1OTAyZjRm MWNhNzZmOTUgMTAwNjQ0Ci0tLSBhL2djYy9jcC9pbml0LmNjCisrKyBiL2djYy9jcC9pbml0LmNj CkBAIC00ODQ2LDcgKzQ4NDYsNyBAQCBidWlsZF92ZWNfaW5pdCAodHJlZSBiYXNlLCB0cmVlIG1h eGluZGV4LCB0cmVlIGluaXQsCiAgICAgICBmaW5pc2hfaW5pdF9zdG10IChmb3Jfc3RtdCk7CiAg ICAgICBmaW5pc2hfZm9yX2NvbmQgKGJ1aWxkMiAoR1RfRVhQUiwgYm9vbGVhbl90eXBlX25vZGUs IGl0ZXJhdG9yLAogCQkJICAgICAgIGJ1aWxkX2ludF9jc3QgKFRSRUVfVFlQRSAoaXRlcmF0b3Ip LCAtMSkpLAotCQkgICAgICAgZm9yX3N0bXQsIGZhbHNlLCAwKTsKKwkJICAgICAgIGZvcl9zdG10 LCBmYWxzZSwgMCwgZmFsc2UpOwogICAgICAgLyogV2UgdXNlZCB0byBwYXNzIHRoaXMgZGVjcmVt ZW50IHRvIGZpbmlzaF9mb3JfZXhwcjsgbm93IHdlIGFkZCBpdCB0bwogCSBlbHRfaW5pdCBiZWxv dyBzbyBpdCdzIHBhcnQgb2YgdGhlIHNhbWUgZnVsbC1leHByZXNzaW9uIGFzIHRoZQogCSBpbml0 aWFsaXphdGlvbiwgYW5kIHRodXMgaGFwcGVucyBiZWZvcmUgYW55IHBvdGVudGlhbGx5IHRocm93 aW5nCmRpZmYgLS1naXQgYS9nY2MvY3AvbWV0aG9kLmNjIGIvZ2NjL2NwL21ldGhvZC5jYwppbmRl eCA5MWNmOTQzZjExMDg5YzBlNmJjYmU4Mzc3ZGFhNGUwMTZmOTU2ZDU2Li5mY2U0OWM3OTYxOTlj MmM2NWNkNzA2ODRlMjk0MmZlYTFiNmIyZWJkIDEwMDY0NAotLS0gYS9nY2MvY3AvbWV0aG9kLmNj CisrKyBiL2djYy9jcC9tZXRob2QuY2MKQEAgLTE2NDUsNyArMTY0NSw4IEBAIGJ1aWxkX2NvbXBh cmlzb25fb3AgKHRyZWUgZm5kZWNsLCBib29sIGRlZmluaW5nLCB0c3Vic3RfZmxhZ3NfdCBjb21w bGFpbikKIAkJICAgICAgYWRkX3N0bXQgKGlkeCk7CiAJCSAgICAgIGZpbmlzaF9pbml0X3N0bXQg KGZvcl9zdG10KTsKIAkJICAgICAgZmluaXNoX2Zvcl9jb25kIChidWlsZDIgKExFX0VYUFIsIGJv b2xlYW5fdHlwZV9ub2RlLCBpZHgsCi0JCQkJCSAgICAgICBtYXh2YWwpLCBmb3Jfc3RtdCwgZmFs c2UsIDApOworCQkJCQkgICAgICAgbWF4dmFsKSwgZm9yX3N0bXQsIGZhbHNlLCAwLAorCQkJCQkg ICAgICAgZmFsc2UpOwogCQkgICAgICBmaW5pc2hfZm9yX2V4cHIgKGNwX2J1aWxkX3VuYXJ5X29w IChQUkVJTkNSRU1FTlRfRVhQUiwKIAkJCQkJCQkgIFRBUkdFVF9FWFBSX1NMT1QgKGlkeCksCiAJ CQkJCQkJICBmYWxzZSwgY29tcGxhaW4pLApkaWZmIC0tZ2l0IGEvZ2NjL2NwL3BhcnNlci5jYyBi L2djYy9jcC9wYXJzZXIuY2MKaW5kZXggZGQzNjY1YzhjY2Y0OGE4YTBiMWJhMmMwNjQwMGZlNTA5 OTllYTI0MC4uMDkyZjk5MWQ3YTFiNmFhYjg0ODJkNTA4NDhmYjlmYjk2YzM3NzUwOSAxMDA2NDQK LS0tIGEvZ2NjL2NwL3BhcnNlci5jYworKysgYi9nY2MvY3AvcGFyc2VyLmNjCkBAIC0yMzI0LDE1 ICsyMzI0LDE1IEBAIHN0YXRpYyB0cmVlIGNwX3BhcnNlcl9zZWxlY3Rpb25fc3RhdGVtZW50CiBz dGF0aWMgdHJlZSBjcF9wYXJzZXJfY29uZGl0aW9uCiAgIChjcF9wYXJzZXIgKik7CiBzdGF0aWMg dHJlZSBjcF9wYXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudAotICAoY3BfcGFyc2VyICosIGJvb2wg KiwgYm9vbCwgdW5zaWduZWQgc2hvcnQpOworICAoY3BfcGFyc2VyICosIGJvb2wgKiwgYm9vbCwg dW5zaWduZWQgc2hvcnQsIGJvb2wpOwogc3RhdGljIGJvb2wgY3BfcGFyc2VyX2luaXRfc3RhdGVt ZW50CiAgIChjcF9wYXJzZXIgKiwgdHJlZSAqZGVjbCk7CiBzdGF0aWMgdHJlZSBjcF9wYXJzZXJf Zm9yCi0gIChjcF9wYXJzZXIgKiwgYm9vbCwgdW5zaWduZWQgc2hvcnQpOworICAoY3BfcGFyc2Vy ICosIGJvb2wsIHVuc2lnbmVkIHNob3J0LCBib29sKTsKIHN0YXRpYyB0cmVlIGNwX3BhcnNlcl9j X2ZvcgotICAoY3BfcGFyc2VyICosIHRyZWUsIHRyZWUsIGJvb2wsIHVuc2lnbmVkIHNob3J0KTsK KyAgKGNwX3BhcnNlciAqLCB0cmVlLCB0cmVlLCBib29sLCB1bnNpZ25lZCBzaG9ydCwgYm9vbCk7 CiBzdGF0aWMgdHJlZSBjcF9wYXJzZXJfcmFuZ2VfZm9yCi0gIChjcF9wYXJzZXIgKiwgdHJlZSwg dHJlZSwgdHJlZSwgYm9vbCwgdW5zaWduZWQgc2hvcnQsIGJvb2wpOworICAoY3BfcGFyc2VyICos IHRyZWUsIHRyZWUsIHRyZWUsIGJvb2wsIHVuc2lnbmVkIHNob3J0LCBib29sLCBib29sKTsKIHN0 YXRpYyB2b2lkIGRvX3JhbmdlX2Zvcl9hdXRvX2RlZHVjdGlvbgogICAodHJlZSwgdHJlZSwgdHJl ZSwgdW5zaWduZWQgaW50KTsKIHN0YXRpYyB0cmVlIGNwX3BhcnNlcl9wZXJmb3JtX3JhbmdlX2Zv cl9sb29rdXAKQEAgLTEyNDE0LDcgKzEyNDE0LDggQEAgY3BfcGFyc2VyX3N0YXRlbWVudCAoY3Bf cGFyc2VyKiBwYXJzZXIsIHRyZWUgaW5fc3RhdGVtZW50X2V4cHIsCiAJY2FzZSBSSURfRE86CiAJ Y2FzZSBSSURfRk9SOgogCSAgc3RkX2F0dHJzID0gcHJvY2Vzc19zdG10X2hvdG5lc3NfYXR0cmli dXRlIChzdGRfYXR0cnMsIGF0dHJzX2xvYyk7Ci0JICBzdGF0ZW1lbnQgPSBjcF9wYXJzZXJfaXRl cmF0aW9uX3N0YXRlbWVudCAocGFyc2VyLCBpZl9wLCBmYWxzZSwgMCk7CisJICBzdGF0ZW1lbnQg PSBjcF9wYXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudCAocGFyc2VyLCBpZl9wLCBmYWxzZSwgMCwK KwkJCQkJCSAgICAgZmFsc2UpOwogCSAgYnJlYWs7CiAKIAljYXNlIFJJRF9CUkVBSzoKQEAgLTEz NTk0LDcgKzEzNTk1LDggQEAgY3BfcGFyc2VyX2NvbmRpdGlvbiAoY3BfcGFyc2VyKiBwYXJzZXIp CiAgICBub3QgaW5jbHVkZWQuICovCiAKIHN0YXRpYyB0cmVlCi1jcF9wYXJzZXJfZm9yIChjcF9w YXJzZXIgKnBhcnNlciwgYm9vbCBpdmRlcCwgdW5zaWduZWQgc2hvcnQgdW5yb2xsKQorY3BfcGFy c2VyX2ZvciAoY3BfcGFyc2VyICpwYXJzZXIsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVu cm9sbCwKKwkgICAgICAgYm9vbCBub3ZlY3RvcikKIHsKICAgdHJlZSBpbml0LCBzY29wZSwgZGVj bDsKICAgYm9vbCBpc19yYW5nZV9mb3I7CkBAIC0xMzYyNCwxNCArMTM2MjYsMTQgQEAgY3BfcGFy c2VyX2ZvciAoY3BfcGFyc2VyICpwYXJzZXIsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVu cm9sbCkKIAogICBpZiAoaXNfcmFuZ2VfZm9yKQogICAgIHJldHVybiBjcF9wYXJzZXJfcmFuZ2Vf Zm9yIChwYXJzZXIsIHNjb3BlLCBpbml0LCBkZWNsLCBpdmRlcCwgdW5yb2xsLAotCQkJCWZhbHNl KTsKKwkJCQlub3ZlY3RvciwgZmFsc2UpOwogICBlbHNlCi0gICAgcmV0dXJuIGNwX3BhcnNlcl9j X2ZvciAocGFyc2VyLCBzY29wZSwgaW5pdCwgaXZkZXAsIHVucm9sbCk7CisgICAgcmV0dXJuIGNw X3BhcnNlcl9jX2ZvciAocGFyc2VyLCBzY29wZSwgaW5pdCwgaXZkZXAsIHVucm9sbCwgbm92ZWN0 b3IpOwogfQogCiBzdGF0aWMgdHJlZQogY3BfcGFyc2VyX2NfZm9yIChjcF9wYXJzZXIgKnBhcnNl ciwgdHJlZSBzY29wZSwgdHJlZSBpbml0LCBib29sIGl2ZGVwLAotCQkgdW5zaWduZWQgc2hvcnQg dW5yb2xsKQorCQkgdW5zaWduZWQgc2hvcnQgdW5yb2xsLCBib29sIG5vdmVjdG9yKQogewogICAv KiBOb3JtYWwgZm9yIGxvb3AgKi8KICAgdHJlZSBjb25kaXRpb24gPSBOVUxMX1RSRUU7CkBAIC0x MzY1OCw3ICsxMzY2MCw3IEBAIGNwX3BhcnNlcl9jX2ZvciAoY3BfcGFyc2VyICpwYXJzZXIsIHRy ZWUgc2NvcGUsIHRyZWUgaW5pdCwgYm9vbCBpdmRlcCwKIAkJICAgICAgICIlPEdDQyB1bnJvbGwl PiBwcmFnbWEiKTsKICAgICAgIGNvbmRpdGlvbiA9IGVycm9yX21hcmtfbm9kZTsKICAgICB9Ci0g IGZpbmlzaF9mb3JfY29uZCAoY29uZGl0aW9uLCBzdG10LCBpdmRlcCwgdW5yb2xsKTsKKyAgZmlu aXNoX2Zvcl9jb25kIChjb25kaXRpb24sIHN0bXQsIGl2ZGVwLCB1bnJvbGwsIG5vdmVjdG9yKTsK ICAgLyogTG9vayBmb3IgdGhlIGA7Jy4gICovCiAgIGNwX3BhcnNlcl9yZXF1aXJlIChwYXJzZXIs IENQUF9TRU1JQ09MT04sIFJUX1NFTUlDT0xPTik7CiAKQEAgLTEzNjgyLDcgKzEzNjg0LDggQEAg Y3BfcGFyc2VyX2NfZm9yIChjcF9wYXJzZXIgKnBhcnNlciwgdHJlZSBzY29wZSwgdHJlZSBpbml0 LCBib29sIGl2ZGVwLAogCiBzdGF0aWMgdHJlZQogY3BfcGFyc2VyX3JhbmdlX2ZvciAoY3BfcGFy c2VyICpwYXJzZXIsIHRyZWUgc2NvcGUsIHRyZWUgaW5pdCwgdHJlZSByYW5nZV9kZWNsLAotCQkg ICAgIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9sbCwgYm9vbCBpc19vbXApCisJCSAg ICAgYm9vbCBpdmRlcCwgdW5zaWduZWQgc2hvcnQgdW5yb2xsLCBib29sIG5vdmVjdG9yLAorCQkg ICAgIGJvb2wgaXNfb21wKQogewogICB0cmVlIHN0bXQsIHJhbmdlX2V4cHI7CiAgIGF1dG9fdmVj IDxjeHhfYmluZGluZyAqLCAxNj4gYmluZGluZ3M7CkBAIC0xMzc1OCw2ICsxMzc2MSw4IEBAIGNw X3BhcnNlcl9yYW5nZV9mb3IgKGNwX3BhcnNlciAqcGFyc2VyLCB0cmVlIHNjb3BlLCB0cmVlIGlu aXQsIHRyZWUgcmFuZ2VfZGVjbCwKIAlSQU5HRV9GT1JfSVZERVAgKHN0bXQpID0gMTsKICAgICAg IGlmICh1bnJvbGwpCiAJUkFOR0VfRk9SX1VOUk9MTCAoc3RtdCkgPSBidWlsZF9pbnRfY3N0IChp bnRlZ2VyX3R5cGVfbm9kZSwgdW5yb2xsKTsKKyAgICAgIGlmIChub3ZlY3RvcikKKwlSQU5HRV9G T1JfTk9WRUNUT1IgKHN0bXQpID0gMTsKICAgICAgIGZpbmlzaF9yYW5nZV9mb3JfZGVjbCAoc3Rt dCwgcmFuZ2VfZGVjbCwgcmFuZ2VfZXhwcik7CiAgICAgICBpZiAoIXR5cGVfZGVwZW5kZW50X2V4 cHJlc3Npb25fcCAocmFuZ2VfZXhwcikKIAkgIC8qIGRvX2F1dG9fZGVkdWN0aW9uIGRvZXNuJ3Qg bWVzcyB3aXRoIHRlbXBsYXRlIGluaXQtbGlzdHMuICAqLwpAQCAtMTM3NzAsNyArMTM3NzUsNyBA QCBjcF9wYXJzZXJfcmFuZ2VfZm9yIChjcF9wYXJzZXIgKnBhcnNlciwgdHJlZSBzY29wZSwgdHJl ZSBpbml0LCB0cmVlIHJhbmdlX2RlY2wsCiAgICAgICBzdG10ID0gYmVnaW5fZm9yX3N0bXQgKHNj b3BlLCBpbml0KTsKICAgICAgIHN0bXQgPSBjcF9jb252ZXJ0X3JhbmdlX2ZvciAoc3RtdCwgcmFu Z2VfZGVjbCwgcmFuZ2VfZXhwciwKIAkJCQkgICBkZWNvbXBfZmlyc3RfbmFtZSwgZGVjb21wX2Nu dCwgaXZkZXAsCi0JCQkJICAgdW5yb2xsKTsKKwkJCQkgICB1bnJvbGwsIG5vdmVjdG9yKTsKICAg ICB9CiAgIHJldHVybiBzdG10OwogfQpAQCAtMTM5NDgsNyArMTM5NTMsNyBAQCB3YXJuX2Zvcl9y YW5nZV9jb3B5ICh0cmVlIGRlY2wsIHRyZWUgZXhwcikKIHRyZWUKIGNwX2NvbnZlcnRfcmFuZ2Vf Zm9yICh0cmVlIHN0YXRlbWVudCwgdHJlZSByYW5nZV9kZWNsLCB0cmVlIHJhbmdlX2V4cHIsCiAJ CSAgICAgIHRyZWUgZGVjb21wX2ZpcnN0X25hbWUsIHVuc2lnbmVkIGludCBkZWNvbXBfY250LAot CQkgICAgICBib29sIGl2ZGVwLCB1bnNpZ25lZCBzaG9ydCB1bnJvbGwpCisJCSAgICAgIGJvb2wg aXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9sbCwgYm9vbCBub3ZlY3RvcikKIHsKICAgdHJlZSBi ZWdpbiwgZW5kOwogICB0cmVlIGl0ZXJfdHlwZSwgYmVnaW5fZXhwciwgZW5kX2V4cHI7CkBAIC0x NDAwOCw3ICsxNDAxMyw3IEBAIGNwX2NvbnZlcnRfcmFuZ2VfZm9yICh0cmVlIHN0YXRlbWVudCwg dHJlZSByYW5nZV9kZWNsLCB0cmVlIHJhbmdlX2V4cHIsCiAJCQkJIGJlZ2luLCBFUlJPUl9NQVJL LAogCQkJCSBlbmQsIEVSUk9SX01BUkssCiAJCQkJIE5VTExfVFJFRSwgTlVMTCwgdGZfd2Fybmlu Z19vcl9lcnJvcik7Ci0gIGZpbmlzaF9mb3JfY29uZCAoY29uZGl0aW9uLCBzdGF0ZW1lbnQsIGl2 ZGVwLCB1bnJvbGwpOworICBmaW5pc2hfZm9yX2NvbmQgKGNvbmRpdGlvbiwgc3RhdGVtZW50LCBp dmRlcCwgdW5yb2xsLCBub3ZlY3Rvcik7CiAKICAgLyogVGhlIG5ldyBpbmNyZW1lbnQgZXhwcmVz c2lvbi4gICovCiAgIGV4cHJlc3Npb24gPSBmaW5pc2hfdW5hcnlfb3BfZXhwciAoaW5wdXRfbG9j YXRpb24sCkBAIC0xNDE3NSw3ICsxNDE4MCw3IEBAIGNwX3BhcnNlcl9yYW5nZV9mb3JfbWVtYmVy X2Z1bmN0aW9uICh0cmVlIHJhbmdlLCB0cmVlIGlkZW50aWZpZXIpCiAKIHN0YXRpYyB0cmVlCiBj cF9wYXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudCAoY3BfcGFyc2VyKiBwYXJzZXIsIGJvb2wgKmlm X3AsIGJvb2wgaXZkZXAsCi0JCQkgICAgICAgdW5zaWduZWQgc2hvcnQgdW5yb2xsKQorCQkJICAg ICAgIHVuc2lnbmVkIHNob3J0IHVucm9sbCwgYm9vbCBub3ZlY3RvcikKIHsKICAgY3BfdG9rZW4g KnRva2VuOwogICBlbnVtIHJpZCBrZXl3b3JkOwpAQCAtMTQyMDksNyArMTQyMTQsNyBAQCBjcF9w YXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudCAoY3BfcGFyc2VyKiBwYXJzZXIsIGJvb2wgKmlmX3As IGJvb2wgaXZkZXAsCiAJcGFyZW5zLnJlcXVpcmVfb3BlbiAocGFyc2VyKTsKIAkvKiBQYXJzZSB0 aGUgY29uZGl0aW9uLiAgKi8KIAljb25kaXRpb24gPSBjcF9wYXJzZXJfY29uZGl0aW9uIChwYXJz ZXIpOwotCWZpbmlzaF93aGlsZV9zdG10X2NvbmQgKGNvbmRpdGlvbiwgc3RhdGVtZW50LCBpdmRl cCwgdW5yb2xsKTsKKwlmaW5pc2hfd2hpbGVfc3RtdF9jb25kIChjb25kaXRpb24sIHN0YXRlbWVu dCwgaXZkZXAsIHVucm9sbCwgbm92ZWN0b3IpOwogCS8qIExvb2sgZm9yIHRoZSBgKScuICAqLwog CXBhcmVucy5yZXF1aXJlX2Nsb3NlIChwYXJzZXIpOwogCS8qIFBhcnNlIHRoZSBkZXBlbmRlbnQg c3RhdGVtZW50LiAgKi8KQEAgLTE0MjQ0LDcgKzE0MjQ5LDcgQEAgY3BfcGFyc2VyX2l0ZXJhdGlv bl9zdGF0ZW1lbnQgKGNwX3BhcnNlciogcGFyc2VyLCBib29sICppZl9wLCBib29sIGl2ZGVwLAog CS8qIFBhcnNlIHRoZSBleHByZXNzaW9uLiAgKi8KIAlleHByZXNzaW9uID0gY3BfcGFyc2VyX2V4 cHJlc3Npb24gKHBhcnNlcik7CiAJLyogV2UncmUgZG9uZSB3aXRoIHRoZSBkby1zdGF0ZW1lbnQu ICAqLwotCWZpbmlzaF9kb19zdG10IChleHByZXNzaW9uLCBzdGF0ZW1lbnQsIGl2ZGVwLCB1bnJv bGwpOworCWZpbmlzaF9kb19zdG10IChleHByZXNzaW9uLCBzdGF0ZW1lbnQsIGl2ZGVwLCB1bnJv bGwsIG5vdmVjdG9yKTsKIAkvKiBMb29rIGZvciB0aGUgYCknLiAgKi8KIAlwYXJlbnMucmVxdWly ZV9jbG9zZSAocGFyc2VyKTsKIAkvKiBMb29rIGZvciB0aGUgYDsnLiAgKi8KQEAgLTE0MjU4LDcg KzE0MjYzLDcgQEAgY3BfcGFyc2VyX2l0ZXJhdGlvbl9zdGF0ZW1lbnQgKGNwX3BhcnNlciogcGFy c2VyLCBib29sICppZl9wLCBib29sIGl2ZGVwLAogCW1hdGNoaW5nX3BhcmVucyBwYXJlbnM7CiAJ cGFyZW5zLnJlcXVpcmVfb3BlbiAocGFyc2VyKTsKIAotCXN0YXRlbWVudCA9IGNwX3BhcnNlcl9m b3IgKHBhcnNlciwgaXZkZXAsIHVucm9sbCk7CisJc3RhdGVtZW50ID0gY3BfcGFyc2VyX2ZvciAo cGFyc2VyLCBpdmRlcCwgdW5yb2xsLCBub3ZlY3Rvcik7CiAKIAkvKiBMb29rIGZvciB0aGUgYCkn LiAgKi8KIAlwYXJlbnMucmVxdWlyZV9jbG9zZSAocGFyc2VyKTsKQEAgLTQzODE1LDcgKzQzODIw LDcgQEAgY3BfcGFyc2VyX29tcF9mb3JfbG9vcCAoY3BfcGFyc2VyICpwYXJzZXIsIGVudW0gdHJl ZV9jb2RlIGNvZGUsIHRyZWUgY2xhdXNlcywKIAkgICAgICBjcF9wYXJzZXJfcmVxdWlyZSAocGFy c2VyLCBDUFBfQ09MT04sIFJUX0NPTE9OKTsKIAogCSAgICAgIGluaXQgPSBjcF9wYXJzZXJfcmFu Z2VfZm9yIChwYXJzZXIsIE5VTExfVFJFRSwgTlVMTF9UUkVFLCBkZWNsLAotCQkJCQkgIGZhbHNl LCAwLCB0cnVlKTsKKwkJCQkJICBmYWxzZSwgMCwgZmFsc2UsIHRydWUpOwogCiAJICAgICAgY3Bf Y29udmVydF9vbXBfcmFuZ2VfZm9yICh0aGlzX3ByZV9ib2R5LCBmb3JfYmxvY2ssIGRlY2wsCiAJ CQkJCW9yaWdfZGVjbCwgaW5pdCwgb3JpZ19pbml0LApAQCAtNDkzMDAsNiArNDkzMDUsMTUgQEAg Y3BfcGFyc2VyX3ByYWdtYV91bnJvbGwgKGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJh Z21hX3RvaykKICAgcmV0dXJuIHVucm9sbDsKIH0KIAorLyogUGFyc2UgYSBwcmFnbWEgR0NDIG5v dmVjdG9yLiAgKi8KKworc3RhdGljIGJvb2wKK2NwX3BhcnNlcl9wcmFnbWFfbm92ZWN0b3IgKGNw X3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaykKK3sKKyAgY3BfcGFyc2VyX3Nr aXBfdG9fcHJhZ21hX2VvbCAocGFyc2VyLCBwcmFnbWFfdG9rKTsKKyAgcmV0dXJuIHRydWU7Cit9 CisKIC8qIE5vcm1hbCBwYXJzaW5nIG9mIGEgcHJhZ21hIHRva2VuLiAgSGVyZSB3ZSBjYW4gKGFu ZCBtdXN0KSB1c2UgdGhlCiAgICByZWd1bGFyIGxleGVyLiAgKi8KIApAQCAtNDk2MDUsNTggKzQ5 NjE5LDczIEBAIGNwX3BhcnNlcl9wcmFnbWEgKGNwX3BhcnNlciAqcGFyc2VyLCBlbnVtIHByYWdt YV9jb250ZXh0IGNvbnRleHQsIGJvb2wgKmlmX3ApCiAgICAgICBicmVhazsKIAogICAgIGNhc2Ug UFJBR01BX0lWREVQOgorICAgIGNhc2UgUFJBR01BX1VOUk9MTDoKKyAgICBjYXNlIFBSQUdNQV9O T1ZFQ1RPUjoKICAgICAgIHsKLQlpZiAoY29udGV4dCA9PSBwcmFnbWFfZXh0ZXJuYWwpCisJYm9v bCBpdmRlcDsKKwl1bnNpZ25lZCBzaG9ydCB1bnJvbGwgPSAwOworCWJvb2wgbm92ZWN0b3IgPSBm YWxzZTsKKwljb25zdCBjaGFyICpwcmFnbWFfc3RyOworCisJc3dpdGNoIChpZCkKIAkgIHsKLQkg ICAgZXJyb3JfYXQgKHByYWdtYV90b2stPmxvY2F0aW9uLAotCQkgICAgICAiJTwjcHJhZ21hIEdD QyBpdmRlcCU+IG11c3QgYmUgaW5zaWRlIGEgZnVuY3Rpb24iKTsKKwkgIGNhc2UgUFJBR01BX0lW REVQOgorCSAgICBwcmFnbWFfc3RyID0gIml2ZGVwIjsKIAkgICAgYnJlYWs7Ci0JICB9Ci0JY29u c3QgYm9vbCBpdmRlcCA9IGNwX3BhcnNlcl9wcmFnbWFfaXZkZXAgKHBhcnNlciwgcHJhZ21hX3Rv ayk7Ci0JdW5zaWduZWQgc2hvcnQgdW5yb2xsOwotCWNwX3Rva2VuICp0b2sgPSBjcF9sZXhlcl9w ZWVrX3Rva2VuICh0aGVfcGFyc2VyLT5sZXhlcik7Ci0JaWYgKHRvay0+dHlwZSA9PSBDUFBfUFJB R01BCi0JICAgICYmIGNwX3BhcnNlcl9wcmFnbWFfa2luZCAodG9rKSA9PSBQUkFHTUFfVU5ST0xM KQotCSAgewotCSAgICB0b2sgPSBjcF9sZXhlcl9jb25zdW1lX3Rva2VuIChwYXJzZXItPmxleGVy KTsKLQkgICAgdW5yb2xsID0gY3BfcGFyc2VyX3ByYWdtYV91bnJvbGwgKHBhcnNlciwgdG9rKTsK LQkgICAgdG9rID0gY3BfbGV4ZXJfcGVla190b2tlbiAodGhlX3BhcnNlci0+bGV4ZXIpOwotCSAg fQotCWVsc2UKLQkgIHVucm9sbCA9IDA7Ci0JaWYgKHRvay0+dHlwZSAhPSBDUFBfS0VZV09SRAot CSAgICB8fCAodG9rLT5rZXl3b3JkICE9IFJJRF9GT1IKLQkJJiYgdG9rLT5rZXl3b3JkICE9IFJJ RF9XSElMRQotCQkmJiB0b2stPmtleXdvcmQgIT0gUklEX0RPKSkKLQkgIHsKLQkgICAgY3BfcGFy c2VyX2Vycm9yIChwYXJzZXIsICJmb3IsIHdoaWxlIG9yIGRvIHN0YXRlbWVudCBleHBlY3RlZCIp OwotCSAgICByZXR1cm4gZmFsc2U7Ci0JICB9Ci0JY3BfcGFyc2VyX2l0ZXJhdGlvbl9zdGF0ZW1l bnQgKHBhcnNlciwgaWZfcCwgaXZkZXAsIHVucm9sbCk7Ci0JcmV0dXJuIHRydWU7Ci0gICAgICB9 CisJICBjYXNlIFBSQUdNQV9VTlJPTEw6CisJICAgIHByYWdtYV9zdHIgPSAidW5yb2xsIjsKKwkg ICAgYnJlYWs7CisJICBjYXNlIFBSQUdNQV9OT1ZFQ1RPUjoKKwkgICAgcHJhZ21hX3N0ciA9ICJu b3ZlY3RvciI7CisJICAgIGJyZWFrOworCSAgZGVmYXVsdDoKKwkgICAgZ2NjX3VucmVhY2hhYmxl ICgpOworCX0KIAotICAgIGNhc2UgUFJBR01BX1VOUk9MTDoKLSAgICAgIHsKIAlpZiAoY29udGV4 dCA9PSBwcmFnbWFfZXh0ZXJuYWwpCiAJICB7CiAJICAgIGVycm9yX2F0IChwcmFnbWFfdG9rLT5s b2NhdGlvbiwKLQkJICAgICAgIiU8I3ByYWdtYSBHQ0MgdW5yb2xsJT4gbXVzdCBiZSBpbnNpZGUg YSBmdW5jdGlvbiIpOworCQkgICAgICAiJTwjcHJhZ21hIEdDQyAlcyU+IG11c3QgYmUgaW5zaWRl IGEgZnVuY3Rpb24iLAorCQkgICAgICBwcmFnbWFfc3RyKTsKIAkgICAgYnJlYWs7CiAJICB9Ci0J Y29uc3QgdW5zaWduZWQgc2hvcnQgdW5yb2xsCi0JICA9IGNwX3BhcnNlcl9wcmFnbWFfdW5yb2xs IChwYXJzZXIsIHByYWdtYV90b2spOwotCWJvb2wgaXZkZXA7Ci0JY3BfdG9rZW4gKnRvayA9IGNw X2xleGVyX3BlZWtfdG9rZW4gKHRoZV9wYXJzZXItPmxleGVyKTsKLQlpZiAodG9rLT50eXBlID09 IENQUF9QUkFHTUEKLQkgICAgJiYgY3BfcGFyc2VyX3ByYWdtYV9raW5kICh0b2spID09IFBSQUdN QV9JVkRFUCkKKworCWNwX3Rva2VuICp0b2sgPSBwcmFnbWFfdG9rOworCWJvb2wgaGFzX21vcmUg PSB0cnVlOworCWRvCiAJICB7Ci0JICAgIHRvayA9IGNwX2xleGVyX2NvbnN1bWVfdG9rZW4gKHBh cnNlci0+bGV4ZXIpOwotCSAgICBpdmRlcCA9IGNwX3BhcnNlcl9wcmFnbWFfaXZkZXAgKHBhcnNl ciwgdG9rKTsKKwkgICAgc3dpdGNoIChjcF9wYXJzZXJfcHJhZ21hX2tpbmQgKHRvaykpCisJICAg ICAgeworCQljYXNlIFBSQUdNQV9JVkRFUDoKKwkJICB7CisJCSAgICBpZiAodG9rICE9IHByYWdt YV90b2spCisJCSAgICAgIHRvayA9IGNwX2xleGVyX2NvbnN1bWVfdG9rZW4gKHBhcnNlci0+bGV4 ZXIpOworCQkgICAgaXZkZXAgPSBjcF9wYXJzZXJfcHJhZ21hX2l2ZGVwIChwYXJzZXIsIHRvayk7 CisJCSAgICBicmVhazsKKwkJICB9CisJCWNhc2UgUFJBR01BX1VOUk9MTDoKKwkJICB7CisJCSAg ICBpZiAodG9rICE9IHByYWdtYV90b2spCisJCSAgICAgIHRvayA9IGNwX2xleGVyX2NvbnN1bWVf dG9rZW4gKHBhcnNlci0+bGV4ZXIpOworCQkgICAgdW5yb2xsID0gY3BfcGFyc2VyX3ByYWdtYV91 bnJvbGwgKHBhcnNlciwgdG9rKTsKKwkJICAgIGJyZWFrOworCQkgIH0KKwkJY2FzZSBQUkFHTUFf Tk9WRUNUT1I6CisJCSAgeworCQkgICAgaWYgKHRvayAhPSBwcmFnbWFfdG9rKQorCQkgICAgICB0 b2sgPSBjcF9sZXhlcl9jb25zdW1lX3Rva2VuIChwYXJzZXItPmxleGVyKTsKKwkJICAgIG5vdmVj dG9yID0gY3BfcGFyc2VyX3ByYWdtYV9ub3ZlY3RvciAocGFyc2VyLCB0b2spOworCQkgICAgYnJl YWs7CisJCSAgfQorCQlkZWZhdWx0OgorCQkgIGhhc19tb3JlID0gZmFsc2U7CisJCSAgYnJlYWs7 CisJICAgICAgfQogCSAgICB0b2sgPSBjcF9sZXhlcl9wZWVrX3Rva2VuICh0aGVfcGFyc2VyLT5s ZXhlcik7CisJICAgIGhhc19tb3JlID0gaGFzX21vcmUgJiYgdG9rLT50eXBlID09IENQUF9QUkFH TUE7CiAJICB9Ci0JZWxzZQotCSAgaXZkZXAgPSBmYWxzZTsKKwl3aGlsZSAoaGFzX21vcmUpOwor CiAJaWYgKHRvay0+dHlwZSAhPSBDUFBfS0VZV09SRAogCSAgICB8fCAodG9rLT5rZXl3b3JkICE9 IFJJRF9GT1IKIAkJJiYgdG9rLT5rZXl3b3JkICE9IFJJRF9XSElMRQpAQCAtNDk2NjUsNyArNDk2 OTQsNyBAQCBjcF9wYXJzZXJfcHJhZ21hIChjcF9wYXJzZXIgKnBhcnNlciwgZW51bSBwcmFnbWFf Y29udGV4dCBjb250ZXh0LCBib29sICppZl9wKQogCSAgICBjcF9wYXJzZXJfZXJyb3IgKHBhcnNl ciwgImZvciwgd2hpbGUgb3IgZG8gc3RhdGVtZW50IGV4cGVjdGVkIik7CiAJICAgIHJldHVybiBm YWxzZTsKIAkgIH0KLQljcF9wYXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudCAocGFyc2VyLCBpZl9w LCBpdmRlcCwgdW5yb2xsKTsKKwljcF9wYXJzZXJfaXRlcmF0aW9uX3N0YXRlbWVudCAocGFyc2Vy LCBpZl9wLCBpdmRlcCwgdW5yb2xsLCBub3ZlY3Rvcik7CiAJcmV0dXJuIHRydWU7CiAgICAgICB9 CiAKZGlmZiAtLWdpdCBhL2djYy9jcC9wdC5jYyBiL2djYy9jcC9wdC5jYwppbmRleCAyMzQ1YTE4 YmVjYzExNjBiOWQxMmYzZDg4Y2NjYjY2Yzg5MTczNzNjLi43YjBkMDFhOTBlM2M0MDEyZWM2MDNl YmUwNGNiYmIzMWE3ZGQxNTcwIDEwMDY0NAotLS0gYS9nY2MvY3AvcHQuY2MKKysrIGIvZ2NjL2Nw L3B0LmNjCkBAIC0xOTAzNiw3ICsxOTAzNiw3IEBAIHRzdWJzdF9leHByICh0cmVlIHQsIHRyZWUg YXJncywgdHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4sIHRyZWUgaW5fZGVjbCkKICAgICAgIFJFQ1VS IChGT1JfSU5JVF9TVE1UICh0KSk7CiAgICAgICBmaW5pc2hfaW5pdF9zdG10IChzdG10KTsKICAg ICAgIHRtcCA9IFJFQ1VSIChGT1JfQ09ORCAodCkpOwotICAgICAgZmluaXNoX2Zvcl9jb25kICh0 bXAsIHN0bXQsIGZhbHNlLCAwKTsKKyAgICAgIGZpbmlzaF9mb3JfY29uZCAodG1wLCBzdG10LCBm YWxzZSwgMCwgZmFsc2UpOwogICAgICAgdG1wID0gUkVDVVIgKEZPUl9FWFBSICh0KSk7CiAgICAg ICBmaW5pc2hfZm9yX2V4cHIgKHRtcCwgc3RtdCk7CiAgICAgICB7CkBAIC0xOTA3Myw2ICsxOTA3 Myw3IEBAIHRzdWJzdF9leHByICh0cmVlIHQsIHRyZWUgYXJncywgdHN1YnN0X2ZsYWdzX3QgY29t cGxhaW4sIHRyZWUgaW5fZGVjbCkKIAkgIHsKIAkgICAgUkFOR0VfRk9SX0lWREVQIChzdG10KSA9 IFJBTkdFX0ZPUl9JVkRFUCAodCk7CiAJICAgIFJBTkdFX0ZPUl9VTlJPTEwgKHN0bXQpID0gUkFO R0VfRk9SX1VOUk9MTCAodCk7CisJICAgIFJBTkdFX0ZPUl9OT1ZFQ1RPUiAoc3RtdCkgPSBSQU5H RV9GT1JfTk9WRUNUT1IgKHQpOwogCSAgICBmaW5pc2hfcmFuZ2VfZm9yX2RlY2wgKHN0bXQsIGRl Y2wsIGV4cHIpOwogCSAgICBpZiAoZGVjb21wX2ZpcnN0ICYmIGRlY2wgIT0gZXJyb3JfbWFya19u b2RlKQogCSAgICAgIGNwX2ZpbmlzaF9kZWNvbXAgKGRlY2wsIGRlY29tcF9maXJzdCwgZGVjb21w X2NudCk7CkBAIC0xOTA4Myw3ICsxOTA4NCw4IEBAIHRzdWJzdF9leHByICh0cmVlIHQsIHRyZWUg YXJncywgdHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4sIHRyZWUgaW5fZGVjbCkKIAkJCQkgICAgID8g dHJlZV90b191aHdpIChSQU5HRV9GT1JfVU5ST0xMICh0KSkgOiAwKTsKIAkgICAgc3RtdCA9IGNw X2NvbnZlcnRfcmFuZ2VfZm9yIChzdG10LCBkZWNsLCBleHByLAogCQkJCQkgZGVjb21wX2ZpcnN0 LCBkZWNvbXBfY250LAotCQkJCQkgUkFOR0VfRk9SX0lWREVQICh0KSwgdW5yb2xsKTsKKwkJCQkJ IFJBTkdFX0ZPUl9JVkRFUCAodCksIHVucm9sbCwKKwkJCQkJIFJBTkdFX0ZPUl9OT1ZFQ1RPUiAo dCkpOwogCSAgfQogCiAJYm9vbCBwcmV2ID0gbm90ZV9pdGVyYXRpb25fc3RtdF9ib2R5X3N0YXJ0 ICgpOwpAQCAtMTkwOTYsNyArMTkwOTgsNyBAQCB0c3Vic3RfZXhwciAodHJlZSB0LCB0cmVlIGFy Z3MsIHRzdWJzdF9mbGFnc190IGNvbXBsYWluLCB0cmVlIGluX2RlY2wpCiAgICAgY2FzZSBXSElM RV9TVE1UOgogICAgICAgc3RtdCA9IGJlZ2luX3doaWxlX3N0bXQgKCk7CiAgICAgICB0bXAgPSBS RUNVUiAoV0hJTEVfQ09ORCAodCkpOwotICAgICAgZmluaXNoX3doaWxlX3N0bXRfY29uZCAodG1w LCBzdG10LCBmYWxzZSwgMCk7CisgICAgICBmaW5pc2hfd2hpbGVfc3RtdF9jb25kICh0bXAsIHN0 bXQsIGZhbHNlLCAwLCBmYWxzZSk7CiAgICAgICB7CiAJYm9vbCBwcmV2ID0gbm90ZV9pdGVyYXRp b25fc3RtdF9ib2R5X3N0YXJ0ICgpOwogCVJFQ1VSIChXSElMRV9CT0RZICh0KSk7CkBAIC0xOTEx NCw3ICsxOTExNiw3IEBAIHRzdWJzdF9leHByICh0cmVlIHQsIHRyZWUgYXJncywgdHN1YnN0X2Zs YWdzX3QgY29tcGxhaW4sIHRyZWUgaW5fZGVjbCkKICAgICAgIH0KICAgICAgIGZpbmlzaF9kb19i b2R5IChzdG10KTsKICAgICAgIHRtcCA9IFJFQ1VSIChET19DT05EICh0KSk7Ci0gICAgICBmaW5p c2hfZG9fc3RtdCAodG1wLCBzdG10LCBmYWxzZSwgMCk7CisgICAgICBmaW5pc2hfZG9fc3RtdCAo dG1wLCBzdG10LCBmYWxzZSwgMCwgZmFsc2UpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIElG X1NUTVQ6CmRpZmYgLS1naXQgYS9nY2MvY3Avc2VtYW50aWNzLmNjIGIvZ2NjL2NwL3NlbWFudGlj cy5jYwppbmRleCA4ZmI0N2ZkMTc5ZWIyYWYyZTgyYmYzMWQxODgwMjNlOWI5ZDQxZGU5Li5iNzk5 NzUxMDljMjJlYmNmY2IwNjBiNGYyMGYzMmY2OWYzYzNjNDQ0IDEwMDY0NAotLS0gYS9nY2MvY3Av c2VtYW50aWNzLmNjCisrKyBiL2djYy9jcC9zZW1hbnRpY3MuY2MKQEAgLTExNDgsNyArMTE0OCw3 IEBAIGJlZ2luX3doaWxlX3N0bXQgKHZvaWQpCiAKIHZvaWQKIGZpbmlzaF93aGlsZV9zdG10X2Nv bmQgKHRyZWUgY29uZCwgdHJlZSB3aGlsZV9zdG10LCBib29sIGl2ZGVwLAotCQkJdW5zaWduZWQg c2hvcnQgdW5yb2xsKQorCQkJdW5zaWduZWQgc2hvcnQgdW5yb2xsLCBib29sIG5vdmVjdG9yKQog ewogICBjb25kID0gbWF5YmVfY29udmVydF9jb25kIChjb25kKTsKICAgZmluaXNoX2NvbmQgKCZX SElMRV9DT05EICh3aGlsZV9zdG10KSwgY29uZCk7CkBAIC0xMTY4LDYgKzExNjgsMTMgQEAgZmlu aXNoX3doaWxlX3N0bXRfY29uZCAodHJlZSBjb25kLCB0cmVlIHdoaWxlX3N0bXQsIGJvb2wgaXZk ZXAsCiAJCQkJCQkgICAgIGFubm90X2V4cHJfdW5yb2xsX2tpbmQpLAogCQkJCSAgICAgIGJ1aWxk X2ludF9jc3QgKGludGVnZXJfdHlwZV9ub2RlLAogCQkJCQkJICAgICB1bnJvbGwpKTsKKyAgaWYg KG5vdmVjdG9yICYmIGNvbmQgIT0gZXJyb3JfbWFya19ub2RlKQorICAgIFdISUxFX0NPTkQgKHdo aWxlX3N0bXQpID0gYnVpbGQzIChBTk5PVEFURV9FWFBSLAorCQkJCSAgICAgIFRSRUVfVFlQRSAo V0hJTEVfQ09ORCAod2hpbGVfc3RtdCkpLAorCQkJCSAgICAgIFdISUxFX0NPTkQgKHdoaWxlX3N0 bXQpLAorCQkJCSAgICAgIGJ1aWxkX2ludF9jc3QgKGludGVnZXJfdHlwZV9ub2RlLAorCQkJCQkJ ICAgICBhbm5vdF9leHByX25vX3ZlY3Rvcl9raW5kKSwKKwkJCQkgICAgICBpbnRlZ2VyX3plcm9f bm9kZSk7CiAgIHNpbXBsaWZ5X2xvb3BfZGVjbF9jb25kICgmV0hJTEVfQ09ORCAod2hpbGVfc3Rt dCksIFdISUxFX0JPRFkgKHdoaWxlX3N0bXQpKTsKIH0KIApAQCAtMTIxMiw3ICsxMjE5LDggQEAg ZmluaXNoX2RvX2JvZHkgKHRyZWUgZG9fc3RtdCkKICAgIENPTkQgaXMgYXMgaW5kaWNhdGVkLiAg Ki8KIAogdm9pZAotZmluaXNoX2RvX3N0bXQgKHRyZWUgY29uZCwgdHJlZSBkb19zdG10LCBib29s IGl2ZGVwLCB1bnNpZ25lZCBzaG9ydCB1bnJvbGwpCitmaW5pc2hfZG9fc3RtdCAodHJlZSBjb25k LCB0cmVlIGRvX3N0bXQsIGJvb2wgaXZkZXAsIHVuc2lnbmVkIHNob3J0IHVucm9sbCwKKwkJYm9v bCBub3ZlY3RvcikKIHsKICAgY29uZCA9IG1heWJlX2NvbnZlcnRfY29uZCAoY29uZCk7CiAgIGVu ZF9tYXliZV9pbmZpbml0ZV9sb29wIChjb25kKTsKQEAgLTEyMjksNiArMTIzNywxMCBAQCBmaW5p c2hfZG9fc3RtdCAodHJlZSBjb25kLCB0cmVlIGRvX3N0bXQsIGJvb2wgaXZkZXAsIHVuc2lnbmVk IHNob3J0IHVucm9sbCkKICAgICBjb25kID0gYnVpbGQzIChBTk5PVEFURV9FWFBSLCBUUkVFX1RZ UEUgKGNvbmQpLCBjb25kLAogCQkgICBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwg YW5ub3RfZXhwcl91bnJvbGxfa2luZCksCiAJCSAgIGJ1aWxkX2ludF9jc3QgKGludGVnZXJfdHlw ZV9ub2RlLCB1bnJvbGwpKTsKKyAgaWYgKG5vdmVjdG9yICYmIGNvbmQgIT0gZXJyb3JfbWFya19u b2RlKQorICAgIGNvbmQgPSBidWlsZDMgKEFOTk9UQVRFX0VYUFIsIFRSRUVfVFlQRSAoY29uZCks IGNvbmQsCisJCSAgIGJ1aWxkX2ludF9jc3QgKGludGVnZXJfdHlwZV9ub2RlLCBhbm5vdF9leHBy X25vX3ZlY3Rvcl9raW5kKSwKKwkJICAgaW50ZWdlcl96ZXJvX25vZGUpOwogICBET19DT05EIChk b19zdG10KSA9IGNvbmQ7CiB9CiAKQEAgLTEzMjUsNyArMTMzNyw3IEBAIGZpbmlzaF9pbml0X3N0 bXQgKHRyZWUgZm9yX3N0bXQpCiAgICBGT1JfU1RNVC4gICovCiAKIHZvaWQKLWZpbmlzaF9mb3Jf Y29uZCAodHJlZSBjb25kLCB0cmVlIGZvcl9zdG10LCBib29sIGl2ZGVwLCB1bnNpZ25lZCBzaG9y dCB1bnJvbGwpCitmaW5pc2hfZm9yX2NvbmQgKHRyZWUgY29uZCwgdHJlZSBmb3Jfc3RtdCwgYm9v bCBpdmRlcCwgdW5zaWduZWQgc2hvcnQgdW5yb2xsLCBib29sIG5vdmVjdG9yKQogewogICBjb25k ID0gbWF5YmVfY29udmVydF9jb25kIChjb25kKTsKICAgZmluaXNoX2NvbmQgKCZGT1JfQ09ORCAo Zm9yX3N0bXQpLCBjb25kKTsKQEAgLTEzNDUsNiArMTM1NywxMyBAQCBmaW5pc2hfZm9yX2NvbmQg KHRyZWUgY29uZCwgdHJlZSBmb3Jfc3RtdCwgYm9vbCBpdmRlcCwgdW5zaWduZWQgc2hvcnQgdW5y b2xsKQogCQkJCQkJIGFubm90X2V4cHJfdW5yb2xsX2tpbmQpLAogCQkJCSAgYnVpbGRfaW50X2Nz dCAoaW50ZWdlcl90eXBlX25vZGUsCiAJCQkJCQkgdW5yb2xsKSk7CisgIGlmIChub3ZlY3RvciAm JiBjb25kICE9IGVycm9yX21hcmtfbm9kZSkKKyAgICBGT1JfQ09ORCAoZm9yX3N0bXQpID0gYnVp bGQzIChBTk5PVEFURV9FWFBSLAorCQkJCSAgVFJFRV9UWVBFIChGT1JfQ09ORCAoZm9yX3N0bXQp KSwKKwkJCQkgIEZPUl9DT05EIChmb3Jfc3RtdCksCisJCQkJICBidWlsZF9pbnRfY3N0IChpbnRl Z2VyX3R5cGVfbm9kZSwKKwkJCQkJCSBhbm5vdF9leHByX25vX3ZlY3Rvcl9raW5kKSwKKwkJCQkg IGludGVnZXJfemVyb19ub2RlKTsKICAgc2ltcGxpZnlfbG9vcF9kZWNsX2NvbmQgKCZGT1JfQ09O RCAoZm9yX3N0bXQpLCBGT1JfQk9EWSAoZm9yX3N0bXQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvZ2Nj L2RvYy9leHRlbmQudGV4aSBiL2djYy9kb2MvZXh0ZW5kLnRleGkKaW5kZXggMzA0MGE5YmRlYTY1 ZDI3ZjhkMjA1NzJiNGVkMzczNzVmNWZlOTQ5Yi4uYmFhYzY2NDNkMWFiYmYzM2Q1OTJlNjhhY2E0 OWFjODNlM2MyOTE4OCAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQorKysgYi9nY2Mv ZG9jL2V4dGVuZC50ZXhpCkBAIC0yNDM0OSw2ICsyNDM0OSwyNSBAQCB2b2lkIGlnbm9yZV92ZWNf ZGVwIChpbnQgKmEsIGludCBrLCBpbnQgYywgaW50IG0pCiBAfQogQGVuZCBzbWFsbGV4YW1wbGUK IAorQGNpbmRleCBwcmFnbWEgR0NDIG5vdmVjdG9yCitAaXRlbSAjcHJhZ21hIEdDQyBub3ZlY3Rv cgorCitXaXRoIHRoaXMgcHJhZ21hLCB0aGUgcHJvZ3JhbW1lciBhc3NlcnRzIHRoYXQgdGhlIGZv bGxvd2luZyBsb29wIHNob3VsZCBiZQorcHJldmVudGVkIGZyb20gZXhlY3V0aW5nIGNvbmN1cnJl bnRseSB3aXRoIFNJTUQgKHNpbmdsZSBpbnN0cnVjdGlvbiBtdWx0aXBsZQorZGF0YSkgaW5zdHJ1 Y3Rpb25zLgorCitGb3IgZXhhbXBsZSwgdGhlIGNvbXBpbGVyIGNhbm5vdCB2ZWN0b3JpemUgdGhl IGZvbGxvd2luZyBsb29wIHdpdGggdGhlIHByYWdtYToKKworQHNtYWxsZXhhbXBsZQordm9pZCBm b28gKGludCBuLCBpbnQgKmEsIGludCAqYiwgaW50ICpjKQorQHsKKyAgaW50IGksIGo7CisjcHJh Z21hIEdDQyBub3ZlY3RvcgorICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKQorICAgIGFbaV0gPSBi W2ldICsgY1tpXTsKK0B9CitAZW5kIHNtYWxsZXhhbXBsZQorCiBAY2luZGV4IHByYWdtYSBHQ0Mg dW5yb2xsIEB2YXJ7bn0KIEBpdGVtICNwcmFnbWEgR0NDIHVucm9sbCBAdmFye259CiAKZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLmRnL3ZlY3QvdmVjdC1ub3ZlY3Rvci1wcmFnbWEuY2Mg Yi9nY2MvdGVzdHN1aXRlL2crKy5kZy92ZWN0L3ZlY3Qtbm92ZWN0b3ItcHJhZ21hLmNjCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAuLjhjNmZmMjJmY2FhYmFhOTc1MTZiZTcyYjc3YWNiZDQ0ZGY4NmIxZDIKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy92ZWN0L3ZlY3Qtbm92ZWN0b3ItcHJhZ21h LmNjCkBAIC0wLDAgKzEsNjkgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLXJl cXVpcmUtZWZmZWN0aXZlLXRhcmdldCB2ZWN0X2ludCB9ICovCisKKyNpbmNsdWRlIDx2ZWN0b3I+ CisKK3ZvaWQgZjQgKHN0ZDo6dmVjdG9yPGludD4gYSwgc3RkOjp2ZWN0b3I8aW50PiBiLCBpbnQg bikKK3sKKyAgICBpbnQgaSA9IDA7CisjcHJhZ21hIEdDQyBub3ZlY3RvcgorICAgIHdoaWxlIChp IDwgKG4gJiAtOCkpCisgICAgICB7CisgICAgICAgIGFbaV0gKz0gYltpXTsKKyAgICAgICAgaSsr OworICAgICAgfQorfQorCit2b2lkIGY1IChzdGQ6OnZlY3RvcjxpbnQ+IGEsIHN0ZDo6dmVjdG9y PGludD4gYiwgaW50IG4pCit7CisgICAgaW50IGkgPSAwOworI3ByYWdtYSBHQ0Mgbm92ZWN0b3IK KyNwcmFnbWEgR0NDIGl2ZGVwCisjcHJhZ21hIEdDQyB1bnJvbGwgMgorICAgIHdoaWxlIChpIDwg KG4gJiAtOCkpCisgICAgICB7CisgICAgICAgIGFbaV0gKz0gYltpXTsKKyAgICAgICAgaSsrOwor ICAgICAgfQorfQorCit2b2lkIGY2IChzdGQ6OnZlY3RvcjxpbnQ+IGEsIHN0ZDo6dmVjdG9yPGlu dD4gYiwgaW50IG4pCit7CisgICAgaW50IGkgPSAwOworI3ByYWdtYSBHQ0MgaXZkZXAKKyNwcmFn bWEgR0NDIG5vdmVjdG9yCisjcHJhZ21hIEdDQyB1bnJvbGwgMgorICAgIHdoaWxlIChpIDwgKG4g JiAtOCkpCisgICAgICB7CisgICAgICAgIGFbaV0gKz0gYltpXTsKKyAgICAgICAgaSsrOworICAg ICAgfQorfQorCit2b2lkIGY3IChzdGQ6OnZlY3RvcjxpbnQ+IGEsIHN0ZDo6dmVjdG9yPGludD4g YiwgaW50IG4pCit7CisgICAgaW50IGkgPSAwOworI3ByYWdtYSBHQ0MgaXZkZXAKKyNwcmFnbWEg R0NDIHVucm9sbCAyCisjcHJhZ21hIEdDQyBub3ZlY3RvcgorICAgIHdoaWxlIChpIDwgKG4gJiAt OCkpCisgICAgICB7CisgICAgICAgIGFbaV0gKz0gYltpXTsKKyAgICAgICAgaSsrOworICAgICAg fQorfQorCisjaWYgX19jcHBfcmFuZ2VfYmFzZWRfZm9yCit2b2lkIGY4IChzdGQ6OnZlY3Rvcjxp bnQ+IGEsIHN0ZDo6dmVjdG9yPGludD4gYiwgaW50IG4pCit7CisgICAgaW50IGkgPSAwOworI3By YWdtYSBHQ0Mgbm92ZWN0b3IKKyAgICBmb3IgKGludCB4IDogYikKKyAgICAgIHsKKyAgICAgICAg YVtpXSArPSB4OworICAgICAgICBpKys7CisgICAgICB9Cit9CisjZW5kaWYKKworLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAiTE9PUCBWRUNUT1JJWkVEIiAidmVjdCIgfSB9ICov CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy92ZWN0L3ZlY3QuZXhwIGIvZ2NjL3Rl c3RzdWl0ZS9nKysuZGcvdmVjdC92ZWN0LmV4cAppbmRleCBkZjI3MzIzM2Y0N2E3ODgwMjRiYmU2 MTEyOGVhYTk2YjYzOWNiM2I4Li5mYzc3MTIwYTgzMTczYzY1YWQxNDdlOGJiN2MyOWFjODJmMDZi YjZkIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2crKy5kZy92ZWN0L3ZlY3QuZXhwCisrKyBi L2djYy90ZXN0c3VpdGUvZysrLmRnL3ZlY3QvdmVjdC5leHAKQEAgLTY0LDcgKzY0LDcgQEAgZGct aW5pdAogCiAjIE1haW4gbG9vcC4KIGV0LWRnLXJ1bnRlc3QgZysrLWRnLXJ1bnRlc3QgW2xzb3J0 IFtnbG9iIC1ub2NvbXBsYWluIFwKLQkkc3JjZGlyLyRzdWJkaXIve3ByLHNpbWR9Ki57YyxjYyxT fSBdXSAiIiAkREVGQVVMVF9WRUNUQ0ZMQUdTCisJJHNyY2Rpci8kc3ViZGlyL3twcixzaW1kLHZl Y3QtfSoue2MsY2MsU30gXV0gIiIgJERFRkFVTFRfVkVDVENGTEFHUwogZXQtZGctcnVudGVzdCBn KystZGctcnVudGVzdCBbbHNvcnQgW2dsb2IgLW5vY29tcGxhaW4gXAogCSRzcmNkaXIvJHN1YmRp ci9zbHAtcHIqLntjLGNjLFN9IF1dICIiICRWRUNUX1NMUF9DRkxBR1MKIAo= --_002_VI1PR08MB53256E75FC1DE820BA64FC0DFF00AVI1PR08MB5325eurp_--