From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2052.outbound.protection.outlook.com [40.107.244.52]) by sourceware.org (Postfix) with ESMTPS id CFC2A385702D for ; Sun, 16 May 2021 11:29:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CFC2A385702D ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ESZ4c2QGEnO9baDLFOVeEV4T4HkP4t2Zl1EbU2XW87Nf84x3fx+cwh1qGx6p21s9EnEIG6WDEmPU0T+3YbubPplPANEwMwjGrBR3ZjEwuCCn7rN2qJ7Q/5wdbQvPHISUw6hczldKI3Jl2GFCtzIASy9tukvwrDsvcAfYtYMcrjkPWn1HlAZmLHz6ZD3pDtoxVRbHl26u96eMLaGnnYVliXLjIklNOKge7xo0nywu9qpXEv6AtssteiO3Yd0WR/767Pc3xjq5J1NnKPmvmEWTooncwvuMt68CtOj5ghUCirlO2ZjZ0/m0FQ48D5rlM6csXu06v4Gtig2UC4ID9UXklw== 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=tdxY9wxDzv4KrCJeMF1EnAbwWzITPyOtyAeyPccZRGM=; b=b08Z3pHuuCehO+3SLJMN5PHKI8fG/Y7PcX0/wboNQWfb78UaO7xfH6upyjX8f9JM64fPyMhqEa8NRe8NgB/D9a+zGe1ittJevitnf5Km1c0qw2TLUcLbchQjHe10QRi7BMTNFPkLMZN3JaFmr9FX4NOCPTRCAXzPN+fKDepnQKZhE+mEp+GaLbRGE5NAC7sZE4PZuXGR9dMl/2N7XjvOXlh6lK4qA8jk1TJk9e0H64U8Yr4T+IMAGQjeFNRGKOIytH3DSZDM4M1NyIKJnwDEIMBRr1105mUlmvkkhR0sQhhzOCcZI+GMR4VGWeMM3Jb9RhN7JZrZza+7zYbK9CNhjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from CH0PR12MB5265.namprd12.prod.outlook.com (2603:10b6:610:d0::22) by CH0PR12MB5091.namprd12.prod.outlook.com (2603:10b6:610:be::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Sun, 16 May 2021 11:29:02 +0000 Received: from CH0PR12MB5265.namprd12.prod.outlook.com ([fe80::41b7:a794:d2f1:6a8e]) by CH0PR12MB5265.namprd12.prod.outlook.com ([fe80::41b7:a794:d2f1:6a8e%7]) with mapi id 15.20.4129.031; Sun, 16 May 2021 11:29:02 +0000 From: "E, Nagajyothi" To: Mark Wielaard , "dwz@sourceware.org" CC: "George, Jini Susan" , "Achra, Nitika" , "Sharma, Alok Kumar" , "E, Nagajyothi" , "Parasuraman, Hariharan" Subject: [PATCH 1/2] Support for clang-generated DWARF5 sections .debug_addr/.debug_str_offsets Thread-Topic: [PATCH 1/2] Support for clang-generated DWARF5 sections .debug_addr/.debug_str_offsets Thread-Index: AddKQy9sWJ/KEzkNRZqyamh1YAZr7g== Date: Sun, 16 May 2021 11:29:02 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Enabled=true; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SetDate=2021-05-16T11:28:46Z; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Method=Standard; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_Name=Internal Use Only - Unrestricted; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ActionId=761579c5-dd92-43e5-b76d-09afaa26ddc3; MSIP_Label_76546daa-41b6-470c-bb85-f6f40f044d7f_ContentBits=1 msip_justification: I confirm the recipients are approved for sharing this content x-originating-ip: [106.51.142.241] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c5d05274-859c-4810-7833-08d9185dce87 x-ms-traffictypediagnostic: CH0PR12MB5091: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1728; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ye7+wc3MCRzhFDFduGBlDT+mEdKry8WQhj5U+dd57MhyJ4RrzKEB3QWob1Glu2znKA6+Q7SlHWWKfhJPbo7pIRDRNpfC0Ot7NJTdH4haT6nVGbRkTTT5YTYcsiYCCNo20XVGk2Kpo1f/BvSKr8FkDiKKrO95iXCyOOZ2MN9+daPKGaj114ymwbdb/ESuABkoDPKDIydFfhb/EKTEhG1hcjZPHw80ZkT0Gg9evN/WGCua8vJhINXDF3BDRWz2mBWrCtLMDV6sACMXdtJ4bNwlKy7w3nqDKjrrz/UfBSs3s7OxZ5BiRwT1isv1ELHSKH6AyxkyUPvyUQlQ94Z1sEQkf4p9Wl03O3uz8oVisnl6JjfXKVpSmwY17d2np13WS9nJMdNFdTe+6hlbCrd1Tf0xonoTXBXgvwCT9xTOdacisyjvzChRhVj6SjFPbUaZRIrH6SHR+HNR8qj7I8Tb9ZKArT+kSLhQe8bMUGhpfiu8PlFMLO8BCBTN8hqNoEsbsTdoPmHVHR2Hie1dtUjx6dbQnmXvmbQ40OIa5KA9QaKTBZOVzIXz+pzRZ0Ed0s9hcrUTVO5OVSAgrXHzne1jXZ20ktz8/4T6iP+cPbsfv2pALo9WR+7txkQsbiJuwNcbfsxwBdDVzxu5R0d/rqEUZOejnJr5Au0DnLK0pOk10OBppBOraIAdSDWEGRMrVcyPkV5J4gZ98tlirn9aSM6yAcWmYwCkY1eoMSxFmbOgyMHm4GHbfcAyNm8BRBvyhRwX7Gd4DVXLS4xSCrwrKRMJF147JQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH0PR12MB5265.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(396003)(366004)(39860400002)(376002)(346002)(110136005)(33656002)(4326008)(9686003)(71200400001)(55016002)(45080400002)(54906003)(316002)(8676002)(186003)(99936003)(8936002)(83380400001)(86362001)(478600001)(966005)(7696005)(55236004)(53546011)(6506007)(26005)(52536014)(122000001)(38100700002)(2906002)(5660300002)(76116006)(66446008)(66556008)(66946007)(66476007)(66616009)(64756008)(142923001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?ee9a8QCRmyq6qkaqHSDii/kb6BixguYrZPEIIJKoEE/6djuO9FV2y1nd1ayR?= =?us-ascii?Q?k2gvIS7Fqfqmqza7pMHO6SvAX/QdfVazMq3OyHEdrwh7085pIqNqDFLTkqnz?= =?us-ascii?Q?6/wEdrRmxAuRdfC29UGVGJkvBbEt4lC6+mBZI4bHs8opHGjxOgS2ChB4uTlw?= =?us-ascii?Q?hHMqaAXS0XmocdBUcJncLGwYZtRM7t+UrDBQXHAX3F7sUCfRSnkPSu+45vZG?= =?us-ascii?Q?bj1nAGX0c/J2LoBzKM9QOXSLIKnnAzmw+EibzDbPxPI+rixzEkdhA76Z63jI?= =?us-ascii?Q?E0TPsLODV2TKuRbnjSg7G7BuiS3n7y7XpKA3vkzsKiUvFAYfQ1WVNyO8wtuY?= =?us-ascii?Q?5P/krTn5XuyLLZ/e1MrlXgGsVyXFLUkHg4O3QNG3tj4zdrEETc4Zpf3bmK30?= =?us-ascii?Q?bQcfn47UhRphhNb9mtDzq/t7CPux9dexAbEwBlFOf/Q9h768GSYuwFz/xHcz?= =?us-ascii?Q?PXBqgwCBP2tn77Efclc5PW8xPnzEOgHMX7MRPoxjBffWfW1NLYMG6XxQ4OL5?= =?us-ascii?Q?CSqwK0HythUEP8SyzfLj8/MdS62NIP4d2JaYoRggh51NL82Ps0Sdf6gRcDDx?= =?us-ascii?Q?G4MlTICVL6u9kN0SdqrEogRfYjwdQ06fydsqTidhx2BarH/rUqCuLVrMhgwC?= =?us-ascii?Q?84ba+3bNdn75X9nhAFPLjVmyZ5mNcRJznjTvIr2Lo9c/4EU/ILoerLYIz9by?= =?us-ascii?Q?fOdV3EdRj/Q5eSMWydTr656/ZAqJ8CO2kNDc8yG9UfHsU/fEP2Okj/FnC7fN?= =?us-ascii?Q?AzzbULqpWCNNblCsPicVC95vcHpR1xzVAuSz+7GpSBcKovtcjzELcdJ5U2EY?= =?us-ascii?Q?0dqbzhCeTbBDqQAZTC6gd1jL2ctDRc5PkyqAZ/d81IwfVT4Rg7tQQ6TO48gh?= =?us-ascii?Q?SOL6YMIY9J9RIYwFJKwu+dBWPLqWNBgEjxB5+o65Bn2jV1OsAhrrf8SQ44jo?= =?us-ascii?Q?RkIawcY9M5w1RcluwG8DR8JekIE1Ct1mOJAjxBay/VOEqR/LZuag3TnEvAQ3?= =?us-ascii?Q?WS6tDOtGPdg9EbxoW1RxShePcka50PFjUlTTay+NoMfARi/t9BWghBDVNXh9?= =?us-ascii?Q?vJyaJ1Y+sD9Vkk8wug9/XPHj1nlavtuVis6XiKBqLcW4Mo7vwGjDd/NOfu/b?= =?us-ascii?Q?MoWHbApStBtG/7rbrslB90UJ32ipMZ5uK+44Us/X2IaFMSybVbbjjYaMmy7A?= =?us-ascii?Q?+f+m1cJdDzL5u3Y8LV8AYPGb6YEoNuPS0hrNuNK8qEzrnCSRRRGs/Ojw1xB4?= =?us-ascii?Q?XUz97niYsbNnXlMocuKrw+mBaPRK6P/8aV2PYUXTko13C5uIXpiq7am2i2ga?= =?us-ascii?Q?nlpi4YhMSNYrwGJH1nSZuuRg?= Content-Type: multipart/mixed; boundary="_002_CH0PR12MB52659E9758818EBFDFE85EA8962E9CH0PR12MB5265namp_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR12MB5265.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5d05274-859c-4810-7833-08d9185dce87 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 May 2021 11:29:02.4201 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PiBWdk+w+KsHqY2UBLH+kZGzcTPWYN/vUz33YMmzRTYEsQVOl97VkSqxEYm5bJKZiutPNVIWxYIwNYSGeUekRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5091 X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: dwz@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Dwz mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2021 11:29:07 -0000 --_002_CH0PR12MB52659E9758818EBFDFE85EA8962E9CH0PR12MB5265namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - Internal Distribution Only] Hi, Please review and commit the attached patch to support clang-generated DWAR= F5 debug sections .debug_addr and .debug_str_offsets. This patch does not address ODR and multifile support, which will be added = through subsequent patches. Due to this, the ODR tests and cycle.sh of the = testsuite fail during 'make check'. The accompanying testsuite patch may be used while running make check CC=3D"clang -gdwarf-5" CXX=3D"clang++ -gdwarf-5" to avoid test failures due to readelf, as readelf does not support some of = the strx forms generated by clang. Thanks, Nagajyothi -----Original Message----- From: Mark Wielaard =20 Sent: Thursday, February 18, 2021 8:15 PM To: E, Nagajyothi ; dwz@sourceware.org Cc: George, Jini Susan ; Achra, Nitika ; Sharma, Alok Kumar Subject: Re: Plan to contribute for supporting split dwarf (-gsplit-dwarf) = in dwz [CAUTION: External Email] Hi Nagajyothi, On Wed, 2021-02-17 at 05:53 +0000, E, Nagajyothi via Dwz wrote: > I am working on adding support for the dwarf5 .debug_str_offsets,=20 > .debug_addr sections and the related forms DW_FORM_strx[1234], DW_FORM_ad= drx[1234]. > Please let me know if anyone has already started work on these. Thanks, I don't believe anybody is working on this right now. There is already a bug for .debug_addr/DW_FORM_addrx[1234] support: https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fsourcew= are.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D27375&data=3D04%7C01%7CNagajyo= thi.E%40amd.com%7C37c0fb4399464264b01808d8d41bcb9c%7C3dd8961fe4884e608e11a8= 2d994e183d%7C0%7C0%7C637492563147320988%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4= wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=3D= 7AjB%2BXKo9J5gTlW1CeEhHXZykYKB2vFZ%2BTnBQvW4%2BIA%3D&reserved=3D0 I think this shouldn't be too hard. Any DIE that references an address cann= ot be moved to an alt file, so simply mark it with die_no_multifile. We do = try to optimize DW_AT_low/high_pc attribute pairs, so double check that doe= sn't interfere with DW_FORM_addrx[1234] processing. Also note that there are two new location operations DW_OP_addrx and DW_OP_= constx that can reference the .debug_addr section index. As a followup you could try optimizing things, but then you need to keep tr= ack of all the addresses used and see if there are duplicates that could be= turned into a (smaller) DW_FORM_addrx[1234] index. But I would keep that s= eparate from the initial implementation. For .debug_str_offset/DW_FORM_strx[1234] I opened a new bug. https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fsourcew= are.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D27434&data=3D04%7C01%7CNagajyo= thi.E%40amd.com%7C37c0fb4399464264b01808d8d41bcb9c%7C3dd8961fe4884e608e11a8= 2d994e183d%7C0%7C0%7C637492563147330979%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4= wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=3D= AqQRLjgKh9h7YHPIr4wDiqP1rRTXz2kG6IZlAT0SaSQ%3D&reserved=3D0 This is a little trickier than DW_FORM_addrx[1234] since such DIEs using DW= _FORM_strx may be moved to a multifile. You also probably want to make them= equal to DW_FORM_strp entries pointing (indirectly) to the same string. You might want to add a note to the the bugs that you are working on them. Thanks, Mark --_002_CH0PR12MB52659E9758818EBFDFE85EA8962E9CH0PR12MB5265namp_ Content-Type: application/octet-stream; name="0001-PR27375-PR27434-Recognize-new-DWARF5-sections-.debug.patch" Content-Description: 0001-PR27375-PR27434-Recognize-new-DWARF5-sections-.debug.patch Content-Disposition: attachment; filename="0001-PR27375-PR27434-Recognize-new-DWARF5-sections-.debug.patch"; size=21776; creation-date="Sun, 16 May 2021 11:10:52 GMT"; modification-date="Sun, 16 May 2021 11:10:52 GMT" Content-Transfer-Encoding: base64 RnJvbSAzYTM2MTc1MTI1YWQwMWNkMDAxNzRmNTFhMDA0ZmE2YzQ5MGRhMTRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYWdhanlvdGhpIEVnZ29uZSA8TmFnYWp5b3RoaS5FQGFtZC5j b20+CkRhdGU6IFN1biwgMTYgTWF5IDIwMjEgMTY6MDI6MjUgKzA1MzAKU3ViamVjdDogW1BBVENI IDEvMl0gUFIyNzM3NSwgUFIyNzQzNCAtIFJlY29nbml6ZSBuZXcgRFdBUkY1IHNlY3Rpb25zCiAu ZGVidWdfYWRkciwgLmRlYnVnX3N0cl9vZmZzZXRzCgpUaGlzIGFkZHMgc3VwcG9ydCBmb3Igc2Vj dGlvbnMgLmRlYnVnX2FkZHIgYW5kIC5kZWJ1Z19zdHJfb2Zmc2V0cywgYW5kIHJlbGF0ZWQgZm9y bXMgRFdfRk9STV9hZGRyeCwKRFdfRk9STV9zdHJ4WzF8MnwzfDRdLCB3aGljaCBhcmUgZ2VuZXJh dGVkIGJ5IGNsYW5nLiBEV19GT1JNX2FkZHJ4WzF8MnwzfDRdIGFyZSBub3QgaGFuZGxlZCBhcyB0 aGV5IGFyZSBub3QgcHJvZHVjZWQgYnkgY2xhbmcgYXMgeWV0LiBEV19GT1JNX2xvY2xpc3R4IGFu ZCBEV19GT1JNX3JuZ2xpc3R4IGFyZSBhbHNvIGhhbmRsZWQgaW4gc2V2ZXJhbCBwbGFjZXMgYXMg cmVxdWlyZWQuCgogICAgIENoYW5nZWxvZzoKICAgKiBkd3ouYyAoZG9fcmVhZF8yNCkgOiBOZXcg ZnVuY3Rpb24gdG8gcmVhZCBEV19GT1JNX3N0cngzLgogICAgICAgICAgIChidWZfcmVhZF91bGUy NCkgOiBMaWtld2lzZS4KICAgICAgICAgICAoYnVmX3JlYWRfdWJlMjQpIDogTGlrZXdpc2UuCiAg ICAgICAgICAgKHJlYWRfMjQpIDogTmV3IG1hY3JvIGZvciAyNC1iaXQgcmVhZC4KICAgICAgICAg ICAocmVhZF9zaXplKSA6IEFkZCBjYXNlIGZvciAyNC1iaXQgcmVhZC4KICAgICAgICAgICAoaW5p dF9lbmRpYW4pOiBMaWtld2lzZS4KICAgICAgICAgICAoZW51bSBkZWJ1Z19zZWN0aW9uX2tpbmQp OiBBZGQgREVCVUdfU1RSX09GRlNFVFMgYW5kIERFQlVHX0FERFIuCiAgICAgICAgICAgKGRlYnVn X3NlY3Rpb25zKTogQWRkIC5kZWJ1Z19zdHJfb2Zmc2V0cyBhbmQgLmRlYnVnX2FkZHIgZW50cmll cy4KICAgICAgICAgICAoc3RydWN0IGR3X2N1KTogTmV3IG1lbWJlciBjdV9zdHJfb2Zmc2V0c19i YXNlIHRvIGhvbGQgc3RyX29mZnNldHNfYmFzZS4KICAgICAgICAgICAocmVhZF9hYmJyZXYpOiBB ZGQgRFdfRk9STV9hZGRyeCwgRFdfRk9STV9zdHJ4WzF8MnwzfDRdLCBEV19GT1JNX2xvY2xpc3R4 LCBEV19GT1JNX3JuZ2xpc3R4LgogICAgICAgICAgIChza2lwX2F0dHJfbm9fZHdfZm9ybV9pbmRp cmVjdCk6IExpa2V3aXNlLgogICAgICAgICAgIChjaGVja3N1bV9kaWUpOiBMaWtld2lzZS4KICAg ICAgICAgICAoY2hlY2tzdW1fcmVmX2RpZSk6IExpa2V3aXNlLgogICAgICAgICAgIChkaWVfZXFf MSk6IExpa2V3aXNlLgogICAgICAgICAgIChtYXJrX3JlZnMpOiBMaWtld2lzZS4KICAgICAgICAg ICAoYnVpbGRfYWJicmV2c19mb3JfZGllKTogTGlrZXdpc2UuCiAgICAgICAgICAgKHdyaXRlX3Vu aXRfZGllKTogTGlrZXdpc2UuCiAgICAgICAgICAgKHdyaXRlX2RpZSk6IExpa2V3aXNlLgogICAg ICAgICAgIChyZWFkX2RlYnVnX2luZm8pOiBBZGQgRFdfRk9STV9hZGRyeCwgRFdfRk9STV9zdHJ4 WzF8MnwzfDRdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQgc3RyX29mZnNl dHNfYmFzZSBpbiBkd19jdSBtZW1iZXIgY3Vfc3RyX29mZnNldHNfYmFzZSBmb3IgdXNlIGluCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRpbmcgc3RyaW5ncyByZWZlcmVuY2VkIHdp dGggRFdfRk9STV9zdHJ4WzF8MnwzfDRdLgogICAgICAgICAgIChwYXJ0aXRpb25fZHVwc18xKTog QWRkIHNpemUgb2Ygc3RyX29mZnNldHNfYmFzZSB0byBDVS9QVSBoZWFkZXIgc2l6ZSBlc3RpbWF0 ZS4KCiAgICAgICAgICAgKHJlYWRfZGVidWdfbGluZSk6IEFkZCBjYXNlIGZvciBEV19MTkNUX01E NS4KICAgICAgICAgICAoZ2V0X0FUX3N0cmluZyk6IFJlYWQgc3RyaW5nIGluZGV4IGZyb20gLmRl YnVnX3N0cl9vZmZzZXRzIHNlY3Rpb25zIGFuZCByZWFkIHN0cmluZwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgZnJvbSAuZGVidWdfc3RyIHNlY3Rpb24gdXNpbmcgdGhpcyBhcyBvZmZzZXQu CiAgICAgICAgICAgKHJlYWRfZXhwcmxvYyk6IEFkZCBEV19PUF9hZGRyeC4KICAgICAgICAgICAo YWRqdXN0X2V4cHJsb2MpOiBMaWtld2lzZS4KCiAgICBUaGlzIHBhdGNoIGRvZXMgbm90IGFkZHJl c3MgT0RSIGFuZCBtdWx0aWZpbGUgc3VwcG9ydCwgd2hpY2ggd2lsbCBiZSBhZGRlZCB0aHJvdWdo IHN1YnNlcXVlbnQgcGF0Y2hlcy4gRHVlIHRvIHRoaXMsCgltYWtlIGNoZWNrIENDPSJjbGFuZyAt Z2R3YXJmLTUiIENYWD0iY2xhbmcrKyAtZ2R3YXJmLTUiCmhhcyB0aGUgZm9sbG93aW5nIHRlc3Rz IGZhaWxpbmc6Cgl0ZXN0c3VpdGUvZHd6LnRlc3RzL2N5Y2xlLnNoCgl0ZXN0c3VpdGUvZHd6LnRl c3RzL29kci1jbGFzcy1ucy5zaAoJdGVzdHN1aXRlL2R3ei50ZXN0cy9vZHItbG9jLnNoCgl0ZXN0 c3VpdGUvZHd6LnRlc3RzL29kci1zdHJ1Y3QtbnMuc2gKCXRlc3RzdWl0ZS9kd3oudGVzdHMvb2Ry LWNsYXNzLnNoCgl0ZXN0c3VpdGUvZHd6LnRlc3RzL29kci11bmlvbi1ucy5zaAoJdGVzdHN1aXRl L2R3ei50ZXN0cy9vZHItc3RydWN0LW11bHRpZmlsZS5zaAoJdGVzdHN1aXRlL2R3ei50ZXN0cy9v ZHItc3RydWN0LnNoCgl0ZXN0c3VpdGUvZHd6LnRlc3RzL29kci11bmlvbi5zaAotLS0KIGR3ei5j IHwgMjU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAyNTMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kd3ouYyBiL2R3ei5jCmluZGV4IGEzYjI4OWYuLmY3NThkZGIgMTAw NjQ0Ci0tLSBhL2R3ei5jCisrKyBiL2R3ei5jCkBAIC00NzUsNiArNDc1LDcgQEAgc3RhdGljIHVu c2lnbmVkIGludCBsb3dlc3RfbGluZV92ZXJzaW9uID0gNTsKICAgIGdpdmVuIEVMRiBlbmRpYW5p dHksIHdoaWNoIG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIGhvc3QgZW5kaWFuaXR5LgogICAgTm8g c3BlY2lmaWMgYWxpZ25tZW50IGlzIGV4cGVjdGVkLiAgKi8KIHN0YXRpYyB1aW50MTZfdCAoKmRv X3JlYWRfMTYpICh1bnNpZ25lZCBjaGFyICpwdHIpOworc3RhdGljIHVpbnQzMl90ICgqZG9fcmVh ZF8yNCkgKHVuc2lnbmVkIGNoYXIgKnB0cik7CiBzdGF0aWMgdWludDMyX3QgKCpkb19yZWFkXzMy KSAodW5zaWduZWQgY2hhciAqcHRyKTsKIHN0YXRpYyB1aW50NjRfdCAoKmRvX3JlYWRfNjQpICh1 bnNpZ25lZCBjaGFyICpwdHIpOwogc3RhdGljIHZvaWQgKCpkb193cml0ZV8xNikgKHVuc2lnbmVk IGNoYXIgKnB0ciwgdW5zaWduZWQgc2hvcnQgdmFsKTsKQEAgLTQ5Myw2ICs0OTQsMjAgQEAgYnVm X3JlYWRfdWJlMTYgKHVuc2lnbmVkIGNoYXIgKmRhdGEpCiAgIHJldHVybiBkYXRhWzFdIHwgKGRh dGFbMF0gPDwgOCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdWludDMyX3QKK2J1Zl9yZWFkX3VsZTI0 ICh1bnNpZ25lZCBjaGFyICpkYXRhKQoreworICByZXR1cm4gKGRhdGFbMF0gfCAoZGF0YVsxXSA8 PCA4KSB8IChkYXRhWzJdIDw8IDE2KQorICAgICAgICAgIHwgKCh1bnNpZ25lZCBpbnQpMHgwIDw8 IDI0KSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdWludDMyX3QKK2J1Zl9yZWFkX3ViZTI0ICh1bnNp Z25lZCBjaGFyICpkYXRhKQoreworICByZXR1cm4gKCgweDApIHwgKGRhdGFbMl0gPDwgOCkgfCAo ZGF0YVsxXSA8PCAxNikKKwkgICB8ICgodW5zaWduZWQgaW50KWRhdGFbMF0gPDwgMjQpKTsKK30K Kwogc3RhdGljIGlubGluZSB1aW50MzJfdAogYnVmX3JlYWRfdWxlMzIgKHVuc2lnbmVkIGNoYXIg KmRhdGEpCiB7CkBAIC01MjksNiArNTQ0LDEyIEBAIGJ1Zl9yZWFkX3ViZTY0ICh1bnNpZ25lZCBj aGFyICpkYXRhKQogICByZXQ7CQkJCQkJCVwKIH0pCiAKKyNkZWZpbmUgcmVhZF8yNChwdHIpICh7 CQkJCQlcCisgIHVpbnQzMl90IHJldCA9IGRvX3JlYWRfMjQgKHB0cik7CQkJXAorICBwdHIgKz0g MzsJCQkJCQlcCisgIHJldDsJCQkJCQkJXAorfSkKKwogI2RlZmluZSByZWFkXzMyKHB0cikgKHsJ CQkJCVwKICAgdWludDMyX3QgcmV0ID0gZG9fcmVhZF8zMiAocHRyKTsJCQlcCiAgIHB0ciArPSA0 OwkJCQkJCVwKQEAgLTU3Nyw2ICs1OTgsNyBAQCByZWFkX3NpemUgKHVuc2lnbmVkIGNoYXIgKnAs IGludCBzaXplKQogICAgIHsKICAgICBjYXNlIDE6IHJldHVybiByZWFkXzggKHApOwogICAgIGNh c2UgMjogcmV0dXJuIHJlYWRfMTYgKHApOworICAgIGNhc2UgMzogcmV0dXJuIHJlYWRfMjQgKHAp OwogICAgIGNhc2UgNDogcmV0dXJuIHJlYWRfMzIgKHApOwogICAgIGNhc2UgODogcmV0dXJuIHJl YWRfNjQgKHApOwogICAgIGRlZmF1bHQ6IGFib3J0ICgpOwpAQCAtNzIwLDkgKzc0MiwxMSBAQCBl bnVtIGRlYnVnX3NlY3Rpb25fa2luZAogICBERUJVR19BQkJSRVYsCiAgIERFQlVHX0xJTkUsCiAg IERFQlVHX1NUUiwKKyAgREVCVUdfU1RSX09GRlNFVFMsCiAgIERFQlVHX01BQ1JPLAogICBERUJV R19UWVBFUywKICAgREVCVUdfQVJBTkdFUywKKyAgREVCVUdfQUREUiwKICAgREVCVUdfUFVCTkFN RVMsCiAgIERFQlVHX1BVQlRZUEVTLAogICBERUJVR19HTlVfUFVCTkFNRVMsCkBAIC03NTcsOSAr NzgxLDExIEBAIHN0YXRpYyBzdHJ1Y3QKICAgICB7ICIuZGVidWdfYWJicmV2IiwgTlVMTCwgTlVM TCwgMCwgMCwgMCB9LAogICAgIHsgIi5kZWJ1Z19saW5lIiwgTlVMTCwgTlVMTCwgMCwgMCwgMCB9 LAogICAgIHsgIi5kZWJ1Z19zdHIiLCBOVUxMLCBOVUxMLCAwLCAwLCAwIH0sCisgICAgeyAiLmRl YnVnX3N0cl9vZmZzZXRzIiwgTlVMTCwgTlVMTCwgMCwgMCwgMCB9LAogICAgIHsgIi5kZWJ1Z19t YWNybyIsIE5VTEwsIE5VTEwsIDAsIDAsIDAgfSwKICAgICB7ICIuZGVidWdfdHlwZXMiLCBOVUxM LCBOVUxMLCAwLCAwLCAwIH0sCiAgICAgeyAiLmRlYnVnX2FyYW5nZXMiLCBOVUxMLCBOVUxMLCAw LCAwLCAwIH0sCisgICAgeyAiLmRlYnVnX2FkZHIiLCBOVUxMLCBOVUxMLCAwLCAwLCAwIH0sCiAg ICAgeyAiLmRlYnVnX3B1Ym5hbWVzIiwgTlVMTCwgTlVMTCwgMCwgMCwgMCB9LAogICAgIHsgIi5k ZWJ1Z19wdWJ0eXBlcyIsIE5VTEwsIE5VTEwsIDAsIDAsIDAgfSwKICAgICB7ICIuZGVidWdfZ251 X3B1Ym5hbWVzIiwgTlVMTCwgTlVMTCwgMCwgMCwgMCB9LApAQCAtOTQyLDYgKzk2OCw3IEBAIHN0 cnVjdCBkd19jdQogICAvKiBJbnRyYWN1c2l6ZSBhcmd1bWVudCB0byBpbml0X25ld19kaWVfb2Zm c2V0cy4gIFNldCBpbiBjb21wdXRlX2FiYnJldnMsCiAgICAgIHVzZWQgaW4gcmVjb21wdXRlX2Fi YnJldnMuICAqLwogICB1bnNpZ25lZCBpbnQgaW5pdGlhbF9pbnRyYWN1c2l6ZTsKKyAgdW5zaWdu ZWQgaW50IGN1X3N0cl9vZmZzZXRzX2Jhc2U7CiAgIGVudW0gZHdhcmZfc291cmNlX2xhbmd1YWdl IGxhbmc7CiB9OwogCkBAIC0xMjM2LDYgKzEyNjMsMTQgQEAgcmVhZF9hYmJyZXYgKERTTyAqZHNv LCB1bnNpZ25lZCBjaGFyICpwdHIpCiAJICAgICAgfHwgKGZvcm0gPiBEV19GT1JNX2ZsYWdfcHJl c2VudAogCQkgICYmICEoZm9ybSA9PSBEV19GT1JNX3JlZl9zaWc4CiAJCSAgICAgICB8fCBmb3Jt ID09IERXX0ZPUk1fZGF0YTE2CisJCSAgICAgICB8fCBmb3JtID09IERXX0ZPUk1fYWRkcngKKwkJ ICAgICAgIHx8IGZvcm0gPT0gRFdfRk9STV9sb2NsaXN0eAorCQkgICAgICAgfHwgZm9ybSA9PSBE V19GT1JNX3JuZ2xpc3R4CisJCSAgICAgICB8fCBmb3JtID09IERXX0ZPUk1fc3RyeAorCQkgICAg ICAgfHwgZm9ybSA9PSBEV19GT1JNX3N0cngxCisJCSAgICAgICB8fCBmb3JtID09IERXX0ZPUk1f c3RyeDIKKwkJICAgICAgIHx8IGZvcm0gPT0gRFdfRk9STV9zdHJ4MworCQkgICAgICAgfHwgZm9y bSA9PSBEV19GT1JNX3N0cng0CiAJCSAgICAgICB8fCBmb3JtID09IERXX0ZPUk1fbGluZV9zdHJw KSkpCiAJICAgIHsKIAkgICAgICBlcnJvciAoMCwgMCwgIiVzOiBVbmtub3duIERXQVJGICVzIiwK QEAgLTEzMTYsMTUgKzEzNTEsMjEgQEAgc2tpcF9hdHRyX25vX2R3X2Zvcm1faW5kaXJlY3QgKHVu c2lnbmVkIGludCBjdV92ZXJzaW9uLCB1aW50MzJfdCBmb3JtLAogICAgIGNhc2UgRFdfRk9STV9p bXBsaWNpdF9jb25zdDoKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRFdfRk9STV9yZWYxOgorICAg IGNhc2UgRFdfRk9STV9zdHJ4MToKICAgICBjYXNlIERXX0ZPUk1fZmxhZzoKICAgICBjYXNlIERX X0ZPUk1fZGF0YTE6CiAgICAgICArK3B0cjsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRFdfRk9S TV9yZWYyOgorICAgIGNhc2UgRFdfRk9STV9zdHJ4MjoKICAgICBjYXNlIERXX0ZPUk1fZGF0YTI6 CiAgICAgICBwdHIgKz0gMjsKICAgICAgIGJyZWFrOworICAgIGNhc2UgRFdfRk9STV9zdHJ4MzoK KyAgICAgIHB0ciArPSAzOworICAgICAgYnJlYWs7CiAgICAgY2FzZSBEV19GT1JNX3JlZjQ6Cisg ICAgY2FzZSBEV19GT1JNX3N0cng0OgogICAgIGNhc2UgRFdfRk9STV9kYXRhNDoKICAgICBjYXNl IERXX0ZPUk1fc2VjX29mZnNldDoKICAgICBjYXNlIERXX0ZPUk1fc3RycDoKQEAgLTEzNDIsNiAr MTM4MywxMCBAQCBza2lwX2F0dHJfbm9fZHdfZm9ybV9pbmRpcmVjdCAodW5zaWduZWQgaW50IGN1 X3ZlcnNpb24sIHVpbnQzMl90IGZvcm0sCiAgICAgY2FzZSBEV19GT1JNX3NkYXRhOgogICAgIGNh c2UgRFdfRk9STV9yZWZfdWRhdGE6CiAgICAgY2FzZSBEV19GT1JNX3VkYXRhOgorICAgIGNhc2Ug RFdfRk9STV9hZGRyeDoKKyAgICBjYXNlIERXX0ZPUk1fbG9jbGlzdHg6CisgICAgY2FzZSBEV19G T1JNX3JuZ2xpc3R4OgorICAgIGNhc2UgRFdfRk9STV9zdHJ4OgogICAgICAgc2tpcF9sZWIxMjgg KHB0cik7CiAgICAgICBicmVhazsKICAgICBjYXNlIERXX0ZPUk1fc3RyaW5nOgpAQCAtMTcxNiw2 ICsxNzYxLDkgQEAgcmVhZF9kZWJ1Z19saW5lIChEU08gKmRzbywgZHdfY3VfcmVmIGN1LCB1aW50 MzJfdCBvZmYpCiAJCX0KIAkgICAgICBicmVhazsKIAorICAgICAgICAgICAgY2FzZSBEV19MTkNU X01ENToKKyAgICAgICAgICAgICAgYnJlYWs7CisKIAkgICAgZGVmYXVsdDoKIAkgICAgICBlcnJv ciAoMCwgMCwgIiVzOiAuZGVidWdfbGluZSB1bmhhbmRsZWQgZmlsZSBlbGVtZW50ICVzIiwKIAkJ ICAgICBkc28tPmZpbGVuYW1lLCBnZXRfRFdfTE5DVF9zdHIgKGxuY3QpKTsKQEAgLTIyMDEsNiAr MjI0OSwzOSBAQCBnZXRfQVRfc3RyaW5nIChkd19kaWVfcmVmIGRpZSwgZW51bSBkd2FyZl9hdHRy aWJ1dGUgYXQpCiAJICByZXR1cm4gTlVMTDsKIAlyZXR1cm4gKGNoYXIgKikgZGVidWdfc2VjdGlv bnNbREVCVUdfU1RSXS5kYXRhICsgc3RycDsKICAgICAgIH0KKyAgICBjYXNlIERXX0ZPUk1fc3Ry eDoKKyAgICBjYXNlIERXX0ZPUk1fc3RyeDE6CisgICAgY2FzZSBEV19GT1JNX3N0cngyOgorICAg IGNhc2UgRFdfRk9STV9zdHJ4MzoKKyAgICBjYXNlIERXX0ZPUk1fc3RyeDQ6CisgICAgICB7CisJ dW5zaWduZWQgaW50IHN0cl9vZmZzZXRzX2Jhc2UgPSBkaWVfY3UoZGllKS0+Y3Vfc3RyX29mZnNl dHNfYmFzZTsKKworCXVpbnQ2NF90IHN0cl9pZHggPSAwOworCWlmIChmb3JtID09IERXX0ZPUk1f c3RyeCkKKwkgIHN0cl9pZHggPSByZWFkX3VsZWIxMjggKHB0cik7CisJaWYgKGZvcm0gPT0gRFdf Rk9STV9zdHJ4MSkKKwkgIHN0cl9pZHggPSByZWFkXzggKHB0cik7CisJaWYgKGZvcm0gPT0gRFdf Rk9STV9zdHJ4MikKKwkgIHN0cl9pZHggPSByZWFkXzE2IChwdHIpOworCWlmIChmb3JtID09IERX X0ZPUk1fc3RyeDMpCisJICBzdHJfaWR4ID0gcmVhZF8yNCAocHRyKTsKKwlpZiAoZm9ybSA9PSBE V19GT1JNX3N0cng0KQorCSAgc3RyX2lkeCA9IHJlYWRfMzIgKHB0cik7CisKKyAgICAgICAgaWYg KHN0cl9pZHggPj0gZGVidWdfc2VjdGlvbnNbREVCVUdfU1RSX09GRlNFVFNdLnNpemUpCisgICAg ICAgICAgcmV0dXJuIE5VTEw7CisKKwl1bnNpZ25lZCBjaGFyICpzdHJfb2Zmc2V0X3B0ciA9IHN0 cl9vZmZzZXRzX2Jhc2UgKworCQlkZWJ1Z19zZWN0aW9uc1tERUJVR19TVFJfT0ZGU0VUU10uZGF0 YSArCisJCShzdHJfaWR4ICogNCk7IC8qIEVhY2ggaW5kZXggZW50cnkgaXMgNCBieXRlcyBsb25n Ki8KKworICAgICAgICB1bnNpZ25lZCBpbnQgc3RyX29mZnNldCA9IHJlYWRfMzIoc3RyX29mZnNl dF9wdHIpOworICAgICAgICBpZiAoc3RyX29mZnNldCA+PSBkZWJ1Z19zZWN0aW9uc1tERUJVR19T VFJdLnNpemUpCisgICAgICAgICAgcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gKGNoYXIgKikgZGVi dWdfc2VjdGlvbnNbREVCVUdfU1RSXS5kYXRhICsgc3RyX29mZnNldDsKKyAgICAgIH0KICAgICBj YXNlIERXX0ZPUk1fbGluZV9zdHJwOgogICAgICAgewogCXVuc2lnbmVkIGludCBsaW5lX3N0cnAg PSByZWFkXzMyIChwdHIpOwpAQCAtMjIzOSw2ICsyMzIwLDEwIEBAIHJlYWRfZXhwcmxvYyAoRFNP ICpkc28sIGR3X2RpZV9yZWYgZGllLCB1bnNpZ25lZCBjaGFyICpwdHIsIHNpemVfdCBsZW4sCiAJ ICBkaWUtPmRpZV9ub19tdWx0aWZpbGUgPSAxOwogCSAgcHRyICs9IHB0cl9zaXplOwogCSAgYnJl YWs7CisJY2FzZSBEV19PUF9hZGRyeDoKKwkgIGRpZS0+ZGllX25vX211bHRpZmlsZSA9IDE7CisJ ICBza2lwX2xlYjEyOCAocHRyKTsKKwkgIGJyZWFrOwogCWNhc2UgRFdfT1BfZGVyZWY6CiAJY2Fz ZSBEV19PUF9kdXA6CiAJY2FzZSBEV19PUF9kcm9wOgpAQCAtMzU2MCw2ICszNjQ1LDEwIEBAIGNo ZWNrc3VtX2RpZSAoRFNPICpkc28sIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiB0b3BfZGllLCBk d19kaWVfcmVmIGRpZSkKIAkgIGRpZS0+ZGllX25vX211bHRpZmlsZSA9IDE7CiAJICBwdHIgKz0g cHRyX3NpemU7CiAJICBicmVhazsKKwljYXNlIERXX0ZPUk1fYWRkcng6CisJICBkaWUtPmRpZV9u b19tdWx0aWZpbGUgPSAxOworCSAgc2tpcF9sZWIxMjggKHB0cik7CisJICBicmVhazsKIAljYXNl IERXX0ZPUk1fZmxhZ19wcmVzZW50OgogCSAgYnJlYWs7CiAJY2FzZSBEV19GT1JNX2ltcGxpY2l0 X2NvbnN0OgpAQCAtMzU3NSwxMyArMzY2NCwxOSBAQCBjaGVja3N1bV9kaWUgKERTTyAqZHNvLCBk d19jdV9yZWYgY3UsIGR3X2RpZV9yZWYgdG9wX2RpZSwgZHdfZGllX3JlZiBkaWUpCiAJICBicmVh azsKIAljYXNlIERXX0ZPUk1fZmxhZzoKIAljYXNlIERXX0ZPUk1fZGF0YTE6CisJY2FzZSBEV19G T1JNX3N0cngxOgogCSAgKytwdHI7CiAJICBicmVhazsKIAljYXNlIERXX0ZPUk1fZGF0YTI6CisJ Y2FzZSBEV19GT1JNX3N0cngyOgogCSAgcHRyICs9IDI7CiAJICBicmVhazsKKwljYXNlIERXX0ZP Uk1fc3RyeDM6CisJICBwdHIgKz0gMzsKKwkgIGJyZWFrOwogCWNhc2UgRFdfRk9STV9kYXRhNDoK IAljYXNlIERXX0ZPUk1fc2VjX29mZnNldDoKKwljYXNlIERXX0ZPUk1fc3RyeDQ6CiAJICBwdHIg Kz0gNDsKIAkgIGJyZWFrOwogCWNhc2UgRFdfRk9STV9kYXRhODoKQEAgLTM1OTYsNiArMzY5MSw5 IEBAIGNoZWNrc3VtX2RpZSAoRFNPICpkc28sIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiB0b3Bf ZGllLCBkd19kaWVfcmVmIGRpZSkKIAkgIGJyZWFrOwogCWNhc2UgRFdfRk9STV9zZGF0YToKIAlj YXNlIERXX0ZPUk1fdWRhdGE6CisJY2FzZSBEV19GT1JNX3N0cng6CisJY2FzZSBEV19GT1JNX2xv Y2xpc3R4OgorCWNhc2UgRFdfRk9STV9ybmdsaXN0eDoKIAkgIHNraXBfbGViMTI4IChwdHIpOwog CSAgYnJlYWs7CiAJY2FzZSBEV19GT1JNX3JlZl91ZGF0YToKQEAgLTQwMTgsMTUgKzQxMTYsMjEg QEAgY2hlY2tzdW1fcmVmX2RpZSAoZHdfY3VfcmVmIGN1LCBkd19kaWVfcmVmIHRvcF9kaWUsIGR3 X2RpZV9yZWYgZGllLAogCSAgICAgIGJyZWFrOwogCSAgICBjYXNlIERXX0ZPUk1fZmxhZzoKIAkg ICAgY2FzZSBEV19GT1JNX2RhdGExOgorCSAgICBjYXNlIERXX0ZPUk1fc3RyeDE6CiAJICAgICAg KytwdHI7CiAJICAgICAgYnJlYWs7CiAJICAgIGNhc2UgRFdfRk9STV9kYXRhMjoKKwkgICAgY2Fz ZSBEV19GT1JNX3N0cngyOgogCSAgICAgIHB0ciArPSAyOwogCSAgICAgIGJyZWFrOworCSAgICBj YXNlIERXX0ZPUk1fc3RyeDM6CisJICAgICAgcHRyICs9IDM7CisJICAgICAgYnJlYWs7CiAJICAg IGNhc2UgRFdfRk9STV9kYXRhNDoKIAkgICAgY2FzZSBEV19GT1JNX3NlY19vZmZzZXQ6CiAJICAg IGNhc2UgRFdfRk9STV9zdHJwOgogCSAgICBjYXNlIERXX0ZPUk1fbGluZV9zdHJwOgorCSAgICBj YXNlIERXX0ZPUk1fc3RyeDQ6CiAJICAgICAgcHRyICs9IDQ7CiAJICAgICAgYnJlYWs7CiAJICAg IGNhc2UgRFdfRk9STV9kYXRhODoKQEAgLTQwMzgsNiArNDE0MiwxMCBAQCBjaGVja3N1bV9yZWZf ZGllIChkd19jdV9yZWYgY3UsIGR3X2RpZV9yZWYgdG9wX2RpZSwgZHdfZGllX3JlZiBkaWUsCiAJ ICAgICAgYnJlYWs7CiAJICAgIGNhc2UgRFdfRk9STV9zZGF0YToKIAkgICAgY2FzZSBEV19GT1JN X3VkYXRhOgorCSAgICBjYXNlIERXX0ZPUk1fYWRkcng6CisJICAgIGNhc2UgRFdfRk9STV9sb2Ns aXN0eDoKKwkgICAgY2FzZSBEV19GT1JNX3JuZ2xpc3R4OgorCSAgICBjYXNlIERXX0ZPUk1fc3Ry eDoKIAkgICAgICBza2lwX2xlYjEyOCAocHRyKTsKIAkgICAgICBicmVhazsKIAkgICAgY2FzZSBE V19GT1JNX3JlZl91ZGF0YToKQEAgLTQ4NzcsMTUgKzQ5ODUsMjIgQEAgZGllX2VxXzEgKGR3X2N1 X3JlZiBjdTEsIGR3X2N1X3JlZiBjdTIsCiAJICBicmVhazsKIAljYXNlIERXX0ZPUk1fZmxhZzoK IAljYXNlIERXX0ZPUk1fZGF0YTE6CisJY2FzZSBEV19GT1JNX3N0cngxOgogCSAgKytwdHIxOwog CSAgKytwdHIyOwogCSAgYnJlYWs7CiAJY2FzZSBEV19GT1JNX2RhdGEyOgorCWNhc2UgRFdfRk9S TV9zdHJ4MjoKIAkgIHB0cjEgKz0gMjsKIAkgIHB0cjIgKz0gMjsKIAkgIGJyZWFrOworCWNhc2Ug RFdfRk9STV9zdHJ4MzoKKwkgIHB0cjEgKz0gMzsKKwkgIHB0cjIgKz0gMzsKKwkgIGJyZWFrOwog CWNhc2UgRFdfRk9STV9kYXRhNDoKIAljYXNlIERXX0ZPUk1fc2VjX29mZnNldDoKKwljYXNlIERX X0ZPUk1fc3RyeDQ6CiAJICBwdHIxICs9IDQ7CiAJICBwdHIyICs9IDQ7CiAJICBicmVhazsKQEAg LTQ5MDAsNiArNTAxNSwxMCBAQCBkaWVfZXFfMSAoZHdfY3VfcmVmIGN1MSwgZHdfY3VfcmVmIGN1 MiwKIAkgIGJyZWFrOwogCWNhc2UgRFdfRk9STV9zZGF0YToKIAljYXNlIERXX0ZPUk1fdWRhdGE6 CisJY2FzZSBEV19GT1JNX2FkZHJ4OgorCWNhc2UgRFdfRk9STV9sb2NsaXN0eDoKKwljYXNlIERX X0ZPUk1fcm5nbGlzdHg6CisJY2FzZSBEV19GT1JNX3N0cng6CiAJICBza2lwX2xlYjEyOCAocHRy MSk7CiAJICBza2lwX2xlYjEyOCAocHRyMik7CiAJICBicmVhazsKQEAgLTU5NzIsMTIgKzYwOTEs MTggQEAgbWFya19yZWZzIChkd19jdV9yZWYgY3UsIGR3X2RpZV9yZWYgdG9wX2RpZSwgZHdfZGll X3JlZiBkaWUsIGludCBtb2RlKQogCSAgICBjYXNlIERXX0ZPUk1faW1wbGljaXRfY29uc3Q6CiAJ ICAgICAgYnJlYWs7CiAJICAgIGNhc2UgRFdfRk9STV9mbGFnOgorICAgICAgICAgICAgY2FzZSBE V19GT1JNX3N0cngxOgogCSAgICBjYXNlIERXX0ZPUk1fZGF0YTE6CiAJICAgICAgKytwdHI7CiAJ ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERXX0ZPUk1fc3RyeDI6CiAJICAgIGNhc2Ug RFdfRk9STV9kYXRhMjoKIAkgICAgICBwdHIgKz0gMjsKIAkgICAgICBicmVhazsKKwkgICAgY2Fz ZSBEV19GT1JNX3N0cngzOgorCSAgICAgIHB0ciArPSAzOworCSAgICAgIGJyZWFrOworCSAgICBj YXNlIERXX0ZPUk1fc3RyeDQ6CiAJICAgIGNhc2UgRFdfRk9STV9kYXRhNDoKIAkgICAgY2FzZSBE V19GT1JNX3NlY19vZmZzZXQ6CiAJICAgIGNhc2UgRFdfRk9STV9zdHJwOgpAQCAtNTk5Myw2ICs2 MTE4LDEwIEBAIG1hcmtfcmVmcyAoZHdfY3VfcmVmIGN1LCBkd19kaWVfcmVmIHRvcF9kaWUsIGR3 X2RpZV9yZWYgZGllLCBpbnQgbW9kZSkKIAkgICAgICBicmVhazsKIAkgICAgY2FzZSBEV19GT1JN X3NkYXRhOgogCSAgICBjYXNlIERXX0ZPUk1fdWRhdGE6CisJICAgIGNhc2UgRFdfRk9STV9hZGRy eDoKKwkgICAgY2FzZSBEV19GT1JNX2xvY2xpc3R4OgorCSAgICBjYXNlIERXX0ZPUk1fcm5nbGlz dHg6CisJICAgIGNhc2UgRFdfRk9STV9zdHJ4OgogCSAgICAgIHNraXBfbGViMTI4IChwdHIpOwog CSAgICAgIGJyZWFrOwogCSAgICBjYXNlIERXX0ZPUk1fcmVmX3VkYXRhOgpAQCAtNjk2Nyw2ICs3 MDk2LDcgQEAgcmVhZF9kZWJ1Z19pbmZvIChEU08gKmRzbywgaW50IGtpbmQsIHVuc2lnbmVkIGlu dCAqZGllX2NvdW50KQogCQkgICAgY3UtPmxhbmcgPSAqcHRyOwogCQkgIC8qIEZBTExUSFJVICov CiAJCWNhc2UgRFdfRk9STV9yZWYxOgorCQljYXNlIERXX0ZPUk1fc3RyeDE6CiAJCWNhc2UgRFdf Rk9STV9mbGFnOgogCQkgICsrcHRyOwogCQkgIGJyZWFrOwpAQCAtNjk3OCw4ICs3MTA4LDIwIEBA IHJlYWRfZGVidWdfaW5mbyAoRFNPICpkc28sIGludCBraW5kLCB1bnNpZ25lZCBpbnQgKmRpZV9j b3VudCkKIAkJICAgIGN1LT5sYW5nID0gZG9fcmVhZF8xNiAocHRyKTsKIAkJICAvKiBGQUxMVEhS VSAqLwogCQljYXNlIERXX0ZPUk1fcmVmMjoKKwkJY2FzZSBEV19GT1JNX3N0cngyOgogCQkgIHB0 ciArPSAyOwogCQkgIGJyZWFrOworCQljYXNlIERXX0ZPUk1fc3RyeDM6CisJCSAgcHRyICs9IDM7 CisJCSAgYnJlYWs7CisJCWNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorCQkgIGlmICgoZGllLT5k aWVfdGFnID09IERXX1RBR19jb21waWxlX3VuaXQKKwkJCSAgfHwgZGllLT5kaWVfdGFnID09IERX X1RBR19wYXJ0aWFsX3VuaXQpCisJCSAgICAgICYmIHQtPmF0dHJbaV0uYXR0ciA9PSBEV19BVF9z dHJfb2Zmc2V0c19iYXNlKQorCQkgICAgY3UtPmN1X3N0cl9vZmZzZXRzX2Jhc2UgPSByZWFkXzMy KHB0cik7CisJCSAgZWxzZQorCQkgICAgcHRyICs9IDQ7CisJCSAgYnJlYWs7CiAJCWNhc2UgRFdf Rk9STV9kYXRhNDoKIAkJICBpZiAobGFuZ19wCiAJCSAgICAgICYmIChkaWUtPmRpZV90YWcgPT0g RFdfVEFHX2NvbXBpbGVfdW5pdApAQCAtNjk4OCw3ICs3MTMwLDcgQEAgcmVhZF9kZWJ1Z19pbmZv IChEU08gKmRzbywgaW50IGtpbmQsIHVuc2lnbmVkIGludCAqZGllX2NvdW50KQogCQkgICAgcmVh ZF9sYW5nIChwdHIsIGZvcm0sICZjdS0+bGFuZyk7CiAJCSAgLyogRkFMTFRIUlUgKi8KIAkJY2Fz ZSBEV19GT1JNX3JlZjQ6Ci0JCWNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorCQljYXNlIERXX0ZP Uk1fc3RyeDQ6CiAJCSAgcHRyICs9IDQ7CiAJCSAgYnJlYWs7CiAJCWNhc2UgRFdfRk9STV9kYXRh ODoKQEAgLTcwMTcsNiArNzE1OSwxMCBAQCByZWFkX2RlYnVnX2luZm8gKERTTyAqZHNvLCBpbnQg a2luZCwgdW5zaWduZWQgaW50ICpkaWVfY291bnQpCiAJCSAgICB9CiAJCSAgLyogRkFMTFRIUlUg Ki8KIAkJY2FzZSBEV19GT1JNX3JlZl91ZGF0YToKKwkJY2FzZSBEV19GT1JNX2FkZHJ4OgorCQlj YXNlIERXX0ZPUk1fcm5nbGlzdHg6CisJCWNhc2UgRFdfRk9STV9sb2NsaXN0eDoKKwkJY2FzZSBE V19GT1JNX3N0cng6CiAJCSAgc2tpcF9sZWIxMjggKHB0cik7CiAJCSAgYnJlYWs7CiAJCWNhc2Ug RFdfRk9STV9zdHJwOgpAQCAtODA1Miw2ICs4MTk4LDcgQEAgcGFydGl0aW9uX2R1cHNfMSAoZHdf ZGllX3JlZiAqYXJyLCBzaXplX3QgbnJfcGFydGl0aW9ucywgc2l6ZV90ICpwYXJ0aXRpb25zLAog CSAgICsgKCh1bmlfbGFuZ19wIHx8IHBhcnRfbGFuZykKIAkgICAgICA/IG5yX2J5dGVzX2ZvciAo ZGllX2N1IChhcnJbaV0pLT5sYW5nKQogCSAgICAgIDogMCkKKwkgICArIChkaWVfY3UgKGFycltp XSktPmN1X3N0cl9vZmZzZXRzX2Jhc2UgPyA0OiAwKQogCSAgIC8qIENVIHJvb3QgRElFIGNoaWxk cmVuIHRlcm1pbmF0b3I6IGFiYnJldmlhdGlvbiBjb2RlIDAKIAkJCQkJICAgICAgICh1bnNpZ25l ZCBMRUIxMjgpLgogCSAgICAgIDEgYnl0ZS4gICovCkBAIC0xMDgwNSwxMiArMTA5NTIsMTcgQEAg YnVpbGRfYWJicmV2c19mb3JfZGllIChodGFiX3QgaCwgZHdfY3VfcmVmIGN1LCBkd19kaWVfcmVm IGRpZSwKIAkJY2FzZSBEV19GT1JNX2ltcGxpY2l0X2NvbnN0OgogCQkgIGJyZWFrOwogCQljYXNl IERXX0ZPUk1fZmxhZzoKKwkJY2FzZSBEV19GT1JNX3N0cngxOgogCQljYXNlIERXX0ZPUk1fZGF0 YTE6CiAJCSAgKytwdHI7CiAJCSAgYnJlYWs7CisJCWNhc2UgRFdfRk9STV9zdHJ4MjoKIAkJY2Fz ZSBEV19GT1JNX2RhdGEyOgogCQkgIHB0ciArPSAyOwogCQkgIGJyZWFrOworCQljYXNlIERXX0ZP Uk1fc3RyeDM6CisJCSAgcHRyICs9IDM7CisJCSAgYnJlYWs7CiAJCWNhc2UgRFdfRk9STV9kYXRh NDoKIAkJICBpZiAocmVmdC0+YXR0cltpXS5hdHRyID09IERXX0FUX2hpZ2hfcGMpCiAJCSAgICB7 CkBAIC0xMDgyNyw2ICsxMDk3OSw3IEBAIGJ1aWxkX2FiYnJldnNfZm9yX2RpZSAoaHRhYl90IGgs IGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiBkaWUsCiAJCSAgICB9CiAJCSAgcHRyICs9IDQ7CiAJ CSAgYnJlYWs7CisJCWNhc2UgRFdfRk9STV9zdHJ4NDoKIAkJY2FzZSBEV19GT1JNX3NlY19vZmZz ZXQ6CiAJCSAgcHRyICs9IDQ7CiAJCSAgYnJlYWs7CkBAIC0xMDg2NCw2ICsxMTAxNywxMCBAQCBi dWlsZF9hYmJyZXZzX2Zvcl9kaWUgKGh0YWJfdCBoLCBkd19jdV9yZWYgY3UsIGR3X2RpZV9yZWYg ZGllLAogCQkgIGJyZWFrOwogCQljYXNlIERXX0ZPUk1fc2RhdGE6CiAJCWNhc2UgRFdfRk9STV91 ZGF0YToKKwkJY2FzZSBEV19GT1JNX2FkZHJ4OgorCQljYXNlIERXX0ZPUk1fbG9jbGlzdHg6CisJ CWNhc2UgRFdfRk9STV9ybmdsaXN0eDoKKwkJY2FzZSBEV19GT1JNX3N0cng6CiAJCSAgc2tpcF9s ZWIxMjggKHB0cik7CiAJCSAgYnJlYWs7CiAJCWNhc2UgRFdfRk9STV9zdHJwOgpAQCAtMTEwMzgs NyArMTExOTUsMTIgQEAgYnVpbGRfYWJicmV2c19mb3JfZGllIChodGFiX3QgaCwgZHdfY3VfcmVm IGN1LCBkd19kaWVfcmVmIGRpZSwKIAkgICAgdW5zaWduZWQgY2hhciAqcHRyID0gZ2V0X0FUIChv cmlnaW4sIERXX0FUX2NvbXBfZGlyLCAmZm9ybSk7CiAJICAgIGFzc2VydCAocHRyICYmIChmb3Jt ID09IERXX0ZPUk1fc3RyaW5nCiAJCQkgICAgfHwgZm9ybSA9PSBEV19GT1JNX3N0cnAKLQkJCSAg ICB8fCBmb3JtID09IERXX0ZPUk1fbGluZV9zdHJwKSk7CisJCQkgICAgfHwgZm9ybSA9PSBEV19G T1JNX2xpbmVfc3RycAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGZvcm0gPT0gRFdf Rk9STV9zdHJ4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZm9ybSA9PSBEV19GT1JN X3N0cngxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZm9ybSA9PSBEV19GT1JNX3N0 cngyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZm9ybSA9PSBEV19GT1JNX3N0cngz CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZm9ybSA9PSBEV19GT1JNX3N0cng0KSk7 CiAJICAgIGlmIChmb3JtID09IERXX0ZPUk1fc3RycCkKIAkgICAgICB7CiAJCWlmICh1bmxpa2Vs eSAob3BfbXVsdGlmaWxlIHx8IGZpX211bHRpZmlsZSkpCkBAIC0xMTA0Nyw2ICsxMTIwOSwyMCBA QCBidWlsZF9hYmJyZXZzX2Zvcl9kaWUgKGh0YWJfdCBoLCBkd19jdV9yZWYgY3UsIGR3X2RpZV9y ZWYgZGllLAogCSAgICAgIH0KIAkgICAgZWxzZSBpZiAoZm9ybSA9PSBEV19GT1JNX2xpbmVfc3Ry cCkKIAkgICAgICBkaWUtPmRpZV9zaXplICs9IDQ7CisJICAgIGVsc2UgaWYgKGZvcm0gPT0gRFdf Rk9STV9zdHJ4KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdWludDY0X3QgaWR4 ID0gcmVhZF91bGViMTI4KHB0cik7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbiA9 IHNpemVfb2ZfdWxlYjEyOChpZHgpOworICAgICAgICAgICAgICAgIGRpZS0+ZGllX3NpemUgKz0g bGVuOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChmb3JtID09IERXX0ZP Uk1fc3RyeDEpCisgICAgICAgICAgICAgIGRpZS0+ZGllX3NpemUgKz0gMTsKKyAgICAgICAgICAg IGVsc2UgaWYgKGZvcm0gPT0gRFdfRk9STV9zdHJ4MikKKyAgICAgICAgICAgICAgZGllLT5kaWVf c2l6ZSArPSAyOworICAgICAgICAgICAgZWxzZSBpZiAoZm9ybSA9PSBEV19GT1JNX3N0cngzKQor ICAgICAgICAgICAgICBkaWUtPmRpZV9zaXplICs9IDM7CisgICAgICAgICAgICBlbHNlIGlmIChm b3JtID09IERXX0ZPUk1fc3RyeDQpCisgICAgICAgICAgICAgIGRpZS0+ZGllX3NpemUgKz0gNDsK IAkgICAgZWxzZQogCSAgICAgIGRpZS0+ZGllX3NpemUKIAkJKz0gc3RybGVuIChyZWZjdS0+Y3Vf Y29tcF9kaXIpICsgMTsKQEAgLTExMDU0LDYgKzExMjMwLDE2IEBAIGJ1aWxkX2FiYnJldnNfZm9y X2RpZSAoaHRhYl90IGgsIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiBkaWUsCiAJICAgIHQtPmF0 dHJbdC0+bmF0dHJdLmZvcm0gPSBmb3JtOwogCSAgICB0LT5uYXR0cisrOwogCSAgfQorCWlmIChy ZWZjdS0+Y3Vfc3RyX29mZnNldHNfYmFzZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICBlbnVt IGR3YXJmX2Zvcm0gZm9ybTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnB0ciA9IGdldF9B VCAob3JpZ2luLCBEV19BVF9zdHJfb2Zmc2V0c19iYXNlLCAmZm9ybSk7CisgICAgICAgICAgICBh c3NlcnQgKHB0ciAmJiAoZm9ybSA9PSBEV19GT1JNX3NlY19vZmZzZXQpKTsKKyAgICAgICAgICAg IGRpZS0+ZGllX3NpemUgKz0gNDsKKyAgICAgICAgICAgIHQtPmF0dHJbdC0+bmF0dHJdLmF0dHIg PSBEV19BVF9zdHJfb2Zmc2V0c19iYXNlOworICAgICAgICAgICAgdC0+YXR0clt0LT5uYXR0cl0u Zm9ybSA9IGZvcm07CisgICAgICAgICAgICB0LT5uYXR0cisrOworICAgICAgICAgIH0KIAlicmVh azsKICAgICAgIGNhc2UgRFdfVEFHX25hbWVzcGFjZToKICAgICAgIGNhc2UgRFdfVEFHX21vZHVs ZToKQEAgLTExMDYyLDcgKzExMjQ4LDEyIEBAIGJ1aWxkX2FiYnJldnNfZm9yX2RpZSAoaHRhYl90 IGgsIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiBkaWUsCiAJICB1bnNpZ25lZCBjaGFyICpwdHIg PSBnZXRfQVQgKG9yaWdpbiwgRFdfQVRfbmFtZSwgJmZvcm0pOwogCSAgYXNzZXJ0IChwdHIgJiYg KGZvcm0gPT0gRFdfRk9STV9zdHJpbmcKIAkJCSAgfHwgZm9ybSA9PSBEV19GT1JNX3N0cnAKLQkJ CSAgfHwgZm9ybSA9PSBEV19GT1JNX2xpbmVfc3RycCkpOworCQkJICB8fCBmb3JtID09IERXX0ZP Uk1fbGluZV9zdHJwCisgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGZvcm0gPT0gRFdfRk9S TV9zdHJ4CisgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGZvcm0gPT0gRFdfRk9STV9zdHJ4 MQorICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBmb3JtID09IERXX0ZPUk1fc3RyeDIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgfHwgZm9ybSA9PSBEV19GT1JNX3N0cngzCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHx8IGZvcm0gPT0gRFdfRk9STV9zdHJ4NCkpOwogCSAgaWYgKGZv cm0gPT0gRFdfRk9STV9zdHJwKQogCSAgICB7CiAJICAgICAgaWYgKHVubGlrZWx5IChvcF9tdWx0 aWZpbGUgfHwgZmlfbXVsdGlmaWxlKSkKQEAgLTExMDcxLDYgKzExMjYyLDIwIEBAIGJ1aWxkX2Fi YnJldnNfZm9yX2RpZSAoaHRhYl90IGgsIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiBkaWUsCiAJ ICAgIH0KIAkgIGVsc2UgaWYgKGZvcm0gPT0gRFdfRk9STV9saW5lX3N0cnApCiAJICAgIGRpZS0+ ZGllX3NpemUgKz0gNDsKKwkgIGVsc2UgaWYgKGZvcm0gPT0gRFdfRk9STV9zdHJ4KQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICB1aW50NjRfdCBpZHggPSByZWFkX3VsZWIxMjgocHRyKTsK KyAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbiA9IHNpemVfb2ZfdWxlYjEyOChpZHgpOwor ICAgICAgICAgICAgICBkaWUtPmRpZV9zaXplID0gbGVuOworICAgICAgICAgICAgfQorCSAgZWxz ZSBpZiAoZm9ybSA9PSBEV19GT1JNX3N0cngxKQorICAgICAgICAgICAgZGllLT5kaWVfc2l6ZSA9 IDE7CisgICAgICAgICAgZWxzZSBpZiAoZm9ybSA9PSBEV19GT1JNX3N0cngyKQorICAgICAgICAg ICAgZGllLT5kaWVfc2l6ZSA9IDI7CisgICAgICAgICAgZWxzZSBpZiAoZm9ybSA9PSBEV19GT1JN X3N0cngzKQorICAgICAgICAgICAgZGllLT5kaWVfc2l6ZSA9IDM7CisgICAgICAgICAgZWxzZSBp ZiAoZm9ybSA9PSBEV19GT1JNX3N0cng0KQorICAgICAgICAgICAgZGllLT5kaWVfc2l6ZSA9IDQ7 CiAJICBlbHNlCiAJICAgIGRpZS0+ZGllX3NpemUgPSBzdHJsZW4gKChjaGFyICopIHB0cikgKyAx OwogCSAgdC0+YXR0clswXS5hdHRyID0gRFdfQVRfbmFtZTsKQEAgLTEyMDQ0LDYgKzEyMjQ5LDcg QEAgYWRqdXN0X2V4cHJsb2MgKGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiBkaWUsIGR3X2N1X3Jl ZiByZWZjdSwKIAljYXNlIERXX09QX2NvbnN0dToKIAljYXNlIERXX09QX3BsdXNfdWNvbnN0Ogog CWNhc2UgRFdfT1BfcmVneDoKKwljYXNlIERXX09QX2FkZHJ4OgogCWNhc2UgRFdfT1BfcGllY2U6 CiAJY2FzZSBEV19PUF9jb25zdHM6CiAJY2FzZSBEV19PUF9icmVnMCAuLi4gRFdfT1BfYnJlZzMx OgpAQCAtMTIxNzEsMTEgKzEyMzc3LDMzIEBAIHdyaXRlX3VuaXRfZGllICh1bnNpZ25lZCBjaGFy ICpwdHIsIGR3X2RpZV9yZWYgZGllLCBkd19kaWVfcmVmIG9yaWdpbikKIAkJICAgIHB0ciArPSA0 OwogCQkgIH0KIAkgICAgICB9Ci0JICAgIGVsc2UgaWYgKGZvcm0gPT0gRFdfRk9STV9saW5lX3N0 cnApCisJICAgIGVsc2UgaWYgKGZvcm0gPT0gRFdfRk9STV9saW5lX3N0cnAgfHwgZm9ybSA9PSBE V19GT1JNX3N0cng0KQogCSAgICAgIHsKIAkJbWVtY3B5IChwdHIsIHAsIDQpOwogCQlwdHIgKz0g NDsKIAkgICAgICB9CisJICAgIGVsc2UgaWYgKGZvcm0gPT0gRFdfRk9STV9zdHJ4KQorCSAgICAg IHsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBpZHggPSByZWFkX3VsZWIxMjgocCk7CisJCXVu c2lnbmVkIGludCBsZW4gPSBzaXplX29mX3VsZWIxMjgoaWR4KTsKKwkgICAgICAgIG1lbWNweSAo cHRyLCBwLCBsZW4pOworCQlwdHIgKz0gbGVuOworCSAgICAgIH0KKwkgICAgZWxzZSBpZiAoZm9y bSA9PSBEV19GT1JNX3N0cngxKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVt Y3B5IChwdHIsIHAsIDEpOworICAgICAgICAgICAgICAgIHB0ciArPSAxOworICAgICAgICAgICAg ICB9CisgICAgICAgICAgICBlbHNlIGlmIChmb3JtID09IERXX0ZPUk1fc3RyeDIpCisgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkgKHB0ciwgcCwgMik7CisgICAgICAgICAg ICAgICAgcHRyICs9IDI7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGZv cm0gPT0gRFdfRk9STV9zdHJ4MykKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1l bWNweSAocHRyLCBwLCAzKTsKKyAgICAgICAgICAgICAgICBwdHIgKz0gMzsKKyAgICAgICAgICAg ICAgfQogCSAgICBlbHNlCiAJICAgICAgewogCQlzaXplX3QgbGVuID0gc3RybGVuICgoY2hhciAq KSBwKSArIDE7CkBAIC0xMjE5MSw2ICsxMjQxOSwxNSBAQCB3cml0ZV91bml0X2RpZSAodW5zaWdu ZWQgY2hhciAqcHRyLCBkd19kaWVfcmVmIGRpZSwgZHdfZGllX3JlZiBvcmlnaW4pCiAJICAgIHdy aXRlX3NpemUgKHB0ciwgbGFuZ19zaXplLCBsYW5nKTsKIAkgICAgcHRyICs9IGxhbmdfc2l6ZTsK IAkgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEV19BVF9zdHJfb2Zmc2V0c19i YXNlOgorICAgICAgICAgIHsKKyAgICAgICAgICAgIGVudW0gZHdhcmZfZm9ybSBmb3JtOworICAg ICAgICAgICAgdW5zaWduZWQgY2hhciAqcCA9IGdldF9BVCAob3JpZ2luLCBEV19BVF9zdHJfb2Zm c2V0c19iYXNlLCAmZm9ybSk7CisgICAgICAgICAgICBhc3NlcnQgKHAgJiYgKGZvcm0gPT0gRFdf Rk9STV9zZWNfb2Zmc2V0KSk7CisgICAgICAgICAgICBtZW1jcHkocHRyLCBwLCA0KTsKKyAgICAg ICAgICAgIHB0ciArPSA0OworCSAgfQogCSAgYnJlYWs7CiAJZGVmYXVsdDoKIAkgIGFzc2VydCAo ZmFsc2UpOwpAQCAtMTI0MDAsMTIgKzEyNjM3LDE3IEBAIHdyaXRlX2RpZSAodW5zaWduZWQgY2hh ciAqcHRyLCBkd19jdV9yZWYgY3UsIGR3X2RpZV9yZWYgZGllLAogCSAgICBjYXNlIERXX0ZPUk1f aW1wbGljaXRfY29uc3Q6CiAJICAgICAgYnJlYWs7CiAJICAgIGNhc2UgRFdfRk9STV9mbGFnOgor CSAgICBjYXNlIERXX0ZPUk1fc3RyeDE6CiAJICAgIGNhc2UgRFdfRk9STV9kYXRhMToKIAkgICAg ICArK2lucHRyOwogCSAgICAgIGJyZWFrOwogCSAgICBjYXNlIERXX0ZPUk1fZGF0YTI6CisJICAg IGNhc2UgRFdfRk9STV9zdHJ4MjoKIAkgICAgICBpbnB0ciArPSAyOwogCSAgICAgIGJyZWFrOwor CSAgICBjYXNlIERXX0ZPUk1fc3RyeDM6CisJICAgICAgaW5wdHIgKz0gMzsKKwkgICAgICBicmVh azsKIAkgICAgY2FzZSBEV19GT1JNX2RhdGE0OgogCSAgICAgIGlmIChyZWZ0LT5hdHRyW2ldLmF0 dHIgPT0gRFdfQVRfaGlnaF9wYwogCQkgICYmIHQtPmF0dHJbal0uZm9ybSAhPSByZWZ0LT5hdHRy W2ldLmZvcm0pCkBAIC0xMjQyNSw2ICsxMjY2Nyw3IEBAIHdyaXRlX2RpZSAodW5zaWduZWQgY2hh ciAqcHRyLCBkd19jdV9yZWYgY3UsIGR3X2RpZV9yZWYgZGllLAogCSAgICAgIGlucHRyICs9IDQ7 CiAJICAgICAgYnJlYWs7CiAJICAgIGNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorCSAgICBjYXNl IERXX0ZPUk1fc3RyeDQ6CiAJICAgICAgaW5wdHIgKz0gNDsKIAkgICAgICBicmVhazsKIAkgICAg Y2FzZSBEV19GT1JNX2RhdGE4OgpAQCAtMTI0NTYsNiArMTI2OTksMTAgQEAgd3JpdGVfZGllICh1 bnNpZ25lZCBjaGFyICpwdHIsIGR3X2N1X3JlZiBjdSwgZHdfZGllX3JlZiBkaWUsCiAJICAgICAg YnJlYWs7CiAJICAgIGNhc2UgRFdfRk9STV9zZGF0YToKIAkgICAgY2FzZSBEV19GT1JNX3VkYXRh OgorCSAgICBjYXNlIERXX0ZPUk1fYWRkcng6CisJICAgIGNhc2UgRFdfRk9STV9sb2NsaXN0eDoK KwkgICAgY2FzZSBEV19GT1JNX3JuZ2xpc3R4OgorCSAgICBjYXNlIERXX0ZPUk1fc3RyeDoKIAkg ICAgICBza2lwX2xlYjEyOCAoaW5wdHIpOwogCSAgICAgIGJyZWFrOwogCSAgICBjYXNlIERXX0ZP Uk1fc3RycDoKQEAgLTEzNTA4LDYgKzEzNzU1LDcgQEAgaW5pdF9lbmRpYW4gKGludCBlbmRpYW5p dHkpCiAgIGlmIChlbmRpYW5pdHkgPT0gRUxGREFUQTJMU0IpCiAgICAgewogICAgICAgZG9fcmVh ZF8xNiA9IGJ1Zl9yZWFkX3VsZTE2OworICAgICAgZG9fcmVhZF8yNCA9IGJ1Zl9yZWFkX3VsZTI0 OwogICAgICAgZG9fcmVhZF8zMiA9IGJ1Zl9yZWFkX3VsZTMyOwogICAgICAgZG9fcmVhZF82NCA9 IGJ1Zl9yZWFkX3VsZTY0OwogICAgICAgZG9fd3JpdGVfMTYgPSBidWZfd3JpdGVfbGUxNjsKQEAg LTEzNTE3LDYgKzEzNzY1LDcgQEAgaW5pdF9lbmRpYW4gKGludCBlbmRpYW5pdHkpCiAgIGVsc2Ug aWYgKGVuZGlhbml0eSA9PSBFTEZEQVRBMk1TQikKICAgICB7CiAgICAgICBkb19yZWFkXzE2ID0g YnVmX3JlYWRfdWJlMTY7CisgICAgICBkb19yZWFkXzI0ID0gYnVmX3JlYWRfdWJlMjQ7CiAgICAg ICBkb19yZWFkXzMyID0gYnVmX3JlYWRfdWJlMzI7CiAgICAgICBkb19yZWFkXzY0ID0gYnVmX3Jl YWRfdWJlNjQ7CiAgICAgICBkb193cml0ZV8xNiA9IGJ1Zl93cml0ZV9iZTE2OwotLSAKMi4yNS4x Cgo= --_002_CH0PR12MB52659E9758818EBFDFE85EA8962E9CH0PR12MB5265namp_--