From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id mWjZIbl/xl9dTAAAWB0awg (envelope-from ) for ; Tue, 01 Dec 2020 12:39:05 -0500 Received: by simark.ca (Postfix, from userid 112) id 7A6901F0AB; Tue, 1 Dec 2020 12:39:05 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,UNPARSEABLE_RELAY,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E93A91E590 for ; Tue, 1 Dec 2020 12:39:02 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F3EE03857C4F; Tue, 1 Dec 2020 17:39:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F3EE03857C4F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1606844341; bh=JRTeVviotF9DqjSX1WR6bdy+8wqlXQ7KulIlYleNMNM=; h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=gZb2tS5Y/9+0JXEW/Mygken5J8/zWPcj8n5TkUjAYlIphJgZ1Z0XmXCPNMNjPBg0I snNJCDsyoMvWD5Y27IHDWVxSI3ZMekpdF5iHpZNZQjPg+sQB7VI3psa2WZuAUEj4zm Neq6qA8vEJ+xryOcpDOQ5mpwTMkPaBtSpEmEwaeM= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2079.outbound.protection.outlook.com [40.107.20.79]) by sourceware.org (Postfix) with ESMTPS id 2D0123857C4F for ; Tue, 1 Dec 2020 17:38:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2D0123857C4F Received: from AM5PR0601CA0065.eurprd06.prod.outlook.com (2603:10a6:206::30) by DB7PR08MB3916.eurprd08.prod.outlook.com (2603:10a6:10:7e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17; Tue, 1 Dec 2020 17:38:52 +0000 Received: from AM5EUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:0:cafe::9f) by AM5PR0601CA0065.outlook.office365.com (2603:10a6:206::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17 via Frontend Transport; Tue, 1 Dec 2020 17:38:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT008.mail.protection.outlook.com (10.152.16.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.26 via Frontend Transport; Tue, 1 Dec 2020 17:38:52 +0000 Received: ("Tessian outbound 39646a0fd094:v71"); Tue, 01 Dec 2020 17:38:52 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8897d4ba58f11535 X-CR-MTA-TID: 64aa7808 Received: from 51503c5ba2c2.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 78DDBBBD-52BF-4B84-A19B-865922498E7D.1; Tue, 01 Dec 2020 17:38:36 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 51503c5ba2c2.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 01 Dec 2020 17:38:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BD1r0neEkLhjyHxR+DvoQasEXiC+PFA+KpEehB2bWiIt9+C3VE38kjbpOY2WWqVI2IPYNfM782eDbb4MjMAeuJQf68XHt81O2wd1D1xOfZsNsTiKe+m6uHXkxAVYvZqXTEdzG+sUeh8FAUL6TZD6BGFxLzuBDRJBH74jdVQEOye45/Wc+ox26tvwsEvHzi7b2VYH2drl/dTvpriXz9UZWKsCY79ChJ6CuTj2mDj00HTHEmB+zaA94Njf3D+orQdKrMvC002K9ay4Xnx4+EcaV4VRfl4OLa5WAw9BlZf+5a+YEbTp/03xNVdFsTJv2VGYdmXBuM7ECNUuWd8ZNU4wPQ== 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-SenderADCheck; bh=JRTeVviotF9DqjSX1WR6bdy+8wqlXQ7KulIlYleNMNM=; b=dCeCkof5zrNqOuYYRueO/fXcEotbPd4mh3eo8U7mhj7go7kkgn6j2EPZrb+hv1s0xup9Aa8LpcKX0Dv8bS8FBu47vzaKBU7oacUVCYCNhGpLe0xsRpFnWGmIxn/x+AenhCQB/li0IZuyDRi8yRHKoiWvA1BBEPDWc9D+L/XHrw521fOxYYAOY+EDV8Gcua53IoHZyPS5sXzj7bIZHzz+gmownnGZyncAnSmzwa4j6DnNn16obZ5JEuL/+KCaQddaS2de9JR9QzoPM/dX7RyUq9LVXl08YaKgHc0nD6bz1MQPBqUE29zw1AdjAil6MbT+7oHRg3p9YD21UI34Vewb9A== 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 Received: from AM6PR08MB3957.eurprd08.prod.outlook.com (2603:10a6:20b:a2::14) by AS8PR08MB6071.eurprd08.prod.outlook.com (2603:10a6:20b:29f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17; Tue, 1 Dec 2020 17:38:33 +0000 Received: from AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::9017:352a:257e:814a]) by AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::9017:352a:257e:814a%6]) with mapi id 15.20.3611.031; Tue, 1 Dec 2020 17:38:33 +0000 To: Luis Machado Subject: Re: [PATCH][AArch64] SVE/FPSIMD fixup for big endian Thread-Topic: [PATCH][AArch64] SVE/FPSIMD fixup for big endian Thread-Index: AQHWx0qHDTaVZK2q80W4zXDvy392N6niG3qAgAAOPwCAAFlGgA== Date: Tue, 1 Dec 2020 17:38:33 +0000 Message-ID: References: <20201130185545.940242-1-luis.machado@linaro.org> <791ee593-8d5b-2eec-17c8-fa34a3809d12@linaro.org> In-Reply-To: <791ee593-8d5b-2eec-17c8-fa34a3809d12@linaro.org> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.4) Authentication-Results-Original: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.190.193] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b67116ba-0a30-46ec-cbd5-08d8961ff80c x-ms-traffictypediagnostic: AS8PR08MB6071:|DB7PR08MB3916: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: xMARSp3zobf/mcT2fy7GWbTo6MYhWh1BD7YYpW26kTWMxurC0cZ31KjwNrUAbnpzNhW2fDs5Tjga/wAEVUDnKX/jgdo9wZHO3JmxjVy21HjrN+zQKAFPLNDWySHAGm23AKUoDQ+jHILrlqzOUiPaBVHoOMP6ymJQsTeVlpjFeLTRSkhThfVtb86TrxHUJMIj79BEwbwqfNmJTsRKC65TatT3iyZ8HnDaRG8Rd6MhZHlmDvl6LqQnrNwukpyNjni8EPoc4JDskEAsPCRtAR+FuKyGOzAvpbQpNJlJ3/5HJm2G4KsgE3rdwq5/bKF6aqQ+ X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB3957.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(346002)(396003)(376002)(39860400002)(136003)(186003)(4326008)(86362001)(36756003)(91956017)(66476007)(66946007)(76116006)(478600001)(71200400001)(83380400001)(66446008)(64756008)(66556008)(33656002)(6486002)(26005)(8676002)(5660300002)(8936002)(54906003)(30864003)(2616005)(6512007)(316002)(2906002)(6916009)(53546011)(6506007)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?dTMzMlJ2NHM2V1AraDN4dDVpT3lEWElSblZ5bkJQN0YxblNWdFdHeXc0ejNC?= =?utf-8?B?dG1QazNPa2VRdzBXQ1lsT0V3cFpReTNITzFnWWRhNG5HVVpwYVBQdkdxMUcz?= =?utf-8?B?L3J2K3pGU1VpclFKM0xDMmdFbVRqZ0pDM3JzWXRORllsS2kxTVg2MUlQVzlw?= =?utf-8?B?a1NITmU4WjVDaVUrUlhlMXdHWWgxUi81VEpNZUlhbjd2UW1IV3RQeVZuVE41?= =?utf-8?B?NWhDY0tYL0ZkdmhSZ2ZWa2xVMUxodWIxTnQ2ZHFSc1dVUnRsOG9wYUFGdjAy?= =?utf-8?B?RmREdXYwTmVxcytQSEVDczFwSWtMamVCK0ErdVExaU94ZU4rNjdRT2pYMUI1?= =?utf-8?B?TGNoY1o4Rk9ONUc3OWswdjVOcGw0Z0ZQZm5BRVBKUlNMTlcwLzVZUDRNTWIz?= =?utf-8?B?a2V1TE4zQXZud0IzSGdLK1gwMCtBZE44ZWJJazUzcDhGUmNTWnQ4TU9ucXBW?= =?utf-8?B?TjhUazhnOWxYeFhYZk40b2hULzd4NUc2MEtuVzdTc291NHIxSjhrZWRmQXBM?= =?utf-8?B?Q3VuQ3lET2JKTFBIbzRwUDgzdUUyNHNqMFFISm9ETFlyNWhGazBvNDJZY3pE?= =?utf-8?B?OTFLUmhCTldqSWczaUpUL1NueS84dFptdndOcHZ3c0pyZ2hZUTF6RHJJQnZQ?= =?utf-8?B?T3RMRGRnK1FMZzlyYnJOT2ZzbTVFNDRQWVZoU282eEsyNklTbjBLRW1YUFNM?= =?utf-8?B?MFZRSm9wWXg5U3NzUWF0Rk1Vdng3a3ZBNHg2TWxid3AzNGtoYVFPZDVKZzFm?= =?utf-8?B?ZnhVdmdJQzdjT3dEaEY5N3haVXdDWXRJR3RnQ3FNU2w0V0pndWxCaDFkSjEz?= =?utf-8?B?Q0MzZWJZTFhUUXZleHFQWkFrR2RtWTM0eXpRQlVjTHh6RHc0WEhuMUU1WHdU?= =?utf-8?B?SG1rTTliaml5MlBsSHJ4WnhzWEJDYkpiSllON05yRlFONFdjVU5GY3VUckRJ?= =?utf-8?B?R0wzTzFSbURYT2lQME1zMU0wVFY4SnU5Zko5WWZuWXBkN21ubjhReVdlUklj?= =?utf-8?B?NjBaRVFUSnMzMkpVUDJEU2V2RWIrY2xqUmQ2bEZTSFJlZEZoTEVGVjJ5RXI1?= =?utf-8?B?V0QyQ1lhblkyMnBlVFhLMit6YUFadjE2M0t1R2VwaWZ2WVRCOFZVL2RaT2JV?= =?utf-8?B?andMeDlCUWRwT0gwSi9pSVFRNTMvTFZrdEpUZUM0MWpJdUVIVVJUM2ZURnZH?= =?utf-8?B?bWdqWldSU0FCb3NGeHVUWjlCVlM4MnVnOXFWckg1TUxVYnUvN2RNL1QxOUI1?= =?utf-8?B?K0FjdytYbktZNXBlbHc5V0pGQ0dUZHVwRnpTb1ZNVzM2R2VwRDNWNU1FeVMz?= =?utf-8?Q?Y0nJDWlw95zvvzj5NMeYkyelI9fvD7S4nN?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <60E0068762088345B3E501AC978C0517@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6071 Original-Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 17a42333-ca6c-4dbd-cfc9-08d8961fed0b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ijb8G6dY3HVTyP9mEj0EsQ9PVXQ4khZNAYT+98j6gGOcgWaqXoqhc4wDrRX2qX81ATdlDuWuCV5d01i2Qh5mkaglzbYob4p/ltzAgI5OKjDQm2qTRcqOrf3vXZhboUUq52RiimSn76ePmc61HsXTavuCVPZj4xkRCYcLUmW8+Qxrm/HUHSuwyAcxdpBms2MxQOz+asWONf/HHxKCUXD4faiG9on+Kqw+dC0IWxGjNHwDuh944PCCy/wZHg/GnAOxkH4xWmZ+DaI3xtrgBjg9w9ElNY2a0W8lut5Jn0NuYs7Ai6XCsQU1kve5lFkbVBRBOb3g2Tbw7D6YMII6xM3plM/0zq9H2Km1d9xFmwjkF8XTJuNKvq1R+uFjf45nG31eI8wTDmxAxH/gsxVWMhq/0g== 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:(4636009)(136003)(346002)(376002)(396003)(39860400002)(46966005)(6506007)(186003)(26005)(83380400001)(47076004)(478600001)(6486002)(33656002)(54906003)(86362001)(316002)(36906005)(8936002)(36756003)(336012)(53546011)(82310400003)(8676002)(6862004)(6512007)(30864003)(5660300002)(70206006)(356005)(81166007)(70586007)(2616005)(4326008)(82740400003)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2020 17:38:52.1916 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b67116ba-0a30-46ec-cbd5-08d8961ff80c 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: AM5EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3916 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Alan Hayward via Gdb-patches Reply-To: Alan Hayward Cc: nd , "gdb-patches\\@sourceware.org" Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" DQoNCj4gT24gMSBEZWMgMjAyMCwgYXQgMTI6MTksIEx1aXMgTWFjaGFkbyA8bHVpcy5tYWNoYWRv QGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGksDQo+IA0KPiBUaGFua3MgZm9yIHRoZSByZXZp ZXcuDQo+IA0KPiBPbiAxMi8xLzIwIDg6MjggQU0sIEFsYW4gSGF5d2FyZCB3cm90ZToNCj4+PiBP biAzMCBOb3YgMjAyMCwgYXQgMTg6NTUsIEx1aXMgTWFjaGFkbyA8bHVpcy5tYWNoYWRvQGxpbmFy by5vcmc+IHdyb3RlOg0KPj4+IA0KPj4+IFRoZSBGUFNJTUQgZHVtcCBpbiBzaWduYWwgZnJhbWVz IGFuZCBwdHJhY2UgRlBTSU1EIGR1bXAgaW4gdGhlIFNWRSBjb250ZXh0DQo+Pj4gc3RydWN0dXJl IGZvbGxvd3MgdGhlIHRhcmdldCBlbmRpYW5uZXNzLCB3aGVyZWFzIHRoZSBTVkUgZHVtcHMgYXJl DQo+Pj4gZW5kaWFubmVzcy1pbmRlcGVuZGVudCAoTEUpLg0KPj4+IA0KPj4+IFRoZXJlZm9yZSwg d2hlbiB0aGUgc3lzdGVtIGlzIGluIEJFIG1vZGUsIHdlIG5lZWQgdG8gcmV2ZXJzZSB0aGUgYnl0 ZXMNCj4+PiBmb3IgdGhlIEZQU0lNRCBkYXRhLg0KPj4+IA0KPj4+IEdpdmVuIHRoZSBWIHJlZ2lz dGVycyBhcmUgbGFyZ2VyIHRoYW4gNjQtYml0LCBJJ3ZlIGFkZGVkIGEgd2F5IGZvciB2YWx1ZQ0K Pj4+IGJ5dGVzIHRvIGJlIHNldCwgYXMgb3Bwb3NlZCB0byBwYXNzaW5nIGEgNjQtYml0IGZpeGVk IHF1YW50aXR5LiBUaGlzIGZpdHMNCj4+PiBuaWNlbHkgd2l0aCB0aGUgdW53aW5kaW5nICpfZ290 X2J5dGVzIGZ1bmN0aW9uIGFuZCBtYWtlcyB0aGUgdHJhZC1mcmFtZQ0KPj4+IG1vcmUgZmxleGli bGUgYW5kIGNhcGFibGUgb2Ygc2F2aW5nIGxhcmdlciByZWdpc3RlcnMuDQo+Pj4gDQo+Pj4gVGhl IG1lbW9yeSBmb3IgdGhlIGJ5dGVzIGlzIGFsbG9jYXRlZCB2aWEgdGhlIGZyYW1lIG9ic3RhY2ss IHNvIGl0IGdldHMgZnJlZWQNCj4+PiBhZnRlciB3ZSdyZSBkb25lIGluc3BlY3RpbmcgdGhlIGZy YW1lLg0KPj4+IA0KPj4+IGdkYi9DaGFuZ2VMb2c6DQo+Pj4gDQo+Pj4gWVlZWS1NTS1ERCAgTHVp cyBNYWNoYWRvICA8bHVpcy5tYWNoYWRvQGxpbmFyby5vcmc+DQo+Pj4gDQo+Pj4gCSogYWFyY2g2 NC1saW51eC10ZGVwLmMgKGFhcmNoNjRfbGludXhfcmVzdG9yZV92cmVnKSBOZXcgZnVuY3Rpb24u DQo+Pj4gCShhYXJjaDY0X2xpbnV4X3NpZ2ZyYW1lX2luaXQpOiBDYWxsIGFhcmNoNjRfbGludXhf cmVzdG9yZV92cmVnLg0KPj4+IAkqIG5hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2UuYzogSW5j bHVkZSBlbmRpYW4uaC4NCj4+PiAJKGFhcmNoNjRfbWF5YmVfc3dhYjEyOCk6IE5ldyBmdW5jdGlv bi4NCj4+PiAJKGFhcmNoNjRfc3ZlX3JlZ3NfY29weV90b19yZWdfYnVmKQ0KPj4+IAkoYWFyY2g2 NF9zdmVfcmVnc19jb3B5X2Zyb21fcmVnX2J1Zik6IEFkanVzdCBGUFNJTUQgZW50cmllcy4NCj4+ PiAJKiB0cmFkLWZyYW1lLmMgKHRyYWRfZnJhbWVfcmVzZXRfc2F2ZWRfcmVncyk6IEluaXRpYWxp emUNCj4+PiAJdGhlIGRhdGEgZmllbGQuDQo+Pj4gCShURl9SRUdfVkFMVUVfQllURVMpOiBOZXcg ZW51bSB2YWx1ZS4NCj4+PiAJKHRyYWRfZnJhbWVfdmFsdWVfYnl0ZXNfcCk6IE5ldyBmdW5jdGlv bi4NCj4+PiAJKHRyYWRfZnJhbWVfc2V0X3ZhbHVlX2J5dGVzKTogTmV3IGZ1bmN0aW9uLg0KPj4+ IAkodHJhZF9mcmFtZV9zZXRfcmVnX3ZhbHVlX2J5dGVzKTogTmV3IGZ1bmN0aW9uLg0KPj4+IAko dHJhZF9mcmFtZV9nZXRfcHJldl9yZWdpc3Rlcik6IEhhbmRsZSByZWdpc3RlciB2YWx1ZXMgc2F2 ZWQgYXMgYnl0ZXMuDQo+Pj4gCSogdHJhZC1mcmFtZS5oICh0cmFkX2ZyYW1lX3NldF9yZWdfdmFs dWVfYnl0ZXMpOiBOZXcgcHJvdG90eXBlLg0KPj4+IAkoc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRf cmVnKSA8ZGF0YT46IE5ldyBmaWVsZC4NCj4+PiAJKHRyYWRfZnJhbWVfc2V0X3ZhbHVlX2J5dGVz KTogTmV3IHByb3RvdHlwZS4NCj4+PiAJKHRyYWRfZnJhbWVfdmFsdWVfYnl0ZXNfcCk6IE5ldyBw cm90b3R5cGUuDQo+Pj4gLS0tDQo+Pj4gZ2RiL2FhcmNoNjQtbGludXgtdGRlcC5jICAgICAgICAg ICB8IDExNSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPj4+IGdkYi9uYXQvYWFyY2g2 NC1zdmUtbGludXgtcHRyYWNlLmMgfCAgNTcgKysrKysrKysrKysrKy0NCj4+PiBnZGIvdHJhZC1m cmFtZS5jICAgICAgICAgICAgICAgICAgIHwgIDQ2ICsrKysrKysrKysrLQ0KPj4+IGdkYi90cmFk LWZyYW1lLmggICAgICAgICAgICAgICAgICAgfCAgMTkgKysrKysNCj4+PiA0IGZpbGVzIGNoYW5n ZWQsIDIxMyBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkNCj4+PiANCj4+PiBkaWZmIC0t Z2l0IGEvZ2RiL2FhcmNoNjQtbGludXgtdGRlcC5jIGIvZ2RiL2FhcmNoNjQtbGludXgtdGRlcC5j DQo+Pj4gaW5kZXggYzk4OThiZGFmZC4uMTA4Zjk2YmU3MSAxMDA2NDQNCj4+PiAtLS0gYS9nZGIv YWFyY2g2NC1saW51eC10ZGVwLmMNCj4+PiArKysgYi9nZGIvYWFyY2g2NC1saW51eC10ZGVwLmMN Cj4+PiBAQCAtMTgwLDYgKzE4MCw5NCBAQCByZWFkX2FhcmNoNjRfY3R4IChDT1JFX0FERFIgY3R4 X2FkZHIsIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyLA0KPj4+ICAgcmV0dXJuIG1hZ2ljOw0K Pj4+IH0NCj4+PiANCj4+PiArLyogR2l2ZW4gQ0FDSEUsIHVzZSB0aGUgdHJhZF9mcmFtZSogZnVu Y3Rpb25zIHRvIHJlc3RvcmUgdGhlIEZQU0lNRA0KPj4+ICsgICByZWdpc3RlcnMgZnJvbSBhIHNp Z25hbCBmcmFtZS4NCj4+PiArDQo+Pj4gKyAgIFZSRUdfTlVNIGlzIHRoZSBudW1iZXIgb2YgdGhl IFYgcmVnaXN0ZXIgYmVpbmcgcmVzdG9yZWQsIE9GRlNFVCBpcyB0aGUNCj4+PiArICAgYWRkcmVz cyBjb250YWluaW5nIHRoZSByZWdpc3RlciB2YWx1ZSwgQllURV9PUkRFUiBpcyB0aGUgZW5kaWFu bmVzcyBhbmQNCj4+PiArICAgSEFTX1NWRSB0ZWxscyB1cyBpZiB3ZSBoYXZlIGEgdmFsaWQgU1ZF IGNvbnRleHQgb3Igbm90LiAgKi8NCj4+PiArDQo+Pj4gK3N0YXRpYyB2b2lkDQo+Pj4gK2FhcmNo NjRfbGludXhfcmVzdG9yZV92cmVnIChzdHJ1Y3QgdHJhZF9mcmFtZV9jYWNoZSAqY2FjaGUsIGlu dCBudW1fcmVncywNCj4+PiArCQkJICAgIGludCB2cmVnX251bSwgQ09SRV9BRERSIG9mZnNldCwN Cj4+PiArCQkJICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyLCBib29sIGhhc19zdmUpDQo+ Pj4gK3sNCj4+PiArICAvKiBXQVJOSU5HOiBTSU1EIHN0YXRlIGlzIGxhaWQgb3V0IGluIG1lbW9y eSBpbiB0YXJnZXQtZW5kaWFuIGZvcm1hdCwgd2hpbGUNCj4+PiArICAgICBTVkUgc3RhdGUgaXMg bGFpZCBvdXQgaW4gYW4gZW5kaWFubmVzcy1pbmRlcGVuZGVudCBmb3JtYXQgKExFKS4NCj4+PiAr DQo+Pj4gKyAgICAgU28gd2UgaGF2ZSBhIGNvdXBsZSBjYXNlcyB0byBjb25zaWRlcjoNCj4+PiAr DQo+Pj4gKyAgICAgMSAtIElmIHRoZSB0YXJnZXQgaXMgYmlnIGVuZGlhbiwgdGhlbiBTSU1EIHN0 YXRlIGlzIGJpZyBlbmRpYW4sDQo+Pj4gKyAgICAgcmVxdWlyaW5nIGEgYnl0ZXN3YXAuDQo+Pj4g Kw0KPj4+ICsgICAgIDIgLSBJZiB0aGUgdGFyZ2V0IGlzIGxpdHRsZSBlbmRpYW4sIHRoZW4gU0lN RCBzdGF0ZSBpcyBsaXR0bGUgZW5kaWFuLA0KPj4+ICsgICAgIHdoaWNoIG1hdGNoZXMgdGhlIFNW RSBmb3JtYXQsIHNvIG5vIGJ5dGVzd2FwIGlzIG5lZWRlZC4gKi8NCj4+PiArDQo+PiBXaXRoIHRo aXMgZnVuY3Rpb24sIHdlIGFyZSBvbmx5IGhhbmRsaW5nIEZQU0lNRCB2YWx1ZXMsIHNvIG5vIG5l ZWQgdG8gbWVudGlvbiBTVkUuDQo+PiBBcyBpdCBpcyBub3csIGl0IG1ha2VzIHRoZSBoYXNfc3Zl IHBhcnRzIGNvbmZ1c2luZyBiZWNhdXNlIHRoZXkgYXJlIGJlaW5nIHRyZWF0ZWQNCj4+IHRoZSBz YW1lIGFzIHRoZSByZXN0IG9mIHRoZSBmcHNpbWQuDQo+IA0KPiBUaG91Z2ggd2UgYXJlIGhhbmRs aW5nIEZQU0lNRCwgd2Ugc3RpbGwgbmVlZCB0byBzZXQgYXQgbGVhc3Qgb25lIFNWRSBwc2V1ZG8t cmVnaXN0ZXIgKEFBUkNINjRfU1ZFX1YwX1JFR05VTSksIGhlbmNlIHdoeSBJIGRlY2lkZWQgdG8g a2VlcCB0aGUgd2FybmluZy4gSXQgaXMgbm90IHJlYWxseSBhIFNWRSByZWdpc3RlciwgYnV0IGEg cHNldWRvLXJlZ2lzdGVyIG9mIHRoZSBGUFNJTUQgViByZWdpc3Rlci4NCj4gDQo+IERvIHlvdSBz dGlsbCB3YW50IHRvIHJlbW92ZSB0aGUgU1ZFIHJlZmVyZW5jZXMgaW4gdGhlIHdhcm5pbmc/DQoN CkZvciB0aGlzIGZ1bmN0aW9uLCBJIHdvdWxkIHNheSByZW1vdmUgdGhlIFNWRSBjb21tZW50LCBh cyBldmVyeXRoaW5nIGluIHRoZSBmdW5jdGlvbg0KaXMgYmVpbmcgdHJlYXRlZCBpbiB0aGUgc2Ft ZSB3YXkuIEJ1dCBJ4oCZbSBub3Qgb3Zlcmx5IGh1bmcgdXAgb24gaXQuDQoNCj4gDQo+IFdoYXQg aXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBBQVJDSDY0X1NWRV9WMF9SRUdOVU0gYW5kIEFBUkNI NjRfVjBfUkVHTlVNPw0KDQpaLFYsUSxELFMsSCxCIHJlZ2lzdGVycyBhbGwgb3ZlcmxhcCB3aXRo IGVhY2ggb3RoZXIuIEl04oCZcyB0aGUgc2FtZSByZWdpc3RlciwNCmp1c3QgYSBkaWZmZXJlbnQg c2l6ZS4NCkluIHRoZSB0ZGVwLCB3aGVuIHdlIG9ubHkgaGF2ZSBuZW9uLCBWIGlzIHRoZSByZWFs IHJlZ2lzdGVyLCBhbmQgUSxELFMsSCxCIGFyZSBwc2V1ZG9zLg0KVGhlbiB3aGVuIHdlIGhhdmUg c3ZlLCBaIGlzIHRoZSByZWFsIHJlZ2lzdGVyLCBhbmQgVixRLEQsUyxILEIgYXJlIHBzZXVkb3Mu DQoNCkFBUkNINjRfU1ZFX1owX1JFR05VTSA9PSBBQVJDSDY0X1YwX1JFR05VTS4NCg0KQW5kIHRo ZW4gQUFSQ0g2NF9TVkVfVjBfUkVHTlVNIHJlcHJlc2VudHMgdGhlIHJlZ251bSBvZiB0aGUgVjAg cHNldWRvIHJlZ2lzdGVyDQp3aGVuIFNWRSBpcyBlbmFibGVkLg0KDQpBUkNINjRfU1ZFX1YwX1JF R05VTSA9PSBBQVJDSDY0X0IwX1JFR05VTSArIDMyDQoNCk1heWJlIGV2ZW50dWFsbHkgdGhpcyBz aG91bGQgYmUgdXBkYXRlZCB0byBiZSBzaW1pbGFyIHRvIHBhdXRoLiBIYXZlIGEgc2luZ2xlIGRl ZmluZQ0Kd2hpY2ggcmVxdWlyZXMgYSB2MF9yZWdfYmFzZSB2YWx1ZSBpbiB0aGUgdGRlcC4NCg0K DQo+IA0KPj4gVGhlIHNhbWUgY29tbWVudCBpcyBmaW5lIHdoZW4gdXNlZCBlbHNld2hlcmUgaW4g dGhlIHBhdGNoLg0KPj4+ICsgIGlmIChieXRlX29yZGVyID09IEJGRF9FTkRJQU5fQklHKQ0KPj4+ ICsgICAgew0KPj4+ICsgICAgICBnZGJfYnl0ZSBidWZbVl9SRUdJU1RFUl9TSVpFXTsNCj4+PiAr DQo+Pj4gKyAgICAgIGlmICh0YXJnZXRfcmVhZF9tZW1vcnkgKG9mZnNldCwgYnVmLCBWX1JFR0lT VEVSX1NJWkUpICE9IDApDQo+Pj4gKwl7DQo+Pj4gKwkgIHNpemVfdCBzaXplID0gVl9SRUdJU1RF Ul9TSVpFLzI7DQo+Pj4gKw0KPj4+ICsJICAvKiBSZWFkIHRoZSB0d28gaGFsdmVzIG9mIHRoZSBW IHJlZ2lzdGVyIGluIHJldmVyc2UgYnl0ZSBvcmRlci4gICovDQo+Pj4gKwkgIENPUkVfQUREUiB1 NjQgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGJ1Ziwgc2l6ZSwNCj4+PiArCQkJCQkJICAg IGJ5dGVfb3JkZXIpOw0KPj4+ICsJICBDT1JFX0FERFIgbDY0ID0gZXh0cmFjdF91bnNpZ25lZF9p bnRlZ2VyIChidWYgKyBzaXplLCBzaXplLA0KPj4+ICsJCQkJCQkgICAgYnl0ZV9vcmRlcik7DQo+ Pj4gKw0KPj4+ICsJICAvKiBDb3B5IHRoZSByZXZlcnNlZCBieXRlcyB0byB0aGUgYnVmZmVyLiAg Ki8NCj4+PiArCSAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnVmLCBzaXplLCBCRkRfRU5ESUFO X0xJVFRMRSwgbDY0KTsNCj4+PiArCSAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnVmICsgc2l6 ZSAsIHNpemUsIEJGRF9FTkRJQU5fTElUVExFLCB1NjQpOw0KPj4+ICsNCj4+PiArCSAgLyogTm93 IHdlIGNhbiBzdG9yZSB0aGUgY29ycmVjdCBieXRlcyBmb3IgdGhlIFYgcmVnaXN0ZXIuICAqLw0K Pj4+ICsJICB0cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVfYnl0ZXMgKGNhY2hlLCBBQVJDSDY0X1Yw X1JFR05VTSArIHZyZWdfbnVtLA0KPj4+ICsJCQkJCSAgYnVmLCBWX1JFR0lTVEVSX1NJWkUpOw0K Pj4+ICsJICB0cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVfYnl0ZXMgKGNhY2hlLA0KPj4+ICsJCQkJ CSAgbnVtX3JlZ3MgKyBBQVJDSDY0X1EwX1JFR05VTQ0KPj4+ICsJCQkJCSAgKyB2cmVnX251bSwg YnVmLCBRX1JFR0lTVEVSX1NJWkUpOw0KPj4+ICsJICB0cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVf Ynl0ZXMgKGNhY2hlLA0KPj4+ICsJCQkJCSAgbnVtX3JlZ3MgKyBBQVJDSDY0X0QwX1JFR05VTQ0K Pj4+ICsJCQkJCSAgKyB2cmVnX251bSwgYnVmLCBEX1JFR0lTVEVSX1NJWkUpOw0KPj4+ICsJICB0 cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVfYnl0ZXMgKGNhY2hlLA0KPj4+ICsJCQkJCSAgbnVtX3Jl Z3MgKyBBQVJDSDY0X1MwX1JFR05VTQ0KPj4+ICsJCQkJCSAgKyB2cmVnX251bSwgYnVmLCBTX1JF R0lTVEVSX1NJWkUpOw0KPj4+ICsJICB0cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVfYnl0ZXMgKGNh Y2hlLA0KPj4+ICsJCQkJCSAgbnVtX3JlZ3MgKyBBQVJDSDY0X0gwX1JFR05VTQ0KPj4+ICsJCQkJ CSAgKyB2cmVnX251bSwgYnVmLCBIX1JFR0lTVEVSX1NJWkUpOw0KPj4+ICsJICB0cmFkX2ZyYW1l X3NldF9yZWdfdmFsdWVfYnl0ZXMgKGNhY2hlLA0KPj4+ICsJCQkJCSAgbnVtX3JlZ3MgKyBBQVJD SDY0X0IwX1JFR05VTQ0KPj4+ICsJCQkJCSAgKyB2cmVnX251bSwgYnVmLCBCX1JFR0lTVEVSX1NJ WkUpOw0KPj4+ICsNCj4+PiArCSAgaWYgKGhhc19zdmUpDQo+Pj4gKwkgICAgdHJhZF9mcmFtZV9z ZXRfcmVnX3ZhbHVlX2J5dGVzIChjYWNoZSwNCj4+PiArCQkJCQkgICAgbnVtX3JlZ3MgKyBBQVJD SDY0X1NWRV9WMF9SRUdOVU0NCj4+PiArCQkJCQkgICAgKyB2cmVnX251bSwgYnVmLCBWX1JFR0lT VEVSX1NJWkUpOw0KPj4+ICsJfQ0KPj4+ICsgICAgICByZXR1cm47DQo+Pj4gKyAgICB9DQo+Pj4g Kw0KPj4+ICsgIC8qIExpdHRsZSBlbmRpYW4sIGp1c3QgcG9pbnQgYXQgdGhlIGFkZHJlc3MgY29u dGFpbmluZyB0aGUgcmVnaXN0ZXINCj4+PiArICAgICB2YWx1ZS4gICovDQo+Pj4gKyAgdHJhZF9m cmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBBQVJDSDY0X1YwX1JFR05VTSArIHZyZWdfbnVtLCBv ZmZzZXQpOw0KPj4+ICsgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyIChjYWNoZSwgbnVtX3JlZ3Mg KyBBQVJDSDY0X1EwX1JFR05VTSArIHZyZWdfbnVtLA0KPj4+ICsJCQkgICBvZmZzZXQpOw0KPj4+ ICsgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyIChjYWNoZSwgbnVtX3JlZ3MgKyBBQVJDSDY0X0Qw X1JFR05VTSArIHZyZWdfbnVtLA0KPj4+ICsJCQkgICBvZmZzZXQpOw0KPj4+ICsgIHRyYWRfZnJh bWVfc2V0X3JlZ19hZGRyIChjYWNoZSwgbnVtX3JlZ3MgKyBBQVJDSDY0X1MwX1JFR05VTSArIHZy ZWdfbnVtLA0KPj4+ICsJCQkgICBvZmZzZXQpOw0KPj4+ICsgIHRyYWRfZnJhbWVfc2V0X3JlZ19h ZGRyIChjYWNoZSwgbnVtX3JlZ3MgKyBBQVJDSDY0X0gwX1JFR05VTSArIHZyZWdfbnVtLA0KPj4+ ICsJCQkgICBvZmZzZXQpOw0KPj4+ICsgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyIChjYWNoZSwg bnVtX3JlZ3MgKyBBQVJDSDY0X0IwX1JFR05VTSArIHZyZWdfbnVtLA0KPj4+ICsJCQkgICBvZmZz ZXQpOw0KPj4+ICsNCj4+PiArICBpZiAoaGFzX3N2ZSkNCj4+PiArICAgIHRyYWRfZnJhbWVfc2V0 X3JlZ19hZGRyIChjYWNoZSwgbnVtX3JlZ3MgKyBBQVJDSDY0X1NWRV9WMF9SRUdOVU0NCj4+PiAr CQkJICAgICArIHZyZWdfbnVtLCBvZmZzZXQpOw0KPj4+ICsNCj4+PiArfQ0KPj4+ICsNCj4+PiAv KiBJbXBsZW1lbnQgdGhlICJpbml0IiBtZXRob2Qgb2Ygc3RydWN0IHRyYW1wX2ZyYW1lLiAgKi8N Cj4+PiANCj4+PiBzdGF0aWMgdm9pZA0KPj4+IEBAIC0zMzIsMjcgKzQyMCwxNiBAQCBhYXJjaDY0 X2xpbnV4X3NpZ2ZyYW1lX2luaXQgKGNvbnN0IHN0cnVjdCB0cmFtcF9mcmFtZSAqc2VsZiwNCj4+ PiANCj4+PiAgICAgICAvKiBJZiB0aGVyZSB3YXMgbm8gU1ZFIHNlY3Rpb24gdGhlbiBzZXQgdXAg dGhlIFYgcmVnaXN0ZXJzLiAgKi8NCj4+PiAgICAgICBpZiAoc3ZlX3JlZ3MgPT0gMCkNCj4+PiAt CWZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykNCj4+PiAtCSAgew0KPj4+IC0JICAgIENPUkVf QUREUiBvZmZzZXQgPSAoZnBzaW1kICsgQUFSQ0g2NF9GUFNJTURfVjBfT0ZGU0VUDQo+Pj4gKwl7 DQo+Pj4gKwkgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykNCj4+PiArCSAgICB7DQo+Pj4g KwkgICAgICBDT1JFX0FERFIgb2Zmc2V0ID0gKGZwc2ltZCArIEFBUkNINjRfRlBTSU1EX1YwX09G RlNFVA0KPj4+IAkJCQkgICsgKGkgKiBBQVJDSDY0X0ZQU0lNRF9WUkVHX1NJWkUpKTsNCj4+PiAN Cj4+PiAtCSAgICB0cmFkX2ZyYW1lX3NldF9yZWdfYWRkciAodGhpc19jYWNoZSwgQUFSQ0g2NF9W MF9SRUdOVU0gKyBpLCBvZmZzZXQpOw0KPj4+IC0JICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRy ICh0aGlzX2NhY2hlLA0KPj4+IC0JCQkJICAgICBudW1fcmVncyArIEFBUkNINjRfUTBfUkVHTlVN ICsgaSwgb2Zmc2V0KTsNCj4+PiAtCSAgICB0cmFkX2ZyYW1lX3NldF9yZWdfYWRkciAodGhpc19j YWNoZSwNCj4+PiAtCQkJCSAgICAgbnVtX3JlZ3MgKyBBQVJDSDY0X0QwX1JFR05VTSArIGksIG9m ZnNldCk7DQo+Pj4gLQkgICAgdHJhZF9mcmFtZV9zZXRfcmVnX2FkZHIgKHRoaXNfY2FjaGUsDQo+ Pj4gLQkJCQkgICAgIG51bV9yZWdzICsgQUFSQ0g2NF9TMF9SRUdOVU0gKyBpLCBvZmZzZXQpOw0K Pj4+IC0JICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hlLA0KPj4+IC0JCQkJ ICAgICBudW1fcmVncyArIEFBUkNINjRfSDBfUkVHTlVNICsgaSwgb2Zmc2V0KTsNCj4+PiAtCSAg ICB0cmFkX2ZyYW1lX3NldF9yZWdfYWRkciAodGhpc19jYWNoZSwNCj4+PiAtCQkJCSAgICAgbnVt X3JlZ3MgKyBBQVJDSDY0X0IwX1JFR05VTSArIGksIG9mZnNldCk7DQo+Pj4gLQkgICAgaWYgKHRk ZXAtPmhhc19zdmUgKCkpDQo+Pj4gLQkgICAgICB0cmFkX2ZyYW1lX3NldF9yZWdfYWRkciAodGhp c19jYWNoZSwNCj4+PiAtCQkJCSAgICAgICBudW1fcmVncyArIEFBUkNINjRfU1ZFX1YwX1JFR05V TSArIGksDQo+Pj4gLQkJCQkgICAgICAgb2Zmc2V0KTsNCj4+PiAtCSAgfQ0KPj4+ICsJICAgICAg YWFyY2g2NF9saW51eF9yZXN0b3JlX3ZyZWcgKHRoaXNfY2FjaGUsIG51bV9yZWdzLCBpLCBvZmZz ZXQsDQo+Pj4gKwkJCQkJICBieXRlX29yZGVyLCB0ZGVwLT5oYXNfc3ZlICgpKTsNCj4+PiArCSAg ICB9DQo+Pj4gKwl9DQo+Pj4gICAgIH0NCj4+PiANCj4+PiAgIHRyYWRfZnJhbWVfc2V0X2lkICh0 aGlzX2NhY2hlLCBmcmFtZV9pZF9idWlsZCAoc3AsIGZ1bmMpKTsNCj4+PiBkaWZmIC0tZ2l0IGEv Z2RiL25hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2UuYyBiL2dkYi9uYXQvYWFyY2g2NC1zdmUt bGludXgtcHRyYWNlLmMNCj4+PiBpbmRleCAyY2U5MGNjZmQ3Li45ZWY1ZTkxODAxIDEwMDY0NA0K Pj4+IC0tLSBhL2dkYi9uYXQvYWFyY2g2NC1zdmUtbGludXgtcHRyYWNlLmMNCj4+PiArKysgYi9n ZGIvbmF0L2FhcmNoNjQtc3ZlLWxpbnV4LXB0cmFjZS5jDQo+Pj4gQEAgLTI2LDYgKzI2LDcgQEAN Cj4+PiAjaW5jbHVkZSAiYXJjaC9hYXJjaDY0LmgiDQo+Pj4gI2luY2x1ZGUgImdkYnN1cHBvcnQv Y29tbW9uLXJlZ2NhY2hlLmgiDQo+Pj4gI2luY2x1ZGUgImdkYnN1cHBvcnQvYnl0ZS12ZWN0b3Iu aCINCj4+PiArI2luY2x1ZGUgPGVuZGlhbi5oPg0KPj4+IA0KPj4+IC8qIFNlZSBuYXQvYWFyY2g2 NC1zdmUtbGludXgtcHRyYWNlLmguICAqLw0KPj4+IA0KPj4+IEBAIC0xNDIsNiArMTQzLDI3IEBA IGFhcmNoNjRfc3ZlX2dldF9zdmVyZWdzIChpbnQgdGlkKQ0KPj4+ICAgcmV0dXJuIGJ1ZjsNCj4+ PiB9DQo+Pj4gDQo+Pj4gKy8qIElmIHdlIGFyZSBydW5uaW5nIGluIEJFIG1vZGUsIGNvbnZlcnQg dGhlIGNvbnRlbnRzDQo+Pj4gKyAgIG9mIFZBTFVFIChhIDE2IGJ5dGUgYnVmZmVyKSB0byBMRS4g ICovDQo+Pj4gKw0KPj4+ICtzdGF0aWMgdm9pZA0KPj4+ICthYXJjaDY0X21heWJlX3N3YWIxMjgg KGdkYl9ieXRlICp2YWx1ZSkNCj4+PiArew0KPj4+ICsgIGdkYl9hc3NlcnQgKHZhbHVlICE9IG51 bGxwdHIpOw0KPj4+ICsNCj4+PiArI2lmIChfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOKQ0K Pj4+ICsgIGdkYl9ieXRlIGNvcHlbMTZdOw0KPj4+ICsNCj4+PiArICAvKiBTYXZlIHRoZSBvcmln aW5hbCB2YWx1ZS4gICovDQo+Pj4gKyAgbWVtY3B5IChjb3B5LCB2YWx1ZSwgMTYpOw0KPj4+ICsN Cj4+PiArICBmb3IgKGludCBpID0gMDsgaSA8IDE1OyBpKyspDQo+Pj4gKyAgICB2YWx1ZVtpXSA9 IGNvcHlbMTUgLSBpXTsNCj4+PiArI2Vsc2UNCj4+PiArICAvKiBOb3RoaW5nIHRvIGJlIGRvbmUu ICAqLw0KPj4+ICsjZW5kaWYNCj4+PiArfQ0KPj4+ICsNCj4+PiAvKiBTZWUgbmF0L2FhcmNoNjQt c3ZlLWxpbnV4LXB0cmFjZS5oLiAgKi8NCj4+PiANCj4+PiB2b2lkDQo+Pj4gQEAgLTE4NCwxMSAr MjA2LDIyIEBAIGFhcmNoNjRfc3ZlX3JlZ3NfY29weV90b19yZWdfYnVmIChzdHJ1Y3QgcmVnX2J1 ZmZlcl9jb21tb24gKnJlZ19idWYsDQo+Pj4gICAgIH0NCj4+PiAgIGVsc2UNCj4+PiAgICAgew0K Pj4+ICsgICAgICAvKiBXQVJOSU5HOiBTSU1EIHN0YXRlIGlzIGxhaWQgb3V0IGluIG1lbW9yeSBp biB0YXJnZXQtZW5kaWFuIGZvcm1hdCwNCj4+PiArCSB3aGlsZSBTVkUgc3RhdGUgaXMgbGFpZCBv dXQgaW4gYW4gZW5kaWFubmVzcy1pbmRlcGVuZGVudCBmb3JtYXQgKExFKS4NCj4+PiArDQo+Pj4g KwkgU28gd2UgaGF2ZSBhIGNvdXBsZSBjYXNlcyB0byBjb25zaWRlcjoNCj4+PiArDQo+Pj4gKwkg MSAtIElmIHRoZSB0YXJnZXQgaXMgYmlnIGVuZGlhbiwgdGhlbiBTSU1EIHN0YXRlIGlzIGJpZyBl bmRpYW4sDQo+Pj4gKwkgcmVxdWlyaW5nIGEgYnl0ZXN3YXAuDQo+Pj4gKw0KPj4+ICsJIDIgLSBJ ZiB0aGUgdGFyZ2V0IGlzIGxpdHRsZSBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBsaXR0bGUg ZW5kaWFuLA0KPj4+ICsJIHdoaWNoIG1hdGNoZXMgdGhlIFNWRSBmb3JtYXQsIHNvIG5vIGJ5dGVz d2FwIGlzIG5lZWRlZC4gKi8NCj4+PiArDQo+Pj4gICAgICAgLyogVGhlcmUgaXMgbm8gU1ZFIHN0 YXRlIHlldCAtIHRoZSByZWdpc3RlciBkdW1wIGNvbnRhaW5zIGEgZnBzaW1kDQo+Pj4gCSBzdHJ1 Y3R1cmUgaW5zdGVhZC4gIFRoZXNlIHJlZ2lzdGVycyBzdGlsbCBleGlzdCBpbiB0aGUgaGFyZHdh cmUsIGJ1dA0KPj4+IAkgdGhlIGtlcm5lbCBoYXMgbm90IHlldCBpbml0aWFsaXNlZCB0aGVtLCBh bmQgc28gdGhleSB3aWxsIGJlIG51bGwuICAqLw0KPj4+IA0KPj4+IC0gICAgICBjaGFyICp6ZXJv X3JlZyA9IChjaGFyICopIGFsbG9jYSAoU1ZFX1BUX1NWRV9aUkVHX1NJWkUgKHZxKSk7DQo+Pj4g KyAgICAgIGdkYl9ieXRlICp6ZXJvX3JlZyA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKFNWRV9QVF9T VkVfWlJFR19TSVpFICh2cSkpOw0KPj4+ICAgICAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAq ZnBzaW1kDQo+Pj4gCT0gKHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqKShiYXNlICsgU1ZFX1BU X0ZQU0lNRF9PRkZTRVQpOw0KPj4+IA0KPj4+IEBAIC0xOTksNyArMjMyLDkgQEAgYWFyY2g2NF9z dmVfcmVnc19jb3B5X3RvX3JlZ19idWYgKHN0cnVjdCByZWdfYnVmZmVyX2NvbW1vbiAqcmVnX2J1 ZiwNCj4+PiANCj4+PiAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEFBUkNINjRfU1ZFX1pfUkVH U19OVU07IGkrKykNCj4+PiAJew0KPj4+IC0JICBtZW1jcHkgKHplcm9fcmVnLCAmZnBzaW1kLT52 cmVnc1tpXSwgc2l6ZW9mIChfX2ludDEyOF90KSk7DQo+Pj4gKwkgIG1lbWNweSAoemVyb19yZWcs ICZmcHNpbWQtPnZyZWdzW2ldLCAxNik7DQo+Pj4gKwkgIC8qIEhhbmRsZSBiaWcgZW5kaWFuL2xp dHRsZSBlbmRpYW4gU0lNRC9TVkUgY29udmVyc2lvbi4gICovDQo+Pj4gKwkgIGFhcmNoNjRfbWF5 YmVfc3dhYjEyOCAoemVyb19yZWcpOw0KPj4gSSB0aGluayB3ZSBoYXZlIGEgbG9uZyBzdGFuZGlu ZyBidWcgaGVyZS4gemVyb19yZWcgd2FzIG1lYW50IHRvIHN0YXkgYXMgdGhlIHZhbHVlIDAuIEJ1 dCB0aGVuDQo+PiBpdCBnb3QgcmV1c2VkIGFzIGEgZ2VuZXJhbCB0ZW1wIGJ1ZmZlci4NCj4+IEl0 4oCZcyBub3Qgc2hvd24gaW4gdGhlIGRpZmYsIGJ1dCB3ZSBkbzoNCj4+ICogbWVtc2V0IHplcm9f cmVnIHRvIDANCj4+ICogdXNlIHplcm9fcmVnIGFzIGEgdGVtcCBidWZmZXIgZm9yIGNvcHlpbmcg ZnBzaW1kIHZhbHVlcy4NCj4+ICogdXNlIHplcm9fcmVnIGFzIHZhbHVlIDAgZm9yIGZwc3IgYW5k IGZwY3IuDQo+PiBUaGUgbWVtc2V0IG5lZWRzIG1vdmluZyBhZnRlciB1c2luZyBpdCBmb3IgZnBz aW1kLiAobWF5YmUgYWxzbyByZW5hbWUgemVyb19yZWcgdG8gYnVmPykNCj4gDQo+IEknbGwgYWRk cmVzcyB0aGlzLg0KPiANCj4+IENhbiB3ZSBhbHNvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIG1lbWNw eXMgLSBqdXN0IGJ5dGUgc3dhcCB2cmVnc1tpXSBkaXJlY3RseSBpbnRvIHRoZSB6ZXJvX3JlZyBi dWZmZXI/DQo+IA0KPiBUaGUgYnl0ZSBzd2FwIGZ1bmN0aW9uIG9ubHkgc3dhcHMgdGhpbmdzIGZv ciBfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOLCB3ZSB3b3VsZCBzdGlsbCBuZWVkIHRvIG1l bWNweSB0aGUgYnl0ZXMgdG8gemVyb19yZWcuIFRoZSBudW1iZXIgb2YgbWVtY3B5J3Mgd291bGQg YmUgdGhlIHNhbWUsIG5vPw0KDQpGb3IgTEUsIHdlIHdhbnQgdG8gY29weSBpbnRvIHplcm9fcmVn IHRvIGVuc3VyZSBpdCBpcyB6ZXJvIHBhZGRlZCBhZnRlciAxMjhiaXRzLCB0aGVuIGNhbGwgcmF3 X3N1cHBseS4NClNvIHRoYXTigJlzIGFsbCBmaW5lLg0KDQpGb3IgQkUsIHdlIGNvdWxkIGp1c3Qg Ynl0ZXN3YXAgZGlyZWN0bHkgZnJvbSBmcHNpbWQtPnZyZWdzW2ldIGludG8gemVyb19yZWcgKD8p IE5vIG5lZWQgZm9yIGFueSBtZW1jcHlzLg0KDQoNCj4gDQo+Pj4gCSAgcmVnX2J1Zi0+cmF3X3N1 cHBseSAoQUFSQ0g2NF9TVkVfWjBfUkVHTlVNICsgaSwgemVyb19yZWcpOw0KPj4+IAl9DQo+Pj4g DQo+Pj4gQEAgLTI0MCw3ICsyNzUsNyBAQCBhYXJjaDY0X3N2ZV9yZWdzX2NvcHlfZnJvbV9yZWdf YnVmIChjb25zdCBzdHJ1Y3QgcmVnX2J1ZmZlcl9jb21tb24gKnJlZ19idWYsDQo+Pj4gCSBrZXJu ZWwsIHdoaWNoIGlzIHdoeSB3ZSB0cnkgdG8gYXZvaWQgaXQuICAqLw0KPj4+IA0KPj4+ICAgICAg IGJvb2wgaGFzX3N2ZV9zdGF0ZSA9IGZhbHNlOw0KPj4+IC0gICAgICBjaGFyICp6ZXJvX3JlZyA9 IChjaGFyICopIGFsbG9jYSAoU1ZFX1BUX1NWRV9aUkVHX1NJWkUgKHZxKSk7DQo+Pj4gKyAgICAg IGdkYl9ieXRlICp6ZXJvX3JlZyA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKFNWRV9QVF9TVkVfWlJF R19TSVpFICh2cSkpOw0KPj4+ICAgICAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqZnBzaW1k DQo+Pj4gCT0gKHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqKShiYXNlICsgU1ZFX1BUX0ZQU0lN RF9PRkZTRVQpOw0KPj4+IA0KPj4+IEBAIC0yNzQsNiArMzA5LDE4IEBAIGFhcmNoNjRfc3ZlX3Jl Z3NfY29weV9mcm9tX3JlZ19idWYgKGNvbnN0IHN0cnVjdCByZWdfYnVmZmVyX2NvbW1vbiAqcmVn X2J1ZiwNCj4+PiAJIHdyaXRlIG91dCBzdGF0ZSBhbmQgcmV0dXJuLiAgKi8NCj4+PiAgICAgICBp ZiAoIWhhc19zdmVfc3RhdGUpDQo+Pj4gCXsNCj4+PiArCSAgLyogV0FSTklORzogU0lNRCBzdGF0 ZSBpcyBsYWlkIG91dCBpbiBtZW1vcnkgaW4gdGFyZ2V0LWVuZGlhbiBmb3JtYXQsDQo+Pj4gKwkg ICAgIHdoaWxlIFNWRSBzdGF0ZSBpcyBsYWlkIG91dCBpbiBhbiBlbmRpYW5uZXNzLWluZGVwZW5k ZW50IGZvcm1hdA0KPj4+ICsJICAgICAoTEUpLg0KPj4+ICsNCj4+PiArCSAgICAgU28gd2UgaGF2 ZSBhIGNvdXBsZSBjYXNlcyB0byBjb25zaWRlcjoNCj4+PiArDQo+Pj4gKwkgICAgIDEgLSBJZiB0 aGUgdGFyZ2V0IGlzIGJpZyBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBiaWcgZW5kaWFuLA0K Pj4+ICsJICAgICByZXF1aXJpbmcgYSBieXRlc3dhcC4NCj4+PiArDQo+Pj4gKwkgICAgIDIgLSBJ ZiB0aGUgdGFyZ2V0IGlzIGxpdHRsZSBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBsaXR0bGUN Cj4+PiArCSAgICAgZW5kaWFuLCB3aGljaCBtYXRjaGVzIHRoZSBTVkUgZm9ybWF0LCBzbyBubyBi eXRlc3dhcCBpcyBuZWVkZWQuICovDQo+Pj4gKw0KPj4+IAkgIC8qIFRoZSBjb2xsZWN0cyBvZiB0 aGUgWiByZWdpc3RlcnMgd2lsbCBvdmVyZmxvdyB0aGUgc2l6ZSBvZiBhIHZyZWcuDQo+Pj4gCSAg ICAgVGhlcmUgaXMgZW5vdWdoIHNwYWNlIGluIHRoZSBzdHJ1Y3R1cmUgdG8gYWxsb3cgZm9yIHRo aXMsIGJ1dCB3ZQ0KPj4+IAkgICAgIGNhbm5vdCBvdmVyZmxvdyBpbnRvIHRoZSBuZXh0IHJlZ2lz dGVyIGFzIHdlIG1pZ2h0IG5vdCBiZQ0KPj4+IEBAIC0yODUsNyArMzMyLDkgQEAgYWFyY2g2NF9z dmVfcmVnc19jb3B5X2Zyb21fcmVnX2J1ZiAoY29uc3Qgc3RydWN0IHJlZ19idWZmZXJfY29tbW9u ICpyZWdfYnVmLA0KPj4+IAkJICA9PSByZWdfYnVmLT5nZXRfcmVnaXN0ZXJfc3RhdHVzIChBQVJD SDY0X1NWRV9aMF9SRUdOVU0gKyBpKSkNCj4+PiAJCXsNCj4+PiAJCSAgcmVnX2J1Zi0+cmF3X2Nv bGxlY3QgKEFBUkNINjRfU1ZFX1owX1JFR05VTSArIGksIHplcm9fcmVnKTsNCj4+PiAtCQkgIG1l bWNweSAoJmZwc2ltZC0+dnJlZ3NbaV0sIHplcm9fcmVnLCBzaXplb2YgKF9faW50MTI4X3QpKTsN Cj4+PiArCQkgIC8qIEhhbmRsZSBiaWcgZW5kaWFuL2xpdHRsZSBlbmRpYW4gU0lNRC9TVkUgY29u dmVyc2lvbi4gICovDQo+Pj4gKwkJICBhYXJjaDY0X21heWJlX3N3YWIxMjggKHplcm9fcmVnKTsN Cj4+PiArCQkgIG1lbWNweSAoJmZwc2ltZC0+dnJlZ3NbaV0sIHplcm9fcmVnLCAxNik7DQo+Pj4g CQl9DQo+Pj4gCSAgICB9DQo+Pj4gDQo+Pj4gZGlmZiAtLWdpdCBhL2dkYi90cmFkLWZyYW1lLmMg Yi9nZGIvdHJhZC1mcmFtZS5jDQo+Pj4gaW5kZXggYTZhODQ3OTBhOS4uOGExYWE4MThhZCAxMDA2 NDQNCj4+PiAtLS0gYS9nZGIvdHJhZC1mcmFtZS5jDQo+Pj4gKysrIGIvZ2RiL3RyYWQtZnJhbWUu Yw0KPj4+IEBAIC01Niw2ICs1Niw3IEBAIHRyYWRfZnJhbWVfcmVzZXRfc2F2ZWRfcmVncyAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsDQo+Pj4gICAgIHsNCj4+PiAgICAgICByZWdzW3JlZ251bV0u cmVhbHJlZyA9IHJlZ251bTsNCj4+PiAgICAgICByZWdzW3JlZ251bV0uYWRkciA9IC0xOw0KPj4+ ICsgICAgICByZWdzW3JlZ251bV0uZGF0YSA9IG51bGxwdHI7DQo+Pj4gICAgIH0NCj4+PiB9DQo+ Pj4gDQo+Pj4gQEAgLTgzLDcgKzg0LDcgQEAgdHJhZF9mcmFtZV9hbGxvY19zYXZlZF9yZWdzIChz dHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSkNCj4+PiAgIHJldHVybiB0cmFkX2ZyYW1lX2Fs bG9jX3NhdmVkX3JlZ3MgKGdkYmFyY2gpOw0KPj4+IH0NCj4+PiANCj4+PiAtZW51bSB7IFRGX1JF R19WQUxVRSA9IC0xLCBURl9SRUdfVU5LTk9XTiA9IC0yIH07DQo+Pj4gK2VudW0geyBURl9SRUdf VkFMVUUgPSAtMSwgVEZfUkVHX1VOS05PV04gPSAtMiwgVEZfUkVHX1ZBTFVFX0JZVEVTID0gLTMg fTsNCj4+PiANCj4+PiBpbnQNCj4+PiB0cmFkX2ZyYW1lX3ZhbHVlX3AgKHN0cnVjdCB0cmFkX2Zy YW1lX3NhdmVkX3JlZyB0aGlzX3NhdmVkX3JlZ3NbXSwgaW50IHJlZ251bSkNCj4+PiBAQCAtMTA2 LDYgKzEwNywxNiBAQCB0cmFkX2ZyYW1lX3JlYWxyZWdfcCAoc3RydWN0IHRyYWRfZnJhbWVfc2F2 ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+IAkgICYmIHRoaXNfc2F2ZWRfcmVnc1tyZWdu dW1dLmFkZHIgPT0gLTEpOw0KPj4+IH0NCj4+PiANCj4+PiArLyogU2VlIHRyYWQtZnJhbWUuaC4g ICovDQo+Pj4gKw0KPj4+ICtib29sDQo+Pj4gK3RyYWRfZnJhbWVfdmFsdWVfYnl0ZXNfcCAoc3Ry dWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+ICsJCQkgIGlu dCByZWdudW0pDQo+Pj4gK3sNCj4+PiArICByZXR1cm4gKHRoaXNfc2F2ZWRfcmVnc1tyZWdudW1d LnJlYWxyZWcgPT0gVEZfUkVHX1ZBTFVFX0JZVEVTDQo+Pj4gKwkgICYmIHRoaXNfc2F2ZWRfcmVn c1tyZWdudW1dLmRhdGEgIT0gbnVsbHB0cik7DQo+Pj4gK30NCj4+PiArDQo+Pj4gdm9pZA0KPj4+ IHRyYWRfZnJhbWVfc2V0X3ZhbHVlIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgdGhpc19z YXZlZF9yZWdzW10sDQo+Pj4gCQkgICAgICBpbnQgcmVnbnVtLCBMT05HRVNUIHZhbCkNCj4+PiBA QCAtMjI0LDYgKzIzNSwzNSBAQCB0cmFkX2ZyYW1lX3NldF91bmtub3duIChzdHJ1Y3QgdHJhZF9m cmFtZV9zYXZlZF9yZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+Pj4gICB0aGlzX3NhdmVkX3JlZ3Nb cmVnbnVtXS5hZGRyID0gLTE7DQo+Pj4gfQ0KPj4+IA0KPj4+ICsvKiBTZWUgdHJhZC1mcmFtZS5o LiAgKi8NCj4+PiArDQo+Pj4gK3ZvaWQNCj4+PiArdHJhZF9mcmFtZV9zZXRfdmFsdWVfYnl0ZXMg KHN0cnVjdCB0cmFkX2ZyYW1lX3NhdmVkX3JlZyB0aGlzX3NhdmVkX3JlZ3NbXSwNCj4+PiArCQkJ ICAgIGludCByZWdudW0sIGNvbnN0IGdkYl9ieXRlICpieXRlcywNCj4+PiArCQkJICAgIHNpemVf dCBzaXplKQ0KPj4+ICt7DQo+Pj4gKyAgdGhpc19zYXZlZF9yZWdzW3JlZ251bV0ucmVhbHJlZyA9 IFRGX1JFR19WQUxVRV9CWVRFUzsNCj4+PiArDQo+Pj4gKyAgLyogQWxsb2NhdGUgdGhlIHNwYWNl IGFuZCBjb3B5IHRoZSBkYXRhIGJ5dGVzLiAgKi8NCj4+PiArICB0aGlzX3NhdmVkX3JlZ3NbcmVn bnVtXS5kYXRhID0gRlJBTUVfT0JTVEFDS19DQUxMT0MgKHNpemUsIGdkYl9ieXRlKTsNCj4+IEFt IEkgcmlnaHQgdG8gYXNzdW1lIHRoaXMgbWVhbnMgZGF0YSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkg dW5hbGxvY2F0ZWQgd2hlbg0KPj4gdGhlIHRyYWRfZnJhbWVfc2F2ZWRfcmVnIGdvZXMgb3V0IG9m IHNjb3BlPw0KPiANCj4gTm90IHdoZW4gaXQgZ29lcyBvdXQgb2Ygc2NvcGUsIGJ1dCB3aGVuIGFs bCB0aGUgZnJhbWUtcmVsYXRlZCBkYXRhIGlzIGZyZWVkIGJ5IEdEQiBqdXN0IGJlZm9yZSByZXN0 YXJ0aW5nIGluZmVyaW9yIG1vdmVtZW50Lg0KDQpPay4NCg0KPiANCj4+PiArICBtZW1jcHkgKHRo aXNfc2F2ZWRfcmVnc1tyZWdudW1dLmRhdGEsIGJ5dGVzLCBzaXplKTsNCj4+PiArfQ0KPj4+ICsN Cj4+PiArLyogU2VlIHRyYWQtZnJhbWUuaC4gICovDQo+Pj4gKw0KPj4+ICt2b2lkDQo+Pj4gK3Ry YWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoc3RydWN0IHRyYWRfZnJhbWVfY2FjaGUgKnRo aXNfdHJhZF9jYWNoZSwNCj4+PiArCQkJCWludCByZWdudW0sIGNvbnN0IGdkYl9ieXRlICpieXRl cywNCj4+PiArCQkJCXNpemVfdCBzaXplKQ0KPj4+ICt7DQo+Pj4gKyAgLyogRXh0ZXJuYWwgaW50 ZXJmYWNlIGZvciB1c2VycyBvZiB0cmFkX2ZyYW1lX2NhY2hlDQo+Pj4gKyAgICAgKHdobyBjYW5u b3QgYWNjZXNzIHRoZSBwcmV2X3JlZ3Mgb2JqZWN0IGRpcmVjdGx5KS4gICovDQo+Pj4gKyAgdHJh ZF9mcmFtZV9zZXRfdmFsdWVfYnl0ZXMgKHRoaXNfdHJhZF9jYWNoZS0+cHJldl9yZWdzLCByZWdu dW0sIGJ5dGVzLA0KPj4+ICsJCQkgICAgICBzaXplKTsNCj4+PiArfQ0KPj4+ICsNCj4+PiArDQo+ Pj4gKw0KPj4+IHN0cnVjdCB2YWx1ZSAqDQo+Pj4gdHJhZF9mcmFtZV9nZXRfcHJldl9yZWdpc3Rl ciAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUsDQo+Pj4gCQkJICAgICAgc3RydWN0IHRy YWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+IEBAIC0yNDAsNiArMjgw LDEwIEBAIHRyYWRfZnJhbWVfZ2V0X3ByZXZfcmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZvICp0 aGlzX2ZyYW1lLA0KPj4+ICAgICAvKiBUaGUgcmVnaXN0ZXIncyB2YWx1ZSBpcyBhdmFpbGFibGUu ICAqLw0KPj4+ICAgICByZXR1cm4gZnJhbWVfdW53aW5kX2dvdF9jb25zdGFudCAodGhpc19mcmFt ZSwgcmVnbnVtLA0KPj4+IAkJCQkgICAgICB0aGlzX3NhdmVkX3JlZ3NbcmVnbnVtXS5hZGRyKTsN Cj4+PiArICBlbHNlIGlmICh0cmFkX2ZyYW1lX3ZhbHVlX2J5dGVzX3AgKHRoaXNfc2F2ZWRfcmVn cywgcmVnbnVtKSkNCj4+PiArICAgIC8qIFRoZSByZWdpc3RlcidzIHZhbHVlIGlzIGF2YWlsYWJs ZSBhcyBhIHNlcXVlbmNlIG9mIGJ5dGVzLiAgKi8NCj4+PiArICAgIHJldHVybiBmcmFtZV91bndp bmRfZ290X2J5dGVzICh0aGlzX2ZyYW1lLCByZWdudW0sDQo+Pj4gKwkJCQkgICB0aGlzX3NhdmVk X3JlZ3NbcmVnbnVtXS5kYXRhKTsNCj4+PiAgIGVsc2UNCj4+PiAgICAgcmV0dXJuIGZyYW1lX3Vu d2luZF9nb3Rfb3B0aW1pemVkICh0aGlzX2ZyYW1lLCByZWdudW0pOw0KPj4+IH0NCj4+PiBkaWZm IC0tZ2l0IGEvZ2RiL3RyYWQtZnJhbWUuaCBiL2dkYi90cmFkLWZyYW1lLmgNCj4+PiBpbmRleCA3 YjU3ODU2MTZlLi4zOGRiNDM5NTc5IDEwMDY0NA0KPj4+IC0tLSBhL2dkYi90cmFkLWZyYW1lLmgN Cj4+PiArKysgYi9nZGIvdHJhZC1mcmFtZS5oDQo+Pj4gQEAgLTUyLDYgKzUyLDEyIEBAIHZvaWQg dHJhZF9mcmFtZV9zZXRfcmVnX3JlZ21hcCAoc3RydWN0IHRyYWRfZnJhbWVfY2FjaGUgKnRoaXNf dHJhZF9jYWNoZSwNCj4+PiB2b2lkIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZSAoc3RydWN0IHRy YWRfZnJhbWVfY2FjaGUgKnRoaXNfY2FjaGUsDQo+Pj4gCQkJICAgICAgIGludCByZWdudW0sIExP TkdFU1QgdmFsKTsNCj4+PiANCj4+PiArLyogR2l2ZW4gdGhlIGNhY2hlIGluIFRISVNfVFJBRF9D QUNIRSwgc2V0IHRoZSB2YWx1ZSBvZiBSRUdOVU0gdG8gdGhlIGJ5dGVzDQo+Pj4gKyAgIGNvbnRh aW5lZCBpbiBCWVRFUyB3aXRoIHNpemUgU0laRS4gICovDQo+Pj4gK3ZvaWQgdHJhZF9mcmFtZV9z ZXRfcmVnX3ZhbHVlX2J5dGVzIChzdHJ1Y3QgdHJhZF9mcmFtZV9jYWNoZSAqdGhpc190cmFkX2Nh Y2hlLA0KPj4+ICsJCQkJICAgICBpbnQgcmVnbnVtLCBjb25zdCBnZGJfYnl0ZSAqYnl0ZXMsDQo+ Pj4gKwkJCQkgICAgIHNpemVfdCBzaXplKTsNCj4+PiArDQo+Pj4gc3RydWN0IHZhbHVlICp0cmFk X2ZyYW1lX2dldF9yZWdpc3RlciAoc3RydWN0IHRyYWRfZnJhbWVfY2FjaGUgKnRoaXNfdHJhZF9j YWNoZSwNCj4+PiAJCQkJICAgICAgIHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lLA0KPj4+ IAkJCQkgICAgICAgaW50IHJlZ251bSk7DQo+Pj4gQEAgLTg2LDYgKzkyLDggQEAgc3RydWN0IHRy YWRfZnJhbWVfc2F2ZWRfcmVnDQo+Pj4gew0KPj4+ICAgTE9OR0VTVCBhZGRyOyAvKiBBIENPUkVf QUREUiBmaXRzIGluIGEgbG9uZ2VzdC4gICovDQo+Pj4gICBpbnQgcmVhbHJlZzsNCj4+PiArICAv KiBSZWdpc3RlciBkYXRhIChmb3IgdmFsdWVzIHRoYXQgZG9uJ3QgZml0IGluIEFERFIpLiAgKi8N Cj4+PiArICBnZGJfYnl0ZSAqZGF0YTsNCj4+PiB9Ow0KPj4+IA0KPj4+IC8qIEVuY29kZSBSRUdO VU0gdmFsdWUgaW4gdGhlIHRyYWQtZnJhbWUuICAqLw0KPj4+IEBAIC0xMDQsNiArMTEyLDEyIEBA IHZvaWQgdHJhZF9mcmFtZV9zZXRfYWRkciAoc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRo aXNfdHJhZF9jYWNoZVtdLA0KPj4+IHZvaWQgdHJhZF9mcmFtZV9zZXRfdW5rbm93biAoc3RydWN0 IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+IAkJCSAgICAgaW50 IHJlZ251bSk7DQo+Pj4gDQo+Pj4gKy8qIEVuY29kZSBSRUdOVU0gdmFsdWUgaW4gdGhlIHRyYWQt ZnJhbWUgYXMgYSBzZXF1ZW5jZSBvZiBieXRlcy4gIFRoaXMgaXMNCj4+PiArICAgdXNlZnVsIHdo ZW4gdGhlIHZhbHVlIGlzIGxhcmdlciB0aGFuIHdoYXQgcHJpbWl0aXZlIHR5cGVzIGNhbiBob2xk LiAgKi8NCj4+PiArdm9pZCB0cmFkX2ZyYW1lX3NldF92YWx1ZV9ieXRlcyAoc3RydWN0IHRyYWRf ZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+ICsJCQkJIGludCByZWdudW0s IGNvbnN0IGdkYl9ieXRlICpieXRlcywNCj4+PiArCQkJCSBzaXplX3Qgc2l6ZSk7DQo+Pj4gKw0K Pj4+IC8qIENvbnZlbmllbmNlIGZ1bmN0aW9ucywgcmV0dXJuIG5vbi16ZXJvIGlmIHRoZSByZWdp c3RlciBoYXMgYmVlbg0KPj4+ICAgIGVuY29kZWQgYXMgc3BlY2lmaWVkLiAgKi8NCj4+PiBpbnQg dHJhZF9mcmFtZV92YWx1ZV9wIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgdGhpc19zYXZl ZF9yZWdzW10sDQo+Pj4gQEAgLTExMyw2ICsxMjcsMTEgQEAgaW50IHRyYWRfZnJhbWVfYWRkcl9w IChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+Pj4gaW50 IHRyYWRfZnJhbWVfcmVhbHJlZ19wIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgdGhpc19z YXZlZF9yZWdzW10sDQo+Pj4gCQkJICBpbnQgcmVnbnVtKTsNCj4+PiANCj4+PiArLyogUmV0dXJu IFRSVUUgaWYgUkVHTlVNIGlzIHN0b3JlZCBhcyBhIHNlcXVlbmNlIG9mIGJ5dGVzLCBhbmQgRkFM U0UNCj4+PiArICAgb3RoZXJ3aXNlLiAgKi8NCj4+PiArYm9vbCB0cmFkX2ZyYW1lX3ZhbHVlX2J5 dGVzX3AgKHN0cnVjdCB0cmFkX2ZyYW1lX3NhdmVkX3JlZyB0aGlzX3NhdmVkX3JlZ3NbXSwNCj4+ PiArCQkJICAgICAgaW50IHJlZ251bSk7DQo+Pj4gKw0KPj4+IC8qIFJlc2V0IHRoZSBzYXZlIHJl Z3MgY2FjaGUsIHNldHRpbmcgcmVnaXN0ZXIgdmFsdWVzIHRvIC0xLiAgKi8NCj4+PiB2b2lkIHRy YWRfZnJhbWVfcmVzZXRfc2F2ZWRfcmVncyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQo+Pj4g CQkJCSAgc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnICpyZWdzKTsNCj4+PiAtLSANCj4+PiAy LjI1LjENCj4+PiANCg0K