From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id Is5EOpRZx1+rYAAAWB0awg (envelope-from ) for ; Wed, 02 Dec 2020 04:08:36 -0500 Received: by simark.ca (Postfix, from userid 112) id E0F5E1F0AB; Wed, 2 Dec 2020 04:08:36 -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 A840E1E552 for ; Wed, 2 Dec 2020 04:08:33 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0C9F4385780F; Wed, 2 Dec 2020 09:08:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0C9F4385780F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1606900112; bh=SsMCYtAJdlhMr+iX94n6QUgy/+ov/M2uURzIKxdsNiQ=; 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=DUgx9LmAV7HOQFgw/rsMqMX/78I+ez9WszXs/xH2/fsLMoWu/MPko55gCR7BiS3Ga /qqAxeVcPdZq0HdU/Kc2hDDqAdihCNsISTpPQfBGqcSCZk7SEtcTenwVSpkIN5X9N9 vxr0gP7E4LBUp2aJQIHr+cXenPzOJ4MPDXeR2HFs= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2048.outbound.protection.outlook.com [40.107.21.48]) by sourceware.org (Postfix) with ESMTPS id 6F655385780F for ; Wed, 2 Dec 2020 09:08:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6F655385780F Received: from DB6P195CA0011.EURP195.PROD.OUTLOOK.COM (2603:10a6:4:cb::21) by AS8PR08MB5973.eurprd08.prod.outlook.com (2603:10a6:20b:23f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17; Wed, 2 Dec 2020 09:08:25 +0000 Received: from DB5EUR03FT021.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:cb:cafe::46) by DB6P195CA0011.outlook.office365.com (2603:10a6:4:cb::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17 via Frontend Transport; Wed, 2 Dec 2020 09:08:25 +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 DB5EUR03FT021.mail.protection.outlook.com (10.152.20.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17 via Frontend Transport; Wed, 2 Dec 2020 09:08:25 +0000 Received: ("Tessian outbound 665ba7fbdfd9:v71"); Wed, 02 Dec 2020 09:08:25 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d42be5cc85ddb4e6 X-CR-MTA-TID: 64aa7808 Received: from ae7d1f9d07a9.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 920D3E34-664B-4061-B640-8F2B0B6E869B.1; Wed, 02 Dec 2020 09:07:52 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ae7d1f9d07a9.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 02 Dec 2020 09:07:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eqfW7kiul5TpBx1Hk9UTRSd1biLxWmDu4/J4jO9UDmtysokVb+LfnOUogZftyJZlo/3DU8xVuKn7ALp7Qcb1DkYdUZ4SVoI0oznAXYI5gp/eXrpp7mWtI5uA2pDtU5kigPKCS9Bj7Ehh3J0DsJ9QGfYBf90iIuaoStUkzkLTPnyicCbGwP9vAQEhbZE8fnW8ReMcXLOw5Am4OYUpQO32UPtc/Oy97AVq5/0RgUGP3Qv1/U2Pt6g4MbCAUMJ8I+QsSjgHxGa9+yG7DBQKHqp68W1zbzBvXWEFXKwrePUx0tvapJokWasQ+7r9SlWX/yRePLDvPS1ipFsAnl/FjLvmAg== 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=SsMCYtAJdlhMr+iX94n6QUgy/+ov/M2uURzIKxdsNiQ=; b=A+L4hl+Z7Ep3tyF8uYvhcZhk0onwm6ab0QFxAaVNSWQL1W5UE+3zcRFx0J/P+tMD/j+roYK8drW5MWI/ZSQv7xlsgz/isdWjkyk4EScM473nC+FkjLnqd3ikDTHrR4H9Kez51r9231THdL1W9YIEJiTcBRfzwXDpseGbTnPjo/uvSas36P3TORkmxVd4Q0QuuzWfHpYhv37uaONR0vqj+CLdGXG2lwXIX9f6C+I8P3tL3855lfHwtbWn3WVz0omqBWnew/4GGuAEaVke37pJlPEaMPSjv70S0LCqehjKvIiPT22SvDbNBg/Y6XPwjzn90gxBW56USVAPREPpQP3NKg== 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 AM6PR08MB5207.eurprd08.prod.outlook.com (2603:10a6:20b:ea::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.31; Wed, 2 Dec 2020 09:07:50 +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; Wed, 2 Dec 2020 09:07:50 +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: AQHWx0qHDTaVZK2q80W4zXDvy392N6niG3qAgAAOPwCAAFlGgIAAETkAgADyaYA= Date: Wed, 2 Dec 2020 09:07:50 +0000 Message-ID: <5B37B258-77D9-482E-B8A8-E484CC603E16@arm.com> References: <20201130185545.940242-1-luis.machado@linaro.org> <791ee593-8d5b-2eec-17c8-fa34a3809d12@linaro.org> In-Reply-To: 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: 8c73988e-42ef-4bb3-ce86-08d896a1d359 x-ms-traffictypediagnostic: AM6PR08MB5207:|AS8PR08MB5973: 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: 7evFvA488glQ0ClPacVBiyl0+uY2P2DTGCRUtIIhnMnVIR/BzjCR6UEmnVPiAx9pzFnZG+coYiB19+mT0RLGTQQc9agzbuXrVc9Kr4bfT0u9e5NVS3ZBOXY58yIF/GXOIHHKk+j9lP8WvihuYiy17054gJDZ4RGS2ogUSjutfS5dtT4UTqvVBYtSUkam2EkGGilsNn9mqlN177pEoT4tLSMIRR5mMS+VkCJKqbSQkpjcOakvmx6HltVb7F8FngwRqqMTmBamSRzR9LkSxfAvkJrHC2xFRmp79CggZLUJxczyf+Z5NpltWubj6/953opzeUrwGiG/FymWkDiqTzlz8uKTdbARtvTEY9m84EPclFzEb6NKngheC3naFVBbbrnB 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)(376002)(346002)(39850400004)(366004)(396003)(136003)(316002)(64756008)(71200400001)(53546011)(6506007)(54906003)(478600001)(2906002)(66446008)(2616005)(91956017)(6916009)(36756003)(76116006)(66556008)(66476007)(66946007)(6486002)(33656002)(6512007)(83380400001)(8676002)(86362001)(8936002)(4326008)(186003)(30864003)(26005)(5660300002)(45980500001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?aTdsMjVtTVVTYnhXN1Q0bmI0U3VmTTJIc2szZXp6NnpwRDlQaHMrRlQ3L1pr?= =?utf-8?B?T1BMYzlWRFJRSEhjbDR1VVJ1SDJTZ2NGV1hxRDc0YTJFSmVWTmlsb0lNSm54?= =?utf-8?B?bWtvRE5BNTZEMnpFYzJaQkpzbTNKMFl2S0JBdStkakFrSWUrK0hPRjVDWXR2?= =?utf-8?B?UXFCUU8xclhrUW5LeDlqUno0MXUrU3BjMTM1eGV6Nk9wVEkrK3lGRTcyZHdJ?= =?utf-8?B?Qk13aVZHV2tIa2ljdDNsRW1hU3N4VytLQ2pUcjQ0Y2hKM2Fqd0RFZGx3YTRF?= =?utf-8?B?L2o0K2JrS1gxOC9jSDNoMytmMWRLYXpyVTI0a3d1emc3dFVGOVhsUm9qdytX?= =?utf-8?B?eW1lSUsza0Z3M3J5S0g2eGZzU3Y4MEpmRlhCcGVEdlk3Y3dvN2d1c1NlYkZY?= =?utf-8?B?ZnhqaUtSbkErRVlUdmYxRkgvSXlQMVFPVGVabDRGa2ZORXF3NVJPTkpldG1I?= =?utf-8?B?ZFZoeHNyaFp4NzRxZlVLYURqaEZBRGZqS3Qxb05zM2E2OENwRHZUcmR1MkYv?= =?utf-8?B?ekF0MHlkdnJ4OFJNcGVhRWxWMTRkWEpsbkVzakEwUzJGOUZmcW1GWUMwbWly?= =?utf-8?B?RUFhNmh5aTR6Z0wxTEVlMmtZWTNTNEZsdzJydXdqMWlEV0tPWTluNFNiWFpP?= =?utf-8?B?Wml0R1VkNUcyYnZ3VndCd1FXVGozUVl2bDlyRDN6anRSampvYnJWakVsQmxK?= =?utf-8?B?cGlkQis1c3dqSmlGbjc4bTM3YnBncGpVMnE5SS83ajgrVDI3bWZVNndQOUQy?= =?utf-8?B?NkJhb0hBVWZvRi95N1VaMGpIQzM0QmFvTEFqY3JUQ2s0VlorTlNNUFN2bDk5?= =?utf-8?B?bDBmdmVBQXFCMUxva2gybUt5VlVkQlFWQndCZmUvVkRoVnRZbE96UzZ2dHVW?= =?utf-8?B?ZXJBUGpXSEJYVG1qVzNOSUdaSDliZytpZXdWSGxhVGhEM0xha3hTNDVEY01i?= =?utf-8?B?QllOMUZMNSswZmorclJHczJmcWx0SUhyRkJCNjN3VkplTlhMSEFPZTZwQXdQ?= =?utf-8?B?bEFlTThzWjhaWlhJYytuR2NJMEtUZStzb1hTclJmZXpwQ0IvclJhYVdUTGRD?= =?utf-8?B?RFF2Y2VIU2JjWU83L0F1UkZTaUlzS2NQYWVTRmZSYnhpYXY4ci8reTV5QTcw?= =?utf-8?B?TnlDSUtkTUpYVzlRNTFsNi9ITmhnT0xVdk5BWkZNcWpwdkZWQkJDMDN4RmY1?= =?utf-8?B?NHVkYlY2bElTY0hWTGUyT0FWQVBCRTQ5NVBkbFlDc2N1MHFpZjYyMzVUakFH?= =?utf-8?B?UXcveTVHaXg5d0N1TlZWQzErcWV1SHBGYjFrSjVuQzA4NHpEUnBUWDc3WTM4?= =?utf-8?Q?IVjaovWZuhRm6IlKzMdW/WTPet80zM91D/?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5207 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: DB5EUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 230596ce-a2ef-481c-b94a-08d896a1be8d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NuC+V8IDP/4LflpUN5phQFVfSdIRZ9ivpJ56skuSRwTNHF9HemWkuodTpdTnTaQzAgu+xg/HJpG4c72nfuRd9Jj3zqEHRoP+FGEFWE6hi/wl3uBeey7fwYzCZrB8Ib3bkwnXdy6Fy2VEtLgWXEXUttX40/OMK+mmihMUXYRA94MGBEY2C+lzrJSrhP9yYeMEI0ZY+WF8/+/ReYf7Y3vvgNXIQBh1XFJAs/y80d63chwnWLrIuhMCd9DIOwp/T/OK9rpH2fHZ4fGDEUPRIclGwT/CoU15r2+hvhbaUE9xQ3Qge/eY9whxSX4TxMkY1qO7Rf7aZd8Kch9TpZjhsUPAPOzXqVUu0N5TiMxyhO5EPbHeO/Rj9dOnD/CS0UT3N1eET8xzyobAckMfkHrEHI4Q5g== 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)(376002)(346002)(39860400002)(136003)(396003)(46966005)(6862004)(33656002)(30864003)(6512007)(81166007)(82740400003)(70206006)(356005)(5660300002)(2616005)(2906002)(6486002)(4326008)(47076004)(36756003)(83380400001)(8936002)(53546011)(186003)(70586007)(6506007)(8676002)(26005)(336012)(54906003)(82310400003)(86362001)(316002)(478600001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2020 09:08:25.2624 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8c73988e-42ef-4bb3-ce86-08d896a1d359 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: DB5EUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5973 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" DQoNCj4gT24gMSBEZWMgMjAyMCwgYXQgMTg6NDAsIEx1aXMgTWFjaGFkbyA8bHVpcy5tYWNoYWRv QGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gT24gMTIvMS8yMCAyOjM4IFBNLCBBbGFuIEhheXdh cmQgd3JvdGU6DQo+Pj4gT24gMSBEZWMgMjAyMCwgYXQgMTI6MTksIEx1aXMgTWFjaGFkbyA8bHVp cy5tYWNoYWRvQGxpbmFyby5vcmc+IHdyb3RlOg0KPj4+IA0KPj4+IEhpLA0KPj4+IA0KPj4+IFRo YW5rcyBmb3IgdGhlIHJldmlldy4NCj4+PiANCj4+PiBPbiAxMi8xLzIwIDg6MjggQU0sIEFsYW4g SGF5d2FyZCB3cm90ZToNCj4+Pj4+IE9uIDMwIE5vdiAyMDIwLCBhdCAxODo1NSwgTHVpcyBNYWNo YWRvIDxsdWlzLm1hY2hhZG9AbGluYXJvLm9yZz4gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+IFRoZSBG UFNJTUQgZHVtcCBpbiBzaWduYWwgZnJhbWVzIGFuZCBwdHJhY2UgRlBTSU1EIGR1bXAgaW4gdGhl IFNWRSBjb250ZXh0DQo+Pj4+PiBzdHJ1Y3R1cmUgZm9sbG93cyB0aGUgdGFyZ2V0IGVuZGlhbm5l c3MsIHdoZXJlYXMgdGhlIFNWRSBkdW1wcyBhcmUNCj4+Pj4+IGVuZGlhbm5lc3MtaW5kZXBlbmRl bnQgKExFKS4NCj4+Pj4+IA0KPj4+Pj4gVGhlcmVmb3JlLCB3aGVuIHRoZSBzeXN0ZW0gaXMgaW4g QkUgbW9kZSwgd2UgbmVlZCB0byByZXZlcnNlIHRoZSBieXRlcw0KPj4+Pj4gZm9yIHRoZSBGUFNJ TUQgZGF0YS4NCj4+Pj4+IA0KPj4+Pj4gR2l2ZW4gdGhlIFYgcmVnaXN0ZXJzIGFyZSBsYXJnZXIg dGhhbiA2NC1iaXQsIEkndmUgYWRkZWQgYSB3YXkgZm9yIHZhbHVlDQo+Pj4+PiBieXRlcyB0byBi ZSBzZXQsIGFzIG9wcG9zZWQgdG8gcGFzc2luZyBhIDY0LWJpdCBmaXhlZCBxdWFudGl0eS4gVGhp cyBmaXRzDQo+Pj4+PiBuaWNlbHkgd2l0aCB0aGUgdW53aW5kaW5nICpfZ290X2J5dGVzIGZ1bmN0 aW9uIGFuZCBtYWtlcyB0aGUgdHJhZC1mcmFtZQ0KPj4+Pj4gbW9yZSBmbGV4aWJsZSBhbmQgY2Fw YWJsZSBvZiBzYXZpbmcgbGFyZ2VyIHJlZ2lzdGVycy4NCj4+Pj4+IA0KPj4+Pj4gVGhlIG1lbW9y eSBmb3IgdGhlIGJ5dGVzIGlzIGFsbG9jYXRlZCB2aWEgdGhlIGZyYW1lIG9ic3RhY2ssIHNvIGl0 IGdldHMgZnJlZWQNCj4+Pj4+IGFmdGVyIHdlJ3JlIGRvbmUgaW5zcGVjdGluZyB0aGUgZnJhbWUu DQo+Pj4+PiANCj4+Pj4+IGdkYi9DaGFuZ2VMb2c6DQo+Pj4+PiANCj4+Pj4+IFlZWVktTU0tREQg IEx1aXMgTWFjaGFkbyAgPGx1aXMubWFjaGFkb0BsaW5hcm8ub3JnPg0KPj4+Pj4gDQo+Pj4+PiAJ KiBhYXJjaDY0LWxpbnV4LXRkZXAuYyAoYWFyY2g2NF9saW51eF9yZXN0b3JlX3ZyZWcpIE5ldyBm dW5jdGlvbi4NCj4+Pj4+IAkoYWFyY2g2NF9saW51eF9zaWdmcmFtZV9pbml0KTogQ2FsbCBhYXJj aDY0X2xpbnV4X3Jlc3RvcmVfdnJlZy4NCj4+Pj4+IAkqIG5hdC9hYXJjaDY0LXN2ZS1saW51eC1w dHJhY2UuYzogSW5jbHVkZSBlbmRpYW4uaC4NCj4+Pj4+IAkoYWFyY2g2NF9tYXliZV9zd2FiMTI4 KTogTmV3IGZ1bmN0aW9uLg0KPj4+Pj4gCShhYXJjaDY0X3N2ZV9yZWdzX2NvcHlfdG9fcmVnX2J1 ZikNCj4+Pj4+IAkoYWFyY2g2NF9zdmVfcmVnc19jb3B5X2Zyb21fcmVnX2J1Zik6IEFkanVzdCBG UFNJTUQgZW50cmllcy4NCj4+Pj4+IAkqIHRyYWQtZnJhbWUuYyAodHJhZF9mcmFtZV9yZXNldF9z YXZlZF9yZWdzKTogSW5pdGlhbGl6ZQ0KPj4+Pj4gCXRoZSBkYXRhIGZpZWxkLg0KPj4+Pj4gCShU Rl9SRUdfVkFMVUVfQllURVMpOiBOZXcgZW51bSB2YWx1ZS4NCj4+Pj4+IAkodHJhZF9mcmFtZV92 YWx1ZV9ieXRlc19wKTogTmV3IGZ1bmN0aW9uLg0KPj4+Pj4gCSh0cmFkX2ZyYW1lX3NldF92YWx1 ZV9ieXRlcyk6IE5ldyBmdW5jdGlvbi4NCj4+Pj4+IAkodHJhZF9mcmFtZV9zZXRfcmVnX3ZhbHVl X2J5dGVzKTogTmV3IGZ1bmN0aW9uLg0KPj4+Pj4gCSh0cmFkX2ZyYW1lX2dldF9wcmV2X3JlZ2lz dGVyKTogSGFuZGxlIHJlZ2lzdGVyIHZhbHVlcyBzYXZlZCBhcyBieXRlcy4NCj4+Pj4+IAkqIHRy YWQtZnJhbWUuaCAodHJhZF9mcmFtZV9zZXRfcmVnX3ZhbHVlX2J5dGVzKTogTmV3IHByb3RvdHlw ZS4NCj4+Pj4+IAkoc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnKSA8ZGF0YT46IE5ldyBmaWVs ZC4NCj4+Pj4+IAkodHJhZF9mcmFtZV9zZXRfdmFsdWVfYnl0ZXMpOiBOZXcgcHJvdG90eXBlLg0K Pj4+Pj4gCSh0cmFkX2ZyYW1lX3ZhbHVlX2J5dGVzX3ApOiBOZXcgcHJvdG90eXBlLg0KPj4+Pj4g LS0tDQo+Pj4+PiBnZGIvYWFyY2g2NC1saW51eC10ZGVwLmMgICAgICAgICAgIHwgMTE1ICsrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tDQo+Pj4+PiBnZGIvbmF0L2FhcmNoNjQtc3ZlLWxpbnV4 LXB0cmFjZS5jIHwgIDU3ICsrKysrKysrKysrKystDQo+Pj4+PiBnZGIvdHJhZC1mcmFtZS5jICAg ICAgICAgICAgICAgICAgIHwgIDQ2ICsrKysrKysrKysrLQ0KPj4+Pj4gZ2RiL3RyYWQtZnJhbWUu aCAgICAgICAgICAgICAgICAgICB8ICAxOSArKysrKw0KPj4+Pj4gNCBmaWxlcyBjaGFuZ2VkLCAy MTMgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pDQo+Pj4+PiANCj4+Pj4+IGRpZmYgLS1n aXQgYS9nZGIvYWFyY2g2NC1saW51eC10ZGVwLmMgYi9nZGIvYWFyY2g2NC1saW51eC10ZGVwLmMN Cj4+Pj4+IGluZGV4IGM5ODk4YmRhZmQuLjEwOGY5NmJlNzEgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9n ZGIvYWFyY2g2NC1saW51eC10ZGVwLmMNCj4+Pj4+ICsrKyBiL2dkYi9hYXJjaDY0LWxpbnV4LXRk ZXAuYw0KPj4+Pj4gQEAgLTE4MCw2ICsxODAsOTQgQEAgcmVhZF9hYXJjaDY0X2N0eCAoQ09SRV9B RERSIGN0eF9hZGRyLCBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciwNCj4+Pj4+ICAgcmV0dXJu IG1hZ2ljOw0KPj4+Pj4gfQ0KPj4+Pj4gDQo+Pj4+PiArLyogR2l2ZW4gQ0FDSEUsIHVzZSB0aGUg dHJhZF9mcmFtZSogZnVuY3Rpb25zIHRvIHJlc3RvcmUgdGhlIEZQU0lNRA0KPj4+Pj4gKyAgIHJl Z2lzdGVycyBmcm9tIGEgc2lnbmFsIGZyYW1lLg0KPj4+Pj4gKw0KPj4+Pj4gKyAgIFZSRUdfTlVN IGlzIHRoZSBudW1iZXIgb2YgdGhlIFYgcmVnaXN0ZXIgYmVpbmcgcmVzdG9yZWQsIE9GRlNFVCBp cyB0aGUNCj4+Pj4+ICsgICBhZGRyZXNzIGNvbnRhaW5pbmcgdGhlIHJlZ2lzdGVyIHZhbHVlLCBC WVRFX09SREVSIGlzIHRoZSBlbmRpYW5uZXNzIGFuZA0KPj4+Pj4gKyAgIEhBU19TVkUgdGVsbHMg dXMgaWYgd2UgaGF2ZSBhIHZhbGlkIFNWRSBjb250ZXh0IG9yIG5vdC4gICovDQo+Pj4+PiArDQo+ Pj4+PiArc3RhdGljIHZvaWQNCj4+Pj4+ICthYXJjaDY0X2xpbnV4X3Jlc3RvcmVfdnJlZyAoc3Ry dWN0IHRyYWRfZnJhbWVfY2FjaGUgKmNhY2hlLCBpbnQgbnVtX3JlZ3MsDQo+Pj4+PiArCQkJICAg IGludCB2cmVnX251bSwgQ09SRV9BRERSIG9mZnNldCwNCj4+Pj4+ICsJCQkgICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIsIGJvb2wgaGFzX3N2ZSkNCj4+Pj4+ICt7DQo+Pj4+PiArICAvKiBX QVJOSU5HOiBTSU1EIHN0YXRlIGlzIGxhaWQgb3V0IGluIG1lbW9yeSBpbiB0YXJnZXQtZW5kaWFu IGZvcm1hdCwgd2hpbGUNCj4+Pj4+ICsgICAgIFNWRSBzdGF0ZSBpcyBsYWlkIG91dCBpbiBhbiBl bmRpYW5uZXNzLWluZGVwZW5kZW50IGZvcm1hdCAoTEUpLg0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAg U28gd2UgaGF2ZSBhIGNvdXBsZSBjYXNlcyB0byBjb25zaWRlcjoNCj4+Pj4+ICsNCj4+Pj4+ICsg ICAgIDEgLSBJZiB0aGUgdGFyZ2V0IGlzIGJpZyBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBi aWcgZW5kaWFuLA0KPj4+Pj4gKyAgICAgcmVxdWlyaW5nIGEgYnl0ZXN3YXAuDQo+Pj4+PiArDQo+ Pj4+PiArICAgICAyIC0gSWYgdGhlIHRhcmdldCBpcyBsaXR0bGUgZW5kaWFuLCB0aGVuIFNJTUQg c3RhdGUgaXMgbGl0dGxlIGVuZGlhbiwNCj4+Pj4+ICsgICAgIHdoaWNoIG1hdGNoZXMgdGhlIFNW RSBmb3JtYXQsIHNvIG5vIGJ5dGVzd2FwIGlzIG5lZWRlZC4gKi8NCj4+Pj4+ICsNCj4+Pj4gV2l0 aCB0aGlzIGZ1bmN0aW9uLCB3ZSBhcmUgb25seSBoYW5kbGluZyBGUFNJTUQgdmFsdWVzLCBzbyBu byBuZWVkIHRvIG1lbnRpb24gU1ZFLg0KPj4+PiBBcyBpdCBpcyBub3csIGl0IG1ha2VzIHRoZSBo YXNfc3ZlIHBhcnRzIGNvbmZ1c2luZyBiZWNhdXNlIHRoZXkgYXJlIGJlaW5nIHRyZWF0ZWQNCj4+ Pj4gdGhlIHNhbWUgYXMgdGhlIHJlc3Qgb2YgdGhlIGZwc2ltZC4NCj4+PiANCj4+PiBUaG91Z2gg d2UgYXJlIGhhbmRsaW5nIEZQU0lNRCwgd2Ugc3RpbGwgbmVlZCB0byBzZXQgYXQgbGVhc3Qgb25l IFNWRSBwc2V1ZG8tcmVnaXN0ZXIgKEFBUkNINjRfU1ZFX1YwX1JFR05VTSksIGhlbmNlIHdoeSBJ IGRlY2lkZWQgdG8ga2VlcCB0aGUgd2FybmluZy4gSXQgaXMgbm90IHJlYWxseSBhIFNWRSByZWdp c3RlciwgYnV0IGEgcHNldWRvLXJlZ2lzdGVyIG9mIHRoZSBGUFNJTUQgViByZWdpc3Rlci4NCj4+ PiANCj4+PiBEbyB5b3Ugc3RpbGwgd2FudCB0byByZW1vdmUgdGhlIFNWRSByZWZlcmVuY2VzIGlu IHRoZSB3YXJuaW5nPw0KPj4gRm9yIHRoaXMgZnVuY3Rpb24sIEkgd291bGQgc2F5IHJlbW92ZSB0 aGUgU1ZFIGNvbW1lbnQsIGFzIGV2ZXJ5dGhpbmcgaW4gdGhlIGZ1bmN0aW9uDQo+PiBpcyBiZWlu ZyB0cmVhdGVkIGluIHRoZSBzYW1lIHdheS4gQnV0IEnigJltIG5vdCBvdmVybHkgaHVuZyB1cCBv biBpdC4NCj4gDQo+IEl0IG5vdyByZWFkcy4uLg0KPiANCj4gIC8qIFdBUk5JTkc6IFNJTUQgc3Rh dGUgaXMgbGFpZCBvdXQgaW4gbWVtb3J5IGluIHRhcmdldC1lbmRpYW4gZm9ybWF0Lg0KPiANCj4g ICAgIFNvIHdlIGhhdmUgYSBjb3VwbGUgY2FzZXMgdG8gY29uc2lkZXI6DQo+IA0KPiAgICAgMSAt IElmIHRoZSB0YXJnZXQgaXMgYmlnIGVuZGlhbiwgdGhlbiBTSU1EIHN0YXRlIGlzIGJpZyBlbmRp YW4sIHJlcXVpcmluZyBhIGJ5dGVzd2FwLg0KPiANCj4gICAgIDIgLSBJZiB0aGUgdGFyZ2V0IGlz IGxpdHRsZSBlbmRpYW4sIHRoZW4gU0lNRCBzdGF0ZSBpcyBsaXR0bGUgZW5kaWFuLCBzbyBubyBi eXRlc3dhcCBpcyBuZWVkZWQuICovDQo+IA0KPiANCg0KT2suDQoNCj4+PiANCj4+PiBXaGF0IGlz IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gQUFSQ0g2NF9TVkVfVjBfUkVHTlVNIGFuZCBBQVJDSDY0 X1YwX1JFR05VTT8NCj4+IFosVixRLEQsUyxILEIgcmVnaXN0ZXJzIGFsbCBvdmVybGFwIHdpdGgg ZWFjaCBvdGhlci4gSXTigJlzIHRoZSBzYW1lIHJlZ2lzdGVyLA0KPj4ganVzdCBhIGRpZmZlcmVu dCBzaXplLg0KPj4gSW4gdGhlIHRkZXAsIHdoZW4gd2Ugb25seSBoYXZlIG5lb24sIFYgaXMgdGhl IHJlYWwgcmVnaXN0ZXIsIGFuZCBRLEQsUyxILEIgYXJlIHBzZXVkb3MuDQo+PiBUaGVuIHdoZW4g d2UgaGF2ZSBzdmUsIFogaXMgdGhlIHJlYWwgcmVnaXN0ZXIsIGFuZCBWLFEsRCxTLEgsQiBhcmUg cHNldWRvcy4NCj4+IEFBUkNINjRfU1ZFX1owX1JFR05VTSA9PSBBQVJDSDY0X1YwX1JFR05VTS4N Cj4+IEFuZCB0aGVuIEFBUkNINjRfU1ZFX1YwX1JFR05VTSByZXByZXNlbnRzIHRoZSByZWdudW0g b2YgdGhlIFYwIHBzZXVkbyByZWdpc3Rlcg0KPj4gd2hlbiBTVkUgaXMgZW5hYmxlZC4NCj4+IEFS Q0g2NF9TVkVfVjBfUkVHTlVNID09IEFBUkNINjRfQjBfUkVHTlVNICsgMzINCj4+IE1heWJlIGV2 ZW50dWFsbHkgdGhpcyBzaG91bGQgYmUgdXBkYXRlZCB0byBiZSBzaW1pbGFyIHRvIHBhdXRoLiBI YXZlIGEgc2luZ2xlIGRlZmluZQ0KPj4gd2hpY2ggcmVxdWlyZXMgYSB2MF9yZWdfYmFzZSB2YWx1 ZSBpbiB0aGUgdGRlcC4NCj4+PiANCj4+Pj4gVGhlIHNhbWUgY29tbWVudCBpcyBmaW5lIHdoZW4g dXNlZCBlbHNld2hlcmUgaW4gdGhlIHBhdGNoLg0KPj4+Pj4gKyAgaWYgKGJ5dGVfb3JkZXIgPT0g QkZEX0VORElBTl9CSUcpDQo+Pj4+PiArICAgIHsNCj4+Pj4+ICsgICAgICBnZGJfYnl0ZSBidWZb Vl9SRUdJU1RFUl9TSVpFXTsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgICBpZiAodGFyZ2V0X3JlYWRf bWVtb3J5IChvZmZzZXQsIGJ1ZiwgVl9SRUdJU1RFUl9TSVpFKSAhPSAwKQ0KPj4+Pj4gKwl7DQo+ Pj4+PiArCSAgc2l6ZV90IHNpemUgPSBWX1JFR0lTVEVSX1NJWkUvMjsNCj4+Pj4+ICsNCj4+Pj4+ ICsJICAvKiBSZWFkIHRoZSB0d28gaGFsdmVzIG9mIHRoZSBWIHJlZ2lzdGVyIGluIHJldmVyc2Ug Ynl0ZSBvcmRlci4gICovDQo+Pj4+PiArCSAgQ09SRV9BRERSIHU2NCA9IGV4dHJhY3RfdW5zaWdu ZWRfaW50ZWdlciAoYnVmLCBzaXplLA0KPj4+Pj4gKwkJCQkJCSAgICBieXRlX29yZGVyKTsNCj4+ Pj4+ICsJICBDT1JFX0FERFIgbDY0ID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyIChidWYgKyBz aXplLCBzaXplLA0KPj4+Pj4gKwkJCQkJCSAgICBieXRlX29yZGVyKTsNCj4+Pj4+ICsNCj4+Pj4+ ICsJICAvKiBDb3B5IHRoZSByZXZlcnNlZCBieXRlcyB0byB0aGUgYnVmZmVyLiAgKi8NCj4+Pj4+ ICsJICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChidWYsIHNpemUsIEJGRF9FTkRJQU5fTElUVExF LCBsNjQpOw0KPj4+Pj4gKwkgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKGJ1ZiArIHNpemUgLCBz aXplLCBCRkRfRU5ESUFOX0xJVFRMRSwgdTY0KTsNCj4+Pj4+ICsNCj4+Pj4+ICsJICAvKiBOb3cg d2UgY2FuIHN0b3JlIHRoZSBjb3JyZWN0IGJ5dGVzIGZvciB0aGUgViByZWdpc3Rlci4gICovDQo+ Pj4+PiArCSAgdHJhZF9mcmFtZV9zZXRfcmVnX3ZhbHVlX2J5dGVzIChjYWNoZSwgQUFSQ0g2NF9W MF9SRUdOVU0gKyB2cmVnX251bSwNCj4+Pj4+ICsJCQkJCSAgYnVmLCBWX1JFR0lTVEVSX1NJWkUp Ow0KPj4+Pj4gKwkgIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+Pj4+ PiArCQkJCQkgIG51bV9yZWdzICsgQUFSQ0g2NF9RMF9SRUdOVU0NCj4+Pj4+ICsJCQkJCSAgKyB2 cmVnX251bSwgYnVmLCBRX1JFR0lTVEVSX1NJWkUpOw0KPj4+Pj4gKwkgIHRyYWRfZnJhbWVfc2V0 X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+Pj4+PiArCQkJCQkgIG51bV9yZWdzICsgQUFSQ0g2 NF9EMF9SRUdOVU0NCj4+Pj4+ICsJCQkJCSAgKyB2cmVnX251bSwgYnVmLCBEX1JFR0lTVEVSX1NJ WkUpOw0KPj4+Pj4gKwkgIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+ Pj4+PiArCQkJCQkgIG51bV9yZWdzICsgQUFSQ0g2NF9TMF9SRUdOVU0NCj4+Pj4+ICsJCQkJCSAg KyB2cmVnX251bSwgYnVmLCBTX1JFR0lTVEVSX1NJWkUpOw0KPj4+Pj4gKwkgIHRyYWRfZnJhbWVf c2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUsDQo+Pj4+PiArCQkJCQkgIG51bV9yZWdzICsgQUFS Q0g2NF9IMF9SRUdOVU0NCj4+Pj4+ICsJCQkJCSAgKyB2cmVnX251bSwgYnVmLCBIX1JFR0lTVEVS X1NJWkUpOw0KPj4+Pj4gKwkgIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoY2FjaGUs DQo+Pj4+PiArCQkJCQkgIG51bV9yZWdzICsgQUFSQ0g2NF9CMF9SRUdOVU0NCj4+Pj4+ICsJCQkJ CSAgKyB2cmVnX251bSwgYnVmLCBCX1JFR0lTVEVSX1NJWkUpOw0KPj4+Pj4gKw0KPj4+Pj4gKwkg IGlmIChoYXNfc3ZlKQ0KPj4+Pj4gKwkgICAgdHJhZF9mcmFtZV9zZXRfcmVnX3ZhbHVlX2J5dGVz IChjYWNoZSwNCj4+Pj4+ICsJCQkJCSAgICBudW1fcmVncyArIEFBUkNINjRfU1ZFX1YwX1JFR05V TQ0KPj4+Pj4gKwkJCQkJICAgICsgdnJlZ19udW0sIGJ1ZiwgVl9SRUdJU1RFUl9TSVpFKTsNCj4+ Pj4+ICsJfQ0KPj4+Pj4gKyAgICAgIHJldHVybjsNCj4+Pj4+ICsgICAgfQ0KPj4+Pj4gKw0KPj4+ Pj4gKyAgLyogTGl0dGxlIGVuZGlhbiwganVzdCBwb2ludCBhdCB0aGUgYWRkcmVzcyBjb250YWlu aW5nIHRoZSByZWdpc3Rlcg0KPj4+Pj4gKyAgICAgdmFsdWUuICAqLw0KPj4+Pj4gKyAgdHJhZF9m cmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBBQVJDSDY0X1YwX1JFR05VTSArIHZyZWdfbnVtLCBv ZmZzZXQpOw0KPj4+Pj4gKyAgdHJhZF9mcmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBudW1fcmVn cyArIEFBUkNINjRfUTBfUkVHTlVNICsgdnJlZ19udW0sDQo+Pj4+PiArCQkJICAgb2Zmc2V0KTsN Cj4+Pj4+ICsgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyIChjYWNoZSwgbnVtX3JlZ3MgKyBBQVJD SDY0X0QwX1JFR05VTSArIHZyZWdfbnVtLA0KPj4+Pj4gKwkJCSAgIG9mZnNldCk7DQo+Pj4+PiAr ICB0cmFkX2ZyYW1lX3NldF9yZWdfYWRkciAoY2FjaGUsIG51bV9yZWdzICsgQUFSQ0g2NF9TMF9S RUdOVU0gKyB2cmVnX251bSwNCj4+Pj4+ICsJCQkgICBvZmZzZXQpOw0KPj4+Pj4gKyAgdHJhZF9m cmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBudW1fcmVncyArIEFBUkNINjRfSDBfUkVHTlVNICsg dnJlZ19udW0sDQo+Pj4+PiArCQkJICAgb2Zmc2V0KTsNCj4+Pj4+ICsgIHRyYWRfZnJhbWVfc2V0 X3JlZ19hZGRyIChjYWNoZSwgbnVtX3JlZ3MgKyBBQVJDSDY0X0IwX1JFR05VTSArIHZyZWdfbnVt LA0KPj4+Pj4gKwkJCSAgIG9mZnNldCk7DQo+Pj4+PiArDQo+Pj4+PiArICBpZiAoaGFzX3N2ZSkN Cj4+Pj4+ICsgICAgdHJhZF9mcmFtZV9zZXRfcmVnX2FkZHIgKGNhY2hlLCBudW1fcmVncyArIEFB UkNINjRfU1ZFX1YwX1JFR05VTQ0KPj4+Pj4gKwkJCSAgICAgKyB2cmVnX251bSwgb2Zmc2V0KTsN Cj4+Pj4+ICsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiAvKiBJbXBsZW1lbnQgdGhlICJpbml0 IiBtZXRob2Qgb2Ygc3RydWN0IHRyYW1wX2ZyYW1lLiAgKi8NCj4+Pj4+IA0KPj4+Pj4gc3RhdGlj IHZvaWQNCj4+Pj4+IEBAIC0zMzIsMjcgKzQyMCwxNiBAQCBhYXJjaDY0X2xpbnV4X3NpZ2ZyYW1l X2luaXQgKGNvbnN0IHN0cnVjdCB0cmFtcF9mcmFtZSAqc2VsZiwNCj4+Pj4+IA0KPj4+Pj4gICAg ICAgLyogSWYgdGhlcmUgd2FzIG5vIFNWRSBzZWN0aW9uIHRoZW4gc2V0IHVwIHRoZSBWIHJlZ2lz dGVycy4gICovDQo+Pj4+PiAgICAgICBpZiAoc3ZlX3JlZ3MgPT0gMCkNCj4+Pj4+IC0JZm9yIChp bnQgaSA9IDA7IGkgPCAzMjsgaSsrKQ0KPj4+Pj4gLQkgIHsNCj4+Pj4+IC0JICAgIENPUkVfQURE UiBvZmZzZXQgPSAoZnBzaW1kICsgQUFSQ0g2NF9GUFNJTURfVjBfT0ZGU0VUDQo+Pj4+PiArCXsN Cj4+Pj4+ICsJICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspDQo+Pj4+PiArCSAgICB7DQo+ Pj4+PiArCSAgICAgIENPUkVfQUREUiBvZmZzZXQgPSAoZnBzaW1kICsgQUFSQ0g2NF9GUFNJTURf VjBfT0ZGU0VUDQo+Pj4+PiAJCQkJICArIChpICogQUFSQ0g2NF9GUFNJTURfVlJFR19TSVpFKSk7 DQo+Pj4+PiANCj4+Pj4+IC0JICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hl LCBBQVJDSDY0X1YwX1JFR05VTSArIGksIG9mZnNldCk7DQo+Pj4+PiAtCSAgICB0cmFkX2ZyYW1l X3NldF9yZWdfYWRkciAodGhpc19jYWNoZSwNCj4+Pj4+IC0JCQkJICAgICBudW1fcmVncyArIEFB UkNINjRfUTBfUkVHTlVNICsgaSwgb2Zmc2V0KTsNCj4+Pj4+IC0JICAgIHRyYWRfZnJhbWVfc2V0 X3JlZ19hZGRyICh0aGlzX2NhY2hlLA0KPj4+Pj4gLQkJCQkgICAgIG51bV9yZWdzICsgQUFSQ0g2 NF9EMF9SRUdOVU0gKyBpLCBvZmZzZXQpOw0KPj4+Pj4gLQkgICAgdHJhZF9mcmFtZV9zZXRfcmVn X2FkZHIgKHRoaXNfY2FjaGUsDQo+Pj4+PiAtCQkJCSAgICAgbnVtX3JlZ3MgKyBBQVJDSDY0X1Mw X1JFR05VTSArIGksIG9mZnNldCk7DQo+Pj4+PiAtCSAgICB0cmFkX2ZyYW1lX3NldF9yZWdfYWRk ciAodGhpc19jYWNoZSwNCj4+Pj4+IC0JCQkJICAgICBudW1fcmVncyArIEFBUkNINjRfSDBfUkVH TlVNICsgaSwgb2Zmc2V0KTsNCj4+Pj4+IC0JICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0 aGlzX2NhY2hlLA0KPj4+Pj4gLQkJCQkgICAgIG51bV9yZWdzICsgQUFSQ0g2NF9CMF9SRUdOVU0g KyBpLCBvZmZzZXQpOw0KPj4+Pj4gLQkgICAgaWYgKHRkZXAtPmhhc19zdmUgKCkpDQo+Pj4+PiAt CSAgICAgIHRyYWRfZnJhbWVfc2V0X3JlZ19hZGRyICh0aGlzX2NhY2hlLA0KPj4+Pj4gLQkJCQkg ICAgICAgbnVtX3JlZ3MgKyBBQVJDSDY0X1NWRV9WMF9SRUdOVU0gKyBpLA0KPj4+Pj4gLQkJCQkg ICAgICAgb2Zmc2V0KTsNCj4+Pj4+IC0JICB9DQo+Pj4+PiArCSAgICAgIGFhcmNoNjRfbGludXhf cmVzdG9yZV92cmVnICh0aGlzX2NhY2hlLCBudW1fcmVncywgaSwgb2Zmc2V0LA0KPj4+Pj4gKwkJ CQkJICBieXRlX29yZGVyLCB0ZGVwLT5oYXNfc3ZlICgpKTsNCj4+Pj4+ICsJICAgIH0NCj4+Pj4+ ICsJfQ0KPj4+Pj4gICAgIH0NCj4+Pj4+IA0KPj4+Pj4gICB0cmFkX2ZyYW1lX3NldF9pZCAodGhp c19jYWNoZSwgZnJhbWVfaWRfYnVpbGQgKHNwLCBmdW5jKSk7DQo+Pj4+PiBkaWZmIC0tZ2l0IGEv Z2RiL25hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2UuYyBiL2dkYi9uYXQvYWFyY2g2NC1zdmUt bGludXgtcHRyYWNlLmMNCj4+Pj4+IGluZGV4IDJjZTkwY2NmZDcuLjllZjVlOTE4MDEgMTAwNjQ0 DQo+Pj4+PiAtLS0gYS9nZGIvbmF0L2FhcmNoNjQtc3ZlLWxpbnV4LXB0cmFjZS5jDQo+Pj4+PiAr KysgYi9nZGIvbmF0L2FhcmNoNjQtc3ZlLWxpbnV4LXB0cmFjZS5jDQo+Pj4+PiBAQCAtMjYsNiAr MjYsNyBAQA0KPj4+Pj4gI2luY2x1ZGUgImFyY2gvYWFyY2g2NC5oIg0KPj4+Pj4gI2luY2x1ZGUg ImdkYnN1cHBvcnQvY29tbW9uLXJlZ2NhY2hlLmgiDQo+Pj4+PiAjaW5jbHVkZSAiZ2Ric3VwcG9y dC9ieXRlLXZlY3Rvci5oIg0KPj4+Pj4gKyNpbmNsdWRlIDxlbmRpYW4uaD4NCj4+Pj4+IA0KPj4+ Pj4gLyogU2VlIG5hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2UuaC4gICovDQo+Pj4+PiANCj4+ Pj4+IEBAIC0xNDIsNiArMTQzLDI3IEBAIGFhcmNoNjRfc3ZlX2dldF9zdmVyZWdzIChpbnQgdGlk KQ0KPj4+Pj4gICByZXR1cm4gYnVmOw0KPj4+Pj4gfQ0KPj4+Pj4gDQo+Pj4+PiArLyogSWYgd2Ug YXJlIHJ1bm5pbmcgaW4gQkUgbW9kZSwgY29udmVydCB0aGUgY29udGVudHMNCj4+Pj4+ICsgICBv ZiBWQUxVRSAoYSAxNiBieXRlIGJ1ZmZlcikgdG8gTEUuICAqLw0KPj4+Pj4gKw0KPj4+Pj4gK3N0 YXRpYyB2b2lkDQo+Pj4+PiArYWFyY2g2NF9tYXliZV9zd2FiMTI4IChnZGJfYnl0ZSAqdmFsdWUp DQo+Pj4+PiArew0KPj4+Pj4gKyAgZ2RiX2Fzc2VydCAodmFsdWUgIT0gbnVsbHB0cik7DQo+Pj4+ PiArDQo+Pj4+PiArI2lmIChfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOKQ0KPj4+Pj4gKyAg Z2RiX2J5dGUgY29weVsxNl07DQo+Pj4+PiArDQo+Pj4+PiArICAvKiBTYXZlIHRoZSBvcmlnaW5h bCB2YWx1ZS4gICovDQo+Pj4+PiArICBtZW1jcHkgKGNvcHksIHZhbHVlLCAxNik7DQo+Pj4+PiAr DQo+Pj4+PiArICBmb3IgKGludCBpID0gMDsgaSA8IDE1OyBpKyspDQo+Pj4+PiArICAgIHZhbHVl W2ldID0gY29weVsxNSAtIGldOw0KPj4+Pj4gKyNlbHNlDQo+Pj4+PiArICAvKiBOb3RoaW5nIHRv IGJlIGRvbmUuICAqLw0KPj4+Pj4gKyNlbmRpZg0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+IC8q IFNlZSBuYXQvYWFyY2g2NC1zdmUtbGludXgtcHRyYWNlLmguICAqLw0KPj4+Pj4gDQo+Pj4+PiB2 b2lkDQo+Pj4+PiBAQCAtMTg0LDExICsyMDYsMjIgQEAgYWFyY2g2NF9zdmVfcmVnc19jb3B5X3Rv X3JlZ19idWYgKHN0cnVjdCByZWdfYnVmZmVyX2NvbW1vbiAqcmVnX2J1ZiwNCj4+Pj4+ICAgICB9 DQo+Pj4+PiAgIGVsc2UNCj4+Pj4+ICAgICB7DQo+Pj4+PiArICAgICAgLyogV0FSTklORzogU0lN RCBzdGF0ZSBpcyBsYWlkIG91dCBpbiBtZW1vcnkgaW4gdGFyZ2V0LWVuZGlhbiBmb3JtYXQsDQo+ Pj4+PiArCSB3aGlsZSBTVkUgc3RhdGUgaXMgbGFpZCBvdXQgaW4gYW4gZW5kaWFubmVzcy1pbmRl cGVuZGVudCBmb3JtYXQgKExFKS4NCj4+Pj4+ICsNCj4+Pj4+ICsJIFNvIHdlIGhhdmUgYSBjb3Vw bGUgY2FzZXMgdG8gY29uc2lkZXI6DQo+Pj4+PiArDQo+Pj4+PiArCSAxIC0gSWYgdGhlIHRhcmdl dCBpcyBiaWcgZW5kaWFuLCB0aGVuIFNJTUQgc3RhdGUgaXMgYmlnIGVuZGlhbiwNCj4+Pj4+ICsJ IHJlcXVpcmluZyBhIGJ5dGVzd2FwLg0KPj4+Pj4gKw0KPj4+Pj4gKwkgMiAtIElmIHRoZSB0YXJn ZXQgaXMgbGl0dGxlIGVuZGlhbiwgdGhlbiBTSU1EIHN0YXRlIGlzIGxpdHRsZSBlbmRpYW4sDQo+ Pj4+PiArCSB3aGljaCBtYXRjaGVzIHRoZSBTVkUgZm9ybWF0LCBzbyBubyBieXRlc3dhcCBpcyBu ZWVkZWQuICovDQo+Pj4+PiArDQo+Pj4+PiAgICAgICAvKiBUaGVyZSBpcyBubyBTVkUgc3RhdGUg eWV0IC0gdGhlIHJlZ2lzdGVyIGR1bXAgY29udGFpbnMgYSBmcHNpbWQNCj4+Pj4+IAkgc3RydWN0 dXJlIGluc3RlYWQuICBUaGVzZSByZWdpc3RlcnMgc3RpbGwgZXhpc3QgaW4gdGhlIGhhcmR3YXJl LCBidXQNCj4+Pj4+IAkgdGhlIGtlcm5lbCBoYXMgbm90IHlldCBpbml0aWFsaXNlZCB0aGVtLCBh bmQgc28gdGhleSB3aWxsIGJlIG51bGwuICAqLw0KPj4+Pj4gDQo+Pj4+PiAtICAgICAgY2hhciAq emVyb19yZWcgPSAoY2hhciAqKSBhbGxvY2EgKFNWRV9QVF9TVkVfWlJFR19TSVpFICh2cSkpOw0K Pj4+Pj4gKyAgICAgIGdkYl9ieXRlICp6ZXJvX3JlZyA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKFNW RV9QVF9TVkVfWlJFR19TSVpFICh2cSkpOw0KPj4+Pj4gICAgICAgc3RydWN0IHVzZXJfZnBzaW1k X3N0YXRlICpmcHNpbWQNCj4+Pj4+IAk9IChzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgKikoYmFz ZSArIFNWRV9QVF9GUFNJTURfT0ZGU0VUKTsNCj4+Pj4+IA0KPj4+Pj4gQEAgLTE5OSw3ICsyMzIs OSBAQCBhYXJjaDY0X3N2ZV9yZWdzX2NvcHlfdG9fcmVnX2J1ZiAoc3RydWN0IHJlZ19idWZmZXJf Y29tbW9uICpyZWdfYnVmLA0KPj4+Pj4gDQo+Pj4+PiAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IEFBUkNINjRfU1ZFX1pfUkVHU19OVU07IGkrKykNCj4+Pj4+IAl7DQo+Pj4+PiAtCSAgbWVtY3B5 ICh6ZXJvX3JlZywgJmZwc2ltZC0+dnJlZ3NbaV0sIHNpemVvZiAoX19pbnQxMjhfdCkpOw0KPj4+ Pj4gKwkgIG1lbWNweSAoemVyb19yZWcsICZmcHNpbWQtPnZyZWdzW2ldLCAxNik7DQo+Pj4+PiAr CSAgLyogSGFuZGxlIGJpZyBlbmRpYW4vbGl0dGxlIGVuZGlhbiBTSU1EL1NWRSBjb252ZXJzaW9u LiAgKi8NCj4+Pj4+ICsJICBhYXJjaDY0X21heWJlX3N3YWIxMjggKHplcm9fcmVnKTsNCj4+Pj4g SSB0aGluayB3ZSBoYXZlIGEgbG9uZyBzdGFuZGluZyBidWcgaGVyZS4gemVyb19yZWcgd2FzIG1l YW50IHRvIHN0YXkgYXMgdGhlIHZhbHVlIDAuIEJ1dCB0aGVuDQo+Pj4+IGl0IGdvdCByZXVzZWQg YXMgYSBnZW5lcmFsIHRlbXAgYnVmZmVyLg0KPj4+PiBJdOKAmXMgbm90IHNob3duIGluIHRoZSBk aWZmLCBidXQgd2UgZG86DQo+Pj4+ICogbWVtc2V0IHplcm9fcmVnIHRvIDANCj4+Pj4gKiB1c2Ug emVyb19yZWcgYXMgYSB0ZW1wIGJ1ZmZlciBmb3IgY29weWluZyBmcHNpbWQgdmFsdWVzLg0KPj4+ PiAqIHVzZSB6ZXJvX3JlZyBhcyB2YWx1ZSAwIGZvciBmcHNyIGFuZCBmcGNyLg0KPj4+PiBUaGUg bWVtc2V0IG5lZWRzIG1vdmluZyBhZnRlciB1c2luZyBpdCBmb3IgZnBzaW1kLiAobWF5YmUgYWxz byByZW5hbWUgemVyb19yZWcgdG8gYnVmPykNCj4+PiANCj4+PiBJJ2xsIGFkZHJlc3MgdGhpcy4N Cj4+PiANCj4+Pj4gQ2FuIHdlIGFsc28gcmVkdWNlIHRoZSBudW1iZXIgb2YgbWVtY3B5cyAtIGp1 c3QgYnl0ZSBzd2FwIHZyZWdzW2ldIGRpcmVjdGx5IGludG8gdGhlIHplcm9fcmVnIGJ1ZmZlcj8N Cj4+PiANCj4+PiBUaGUgYnl0ZSBzd2FwIGZ1bmN0aW9uIG9ubHkgc3dhcHMgdGhpbmdzIGZvciBf X0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOLCB3ZSB3b3VsZCBzdGlsbCBuZWVkIHRvIG1lbWNw eSB0aGUgYnl0ZXMgdG8gemVyb19yZWcuIFRoZSBudW1iZXIgb2YgbWVtY3B5J3Mgd291bGQgYmUg dGhlIHNhbWUsIG5vPw0KPj4gRm9yIExFLCB3ZSB3YW50IHRvIGNvcHkgaW50byB6ZXJvX3JlZyB0 byBlbnN1cmUgaXQgaXMgemVybyBwYWRkZWQgYWZ0ZXIgMTI4Yml0cywgdGhlbiBjYWxsIHJhd19z dXBwbHkuDQo+PiBTbyB0aGF04oCZcyBhbGwgZmluZS4NCj4+IEZvciBCRSwgd2UgY291bGQganVz dCBieXRlc3dhcCBkaXJlY3RseSBmcm9tIGZwc2ltZC0+dnJlZ3NbaV0gaW50byB6ZXJvX3JlZyAo PykgTm8gbmVlZCBmb3IgYW55IG1lbWNweXMuDQo+IA0KPiBBcmUgeW91IHN1Z2dlc3RpbmcgcmV3 cml0aW5nIGFhcmNoNjRfbWF5YmVfc3dhYjEyOCB0byB0YWtlIGRzdCBhbmQgc3JjIHBhcmFtZXRl cnMsIHNvIHdlIGNhbiBieXRlc3dhcCBmcm9tIHZyZWdzW2ldIGludG8gemVyb19yZWc/IFJpZ2h0 IG5vdyBhYXJjaDY0X21heWJlX3N3YWIxMjggb25seSBzd2FwcyB0aGluZ3MgaW4gcGxhY2UuDQoN ClllcywgdGhhdOKAmWQgcHJvYmFibHkgYmUgdGhlIGJlc3Qgd2F5Lg0KDQo+IA0KPj4+IA0KPj4+ Pj4gCSAgcmVnX2J1Zi0+cmF3X3N1cHBseSAoQUFSQ0g2NF9TVkVfWjBfUkVHTlVNICsgaSwgemVy b19yZWcpOw0KPj4+Pj4gCX0NCj4+Pj4+IA0KPj4+Pj4gQEAgLTI0MCw3ICsyNzUsNyBAQCBhYXJj aDY0X3N2ZV9yZWdzX2NvcHlfZnJvbV9yZWdfYnVmIChjb25zdCBzdHJ1Y3QgcmVnX2J1ZmZlcl9j b21tb24gKnJlZ19idWYsDQo+Pj4+PiAJIGtlcm5lbCwgd2hpY2ggaXMgd2h5IHdlIHRyeSB0byBh dm9pZCBpdC4gICovDQo+Pj4+PiANCj4+Pj4+ICAgICAgIGJvb2wgaGFzX3N2ZV9zdGF0ZSA9IGZh bHNlOw0KPj4+Pj4gLSAgICAgIGNoYXIgKnplcm9fcmVnID0gKGNoYXIgKikgYWxsb2NhIChTVkVf UFRfU1ZFX1pSRUdfU0laRSAodnEpKTsNCj4+Pj4+ICsgICAgICBnZGJfYnl0ZSAqemVyb19yZWcg PSAoZ2RiX2J5dGUgKikgYWxsb2NhIChTVkVfUFRfU1ZFX1pSRUdfU0laRSAodnEpKTsNCj4+Pj4+ ICAgICAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqZnBzaW1kDQo+Pj4+PiAJPSAoc3RydWN0 IHVzZXJfZnBzaW1kX3N0YXRlICopKGJhc2UgKyBTVkVfUFRfRlBTSU1EX09GRlNFVCk7DQo+Pj4+ PiANCj4+Pj4+IEBAIC0yNzQsNiArMzA5LDE4IEBAIGFhcmNoNjRfc3ZlX3JlZ3NfY29weV9mcm9t X3JlZ19idWYgKGNvbnN0IHN0cnVjdCByZWdfYnVmZmVyX2NvbW1vbiAqcmVnX2J1ZiwNCj4+Pj4+ IAkgd3JpdGUgb3V0IHN0YXRlIGFuZCByZXR1cm4uICAqLw0KPj4+Pj4gICAgICAgaWYgKCFoYXNf c3ZlX3N0YXRlKQ0KPj4+Pj4gCXsNCj4+Pj4+ICsJICAvKiBXQVJOSU5HOiBTSU1EIHN0YXRlIGlz IGxhaWQgb3V0IGluIG1lbW9yeSBpbiB0YXJnZXQtZW5kaWFuIGZvcm1hdCwNCj4+Pj4+ICsJICAg ICB3aGlsZSBTVkUgc3RhdGUgaXMgbGFpZCBvdXQgaW4gYW4gZW5kaWFubmVzcy1pbmRlcGVuZGVu dCBmb3JtYXQNCj4+Pj4+ICsJICAgICAoTEUpLg0KPj4+Pj4gKw0KPj4+Pj4gKwkgICAgIFNvIHdl IGhhdmUgYSBjb3VwbGUgY2FzZXMgdG8gY29uc2lkZXI6DQo+Pj4+PiArDQo+Pj4+PiArCSAgICAg MSAtIElmIHRoZSB0YXJnZXQgaXMgYmlnIGVuZGlhbiwgdGhlbiBTSU1EIHN0YXRlIGlzIGJpZyBl bmRpYW4sDQo+Pj4+PiArCSAgICAgcmVxdWlyaW5nIGEgYnl0ZXN3YXAuDQo+Pj4+PiArDQo+Pj4+ PiArCSAgICAgMiAtIElmIHRoZSB0YXJnZXQgaXMgbGl0dGxlIGVuZGlhbiwgdGhlbiBTSU1EIHN0 YXRlIGlzIGxpdHRsZQ0KPj4+Pj4gKwkgICAgIGVuZGlhbiwgd2hpY2ggbWF0Y2hlcyB0aGUgU1ZF IGZvcm1hdCwgc28gbm8gYnl0ZXN3YXAgaXMgbmVlZGVkLiAqLw0KPj4+Pj4gKw0KPj4+Pj4gCSAg LyogVGhlIGNvbGxlY3RzIG9mIHRoZSBaIHJlZ2lzdGVycyB3aWxsIG92ZXJmbG93IHRoZSBzaXpl IG9mIGEgdnJlZy4NCj4+Pj4+IAkgICAgIFRoZXJlIGlzIGVub3VnaCBzcGFjZSBpbiB0aGUgc3Ry dWN0dXJlIHRvIGFsbG93IGZvciB0aGlzLCBidXQgd2UNCj4+Pj4+IAkgICAgIGNhbm5vdCBvdmVy ZmxvdyBpbnRvIHRoZSBuZXh0IHJlZ2lzdGVyIGFzIHdlIG1pZ2h0IG5vdCBiZQ0KPj4+Pj4gQEAg LTI4NSw3ICszMzIsOSBAQCBhYXJjaDY0X3N2ZV9yZWdzX2NvcHlfZnJvbV9yZWdfYnVmIChjb25z dCBzdHJ1Y3QgcmVnX2J1ZmZlcl9jb21tb24gKnJlZ19idWYsDQo+Pj4+PiAJCSAgPT0gcmVnX2J1 Zi0+Z2V0X3JlZ2lzdGVyX3N0YXR1cyAoQUFSQ0g2NF9TVkVfWjBfUkVHTlVNICsgaSkpDQo+Pj4+ PiAJCXsNCj4+Pj4+IAkJICByZWdfYnVmLT5yYXdfY29sbGVjdCAoQUFSQ0g2NF9TVkVfWjBfUkVH TlVNICsgaSwgemVyb19yZWcpOw0KPj4+Pj4gLQkJICBtZW1jcHkgKCZmcHNpbWQtPnZyZWdzW2ld LCB6ZXJvX3JlZywgc2l6ZW9mIChfX2ludDEyOF90KSk7DQo+Pj4+PiArCQkgIC8qIEhhbmRsZSBi aWcgZW5kaWFuL2xpdHRsZSBlbmRpYW4gU0lNRC9TVkUgY29udmVyc2lvbi4gICovDQo+Pj4+PiAr CQkgIGFhcmNoNjRfbWF5YmVfc3dhYjEyOCAoemVyb19yZWcpOw0KPj4+Pj4gKwkJICBtZW1jcHkg KCZmcHNpbWQtPnZyZWdzW2ldLCB6ZXJvX3JlZywgMTYpOw0KPj4+Pj4gCQl9DQo+Pj4+PiAJICAg IH0NCj4+Pj4+IA0KPj4+Pj4gZGlmZiAtLWdpdCBhL2dkYi90cmFkLWZyYW1lLmMgYi9nZGIvdHJh ZC1mcmFtZS5jDQo+Pj4+PiBpbmRleCBhNmE4NDc5MGE5Li44YTFhYTgxOGFkIDEwMDY0NA0KPj4+ Pj4gLS0tIGEvZ2RiL3RyYWQtZnJhbWUuYw0KPj4+Pj4gKysrIGIvZ2RiL3RyYWQtZnJhbWUuYw0K Pj4+Pj4gQEAgLTU2LDYgKzU2LDcgQEAgdHJhZF9mcmFtZV9yZXNldF9zYXZlZF9yZWdzIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCj4+Pj4+ICAgICB7DQo+Pj4+PiAgICAgICByZWdzW3JlZ251 bV0ucmVhbHJlZyA9IHJlZ251bTsNCj4+Pj4+ICAgICAgIHJlZ3NbcmVnbnVtXS5hZGRyID0gLTE7 DQo+Pj4+PiArICAgICAgcmVnc1tyZWdudW1dLmRhdGEgPSBudWxscHRyOw0KPj4+Pj4gICAgIH0N Cj4+Pj4+IH0NCj4+Pj4+IA0KPj4+Pj4gQEAgLTgzLDcgKzg0LDcgQEAgdHJhZF9mcmFtZV9hbGxv Y19zYXZlZF9yZWdzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSkNCj4+Pj4+ICAgcmV0 dXJuIHRyYWRfZnJhbWVfYWxsb2Nfc2F2ZWRfcmVncyAoZ2RiYXJjaCk7DQo+Pj4+PiB9DQo+Pj4+ PiANCj4+Pj4+IC1lbnVtIHsgVEZfUkVHX1ZBTFVFID0gLTEsIFRGX1JFR19VTktOT1dOID0gLTIg fTsNCj4+Pj4+ICtlbnVtIHsgVEZfUkVHX1ZBTFVFID0gLTEsIFRGX1JFR19VTktOT1dOID0gLTIs IFRGX1JFR19WQUxVRV9CWVRFUyA9IC0zIH07DQo+Pj4+PiANCj4+Pj4+IGludA0KPj4+Pj4gdHJh ZF9mcmFtZV92YWx1ZV9wIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgdGhpc19zYXZlZF9y ZWdzW10sIGludCByZWdudW0pDQo+Pj4+PiBAQCAtMTA2LDYgKzEwNywxNiBAQCB0cmFkX2ZyYW1l X3JlYWxyZWdfcCAoc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1td LA0KPj4+Pj4gCSAgJiYgdGhpc19zYXZlZF9yZWdzW3JlZ251bV0uYWRkciA9PSAtMSk7DQo+Pj4+ PiB9DQo+Pj4+PiANCj4+Pj4+ICsvKiBTZWUgdHJhZC1mcmFtZS5oLiAgKi8NCj4+Pj4+ICsNCj4+ Pj4+ICtib29sDQo+Pj4+PiArdHJhZF9mcmFtZV92YWx1ZV9ieXRlc19wIChzdHJ1Y3QgdHJhZF9m cmFtZV9zYXZlZF9yZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+Pj4+PiArCQkJICBpbnQgcmVnbnVt KQ0KPj4+Pj4gK3sNCj4+Pj4+ICsgIHJldHVybiAodGhpc19zYXZlZF9yZWdzW3JlZ251bV0ucmVh bHJlZyA9PSBURl9SRUdfVkFMVUVfQllURVMNCj4+Pj4+ICsJICAmJiB0aGlzX3NhdmVkX3JlZ3Nb cmVnbnVtXS5kYXRhICE9IG51bGxwdHIpOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+IHZvaWQN Cj4+Pj4+IHRyYWRfZnJhbWVfc2V0X3ZhbHVlIChzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcg dGhpc19zYXZlZF9yZWdzW10sDQo+Pj4+PiAJCSAgICAgIGludCByZWdudW0sIExPTkdFU1QgdmFs KQ0KPj4+Pj4gQEAgLTIyNCw2ICsyMzUsMzUgQEAgdHJhZF9mcmFtZV9zZXRfdW5rbm93biAoc3Ry dWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+Pj4gICB0aGlz X3NhdmVkX3JlZ3NbcmVnbnVtXS5hZGRyID0gLTE7DQo+Pj4+PiB9DQo+Pj4+PiANCj4+Pj4+ICsv KiBTZWUgdHJhZC1mcmFtZS5oLiAgKi8NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdHJh ZF9mcmFtZV9zZXRfdmFsdWVfYnl0ZXMgKHN0cnVjdCB0cmFkX2ZyYW1lX3NhdmVkX3JlZyB0aGlz X3NhdmVkX3JlZ3NbXSwNCj4+Pj4+ICsJCQkgICAgaW50IHJlZ251bSwgY29uc3QgZ2RiX2J5dGUg KmJ5dGVzLA0KPj4+Pj4gKwkJCSAgICBzaXplX3Qgc2l6ZSkNCj4+Pj4+ICt7DQo+Pj4+PiArICB0 aGlzX3NhdmVkX3JlZ3NbcmVnbnVtXS5yZWFscmVnID0gVEZfUkVHX1ZBTFVFX0JZVEVTOw0KPj4+ Pj4gKw0KPj4+Pj4gKyAgLyogQWxsb2NhdGUgdGhlIHNwYWNlIGFuZCBjb3B5IHRoZSBkYXRhIGJ5 dGVzLiAgKi8NCj4+Pj4+ICsgIHRoaXNfc2F2ZWRfcmVnc1tyZWdudW1dLmRhdGEgPSBGUkFNRV9P QlNUQUNLX0NBTExPQyAoc2l6ZSwgZ2RiX2J5dGUpOw0KPj4+PiBBbSBJIHJpZ2h0IHRvIGFzc3Vt ZSB0aGlzIG1lYW5zIGRhdGEgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVuYWxsb2NhdGVkIHdoZW4N Cj4+Pj4gdGhlIHRyYWRfZnJhbWVfc2F2ZWRfcmVnIGdvZXMgb3V0IG9mIHNjb3BlPw0KPj4+IA0K Pj4+IE5vdCB3aGVuIGl0IGdvZXMgb3V0IG9mIHNjb3BlLCBidXQgd2hlbiBhbGwgdGhlIGZyYW1l LXJlbGF0ZWQgZGF0YSBpcyBmcmVlZCBieSBHREIganVzdCBiZWZvcmUgcmVzdGFydGluZyBpbmZl cmlvciBtb3ZlbWVudC4NCj4+IE9rLg0KPj4+IA0KPj4+Pj4gKyAgbWVtY3B5ICh0aGlzX3NhdmVk X3JlZ3NbcmVnbnVtXS5kYXRhLCBieXRlcywgc2l6ZSk7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+ Pj4gKy8qIFNlZSB0cmFkLWZyYW1lLmguICAqLw0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ ICt0cmFkX2ZyYW1lX3NldF9yZWdfdmFsdWVfYnl0ZXMgKHN0cnVjdCB0cmFkX2ZyYW1lX2NhY2hl ICp0aGlzX3RyYWRfY2FjaGUsDQo+Pj4+PiArCQkJCWludCByZWdudW0sIGNvbnN0IGdkYl9ieXRl ICpieXRlcywNCj4+Pj4+ICsJCQkJc2l6ZV90IHNpemUpDQo+Pj4+PiArew0KPj4+Pj4gKyAgLyog RXh0ZXJuYWwgaW50ZXJmYWNlIGZvciB1c2VycyBvZiB0cmFkX2ZyYW1lX2NhY2hlDQo+Pj4+PiAr ICAgICAod2hvIGNhbm5vdCBhY2Nlc3MgdGhlIHByZXZfcmVncyBvYmplY3QgZGlyZWN0bHkpLiAg Ki8NCj4+Pj4+ICsgIHRyYWRfZnJhbWVfc2V0X3ZhbHVlX2J5dGVzICh0aGlzX3RyYWRfY2FjaGUt PnByZXZfcmVncywgcmVnbnVtLCBieXRlcywNCj4+Pj4+ICsJCQkgICAgICBzaXplKTsNCj4+Pj4+ ICt9DQo+Pj4+PiArDQo+Pj4+PiArDQo+Pj4+PiArDQo+Pj4+PiBzdHJ1Y3QgdmFsdWUgKg0KPj4+ Pj4gdHJhZF9mcmFtZV9nZXRfcHJldl9yZWdpc3RlciAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNf ZnJhbWUsDQo+Pj4+PiAJCQkgICAgICBzdHJ1Y3QgdHJhZF9mcmFtZV9zYXZlZF9yZWcgdGhpc19z YXZlZF9yZWdzW10sDQo+Pj4+PiBAQCAtMjQwLDYgKzI4MCwxMCBAQCB0cmFkX2ZyYW1lX2dldF9w cmV2X3JlZ2lzdGVyIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSwNCj4+Pj4+ICAgICAv KiBUaGUgcmVnaXN0ZXIncyB2YWx1ZSBpcyBhdmFpbGFibGUuICAqLw0KPj4+Pj4gICAgIHJldHVy biBmcmFtZV91bndpbmRfZ290X2NvbnN0YW50ICh0aGlzX2ZyYW1lLCByZWdudW0sDQo+Pj4+PiAJ CQkJICAgICAgdGhpc19zYXZlZF9yZWdzW3JlZ251bV0uYWRkcik7DQo+Pj4+PiArICBlbHNlIGlm ICh0cmFkX2ZyYW1lX3ZhbHVlX2J5dGVzX3AgKHRoaXNfc2F2ZWRfcmVncywgcmVnbnVtKSkNCj4+ Pj4+ICsgICAgLyogVGhlIHJlZ2lzdGVyJ3MgdmFsdWUgaXMgYXZhaWxhYmxlIGFzIGEgc2VxdWVu Y2Ugb2YgYnl0ZXMuICAqLw0KPj4+Pj4gKyAgICByZXR1cm4gZnJhbWVfdW53aW5kX2dvdF9ieXRl cyAodGhpc19mcmFtZSwgcmVnbnVtLA0KPj4+Pj4gKwkJCQkgICB0aGlzX3NhdmVkX3JlZ3NbcmVn bnVtXS5kYXRhKTsNCj4+Pj4+ICAgZWxzZQ0KPj4+Pj4gICAgIHJldHVybiBmcmFtZV91bndpbmRf Z290X29wdGltaXplZCAodGhpc19mcmFtZSwgcmVnbnVtKTsNCj4+Pj4+IH0NCj4+Pj4+IGRpZmYg LS1naXQgYS9nZGIvdHJhZC1mcmFtZS5oIGIvZ2RiL3RyYWQtZnJhbWUuaA0KPj4+Pj4gaW5kZXgg N2I1Nzg1NjE2ZS4uMzhkYjQzOTU3OSAxMDA2NDQNCj4+Pj4+IC0tLSBhL2dkYi90cmFkLWZyYW1l LmgNCj4+Pj4+ICsrKyBiL2dkYi90cmFkLWZyYW1lLmgNCj4+Pj4+IEBAIC01Miw2ICs1MiwxMiBA QCB2b2lkIHRyYWRfZnJhbWVfc2V0X3JlZ19yZWdtYXAgKHN0cnVjdCB0cmFkX2ZyYW1lX2NhY2hl ICp0aGlzX3RyYWRfY2FjaGUsDQo+Pj4+PiB2b2lkIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZSAo c3RydWN0IHRyYWRfZnJhbWVfY2FjaGUgKnRoaXNfY2FjaGUsDQo+Pj4+PiAJCQkgICAgICAgaW50 IHJlZ251bSwgTE9OR0VTVCB2YWwpOw0KPj4+Pj4gDQo+Pj4+PiArLyogR2l2ZW4gdGhlIGNhY2hl IGluIFRISVNfVFJBRF9DQUNIRSwgc2V0IHRoZSB2YWx1ZSBvZiBSRUdOVU0gdG8gdGhlIGJ5dGVz DQo+Pj4+PiArICAgY29udGFpbmVkIGluIEJZVEVTIHdpdGggc2l6ZSBTSVpFLiAgKi8NCj4+Pj4+ ICt2b2lkIHRyYWRfZnJhbWVfc2V0X3JlZ192YWx1ZV9ieXRlcyAoc3RydWN0IHRyYWRfZnJhbWVf Y2FjaGUgKnRoaXNfdHJhZF9jYWNoZSwNCj4+Pj4+ICsJCQkJICAgICBpbnQgcmVnbnVtLCBjb25z dCBnZGJfYnl0ZSAqYnl0ZXMsDQo+Pj4+PiArCQkJCSAgICAgc2l6ZV90IHNpemUpOw0KPj4+Pj4g Kw0KPj4+Pj4gc3RydWN0IHZhbHVlICp0cmFkX2ZyYW1lX2dldF9yZWdpc3RlciAoc3RydWN0IHRy YWRfZnJhbWVfY2FjaGUgKnRoaXNfdHJhZF9jYWNoZSwNCj4+Pj4+IAkJCQkgICAgICAgc3RydWN0 IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUsDQo+Pj4+PiAJCQkJICAgICAgIGludCByZWdudW0pOw0K Pj4+Pj4gQEAgLTg2LDYgKzkyLDggQEAgc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnDQo+Pj4+ PiB7DQo+Pj4+PiAgIExPTkdFU1QgYWRkcjsgLyogQSBDT1JFX0FERFIgZml0cyBpbiBhIGxvbmdl c3QuICAqLw0KPj4+Pj4gICBpbnQgcmVhbHJlZzsNCj4+Pj4+ICsgIC8qIFJlZ2lzdGVyIGRhdGEg KGZvciB2YWx1ZXMgdGhhdCBkb24ndCBmaXQgaW4gQUREUikuICAqLw0KPj4+Pj4gKyAgZ2RiX2J5 dGUgKmRhdGE7DQo+Pj4+PiB9Ow0KPj4+Pj4gDQo+Pj4+PiAvKiBFbmNvZGUgUkVHTlVNIHZhbHVl IGluIHRoZSB0cmFkLWZyYW1lLiAgKi8NCj4+Pj4+IEBAIC0xMDQsNiArMTEyLDEyIEBAIHZvaWQg dHJhZF9mcmFtZV9zZXRfYWRkciAoc3RydWN0IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfdHJh ZF9jYWNoZVtdLA0KPj4+Pj4gdm9pZCB0cmFkX2ZyYW1lX3NldF91bmtub3duIChzdHJ1Y3QgdHJh ZF9mcmFtZV9zYXZlZF9yZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+Pj4+PiAJCQkgICAgIGludCBy ZWdudW0pOw0KPj4+Pj4gDQo+Pj4+PiArLyogRW5jb2RlIFJFR05VTSB2YWx1ZSBpbiB0aGUgdHJh ZC1mcmFtZSBhcyBhIHNlcXVlbmNlIG9mIGJ5dGVzLiAgVGhpcyBpcw0KPj4+Pj4gKyAgIHVzZWZ1 bCB3aGVuIHRoZSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB3aGF0IHByaW1pdGl2ZSB0eXBlcyBjYW4g aG9sZC4gICovDQo+Pj4+PiArdm9pZCB0cmFkX2ZyYW1lX3NldF92YWx1ZV9ieXRlcyAoc3RydWN0 IHRyYWRfZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+Pj4gKwkJCQkgaW50 IHJlZ251bSwgY29uc3QgZ2RiX2J5dGUgKmJ5dGVzLA0KPj4+Pj4gKwkJCQkgc2l6ZV90IHNpemUp Ow0KPj4+Pj4gKw0KPj4+Pj4gLyogQ29udmVuaWVuY2UgZnVuY3Rpb25zLCByZXR1cm4gbm9uLXpl cm8gaWYgdGhlIHJlZ2lzdGVyIGhhcyBiZWVuDQo+Pj4+PiAgICBlbmNvZGVkIGFzIHNwZWNpZmll ZC4gICovDQo+Pj4+PiBpbnQgdHJhZF9mcmFtZV92YWx1ZV9wIChzdHJ1Y3QgdHJhZF9mcmFtZV9z YXZlZF9yZWcgdGhpc19zYXZlZF9yZWdzW10sDQo+Pj4+PiBAQCAtMTEzLDYgKzEyNywxMSBAQCBp bnQgdHJhZF9mcmFtZV9hZGRyX3AgKHN0cnVjdCB0cmFkX2ZyYW1lX3NhdmVkX3JlZyB0aGlzX3Nh dmVkX3JlZ3NbXSwNCj4+Pj4+IGludCB0cmFkX2ZyYW1lX3JlYWxyZWdfcCAoc3RydWN0IHRyYWRf ZnJhbWVfc2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+Pj4gCQkJICBpbnQgcmVnbnVt KTsNCj4+Pj4+IA0KPj4+Pj4gKy8qIFJldHVybiBUUlVFIGlmIFJFR05VTSBpcyBzdG9yZWQgYXMg YSBzZXF1ZW5jZSBvZiBieXRlcywgYW5kIEZBTFNFDQo+Pj4+PiArICAgb3RoZXJ3aXNlLiAgKi8N Cj4+Pj4+ICtib29sIHRyYWRfZnJhbWVfdmFsdWVfYnl0ZXNfcCAoc3RydWN0IHRyYWRfZnJhbWVf c2F2ZWRfcmVnIHRoaXNfc2F2ZWRfcmVnc1tdLA0KPj4+Pj4gKwkJCSAgICAgIGludCByZWdudW0p Ow0KPj4+Pj4gKw0KPj4+Pj4gLyogUmVzZXQgdGhlIHNhdmUgcmVncyBjYWNoZSwgc2V0dGluZyBy ZWdpc3RlciB2YWx1ZXMgdG8gLTEuICAqLw0KPj4+Pj4gdm9pZCB0cmFkX2ZyYW1lX3Jlc2V0X3Nh dmVkX3JlZ3MgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KPj4+Pj4gCQkJCSAgc3RydWN0IHRy YWRfZnJhbWVfc2F2ZWRfcmVnICpyZWdzKTsNCj4+Pj4+IC0tIA0KPj4+Pj4gMi4yNS4xDQo+Pj4+ PiANCg0K