From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smarthost2.atos.net (smtppost.atos.net [193.56.114.177]) by sourceware.org (Postfix) with ESMTPS id 1ADF4385840F for ; Thu, 17 Mar 2022 15:01:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1ADF4385840F X-IronPort-AV: E=Sophos;i="5.90,188,1643670000"; d="scan'208,223";a="327972941" X-MGA-submission: =?us-ascii?q?MDGPqwFhMK7uEn6uLieCu+xeSGME7LsquWAi/9?= =?us-ascii?q?FLL18qbo0s9aeXY2G6ezIU7sAhQMNbnYogNFapsp0uLIgOC5qtpeFn1a?= =?us-ascii?q?tkZFcAG3JWTH8fK62Px+RZNLlXabXWtJKyhSR5ughyxBGptyK4CETclw?= =?us-ascii?q?xx?= Received: from mail.sis.atos.net (HELO GITEXCPRDMB13.ww931.my-it-solutions.net) ([10.89.28.143]) by smarthost2.atos.net with ESMTP/TLS/AES256-GCM-SHA384; 17 Mar 2022 16:01:27 +0100 Received: from GITEXCPRDMB14.ww931.my-it-solutions.net (10.89.28.144) by GITEXCPRDMB13.ww931.my-it-solutions.net (10.89.28.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.18; Thu, 17 Mar 2022 16:01:27 +0100 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (172.16.214.171) by GITEXCPRDMB14.ww931.my-it-solutions.net (10.89.28.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.18 via Frontend Transport; Thu, 17 Mar 2022 16:01:27 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HNjOwvcrIl/sVpI359op0B0BPrjs3oZc18KBiOAkXMvpp56mMPLPOMb3qVecSGH8ITR+oZ6o0aNrYQS4onZ9ieyzvfwAUDp9JDR8imFsFISnClfxyiELQH7UycUHroEYUxKIlMbqPhCcBZfBfp6tPEgCpb+IPfPt9+sDb6sfzvbW/8tGkNQb5jtbTbyl5gTCgfi5RvDHa4joaHEfnDb3YY/uT4N6tEk/qbdOHKm83+C8SKvy2ZIGHnSu3+li/Tl5zJLyszS1XUi/rJAkoZZX+CC4LkB55IuRW27AkBRnPx4ZKQogDZuJJsD0+gJJeWR/GPpNPjXLGAOnZLtrjGOK9A== 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=c0a9lPy58l7dEpFw9rgCWxczuSSHn+E7RObZLTxRAvc=; b=CFEf6psGT2TtHwd9gjGslwJJwVBGnLiAeZpFnLtdaqcG+JcJORAseMAM2WBr0msTqmgfuLv2Xlh3jvGwgLy1UVL0lcVWadCRE87SWPLAuE6z36c19SFu0heHAxUDmfzZ6RoNdyAhJRwKj12Adl8nANkXEIPHbugyQbkGRBuPps+t3yrFxmLJbZ8Zs3XnNRDthnTY+70Ha3ckdkzN64R0A4tNxrkywLZ69c2MNmZDx6QE5/w9+qS/dBXJi9ux4Bt4qusIHV1M8gcIL4IKFxD2QWd6AHg1eOOT3PSxKXDKk3MzbzpFR9BAvjbYN0Fw95PBLNa5EZQzRApU5omXhrBWyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=atos.net; dmarc=pass action=none header.from=atos.net; dkim=pass header.d=atos.net; arc=none Received: from PA4PR02MB6686.eurprd02.prod.outlook.com (2603:10a6:102:ff::14) by AM0PR02MB4370.eurprd02.prod.outlook.com (2603:10a6:208:f8::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Thu, 17 Mar 2022 15:01:26 +0000 Received: from PA4PR02MB6686.eurprd02.prod.outlook.com ([fe80::985a:b393:d9c:9379]) by PA4PR02MB6686.eurprd02.prod.outlook.com ([fe80::985a:b393:d9c:9379%4]) with mapi id 15.20.5081.017; Thu, 17 Mar 2022 15:01:26 +0000 From: "CHIGOT, CLEMENT" To: "binutils@sourceware.org" CC: Kavana N Bhat , Ayappan P2 , "pro@helflym.eu" Subject: [PATCH 1/2] bfd: move the generation of the XCOFF .loader section after allocations Thread-Topic: [PATCH 1/2] bfd: move the generation of the XCOFF .loader section after allocations Thread-Index: AQHYOgvHnDNZgb8V3USfTEl2DudrBw== Date: Thu, 17 Mar 2022 15:01:25 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Enabled=True; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_SiteId=33440fc6-b7c7-412c-bb73-0e70b0198d5a; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_SetDate=2022-03-17T15:01:24.911Z; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Name=Atos For Internal Use - All Employees; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_ContentBits=0; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Method=Standard; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6e4b0196-af8f-4c37-fd1a-08da08270245 x-ms-traffictypediagnostic: AM0PR02MB4370:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tUKo+KbVrP02kqfWFFbGyaJTxx0OtubeiIdGiJ5CQS30CwxpKDkXwXb4L+HWzN2xC/e/Vy5vzinUsySIbaLColIXG9PRrvDhJ18ixLwDyHX2fILHYMtBdQFovhXG8ic3qS6eMQxcSvcZfdW2w8tC1x/OpyxyIQ4Jw9UapO27gO5gQe80DubLO0wFxIAmSXqH10a6Q8Cbcq1UtJQNhAjH3nhvdoJyuSDDdPPg1/Re02t+9niQlJSwjXvC1xqpO4jCp1N/JkJa2f4I2m130Fllriqo5qdlEJEUA3im457+pNQx730gfKLXzQCy3ldmApwb2M4U6sbu91bDE8X9mpkV6IE78rtLiiCY7T+4pWF3jYx0lkxyTODDKNEGr++EdFdIHXYbgKrXrz99XPFv/m6tBkWwLv2g2NUZFtHwjBQpTNAcNDAAu6of0jZpnl5oyn4L/PJUisnmrdYy+/XPcsf4x+O9vVVgSGhWtczGAMsYF7uvgOAotp/eDXlG/49H/8laGSJEw7/XtxLx6If1VuEimMNkR/r/9EVjkBkGVpff/nAJrZhV64KKmKU8/LtZZ/BXqn4pU3336X/rizUB6Qd/zbG2Av2tlBCgXZZDd+TZeKjxbf1gjF4WGvgm4pWBrdPmdU4yJHyfbQqq0LRu/RdN3th0DuqpBGFIG8cgwY6xQvzFeLTMRFFXTxM1MaZOEMg6hPb7ykTXIY1g+s6OwR6RWTmO/XLmHt+0dA0R5gZcLwA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR02MB6686.eurprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(55016003)(8936002)(6916009)(54906003)(2906002)(4326008)(38070700005)(8676002)(186003)(26005)(52536014)(99936003)(86362001)(71200400001)(316002)(122000001)(82960400001)(38100700002)(64756008)(76116006)(91956017)(66556008)(5660300002)(66446008)(66946007)(66476007)(33656002)(9686003)(508600001)(7696005)(6506007)(142923001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?JFyezoWCGFJkb4YwJkgvvIAvIfERaoxNXZilrewmwPgvOKdFu1ZcWLmxJv?= =?iso-8859-1?Q?+Elio4N/wQNlWGc3QbBNCyINhkexk/pNiDaUqGgZPUrqvbUoXY+fwevJ6t?= =?iso-8859-1?Q?s62N9dWcirEB3YEZ6Tu4Jy9SH4Jq9LtjrOZJfl5jDA0/qX7hlUocdNXKfH?= =?iso-8859-1?Q?06AqGjJPTc/eir3klevgugxbVE3qAUozdJJxVYKdocfgB43zSLF1jOz5mY?= =?iso-8859-1?Q?9rxOOKyT1UfAaQut1HuAOjp/sPbmCys5dfz8QppekhiRzWaGyjFZClgWZ/?= =?iso-8859-1?Q?P1h3b2AhOpoSKt2QjbcOKlFnbJud4m1RZO6X9MGp9bde9ilqeYq7KfgBQh?= =?iso-8859-1?Q?vUAACXkHWFudLla7LkfvB48TM0MioNAXThPo2xlA+6MUnAAQYLxkTT9wig?= =?iso-8859-1?Q?hcu6ExqHqjEtiZEFNfS2zj4Tos61rITlh/YacIlMs10Ty1LjoxquEdTawD?= =?iso-8859-1?Q?MDTX9fjWp2ZuC81ufa27nmQi2kyXJZotgwQtkjsCdo04cdTv3fweP2eSf3?= =?iso-8859-1?Q?UcXhHeuhZOGgJ3QLyT06KmG3ZzSGCFORB1ooo41juZiUb7JrcQbKWKgnTy?= =?iso-8859-1?Q?m/ZP97PbEklnMcZcqezRzBLO8fUGRUwZv/rPGja855KV2E80C4hzrnL9Jz?= =?iso-8859-1?Q?OE1oz798AnPAQ6rou+h4Iqv/+VV97Qyrh5WJnVjB9CVw5HsA52ieTDVjx5?= =?iso-8859-1?Q?1ehZl/4LQzrgfozYkIVEPl15g97CeDnfBVeYKw2ysxBzKZqNjiMD4fodmz?= =?iso-8859-1?Q?1kAoKGpDHqGCUkKI5UHKUUGBk6SbpJhgm7sbGy/cCAX/jZCASMAJOtaBc6?= =?iso-8859-1?Q?0vIsq/LTh8uHCN+0yWeuZKqBCZ1ZB625nQpM8uOXLHAFKjm8ob4o2U/Ts2?= =?iso-8859-1?Q?bbXCCLBWJOGdWEJJLdrm8BZWHHukbPo0HiaCZLPGwHW/2bmlI/TupnmN2P?= =?iso-8859-1?Q?ECvVbCK0KV53ilQVNEFISeEHKzOX2SzxVgUIiPbNdd5kDOOIHp6CQTV+aa?= =?iso-8859-1?Q?+PWiGBvSZ0/v4mWVqZT9oWLi9tTa5eLpncRZf1AhjBdlpKnVN28lUx4xyB?= =?iso-8859-1?Q?LEOEI1zO0Ldpv5+di4GPyaoCrMB/AJ488vqYB1VFIHdGi0Tdq+630hK2Pa?= =?iso-8859-1?Q?PbXPRV4MGrUBM/rfCEqaR2abFItQSzZi4g9aGzWh+F6AGp3zP9Kkq0Vcdg?= =?iso-8859-1?Q?93wm+0FYB1hSyOcGL0dkZ4TQSh0ZIdS15eacl3p5gmWrF2SyKW1Q91BUyW?= =?iso-8859-1?Q?RJhSpnwgHEbrRXcC2q2fC2LgWUMtKozIQUw6Uu9XFM7Z549tvGI3v4p+6y?= =?iso-8859-1?Q?kDcHb2yHu+1Lg3bjUbzXCcnAED8cvgE6ijaGv9MgCUdSJN2LBoGu8UkB8I?= =?iso-8859-1?Q?xB3U6zIcAZOc1sP+kbNvpSpy3Zcy8reBDG0WBZJ4Aav6I2EzWm0M7OTVz0?= =?iso-8859-1?Q?yXsrdY/MQIKN050+AfxrdZWLuVD/NJYfMdipRYU25kDTioVCqM8gN3wRH2?= =?iso-8859-1?Q?gnp55JuTDWfjz0jL73OpKD?= Content-Type: multipart/mixed; boundary="_002_PA4PR02MB66864D1E2C92DCD464494F00EA129PA4PR02MB6686eurp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PA4PR02MB6686.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e4b0196-af8f-4c37-fd1a-08da08270245 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Mar 2022 15:01:26.0140 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 33440fc6-b7c7-412c-bb73-0e70b0198d5a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RHAeHyvsiufywdLsKT7o2c6OuxkB+20BJYW0NyPdCSTAOlVikE7kwdUfhVIjSFE8Odz70P7B5gGrtSpe11XE4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR02MB4370 X-OriginatorOrg: atos.net X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Mar 2022 15:01:35 -0000 --_002_PA4PR02MB66864D1E2C92DCD464494F00EA129PA4PR02MB6686eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Stubs (added in a later patch) will generate new .loader symbols, once=0A= the allocations have been done. Thus, the .loader section cannot be=0A= layout before that.=0A= =0A= bfd/ChangeLog:=0A= =0A= * coff-rs6000.c (_bfd_xcoff_put_ldsymbol_name): Write len in=0A= ldinfo->strings instead of directly in the output_bfd.=0A= * coff64-rs6000.c (_bfd_xcoff64_put_ldsymbol_name): Likewise.=0A= * xcofflink.c (struct xcoff_link_hash_table): Remove ldrel_count=0A= field. Add ldinfo field.=0A= (xcoff_mark_symbol): Adjust to new ldinfo field.=0A= (xcoff_mark): Likewise.=0A= (bfd_xcoff_link_count_reloc): Likewise.=0A= (xcoff_build_loader_section): Split into two functions: one that=0A= build the loader section (this function) and one that only size=0A= it...=0A= (xcoff_size_loader_section): ... (this function).=0A= (bfd_xcoff_size_dynamic_sections): Adapt to new ldinfo field.=0A= Move the part where the dynamic sections are build to ...=0A= (bfd_xcoff_build_dynamic_sections): ... this function.=0A= * xcofflink.h: Add bfd_xcoff_build_dynamic_sections prototype.=0A= =0A= include/ChangeLog:=0A= =0A= * coff/xcoff.h (struct xcoff_loader_info): Add ldrel_count and=0A= libpath fields.=0A= =0A= ld/ChangeLog:=0A= =0A= * emultempl/aix.em (_after_allocation): New function.=0A= --_002_PA4PR02MB66864D1E2C92DCD464494F00EA129PA4PR02MB6686eurp_ Content-Type: application/octet-stream; name="0001-bfd-move-the-generation-of-the-XCOFF-.loader-section.patch" Content-Description: 0001-bfd-move-the-generation-of-the-XCOFF-.loader-section.patch Content-Disposition: attachment; filename="0001-bfd-move-the-generation-of-the-XCOFF-.loader-section.patch"; size=19846; creation-date="Thu, 17 Mar 2022 14:32:10 GMT"; modification-date="Thu, 17 Mar 2022 14:32:10 GMT" Content-Transfer-Encoding: base64 RnJvbSBiMzUzM2FiNjEyZjhjZGFjMTMwYjRmMzYxODc3OTAyMjliZjIwMGQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2w9QzM9QTltZW50PTIwQ2hpZ290Pz0gPGNs ZW1lbnQuY2hpZ290QGF0b3MubmV0PgpEYXRlOiBGcmksIDQgTWFyIDIwMjIgMTQ6Mjk6NTMgKzAx MDAKU3ViamVjdDogW1BBVENIIDEvMl0gYmZkOiBtb3ZlIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBY Q09GRiAubG9hZGVyIHNlY3Rpb24KIGFmdGVyIGFsbG9jYXRpb25zCgpTdHVicyAoYWRkZWQgaW4g YSBsYXRlciBwYXRjaCkgd2lsbCBnZW5lcmF0ZSBuZXcgLmxvYWRlciBzeW1ib2xzLCBvbmNlCnRo ZSBhbGxvY2F0aW9ucyBoYXZlIGJlZW4gZG9uZS4gVGh1cywgdGhlIC5sb2FkZXIgc2VjdGlvbiBj YW5ub3QgYmUKbGF5b3V0IGJlZm9yZSB0aGF0LgoKYmZkL0NoYW5nZUxvZzoKCgkqIGNvZmYtcnM2 MDAwLmMgKF9iZmRfeGNvZmZfcHV0X2xkc3ltYm9sX25hbWUpOiBXcml0ZSBsZW4gaW4KCSAgbGRp bmZvLT5zdHJpbmdzIGluc3RlYWQgb2YgZGlyZWN0bHkgaW4gdGhlIG91dHB1dF9iZmQuCgkqIGNv ZmY2NC1yczYwMDAuYyAoX2JmZF94Y29mZjY0X3B1dF9sZHN5bWJvbF9uYW1lKTogTGlrZXdpc2Uu CgkqIHhjb2ZmbGluay5jIChzdHJ1Y3QgeGNvZmZfbGlua19oYXNoX3RhYmxlKTogUmVtb3ZlIGxk cmVsX2NvdW50CgkgIGZpZWxkLiBBZGQgbGRpbmZvIGZpZWxkLgoJKHhjb2ZmX21hcmtfc3ltYm9s KTogQWRqdXN0IHRvIG5ldyBsZGluZm8gZmllbGQuCgkoeGNvZmZfbWFyayk6IExpa2V3aXNlLgoJ KGJmZF94Y29mZl9saW5rX2NvdW50X3JlbG9jKTogTGlrZXdpc2UuCgkoeGNvZmZfYnVpbGRfbG9h ZGVyX3NlY3Rpb24pOiBTcGxpdCBpbnRvIHR3byBmdW5jdGlvbnM6IG9uZSB0aGF0CglidWlsZCB0 aGUgbG9hZGVyIHNlY3Rpb24gKHRoaXMgZnVuY3Rpb24pIGFuZCBvbmUgdGhhdCBvbmx5IHNpemUK CWl0Li4uCgkoeGNvZmZfc2l6ZV9sb2FkZXJfc2VjdGlvbik6IC4uLiAodGhpcyBmdW5jdGlvbiku CgkoYmZkX3hjb2ZmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFkYXB0IHRvIG5ldyBsZGluZm8g ZmllbGQuCglNb3ZlIHRoZSBwYXJ0IHdoZXJlIHRoZSBkeW5hbWljIHNlY3Rpb25zIGFyZSBidWls ZCB0byAuLi4KCShiZmRfeGNvZmZfYnVpbGRfZHluYW1pY19zZWN0aW9ucyk6IC4uLiB0aGlzIGZ1 bmN0aW9uLgoJKiB4Y29mZmxpbmsuaDogQWRkIGJmZF94Y29mZl9idWlsZF9keW5hbWljX3NlY3Rp b25zIHByb3RvdHlwZS4KCmluY2x1ZGUvQ2hhbmdlTG9nOgoKCSogY29mZi94Y29mZi5oIChzdHJ1 Y3QgeGNvZmZfbG9hZGVyX2luZm8pOiBBZGQgbGRyZWxfY291bnQgYW5kCglsaWJwYXRoIGZpZWxk cy4KCmxkL0NoYW5nZUxvZzoKCgkqIGVtdWx0ZW1wbC9haXguZW0gKF9hZnRlcl9hbGxvY2F0aW9u KTogTmV3IGZ1bmN0aW9uLgotLS0KIGJmZC9jb2ZmLXJzNjAwMC5jICAgIHwgICA0ICstCiBiZmQv Y29mZjY0LXJzNjAwMC5jICB8ICAgNCArLQogYmZkL3hjb2ZmbGluay5jICAgICAgfCAyNjggKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogYmZkL3hjb2ZmbGluay5o ICAgICAgfCAgIDIgKwogaW5jbHVkZS9jb2ZmL3hjb2ZmLmggfCAgIDcgKysKIGxkL2VtdWx0ZW1w bC9haXguZW0gIHwgICA5ICsrCiA2IGZpbGVzIGNoYW5nZWQsIDE5MCBpbnNlcnRpb25zKCspLCAx MDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmZkL2NvZmYtcnM2MDAwLmMgYi9iZmQvY29m Zi1yczYwMDAuYwppbmRleCA5N2U4NGE0NDNiMC4uODY1NmRmZGI0YzQgMTAwNjQ0Ci0tLSBhL2Jm ZC9jb2ZmLXJzNjAwMC5jCisrKyBiL2JmZC9jb2ZmLXJzNjAwMC5jCkBAIC0zODgxLDggKzM4ODEs OCBAQCBfYmZkX3hjb2ZmX3B1dF9sZHN5bWJvbF9uYW1lIChiZmQgKmFiZmQgQVRUUklCVVRFX1VO VVNFRCwKIAkgIGxkaW5mby0+c3RyaW5ncyA9IG5ld3N0cmluZ3M7CiAJfQogCi0gICAgICBiZmRf cHV0XzE2IChsZGluZm8tPm91dHB1dF9iZmQsIChiZmRfdm1hKSAobGVuICsgMSksCi0JCSAgbGRp bmZvLT5zdHJpbmdzICsgbGRpbmZvLT5zdHJpbmdfc2l6ZSk7CisgICAgICBsZGluZm8tPnN0cmlu Z3NbbGRpbmZvLT5zdHJpbmdfc2l6ZV0gPSAoKGxlbiArIDEpID4+IDgpICYgMHhmZjsKKyAgICAg IGxkaW5mby0+c3RyaW5nc1tsZGluZm8tPnN0cmluZ19zaXplICsgMV0gPSAoKGxlbiArIDEpKSAm IDB4ZmY7CiAgICAgICBzdHJjcHkgKGxkaW5mby0+c3RyaW5ncyArIGxkaW5mby0+c3RyaW5nX3Np emUgKyAyLCBuYW1lKTsKICAgICAgIGxkc3ltLT5fbC5fbF9sLl9sX3plcm9lcyA9IDA7CiAgICAg ICBsZHN5bS0+X2wuX2xfbC5fbF9vZmZzZXQgPSBsZGluZm8tPnN0cmluZ19zaXplICsgMjsKZGlm ZiAtLWdpdCBhL2JmZC9jb2ZmNjQtcnM2MDAwLmMgYi9iZmQvY29mZjY0LXJzNjAwMC5jCmluZGV4 IDAxMzI2ZDQ1MDNkLi45NWFiYmI5ZTk1NyAxMDA2NDQKLS0tIGEvYmZkL2NvZmY2NC1yczYwMDAu YworKysgYi9iZmQvY29mZjY0LXJzNjAwMC5jCkBAIC02MjMsOCArNjIzLDggQEAgX2JmZF94Y29m ZjY0X3B1dF9sZHN5bWJvbF9uYW1lIChiZmQgKmFiZmQgQVRUUklCVVRFX1VOVVNFRCwKICAgICAg IGxkaW5mby0+c3RyaW5ncyA9IG5ld3N0cmluZ3M7CiAgICAgfQogCi0gIGJmZF9wdXRfMTYgKGxk aW5mby0+b3V0cHV0X2JmZCwgKGJmZF92bWEpIChsZW4gKyAxKSwKLQkgICAgICBsZGluZm8tPnN0 cmluZ3MgKyBsZGluZm8tPnN0cmluZ19zaXplKTsKKyAgbGRpbmZvLT5zdHJpbmdzW2xkaW5mby0+ c3RyaW5nX3NpemVdID0gKChsZW4gKyAxKSA+PiA4KSAmIDB4ZmY7CisgIGxkaW5mby0+c3RyaW5n c1tsZGluZm8tPnN0cmluZ19zaXplICsgMV0gPSAoKGxlbiArIDEpKSAmIDB4ZmY7CiAgIHN0cmNw eSAobGRpbmZvLT5zdHJpbmdzICsgbGRpbmZvLT5zdHJpbmdfc2l6ZSArIDIsIG5hbWUpOwogICBs ZHN5bS0+X2wuX2xfbC5fbF96ZXJvZXMgPSAwOwogICBsZHN5bS0+X2wuX2xfbC5fbF9vZmZzZXQg PSBsZGluZm8tPnN0cmluZ19zaXplICsgMjsKZGlmZiAtLWdpdCBhL2JmZC94Y29mZmxpbmsuYyBi L2JmZC94Y29mZmxpbmsuYwppbmRleCA3MGQzNzFlNGFlZC4uNmQ0YWJkZDFlZGEgMTAwNjQ0Ci0t LSBhL2JmZC94Y29mZmxpbmsuYworKysgYi9iZmQveGNvZmZsaW5rLmMKQEAgLTEwNCw5ICsxMDQs OCBAQCBzdHJ1Y3QgeGNvZmZfbGlua19oYXNoX3RhYmxlCiAgIC8qIFRoZSAubG9hZGVyIHNlY3Rp b24gd2Ugd2lsbCB1c2UgZm9yIHRoZSBmaW5hbCBvdXRwdXQuICAqLwogICBhc2VjdGlvbiAqbG9h ZGVyX3NlY3Rpb247CiAKLSAgLyogQSBjb3VudCBvZiBub24gVE9DIHJlbGF0aXZlIHJlbG9jcyB3 aGljaCB3aWxsIG5lZWQgdG8gYmUKLSAgICAgYWxsb2NhdGVkIGluIHRoZSAubG9hZGVyIHNlY3Rp b24uICAqLwotICBzaXplX3QgbGRyZWxfY291bnQ7CisgIC8qIFRoZSBzdHJ1Y3R1cmUgaG9sZGlu ZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgLmxvYWRlciBzZWN0aW9uLiAgKi8KKyAgc3RydWN0IHhj b2ZmX2xvYWRlcl9pbmZvIGxkaW5mbzsKIAogICAvKiBUaGUgLmxvYWRlciBzZWN0aW9uIGhlYWRl ci4gICovCiAgIHN0cnVjdCBpbnRlcm5hbF9sZGhkciBsZGhkcjsKQEAgLTI4NDEsNyArMjg0MCw3 IEBAIHhjb2ZmX21hcmtfc3ltYm9sIChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbywgc3RydWN0 IHhjb2ZmX2xpbmtfaGFzaF9lbnRyeSAqaCkKIAogCSAgLyogQSBmdW5jdGlvbiBkZXNjcmlwdG9y IHVzZXMgdHdvIHJlbG9jczogb25lIGZvciB0aGUKIAkgICAgIGFzc29jaWF0ZWQgY29kZSwgYW5k IG9uZSBmb3IgdGhlIFRPQyBhZGRyZXNzLiAgKi8KLQkgIHhjb2ZmX2hhc2hfdGFibGUgKGluZm8p LT5sZHJlbF9jb3VudCArPSAyOworCSAgeGNvZmZfaGFzaF90YWJsZSAoaW5mbyktPmxkaW5mby5s ZHJlbF9jb3VudCArPSAyOwogCSAgc2VjLT5yZWxvY19jb3VudCArPSAyOwogCiAJICAvKiBNYXJr IHRoZSBmdW5jdGlvbiBpdHNlbGYuICAqLwpAQCAtMjkxMyw3ICsyOTEyLDcgQEAgeGNvZmZfbWFy a19zeW1ib2wgKHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvLCBzdHJ1Y3QgeGNvZmZfbGlua19o YXNoX2VudHJ5ICpoKQogCiAJICAgICAgLyogQWxsb2NhdGUgcm9vbSBmb3IgYSBzdGF0aWMgYW5k IGR5bmFtaWMgUl9UT0MKIAkJIHJlbG9jYXRpb24uICAqLwotCSAgICAgICsreGNvZmZfaGFzaF90 YWJsZSAoaW5mbyktPmxkcmVsX2NvdW50OworCSAgICAgICsreGNvZmZfaGFzaF90YWJsZSAoaW5m byktPmxkaW5mby5sZHJlbF9jb3VudDsKIAkgICAgICArK2hkcy0+dG9jX3NlY3Rpb24tPnJlbG9j X2NvdW50OwogCiAJICAgICAgLyogU2V0IHRoZSBpbmRleCB0byAtMiB0byBmb3JjZSB0aGlzIHN5 bWJvbCB0bwpAQCAtMzA3Nyw3ICszMDc2LDcgQEAgeGNvZmZfbWFyayAoc3RydWN0IGJmZF9saW5r X2luZm8gKmluZm8sIGFzZWN0aW9uICpzZWMpCiAJICBpZiAoKHNlYy0+ZmxhZ3MgJiBTRUNfREVC VUdHSU5HKSA9PSAwCiAJICAgICAgJiYgeGNvZmZfbmVlZF9sZHJlbF9wIChpbmZvLCByZWwsIGgs IHNlYykpCiAJICAgIHsKLQkgICAgICArK3hjb2ZmX2hhc2hfdGFibGUgKGluZm8pLT5sZHJlbF9j b3VudDsKKwkgICAgICArK3hjb2ZmX2hhc2hfdGFibGUgKGluZm8pLT5sZGluZm8ubGRyZWxfY291 bnQ7CiAJICAgICAgaWYgKGggIT0gTlVMTCkKIAkJaC0+ZmxhZ3MgfD0gWENPRkZfTERSRUw7CiAJ ICAgIH0KQEAgLTMzNDEsNyArMzM0MCw3IEBAIGJmZF94Y29mZl9saW5rX2NvdW50X3JlbG9jIChi ZmQgKm91dHB1dF9iZmQsCiAgIGlmICh4Y29mZl9oYXNoX3RhYmxlIChpbmZvKS0+bG9hZGVyX3Nl Y3Rpb24pCiAgICAgewogICAgICAgaC0+ZmxhZ3MgfD0gWENPRkZfTERSRUw7Ci0gICAgICArK3hj b2ZmX2hhc2hfdGFibGUgKGluZm8pLT5sZHJlbF9jb3VudDsKKyAgICAgICsreGNvZmZfaGFzaF90 YWJsZSAoaW5mbyktPmxkaW5mby5sZHJlbF9jb3VudDsKICAgICB9CiAKICAgLyogTWFyayB0aGUg c3ltYm9sIHRvIGF2b2lkIGdhcmJhZ2UgY29sbGVjdGlvbi4gICovCkBAIC0zNjMyLDEyICszNjMx LDExIEBAIHhjb2ZmX2tlZXBfc3ltYm9sX3AgKHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvLCBi ZmQgKmlucHV0X2JmZCwKICAgcmV0dXJuIDE7CiB9CiAKLS8qIExheSBvdXQgdGhlIC5sb2FkZXIg c2VjdGlvbiwgZmlsbGluZyBpbiB0aGUgaGVhZGVyIGFuZCB0aGUgaW1wb3J0IHBhdGhzLgotICAg TElCUEFUSCBpcyBhcyBmb3IgYmZkX3hjb2ZmX3NpemVfZHluYW1pY19zZWN0aW9ucy4gICovCisv KiBDb21wdXRlIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIC5sb2FkZXIgc2VjdGlvbi4gU3RhcnQg ZmlsbGluZworICAgaXRzIGhlYWRlciBidXQgaXQgd2lsbCBiZSBmaW5hbGl6ZWQgaW4geGNvZmZf YnVpbGRfbG9hZGVyX3NlY3Rpb24uICAgKi8KIAogc3RhdGljIGJvb2wKLXhjb2ZmX2J1aWxkX2xv YWRlcl9zZWN0aW9uIChzdHJ1Y3QgeGNvZmZfbG9hZGVyX2luZm8gKmxkaW5mbywKLQkJCSAgICBj b25zdCBjaGFyICpsaWJwYXRoKQoreGNvZmZfc2l6ZV9sb2FkZXJfc2VjdGlvbiAoc3RydWN0IHhj b2ZmX2xvYWRlcl9pbmZvICpsZGluZm8pCiB7CiAgIGJmZCAqb3V0cHV0X2JmZDsKICAgc3RydWN0 IHhjb2ZmX2xpbmtfaGFzaF90YWJsZSAqaHRhYjsKQEAgLTM2NDYsNyArMzY0NCwxOCBAQCB4Y29m Zl9idWlsZF9sb2FkZXJfc2VjdGlvbiAoc3RydWN0IHhjb2ZmX2xvYWRlcl9pbmZvICpsZGluZm8s CiAgIGJmZF9zaXplX3R5cGUgc3RvZmY7CiAgIHNpemVfdCBpbXBzaXplLCBpbXBjb3VudDsKICAg YXNlY3Rpb24gKmxzZWM7Ci0gIGNoYXIgKm91dDsKKworICBvdXRwdXRfYmZkID0gbGRpbmZvLT5v dXRwdXRfYmZkOworICBodGFiID0geGNvZmZfaGFzaF90YWJsZSAobGRpbmZvLT5pbmZvKTsKKyAg bGRoZHIgPSAmaHRhYi0+bGRoZHI7CisKKyAgLyogSWYgdGhpcyBmdW5jdGlvbiBoYXMgYWxyZWFk eSBiZWVuIGNhbGxlZCAoaWUgbF92ZXJzaW9uIGlzIHNldCkKKyAgICAgYW5kIHRoZSBudW1iZXIg b2Ygc3ltYm9scyBvciByZWxvY2F0aW9ucyBoYXZlbid0IGNoYW5nZWQgc2luY2UKKyAgICAgbGFz dCBjYWxsLCB0aGUgc2l6ZSBpcyBhbHJlYWR5IGtub3duLiAgKi8KKyAgaWYgKGxkaGRyLT5sX3Zl cnNpb24gIT0gMAorICAgICAgJiYgbGRoZHItPmxfbnN5bXMgPT0gbGRpbmZvLT5sZHN5bV9jb3Vu dAorICAgICAgJiYgbGRoZHItPmxfbnJlbG9jID09IGxkaW5mby0+bGRyZWxfY291bnQpCisgICAg cmV0dXJuIHRydWU7CiAKICAgLyogV29yayBvdXQgdGhlIHNpemUgb2YgdGhlIGltcG9ydCBmaWxl IG5hbWVzLiAgRWFjaCBpbXBvcnQgZmlsZSBJRAogICAgICBjb25zaXN0cyBvZiB0aHJlZSBudWxs IHRlcm1pbmF0ZWQgc3RyaW5nczogdGhlIHBhdGgsIHRoZSBmaWxlCkBAIC0zNjU0LDMxICszNjYz LDMxIEBAIHhjb2ZmX2J1aWxkX2xvYWRlcl9zZWN0aW9uIChzdHJ1Y3QgeGNvZmZfbG9hZGVyX2lu Zm8gKmxkaW5mbywKICAgICAgb2YgbmFtZXMgaXMgdGhlIHBhdGggdG8gdXNlIHRvIGZpbmQgb2Jq ZWN0cywgd2hpY2ggdGhlIGxpbmtlciBoYXMKICAgICAgcGFzc2VkIGluIGFzIHRoZSBsaWJwYXRo IGFyZ3VtZW50LiAgRm9yIHNvbWUgcmVhc29uLCB0aGUgcGF0aAogICAgICBlbnRyeSBpbiB0aGUg b3RoZXIgaW1wb3J0IGZpbGUgbmFtZXMgYXBwZWFycyB0byBhbHdheXMgYmUgZW1wdHkuICAqLwot ICBvdXRwdXRfYmZkID0gbGRpbmZvLT5vdXRwdXRfYmZkOwotICBodGFiID0geGNvZmZfaGFzaF90 YWJsZSAobGRpbmZvLT5pbmZvKTsKLSAgaW1wc2l6ZSA9IHN0cmxlbiAobGlicGF0aCkgKyAzOwot ICBpbXBjb3VudCA9IDE7Ci0gIGZvciAoZmwgPSBodGFiLT5pbXBvcnRzOyBmbCAhPSBOVUxMOyBm bCA9IGZsLT5uZXh0KQorICBpZiAobGRoZHItPmxfbmltcGlkID09IDApCiAgICAgewotICAgICAg KytpbXBjb3VudDsKLSAgICAgIGltcHNpemUgKz0gKHN0cmxlbiAoZmwtPnBhdGgpCi0JCSAgKyBz dHJsZW4gKGZsLT5maWxlKQotCQkgICsgc3RybGVuIChmbC0+bWVtYmVyKQotCQkgICsgMyk7Cisg ICAgICBpbXBzaXplID0gc3RybGVuIChsZGluZm8tPmxpYnBhdGgpICsgMzsKKyAgICAgIGltcGNv dW50ID0gMTsKKyAgICAgIGZvciAoZmwgPSBodGFiLT5pbXBvcnRzOyBmbCAhPSBOVUxMOyBmbCA9 IGZsLT5uZXh0KQorCXsKKwkgICsraW1wY291bnQ7CisJICBpbXBzaXplICs9IChzdHJsZW4gKGZs LT5wYXRoKQorCQkgICAgICArIHN0cmxlbiAoZmwtPmZpbGUpCisJCSAgICAgICsgc3RybGVuIChm bC0+bWVtYmVyKQorCQkgICAgICArIDMpOworCX0KKyAgICAgIGxkaGRyLT5sX2lzdGxlbiA9IGlt cHNpemU7CisgICAgICBsZGhkci0+bF9uaW1waWQgPSBpbXBjb3VudDsKICAgICB9CiAKICAgLyog U2V0IHVwIHRoZSAubG9hZGVyIHNlY3Rpb24gaGVhZGVyLiAgKi8KLSAgbGRoZHIgPSAmaHRhYi0+ bGRoZHI7CiAgIGxkaGRyLT5sX3ZlcnNpb24gPSBiZmRfeGNvZmZfbGRoZHJfdmVyc2lvbihvdXRw dXRfYmZkKTsKICAgbGRoZHItPmxfbnN5bXMgPSBsZGluZm8tPmxkc3ltX2NvdW50OwotICBsZGhk ci0+bF9ucmVsb2MgPSBodGFiLT5sZHJlbF9jb3VudDsKLSAgbGRoZHItPmxfaXN0bGVuID0gaW1w c2l6ZTsKLSAgbGRoZHItPmxfbmltcGlkID0gaW1wY291bnQ7CisgIGxkaGRyLT5sX25yZWxvYyA9 IGxkaW5mby0+bGRyZWxfY291bnQ7CiAgIGxkaGRyLT5sX2ltcG9mZiA9IChiZmRfeGNvZmZfbGRo ZHJzeiAob3V0cHV0X2JmZCkKIAkJICAgICArIGxkaGRyLT5sX25zeW1zICogYmZkX3hjb2ZmX2xk c3ltc3ogKG91dHB1dF9iZmQpCiAJCSAgICAgKyBsZGhkci0+bF9ucmVsb2MgKiBiZmRfeGNvZmZf bGRyZWxzeiAob3V0cHV0X2JmZCkpOwogICBsZGhkci0+bF9zdGxlbiA9IGxkaW5mby0+c3RyaW5n X3NpemU7Ci0gIHN0b2ZmID0gbGRoZHItPmxfaW1wb2ZmICsgaW1wc2l6ZTsKKyAgc3RvZmYgPSBs ZGhkci0+bF9pbXBvZmYgKyBsZGhkci0+bF9pc3RsZW47CiAgIGlmIChsZGluZm8tPnN0cmluZ19z aXplID09IDApCiAgICAgbGRoZHItPmxfc3RvZmYgPSAwOwogICBlbHNlCkBAIC0zNjkyLDYyICsz NzAxLDE5IEBAIHhjb2ZmX2J1aWxkX2xvYWRlcl9zZWN0aW9uIChzdHJ1Y3QgeGNvZmZfbG9hZGVy X2luZm8gKmxkaW5mbywKICAgbGRoZHItPmxfcmxkb2ZmID0gKGJmZF94Y29mZl9sZGhkcnN6IChv dXRwdXRfYmZkKQogCQkgICAgICsgbGRoZHItPmxfbnN5bXMgKiBiZmRfeGNvZmZfbGRzeW1zeiAo b3V0cHV0X2JmZCkpOwogCi0gIC8qIFdlIG5vdyBrbm93IHRoZSBmaW5hbCBzaXplIG9mIHRoZSAu bG9hZGVyIHNlY3Rpb24uICBBbGxvY2F0ZQotICAgICBzcGFjZSBmb3IgaXQuICAqLworICAvKiBT YXZlIHRoZSBzaXplIG9mIHRoZSAubG9hZGVyIHNlY3Rpb24uICAqLwogICBsc2VjID0gaHRhYi0+ bG9hZGVyX3NlY3Rpb247CiAgIGxzZWMtPnNpemUgPSBzdG9mZiArIGxkaGRyLT5sX3N0bGVuOwot ICBsc2VjLT5jb250ZW50cyA9IGJmZF96YWxsb2MgKG91dHB1dF9iZmQsIGxzZWMtPnNpemUpOwot ICBpZiAobHNlYy0+Y29udGVudHMgPT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7Ci0KLSAgLyog U2V0IHVwIHRoZSBoZWFkZXIuICAqLwotICBiZmRfeGNvZmZfc3dhcF9sZGhkcl9vdXQgKG91dHB1 dF9iZmQsIGxkaGRyLCBsc2VjLT5jb250ZW50cyk7Ci0KLSAgLyogU2V0IHVwIHRoZSBpbXBvcnQg ZmlsZSBuYW1lcy4gICovCi0gIG91dCA9IChjaGFyICopIGxzZWMtPmNvbnRlbnRzICsgbGRoZHIt PmxfaW1wb2ZmOwotICBzdHJjcHkgKG91dCwgbGlicGF0aCk7Ci0gIG91dCArPSBzdHJsZW4gKGxp YnBhdGgpICsgMTsKLSAgKm91dCsrID0gJ1wwJzsKLSAgKm91dCsrID0gJ1wwJzsKLSAgZm9yIChm bCA9IGh0YWItPmltcG9ydHM7IGZsICE9IE5VTEw7IGZsID0gZmwtPm5leHQpCi0gICAgewotICAg ICAgY29uc3QgY2hhciAqczsKLQotICAgICAgcyA9IGZsLT5wYXRoOwotICAgICAgd2hpbGUgKCgq b3V0KysgPSAqcysrKSAhPSAnXDAnKQotCTsKLSAgICAgIHMgPSBmbC0+ZmlsZTsKLSAgICAgIHdo aWxlICgoKm91dCsrID0gKnMrKykgIT0gJ1wwJykKLQk7Ci0gICAgICBzID0gZmwtPm1lbWJlcjsK LSAgICAgIHdoaWxlICgoKm91dCsrID0gKnMrKykgIT0gJ1wwJykKLQk7Ci0gICAgfQotCi0gIEJG RF9BU1NFUlQgKChiZmRfc2l6ZV90eXBlKSAoKGJmZF9ieXRlICopIG91dCAtIGxzZWMtPmNvbnRl bnRzKSA9PSBzdG9mZik7Ci0KLSAgLyogU2V0IHVwIHRoZSBzeW1ib2wgc3RyaW5nIHRhYmxlLiAg Ki8KLSAgaWYgKGxkaW5mby0+c3RyaW5nX3NpemUgPiAwKQotICAgIHsKLSAgICAgIG1lbWNweSAo b3V0LCBsZGluZm8tPnN0cmluZ3MsIGxkaW5mby0+c3RyaW5nX3NpemUpOwotICAgICAgZnJlZSAo bGRpbmZvLT5zdHJpbmdzKTsKLSAgICAgIGxkaW5mby0+c3RyaW5ncyA9IE5VTEw7Ci0gICAgfQot Ci0gIC8qIFdlIGNhbid0IHNldCB1cCB0aGUgc3ltYm9sIHRhYmxlIG9yIHRoZSByZWxvY3MgeWV0 LCBiZWNhdXNlIHdlCi0gICAgIGRvbid0IHlldCBrbm93IHRoZSBmaW5hbCBwb3NpdGlvbiBvZiB0 aGUgdmFyaW91cyBzZWN0aW9ucy4gIFRoZQotICAgICAubG9hZGVyIHN5bWJvbHMgYXJlIHdyaXR0 ZW4gb3V0IHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbm9ybWFsCi0gICAgIHN5bWJvbHMgYXJlIHdy aXR0ZW4gb3V0IGluIHhjb2ZmX2xpbmtfaW5wdXRfYmZkIG9yCi0gICAgIHhjb2ZmX3dyaXRlX2ds b2JhbF9zeW1ib2wuICBUaGUgLmxvYWRlciByZWxvY3MgYXJlIHdyaXR0ZW4gb3V0Ci0gICAgIHdo ZW4gdGhlIGNvcnJlc3BvbmRpbmcgbm9ybWFsIHJlbG9jcyBhcmUgaGFuZGxlZCBpbgotICAgICB4 Y29mZl9saW5rX2lucHV0X2JmZC4gICovCiAKICAgcmV0dXJuIHRydWU7CiB9CiAKLS8qIEJ1aWxk IHRoZSAubG9hZGVyIHNlY3Rpb24uICBUaGlzIGlzIGNhbGxlZCBieSB0aGUgWENPRkYgbGlua2Vy CisvKiBQcmVwYXJlIHRoZSAubG9hZGVyIHNlY3Rpb24uICBUaGlzIGlzIGNhbGxlZCBieSB0aGUg WENPRkYgbGlua2VyCiAgICBlbXVsYXRpb24gYmVmb3JlX2FsbG9jYXRpb24gcm91dGluZS4gIFdl IG11c3Qgc2V0IHRoZSBzaXplIG9mIHRoZQotICAgLmxvYWRlciBzZWN0aW9uIGJlZm9yZSB0aGUg bGlua2VyIGxheXMgb3V0IHRoZSBvdXRwdXQgZmlsZS4KKyAgIC5sb2FkZXIgc2VjdGlvbiBiZWZv cmUgdGhlIGxpbmtlciBsYXlzIG91dCB0aGUgb3V0cHV0IGZpbGUuICBIb3dldmVyLAorICAgc29t ZSBzeW1ib2xzIG9yIHJlbG9jYXRpb25zIG1pZ2h0IGJlIGFwcGVuZCB0byB0aGUgLmxvYWRlciBz ZWN0aW9uCisgICB3aGVuIHByb2Nlc3NpbmcgdGhlIGFkZHJlc3NlcywgdGh1cyBpdCdzIG5vdCBs YXlvdXQgcmlnaHQgbm93IGFuZAorICAgaXRzIHNpemUgbWlnaHQgY2hhbmdlLgogICAgTElCUEFU SCBpcyB0aGUgbGlicmFyeSBwYXRoIHRvIHNlYXJjaCBmb3Igc2hhcmVkIG9iamVjdHM7IHRoaXMg aXMKICAgIG5vcm1hbGx5IGJ1aWx0IGZyb20gdGhlIC1MIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhl IGxpbmtlci4gIEVOVFJZCiAgICBpcyB0aGUgbmFtZSBvZiB0aGUgZW50cnkgcG9pbnQgc3ltYm9s ICh0aGUgLWUgbGlua2VyIG9wdGlvbikuCkBAIC0zNzc2LDEyICszNzQyLDEwIEBAIGJmZF94Y29m Zl9zaXplX2R5bmFtaWNfc2VjdGlvbnMgKGJmZCAqb3V0cHV0X2JmZCwKIAkJCQkgYXNlY3Rpb24g KipzcGVjaWFsX3NlY3Rpb25zLAogCQkJCSBib29sIHJ0bGQpCiB7Ci0gIHN0cnVjdCB4Y29mZl9s b2FkZXJfaW5mbyBsZGluZm87CisgIHN0cnVjdCB4Y29mZl9sb2FkZXJfaW5mbyAqbGRpbmZvOwog ICBpbnQgaTsKICAgYXNlY3Rpb24gKnNlYzsKICAgYmZkICpzdWI7Ci0gIHN0cnVjdCBiZmRfc3Ry dGFiX2hhc2ggKmRlYnVnX3N0cnRhYjsKLSAgYmZkX2J5dGUgKmRlYnVnX2NvbnRlbnRzID0gTlVM TDsKICAgc2l6ZV90IGFtdDsKIAogICBpZiAoYmZkX2dldF9mbGF2b3VyIChvdXRwdXRfYmZkKSAh PSBiZmRfdGFyZ2V0X3hjb2ZmX2ZsYXZvdXIpCkBAIC0zNzkxLDE0ICszNzU1LDE4IEBAIGJmZF94 Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMgKGJmZCAqb3V0cHV0X2JmZCwKICAgICAgIHJldHVy biB0cnVlOwogICAgIH0KIAotICBsZGluZm8uZmFpbGVkID0gZmFsc2U7Ci0gIGxkaW5mby5vdXRw dXRfYmZkID0gb3V0cHV0X2JmZDsKLSAgbGRpbmZvLmluZm8gPSBpbmZvOwotICBsZGluZm8uYXV0 b19leHBvcnRfZmxhZ3MgPSBhdXRvX2V4cG9ydF9mbGFnczsKLSAgbGRpbmZvLmxkc3ltX2NvdW50 ID0gMDsKLSAgbGRpbmZvLnN0cmluZ19zaXplID0gMDsKLSAgbGRpbmZvLnN0cmluZ3MgPSBOVUxM OwotICBsZGluZm8uc3RyaW5nX2FsYyA9IDA7CisgIC8qIFNldHVwIGxkaW5mby4gICovCisgIGxk aW5mbyA9ICYoeGNvZmZfaGFzaF90YWJsZSAoaW5mbyktPmxkaW5mbyk7CisKKyAgbGRpbmZvLT5m YWlsZWQgPSBmYWxzZTsKKyAgbGRpbmZvLT5vdXRwdXRfYmZkID0gb3V0cHV0X2JmZDsKKyAgbGRp bmZvLT5pbmZvID0gaW5mbzsKKyAgbGRpbmZvLT5hdXRvX2V4cG9ydF9mbGFncyA9IGF1dG9fZXhw b3J0X2ZsYWdzOworICBsZGluZm8tPmxkc3ltX2NvdW50ID0gMDsKKyAgbGRpbmZvLT5zdHJpbmdf c2l6ZSA9IDA7CisgIGxkaW5mby0+c3RyaW5ncyA9IE5VTEw7CisgIGxkaW5mby0+c3RyaW5nX2Fs YyA9IDA7CisgIGxkaW5mby0+bGlicGF0aCA9IGxpYnBhdGg7CiAKICAgeGNvZmZfZGF0YSAob3V0 cHV0X2JmZCktPm1heHN0YWNrID0gbWF4c3RhY2s7CiAgIHhjb2ZmX2RhdGEgKG91dHB1dF9iZmQp LT5tYXhkYXRhID0gbWF4ZGF0YTsKQEAgLTM4NDMsMTMgKzM4MTEsMTMgQEAgYmZkX3hjb2ZmX3Np emVfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAogCiAJIFRoZSBmaXJzdCAzIHN5 bWJvbCB0YWJsZSBpbmRpY2VzIGFyZSByZXNlcnZlZCB0byBpbmRpY2F0ZSB0aGUgZGF0YSwKIAkg dGV4dCBhbmQgYnNzIHNlY3Rpb25zLiAgKi8KLSAgICAgIEJGRF9BU1NFUlQgKDAgPT0gbGRpbmZv Lmxkc3ltX2NvdW50KTsKKyAgICAgIEJGRF9BU1NFUlQgKDAgPT0gbGRpbmZvLT5sZHN5bV9jb3Vu dCk7CiAKICAgICAgIGhzeW0tPmxkaW5keCA9IDM7Ci0gICAgICBsZGluZm8ubGRzeW1fY291bnQg PSAxOworICAgICAgbGRpbmZvLT5sZHN5bV9jb3VudCA9IDE7CiAgICAgICBoc3ltLT5sZHN5bSA9 IGxkc3ltOwogCi0gICAgICBpZiAoISBiZmRfeGNvZmZfcHV0X2xkc3ltYm9sX25hbWUgKGxkaW5m by5vdXRwdXRfYmZkLCAmbGRpbmZvLAorICAgICAgaWYgKCEgYmZkX3hjb2ZmX3B1dF9sZHN5bWJv bF9uYW1lIChsZGluZm8tPm91dHB1dF9iZmQsIGxkaW5mbywKIAkJCQkJIGhzeW0tPmxkc3ltLCBo c3ltLT5yb290LnJvb3Quc3RyaW5nKSkKIAlyZXR1cm4gZmFsc2U7CiAKQEAgLTM5MDEsOCArMzg2 OSw4IEBAIGJmZF94Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMgKGJmZCAqb3V0cHV0X2JmZCwK ICAgICAgIGlmIChhdXRvX2V4cG9ydF9mbGFncyAhPSAwKQogCXsKIAkgIHhjb2ZmX2xpbmtfaGFz aF90cmF2ZXJzZSAoeGNvZmZfaGFzaF90YWJsZSAoaW5mbyksCi0JCQkJICAgIHhjb2ZmX21hcmtf YXV0b19leHBvcnRzLCAmbGRpbmZvKTsKLQkgIGlmIChsZGluZm8uZmFpbGVkKQorCQkJCSAgICB4 Y29mZl9tYXJrX2F1dG9fZXhwb3J0cywgbGRpbmZvKTsKKwkgIGlmIChsZGluZm8tPmZhaWxlZCkK IAkgICAgZ290byBlcnJvcl9yZXR1cm47CiAJfQogICAgICAgeGNvZmZfc3dlZXAgKGluZm8pOwpA QCAtMzkyNywzNSArMzg5NSwxMzYgQEAgYmZkX3hjb2ZmX3NpemVfZHluYW1pY19zZWN0aW9ucyAo YmZkICpvdXRwdXRfYmZkLAogICAgIHJldHVybiB0cnVlOwogCiAgIHhjb2ZmX2xpbmtfaGFzaF90 cmF2ZXJzZSAoeGNvZmZfaGFzaF90YWJsZSAoaW5mbyksIHhjb2ZmX3Bvc3RfZ2Nfc3ltYm9sLAot CQkJICAgICh2b2lkICopICZsZGluZm8pOwotICBpZiAobGRpbmZvLmZhaWxlZCkKKwkJCSAgICAo dm9pZCAqKSBsZGluZm8pOworICBpZiAobGRpbmZvLT5mYWlsZWQpCiAgICAgZ290byBlcnJvcl9y ZXR1cm47CiAKICAgaWYgKHhjb2ZmX2hhc2hfdGFibGUgKGluZm8pLT5sb2FkZXJfc2VjdGlvbgot ICAgICAgJiYgIXhjb2ZmX2J1aWxkX2xvYWRlcl9zZWN0aW9uICgmbGRpbmZvLCBsaWJwYXRoKSkK KyAgICAgICYmICF4Y29mZl9zaXplX2xvYWRlcl9zZWN0aW9uIChsZGluZm8pKQogICAgIGdvdG8g ZXJyb3JfcmV0dXJuOwogCisgIHJldHVybiB0cnVlOworCisgZXJyb3JfcmV0dXJuOgorICBmcmVl IChsZGluZm8tPnN0cmluZ3MpOworICByZXR1cm4gZmFsc2U7Cit9CisKKy8qIExheSBvdXQgdGhl IC5sb2FkZXIgc2VjdGlvbiwgZmluYWxpemluZyBpdHMgaGVhZGVyIGFuZAorICAgZmlsbGluZyB0 aGUgaW1wb3J0IHBhdGhzICAqLworc3RhdGljIGJvb2wKK3hjb2ZmX2J1aWxkX2xvYWRlcl9zZWN0 aW9uIChzdHJ1Y3QgeGNvZmZfbG9hZGVyX2luZm8gKmxkaW5mbykKK3sKKyAgYmZkICpvdXRwdXRf YmZkOworICBhc2VjdGlvbiAqbHNlYzsKKyAgc3RydWN0IHhjb2ZmX2xpbmtfaGFzaF90YWJsZSAq aHRhYjsKKyAgc3RydWN0IGludGVybmFsX2xkaGRyICpsZGhkcjsKKyAgc3RydWN0IHhjb2ZmX2lt cG9ydF9maWxlICpmbDsKKyAgY2hhciAqb3V0OworCisgIG91dHB1dF9iZmQgPSBsZGluZm8tPm91 dHB1dF9iZmQ7CisgIGh0YWIgPSB4Y29mZl9oYXNoX3RhYmxlIChsZGluZm8tPmluZm8pOworICBs c2VjID0gaHRhYi0+bG9hZGVyX3NlY3Rpb247CisgIGxkaGRyID0gJmh0YWItPmxkaGRyOworCisg IC8qIFdlIGNvdWxkIGhhdmUgY2FsbGVkIHhjb2ZmX3NpemVfbG9hZGVyX3NlY3Rpb24gb25lIG1v cmUgdGltZS4KKyAgICAgSG93ZXZlciwgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25jZSBhbGwg dGhlIGFkZHJlc3NlcyBoYXZlCisgICAgIGJlZW4gbGF5b3V0IHRodXMgdGhlIC5sb2FkZXIgc2Vj dGlvbiBzaG91bGRuJ3QgYmUgY2hhbmdlZAorICAgICBhbnltb3JlLiAgKi8KKyAgQkZEX0FTU0VS VCAobGRoZHItPmxfbnN5bXMgPT0gbGRpbmZvLT5sZHN5bV9jb3VudCk7CisgIEJGRF9BU1NFUlQg KGxkaGRyLT5sX25yZWxvYyA9PSBsZGluZm8tPmxkcmVsX2NvdW50KTsKKworICAvKiBXZSBub3cg a25vdyB0aGUgZmluYWwgc2l6ZSBvZiB0aGUgLmxvYWRlciBzZWN0aW9uLiAgQWxsb2NhdGUKKyAg ICAgc3BhY2UgZm9yIGl0LiAgKi8KKyAgbHNlYy0+Y29udGVudHMgPSBiZmRfemFsbG9jIChvdXRw dXRfYmZkLCBsc2VjLT5zaXplKTsKKyAgaWYgKGxzZWMtPmNvbnRlbnRzID09IE5VTEwpCisgICAg cmV0dXJuIGZhbHNlOworCisgIC8qIFNldCB1cCB0aGUgaGVhZGVyLiAgKi8KKyAgYmZkX3hjb2Zm X3N3YXBfbGRoZHJfb3V0IChvdXRwdXRfYmZkLCBsZGhkciwgbHNlYy0+Y29udGVudHMpOworCisg IC8qIFNldCB1cCB0aGUgaW1wb3J0IGZpbGUgbmFtZXMuICAqLworICBvdXQgPSAoY2hhciAqKSBs c2VjLT5jb250ZW50cyArIGxkaGRyLT5sX2ltcG9mZjsKKyAgc3RyY3B5IChvdXQsIGxkaW5mby0+ bGlicGF0aCk7CisgIG91dCArPSBzdHJsZW4gKGxkaW5mby0+bGlicGF0aCkgKyAxOworICAqb3V0 KysgPSAnXDAnOworICAqb3V0KysgPSAnXDAnOworICBmb3IgKGZsID0gaHRhYi0+aW1wb3J0czsg ZmwgIT0gTlVMTDsgZmwgPSBmbC0+bmV4dCkKKyAgICB7CisgICAgICBjb25zdCBjaGFyICpzOwor CisgICAgICBzID0gZmwtPnBhdGg7CisgICAgICB3aGlsZSAoKCpvdXQrKyA9ICpzKyspICE9ICdc MCcpCisJOworICAgICAgcyA9IGZsLT5maWxlOworICAgICAgd2hpbGUgKCgqb3V0KysgPSAqcysr KSAhPSAnXDAnKQorCTsKKyAgICAgIHMgPSBmbC0+bWVtYmVyOworICAgICAgd2hpbGUgKCgqb3V0 KysgPSAqcysrKSAhPSAnXDAnKQorCTsKKyAgICB9CisKKyAgQkZEX0FTU0VSVCAoKGJmZF9zaXpl X3R5cGUpICgoYmZkX2J5dGUgKikgb3V0IC0gbHNlYy0+Y29udGVudHMpID09IGxkaGRyLT5sX2lt cG9mZiArIGxkaGRyLT5sX2lzdGxlbik7CisKKyAgLyogU2V0IHVwIHRoZSBzeW1ib2wgc3RyaW5n IHRhYmxlLiAgKi8KKyAgaWYgKGxkaW5mby0+c3RyaW5nX3NpemUgPiAwKQorICAgIHsKKyAgICAg IG1lbWNweSAob3V0LCBsZGluZm8tPnN0cmluZ3MsIGxkaW5mby0+c3RyaW5nX3NpemUpOworICAg ICAgZnJlZSAobGRpbmZvLT5zdHJpbmdzKTsKKyAgICAgIGxkaW5mby0+c3RyaW5ncyA9IE5VTEw7 CisgICAgfQorCisgIC8qIFdlIGNhbid0IHNldCB1cCB0aGUgc3ltYm9sIHRhYmxlIG9yIHRoZSBy ZWxvY3MgeWV0LCBiZWNhdXNlIHdlCisgICAgIGRvbid0IHlldCBrbm93IHRoZSBmaW5hbCBwb3Np dGlvbiBvZiB0aGUgdmFyaW91cyBzZWN0aW9ucy4gIFRoZQorICAgICAubG9hZGVyIHN5bWJvbHMg YXJlIHdyaXR0ZW4gb3V0IHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbm9ybWFsCisgICAgIHN5bWJv bHMgYXJlIHdyaXR0ZW4gb3V0IGluIHhjb2ZmX2xpbmtfaW5wdXRfYmZkIG9yCisgICAgIHhjb2Zm X3dyaXRlX2dsb2JhbF9zeW1ib2wuICBUaGUgLmxvYWRlciByZWxvY3MgYXJlIHdyaXR0ZW4gb3V0 CisgICAgIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbm9ybWFsIHJlbG9jcyBhcmUgaGFuZGxlZCBp bgorICAgICB4Y29mZl9saW5rX2lucHV0X2JmZC4gICovCisKKyAgcmV0dXJuIHRydWU7Cit9CisK KworLyogTGF5IG91dCB0aGUgLmxvYWRlciBzZWN0aW9uIGFuZCBhbGxvY2F0ZSB0aGUgc3BhY2Ug Zm9yCisgICB0aGUgb3RoZXIgZHluYW1pYyBzZWN0aW9ucyBvZiBYQ09GRi4gICovCitib29sCiti ZmRfeGNvZmZfYnVpbGRfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAorCQkJCSAg c3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCit7CisgIHN0cnVjdCB4Y29mZl9sb2FkZXJfaW5m byAqbGRpbmZvOworICBzdHJ1Y3QgYmZkX3N0cnRhYl9oYXNoICpkZWJ1Z19zdHJ0YWI7CisgIGJm ZF9ieXRlICpkZWJ1Z19jb250ZW50cyA9IE5VTEw7CisgIGJmZCAqc3ViOworICBhc2VjdGlvbiAq c2VjOworCisgIGxkaW5mbyA9ICYoeGNvZmZfaGFzaF90YWJsZSAoaW5mbyktPmxkaW5mbyk7CisK KyAgaWYgKHhjb2ZmX2hhc2hfdGFibGUgKGluZm8pLT5sb2FkZXJfc2VjdGlvbgorICAgICAgJiYg IXhjb2ZmX2J1aWxkX2xvYWRlcl9zZWN0aW9uIChsZGluZm8pKQorICAgIHJldHVybiBmYWxzZTsK KwogICAvKiBBbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIG1hZ2ljIHNlY3Rpb25zLiAgKi8KICAgc2Vj ID0geGNvZmZfaGFzaF90YWJsZSAoaW5mbyktPmxpbmthZ2Vfc2VjdGlvbjsKICAgaWYgKHNlYy0+ c2l6ZSA+IDApCiAgICAgewogICAgICAgc2VjLT5jb250ZW50cyA9IGJmZF96YWxsb2MgKG91dHB1 dF9iZmQsIHNlYy0+c2l6ZSk7CiAgICAgICBpZiAoc2VjLT5jb250ZW50cyA9PSBOVUxMKQotCWdv dG8gZXJyb3JfcmV0dXJuOworCXJldHVybiBmYWxzZTsKICAgICB9CiAgIHNlYyA9IHhjb2ZmX2hh c2hfdGFibGUgKGluZm8pLT50b2Nfc2VjdGlvbjsKICAgaWYgKHNlYy0+c2l6ZSA+IDApCiAgICAg ewogICAgICAgc2VjLT5jb250ZW50cyA9IGJmZF96YWxsb2MgKG91dHB1dF9iZmQsIHNlYy0+c2l6 ZSk7CiAgICAgICBpZiAoc2VjLT5jb250ZW50cyA9PSBOVUxMKQotCWdvdG8gZXJyb3JfcmV0dXJu OworCXJldHVybiBmYWxzZTsKICAgICB9CiAgIHNlYyA9IHhjb2ZmX2hhc2hfdGFibGUgKGluZm8p LT5kZXNjcmlwdG9yX3NlY3Rpb247CiAgIGlmIChzZWMtPnNpemUgPiAwKQogICAgIHsKICAgICAg IHNlYy0+Y29udGVudHMgPSBiZmRfemFsbG9jIChvdXRwdXRfYmZkLCBzZWMtPnNpemUpOwogICAg ICAgaWYgKHNlYy0+Y29udGVudHMgPT0gTlVMTCkKLQlnb3RvIGVycm9yX3JldHVybjsKKwlyZXR1 cm4gZmFsc2U7CiAgICAgfQogCiAgIC8qIE5vdyB0aGF0IHdlJ3ZlIGRvbmUgZ2FyYmFnZSBjb2xs ZWN0aW9uLCBkZWNpZGUgd2hpY2ggc3ltYm9scyB0byBrZWVwLApAQCAtNDA1MSw3ICs0MTIwLDcg QEAgYmZkX3hjb2ZmX3NpemVfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAogCSAg a2VlcF9wID0geGNvZmZfa2VlcF9zeW1ib2xfcCAoaW5mbywgc3ViLCAmc3ltLCAmYXV4LAogCQkJ CQkqc3ltX2hhc2gsIGNzZWN0LCBuYW1lKTsKIAkgIGlmIChrZWVwX3AgPCAwKQotCSAgICByZXR1 cm4gZmFsc2U7CisJICAgIGdvdG8gZXJyb3JfcmV0dXJuOwogCiAJICBpZiAoIWtlZXBfcCkKIAkg ICAgLyogVXNlIGEgZGVidWdfaW5kZXggb2YgLTIgdG8gcmVjb3JkIHRoYXQgYSBzeW1ib2wgc2hv dWxkCkBAIC00MTEwLDcgKzQxNzksNiBAQCBiZmRfeGNvZmZfc2l6ZV9keW5hbWljX3NlY3Rpb25z IChiZmQgKm91dHB1dF9iZmQsCiAgIHJldHVybiB0cnVlOwogCiAgZXJyb3JfcmV0dXJuOgotICBm cmVlIChsZGluZm8uc3RyaW5ncyk7CiAgIGZyZWUgKGRlYnVnX2NvbnRlbnRzKTsKICAgcmV0dXJu IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvYmZkL3hjb2ZmbGluay5oIGIvYmZkL3hjb2ZmbGluay5o CmluZGV4IGNkMzU2NzZiMDhmLi45MmZlZWI1ODk1OCAxMDA2NDQKLS0tIGEvYmZkL3hjb2ZmbGlu ay5oCisrKyBiL2JmZC94Y29mZmxpbmsuaApAQCAtMzcsNSArMzcsNyBAQCBleHRlcm4gYm9vbCBi ZmRfeGNvZmZfc2l6ZV9keW5hbWljX3NlY3Rpb25zCiAgIChiZmQgKiwgc3RydWN0IGJmZF9saW5r X2luZm8gKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosCiAgICB1bnNpZ25lZCBsb25nLCB1 bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBib29sLAogICAgaW50LCBib29sLCB1bnNpZ25l ZCBpbnQsIHN0cnVjdCBiZmRfc2VjdGlvbiAqKiwgYm9vbCk7CitleHRlcm4gYm9vbCBiZmRfeGNv ZmZfYnVpbGRfZHluYW1pY19zZWN0aW9ucworICAoYmZkICosIHN0cnVjdCBiZmRfbGlua19pbmZv ICopOwogZXh0ZXJuIGJvb2wgYmZkX3hjb2ZmX2xpbmtfZ2VuZXJhdGVfcnRpbml0CiAgIChiZmQg KiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGJvb2wpOwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9jb2ZmL3hjb2ZmLmggYi9pbmNsdWRlL2NvZmYveGNvZmYuaAppbmRleCBhY2FkZjU0ZDRhMS4u MDc3MGQwNGI1ZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29mZi94Y29mZi5oCisrKyBiL2luY2x1 ZGUvY29mZi94Y29mZi5oCkBAIC00MzIsNiArNDMyLDEwIEBAIHN0cnVjdCB4Y29mZl9sb2FkZXJf aW5mbwogICAvKiBOdW1iZXIgb2YgbGRzeW0gc3RydWN0dXJlcy4gICovCiAgIHNpemVfdCBsZHN5 bV9jb3VudDsKIAorICAvKiBBIGNvdW50IG9mIG5vbiBUT0MgcmVsYXRpdmUgcmVsb2NzIHdoaWNo IHdpbGwgbmVlZCB0byBiZQorICAgICBhbGxvY2F0ZWQgaW4gdGhlIC5sb2FkZXIgc2VjdGlvbi4g ICovCisgIHNpemVfdCBsZHJlbF9jb3VudDsKKwogICAvKiBTaXplIG9mIHN0cmluZyB0YWJsZS4g ICovCiAgIHNpemVfdCBzdHJpbmdfc2l6ZTsKIApAQCAtNDQwLDYgKzQ0NCw5IEBAIHN0cnVjdCB4 Y29mZl9sb2FkZXJfaW5mbwogCiAgIC8qIEFsbG9jYXRlZCBzaXplIG9mIHN0cmluZyB0YWJsZS4g ICovCiAgIHNpemVfdCBzdHJpbmdfYWxjOworCisgIC8qIFRoZSBsaWJwYXRoIGJlaW5nIHVzZWQu ICAqLworICBjb25zdCBjaGFyICpsaWJwYXRoOwogfTsKIAogLyogSW4gY2FzZSB3ZSdyZSBvbiBh IDMyLWJpdCBtYWNoaW5lLCBjb25zdHJ1Y3QgYSA2NC1iaXQgIi0xIiB2YWx1ZQpkaWZmIC0tZ2l0 IGEvbGQvZW11bHRlbXBsL2FpeC5lbSBiL2xkL2VtdWx0ZW1wbC9haXguZW0KaW5kZXggNjgwN2Fh ZWUxYzguLjM4NzhkNThiYjMyIDEwMDY0NAotLS0gYS9sZC9lbXVsdGVtcGwvYWl4LmVtCisrKyBi L2xkL2VtdWx0ZW1wbC9haXguZW0KQEAgLTEwMDksNiArMTAwOSwxNCBAQCBnbGQke0VNVUxBVElP Tl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbiAodm9pZCkKICAgYmVmb3JlX2FsbG9jYXRpb25fZGVm YXVsdCAoKTsKIH0KIAorc3RhdGljIHZvaWQKK2dsZCR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2Fs bG9jYXRpb24gKHZvaWQpCit7CisgIC8qIE5vdyB0aGF0IGV2ZXJ5dGhpbmcgaXMgaW4gcGxhY2Us IGZpbmFsaXplIHRoZSBkeW5hbWljIHNlY3Rpb25zLiAgKi8KKyAgaWYgKCFiZmRfeGNvZmZfYnVp bGRfZHluYW1pY19zZWN0aW9ucyAobGlua19pbmZvLm91dHB1dF9iZmQsICZsaW5rX2luZm8pKQor ICAgIGVpbmZvIChfKCIlRiVQOiBmYWlsZWQgdG8gbGF5b3V0IGR5bmFtaWMgc2VjdGlvbnM6ICVF XG4iKSk7Cit9CisKIHN0YXRpYyBjaGFyICoKIGdsZCR7RU1VTEFUSU9OX05BTUV9X2Nob29zZV90 YXJnZXQgKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKQEAgLTE2MDcsNiArMTYxNSw3IEBAIExE RU1VTF9BRlRFUl9PUEVOPWdsZCR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX29wZW4KIExERU1VTF9T RVRfT1VUUFVUX0FSQ0g9Z2xkJHtFTVVMQVRJT05fTkFNRX1fc2V0X291dHB1dF9hcmNoCiBMREVN VUxfQ0hPT1NFX1RBUkdFVD1nbGQke0VNVUxBVElPTl9OQU1FfV9jaG9vc2VfdGFyZ2V0CiBMREVN VUxfQkVGT1JFX0FMTE9DQVRJT049Z2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRp b24KK0xERU1VTF9BRlRFUl9BTExPQ0FUSU9OPWdsZCR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2Fs bG9jYXRpb24KIExERU1VTF9DUkVBVEVfT1VUUFVUX1NFQ1RJT05fU1RBVEVNRU5UUz1nbGQke0VN VUxBVElPTl9OQU1FfV9jcmVhdGVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cwogTERFTVVMX09Q RU5fRFlOQU1JQ19BUkNISVZFPWdsZCR7RU1VTEFUSU9OX05BTUV9X29wZW5fZHluYW1pY19hcmNo aXZlCiBMREVNVUxfUEFSU0VfQVJHUz1nbGQke0VNVUxBVElPTl9OQU1FfV9wYXJzZV9hcmdzCi0t IAoyLjMzLjEKCg== --_002_PA4PR02MB66864D1E2C92DCD464494F00EA129PA4PR02MB6686eurp_--